VirtualBox

Changeset 67495 in vbox for trunk/src/VBox/Devices/PC


Ignore:
Timestamp:
Jun 20, 2017 11:04:25 AM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
116234
Message:

Devices/BIOS: update alternative code

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

Legend:

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

    r66146 r67495  
    1111
    1212
    13 ;  Copyright (C) 2004-2016 Oracle Corporation
     13;  Copyright (C) 2004-2017 Oracle Corporation
    1414
    1515;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    880880;
    881881
    882 ;  Copyright (C) 2006-2016 Oracle Corporation
     882;  Copyright (C) 2006-2017 Oracle Corporation
    883883
    884884;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    988988    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    989989_pktacc:                                     ; 0xf006a LB 0xc
    990     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 045h, 081h, 0abh, 090h
     990    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 073h, 081h, 0d9h, 090h
    991991_softrst:                                    ; 0xf0076 LB 0xc
    992     db  000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 01ch, 03bh, 01ch, 03bh
     992    db  000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 049h, 03bh, 049h, 03bh
    993993_dskacc:                                     ; 0xf0082 LB 0x2e
    994994    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f0h, 029h, 0a5h, 02ah, 000h, 000h, 000h, 000h
    995     db  085h, 07fh, 065h, 080h, 07dh, 08fh, 025h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     995    db  0b3h, 07fh, 093h, 080h, 0abh, 08fh, 053h, 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
     
    11901190  times 1144 db 0
    11911191
    1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d18 class=CODE group=AUTO
     1192section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d48 class=CODE group=AUTO
    11931193rom_scan_:                                   ; 0xf1600 LB 0x50
    11941194    push bp                                   ; 55
     
    14401440    int 010h                                  ; cd 10
    14411441    jmp short 017b7h                          ; eb 03
    1442     call 07b3fh                               ; e8 88 63
     1442    call 07b6dh                               ; e8 b6 63
    14431443    mov sp, bp                                ; 89 ec
    14441444    pop bp                                    ; 5d
     
    15851585    mov bx, strict word 0000ah                ; bb 0a 00
    15861586    xor cx, cx                                ; 31 c9
    1587     call 09fb0h                               ; e8 e3 86
     1587    call 09fe0h                               ; e8 13 87
    15881588    mov word [bp-008h], ax                    ; 89 46 f8
    15891589    mov cx, dx                                ; 89 d1
     
    18151815    mov dx, word [bp-026h]                    ; 8b 56 da
    18161816    mov si, word [bp-01eh]                    ; 8b 76 e2
    1817     call 09fe0h                               ; e8 e3 84
     1817    call 0a010h                               ; e8 13 85
    18181818    mov ax, dx                                ; 89 d0
    18191819    xor ah, dh                                ; 30 f4
     
    22542254    mov dx, word [es:si]                      ; 26 8b 14
    22552255    mov si, strict word 00018h                ; be 18 00
    2256     call 09fe0h                               ; e8 90 80
     2256    call 0a010h                               ; e8 c0 80
    22572257    xor dh, dh                                ; 30 f6
    22582258    mov word [bp-014h], dx                    ; 89 56 ec
     
    22642264    mov dx, word [es:si]                      ; 26 8b 14
    22652265    mov si, strict word 00020h                ; be 20 00
    2266     call 09fe0h                               ; e8 70 80
     2266    call 0a010h                               ; e8 a0 80
    22672267    mov bx, dx                                ; 89 d3
    22682268    mov ax, word [bp-01ch]                    ; 8b 46 e4
     
    22952295    mov dx, word [es:si]                      ; 26 8b 14
    22962296    mov si, strict word 00008h                ; be 08 00
    2297     call 09fe0h                               ; e8 1f 80
     2297    call 0a010h                               ; e8 4f 80
    22982298    mov word [bp-012h], dx                    ; 89 56 ee
    22992299    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    23042304    mov dx, word [es:si]                      ; 26 8b 14
    23052305    mov si, strict word 00018h                ; be 18 00
    2306     call 09fe0h                               ; e8 01 80
     2306    call 0a010h                               ; e8 31 80
    23072307    mov ah, dl                                ; 88 d4
    23082308    and ah, 00fh                              ; 80 e4 0f
     
    26942694    mov dx, ss                                ; 8c d2
    26952695    lea ax, [bp-03ah]                         ; 8d 46 c6
    2696     call 059cbh                               ; e8 21 36
     2696    call 059f9h                               ; e8 4f 36
    26972697    mov bx, 00da0h                            ; bb a0 0d
    26982698    mov cx, ds                                ; 8c d9
     
    28612861    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    28622862    mov si, strict word 0000bh                ; be 0b 00
    2863     call 09fe0h                               ; e8 59 7a
     2863    call 0a010h                               ; e8 89 7a
    28642864    mov word [bp-024h], dx                    ; 89 56 dc
    28652865    mov word [bp-032h], cx                    ; 89 4e ce
     
    31373137    mov dx, word [bp-024h]                    ; 8b 56 dc
    31383138    mov si, strict word 00018h                ; be 18 00
    3139     call 09fe0h                               ; e8 97 77
     3139    call 0a010h                               ; e8 c7 77
    31403140    xor dh, dh                                ; 30 f6
    31413141    mov word [bp-014h], dx                    ; 89 56 ec
     
    31453145    mov dx, word [bp-024h]                    ; 8b 56 dc
    31463146    mov si, strict word 00020h                ; be 20 00
    3147     call 09fe0h                               ; e8 80 77
     3147    call 0a010h                               ; e8 b0 77
    31483148    mov bx, dx                                ; 89 d3
    31493149    mov ax, word [bp-022h]                    ; 8b 46 de
     
    31793179    mov dx, word [bp-024h]                    ; 8b 56 dc
    31803180    mov si, strict word 00008h                ; be 08 00
    3181     call 09fe0h                               ; e8 2c 77
     3181    call 0a010h                               ; e8 5c 77
    31823182    mov word [bp-00ch], ax                    ; 89 46 f4
    31833183    mov word [bp-00eh], bx                    ; 89 5e f2
     
    31863186    mov word [bp-018h], dx                    ; 89 56 e8
    31873187    mov si, strict word 00010h                ; be 10 00
    3188     call 09fe0h                               ; e8 17 77
     3188    call 0a010h                               ; e8 47 77
    31893189    mov word [bp-024h], dx                    ; 89 56 dc
    31903190    mov ax, dx                                ; 89 d0
     
    37503750    pop bp                                    ; 5d
    37513751    retn                                      ; c3
    3752 set_diskette_ret_status_:                    ; 0xf2e09 LB 0x19
     3752set_diskette_current_cyl_:                   ; 0xf2e09 LB 0x2b
    37533753    push bp                                   ; 55
    37543754    mov bp, sp                                ; 89 e5
    37553755    push bx                                   ; 53
    3756     push dx                                   ; 52
    3757     xor ah, ah                                ; 30 e4
    3758     mov bx, ax                                ; 89 c3
    3759     mov dx, strict word 00041h                ; ba 41 00
    3760     mov ax, strict word 00040h                ; b8 40 00
    3761     call 0165eh                               ; e8 43 e8
    3762     lea sp, [bp-004h]                         ; 8d 66 fc
    3763     pop dx                                    ; 5a
    3764     pop bx                                    ; 5b
    3765     pop bp                                    ; 5d
    3766     retn                                      ; c3
    3767 set_diskette_current_cyl_:                   ; 0xf2e22 LB 0x30
    3768     push bp                                   ; 55
    3769     mov bp, sp                                ; 89 e5
    3770     push bx                                   ; 53
    3771     mov bl, al                                ; 88 c3
     3756    mov dh, al                                ; 88 c6
    37723757    cmp AL, strict byte 001h                  ; 3c 01
    3773     jbe short 02e37h                          ; 76 0b
     3758    jbe short 02e1eh                          ; 76 0b
    37743759    push 00250h                               ; 68 50 02
    37753760    push strict byte 00007h                   ; 6a 07
    3776     call 01966h                               ; e8 32 eb
     3761    call 01966h                               ; e8 4b eb
    37773762    add sp, strict byte 00004h                ; 83 c4 04
    3778     mov al, dl                                ; 88 d0
    3779     xor ah, ah                                ; 30 e4
    3780     mov dx, ax                                ; 89 c2
    3781     mov al, bl                                ; 88 d8
    3782     add ax, 00094h                            ; 05 94 00
    3783     mov bx, dx                                ; 89 d3
    3784     mov dx, ax                                ; 89 c2
     3763    mov bl, dh                                ; 88 f3
     3764    xor bh, bh                                ; 30 ff
     3765    add bx, 00094h                            ; 81 c3 94 00
    37853766    mov ax, strict word 00040h                ; b8 40 00
    3786     call 0165eh                               ; e8 12 e8
     3767    mov es, ax                                ; 8e c0
     3768    mov byte [es:bx], dl                      ; 26 88 17
    37873769    lea sp, [bp-002h]                         ; 8d 66 fe
    37883770    pop bx                                    ; 5b
    37893771    pop bp                                    ; 5d
    37903772    retn                                      ; c3
    3791 floppy_wait_for_interrupt_:                  ; 0xf2e52 LB 0x21
     3773floppy_wait_for_interrupt_:                  ; 0xf2e34 LB 0x23
    37923774    push bp                                   ; 55
    37933775    mov bp, sp                                ; 89 e5
    3794     push dx                                   ; 52
     3776    push bx                                   ; 53
    37953777    cli                                       ; fa
    3796     mov dx, strict word 0003eh                ; ba 3e 00
     3778    mov bx, strict word 0003eh                ; bb 3e 00
    37973779    mov ax, strict word 00040h                ; b8 40 00
    3798     call 01650h                               ; e8 f0 e7
     3780    mov es, ax                                ; 8e c0
     3781    mov al, byte [es:bx]                      ; 26 8a 07
    37993782    test AL, strict byte 080h                 ; a8 80
    3800     je short 02e68h                           ; 74 04
     3783    je short 02e4ch                           ; 74 04
    38013784    and AL, strict byte 080h                  ; 24 80
    3802     jmp short 02e6dh                          ; eb 05
     3785    jmp short 02e51h                          ; eb 05
    38033786    sti                                       ; fb
    38043787    hlt                                       ; f4
    38053788    cli                                       ; fa
    3806     jmp short 02e57h                          ; eb ea
     3789    jmp short 02e39h                          ; eb e8
    38073790    lea sp, [bp-002h]                         ; 8d 66 fe
    3808     pop dx                                    ; 5a
     3791    pop bx                                    ; 5b
    38093792    pop bp                                    ; 5d
    38103793    retn                                      ; c3
    3811 floppy_wait_for_interrupt_or_timeout_:       ; 0xf2e73 LB 0x47
     3794floppy_wait_for_interrupt_or_timeout_:       ; 0xf2e57 LB 0x38
     3795    push bp                                   ; 55
     3796    mov bp, sp                                ; 89 e5
     3797    push bx                                   ; 53
     3798    cli                                       ; fa
     3799    mov bx, strict word 00040h                ; bb 40 00
     3800    mov es, bx                                ; 8e c3
     3801    mov al, byte [es:bx]                      ; 26 8a 07
     3802    test al, al                               ; 84 c0
     3803    jne short 02e6bh                          ; 75 03
     3804    sti                                       ; fb
     3805    jmp short 02e89h                          ; eb 1e
     3806    mov bx, strict word 0003eh                ; bb 3e 00
     3807    mov ax, strict word 00040h                ; b8 40 00
     3808    mov es, ax                                ; 8e c0
     3809    mov al, byte [es:bx]                      ; 26 8a 07
     3810    test AL, strict byte 080h                 ; a8 80
     3811    je short 02e84h                           ; 74 0a
     3812    mov ah, al                                ; 88 c4
     3813    and ah, 07fh                              ; 80 e4 7f
     3814    mov byte [es:bx], ah                      ; 26 88 27
     3815    jmp short 02e89h                          ; eb 05
     3816    sti                                       ; fb
     3817    hlt                                       ; f4
     3818    cli                                       ; fa
     3819    jmp short 02e5ch                          ; eb d3
     3820    lea sp, [bp-002h]                         ; 8d 66 fe
     3821    pop bx                                    ; 5b
     3822    pop bp                                    ; 5d
     3823    retn                                      ; c3
     3824floppy_reset_controller_:                    ; 0xf2e8f LB 0x3f
    38123825    push bp                                   ; 55
    38133826    mov bp, sp                                ; 89 e5
     
    38153828    push cx                                   ; 51
    38163829    push dx                                   ; 52
    3817     cli                                       ; fa
    3818     mov dx, strict word 00040h                ; ba 40 00
    3819     mov ax, dx                                ; 89 d0
    3820     call 01650h                               ; e8 ce e7
    3821     test al, al                               ; 84 c0
    3822     jne short 02e8bh                          ; 75 05
    3823     sti                                       ; fb
    3824     xor cl, cl                                ; 30 c9
    3825     jmp short 02eb0h                          ; eb 25
    3826     mov dx, strict word 0003eh                ; ba 3e 00
     3830    mov cx, ax                                ; 89 c1
     3831    mov dx, 003f2h                            ; ba f2 03
     3832    in AL, DX                                 ; ec
     3833    db  02ah, 0e4h
     3834    ; sub ah, ah                                ; 2a e4
     3835    mov bx, ax                                ; 89 c3
     3836    and AL, strict byte 0fbh                  ; 24 fb
     3837    out DX, AL                                ; ee
     3838    mov al, bl                                ; 88 d8
     3839    or AL, strict byte 004h                   ; 0c 04
     3840    out DX, AL                                ; ee
     3841    mov dx, 003f4h                            ; ba f4 03
     3842    in AL, DX                                 ; ec
     3843    db  02ah, 0e4h
     3844    ; sub ah, ah                                ; 2a e4
     3845    and AL, strict byte 0c0h                  ; 24 c0
     3846    cmp AL, strict byte 080h                  ; 3c 80
     3847    jne short 02ea7h                          ; 75 f4
     3848    mov bx, cx                                ; 89 cb
     3849    add bx, 00090h                            ; 81 c3 90 00
    38273850    mov ax, strict word 00040h                ; b8 40 00
    3828     call 01650h                               ; e8 bc e7
    3829     mov cl, al                                ; 88 c1
    3830     test AL, strict byte 080h                 ; a8 80
    3831     je short 02eabh                           ; 74 11
    3832     and AL, strict byte 07fh                  ; 24 7f
    3833     xor ah, ah                                ; 30 e4
    3834     mov bx, ax                                ; 89 c3
    3835     mov dx, strict word 0003eh                ; ba 3e 00
    3836     mov ax, strict word 00040h                ; b8 40 00
    3837     call 0165eh                               ; e8 b5 e7
    3838     jmp short 02eb0h                          ; eb 05
    3839     sti                                       ; fb
    3840     hlt                                       ; f4
    3841     cli                                       ; fa
    3842     jmp short 02e7ah                          ; eb ca
    3843     mov al, cl                                ; 88 c8
     3851    mov es, ax                                ; 8e c0
     3852    mov al, byte [es:bx]                      ; 26 8a 07
     3853    and AL, strict byte 0efh                  ; 24 ef
     3854    mov byte [es:bx], al                      ; 26 88 07
    38443855    lea sp, [bp-006h]                         ; 8d 66 fa
    38453856    pop dx                                    ; 5a
     
    38483859    pop bp                                    ; 5d
    38493860    retn                                      ; c3
    3850 floppy_reset_controller_:                    ; 0xf2eba LB 0x46
    3851     push bp                                   ; 55
    3852     mov bp, sp                                ; 89 e5
    3853     push bx                                   ; 53
    3854     push cx                                   ; 51
    3855     push dx                                   ; 52
    3856     mov bx, ax                                ; 89 c3
    3857     mov dx, 003f2h                            ; ba f2 03
    3858     in AL, DX                                 ; ec
    3859     db  02ah, 0e4h
    3860     ; sub ah, ah                                ; 2a e4
    3861     mov cx, ax                                ; 89 c1
    3862     and AL, strict byte 0fbh                  ; 24 fb
    3863     out DX, AL                                ; ee
    3864     mov al, cl                                ; 88 c8
    3865     or AL, strict byte 004h                   ; 0c 04
    3866     out DX, AL                                ; ee
    3867     mov dx, 003f4h                            ; ba f4 03
    3868     in AL, DX                                 ; ec
    3869     db  02ah, 0e4h
    3870     ; sub ah, ah                                ; 2a e4
    3871     and AL, strict byte 0c0h                  ; 24 c0
    3872     cmp AL, strict byte 080h                  ; 3c 80
    3873     jne short 02ed2h                          ; 75 f4
    3874     lea cx, [bx+00090h]                       ; 8d 8f 90 00
    3875     mov dx, cx                                ; 89 ca
    3876     mov ax, strict word 00040h                ; b8 40 00
    3877     call 01650h                               ; e8 66 e7
    3878     and AL, strict byte 0efh                  ; 24 ef
    3879     xor ah, ah                                ; 30 e4
    3880     mov bx, ax                                ; 89 c3
    3881     mov dx, cx                                ; 89 ca
    3882     mov ax, strict word 00040h                ; b8 40 00
    3883     call 0165eh                               ; e8 66 e7
    3884     lea sp, [bp-006h]                         ; 8d 66 fa
    3885     pop dx                                    ; 5a
    3886     pop cx                                    ; 59
    3887     pop bx                                    ; 5b
    3888     pop bp                                    ; 5d
    3889     retn                                      ; c3
    3890 floppy_prepare_controller_:                  ; 0xf2f00 LB 0x83
     3861floppy_prepare_controller_:                  ; 0xf2ece LB 0x74
    38913862    push bp                                   ; 55
    38923863    mov bp, sp                                ; 89 e5
     
    38963867    push ax                                   ; 50
    38973868    mov cx, ax                                ; 89 c1
    3898     mov dx, strict word 0003eh                ; ba 3e 00
     3869    mov bx, strict word 0003eh                ; bb 3e 00
    38993870    mov ax, strict word 00040h                ; b8 40 00
    3900     call 01650h                               ; e8 3e e7
     3871    mov es, ax                                ; 8e c0
     3872    mov al, byte [es:bx]                      ; 26 8a 07
    39013873    and AL, strict byte 07fh                  ; 24 7f
    3902     xor ah, ah                                ; 30 e4
    3903     mov bx, ax                                ; 89 c3
    3904     mov dx, strict word 0003eh                ; ba 3e 00
    3905     mov ax, strict word 00040h                ; b8 40 00
    3906     call 0165eh                               ; e8 3d e7
     3874    mov byte [es:bx], al                      ; 26 88 07
    39073875    mov dx, 003f2h                            ; ba f2 03
    39083876    in AL, DX                                 ; ec
     
    39123880    mov byte [bp-008h], al                    ; 88 46 f8
    39133881    test cx, cx                               ; 85 c9
    3914     je short 02f34h                           ; 74 04
     3882    je short 02efah                           ; 74 04
    39153883    mov AL, strict byte 020h                  ; b0 20
    3916     jmp short 02f36h                          ; eb 02
     3884    jmp short 02efch                          ; eb 02
    39173885    mov AL, strict byte 010h                  ; b0 10
    39183886    or AL, strict byte 00ch                   ; 0c 0c
     
    39203888    mov dx, 003f2h                            ; ba f2 03
    39213889    out DX, AL                                ; ee
    3922     mov bx, strict word 00025h                ; bb 25 00
    3923     mov dx, strict word 00040h                ; ba 40 00
    3924     mov ax, dx                                ; 89 d0
    3925     call 0165eh                               ; e8 15 e7
    3926     mov dx, 0008bh                            ; ba 8b 00
    3927     mov ax, strict word 00040h                ; b8 40 00
    3928     call 01650h                               ; e8 fe e6
     3890    mov bx, strict word 00040h                ; bb 40 00
     3891    mov es, bx                                ; 8e c3
     3892    mov byte [es:bx], 025h                    ; 26 c6 07 25
     3893    mov bx, 0008bh                            ; bb 8b 00
     3894    mov al, byte [es:bx]                      ; 26 8a 07
    39293895    shr al, 006h                              ; c0 e8 06
    39303896    mov dx, 003f7h                            ; ba f7 03
     
    39363902    and AL, strict byte 0c0h                  ; 24 c0
    39373903    cmp AL, strict byte 080h                  ; 3c 80
    3938     jne short 02f59h                          ; 75 f4
     3904    jne short 02f1ah                          ; 75 f4
    39393905    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3940     jne short 02f7bh                          ; 75 10
    3941     call 02e52h                               ; e8 e4 fe
    3942     mov bl, al                                ; 88 c3
    3943     xor bh, bh                                ; 30 ff
    3944     mov dx, strict word 0003eh                ; ba 3e 00
    3945     mov ax, strict word 00040h                ; b8 40 00
    3946     call 0165eh                               ; e8 e3 e6
     3906    jne short 02f3ah                          ; 75 0e
     3907    call 02e34h                               ; e8 05 ff
     3908    mov bx, strict word 0003eh                ; bb 3e 00
     3909    mov dx, strict word 00040h                ; ba 40 00
     3910    mov es, dx                                ; 8e c2
     3911    mov byte [es:bx], al                      ; 26 88 07
    39473912    lea sp, [bp-006h]                         ; 8d 66 fa
    39483913    pop dx                                    ; 5a
     
    39513916    pop bp                                    ; 5d
    39523917    retn                                      ; c3
    3953 floppy_media_known_:                         ; 0xf2f83 LB 0x43
     3918floppy_media_known_:                         ; 0xf2f42 LB 0x49
     3919    push bx                                   ; 53
     3920    push dx                                   ; 52
    39543921    push bp                                   ; 55
    39553922    mov bp, sp                                ; 89 e5
    3956     push bx                                   ; 53
    3957     push dx                                   ; 52
    3958     mov bx, ax                                ; 89 c3
    3959     mov dx, strict word 0003eh                ; ba 3e 00
     3923    mov bx, strict word 0003eh                ; bb 3e 00
     3924    mov dx, strict word 00040h                ; ba 40 00
     3925    mov es, dx                                ; 8e c2
     3926    mov bh, byte [es:bx]                      ; 26 8a 3f
     3927    mov bl, bh                                ; 88 fb
     3928    test ax, ax                               ; 85 c0
     3929    je short 02f5ah                           ; 74 02
     3930    shr bl, 1                                 ; d0 eb
     3931    and bl, 001h                              ; 80 e3 01
     3932    jne short 02f63h                          ; 75 04
     3933    xor bh, bh                                ; 30 ff
     3934    jmp short 02f85h                          ; eb 22
     3935    mov bx, 00090h                            ; bb 90 00
     3936    test ax, ax                               ; 85 c0
     3937    je short 02f6dh                           ; 74 03
     3938    mov bx, 00091h                            ; bb 91 00
    39603939    mov ax, strict word 00040h                ; b8 40 00
    3961     call 01650h                               ; e8 bd e6
    3962     mov ah, al                                ; 88 c4
    3963     test bx, bx                               ; 85 db
    3964     je short 02f9bh                           ; 74 02
    3965     shr al, 1                                 ; d0 e8
    3966     and AL, strict byte 001h                  ; 24 01
    3967     jne short 02fa3h                          ; 75 04
    3968     xor ah, ah                                ; 30 e4
    3969     jmp short 02fbfh                          ; eb 1c
    3970     mov dx, 00090h                            ; ba 90 00
    3971     test bx, bx                               ; 85 db
    3972     je short 02fadh                           ; 74 03
    3973     mov dx, 00091h                            ; ba 91 00
    3974     mov ax, strict word 00040h                ; b8 40 00
    3975     call 01650h                               ; e8 9d e6
     3940    mov es, ax                                ; 8e c0
     3941    mov al, byte [es:bx]                      ; 26 8a 07
    39763942    xor ah, ah                                ; 30 e4
    39773943    sar ax, 004h                              ; c1 f8 04
    39783944    and AL, strict byte 001h                  ; 24 01
    3979     je short 02f9fh                           ; 74 e3
    3980     mov ax, strict word 00001h                ; b8 01 00
    3981     lea sp, [bp-004h]                         ; 8d 66 fc
     3945    jne short 02f82h                          ; 75 04
     3946    xor bx, bx                                ; 31 db
     3947    jmp short 02f85h                          ; eb 03
     3948    mov bx, strict word 00001h                ; bb 01 00
     3949    mov ax, bx                                ; 89 d8
     3950    pop bp                                    ; 5d
    39823951    pop dx                                    ; 5a
    39833952    pop bx                                    ; 5b
    3984     pop bp                                    ; 5d
    39853953    retn                                      ; c3
    3986 floppy_read_id_:                             ; 0xf2fc6 LB 0x44
     3954floppy_read_id_:                             ; 0xf2f8b LB 0x52
    39873955    push bp                                   ; 55
    39883956    mov bp, sp                                ; 89 e5
     
    39903958    push dx                                   ; 52
    39913959    push si                                   ; 56
    3992     sub sp, strict byte 00008h                ; 83 ec 08
    39933960    mov bx, ax                                ; 89 c3
    3994     call 02f00h                               ; e8 2c ff
     3961    call 02eceh                               ; e8 38 ff
    39953962    mov AL, strict byte 04ah                  ; b0 4a
    39963963    mov dx, 003f5h                            ; ba f5 03
     
    39983965    mov al, bl                                ; 88 d8
    39993966    out DX, AL                                ; ee
    4000     call 02e52h                               ; e8 72 fe
    4001     xor si, si                                ; 31 f6
    4002     jmp short 02fe9h                          ; eb 05
    4003     cmp si, strict byte 00007h                ; 83 fe 07
    4004     jnl short 02ff5h                          ; 7d 0c
     3967    call 02e34h                               ; e8 92 fe
     3968    xor bx, bx                                ; 31 db
     3969    jmp short 02fabh                          ; eb 05
     3970    cmp bx, strict byte 00007h                ; 83 fb 07
     3971    jnl short 02fbfh                          ; 7d 14
    40053972    mov dx, 003f5h                            ; ba f5 03
    40063973    in AL, DX                                 ; ec
    40073974    db  02ah, 0e4h
    40083975    ; sub ah, ah                                ; 2a e4
    4009     mov byte [bp+si-00eh], al                 ; 88 42 f2
    4010     inc si                                    ; 46
    4011     jmp short 02fe4h                          ; eb ef
    4012     test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
    4013     je short 02fffh                           ; 74 04
     3976    lea si, [bx+042h]                         ; 8d 77 42
     3977    mov dx, strict word 00040h                ; ba 40 00
     3978    mov es, dx                                ; 8e c2
     3979    mov byte [es:si], al                      ; 26 88 04
     3980    inc bx                                    ; 43
     3981    jmp short 02fa6h                          ; eb e7
     3982    mov bx, strict word 00042h                ; bb 42 00
     3983    mov ax, strict word 00040h                ; b8 40 00
     3984    mov es, ax                                ; 8e c0
     3985    mov al, byte [es:bx]                      ; 26 8a 07
     3986    test AL, strict byte 0c0h                 ; a8 c0
     3987    je short 02fd2h                           ; 74 04
    40143988    xor ax, ax                                ; 31 c0
    4015     jmp short 03002h                          ; eb 03
     3989    jmp short 02fd5h                          ; eb 03
    40163990    mov ax, strict word 00001h                ; b8 01 00
    40173991    lea sp, [bp-006h]                         ; 8d 66 fa
     
    40213995    pop bp                                    ; 5d
    40223996    retn                                      ; c3
    4023 floppy_drive_recal_:                         ; 0xf300a LB 0x4d
     3997floppy_drive_recal_:                         ; 0xf2fdd LB 0x41
    40243998    push bp                                   ; 55
    40253999    mov bp, sp                                ; 89 e5
    40264000    push bx                                   ; 53
    4027     push cx                                   ; 51
    40284001    push dx                                   ; 52
     4002    push si                                   ; 56
    40294003    mov bx, ax                                ; 89 c3
    4030     call 02f00h                               ; e8 eb fe
     4004    call 02eceh                               ; e8 e6 fe
    40314005    mov AL, strict byte 007h                  ; b0 07
    40324006    mov dx, 003f5h                            ; ba f5 03
     
    40344008    mov al, bl                                ; 88 d8
    40354009    out DX, AL                                ; ee
    4036     call 02e52h                               ; e8 31 fe
     4010    call 02e34h                               ; e8 40 fe
    40374011    test bx, bx                               ; 85 db
    4038     je short 0302fh                           ; 74 0a
    4039     mov bl, al                                ; 88 c3
    4040     or bl, 002h                               ; 80 cb 02
    4041     mov cx, 00095h                            ; b9 95 00
    4042     jmp short 03037h                          ; eb 08
    4043     mov bl, al                                ; 88 c3
    4044     or bl, 001h                               ; 80 cb 01
    4045     mov cx, 00094h                            ; b9 94 00
    4046     xor bh, bh                                ; 30 ff
    4047     mov dx, strict word 0003eh                ; ba 3e 00
    4048     mov ax, strict word 00040h                ; b8 40 00
    4049     call 0165eh                               ; e8 1c e6
    4050     xor bx, bx                                ; 31 db
    4051     mov dx, cx                                ; 89 ca
    4052     mov ax, strict word 00040h                ; b8 40 00
    4053     call 0165eh                               ; e8 12 e6
     4012    je short 02fffh                           ; 74 07
     4013    or AL, strict byte 002h                   ; 0c 02
     4014    mov bx, 00095h                            ; bb 95 00
     4015    jmp short 03004h                          ; eb 05
     4016    or AL, strict byte 001h                   ; 0c 01
     4017    mov bx, 00094h                            ; bb 94 00
     4018    mov si, strict word 0003eh                ; be 3e 00
     4019    mov dx, strict word 00040h                ; ba 40 00
     4020    mov es, dx                                ; 8e c2
     4021    mov byte [es:si], al                      ; 26 88 04
     4022    mov byte [es:bx], 000h                    ; 26 c6 07 00
    40544023    mov ax, strict word 00001h                ; b8 01 00
    40554024    lea sp, [bp-006h]                         ; 8d 66 fa
     4025    pop si                                    ; 5e
    40564026    pop dx                                    ; 5a
    4057     pop cx                                    ; 59
    40584027    pop bx                                    ; 5b
    40594028    pop bp                                    ; 5d
    40604029    retn                                      ; c3
    4061 floppy_media_sense_:                         ; 0xf3057 LB 0xf9
     4030floppy_media_sense_:                         ; 0xf301e LB 0xe6
    40624031    push bp                                   ; 55
    40634032    mov bp, sp                                ; 89 e5
     
    40674036    push si                                   ; 56
    40684037    push di                                   ; 57
    4069     mov di, ax                                ; 89 c7
    4070     call 0300ah                               ; e8 a6 ff
     4038    mov cx, ax                                ; 89 c1
     4039    call 02fddh                               ; e8 b2 ff
    40714040    test ax, ax                               ; 85 c0
    4072     jne short 0306dh                          ; 75 05
    4073     xor cx, cx                                ; 31 c9
    4074     jmp near 03144h                           ; e9 d7 00
     4041    jne short 03034h                          ; 75 05
     4042    xor dx, dx                                ; 31 d2
     4043    jmp near 030f8h                           ; e9 c4 00
    40754044    mov ax, strict word 00010h                ; b8 10 00
    4076     call 016ach                               ; e8 39 e6
    4077     test di, di                               ; 85 ff
    4078     jne short 0307eh                          ; 75 07
    4079     mov cl, al                                ; 88 c1
    4080     shr cl, 004h                              ; c0 e9 04
    4081     jmp short 03083h                          ; eb 05
    4082     mov cl, al                                ; 88 c1
    4083     and cl, 00fh                              ; 80 e1 0f
    4084     cmp cl, 001h                              ; 80 f9 01
    4085     jne short 03091h                          ; 75 09
    4086     xor cl, cl                                ; 30 c9
    4087     mov CH, strict byte 015h                  ; b5 15
    4088     mov si, strict word 00001h                ; be 01 00
    4089     jmp short 030cfh                          ; eb 3e
    4090     cmp cl, 002h                              ; 80 f9 02
    4091     jne short 0309ch                          ; 75 06
    4092     xor cl, cl                                ; 30 c9
    4093     mov CH, strict byte 035h                  ; b5 35
    4094     jmp short 0308ch                          ; eb f0
    4095     cmp cl, 003h                              ; 80 f9 03
    4096     jne short 030a7h                          ; 75 06
    4097     xor cl, cl                                ; 30 c9
    4098     mov CH, strict byte 017h                  ; b5 17
    4099     jmp short 0308ch                          ; eb e5
    4100     cmp cl, 004h                              ; 80 f9 04
    4101     jne short 030b2h                          ; 75 06
    4102     xor cl, cl                                ; 30 c9
    4103     mov CH, strict byte 017h                  ; b5 17
    4104     jmp short 0308ch                          ; eb da
    4105     cmp cl, 005h                              ; 80 f9 05
    4106     jne short 030bdh                          ; 75 06
    4107     mov CL, strict byte 0cch                  ; b1 cc
    4108     mov CH, strict byte 0d7h                  ; b5 d7
    4109     jmp short 0308ch                          ; eb cf
    4110     cmp cl, 00eh                              ; 80 f9 0e
    4111     je short 030c7h                           ; 74 05
    4112     cmp cl, 00fh                              ; 80 f9 0f
    4113     jne short 030c9h                          ; 75 02
    4114     jmp short 030b7h                          ; eb ee
    4115     xor cl, cl                                ; 30 c9
    4116     xor ch, ch                                ; 30 ed
    4117     xor si, si                                ; 31 f6
    4118     mov al, cl                                ; 88 c8
    4119     xor ah, ah                                ; 30 e4
    4120     mov bx, ax                                ; 89 c3
    4121     mov dx, 0008bh                            ; ba 8b 00
     4045    call 016ach                               ; e8 72 e6
     4046    test cx, cx                               ; 85 c9
     4047    jne short 03045h                          ; 75 07
     4048    mov dl, al                                ; 88 c2
     4049    shr dl, 004h                              ; c0 ea 04
     4050    jmp short 0304ah                          ; eb 05
     4051    mov dl, al                                ; 88 c2
     4052    and dl, 00fh                              ; 80 e2 0f
     4053    cmp dl, 001h                              ; 80 fa 01
     4054    jne short 03058h                          ; 75 09
     4055    xor dl, dl                                ; 30 d2
     4056    mov DH, strict byte 015h                  ; b6 15
     4057    mov bx, strict word 00001h                ; bb 01 00
     4058    jmp short 03096h                          ; eb 3e
     4059    cmp dl, 002h                              ; 80 fa 02
     4060    jne short 03063h                          ; 75 06
     4061    xor dl, dl                                ; 30 d2
     4062    mov DH, strict byte 035h                  ; b6 35
     4063    jmp short 03053h                          ; eb f0
     4064    cmp dl, 003h                              ; 80 fa 03
     4065    jne short 0306eh                          ; 75 06
     4066    xor dl, dl                                ; 30 d2
     4067    mov DH, strict byte 017h                  ; b6 17
     4068    jmp short 03053h                          ; eb e5
     4069    cmp dl, 004h                              ; 80 fa 04
     4070    jne short 03079h                          ; 75 06
     4071    xor dl, dl                                ; 30 d2
     4072    mov DH, strict byte 017h                  ; b6 17
     4073    jmp short 03053h                          ; eb da
     4074    cmp dl, 005h                              ; 80 fa 05
     4075    jne short 03084h                          ; 75 06
     4076    mov DL, strict byte 0cch                  ; b2 cc
     4077    mov DH, strict byte 0d7h                  ; b6 d7
     4078    jmp short 03053h                          ; eb cf
     4079    cmp dl, 00eh                              ; 80 fa 0e
     4080    je short 0308eh                           ; 74 05
     4081    cmp dl, 00fh                              ; 80 fa 0f
     4082    jne short 03090h                          ; 75 02
     4083    jmp short 0307eh                          ; eb ee
     4084    xor dl, dl                                ; 30 d2
     4085    xor dh, dh                                ; 30 f6
     4086    xor bx, bx                                ; 31 db
     4087    mov si, 0008bh                            ; be 8b 00
    41224088    mov ax, strict word 00040h                ; b8 40 00
    4123     call 0165eh                               ; e8 80 e5
    4124     mov ax, di                                ; 89 f8
    4125     call 02fc6h                               ; e8 e3 fe
     4089    mov es, ax                                ; 8e c0
     4090    mov byte [es:si], dl                      ; 26 88 14
     4091    mov ax, cx                                ; 89 c8
     4092    call 02f8bh                               ; e8 e5 fe
    41264093    test ax, ax                               ; 85 c0
    4127     jne short 03119h                          ; 75 32
    4128     mov al, cl                                ; 88 c8
     4094    jne short 030dch                          ; 75 32
     4095    mov al, dl                                ; 88 d0
    41294096    and AL, strict byte 0c0h                  ; 24 c0
    41304097    cmp AL, strict byte 080h                  ; 3c 80
    4131     je short 03119h                           ; 74 2a
    4132     mov al, cl                                ; 88 c8
     4098    je short 030dch                           ; 74 2a
     4099    mov al, dl                                ; 88 d0
    41334100    and AL, strict byte 0c0h                  ; 24 c0
    41344101    cmp AL, strict byte 0c0h                  ; 3c c0
    4135     je short 03106h                           ; 74 0f
    4136     mov ah, cl                                ; 88 cc
     4102    je short 030c9h                           ; 74 0f
     4103    mov ah, dl                                ; 88 d4
    41374104    and ah, 03fh                              ; 80 e4 3f
    41384105    cmp AL, strict byte 040h                  ; 3c 40
    4139     je short 03112h                           ; 74 12
     4106    je short 030d5h                           ; 74 12
    41404107    test al, al                               ; 84 c0
    4141     je short 0310bh                           ; 74 07
    4142     jmp short 030cfh                          ; eb c9
    4143     and cl, 03fh                              ; 80 e1 3f
    4144     jmp short 030cfh                          ; eb c4
    4145     mov cl, ah                                ; 88 e1
    4146     or cl, 040h                               ; 80 c9 40
    4147     jmp short 030cfh                          ; eb bd
    4148     mov cl, ah                                ; 88 e1
    4149     or cl, 080h                               ; 80 c9 80
    4150     jmp short 030cfh                          ; eb b6
    4151     test di, di                               ; 85 ff
    4152     jne short 03122h                          ; 75 05
    4153     mov di, 00090h                            ; bf 90 00
    4154     jmp short 03125h                          ; eb 03
    4155     mov di, 00091h                            ; bf 91 00
    4156     mov al, cl                                ; 88 c8
    4157     xor ah, ah                                ; 30 e4
    4158     mov bx, ax                                ; 89 c3
    4159     mov dx, 0008bh                            ; ba 8b 00
     4108    je short 030ceh                           ; 74 07
     4109    jmp short 03096h                          ; eb cd
     4110    and dl, 03fh                              ; 80 e2 3f
     4111    jmp short 03096h                          ; eb c8
     4112    mov dl, ah                                ; 88 e2
     4113    or dl, 040h                               ; 80 ca 40
     4114    jmp short 03096h                          ; eb c1
     4115    mov dl, ah                                ; 88 e2
     4116    or dl, 080h                               ; 80 ca 80
     4117    jmp short 03096h                          ; eb ba
     4118    test cx, cx                               ; 85 c9
     4119    jne short 030e5h                          ; 75 05
     4120    mov si, 00090h                            ; be 90 00
     4121    jmp short 030e8h                          ; eb 03
     4122    mov si, 00091h                            ; be 91 00
     4123    mov di, 0008bh                            ; bf 8b 00
    41604124    mov ax, strict word 00040h                ; b8 40 00
    4161     call 0165eh                               ; e8 2a e5
    4162     mov al, ch                                ; 88 e8
    4163     xor ah, ah                                ; 30 e4
    4164     mov bx, ax                                ; 89 c3
    4165     mov dx, di                                ; 89 fa
    4166     mov ax, strict word 00040h                ; b8 40 00
    4167     call 0165eh                               ; e8 1c e5
    4168     mov cx, si                                ; 89 f1
    4169     mov ax, cx                                ; 89 c8
     4125    mov es, ax                                ; 8e c0
     4126    mov byte [es:di], dl                      ; 26 88 15
     4127    mov byte [es:si], dh                      ; 26 88 34
     4128    mov dx, bx                                ; 89 da
     4129    mov ax, dx                                ; 89 d0
    41704130    lea sp, [bp-00ah]                         ; 8d 66 f6
    41714131    pop di                                    ; 5f
     
    41764136    pop bp                                    ; 5d
    41774137    retn                                      ; c3
    4178 floppy_drive_exists_:                        ; 0xf3150 LB 0x28
     4138floppy_drive_exists_:                        ; 0xf3104 LB 0x4b
    41794139    push bp                                   ; 55
    41804140    mov bp, sp                                ; 89 e5
     
    41824142    mov dx, ax                                ; 89 c2
    41834143    mov ax, strict word 00010h                ; b8 10 00
    4184     call 016ach                               ; e8 50 e5
     4144    call 016ach                               ; e8 9c e5
    41854145    test dx, dx                               ; 85 d2
    4186     jne short 03165h                          ; 75 05
     4146    jne short 03119h                          ; 75 05
    41874147    shr al, 004h                              ; c0 e8 04
    4188     jmp short 03167h                          ; eb 02
     4148    jmp short 0311bh                          ; eb 02
    41894149    and AL, strict byte 00fh                  ; 24 0f
    41904150    test al, al                               ; 84 c0
    4191     je short 03170h                           ; 74 05
     4151    je short 03124h                           ; 74 05
    41924152    mov ax, strict word 00001h                ; b8 01 00
    4193     jmp short 03172h                          ; eb 02
     4153    jmp short 03126h                          ; eb 02
    41944154    xor ah, ah                                ; 30 e4
    41954155    lea sp, [bp-002h]                         ; 8d 66 fe
     
    41974157    pop bp                                    ; 5d
    41984158    retn                                      ; c3
    4199 _int13_diskette_function:                    ; 0xf3178 LB 0x974
     4159    sbb byte [bx], dl                         ; 18 17
     4160    push SS                                   ; 16
     4161    adc ax, 00508h                            ; 15 08 05
     4162    add AL, strict byte 003h                  ; 04 03
     4163    add al, byte [bx+di]                      ; 02 01
     4164    add dh, dh                                ; 00 f6
     4165    cmp cl, byte [bx+di+00a31h]               ; 3a 89 31 0a
     4166    xor ch, byte [bp+di]                      ; 32 2b
     4167    xor ch, byte [bp+di]                      ; 32 2b
     4168    xor ch, byte [bp+di]                      ; 32 2b
     4169    db  032h, 0dfh
     4170    ; xor bl, bh                                ; 32 df
     4171    xor ax, 037a9h                            ; 35 a9 37
     4172    xchg di, ax                               ; 97
     4173    cmp cl, bl                                ; 38 d9
     4174    cmp byte [di], cl                         ; 38 0d
     4175    db  039h
     4176    db  081h
     4177    db  039h
     4178_int13_diskette_function:                    ; 0xf314f LB 0x9ca
    42004179    push bp                                   ; 55
    42014180    mov bp, sp                                ; 89 e5
    4202     push si                                   ; 56
    4203     push di                                   ; 57
    4204     sub sp, strict byte 00018h                ; 83 ec 18
    4205     mov bx, word [bp+016h]                    ; 8b 5e 16
    4206     shr bx, 008h                              ; c1 eb 08
    4207     mov byte [bp-00eh], bl                    ; 88 5e f2
    4208     mov si, word [bp+016h]                    ; 8b 76 16
    4209     and si, 000ffh                            ; 81 e6 ff 00
    4210     mov al, byte [bp+00eh]                    ; 8a 46 0e
    4211     mov ah, byte [bp+014h]                    ; 8a 66 14
    4212     mov cl, byte [bp+016h]                    ; 8a 4e 16
    4213     mov dx, word [bp+014h]                    ; 8b 56 14
    4214     shr dx, 008h                              ; c1 ea 08
    4215     mov word [bp-014h], dx                    ; 89 56 ec
    4216     cmp bl, 008h                              ; 80 fb 08
    4217     jc short 031d5h                           ; 72 2e
    4218     mov dx, word [bp+01ch]                    ; 8b 56 1c
    4219     or dl, 001h                               ; 80 ca 01
    4220     cmp bl, 008h                              ; 80 fb 08
    4221     jbe short 0320bh                          ; 76 59
    4222     cmp bl, 016h                              ; 80 fb 16
    4223     jc short 031cdh                           ; 72 16
     4181    sub sp, strict byte 0000ch                ; 83 ec 0c
     4182    mov ax, word [bp+016h]                    ; 8b 46 16
     4183    shr ax, 008h                              ; c1 e8 08
     4184    cmp ax, strict word 00018h                ; 3d 18 00
     4185    jnbe short 031bch                         ; 77 5c
     4186    push CS                                   ; 0e
     4187    pop ES                                    ; 07
     4188    mov cx, strict word 0000ch                ; b9 0c 00
     4189    mov di, 0312ch                            ; bf 2c 31
     4190    repne scasb                               ; f2 ae
     4191    sal cx, 1                                 ; d1 e1
     4192    mov di, cx                                ; 89 cf
     4193    mov di, word [cs:di+03137h]               ; 2e 8b bd 37 31
     4194    mov dx, word [bp+016h]                    ; 8b 56 16
     4195    xor dh, dh                                ; 30 f6
     4196    mov ah, byte [bp+00eh]                    ; 8a 66 0e
     4197    mov cx, word [bp+01ch]                    ; 8b 4e 1c
     4198    or cl, 001h                               ; 80 c9 01
     4199    mov si, dx                                ; 89 d6
    42244200    or si, 00100h                             ; 81 ce 00 01
    4225     cmp bl, 016h                              ; 80 fb 16
    4226     jbe short 0320eh                          ; 76 4e
    4227     cmp bl, 018h                              ; 80 fb 18
    4228     je short 03211h                           ; 74 4c
    4229     cmp bl, 017h                              ; 80 fb 17
    4230     je short 03227h                           ; 74 5d
    4231     jmp near 03ac9h                           ; e9 fc 08
    4232     cmp bl, 015h                              ; 80 fb 15
    4233     je short 0322ah                           ; 74 58
    4234     jmp near 03ac9h                           ; e9 f4 08
     4201    jmp di                                    ; ff e7
     4202    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    42354203    cmp bl, 001h                              ; 80 fb 01
    4236     jc short 031e9h                           ; 72 0f
    4237     jbe short 0322dh                          ; 76 51
    4238     cmp bl, 005h                              ; 80 fb 05
    4239     je short 03248h                           ; 74 67
    4240     cmp bl, 004h                              ; 80 fb 04
    4241     jbe short 0324bh                          ; 76 65
    4242     jmp near 03ac9h                           ; e9 e0 08
    4243     test bl, bl                               ; 84 db
    4244     jne short 0324dh                          ; 75 60
    4245     mov al, byte [bp+00eh]                    ; 8a 46 0e
    4246     mov byte [bp-006h], al                    ; 88 46 fa
    4247     cmp AL, strict byte 001h                  ; 3c 01
    4248     jbe short 03214h                          ; 76 1d
     4204    jbe short 031abh                          ; 76 1a
    42494205    mov ax, word [bp+016h]                    ; 8b 46 16
    42504206    xor ah, ah                                ; 30 e4
    42514207    or ah, 001h                               ; 80 cc 01
    42524208    mov word [bp+016h], ax                    ; 89 46 16
    4253     mov ax, strict word 00001h                ; b8 01 00
    4254     call 02e09h                               ; e8 01 fc
    4255     jmp near 035d0h                           ; e9 c5 03
    4256     jmp near 037abh                           ; e9 9d 05
    4257     jmp near 038dfh                           ; e9 ce 06
    4258     jmp near 03978h                           ; e9 64 07
     4209    mov bx, strict word 00041h                ; bb 41 00
     4210    mov ax, strict word 00040h                ; b8 40 00
     4211    mov es, ax                                ; 8e c0
     4212    mov byte [es:bx], 001h                    ; 26 c6 07 01
     4213    jmp near 039e3h                           ; e9 38 08
    42594214    mov ax, strict word 00010h                ; b8 10 00
    4260     call 016ach                               ; e8 92 e4
    4261     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4262     jne short 0322fh                          ; 75 0f
    4263     mov cl, al                                ; 88 c1
    4264     shr cl, 004h                              ; c0 e9 04
    4265     jmp short 03234h                          ; eb 0d
    4266     jmp near 03903h                           ; e9 d9 06
    4267     jmp near 0389bh                           ; e9 6e 06
    4268     jmp short 03276h                          ; eb 47
    4269     mov cl, al                                ; 88 c1
    4270     and cl, 00fh                              ; 80 e1 0f
    4271     test cl, cl                               ; 84 c9
    4272     jne short 03250h                          ; 75 18
     4215    call 016ach                               ; e8 fb e4
     4216    test bl, bl                               ; 84 db
     4217    jne short 031bfh                          ; 75 0a
     4218    mov dl, al                                ; 88 c2
     4219    shr dl, 004h                              ; c0 ea 04
     4220    jmp short 031c4h                          ; eb 08
     4221    jmp near 03af6h                           ; e9 37 09
     4222    mov dl, al                                ; 88 c2
     4223    and dl, 00fh                              ; 80 e2 0f
     4224    test dl, dl                               ; 84 d2
     4225    jne short 031e2h                          ; 75 1a
    42734226    mov ax, word [bp+016h]                    ; 8b 46 16
    42744227    xor ah, ah                                ; 30 e4
    42754228    or ah, 080h                               ; 80 cc 80
    42764229    mov word [bp+016h], ax                    ; 89 46 16
    4277     mov ax, 00080h                            ; b8 80 00
    4278     jmp short 03205h                          ; eb bd
    4279     jmp near 035fah                           ; e9 af 03
    4280     jmp short 03295h                          ; eb 48
    4281     jmp near 03ac9h                           ; e9 79 08
    4282     xor bx, bx                                ; 31 db
    4283     mov dx, strict word 0003eh                ; ba 3e 00
     4230    mov bx, strict word 00041h                ; bb 41 00
    42844231    mov ax, strict word 00040h                ; b8 40 00
    4285     call 0165eh                               ; e8 03 e4
     4232    mov es, ax                                ; 8e c0
     4233    mov byte [es:bx], 080h                    ; 26 c6 07 80
     4234    jmp near 039e3h                           ; e9 01 08
     4235    mov si, strict word 0003eh                ; be 3e 00
     4236    mov ax, strict word 00040h                ; b8 40 00
     4237    mov es, ax                                ; 8e c0
     4238    mov byte [es:si], 000h                    ; 26 c6 04 00
    42864239    xor al, al                                ; 30 c0
    42874240    mov byte [bp+017h], al                    ; 88 46 17
    4288     xor ah, ah                                ; 30 e4
    4289     call 02e09h                               ; e8 a4 fb
     4241    mov si, strict word 00041h                ; be 41 00
     4242    mov byte [es:si], al                      ; 26 88 04
    42904243    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4291     mov al, byte [bp-006h]                    ; 8a 46 fa
     4244    mov al, bl                                ; 88 d8
    42924245    xor ah, ah                                ; 30 e4
    42934246    xor dx, dx                                ; 31 d2
    4294     call 02e22h                               ; e8 af fb
    4295     jmp near 035f3h                           ; e9 7d 03
     4247    call 02e09h                               ; e8 03 fc
     4248    mov sp, bp                                ; 89 ec
     4249    pop bp                                    ; 5d
     4250    retn                                      ; c3
    42964251    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4297     mov dx, 00441h                            ; ba 41 04
     4252    mov bx, 00441h                            ; bb 41 04
    42984253    xor ax, ax                                ; 31 c0
    4299     call 01650h                               ; e8 ce e3
    4300     mov dl, al                                ; 88 c2
    4301     xor dh, dh                                ; 30 f6
    4302     sal dx, 008h                              ; c1 e2 08
    4303     or si, dx                                 ; 09 d6
    4304     mov word [bp+016h], si                    ; 89 76 16
    4305     test al, al                               ; 84 c0
    4306     je short 032e8h                           ; 74 56
    4307     jmp near 035d0h                           ; e9 3b 03
    4308     mov ch, cl                                ; 88 cd
    4309     mov dl, byte [bp-014h]                    ; 8a 56 ec
    4310     mov byte [bp-008h], dl                    ; 88 56 f8
    4311     mov byte [bp-00ch], ah                    ; 88 66 f4
    4312     mov dx, word [bp+012h]                    ; 8b 56 12
    4313     shr dx, 008h                              ; c1 ea 08
    4314     mov byte [bp-00ah], dl                    ; 88 56 f6
     4254    mov es, ax                                ; 8e c0
     4255    mov bl, byte [es:bx]                      ; 26 8a 1f
     4256    mov al, bl                                ; 88 d8
     4257    xor ah, ah                                ; 30 e4
     4258    sal ax, 008h                              ; c1 e0 08
     4259    or dx, ax                                 ; 09 c2
     4260    mov word [bp+016h], dx                    ; 89 56 16
     4261    test bl, bl                               ; 84 db
     4262    je short 03206h                           ; 74 de
     4263    jmp near 039e3h                           ; e9 b8 07
     4264    mov bh, byte [bp+016h]                    ; 8a 7e 16
     4265    mov ax, word [bp+014h]                    ; 8b 46 14
     4266    shr ax, 008h                              ; c1 e8 08
    43154267    mov byte [bp-006h], al                    ; 88 46 fa
     4268    mov al, byte [bp+014h]                    ; 8a 46 14
     4269    mov byte [bp-004h], al                    ; 88 46 fc
     4270    mov ax, word [bp+012h]                    ; 8b 46 12
     4271    shr ax, 008h                              ; c1 e8 08
     4272    mov byte [bp-002h], al                    ; 88 46 fe
     4273    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
     4274    cmp bl, 001h                              ; 80 fb 01
     4275    jnbe short 0325bh                         ; 77 0d
    43164276    cmp AL, strict byte 001h                  ; 3c 01
    4317     jnbe short 032beh                         ; 77 0e
    4318     cmp dl, 001h                              ; 80 fa 01
    4319     jnbe short 032beh                         ; 77 09
    4320     test cl, cl                               ; 84 c9
    4321     je short 032beh                           ; 74 05
    4322     cmp cl, 048h                              ; 80 f9 48
    4323     jbe short 032ebh                          ; 76 2d
     4277    jnbe short 0325bh                         ; 77 09
     4278    test bh, bh                               ; 84 ff
     4279    je short 0325bh                           ; 74 05
     4280    cmp bh, 048h                              ; 80 ff 48
     4281    jbe short 0328eh                          ; 76 33
    43244282    mov bx, 00da0h                            ; bb a0 0d
    43254283    mov cx, ds                                ; 8c d9
    43264284    mov ax, strict word 00004h                ; b8 04 00
    4327     call 01923h                               ; e8 5a e6
     4285    call 01923h                               ; e8 bd e6
    43284286    push 00275h                               ; 68 75 02
    43294287    push 0028dh                               ; 68 8d 02
    43304288    push strict byte 00004h                   ; 6a 04
    4331     call 01966h                               ; e8 92 e6
     4289    call 01966h                               ; e8 f5 e6
    43324290    add sp, strict byte 00006h                ; 83 c4 06
    43334291    mov ax, word [bp+016h]                    ; 8b 46 16
     
    43354293    or ah, 001h                               ; 80 cc 01
    43364294    mov word [bp+016h], ax                    ; 89 46 16
    4337     mov ax, strict word 00001h                ; b8 01 00
    4338     jmp near 03373h                           ; e9 8b 00
    4339     jmp near 035f3h                           ; e9 08 03
    4340     mov al, byte [bp-006h]                    ; 8a 46 fa
    4341     xor ah, ah                                ; 30 e4
    4342     call 03150h                               ; e8 5d fe
     4295    mov bx, strict word 00041h                ; bb 41 00
     4296    mov ax, strict word 00040h                ; b8 40 00
     4297    mov es, ax                                ; 8e c0
     4298    mov byte [es:bx], 001h                    ; 26 c6 07 01
     4299    jmp near 03338h                           ; e9 aa 00
     4300    mov al, bl                                ; 88 d8
     4301    xor ah, ah                                ; 30 e4
     4302    call 03104h                               ; e8 6f fe
    43434303    test ax, ax                               ; 85 c0
    4344     jne short 03307h                          ; 75 10
     4304    jne short 032b3h                          ; 75 1a
    43454305    mov ax, word [bp+016h]                    ; 8b 46 16
    43464306    xor ah, ah                                ; 30 e4
    43474307    or ah, 080h                               ; 80 cc 80
    43484308    mov word [bp+016h], ax                    ; 89 46 16
    4349     mov ax, 00080h                            ; b8 80 00
    4350     jmp short 03373h                          ; eb 6c
    4351     mov bl, byte [bp-006h]                    ; 8a 5e fa
    4352     xor bh, bh                                ; 30 ff
    4353     mov ax, bx                                ; 89 d8
    4354     call 02f83h                               ; e8 72 fc
     4309    mov bx, strict word 00041h                ; bb 41 00
     4310    mov ax, strict word 00040h                ; b8 40 00
     4311    mov es, ax                                ; 8e c0
     4312    mov byte [es:bx], 080h                    ; 26 c6 07 80
     4313    jmp near 03338h                           ; e9 85 00
     4314    mov cl, bl                                ; 88 d9
     4315    xor ch, ch                                ; 30 ed
     4316    mov ax, cx                                ; 89 c8
     4317    call 02f42h                               ; e8 86 fc
    43554318    test ax, ax                               ; 85 c0
    4356     jne short 0332fh                          ; 75 1a
    4357     mov ax, bx                                ; 89 d8
    4358     call 03057h                               ; e8 3d fd
     4319    jne short 032e6h                          ; 75 26
     4320    mov ax, cx                                ; 89 c8
     4321    call 0301eh                               ; e8 59 fd
    43594322    test ax, ax                               ; 85 c0
    4360     jne short 0332fh                          ; 75 11
     4323    jne short 032e6h                          ; 75 1d
    43614324    mov ax, word [bp+016h]                    ; 8b 46 16
    43624325    xor ah, ah                                ; 30 e4
    43634326    or ah, 00ch                               ; 80 cc 0c
    43644327    mov word [bp+016h], ax                    ; 89 46 16
    4365     mov ax, strict word 0000ch                ; b8 0c 00
    4366     jmp near 0341fh                           ; e9 f0 00
    4367     cmp byte [bp-00eh], 002h                  ; 80 7e f2 02
    4368     jne short 0337dh                          ; 75 48
     4328    mov bx, strict word 00041h                ; bb 41 00
     4329    mov ax, strict word 00040h                ; b8 40 00
     4330    mov es, ax                                ; 8e c0
     4331    mov byte [es:bx], 00ch                    ; 26 c6 07 0c
     4332    mov byte [bp+016h], ch                    ; 88 6e 16
     4333    jmp near 039e3h                           ; e9 fd 06
     4334    mov ax, word [bp+016h]                    ; 8b 46 16
     4335    shr ax, 008h                              ; c1 e8 08
     4336    cmp ax, strict word 00002h                ; 3d 02 00
     4337    jne short 0333fh                          ; 75 4e
     4338    mov cx, word [bp+006h]                    ; 8b 4e 06
     4339    shr cx, 00ch                              ; c1 e9 0c
     4340    mov ah, cl                                ; 88 cc
    43694341    mov dx, word [bp+006h]                    ; 8b 56 06
    4370     shr dx, 00ch                              ; c1 ea 0c
    4371     mov cl, dl                                ; 88 d1
    4372     mov ax, word [bp+006h]                    ; 8b 46 06
    4373     sal ax, 004h                              ; c1 e0 04
    4374     mov bx, word [bp+010h]                    ; 8b 5e 10
    4375     add bx, ax                                ; 01 c3
    4376     mov word [bp-012h], bx                    ; 89 5e ee
    4377     cmp ax, bx                                ; 39 d8
    4378     jbe short 03351h                          ; 76 02
    4379     db  0feh, 0c1h
    4380     ; inc cl                                    ; fe c1
    4381     mov al, ch                                ; 88 e8
    4382     xor ah, ah                                ; 30 e4
    4383     mov bx, ax                                ; 89 c3
    4384     sal bx, 009h                              ; c1 e3 09
    4385     dec bx                                    ; 4b
    4386     mov ax, word [bp-012h]                    ; 8b 46 ee
    4387     add ax, bx                                ; 01 d8
    4388     cmp ax, word [bp-012h]                    ; 3b 46 ee
    4389     jnc short 03380h                          ; 73 1b
     4342    sal dx, 004h                              ; c1 e2 04
     4343    mov si, word [bp+010h]                    ; 8b 76 10
     4344    add si, dx                                ; 01 d6
     4345    mov word [bp-00ah], si                    ; 89 76 f6
     4346    cmp dx, si                                ; 39 f2
     4347    jbe short 0330dh                          ; 76 02
     4348    db  0feh, 0c4h
     4349    ; inc ah                                    ; fe c4
     4350    mov dl, bh                                ; 88 fa
     4351    xor dh, dh                                ; 30 f6
     4352    mov cx, dx                                ; 89 d1
     4353    sal cx, 009h                              ; c1 e1 09
     4354    dec cx                                    ; 49
     4355    mov dx, word [bp-00ah]                    ; 8b 56 f6
     4356    add dx, cx                                ; 01 ca
     4357    cmp dx, word [bp-00ah]                    ; 3b 56 f6
     4358    jnc short 03342h                          ; 73 21
    43904359    mov ax, word [bp+016h]                    ; 8b 46 16
    43914360    xor ah, ah                                ; 30 e4
    43924361    or ah, 009h                               ; 80 cc 09
    43934362    mov word [bp+016h], ax                    ; 89 46 16
    4394     mov ax, strict word 00009h                ; b8 09 00
    4395     call 02e09h                               ; e8 93 fa
     4363    mov bx, strict word 00041h                ; bb 41 00
     4364    mov ax, strict word 00040h                ; b8 40 00
     4365    mov es, ax                                ; 8e c0
     4366    mov byte [es:bx], 009h                    ; 26 c6 07 09
    43964367    mov byte [bp+016h], 000h                  ; c6 46 16 00
    4397     jmp near 035d0h                           ; e9 53 02
    4398     jmp near 034b5h                           ; e9 35 01
     4368    jmp near 039e3h                           ; e9 a4 06
     4369    jmp near 0348fh                           ; e9 4d 01
    43994370    mov AL, strict byte 006h                  ; b0 06
    44004371    mov dx, strict word 0000ah                ; ba 0a 00
     
    44034374    mov dx, strict word 0000ch                ; ba 0c 00
    44044375    out DX, AL                                ; ee
    4405     mov al, byte [bp-012h]                    ; 8a 46 ee
     4376    mov al, byte [bp-00ah]                    ; 8a 46 f6
    44064377    mov dx, strict word 00004h                ; ba 04 00
    44074378    out DX, AL                                ; ee
    4408     mov ax, word [bp-012h]                    ; 8b 46 ee
    4409     shr ax, 008h                              ; c1 e8 08
     4379    mov dx, word [bp-00ah]                    ; 8b 56 f6
     4380    shr dx, 008h                              ; c1 ea 08
     4381    mov al, dl                                ; 88 d0
     4382    mov dx, strict word 00004h                ; ba 04 00
    44104383    out DX, AL                                ; ee
    44114384    xor al, al                                ; 30 c0
    44124385    mov dx, strict word 0000ch                ; ba 0c 00
    44134386    out DX, AL                                ; ee
    4414     mov al, bl                                ; 88 d8
     4387    mov al, cl                                ; 88 c8
    44154388    mov dx, strict word 00005h                ; ba 05 00
    44164389    out DX, AL                                ; ee
    4417     mov ax, bx                                ; 89 d8
    4418     shr ax, 008h                              ; c1 e8 08
     4390    shr cx, 008h                              ; c1 e9 08
     4391    mov al, cl                                ; 88 c8
    44194392    out DX, AL                                ; ee
    44204393    mov AL, strict byte 046h                  ; b0 46
    44214394    mov dx, strict word 0000bh                ; ba 0b 00
    44224395    out DX, AL                                ; ee
    4423     mov al, cl                                ; 88 c8
     4396    mov al, ah                                ; 88 e0
    44244397    mov dx, 00081h                            ; ba 81 00
    44254398    out DX, AL                                ; ee
     
    44274400    mov dx, strict word 0000ah                ; ba 0a 00
    44284401    out DX, AL                                ; ee
    4429     mov bl, byte [bp-006h]                    ; 8a 5e fa
    4430     xor bh, bh                                ; 30 ff
    4431     mov ax, bx                                ; 89 d8
    4432     call 02f00h                               ; e8 38 fb
     4402    mov cl, bl                                ; 88 d9
     4403    xor ch, ch                                ; 30 ed
     4404    mov ax, cx                                ; 89 c8
     4405    call 02eceh                               ; e8 40 fb
    44334406    mov AL, strict byte 0e6h                  ; b0 e6
    44344407    mov dx, 003f5h                            ; ba f5 03
    44354408    out DX, AL                                ; ee
    4436     mov al, byte [bp-00ah]                    ; 8a 46 f6
     4409    mov al, byte [bp-002h]                    ; 8a 46 fe
    44374410    xor ah, ah                                ; 30 e4
    44384411    mov dx, ax                                ; 89 c2
     
    44424415    mov dx, 003f5h                            ; ba f5 03
    44434416    out DX, AL                                ; ee
    4444     mov al, byte [bp-008h]                    ; 8a 46 f8
    4445     out DX, AL                                ; ee
    4446     mov al, byte [bp-00ah]                    ; 8a 46 f6
    4447     out DX, AL                                ; ee
    4448     mov al, byte [bp-00ch]                    ; 8a 46 f4
     4417    mov al, byte [bp-006h]                    ; 8a 46 fa
     4418    out DX, AL                                ; ee
     4419    mov al, byte [bp-002h]                    ; 8a 46 fe
     4420    out DX, AL                                ; ee
     4421    mov al, byte [bp-004h]                    ; 8a 46 fc
    44494422    out DX, AL                                ; ee
    44504423    mov AL, strict byte 002h                  ; b0 02
    44514424    out DX, AL                                ; ee
    4452     mov al, byte [bp-00ch]                    ; 8a 46 f4
    4453     xor ah, ah                                ; 30 e4
    4454     mov dl, ch                                ; 88 ea
     4425    mov al, byte [bp-004h]                    ; 8a 46 fc
     4426    xor ah, ah                                ; 30 e4
     4427    mov dl, bh                                ; 88 fa
    44554428    xor dh, dh                                ; 30 f6
    44564429    add ax, dx                                ; 01 d0
     
    44624435    mov AL, strict byte 0ffh                  ; b0 ff
    44634436    out DX, AL                                ; ee
    4464     call 02e73h                               ; e8 6b fa
     4437    call 02e57h                               ; e8 89 fa
    44654438    test al, al                               ; 84 c0
    4466     jne short 03428h                          ; 75 1c
    4467     mov ax, bx                                ; 89 d8
    4468     call 02ebah                               ; e8 a9 fa
     4439    jne short 033f1h                          ; 75 1f
     4440    mov ax, cx                                ; 89 c8
     4441    call 02e8fh                               ; e8 b8 fa
    44694442    mov ax, word [bp+016h]                    ; 8b 46 16
    44704443    xor ah, ah                                ; 30 e4
    44714444    or ah, 080h                               ; 80 cc 80
    44724445    mov word [bp+016h], ax                    ; 89 46 16
    4473     mov ax, 00080h                            ; b8 80 00
    4474     call 02e09h                               ; e8 e7 f9
    4475     mov byte [bp+016h], bh                    ; 88 7e 16
    4476     jmp near 035d0h                           ; e9 a8 01
     4446    mov bx, strict word 00041h                ; bb 41 00
     4447    mov ax, strict word 00040h                ; b8 40 00
     4448    mov es, ax                                ; 8e c0
     4449    mov byte [es:bx], 080h                    ; 26 c6 07 80
     4450    jmp near 032e0h                           ; e9 ef fe
    44774451    mov dx, 003f4h                            ; ba f4 03
    44784452    in AL, DX                                 ; ec
     
    44814455    and AL, strict byte 0c0h                  ; 24 c0
    44824456    cmp AL, strict byte 0c0h                  ; 3c c0
    4483     je short 03442h                           ; 74 0e
     4457    je short 0340bh                           ; 74 0e
    44844458    push 00275h                               ; 68 75 02
    44854459    push 002a8h                               ; 68 a8 02
    44864460    push strict byte 00007h                   ; 6a 07
    4487     call 01966h                               ; e8 27 e5
     4461    call 01966h                               ; e8 5e e5
    44884462    add sp, strict byte 00006h                ; 83 c4 06
    4489     xor si, si                                ; 31 f6
    4490     jmp short 0344bh                          ; eb 05
    4491     cmp si, strict byte 00007h                ; 83 fe 07
    4492     jnl short 03464h                          ; 7d 19
     4463    xor cx, cx                                ; 31 c9
     4464    jmp short 03414h                          ; eb 05
     4465    cmp cx, strict byte 00007h                ; 83 f9 07
     4466    jnl short 0342ah                          ; 7d 16
    44934467    mov dx, 003f5h                            ; ba f5 03
    44944468    in AL, DX                                 ; ec
    44954469    db  02ah, 0e4h
    44964470    ; sub ah, ah                                ; 2a e4
    4497     mov byte [bp+si-01ch], al                 ; 88 42 e4
    4498     mov bl, al                                ; 88 c3
    4499     xor bh, bh                                ; 30 ff
    4500     lea dx, [si+042h]                         ; 8d 54 42
     4471    mov si, cx                                ; 89 ce
     4472    add si, strict byte 00042h                ; 83 c6 42
     4473    mov dx, strict word 00040h                ; ba 40 00
     4474    mov es, dx                                ; 8e c2
     4475    mov byte [es:si], al                      ; 26 88 04
     4476    inc cx                                    ; 41
     4477    jmp short 0340fh                          ; eb e5
     4478    mov si, strict word 00042h                ; be 42 00
    45014479    mov ax, strict word 00040h                ; b8 40 00
    4502     call 0165eh                               ; e8 fd e1
    4503     inc si                                    ; 46
    4504     jmp short 03446h                          ; eb e2
    4505     test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
    4506     je short 03483h                           ; 74 19
    4507     mov al, byte [bp-006h]                    ; 8a 46 fa
    4508     xor ah, ah                                ; 30 e4
    4509     call 02ebah                               ; e8 48 fa
     4480    mov es, ax                                ; 8e c0
     4481    mov al, byte [es:si]                      ; 26 8a 04
     4482    test AL, strict byte 0c0h                 ; a8 c0
     4483    je short 0345ah                           ; 74 21
     4484    mov al, bl                                ; 88 d8
     4485    xor ah, ah                                ; 30 e4
     4486    call 02e8fh                               ; e8 4f fa
    45104487    mov ax, word [bp+016h]                    ; 8b 46 16
    45114488    xor ah, ah                                ; 30 e4
    45124489    or ah, 020h                               ; 80 cc 20
    45134490    mov word [bp+016h], ax                    ; 89 46 16
    4514     mov ax, strict word 00020h                ; b8 20 00
    4515     jmp near 03373h                           ; e9 f0 fe
    4516     mov al, ch                                ; 88 e8
     4491    mov bx, strict word 00041h                ; bb 41 00
     4492    mov ax, strict word 00040h                ; b8 40 00
     4493    mov es, ax                                ; 8e c0
     4494    mov byte [es:bx], 020h                    ; 26 c6 07 20
     4495    jmp near 03338h                           ; e9 de fe
     4496    mov al, bh                                ; 88 f8
    45174497    xor ah, ah                                ; 30 e4
    45184498    sal ax, 009h                              ; c1 e0 09
     
    45244504    mov dx, word [bp+006h]                    ; 8b 56 06
    45254505    mov di, si                                ; 89 f7
     4506    mov cx, ax                                ; 89 c1
    45264507    mov es, dx                                ; 8e c2
    4527     mov cx, ax                                ; 89 c1
    45284508    push DS                                   ; 1e
    45294509    mov ds, dx                                ; 8e da
    45304510    rep movsw                                 ; f3 a5
    45314511    pop DS                                    ; 1f
    4532     mov dl, byte [bp-008h]                    ; 8a 56 f8
     4512    mov dl, byte [bp-006h]                    ; 8a 56 fa
    45334513    xor dh, dh                                ; 30 f6
    4534     mov al, byte [bp-006h]                    ; 8a 46 fa
    4535     xor ah, ah                                ; 30 e4
    4536     call 02e22h                               ; e8 74 f9
     4514    mov al, bl                                ; 88 d8
     4515    xor ah, ah                                ; 30 e4
     4516    call 02e09h                               ; e8 85 f9
    45374517    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4538     jmp near 03971h                           ; e9 bc 04
    4539     cmp byte [bp-00eh], 003h                  ; 80 7e f2 03
    4540     je short 034beh                           ; 74 03
    4541     jmp near 035deh                           ; e9 20 01
     4518    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     4519    jmp near 03206h                           ; e9 77 fd
     4520    mov ax, word [bp+016h]                    ; 8b 46 16
     4521    shr ax, 008h                              ; c1 e8 08
     4522    cmp ax, strict word 00003h                ; 3d 03 00
     4523    je short 0349dh                           ; 74 03
     4524    jmp near 035c8h                           ; e9 2b 01
     4525    mov cx, word [bp+006h]                    ; 8b 4e 06
     4526    shr cx, 00ch                              ; c1 e9 0c
     4527    mov ah, cl                                ; 88 cc
    45424528    mov dx, word [bp+006h]                    ; 8b 56 06
    4543     shr dx, 00ch                              ; c1 ea 0c
    4544     mov cl, dl                                ; 88 d1
    4545     mov ax, word [bp+006h]                    ; 8b 46 06
    4546     sal ax, 004h                              ; c1 e0 04
    4547     mov bx, word [bp+010h]                    ; 8b 5e 10
    4548     add bx, ax                                ; 01 c3
    4549     mov word [bp-012h], bx                    ; 89 5e ee
    4550     cmp ax, bx                                ; 39 d8
    4551     jbe short 034dah                          ; 76 02
    4552     db  0feh, 0c1h
    4553     ; inc cl                                    ; fe c1
    4554     mov al, ch                                ; 88 e8
    4555     xor ah, ah                                ; 30 e4
    4556     mov bx, ax                                ; 89 c3
    4557     sal bx, 009h                              ; c1 e3 09
    4558     dec bx                                    ; 4b
    4559     mov ax, word [bp-012h]                    ; 8b 46 ee
    4560     add ax, bx                                ; 01 d8
    4561     cmp ax, word [bp-012h]                    ; 3b 46 ee
    4562     jnc short 034f1h                          ; 73 03
    4563     jmp near 03365h                           ; e9 74 fe
     4529    sal dx, 004h                              ; c1 e2 04
     4530    mov si, word [bp+010h]                    ; 8b 76 10
     4531    add si, dx                                ; 01 d6
     4532    mov word [bp-00ah], si                    ; 89 76 f6
     4533    cmp dx, si                                ; 39 f2
     4534    jbe short 034b9h                          ; 76 02
     4535    db  0feh, 0c4h
     4536    ; inc ah                                    ; fe c4
     4537    mov dl, bh                                ; 88 fa
     4538    xor dh, dh                                ; 30 f6
     4539    mov cx, dx                                ; 89 d1
     4540    sal cx, 009h                              ; c1 e1 09
     4541    dec cx                                    ; 49
     4542    mov dx, word [bp-00ah]                    ; 8b 56 f6
     4543    add dx, cx                                ; 01 ca
     4544    cmp dx, word [bp-00ah]                    ; 3b 56 f6
     4545    jnc short 034d0h                          ; 73 03
     4546    jmp near 03321h                           ; e9 51 fe
    45644547    mov AL, strict byte 006h                  ; b0 06
    45654548    mov dx, strict word 0000ah                ; ba 0a 00
     
    45684551    mov dx, strict word 0000ch                ; ba 0c 00
    45694552    out DX, AL                                ; ee
    4570     mov al, byte [bp-012h]                    ; 8a 46 ee
     4553    mov al, byte [bp-00ah]                    ; 8a 46 f6
    45714554    mov dx, strict word 00004h                ; ba 04 00
    45724555    out DX, AL                                ; ee
    4573     mov ax, word [bp-012h]                    ; 8b 46 ee
    4574     shr ax, 008h                              ; c1 e8 08
     4556    mov dx, word [bp-00ah]                    ; 8b 56 f6
     4557    shr dx, 008h                              ; c1 ea 08
     4558    mov al, dl                                ; 88 d0
     4559    mov dx, strict word 00004h                ; ba 04 00
    45754560    out DX, AL                                ; ee
    45764561    xor al, al                                ; 30 c0
    45774562    mov dx, strict word 0000ch                ; ba 0c 00
    45784563    out DX, AL                                ; ee
    4579     mov al, bl                                ; 88 d8
     4564    mov al, cl                                ; 88 c8
    45804565    mov dx, strict word 00005h                ; ba 05 00
    45814566    out DX, AL                                ; ee
    4582     mov ax, bx                                ; 89 d8
    4583     shr ax, 008h                              ; c1 e8 08
     4567    shr cx, 008h                              ; c1 e9 08
     4568    mov al, cl                                ; 88 c8
    45844569    out DX, AL                                ; ee
    45854570    mov AL, strict byte 04ah                  ; b0 4a
    45864571    mov dx, strict word 0000bh                ; ba 0b 00
    45874572    out DX, AL                                ; ee
    4588     mov al, cl                                ; 88 c8
     4573    mov al, ah                                ; 88 e0
    45894574    mov dx, 00081h                            ; ba 81 00
    45904575    out DX, AL                                ; ee
     
    45924577    mov dx, strict word 0000ah                ; ba 0a 00
    45934578    out DX, AL                                ; ee
    4594     mov bl, byte [bp-006h]                    ; 8a 5e fa
    4595     xor bh, bh                                ; 30 ff
    4596     mov ax, bx                                ; 89 d8
    4597     call 02f00h                               ; e8 c7 f9
     4579    mov cl, bl                                ; 88 d9
     4580    xor ch, ch                                ; 30 ed
     4581    mov ax, cx                                ; 89 c8
     4582    call 02eceh                               ; e8 b2 f9
    45984583    mov AL, strict byte 0c5h                  ; b0 c5
    45994584    mov dx, 003f5h                            ; ba f5 03
    46004585    out DX, AL                                ; ee
    4601     mov al, byte [bp-00ah]                    ; 8a 46 f6
     4586    mov al, byte [bp-002h]                    ; 8a 46 fe
    46024587    xor ah, ah                                ; 30 e4
    46034588    mov dx, ax                                ; 89 c2
     
    46074592    mov dx, 003f5h                            ; ba f5 03
    46084593    out DX, AL                                ; ee
    4609     mov al, byte [bp-008h]                    ; 8a 46 f8
    4610     out DX, AL                                ; ee
    4611     mov al, byte [bp-00ah]                    ; 8a 46 f6
    4612     out DX, AL                                ; ee
    4613     mov al, byte [bp-00ch]                    ; 8a 46 f4
     4594    mov al, byte [bp-006h]                    ; 8a 46 fa
     4595    out DX, AL                                ; ee
     4596    mov al, byte [bp-002h]                    ; 8a 46 fe
     4597    out DX, AL                                ; ee
     4598    mov al, byte [bp-004h]                    ; 8a 46 fc
    46144599    out DX, AL                                ; ee
    46154600    mov AL, strict byte 002h                  ; b0 02
    46164601    out DX, AL                                ; ee
    4617     mov al, byte [bp-00ch]                    ; 8a 46 f4
    4618     xor ah, ah                                ; 30 e4
    4619     mov dl, ch                                ; 88 ea
     4602    mov dl, byte [bp-004h]                    ; 8a 56 fc
    46204603    xor dh, dh                                ; 30 f6
     4604    mov al, bh                                ; 88 f8
     4605    xor ah, ah                                ; 30 e4
    46214606    add ax, dx                                ; 01 d0
    46224607    dec ax                                    ; 48
     
    46274612    mov AL, strict byte 0ffh                  ; b0 ff
    46284613    out DX, AL                                ; ee
    4629     call 02e73h                               ; e8 fa f8
     4614    call 02e57h                               ; e8 fb f8
    46304615    test al, al                               ; 84 c0
    4631     jne short 03580h                          ; 75 03
    4632     jmp near 0340ch                           ; e9 8c fe
     4616    jne short 03563h                          ; 75 03
     4617    jmp near 033d2h                           ; e9 6f fe
    46334618    mov dx, 003f4h                            ; ba f4 03
    46344619    in AL, DX                                 ; ec
     
    46374622    and AL, strict byte 0c0h                  ; 24 c0
    46384623    cmp AL, strict byte 0c0h                  ; 3c c0
    4639     je short 0359ah                           ; 74 0e
     4624    je short 0357dh                           ; 74 0e
    46404625    push 00275h                               ; 68 75 02
    46414626    push 002a8h                               ; 68 a8 02
    46424627    push strict byte 00007h                   ; 6a 07
    4643     call 01966h                               ; e8 cf e3
     4628    call 01966h                               ; e8 ec e3
    46444629    add sp, strict byte 00006h                ; 83 c4 06
    4645     xor si, si                                ; 31 f6
    4646     jmp short 035a3h                          ; eb 05
    4647     cmp si, strict byte 00007h                ; 83 fe 07
    4648     jnl short 035bch                          ; 7d 19
     4630    xor cx, cx                                ; 31 c9
     4631    jmp short 03586h                          ; eb 05
     4632    cmp cx, strict byte 00007h                ; 83 f9 07
     4633    jnl short 0359ch                          ; 7d 16
    46494634    mov dx, 003f5h                            ; ba f5 03
    46504635    in AL, DX                                 ; ec
    46514636    db  02ah, 0e4h
    46524637    ; sub ah, ah                                ; 2a e4
    4653     mov byte [bp+si-01ch], al                 ; 88 42 e4
    4654     mov bl, al                                ; 88 c3
    4655     xor bh, bh                                ; 30 ff
    4656     lea dx, [si+042h]                         ; 8d 54 42
     4638    mov si, cx                                ; 89 ce
     4639    add si, strict byte 00042h                ; 83 c6 42
     4640    mov dx, strict word 00040h                ; ba 40 00
     4641    mov es, dx                                ; 8e c2
     4642    mov byte [es:si], al                      ; 26 88 04
     4643    inc cx                                    ; 41
     4644    jmp short 03581h                          ; eb e5
     4645    mov si, strict word 00042h                ; be 42 00
    46574646    mov ax, strict word 00040h                ; b8 40 00
    4658     call 0165eh                               ; e8 a5 e0
    4659     inc si                                    ; 46
    4660     jmp short 0359eh                          ; eb e2
    4661     test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
    4662     jne short 035c5h                          ; 75 03
    4663     jmp near 034a1h                           ; e9 dc fe
    4664     test byte [bp-01bh], 002h                 ; f6 46 e5 02
    4665     je short 035d7h                           ; 74 0c
     4647    mov es, ax                                ; 8e c0
     4648    mov al, byte [es:si]                      ; 26 8a 04
     4649    test AL, strict byte 0c0h                 ; a8 c0
     4650    jne short 035aeh                          ; 75 03
     4651    jmp near 03478h                           ; e9 ca fe
     4652    mov bx, strict word 00043h                ; bb 43 00
     4653    mov al, byte [es:bx]                      ; 26 8a 07
     4654    test AL, strict byte 002h                 ; a8 02
     4655    je short 035c0h                           ; 74 08
    46664656    mov word [bp+016h], 00300h                ; c7 46 16 00 03
    4667     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4668     jmp near 035f3h                           ; e9 1c 00
     4657    jmp near 039e3h                           ; e9 23 04
    46694658    mov word [bp+016h], 00100h                ; c7 46 16 00 01
    4670     jmp short 035d0h                          ; eb f2
    4671     mov dl, byte [bp-008h]                    ; 8a 56 f8
     4659    jmp near 039e3h                           ; e9 1b 04
     4660    mov dl, byte [bp-006h]                    ; 8a 56 fa
    46724661    xor dh, dh                                ; 30 f6
    4673     mov al, byte [bp-006h]                    ; 8a 46 fa
    4674     xor ah, ah                                ; 30 e4
    4675     call 02e22h                               ; e8 37 f8
     4662    mov al, bl                                ; 88 d8
     4663    xor ah, ah                                ; 30 e4
     4664    call 02e09h                               ; e8 35 f8
    46764665    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    46774666    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4678     lea sp, [bp-004h]                         ; 8d 66 fc
    4679     pop di                                    ; 5f
    4680     pop si                                    ; 5e
    4681     pop bp                                    ; 5d
    4682     retn                                      ; c3
    4683     mov ch, byte [bp+016h]                    ; 8a 6e 16
    4684     mov ax, word [bp+014h]                    ; 8b 46 14
     4667    jmp near 03206h                           ; e9 27 fc
     4668    mov bh, byte [bp+016h]                    ; 8a 7e 16
     4669    mov dx, word [bp+014h]                    ; 8b 56 14
     4670    shr dx, 008h                              ; c1 ea 08
     4671    mov byte [bp-006h], dl                    ; 88 56 fa
     4672    mov ax, word [bp+012h]                    ; 8b 46 12
    46854673    shr ax, 008h                              ; c1 e8 08
    4686     mov byte [bp-008h], al                    ; 88 46 f8
    4687     mov dx, word [bp+012h]                    ; 8b 56 12
    4688     shr dx, 008h                              ; c1 ea 08
    4689     mov byte [bp-00ah], dl                    ; 88 56 f6
     4674    mov byte [bp-002h], al                    ; 88 46 fe
    46904675    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    4691     mov byte [bp-006h], bl                    ; 88 5e fa
    46924676    cmp bl, 001h                              ; 80 fb 01
    4693     jnbe short 0362ch                         ; 77 12
    4694     cmp dl, 001h                              ; 80 fa 01
    4695     jnbe short 0362ch                         ; 77 0d
    4696     cmp AL, strict byte 04fh                  ; 3c 4f
    4697     jnbe short 0362ch                         ; 77 09
    4698     test ch, ch                               ; 84 ed
    4699     je short 0362ch                           ; 74 05
    4700     cmp ch, 012h                              ; 80 fd 12
    4701     jbe short 03641h                          ; 76 15
     4677    jnbe short 0360eh                         ; 77 12
     4678    cmp AL, strict byte 001h                  ; 3c 01
     4679    jnbe short 0360eh                         ; 77 0e
     4680    cmp dl, 04fh                              ; 80 fa 4f
     4681    jnbe short 0360eh                         ; 77 09
     4682    test bh, bh                               ; 84 ff
     4683    je short 0360eh                           ; 74 05
     4684    cmp bh, 012h                              ; 80 ff 12
     4685    jbe short 03629h                          ; 76 1b
    47024686    mov ax, word [bp+016h]                    ; 8b 46 16
    47034687    xor ah, ah                                ; 30 e4
    47044688    or ah, 001h                               ; 80 cc 01
    47054689    mov word [bp+016h], ax                    ; 89 46 16
    4706     mov ax, strict word 00001h                ; b8 01 00
    4707     call 02e09h                               ; e8 cc f7
     4690    mov si, strict word 00041h                ; be 41 00
     4691    mov ax, strict word 00040h                ; b8 40 00
     4692    mov es, ax                                ; 8e c0
     4693    mov byte [es:si], 001h                    ; 26 c6 04 01
    47084694    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4709     mov al, byte [bp-006h]                    ; 8a 46 fa
    4710     xor ah, ah                                ; 30 e4
    4711     call 03150h                               ; e8 07 fb
     4695    mov al, bl                                ; 88 d8
     4696    xor ah, ah                                ; 30 e4
     4697    call 03104h                               ; e8 d4 fa
    47124698    test ax, ax                               ; 85 c0
    4713     jne short 03650h                          ; 75 03
    4714     jmp near 03238h                           ; e9 e8 fb
    4715     mov dl, byte [bp-006h]                    ; 8a 56 fa
     4699    jne short 0364eh                          ; 75 1a
     4700    mov ax, word [bp+016h]                    ; 8b 46 16
     4701    xor ah, ah                                ; 30 e4
     4702    or ah, 080h                               ; 80 cc 80
     4703    mov word [bp+016h], ax                    ; 89 46 16
     4704    mov bx, strict word 00041h                ; bb 41 00
     4705    mov ax, strict word 00040h                ; b8 40 00
     4706    mov es, ax                                ; 8e c0
     4707    mov byte [es:bx], 080h                    ; 26 c6 07 80
     4708    jmp near 039e3h                           ; e9 95 03
     4709    mov cl, bl                                ; 88 d9
     4710    xor ch, ch                                ; 30 ed
     4711    mov ax, cx                                ; 89 c8
     4712    call 02f42h                               ; e8 eb f8
     4713    test ax, ax                               ; 85 c0
     4714    jne short 03667h                          ; 75 0c
     4715    mov ax, cx                                ; 89 c8
     4716    call 0301eh                               ; e8 be f9
     4717    test ax, ax                               ; 85 c0
     4718    jne short 03667h                          ; 75 03
     4719    jmp near 032c9h                           ; e9 62 fc
     4720    mov cx, word [bp+006h]                    ; 8b 4e 06
     4721    shr cx, 00ch                              ; c1 e9 0c
     4722    mov ah, cl                                ; 88 cc
     4723    mov dx, word [bp+006h]                    ; 8b 56 06
     4724    sal dx, 004h                              ; c1 e2 04
     4725    mov si, word [bp+010h]                    ; 8b 76 10
     4726    add si, dx                                ; 01 d6
     4727    mov word [bp-00ah], si                    ; 89 76 f6
     4728    cmp dx, si                                ; 39 f2
     4729    jbe short 03683h                          ; 76 02
     4730    db  0feh, 0c4h
     4731    ; inc ah                                    ; fe c4
     4732    mov dl, bh                                ; 88 fa
    47164733    xor dh, dh                                ; 30 f6
    4717     mov ax, dx                                ; 89 d0
    4718     call 02f83h                               ; e8 29 f9
    4719     test ax, ax                               ; 85 c0
    4720     jne short 0367eh                          ; 75 20
    4721     mov ax, dx                                ; 89 d0
    4722     call 03057h                               ; e8 f4 f9
    4723     test ax, ax                               ; 85 c0
    4724     jne short 0367eh                          ; 75 17
    4725     mov ax, word [bp+016h]                    ; 8b 46 16
    4726     xor ah, ah                                ; 30 e4
    4727     or ah, 00ch                               ; 80 cc 0c
    4728     mov word [bp+016h], ax                    ; 89 46 16
    4729     mov ax, strict word 0000ch                ; b8 0c 00
    4730     call 02e09h                               ; e8 91 f7
    4731     mov byte [bp+016h], dh                    ; 88 76 16
    4732     jmp near 035d0h                           ; e9 52 ff
    4733     mov dx, word [bp+006h]                    ; 8b 56 06
    4734     shr dx, 00ch                              ; c1 ea 0c
    4735     mov cl, dl                                ; 88 d1
    4736     mov ax, word [bp+006h]                    ; 8b 46 06
    4737     sal ax, 004h                              ; c1 e0 04
    4738     mov bx, word [bp+010h]                    ; 8b 5e 10
    4739     add bx, ax                                ; 01 c3
    4740     mov word [bp-012h], bx                    ; 89 5e ee
    4741     cmp ax, bx                                ; 39 d8
    4742     jbe short 0369ah                          ; 76 02
    4743     db  0feh, 0c1h
    4744     ; inc cl                                    ; fe c1
    4745     mov al, ch                                ; 88 e8
    4746     xor ah, ah                                ; 30 e4
    4747     mov bx, ax                                ; 89 c3
    4748     sal bx, 002h                              ; c1 e3 02
    4749     dec bx                                    ; 4b
    4750     mov ax, word [bp-012h]                    ; 8b 46 ee
    4751     add ax, bx                                ; 01 d8
    4752     cmp ax, word [bp-012h]                    ; 3b 46 ee
    4753     jnc short 036b1h                          ; 73 03
    4754     jmp near 03365h                           ; e9 b4 fc
     4734    mov cx, dx                                ; 89 d1
     4735    sal cx, 002h                              ; c1 e1 02
     4736    dec cx                                    ; 49
     4737    mov dx, word [bp-00ah]                    ; 8b 56 f6
     4738    add dx, cx                                ; 01 ca
     4739    cmp dx, word [bp-00ah]                    ; 3b 56 f6
     4740    jnc short 0369ah                          ; 73 03
     4741    jmp near 03321h                           ; e9 87 fc
    47554742    mov AL, strict byte 006h                  ; b0 06
    47564743    mov dx, strict word 0000ah                ; ba 0a 00
     
    47594746    mov dx, strict word 0000ch                ; ba 0c 00
    47604747    out DX, AL                                ; ee
    4761     mov al, byte [bp-012h]                    ; 8a 46 ee
     4748    mov al, byte [bp-00ah]                    ; 8a 46 f6
    47624749    mov dx, strict word 00004h                ; ba 04 00
    47634750    out DX, AL                                ; ee
    4764     mov ax, word [bp-012h]                    ; 8b 46 ee
    4765     shr ax, 008h                              ; c1 e8 08
     4751    mov dx, word [bp-00ah]                    ; 8b 56 f6
     4752    shr dx, 008h                              ; c1 ea 08
     4753    mov al, dl                                ; 88 d0
     4754    mov dx, strict word 00004h                ; ba 04 00
    47664755    out DX, AL                                ; ee
    47674756    xor al, al                                ; 30 c0
    47684757    mov dx, strict word 0000ch                ; ba 0c 00
    47694758    out DX, AL                                ; ee
    4770     mov al, bl                                ; 88 d8
     4759    mov al, cl                                ; 88 c8
    47714760    mov dx, strict word 00005h                ; ba 05 00
    47724761    out DX, AL                                ; ee
    4773     mov ax, bx                                ; 89 d8
    4774     shr ax, 008h                              ; c1 e8 08
     4762    shr cx, 008h                              ; c1 e9 08
     4763    mov al, cl                                ; 88 c8
    47754764    out DX, AL                                ; ee
    47764765    mov AL, strict byte 04ah                  ; b0 4a
    47774766    mov dx, strict word 0000bh                ; ba 0b 00
    47784767    out DX, AL                                ; ee
    4779     mov al, cl                                ; 88 c8
     4768    mov al, ah                                ; 88 e0
    47804769    mov dx, 00081h                            ; ba 81 00
    47814770    out DX, AL                                ; ee
     
    47834772    mov dx, strict word 0000ah                ; ba 0a 00
    47844773    out DX, AL                                ; ee
    4785     mov bl, byte [bp-006h]                    ; 8a 5e fa
    4786     xor bh, bh                                ; 30 ff
    4787     mov ax, bx                                ; 89 d8
    4788     call 02f00h                               ; e8 07 f8
     4774    mov cl, bl                                ; 88 d9
     4775    xor ch, ch                                ; 30 ed
     4776    mov ax, cx                                ; 89 c8
     4777    call 02eceh                               ; e8 e8 f7
    47894778    mov AL, strict byte 00fh                  ; b0 0f
    47904779    mov dx, 003f5h                            ; ba f5 03
    47914780    out DX, AL                                ; ee
    4792     mov al, byte [bp-00ah]                    ; 8a 46 f6
     4781    mov al, byte [bp-002h]                    ; 8a 46 fe
    47934782    xor ah, ah                                ; 30 e4
    47944783    mov dx, ax                                ; 89 c2
    47954784    sal dx, 002h                              ; c1 e2 02
    4796     or dx, bx                                 ; 09 da
    4797     mov word [bp-010h], dx                    ; 89 56 f0
    4798     mov al, byte [bp-010h]                    ; 8a 46 f0
     4785    mov al, bl                                ; 88 d8
     4786    or dx, ax                                 ; 09 c2
     4787    mov word [bp-008h], dx                    ; 89 56 f8
     4788    mov al, byte [bp-008h]                    ; 8a 46 f8
    47994789    mov dx, 003f5h                            ; ba f5 03
    48004790    out DX, AL                                ; ee
     4791    mov al, byte [bp-006h]                    ; 8a 46 fa
     4792    out DX, AL                                ; ee
     4793    mov AL, strict byte 04dh                  ; b0 4d
     4794    out DX, AL                                ; ee
    48014795    mov al, byte [bp-008h]                    ; 8a 46 f8
    48024796    out DX, AL                                ; ee
    4803     mov AL, strict byte 04dh                  ; b0 4d
    4804     out DX, AL                                ; ee
    4805     mov al, byte [bp-010h]                    ; 8a 46 f0
    4806     out DX, AL                                ; ee
    48074797    mov AL, strict byte 002h                  ; b0 02
    48084798    out DX, AL                                ; ee
    4809     mov al, ch                                ; 88 e8
    4810     out DX, AL                                ; ee
    4811     xor al, ch                                ; 30 e8
     4799    mov al, bh                                ; 88 f8
     4800    out DX, AL                                ; ee
     4801    xor al, bh                                ; 30 f8
    48124802    out DX, AL                                ; ee
    48134803    mov AL, strict byte 0f6h                  ; b0 f6
    48144804    out DX, AL                                ; ee
    4815     call 02e73h                               ; e8 44 f7
     4805    call 02e57h                               ; e8 39 f7
    48164806    test al, al                               ; 84 c0
    4817     jne short 0373bh                          ; 75 08
    4818     mov ax, bx                                ; 89 d8
    4819     call 02ebah                               ; e8 82 f7
    4820     jmp near 03238h                           ; e9 fd fa
     4807    jne short 0372ah                          ; 75 08
     4808    mov ax, cx                                ; 89 c8
     4809    call 02e8fh                               ; e8 68 f7
     4810    jmp near 03634h                           ; e9 0a ff
    48214811    mov dx, 003f4h                            ; ba f4 03
    48224812    in AL, DX                                 ; ec
     
    48254815    and AL, strict byte 0c0h                  ; 24 c0
    48264816    cmp AL, strict byte 0c0h                  ; 3c c0
    4827     je short 03755h                           ; 74 0e
     4817    je short 03744h                           ; 74 0e
    48284818    push 00275h                               ; 68 75 02
    48294819    push 002a8h                               ; 68 a8 02
    48304820    push strict byte 00007h                   ; 6a 07
    4831     call 01966h                               ; e8 14 e2
     4821    call 01966h                               ; e8 25 e2
    48324822    add sp, strict byte 00006h                ; 83 c4 06
    4833     xor si, si                                ; 31 f6
    4834     jmp short 0375eh                          ; eb 05
    4835     cmp si, strict byte 00007h                ; 83 fe 07
    4836     jnl short 03777h                          ; 7d 19
     4823    xor cx, cx                                ; 31 c9
     4824    jmp short 0374dh                          ; eb 05
     4825    cmp cx, strict byte 00007h                ; 83 f9 07
     4826    jnl short 03763h                          ; 7d 16
    48374827    mov dx, 003f5h                            ; ba f5 03
    48384828    in AL, DX                                 ; ec
    48394829    db  02ah, 0e4h
    48404830    ; sub ah, ah                                ; 2a e4
    4841     mov byte [bp+si-01ch], al                 ; 88 42 e4
    4842     mov bl, al                                ; 88 c3
    4843     xor bh, bh                                ; 30 ff
    4844     lea dx, [si+042h]                         ; 8d 54 42
     4831    mov si, cx                                ; 89 ce
     4832    add si, strict byte 00042h                ; 83 c6 42
     4833    mov dx, strict word 00040h                ; ba 40 00
     4834    mov es, dx                                ; 8e c2
     4835    mov byte [es:si], al                      ; 26 88 04
     4836    inc cx                                    ; 41
     4837    jmp short 03748h                          ; eb e5
     4838    mov si, strict word 00042h                ; be 42 00
    48454839    mov ax, strict word 00040h                ; b8 40 00
    4846     call 0165eh                               ; e8 ea de
    4847     inc si                                    ; 46
    4848     jmp short 03759h                          ; eb e2
    4849     test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
    4850     je short 03794h                           ; 74 17
    4851     test byte [bp-01bh], 002h                 ; f6 46 e5 02
    4852     je short 03786h                           ; 74 03
    4853     jmp near 035cbh                           ; e9 45 fe
     4840    mov es, ax                                ; 8e c0
     4841    mov al, byte [es:si]                      ; 26 8a 04
     4842    test AL, strict byte 0c0h                 ; a8 c0
     4843    je short 0378dh                           ; 74 1b
     4844    mov si, strict word 00043h                ; be 43 00
     4845    mov al, byte [es:si]                      ; 26 8a 04
     4846    test AL, strict byte 002h                 ; a8 02
     4847    je short 0377fh                           ; 74 03
     4848    jmp near 035b8h                           ; e9 39 fe
    48544849    push 00275h                               ; 68 75 02
    48554850    push 002bch                               ; 68 bc 02
    48564851    push strict byte 00007h                   ; 6a 07
    4857     call 01966h                               ; e8 d5 e1
     4852    call 01966h                               ; e8 dc e1
    48584853    add sp, strict byte 00006h                ; 83 c4 06
    4859     xor al, al                                ; 30 c0
    4860     mov byte [bp+017h], al                    ; 88 46 17
    4861     xor ah, ah                                ; 30 e4
    4862     call 02e09h                               ; e8 6b f6
    4863     mov al, byte [bp-006h]                    ; 8a 46 fa
     4854    mov byte [bp+017h], 000h                  ; c6 46 17 00
     4855    mov si, strict word 00041h                ; be 41 00
     4856    mov ax, strict word 00040h                ; b8 40 00
     4857    mov es, ax                                ; 8e c0
     4858    mov byte [es:si], 000h                    ; 26 c6 04 00
     4859    mov al, bl                                ; 88 d8
    48644860    xor ah, ah                                ; 30 e4
    48654861    xor dx, dx                                ; 31 d2
    4866     call 02e22h                               ; e8 7a f6
    4867     jmp near 03971h                           ; e9 c6 01
    4868     mov byte [bp-006h], al                    ; 88 46 fa
    4869     cmp AL, strict byte 001h                  ; 3c 01
    4870     jbe short 037d0h                          ; 76 1e
     4862    call 02e09h                               ; e8 63 f6
     4863    jmp near 03488h                           ; e9 df fc
     4864    mov bl, ah                                ; 88 e3
     4865    cmp ah, 001h                              ; 80 fc 01
     4866    jbe short 037ceh                          ; 76 1e
    48714867    xor ax, ax                                ; 31 c0
    48724868    mov word [bp+016h], ax                    ; 89 46 16
     
    48764872    mov word [bp+006h], ax                    ; 89 46 06
    48774873    mov word [bp+008h], ax                    ; 89 46 08
    4878     mov al, ch                                ; 88 e8
     4874    mov al, bh                                ; 88 f8
    48794875    xor ah, ah                                ; 30 e4
    48804876    mov word [bp+012h], ax                    ; 89 46 12
    4881     jmp near 038ech                           ; e9 1c 01
     4877    jmp near 038edh                           ; e9 1f 01
    48824878    mov ax, strict word 00010h                ; b8 10 00
    4883     call 016ach                               ; e8 d6 de
    4884     mov cl, al                                ; 88 c1
    4885     xor ch, ch                                ; 30 ed
     4879    call 016ach                               ; e8 d8 de
     4880    mov dl, al                                ; 88 c2
     4881    xor bh, bh                                ; 30 ff
    48864882    test AL, strict byte 0f0h                 ; a8 f0
    4887     je short 037e0h                           ; 74 02
    4888     mov CH, strict byte 001h                  ; b5 01
    4889     test cl, 00fh                             ; f6 c1 0f
    4890     je short 037e7h                           ; 74 02
    4891     db  0feh, 0c5h
    4892     ; inc ch                                    ; fe c5
    4893     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4894     jne short 037f2h                          ; 75 05
    4895     shr cl, 004h                              ; c0 e9 04
    4896     jmp short 037f5h                          ; eb 03
    4897     and cl, 00fh                              ; 80 e1 0f
     4883    je short 037deh                           ; 74 02
     4884    mov BH, strict byte 001h                  ; b7 01
     4885    test dl, 00fh                             ; f6 c2 0f
     4886    je short 037e5h                           ; 74 02
     4887    db  0feh, 0c7h
     4888    ; inc bh                                    ; fe c7
     4889    test bl, bl                               ; 84 db
     4890    jne short 037eeh                          ; 75 05
     4891    shr dl, 004h                              ; c0 ea 04
     4892    jmp short 037f1h                          ; eb 03
     4893    and dl, 00fh                              ; 80 e2 0f
    48984894    mov byte [bp+011h], 000h                  ; c6 46 11 00
    4899     mov al, cl                                ; 88 c8
     4895    mov al, dl                                ; 88 d0
    49004896    xor ah, ah                                ; 30 e4
    49014897    mov word [bp+010h], ax                    ; 89 46 10
    4902     xor al, cl                                ; 30 c8
     4898    xor al, dl                                ; 30 d0
    49034899    mov word [bp+016h], ax                    ; 89 46 16
    4904     mov dx, word [bp+012h]                    ; 8b 56 12
    4905     mov dl, ch                                ; 88 ea
    4906     mov word [bp+012h], dx                    ; 89 56 12
    4907     mov ax, dx                                ; 89 d0
    4908     xor ah, dh                                ; 30 f4
     4900    mov cx, word [bp+012h]                    ; 8b 4e 12
     4901    mov cl, bh                                ; 88 f9
     4902    mov word [bp+012h], cx                    ; 89 4e 12
     4903    mov ax, cx                                ; 89 c8
     4904    xor ah, ch                                ; 30 ec
    49094905    or ah, 001h                               ; 80 cc 01
    49104906    mov word [bp+012h], ax                    ; 89 46 12
    4911     cmp cl, 003h                              ; 80 f9 03
    4912     jc short 03831h                           ; 72 15
    4913     jbe short 03858h                          ; 76 3a
    4914     cmp cl, 005h                              ; 80 f9 05
    4915     jc short 0385fh                           ; 72 3c
    4916     jbe short 03866h                          ; 76 41
    4917     cmp cl, 00fh                              ; 80 f9 0f
    4918     je short 03874h                           ; 74 4a
    4919     cmp cl, 00eh                              ; 80 f9 0e
    4920     je short 0386dh                           ; 74 3e
    4921     jmp short 0387bh                          ; eb 4a
    4922     cmp cl, 002h                              ; 80 f9 02
    4923     je short 03851h                           ; 74 1b
    4924     cmp cl, 001h                              ; 80 f9 01
    4925     je short 0384ah                           ; 74 0f
    4926     test cl, cl                               ; 84 c9
    4927     jne short 0387bh                          ; 75 3c
     4907    cmp dl, 003h                              ; 80 fa 03
     4908    jc short 0382dh                           ; 72 15
     4909    jbe short 03854h                          ; 76 3a
     4910    cmp dl, 005h                              ; 80 fa 05
     4911    jc short 0385bh                           ; 72 3c
     4912    jbe short 03862h                          ; 76 41
     4913    cmp dl, 00fh                              ; 80 fa 0f
     4914    je short 03870h                           ; 74 4a
     4915    cmp dl, 00eh                              ; 80 fa 0e
     4916    je short 03869h                           ; 74 3e
     4917    jmp short 03877h                          ; eb 4a
     4918    cmp dl, 002h                              ; 80 fa 02
     4919    je short 0384dh                           ; 74 1b
     4920    cmp dl, 001h                              ; 80 fa 01
     4921    je short 03846h                           ; 74 0f
     4922    test dl, dl                               ; 84 d2
     4923    jne short 03877h                          ; 75 3c
    49284924    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    49294925    mov byte [bp+013h], 000h                  ; c6 46 13 00
    4930     jmp short 03889h                          ; eb 3f
     4926    jmp short 03885h                          ; eb 3f
    49314927    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    4932     jmp short 03889h                          ; eb 38
     4928    jmp short 03885h                          ; eb 38
    49334929    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    4934     jmp short 03889h                          ; eb 31
     4930    jmp short 03885h                          ; eb 31
    49354931    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    4936     jmp short 03889h                          ; eb 2a
     4932    jmp short 03885h                          ; eb 2a
    49374933    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    4938     jmp short 03889h                          ; eb 23
     4934    jmp short 03885h                          ; eb 23
    49394935    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
    4940     jmp short 03889h                          ; eb 1c
     4936    jmp short 03885h                          ; eb 1c
    49414937    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    4942     jmp short 03889h                          ; eb 15
     4938    jmp short 03885h                          ; eb 15
    49434939    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    4944     jmp short 03889h                          ; eb 0e
     4940    jmp short 03885h                          ; eb 0e
    49454941    push 00275h                               ; 68 75 02
    49464942    push 002cdh                               ; 68 cd 02
    49474943    push strict byte 00007h                   ; 6a 07
    4948     call 01966h                               ; e8 e0 e0
     4944    call 01966h                               ; e8 e4 e0
    49494945    add sp, strict byte 00006h                ; 83 c4 06
    49504946    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    4951     mov al, cl                                ; 88 c8
    4952     xor ah, ah                                ; 30 e4
    4953     call 03aech                               ; e8 57 02
     4947    mov al, dl                                ; 88 d0
     4948    xor ah, ah                                ; 30 e4
     4949    call 03b19h                               ; e8 88 02
    49544950    mov word [bp+008h], ax                    ; 89 46 08
    4955     jmp near 03971h                           ; e9 d6 00
    4956     mov byte [bp-006h], al                    ; 88 46 fa
    4957     cmp AL, strict byte 001h                  ; 3c 01
    4958     jbe short 038a7h                          ; 76 05
    4959     mov word [bp+016h], si                    ; 89 76 16
    4960     jmp short 038ech                          ; eb 45
     4951    jmp near 03488h                           ; e9 f1 fb
     4952    mov bl, ah                                ; 88 e3
     4953    cmp ah, 001h                              ; 80 fc 01
     4954    jbe short 038a3h                          ; 76 05
     4955    mov word [bp+016h], dx                    ; 89 56 16
     4956    jmp short 038edh                          ; eb 4a
    49614957    mov ax, strict word 00010h                ; b8 10 00
    4962     call 016ach                               ; e8 ff dd
    4963     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4964     jne short 038bah                          ; 75 07
    4965     mov cl, al                                ; 88 c1
    4966     shr cl, 004h                              ; c0 e9 04
    4967     jmp short 038bfh                          ; eb 05
    4968     mov cl, al                                ; 88 c1
    4969     and cl, 00fh                              ; 80 e1 0f
     4958    call 016ach                               ; e8 03 de
     4959    test bl, bl                               ; 84 db
     4960    jne short 038b4h                          ; 75 07
     4961    mov dl, al                                ; 88 c2
     4962    shr dl, 004h                              ; c0 ea 04
     4963    jmp short 038b9h                          ; eb 05
     4964    mov dl, al                                ; 88 c2
     4965    and dl, 00fh                              ; 80 e2 0f
    49704966    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    49714967    mov ax, word [bp+016h]                    ; 8b 46 16
    49724968    xor ah, ah                                ; 30 e4
    4973     test cl, cl                               ; 84 c9
    4974     je short 038d9h                           ; 74 0d
    4975     cmp cl, 001h                              ; 80 f9 01
    4976     jbe short 038d6h                          ; 76 05
     4969    test dl, dl                               ; 84 d2
     4970    je short 038d3h                           ; 74 0d
     4971    cmp dl, 001h                              ; 80 fa 01
     4972    jbe short 038d0h                          ; 76 05
    49774973    or ah, 002h                               ; 80 cc 02
    4978     jmp short 038d9h                          ; eb 03
     4974    jmp short 038d3h                          ; eb 03
    49794975    or ah, 001h                               ; 80 cc 01
    49804976    mov word [bp+016h], ax                    ; 89 46 16
    4981     jmp near 035f3h                           ; e9 14 fd
    4982     cmp AL, strict byte 001h                  ; 3c 01
    4983     jbe short 038f2h                          ; 76 0f
     4977    jmp near 03206h                           ; e9 2d f9
     4978    cmp ah, 001h                              ; 80 fc 01
     4979    jbe short 038f3h                          ; 76 15
    49844980    mov word [bp+016h], si                    ; 89 76 16
    4985     mov ax, strict word 00001h                ; b8 01 00
    4986     call 02e09h                               ; e8 1d f5
    4987     mov word [bp+01ch], dx                    ; 89 56 1c
    4988     jmp near 035f3h                           ; e9 01 fd
     4981    mov bx, strict word 00041h                ; bb 41 00
     4982    mov ax, strict word 00040h                ; b8 40 00
     4983    mov es, ax                                ; 8e c0
     4984    mov byte [es:bx], 001h                    ; 26 c6 07 01
     4985    mov word [bp+01ch], cx                    ; 89 4e 1c
     4986    jmp near 03206h                           ; e9 13 f9
    49894987    mov ax, word [bp+016h]                    ; 8b 46 16
    49904988    xor ah, ah                                ; 30 e4
    49914989    or ah, 006h                               ; 80 cc 06
    49924990    mov word [bp+016h], ax                    ; 89 46 16
    4993     mov ax, strict word 00006h                ; b8 06 00
    4994     jmp near 03205h                           ; e9 02 f9
    4995     mov byte [bp-006h], al                    ; 88 46 fa
    4996     mov bl, cl                                ; 88 cb
    4997     cmp AL, strict byte 001h                  ; 3c 01
    4998     jnbe short 038e3h                         ; 77 d7
    4999     mov al, byte [bp-006h]                    ; 8a 46 fa
    5000     xor ah, ah                                ; 30 e4
    5001     call 03150h                               ; e8 3c f8
     4991    mov bx, strict word 00041h                ; bb 41 00
     4992    mov ax, strict word 00040h                ; b8 40 00
     4993    mov es, ax                                ; 8e c0
     4994    mov byte [es:bx], 006h                    ; 26 c6 07 06
     4995    jmp near 039e3h                           ; e9 d6 00
     4996    mov bl, ah                                ; 88 e3
     4997    mov dl, byte [bp+016h]                    ; 8a 56 16
     4998    cmp ah, 001h                              ; 80 fc 01
     4999    jnbe short 038deh                         ; 77 c7
     5000    mov al, bl                                ; 88 d8
     5001    xor ah, ah                                ; 30 e4
     5002    call 03104h                               ; e8 e6 f7
    50025003    test ax, ax                               ; 85 c0
    5003     jne short 0391bh                          ; 75 03
    5004     jmp near 03238h                           ; e9 1d f9
    5005     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5006     je short 03926h                           ; 74 05
    5007     mov dx, 00091h                            ; ba 91 00
    5008     jmp short 03929h                          ; eb 03
    5009     mov dx, 00090h                            ; ba 90 00
    5010     mov word [bp-012h], dx                    ; 89 56 ee
     5004    jne short 03925h                          ; 75 03
     5005    jmp near 03634h                           ; e9 0f fd
     5006    test bl, bl                               ; 84 db
     5007    je short 0392eh                           ; 74 05
     5008    mov bx, 00091h                            ; bb 91 00
     5009    jmp short 03931h                          ; eb 03
     5010    mov bx, 00090h                            ; bb 90 00
     5011    mov word [bp-00ah], bx                    ; 89 5e f6
    50115012    mov ax, strict word 00040h                ; b8 40 00
    5012     call 01650h                               ; e8 1e dd
    5013     and AL, strict byte 00fh                  ; 24 0f
    5014     cmp bl, 002h                              ; 80 fb 02
    5015     jc short 03948h                           ; 72 0f
    5016     jbe short 03954h                          ; 76 19
    5017     cmp bl, 004h                              ; 80 fb 04
    5018     je short 03950h                           ; 74 10
    5019     cmp bl, 003h                              ; 80 fb 03
    5020     je short 03958h                           ; 74 13
    5021     jmp near 031f7h                           ; e9 af f8
    5022     cmp bl, 001h                              ; 80 fb 01
    5023     je short 03950h                           ; 74 03
    5024     jmp near 031f7h                           ; e9 a7 f8
    5025     or AL, strict byte 090h                   ; 0c 90
    5026     jmp short 0395ah                          ; eb 06
    5027     or AL, strict byte 070h                   ; 0c 70
    5028     jmp short 0395ah                          ; eb 02
    5029     or AL, strict byte 010h                   ; 0c 10
    5030     mov bl, al                                ; 88 c3
    5031     xor bh, bh                                ; 30 ff
    5032     mov dx, word [bp-012h]                    ; 8b 56 ee
     5013    mov es, ax                                ; 8e c0
     5014    mov bl, byte [es:bx]                      ; 26 8a 1f
     5015    and bl, 00fh                              ; 80 e3 0f
     5016    cmp dl, 002h                              ; 80 fa 02
     5017    jc short 03953h                           ; 72 0f
     5018    jbe short 03960h                          ; 76 1a
     5019    cmp dl, 004h                              ; 80 fa 04
     5020    je short 0395bh                           ; 74 10
     5021    cmp dl, 003h                              ; 80 fa 03
     5022    je short 03965h                           ; 74 15
     5023    jmp near 03191h                           ; e9 3e f8
     5024    cmp dl, 001h                              ; 80 fa 01
     5025    je short 0395bh                           ; 74 03
     5026    jmp near 03191h                           ; e9 36 f8
     5027    or bl, 090h                               ; 80 cb 90
     5028    jmp short 03968h                          ; eb 08
     5029    or bl, 070h                               ; 80 cb 70
     5030    jmp short 03968h                          ; eb 03
     5031    or bl, 010h                               ; 80 cb 10
    50335032    mov ax, strict word 00040h                ; b8 40 00
    5034     call 0165eh                               ; e8 f7 dc
     5033    mov es, ax                                ; 8e c0
     5034    mov si, word [bp-00ah]                    ; 8b 76 f6
     5035    mov byte [es:si], bl                      ; 26 88 1c
    50355036    xor al, al                                ; 30 c0
    50365037    mov byte [bp+017h], al                    ; 88 46 17
    5037     xor ah, ah                                ; 30 e4
    5038     call 02e09h                               ; e8 98 f4
    5039     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    5040     jmp near 035f3h                           ; e9 7b fc
    5041     mov byte [bp-006h], al                    ; 88 46 fa
    5042     mov ch, ah                                ; 88 e5
    5043     and ch, 03fh                              ; 80 e5 3f
     5038    mov bx, strict word 00041h                ; bb 41 00
     5039    mov byte [es:bx], al                      ; 26 88 07
     5040    jmp near 03488h                           ; e9 07 fb
    50445041    mov bl, ah                                ; 88 e3
    5045     xor bh, bh                                ; 30 ff
    5046     sar bx, 006h                              ; c1 fb 06
    5047     sal bx, 008h                              ; c1 e3 08
    5048     add bx, word [bp-014h]                    ; 03 5e ec
    5049     mov byte [bp-008h], bl                    ; 88 5e f8
    5050     cmp AL, strict byte 001h                  ; 3c 01
    5051     jbe short 03997h                          ; 76 03
    5052     jmp near 038e3h                           ; e9 4c ff
    5053     mov al, byte [bp-006h]                    ; 8a 46 fa
    5054     xor ah, ah                                ; 30 e4
    5055     call 03150h                               ; e8 b1 f7
     5042    mov dl, byte [bp+014h]                    ; 8a 56 14
     5043    mov bh, dl                                ; 88 d7
     5044    and bh, 03fh                              ; 80 e7 3f
     5045    sar dx, 006h                              ; c1 fa 06
     5046    sal dx, 008h                              ; c1 e2 08
     5047    mov word [bp-00ch], dx                    ; 89 56 f4
     5048    mov dx, word [bp+014h]                    ; 8b 56 14
     5049    shr dx, 008h                              ; c1 ea 08
     5050    add dx, word [bp-00ch]                    ; 03 56 f4
     5051    mov byte [bp-006h], dl                    ; 88 56 fa
     5052    cmp ah, 001h                              ; 80 fc 01
     5053    jbe short 039a8h                          ; 76 03
     5054    jmp near 038deh                           ; e9 36 ff
     5055    mov al, bl                                ; 88 d8
     5056    xor ah, ah                                ; 30 e4
     5057    call 03104h                               ; e8 55 f7
    50565058    test ax, ax                               ; 85 c0
    5057     jne short 039a6h                          ; 75 03
    5058     jmp near 03238h                           ; e9 92 f8
    5059     mov bl, byte [bp-006h]                    ; 8a 5e fa
    5060     xor bh, bh                                ; 30 ff
    5061     mov ax, bx                                ; 89 d8
    5062     call 02f83h                               ; e8 d3 f5
     5059    jne short 039b6h                          ; 75 03
     5060    jmp near 03634h                           ; e9 7e fc
     5061    mov cl, bl                                ; 88 d9
     5062    xor ch, ch                                ; 30 ed
     5063    mov ax, cx                                ; 89 c8
     5064    call 02f42h                               ; e8 83 f5
    50635065    test ax, ax                               ; 85 c0
    5064     jne short 039ceh                          ; 75 1a
    5065     mov ax, bx                                ; 89 d8
    5066     call 03057h                               ; e8 9e f6
     5066    jne short 039eah                          ; 75 27
     5067    mov ax, cx                                ; 89 c8
     5068    call 0301eh                               ; e8 56 f6
    50675069    test ax, ax                               ; 85 c0
    5068     jne short 039ceh                          ; 75 11
     5070    jne short 039eah                          ; 75 1e
    50695071    mov ax, word [bp+016h]                    ; 8b 46 16
    50705072    xor ah, ah                                ; 30 e4
    50715073    or ah, 00ch                               ; 80 cc 0c
    50725074    mov word [bp+016h], ax                    ; 89 46 16
    5073     mov ax, strict word 0000ch                ; b8 0c 00
    5074     jmp near 03205h                           ; e9 37 f8
     5075    mov bx, strict word 00041h                ; bb 41 00
     5076    mov ax, strict word 00040h                ; b8 40 00
     5077    mov es, ax                                ; 8e c0
     5078    mov byte [es:bx], 00ch                    ; 26 c6 07 0c
     5079    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     5080    jmp near 03206h                           ; e9 1c f8
    50755081    mov ax, strict word 00010h                ; b8 10 00
    5076     call 016ach                               ; e8 d8 dc
    5077     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5078     jne short 039e1h                          ; 75 07
    5079     mov cl, al                                ; 88 c1
    5080     shr cl, 004h                              ; c0 e9 04
    5081     jmp short 039e6h                          ; eb 05
    5082     mov cl, al                                ; 88 c1
    5083     and cl, 00fh                              ; 80 e1 0f
    5084     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5085     je short 039f1h                           ; 74 05
    5086     mov dx, 00091h                            ; ba 91 00
    5087     jmp short 039f4h                          ; eb 03
    5088     mov dx, 00090h                            ; ba 90 00
    5089     mov word [bp-012h], dx                    ; 89 56 ee
     5082    call 016ach                               ; e8 bc dc
     5083    test bl, bl                               ; 84 db
     5084    jne short 039fbh                          ; 75 07
     5085    mov dl, al                                ; 88 c2
     5086    shr dl, 004h                              ; c0 ea 04
     5087    jmp short 03a00h                          ; eb 05
     5088    mov dl, al                                ; 88 c2
     5089    and dl, 00fh                              ; 80 e2 0f
     5090    test bl, bl                               ; 84 db
     5091    je short 03a09h                           ; 74 05
     5092    mov si, 00091h                            ; be 91 00
     5093    jmp short 03a0ch                          ; eb 03
     5094    mov si, 00090h                            ; be 90 00
     5095    mov word [bp-00ah], si                    ; 89 76 f6
    50905096    mov ax, strict word 00040h                ; b8 40 00
    5091     call 01650h                               ; e8 53 dc
    5092     and AL, strict byte 00fh                  ; 24 0f
    5093     cmp cl, 003h                              ; 80 f9 03
    5094     jc short 03a20h                           ; 72 1c
    5095     mov ah, al                                ; 88 c4
    5096     or ah, 090h                               ; 80 cc 90
    5097     cmp cl, 003h                              ; 80 f9 03
    5098     jbe short 03a57h                          ; 76 49
    5099     mov dl, al                                ; 88 c2
    5100     or dl, 010h                               ; 80 ca 10
    5101     cmp cl, 005h                              ; 80 f9 05
    5102     je short 03a64h                           ; 74 4c
    5103     cmp cl, 004h                              ; 80 f9 04
    5104     je short 03a6ah                           ; 74 4d
    5105     jmp near 03a9bh                           ; e9 7b 00
    5106     cmp cl, 002h                              ; 80 f9 02
    5107     je short 03a39h                           ; 74 14
    5108     cmp cl, 001h                              ; 80 f9 01
    5109     jne short 03a68h                          ; 75 3e
    5110     cmp byte [bp-008h], 027h                  ; 80 7e f8 27
    5111     jne short 03a68h                          ; 75 38
    5112     cmp ch, 009h                              ; 80 fd 09
    5113     jne short 03a7eh                          ; 75 49
     5097    mov es, ax                                ; 8e c0
     5098    mov bl, byte [es:si]                      ; 26 8a 1c
     5099    and bl, 00fh                              ; 80 e3 0f
     5100    cmp dl, 003h                              ; 80 fa 03
     5101    jc short 03a3ah                           ; 72 1b
     5102    mov al, bl                                ; 88 d8
    51145103    or AL, strict byte 090h                   ; 0c 90
    5115     jmp short 03a7eh                          ; eb 45
    5116     cmp byte [bp-008h], 027h                  ; 80 7e f8 27
    5117     jne short 03a48h                          ; 75 09
    5118     cmp ch, 009h                              ; 80 fd 09
    5119     jne short 03a48h                          ; 75 04
    5120     or AL, strict byte 070h                   ; 0c 70
    5121     jmp short 03a7eh                          ; eb 36
    5122     cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
    5123     jne short 03a9bh                          ; 75 4d
    5124     cmp ch, 00fh                              ; 80 fd 0f
    5125     jne short 03a9bh                          ; 75 48
    5126     or AL, strict byte 010h                   ; 0c 10
    5127     jmp short 03a9bh                          ; eb 44
    5128     cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
    5129     jne short 03a9bh                          ; 75 3e
    5130     cmp ch, 009h                              ; 80 fd 09
    5131     je short 03a66h                           ; 74 04
    5132     jmp short 03a9bh                          ; eb 37
    5133     jmp short 03a80h                          ; eb 1a
    5134     mov al, ah                                ; 88 e0
    5135     jmp short 03a9bh                          ; eb 31
    5136     cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
    5137     jne short 03a9bh                          ; 75 2b
    5138     cmp ch, 009h                              ; 80 fd 09
    5139     jne short 03a77h                          ; 75 02
    5140     jmp short 03a66h                          ; eb ef
    5141     cmp ch, 012h                              ; 80 fd 12
    5142     jne short 03a9bh                          ; 75 1f
     5104    cmp dl, 003h                              ; 80 fa 03
     5105    jbe short 03a76h                          ; 76 4e
     5106    mov ah, bl                                ; 88 dc
     5107    or ah, 010h                               ; 80 cc 10
     5108    cmp dl, 005h                              ; 80 fa 05
     5109    je short 03a74h                           ; 74 42
     5110    cmp dl, 004h                              ; 80 fa 04
     5111    je short 03a83h                           ; 74 4c
     5112    jmp near 03abbh                           ; e9 81 00
     5113    cmp dl, 002h                              ; 80 fa 02
     5114    je short 03a54h                           ; 74 15
     5115    cmp dl, 001h                              ; 80 fa 01
     5116    jne short 03a87h                          ; 75 43
     5117    cmp byte [bp-006h], 027h                  ; 80 7e fa 27
     5118    jne short 03a87h                          ; 75 3d
     5119    cmp bh, 009h                              ; 80 ff 09
     5120    jne short 03a9dh                          ; 75 4e
     5121    or bl, 090h                               ; 80 cb 90
     5122    jmp short 03a9dh                          ; eb 49
     5123    cmp byte [bp-006h], 027h                  ; 80 7e fa 27
     5124    jne short 03a64h                          ; 75 0a
     5125    cmp bh, 009h                              ; 80 ff 09
     5126    jne short 03a64h                          ; 75 05
     5127    or bl, 070h                               ; 80 cb 70
     5128    jmp short 03a9dh                          ; eb 39
     5129    cmp byte [bp-006h], 04fh                  ; 80 7e fa 4f
     5130    jne short 03abbh                          ; 75 51
     5131    cmp bh, 00fh                              ; 80 ff 0f
     5132    jne short 03abbh                          ; 75 4c
     5133    or bl, 010h                               ; 80 cb 10
     5134    jmp short 03abbh                          ; eb 47
     5135    jmp short 03a9fh                          ; eb 29
     5136    cmp byte [bp-006h], 04fh                  ; 80 7e fa 4f
     5137    jne short 03abbh                          ; 75 3f
     5138    cmp bh, 009h                              ; 80 ff 09
     5139    je short 03a85h                           ; 74 04
     5140    jmp short 03abbh                          ; eb 38
     5141    jmp short 03a89h                          ; eb 04
     5142    mov bl, al                                ; 88 c3
     5143    jmp short 03abbh                          ; eb 32
     5144    cmp byte [bp-006h], 04fh                  ; 80 7e fa 4f
     5145    jne short 03abbh                          ; 75 2c
     5146    cmp bh, 009h                              ; 80 ff 09
     5147    jne short 03a96h                          ; 75 02
     5148    jmp short 03a85h                          ; eb ef
     5149    cmp bh, 012h                              ; 80 ff 12
     5150    jne short 03abbh                          ; 75 20
     5151    mov bl, ah                                ; 88 e3
     5152    jmp short 03abbh                          ; eb 1c
     5153    cmp byte [bp-006h], 04fh                  ; 80 7e fa 4f
     5154    jne short 03abbh                          ; 75 16
     5155    cmp bh, 009h                              ; 80 ff 09
     5156    jne short 03aach                          ; 75 02
     5157    jmp short 03a85h                          ; eb d9
     5158    cmp bh, 012h                              ; 80 ff 12
     5159    jne short 03ab3h                          ; 75 02
     5160    jmp short 03a9bh                          ; eb e8
     5161    cmp bh, 024h                              ; 80 ff 24
     5162    jne short 03abbh                          ; 75 03
     5163    or bl, 0d0h                               ; 80 cb d0
     5164    mov al, bl                                ; 88 d8
     5165    xor ah, ah                                ; 30 e4
     5166    sar ax, 004h                              ; c1 f8 04
     5167    test AL, strict byte 001h                 ; a8 01
     5168    jne short 03ac9h                          ; 75 03
     5169    jmp near 039cch                           ; e9 03 ff
     5170    mov ax, strict word 00040h                ; b8 40 00
     5171    mov es, ax                                ; 8e c0
     5172    mov si, word [bp-00ah]                    ; 8b 76 f6
     5173    mov byte [es:si], bl                      ; 26 88 1c
     5174    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    51435175    mov al, dl                                ; 88 d0
    5144     jmp short 03a9bh                          ; eb 1b
    5145     cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
    5146     jne short 03a9bh                          ; 75 15
    5147     cmp ch, 009h                              ; 80 fd 09
    5148     jne short 03a8dh                          ; 75 02
    5149     jmp short 03a66h                          ; eb d9
    5150     cmp ch, 012h                              ; 80 fd 12
    5151     jne short 03a94h                          ; 75 02
    5152     jmp short 03a7ch                          ; eb e8
    5153     cmp ch, 024h                              ; 80 fd 24
    5154     jne short 03a9bh                          ; 75 02
    5155     or AL, strict byte 0d0h                   ; 0c d0
    5156     mov dl, al                                ; 88 c2
    5157     xor dh, dh                                ; 30 f6
    5158     sar dx, 004h                              ; c1 fa 04
    5159     test dl, 001h                             ; f6 c2 01
    5160     jne short 03aaah                          ; 75 03
    5161     jmp near 039bdh                           ; e9 13 ff
    5162     mov bl, al                                ; 88 c3
    5163     xor bh, bh                                ; 30 ff
    5164     mov dx, word [bp-012h]                    ; 8b 56 ee
     5176    xor ah, ah                                ; 30 e4
     5177    call 03b19h                               ; e8 39 00
     5178    mov word [bp+008h], ax                    ; 89 46 08
     5179    mov byte [bp+017h], 000h                  ; c6 46 17 00
     5180    mov bx, strict word 00041h                ; bb 41 00
    51655181    mov ax, strict word 00040h                ; b8 40 00
    5166     call 0165eh                               ; e8 a7 db
    5167     mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    5168     mov al, cl                                ; 88 c8
    5169     xor ah, ah                                ; 30 e4
    5170     call 03aech                               ; e8 29 00
    5171     mov word [bp+008h], ax                    ; 89 46 08
    5172     jmp near 03967h                           ; e9 9e fe
     5182    mov es, ax                                ; 8e c0
     5183    mov byte [es:bx], 000h                    ; 26 c6 07 00
     5184    jmp near 03488h                           ; e9 92 f9
    51735185    mov bx, 00da0h                            ; bb a0 0d
    51745186    mov cx, ds                                ; 8c d9
    51755187    mov ax, strict word 00004h                ; b8 04 00
    5176     call 01923h                               ; e8 4f de
     5188    call 01923h                               ; e8 22 de
    51775189    mov ax, word [bp+016h]                    ; 8b 46 16
    51785190    shr ax, 008h                              ; c1 e8 08
     
    51815193    push 002e2h                               ; 68 e2 02
    51825194    push strict byte 00004h                   ; 6a 04
    5183     call 01966h                               ; e8 80 de
     5195    call 01966h                               ; e8 53 de
    51845196    add sp, strict byte 00008h                ; 83 c4 08
    5185     jmp near 031f7h                           ; e9 0b f7
    5186 get_floppy_dpt_:                             ; 0xf3aec LB 0x30
     5197    jmp near 03191h                           ; e9 78 f6
     5198get_floppy_dpt_:                             ; 0xf3b19 LB 0x30
    51875199    push bx                                   ; 53
    51885200    push dx                                   ; 52
     
    51915203    mov dl, al                                ; 88 c2
    51925204    xor ax, ax                                ; 31 c0
    5193     jmp short 03afdh                          ; eb 06
     5205    jmp short 03b2ah                          ; eb 06
    51945206    inc ax                                    ; 40
    51955207    cmp ax, strict word 00007h                ; 3d 07 00
    5196     jnc short 03b15h                          ; 73 18
     5208    jnc short 03b42h                          ; 73 18
    51975209    mov bx, ax                                ; 89 c3
    51985210    add bx, ax                                ; 01 c3
    51995211    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
    5200     jne short 03af7h                          ; 75 f0
     5212    jne short 03b24h                          ; 75 f0
    52015213    mov al, byte [word bx+0005ch]             ; 8a 87 5c 00
    52025214    xor ah, ah                                ; 30 e4
    52035215    imul ax, ax, strict byte 0000dh           ; 6b c0 0d
    52045216    add ax, strict word 00000h                ; 05 00 00
    5205     jmp short 03b18h                          ; eb 03
     5217    jmp short 03b45h                          ; eb 03
    52065218    mov ax, strict word 00041h                ; b8 41 00
    52075219    pop bp                                    ; 5d
     
    52095221    pop bx                                    ; 5b
    52105222    retn                                      ; c3
    5211 dummy_soft_reset_:                           ; 0xf3b1c LB 0x7
     5223dummy_soft_reset_:                           ; 0xf3b49 LB 0x7
    52125224    push bp                                   ; 55
    52135225    mov bp, sp                                ; 89 e5
     
    52155227    pop bp                                    ; 5d
    52165228    retn                                      ; c3
    5217 _cdemu_init:                                 ; 0xf3b23 LB 0x18
     5229_cdemu_init:                                 ; 0xf3b50 LB 0x18
    52185230    push bp                                   ; 55
    52195231    mov bp, sp                                ; 89 e5
    52205232    mov dx, strict word 0000eh                ; ba 0e 00
    52215233    mov ax, strict word 00040h                ; b8 40 00
    5222     call 0166ch                               ; e8 3d db
     5234    call 0166ch                               ; e8 10 db
    52235235    xor bx, bx                                ; 31 db
    52245236    mov dx, 00366h                            ; ba 66 03
    5225     call 0165eh                               ; e8 27 db
     5237    call 0165eh                               ; e8 fa da
    52265238    mov sp, bp                                ; 89 ec
    52275239    pop bp                                    ; 5d
    52285240    retn                                      ; c3
    5229 _cdemu_isactive:                             ; 0xf3b3b LB 0x16
     5241_cdemu_isactive:                             ; 0xf3b68 LB 0x16
    52305242    push bp                                   ; 55
    52315243    mov bp, sp                                ; 89 e5
    52325244    mov dx, strict word 0000eh                ; ba 0e 00
    52335245    mov ax, strict word 00040h                ; b8 40 00
    5234     call 0166ch                               ; e8 25 db
     5246    call 0166ch                               ; e8 f8 da
    52355247    mov dx, 00366h                            ; ba 66 03
    5236     call 01650h                               ; e8 03 db
     5248    call 01650h                               ; e8 d6 da
    52375249    mov sp, bp                                ; 89 ec
    52385250    pop bp                                    ; 5d
    52395251    retn                                      ; c3
    5240 _cdemu_emulated_drive:                       ; 0xf3b51 LB 0x16
     5252_cdemu_emulated_drive:                       ; 0xf3b7e LB 0x16
    52415253    push bp                                   ; 55
    52425254    mov bp, sp                                ; 89 e5
    52435255    mov dx, strict word 0000eh                ; ba 0e 00
    52445256    mov ax, strict word 00040h                ; b8 40 00
    5245     call 0166ch                               ; e8 0f db
     5257    call 0166ch                               ; e8 e2 da
    52465258    mov dx, 00368h                            ; ba 68 03
    5247     call 01650h                               ; e8 ed da
     5259    call 01650h                               ; e8 c0 da
    52485260    mov sp, bp                                ; 89 ec
    52495261    pop bp                                    ; 5d
    52505262    retn                                      ; c3
    5251 _int13_eltorito:                             ; 0xf3b67 LB 0x190
     5263_int13_eltorito:                             ; 0xf3b94 LB 0x190
    52525264    push bp                                   ; 55
    52535265    mov bp, sp                                ; 89 e5
     
    52565268    mov dx, strict word 0000eh                ; ba 0e 00
    52575269    mov ax, strict word 00040h                ; b8 40 00
    5258     call 0166ch                               ; e8 f7 da
     5270    call 0166ch                               ; e8 ca da
    52595271    mov si, 00366h                            ; be 66 03
    52605272    mov di, ax                                ; 89 c7
     
    52625274    shr ax, 008h                              ; c1 e8 08
    52635275    cmp ax, strict word 0004bh                ; 3d 4b 00
    5264     jc short 03b8fh                           ; 72 0a
    5265     jbe short 03bb6h                          ; 76 2f
     5276    jc short 03bbch                           ; 72 0a
     5277    jbe short 03be3h                          ; 76 2f
    52665278    cmp ax, strict word 0004dh                ; 3d 4d 00
    5267     jbe short 03b94h                          ; 76 08
    5268     jmp near 03cbbh                           ; e9 2c 01
     5279    jbe short 03bc1h                          ; 76 08
     5280    jmp near 03ce8h                           ; e9 2c 01
    52695281    cmp ax, strict word 0004ah                ; 3d 4a 00
    5270     jne short 03bb3h                          ; 75 1f
     5282    jne short 03be0h                          ; 75 1f
    52715283    mov bx, 00da0h                            ; bb a0 0d
    52725284    mov cx, ds                                ; 8c d9
    52735285    mov ax, strict word 00004h                ; b8 04 00
    5274     call 01923h                               ; e8 84 dd
     5286    call 01923h                               ; e8 57 dd
    52755287    push word [bp+016h]                       ; ff 76 16
    52765288    push 002fch                               ; 68 fc 02
    52775289    push 0030bh                               ; 68 0b 03
    52785290    push strict byte 00004h                   ; 6a 04
    5279     call 01966h                               ; e8 b9 dd
     5291    call 01966h                               ; e8 8c dd
    52805292    add sp, strict byte 00008h                ; 83 c4 08
    5281     jmp near 03cd6h                           ; e9 23 01
    5282     jmp near 03cbbh                           ; e9 05 01
     5293    jmp near 03d03h                           ; e9 23 01
     5294    jmp near 03ce8h                           ; e9 05 01
    52835295    mov dx, word [bp+00ah]                    ; 8b 56 0a
    52845296    mov ax, word [bp+004h]                    ; 8b 46 04
    52855297    mov bx, strict word 00013h                ; bb 13 00
    5286     call 0165eh                               ; e8 9c da
     5298    call 0165eh                               ; e8 6f da
    52875299    mov es, di                                ; 8e c7
    52885300    mov bl, byte [es:si+001h]                 ; 26 8a 5c 01
     
    52915303    inc dx                                    ; 42
    52925304    mov ax, word [bp+004h]                    ; 8b 46 04
    5293     call 0165eh                               ; e8 8a da
     5305    call 0165eh                               ; e8 5d da
    52945306    mov es, di                                ; 8e c7
    52955307    mov bl, byte [es:si+002h]                 ; 26 8a 5c 02
     
    52995311    inc dx                                    ; 42
    53005312    mov ax, word [bp+004h]                    ; 8b 46 04
    5301     call 0165eh                               ; e8 77 da
     5313    call 0165eh                               ; e8 4a da
    53025314    mov es, di                                ; 8e c7
    53035315    mov bl, byte [es:si+003h]                 ; 26 8a 5c 03
     
    53065318    add dx, strict byte 00003h                ; 83 c2 03
    53075319    mov ax, word [bp+004h]                    ; 8b 46 04
    5308     call 0165eh                               ; e8 63 da
     5320    call 0165eh                               ; e8 36 da
    53095321    mov es, di                                ; 8e c7
    53105322    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    53135325    add dx, strict byte 00004h                ; 83 c2 04
    53145326    mov ax, word [bp+004h]                    ; 8b 46 04
    5315     call 0169ah                               ; e8 89 da
     5327    call 0169ah                               ; e8 5c da
    53165328    mov es, di                                ; 8e c7
    53175329    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    53195331    add dx, strict byte 00008h                ; 83 c2 08
    53205332    mov ax, word [bp+004h]                    ; 8b 46 04
    5321     call 0167ah                               ; e8 57 da
     5333    call 0167ah                               ; e8 2a da
    53225334    mov es, di                                ; 8e c7
    53235335    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    53255337    add dx, strict byte 0000ah                ; 83 c2 0a
    53265338    mov ax, word [bp+004h]                    ; 8b 46 04
    5327     call 0167ah                               ; e8 45 da
     5339    call 0167ah                               ; e8 18 da
    53285340    mov es, di                                ; 8e c7
    53295341    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    53315343    add dx, strict byte 0000ch                ; 83 c2 0c
    53325344    mov ax, word [bp+004h]                    ; 8b 46 04
    5333     call 0167ah                               ; e8 33 da
     5345    call 0167ah                               ; e8 06 da
    53345346    mov es, di                                ; 8e c7
    53355347    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    53375349    add dx, strict byte 0000eh                ; 83 c2 0e
    53385350    mov ax, word [bp+004h]                    ; 8b 46 04
    5339     call 0167ah                               ; e8 21 da
     5351    call 0167ah                               ; e8 f4 d9
    53405352    mov es, di                                ; 8e c7
    53415353    mov bl, byte [es:si+012h]                 ; 26 8a 5c 12
     
    53445356    add dx, strict byte 00010h                ; 83 c2 10
    53455357    mov ax, word [bp+004h]                    ; 8b 46 04
    5346     call 0165eh                               ; e8 f1 d9
     5358    call 0165eh                               ; e8 c4 d9
    53475359    mov es, di                                ; 8e c7
    53485360    mov bl, byte [es:si+014h]                 ; 26 8a 5c 14
     
    53515363    add dx, strict byte 00011h                ; 83 c2 11
    53525364    mov ax, word [bp+004h]                    ; 8b 46 04
    5353     call 0165eh                               ; e8 dd d9
     5365    call 0165eh                               ; e8 b0 d9
    53545366    mov es, di                                ; 8e c7
    53555367    mov bl, byte [es:si+010h]                 ; 26 8a 5c 10
     
    53585370    add dx, strict byte 00012h                ; 83 c2 12
    53595371    mov ax, word [bp+004h]                    ; 8b 46 04
    5360     call 0165eh                               ; e8 c9 d9
     5372    call 0165eh                               ; e8 9c d9
    53615373    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    5362     jne short 03ca1h                          ; 75 06
     5374    jne short 03cceh                          ; 75 06
    53635375    mov es, di                                ; 8e c7
    53645376    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    53675379    mov dx, strict word 00074h                ; ba 74 00
    53685380    mov ax, strict word 00040h                ; b8 40 00
    5369     call 0165eh                               ; e8 ae d9
     5381    call 0165eh                               ; e8 81 d9
    53705382    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    53715383    lea sp, [bp-004h]                         ; 8d 66 fc
     
    53775389    mov cx, ds                                ; 8c d9
    53785390    mov ax, strict word 00004h                ; b8 04 00
    5379     call 01923h                               ; e8 5d dc
     5391    call 01923h                               ; e8 30 dc
    53805392    mov ax, word [bp+016h]                    ; 8b 46 16
    53815393    shr ax, 008h                              ; c1 e8 08
     
    53835395    push 002fch                               ; 68 fc 02
    53845396    push 00333h                               ; 68 33 03
    5385     jmp near 03ba8h                           ; e9 d2 fe
     5397    jmp near 03bd5h                           ; e9 d2 fe
    53865398    mov ax, word [bp+016h]                    ; 8b 46 16
    53875399    xor ah, ah                                ; 30 e4
     
    53935405    mov dx, strict word 00074h                ; ba 74 00
    53945406    mov ax, strict word 00040h                ; b8 40 00
    5395     call 0165eh                               ; e8 6d d9
     5407    call 0165eh                               ; e8 40 d9
    53965408    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5397     jmp short 03cb4h                          ; eb bd
    5398 device_is_cdrom_:                            ; 0xf3cf7 LB 0x35
     5409    jmp short 03ce1h                          ; eb bd
     5410device_is_cdrom_:                            ; 0xf3d24 LB 0x35
    53995411    push bp                                   ; 55
    54005412    mov bp, sp                                ; 89 e5
     
    54045416    mov dx, strict word 0000eh                ; ba 0e 00
    54055417    mov ax, strict word 00040h                ; b8 40 00
    5406     call 0166ch                               ; e8 65 d9
     5418    call 0166ch                               ; e8 38 d9
    54075419    cmp bl, 010h                              ; 80 fb 10
    5408     jc short 03d10h                           ; 72 04
     5420    jc short 03d3dh                           ; 72 04
    54095421    xor ax, ax                                ; 31 c0
    5410     jmp short 03d25h                          ; eb 15
     5422    jmp short 03d52h                          ; eb 15
    54115423    xor bh, bh                                ; 30 ff
    54125424    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    54145426    add bx, 00122h                            ; 81 c3 22 01
    54155427    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    5416     jne short 03d0ch                          ; 75 ea
     5428    jne short 03d39h                          ; 75 ea
    54175429    mov ax, strict word 00001h                ; b8 01 00
    54185430    lea sp, [bp-004h]                         ; 8d 66 fc
     
    54215433    pop bp                                    ; 5d
    54225434    retn                                      ; c3
    5423 cdrom_boot_:                                 ; 0xf3d2c LB 0x434
     5435cdrom_boot_:                                 ; 0xf3d59 LB 0x435
    54245436    push bp                                   ; 55
    54255437    mov bp, sp                                ; 89 e5
     
    54325444    mov dx, strict word 0000eh                ; ba 0e 00
    54335445    mov ax, strict word 00040h                ; b8 40 00
    5434     call 0166ch                               ; e8 2b d9
    5435     mov word [bp-01ah], ax                    ; 89 46 e6
     5446    call 0166ch                               ; e8 fe d8
     5447    mov word [bp-012h], ax                    ; 89 46 ee
    54365448    mov si, 00366h                            ; be 66 03
    5437     mov word [bp-016h], ax                    ; 89 46 ea
    5438     mov word [bp-018h], 00122h                ; c7 46 e8 22 01
    5439     mov word [bp-012h], ax                    ; 89 46 ee
     5449    mov word [bp-014h], ax                    ; 89 46 ec
     5450    mov word [bp-016h], 00122h                ; c7 46 ea 22 01
     5451    mov word [bp-010h], ax                    ; 89 46 f0
    54405452    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    5441     jmp short 03d61h                          ; eb 09
     5453    jmp short 03d8eh                          ; eb 09
    54425454    inc byte [bp-00ch]                        ; fe 46 f4
    54435455    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5444     jnc short 03d6dh                          ; 73 0c
     5456    jnc short 03d9ah                          ; 73 0c
    54455457    mov al, byte [bp-00ch]                    ; 8a 46 f4
    54465458    xor ah, ah                                ; 30 e4
    5447     call 03cf7h                               ; e8 8e ff
     5459    call 03d24h                               ; e8 8e ff
    54485460    test ax, ax                               ; 85 c0
    5449     je short 03d58h                           ; 74 eb
     5461    je short 03d85h                           ; 74 eb
    54505462    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5451     jc short 03d79h                           ; 72 06
     5463    jc short 03da6h                           ; 72 06
    54525464    mov ax, strict word 00002h                ; b8 02 00
    5453     jmp near 040fdh                           ; e9 84 03
     5465    jmp near 0412bh                           ; e9 85 03
    54545466    mov cx, strict word 0000ch                ; b9 0c 00
    54555467    xor bx, bx                                ; 31 db
    54565468    mov dx, ss                                ; 8c d2
    54575469    lea ax, [bp-026h]                         ; 8d 46 da
    5458     call 0a000h                               ; e8 7a 62
     5470    call 0a030h                               ; e8 7d 62
    54595471    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    54605472    mov ax, strict word 00011h                ; b8 11 00
     
    54685480    xchg ah, al                               ; 86 c4
    54695481    mov word [bp-01fh], ax                    ; 89 46 e1
    5470     mov es, [bp-012h]                         ; 8e 46 ee
    5471     mov bx, word [bp-018h]                    ; 8b 5e e8
     5482    mov es, [bp-010h]                         ; 8e 46 f0
     5483    mov bx, word [bp-016h]                    ; 8b 5e ea
    54725484    mov word [es:bx+00eh], strict word 00001h ; 26 c7 47 0e 01 00
    54735485    mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
    54745486    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    5475     jmp short 03dc4h                          ; eb 09
     5487    jmp short 03df1h                          ; eb 09
    54765488    inc byte [bp-00eh]                        ; fe 46 f2
    54775489    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
    5478     jnbe short 03e00h                         ; 77 3c
     5490    jnbe short 03e2dh                         ; 77 3c
    54795491    mov al, byte [bp-00ch]                    ; 8a 46 f4
    54805492    xor ah, ah                                ; 30 e4
    54815493    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    5482     mov es, [bp-012h]                         ; 8e 46 ee
    5483     mov bx, word [bp-018h]                    ; 8b 5e e8
     5494    mov es, [bp-010h]                         ; 8e 46 f0
     5495    mov bx, word [bp-016h]                    ; 8b 5e ea
    54845496    add bx, ax                                ; 01 c3
    54855497    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
     
    55005512    call word [word di+0006ah]                ; ff 95 6a 00
    55015513    test ax, ax                               ; 85 c0
    5502     jne short 03dbbh                          ; 75 bb
     5514    jne short 03de8h                          ; 75 bb
    55035515    test ax, ax                               ; 85 c0
    5504     je short 03e0ah                           ; 74 06
     5516    je short 03e37h                           ; 74 06
    55055517    mov ax, strict word 00003h                ; b8 03 00
    5506     jmp near 040fdh                           ; e9 f3 02
     5518    jmp near 0412bh                           ; e9 f4 02
    55075519    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    5508     je short 03e17h                           ; 74 06
     5520    je short 03e44h                           ; 74 06
    55095521    mov ax, strict word 00004h                ; b8 04 00
    5510     jmp near 040fdh                           ; e9 e6 02
     5522    jmp near 0412bh                           ; e9 e7 02
    55115523    xor di, di                                ; 31 ff
    5512     jmp short 03e21h                          ; eb 06
     5524    jmp short 03e4eh                          ; eb 06
    55135525    inc di                                    ; 47
    55145526    cmp di, strict byte 00005h                ; 83 ff 05
    5515     jnc short 03e31h                          ; 73 10
     5527    jnc short 03e5eh                          ; 73 10
    55165528    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    55175529    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
    5518     je short 03e1bh                           ; 74 f0
     5530    je short 03e48h                           ; 74 f0
    55195531    mov ax, strict word 00005h                ; b8 05 00
    5520     jmp near 040fdh                           ; e9 cc 02
     5532    jmp near 0412bh                           ; e9 cd 02
    55215533    xor di, di                                ; 31 ff
    5522     jmp short 03e3bh                          ; eb 06
     5534    jmp short 03e68h                          ; eb 06
    55235535    inc di                                    ; 47
    55245536    cmp di, strict byte 00017h                ; 83 ff 17
    5525     jnc short 03e4bh                          ; 73 10
     5537    jnc short 03e78h                          ; 73 10
    55265538    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    55275539    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
    5528     je short 03e35h                           ; 74 f0
     5540    je short 03e62h                           ; 74 f0
    55295541    mov ax, strict word 00006h                ; b8 06 00
    5530     jmp near 040fdh                           ; e9 b2 02
     5542    jmp near 0412bh                           ; e9 b3 02
    55315543    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    55325544    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    55435555    xor ah, ah                                ; 30 e4
    55445556    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    5545     mov es, [bp-012h]                         ; 8e 46 ee
    5546     mov bx, word [bp-018h]                    ; 8b 5e e8
     5557    mov es, [bp-010h]                         ; 8e 46 f0
     5558    mov bx, word [bp-016h]                    ; 8b 5e ea
    55475559    add bx, ax                                ; 01 c3
    55485560    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
     
    55635575    call word [word di+0006ah]                ; ff 95 6a 00
    55645576    test ax, ax                               ; 85 c0
    5565     je short 03eadh                           ; 74 06
     5577    je short 03edah                           ; 74 06
    55665578    mov ax, strict word 00007h                ; b8 07 00
    5567     jmp near 040fdh                           ; e9 50 02
     5579    jmp near 0412bh                           ; e9 51 02
    55685580    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    5569     je short 03ebah                           ; 74 06
     5581    je short 03ee7h                           ; 74 06
    55705582    mov ax, strict word 00008h                ; b8 08 00
    5571     jmp near 040fdh                           ; e9 43 02
     5583    jmp near 0412bh                           ; e9 44 02
    55725584    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    5573     je short 03ec7h                           ; 74 06
     5585    je short 03ef4h                           ; 74 06
    55745586    mov ax, strict word 00009h                ; b8 09 00
    5575     jmp near 040fdh                           ; e9 36 02
     5587    jmp near 0412bh                           ; e9 37 02
    55765588    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    5577     je short 03ed4h                           ; 74 06
     5589    je short 03f01h                           ; 74 06
    55785590    mov ax, strict word 0000ah                ; b8 0a 00
    5579     jmp near 040fdh                           ; e9 29 02
     5591    jmp near 0412bh                           ; e9 2a 02
    55805592    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    5581     jne short 03eceh                          ; 75 f3
     5593    jne short 03efbh                          ; 75 f3
    55825594    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    5583     je short 03ee8h                           ; 74 06
     5595    je short 03f15h                           ; 74 06
    55845596    mov ax, strict word 0000bh                ; b8 0b 00
    5585     jmp near 040fdh                           ; e9 15 02
     5597    jmp near 0412bh                           ; e9 16 02
    55865598    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    5587     mov es, [bp-016h]                         ; 8e 46 ea
     5599    mov es, [bp-014h]                         ; 8e 46 ec
    55885600    mov byte [es:si+001h], al                 ; 26 88 44 01
    55895601    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    5590     jne short 03f01h                          ; 75 07
     5602    jne short 03f2eh                          ; 75 07
    55915603    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    5592     jmp short 03f14h                          ; eb 13
     5604    jmp short 03f41h                          ; eb 13
    55935605    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    5594     jnc short 03f0fh                          ; 73 07
     5606    jnc short 03f3ch                          ; 73 07
    55955607    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    5596     jmp short 03f14h                          ; eb 05
     5608    jmp short 03f41h                          ; eb 05
    55975609    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    55985610    mov bl, byte [bp-00ch]                    ; 8a 5e f4
     
    56035615    ; sub ax, dx                                ; 2b c2
    56045616    sar ax, 1                                 ; d1 f8
    5605     mov es, [bp-016h]                         ; 8e 46 ea
     5617    mov es, [bp-014h]                         ; 8e 46 ec
    56065618    mov byte [es:si+003h], al                 ; 26 88 44 03
    56075619    mov ax, bx                                ; 89 d8
     
    56115623    mov word [es:si+004h], dx                 ; 26 89 54 04
    56125624    mov ax, word [bp-00804h]                  ; 8b 86 fc f7
    5613     mov word [bp-010h], ax                    ; 89 46 f0
     5625    mov word [bp-01ah], ax                    ; 89 46 e6
    56145626    test ax, ax                               ; 85 c0
    5615     jne short 03f43h                          ; 75 05
    5616     mov word [bp-010h], 007c0h                ; c7 46 f0 c0 07
    5617     mov ax, word [bp-010h]                    ; 8b 46 f0
    5618     mov es, [bp-016h]                         ; 8e 46 ea
     5627    jne short 03f70h                          ; 75 05
     5628    mov word [bp-01ah], 007c0h                ; c7 46 e6 c0 07
     5629    mov ax, word [bp-01ah]                    ; 8b 46 e6
     5630    mov es, [bp-014h]                         ; 8e 46 ec
    56195631    mov word [es:si+00ch], ax                 ; 26 89 44 0c
    56205632    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
     
    56225634    mov word [es:si+00eh], di                 ; 26 89 7c 0e
    56235635    test di, di                               ; 85 ff
    5624     je short 03f65h                           ; 74 06
     5636    je short 03f92h                           ; 74 06
    56255637    cmp di, 00400h                            ; 81 ff 00 04
    5626     jbe short 03f6bh                          ; 76 06
     5638    jbe short 03f98h                          ; 76 06
    56275639    mov ax, strict word 0000ch                ; b8 0c 00
    5628     jmp near 040fdh                           ; e9 92 01
     5640    jmp near 0412bh                           ; e9 93 01
    56295641    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    56305642    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    56435655    xchg ah, al                               ; 86 c4
    56445656    mov word [bp-01fh], ax                    ; 89 46 e1
    5645     mov es, [bp-012h]                         ; 8e 46 ee
    5646     mov bx, word [bp-018h]                    ; 8b 5e e8
     5657    mov es, [bp-010h]                         ; 8e 46 f0
     5658    mov bx, word [bp-016h]                    ; 8b 5e ea
    56475659    mov word [es:bx+00eh], cx                 ; 26 89 4f 0e
    56485660    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
     
    56615673    xor ah, ah                                ; 30 e4
    56625674    add ax, ax                                ; 01 c0
    5663     mov word [bp-014h], ax                    ; 89 46 ec
    5664     push word [bp-010h]                       ; ff 76 f0
     5675    mov word [bp-018h], ax                    ; 89 46 e8
     5676    push word [bp-01ah]                       ; ff 76 e6
    56655677    push strict byte 00000h                   ; 6a 00
    56665678    push strict byte 00001h                   ; 6a 01
     
    56705682    sal ax, 1                                 ; d1 e0
    56715683    rcl di, 1                                 ; d1 d7
    5672     loop 03fdfh                               ; e2 fa
     5684    loop 0400ch                               ; e2 fa
    56735685    push di                                   ; 57
    56745686    push ax                                   ; 50
     
    56795691    lea bx, [bp-026h]                         ; 8d 5e da
    56805692    mov dx, strict word 0000ch                ; ba 0c 00
    5681     mov di, word [bp-014h]                    ; 8b 7e ec
     5693    mov di, word [bp-018h]                    ; 8b 7e e8
    56825694    call word [word di+0006ah]                ; ff 95 6a 00
    5683     mov es, [bp-012h]                         ; 8e 46 ee
    5684     mov bx, word [bp-018h]                    ; 8b 5e e8
     5695    mov es, [bp-010h]                         ; 8e 46 f0
     5696    mov bx, word [bp-016h]                    ; 8b 5e ea
    56855697    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    56865698    test ax, ax                               ; 85 c0
    5687     je short 04013h                           ; 74 06
     5699    je short 04040h                           ; 74 06
    56885700    mov ax, strict word 0000dh                ; b8 0d 00
    5689     jmp near 040fdh                           ; e9 ea 00
    5690     mov es, [bp-016h]                         ; 8e 46 ea
     5701    jmp near 0412bh                           ; e9 eb 00
     5702    mov es, [bp-014h]                         ; 8e 46 ec
    56915703    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    56925704    cmp AL, strict byte 002h                  ; 3c 02
    5693     jc short 0402bh                           ; 72 0d
    5694     jbe short 04046h                          ; 76 26
     5705    jc short 04058h                           ; 72 0d
     5706    jbe short 04073h                          ; 76 26
    56955707    cmp AL, strict byte 004h                  ; 3c 04
    5696     je short 04056h                           ; 74 32
     5708    je short 04083h                           ; 74 32
    56975709    cmp AL, strict byte 003h                  ; 3c 03
    5698     je short 0404eh                           ; 74 26
    5699     jmp near 040a2h                           ; e9 77 00
     5710    je short 0407bh                           ; 74 26
     5711    jmp near 040d0h                           ; e9 78 00
    57005712    cmp AL, strict byte 001h                  ; 3c 01
    5701     jne short 040a2h                          ; 75 73
    5702     mov es, [bp-016h]                         ; 8e 46 ea
     5713    jne short 040d0h                          ; 75 74
     5714    mov es, [bp-014h]                         ; 8e 46 ec
    57035715    mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00
    57045716    mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00
    57055717    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    5706     jmp short 040a2h                          ; eb 5c
     5718    jmp short 040d0h                          ; eb 5d
    57075719    mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00
    5708     jmp short 04038h                          ; eb ea
     5720    jmp short 04065h                          ; eb ea
    57095721    mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00
    5710     jmp short 04038h                          ; eb e2
     5722    jmp short 04065h                          ; eb e2
    57115723    mov dx, 001c4h                            ; ba c4 01
    5712     mov ax, word [bp-010h]                    ; 8b 46 f0
    5713     call 01650h                               ; e8 f1 d5
     5724    mov ax, word [bp-01ah]                    ; 8b 46 e6
     5725    call 01650h                               ; e8 c4 d5
    57145726    and AL, strict byte 03fh                  ; 24 3f
    57155727    xor ah, ah                                ; 30 e4
    5716     mov es, [bp-016h]                         ; 8e 46 ea
     5728    mov es, [bp-014h]                         ; 8e 46 ec
    57175729    mov word [es:si+014h], ax                 ; 26 89 44 14
    57185730    mov dx, 001c4h                            ; ba c4 01
    5719     mov ax, word [bp-010h]                    ; 8b 46 f0
    5720     call 01650h                               ; e8 dd d5
    5721     xor ah, ah                                ; 30 e4
     5731    mov ax, word [bp-01ah]                    ; 8b 46 e6
     5732    call 01650h                               ; e8 b0 d5
     5733    and ax, 000c0h                            ; 25 c0 00
    57225734    mov bx, ax                                ; 89 c3
    57235735    sal bx, 002h                              ; c1 e3 02
    57245736    mov dx, 001c5h                            ; ba c5 01
    5725     mov ax, word [bp-010h]                    ; 8b 46 f0
    5726     call 01650h                               ; e8 cd d5
     5737    mov ax, word [bp-01ah]                    ; 8b 46 e6
     5738    call 01650h                               ; e8 9f d5
    57275739    xor ah, ah                                ; 30 e4
    57285740    add ax, bx                                ; 01 d8
    57295741    inc ax                                    ; 40
    5730     mov es, [bp-016h]                         ; 8e 46 ea
     5742    mov es, [bp-014h]                         ; 8e 46 ec
    57315743    mov word [es:si+012h], ax                 ; 26 89 44 12
    57325744    mov dx, 001c3h                            ; ba c3 01
    5733     mov ax, word [bp-010h]                    ; 8b 46 f0
    5734     call 01650h                               ; e8 b8 d5
     5745    mov ax, word [bp-01ah]                    ; 8b 46 e6
     5746    call 01650h                               ; e8 8a d5
    57355747    xor ah, ah                                ; 30 e4
    57365748    inc ax                                    ; 40
    5737     mov es, [bp-016h]                         ; 8e 46 ea
     5749    mov es, [bp-014h]                         ; 8e 46 ec
    57385750    mov word [es:si+010h], ax                 ; 26 89 44 10
    5739     mov es, [bp-016h]                         ; 8e 46 ea
     5751    mov es, [bp-014h]                         ; 8e 46 ec
    57405752    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5741     je short 040e3h                           ; 74 37
     5753    je short 04111h                           ; 74 37
    57425754    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    5743     jne short 040cbh                          ; 75 18
     5755    jne short 040f9h                          ; 75 18
    57445756    mov dx, strict word 00010h                ; ba 10 00
    57455757    mov ax, strict word 00040h                ; b8 40 00
    5746     call 01650h                               ; e8 94 d5
     5758    call 01650h                               ; e8 66 d5
    57475759    mov bl, al                                ; 88 c3
    57485760    or bl, 041h                               ; 80 cb 41
     
    57505762    mov dx, strict word 00010h                ; ba 10 00
    57515763    mov ax, strict word 00040h                ; b8 40 00
    5752     jmp short 040e0h                          ; eb 15
     5764    jmp short 0410eh                          ; eb 15
    57535765    mov dx, 00304h                            ; ba 04 03
    5754     mov ax, word [bp-01ah]                    ; 8b 46 e6
    5755     call 01650h                               ; e8 7c d5
     5766    mov ax, word [bp-012h]                    ; 8b 46 ee
     5767    call 01650h                               ; e8 4e d5
    57565768    mov bl, al                                ; 88 c3
    57575769    db  0feh, 0c3h
     
    57595771    xor bh, bh                                ; 30 ff
    57605772    mov dx, 00304h                            ; ba 04 03
    5761     mov ax, word [bp-01ah]                    ; 8b 46 e6
    5762     call 0165eh                               ; e8 7b d5
    5763     mov es, [bp-016h]                         ; 8e 46 ea
     5773    mov ax, word [bp-012h]                    ; 8b 46 ee
     5774    call 0165eh                               ; e8 4d d5
     5775    mov es, [bp-014h]                         ; 8e 46 ec
    57645776    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5765     je short 040f1h                           ; 74 04
     5777    je short 0411fh                           ; 74 04
    57665778    mov byte [es:si], 001h                    ; 26 c6 04 01
    5767     mov es, [bp-016h]                         ; 8e 46 ea
     5779    mov es, [bp-014h]                         ; 8e 46 ec
    57685780    mov al, byte [es:si+002h]                 ; 26 8a 44 02
    57695781    xor ah, ah                                ; 30 e4
     
    57785790    retn                                      ; c3
    57795791    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5780     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 006h, 045h, 005h
    5781     db  042h, 038h, 042h, 062h, 042h, 02dh, 042h, 062h, 042h, 02dh, 042h, 054h, 044h, 03ah, 044h, 006h
    5782     db  045h, 006h, 045h, 03ah, 044h, 03ah, 044h, 03ah, 044h, 03ah, 044h, 03ah, 044h, 0fdh, 044h, 03ah
    5783     db  044h, 006h, 045h, 006h, 045h, 006h, 045h, 006h, 045h, 006h, 045h, 006h, 045h, 006h, 045h, 006h
    5784     db  045h, 006h, 045h, 006h, 045h, 006h, 045h, 006h, 045h
    5785 _int13_cdemu:                                ; 0xf4160 LB 0x442
     5792    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 034h, 045h, 033h
     5793    db  042h, 066h, 042h, 090h, 042h, 05bh, 042h, 090h, 042h, 05bh, 042h, 082h, 044h, 068h, 044h, 034h
     5794    db  045h, 034h, 045h, 068h, 044h, 068h, 044h, 068h, 044h, 068h, 044h, 068h, 044h, 02bh, 045h, 068h
     5795    db  044h, 034h, 045h, 034h, 045h, 034h, 045h, 034h, 045h, 034h, 045h, 034h, 045h, 034h, 045h, 034h
     5796    db  045h, 034h, 045h, 034h, 045h, 034h, 045h, 034h, 045h
     5797_int13_cdemu:                                ; 0xf418e LB 0x442
    57865798    push bp                                   ; 55
    57875799    mov bp, sp                                ; 89 e5
     
    57915803    mov dx, strict word 0000eh                ; ba 0e 00
    57925804    mov ax, strict word 00040h                ; b8 40 00
    5793     call 0166ch                               ; e8 fb d4
     5805    call 0166ch                               ; e8 cd d4
    57945806    mov di, 00366h                            ; bf 66 03
    57955807    mov cx, ax                                ; 89 c1
     
    58075819    mov dx, strict word 00074h                ; ba 74 00
    58085820    mov ax, strict word 00040h                ; b8 40 00
    5809     call 0165eh                               ; e8 be d4
     5821    call 0165eh                               ; e8 90 d4
    58105822    mov es, cx                                ; 8e c1
    58115823    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5812     je short 041b7h                           ; 74 0f
     5824    je short 041e5h                           ; 74 0f
    58135825    mov al, byte [es:di+002h]                 ; 26 8a 45 02
    58145826    xor ah, ah                                ; 30 e4
     
    58165828    xor dh, dh                                ; 30 f6
    58175829    cmp ax, dx                                ; 39 d0
    5818     je short 041e0h                           ; 74 29
     5830    je short 0420eh                           ; 74 29
    58195831    mov bx, 00da0h                            ; bb a0 0d
    58205832    mov cx, ds                                ; 8c d9
    58215833    mov ax, strict word 00004h                ; b8 04 00
    5822     call 01923h                               ; e8 61 d7
     5834    call 01923h                               ; e8 33 d7
    58235835    mov ax, word [bp+012h]                    ; 8b 46 12
    58245836    xor ah, ah                                ; 30 e4
     
    58305842    push 00358h                               ; 68 58 03
    58315843    push strict byte 00004h                   ; 6a 04
    5832     call 01966h                               ; e8 8c d7
     5844    call 01966h                               ; e8 5e d7
    58335845    add sp, strict byte 0000ah                ; 83 c4 0a
    5834     jmp near 04526h                           ; e9 46 03
     5846    jmp near 04554h                           ; e9 46 03
    58355847    mov ax, word [bp+016h]                    ; 8b 46 16
    58365848    shr ax, 008h                              ; c1 e8 08
    58375849    cmp ax, strict word 00050h                ; 3d 50 00
    5838     jnbe short 0425fh                         ; 77 74
     5850    jnbe short 0428dh                         ; 77 74
    58395851    push CS                                   ; 0e
    58405852    pop ES                                    ; 07
    58415853    mov cx, strict word 0001eh                ; b9 1e 00
    5842     mov di, 04107h                            ; bf 07 41
     5854    mov di, 04135h                            ; bf 35 41
    58435855    repne scasb                               ; f2 ae
    58445856    sal cx, 1                                 ; d1 e1
    58455857    mov di, cx                                ; 89 cf
    5846     mov ax, word [cs:di+04124h]               ; 2e 8b 85 24 41
     5858    mov ax, word [cs:di+04152h]               ; 2e 8b 85 52 41
    58475859    mov bx, word [bp+016h]                    ; 8b 5e 16
    58485860    xor bh, bh                                ; 30 ff
     
    58575869    add bx, bx                                ; 01 db
    58585870    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
    5859     je short 0422ah                           ; 74 09
     5871    je short 04258h                           ; 74 09
    58605872    mov al, byte [bp-006h]                    ; 8a 46 fa
    58615873    xor ah, ah                                ; 30 e4
    58625874    call word [word bx+00076h]                ; ff 97 76 00
    5863     jmp near 0443ah                           ; e9 0d 02
     5875    jmp near 04468h                           ; e9 0d 02
    58645876    mov ax, word [bp+016h]                    ; 8b 46 16
    58655877    xor ah, ah                                ; 30 e4
    58665878    or ah, 003h                               ; 80 cc 03
    5867     jmp near 0452eh                           ; e9 f6 02
     5879    jmp near 0455ch                           ; e9 f6 02
    58685880    mov dx, strict word 00074h                ; ba 74 00
    58695881    mov ax, strict word 00040h                ; b8 40 00
    5870     call 01650h                               ; e8 0f d4
     5882    call 01650h                               ; e8 e1 d3
    58715883    mov cl, al                                ; 88 c1
    58725884    xor ah, ah                                ; 30 e4
     
    58775889    mov dx, strict word 00074h                ; ba 74 00
    58785890    mov ax, strict word 00040h                ; b8 40 00
    5879     call 0165eh                               ; e8 06 d4
     5891    call 0165eh                               ; e8 d8 d3
    58805892    test cl, cl                               ; 84 c9
    5881     je short 042bch                           ; 74 60
    5882     jmp near 04542h                           ; e9 e3 02
    5883     jmp near 04506h                           ; e9 a4 02
     5893    je short 042eah                           ; 74 60
     5894    jmp near 04570h                           ; e9 e3 02
     5895    jmp near 04534h                           ; e9 a4 02
    58845896    mov es, [bp-008h]                         ; 8e 46 f8
    58855897    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    59055917    mov word [bp-00ah], cx                    ; 89 4e f6
    59065918    test cx, cx                               ; 85 c9
    5907     je short 042cah                           ; 74 1e
     5919    je short 042f8h                           ; 74 1e
    59085920    cmp di, word [bp-010h]                    ; 3b 7e f0
    5909     jc short 042b9h                           ; 72 08
     5921    jc short 042e7h                           ; 72 08
    59105922    cmp ax, dx                                ; 39 d0
    5911     jnc short 042b9h                          ; 73 04
     5923    jnc short 042e7h                          ; 73 04
    59125924    cmp si, bx                                ; 39 de
    5913     jc short 042bfh                           ; 72 06
    5914     jmp near 04526h                           ; e9 6a 02
    5915     jmp near 0443eh                           ; e9 7f 01
     5925    jc short 042edh                           ; 72 06
     5926    jmp near 04554h                           ; e9 6a 02
     5927    jmp near 0446ch                           ; e9 7f 01
    59165928    mov dx, word [bp+016h]                    ; 8b 56 16
    59175929    shr dx, 008h                              ; c1 ea 08
    59185930    cmp dx, strict byte 00004h                ; 83 fa 04
    5919     jne short 042cdh                          ; 75 03
    5920     jmp near 0443ah                           ; e9 6d 01
     5931    jne short 042fbh                          ; 75 03
     5932    jmp near 04468h                           ; e9 6d 01
    59215933    mov dx, word [bp+010h]                    ; 8b 56 10
    59225934    shr dx, 004h                              ; c1 ea 04
     
    59295941    xor dl, dl                                ; 30 d2
    59305942    xor cx, cx                                ; 31 c9
    5931     call 09f90h                               ; e8 a5 5c
     5943    call 09fc0h                               ; e8 a7 5c
    59325944    xor bx, bx                                ; 31 db
    59335945    add ax, si                                ; 01 f0
     
    59355947    mov bx, di                                ; 89 fb
    59365948    xor cx, cx                                ; 31 c9
    5937     call 09f90h                               ; e8 98 5c
     5949    call 09fc0h                               ; e8 9a 5c
    59385950    mov bx, ax                                ; 89 c3
    59395951    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    59705982    mov dx, ss                                ; 8c d2
    59715983    lea ax, [bp-02eh]                         ; 8d 46 d2
    5972     call 0a000h                               ; e8 b1 5c
     5984    call 0a030h                               ; e8 b3 5c
    59735985    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    59745986    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    60206032    sal si, 1                                 ; d1 e6
    60216033    rcl di, 1                                 ; d1 d7
    6022     loop 043d1h                               ; e2 fa
     6034    loop 043ffh                               ; e2 fa
    60236035    push di                                   ; 57
    60246036    push si                                   ; 56
     
    60366048    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    60376049    test al, al                               ; 84 c0
    6038     je short 0443ah                           ; 74 37
     6050    je short 04468h                           ; 74 37
    60396051    mov bx, 00da0h                            ; bb a0 0d
    60406052    mov cx, ds                                ; 8c d9
    60416053    mov ax, strict word 00004h                ; b8 04 00
    6042     call 01923h                               ; e8 15 d5
     6054    call 01923h                               ; e8 e7 d4
    60436055    mov al, dl                                ; 88 d0
    60446056    xor ah, ah                                ; 30 e4
     
    60506062    push 0038eh                               ; 68 8e 03
    60516063    push strict byte 00004h                   ; 6a 04
    6052     call 01966h                               ; e8 41 d5
     6064    call 01966h                               ; e8 13 d5
    60536065    add sp, strict byte 0000ah                ; 83 c4 0a
    60546066    mov ax, word [bp+016h]                    ; 8b 46 16
     
    60576069    mov word [bp+016h], ax                    ; 89 46 16
    60586070    mov byte [bp+016h], 000h                  ; c6 46 16 00
    6059     jmp near 04531h                           ; e9 f7 00
     6071    jmp near 0455fh                           ; e9 f7 00
    60606072    mov byte [bp+017h], 000h                  ; c6 46 17 00
    60616073    xor bx, bx                                ; 31 db
    60626074    mov dx, strict word 00074h                ; ba 74 00
    60636075    mov ax, strict word 00040h                ; b8 40 00
    6064     call 0165eh                               ; e8 15 d2
     6076    call 0165eh                               ; e8 e7 d1
    60656077    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    60666078    lea sp, [bp-004h]                         ; 8d 66 fc
     
    61106122    mov word [bp+010h], ax                    ; 89 46 10
    61116123    cmp dl, 003h                              ; 80 fa 03
    6112     je short 044e0h                           ; 74 1a
     6124    je short 0450eh                           ; 74 1a
    61136125    cmp dl, 002h                              ; 80 fa 02
    6114     je short 044dch                           ; 74 11
     6126    je short 0450ah                           ; 74 11
    61156127    cmp dl, 001h                              ; 80 fa 01
    6116     jne short 044e4h                          ; 75 14
     6128    jne short 04512h                          ; 75 14
    61176129    mov ax, word [bp+010h]                    ; 8b 46 10
    61186130    xor al, al                                ; 30 c0
    61196131    or AL, strict byte 002h                   ; 0c 02
    61206132    mov word [bp+010h], ax                    ; 89 46 10
    6121     jmp short 044e4h                          ; eb 08
     6133    jmp short 04512h                          ; eb 08
    61226134    or AL, strict byte 004h                   ; 0c 04
    6123     jmp short 044d7h                          ; eb f7
     6135    jmp short 04505h                          ; eb f7
    61246136    or AL, strict byte 005h                   ; 0c 05
    6125     jmp short 044d7h                          ; eb f3
     6137    jmp short 04505h                          ; eb f3
    61266138    mov es, [bp-008h]                         ; 8e 46 f8
    61276139    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    6128     jc short 044f1h                           ; 72 03
    6129     jmp near 0443ah                           ; e9 49 ff
     6140    jc short 0451fh                           ; 72 03
     6141    jmp near 04468h                           ; e9 49 ff
    61306142    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    61316143    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    6132     jmp short 044eeh                          ; eb f1
     6144    jmp short 0451ch                          ; eb f1
    61336145    or bh, 003h                               ; 80 cf 03
    61346146    mov word [bp+016h], bx                    ; 89 5e 16
    6135     jmp near 0443eh                           ; e9 38 ff
     6147    jmp near 0446ch                           ; e9 38 ff
    61366148    mov bx, 00da0h                            ; bb a0 0d
    61376149    mov cx, ds                                ; 8c d9
    61386150    mov ax, strict word 00004h                ; b8 04 00
    6139     call 01923h                               ; e8 12 d4
     6151    call 01923h                               ; e8 e4 d3
    61406152    mov ax, word [bp+016h]                    ; 8b 46 16
    61416153    shr ax, 008h                              ; c1 e8 08
     
    61446156    push 003afh                               ; 68 af 03
    61456157    push strict byte 00004h                   ; 6a 04
    6146     call 01966h                               ; e8 43 d4
     6158    call 01966h                               ; e8 15 d4
    61476159    add sp, strict byte 00008h                ; 83 c4 08
    61486160    mov ax, word [bp+016h]                    ; 8b 46 16
     
    61556167    mov dx, strict word 00074h                ; ba 74 00
    61566168    mov ax, strict word 00040h                ; b8 40 00
    6157     call 0165eh                               ; e8 1c d1
     6169    call 0165eh                               ; e8 ee d0
    61586170    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    6159     jmp near 0444dh                           ; e9 04 ff
     6171    jmp near 0447bh                           ; e9 04 ff
    61606172    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    6161     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 090h, 046h, 0c5h
    6162     db  04ah, 04dh, 046h, 090h, 046h, 042h, 046h, 090h, 046h, 042h, 046h, 090h, 046h, 0c5h, 04ah, 090h
    6163     db  046h, 090h, 046h, 0c5h, 04ah, 0c5h, 04ah, 0c5h, 04ah, 0c5h, 04ah, 0c5h, 04ah, 074h, 046h, 0c5h
    6164     db  04ah, 090h, 046h, 07dh, 046h, 0ach, 046h, 042h, 046h, 0ach, 046h, 0eeh, 047h, 089h, 048h, 0ach
    6165     db  046h, 0b1h, 048h, 0dfh, 04ah, 0e7h, 04ah, 090h, 046h
    6166 _int13_cdrom:                                ; 0xf45a2 LB 0x57d
     6173    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0beh, 046h, 0f3h
     6174    db  04ah, 07bh, 046h, 0beh, 046h, 070h, 046h, 0beh, 046h, 070h, 046h, 0beh, 046h, 0f3h, 04ah, 0beh
     6175    db  046h, 0beh, 046h, 0f3h, 04ah, 0f3h, 04ah, 0f3h, 04ah, 0f3h, 04ah, 0f3h, 04ah, 0a2h, 046h, 0f3h
     6176    db  04ah, 0beh, 046h, 0abh, 046h, 0dah, 046h, 070h, 046h, 0dah, 046h, 01ch, 048h, 0b7h, 048h, 0dah
     6177    db  046h, 0dfh, 048h, 00dh, 04bh, 015h, 04bh, 0beh, 046h
     6178_int13_cdrom:                                ; 0xf45d0 LB 0x57d
    61676179    push bp                                   ; 55
    61686180    mov bp, sp                                ; 89 e5
     
    61726184    mov dx, strict word 0000eh                ; ba 0e 00
    61736185    mov ax, strict word 00040h                ; b8 40 00
    6174     call 0166ch                               ; e8 b9 d0
     6186    call 0166ch                               ; e8 8b d0
    61756187    mov word [bp-016h], ax                    ; 89 46 ea
    61766188    mov si, 00122h                            ; be 22 01
     
    61796191    mov dx, strict word 00074h                ; ba 74 00
    61806192    mov ax, strict word 00040h                ; b8 40 00
    6181     call 0165eh                               ; e8 97 d0
     6193    call 0165eh                               ; e8 69 d0
    61826194    mov ax, word [bp+010h]                    ; 8b 46 10
    61836195    xor ah, ah                                ; 30 e4
    61846196    cmp ax, 000e0h                            ; 3d e0 00
    6185     jc short 045d6h                           ; 72 05
     6197    jc short 04604h                           ; 72 05
    61866198    cmp ax, 000f0h                            ; 3d f0 00
    6187     jc short 045f4h                           ; 72 1e
     6199    jc short 04622h                           ; 72 1e
    61886200    mov ax, word [bp+010h]                    ; 8b 46 10
    61896201    xor ah, ah                                ; 30 e4
     
    61956207    push 003ebh                               ; 68 eb 03
    61966208    push strict byte 00004h                   ; 6a 04
    6197     call 01966h                               ; e8 78 d3
     6209    call 01966h                               ; e8 4a d3
    61986210    add sp, strict byte 0000ah                ; 83 c4 0a
    6199     jmp near 04afdh                           ; e9 09 05
     6211    jmp near 04b2bh                           ; e9 09 05
    62006212    mov ax, word [bp+010h]                    ; 8b 46 10
    62016213    xor ah, ah                                ; 30 e4
     
    62066218    mov byte [bp-006h], dl                    ; 88 56 fa
    62076219    cmp dl, 010h                              ; 80 fa 10
    6208     jc short 0461dh                           ; 72 10
     6220    jc short 0464bh                           ; 72 10
    62096221    push ax                                   ; 50
    62106222    mov ax, word [bp+018h]                    ; 8b 46 18
     
    62136225    push 003dfh                               ; 68 df 03
    62146226    push 00416h                               ; 68 16 04
    6215     jmp short 045e9h                          ; eb cc
     6227    jmp short 04617h                          ; eb cc
    62166228    mov ax, word [bp+018h]                    ; 8b 46 18
    62176229    shr ax, 008h                              ; c1 e8 08
    62186230    cmp ax, strict word 00050h                ; 3d 50 00
    6219     jnbe short 04690h                         ; 77 68
     6231    jnbe short 046beh                         ; 77 68
    62206232    push CS                                   ; 0e
    62216233    pop ES                                    ; 07
    62226234    mov cx, strict word 0001eh                ; b9 1e 00
    6223     mov di, 04549h                            ; bf 49 45
     6235    mov di, 04577h                            ; bf 77 45
    62246236    repne scasb                               ; f2 ae
    62256237    sal cx, 1                                 ; d1 e1
    62266238    mov di, cx                                ; 89 cf
    6227     mov ax, word [cs:di+04566h]               ; 2e 8b 85 66 45
     6239    mov ax, word [cs:di+04594h]               ; 2e 8b 85 94 45
    62286240    mov bx, word [bp+018h]                    ; 8b 5e 18
    62296241    xor bh, bh                                ; 30 ff
     
    62326244    xor ah, ah                                ; 30 e4
    62336245    or ah, 003h                               ; 80 cc 03
    6234     jmp near 04b05h                           ; e9 b8 04
     6246    jmp near 04b33h                           ; e9 b8 04
    62356247    mov dx, strict word 00074h                ; ba 74 00
    62366248    mov ax, strict word 00040h                ; b8 40 00
    6237     call 01650h                               ; e8 fa cf
     6249    call 01650h                               ; e8 cc cf
    62386250    mov cl, al                                ; 88 c1
    62396251    xor ah, ah                                ; 30 e4
     
    62446256    mov dx, strict word 00074h                ; ba 74 00
    62456257    mov ax, strict word 00040h                ; b8 40 00
    6246     call 0165eh                               ; e8 f1 cf
     6258    call 0165eh                               ; e8 c3 cf
    62476259    test cl, cl                               ; 84 c9
    6248     je short 0468dh                           ; 74 1c
    6249     jmp near 04b19h                           ; e9 a5 04
     6260    je short 046bbh                           ; 74 1c
     6261    jmp near 04b47h                           ; e9 a5 04
    62506262    or bh, 002h                               ; 80 cf 02
    62516263    mov word [bp+018h], bx                    ; 89 5e 18
    6252     jmp near 04b08h                           ; e9 8b 04
     6264    jmp near 04b36h                           ; e9 8b 04
    62536265    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    62546266    or bh, 030h                               ; 80 cf 30
    62556267    mov word [bp+018h], bx                    ; 89 5e 18
    62566268    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    6257     jmp near 04ac9h                           ; e9 39 04
     6269    jmp near 04af7h                           ; e9 39 04
    62586270    mov bx, 00da0h                            ; bb a0 0d
    62596271    mov cx, ds                                ; 8c d9
    62606272    mov ax, strict word 00004h                ; b8 04 00
    6261     call 01923h                               ; e8 88 d2
     6273    call 01923h                               ; e8 5a d2
    62626274    mov ax, word [bp+018h]                    ; 8b 46 18
    62636275    shr ax, 008h                              ; c1 e8 08
     
    62666278    push 00333h                               ; 68 33 03
    62676279    push strict byte 00004h                   ; 6a 04
    6268     jmp short 046ech                          ; eb 40
     6280    jmp short 0471ah                          ; eb 40
    62696281    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    62706282    mov es, [bp+006h]                         ; 8e 46 06
     
    62816293    mov word [bp-022h], ax                    ; 89 46 de
    62826294    or ax, word [bp-00eh]                     ; 0b 46 f2
    6283     je short 046f5h                           ; 74 18
     6295    je short 04723h                           ; 74 18
    62846296    mov ax, word [bp+018h]                    ; 8b 46 18
    62856297    shr ax, 008h                              ; c1 e8 08
     
    62886300    push 00448h                               ; 68 48 04
    62896301    push strict byte 00007h                   ; 6a 07
    6290     call 01966h                               ; e8 77 d2
     6302    call 01966h                               ; e8 49 d2
    62916303    add sp, strict byte 00008h                ; 83 c4 08
    6292     jmp near 04afdh                           ; e9 08 04
     6304    jmp near 04b2bh                           ; e9 08 04
    62936305    mov es, [bp-010h]                         ; 8e 46 f0
    62946306    mov bx, word [bp-014h]                    ; 8b 5e ec
     
    63016313    mov word [bp-012h], ax                    ; 89 46 ee
    63026314    cmp ax, strict word 00044h                ; 3d 44 00
    6303     je short 0471ch                           ; 74 05
     6315    je short 0474ah                           ; 74 05
    63046316    cmp ax, strict word 00047h                ; 3d 47 00
    6305     jne short 0471fh                          ; 75 03
    6306     jmp near 04ac5h                           ; e9 a6 03
     6317    jne short 0474dh                          ; 75 03
     6318    jmp near 04af3h                           ; e9 a6 03
    63076319    mov cx, strict word 0000ch                ; b9 0c 00
    63086320    xor bx, bx                                ; 31 db
    63096321    mov dx, ss                                ; 8c d2
    63106322    lea ax, [bp-030h]                         ; 8d 46 d0
    6311     call 0a000h                               ; e8 d4 58
     6323    call 0a030h                               ; e8 d6 58
    63126324    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    63136325    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    63416353    sal ax, 1                                 ; d1 e0
    63426354    rcl dx, 1                                 ; d1 d2
    6343     loop 0477ch                               ; e2 fa
     6355    loop 047aah                               ; e2 fa
    63446356    push dx                                   ; 52
    63456357    push ax                                   ; 50
     
    63596371    shr dx, 1                                 ; d1 ea
    63606372    rcr ax, 1                                 ; d1 d8
    6361     loop 047abh                               ; e2 fa
     6373    loop 047d9h                               ; e2 fa
    63626374    mov es, [bp-010h]                         ; 8e 46 f0
    63636375    mov bx, word [bp-014h]                    ; 8b 5e ec
    63646376    mov word [es:bx+002h], ax                 ; 26 89 47 02
    63656377    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
    6366     je short 04814h                           ; 74 53
     6378    je short 04842h                           ; 74 53
    63676379    mov bx, 00da0h                            ; bb a0 0d
    63686380    mov cx, ds                                ; 8c d9
    63696381    mov ax, strict word 00004h                ; b8 04 00
    6370     call 01923h                               ; e8 57 d1
     6382    call 01923h                               ; e8 29 d1
    63716383    mov al, byte [bp-018h]                    ; 8a 46 e8
    63726384    xor ah, ah                                ; 30 e4
     
    63766388    push 00471h                               ; 68 71 04
    63776389    push strict byte 00004h                   ; 6a 04
    6378     call 01966h                               ; e8 86 d1
     6390    call 01966h                               ; e8 58 d1
    63796391    add sp, strict byte 0000ah                ; 83 c4 0a
    63806392    mov ax, word [bp+018h]                    ; 8b 46 18
    63816393    xor ah, ah                                ; 30 e4
    63826394    or ah, 00ch                               ; 80 cc 0c
    6383     jmp near 04b05h                           ; e9 17 03
     6395    jmp near 04b33h                           ; e9 17 03
    63846396    cmp bx, strict byte 00002h                ; 83 fb 02
    6385     jnbe short 0485ch                         ; 77 69
     6397    jnbe short 0488ah                         ; 77 69
    63866398    mov al, byte [bp-006h]                    ; 8a 46 fa
    63876399    xor ah, ah                                ; 30 e4
     
    63926404    mov al, byte [es:di+025h]                 ; 26 8a 45 25
    63936405    cmp bx, strict byte 00002h                ; 83 fb 02
    6394     je short 04872h                           ; 74 67
     6406    je short 048a0h                           ; 74 67
    63956407    cmp bx, strict byte 00001h                ; 83 fb 01
    6396     je short 0484ch                           ; 74 3c
     6408    je short 0487ah                           ; 74 3c
    63976409    test bx, bx                               ; 85 db
    6398     je short 04817h                           ; 74 03
    6399     jmp near 04ac5h                           ; e9 ae 02
     6410    je short 04845h                           ; 74 03
     6411    jmp near 04af3h                           ; e9 ae 02
    64006412    cmp AL, strict byte 0ffh                  ; 3c ff
    6401     jne short 0482dh                          ; 75 12
     6413    jne short 0485bh                          ; 75 12
    64026414    mov ax, word [bp+018h]                    ; 8b 46 18
    64036415    xor ah, ah                                ; 30 e4
     
    64066418    xor al, al                                ; 30 c0
    64076419    or AL, strict byte 001h                   ; 0c 01
    6408     jmp near 04b05h                           ; e9 d8 02
     6420    jmp near 04b33h                           ; e9 d8 02
    64096421    mov dl, byte [bp-006h]                    ; 8a 56 fa
    64106422    xor dh, dh                                ; 30 f6
     
    64196431    or AL, strict byte 001h                   ; 0c 01
    64206432    mov word [bp+018h], ax                    ; 89 46 18
    6421     jmp short 04814h                          ; eb c8
     6433    jmp short 04842h                          ; eb c8
    64226434    test al, al                               ; 84 c0
    6423     jne short 0485fh                          ; 75 0f
     6435    jne short 0488dh                          ; 75 0f
    64246436    or bh, 0b0h                               ; 80 cf b0
    64256437    mov word [bp+018h], bx                    ; 89 5e 18
    64266438    mov byte [bp+018h], al                    ; 88 46 18
    6427     jmp near 04b08h                           ; e9 ac 02
    6428     jmp near 04afdh                           ; e9 9e 02
     6439    jmp near 04b36h                           ; e9 ac 02
     6440    jmp near 04b2bh                           ; e9 9e 02
    64296441    mov dl, byte [bp-006h]                    ; 8a 56 fa
    64306442    xor dh, dh                                ; 30 f6
     
    64366448    mov byte [es:si+025h], al                 ; 26 88 44 25
    64376449    test al, al                               ; 84 c0
    6438     jne short 04884h                          ; 75 0e
     6450    jne short 048b2h                          ; 75 0e
    64396451    xor ah, ah                                ; 30 e4
    64406452    mov dx, word [bp+018h]                    ; 8b 56 18
     
    64426454    or dx, ax                                 ; 09 c2
    64436455    mov word [bp+018h], dx                    ; 89 56 18
    6444     jmp short 04814h                          ; eb 90
     6456    jmp short 04842h                          ; eb 90
    64456457    mov ax, strict word 00001h                ; b8 01 00
    6446     jmp short 04878h                          ; eb ef
     6458    jmp short 048a6h                          ; eb ef
    64476459    mov al, byte [bp-006h]                    ; 8a 46 fa
    64486460    xor ah, ah                                ; 30 e4
     
    64526464    mov al, byte [es:si+025h]                 ; 26 8a 44 25
    64536465    test al, al                               ; 84 c0
    6454     je short 048a4h                           ; 74 06
     6466    je short 048d2h                           ; 74 06
    64556467    or bh, 0b1h                               ; 80 cf b1
    6456     jmp near 04677h                           ; e9 d3 fd
    6457     je short 048cdh                           ; 74 27
     6468    jmp near 046a5h                           ; e9 d3 fd
     6469    je short 048fbh                           ; 74 27
    64586470    mov ax, word [bp+018h]                    ; 8b 46 18
    64596471    xor ah, ah                                ; 30 e4
    64606472    or ah, 0b1h                               ; 80 cc b1
    6461     jmp near 04b05h                           ; e9 54 02
     6473    jmp near 04b33h                           ; e9 54 02
    64626474    mov dx, word [bp+00ch]                    ; 8b 56 0c
    64636475    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    64696481    mov word [bp-00ch], ax                    ; 89 46 f4
    64706482    cmp ax, strict word 0001ah                ; 3d 1a 00
    6471     jnc short 048d0h                          ; 73 05
    6472     jmp short 0485ch                          ; eb 8f
    6473     jmp near 04ac5h                           ; e9 f5 01
    6474     jc short 04934h                           ; 72 62
     6483    jnc short 048feh                          ; 73 05
     6484    jmp short 0488ah                          ; eb 8f
     6485    jmp near 04af3h                           ; e9 f5 01
     6486    jc short 04962h                           ; 72 62
    64756487    mov al, byte [bp-006h]                    ; 8a 46 fa
    64766488    xor ah, ah                                ; 30 e4
     
    64966508    mov word [es:di+016h], strict word 0ffffh ; 26 c7 45 16 ff ff
    64976509    cmp word [bp-00ch], strict byte 0001eh    ; 83 7e f4 1e
    6498     jnc short 0493dh                          ; 73 03
    6499     jmp near 049f9h                           ; e9 bc 00
     6510    jnc short 0496bh                          ; 73 03
     6511    jmp near 04a27h                           ; e9 bc 00
    65006512    mov es, [bp-00ah]                         ; 8e 46 f6
    65016513    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    65406552    xor cl, cl                                ; 30 c9
    65416553    xor ch, ch                                ; 30 ed
    6542     jmp short 049d9h                          ; eb 05
     6554    jmp short 04a07h                          ; eb 05
    65436555    cmp ch, 00fh                              ; 80 fd 0f
    6544     jnc short 049efh                          ; 73 16
     6556    jnc short 04a1dh                          ; 73 16
    65456557    mov al, ch                                ; 88 e8
    65466558    xor ah, ah                                ; 30 e4
     
    65486560    add dx, 00356h                            ; 81 c2 56 03
    65496561    mov ax, word [bp-016h]                    ; 8b 46 ea
    6550     call 01650h                               ; e8 67 cc
     6562    call 01650h                               ; e8 39 cc
    65516563    add cl, al                                ; 00 c1
    65526564    db  0feh, 0c5h
    65536565    ; inc ch                                    ; fe c5
    6554     jmp short 049d4h                          ; eb e5
     6566    jmp short 04a02h                          ; eb e5
    65556567    neg cl                                    ; f6 d9
    65566568    mov es, [bp-01eh]                         ; 8e 46 e2
    65576569    mov byte [es:si+00243h], cl               ; 26 88 8c 43 02
    65586570    cmp word [bp-00ch], strict byte 00042h    ; 83 7e f4 42
    6559     jnc short 04a02h                          ; 73 03
    6560     jmp near 04ac5h                           ; e9 c3 00
     6571    jnc short 04a30h                          ; 73 03
     6572    jmp near 04af3h                           ; e9 c3 00
    65616573    mov al, byte [bp-006h]                    ; 8a 46 fa
    65626574    xor ah, ah                                ; 30 e4
     
    65776589    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    65786590    test al, al                               ; 84 c0
    6579     jne short 04a4ah                          ; 75 0c
     6591    jne short 04a78h                          ; 75 0c
    65806592    mov word [es:bx+024h], 05349h             ; 26 c7 47 24 49 53
    65816593    mov word [es:bx+026h], 02041h             ; 26 c7 47 26 41 20
     
    65866598    mov word [es:bx+02eh], 02020h             ; 26 c7 47 2e 20 20
    65876599    test al, al                               ; 84 c0
    6588     jne short 04a7fh                          ; 75 16
     6600    jne short 04aadh                          ; 75 16
    65896601    mov word [es:bx+030h], dx                 ; 26 89 57 30
    65906602    mov word [es:bx+032h], strict word 00000h ; 26 c7 47 32 00 00
     
    66016613    xor al, al                                ; 30 c0
    66026614    mov AH, strict byte 01eh                  ; b4 1e
    6603     jmp short 04aaah                          ; eb 05
     6615    jmp short 04ad8h                          ; eb 05
    66046616    cmp ah, 040h                              ; 80 fc 40
    6605     jnc short 04abch                          ; 73 12
     6617    jnc short 04aeah                          ; 73 12
    66066618    mov dl, ah                                ; 88 e2
    66076619    xor dh, dh                                ; 30 f6
     
    66126624    db  0feh, 0c4h
    66136625    ; inc ah                                    ; fe c4
    6614     jmp short 04aa5h                          ; eb e9
     6626    jmp short 04ad3h                          ; eb e9
    66156627    neg al                                    ; f6 d8
    66166628    mov es, [bp-00ah]                         ; 8e 46 f6
     
    66206632    mov dx, strict word 00074h                ; ba 74 00
    66216633    mov ax, strict word 00040h                ; b8 40 00
    6622     call 0165eh                               ; e8 8a cb
     6634    call 0165eh                               ; e8 5c cb
    66236635    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    66246636    lea sp, [bp-004h]                         ; 8d 66 fc
     
    66296641    or bh, 006h                               ; 80 cf 06
    66306642    mov word [bp+018h], bx                    ; 89 5e 18
    6631     jmp short 04b19h                          ; eb 32
     6643    jmp short 04b47h                          ; eb 32
    66326644    cmp bx, strict byte 00006h                ; 83 fb 06
    6633     je short 04ac5h                           ; 74 d9
     6645    je short 04af3h                           ; 74 d9
    66346646    cmp bx, strict byte 00001h                ; 83 fb 01
    6635     jc short 04afdh                           ; 72 0c
    6636     jbe short 04ac5h                          ; 76 d2
     6647    jc short 04b2bh                           ; 72 0c
     6648    jbe short 04af3h                          ; 76 d2
    66376649    cmp bx, strict byte 00003h                ; 83 fb 03
    6638     jc short 04afdh                           ; 72 05
     6650    jc short 04b2bh                           ; 72 05
    66396651    cmp bx, strict byte 00004h                ; 83 fb 04
    6640     jbe short 04ac5h                          ; 76 c8
     6652    jbe short 04af3h                          ; 76 c8
    66416653    mov ax, word [bp+018h]                    ; 8b 46 18
    66426654    xor ah, ah                                ; 30 e4
     
    66486660    mov dx, strict word 00074h                ; ba 74 00
    66496661    mov ax, strict word 00040h                ; b8 40 00
    6650     call 0165eh                               ; e8 45 cb
     6662    call 0165eh                               ; e8 17 cb
    66516663    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    6652     jmp short 04ad8h                          ; eb b9
    6653 print_boot_device_:                          ; 0xf4b1f LB 0x4b
     6664    jmp short 04b06h                          ; eb b9
     6665print_boot_device_:                          ; 0xf4b4d LB 0x4b
    66546666    push bp                                   ; 55
    66556667    mov bp, sp                                ; 89 e5
    66566668    push cx                                   ; 51
    66576669    test al, al                               ; 84 c0
    6658     je short 04b2ch                           ; 74 05
     6670    je short 04b5ah                           ; 74 05
    66596671    mov dx, strict word 00002h                ; ba 02 00
    6660     jmp short 04b46h                          ; eb 1a
     6672    jmp short 04b74h                          ; eb 1a
    66616673    test dl, dl                               ; 84 d2
    6662     je short 04b35h                           ; 74 05
     6674    je short 04b63h                           ; 74 05
    66636675    mov dx, strict word 00003h                ; ba 03 00
    6664     jmp short 04b46h                          ; eb 11
     6676    jmp short 04b74h                          ; eb 11
    66656677    test bl, 080h                             ; f6 c3 80
    6666     jne short 04b3eh                          ; 75 04
     6678    jne short 04b6ch                          ; 75 04
    66676679    xor dh, dh                                ; 30 f6
    6668     jmp short 04b46h                          ; eb 08
     6680    jmp short 04b74h                          ; eb 08
    66696681    test bl, 080h                             ; f6 c3 80
    6670     je short 04b64h                           ; 74 21
     6682    je short 04b92h                           ; 74 21
    66716683    mov dx, strict word 00001h                ; ba 01 00
    66726684    mov bx, 00da0h                            ; bb a0 0d
    66736685    mov cx, ds                                ; 8c d9
    66746686    mov ax, strict word 00004h                ; b8 04 00
    6675     call 01923h                               ; e8 d2 cd
     6687    call 01923h                               ; e8 a4 cd
    66766688    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    66776689    add dx, 00dc6h                            ; 81 c2 c6 0d
     
    66796691    push 00494h                               ; 68 94 04
    66806692    push strict byte 00004h                   ; 6a 04
    6681     call 01966h                               ; e8 05 ce
     6693    call 01966h                               ; e8 d7 cd
    66826694    add sp, strict byte 00006h                ; 83 c4 06
    66836695    lea sp, [bp-002h]                         ; 8d 66 fe
     
    66856697    pop bp                                    ; 5d
    66866698    retn                                      ; c3
    6687 print_boot_failure_:                         ; 0xf4b6a LB 0x96
     6699print_boot_failure_:                         ; 0xf4b98 LB 0x96
    66886700    push bp                                   ; 55
    66896701    mov bp, sp                                ; 89 e5
     
    66966708    mov si, cx                                ; 89 ce
    66976709    test al, al                               ; 84 c0
    6698     je short 04b9ah                           ; 74 1b
     6710    je short 04bc8h                           ; 74 1b
    66996711    mov bx, 00da0h                            ; bb a0 0d
    67006712    mov cx, ds                                ; 8c d9
    67016713    mov ax, strict word 00004h                ; b8 04 00
    6702     call 01923h                               ; e8 99 cd
     6714    call 01923h                               ; e8 6b cd
    67036715    push 00ddah                               ; 68 da 0d
    67046716    push 004a8h                               ; 68 a8 04
    67056717    push strict byte 00004h                   ; 6a 04
    6706     call 01966h                               ; e8 d1 cd
     6718    call 01966h                               ; e8 a3 cd
    67076719    add sp, strict byte 00006h                ; 83 c4 06
    6708     jmp short 04bdeh                          ; eb 44
     6720    jmp short 04c0ch                          ; eb 44
    67096721    test ah, ah                               ; 84 e4
    6710     je short 04baeh                           ; 74 10
     6722    je short 04bdch                           ; 74 10
    67116723    mov bx, 00da0h                            ; bb a0 0d
    67126724    mov cx, ds                                ; 8c d9
    67136725    mov ax, strict word 00004h                ; b8 04 00
    6714     call 01923h                               ; e8 7a cd
     6726    call 01923h                               ; e8 4c cd
    67156727    push 00de4h                               ; 68 e4 0d
    6716     jmp short 04b8dh                          ; eb df
     6728    jmp short 04bbbh                          ; eb df
    67176729    test bl, 080h                             ; f6 c3 80
    6718     je short 04bc4h                           ; 74 11
     6730    je short 04bf2h                           ; 74 11
    67196731    mov bx, 00da0h                            ; bb a0 0d
    67206732    mov cx, ds                                ; 8c d9
    67216733    mov ax, strict word 00004h                ; b8 04 00
    6722     call 01923h                               ; e8 65 cd
     6734    call 01923h                               ; e8 37 cd
    67236735    push si                                   ; 56
    67246736    push 00dd0h                               ; 68 d0 0d
    6725     jmp short 04bd3h                          ; eb 0f
     6737    jmp short 04c01h                          ; eb 0f
    67266738    mov bx, 00da0h                            ; bb a0 0d
    67276739    mov cx, ds                                ; 8c d9
    67286740    mov ax, strict word 00004h                ; b8 04 00
    6729     call 01923h                               ; e8 54 cd
     6741    call 01923h                               ; e8 26 cd
    67306742    push si                                   ; 56
    67316743    push 00dc6h                               ; 68 c6 0d
    67326744    push 004bdh                               ; 68 bd 04
    67336745    push strict byte 00004h                   ; 6a 04
    6734     call 01966h                               ; e8 8b cd
     6746    call 01966h                               ; e8 5d cd
    67356747    add sp, strict byte 00008h                ; 83 c4 08
    67366748    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6737     jne short 04bf8h                          ; 75 14
     6749    jne short 04c26h                          ; 75 14
    67386750    test dl, dl                               ; 84 d2
    6739     jne short 04bedh                          ; 75 05
     6751    jne short 04c1bh                          ; 75 05
    67406752    push 004d5h                               ; 68 d5 04
    6741     jmp short 04bf0h                          ; eb 03
     6753    jmp short 04c1eh                          ; eb 03
    67426754    push 004ffh                               ; 68 ff 04
    67436755    push strict byte 00007h                   ; 6a 07
    6744     call 01966h                               ; e8 71 cd
     6756    call 01966h                               ; e8 43 cd
    67456757    add sp, strict byte 00004h                ; 83 c4 04
    67466758    lea sp, [bp-002h]                         ; 8d 66 fe
     
    67486760    pop bp                                    ; 5d
    67496761    retn 00002h                               ; c2 02 00
    6750 print_cdromboot_failure_:                    ; 0xf4c00 LB 0x27
     6762print_cdromboot_failure_:                    ; 0xf4c2e LB 0x27
    67516763    push bp                                   ; 55
    67526764    mov bp, sp                                ; 89 e5
     
    67586770    mov cx, ds                                ; 8c d9
    67596771    mov ax, strict word 00004h                ; b8 04 00
    6760     call 01923h                               ; e8 10 cd
     6772    call 01923h                               ; e8 e2 cc
    67616773    push dx                                   ; 52
    67626774    push 00534h                               ; 68 34 05
    67636775    push strict byte 00004h                   ; 6a 04
    6764     call 01966h                               ; e8 4a cd
     6776    call 01966h                               ; e8 1c cd
    67656777    add sp, strict byte 00006h                ; 83 c4 06
    67666778    lea sp, [bp-006h]                         ; 8d 66 fa
     
    67706782    pop bp                                    ; 5d
    67716783    retn                                      ; c3
    6772 _int19_function:                             ; 0xf4c27 LB 0x271
     6784_int19_function:                             ; 0xf4c55 LB 0x271
    67736785    push bp                                   ; 55
    67746786    mov bp, sp                                ; 89 e5
     
    67786790    mov dx, strict word 0000eh                ; ba 0e 00
    67796791    mov ax, strict word 00040h                ; b8 40 00
    6780     call 0166ch                               ; e8 34 ca
     6792    call 0166ch                               ; e8 06 ca
    67816793    mov bx, ax                                ; 89 c3
    67826794    mov word [bp-00eh], ax                    ; 89 46 f2
    67836795    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    67846796    mov ax, strict word 0003dh                ; b8 3d 00
    6785     call 016ach                               ; e8 65 ca
     6797    call 016ach                               ; e8 37 ca
    67866798    mov dl, al                                ; 88 c2
    67876799    xor dh, dh                                ; 30 f6
    67886800    mov ax, strict word 00038h                ; b8 38 00
    6789     call 016ach                               ; e8 5b ca
     6801    call 016ach                               ; e8 2d ca
    67906802    and AL, strict byte 0f0h                  ; 24 f0
    67916803    xor ah, ah                                ; 30 e4
     
    67946806    or si, ax                                 ; 09 c6
    67956807    mov ax, strict word 0003ch                ; b8 3c 00
    6796     call 016ach                               ; e8 4a ca
     6808    call 016ach                               ; e8 1c ca
    67976809    and AL, strict byte 00fh                  ; 24 0f
    67986810    xor ah, ah                                ; 30 e4
     
    68016813    mov dx, 0037dh                            ; ba 7d 03
    68026814    mov ax, bx                                ; 89 d8
    6803     call 01650h                               ; e8 dd c9
     6815    call 01650h                               ; e8 af c9
    68046816    test al, al                               ; 84 c0
    6805     je short 04c83h                           ; 74 0c
     6817    je short 04cb1h                           ; 74 0c
    68066818    mov dx, 0037dh                            ; ba 7d 03
    68076819    mov ax, bx                                ; 89 d8
    6808     call 01650h                               ; e8 d1 c9
     6820    call 01650h                               ; e8 a3 c9
    68096821    xor ah, ah                                ; 30 e4
    68106822    mov si, ax                                ; 89 c6
    68116823    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6812     jne short 04c99h                          ; 75 10
     6824    jne short 04cc7h                          ; 75 10
    68136825    mov ax, strict word 0003ch                ; b8 3c 00
    6814     call 016ach                               ; e8 1d ca
     6826    call 016ach                               ; e8 ef c9
    68156827    and AL, strict byte 0f0h                  ; 24 f0
    68166828    xor ah, ah                                ; 30 e4
    68176829    sar ax, 004h                              ; c1 f8 04
    6818     call 07d70h                               ; e8 d7 30
     6830    call 07d9eh                               ; e8 d7 30
    68196831    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    6820     jne short 04ca2h                          ; 75 03
     6832    jne short 04cd0h                          ; 75 03
    68216833    shr si, 004h                              ; c1 ee 04
    68226834    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    6823     jne short 04cabh                          ; 75 03
     6835    jne short 04cd9h                          ; 75 03
    68246836    shr si, 008h                              ; c1 ee 08
    68256837    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    6826     jne short 04cb4h                          ; 75 03
     6838    jne short 04ce2h                          ; 75 03
    68276839    shr si, 00ch                              ; c1 ee 0c
    68286840    cmp si, strict byte 00010h                ; 83 fe 10
    6829     jnc short 04cbdh                          ; 73 04
     6841    jnc short 04cebh                          ; 73 04
    68306842    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    68316843    xor al, al                                ; 30 c0
     
    68366848    mov cx, ds                                ; 8c d9
    68376849    mov ax, strict word 00004h                ; b8 04 00
    6838     call 01923h                               ; e8 50 cc
     6850    call 01923h                               ; e8 22 cc
    68396851    push si                                   ; 56
    68406852    mov al, byte [bp+004h]                    ; 8a 46 04
     
    68436855    push 00554h                               ; 68 54 05
    68446856    push strict byte 00004h                   ; 6a 04
    6845     call 01966h                               ; e8 84 cc
     6857    call 01966h                               ; e8 56 cc
    68466858    add sp, strict byte 00008h                ; 83 c4 08
    68476859    and si, strict byte 0000fh                ; 83 e6 0f
    68486860    cmp si, strict byte 00002h                ; 83 fe 02
    6849     jc short 04cfbh                           ; 72 0e
    6850     jbe short 04d0ah                          ; 76 1b
     6861    jc short 04d29h                           ; 72 0e
     6862    jbe short 04d38h                          ; 76 1b
    68516863    cmp si, strict byte 00004h                ; 83 fe 04
    6852     je short 04d28h                           ; 74 34
     6864    je short 04d56h                           ; 74 34
    68536865    cmp si, strict byte 00003h                ; 83 fe 03
    6854     je short 04d1eh                           ; 74 25
    6855     jmp short 04d57h                          ; eb 5c
     6866    je short 04d4ch                           ; 74 25
     6867    jmp short 04d85h                          ; eb 5c
    68566868    cmp si, strict byte 00001h                ; 83 fe 01
    6857     jne short 04d57h                          ; 75 57
     6869    jne short 04d85h                          ; 75 57
    68586870    xor al, al                                ; 30 c0
    68596871    mov byte [bp-006h], al                    ; 88 46 fa
    68606872    mov byte [bp-008h], al                    ; 88 46 f8
    6861     jmp short 04d6fh                          ; eb 65
     6873    jmp short 04d9dh                          ; eb 65
    68626874    mov dx, 0037ch                            ; ba 7c 03
    68636875    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6864     call 01650h                               ; e8 3d c9
     6876    call 01650h                               ; e8 0f c9
    68656877    add AL, strict byte 080h                  ; 04 80
    68666878    mov byte [bp-006h], al                    ; 88 46 fa
    68676879    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    6868     jmp short 04d6fh                          ; eb 51
     6880    jmp short 04d9dh                          ; eb 51
    68696881    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    68706882    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    6871     jmp short 04d32h                          ; eb 0a
     6883    jmp short 04d60h                          ; eb 0a
    68726884    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    68736885    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    6874     je short 04d6fh                           ; 74 3d
    6875     call 03d2ch                               ; e8 f7 ef
     6886    je short 04d9dh                           ; 74 3d
     6887    call 03d59h                               ; e8 f6 ef
    68766888    mov bx, ax                                ; 89 c3
    68776889    test AL, strict byte 0ffh                 ; a8 ff
    6878     je short 04d5eh                           ; 74 23
    6879     call 04c00h                               ; e8 c2 fe
     6890    je short 04d8ch                           ; 74 23
     6891    call 04c2eh                               ; e8 c2 fe
    68806892    mov al, byte [bp-00ch]                    ; 8a 46 f4
    68816893    xor ah, ah                                ; 30 e4
     
    68876899    mov al, byte [bp-008h]                    ; 8a 46 f8
    68886900    mov cx, strict word 00001h                ; b9 01 00
    6889     call 04b6ah                               ; e8 13 fe
     6901    call 04b98h                               ; e8 13 fe
    68906902    xor ax, ax                                ; 31 c0
    68916903    xor dx, dx                                ; 31 d2
    6892     jmp near 04e91h                           ; e9 33 01
     6904    jmp near 04ebfh                           ; e9 33 01
    68936905    mov dx, 00372h                            ; ba 72 03
    68946906    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6895     call 0166ch                               ; e8 05 c9
     6907    call 0166ch                               ; e8 d7 c8
    68966908    mov di, ax                                ; 89 c7
    68976909    shr bx, 008h                              ; c1 eb 08
    68986910    mov byte [bp-006h], bl                    ; 88 5e fa
    68996911    cmp byte [bp-00ah], 001h                  ; 80 7e f6 01
    6900     jne short 04dcah                          ; 75 55
     6912    jne short 04df8h                          ; 75 55
    69016913    xor si, si                                ; 31 f6
    69026914    mov ax, 0e200h                            ; b8 00 e2
    69036915    mov es, ax                                ; 8e c0
    69046916    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    6905     jne short 04d3eh                          ; 75 bb
     6917    jne short 04d6ch                          ; 75 bb
    69066918    mov cx, ax                                ; 89 c1
    69076919    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    69086920    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    6909     jne short 04d3eh                          ; 75 ad
     6921    jne short 04d6ch                          ; 75 ad
    69106922    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    6911     jne short 04d3eh                          ; 75 a6
     6923    jne short 04d6ch                          ; 75 a6
    69126924    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
    69136925    mov dx, word [es:di]                      ; 26 8b 15
    69146926    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    69156927    cmp ax, 06568h                            ; 3d 68 65
    6916     jne short 04dcch                          ; 75 24
     6928    jne short 04dfah                          ; 75 24
    69176929    cmp dx, 07445h                            ; 81 fa 45 74
    6918     jne short 04dcch                          ; 75 1e
     6930    jne short 04dfah                          ; 75 1e
    69196931    mov bl, byte [bp-006h]                    ; 8a 5e fa
    69206932    xor bh, bh                                ; 30 ff
     
    69236935    mov al, byte [bp-008h]                    ; 8a 46 f8
    69246936    xor ah, ah                                ; 30 e4
    6925     call 04b1fh                               ; e8 5f fd
     6937    call 04b4dh                               ; e8 5f fd
    69266938    mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
    69276939    mov word [bp-010h], cx                    ; 89 4e f0
    6928     jmp short 04debh                          ; eb 21
    6929     jmp short 04df1h                          ; eb 25
     6940    jmp short 04e19h                          ; eb 21
     6941    jmp short 04e1fh                          ; eb 25
    69306942    mov bl, byte [bp-006h]                    ; 8a 5e fa
    69316943    xor bh, bh                                ; 30 ff
     
    69346946    mov al, byte [bp-008h]                    ; 8a 46 f8
    69356947    xor ah, ah                                ; 30 e4
    6936     call 04b1fh                               ; e8 41 fd
     6948    call 04b4dh                               ; e8 41 fd
    69376949    sti                                       ; fb
    69386950    mov word [bp-010h], cx                    ; 89 4e f0
     
    69416953    mov word [bp-012h], ax                    ; 89 46 ee
    69426954    call far [bp-012h]                        ; ff 5e ee
    6943     jmp near 04d3eh                           ; e9 4d ff
     6955    jmp near 04d6ch                           ; e9 4d ff
    69446956    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    6945     jne short 04e1eh                          ; 75 27
     6957    jne short 04e4ch                          ; 75 27
    69466958    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6947     jne short 04e1eh                          ; 75 21
     6959    jne short 04e4ch                          ; 75 21
    69486960    mov di, 007c0h                            ; bf c0 07
    69496961    mov es, di                                ; 8e c7
     
    69586970    sbb ax, strict byte 00000h                ; 83 d8 00
    69596971    test ax, ax                               ; 85 c0
    6960     je short 04e1eh                           ; 74 03
    6961     jmp near 04d3eh                           ; e9 20 ff
     6972    je short 04e4ch                           ; 74 03
     6973    jmp near 04d6ch                           ; e9 20 ff
    69626974    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6963     je short 04e28h                           ; 74 04
     6975    je short 04e56h                           ; 74 04
    69646976    xor bl, bl                                ; 30 db
    6965     jmp short 04e2ah                          ; eb 02
     6977    jmp short 04e58h                          ; eb 02
    69666978    mov BL, strict byte 001h                  ; b3 01
    69676979    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    6968     je short 04e32h                           ; 74 02
     6980    je short 04e60h                           ; 74 02
    69696981    mov BL, strict byte 001h                  ; b3 01
    69706982    xor dx, dx                                ; 31 d2
    69716983    mov ax, di                                ; 89 f8
    6972     call 0166ch                               ; e8 33 c8
     6984    call 0166ch                               ; e8 05 c8
    69736985    mov si, ax                                ; 89 c6
    69746986    mov dx, strict word 00002h                ; ba 02 00
    69756987    mov ax, di                                ; 89 f8
    6976     call 0166ch                               ; e8 29 c8
     6988    call 0166ch                               ; e8 fb c7
    69776989    cmp si, ax                                ; 39 c6
    6978     je short 04e58h                           ; 74 11
     6990    je short 04e86h                           ; 74 11
    69796991    test bl, bl                               ; 84 db
    6980     jne short 04e70h                          ; 75 25
     6992    jne short 04e9eh                          ; 75 25
    69816993    mov dx, 001feh                            ; ba fe 01
    69826994    mov ax, di                                ; 89 f8
    6983     call 0166ch                               ; e8 19 c8
     6995    call 0166ch                               ; e8 eb c7
    69846996    cmp ax, 0aa55h                            ; 3d 55 aa
    6985     je short 04e70h                           ; 74 18
     6997    je short 04e9eh                           ; 74 18
    69866998    mov al, byte [bp-00ch]                    ; 8a 46 f4
    69876999    xor ah, ah                                ; 30 e4
     
    69937005    mov al, byte [bp-008h]                    ; 8a 46 f8
    69947006    xor cx, cx                                ; 31 c9
    6995     jmp near 04d54h                           ; e9 e4 fe
     7007    jmp near 04d82h                           ; e9 e4 fe
    69967008    mov bl, byte [bp-006h]                    ; 8a 5e fa
    69977009    xor bh, bh                                ; 30 ff
     
    70007012    mov al, byte [bp-008h]                    ; 8a 46 f8
    70017013    xor ah, ah                                ; 30 e4
    7002     call 04b1fh                               ; e8 9d fc
     7014    call 04b4dh                               ; e8 9d fc
    70037015    mov al, byte [bp-006h]                    ; 8a 46 fa
    70047016    xor ah, ah                                ; 30 e4
     
    70137025    pop bp                                    ; 5d
    70147026    retn                                      ; c3
    7015 keyboard_panic_:                             ; 0xf4e98 LB 0x13
     7027keyboard_panic_:                             ; 0xf4ec6 LB 0x13
    70167028    push bp                                   ; 55
    70177029    mov bp, sp                                ; 89 e5
     
    70197031    push 00574h                               ; 68 74 05
    70207032    push strict byte 00007h                   ; 6a 07
    7021     call 01966h                               ; e8 c2 ca
     7033    call 01966h                               ; e8 94 ca
    70227034    add sp, strict byte 00006h                ; 83 c4 06
    70237035    mov sp, bp                                ; 89 ec
    70247036    pop bp                                    ; 5d
    70257037    retn                                      ; c3
    7026 _keyboard_init:                              ; 0xf4eab LB 0x26a
     7038_keyboard_init:                              ; 0xf4ed9 LB 0x26a
    70277039    push bp                                   ; 55
    70287040    mov bp, sp                                ; 89 e5
     
    70367048    ; sub ah, ah                                ; 2a e4
    70377049    test AL, strict byte 002h                 ; a8 02
    7038     je short 04eceh                           ; 74 0d
     7050    je short 04efch                           ; 74 0d
    70397051    dec bx                                    ; 4b
    70407052    test bx, bx                               ; 85 db
    7041     jbe short 04eceh                          ; 76 08
     7053    jbe short 04efch                          ; 76 08
    70427054    xor al, al                                ; 30 c0
    70437055    mov dx, 00080h                            ; ba 80 00
    70447056    out DX, AL                                ; ee
    7045     jmp short 04eb7h                          ; eb e9
     7057    jmp short 04ee5h                          ; eb e9
    70467058    test bx, bx                               ; 85 db
    7047     jne short 04ed7h                          ; 75 05
     7059    jne short 04f05h                          ; 75 05
    70487060    xor ax, ax                                ; 31 c0
    7049     call 04e98h                               ; e8 c1 ff
     7061    call 04ec6h                               ; e8 c1 ff
    70507062    mov bx, strict word 0ffffh                ; bb ff ff
    70517063    mov dx, strict word 00064h                ; ba 64 00
     
    70547066    ; sub ah, ah                                ; 2a e4
    70557067    test AL, strict byte 001h                 ; a8 01
    7056     jne short 04ef1h                          ; 75 0d
     7068    jne short 04f1fh                          ; 75 0d
    70577069    dec bx                                    ; 4b
    70587070    test bx, bx                               ; 85 db
    7059     jbe short 04ef1h                          ; 76 08
     7071    jbe short 04f1fh                          ; 76 08
    70607072    mov AL, strict byte 001h                  ; b0 01
    70617073    mov dx, 00080h                            ; ba 80 00
    70627074    out DX, AL                                ; ee
    7063     jmp short 04edah                          ; eb e9
     7075    jmp short 04f08h                          ; eb e9
    70647076    test bx, bx                               ; 85 db
    7065     jne short 04efbh                          ; 75 06
     7077    jne short 04f29h                          ; 75 06
    70667078    mov ax, strict word 00001h                ; b8 01 00
    7067     call 04e98h                               ; e8 9d ff
     7079    call 04ec6h                               ; e8 9d ff
    70687080    mov dx, strict word 00060h                ; ba 60 00
    70697081    in AL, DX                                 ; ec
     
    70717083    ; sub ah, ah                                ; 2a e4
    70727084    cmp ax, strict word 00055h                ; 3d 55 00
    7073     je short 04f0ch                           ; 74 06
     7085    je short 04f3ah                           ; 74 06
    70747086    mov ax, 003dfh                            ; b8 df 03
    7075     call 04e98h                               ; e8 8c ff
     7087    call 04ec6h                               ; e8 8c ff
    70767088    mov AL, strict byte 0abh                  ; b0 ab
    70777089    mov dx, strict word 00064h                ; ba 64 00
     
    70837095    ; sub ah, ah                                ; 2a e4
    70847096    test AL, strict byte 002h                 ; a8 02
    7085     je short 04f2ch                           ; 74 0d
     7097    je short 04f5ah                           ; 74 0d
    70867098    dec bx                                    ; 4b
    70877099    test bx, bx                               ; 85 db
    7088     jbe short 04f2ch                          ; 76 08
     7100    jbe short 04f5ah                          ; 76 08
    70897101    mov AL, strict byte 010h                  ; b0 10
    70907102    mov dx, 00080h                            ; ba 80 00
    70917103    out DX, AL                                ; ee
    7092     jmp short 04f15h                          ; eb e9
     7104    jmp short 04f43h                          ; eb e9
    70937105    test bx, bx                               ; 85 db
    7094     jne short 04f36h                          ; 75 06
     7106    jne short 04f64h                          ; 75 06
    70957107    mov ax, strict word 0000ah                ; b8 0a 00
    7096     call 04e98h                               ; e8 62 ff
     7108    call 04ec6h                               ; e8 62 ff
    70977109    mov bx, strict word 0ffffh                ; bb ff ff
    70987110    mov dx, strict word 00064h                ; ba 64 00
     
    71017113    ; sub ah, ah                                ; 2a e4
    71027114    test AL, strict byte 001h                 ; a8 01
    7103     jne short 04f50h                          ; 75 0d
     7115    jne short 04f7eh                          ; 75 0d
    71047116    dec bx                                    ; 4b
    71057117    test bx, bx                               ; 85 db
    7106     jbe short 04f50h                          ; 76 08
     7118    jbe short 04f7eh                          ; 76 08
    71077119    mov AL, strict byte 011h                  ; b0 11
    71087120    mov dx, 00080h                            ; ba 80 00
    71097121    out DX, AL                                ; ee
    7110     jmp short 04f39h                          ; eb e9
     7122    jmp short 04f67h                          ; eb e9
    71117123    test bx, bx                               ; 85 db
    7112     jne short 04f5ah                          ; 75 06
     7124    jne short 04f88h                          ; 75 06
    71137125    mov ax, strict word 0000bh                ; b8 0b 00
    7114     call 04e98h                               ; e8 3e ff
     7126    call 04ec6h                               ; e8 3e ff
    71157127    mov dx, strict word 00060h                ; ba 60 00
    71167128    in AL, DX                                 ; ec
     
    71187130    ; sub ah, ah                                ; 2a e4
    71197131    test ax, ax                               ; 85 c0
    7120     je short 04f6ah                           ; 74 06
     7132    je short 04f98h                           ; 74 06
    71217133    mov ax, 003e0h                            ; b8 e0 03
    7122     call 04e98h                               ; e8 2e ff
     7134    call 04ec6h                               ; e8 2e ff
    71237135    mov AL, strict byte 0ffh                  ; b0 ff
    71247136    mov dx, strict word 00060h                ; ba 60 00
     
    71307142    ; sub ah, ah                                ; 2a e4
    71317143    test AL, strict byte 002h                 ; a8 02
    7132     je short 04f8ah                           ; 74 0d
     7144    je short 04fb8h                           ; 74 0d
    71337145    dec bx                                    ; 4b
    71347146    test bx, bx                               ; 85 db
    7135     jbe short 04f8ah                          ; 76 08
     7147    jbe short 04fb8h                          ; 76 08
    71367148    mov AL, strict byte 020h                  ; b0 20
    71377149    mov dx, 00080h                            ; ba 80 00
    71387150    out DX, AL                                ; ee
    7139     jmp short 04f73h                          ; eb e9
     7151    jmp short 04fa1h                          ; eb e9
    71407152    test bx, bx                               ; 85 db
    7141     jne short 04f94h                          ; 75 06
     7153    jne short 04fc2h                          ; 75 06
    71427154    mov ax, strict word 00014h                ; b8 14 00
    7143     call 04e98h                               ; e8 04 ff
     7155    call 04ec6h                               ; e8 04 ff
    71447156    mov bx, strict word 0ffffh                ; bb ff ff
    71457157    mov dx, strict word 00064h                ; ba 64 00
     
    71487160    ; sub ah, ah                                ; 2a e4
    71497161    test AL, strict byte 001h                 ; a8 01
    7150     jne short 04faeh                          ; 75 0d
     7162    jne short 04fdch                          ; 75 0d
    71517163    dec bx                                    ; 4b
    71527164    test bx, bx                               ; 85 db
    7153     jbe short 04faeh                          ; 76 08
     7165    jbe short 04fdch                          ; 76 08
    71547166    mov AL, strict byte 021h                  ; b0 21
    71557167    mov dx, 00080h                            ; ba 80 00
    71567168    out DX, AL                                ; ee
    7157     jmp short 04f97h                          ; eb e9
     7169    jmp short 04fc5h                          ; eb e9
    71587170    test bx, bx                               ; 85 db
    7159     jne short 04fb8h                          ; 75 06
     7171    jne short 04fe6h                          ; 75 06
    71607172    mov ax, strict word 00015h                ; b8 15 00
    7161     call 04e98h                               ; e8 e0 fe
     7173    call 04ec6h                               ; e8 e0 fe
    71627174    mov dx, strict word 00060h                ; ba 60 00
    71637175    in AL, DX                                 ; ec
     
    71657177    ; sub ah, ah                                ; 2a e4
    71667178    cmp ax, 000fah                            ; 3d fa 00
    7167     je short 04fc9h                           ; 74 06
     7179    je short 04ff7h                           ; 74 06
    71687180    mov ax, 003e1h                            ; b8 e1 03
    7169     call 04e98h                               ; e8 cf fe
     7181    call 04ec6h                               ; e8 cf fe
    71707182    mov dx, strict word 00064h                ; ba 64 00
    71717183    in AL, DX                                 ; ec
     
    71737185    ; sub ah, ah                                ; 2a e4
    71747186    test AL, strict byte 001h                 ; a8 01
    7175     jne short 04fdbh                          ; 75 08
     7187    jne short 05009h                          ; 75 08
    71767188    mov AL, strict byte 031h                  ; b0 31
    71777189    mov dx, 00080h                            ; ba 80 00
    71787190    out DX, AL                                ; ee
    7179     jmp short 04fc9h                          ; eb ee
     7191    jmp short 04ff7h                          ; eb ee
    71807192    mov dx, strict word 00060h                ; ba 60 00
    71817193    in AL, DX                                 ; ec
     
    71837195    ; sub ah, ah                                ; 2a e4
    71847196    cmp ax, 000aah                            ; 3d aa 00
    7185     je short 04ff4h                           ; 74 0e
     7197    je short 05022h                           ; 74 0e
    71867198    in AL, DX                                 ; ec
    71877199    db  02ah, 0e4h
    71887200    ; sub ah, ah                                ; 2a e4
    71897201    cmp ax, 000aah                            ; 3d aa 00
    7190     je short 04ff4h                           ; 74 06
     7202    je short 05022h                           ; 74 06
    71917203    mov ax, 003e2h                            ; b8 e2 03
    7192     call 04e98h                               ; e8 a4 fe
     7204    call 04ec6h                               ; e8 a4 fe
    71937205    mov AL, strict byte 0f5h                  ; b0 f5
    71947206    mov dx, strict word 00060h                ; ba 60 00
     
    72007212    ; sub ah, ah                                ; 2a e4
    72017213    test AL, strict byte 002h                 ; a8 02
    7202     je short 05014h                           ; 74 0d
     7214    je short 05042h                           ; 74 0d
    72037215    dec bx                                    ; 4b
    72047216    test bx, bx                               ; 85 db
    7205     jbe short 05014h                          ; 76 08
     7217    jbe short 05042h                          ; 76 08
    72067218    mov AL, strict byte 040h                  ; b0 40
    72077219    mov dx, 00080h                            ; ba 80 00
    72087220    out DX, AL                                ; ee
    7209     jmp short 04ffdh                          ; eb e9
     7221    jmp short 0502bh                          ; eb e9
    72107222    test bx, bx                               ; 85 db
    7211     jne short 0501eh                          ; 75 06
     7223    jne short 0504ch                          ; 75 06
    72127224    mov ax, strict word 00028h                ; b8 28 00
    7213     call 04e98h                               ; e8 7a fe
     7225    call 04ec6h                               ; e8 7a fe
    72147226    mov bx, strict word 0ffffh                ; bb ff ff
    72157227    mov dx, strict word 00064h                ; ba 64 00
     
    72187230    ; sub ah, ah                                ; 2a e4
    72197231    test AL, strict byte 001h                 ; a8 01
    7220     jne short 05038h                          ; 75 0d
     7232    jne short 05066h                          ; 75 0d
    72217233    dec bx                                    ; 4b
    72227234    test bx, bx                               ; 85 db
    7223     jbe short 05038h                          ; 76 08
     7235    jbe short 05066h                          ; 76 08
    72247236    mov AL, strict byte 041h                  ; b0 41
    72257237    mov dx, 00080h                            ; ba 80 00
    72267238    out DX, AL                                ; ee
    7227     jmp short 05021h                          ; eb e9
     7239    jmp short 0504fh                          ; eb e9
    72287240    test bx, bx                               ; 85 db
    7229     jne short 05042h                          ; 75 06
     7241    jne short 05070h                          ; 75 06
    72307242    mov ax, strict word 00029h                ; b8 29 00
    7231     call 04e98h                               ; e8 56 fe
     7243    call 04ec6h                               ; e8 56 fe
    72327244    mov dx, strict word 00060h                ; ba 60 00
    72337245    in AL, DX                                 ; ec
     
    72357247    ; sub ah, ah                                ; 2a e4
    72367248    cmp ax, 000fah                            ; 3d fa 00
    7237     je short 05053h                           ; 74 06
     7249    je short 05081h                           ; 74 06
    72387250    mov ax, 003e3h                            ; b8 e3 03
    7239     call 04e98h                               ; e8 45 fe
     7251    call 04ec6h                               ; e8 45 fe
    72407252    mov AL, strict byte 060h                  ; b0 60
    72417253    mov dx, strict word 00064h                ; ba 64 00
     
    72477259    ; sub ah, ah                                ; 2a e4
    72487260    test AL, strict byte 002h                 ; a8 02
    7249     je short 05073h                           ; 74 0d
     7261    je short 050a1h                           ; 74 0d
    72507262    dec bx                                    ; 4b
    72517263    test bx, bx                               ; 85 db
    7252     jbe short 05073h                          ; 76 08
     7264    jbe short 050a1h                          ; 76 08
    72537265    mov AL, strict byte 050h                  ; b0 50
    72547266    mov dx, 00080h                            ; ba 80 00
    72557267    out DX, AL                                ; ee
    7256     jmp short 0505ch                          ; eb e9
     7268    jmp short 0508ah                          ; eb e9
    72577269    test bx, bx                               ; 85 db
    7258     jne short 0507dh                          ; 75 06
     7270    jne short 050abh                          ; 75 06
    72597271    mov ax, strict word 00032h                ; b8 32 00
    7260     call 04e98h                               ; e8 1b fe
     7272    call 04ec6h                               ; e8 1b fe
    72617273    mov AL, strict byte 065h                  ; b0 65
    72627274    mov dx, strict word 00060h                ; ba 60 00
     
    72687280    ; sub ah, ah                                ; 2a e4
    72697281    test AL, strict byte 002h                 ; a8 02
    7270     je short 0509dh                           ; 74 0d
     7282    je short 050cbh                           ; 74 0d
    72717283    dec bx                                    ; 4b
    72727284    test bx, bx                               ; 85 db
    7273     jbe short 0509dh                          ; 76 08
     7285    jbe short 050cbh                          ; 76 08
    72747286    mov AL, strict byte 060h                  ; b0 60
    72757287    mov dx, 00080h                            ; ba 80 00
    72767288    out DX, AL                                ; ee
    7277     jmp short 05086h                          ; eb e9
     7289    jmp short 050b4h                          ; eb e9
    72787290    test bx, bx                               ; 85 db
    7279     jne short 050a7h                          ; 75 06
     7291    jne short 050d5h                          ; 75 06
    72807292    mov ax, strict word 0003ch                ; b8 3c 00
    7281     call 04e98h                               ; e8 f1 fd
     7293    call 04ec6h                               ; e8 f1 fd
    72827294    mov AL, strict byte 0f4h                  ; b0 f4
    72837295    mov dx, strict word 00060h                ; ba 60 00
     
    72897301    ; sub ah, ah                                ; 2a e4
    72907302    test AL, strict byte 002h                 ; a8 02
    7291     je short 050c7h                           ; 74 0d
     7303    je short 050f5h                           ; 74 0d
    72927304    dec bx                                    ; 4b
    72937305    test bx, bx                               ; 85 db
    7294     jbe short 050c7h                          ; 76 08
     7306    jbe short 050f5h                          ; 76 08
    72957307    mov AL, strict byte 070h                  ; b0 70
    72967308    mov dx, 00080h                            ; ba 80 00
    72977309    out DX, AL                                ; ee
    7298     jmp short 050b0h                          ; eb e9
     7310    jmp short 050deh                          ; eb e9
    72997311    test bx, bx                               ; 85 db
    7300     jne short 050d1h                          ; 75 06
     7312    jne short 050ffh                          ; 75 06
    73017313    mov ax, strict word 00046h                ; b8 46 00
    7302     call 04e98h                               ; e8 c7 fd
     7314    call 04ec6h                               ; e8 c7 fd
    73037315    mov bx, strict word 0ffffh                ; bb ff ff
    73047316    mov dx, strict word 00064h                ; ba 64 00
     
    73077319    ; sub ah, ah                                ; 2a e4
    73087320    test AL, strict byte 001h                 ; a8 01
    7309     jne short 050ebh                          ; 75 0d
     7321    jne short 05119h                          ; 75 0d
    73107322    dec bx                                    ; 4b
    73117323    test bx, bx                               ; 85 db
    7312     jbe short 050ebh                          ; 76 08
     7324    jbe short 05119h                          ; 76 08
    73137325    mov AL, strict byte 071h                  ; b0 71
    73147326    mov dx, 00080h                            ; ba 80 00
    73157327    out DX, AL                                ; ee
    7316     jmp short 050d4h                          ; eb e9
     7328    jmp short 05102h                          ; eb e9
    73177329    test bx, bx                               ; 85 db
    7318     jne short 050f5h                          ; 75 06
     7330    jne short 05123h                          ; 75 06
    73197331    mov ax, strict word 00046h                ; b8 46 00
    7320     call 04e98h                               ; e8 a3 fd
     7332    call 04ec6h                               ; e8 a3 fd
    73217333    mov dx, strict word 00060h                ; ba 60 00
    73227334    in AL, DX                                 ; ec
     
    73247336    ; sub ah, ah                                ; 2a e4
    73257337    cmp ax, 000fah                            ; 3d fa 00
    7326     je short 05106h                           ; 74 06
     7338    je short 05134h                           ; 74 06
    73277339    mov ax, 003e4h                            ; b8 e4 03
    7328     call 04e98h                               ; e8 92 fd
     7340    call 04ec6h                               ; e8 92 fd
    73297341    mov AL, strict byte 0a8h                  ; b0 a8
    73307342    mov dx, strict word 00064h                ; ba 64 00
    73317343    out DX, AL                                ; ee
    73327344    xor ax, ax                                ; 31 c0
    7333     call 065afh                               ; e8 9e 14
     7345    call 065ddh                               ; e8 9e 14
    73347346    mov sp, bp                                ; 89 ec
    73357347    pop bp                                    ; 5d
    73367348    retn                                      ; c3
    7337 enqueue_key_:                                ; 0xf5115 LB 0x9e
     7349enqueue_key_:                                ; 0xf5143 LB 0x9e
    73387350    push bp                                   ; 55
    73397351    mov bp, sp                                ; 89 e5
     
    73477359    mov dx, strict word 0001ah                ; ba 1a 00
    73487360    mov ax, strict word 00040h                ; b8 40 00
    7349     call 0166ch                               ; e8 41 c5
     7361    call 0166ch                               ; e8 13 c5
    73507362    mov di, ax                                ; 89 c7
    73517363    mov dx, strict word 0001ch                ; ba 1c 00
    73527364    mov ax, strict word 00040h                ; b8 40 00
    7353     call 0166ch                               ; e8 36 c5
     7365    call 0166ch                               ; e8 08 c5
    73547366    mov si, ax                                ; 89 c6
    73557367    lea cx, [si+002h]                         ; 8d 4c 02
    73567368    cmp cx, strict byte 0003eh                ; 83 f9 3e
    7357     jc short 05143h                           ; 72 03
     7369    jc short 05171h                           ; 72 03
    73587370    mov cx, strict word 0001eh                ; b9 1e 00
    73597371    cmp cx, di                                ; 39 f9
    7360     jne short 0514bh                          ; 75 04
     7372    jne short 05179h                          ; 75 04
    73617373    xor ax, ax                                ; 31 c0
    7362     jmp short 05175h                          ; eb 2a
     7374    jmp short 051a3h                          ; eb 2a
    73637375    mov al, bl                                ; 88 d8
    73647376    xor ah, ah                                ; 30 e4
     
    73667378    mov dx, si                                ; 89 f2
    73677379    mov ax, strict word 00040h                ; b8 40 00
    7368     call 0165eh                               ; e8 05 c5
     7380    call 0165eh                               ; e8 d7 c4
    73697381    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    73707382    xor bh, bh                                ; 30 ff
    73717383    lea dx, [si+001h]                         ; 8d 54 01
    73727384    mov ax, strict word 00040h                ; b8 40 00
    7373     call 0165eh                               ; e8 f7 c4
     7385    call 0165eh                               ; e8 c9 c4
    73747386    mov bx, cx                                ; 89 cb
    73757387    mov dx, strict word 0001ch                ; ba 1c 00
    73767388    mov ax, strict word 00040h                ; b8 40 00
    7377     call 0167ah                               ; e8 08 c5
     7389    call 0167ah                               ; e8 da c4
    73787390    mov ax, strict word 00001h                ; b8 01 00
    73797391    lea sp, [bp-008h]                         ; 8d 66 f8
     
    73857397    retn                                      ; c3
    73867398    db  0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah
    7387     db  01dh, 0f1h, 054h, 0a9h, 052h, 04bh, 052h, 04bh, 052h, 038h, 053h, 022h, 052h, 0bch, 053h, 030h
    7388     db  054h, 0d7h, 054h, 0b5h, 054h, 0f0h, 052h, 04bh, 052h, 04bh, 052h, 07ah, 053h, 040h, 052h, 010h
    7389     db  054h, 095h, 054h, 0d0h, 054h
    7390 _int09_function:                             ; 0xf51b3 LB 0x494
     7399    db  01dh, 01fh, 055h, 0d7h, 052h, 079h, 052h, 079h, 052h, 066h, 053h, 050h, 052h, 0eah, 053h, 05eh
     7400    db  054h, 005h, 055h, 0e3h, 054h, 01eh, 053h, 079h, 052h, 079h, 052h, 0a8h, 053h, 06eh, 052h, 03eh
     7401    db  054h, 0c3h, 054h, 0feh, 054h
     7402_int09_function:                             ; 0xf51e1 LB 0x494
    73917403    push bp                                   ; 55
    73927404    mov bp, sp                                ; 89 e5
     
    73967408    mov byte [bp-00ah], al                    ; 88 46 f6
    73977409    test al, al                               ; 84 c0
    7398     jne short 051ddh                          ; 75 19
     7410    jne short 0520bh                          ; 75 19
    73997411    mov bx, 00da0h                            ; bb a0 0d
    74007412    mov cx, ds                                ; 8c d9
    74017413    mov ax, strict word 00004h                ; b8 04 00
    7402     call 01923h                               ; e8 54 c7
     7414    call 01923h                               ; e8 26 c7
    74037415    push 00587h                               ; 68 87 05
    74047416    push strict byte 00004h                   ; 6a 04
    7405     call 01966h                               ; e8 8f c7
     7417    call 01966h                               ; e8 61 c7
    74067418    add sp, strict byte 00004h                ; 83 c4 04
    7407     jmp near 052a3h                           ; e9 c6 00
     7419    jmp near 052d1h                           ; e9 c6 00
    74087420    mov dx, strict word 00018h                ; ba 18 00
    74097421    mov ax, strict word 00040h                ; b8 40 00
    7410     call 01650h                               ; e8 6a c4
     7422    call 01650h                               ; e8 3c c4
    74117423    mov byte [bp-010h], al                    ; 88 46 f0
    74127424    mov byte [bp-008h], al                    ; 88 46 f8
    74137425    mov dx, 00096h                            ; ba 96 00
    74147426    mov ax, strict word 00040h                ; b8 40 00
    7415     call 01650h                               ; e8 5b c4
     7427    call 01650h                               ; e8 2d c4
    74167428    mov byte [bp-004h], al                    ; 88 46 fc
    74177429    mov byte [bp-00ch], al                    ; 88 46 f4
    74187430    mov dx, strict word 00017h                ; ba 17 00
    74197431    mov ax, strict word 00040h                ; b8 40 00
    7420     call 01650h                               ; e8 4c c4
     7432    call 01650h                               ; e8 1e c4
    74217433    mov byte [bp-006h], al                    ; 88 46 fa
    74227434    mov byte [bp-00eh], al                    ; 88 46 f2
     
    74257437    pop ES                                    ; 07
    74267438    mov cx, strict word 00012h                ; b9 12 00
    7427     mov di, 0517eh                            ; bf 7e 51
     7439    mov di, 051ach                            ; bf ac 51
    74287440    repne scasb                               ; f2 ae
    74297441    sal cx, 1                                 ; d1 e1
    74307442    mov di, cx                                ; 89 cf
    7431     mov ax, word [cs:di+0518fh]               ; 2e 8b 85 8f 51
     7443    mov ax, word [cs:di+051bdh]               ; 2e 8b 85 bd 51
    74327444    jmp ax                                    ; ff e0
    74337445    xor byte [bp-00eh], 040h                  ; 80 76 f2 40
     
    74377449    mov dx, strict word 00017h                ; ba 17 00
    74387450    mov ax, strict word 00040h                ; b8 40 00
    7439     call 0165eh                               ; e8 28 c4
     7451    call 0165eh                               ; e8 fa c3
    74407452    or byte [bp-008h], 040h                   ; 80 4e f8 40
    74417453    mov al, byte [bp-008h]                    ; 8a 46 f8
    7442     jmp near 054c1h                           ; e9 81 02
     7454    jmp near 054efh                           ; e9 81 02
    74437455    mov al, byte [bp-010h]                    ; 8a 46 f0
    74447456    and AL, strict byte 0bfh                  ; 24 bf
    74457457    mov byte [bp-008h], al                    ; 88 46 f8
    7446     jmp near 054c1h                           ; e9 76 02
     7458    jmp near 054efh                           ; e9 76 02
    74477459    test byte [bp-00ch], 002h                 ; f6 46 f4 02
    7448     jne short 05284h                          ; 75 33
     7460    jne short 052b2h                          ; 75 33
    74497461    mov al, byte [bp-00ah]                    ; 8a 46 f6
    74507462    and AL, strict byte 07fh                  ; 24 7f
    74517463    cmp AL, strict byte 02ah                  ; 3c 2a
    7452     jne short 0525fh                          ; 75 05
     7464    jne short 0528dh                          ; 75 05
    74537465    mov dx, strict word 00002h                ; ba 02 00
    7454     jmp short 05262h                          ; eb 03
     7466    jmp short 05290h                          ; eb 03
    74557467    mov dx, strict word 00001h                ; ba 01 00
    74567468    test byte [bp-00ah], 080h                 ; f6 46 f6 80
    7457     je short 05271h                           ; 74 09
     7469    je short 0529fh                           ; 74 09
    74587470    mov al, dl                                ; 88 d0
    74597471    not al                                    ; f6 d0
    74607472    and byte [bp-00eh], al                    ; 20 46 f2
    7461     jmp short 05274h                          ; eb 03
     7473    jmp short 052a2h                          ; eb 03
    74627474    or byte [bp-00eh], dl                     ; 08 56 f2
    74637475    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    74667478    mov dx, strict word 00017h                ; ba 17 00
    74677479    mov ax, strict word 00040h                ; b8 40 00
    7468     call 0165eh                               ; e8 da c3
     7480    call 0165eh                               ; e8 ac c3
    74697481    mov al, byte [bp-00ah]                    ; 8a 46 f6
    74707482    and AL, strict byte 07fh                  ; 24 7f
    74717483    cmp AL, strict byte 01dh                  ; 3c 1d
    7472     je short 05291h                           ; 74 04
     7484    je short 052bfh                           ; 74 04
    74737485    and byte [bp-00ch], 0feh                  ; 80 66 f4 fe
    74747486    and byte [bp-00ch], 0fdh                  ; 80 66 f4 fd
     
    74777489    mov dx, 00096h                            ; ba 96 00
    74787490    mov ax, strict word 00040h                ; b8 40 00
    7479     call 0165eh                               ; e8 bb c3
     7491    call 0165eh                               ; e8 8d c3
    74807492    lea sp, [bp-002h]                         ; 8d 66 fe
    74817493    pop di                                    ; 5f
     
    74837495    retn                                      ; c3
    74847496    test byte [bp-004h], 001h                 ; f6 46 fc 01
    7485     jne short 05284h                          ; 75 d5
     7497    jne short 052b2h                          ; 75 d5
    74867498    mov al, byte [bp-006h]                    ; 8a 46 fa
    74877499    or AL, strict byte 004h                   ; 0c 04
     
    74917503    mov dx, strict word 00017h                ; ba 17 00
    74927504    mov ax, strict word 00040h                ; b8 40 00
    7493     call 0165eh                               ; e8 9a c3
     7505    call 0165eh                               ; e8 6c c3
    74947506    mov al, byte [bp-004h]                    ; 8a 46 fc
    74957507    test AL, strict byte 002h                 ; a8 02
    7496     je short 052d9h                           ; 74 0e
     7508    je short 05307h                           ; 74 0e
    74977509    or AL, strict byte 004h                   ; 0c 04
    74987510    mov byte [bp-00ch], al                    ; 88 46 f4
     
    75007512    mov bx, ax                                ; 89 c3
    75017513    mov dx, 00096h                            ; ba 96 00
    7502     jmp short 052e8h                          ; eb 0f
     7514    jmp short 05316h                          ; eb 0f
    75037515    mov al, byte [bp-010h]                    ; 8a 46 f0
    75047516    or AL, strict byte 001h                   ; 0c 01
     
    75087520    mov dx, strict word 00018h                ; ba 18 00
    75097521    mov ax, strict word 00040h                ; b8 40 00
    7510     call 0165eh                               ; e8 70 c3
    7511     jmp short 05284h                          ; eb 94
     7522    call 0165eh                               ; e8 42 c3
     7523    jmp short 052b2h                          ; eb 94
    75127524    test byte [bp-004h], 001h                 ; f6 46 fc 01
    7513     jne short 05284h                          ; 75 8e
     7525    jne short 052b2h                          ; 75 8e
    75147526    mov al, byte [bp-006h]                    ; 8a 46 fa
    75157527    and AL, strict byte 0fbh                  ; 24 fb
     
    75197531    mov dx, strict word 00017h                ; ba 17 00
    75207532    mov ax, strict word 00040h                ; b8 40 00
    7521     call 0165eh                               ; e8 53 c3
     7533    call 0165eh                               ; e8 25 c3
    75227534    mov al, byte [bp-004h]                    ; 8a 46 fc
    75237535    test AL, strict byte 002h                 ; a8 02
    7524     je short 05320h                           ; 74 0e
     7536    je short 0534eh                           ; 74 0e
    75257537    and AL, strict byte 0fbh                  ; 24 fb
    75267538    mov byte [bp-00ch], al                    ; 88 46 f4
     
    75287540    mov bx, ax                                ; 89 c3
    75297541    mov dx, 00096h                            ; ba 96 00
    7530     jmp short 0532fh                          ; eb 0f
     7542    jmp short 0535dh                          ; eb 0f
    75317543    mov al, byte [bp-010h]                    ; 8a 46 f0
    75327544    and AL, strict byte 0feh                  ; 24 fe
     
    75367548    mov dx, strict word 00018h                ; ba 18 00
    75377549    mov ax, strict word 00040h                ; b8 40 00
    7538     call 0165eh                               ; e8 29 c3
    7539     jmp near 05284h                           ; e9 4c ff
     7550    call 0165eh                               ; e8 fb c2
     7551    jmp near 052b2h                           ; e9 4c ff
    75407552    mov al, byte [bp-006h]                    ; 8a 46 fa
    75417553    or AL, strict byte 008h                   ; 0c 08
     
    75457557    mov dx, strict word 00017h                ; ba 17 00
    75467558    mov ax, strict word 00040h                ; b8 40 00
    7547     call 0165eh                               ; e8 11 c3
     7559    call 0165eh                               ; e8 e3 c2
    75487560    mov al, byte [bp-004h]                    ; 8a 46 fc
    75497561    test AL, strict byte 002h                 ; a8 02
    7550     je short 05362h                           ; 74 0e
     7562    je short 05390h                           ; 74 0e
    75517563    or AL, strict byte 008h                   ; 0c 08
    75527564    mov byte [bp-00ch], al                    ; 88 46 f4
     
    75547566    mov bx, ax                                ; 89 c3
    75557567    mov dx, 00096h                            ; ba 96 00
    7556     jmp short 05371h                          ; eb 0f
     7568    jmp short 0539fh                          ; eb 0f
    75577569    mov al, byte [bp-010h]                    ; 8a 46 f0
    75587570    or AL, strict byte 002h                   ; 0c 02
     
    75627574    mov dx, strict word 00018h                ; ba 18 00
    75637575    mov ax, strict word 00040h                ; b8 40 00
    7564     call 0165eh                               ; e8 e7 c2
    7565     jmp near 05284h                           ; e9 0a ff
     7576    call 0165eh                               ; e8 b9 c2
     7577    jmp near 052b2h                           ; e9 0a ff
    75667578    mov al, byte [bp-006h]                    ; 8a 46 fa
    75677579    and AL, strict byte 0f7h                  ; 24 f7
     
    75717583    mov dx, strict word 00017h                ; ba 17 00
    75727584    mov ax, strict word 00040h                ; b8 40 00
    7573     call 0165eh                               ; e8 cf c2
     7585    call 0165eh                               ; e8 a1 c2
    75747586    mov al, byte [bp-004h]                    ; 8a 46 fc
    75757587    test AL, strict byte 002h                 ; a8 02
    7576     je short 053a4h                           ; 74 0e
     7588    je short 053d2h                           ; 74 0e
    75777589    and AL, strict byte 0f7h                  ; 24 f7
    75787590    mov byte [bp-00ch], al                    ; 88 46 f4
     
    75807592    mov bx, ax                                ; 89 c3
    75817593    mov dx, 00096h                            ; ba 96 00
    7582     jmp short 053b3h                          ; eb 0f
     7594    jmp short 053e1h                          ; eb 0f
    75837595    mov al, byte [bp-010h]                    ; 8a 46 f0
    75847596    and AL, strict byte 0fdh                  ; 24 fd
     
    75887600    mov dx, strict word 00018h                ; ba 18 00
    75897601    mov ax, strict word 00040h                ; b8 40 00
    7590     call 0165eh                               ; e8 a5 c2
    7591     jmp near 05284h                           ; e9 c8 fe
     7602    call 0165eh                               ; e8 77 c2
     7603    jmp near 052b2h                           ; e9 c8 fe
    75927604    test byte [bp-004h], 003h                 ; f6 46 fc 03
    7593     jne short 053e2h                          ; 75 20
     7605    jne short 05410h                          ; 75 20
    75947606    mov al, byte [bp-010h]                    ; 8a 46 f0
    75957607    or AL, strict byte 020h                   ; 0c 20
     
    75997611    mov dx, strict word 00018h                ; ba 18 00
    76007612    mov ax, strict word 00040h                ; b8 40 00
    7601     call 0165eh                               ; e8 87 c2
     7613    call 0165eh                               ; e8 59 c2
    76027614    mov al, byte [bp-006h]                    ; 8a 46 fa
    76037615    xor AL, strict byte 020h                  ; 34 20
    76047616    mov byte [bp-00eh], al                    ; 88 46 f2
    7605     jmp near 05277h                           ; e9 95 fe
     7617    jmp near 052a5h                           ; e9 95 fe
    76067618    mov al, byte [bp-010h]                    ; 8a 46 f0
    76077619    or AL, strict byte 008h                   ; 0c 08
     
    76117623    mov dx, strict word 00018h                ; ba 18 00
    76127624    mov ax, strict word 00040h                ; b8 40 00
    7613     call 0165eh                               ; e8 67 c2
     7625    call 0165eh                               ; e8 39 c2
    76147626    mov AL, strict byte 0aeh                  ; b0 ae
    76157627    mov dx, strict word 00064h                ; ba 64 00
    76167628    out DX, AL                                ; ee
    7617     call 0e034h                               ; e8 34 8c
     7629    call 0e034h                               ; e8 06 8c
    76187630    mov dx, strict word 00018h                ; ba 18 00
    76197631    mov ax, strict word 00040h                ; b8 40 00
    7620     call 01650h                               ; e8 47 c2
     7632    call 01650h                               ; e8 19 c2
    76217633    test AL, strict byte 008h                 ; a8 08
    7622     jne short 05400h                          ; 75 f3
    7623     jmp near 05284h                           ; e9 74 fe
     7634    jne short 0542eh                          ; 75 f3
     7635    jmp near 052b2h                           ; e9 74 fe
    76247636    test byte [bp-004h], 003h                 ; f6 46 fc 03
    7625     je short 05419h                           ; 74 03
    7626     jmp near 05284h                           ; e9 6b fe
     7637    je short 05447h                           ; 74 03
     7638    jmp near 052b2h                           ; e9 6b fe
    76277639    mov al, byte [bp-010h]                    ; 8a 46 f0
    76287640    and AL, strict byte 0dfh                  ; 24 df
     
    76327644    mov dx, strict word 00018h                ; ba 18 00
    76337645    mov ax, strict word 00040h                ; b8 40 00
    7634     call 0165eh                               ; e8 30 c2
    7635     jmp short 05416h                          ; eb e6
     7646    call 0165eh                               ; e8 02 c2
     7647    jmp short 05444h                          ; eb e6
    76367648    test byte [bp-004h], 002h                 ; f6 46 fc 02
    7637     je short 05469h                           ; 74 33
     7649    je short 05497h                           ; 74 33
    76387650    mov dx, strict word 0001ah                ; ba 1a 00
    76397651    mov ax, strict word 00040h                ; b8 40 00
    7640     call 0166ch                               ; e8 2d c2
     7652    call 0166ch                               ; e8 ff c1
    76417653    mov bx, ax                                ; 89 c3
    76427654    mov dx, strict word 0001ch                ; ba 1c 00
    76437655    mov ax, strict word 00040h                ; b8 40 00
    7644     call 0167ah                               ; e8 30 c2
     7656    call 0167ah                               ; e8 02 c2
    76457657    mov bx, 00080h                            ; bb 80 00
    76467658    mov dx, strict word 00071h                ; ba 71 00
    76477659    mov ax, strict word 00040h                ; b8 40 00
    7648     call 0165eh                               ; e8 08 c2
     7660    call 0165eh                               ; e8 da c1
    76497661    mov AL, strict byte 0aeh                  ; b0 ae
    76507662    mov dx, strict word 00064h                ; ba 64 00
     
    76557667    xor dx, dx                                ; 31 d2
    76567668    xor ax, ax                                ; 31 c0
    7657     call 05115h                               ; e8 ae fc
    7658     jmp short 05416h                          ; eb ad
     7669    call 05143h                               ; e8 ae fc
     7670    jmp short 05444h                          ; eb ad
    76597671    mov al, byte [bp-010h]                    ; 8a 46 f0
    76607672    or AL, strict byte 010h                   ; 0c 10
     
    76647676    mov dx, strict word 00018h                ; ba 18 00
    76657677    mov ax, strict word 00040h                ; b8 40 00
    7666     call 0165eh                               ; e8 e0 c1
     7678    call 0165eh                               ; e8 b2 c1
    76677679    mov al, byte [bp-006h]                    ; 8a 46 fa
    76687680    xor AL, strict byte 010h                  ; 34 10
     
    76727684    mov dx, strict word 00017h                ; ba 17 00
    76737685    mov ax, strict word 00040h                ; b8 40 00
    7674     call 0165eh                               ; e8 cb c1
    7675     jmp short 05416h                          ; eb 81
     7686    call 0165eh                               ; e8 9d c1
     7687    jmp short 05444h                          ; eb 81
    76767688    test byte [bp-004h], 002h                 ; f6 46 fc 02
    7677     je short 0549eh                           ; 74 03
    7678     jmp near 05284h                           ; e9 e6 fd
     7689    je short 054cch                           ; 74 03
     7690    jmp near 052b2h                           ; e9 e6 fd
    76797691    mov al, byte [bp-010h]                    ; 8a 46 f0
    76807692    and AL, strict byte 0efh                  ; 24 ef
     
    76847696    mov dx, strict word 00018h                ; ba 18 00
    76857697    mov ax, strict word 00040h                ; b8 40 00
    7686     call 0165eh                               ; e8 ab c1
    7687     jmp short 0549bh                          ; eb e6
     7698    call 0165eh                               ; e8 7d c1
     7699    jmp short 054c9h                          ; eb e6
    76887700    mov al, byte [bp-010h]                    ; 8a 46 f0
    76897701    test AL, strict byte 004h                 ; a8 04
    7690     jne short 0549bh                          ; 75 df
     7702    jne short 054c9h                          ; 75 df
    76917703    or AL, strict byte 004h                   ; 0c 04
    76927704    mov byte [bp-008h], al                    ; 88 46 f8
     
    76957707    mov dx, strict word 00018h                ; ba 18 00
    76967708    mov ax, strict word 00040h                ; b8 40 00
    7697     call 0165eh                               ; e8 90 c1
    7698     jmp short 0549bh                          ; eb cb
     7709    call 0165eh                               ; e8 62 c1
     7710    jmp short 054c9h                          ; eb cb
    76997711    mov al, byte [bp-010h]                    ; 8a 46 f0
    77007712    and AL, strict byte 0fbh                  ; 24 fb
    7701     jmp short 054a3h                          ; eb cc
     7713    jmp short 054d1h                          ; eb cc
    77027714    mov al, byte [bp-006h]                    ; 8a 46 fa
    77037715    and AL, strict byte 00ch                  ; 24 0c
    77047716    cmp AL, strict byte 00ch                  ; 3c 0c
    7705     jne short 054f1h                          ; 75 11
     7717    jne short 0551fh                          ; 75 11
    77067718    mov bx, 01234h                            ; bb 34 12
    77077719    mov dx, strict word 00072h                ; ba 72 00
    77087720    mov ax, strict word 00040h                ; b8 40 00
    7709     call 0167ah                               ; e8 8e c1
     7721    call 0167ah                               ; e8 60 c1
    77107722    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    77117723    test byte [bp-008h], 008h                 ; f6 46 f8 08
    7712     je short 05506h                           ; 74 0f
     7724    je short 05534h                           ; 74 0f
    77137725    and byte [bp-008h], 0f7h                  ; 80 66 f8 f7
    77147726    mov bl, byte [bp-008h]                    ; 8a 5e f8
    77157727    xor bh, bh                                ; 30 ff
    77167728    mov dx, strict word 00018h                ; ba 18 00
    7717     jmp near 0529dh                           ; e9 97 fd
     7729    jmp near 052cbh                           ; e9 97 fd
    77187730    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77197731    test AL, strict byte 080h                 ; a8 80
    7720     je short 05544h                           ; 74 37
     7732    je short 05572h                           ; 74 37
    77217733    cmp AL, strict byte 0fah                  ; 3c fa
    7722     jne short 05523h                          ; 75 12
     7734    jne short 05551h                          ; 75 12
    77237735    mov dx, 00097h                            ; ba 97 00
    77247736    mov ax, strict word 00040h                ; b8 40 00
    7725     call 01650h                               ; e8 36 c1
     7737    call 01650h                               ; e8 08 c1
    77267738    mov bl, al                                ; 88 c3
    77277739    or bl, 010h                               ; 80 cb 10
    77287740    xor bh, bh                                ; 30 ff
    7729     jmp short 05539h                          ; eb 16
     7741    jmp short 05567h                          ; eb 16
    77307742    cmp AL, strict byte 0feh                  ; 3c fe
    7731     je short 0552ah                           ; 74 03
    7732     jmp near 05284h                           ; e9 5a fd
     7743    je short 05558h                           ; 74 03
     7744    jmp near 052b2h                           ; e9 5a fd
    77337745    mov dx, 00097h                            ; ba 97 00
    77347746    mov ax, strict word 00040h                ; b8 40 00
    7735     call 01650h                               ; e8 1d c1
     7747    call 01650h                               ; e8 ef c0
    77367748    or AL, strict byte 020h                   ; 0c 20
    77377749    xor ah, ah                                ; 30 e4
     
    77397751    mov dx, 00097h                            ; ba 97 00
    77407752    mov ax, strict word 00040h                ; b8 40 00
    7741     call 0165eh                               ; e8 1c c1
    7742     jmp short 05527h                          ; eb e3
     7753    call 0165eh                               ; e8 ee c0
     7754    jmp short 05555h                          ; eb e3
    77437755    cmp byte [bp-00ah], 058h                  ; 80 7e f6 58
    7744     jbe short 05569h                          ; 76 1f
     7756    jbe short 05597h                          ; 76 1f
    77457757    mov bx, 00da0h                            ; bb a0 0d
    77467758    mov cx, ds                                ; 8c d9
    77477759    mov ax, strict word 00004h                ; b8 04 00
    7748     call 01923h                               ; e8 ce c3
     7760    call 01923h                               ; e8 a0 c3
    77497761    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77507762    xor ah, ah                                ; 30 e4
     
    77527764    push 005a1h                               ; 68 a1 05
    77537765    push strict byte 00004h                   ; 6a 04
    7754     call 01966h                               ; e8 03 c4
     7766    call 01966h                               ; e8 d5 c3
    77557767    add sp, strict byte 00006h                ; 83 c4 06
    7756     jmp near 052a3h                           ; e9 3a fd
     7768    jmp near 052d1h                           ; e9 3a fd
    77577769    mov al, byte [bp-00eh]                    ; 8a 46 f2
    77587770    test AL, strict byte 008h                 ; a8 08
    7759     je short 05583h                           ; 74 13
     7771    je short 055b1h                           ; 74 13
    77607772    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77617773    xor ah, ah                                ; 30 e4
     
    77637775    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
    77647776    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
    7765     jmp near 05613h                           ; e9 90 00
     7777    jmp near 05641h                           ; e9 90 00
    77667778    test AL, strict byte 004h                 ; a8 04
    7767     je short 0559ah                           ; 74 13
     7779    je short 055c8h                           ; 74 13
    77687780    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77697781    xor ah, ah                                ; 30 e4
     
    77717783    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
    77727784    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
    7773     jmp near 05613h                           ; e9 79 00
     7785    jmp near 05641h                           ; e9 79 00
    77747786    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77757787    and AL, strict byte 002h                  ; 24 02
    77767788    test al, al                               ; 84 c0
    7777     jbe short 055b7h                          ; 76 14
     7789    jbe short 055e5h                          ; 76 14
    77787790    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77797791    cmp AL, strict byte 047h                  ; 3c 47
    7780     jc short 055b7h                           ; 72 0d
     7792    jc short 055e5h                           ; 72 0d
    77817793    cmp AL, strict byte 053h                  ; 3c 53
    7782     jnbe short 055b7h                         ; 77 09
     7794    jnbe short 055e5h                         ; 77 09
    77837795    mov DL, strict byte 0e0h                  ; b2 e0
    77847796    xor ah, ah                                ; 30 e4
    77857797    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
    7786     jmp short 0560fh                          ; eb 58
     7798    jmp short 0563dh                          ; eb 58
    77877799    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    7788     je short 055ech                           ; 74 2f
     7800    je short 0561ah                           ; 74 2f
    77897801    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77907802    xor ah, ah                                ; 30 e4
     
    77947806    mov al, byte [bp-00eh]                    ; 8a 46 f2
    77957807    test ax, dx                               ; 85 d0
    7796     je short 055dch                           ; 74 0a
     7808    je short 0560ah                           ; 74 0a
    77977809    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
    77987810    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
    7799     jmp short 055e4h                          ; eb 08
     7811    jmp short 05612h                          ; eb 08
    78007812    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
    78017813    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
    78027814    shr ax, 008h                              ; c1 e8 08
    78037815    mov byte [bp-00ah], al                    ; 88 46 f6
    7804     jmp short 05619h                          ; eb 2d
     7816    jmp short 05647h                          ; eb 2d
    78057817    mov al, byte [bp-00ah]                    ; 8a 46 f6
    78067818    xor ah, ah                                ; 30 e4
     
    78107822    mov al, byte [bp-00eh]                    ; 8a 46 f2
    78117823    test ax, dx                               ; 85 d0
    7812     je short 0560bh                           ; 74 0a
     7824    je short 05639h                           ; 74 0a
    78137825    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
    78147826    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
    7815     jmp short 05613h                          ; eb 08
     7827    jmp short 05641h                          ; eb 08
    78167828    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
    78177829    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
     
    78197831    mov byte [bp-00ah], al                    ; 88 46 f6
    78207832    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    7821     jne short 05639h                          ; 75 1a
     7833    jne short 05667h                          ; 75 1a
    78227834    test dl, dl                               ; 84 d2
    7823     jne short 05639h                          ; 75 16
     7835    jne short 05667h                          ; 75 16
    78247836    mov bx, 00da0h                            ; bb a0 0d
    78257837    mov cx, ds                                ; 8c d9
    78267838    mov ax, strict word 00004h                ; b8 04 00
    7827     call 01923h                               ; e8 f5 c2
     7839    call 01923h                               ; e8 c7 c2
    78287840    push 005d8h                               ; 68 d8 05
    78297841    push strict byte 00004h                   ; 6a 04
    7830     call 01966h                               ; e8 30 c3
     7842    call 01966h                               ; e8 02 c3
    78317843    add sp, strict byte 00004h                ; 83 c4 04
    78327844    mov bl, dl                                ; 88 d3
     
    78357847    xor ah, ah                                ; 30 e4
    78367848    mov dx, bx                                ; 89 da
    7837     jmp near 05464h                           ; e9 1d fe
    7838 dequeue_key_:                                ; 0xf5647 LB 0x94
     7849    jmp near 05492h                           ; e9 1d fe
     7850dequeue_key_:                                ; 0xf5675 LB 0x94
    78397851    push bp                                   ; 55
    78407852    mov bp, sp                                ; 89 e5
     
    78497861    mov dx, strict word 0001ah                ; ba 1a 00
    78507862    mov ax, strict word 00040h                ; b8 40 00
    7851     call 0166ch                               ; e8 0b c0
     7863    call 0166ch                               ; e8 dd bf
    78527864    mov bx, ax                                ; 89 c3
    78537865    mov dx, strict word 0001ch                ; ba 1c 00
    78547866    mov ax, strict word 00040h                ; b8 40 00
    7855     call 0166ch                               ; e8 00 c0
     7867    call 0166ch                               ; e8 d2 bf
    78567868    cmp bx, ax                                ; 39 c3
    7857     je short 056adh                           ; 74 3d
     7869    je short 056dbh                           ; 74 3d
    78587870    mov dx, bx                                ; 89 da
    78597871    mov ax, strict word 00040h                ; b8 40 00
    7860     call 01650h                               ; e8 d8 bf
     7872    call 01650h                               ; e8 aa bf
    78617873    mov cl, al                                ; 88 c1
    78627874    lea dx, [bx+001h]                         ; 8d 57 01
    78637875    mov ax, strict word 00040h                ; b8 40 00
    7864     call 01650h                               ; e8 cd bf
     7876    call 01650h                               ; e8 9f bf
    78657877    mov es, [bp-008h]                         ; 8e 46 f8
    78667878    mov byte [es:si], cl                      ; 26 88 0c
     
    78687880    mov byte [es:di], al                      ; 26 88 05
    78697881    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    7870     je short 056a8h                           ; 74 13
     7882    je short 056d6h                           ; 74 13
    78717883    inc bx                                    ; 43
    78727884    inc bx                                    ; 43
    78737885    cmp bx, strict byte 0003eh                ; 83 fb 3e
    7874     jc short 0569fh                           ; 72 03
     7886    jc short 056cdh                           ; 72 03
    78757887    mov bx, strict word 0001eh                ; bb 1e 00
    78767888    mov dx, strict word 0001ah                ; ba 1a 00
    78777889    mov ax, strict word 00040h                ; b8 40 00
    7878     call 0167ah                               ; e8 d2 bf
     7890    call 0167ah                               ; e8 a4 bf
    78797891    mov ax, strict word 00001h                ; b8 01 00
    7880     jmp short 056afh                          ; eb 02
     7892    jmp short 056ddh                          ; eb 02
    78817893    xor ax, ax                                ; 31 c0
    78827894    lea sp, [bp-004h]                         ; 8d 66 fc
     
    78897901    or cl, byte [bx+di]                       ; 0a 09
    78907902    add ax, 00102h                            ; 05 02 01
    7891     add ch, bl                                ; 00 dd
    7892     push di                                   ; 57
    7893     xchg sp, ax                               ; 94
    7894     push di                                   ; 57
    7895     db  026h, 058h
    7896     ; es pop ax                                 ; 26 58
    7897     jc short 05723h                           ; 72 58
    7898     sbb word [bx+si-054h], strict byte 00058h ; 83 58 ac 58
    7899     mov CH, strict byte 058h                  ; b5 58
    7900     db  026h, 059h
    7901     ; es pop cx                                 ; 26 59
     7903    add byte [bp+di], cl                      ; 00 0b
    79027904    pop ax                                    ; 58
     7905    retn 05457h                               ; c2 57 54
     7906    pop ax                                    ; 58
     7907    mov AL, byte [0b158h]                     ; a0 58 b1
     7908    pop ax                                    ; 58
     7909    ficomp dword [bx+si-01dh]                 ; da 58 e3
     7910    pop ax                                    ; 58
     7911    push sp                                   ; 54
    79037912    pop cx                                    ; 59
    7904     xchg word [bx+di-040h], bx                ; 87 59 c0
     7913    xchg byte [bx+di-04bh], bl                ; 86 59 b5
    79057914    pop cx                                    ; 59
    7906     db  020h
     7915    out DX, AL                                ; ee
     7916    pop cx                                    ; 59
     7917    dec si                                    ; 4e
    79077918    pop ax                                    ; 58
    7908 _int16_function:                             ; 0xf56db LB 0x2f0
     7919_int16_function:                             ; 0xf5709 LB 0x2f0
    79097920    push bp                                   ; 55
    79107921    mov bp, sp                                ; 89 e5
     
    79137924    mov dx, strict word 00017h                ; ba 17 00
    79147925    mov ax, strict word 00040h                ; b8 40 00
    7915     call 01650h                               ; e8 65 bf
     7926    call 01650h                               ; e8 37 bf
    79167927    mov cl, al                                ; 88 c1
    79177928    mov bh, al                                ; 88 c7
    79187929    mov dx, 00097h                            ; ba 97 00
    79197930    mov ax, strict word 00040h                ; b8 40 00
    7920     call 01650h                               ; e8 58 bf
     7931    call 01650h                               ; e8 2a bf
    79217932    mov bl, al                                ; 88 c3
    79227933    mov dl, cl                                ; 88 ca
     
    79287939    xor al, dl                                ; 30 d0
    79297940    test ax, ax                               ; 85 c0
    7930     je short 05774h                           ; 74 66
     7941    je short 057a2h                           ; 74 66
    79317942    cli                                       ; fa
    79327943    mov AL, strict byte 0edh                  ; b0 ed
     
    79387949    ; sub ah, ah                                ; 2a e4
    79397950    test AL, strict byte 001h                 ; a8 01
    7940     jne short 05727h                          ; 75 08
     7951    jne short 05755h                          ; 75 08
    79417952    mov AL, strict byte 021h                  ; b0 21
    79427953    mov dx, 00080h                            ; ba 80 00
    79437954    out DX, AL                                ; ee
    7944     jmp short 05715h                          ; eb ee
     7955    jmp short 05743h                          ; eb ee
    79457956    mov dx, strict word 00060h                ; ba 60 00
    79467957    in AL, DX                                 ; ec
     
    79487959    ; sub ah, ah                                ; 2a e4
    79497960    cmp ax, 000fah                            ; 3d fa 00
    7950     jne short 05773h                          ; 75 41
     7961    jne short 057a1h                          ; 75 41
    79517962    mov dl, bl                                ; 88 da
    79527963    and dl, 0c8h                              ; 80 e2 c8
     
    79687979    ; sub ah, ah                                ; 2a e4
    79697980    test AL, strict byte 001h                 ; a8 01
    7970     jne short 05762h                          ; 75 08
     7981    jne short 05790h                          ; 75 08
    79717982    mov AL, strict byte 021h                  ; b0 21
    79727983    mov dx, 00080h                            ; ba 80 00
    79737984    out DX, AL                                ; ee
    7974     jmp short 05750h                          ; eb ee
     7985    jmp short 0577eh                          ; eb ee
    79757986    mov dx, strict word 00060h                ; ba 60 00
    79767987    in AL, DX                                 ; ec
     
    79807991    mov dx, 00097h                            ; ba 97 00
    79817992    mov ax, strict word 00040h                ; b8 40 00
    7982     call 0165eh                               ; e8 eb be
     7993    call 0165eh                               ; e8 bd be
    79837994    sti                                       ; fb
    79847995    mov ax, word [bp+012h]                    ; 8b 46 12
    79857996    shr ax, 008h                              ; c1 e8 08
    79867997    cmp ax, 000a2h                            ; 3d a2 00
    7987     jnbe short 057ddh                         ; 77 5e
     7998    jnbe short 0580bh                         ; 77 5e
    79887999    push CS                                   ; 0e
    79898000    pop ES                                    ; 07
    79908001    mov cx, strict word 0000ch                ; b9 0c 00
    7991     mov di, 056b8h                            ; bf b8 56
     8002    mov di, 056e6h                            ; bf e6 56
    79928003    repne scasb                               ; f2 ae
    79938004    sal cx, 1                                 ; d1 e1
    79948005    mov di, cx                                ; 89 cf
    7995     mov ax, word [cs:di+056c3h]               ; 2e 8b 85 c3 56
     8006    mov ax, word [cs:di+056f1h]               ; 2e 8b 85 f1 56
    79968007    jmp ax                                    ; ff e0
    79978008    push strict byte 00001h                   ; 6a 01
     
    80008011    mov dx, ss                                ; 8c d2
    80018012    lea ax, [bp-006h]                         ; 8d 46 fa
    8002     call 05647h                               ; e8 a4 fe
     8013    call 05675h                               ; e8 a4 fe
    80038014    test ax, ax                               ; 85 c0
    8004     jne short 057b2h                          ; 75 0b
     8015    jne short 057e0h                          ; 75 0b
    80058016    push 0060fh                               ; 68 0f 06
    80068017    push strict byte 00007h                   ; 6a 07
    8007     call 01966h                               ; e8 b7 c1
     8018    call 01966h                               ; e8 89 c1
    80088019    add sp, strict byte 00004h                ; 83 c4 04
    80098020    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8010     je short 057beh                           ; 74 06
     8021    je short 057ech                           ; 74 06
    80118022    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8012     je short 057c4h                           ; 74 06
     8023    je short 057f2h                           ; 74 06
    80138024    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    8014     jne short 057c8h                          ; 75 04
     8025    jne short 057f6h                          ; 75 04
    80158026    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    80168027    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    80218032    or dx, ax                                 ; 09 c2
    80228033    mov word [bp+012h], dx                    ; 89 56 12
    8023     jmp near 05820h                           ; e9 43 00
     8034    jmp near 0584eh                           ; e9 43 00
    80248035    mov bx, 00da0h                            ; bb a0 0d
    80258036    mov cx, ds                                ; 8c d9
    80268037    mov ax, strict word 00004h                ; b8 04 00
    8027     call 01923h                               ; e8 3b c1
     8038    call 01923h                               ; e8 0d c1
    80288039    mov ax, word [bp+012h]                    ; 8b 46 12
    80298040    shr ax, 008h                              ; c1 e8 08
     
    80318042    push 00633h                               ; 68 33 06
    80328043    push strict byte 00004h                   ; 6a 04
    8033     call 01966h                               ; e8 6f c1
     8044    call 01966h                               ; e8 41 c1
    80348045    add sp, strict byte 00006h                ; 83 c4 06
    80358046    mov bx, 00da0h                            ; bb a0 0d
    80368047    mov cx, ds                                ; 8c d9
    80378048    mov ax, strict word 00004h                ; b8 04 00
    8038     call 01923h                               ; e8 1e c1
     8049    call 01923h                               ; e8 f0 c0
    80398050    mov ax, word [bp+00eh]                    ; 8b 46 0e
    80408051    push ax                                   ; 50
     
    80478058    push 0065bh                               ; 68 5b 06
    80488059    push strict byte 00004h                   ; 6a 04
    8049     call 01966h                               ; e8 49 c1
     8060    call 01966h                               ; e8 1b c1
    80508061    add sp, strict byte 0000ch                ; 83 c4 0c
    80518062    lea sp, [bp-002h]                         ; 8d 66 fe
     
    80598070    mov dx, ss                                ; 8c d2
    80608071    lea ax, [bp-006h]                         ; 8d 46 fa
    8061     call 05647h                               ; e8 0d fe
     8072    call 05675h                               ; e8 0d fe
    80628073    test ax, ax                               ; 85 c0
    8063     jne short 05844h                          ; 75 06
     8074    jne short 05872h                          ; 75 06
    80648075    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
    8065     jmp short 05820h                          ; eb dc
     8076    jmp short 0584eh                          ; eb dc
    80668077    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8067     je short 05850h                           ; 74 06
     8078    je short 0587eh                           ; 74 06
    80688079    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8069     je short 05856h                           ; 74 06
     8080    je short 05884h                           ; 74 06
    80708081    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    8071     jne short 0585ah                          ; 75 04
     8082    jne short 05888h                          ; 75 04
    80728083    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    80738084    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    80798090    mov word [bp+012h], dx                    ; 89 56 12
    80808091    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
    8081     jmp short 05820h                          ; eb ae
     8092    jmp short 0584eh                          ; eb ae
    80828093    mov dx, strict word 00017h                ; ba 17 00
    80838094    mov ax, strict word 00040h                ; b8 40 00
    8084     call 01650h                               ; e8 d5 bd
     8095    call 01650h                               ; e8 a7 bd
    80858096    mov dx, word [bp+012h]                    ; 8b 56 12
    80868097    mov dl, al                                ; 88 c2
    8087     jmp near 057d7h                           ; e9 54 ff
     8098    jmp near 05805h                           ; e9 54 ff
    80888099    mov dl, byte [bp+010h]                    ; 8a 56 10
    80898100    xor dh, dh                                ; 30 f6
     
    80918102    shr ax, 008h                              ; c1 e8 08
    80928103    xor ah, ah                                ; 30 e4
    8093     call 05115h                               ; e8 82 f8
     8104    call 05143h                               ; e8 82 f8
    80948105    test ax, ax                               ; 85 c0
    8095     jne short 058a4h                          ; 75 0d
     8106    jne short 058d2h                          ; 75 0d
    80968107    mov ax, word [bp+012h]                    ; 8b 46 12
    80978108    xor al, al                                ; 30 c0
    80988109    or AL, strict byte 001h                   ; 0c 01
    80998110    mov word [bp+012h], ax                    ; 89 46 12
    8100     jmp near 05820h                           ; e9 7c ff
     8111    jmp near 0584eh                           ; e9 7c ff
    81018112    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    8102     jmp near 05820h                           ; e9 74 ff
     8113    jmp near 0584eh                           ; e9 74 ff
    81038114    mov ax, word [bp+012h]                    ; 8b 46 12
    81048115    xor al, al                                ; 30 c0
    81058116    or AL, strict byte 030h                   ; 0c 30
    8106     jmp short 0589eh                          ; eb e9
     8117    jmp short 058cch                          ; eb e9
    81078118    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    81088119    xor cx, cx                                ; 31 c9
     
    81178128    ; sub ah, ah                                ; 2a e4
    81188129    test AL, strict byte 001h                 ; a8 01
    8119     jne short 058dch                          ; 75 0d
     8130    jne short 0590ah                          ; 75 0d
    81208131    dec bx                                    ; 4b
    81218132    test bx, bx                               ; 85 db
    8122     jbe short 058dch                          ; 76 08
     8133    jbe short 0590ah                          ; 76 08
    81238134    mov dx, 00080h                            ; ba 80 00
    81248135    in AL, DX                                 ; ec
    81258136    db  02ah, 0e4h
    81268137    ; sub ah, ah                                ; 2a e4
    8127     jmp short 058c5h                          ; eb e9
     8138    jmp short 058f3h                          ; eb e9
    81288139    test bx, bx                               ; 85 db
    8129     jbe short 05920h                          ; 76 40
     8140    jbe short 0594eh                          ; 76 40
    81308141    mov dx, strict word 00060h                ; ba 60 00
    81318142    in AL, DX                                 ; ec
     
    81338144    ; sub ah, ah                                ; 2a e4
    81348145    cmp ax, 000fah                            ; 3d fa 00
    8135     jne short 05920h                          ; 75 35
     8146    jne short 0594eh                          ; 75 35
    81368147    mov bx, strict word 0ffffh                ; bb ff ff
    81378148    mov dx, strict word 00064h                ; ba 64 00
     
    81408151    ; sub ah, ah                                ; 2a e4
    81418152    test AL, strict byte 001h                 ; a8 01
    8142     jne short 05905h                          ; 75 0d
     8153    jne short 05933h                          ; 75 0d
    81438154    dec bx                                    ; 4b
    81448155    test bx, bx                               ; 85 db
    8145     jbe short 05905h                          ; 76 08
     8156    jbe short 05933h                          ; 76 08
    81468157    mov dx, 00080h                            ; ba 80 00
    81478158    in AL, DX                                 ; ec
    81488159    db  02ah, 0e4h
    81498160    ; sub ah, ah                                ; 2a e4
    8150     jmp short 058eeh                          ; eb e9
     8161    jmp short 0591ch                          ; eb e9
    81518162    test bx, bx                               ; 85 db
    8152     jbe short 05917h                          ; 76 0e
     8163    jbe short 05945h                          ; 76 0e
    81538164    shr cx, 008h                              ; c1 e9 08
    81548165    mov dx, strict word 00060h                ; ba 60 00
     
    81608171    dec byte [bp-004h]                        ; fe 4e fc
    81618172    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    8162     jnbe short 058ebh                         ; 77 cb
     8173    jnbe short 05919h                         ; 77 cb
    81638174    mov word [bp+00ch], cx                    ; 89 4e 0c
    8164     jmp near 05820h                           ; e9 fa fe
     8175    jmp near 0584eh                           ; e9 fa fe
    81658176    push strict byte 00001h                   ; 6a 01
    81668177    mov cx, ss                                ; 8c d1
     
    81688179    mov dx, ss                                ; 8c d2
    81698180    lea ax, [bp-006h]                         ; 8d 46 fa
    8170     call 05647h                               ; e8 12 fd
     8181    call 05675h                               ; e8 12 fd
    81718182    test ax, ax                               ; 85 c0
    8172     jne short 05944h                          ; 75 0b
     8183    jne short 05972h                          ; 75 0b
    81738184    push 0060fh                               ; 68 0f 06
    81748185    push strict byte 00007h                   ; 6a 07
    8175     call 01966h                               ; e8 25 c0
     8186    call 01966h                               ; e8 f7 bf
    81768187    add sp, strict byte 00004h                ; 83 c4 04
    81778188    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8178     jne short 0594dh                          ; 75 03
    8179     jmp near 057c8h                           ; e9 7b fe
     8189    jne short 0597bh                          ; 75 03
     8190    jmp near 057f6h                           ; e9 7b fe
    81808191    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8181     jne short 05956h                          ; 75 03
    8182     jmp near 057c4h                           ; e9 6e fe
    8183     jmp short 0594ah                          ; eb f2
     8192    jne short 05984h                          ; 75 03
     8193    jmp near 057f2h                           ; e9 6e fe
     8194    jmp short 05978h                          ; eb f2
    81848195    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    81858196    push strict byte 00000h                   ; 6a 00
     
    81888199    mov dx, ss                                ; 8c d2
    81898200    lea ax, [bp-006h]                         ; 8d 46 fa
    8190     call 05647h                               ; e8 db fc
     8201    call 05675h                               ; e8 db fc
    81918202    test ax, ax                               ; 85 c0
    8192     jne short 05973h                          ; 75 03
    8193     jmp near 0583eh                           ; e9 cb fe
     8203    jne short 059a1h                          ; 75 03
     8204    jmp near 0586ch                           ; e9 cb fe
    81948205    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8195     jne short 0597ch                          ; 75 03
    8196     jmp near 0585ah                           ; e9 de fe
     8206    jne short 059aah                          ; 75 03
     8207    jmp near 05888h                           ; e9 de fe
    81978208    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8198     jne short 05985h                          ; 75 03
    8199     jmp near 05856h                           ; e9 d1 fe
    8200     jmp short 05979h                          ; eb f2
     8209    jne short 059b3h                          ; 75 03
     8210    jmp near 05884h                           ; e9 d1 fe
     8211    jmp short 059a7h                          ; eb f2
    82018212    mov dx, strict word 00017h                ; ba 17 00
    82028213    mov ax, strict word 00040h                ; b8 40 00
    8203     call 01650h                               ; e8 c0 bc
     8214    call 01650h                               ; e8 92 bc
    82048215    mov dx, word [bp+012h]                    ; 8b 56 12
    82058216    mov dl, al                                ; 88 c2
     
    82078218    mov dx, strict word 00018h                ; ba 18 00
    82088219    mov ax, strict word 00040h                ; b8 40 00
    8209     call 01650h                               ; e8 af bc
     8220    call 01650h                               ; e8 81 bc
    82108221    mov bh, al                                ; 88 c7
    82118222    and bh, 073h                              ; 80 e7 73
    82128223    mov dx, 00096h                            ; ba 96 00
    82138224    mov ax, strict word 00040h                ; b8 40 00
    8214     call 01650h                               ; e8 a1 bc
     8225    call 01650h                               ; e8 73 bc
    82158226    and AL, strict byte 00ch                  ; 24 0c
    82168227    or al, bh                                 ; 08 f8
     
    82198230    xor ah, ah                                ; 30 e4
    82208231    sal ax, 008h                              ; c1 e0 08
    8221     jmp near 057d5h                           ; e9 15 fe
     8232    jmp near 05803h                           ; e9 15 fe
    82228233    mov ax, word [bp+012h]                    ; 8b 46 12
    82238234    xor ah, ah                                ; 30 e4
    82248235    or ah, 080h                               ; 80 cc 80
    8225     jmp near 0589eh                           ; e9 d3 fe
    8226 set_geom_lba_:                               ; 0xf59cb LB 0xe7
     8236    jmp near 058cch                           ; e9 d3 fe
     8237set_geom_lba_:                               ; 0xf59f9 LB 0xe7
    82278238    push bx                                   ; 53
    82288239    push cx                                   ; 51
     
    82408251    mov dx, word [bp+00ch]                    ; 8b 56 0c
    82418252    mov si, strict word 00020h                ; be 20 00
    8242     call 09fe0h                               ; e8 e8 45
     8253    call 0a010h                               ; e8 ea 45
    82438254    test ax, ax                               ; 85 c0
    8244     jne short 05a08h                          ; 75 0c
     8255    jne short 05a36h                          ; 75 0c
    82458256    test bx, bx                               ; 85 db
    8246     jne short 05a08h                          ; 75 08
     8257    jne short 05a36h                          ; 75 08
    82478258    test cx, cx                               ; 85 c9
    8248     jne short 05a08h                          ; 75 04
     8259    jne short 05a36h                          ; 75 04
    82498260    test dx, dx                               ; 85 d2
    8250     je short 05a0fh                           ; 74 07
     8261    je short 05a3dh                           ; 74 07
    82518262    mov bx, strict word 0ffffh                ; bb ff ff
    82528263    mov si, bx                                ; 89 de
    8253     jmp short 05a15h                          ; eb 06
     8264    jmp short 05a43h                          ; eb 06
    82548265    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    82558266    mov si, word [bp+00eh]                    ; 8b 76 0e
    82568267    mov word [bp-004h], bx                    ; 89 5e fc
    82578268    xor bx, bx                                ; 31 db
    8258     jmp short 05a21h                          ; eb 05
     8269    jmp short 05a4fh                          ; eb 05
    82598270    cmp bx, strict byte 00004h                ; 83 fb 04
    8260     jnl short 05a44h                          ; 7d 23
     8271    jnl short 05a72h                          ; 7d 23
    82618272    mov ax, word [bp-006h]                    ; 8b 46 fa
    82628273    cmp si, ax                                ; 39 c6
    8263     jc short 05a32h                           ; 72 0a
    8264     jne short 05a3bh                          ; 75 11
     8274    jc short 05a60h                           ; 72 0a
     8275    jne short 05a69h                          ; 75 11
    82658276    mov ax, word [bp-004h]                    ; 8b 46 fc
    82668277    cmp ax, word [bp-008h]                    ; 3b 46 f8
    8267     jnbe short 05a3bh                         ; 77 09
     8278    jnbe short 05a69h                         ; 77 09
    82688279    mov ax, word [bp-002h]                    ; 8b 46 fe
    82698280    inc ax                                    ; 40
     
    82738284    rcr word [bp-008h], 1                     ; d1 5e f8
    82748285    inc bx                                    ; 43
    8275     jmp short 05a1ch                          ; eb d8
     8286    jmp short 05a4ah                          ; eb d8
    82768287    mov ax, word [bp-002h]                    ; 8b 46 fe
    82778288    xor dx, dx                                ; 31 d2
    82788289    mov bx, strict word 0003fh                ; bb 3f 00
    82798290    xor cx, cx                                ; 31 c9
    8280     call 09f90h                               ; e8 3f 45
     8291    call 09fc0h                               ; e8 41 45
    82818292    mov bx, ax                                ; 89 c3
    82828293    mov cx, dx                                ; 89 d1
    82838294    mov ax, word [bp-004h]                    ; 8b 46 fc
    82848295    mov dx, si                                ; 89 f2
    8285     call 09fb0h                               ; e8 53 45
     8296    call 09fe0h                               ; e8 55 45
    82868297    mov word [es:di+002h], ax                 ; 26 89 45 02
    82878298    cmp ax, 00400h                            ; 3d 00 04
    8288     jbe short 05a6ch                          ; 76 06
     8299    jbe short 05a9ah                          ; 76 06
    82898300    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
    82908301    mov ax, word [bp-002h]                    ; 8b 46 fe
     
    82978308    pop bx                                    ; 5b
    82988309    retn 00008h                               ; c2 08 00
    8299     cmp bl, byte [bp+di+04bh]                 ; 3a 5b 4b
     8310    push 0795bh                               ; 68 5b 79
    83008311    pop bx                                    ; 5b
    8301     jp short 05ae1h                           ; 7a 5b
    8302     jp short 05ae3h                           ; 7a 5b
    8303     jp short 05ae5h                           ; 7a 5b
    8304     push strict byte 0005dh                   ; 6a 5d
    8305     mov word [0a35eh], ax                     ; a3 5e a3
     8312    test AL, strict byte 05bh                 ; a8 5b
     8313    test AL, strict byte 05bh                 ; a8 5b
     8314    test AL, strict byte 05bh                 ; a8 5b
     8315    cbw                                       ; 98
     8316    pop bp                                    ; 5d
     8317    rcr word [bp-02fh], 1                     ; d1 5e d1
    83068318    pop si                                    ; 5e
    8307     xchg di, ax                               ; 97
    8308     pop bp                                    ; 5d
    8309     sbb byte [bp-05dh], 05eh                  ; 80 5e a3 5e
    8310     mov word [0805eh], ax                     ; a3 5e 80
     8319    lds bx, [di-052h]                         ; c5 5d ae
    83118320    pop si                                    ; 5e
    8312     sbb byte [bp-05dh], 05eh                  ; 80 5e a3 5e
    8313     mov word [0025eh], ax                     ; a3 5e 02
     8321    rcr word [bp-02fh], 1                     ; d1 5e d1
    83148322    pop si                                    ; 5e
    8315     sbb byte [bp-05dh], 05eh                  ; 80 5e a3 5e
    8316     mov word [0805eh], ax                     ; a3 5e 80
     8323    scasb                                     ; ae
    83178324    pop si                                    ; 5e
    8318     xor bx, word [bp-05dh]                    ; 33 5e a3
     8325    scasb                                     ; ae
    83198326    pop si                                    ; 5e
    8320     mov word [0a35eh], ax                     ; a3 5e a3
     8327    rcr word [bp-02fh], 1                     ; d1 5e d1
    83218328    pop si                                    ; 5e
    8322 _int13_harddisk:                             ; 0xf5ab2 LB 0x44f
     8329    xor byte [bp-052h], bl                    ; 30 5e ae
     8330    pop si                                    ; 5e
     8331    rcr word [bp-02fh], 1                     ; d1 5e d1
     8332    pop si                                    ; 5e
     8333    scasb                                     ; ae
     8334    pop si                                    ; 5e
     8335    popaw                                     ; 61
     8336    pop si                                    ; 5e
     8337    rcr word [bp-02fh], 1                     ; d1 5e d1
     8338    pop si                                    ; 5e
     8339    db  0d1h
     8340    pop si                                    ; 5e
     8341_int13_harddisk:                             ; 0xf5ae0 LB 0x44f
    83238342    push bp                                   ; 55
    83248343    mov bp, sp                                ; 89 e5
     
    83268345    mov dx, strict word 0000eh                ; ba 0e 00
    83278346    mov ax, strict word 00040h                ; b8 40 00
    8328     call 0166ch                               ; e8 ab bb
     8347    call 0166ch                               ; e8 7d bb
    83298348    mov si, 00122h                            ; be 22 01
    83308349    mov word [bp-004h], ax                    ; 89 46 fc
     
    83328351    mov dx, 0008eh                            ; ba 8e 00
    83338352    mov ax, strict word 00040h                ; b8 40 00
    8334     call 0165eh                               ; e8 8c bb
     8353    call 0165eh                               ; e8 5e bb
    83358354    mov ax, word [bp+00eh]                    ; 8b 46 0e
    83368355    xor ah, ah                                ; 30 e4
    83378356    cmp ax, 00080h                            ; 3d 80 00
    8338     jc short 05ae1h                           ; 72 05
     8357    jc short 05b0fh                           ; 72 05
    83398358    cmp ax, 00090h                            ; 3d 90 00
    8340     jc short 05affh                           ; 72 1e
     8359    jc short 05b2dh                           ; 72 1e
    83418360    mov ax, word [bp+00eh]                    ; 8b 46 0e
    83428361    xor ah, ah                                ; 30 e4
     
    83488367    push 0068dh                               ; 68 8d 06
    83498368    push strict byte 00004h                   ; 6a 04
    8350     call 01966h                               ; e8 6d be
     8369    call 01966h                               ; e8 3f be
    83518370    add sp, strict byte 0000ah                ; 83 c4 0a
    8352     jmp near 05ebeh                           ; e9 bf 03
     8371    jmp near 05eech                           ; e9 bf 03
    83538372    mov ax, word [bp+00eh]                    ; 8b 46 0e
    83548373    xor ah, ah                                ; 30 e4
     
    83598378    mov byte [bp-002h], dl                    ; 88 56 fe
    83608379    cmp dl, 010h                              ; 80 fa 10
    8361     jc short 05b28h                           ; 72 10
     8380    jc short 05b56h                           ; 72 10
    83628381    push ax                                   ; 50
    83638382    mov ax, word [bp+016h]                    ; 8b 46 16
     
    83668385    push 0067eh                               ; 68 7e 06
    83678386    push 006b8h                               ; 68 b8 06
    8368     jmp short 05af4h                          ; eb cc
     8387    jmp short 05b22h                          ; eb cc
    83698388    mov bx, word [bp+016h]                    ; 8b 5e 16
    83708389    shr bx, 008h                              ; c1 eb 08
    83718390    cmp bx, strict byte 00018h                ; 83 fb 18
    8372     jnbe short 05b77h                         ; 77 44
     8391    jnbe short 05ba5h                         ; 77 44
    83738392    add bx, bx                                ; 01 db
    8374     jmp word [cs:bx+05a80h]                   ; 2e ff a7 80 5a
     8393    jmp word [cs:bx+05aaeh]                   ; 2e ff a7 ae 5a
    83758394    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8376     jnc short 05b48h                          ; 73 08
     8395    jnc short 05b76h                          ; 73 08
    83778396    mov al, byte [bp-002h]                    ; 8a 46 fe
    83788397    xor ah, ah                                ; 30 e4
    8379     call 01d85h                               ; e8 3d c2
    8380     jmp near 05d80h                           ; e9 35 02
     8398    call 01d85h                               ; e8 0f c2
     8399    jmp near 05daeh                           ; e9 35 02
    83818400    mov dx, strict word 00074h                ; ba 74 00
    83828401    mov ax, strict word 00040h                ; b8 40 00
    8383     call 01650h                               ; e8 fc ba
     8402    call 01650h                               ; e8 ce ba
    83848403    mov cl, al                                ; 88 c1
    83858404    mov dx, word [bp+016h]                    ; 8b 56 16
     
    83928411    mov dx, strict word 00074h                ; ba 74 00
    83938412    mov ax, strict word 00040h                ; b8 40 00
    8394     call 0165eh                               ; e8 ee ba
     8413    call 0165eh                               ; e8 c0 ba
    83958414    test cl, cl                               ; 84 c9
    8396     je short 05bd8h                           ; 74 64
    8397     jmp near 05edah                           ; e9 63 03
    8398     jmp near 05ea3h                           ; e9 29 03
     8415    je short 05c06h                           ; 74 64
     8416    jmp near 05f08h                           ; e9 63 03
     8417    jmp near 05ed1h                           ; e9 29 03
    83998418    mov ax, word [bp+016h]                    ; 8b 46 16
    84008419    xor ah, ah                                ; 30 e4
     
    84168435    mov ax, word [bp-00eh]                    ; 8b 46 f2
    84178436    cmp ax, 00080h                            ; 3d 80 00
    8418     jnbe short 05bb5h                         ; 77 04
     8437    jnbe short 05be3h                         ; 77 04
    84198438    test ax, ax                               ; 85 c0
    8420     jne short 05bdbh                          ; 75 26
     8439    jne short 05c09h                          ; 75 26
    84218440    mov bx, 00da0h                            ; bb a0 0d
    84228441    mov cx, ds                                ; 8c d9
    84238442    mov ax, strict word 00004h                ; b8 04 00
    8424     call 01923h                               ; e8 63 bd
     8443    call 01923h                               ; e8 35 bd
    84258444    mov ax, word [bp+016h]                    ; 8b 46 16
    84268445    shr ax, 008h                              ; c1 e8 08
     
    84298448    push 006eah                               ; 68 ea 06
    84308449    push strict byte 00004h                   ; 6a 04
    8431     call 01966h                               ; e8 94 bd
     8450    call 01966h                               ; e8 66 bd
    84328451    add sp, strict byte 00008h                ; 83 c4 08
    8433     jmp near 05ebeh                           ; e9 e6 02
    8434     jmp near 05d84h                           ; e9 a9 01
     8452    jmp near 05eech                           ; e9 e6 02
     8453    jmp near 05db2h                           ; e9 a9 01
    84358454    mov al, byte [bp-002h]                    ; 8a 46 fe
    84368455    xor ah, ah                                ; 30 e4
     
    84448463    mov word [bp-00ah], dx                    ; 89 56 f6
    84458464    cmp di, ax                                ; 39 c7
    8446     jnc short 05c09h                          ; 73 0c
     8465    jnc short 05c37h                          ; 73 0c
    84478466    cmp cx, word [bp-008h]                    ; 3b 4e f8
    8448     jbe short 05c09h                          ; 76 07
     8467    jbe short 05c37h                          ; 76 07
    84498468    mov ax, word [bp-006h]                    ; 8b 46 fa
    84508469    cmp ax, dx                                ; 39 d0
    8451     jbe short 05c39h                          ; 76 30
     8470    jbe short 05c67h                          ; 76 30
    84528471    mov bx, 00da0h                            ; bb a0 0d
    84538472    mov cx, ds                                ; 8c d9
    84548473    mov ax, strict word 00004h                ; b8 04 00
    8455     call 01923h                               ; e8 0f bd
     8474    call 01923h                               ; e8 e1 bc
    84568475    push word [bp-006h]                       ; ff 76 fa
    84578476    push word [bp-008h]                       ; ff 76 f8
     
    84668485    push 00712h                               ; 68 12 07
    84678486    push strict byte 00004h                   ; 6a 04
    8468     call 01966h                               ; e8 33 bd
     8487    call 01966h                               ; e8 05 bd
    84698488    add sp, strict byte 00010h                ; 83 c4 10
    8470     jmp near 05ebeh                           ; e9 85 02
     8489    jmp near 05eech                           ; e9 85 02
    84718490    mov ax, word [bp+016h]                    ; 8b 46 16
    84728491    shr ax, 008h                              ; c1 e8 08
    84738492    cmp ax, strict word 00004h                ; 3d 04 00
    8474     je short 05c64h                           ; 74 20
     8493    je short 05c92h                           ; 74 20
    84758494    mov al, byte [bp-002h]                    ; 8a 46 fe
    84768495    xor ah, ah                                ; 30 e4
     
    84808499    add bx, ax                                ; 01 c3
    84818500    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
    8482     jne short 05c6dh                          ; 75 14
     8501    jne short 05c9bh                          ; 75 14
    84838502    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    84848503    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    8485     je short 05c67h                           ; 74 05
    8486     jmp short 05c6dh                          ; eb 09
    8487     jmp near 05d80h                           ; e9 19 01
     8504    je short 05c95h                           ; 74 05
     8505    jmp short 05c9bh                          ; eb 09
     8506    jmp near 05daeh                           ; e9 19 01
    84888507    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8489     jc short 05c9dh                           ; 72 30
     8508    jc short 05ccbh                           ; 72 30
    84908509    mov ax, di                                ; 89 f8
    84918510    xor dx, dx                                ; 31 d2
    84928511    mov bx, cx                                ; 89 cb
    84938512    xor cx, cx                                ; 31 c9
    8494     call 09f90h                               ; e8 18 43
     8513    call 09fc0h                               ; e8 1a 43
    84958514    xor bx, bx                                ; 31 db
    84968515    add ax, word [bp-008h]                    ; 03 46 f8
     
    84988517    mov bx, word [bp-00ah]                    ; 8b 5e f6
    84998518    xor cx, cx                                ; 31 c9
    8500     call 09f90h                               ; e8 09 43
     8519    call 09fc0h                               ; e8 0b 43
    85018520    xor bx, bx                                ; 31 db
    85028521    add ax, word [bp-006h]                    ; 03 46 fa
     
    85548573    mov word [bp+016h], bx                    ; 89 5e 16
    85558574    test dl, dl                               ; 84 d2
    8556     je short 05d80h                           ; 74 46
     8575    je short 05daeh                           ; 74 46
    85578576    mov bx, 00da0h                            ; bb a0 0d
    85588577    mov cx, ds                                ; 8c d9
    85598578    mov ax, strict word 00004h                ; b8 04 00
    8560     call 01923h                               ; e8 de bb
     8579    call 01923h                               ; e8 b0 bb
    85618580    mov al, dl                                ; 88 d0
    85628581    xor ah, ah                                ; 30 e4
     
    85688587    push 00759h                               ; 68 59 07
    85698588    push strict byte 00004h                   ; 6a 04
    8570     call 01966h                               ; e8 0a bc
     8589    call 01966h                               ; e8 dc bb
    85718590    add sp, strict byte 0000ah                ; 83 c4 0a
    85728591    mov ax, word [bp+016h]                    ; 8b 46 16
    85738592    xor ah, ah                                ; 30 e4
    85748593    or ah, 00ch                               ; 80 cc 0c
    8575     jmp near 05ec6h                           ; e9 5c 01
     8594    jmp near 05ef4h                           ; e9 5c 01
    85768595    mov bx, 00da0h                            ; bb a0 0d
    85778596    mov cx, ds                                ; 8c d9
    85788597    mov ax, strict word 00004h                ; b8 04 00
    8579     call 01923h                               ; e8 ae bb
     8598    call 01923h                               ; e8 80 bb
    85808599    push 0077ah                               ; 68 7a 07
    85818600    push strict byte 00004h                   ; 6a 04
    8582     call 01966h                               ; e8 e9 bb
     8601    call 01966h                               ; e8 bb bb
    85838602    add sp, strict byte 00004h                ; 83 c4 04
    85848603    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    85868605    mov dx, strict word 00074h                ; ba 74 00
    85878606    mov ax, strict word 00040h                ; b8 40 00
    8588     call 0165eh                               ; e8 cf b8
     8607    call 0165eh                               ; e8 a1 b8
    85898608    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    85908609    mov sp, bp                                ; 89 ec
     
    86298648    mov dl, al                                ; 88 c2
    86308649    mov word [bp+012h], dx                    ; 89 56 12
    8631     jmp near 05d80h                           ; e9 7e ff
     8650    jmp near 05daeh                           ; e9 7e ff
    86328651    mov al, byte [bp-002h]                    ; 8a 46 fe
    86338652    xor ah, ah                                ; 30 e4
     
    86468665    and AL, strict byte 0c0h                  ; 24 c0
    86478666    cmp AL, strict byte 040h                  ; 3c 40
    8648     jne short 05e28h                          ; 75 03
    8649     jmp near 05d80h                           ; e9 58 ff
     8667    jne short 05e56h                          ; 75 03
     8668    jmp near 05daeh                           ; e9 58 ff
    86508669    mov ax, word [bp+016h]                    ; 8b 46 16
    86518670    xor ah, ah                                ; 30 e4
    86528671    or ah, 0aah                               ; 80 cc aa
    8653     jmp near 05ec6h                           ; e9 93 00
     8672    jmp near 05ef4h                           ; e9 93 00
    86548673    mov al, byte [bp-002h]                    ; 8a 46 fe
    86558674    xor ah, ah                                ; 30 e4
     
    86668685    mov bx, word [bp-008h]                    ; 8b 5e f8
    86678686    xor cx, cx                                ; 31 c9
    8668     call 09f90h                               ; e8 32 41
     8687    call 09fc0h                               ; e8 34 41
    86698688    mov bx, word [bp-006h]                    ; 8b 5e fa
    86708689    xor cx, cx                                ; 31 c9
    8671     call 09f90h                               ; e8 2a 41
     8690    call 09fc0h                               ; e8 2c 41
    86728691    mov word [bp-010h], ax                    ; 89 46 f0
    86738692    mov word [bp-00ch], dx                    ; 89 56 f4
     
    86788697    or ah, 003h                               ; 80 cc 03
    86798698    mov word [bp+016h], ax                    ; 89 46 16
    8680     jmp near 05d84h                           ; e9 04 ff
     8699    jmp near 05db2h                           ; e9 04 ff
    86818700    mov bx, 00da0h                            ; bb a0 0d
    86828701    mov cx, ds                                ; 8c d9
    86838702    mov ax, strict word 00004h                ; b8 04 00
    8684     call 01923h                               ; e8 98 ba
     8703    call 01923h                               ; e8 6a ba
    86858704    mov ax, word [bp+016h]                    ; 8b 46 16
    86868705    shr ax, 008h                              ; c1 e8 08
     
    86898708    push 00794h                               ; 68 94 07
    86908709    push strict byte 00004h                   ; 6a 04
    8691     call 01966h                               ; e8 c9 ba
     8710    call 01966h                               ; e8 9b ba
    86928711    add sp, strict byte 00008h                ; 83 c4 08
    8693     jmp near 05d80h                           ; e9 dd fe
     8712    jmp near 05daeh                           ; e9 dd fe
    86948713    mov bx, 00da0h                            ; bb a0 0d
    86958714    mov cx, ds                                ; 8c d9
    86968715    mov ax, strict word 00004h                ; b8 04 00
    8697     call 01923h                               ; e8 75 ba
     8716    call 01923h                               ; e8 47 ba
    86988717    mov ax, word [bp+016h]                    ; 8b 46 16
    86998718    shr ax, 008h                              ; c1 e8 08
     
    87018720    push 0067eh                               ; 68 7e 06
    87028721    push 007c7h                               ; 68 c7 07
    8703     jmp near 05bcdh                           ; e9 0f fd
     8722    jmp near 05bfbh                           ; e9 0f fd
    87048723    mov ax, word [bp+016h]                    ; 8b 46 16
    87058724    xor ah, ah                                ; 30 e4
     
    87118730    mov dx, strict word 00074h                ; ba 74 00
    87128731    mov ax, strict word 00040h                ; b8 40 00
    8713     call 0165eh                               ; e8 84 b7
     8732    call 0165eh                               ; e8 56 b7
    87148733    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8715     jmp near 05d93h                           ; e9 b2 fe
    8716     popfw                                     ; 9d
     8734    jmp near 05dc1h                           ; e9 b2 fe
     8735    retf                                      ; cb
    87178736    pop di                                    ; 5f
    8718     rcr byte [bx-030h], 1                     ; d0 5f d0
     8737    db  0feh
    87198738    pop di                                    ; 5f
    8720     rcr byte [bx-03fh], 1                     ; d0 5f c1
    8721     arpl [bp+di], bp                          ; 63 2b
    8722     popaw                                     ; 61
    8723     rcr byte [bx+034h], 1                     ; d0 5f 34
    8724     popaw                                     ; 61
    8725     sal word [bp+di-04bh], 05fh               ; c1 63 b5 5f
    8726     mov CH, strict byte 05fh                  ; b5 5f
    8727     mov CH, strict byte 05fh                  ; b5 5f
    8728     mov CH, strict byte 05fh                  ; b5 5f
    8729     fsub dword [bp+di-04bh]                   ; d8 63 b5
     8739    db  0feh
    87308740    pop di                                    ; 5f
    8731     mov CH, strict byte 05fh                  ; b5 5f
    8732 _int13_harddisk_ext:                         ; 0xf5f01 LB 0x50f
     8741    db  0feh
     8742    pop di                                    ; 5f
     8743    out DX, ax                                ; ef
     8744    arpl [bx+di+061h], bx                     ; 63 59 61
     8745    db  0feh
     8746    pop di                                    ; 5f
     8747    bound sp, [bx+di-011h]                    ; 62 61 ef
     8748    arpl bx, sp                               ; 63 e3
     8749    pop di                                    ; 5f
     8750    jcxz 05f84h                               ; e3 5f
     8751    jcxz 05f86h                               ; e3 5f
     8752    jcxz 05f88h                               ; e3 5f
     8753    push ES                                   ; 06
     8754    db  064h, 0e3h, 05fh
     8755    ; fs jcxz 05f8ch                            ; 64 e3 5f
     8756    jcxz 05f8eh                               ; e3 5f
     8757_int13_harddisk_ext:                         ; 0xf5f2f LB 0x50f
    87338758    push bp                                   ; 55
    87348759    mov bp, sp                                ; 89 e5
     
    87368761    mov dx, strict word 0000eh                ; ba 0e 00
    87378762    mov ax, strict word 00040h                ; b8 40 00
    8738     call 0166ch                               ; e8 5c b7
     8763    call 0166ch                               ; e8 2e b7
    87398764    mov word [bp-012h], ax                    ; 89 46 ee
    87408765    mov dx, strict word 0000eh                ; ba 0e 00
    87418766    mov ax, strict word 00040h                ; b8 40 00
    8742     call 0166ch                               ; e8 50 b7
     8767    call 0166ch                               ; e8 22 b7
    87438768    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
    87448769    mov word [bp-006h], ax                    ; 89 46 fa
     
    87468771    mov dx, 0008eh                            ; ba 8e 00
    87478772    mov ax, strict word 00040h                ; b8 40 00
    8748     call 0165eh                               ; e8 2f b7
     8773    call 0165eh                               ; e8 01 b7
    87498774    mov ax, word [bp+00eh]                    ; 8b 46 0e
    87508775    xor ah, ah                                ; 30 e4
    87518776    cmp ax, 00080h                            ; 3d 80 00
    8752     jc short 05f3eh                           ; 72 05
     8777    jc short 05f6ch                           ; 72 05
    87538778    cmp ax, 00090h                            ; 3d 90 00
    8754     jc short 05f5ch                           ; 72 1e
     8779    jc short 05f8ah                           ; 72 1e
    87558780    mov ax, word [bp+00eh]                    ; 8b 46 0e
    87568781    xor ah, ah                                ; 30 e4
     
    87628787    push 0068dh                               ; 68 8d 06
    87638788    push strict byte 00004h                   ; 6a 04
    8764     call 01966h                               ; e8 10 ba
     8789    call 01966h                               ; e8 e2 b9
    87658790    add sp, strict byte 0000ah                ; 83 c4 0a
    8766     jmp near 063eeh                           ; e9 92 04
     8791    jmp near 0641ch                           ; e9 92 04
    87678792    mov ax, word [bp+00eh]                    ; 8b 46 0e
    87688793    xor ah, ah                                ; 30 e4
     
    87728797    mov byte [bp-004h], dl                    ; 88 56 fc
    87738798    cmp dl, 010h                              ; 80 fa 10
    8774     jc short 05f83h                           ; 72 10
     8799    jc short 05fb1h                           ; 72 10
    87758800    push ax                                   ; 50
    87768801    mov ax, word [bp+016h]                    ; 8b 46 16
     
    87798804    push 007f5h                               ; 68 f5 07
    87808805    push 006b8h                               ; 68 b8 06
    8781     jmp short 05f51h                          ; eb ce
     8806    jmp short 05f7fh                          ; eb ce
    87828807    mov bx, word [bp+016h]                    ; 8b 5e 16
    87838808    shr bx, 008h                              ; c1 eb 08
    87848809    sub bx, strict byte 00041h                ; 83 eb 41
    87858810    cmp bx, strict byte 0000fh                ; 83 fb 0f
    8786     jnbe short 05fb5h                         ; 77 24
     8811    jnbe short 05fe3h                         ; 77 24
    87878812    add bx, bx                                ; 01 db
    87888813    mov dx, word [bp+016h]                    ; 8b 56 16
    87898814    xor dh, dh                                ; 30 f6
    8790     jmp word [cs:bx+05ee1h]                   ; 2e ff a7 e1 5e
     8815    jmp word [cs:bx+05f0fh]                   ; 2e ff a7 0f 5f
    87918816    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    87928817    mov ax, word [bp+016h]                    ; 8b 46 16
     
    87958820    mov word [bp+016h], ax                    ; 89 46 16
    87968821    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    8797     jmp near 063c5h                           ; e9 10 04
     8822    jmp near 063f3h                           ; e9 10 04
    87988823    mov bx, 00da0h                            ; bb a0 0d
    87998824    mov cx, ds                                ; 8c d9
    88008825    mov ax, strict word 00004h                ; b8 04 00
    8801     call 01923h                               ; e8 63 b9
     8826    call 01923h                               ; e8 35 b9
    88028827    mov ax, word [bp+016h]                    ; 8b 46 16
    88038828    shr ax, 008h                              ; c1 e8 08
     
    88058830    push 007f5h                               ; 68 f5 07
    88068831    push 007c7h                               ; 68 c7 07
    8807     jmp near 06065h                           ; e9 95 00
     8832    jmp near 06093h                           ; e9 95 00
    88088833    mov di, word [bp+00ah]                    ; 8b 7e 0a
    88098834    mov es, [bp+004h]                         ; 8e 46 04
     
    88218846    xor bx, bx                                ; 31 db
    88228847    mov si, strict word 00020h                ; be 20 00
    8823     call 09ff0h                               ; e8 ed 3f
     8848    call 0a020h                               ; e8 ef 3f
    88248849    mov si, ax                                ; 89 c6
    88258850    mov word [bp-00ch], bx                    ; 89 5e f4
     
    88358860    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
    88368861    cmp si, word [es:bx+03ch]                 ; 26 3b 77 3c
    8837     jnbe short 0604dh                         ; 77 22
    8838     jne short 06070h                          ; 75 43
     8862    jnbe short 0607bh                         ; 77 22
     8863    jne short 0609eh                          ; 75 43
    88398864    mov di, word [bp-00ch]                    ; 8b 7e f4
    88408865    cmp di, word [es:bx+03ah]                 ; 26 3b 7f 3a
    8841     jnbe short 0604dh                         ; 77 17
     8866    jnbe short 0607bh                         ; 77 17
    88428867    mov di, word [bp-00ch]                    ; 8b 7e f4
    88438868    cmp di, word [es:bx+03ah]                 ; 26 3b 7f 3a
    8844     jne short 06070h                          ; 75 31
     8869    jne short 0609eh                          ; 75 31
    88458870    cmp cx, word [es:bx+038h]                 ; 26 3b 4f 38
    8846     jnbe short 0604dh                         ; 77 08
    8847     jne short 06070h                          ; 75 29
     8871    jnbe short 0607bh                         ; 77 08
     8872    jne short 0609eh                          ; 75 29
    88488873    cmp dx, word [es:bx+036h]                 ; 26 3b 57 36
    8849     jc short 06070h                           ; 72 23
     8874    jc short 0609eh                           ; 72 23
    88508875    mov bx, 00da0h                            ; bb a0 0d
    88518876    mov cx, ds                                ; 8c d9
    88528877    mov ax, strict word 00004h                ; b8 04 00
    8853     call 01923h                               ; e8 cb b8
     8878    call 01923h                               ; e8 9d b8
    88548879    mov ax, word [bp+016h]                    ; 8b 46 16
    88558880    shr ax, 008h                              ; c1 e8 08
     
    88588883    push 00808h                               ; 68 08 08
    88598884    push strict byte 00004h                   ; 6a 04
    8860     call 01966h                               ; e8 fc b8
     8885    call 01966h                               ; e8 ce b8
    88618886    add sp, strict byte 00008h                ; 83 c4 08
    8862     jmp near 063eeh                           ; e9 7e 03
     8887    jmp near 0641ch                           ; e9 7e 03
    88638888    mov di, word [bp+016h]                    ; 8b 7e 16
    88648889    shr di, 008h                              ; c1 ef 08
    88658890    cmp di, strict byte 00044h                ; 83 ff 44
    8866     je short 06080h                           ; 74 05
     8891    je short 060aeh                           ; 74 05
    88678892    cmp di, strict byte 00047h                ; 83 ff 47
    8868     jne short 06083h                          ; 75 03
    8869     jmp near 063c1h                           ; e9 3e 03
     8893    jne short 060b1h                          ; 75 03
     8894    jmp near 063efh                           ; e9 3e 03
    88708895    les bx, [bp-008h]                         ; c4 5e f8
    88718896    mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00
     
    89058930    mov word [es:bx+002h], ax                 ; 26 89 47 02
    89068931    test dl, dl                               ; 84 d2
    8907     je short 06152h                           ; 74 51
     8932    je short 06180h                           ; 74 51
    89088933    mov bx, 00da0h                            ; bb a0 0d
    89098934    mov cx, ds                                ; 8c d9
    89108935    mov ax, strict word 00004h                ; b8 04 00
    8911     call 01923h                               ; e8 17 b8
     8936    call 01923h                               ; e8 e9 b7
    89128937    mov al, dl                                ; 88 d0
    89138938    xor ah, ah                                ; 30 e4
     
    89178942    push 00759h                               ; 68 59 07
    89188943    push strict byte 00004h                   ; 6a 04
    8919     call 01966h                               ; e8 49 b8
     8944    call 01966h                               ; e8 1b b8
    89208945    add sp, strict byte 0000ah                ; 83 c4 0a
    89218946    mov ax, word [bp+016h]                    ; 8b 46 16
    89228947    xor ah, ah                                ; 30 e4
    89238948    or ah, 00ch                               ; 80 cc 0c
    8924     jmp near 063f6h                           ; e9 cb 02
     8949    jmp near 06424h                           ; e9 cb 02
    89258950    or dh, 0b2h                               ; 80 ce b2
    89268951    mov word [bp+016h], dx                    ; 89 56 16
    8927     jmp near 063f9h                           ; e9 c5 02
     8952    jmp near 06427h                           ; e9 c5 02
    89288953    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    89298954    mov ax, word [bp+004h]                    ; 8b 46 04
     
    89358960    mov word [bp-00eh], ax                    ; 89 46 f2
    89368961    cmp ax, strict word 0001ah                ; 3d 1a 00
    8937     jnc short 06155h                          ; 73 06
    8938     jmp near 063eeh                           ; e9 9c 02
    8939     jmp near 063c1h                           ; e9 6c 02
    8940     jnc short 0615ah                          ; 73 03
    8941     jmp near 061f1h                           ; e9 97 00
     8962    jnc short 06183h                          ; 73 06
     8963    jmp near 0641ch                           ; e9 9c 02
     8964    jmp near 063efh                           ; e9 6c 02
     8965    jnc short 06188h                          ; 73 03
     8966    jmp near 0621fh                           ; e9 97 00
    89428967    mov al, byte [bp-004h]                    ; 8a 46 fc
    89438968    xor ah, ah                                ; 30 e4
     
    89789003    mov bx, word [bp-00ch]                    ; 8b 5e f4
    89799004    mov si, strict word 00020h                ; be 20 00
    8980     call 09fe0h                               ; e8 f9 3d
     9005    call 0a010h                               ; e8 fb 3d
    89819006    mov bx, di                                ; 89 fb
    89829007    mov word [es:bx+014h], dx                 ; 26 89 57 14
    89839008    mov word [es:bx+016h], cx                 ; 26 89 4f 16
    89849009    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    8985     jc short 0625ch                           ; 72 65
     9010    jc short 0628ah                           ; 72 65
    89869011    mov es, [bp-00ah]                         ; 8e 46 f6
    89879012    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
     
    90109035    mov dl, byte [es:bx+027h]                 ; 26 8a 57 27
    90119036    test dl, dl                               ; 84 d2
    9012     jne short 0624ch                          ; 75 04
     9037    jne short 0627ah                          ; 75 04
    90139038    xor bx, bx                                ; 31 db
    9014     jmp short 0624fh                          ; eb 03
     9039    jmp short 0627dh                          ; eb 03
    90159040    mov bx, strict word 00008h                ; bb 08 00
    90169041    or bl, 010h                               ; 80 cb 10
    90179042    cmp dl, 001h                              ; 80 fa 01
    9018     jne short 0625fh                          ; 75 08
     9043    jne short 0628dh                          ; 75 08
    90199044    mov ax, strict word 00001h                ; b8 01 00
    9020     jmp short 06261h                          ; eb 05
    9021     jmp near 062f2h                           ; e9 93 00
     9045    jmp short 0628fh                          ; eb 05
     9046    jmp near 06320h                           ; e9 93 00
    90229047    xor ax, ax                                ; 31 c0
    90239048    or bx, ax                                 ; 09 c3
    90249049    cmp dl, 003h                              ; 80 fa 03
    9025     jne short 0626dh                          ; 75 05
     9050    jne short 0629bh                          ; 75 05
    90269051    mov ax, strict word 00003h                ; b8 03 00
    9027     jmp short 0626fh                          ; eb 02
     9052    jmp short 0629dh                          ; eb 02
    90289053    xor ax, ax                                ; 31 c0
    90299054    or bx, ax                                 ; 09 c3
     
    90529077    xor bl, bl                                ; 30 db
    90539078    xor bh, bh                                ; 30 ff
    9054     jmp short 062d4h                          ; eb 05
     9079    jmp short 06302h                          ; eb 05
    90559080    cmp bh, 00fh                              ; 80 ff 0f
    9056     jnc short 062e8h                          ; 73 14
     9081    jnc short 06316h                          ; 73 14
    90579082    mov dl, bh                                ; 88 fa
    90589083    xor dh, dh                                ; 30 f6
    90599084    add dx, 00356h                            ; 81 c2 56 03
    90609085    mov ax, word [bp-012h]                    ; 8b 46 ee
    9061     call 01650h                               ; e8 6e b3
     9086    call 01650h                               ; e8 40 b3
    90629087    add bl, al                                ; 00 c3
    90639088    db  0feh, 0c7h
    90649089    ; inc bh                                    ; fe c7
    9065     jmp short 062cfh                          ; eb e7
     9090    jmp short 062fdh                          ; eb e7
    90669091    neg bl                                    ; f6 db
    90679092    les si, [bp-008h]                         ; c4 76 f8
    90689093    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
    90699094    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    9070     jnc short 062fbh                          ; 73 03
    9071     jmp near 063c1h                           ; e9 c6 00
     9095    jnc short 06329h                          ; 73 03
     9096    jmp near 063efh                           ; e9 c6 00
    90729097    mov al, byte [bp-004h]                    ; 8a 46 fc
    90739098    xor ah, ah                                ; 30 e4
     
    90889113    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
    90899114    test al, al                               ; 84 c0
    9090     jne short 06343h                          ; 75 0c
     9115    jne short 06371h                          ; 75 0c
    90919116    mov word [es:di+024h], 05349h             ; 26 c7 45 24 49 53
    90929117    mov word [es:di+026h], 02041h             ; 26 c7 45 26 41 20
     
    90979122    mov word [es:di+02eh], 02020h             ; 26 c7 45 2e 20 20
    90989123    test al, al                               ; 84 c0
    9099     jne short 06378h                          ; 75 16
     9124    jne short 063a6h                          ; 75 16
    91009125    mov word [es:di+030h], dx                 ; 26 89 55 30
    91019126    mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00
     
    91129137    xor bl, bl                                ; 30 db
    91139138    mov BH, strict byte 01eh                  ; b7 1e
    9114     jmp short 063a3h                          ; eb 05
     9139    jmp short 063d1h                          ; eb 05
    91159140    cmp bh, 040h                              ; 80 ff 40
    9116     jnc short 063b8h                          ; 73 15
     9141    jnc short 063e6h                          ; 73 15
    91179142    mov al, bh                                ; 88 f8
    91189143    xor ah, ah                                ; 30 e4
     
    91209145    add dx, ax                                ; 01 c2
    91219146    mov ax, word [bp+004h]                    ; 8b 46 04
    9122     call 01650h                               ; e8 9e b2
     9147    call 01650h                               ; e8 70 b2
    91239148    add bl, al                                ; 00 c3
    91249149    db  0feh, 0c7h
    91259150    ; inc bh                                    ; fe c7
    9126     jmp short 0639eh                          ; eb e6
     9151    jmp short 063cch                          ; eb e6
    91279152    neg bl                                    ; f6 db
    91289153    mov es, [bp-00ah]                         ; 8e 46 f6
     
    91329157    mov dx, strict word 00074h                ; ba 74 00
    91339158    mov ax, strict word 00040h                ; b8 40 00
    9134     call 0165eh                               ; e8 8e b2
     9159    call 0165eh                               ; e8 60 b2
    91359160    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    91369161    mov sp, bp                                ; 89 ec
     
    91389163    retn                                      ; c3
    91399164    cmp dx, strict byte 00006h                ; 83 fa 06
    9140     je short 063c1h                           ; 74 e4
     9165    je short 063efh                           ; 74 e4
    91419166    cmp dx, strict byte 00001h                ; 83 fa 01
    9142     jc short 063eeh                           ; 72 0c
    9143     jbe short 063c1h                          ; 76 dd
     9167    jc short 0641ch                           ; 72 0c
     9168    jbe short 063efh                          ; 76 dd
    91449169    cmp dx, strict byte 00003h                ; 83 fa 03
    9145     jc short 063eeh                           ; 72 05
     9170    jc short 0641ch                           ; 72 05
    91469171    cmp dx, strict byte 00004h                ; 83 fa 04
    9147     jbe short 063c1h                          ; 76 d3
     9172    jbe short 063efh                          ; 76 d3
    91489173    mov ax, word [bp+016h]                    ; 8b 46 16
    91499174    xor ah, ah                                ; 30 e4
     
    91559180    mov dx, strict word 00074h                ; ba 74 00
    91569181    mov ax, strict word 00040h                ; b8 40 00
    9157     call 0165eh                               ; e8 54 b2
     9182    call 0165eh                               ; e8 26 b2
    91589183    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9159     jmp short 063d4h                          ; eb c4
    9160 _int14_function:                             ; 0xf6410 LB 0x15c
     9184    jmp short 06402h                          ; eb c4
     9185_int14_function:                             ; 0xf643e LB 0x15c
    91619186    push bp                                   ; 55
    91629187    mov bp, sp                                ; 89 e5
     
    91669191    add dx, dx                                ; 01 d2
    91679192    mov ax, strict word 00040h                ; b8 40 00
    9168     call 0166ch                               ; e8 4c b2
     9193    call 0166ch                               ; e8 1e b2
    91699194    mov si, ax                                ; 89 c6
    91709195    mov bx, ax                                ; 89 c3
     
    91729197    add dx, strict byte 0007ch                ; 83 c2 7c
    91739198    mov ax, strict word 00040h                ; b8 40 00
    9174     call 01650h                               ; e8 20 b2
     9199    call 01650h                               ; e8 f2 b1
    91759200    mov cl, al                                ; 88 c1
    91769201    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    9177     jnc short 0643ch                          ; 73 04
     9202    jnc short 0646ah                          ; 73 04
    91789203    test si, si                               ; 85 f6
    9179     jnbe short 0643fh                         ; 77 03
    9180     jmp near 06562h                           ; e9 23 01
     9204    jnbe short 0646dh                         ; 77 03
     9205    jmp near 06590h                           ; e9 23 01
    91819206    mov al, byte [bp+013h]                    ; 8a 46 13
    91829207    cmp AL, strict byte 001h                  ; 3c 01
    9183     jc short 06453h                           ; 72 0d
    9184     jbe short 064b3h                          ; 76 6b
     9208    jc short 06481h                           ; 72 0d
     9209    jbe short 064e1h                          ; 76 6b
    91859210    cmp AL, strict byte 003h                  ; 3c 03
    9186     je short 064abh                           ; 74 5f
     9211    je short 064d9h                           ; 74 5f
    91879212    cmp AL, strict byte 002h                  ; 3c 02
    9188     je short 064aeh                           ; 74 5e
    9189     jmp near 0655ch                           ; e9 09 01
     9213    je short 064dch                           ; 74 5e
     9214    jmp near 0658ah                           ; e9 09 01
    91909215    test al, al                               ; 84 c0
    9191     jne short 064b0h                          ; 75 59
     9216    jne short 064deh                          ; 75 59
    91929217    lea dx, [bx+003h]                         ; 8d 57 03
    91939218    in AL, DX                                 ; ec
     
    91999224    mov al, byte [bp+012h]                    ; 8a 46 12
    92009225    test AL, strict byte 0e0h                 ; a8 e0
    9201     jne short 06476h                          ; 75 0c
     9226    jne short 064a4h                          ; 75 0c
    92029227    mov AL, strict byte 017h                  ; b0 17
    92039228    mov dx, bx                                ; 89 da
     
    92069231    mov dx, si                                ; 89 f2
    92079232    out DX, AL                                ; ee
    9208     jmp short 0648dh                          ; eb 17
     9233    jmp short 064bbh                          ; eb 17
    92099234    and AL, strict byte 0e0h                  ; 24 e0
    92109235    xor ah, ah                                ; 30 e4
     
    92329257    ; sub ah, ah                                ; 2a e4
    92339258    mov byte [bp+012h], al                    ; 88 46 12
    9234     jmp near 0653dh                           ; e9 92 00
    9235     jmp near 0654bh                           ; e9 9d 00
    9236     jmp short 06501h                          ; eb 51
    9237     jmp near 0655ch                           ; e9 a9 00
     9259    jmp near 0656bh                           ; e9 92 00
     9260    jmp near 06579h                           ; e9 9d 00
     9261    jmp short 0652fh                          ; eb 51
     9262    jmp near 0658ah                           ; e9 a9 00
    92389263    mov dx, strict word 0006ch                ; ba 6c 00
    92399264    mov ax, strict word 00040h                ; b8 40 00
    9240     call 0166ch                               ; e8 b0 b1
     9265    call 0166ch                               ; e8 82 b1
    92419266    mov si, ax                                ; 89 c6
    92429267    lea dx, [bx+005h]                         ; 8d 57 05
     
    92469271    and ax, strict word 00060h                ; 25 60 00
    92479272    cmp ax, strict word 00060h                ; 3d 60 00
    9248     je short 064e3h                           ; 74 17
     9273    je short 06511h                           ; 74 17
    92499274    test cl, cl                               ; 84 c9
    9250     je short 064e3h                           ; 74 13
     9275    je short 06511h                           ; 74 13
    92519276    mov dx, strict word 0006ch                ; ba 6c 00
    92529277    mov ax, strict word 00040h                ; b8 40 00
    9253     call 0166ch                               ; e8 93 b1
     9278    call 0166ch                               ; e8 65 b1
    92549279    cmp ax, si                                ; 39 f0
    9255     je short 064beh                           ; 74 e1
     9280    je short 064ech                           ; 74 e1
    92569281    mov si, ax                                ; 89 c6
    92579282    db  0feh, 0c9h
    92589283    ; dec cl                                    ; fe c9
    9259     jmp short 064beh                          ; eb db
     9284    jmp short 064ech                          ; eb db
    92609285    test cl, cl                               ; 84 c9
    9261     je short 064edh                           ; 74 06
     9286    je short 0651bh                           ; 74 06
    92629287    mov al, byte [bp+012h]                    ; 8a 46 12
    92639288    mov dx, bx                                ; 89 da
     
    92699294    mov byte [bp+013h], al                    ; 88 46 13
    92709295    test cl, cl                               ; 84 c9
    9271     jne short 0653dh                          ; 75 43
     9296    jne short 0656bh                          ; 75 43
    92729297    or AL, strict byte 080h                   ; 0c 80
    92739298    mov byte [bp+013h], al                    ; 88 46 13
    9274     jmp short 0653dh                          ; eb 3c
     9299    jmp short 0656bh                          ; eb 3c
    92759300    mov dx, strict word 0006ch                ; ba 6c 00
    92769301    mov ax, strict word 00040h                ; b8 40 00
    9277     call 0166ch                               ; e8 62 b1
     9302    call 0166ch                               ; e8 34 b1
    92789303    mov si, ax                                ; 89 c6
    92799304    lea dx, [bx+005h]                         ; 8d 57 05
     
    92829307    ; sub ah, ah                                ; 2a e4
    92839308    test AL, strict byte 001h                 ; a8 01
    9284     jne short 0652dh                          ; 75 17
     9309    jne short 0655bh                          ; 75 17
    92859310    test cl, cl                               ; 84 c9
    9286     je short 0652dh                           ; 74 13
     9311    je short 0655bh                           ; 74 13
    92879312    mov dx, strict word 0006ch                ; ba 6c 00
    92889313    mov ax, strict word 00040h                ; b8 40 00
    9289     call 0166ch                               ; e8 49 b1
     9314    call 0166ch                               ; e8 1b b1
    92909315    cmp ax, si                                ; 39 f0
    9291     je short 0650ch                           ; 74 e5
     9316    je short 0653ah                           ; 74 e5
    92929317    mov si, ax                                ; 89 c6
    92939318    db  0feh, 0c9h
    92949319    ; dec cl                                    ; fe c9
    9295     jmp short 0650ch                          ; eb df
     9320    jmp short 0653ah                          ; eb df
    92969321    test cl, cl                               ; 84 c9
    9297     je short 06543h                           ; 74 12
     9322    je short 06571h                           ; 74 12
    92989323    mov byte [bp+013h], 000h                  ; c6 46 13 00
    92999324    mov dx, bx                                ; 89 da
     
    93039328    mov byte [bp+012h], al                    ; 88 46 12
    93049329    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    9305     jmp short 06566h                          ; eb 23
     9330    jmp short 06594h                          ; eb 23
    93069331    lea dx, [bx+005h]                         ; 8d 57 05
    93079332    in AL, DX                                 ; ec
    93089333    db  02ah, 0e4h
    93099334    ; sub ah, ah                                ; 2a e4
    9310     jmp short 064fch                          ; eb b1
     9335    jmp short 0652ah                          ; eb b1
    93119336    lea dx, [si+005h]                         ; 8d 54 05
    93129337    in AL, DX                                 ; ec
     
    93189343    db  02ah, 0e4h
    93199344    ; sub ah, ah                                ; 2a e4
    9320     jmp short 0653ah                          ; eb de
     9345    jmp short 06568h                          ; eb de
    93219346    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9322     jmp short 06566h                          ; eb 04
     9347    jmp short 06594h                          ; eb 04
    93239348    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    93249349    lea sp, [bp-002h]                         ; 8d 66 fe
     
    93269351    pop bp                                    ; 5d
    93279352    retn                                      ; c3
    9328 timer_wait_:                                 ; 0xf656c LB 0x43
     9353timer_wait_:                                 ; 0xf659a LB 0x43
    93299354    push bp                                   ; 55
    93309355    mov bp, sp                                ; 89 e5
     
    93349359    mov bx, strict word 0000fh                ; bb 0f 00
    93359360    xor cx, cx                                ; 31 c9
    9336     call 09fb0h                               ; e8 36 3a
     9361    call 09fe0h                               ; e8 38 3a
    93379362    mov cx, ax                                ; 89 c1
    93389363    mov bx, dx                                ; 89 d3
     
    93469371    adc bx, strict byte 0ffffh                ; 83 d3 ff
    93479372    cmp bx, strict byte 0ffffh                ; 83 fb ff
    9348     jne short 06599h                          ; 75 05
     9373    jne short 065c7h                          ; 75 05
    93499374    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    9350     je short 065a8h                           ; 74 0f
     9375    je short 065d6h                           ; 74 0f
    93519376    mov dx, strict word 00061h                ; ba 61 00
    93529377    in AL, DX                                 ; ec
     
    93559380    and AL, strict byte 010h                  ; 24 10
    93569381    cmp al, byte [bp-006h]                    ; 3a 46 fa
    9357     jne short 06599h                          ; 75 f3
    9358     jmp short 06589h                          ; eb e1
     9382    jne short 065c7h                          ; 75 f3
     9383    jmp short 065b7h                          ; eb e1
    93599384    lea sp, [bp-004h]                         ; 8d 66 fc
    93609385    pop cx                                    ; 59
     
    93629387    pop bp                                    ; 5d
    93639388    retn                                      ; c3
    9364 set_enable_a20_:                             ; 0xf65af LB 0x30
     9389set_enable_a20_:                             ; 0xf65dd LB 0x30
    93659390    push bp                                   ; 55
    93669391    mov bp, sp                                ; 89 e5
     
    93759400    mov cl, al                                ; 88 c1
    93769401    test bx, bx                               ; 85 db
    9377     je short 065c8h                           ; 74 05
     9402    je short 065f6h                           ; 74 05
    93789403    or AL, strict byte 002h                   ; 0c 02
    93799404    out DX, AL                                ; ee
    9380     jmp short 065cbh                          ; eb 03
     9405    jmp short 065f9h                          ; eb 03
    93819406    and AL, strict byte 0fdh                  ; 24 fd
    93829407    out DX, AL                                ; ee
    93839408    test cl, 002h                             ; f6 c1 02
    9384     je short 065d5h                           ; 74 05
     9409    je short 06603h                           ; 74 05
    93859410    mov ax, strict word 00001h                ; b8 01 00
    9386     jmp short 065d7h                          ; eb 02
     9411    jmp short 06605h                          ; eb 02
    93879412    xor ax, ax                                ; 31 c0
    93889413    lea sp, [bp-006h]                         ; 8d 66 fa
     
    93929417    pop bp                                    ; 5d
    93939418    retn                                      ; c3
    9394 set_e820_range_:                             ; 0xf65df LB 0x88
     9419set_e820_range_:                             ; 0xf660d LB 0x88
    93959420    push si                                   ; 56
    93969421    push bp                                   ; 55
     
    94229447    retn 0000ah                               ; c2 0a 00
    94239448    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
    9424     db  071h, 069h, 0a2h, 066h, 0b6h, 066h, 04bh, 067h, 051h, 067h, 056h, 067h, 05bh, 067h, 003h, 068h
    9425     db  02eh, 068h, 044h, 067h, 044h, 067h, 0fbh, 068h, 023h, 069h, 036h, 069h, 045h, 069h, 04bh, 067h
    9426     db  04ch, 069h
    9427 _int15_function:                             ; 0xf6667 LB 0x33c
     9449    db  09fh, 069h, 0d0h, 066h, 0e4h, 066h, 079h, 067h, 07fh, 067h, 084h, 067h, 089h, 067h, 031h, 068h
     9450    db  05ch, 068h, 072h, 067h, 072h, 067h, 029h, 069h, 051h, 069h, 064h, 069h, 073h, 069h, 079h, 067h
     9451    db  07ah, 069h
     9452_int15_function:                             ; 0xf6695 LB 0x33c
    94289453    push bp                                   ; 55
    94299454    mov bp, sp                                ; 89 e5
     
    94339458    shr ax, 008h                              ; c1 e8 08
    94349459    cmp ax, 000ech                            ; 3d ec 00
    9435     jnbe short 066ach                         ; 77 35
     9460    jnbe short 066dah                         ; 77 35
    94369461    push CS                                   ; 0e
    94379462    pop ES                                    ; 07
    94389463    mov cx, strict word 00011h                ; b9 11 00
    9439     mov di, 06635h                            ; bf 35 66
     9464    mov di, 06663h                            ; bf 63 66
    94409465    repne scasb                               ; f2 ae
    94419466    sal cx, 1                                 ; d1 e1
    94429467    mov di, cx                                ; 89 cf
    9443     mov si, word [cs:di+06645h]               ; 2e 8b b5 45 66
     9468    mov si, word [cs:di+06673h]               ; 2e 8b b5 73 66
    94449469    mov ax, word [bp+012h]                    ; 8b 46 12
    94459470    xor ah, ah                                ; 30 e4
     
    94549479    xor ah, ah                                ; 30 e4
    94559480    cmp ax, 000c0h                            ; 3d c0 00
    9456     je short 066afh                           ; 74 03
    9457     jmp near 06971h                           ; e9 c2 02
     9481    je short 066ddh                           ; 74 03
     9482    jmp near 0699fh                           ; e9 c2 02
    94589483    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9459     jmp near 0691ah                           ; e9 64 02
     9484    jmp near 06948h                           ; e9 64 02
    94609485    mov dx, ax                                ; 89 c2
    94619486    cmp ax, strict word 00001h                ; 3d 01 00
    9462     jc short 066cbh                           ; 72 0e
    9463     jbe short 066dfh                          ; 76 20
     9487    jc short 066f9h                           ; 72 0e
     9488    jbe short 0670dh                          ; 76 20
    94649489    cmp ax, strict word 00003h                ; 3d 03 00
    9465     je short 0670ch                           ; 74 48
     9490    je short 0673ah                           ; 74 48
    94669491    cmp ax, strict word 00002h                ; 3d 02 00
    9467     je short 066efh                           ; 74 26
    9468     jmp short 06719h                          ; eb 4e
     9492    je short 0671dh                           ; 74 26
     9493    jmp short 06747h                          ; eb 4e
    94699494    test ax, ax                               ; 85 c0
    9470     jne short 06719h                          ; 75 4a
     9495    jne short 06747h                          ; 75 4a
    94719496    xor ax, ax                                ; 31 c0
    9472     call 065afh                               ; e8 db fe
     9497    call 065ddh                               ; e8 db fe
    94739498    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94749499    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9475     jmp near 06744h                           ; e9 65 00
     9500    jmp near 06772h                           ; e9 65 00
    94769501    mov ax, strict word 00001h                ; b8 01 00
    9477     call 065afh                               ; e8 ca fe
     9502    call 065ddh                               ; e8 ca fe
    94789503    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94799504    mov byte [bp+013h], dh                    ; 88 76 13
    9480     jmp near 06744h                           ; e9 55 00
     9505    jmp near 06772h                           ; e9 55 00
    94819506    mov dx, 00092h                            ; ba 92 00
    94829507    in AL, DX                                 ; ec
     
    94909515    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94919516    mov byte [bp+013h], ah                    ; 88 66 13
    9492     jmp near 06744h                           ; e9 38 00
     9517    jmp near 06772h                           ; e9 38 00
    94939518    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94949519    mov byte [bp+013h], ah                    ; 88 66 13
    94959520    mov word [bp+00ch], ax                    ; 89 46 0c
    9496     jmp near 06744h                           ; e9 2b 00
     9521    jmp near 06772h                           ; e9 2b 00
    94979522    mov bx, 00da0h                            ; bb a0 0d
    94989523    mov cx, ds                                ; 8c d9
    94999524    mov ax, strict word 00004h                ; b8 04 00
    9500     call 01923h                               ; e8 ff b1
     9525    call 01923h                               ; e8 d1 b1
    95019526    mov ax, word [bp+012h]                    ; 8b 46 12
    95029527    xor ah, ah                                ; 30 e4
     
    95049529    push 0082eh                               ; 68 2e 08
    95059530    push strict byte 00004h                   ; 6a 04
    9506     call 01966h                               ; e8 34 b2
     9531    call 01966h                               ; e8 06 b2
    95079532    add sp, strict byte 00006h                ; 83 c4 06
    95089533    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    95179542    retn                                      ; c3
    95189543    mov word [bp+018h], dx                    ; 89 56 18
    9519     jmp near 067fdh                           ; e9 ac 00
     9544    jmp near 0682bh                           ; e9 ac 00
    95209545    mov word [bp+018h], dx                    ; 89 56 18
    9521     jmp short 06744h                          ; eb ee
     9546    jmp short 06772h                          ; eb ee
    95229547    mov word [bp+018h], cx                    ; 89 4e 18
    9523     jmp short 06741h                          ; eb e6
     9548    jmp short 0676fh                          ; eb e6
    95249549    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9525     jne short 067d0h                          ; 75 6f
     9550    jne short 067feh                          ; 75 6f
    95269551    mov dx, 000a0h                            ; ba a0 00
    95279552    mov ax, strict word 00040h                ; b8 40 00
    9528     call 01650h                               ; e8 e6 ae
     9553    call 01650h                               ; e8 b8 ae
    95299554    test AL, strict byte 001h                 ; a8 01
    9530     jne short 067cdh                          ; 75 5f
     9555    jne short 067fbh                          ; 75 5f
    95319556    mov bx, strict word 00001h                ; bb 01 00
    95329557    mov dx, 000a0h                            ; ba a0 00
    95339558    mov ax, strict word 00040h                ; b8 40 00
    9534     call 0165eh                               ; e8 e4 ae
     9559    call 0165eh                               ; e8 b6 ae
    95359560    mov bx, word [bp+014h]                    ; 8b 5e 14
    95369561    mov dx, 00098h                            ; ba 98 00
    95379562    mov ax, strict word 00040h                ; b8 40 00
    9538     call 0167ah                               ; e8 f4 ae
     9563    call 0167ah                               ; e8 c6 ae
    95399564    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    95409565    mov dx, 0009ah                            ; ba 9a 00
    95419566    mov ax, strict word 00040h                ; b8 40 00
    9542     call 0167ah                               ; e8 e8 ae
     9567    call 0167ah                               ; e8 ba ae
    95439568    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    95449569    mov dx, 0009ch                            ; ba 9c 00
    95459570    mov ax, strict word 00040h                ; b8 40 00
    9546     call 0167ah                               ; e8 dc ae
     9571    call 0167ah                               ; e8 ae ae
    95479572    mov bx, word [bp+010h]                    ; 8b 5e 10
    95489573    mov dx, 0009eh                            ; ba 9e 00
    95499574    mov ax, strict word 00040h                ; b8 40 00
    9550     call 0167ah                               ; e8 d0 ae
     9575    call 0167ah                               ; e8 a2 ae
    95519576    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    95529577    mov dx, 000a1h                            ; ba a1 00
     
    95579582    out DX, AL                                ; ee
    95589583    mov ax, strict word 0000bh                ; b8 0b 00
    9559     call 016ach                               ; e8 ef ae
     9584    call 016ach                               ; e8 c1 ae
    95609585    mov dl, al                                ; 88 c2
    95619586    or dl, 040h                               ; 80 ca 40
    95629587    xor dh, dh                                ; 30 f6
    95639588    mov ax, strict word 0000bh                ; b8 0b 00
    9564     call 016c7h                               ; e8 fd ae
    9565     jmp near 06744h                           ; e9 77 ff
    9566     jmp near 06911h                           ; e9 41 01
     9589    call 016c7h                               ; e8 cf ae
     9590    jmp near 06772h                           ; e9 77 ff
     9591    jmp near 0693fh                           ; e9 41 01
    95679592    cmp ax, strict word 00001h                ; 3d 01 00
    9568     jne short 067f1h                          ; 75 1c
     9593    jne short 0681fh                          ; 75 1c
    95699594    xor bx, bx                                ; 31 db
    95709595    mov dx, 000a0h                            ; ba a0 00
    95719596    mov ax, strict word 00040h                ; b8 40 00
    9572     call 0165eh                               ; e8 7e ae
     9597    call 0165eh                               ; e8 50 ae
    95739598    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    95749599    mov ax, strict word 0000bh                ; b8 0b 00
    9575     call 016ach                               ; e8 c2 ae
     9600    call 016ach                               ; e8 94 ae
    95769601    mov dl, al                                ; 88 c2
    95779602    and dl, 0bfh                              ; 80 e2 bf
    9578     jmp short 067c2h                          ; eb d1
     9603    jmp short 067f0h                          ; eb d1
    95799604    mov word [bp+018h], dx                    ; 89 56 18
    95809605    mov ax, bx                                ; 89 d8
     
    95849609    or bx, ax                                 ; 09 c3
    95859610    mov word [bp+012h], bx                    ; 89 5e 12
    9586     jmp near 06744h                           ; e9 41 ff
     9611    jmp near 06772h                           ; e9 41 ff
    95879612    mov ax, strict word 00031h                ; b8 31 00
    9588     call 016ach                               ; e8 a3 ae
     9613    call 016ach                               ; e8 75 ae
    95899614    xor ah, ah                                ; 30 e4
    95909615    mov dx, ax                                ; 89 c2
    95919616    sal dx, 008h                              ; c1 e2 08
    95929617    mov ax, strict word 00030h                ; b8 30 00
    9593     call 016ach                               ; e8 96 ae
     9618    call 016ach                               ; e8 68 ae
    95949619    xor ah, ah                                ; 30 e4
    95959620    or dx, ax                                 ; 09 c2
    95969621    mov word [bp+012h], dx                    ; 89 56 12
    95979622    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9598     jbe short 06827h                          ; 76 05
     9623    jbe short 06855h                          ; 76 05
    95999624    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    96009625    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9601     jmp near 06744h                           ; e9 16 ff
     9626    jmp near 06772h                           ; e9 16 ff
    96029627    cli                                       ; fa
    96039628    mov ax, strict word 00001h                ; b8 01 00
    9604     call 065afh                               ; e8 7a fd
     9629    call 065ddh                               ; e8 7a fd
    96059630    mov dx, word [bp+006h]                    ; 8b 56 06
    96069631    add dx, strict byte 00038h                ; 83 c2 38
    96079632    mov ax, word [bp+014h]                    ; 8b 46 14
    96089633    mov bx, strict word 0ffffh                ; bb ff ff
    9609     call 0167ah                               ; e8 36 ae
     9634    call 0167ah                               ; e8 08 ae
    96109635    mov dx, word [bp+006h]                    ; 8b 56 06
    96119636    add dx, strict byte 0003ah                ; 83 c2 3a
    96129637    mov ax, word [bp+014h]                    ; 8b 46 14
    96139638    xor bx, bx                                ; 31 db
    9614     call 0167ah                               ; e8 28 ae
     9639    call 0167ah                               ; e8 fa ad
    96159640    mov dx, word [bp+006h]                    ; 8b 56 06
    96169641    add dx, strict byte 0003ch                ; 83 c2 3c
    96179642    mov ax, word [bp+014h]                    ; 8b 46 14
    96189643    mov bx, strict word 0000fh                ; bb 0f 00
    9619     call 0165eh                               ; e8 fd ad
     9644    call 0165eh                               ; e8 cf ad
    96209645    mov dx, word [bp+006h]                    ; 8b 56 06
    96219646    add dx, strict byte 0003dh                ; 83 c2 3d
    96229647    mov ax, word [bp+014h]                    ; 8b 46 14
    96239648    mov bx, 0009bh                            ; bb 9b 00
    9624     call 0165eh                               ; e8 ee ad
     9649    call 0165eh                               ; e8 c0 ad
    96259650    mov dx, word [bp+006h]                    ; 8b 56 06
    96269651    add dx, strict byte 0003eh                ; 83 c2 3e
    96279652    mov ax, word [bp+014h]                    ; 8b 46 14
    96289653    xor bx, bx                                ; 31 db
    9629     call 0167ah                               ; e8 fc ad
     9654    call 0167ah                               ; e8 ce ad
    96309655    mov AL, strict byte 011h                  ; b0 11
    96319656    mov dx, strict word 00020h                ; ba 20 00
     
    96579682    out DX, AL                                ; ee
    96589683    mov si, word [bp+006h]                    ; 8b 76 06
    9659     call 068bfh                               ; e8 00 00
     9684    call 068edh                               ; e8 00 00
    96609685    pop di                                    ; 5f
    96619686    add di, strict byte 00018h                ; 83 c7 18
     
    96859710    push cx                                   ; 51
    96869711    retf                                      ; cb
    9687     jmp near 06744h                           ; e9 49 fe
     9712    jmp near 06772h                           ; e9 49 fe
    96889713    mov bx, 00da0h                            ; bb a0 0d
    96899714    mov cx, ds                                ; 8c d9
    96909715    mov ax, strict word 00004h                ; b8 04 00
    9691     call 01923h                               ; e8 1d b0
     9716    call 01923h                               ; e8 ef af
    96929717    push 0086eh                               ; 68 6e 08
    96939718    push strict byte 00004h                   ; 6a 04
    9694     call 01966h                               ; e8 58 b0
     9719    call 01966h                               ; e8 2a b0
    96959720    add sp, strict byte 00004h                ; 83 c4 04
    96969721    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    96999724    or ah, 086h                               ; 80 cc 86
    97009725    mov word [bp+012h], ax                    ; 89 46 12
    9701     jmp near 06744h                           ; e9 21 fe
     9726    jmp near 06772h                           ; e9 21 fe
    97029727    mov word [bp+018h], cx                    ; 89 4e 18
    97039728    mov word [bp+012h], ax                    ; 89 46 12
    97049729    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    97059730    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    9706     jmp near 06744h                           ; e9 0e fe
     9731    jmp near 06772h                           ; e9 0e fe
    97079732    mov dx, strict word 0000eh                ; ba 0e 00
    97089733    mov ax, strict word 00040h                ; b8 40 00
    9709     call 0166ch                               ; e8 2d ad
     9734    call 0166ch                               ; e8 ff ac
    97109735    mov word [bp+014h], ax                    ; 89 46 14
    9711     jmp near 06827h                           ; e9 e2 fe
     9736    jmp near 06855h                           ; e9 e2 fe
    97129737    push 0089dh                               ; 68 9d 08
    97139738    push strict byte 00008h                   ; 6a 08
    9714     jmp short 0690bh                          ; eb bf
     9739    jmp short 06939h                          ; eb bf
    97159740    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9716     jne short 06971h                          ; 75 1f
     9741    jne short 0699fh                          ; 75 1f
    97179742    mov word [bp+012h], ax                    ; 89 46 12
    97189743    mov ax, word [bp+00ch]                    ; 8b 46 0c
    97199744    xor ah, ah                                ; 30 e4
    97209745    cmp ax, strict word 00001h                ; 3d 01 00
    9721     jc short 0696ah                           ; 72 0b
     9746    jc short 06998h                           ; 72 0b
    97229747    cmp ax, strict word 00003h                ; 3d 03 00
    9723     jnbe short 0696ah                         ; 77 06
     9748    jnbe short 06998h                         ; 77 06
    97249749    mov word [bp+018h], cx                    ; 89 4e 18
    9725     jmp near 06744h                           ; e9 da fd
     9750    jmp near 06772h                           ; e9 da fd
    97269751    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9727     jmp near 06744h                           ; e9 d3 fd
     9752    jmp near 06772h                           ; e9 d3 fd
    97289753    mov bx, 00da0h                            ; bb a0 0d
    97299754    mov cx, ds                                ; 8c d9
    97309755    mov ax, strict word 00004h                ; b8 04 00
    9731     call 01923h                               ; e8 a7 af
     9756    call 01923h                               ; e8 79 af
    97329757    push word [bp+00ch]                       ; ff 76 0c
    97339758    push word [bp+012h]                       ; ff 76 12
    97349759    push 008b4h                               ; 68 b4 08
    97359760    push strict byte 00004h                   ; 6a 04
    9736     call 01966h                               ; e8 dc af
     9761    call 01966h                               ; e8 ae af
    97379762    add sp, strict byte 00008h                ; 83 c4 08
    9738     jmp short 06911h                          ; eb 82
    9739     or ax, 0326bh                             ; 0d 6b 32
    9740     imul dx, word [bp+si+06bh], strict byte 0ffa1h ; 6b 52 6b a1
    9741     imul di, word [bx-02395h], strict byte 0006bh ; 6b bf 6b dc 6b
    9742     db  0feh
    9743     imul sp, word [bx+si], strict byte 0006ch ; 6b 20 6c
    9744     pop bp                                    ; 5d
     9763    jmp short 0693fh                          ; eb 82
     9764    cmp bp, word [bp+di+060h]                 ; 3b 6b 60
     9765    imul ax, word [bx+si-03095h], strict byte 0006bh ; 6b 80 6b cf 6b
     9766    in ax, DX                                 ; ed
     9767    imul cx, word [bp+si], strict byte 0006ch ; 6b 0a 6c
     9768    sub AL, strict byte 06ch                  ; 2c 6c
     9769    dec si                                    ; 4e
    97459770    insb                                      ; 6c
    9746     xchg cx, ax                               ; 91
     9771    mov bp, word [si-041h]                    ; 8b 6c bf
    97479772    insb                                      ; 6c
    9748 _int15_function32:                           ; 0xf69a3 LB 0x38a
     9773_int15_function32:                           ; 0xf69d1 LB 0x38a
    97499774    push bp                                   ; 55
    97509775    mov bp, sp                                ; 89 e5
     
    97589783    xor dh, dh                                ; 30 f6
    97599784    cmp ax, 000e8h                            ; 3d e8 00
    9760     je short 06a0ah                           ; 74 4a
     9785    je short 06a38h                           ; 74 4a
    97619786    cmp ax, 000d0h                            ; 3d d0 00
    9762     je short 069d7h                           ; 74 12
     9787    je short 06a05h                           ; 74 12
    97639788    cmp ax, 00086h                            ; 3d 86 00
    9764     jne short 06a08h                          ; 75 3e
     9789    jne short 06a36h                          ; 75 3e
    97659790    sti                                       ; fb
    97669791    mov dx, word [bp+01ch]                    ; 8b 56 1c
    97679792    mov ax, word [bp+018h]                    ; 8b 46 18
    9768     call 0656ch                               ; e8 98 fb
    9769     jmp near 06b9bh                           ; e9 c4 01
     9793    call 0659ah                               ; e8 98 fb
     9794    jmp near 06bc9h                           ; e9 c4 01
    97709795    cmp dx, strict byte 0004fh                ; 83 fa 4f
    9771     jne short 06a08h                          ; 75 2c
     9796    jne short 06a36h                          ; 75 2c
    97729797    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    9773     jne short 06a3eh                          ; 75 5b
     9798    jne short 06a6ch                          ; 75 5b
    97749799    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    9775     jne short 06a3eh                          ; 75 54
     9800    jne short 06a6ch                          ; 75 54
    97769801    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    9777     jne short 06a3eh                          ; 75 4d
     9802    jne short 06a6ch                          ; 75 4d
    97789803    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    9779     jne short 06a3eh                          ; 75 46
     9804    jne short 06a6ch                          ; 75 46
    97809805    mov ax, word [bp+00ah]                    ; 8b 46 0a
    97819806    or ax, word [bp+008h]                     ; 0b 46 08
    9782     jne short 06a3eh                          ; 75 3e
     9807    jne short 06a6ch                          ; 75 3e
    97839808    mov ax, word [bp+006h]                    ; 8b 46 06
    97849809    or ax, word [bp+004h]                     ; 0b 46 04
    9785     je short 06a0ch                           ; 74 04
    9786     jmp short 06a3eh                          ; eb 34
    9787     jmp short 06a34h                          ; eb 28
     9810    je short 06a3ah                           ; 74 04
     9811    jmp short 06a6ch                          ; eb 34
     9812    jmp short 06a62h                          ; eb 28
    97889813    mov word [bp+028h], bx                    ; 89 5e 28
    97899814    mov ax, word [bp+014h]                    ; 8b 46 14
     
    97979822    mov word [bp+020h], 03332h                ; c7 46 20 32 33
    97989823    mov word [bp+022h], 04941h                ; c7 46 22 41 49
    9799     jmp near 06b9bh                           ; e9 67 01
     9824    jmp near 06bc9h                           ; e9 67 01
    98009825    cmp dx, strict byte 00020h                ; 83 fa 20
    9801     je short 06a44h                           ; 74 0b
     9826    je short 06a72h                           ; 74 0b
    98029827    cmp dx, strict byte 00001h                ; 83 fa 01
    9803     je short 06a41h                           ; 74 03
    9804     jmp near 06b71h                           ; e9 30 01
    9805     jmp near 06cdfh                           ; e9 9b 02
     9828    je short 06a6fh                           ; 74 03
     9829    jmp near 06b9fh                           ; e9 30 01
     9830    jmp near 06d0dh                           ; e9 9b 02
    98069831    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    9807     jne short 06a3eh                          ; 75 f3
     9832    jne short 06a6ch                          ; 75 f3
    98089833    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    9809     jne short 06a3eh                          ; 75 ec
     9834    jne short 06a6ch                          ; 75 ec
    98109835    mov ax, strict word 00035h                ; b8 35 00
    9811     call 016ach                               ; e8 54 ac
     9836    call 016ach                               ; e8 26 ac
    98129837    mov bl, al                                ; 88 c3
    98139838    xor bh, bh                                ; 30 ff
     
    98169841    sal bx, 1                                 ; d1 e3
    98179842    rcl dx, 1                                 ; d1 d2
    9818     loop 06a61h                               ; e2 fa
     9843    loop 06a8fh                               ; e2 fa
    98199844    mov ax, strict word 00034h                ; b8 34 00
    9820     call 016ach                               ; e8 3f ac
     9845    call 016ach                               ; e8 11 ac
    98219846    xor ah, ah                                ; 30 e4
    98229847    mov dx, bx                                ; 89 da
     
    98269851    adc dx, 00100h                            ; 81 d2 00 01
    98279852    cmp dx, 00100h                            ; 81 fa 00 01
    9828     jc short 06a87h                           ; 72 06
    9829     jne short 06ab5h                          ; 75 32
     9853    jc short 06ab5h                           ; 72 06
     9854    jne short 06ae3h                          ; 75 32
    98309855    test bx, bx                               ; 85 db
    9831     jnbe short 06ab5h                         ; 77 2e
     9856    jnbe short 06ae3h                         ; 77 2e
    98329857    mov ax, strict word 00031h                ; b8 31 00
    9833     call 016ach                               ; e8 1f ac
     9858    call 016ach                               ; e8 f1 ab
    98349859    mov bl, al                                ; 88 c3
    98359860    xor bh, bh                                ; 30 ff
     
    98389863    sal bx, 1                                 ; d1 e3
    98399864    rcl dx, 1                                 ; d1 d2
    9840     loop 06a96h                               ; e2 fa
     9865    loop 06ac4h                               ; e2 fa
    98419866    mov ax, strict word 00030h                ; b8 30 00
    9842     call 016ach                               ; e8 0a ac
     9867    call 016ach                               ; e8 dc ab
    98439868    xor ah, ah                                ; 30 e4
    98449869    or bx, ax                                 ; 09 c3
     
    98469871    sal bx, 1                                 ; d1 e3
    98479872    rcl dx, 1                                 ; d1 d2
    9848     loop 06aa9h                               ; e2 fa
     9873    loop 06ad7h                               ; e2 fa
    98499874    add bx, strict byte 00000h                ; 83 c3 00
    98509875    adc dx, strict byte 00010h                ; 83 d2 10
    98519876    mov ax, strict word 00062h                ; b8 62 00
    9852     call 016ach                               ; e8 f1 ab
     9877    call 016ach                               ; e8 c3 ab
    98539878    xor ah, ah                                ; 30 e4
    98549879    mov word [bp-00ah], ax                    ; 89 46 f6
     
    98589883    sal word [bp-00ah], 1                     ; d1 66 f6
    98599884    rcl word [bp-008h], 1                     ; d1 56 f8
    9860     loop 06ac8h                               ; e2 f8
     9885    loop 06af6h                               ; e2 f8
    98619886    mov ax, strict word 00061h                ; b8 61 00
    9862     call 016ach                               ; e8 d6 ab
     9887    call 016ach                               ; e8 a8 ab
    98639888    xor ah, ah                                ; 30 e4
    98649889    or word [bp-00ah], ax                     ; 09 46 f6
     
    98679892    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    98689893    mov ax, strict word 00063h                ; b8 63 00
    9869     call 016ach                               ; e8 c0 ab
     9894    call 016ach                               ; e8 92 ab
    98709895    mov byte [bp-004h], al                    ; 88 46 fc
    98719896    mov byte [bp-006h], al                    ; 88 46 fa
    98729897    mov ax, word [bp+014h]                    ; 8b 46 14
    98739898    cmp ax, strict word 00009h                ; 3d 09 00
    9874     jnbe short 06b71h                         ; 77 77
     9899    jnbe short 06b9fh                         ; 77 77
    98759900    mov si, ax                                ; 89 c6
    98769901    add si, ax                                ; 01 c6
     
    98799904    mov cx, dx                                ; 89 d1
    98809905    adc cx, strict byte 0ffffh                ; 83 d1 ff
    9881     jmp word [cs:si+0698fh]                   ; 2e ff a4 8f 69
     9906    jmp word [cs:si+069bdh]                   ; 2e ff a4 bd 69
    98829907    push strict byte 00001h                   ; 6a 01
    98839908    push strict byte 00000h                   ; 6a 00
     
    98899914    xor bx, bx                                ; 31 db
    98909915    xor cx, cx                                ; 31 c9
    9891     call 065dfh                               ; e8 ba fa
     9916    call 0660dh                               ; e8 ba fa
    98929917    mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
    98939918    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    9894     jmp near 06cc4h                           ; e9 92 01
     9919    jmp near 06cf2h                           ; e9 92 01
    98959920    push strict byte 00002h                   ; 6a 02
    98969921    push strict byte 00000h                   ; 6a 00
     
    99029927    mov bx, 0fc00h                            ; bb 00 fc
    99039928    mov cx, strict word 00009h                ; b9 09 00
    9904     call 065dfh                               ; e8 94 fa
     9929    call 0660dh                               ; e8 94 fa
    99059930    mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
    9906     jmp short 06b2ah                          ; eb d8
     9931    jmp short 06b58h                          ; eb d8
    99079932    push strict byte 00002h                   ; 6a 02
    99089933    push strict byte 00000h                   ; 6a 00
     
    99149939    xor bx, bx                                ; 31 db
    99159940    mov cx, strict word 0000fh                ; b9 0f 00
    9916     call 065dfh                               ; e8 75 fa
     9941    call 0660dh                               ; e8 75 fa
    99179942    mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
    9918     jmp short 06b2ah                          ; eb b9
     9943    jmp short 06b58h                          ; eb b9
    99199944    mov bx, 00da0h                            ; bb a0 0d
    99209945    mov cx, ds                                ; 8c d9
    99219946    mov ax, strict word 00004h                ; b8 04 00
    9922     call 01923h                               ; e8 a7 ad
     9947    call 01923h                               ; e8 79 ad
    99239948    push word [bp+014h]                       ; ff 76 14
    99249949    push word [bp+020h]                       ; ff 76 20
    99259950    push 008b4h                               ; 68 b4 08
    99269951    push strict byte 00004h                   ; 6a 04
    9927     call 01966h                               ; e8 dc ad
     9952    call 01966h                               ; e8 ae ad
    99289953    add sp, strict byte 00008h                ; 83 c4 08
    99299954    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    99459970    xor bx, bx                                ; 31 db
    99469971    mov cx, strict word 00010h                ; b9 10 00
    9947     call 065dfh                               ; e8 28 fa
     9972    call 0660dh                               ; e8 28 fa
    99489973    mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
    9949     jmp near 06b2ah                           ; e9 6b ff
     9974    jmp near 06b58h                           ; e9 6b ff
    99509975    push strict byte 00003h                   ; 6a 03
    99519976    push strict byte 00000h                   ; 6a 00
     
    99579982    mov bx, ax                                ; 89 c3
    99589983    mov ax, si                                ; 89 f0
    9959     call 065dfh                               ; e8 0b fa
     9984    call 0660dh                               ; e8 0b fa
    99609985    mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
    9961     jmp near 06b2ah                           ; e9 4e ff
     9986    jmp near 06b58h                           ; e9 4e ff
    99629987    push strict byte 00002h                   ; 6a 02
    99639988    push strict byte 00000h                   ; 6a 00
     
    99699994    xor bx, bx                                ; 31 db
    99709995    mov cx, 0fec0h                            ; b9 c0 fe
    9971     call 065dfh                               ; e8 e9 f9
     9996    call 0660dh                               ; e8 e9 f9
    99729997    mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
    9973     jmp near 06b2ah                           ; e9 2c ff
     9998    jmp near 06b58h                           ; e9 2c ff
    99749999    push strict byte 00002h                   ; 6a 02
    997510000    push strict byte 00000h                   ; 6a 00
     
    998110006    xor bx, bx                                ; 31 db
    998210007    mov cx, 0fee0h                            ; b9 e0 fe
    9983     call 065dfh                               ; e8 c7 f9
     10008    call 0660dh                               ; e8 c7 f9
    998410009    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    9985     jmp near 06b2ah                           ; e9 0a ff
     10010    jmp near 06b58h                           ; e9 0a ff
    998610011    push strict byte 00002h                   ; 6a 02
    998710012    push strict byte 00000h                   ; 6a 00
     
    999310018    xor bx, bx                                ; 31 db
    999410019    mov cx, strict word 0fffch                ; b9 fc ff
    9995     call 065dfh                               ; e8 a7 f9
     10020    call 0660dh                               ; e8 a7 f9
    999610021    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9997     jne short 06c45h                          ; 75 07
     10022    jne short 06c73h                          ; 75 07
    999810023    mov ax, word [bp-008h]                    ; 8b 46 f8
    999910024    test ax, ax                               ; 85 c0
    10000     je short 06c55h                           ; 74 10
     10025    je short 06c83h                           ; 74 10
    1000110026    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10002     jmp near 06b2ah                           ; e9 dd fe
     10027    jmp near 06b58h                           ; e9 dd fe
    1000310028    mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
    10004     jmp near 06b2ah                           ; e9 d5 fe
     10029    jmp near 06b58h                           ; e9 d5 fe
    1000510030    mov word [bp+014h], ax                    ; 89 46 14
    1000610031    mov word [bp+016h], ax                    ; 89 46 16
    10007     jmp short 06cc4h                          ; eb 67
     10032    jmp short 06cf2h                          ; eb 67
    1000810033    push strict byte 00002h                   ; 6a 02
    1000910034    push strict byte 00000h                   ; 6a 00
     
    1001510040    xor bx, bx                                ; 31 db
    1001610041    xor cx, cx                                ; 31 c9
    10017     call 065dfh                               ; e8 6b f9
     10042    call 0660dh                               ; e8 6b f9
    1001810043    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10019     jne short 06c81h                          ; 75 07
     10044    jne short 06cafh                          ; 75 07
    1002010045    mov ax, word [bp-008h]                    ; 8b 46 f8
    1002110046    test ax, ax                               ; 85 c0
    10022     je short 06c89h                           ; 74 08
     10047    je short 06cb7h                           ; 74 08
    1002310048    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10024     jmp near 06b2ah                           ; e9 a1 fe
     10049    jmp near 06b58h                           ; e9 a1 fe
    1002510050    mov word [bp+014h], ax                    ; 89 46 14
    1002610051    mov word [bp+016h], ax                    ; 89 46 16
    10027     jmp short 06cc4h                          ; eb 33
     10052    jmp short 06cf2h                          ; eb 33
    1002810053    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10029     jne short 06c9dh                          ; 75 06
     10054    jne short 06ccbh                          ; 75 06
    1003010055    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    10031     je short 06cc4h                           ; 74 27
     10056    je short 06cf2h                           ; 74 27
    1003210057    push strict byte 00001h                   ; 6a 01
    1003310058    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    1004310068    xor bx, bx                                ; 31 db
    1004410069    xor cx, cx                                ; 31 c9
    10045     call 065dfh                               ; e8 23 f9
     10070    call 0660dh                               ; e8 23 f9
    1004610071    xor ax, ax                                ; 31 c0
    1004710072    mov word [bp+014h], ax                    ; 89 46 14
     
    1005210077    mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
    1005310078    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    10054     jmp near 06b9bh                           ; e9 bc fe
     10079    jmp near 06bc9h                           ; e9 bc fe
    1005510080    mov word [bp+028h], bx                    ; 89 5e 28
    1005610081    mov ax, strict word 00031h                ; b8 31 00
    10057     call 016ach                               ; e8 c4 a9
     10082    call 016ach                               ; e8 96 a9
    1005810083    xor ah, ah                                ; 30 e4
    1005910084    mov dx, ax                                ; 89 c2
    1006010085    sal dx, 008h                              ; c1 e2 08
    1006110086    mov ax, strict word 00030h                ; b8 30 00
    10062     call 016ach                               ; e8 b7 a9
     10087    call 016ach                               ; e8 89 a9
    1006310088    xor ah, ah                                ; 30 e4
    1006410089    or dx, ax                                 ; 09 c2
    1006510090    mov word [bp+01ch], dx                    ; 89 56 1c
    1006610091    cmp dx, 03c00h                            ; 81 fa 00 3c
    10067     jbe short 06d07h                          ; 76 05
     10092    jbe short 06d35h                          ; 76 05
    1006810093    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    1006910094    mov ax, strict word 00035h                ; b8 35 00
    10070     call 016ach                               ; e8 9f a9
     10095    call 016ach                               ; e8 71 a9
    1007110096    xor ah, ah                                ; 30 e4
    1007210097    mov dx, ax                                ; 89 c2
    1007310098    sal dx, 008h                              ; c1 e2 08
    1007410099    mov ax, strict word 00034h                ; b8 34 00
    10075     call 016ach                               ; e8 92 a9
     10100    call 016ach                               ; e8 64 a9
    1007610101    xor ah, ah                                ; 30 e4
    1007710102    or dx, ax                                 ; 09 c2
     
    1008010105    mov word [bp+020h], ax                    ; 89 46 20
    1008110106    mov word [bp+014h], dx                    ; 89 56 14
    10082     jmp near 06b9bh                           ; e9 6e fe
    10083 _int15_blkmove:                              ; 0xf6d2d LB 0x18a
     10107    jmp near 06bc9h                           ; e9 6e fe
     10108_int15_blkmove:                              ; 0xf6d5b LB 0x18a
    1008410109    push bp                                   ; 55
    1008510110    mov bp, sp                                ; 89 e5
     
    1009010115    cli                                       ; fa
    1009110116    mov ax, strict word 00001h                ; b8 01 00
    10092     call 065afh                               ; e8 74 f8
     10117    call 065ddh                               ; e8 74 f8
    1009310118    mov di, ax                                ; 89 c7
    1009410119    mov ax, word [bp+006h]                    ; 8b 46 06
     
    1010010125    mov byte [bp-006h], dl                    ; 88 56 fa
    1010110126    cmp cx, ax                                ; 39 c1
    10102     jnc short 06d5ah                          ; 73 05
     10127    jnc short 06d88h                          ; 73 05
    1010310128    db  0feh, 0c2h
    1010410129    ; inc dl                                    ; fe c2
     
    1010810133    mov ax, word [bp+006h]                    ; 8b 46 06
    1010910134    mov bx, strict word 0002fh                ; bb 2f 00
    10110     call 0167ah                               ; e8 11 a9
     10135    call 0167ah                               ; e8 e3 a8
    1011110136    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1011210137    add dx, strict byte 0000ah                ; 83 c2 0a
    1011310138    mov ax, word [bp+006h]                    ; 8b 46 06
    1011410139    mov bx, cx                                ; 89 cb
    10115     call 0167ah                               ; e8 03 a9
     10140    call 0167ah                               ; e8 d5 a8
    1011610141    mov bl, byte [bp-006h]                    ; 8a 5e fa
    1011710142    xor bh, bh                                ; 30 ff
     
    1011910144    add dx, strict byte 0000ch                ; 83 c2 0c
    1012010145    mov ax, word [bp+006h]                    ; 8b 46 06
    10121     call 0165eh                               ; e8 d6 a8
     10146    call 0165eh                               ; e8 a8 a8
    1012210147    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1012310148    add dx, strict byte 0000dh                ; 83 c2 0d
    1012410149    mov ax, word [bp+006h]                    ; 8b 46 06
    1012510150    mov bx, 00093h                            ; bb 93 00
    10126     call 0165eh                               ; e8 c7 a8
     10151    call 0165eh                               ; e8 99 a8
    1012710152    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1012810153    add dx, strict byte 0000eh                ; 83 c2 0e
    1012910154    mov ax, word [bp+006h]                    ; 8b 46 06
    1013010155    xor bx, bx                                ; 31 db
    10131     call 0167ah                               ; e8 d5 a8
     10156    call 0167ah                               ; e8 a7 a8
    1013210157    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1013310158    add dx, strict byte 00020h                ; 83 c2 20
    1013410159    mov ax, word [bp+006h]                    ; 8b 46 06
    1013510160    mov bx, strict word 0ffffh                ; bb ff ff
    10136     call 0167ah                               ; e8 c6 a8
     10161    call 0167ah                               ; e8 98 a8
    1013710162    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1013810163    add dx, strict byte 00022h                ; 83 c2 22
    1013910164    mov ax, word [bp+006h]                    ; 8b 46 06
    1014010165    xor bx, bx                                ; 31 db
    10141     call 0167ah                               ; e8 b8 a8
     10166    call 0167ah                               ; e8 8a a8
    1014210167    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1014310168    add dx, strict byte 00024h                ; 83 c2 24
    1014410169    mov ax, word [bp+006h]                    ; 8b 46 06
    1014510170    mov bx, strict word 0000fh                ; bb 0f 00
    10146     call 0165eh                               ; e8 8d a8
     10171    call 0165eh                               ; e8 5f a8
    1014710172    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1014810173    add dx, strict byte 00025h                ; 83 c2 25
    1014910174    mov ax, word [bp+006h]                    ; 8b 46 06
    1015010175    mov bx, 0009bh                            ; bb 9b 00
    10151     call 0165eh                               ; e8 7e a8
     10176    call 0165eh                               ; e8 50 a8
    1015210177    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1015310178    add dx, strict byte 00026h                ; 83 c2 26
    1015410179    mov ax, word [bp+006h]                    ; 8b 46 06
    1015510180    xor bx, bx                                ; 31 db
    10156     call 0167ah                               ; e8 8c a8
     10181    call 0167ah                               ; e8 5e a8
    1015710182    mov ax, ss                                ; 8c d0
    1015810183    mov cx, ax                                ; 89 c1
     
    1016410189    mov ax, word [bp+006h]                    ; 8b 46 06
    1016510190    mov bx, strict word 0ffffh                ; bb ff ff
    10166     call 0167ah                               ; e8 70 a8
     10191    call 0167ah                               ; e8 42 a8
    1016710192    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1016810193    add dx, strict byte 0002ah                ; 83 c2 2a
    1016910194    mov ax, word [bp+006h]                    ; 8b 46 06
    1017010195    mov bx, cx                                ; 89 cb
    10171     call 0167ah                               ; e8 62 a8
     10196    call 0167ah                               ; e8 34 a8
    1017210197    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1017310198    xor bh, bh                                ; 30 ff
     
    1017510200    add dx, strict byte 0002ch                ; 83 c2 2c
    1017610201    mov ax, word [bp+006h]                    ; 8b 46 06
    10177     call 0165eh                               ; e8 35 a8
     10202    call 0165eh                               ; e8 07 a8
    1017810203    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1017910204    add dx, strict byte 0002dh                ; 83 c2 2d
    1018010205    mov ax, word [bp+006h]                    ; 8b 46 06
    1018110206    mov bx, 00093h                            ; bb 93 00
    10182     call 0165eh                               ; e8 26 a8
     10207    call 0165eh                               ; e8 f8 a7
    1018310208    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1018410209    add dx, strict byte 0002eh                ; 83 c2 2e
    1018510210    mov ax, word [bp+006h]                    ; 8b 46 06
    1018610211    xor bx, bx                                ; 31 db
    10187     call 0167ah                               ; e8 34 a8
     10212    call 0167ah                               ; e8 06 a8
    1018810213    lea bx, [bp+004h]                         ; 8d 5e 04
    1018910214    mov si, word [bp+00ah]                    ; 8b 76 0a
     
    1019510220    mov word [00467h], bx                     ; 89 1e 67 04
    1019610221    mov [00469h], ss                          ; 8c 16 69 04
    10197     call 06e61h                               ; e8 00 00
     10222    call 06e8fh                               ; e8 00 00
    1019810223    pop di                                    ; 5f
    1019910224    add di, strict byte 00018h                ; 83 c7 18
     
    1022710252    int3                                      ; cc
    1022810253    mov ax, di                                ; 89 f8
    10229     call 065afh                               ; e8 08 f7
     10254    call 065ddh                               ; e8 08 f7
    1023010255    sti                                       ; fb
    1023110256    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    1023610261    pop bp                                    ; 5d
    1023710262    retn                                      ; c3
    10238 _inv_op_handler:                             ; 0xf6eb7 LB 0x19b
     10263_inv_op_handler:                             ; 0xf6ee5 LB 0x19b
    1023910264    push bp                                   ; 55
    1024010265    mov bp, sp                                ; 89 e5
     
    1024510270    les bx, [bp+018h]                         ; c4 5e 18
    1024610271    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10247     jne short 06ecdh                          ; 75 06
     10272    jne short 06efbh                          ; 75 06
    1024810273    inc word [bp+018h]                        ; ff 46 18
    10249     jmp near 0704bh                           ; e9 7e 01
     10274    jmp near 07079h                           ; e9 7e 01
    1025010275    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10251     je short 06ed7h                           ; 74 03
    10252     jmp near 07047h                           ; e9 70 01
     10276    je short 06f05h                           ; 74 03
     10277    jmp near 07075h                           ; e9 70 01
    1025310278    mov si, 00800h                            ; be 00 08
    1025410279    xor ax, ax                                ; 31 c0
     
    1027910304    sal ax, 1                                 ; d1 e0
    1028010305    rcl dx, 1                                 ; d1 d2
    10281     loop 06f28h                               ; e2 fa
     10306    loop 06f56h                               ; e2 fa
    1028210307    cmp bx, dx                                ; 39 d3
    10283     jne short 06f36h                          ; 75 04
     10308    jne short 06f64h                          ; 75 04
    1028410309    cmp di, ax                                ; 39 c7
    10285     je short 06f3bh                           ; 74 05
     10310    je short 06f69h                           ; 74 05
    1028610311    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    1028710312    mov es, [bp-006h]                         ; 8e 46 fa
     
    1029410319    sal ax, 1                                 ; d1 e0
    1029510320    rcl dx, 1                                 ; d1 d2
    10296     loop 06f51h                               ; e2 fa
     10321    loop 06f7fh                               ; e2 fa
    1029710322    cmp bx, dx                                ; 39 d3
    10298     jne short 06f5fh                          ; 75 04
     10323    jne short 06f8dh                          ; 75 04
    1029910324    cmp di, ax                                ; 39 c7
    10300     je short 06f63h                           ; 74 04
     10325    je short 06f91h                           ; 74 04
    1030110326    or byte [bp-008h], 002h                   ; 80 4e f8 02
    1030210327    push strict byte 00000h                   ; 6a 00
     
    1035210377    mov ax, strict word 00008h                ; b8 08 00
    1035310378    test cx, strict word 00001h               ; f7 c1 01 00
    10354     je near 07004h                            ; 0f 84 02 00
     10379    je near 07032h                            ; 0f 84 02 00
    1035510380    mov es, ax                                ; 8e c0
    1035610381    test cx, strict word 00002h               ; f7 c1 02 00
    10357     je near 0702ch                            ; 0f 84 20 00
     10382    je near 0705ah                            ; 0f 84 20 00
    1035810383    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1035910384    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1037210397    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1037310398    iret                                      ; cf
    10374     jmp short 0704bh                          ; eb 04
     10399    jmp short 07079h                          ; eb 04
    1037510400    sti                                       ; fb
    1037610401    hlt                                       ; f4
    10377     jmp short 07048h                          ; eb fd
     10402    jmp short 07076h                          ; eb fd
    1037810403    lea sp, [bp-004h]                         ; 8d 66 fc
    1037910404    pop di                                    ; 5f
     
    1038110406    pop bp                                    ; 5d
    1038210407    retn                                      ; c3
    10383 init_rtc_:                                   ; 0xf7052 LB 0x28
     10408init_rtc_:                                   ; 0xf7080 LB 0x28
    1038410409    push bp                                   ; 55
    1038510410    mov bp, sp                                ; 89 e5
     
    1038710412    mov dx, strict word 00026h                ; ba 26 00
    1038810413    mov ax, strict word 0000ah                ; b8 0a 00
    10389     call 016c7h                               ; e8 68 a6
     10414    call 016c7h                               ; e8 3a a6
    1039010415    mov dx, strict word 00002h                ; ba 02 00
    1039110416    mov ax, strict word 0000bh                ; b8 0b 00
    10392     call 016c7h                               ; e8 5f a6
     10417    call 016c7h                               ; e8 31 a6
    1039310418    mov ax, strict word 0000ch                ; b8 0c 00
    10394     call 016ach                               ; e8 3e a6
     10419    call 016ach                               ; e8 10 a6
    1039510420    mov ax, strict word 0000dh                ; b8 0d 00
    10396     call 016ach                               ; e8 38 a6
     10421    call 016ach                               ; e8 0a a6
    1039710422    lea sp, [bp-002h]                         ; 8d 66 fe
    1039810423    pop dx                                    ; 5a
    1039910424    pop bp                                    ; 5d
    1040010425    retn                                      ; c3
    10401 rtc_updating_:                               ; 0xf707a LB 0x21
     10426rtc_updating_:                               ; 0xf70a8 LB 0x21
    1040210427    push bp                                   ; 55
    1040310428    mov bp, sp                                ; 89 e5
     
    1040510430    mov dx, 061a8h                            ; ba a8 61
    1040610431    dec dx                                    ; 4a
    10407     je short 07092h                           ; 74 0e
     10432    je short 070c0h                           ; 74 0e
    1040810433    mov ax, strict word 0000ah                ; b8 0a 00
    10409     call 016ach                               ; e8 22 a6
     10434    call 016ach                               ; e8 f4 a5
    1041010435    test AL, strict byte 080h                 ; a8 80
    10411     jne short 07081h                          ; 75 f3
     10436    jne short 070afh                          ; 75 f3
    1041210437    xor ax, ax                                ; 31 c0
    10413     jmp short 07095h                          ; eb 03
     10438    jmp short 070c3h                          ; eb 03
    1041410439    mov ax, strict word 00001h                ; b8 01 00
    1041510440    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1041710442    pop bp                                    ; 5d
    1041810443    retn                                      ; c3
    10419 _int70_function:                             ; 0xf709b LB 0xbf
     10444_int70_function:                             ; 0xf70c9 LB 0xbf
    1042010445    push bp                                   ; 55
    1042110446    mov bp, sp                                ; 89 e5
     
    1042310448    push ax                                   ; 50
    1042410449    mov ax, strict word 0000bh                ; b8 0b 00
    10425     call 016ach                               ; e8 06 a6
     10450    call 016ach                               ; e8 d8 a5
    1042610451    mov bl, al                                ; 88 c3
    1042710452    mov byte [bp-004h], al                    ; 88 46 fc
    1042810453    mov ax, strict word 0000ch                ; b8 0c 00
    10429     call 016ach                               ; e8 fb a5
     10454    call 016ach                               ; e8 cd a5
    1043010455    mov dl, al                                ; 88 c2
    1043110456    test bl, 060h                             ; f6 c3 60
    10432     jne short 070bbh                          ; 75 03
    10433     jmp near 07141h                           ; e9 86 00
     10457    jne short 070e9h                          ; 75 03
     10458    jmp near 0716fh                           ; e9 86 00
    1043410459    test AL, strict byte 020h                 ; a8 20
    10435     je short 070c3h                           ; 74 04
     10460    je short 070f1h                           ; 74 04
    1043610461    sti                                       ; fb
    1043710462    int 04ah                                  ; cd 4a
    1043810463    cli                                       ; fa
    1043910464    test dl, 040h                             ; f6 c2 40
    10440     je short 0712bh                           ; 74 63
     10465    je short 07159h                           ; 74 63
    1044110466    mov dx, 000a0h                            ; ba a0 00
    1044210467    mov ax, strict word 00040h                ; b8 40 00
    10443     call 01650h                               ; e8 7f a5
     10468    call 01650h                               ; e8 51 a5
    1044410469    test al, al                               ; 84 c0
    10445     je short 07141h                           ; 74 6c
     10470    je short 0716fh                           ; 74 6c
    1044610471    mov dx, 0009ch                            ; ba 9c 00
    1044710472    mov ax, strict word 00040h                ; b8 40 00
    10448     call 01688h                               ; e8 aa a5
     10473    call 01688h                               ; e8 7c a5
    1044910474    test dx, dx                               ; 85 d2
    10450     jne short 0712dh                          ; 75 4b
     10475    jne short 0715bh                          ; 75 4b
    1045110476    cmp ax, 003d1h                            ; 3d d1 03
    10452     jnc short 0712dh                          ; 73 46
     10477    jnc short 0715bh                          ; 73 46
    1045310478    mov dx, 00098h                            ; ba 98 00
    1045410479    mov ax, strict word 00040h                ; b8 40 00
    10455     call 0166ch                               ; e8 7c a5
     10480    call 0166ch                               ; e8 4e a5
    1045610481    mov si, ax                                ; 89 c6
    1045710482    mov dx, 0009ah                            ; ba 9a 00
    1045810483    mov ax, strict word 00040h                ; b8 40 00
    10459     call 0166ch                               ; e8 71 a5
     10484    call 0166ch                               ; e8 43 a5
    1046010485    mov cx, ax                                ; 89 c1
    1046110486    xor bx, bx                                ; 31 db
    1046210487    mov dx, 000a0h                            ; ba a0 00
    1046310488    mov ax, strict word 00040h                ; b8 40 00
    10464     call 0165eh                               ; e8 56 a5
     10489    call 0165eh                               ; e8 28 a5
    1046510490    mov dl, byte [bp-004h]                    ; 8a 56 fc
    1046610491    and dl, 037h                              ; 80 e2 37
    1046710492    xor dh, dh                                ; 30 f6
    1046810493    mov ax, strict word 0000bh                ; b8 0b 00
    10469     call 016c7h                               ; e8 b1 a5
     10494    call 016c7h                               ; e8 83 a5
    1047010495    mov dx, cx                                ; 89 ca
    1047110496    mov ax, si                                ; 89 f0
    10472     call 01650h                               ; e8 33 a5
     10497    call 01650h                               ; e8 05 a5
    1047310498    mov bl, al                                ; 88 c3
    1047410499    or bl, 080h                               ; 80 cb 80
     
    1047610501    mov dx, cx                                ; 89 ca
    1047710502    mov ax, si                                ; 89 f0
    10478     call 0165eh                               ; e8 33 a5
    10479     jmp short 07141h                          ; eb 14
     10503    call 0165eh                               ; e8 05 a5
     10504    jmp short 0716fh                          ; eb 14
    1048010505    mov bx, ax                                ; 89 c3
    1048110506    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1048410509    mov dx, 0009ch                            ; ba 9c 00
    1048510510    mov ax, strict word 00040h                ; b8 40 00
    10486     call 0169ah                               ; e8 59 a5
    10487     call 0e030h                               ; e8 ec 6e
     10511    call 0169ah                               ; e8 2b a5
     10512    call 0e030h                               ; e8 be 6e
    1048810513    lea sp, [bp-002h]                         ; 8d 66 fe
    1048910514    pop si                                    ; 5e
    1049010515    pop bp                                    ; 5d
    1049110516    retn                                      ; c3
    10492     jo short 071bdh                           ; 70 71
    10493     xchg di, ax                               ; 97
    10494     jno short 0710bh                          ; 71 bc
    10495     jno short 07149h                          ; 71 f8
    10496     jno short 0719dh                          ; 71 4a
    10497     jc short 070d6h                           ; 72 81
    10498     jc short 0711fh                           ; 72 c8
    10499     jc short 0717ch                           ; 72 23
     10517    sahf                                      ; 9e
     10518    jno short 07140h                          ; 71 c5
     10519    jno short 07167h                          ; 71 ea
     10520    jno short 071a5h                          ; 71 26
     10521    jc short 071f9h                           ; 72 78
     10522    jc short 07132h                           ; 72 af
     10523    jc short 0717bh                           ; 72 f6
     10524    jc short 071d8h                           ; 72 51
    1050010525    db  073h
    10501 _int1a_function:                             ; 0xf715a LB 0x1d9
     10526_int1a_function:                             ; 0xf7188 LB 0x1d9
    1050210527    push bp                                   ; 55
    1050310528    mov bp, sp                                ; 89 e5
     
    1050510530    mov al, byte [bp+013h]                    ; 8a 46 13
    1050610531    cmp AL, strict byte 007h                  ; 3c 07
    10507     jnbe short 071c3h                         ; 77 5e
     10532    jnbe short 071f1h                         ; 77 5e
    1050810533    mov bl, al                                ; 88 c3
    1050910534    xor bh, bh                                ; 30 ff
    1051010535    add bx, bx                                ; 01 db
    10511     jmp word [cs:bx+0714ah]                   ; 2e ff a7 4a 71
     10536    jmp word [cs:bx+07178h]                   ; 2e ff a7 78 71
    1051210537    cli                                       ; fa
    1051310538    mov bx, 0046eh                            ; bb 6e 04
     
    1052410549    mov byte [es:bx], 000h                    ; 26 c6 07 00
    1052510550    sti                                       ; fb
    10526     jmp short 071c3h                          ; eb 2c
     10551    jmp short 071f1h                          ; eb 2c
    1052710552    cli                                       ; fa
    1052810553    mov bx, 0046eh                            ; bb 6e 04
     
    1053810563    sti                                       ; fb
    1053910564    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10540     jmp short 071c3h                          ; eb 07
    10541     call 0707ah                               ; e8 bb fe
     10565    jmp short 071f1h                          ; eb 07
     10566    call 070a8h                               ; e8 bb fe
    1054210567    test ax, ax                               ; 85 c0
    10543     je short 071c6h                           ; 74 03
    10544     jmp near 071f4h                           ; e9 2e 00
     10568    je short 071f4h                           ; 74 03
     10569    jmp near 07222h                           ; e9 2e 00
    1054510570    xor ax, ax                                ; 31 c0
    10546     call 016ach                               ; e8 e1 a4
     10571    call 016ach                               ; e8 b3 a4
    1054710572    mov byte [bp+00fh], al                    ; 88 46 0f
    1054810573    mov ax, strict word 00002h                ; b8 02 00
    10549     call 016ach                               ; e8 d8 a4
     10574    call 016ach                               ; e8 aa a4
    1055010575    mov byte [bp+010h], al                    ; 88 46 10
    1055110576    mov ax, strict word 00004h                ; b8 04 00
    10552     call 016ach                               ; e8 cf a4
     10577    call 016ach                               ; e8 a1 a4
    1055310578    mov dl, al                                ; 88 c2
    1055410579    mov byte [bp+011h], al                    ; 88 46 11
    1055510580    mov ax, strict word 0000bh                ; b8 0b 00
    10556     call 016ach                               ; e8 c4 a4
     10581    call 016ach                               ; e8 96 a4
    1055710582    and AL, strict byte 001h                  ; 24 01
    1055810583    mov byte [bp+00eh], al                    ; 88 46 0e
     
    1056210587    pop bp                                    ; 5d
    1056310588    retn                                      ; c3
    10564     call 0707ah                               ; e8 7f fe
     10589    call 070a8h                               ; e8 7f fe
    1056510590    test ax, ax                               ; 85 c0
    10566     je short 07202h                           ; 74 03
    10567     call 07052h                               ; e8 50 fe
     10591    je short 07230h                           ; 74 03
     10592    call 07080h                               ; e8 50 fe
    1056810593    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1056910594    xor dh, dh                                ; 30 f6
    1057010595    xor ax, ax                                ; 31 c0
    10571     call 016c7h                               ; e8 bb a4
     10596    call 016c7h                               ; e8 8d a4
    1057210597    mov dl, byte [bp+010h]                    ; 8a 56 10
    1057310598    xor dh, dh                                ; 30 f6
    1057410599    mov ax, strict word 00002h                ; b8 02 00
    10575     call 016c7h                               ; e8 b0 a4
     10600    call 016c7h                               ; e8 82 a4
    1057610601    mov dl, byte [bp+011h]                    ; 8a 56 11
    1057710602    xor dh, dh                                ; 30 f6
    1057810603    mov ax, strict word 00004h                ; b8 04 00
    10579     call 016c7h                               ; e8 a5 a4
     10604    call 016c7h                               ; e8 77 a4
    1058010605    mov ax, strict word 0000bh                ; b8 0b 00
    10581     call 016ach                               ; e8 84 a4
     10606    call 016ach                               ; e8 56 a4
    1058210607    mov bl, al                                ; 88 c3
    1058310608    and bl, 060h                              ; 80 e3 60
     
    1058910614    xor dh, dh                                ; 30 f6
    1059010615    mov ax, strict word 0000bh                ; b8 0b 00
    10591     call 016c7h                               ; e8 86 a4
     10616    call 016c7h                               ; e8 58 a4
    1059210617    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1059310618    mov byte [bp+012h], bl                    ; 88 5e 12
    10594     jmp short 071f4h                          ; eb aa
     10619    jmp short 07222h                          ; eb aa
    1059510620    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10596     call 0707ah                               ; e8 29 fe
     10621    call 070a8h                               ; e8 29 fe
    1059710622    test ax, ax                               ; 85 c0
    10598     je short 07257h                           ; 74 02
    10599     jmp short 071f4h                          ; eb 9d
     10623    je short 07285h                           ; 74 02
     10624    jmp short 07222h                          ; eb 9d
    1060010625    mov ax, strict word 00009h                ; b8 09 00
    10601     call 016ach                               ; e8 4f a4
     10626    call 016ach                               ; e8 21 a4
    1060210627    mov byte [bp+010h], al                    ; 88 46 10
    1060310628    mov ax, strict word 00008h                ; b8 08 00
    10604     call 016ach                               ; e8 46 a4
     10629    call 016ach                               ; e8 18 a4
    1060510630    mov byte [bp+00fh], al                    ; 88 46 0f
    1060610631    mov ax, strict word 00007h                ; b8 07 00
    10607     call 016ach                               ; e8 3d a4
     10632    call 016ach                               ; e8 0f a4
    1060810633    mov byte [bp+00eh], al                    ; 88 46 0e
    1060910634    mov ax, strict word 00032h                ; b8 32 00
    10610     call 016ach                               ; e8 34 a4
     10635    call 016ach                               ; e8 06 a4
    1061110636    mov byte [bp+011h], al                    ; 88 46 11
    1061210637    mov byte [bp+012h], al                    ; 88 46 12
    10613     jmp near 071f4h                           ; e9 73 ff
    10614     call 0707ah                               ; e8 f6 fd
     10638    jmp near 07222h                           ; e9 73 ff
     10639    call 070a8h                               ; e8 f6 fd
    1061510640    test ax, ax                               ; 85 c0
    10616     je short 0728eh                           ; 74 06
    10617     call 07052h                               ; e8 c7 fd
    10618     jmp near 071f4h                           ; e9 66 ff
     10641    je short 072bch                           ; 74 06
     10642    call 07080h                               ; e8 c7 fd
     10643    jmp near 07222h                           ; e9 66 ff
    1061910644    mov dl, byte [bp+010h]                    ; 8a 56 10
    1062010645    xor dh, dh                                ; 30 f6
    1062110646    mov ax, strict word 00009h                ; b8 09 00
    10622     call 016c7h                               ; e8 2e a4
     10647    call 016c7h                               ; e8 00 a4
    1062310648    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1062410649    xor dh, dh                                ; 30 f6
    1062510650    mov ax, strict word 00008h                ; b8 08 00
    10626     call 016c7h                               ; e8 23 a4
     10651    call 016c7h                               ; e8 f5 a3
    1062710652    mov dl, byte [bp+00eh]                    ; 8a 56 0e
    1062810653    xor dh, dh                                ; 30 f6
    1062910654    mov ax, strict word 00007h                ; b8 07 00
    10630     call 016c7h                               ; e8 18 a4
     10655    call 016c7h                               ; e8 ea a3
    1063110656    mov dl, byte [bp+011h]                    ; 8a 56 11
    1063210657    xor dh, dh                                ; 30 f6
    1063310658    mov ax, strict word 00032h                ; b8 32 00
    10634     call 016c7h                               ; e8 0d a4
     10659    call 016c7h                               ; e8 df a3
    1063510660    mov ax, strict word 0000bh                ; b8 0b 00
    10636     call 016ach                               ; e8 ec a3
     10661    call 016ach                               ; e8 be a3
    1063710662    mov bl, al                                ; 88 c3
    1063810663    and bl, 07fh                              ; 80 e3 7f
    10639     jmp near 07237h                           ; e9 6f ff
     10664    jmp near 07265h                           ; e9 6f ff
    1064010665    mov ax, strict word 0000bh                ; b8 0b 00
    10641     call 016ach                               ; e8 de a3
     10666    call 016ach                               ; e8 b0 a3
    1064210667    mov bl, al                                ; 88 c3
    1064310668    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1064410669    test AL, strict byte 020h                 ; a8 20
    10645     je short 072dch                           ; 74 03
    10646     jmp near 071f4h                           ; e9 18 ff
    10647     call 0707ah                               ; e8 9b fd
     10670    je short 0730ah                           ; 74 03
     10671    jmp near 07222h                           ; e9 18 ff
     10672    call 070a8h                               ; e8 9b fd
    1064810673    test ax, ax                               ; 85 c0
    10649     je short 072e6h                           ; 74 03
    10650     call 07052h                               ; e8 6c fd
     10674    je short 07314h                           ; 74 03
     10675    call 07080h                               ; e8 6c fd
    1065110676    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1065210677    xor dh, dh                                ; 30 f6
    1065310678    mov ax, strict word 00001h                ; b8 01 00
    10654     call 016c7h                               ; e8 d6 a3
     10679    call 016c7h                               ; e8 a8 a3
    1065510680    mov dl, byte [bp+010h]                    ; 8a 56 10
    1065610681    xor dh, dh                                ; 30 f6
    1065710682    mov ax, strict word 00003h                ; b8 03 00
    10658     call 016c7h                               ; e8 cb a3
     10683    call 016c7h                               ; e8 9d a3
    1065910684    mov dl, byte [bp+011h]                    ; 8a 56 11
    1066010685    xor dh, dh                                ; 30 f6
    1066110686    mov ax, strict word 00005h                ; b8 05 00
    10662     call 016c7h                               ; e8 c0 a3
     10687    call 016c7h                               ; e8 92 a3
    1066310688    mov dx, 000a1h                            ; ba a1 00
    1066410689    in AL, DX                                 ; ec
     
    1067210697    xor dh, dh                                ; 30 f6
    1067310698    mov ax, strict word 0000bh                ; b8 0b 00
    10674     call 016c7h                               ; e8 a7 a3
    10675     jmp near 071f4h                           ; e9 d1 fe
     10699    call 016c7h                               ; e8 79 a3
     10700    jmp near 07222h                           ; e9 d1 fe
    1067610701    mov ax, strict word 0000bh                ; b8 0b 00
    10677     call 016ach                               ; e8 83 a3
     10702    call 016ach                               ; e8 55 a3
    1067810703    mov bl, al                                ; 88 c3
    1067910704    mov dl, al                                ; 88 c2
    1068010705    and dl, 057h                              ; 80 e2 57
    10681     jmp near 07239h                           ; e9 06 ff
    10682 send_to_mouse_ctrl_:                         ; 0xf7333 LB 0x34
     10706    jmp near 07267h                           ; e9 06 ff
     10707send_to_mouse_ctrl_:                         ; 0xf7361 LB 0x34
    1068310708    push bp                                   ; 55
    1068410709    mov bp, sp                                ; 89 e5
     
    1069110716    ; sub ah, ah                                ; 2a e4
    1069210717    test AL, strict byte 002h                 ; a8 02
    10693     je short 07352h                           ; 74 0e
     10718    je short 07380h                           ; 74 0e
    1069410719    push 008eeh                               ; 68 ee 08
    1069510720    push 01168h                               ; 68 68 11
    1069610721    push strict byte 00007h                   ; 6a 07
    10697     call 01966h                               ; e8 17 a6
     10722    call 01966h                               ; e8 e9 a5
    1069810723    add sp, strict byte 00006h                ; 83 c4 06
    1069910724    mov AL, strict byte 0d4h                  ; b0 d4
     
    1070910734    pop bp                                    ; 5d
    1071010735    retn                                      ; c3
    10711 get_mouse_data_:                             ; 0xf7367 LB 0x5d
     10736get_mouse_data_:                             ; 0xf7395 LB 0x5d
    1071210737    push bp                                   ; 55
    1071310738    mov bp, sp                                ; 89 e5
     
    1072410749    and ax, strict word 00021h                ; 25 21 00
    1072510750    cmp ax, strict word 00021h                ; 3d 21 00
    10726     je short 073aah                           ; 74 28
     10751    je short 073d8h                           ; 74 28
    1072710752    test cx, cx                               ; 85 c9
    10728     je short 073aah                           ; 74 24
     10753    je short 073d8h                           ; 74 24
    1072910754    mov dx, strict word 00061h                ; ba 61 00
    1073010755    in AL, DX                                 ; ec
     
    1074310768    xor ah, ah                                ; 30 e4
    1074410769    cmp dx, ax                                ; 39 c2
    10745     je short 07391h                           ; 74 ea
     10770    je short 073bfh                           ; 74 ea
    1074610771    dec cx                                    ; 49
    10747     jmp short 07374h                          ; eb ca
     10772    jmp short 073a2h                          ; eb ca
    1074810773    test cx, cx                               ; 85 c9
    10749     jne short 073b2h                          ; 75 04
     10774    jne short 073e0h                          ; 75 04
    1075010775    mov AL, strict byte 001h                  ; b0 01
    10751     jmp short 073bdh                          ; eb 0b
     10776    jmp short 073ebh                          ; eb 0b
    1075210777    mov dx, strict word 00060h                ; ba 60 00
    1075310778    in AL, DX                                 ; ec
     
    1076110786    pop bp                                    ; 5d
    1076210787    retn                                      ; c3
    10763 set_kbd_command_byte_:                       ; 0xf73c4 LB 0x32
     10788set_kbd_command_byte_:                       ; 0xf73f2 LB 0x32
    1076410789    push bp                                   ; 55
    1076510790    mov bp, sp                                ; 89 e5
     
    1077210797    ; sub ah, ah                                ; 2a e4
    1077310798    test AL, strict byte 002h                 ; a8 02
    10774     je short 073e3h                           ; 74 0e
     10799    je short 07411h                           ; 74 0e
    1077510800    push 008f8h                               ; 68 f8 08
    1077610801    push 01168h                               ; 68 68 11
    1077710802    push strict byte 00007h                   ; 6a 07
    10778     call 01966h                               ; e8 86 a5
     10803    call 01966h                               ; e8 58 a5
    1077910804    add sp, strict byte 00006h                ; 83 c4 06
    1078010805    mov AL, strict byte 060h                  ; b0 60
     
    1078910814    pop bp                                    ; 5d
    1079010815    retn                                      ; c3
    10791 _int74_function:                             ; 0xf73f6 LB 0xd2
     10816_int74_function:                             ; 0xf7424 LB 0xd2
    1079210817    push bp                                   ; 55
    1079310818    mov bp, sp                                ; 89 e5
     
    1079510820    mov dx, strict word 0000eh                ; ba 0e 00
    1079610821    mov ax, strict word 00040h                ; b8 40 00
    10797     call 0166ch                               ; e8 67 a2
     10822    call 0166ch                               ; e8 39 a2
    1079810823    mov cx, ax                                ; 89 c1
    1079910824    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1080410829    and AL, strict byte 021h                  ; 24 21
    1080510830    cmp AL, strict byte 021h                  ; 3c 21
    10806     jne short 0743ah                          ; 75 22
     10831    jne short 07468h                          ; 75 22
    1080710832    mov dx, strict word 00060h                ; ba 60 00
    1080810833    in AL, DX                                 ; ec
     
    1081210837    mov dx, strict word 00026h                ; ba 26 00
    1081310838    mov ax, cx                                ; 89 c8
    10814     call 01650h                               ; e8 28 a2
     10839    call 01650h                               ; e8 fa a1
    1081510840    mov byte [bp-002h], al                    ; 88 46 fe
    1081610841    mov dx, strict word 00027h                ; ba 27 00
    1081710842    mov ax, cx                                ; 89 c8
    10818     call 01650h                               ; e8 1d a2
     10843    call 01650h                               ; e8 ef a1
    1081910844    mov byte [bp-006h], al                    ; 88 46 fa
    1082010845    test AL, strict byte 080h                 ; a8 80
    10821     jne short 0743dh                          ; 75 03
    10822     jmp near 074b4h                           ; e9 77 00
     10846    jne short 0746bh                          ; 75 03
     10847    jmp near 074e2h                           ; e9 77 00
    1082310848    mov al, byte [bp-006h]                    ; 8a 46 fa
    1082410849    and AL, strict byte 007h                  ; 24 07
     
    1083410859    add dx, strict byte 00028h                ; 83 c2 28
    1083510860    mov ax, cx                                ; 89 c8
    10836     call 0165eh                               ; e8 fe a1
     10861    call 0165eh                               ; e8 d0 a1
    1083710862    mov al, byte [bp-008h]                    ; 8a 46 f8
    1083810863    cmp al, byte [bp-004h]                    ; 3a 46 fc
    10839     jc short 074a4h                           ; 72 3c
     10864    jc short 074d2h                           ; 72 3c
    1084010865    mov dx, strict word 00028h                ; ba 28 00
    1084110866    mov ax, cx                                ; 89 c8
    10842     call 01650h                               ; e8 e0 a1
     10867    call 01650h                               ; e8 b2 a1
    1084310868    xor ah, ah                                ; 30 e4
    1084410869    mov word [bp+00ch], ax                    ; 89 46 0c
    1084510870    mov dx, strict word 00029h                ; ba 29 00
    1084610871    mov ax, cx                                ; 89 c8
    10847     call 01650h                               ; e8 d3 a1
     10872    call 01650h                               ; e8 a5 a1
    1084810873    xor ah, ah                                ; 30 e4
    1084910874    mov word [bp+00ah], ax                    ; 89 46 0a
    1085010875    mov dx, strict word 0002ah                ; ba 2a 00
    1085110876    mov ax, cx                                ; 89 c8
    10852     call 01650h                               ; e8 c6 a1
     10877    call 01650h                               ; e8 98 a1
    1085310878    xor ah, ah                                ; 30 e4
    1085410879    mov word [bp+008h], ax                    ; 89 46 08
     
    1085710882    mov byte [bp-002h], ah                    ; 88 66 fe
    1085810883    test byte [bp-006h], 080h                 ; f6 46 fa 80
    10859     je short 074a7h                           ; 74 0a
     10884    je short 074d5h                           ; 74 0a
    1086010885    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    10861     jmp short 074a7h                          ; eb 03
     10886    jmp short 074d5h                          ; eb 03
    1086210887    inc byte [bp-002h]                        ; fe 46 fe
    1086310888    mov bl, byte [bp-002h]                    ; 8a 5e fe
     
    1086510890    mov dx, strict word 00026h                ; ba 26 00
    1086610891    mov ax, cx                                ; 89 c8
    10867     call 0165eh                               ; e8 aa a1
     10892    call 0165eh                               ; e8 7c a1
    1086810893    mov sp, bp                                ; 89 ec
    1086910894    pop bp                                    ; 5d
    1087010895    retn                                      ; c3
    10871     or si, word [di-079h]                     ; 0b 75 87
    10872     jne short 074c1h                          ; 75 04
    10873     jbe short 07458h                          ; 76 99
    10874     jbe short 074c6h                          ; 76 05
    10875     jnbe short 07515h                         ; 77 52
    10876     jne short 074f2h                          ; 75 2d
    10877     jnbe short 074b9h                         ; 77 f2
    10878     db  077h
    10879 _int15_function_mouse:                       ; 0xf74c8 LB 0x38d
     10896    cmp word [di-04bh], si                    ; 39 75 b5
     10897    jne short 0751dh                          ; 75 32
     10898    jbe short 074b4h                          ; 76 c7
     10899    jbe short 07522h                          ; 76 33
     10900    jnbe short 07471h                         ; 77 80
     10901    jne short 0754eh                          ; 75 5b
     10902    jnbe short 07515h                         ; 77 20
     10903    db  078h
     10904_int15_function_mouse:                       ; 0xf74f6 LB 0x38d
    1088010905    push bp                                   ; 55
    1088110906    mov bp, sp                                ; 89 e5
     
    1088410909    mov dx, strict word 0000eh                ; ba 0e 00
    1088510910    mov ax, strict word 00040h                ; b8 40 00
    10886     call 0166ch                               ; e8 94 a1
     10911    call 0166ch                               ; e8 66 a1
    1088710912    mov cx, ax                                ; 89 c1
    1088810913    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    10889     jbe short 074ebh                          ; 76 0b
     10914    jbe short 07519h                          ; 76 0b
    1089010915    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1089110916    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10892     jmp near 0784fh                           ; e9 64 03
     10917    jmp near 0787dh                           ; e9 64 03
    1089310918    mov ax, strict word 00065h                ; b8 65 00
    10894     call 073c4h                               ; e8 d3 fe
     10919    call 073f2h                               ; e8 d3 fe
    1089510920    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1089610921    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1089710922    mov al, byte [bp+012h]                    ; 8a 46 12
    1089810923    cmp AL, strict byte 007h                  ; 3c 07
    10899     jnbe short 07560h                         ; 77 60
     10924    jnbe short 0758eh                         ; 77 60
    1090010925    xor ah, ah                                ; 30 e4
    1090110926    mov si, ax                                ; 89 c6
    1090210927    add si, ax                                ; 01 c6
    10903     jmp word [cs:si+074b8h]                   ; 2e ff a4 b8 74
     10928    jmp word [cs:si+074e6h]                   ; 2e ff a4 e6 74
    1090410929    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    10905     jnbe short 07563h                         ; 77 52
     10930    jnbe short 07591h                         ; 77 52
    1090610931    mov dx, strict word 00027h                ; ba 27 00
    1090710932    mov ax, cx                                ; 89 c8
    10908     call 01650h                               ; e8 37 a1
     10933    call 01650h                               ; e8 09 a1
    1090910934    test AL, strict byte 080h                 ; a8 80
    10910     jne short 07528h                          ; 75 0b
     10935    jne short 07556h                          ; 75 0b
    1091110936    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1091210937    mov byte [bp+013h], 005h                  ; c6 46 13 05
    10913     jmp near 07849h                           ; e9 21 03
     10938    jmp near 07877h                           ; e9 21 03
    1091410939    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    10915     jne short 07532h                          ; 75 04
     10940    jne short 07560h                          ; 75 04
    1091610941    mov AL, strict byte 0f5h                  ; b0 f5
    10917     jmp short 07534h                          ; eb 02
     10942    jmp short 07562h                          ; eb 02
    1091810943    mov AL, strict byte 0f4h                  ; b0 f4
    1091910944    xor ah, ah                                ; 30 e4
    10920     call 07333h                               ; e8 fa fd
     10945    call 07361h                               ; e8 fa fd
    1092110946    test al, al                               ; 84 c0
    10922     jne short 07566h                          ; 75 29
     10947    jne short 07594h                          ; 75 29
    1092310948    mov dx, ss                                ; 8c d2
    1092410949    lea ax, [bp-008h]                         ; 8d 46 f8
    10925     call 07367h                               ; e8 22 fe
     10950    call 07395h                               ; e8 22 fe
    1092610951    test al, al                               ; 84 c0
    10927     je short 0754fh                           ; 74 06
     10952    je short 0757dh                           ; 74 06
    1092810953    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10929     jne short 07566h                          ; 75 17
    10930     jmp near 07849h                           ; e9 f7 02
     10954    jne short 07594h                          ; 75 17
     10955    jmp near 07877h                           ; e9 f7 02
    1093110956    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1093210957    cmp AL, strict byte 001h                  ; 3c 01
    10933     jc short 0755dh                           ; 72 04
     10958    jc short 0758bh                           ; 72 04
    1093410959    cmp AL, strict byte 008h                  ; 3c 08
    10935     jbe short 07569h                          ; 76 0c
    10936     jmp near 076fbh                           ; e9 9b 01
    10937     jmp near 07836h                           ; e9 d3 02
    10938     jmp near 07841h                           ; e9 db 02
    10939     jmp near 077cdh                           ; e9 64 02
     10960    jbe short 07597h                          ; 76 0c
     10961    jmp near 07729h                           ; e9 9b 01
     10962    jmp near 07864h                           ; e9 d3 02
     10963    jmp near 0786fh                           ; e9 db 02
     10964    jmp near 077fbh                           ; e9 64 02
    1094010965    mov dx, strict word 00027h                ; ba 27 00
    1094110966    mov ax, cx                                ; 89 c8
    10942     call 01650h                               ; e8 df a0
     10967    call 01650h                               ; e8 b1 a0
    1094310968    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1094410969    db  0feh, 0cch
     
    1095010975    mov dx, strict word 00027h                ; ba 27 00
    1095110976    mov ax, cx                                ; 89 c8
    10952     call 0165eh                               ; e8 d7 a0
     10977    call 0165eh                               ; e8 a9 a0
    1095310978    mov dx, strict word 00026h                ; ba 26 00
    1095410979    mov ax, cx                                ; 89 c8
    10955     call 01650h                               ; e8 c1 a0
     10980    call 01650h                               ; e8 93 a0
    1095610981    mov bl, al                                ; 88 c3
    1095710982    and bl, 0f8h                              ; 80 e3 f8
     
    1095910984    mov dx, strict word 00026h                ; ba 26 00
    1096010985    mov ax, cx                                ; 89 c8
    10961     call 0165eh                               ; e8 c0 a0
     10986    call 0165eh                               ; e8 92 a0
    1096210987    mov ax, 000ffh                            ; b8 ff 00
    10963     call 07333h                               ; e8 8f fd
     10988    call 07361h                               ; e8 8f fd
    1096410989    test al, al                               ; 84 c0
    10965     jne short 07566h                          ; 75 be
     10990    jne short 07594h                          ; 75 be
    1096610991    mov dx, ss                                ; 8c d2
    1096710992    lea ax, [bp-004h]                         ; 8d 46 fc
    10968     call 07367h                               ; e8 b7 fd
     10993    call 07395h                               ; e8 b7 fd
    1096910994    mov cl, al                                ; 88 c1
    1097010995    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
    10971     jne short 075c2h                          ; 75 0a
     10996    jne short 075f0h                          ; 75 0a
    1097210997    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1097310998    mov byte [bp+013h], 004h                  ; c6 46 13 04
    10974     jmp short 0754fh                          ; eb 8d
     10999    jmp short 0757dh                          ; eb 8d
    1097511000    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    10976     je short 075d9h                           ; 74 11
     11001    je short 07607h                           ; 74 11
    1097711002    mov al, byte [bp-004h]                    ; 8a 46 fc
    1097811003    xor ah, ah                                ; 30 e4
     
    1098011005    push 00903h                               ; 68 03 09
    1098111006    push strict byte 00007h                   ; 6a 07
    10982     call 01966h                               ; e8 90 a3
     11007    call 01966h                               ; e8 62 a3
    1098311008    add sp, strict byte 00006h                ; 83 c4 06
    1098411009    test cl, cl                               ; 84 c9
    10985     jne short 07566h                          ; 75 89
     11010    jne short 07594h                          ; 75 89
    1098611011    mov dx, ss                                ; 8c d2
    1098711012    lea ax, [bp-008h]                         ; 8d 46 f8
    10988     call 07367h                               ; e8 82 fd
     11013    call 07395h                               ; e8 82 fd
    1098911014    test al, al                               ; 84 c0
    10990     jne short 0763fh                          ; 75 56
     11015    jne short 0766dh                          ; 75 56
    1099111016    mov dx, ss                                ; 8c d2
    1099211017    lea ax, [bp-006h]                         ; 8d 46 fa
    10993     call 07367h                               ; e8 76 fd
     11018    call 07395h                               ; e8 76 fd
    1099411019    test al, al                               ; 84 c0
    10995     jne short 0763fh                          ; 75 4a
     11020    jne short 0766dh                          ; 75 4a
    1099611021    mov al, byte [bp-008h]                    ; 8a 46 f8
    1099711022    mov byte [bp+00ch], al                    ; 88 46 0c
    1099811023    mov al, byte [bp-006h]                    ; 8a 46 fa
    1099911024    mov byte [bp+00dh], al                    ; 88 46 0d
    11000     jmp near 07849h                           ; e9 45 02
     11025    jmp near 07877h                           ; e9 45 02
    1100111026    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1100211027    cmp AL, strict byte 003h                  ; 3c 03
    11003     jc short 0761bh                           ; 72 10
    11004     jbe short 07639h                          ; 76 2c
     11028    jc short 07649h                           ; 72 10
     11029    jbe short 07667h                          ; 76 2c
    1100511030    cmp AL, strict byte 006h                  ; 3c 06
    11006     je short 0764eh                           ; 74 3d
     11031    je short 0767ch                           ; 74 3d
    1100711032    cmp AL, strict byte 005h                  ; 3c 05
    11008     je short 07648h                           ; 74 33
     11033    je short 07676h                           ; 74 33
    1100911034    cmp AL, strict byte 004h                  ; 3c 04
    11010     je short 07642h                           ; 74 29
    11011     jmp short 07654h                          ; eb 39
     11035    je short 07670h                           ; 74 29
     11036    jmp short 07682h                          ; eb 39
    1101211037    cmp AL, strict byte 002h                  ; 3c 02
    11013     je short 07633h                           ; 74 14
     11038    je short 07661h                           ; 74 14
    1101411039    cmp AL, strict byte 001h                  ; 3c 01
    11015     je short 0762dh                           ; 74 0a
     11040    je short 0765bh                           ; 74 0a
    1101611041    test al, al                               ; 84 c0
    11017     jne short 07654h                          ; 75 2d
     11042    jne short 07682h                          ; 75 2d
    1101811043    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
    11019     jmp short 07658h                          ; eb 2b
     11044    jmp short 07686h                          ; eb 2b
    1102011045    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    11021     jmp short 07658h                          ; eb 25
     11046    jmp short 07686h                          ; eb 25
    1102211047    mov byte [bp-008h], 028h                  ; c6 46 f8 28
    11023     jmp short 07658h                          ; eb 1f
     11048    jmp short 07686h                          ; eb 1f
    1102411049    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
    11025     jmp short 07658h                          ; eb 19
    11026     jmp near 077cdh                           ; e9 8b 01
     11050    jmp short 07686h                          ; eb 19
     11051    jmp near 077fbh                           ; e9 8b 01
    1102711052    mov byte [bp-008h], 050h                  ; c6 46 f8 50
    11028     jmp short 07658h                          ; eb 10
     11053    jmp short 07686h                          ; eb 10
    1102911054    mov byte [bp-008h], 064h                  ; c6 46 f8 64
    11030     jmp short 07658h                          ; eb 0a
     11055    jmp short 07686h                          ; eb 0a
    1103111056    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
    11032     jmp short 07658h                          ; eb 04
     11057    jmp short 07686h                          ; eb 04
    1103311058    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1103411059    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    11035     jbe short 0768eh                          ; 76 30
     11060    jbe short 076bch                          ; 76 30
    1103611061    mov ax, 000f3h                            ; b8 f3 00
    11037     call 07333h                               ; e8 cf fc
     11062    call 07361h                               ; e8 cf fc
    1103811063    test al, al                               ; 84 c0
    11039     jne short 07683h                          ; 75 1b
     11064    jne short 076b1h                          ; 75 1b
    1104011065    mov dx, ss                                ; 8c d2
    1104111066    lea ax, [bp-006h]                         ; 8d 46 fa
    11042     call 07367h                               ; e8 f7 fc
     11067    call 07395h                               ; e8 f7 fc
    1104311068    mov al, byte [bp-008h]                    ; 8a 46 f8
    1104411069    xor ah, ah                                ; 30 e4
    11045     call 07333h                               ; e8 bb fc
     11070    call 07361h                               ; e8 bb fc
    1104611071    mov dx, ss                                ; 8c d2
    1104711072    lea ax, [bp-006h]                         ; 8d 46 fa
    11048     call 07367h                               ; e8 e7 fc
    11049     jmp near 07849h                           ; e9 c6 01
     11073    call 07395h                               ; e8 e7 fc
     11074    jmp near 07877h                           ; e9 c6 01
    1105011075    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1105111076    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11052     jmp near 07849h                           ; e9 bb 01
     11077    jmp near 07877h                           ; e9 bb 01
    1105311078    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1105411079    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11055     jmp near 07849h                           ; e9 b0 01
     11080    jmp near 07877h                           ; e9 b0 01
    1105611081    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    11057     jnc short 076fbh                          ; 73 5c
     11082    jnc short 07729h                          ; 73 5c
    1105811083    mov ax, 000e8h                            ; b8 e8 00
    11059     call 07333h                               ; e8 8e fc
     11084    call 07361h                               ; e8 8e fc
    1106011085    test al, al                               ; 84 c0
    11061     jne short 076f1h                          ; 75 48
     11086    jne short 0771fh                          ; 75 48
    1106211087    mov dx, ss                                ; 8c d2
    1106311088    lea ax, [bp-008h]                         ; 8d 46 f8
    11064     call 07367h                               ; e8 b6 fc
     11089    call 07395h                               ; e8 b6 fc
    1106511090    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11066     je short 076c8h                           ; 74 11
     11091    je short 076f6h                           ; 74 11
    1106711092    mov al, byte [bp-008h]                    ; 8a 46 f8
    1106811093    xor ah, ah                                ; 30 e4
     
    1107011095    push 0092eh                               ; 68 2e 09
    1107111096    push strict byte 00007h                   ; 6a 07
    11072     call 01966h                               ; e8 a1 a2
     11097    call 01966h                               ; e8 73 a2
    1107311098    add sp, strict byte 00006h                ; 83 c4 06
    1107411099    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1107511100    xor ah, ah                                ; 30 e4
    11076     call 07333h                               ; e8 63 fc
     11101    call 07361h                               ; e8 63 fc
    1107711102    mov dx, ss                                ; 8c d2
    1107811103    lea ax, [bp-008h]                         ; 8d 46 f8
    11079     call 07367h                               ; e8 8f fc
     11104    call 07395h                               ; e8 8f fc
    1108011105    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11081     je short 0772ah                           ; 74 4c
     11106    je short 07758h                           ; 74 4c
    1108211107    mov al, byte [bp-008h]                    ; 8a 46 f8
    1108311108    xor ah, ah                                ; 30 e4
     
    1108511110    push 0092eh                               ; 68 2e 09
    1108611111    push strict byte 00007h                   ; 6a 07
    11087     call 01966h                               ; e8 7a a2
     11112    call 01966h                               ; e8 4c a2
    1108811113    add sp, strict byte 00006h                ; 83 c4 06
    11089     jmp short 0772ah                          ; eb 39
     11114    jmp short 07758h                          ; eb 39
    1109011115    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1109111116    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11092     jmp short 0772ah                          ; eb 2f
     11117    jmp short 07758h                          ; eb 2f
    1109311118    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1109411119    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11095     jmp short 0772ah                          ; eb 25
     11120    jmp short 07758h                          ; eb 25
    1109611121    mov ax, 000f2h                            ; b8 f2 00
    11097     call 07333h                               ; e8 28 fc
     11122    call 07361h                               ; e8 28 fc
    1109811123    test al, al                               ; 84 c0
    11099     jne short 07722h                          ; 75 13
     11124    jne short 07750h                          ; 75 13
    1110011125    mov dx, ss                                ; 8c d2
    1110111126    lea ax, [bp-008h]                         ; 8d 46 f8
    11102     call 07367h                               ; e8 50 fc
     11127    call 07395h                               ; e8 50 fc
    1110311128    mov dx, ss                                ; 8c d2
    1110411129    lea ax, [bp-006h]                         ; 8d 46 fa
    11105     call 07367h                               ; e8 48 fc
    11106     jmp near 075fbh                           ; e9 d9 fe
     11130    call 07395h                               ; e8 48 fc
     11131    jmp near 07629h                           ; e9 d9 fe
    1110711132    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1110811133    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11109     jmp near 07849h                           ; e9 1c 01
     11134    jmp near 07877h                           ; e9 1c 01
    1111011135    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1111111136    test al, al                               ; 84 c0
    11112     jbe short 0773bh                          ; 76 07
     11137    jbe short 07769h                          ; 76 07
    1111311138    cmp AL, strict byte 002h                  ; 3c 02
    11114     jbe short 077a2h                          ; 76 6a
    11115     jmp near 077d7h                           ; e9 9c 00
     11139    jbe short 077d0h                          ; 76 6a
     11140    jmp near 07805h                           ; e9 9c 00
    1111611141    mov ax, 000e9h                            ; b8 e9 00
    11117     call 07333h                               ; e8 f2 fb
     11142    call 07361h                               ; e8 f2 fb
    1111811143    test al, al                               ; 84 c0
    11119     jne short 077abh                          ; 75 66
     11144    jne short 077d9h                          ; 75 66
    1112011145    mov dx, ss                                ; 8c d2
    1112111146    lea ax, [bp-008h]                         ; 8d 46 f8
    11122     call 07367h                               ; e8 1a fc
     11147    call 07395h                               ; e8 1a fc
    1112311148    mov cl, al                                ; 88 c1
    1112411149    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11125     je short 07766h                           ; 74 11
     11150    je short 07794h                           ; 74 11
    1112611151    mov al, byte [bp-008h]                    ; 8a 46 f8
    1112711152    xor ah, ah                                ; 30 e4
     
    1112911154    push 0092eh                               ; 68 2e 09
    1113011155    push strict byte 00007h                   ; 6a 07
    11131     call 01966h                               ; e8 03 a2
     11156    call 01966h                               ; e8 d5 a1
    1113211157    add sp, strict byte 00006h                ; 83 c4 06
    1113311158    test cl, cl                               ; 84 c9
    11134     jne short 077cdh                          ; 75 63
     11159    jne short 077fbh                          ; 75 63
    1113511160    mov dx, ss                                ; 8c d2
    1113611161    lea ax, [bp-008h]                         ; 8d 46 f8
    11137     call 07367h                               ; e8 f5 fb
     11162    call 07395h                               ; e8 f5 fb
    1113811163    test al, al                               ; 84 c0
    11139     jne short 077cdh                          ; 75 57
     11164    jne short 077fbh                          ; 75 57
    1114011165    mov dx, ss                                ; 8c d2
    1114111166    lea ax, [bp-006h]                         ; 8d 46 fa
    11142     call 07367h                               ; e8 e9 fb
     11167    call 07395h                               ; e8 e9 fb
    1114311168    test al, al                               ; 84 c0
    11144     jne short 077cdh                          ; 75 4b
     11169    jne short 077fbh                          ; 75 4b
    1114511170    mov dx, ss                                ; 8c d2
    1114611171    lea ax, [bp-004h]                         ; 8d 46 fc
    11147     call 07367h                               ; e8 dd fb
     11172    call 07395h                               ; e8 dd fb
    1114811173    test al, al                               ; 84 c0
    11149     jne short 077cdh                          ; 75 3f
     11174    jne short 077fbh                          ; 75 3f
    1115011175    mov al, byte [bp-008h]                    ; 8a 46 f8
    1115111176    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1115411179    mov al, byte [bp-004h]                    ; 8a 46 fc
    1115511180    mov byte [bp+00eh], al                    ; 88 46 0e
    11156     jmp short 0772ah                          ; eb 88
     11181    jmp short 07758h                          ; eb 88
    1115711182    cmp AL, strict byte 001h                  ; 3c 01
    11158     jne short 077adh                          ; 75 07
     11183    jne short 077dbh                          ; 75 07
    1115911184    mov ax, 000e6h                            ; b8 e6 00
    11160     jmp short 077b0h                          ; eb 05
    11161     jmp short 077cdh                          ; eb 20
     11185    jmp short 077deh                          ; eb 05
     11186    jmp short 077fbh                          ; eb 20
    1116211187    mov ax, 000e7h                            ; b8 e7 00
    11163     call 07333h                               ; e8 80 fb
     11188    call 07361h                               ; e8 80 fb
    1116411189    mov cl, al                                ; 88 c1
    1116511190    test cl, cl                               ; 84 c9
    11166     jne short 077c9h                          ; 75 10
     11191    jne short 077f7h                          ; 75 10
    1116711192    mov dx, ss                                ; 8c d2
    1116811193    lea ax, [bp-008h]                         ; 8d 46 f8
    11169     call 07367h                               ; e8 a6 fb
     11194    call 07395h                               ; e8 a6 fb
    1117011195    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11171     je short 077c9h                           ; 74 02
     11196    je short 077f7h                           ; 74 02
    1117211197    mov CL, strict byte 001h                  ; b1 01
    1117311198    test cl, cl                               ; 84 c9
    11174     je short 07834h                           ; 74 67
     11199    je short 07862h                           ; 74 67
    1117511200    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1117611201    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11177     jmp short 07834h                          ; eb 5d
     11202    jmp short 07862h                          ; eb 5d
    1117811203    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1117911204    xor ah, ah                                ; 30 e4
     
    1118111206    push 0095ah                               ; 68 5a 09
    1118211207    push strict byte 00007h                   ; 6a 07
    11183     call 01966h                               ; e8 81 a1
     11208    call 01966h                               ; e8 53 a1
    1118411209    add sp, strict byte 00006h                ; 83 c4 06
    1118511210    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1118611211    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11187     jmp short 07849h                          ; eb 57
     11212    jmp short 07877h                          ; eb 57
    1118811213    mov si, word [bp+00ch]                    ; 8b 76 0c
    1118911214    mov bx, si                                ; 89 f3
    1119011215    mov dx, strict word 00022h                ; ba 22 00
    1119111216    mov ax, cx                                ; 89 c8
    11192     call 0167ah                               ; e8 7b 9e
     11217    call 0167ah                               ; e8 4d 9e
    1119311218    mov bx, word [bp+014h]                    ; 8b 5e 14
    1119411219    mov dx, strict word 00024h                ; ba 24 00
    1119511220    mov ax, cx                                ; 89 c8
    11196     call 0167ah                               ; e8 70 9e
     11221    call 0167ah                               ; e8 42 9e
    1119711222    mov dx, strict word 00027h                ; ba 27 00
    1119811223    mov ax, cx                                ; 89 c8
    11199     call 01650h                               ; e8 3e 9e
     11224    call 01650h                               ; e8 10 9e
    1120011225    mov ah, al                                ; 88 c4
    1120111226    test si, si                               ; 85 f6
    11202     jne short 07826h                          ; 75 0e
     11227    jne short 07854h                          ; 75 0e
    1120311228    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    11204     jne short 07826h                          ; 75 08
     11229    jne short 07854h                          ; 75 08
    1120511230    test AL, strict byte 080h                 ; a8 80
    11206     je short 07828h                           ; 74 06
     11231    je short 07856h                           ; 74 06
    1120711232    and AL, strict byte 07fh                  ; 24 7f
    11208     jmp short 07828h                          ; eb 02
     11233    jmp short 07856h                          ; eb 02
    1120911234    or AL, strict byte 080h                   ; 0c 80
    1121011235    mov bl, al                                ; 88 c3
     
    1121211237    mov dx, strict word 00027h                ; ba 27 00
    1121311238    mov ax, cx                                ; 89 c8
    11214     call 0165eh                               ; e8 2a 9e
    11215     jmp short 07849h                          ; eb 13
     11239    call 0165eh                               ; e8 fc 9d
     11240    jmp short 07877h                          ; eb 13
    1121611241    push 00974h                               ; 68 74 09
    1121711242    push strict byte 00007h                   ; 6a 07
    11218     call 01966h                               ; e8 28 a1
     11243    call 01966h                               ; e8 fa a0
    1121911244    add sp, strict byte 00004h                ; 83 c4 04
    1122011245    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1122111246    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1122211247    mov ax, strict word 00047h                ; b8 47 00
    11223     call 073c4h                               ; e8 75 fb
     11248    call 073f2h                               ; e8 75 fb
    1122411249    lea sp, [bp-002h]                         ; 8d 66 fe
    1122511250    pop si                                    ; 5e
    1122611251    pop bp                                    ; 5d
    1122711252    retn                                      ; c3
    11228 _int17_function:                             ; 0xf7855 LB 0xaf
     11253_int17_function:                             ; 0xf7883 LB 0xaf
    1122911254    push bp                                   ; 55
    1123011255    mov bp, sp                                ; 89 e5
     
    1123611261    add dx, strict byte 00008h                ; 83 c2 08
    1123711262    mov ax, strict word 00040h                ; b8 40 00
    11238     call 0166ch                               ; e8 03 9e
     11263    call 0166ch                               ; e8 d5 9d
    1123911264    mov bx, ax                                ; 89 c3
    1124011265    mov si, ax                                ; 89 c6
    1124111266    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    11242     jnc short 0787fh                          ; 73 0c
     11267    jnc short 078adh                          ; 73 0c
    1124311268    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1124411269    cmp ax, strict word 00003h                ; 3d 03 00
    11245     jnc short 0787fh                          ; 73 04
     11270    jnc short 078adh                          ; 73 04
    1124611271    test bx, bx                               ; 85 db
    11247     jnbe short 07882h                         ; 77 03
    11248     jmp near 078fah                           ; e9 78 00
     11272    jnbe short 078b0h                         ; 77 03
     11273    jmp near 07928h                           ; e9 78 00
    1124911274    mov dx, ax                                ; 89 c2
    1125011275    add dx, strict byte 00078h                ; 83 c2 78
    1125111276    mov ax, strict word 00040h                ; b8 40 00
    11252     call 01650h                               ; e8 c3 9d
     11277    call 01650h                               ; e8 95 9d
    1125311278    xor ah, ah                                ; 30 e4
    1125411279    mov cx, ax                                ; 89 c1
    1125511280    sal cx, 008h                              ; c1 e1 08
    1125611281    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    11257     jne short 078c6h                          ; 75 2c
     11282    jne short 078f4h                          ; 75 2c
    1125811283    mov al, byte [bp+012h]                    ; 8a 46 12
    1125911284    mov dx, bx                                ; 89 da
     
    1127511300    ; sub ah, ah                                ; 2a e4
    1127611301    test AL, strict byte 040h                 ; a8 40
    11277     je short 078c6h                           ; 74 07
     11302    je short 078f4h                           ; 74 07
    1127811303    test cx, cx                               ; 85 c9
    11279     je short 078c6h                           ; 74 03
     11304    je short 078f4h                           ; 74 03
    1128011305    dec cx                                    ; 49
    11281     jmp short 078b5h                          ; eb ef
     11306    jmp short 078e3h                          ; eb ef
    1128211307    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11283     jne short 078e1h                          ; 75 15
     11308    jne short 0790fh                          ; 75 15
    1128411309    lea dx, [si+002h]                         ; 8d 54 02
    1128511310    in AL, DX                                 ; ec
     
    1130011325    mov byte [bp+013h], al                    ; 88 46 13
    1130111326    test cx, cx                               ; 85 c9
    11302     jne short 078f4h                          ; 75 04
     11327    jne short 07922h                          ; 75 04
    1130311328    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1130411329    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11305     jmp short 078feh                          ; eb 04
     11330    jmp short 0792ch                          ; eb 04
    1130611331    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1130711332    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1130911334    pop bp                                    ; 5d
    1131011335    retn                                      ; c3
    11311 wait_:                                       ; 0xf7904 LB 0xaf
     11336wait_:                                       ; 0xf7932 LB 0xaf
    1131211337    push bp                                   ; 55
    1131311338    mov bp, sp                                ; 89 e5
     
    1132711352    mov dx, 0046ch                            ; ba 6c 04
    1132811353    xor ax, ax                                ; 31 c0
    11329     call 01688h                               ; e8 61 9d
     11354    call 01688h                               ; e8 33 9d
    1133011355    mov word [bp-010h], ax                    ; 89 46 f0
    1133111356    mov bx, dx                                ; 89 d3
     
    1133311358    mov dx, 0046ch                            ; ba 6c 04
    1133411359    xor ax, ax                                ; 31 c0
    11335     call 01688h                               ; e8 53 9d
     11360    call 01688h                               ; e8 25 9d
    1133611361    mov word [bp-012h], ax                    ; 89 46 ee
    1133711362    mov di, dx                                ; 89 d7
    1133811363    cmp dx, bx                                ; 39 da
    11339     jnbe short 07945h                         ; 77 07
    11340     jne short 0794ch                          ; 75 0c
     11364    jnbe short 07973h                         ; 77 07
     11365    jne short 0797ah                          ; 75 0c
    1134111366    cmp ax, word [bp-010h]                    ; 3b 46 f0
    11342     jbe short 0794ch                          ; 76 07
     11367    jbe short 0797ah                          ; 76 07
    1134311368    sub ax, word [bp-010h]                    ; 2b 46 f0
    1134411369    sbb dx, bx                                ; 19 da
    11345     jmp short 07957h                          ; eb 0b
     11370    jmp short 07985h                          ; eb 0b
    1134611371    cmp dx, bx                                ; 39 da
    11347     jc short 07957h                           ; 72 07
    11348     jne short 0795bh                          ; 75 09
     11372    jc short 07985h                           ; 72 07
     11373    jne short 07989h                          ; 75 09
    1134911374    cmp ax, word [bp-010h]                    ; 3b 46 f0
    11350     jnc short 0795bh                          ; 73 04
     11375    jnc short 07989h                          ; 73 04
    1135111376    sub si, ax                                ; 29 c6
    1135211377    sbb cx, dx                                ; 19 d1
     
    1135611381    mov ax, 00100h                            ; b8 00 01
    1135711382    int 016h                                  ; cd 16
    11358     je short 0796fh                           ; 74 05
     11383    je short 0799dh                           ; 74 05
    1135911384    mov AL, strict byte 001h                  ; b0 01
    11360     jmp near 07971h                           ; e9 02 00
     11385    jmp near 0799fh                           ; e9 02 00
    1136111386    db  032h, 0c0h
    1136211387    ; xor al, al                                ; 32 c0
    1136311388    test al, al                               ; 84 c0
    11364     je short 07998h                           ; 74 23
     11389    je short 079c6h                           ; 74 23
    1136511390    db  033h, 0c0h
    1136611391    ; xor ax, ax                                ; 33 c0
     
    1137311398    push 00996h                               ; 68 96 09
    1137411399    push strict byte 00004h                   ; 6a 04
    11375     call 01966h                               ; e8 db 9f
     11400    call 01966h                               ; e8 ad 9f
    1137611401    add sp, strict byte 00006h                ; 83 c4 06
    1137711402    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    11378     je short 07998h                           ; 74 04
     11403    je short 079c6h                           ; 74 04
    1137911404    mov al, dl                                ; 88 d0
    11380     jmp short 079aah                          ; eb 12
     11405    jmp short 079d8h                          ; eb 12
    1138111406    test cx, cx                               ; 85 c9
    11382     jnle short 0792ch                         ; 7f 90
    11383     jne short 079a2h                          ; 75 04
     11407    jnle short 0795ah                         ; 7f 90
     11408    jne short 079d0h                          ; 75 04
    1138411409    test si, si                               ; 85 f6
    11385     jnbe short 0792ch                         ; 77 8a
     11410    jnbe short 0795ah                         ; 77 8a
    1138611411    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1138711412    push ax                                   ; 50
     
    1139511420    pop bp                                    ; 5d
    1139611421    retn                                      ; c3
    11397 read_logo_byte_:                             ; 0xf79b3 LB 0x16
     11422read_logo_byte_:                             ; 0xf79e1 LB 0x16
    1139811423    push bp                                   ; 55
    1139911424    mov bp, sp                                ; 89 e5
     
    1141011435    pop bp                                    ; 5d
    1141111436    retn                                      ; c3
    11412 read_logo_word_:                             ; 0xf79c9 LB 0x14
     11437read_logo_word_:                             ; 0xf79f7 LB 0x14
    1141311438    push bp                                   ; 55
    1141411439    mov bp, sp                                ; 89 e5
     
    1142311448    pop bp                                    ; 5d
    1142411449    retn                                      ; c3
    11425 print_detected_harddisks_:                   ; 0xf79dd LB 0x13a
     11450print_detected_harddisks_:                   ; 0xf7a0b LB 0x13a
    1142611451    push bp                                   ; 55
    1142711452    mov bp, sp                                ; 89 e5
     
    1143511460    mov dx, strict word 0000eh                ; ba 0e 00
    1143611461    mov ax, strict word 00040h                ; b8 40 00
    11437     call 0166ch                               ; e8 7c 9c
     11462    call 0166ch                               ; e8 4e 9c
    1143811463    mov si, ax                                ; 89 c6
    1143911464    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     
    1144111466    xor ch, ch                                ; 30 ed
    1144211467    mov dx, 00304h                            ; ba 04 03
    11443     call 01650h                               ; e8 50 9c
     11468    call 01650h                               ; e8 22 9c
    1144411469    mov byte [bp-00ch], al                    ; 88 46 f4
    1144511470    xor bl, bl                                ; 30 db
    1144611471    cmp bl, byte [bp-00ch]                    ; 3a 5e f4
    11447     jnc short 07a67h                          ; 73 5d
     11472    jnc short 07a95h                          ; 73 5d
    1144811473    mov al, bl                                ; 88 d8
    1144911474    xor ah, ah                                ; 30 e4
     
    1145111476    add dx, 00305h                            ; 81 c2 05 03
    1145211477    mov ax, si                                ; 89 f0
    11453     call 01650h                               ; e8 37 9c
     11478    call 01650h                               ; e8 09 9c
    1145411479    mov bh, al                                ; 88 c7
    1145511480    cmp AL, strict byte 00ch                  ; 3c 0c
    11456     jc short 07a44h                           ; 72 25
     11481    jc short 07a72h                           ; 72 25
    1145711482    test cl, cl                               ; 84 c9
    11458     jne short 07a30h                          ; 75 0d
     11483    jne short 07a5eh                          ; 75 0d
    1145911484    push 009a7h                               ; 68 a7 09
    1146011485    push strict byte 00002h                   ; 6a 02
    11461     call 01966h                               ; e8 3b 9f
     11486    call 01966h                               ; e8 0d 9f
    1146211487    add sp, strict byte 00004h                ; 83 c4 04
    1146311488    mov CL, strict byte 001h                  ; b1 01
     
    1146811493    push 009bch                               ; 68 bc 09
    1146911494    push strict byte 00002h                   ; 6a 02
    11470     call 01966h                               ; e8 28 9f
     11495    call 01966h                               ; e8 fa 9e
    1147111496    add sp, strict byte 00006h                ; 83 c4 06
    11472     jmp near 07ae4h                           ; e9 a0 00
     11497    jmp near 07b12h                           ; e9 a0 00
    1147311498    cmp AL, strict byte 008h                  ; 3c 08
    11474     jc short 07a5bh                           ; 72 13
     11499    jc short 07a89h                           ; 72 13
    1147511500    test ch, ch                               ; 84 ed
    11476     jne short 07a59h                          ; 75 0d
     11501    jne short 07a87h                          ; 75 0d
    1147711502    push 009cfh                               ; 68 cf 09
    1147811503    push strict byte 00002h                   ; 6a 02
    11479     call 01966h                               ; e8 12 9f
     11504    call 01966h                               ; e8 e4 9e
    1148011505    add sp, strict byte 00004h                ; 83 c4 04
    1148111506    mov CH, strict byte 001h                  ; b5 01
    11482     jmp short 07a30h                          ; eb d5
     11507    jmp short 07a5eh                          ; eb d5
    1148311508    cmp AL, strict byte 004h                  ; 3c 04
    11484     jnc short 07a7bh                          ; 73 1c
     11509    jnc short 07aa9h                          ; 73 1c
    1148511510    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11486     je short 07a6ah                           ; 74 05
    11487     jmp short 07a7bh                          ; eb 14
    11488     jmp near 07ae9h                           ; e9 7f 00
     11511    je short 07a98h                           ; 74 05
     11512    jmp short 07aa9h                          ; eb 14
     11513    jmp near 07b17h                           ; e9 7f 00
    1148911514    push 009e4h                               ; 68 e4 09
    1149011515    push strict byte 00002h                   ; 6a 02
    11491     call 01966h                               ; e8 f4 9e
     11516    call 01966h                               ; e8 c6 9e
    1149211517    add sp, strict byte 00004h                ; 83 c4 04
    1149311518    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11494     jmp short 07a91h                          ; eb 16
     11519    jmp short 07abfh                          ; eb 16
    1149511520    cmp bh, 004h                              ; 80 ff 04
    11496     jc short 07a91h                           ; 72 11
     11521    jc short 07abfh                           ; 72 11
    1149711522    test cl, cl                               ; 84 c9
    11498     jne short 07a91h                          ; 75 0d
     11523    jne short 07abfh                          ; 75 0d
    1149911524    push 009f6h                               ; 68 f6 09
    1150011525    push strict byte 00002h                   ; 6a 02
    11501     call 01966h                               ; e8 da 9e
     11526    call 01966h                               ; e8 ac 9e
    1150211527    add sp, strict byte 00004h                ; 83 c4 04
    1150311528    mov CL, strict byte 001h                  ; b1 01
     
    1150811533    push 00a0ah                               ; 68 0a 0a
    1150911534    push strict byte 00002h                   ; 6a 02
    11510     call 01966h                               ; e8 c7 9e
     11535    call 01966h                               ; e8 99 9e
    1151111536    add sp, strict byte 00006h                ; 83 c4 06
    1151211537    cmp bh, 004h                              ; 80 ff 04
    11513     jc short 07aaah                           ; 72 03
     11538    jc short 07ad8h                           ; 72 03
    1151411539    sub bh, 004h                              ; 80 ef 04
    1151511540    mov al, bh                                ; 88 f8
     
    1152011545    sar ax, 1                                 ; d1 f8
    1152111546    test ax, ax                               ; 85 c0
    11522     je short 07abch                           ; 74 05
     11547    je short 07aeah                           ; 74 05
    1152311548    push 00a14h                               ; 68 14 0a
    11524     jmp short 07abfh                          ; eb 03
     11549    jmp short 07aedh                          ; eb 03
    1152511550    push 00a1fh                               ; 68 1f 0a
    1152611551    push strict byte 00002h                   ; 6a 02
    11527     call 01966h                               ; e8 a2 9e
     11552    call 01966h                               ; e8 74 9e
    1152811553    add sp, strict byte 00004h                ; 83 c4 04
    1152911554    mov al, bh                                ; 88 f8
     
    1153311558    idiv di                                   ; f7 ff
    1153411559    test dx, dx                               ; 85 d2
    11535     je short 07adah                           ; 74 05
     11560    je short 07b08h                           ; 74 05
    1153611561    push 00a28h                               ; 68 28 0a
    11537     jmp short 07addh                          ; eb 03
     11562    jmp short 07b0bh                          ; eb 03
    1153811563    push 00a2eh                               ; 68 2e 0a
    1153911564    push di                                   ; 57
    11540     call 01966h                               ; e8 85 9e
     11565    call 01966h                               ; e8 57 9e
    1154111566    add sp, strict byte 00004h                ; 83 c4 04
    1154211567    db  0feh, 0c3h
    1154311568    ; inc bl                                    ; fe c3
    11544     jmp near 07a05h                           ; e9 1c ff
     11569    jmp near 07a33h                           ; e9 1c ff
    1154511570    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11546     jne short 07b02h                          ; 75 13
     11571    jne short 07b30h                          ; 75 13
    1154711572    test cl, cl                               ; 84 c9
    11548     jne short 07b02h                          ; 75 0f
     11573    jne short 07b30h                          ; 75 0f
    1154911574    test ch, ch                               ; 84 ed
    11550     jne short 07b02h                          ; 75 0b
     11575    jne short 07b30h                          ; 75 0b
    1155111576    push 00a35h                               ; 68 35 0a
    1155211577    push strict byte 00002h                   ; 6a 02
    11553     call 01966h                               ; e8 67 9e
     11578    call 01966h                               ; e8 39 9e
    1155411579    add sp, strict byte 00004h                ; 83 c4 04
    1155511580    push 00a49h                               ; 68 49 0a
    1155611581    push strict byte 00002h                   ; 6a 02
    11557     call 01966h                               ; e8 5c 9e
     11582    call 01966h                               ; e8 2e 9e
    1155811583    add sp, strict byte 00004h                ; 83 c4 04
    1155911584    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1156511590    pop bp                                    ; 5d
    1156611591    retn                                      ; c3
    11567 get_boot_drive_:                             ; 0xf7b17 LB 0x28
     11592get_boot_drive_:                             ; 0xf7b45 LB 0x28
    1156811593    push bp                                   ; 55
    1156911594    mov bp, sp                                ; 89 e5
     
    1157311598    mov dx, strict word 0000eh                ; ba 0e 00
    1157411599    mov ax, strict word 00040h                ; b8 40 00
    11575     call 0166ch                               ; e8 45 9b
     11600    call 0166ch                               ; e8 17 9b
    1157611601    mov dx, 00304h                            ; ba 04 03
    11577     call 01650h                               ; e8 23 9b
     11602    call 01650h                               ; e8 f5 9a
    1157811603    sub bl, 002h                              ; 80 eb 02
    1157911604    cmp bl, al                                ; 38 c3
    11580     jc short 07b36h                           ; 72 02
     11605    jc short 07b64h                           ; 72 02
    1158111606    mov BL, strict byte 0ffh                  ; b3 ff
    1158211607    mov al, bl                                ; 88 d8
     
    1158611611    pop bp                                    ; 5d
    1158711612    retn                                      ; c3
    11588 show_logo_:                                  ; 0xf7b3f LB 0x231
     11613show_logo_:                                  ; 0xf7b6d LB 0x231
    1158911614    push bp                                   ; 55
    1159011615    mov bp, sp                                ; 89 e5
     
    1159711622    mov dx, strict word 0000eh                ; ba 0e 00
    1159811623    mov ax, strict word 00040h                ; b8 40 00
    11599     call 0166ch                               ; e8 19 9b
     11624    call 0166ch                               ; e8 eb 9a
    1160011625    mov si, ax                                ; 89 c6
    1160111626    xor cl, cl                                ; 30 c9
     
    1160911634    mov al, dl                                ; 88 d0
    1161011635    xor ah, ah                                ; 30 e4
    11611     call 079c9h                               ; e8 5d fe
     11636    call 079f7h                               ; e8 5d fe
    1161211637    cmp ax, 066bbh                            ; 3d bb 66
    11613     jne short 07b83h                          ; 75 12
     11638    jne short 07bb1h                          ; 75 12
    1161411639    push SS                                   ; 16
    1161511640    pop ES                                    ; 07
     
    1161911644    mov word [es:di], bx                      ; 26 89 1d
    1162011645    cmp ax, strict word 0004fh                ; 3d 4f 00
    11621     je short 07b86h                           ; 74 03
    11622     jmp near 07c4eh                           ; e9 c8 00
     11646    je short 07bb4h                           ; 74 03
     11647    jmp near 07c7ch                           ; e9 c8 00
    1162311648    mov al, dl                                ; 88 d0
    1162411649    add AL, strict byte 004h                  ; 04 04
    1162511650    xor ah, ah                                ; 30 e4
    11626     call 079b3h                               ; e8 24 fe
     11651    call 079e1h                               ; e8 24 fe
    1162711652    mov ch, al                                ; 88 c5
    1162811653    mov byte [bp-012h], al                    ; 88 46 ee
     
    1163011655    add AL, strict byte 005h                  ; 04 05
    1163111656    xor ah, ah                                ; 30 e4
    11632     call 079b3h                               ; e8 16 fe
     11657    call 079e1h                               ; e8 16 fe
    1163311658    mov dh, al                                ; 88 c6
    1163411659    mov byte [bp-010h], al                    ; 88 46 f0
     
    1163611661    add AL, strict byte 002h                  ; 04 02
    1163711662    xor ah, ah                                ; 30 e4
    11638     call 079c9h                               ; e8 1e fe
     11663    call 079f7h                               ; e8 1e fe
    1163911664    mov bx, ax                                ; 89 c3
    1164011665    mov word [bp-014h], ax                    ; 89 46 ec
     
    1164211667    add AL, strict byte 006h                  ; 04 06
    1164311668    xor ah, ah                                ; 30 e4
    11644     call 079b3h                               ; e8 fa fd
     11669    call 079e1h                               ; e8 fa fd
    1164511670    mov byte [bp-00eh], al                    ; 88 46 f2
    1164611671    test ch, ch                               ; 84 ed
    11647     jne short 07bc8h                          ; 75 08
     11672    jne short 07bf6h                          ; 75 08
    1164811673    test dh, dh                               ; 84 f6
    11649     jne short 07bc8h                          ; 75 04
     11674    jne short 07bf6h                          ; 75 04
    1165011675    test bx, bx                               ; 85 db
    11651     je short 07b83h                           ; 74 bb
     11676    je short 07bb1h                           ; 74 bb
    1165211677    mov bx, 00142h                            ; bb 42 01
    1165311678    mov ax, 04f02h                            ; b8 02 4f
    1165411679    int 010h                                  ; cd 10
    1165511680    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11656     je short 07bf9h                           ; 74 23
     11681    je short 07c27h                           ; 74 23
    1165711682    xor bx, bx                                ; 31 db
    11658     jmp short 07be0h                          ; eb 06
     11683    jmp short 07c0eh                          ; eb 06
    1165911684    inc bx                                    ; 43
    1166011685    cmp bx, strict byte 00010h                ; 83 fb 10
    11661     jnbe short 07c00h                         ; 77 20
     11686    jnbe short 07c2eh                         ; 77 20
    1166211687    mov ax, bx                                ; 89 d8
    1166311688    or ah, 002h                               ; 80 cc 02
     
    1166611691    xor dx, dx                                ; 31 d2
    1166711692    mov ax, strict word 00001h                ; b8 01 00
    11668     call 07904h                               ; e8 13 fd
     11693    call 07932h                               ; e8 13 fd
    1166911694    cmp AL, strict byte 086h                  ; 3c 86
    11670     jne short 07bdah                          ; 75 e5
     11695    jne short 07c08h                          ; 75 e5
    1167111696    mov CL, strict byte 001h                  ; b1 01
    11672     jmp short 07c00h                          ; eb 07
     11697    jmp short 07c2eh                          ; eb 07
    1167311698    mov ax, 00210h                            ; b8 10 02
    1167411699    mov dx, 003b8h                            ; ba b8 03
    1167511700    out DX, ax                                ; ef
    1167611701    test cl, cl                               ; 84 c9
    11677     jne short 07c16h                          ; 75 12
     11702    jne short 07c44h                          ; 75 12
    1167811703    mov ax, word [bp-014h]                    ; 8b 46 ec
    1167911704    shr ax, 004h                              ; c1 e8 04
    1168011705    mov dx, strict word 00001h                ; ba 01 00
    11681     call 07904h                               ; e8 f4 fc
     11706    call 07932h                               ; e8 f4 fc
    1168211707    cmp AL, strict byte 086h                  ; 3c 86
    11683     jne short 07c16h                          ; 75 02
     11708    jne short 07c44h                          ; 75 02
    1168411709    mov CL, strict byte 001h                  ; b1 01
    1168511710    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11686     je short 07c43h                           ; 74 27
     11711    je short 07c71h                           ; 74 27
    1168711712    test cl, cl                               ; 84 c9
    11688     jne short 07c43h                          ; 75 23
     11713    jne short 07c71h                          ; 75 23
    1168911714    mov bx, strict word 00010h                ; bb 10 00
    11690     jmp short 07c2ah                          ; eb 05
     11715    jmp short 07c58h                          ; eb 05
    1169111716    dec bx                                    ; 4b
    1169211717    test bx, bx                               ; 85 db
    11693     jbe short 07c4eh                          ; 76 24
     11718    jbe short 07c7ch                          ; 76 24
    1169411719    mov ax, bx                                ; 89 d8
    1169511720    or ah, 002h                               ; 80 cc 02
     
    1169811723    xor dx, dx                                ; 31 d2
    1169911724    mov ax, strict word 00001h                ; b8 01 00
    11700     call 07904h                               ; e8 c9 fc
     11725    call 07932h                               ; e8 c9 fc
    1170111726    cmp AL, strict byte 086h                  ; 3c 86
    11702     jne short 07c25h                          ; 75 e6
     11727    jne short 07c53h                          ; 75 e6
    1170311728    mov CL, strict byte 001h                  ; b1 01
    11704     jmp short 07c4eh                          ; eb 0b
     11729    jmp short 07c7ch                          ; eb 0b
    1170511730    test cl, cl                               ; 84 c9
    11706     jne short 07c4eh                          ; 75 07
     11731    jne short 07c7ch                          ; 75 07
    1170711732    mov ax, 00200h                            ; b8 00 02
    1170811733    mov dx, 003b8h                            ; ba b8 03
     
    1171111736    mov dx, 0037dh                            ; ba 7d 03
    1171211737    mov ax, si                                ; 89 f0
    11713     call 0165eh                               ; e8 06 9a
     11738    call 0165eh                               ; e8 d8 99
    1171411739    mov AL, strict byte 003h                  ; b0 03
    1171511740    mov AH, strict byte 000h                  ; b4 00
    1171611741    int 010h                                  ; cd 10
    1171711742    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11718     je short 07c78h                           ; 74 14
     11743    je short 07ca6h                           ; 74 14
    1171911744    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11720     jne short 07c9fh                          ; 75 35
     11745    jne short 07ccdh                          ; 75 35
    1172111746    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11722     jne short 07c9fh                          ; 75 2f
     11747    jne short 07ccdh                          ; 75 2f
    1172311748    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    11724     je short 07c7bh                           ; 74 05
    11725     jmp short 07c9fh                          ; eb 27
    11726     jmp near 07d53h                           ; e9 d8 00
     11749    je short 07ca9h                           ; 74 05
     11750    jmp short 07ccdh                          ; eb 27
     11751    jmp near 07d81h                           ; e9 d8 00
    1172711752    cmp byte [bp-00eh], 002h                  ; 80 7e f2 02
    11728     jne short 07c8ch                          ; 75 0b
     11753    jne short 07cbah                          ; 75 0b
    1172911754    push 00a4bh                               ; 68 4b 0a
    1173011755    push strict byte 00002h                   ; 6a 02
    11731     call 01966h                               ; e8 dd 9c
     11756    call 01966h                               ; e8 af 9c
    1173211757    add sp, strict byte 00004h                ; 83 c4 04
    1173311758    test cl, cl                               ; 84 c9
    11734     jne short 07c9fh                          ; 75 0f
     11759    jne short 07ccdh                          ; 75 0f
    1173511760    mov dx, strict word 00001h                ; ba 01 00
    1173611761    mov ax, 000c0h                            ; b8 c0 00
    11737     call 07904h                               ; e8 6b fc
     11762    call 07932h                               ; e8 6b fc
    1173811763    cmp AL, strict byte 086h                  ; 3c 86
    11739     jne short 07c9fh                          ; 75 02
     11764    jne short 07ccdh                          ; 75 02
    1174011765    mov CL, strict byte 001h                  ; b1 01
    1174111766    test cl, cl                               ; 84 c9
    11742     je short 07c78h                           ; 74 d5
     11767    je short 07ca6h                           ; 74 d5
    1174311768    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    1174411769    mov ax, 00100h                            ; b8 00 01
     
    1175911784    push 00a6dh                               ; 68 6d 0a
    1176011785    push strict byte 00002h                   ; 6a 02
    11761     call 01966h                               ; e8 9a 9c
     11786    call 01966h                               ; e8 6c 9c
    1176211787    add sp, strict byte 00004h                ; 83 c4 04
    11763     call 079ddh                               ; e8 0b fd
     11788    call 07a0bh                               ; e8 0b fd
    1176411789    push 00ab1h                               ; 68 b1 0a
    1176511790    push strict byte 00002h                   ; 6a 02
    11766     call 01966h                               ; e8 8c 9c
     11791    call 01966h                               ; e8 5e 9c
    1176711792    add sp, strict byte 00004h                ; 83 c4 04
    1176811793    mov dx, strict word 00001h                ; ba 01 00
    1176911794    mov ax, strict word 00040h                ; b8 40 00
    11770     call 07904h                               ; e8 1e fc
     11795    call 07932h                               ; e8 1e fc
    1177111796    mov bl, al                                ; 88 c3
    1177211797    test al, al                               ; 84 c0
    11773     je short 07cddh                           ; 74 f1
     11798    je short 07d0bh                           ; 74 f1
    1177411799    cmp AL, strict byte 030h                  ; 3c 30
    11775     je short 07d40h                           ; 74 50
     11800    je short 07d6eh                           ; 74 50
    1177611801    cmp bl, 002h                              ; 80 fb 02
    11777     jc short 07d19h                           ; 72 24
     11802    jc short 07d47h                           ; 72 24
    1177811803    cmp bl, 009h                              ; 80 fb 09
    11779     jnbe short 07d19h                         ; 77 1f
     11804    jnbe short 07d47h                         ; 77 1f
    1178011805    mov al, bl                                ; 88 d8
    1178111806    xor ah, ah                                ; 30 e4
    11782     call 07b17h                               ; e8 16 fe
     11807    call 07b45h                               ; e8 16 fe
    1178311808    cmp AL, strict byte 0ffh                  ; 3c ff
    11784     jne short 07d07h                          ; 75 02
    11785     jmp short 07cddh                          ; eb d6
     11809    jne short 07d35h                          ; 75 02
     11810    jmp short 07d0bh                          ; eb d6
    1178611811    mov bl, al                                ; 88 c3
    1178711812    xor bh, bh                                ; 30 ff
    1178811813    mov dx, 0037ch                            ; ba 7c 03
    1178911814    mov ax, si                                ; 89 f0
    11790     call 0165eh                               ; e8 4b 99
     11815    call 0165eh                               ; e8 1d 99
    1179111816    mov byte [bp-00ch], 002h                  ; c6 46 f4 02
    11792     jmp short 07d40h                          ; eb 27
     11817    jmp short 07d6eh                          ; eb 27
    1179311818    cmp bl, 02eh                              ; 80 fb 2e
    11794     je short 07d2eh                           ; 74 10
     11819    je short 07d5ch                           ; 74 10
    1179511820    cmp bl, 026h                              ; 80 fb 26
    11796     je short 07d34h                           ; 74 11
     11821    je short 07d62h                           ; 74 11
    1179711822    cmp bl, 021h                              ; 80 fb 21
    11798     jne short 07d3ah                          ; 75 12
     11823    jne short 07d68h                          ; 75 12
    1179911824    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11800     jmp short 07d40h                          ; eb 12
     11825    jmp short 07d6eh                          ; eb 12
    1180111826    mov byte [bp-00ch], 003h                  ; c6 46 f4 03
    11802     jmp short 07d40h                          ; eb 0c
     11827    jmp short 07d6eh                          ; eb 0c
    1180311828    mov byte [bp-00ch], 004h                  ; c6 46 f4 04
    11804     jmp short 07d40h                          ; eb 06
     11829    jmp short 07d6eh                          ; eb 06
    1180511830    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11806     je short 07cddh                           ; 74 9d
     11831    je short 07d0bh                           ; 74 9d
    1180711832    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    1180811833    xor bh, bh                                ; 30 ff
    1180911834    mov dx, 0037dh                            ; ba 7d 03
    1181011835    mov ax, si                                ; 89 f0
    11811     call 0165eh                               ; e8 11 99
     11836    call 0165eh                               ; e8 e3 98
    1181211837    mov AL, strict byte 003h                  ; b0 03
    1181311838    mov AH, strict byte 000h                  ; b4 00
     
    1182211847    push DS                                   ; 1e
    1182311848    mov ds, ax                                ; 8e d8
    11824     call 0edbfh                               ; e8 5b 70
     11849    call 0edbfh                               ; e8 2d 70
    1182511850    pop DS                                    ; 1f
    1182611851    pop bp                                    ; 5d
     
    1183311858    pop bp                                    ; 5d
    1183411859    retn                                      ; c3
    11835 delay_boot_:                                 ; 0xf7d70 LB 0x6b
     11860delay_boot_:                                 ; 0xf7d9e LB 0x6b
    1183611861    push bp                                   ; 55
    1183711862    mov bp, sp                                ; 89 e5
     
    1184311868    mov dx, ax                                ; 89 c2
    1184411869    test ax, ax                               ; 85 c0
    11845     je short 07dd1h                           ; 74 53
     11870    je short 07dffh                           ; 74 53
    1184611871    mov AL, strict byte 034h                  ; b0 34
    1184711872    out strict byte 043h, AL                  ; e6 43
     
    1185311878    push 00afbh                               ; 68 fb 0a
    1185411879    push strict byte 00002h                   ; 6a 02
    11855     call 01966h                               ; e8 d3 9b
     11880    call 01966h                               ; e8 a5 9b
    1185611881    add sp, strict byte 00006h                ; 83 c4 06
    1185711882    mov bx, dx                                ; 89 d3
    1185811883    test bx, bx                               ; 85 db
    11859     jbe short 07db3h                          ; 76 17
     11884    jbe short 07de1h                          ; 76 17
    1186011885    push bx                                   ; 53
    1186111886    push 00b19h                               ; 68 19 0b
    1186211887    push strict byte 00002h                   ; 6a 02
    11863     call 01966h                               ; e8 c1 9b
     11888    call 01966h                               ; e8 93 9b
    1186411889    add sp, strict byte 00006h                ; 83 c4 06
    1186511890    xor dx, dx                                ; 31 d2
    1186611891    mov ax, strict word 00040h                ; b8 40 00
    11867     call 07904h                               ; e8 54 fb
     11892    call 07932h                               ; e8 54 fb
    1186811893    dec bx                                    ; 4b
    11869     jmp short 07d98h                          ; eb e5
     11894    jmp short 07dc6h                          ; eb e5
    1187011895    push 00a49h                               ; 68 49 0a
    1187111896    push strict byte 00002h                   ; 6a 02
    11872     call 01966h                               ; e8 ab 9b
     11897    call 01966h                               ; e8 7d 9b
    1187311898    add sp, strict byte 00004h                ; 83 c4 04
    1187411899    mov AL, strict byte 034h                  ; b0 34
     
    1188111906    push DS                                   ; 1e
    1188211907    mov ds, ax                                ; 8e d8
    11883     call 0edbfh                               ; e8 f0 6f
     11908    call 0edbfh                               ; e8 c2 6f
    1188411909    pop DS                                    ; 1f
    1188511910    pop bp                                    ; 5d
     
    1189211917    pop bp                                    ; 5d
    1189311918    retn                                      ; c3
    11894 scsi_cmd_data_in_:                           ; 0xf7ddb LB 0xd5
     11919scsi_cmd_data_in_:                           ; 0xf7e09 LB 0xd5
    1189511920    push bp                                   ; 55
    1189611921    mov bp, sp                                ; 89 e5
     
    1190811933    ; sub ah, ah                                ; 2a e4
    1190911934    test AL, strict byte 001h                 ; a8 01
    11910     jne short 07df1h                          ; 75 f7
     11935    jne short 07e1fh                          ; 75 f7
    1191111936    mov al, byte [bp+004h]                    ; 8a 46 04
    1191211937    cmp AL, strict byte 010h                  ; 3c 10
    11913     jne short 07e05h                          ; 75 04
     11938    jne short 07e33h                          ; 75 04
    1191411939    xor ax, ax                                ; 31 c0
    11915     jmp short 07e07h                          ; eb 02
     11940    jmp short 07e35h                          ; eb 02
    1191611941    xor ah, ah                                ; 30 e4
    1191711942    mov di, ax                                ; 89 c7
     
    1192111946    shr dx, 1                                 ; d1 ea
    1192211947    rcr ax, 1                                 ; d1 d8
    11923     loop 07e11h                               ; e2 fa
     11948    loop 07e3fh                               ; e2 fa
    1192411949    mov cx, ax                                ; 89 c1
    1192511950    and cx, 000f0h                            ; 81 e1 f0 00
     
    1193911964    shr dx, 1                                 ; d1 ea
    1194011965    rcr ax, 1                                 ; d1 d8
    11941     loop 07e36h                               ; e2 fa
     11966    loop 07e64h                               ; e2 fa
    1194211967    mov dx, si                                ; 89 f2
    1194311968    out DX, AL                                ; ee
     
    1194611971    xor ah, ah                                ; 30 e4
    1194711972    cmp cx, ax                                ; 39 c1
    11948     jnc short 07e58h                          ; 73 0e
     11973    jnc short 07e86h                          ; 73 0e
    1194911974    les di, [bp-00ah]                         ; c4 7e f6
    1195011975    add di, cx                                ; 01 cf
     
    1195311978    out DX, AL                                ; ee
    1195411979    inc cx                                    ; 41
    11955     jmp short 07e41h                          ; eb e9
     11980    jmp short 07e6fh                          ; eb e9
    1195611981    mov dx, si                                ; 89 f2
    1195711982    in AL, DX                                 ; ec
     
    1195911984    ; sub ah, ah                                ; 2a e4
    1196011985    test AL, strict byte 001h                 ; a8 01
    11961     jne short 07e58h                          ; 75 f7
     11986    jne short 07e86h                          ; 75 f7
    1196211987    test AL, strict byte 002h                 ; a8 02
    11963     je short 07e73h                           ; 74 0e
     11988    je short 07ea1h                           ; 74 0e
    1196411989    lea dx, [si+003h]                         ; 8d 54 03
    1196511990    xor al, al                                ; 30 c0
     
    1196911994    ; sub ah, ah                                ; 2a e4
    1197011995    mov di, strict word 00004h                ; bf 04 00
    11971     jmp short 07ea5h                          ; eb 32
     11996    jmp short 07ed3h                          ; eb 32
    1197211997    lea dx, [si+001h]                         ; 8d 54 01
    1197311998    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11974     jne short 07e82h                          ; 75 06
     11999    jne short 07eb0h                          ; 75 06
    1197512000    cmp bx, 08000h                            ; 81 fb 00 80
    11976     jbe short 07e9ch                          ; 76 1a
     12001    jbe short 07ecah                          ; 76 1a
    1197712002    mov cx, 08000h                            ; b9 00 80
    1197812003    les di, [bp+006h]                         ; c4 7e 06
     
    1198312008    add ax, 00800h                            ; 05 00 08
    1198412009    mov word [bp+008h], ax                    ; 89 46 08
    11985     jmp short 07e73h                          ; eb d7
     12010    jmp short 07ea1h                          ; eb d7
    1198612011    mov cx, bx                                ; 89 d9
    1198712012    les di, [bp+006h]                         ; c4 7e 06
     
    1199412019    pop bp                                    ; 5d
    1199512020    retn 0000ah                               ; c2 0a 00
    11996 scsi_cmd_data_out_:                          ; 0xf7eb0 LB 0xd5
     12021scsi_cmd_data_out_:                          ; 0xf7ede LB 0xd5
    1199712022    push bp                                   ; 55
    1199812023    mov bp, sp                                ; 89 e5
     
    1201012035    ; sub ah, ah                                ; 2a e4
    1201112036    test AL, strict byte 001h                 ; a8 01
    12012     jne short 07ec6h                          ; 75 f7
     12037    jne short 07ef4h                          ; 75 f7
    1201312038    mov al, byte [bp+004h]                    ; 8a 46 04
    1201412039    cmp AL, strict byte 010h                  ; 3c 10
    12015     jne short 07edah                          ; 75 04
     12040    jne short 07f08h                          ; 75 04
    1201612041    xor ax, ax                                ; 31 c0
    12017     jmp short 07edch                          ; eb 02
     12042    jmp short 07f0ah                          ; eb 02
    1201812043    xor ah, ah                                ; 30 e4
    1201912044    mov si, ax                                ; 89 c6
     
    1202312048    shr dx, 1                                 ; d1 ea
    1202412049    rcr ax, 1                                 ; d1 d8
    12025     loop 07ee6h                               ; e2 fa
     12050    loop 07f14h                               ; e2 fa
    1202612051    mov cx, ax                                ; 89 c1
    1202712052    and cx, 000f0h                            ; 81 e1 f0 00
     
    1204112066    shr dx, 1                                 ; d1 ea
    1204212067    rcr ax, 1                                 ; d1 d8
    12043     loop 07f0bh                               ; e2 fa
     12068    loop 07f39h                               ; e2 fa
    1204412069    mov dx, di                                ; 89 fa
    1204512070    out DX, AL                                ; ee
     
    1204812073    xor ah, ah                                ; 30 e4
    1204912074    cmp cx, ax                                ; 39 c1
    12050     jnc short 07f2dh                          ; 73 0e
     12075    jnc short 07f5bh                          ; 73 0e
    1205112076    les si, [bp-00ah]                         ; c4 76 f6
    1205212077    add si, cx                                ; 01 ce
     
    1205512080    out DX, AL                                ; ee
    1205612081    inc cx                                    ; 41
    12057     jmp short 07f16h                          ; eb e9
     12082    jmp short 07f44h                          ; eb e9
    1205812083    lea dx, [di+001h]                         ; 8d 55 01
    1205912084    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12060     jne short 07f3ch                          ; 75 06
     12085    jne short 07f6ah                          ; 75 06
    1206112086    cmp bx, 08000h                            ; 81 fb 00 80
    12062     jbe short 07f57h                          ; 76 1b
     12087    jbe short 07f85h                          ; 76 1b
    1206312088    mov cx, 08000h                            ; b9 00 80
    1206412089    les si, [bp+006h]                         ; c4 76 06
     
    1207012095    add ax, 00800h                            ; 05 00 08
    1207112096    mov word [bp+008h], ax                    ; 89 46 08
    12072     jmp short 07f2dh                          ; eb d6
     12097    jmp short 07f5bh                          ; eb d6
    1207312098    mov cx, bx                                ; 89 d9
    1207412099    les si, [bp+006h]                         ; c4 76 06
     
    1208012105    ; sub ah, ah                                ; 2a e4
    1208112106    test AL, strict byte 001h                 ; a8 01
    12082     jne short 07f5fh                          ; 75 f7
     12107    jne short 07f8dh                          ; 75 f7
    1208312108    test AL, strict byte 002h                 ; a8 02
    12084     je short 07f7ah                           ; 74 0e
     12109    je short 07fa8h                           ; 74 0e
    1208512110    lea dx, [di+003h]                         ; 8d 55 03
    1208612111    xor al, al                                ; 30 c0
     
    1209012115    ; sub ah, ah                                ; 2a e4
    1209112116    mov ax, strict word 00004h                ; b8 04 00
    12092     jmp short 07f7ch                          ; eb 02
     12117    jmp short 07faah                          ; eb 02
    1209312118    xor ax, ax                                ; 31 c0
    1209412119    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1209712122    pop bp                                    ; 5d
    1209812123    retn 0000ah                               ; c2 0a 00
    12099 @scsi_read_sectors:                          ; 0xf7f85 LB 0xe0
     12124@scsi_read_sectors:                          ; 0xf7fb3 LB 0xe0
    1210012125    push bp                                   ; 55
    1210112126    mov bp, sp                                ; 89 e5
     
    1210912134    mov byte [bp-006h], al                    ; 88 46 fa
    1211012135    cmp AL, strict byte 004h                  ; 3c 04
    12111     jbe short 07fb1h                          ; 76 11
     12136    jbe short 07fdfh                          ; 76 11
    1211212137    xor ah, ah                                ; 30 e4
    1211312138    push ax                                   ; 50
     
    1211512140    push 00b30h                               ; 68 30 0b
    1211612141    push strict byte 00007h                   ; 6a 07
    12117     call 01966h                               ; e8 b8 99
     12142    call 01966h                               ; e8 8a 99
    1211812143    add sp, strict byte 00008h                ; 83 c4 08
    1211912144    mov es, [bp+006h]                         ; 8e 46 06
     
    1215512180    sal word [bp-00ah], 1                     ; d1 66 f6
    1215612181    rcl word [bp-008h], 1                     ; d1 56 f8
    12157     loop 0801bh                               ; e2 f8
     12182    loop 08049h                               ; e2 f8
    1215812183    push word [bp-008h]                       ; ff 76 f8
    1215912184    push word [bp-00ah]                       ; ff 76 f6
     
    1216412189    mov cx, ss                                ; 8c d1
    1216512190    lea bx, [bp-01ah]                         ; 8d 5e e6
    12166     call 07ddbh                               ; e8 9e fd
     12191    call 07e09h                               ; e8 9e fd
    1216712192    mov ah, al                                ; 88 c4
    1216812193    test al, al                               ; 84 c0
    12169     jne short 08058h                          ; 75 15
     12194    jne short 08086h                          ; 75 15
    1217012195    mov es, [bp+006h]                         ; 8e 46 06
    1217112196    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1218112206    pop bp                                    ; 5d
    1218212207    retn 00004h                               ; c2 04 00
    12183 @scsi_write_sectors:                         ; 0xf8065 LB 0xe0
     12208@scsi_write_sectors:                         ; 0xf8093 LB 0xe0
    1218412209    push bp                                   ; 55
    1218512210    mov bp, sp                                ; 89 e5
     
    1219312218    mov byte [bp-006h], al                    ; 88 46 fa
    1219412219    cmp AL, strict byte 004h                  ; 3c 04
    12195     jbe short 08091h                          ; 76 11
     12220    jbe short 080bfh                          ; 76 11
    1219612221    xor ah, ah                                ; 30 e4
    1219712222    push ax                                   ; 50
     
    1219912224    push 00b30h                               ; 68 30 0b
    1220012225    push strict byte 00007h                   ; 6a 07
    12201     call 01966h                               ; e8 d8 98
     12226    call 01966h                               ; e8 aa 98
    1220212227    add sp, strict byte 00008h                ; 83 c4 08
    1220312228    mov es, [bp+006h]                         ; 8e 46 06
     
    1223912264    sal word [bp-00ah], 1                     ; d1 66 f6
    1224012265    rcl word [bp-008h], 1                     ; d1 56 f8
    12241     loop 080fbh                               ; e2 f8
     12266    loop 08129h                               ; e2 f8
    1224212267    push word [bp-008h]                       ; ff 76 f8
    1224312268    push word [bp-00ah]                       ; ff 76 f6
     
    1224812273    mov cx, ss                                ; 8c d1
    1224912274    lea bx, [bp-01ah]                         ; 8d 5e e6
    12250     call 07eb0h                               ; e8 93 fd
     12275    call 07edeh                               ; e8 93 fd
    1225112276    mov ah, al                                ; 88 c4
    1225212277    test al, al                               ; 84 c0
    12253     jne short 08138h                          ; 75 15
     12278    jne short 08166h                          ; 75 15
    1225412279    mov es, [bp+006h]                         ; 8e 46 06
    1225512280    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1226512290    pop bp                                    ; 5d
    1226612291    retn 00004h                               ; c2 04 00
    12267 scsi_cmd_packet_:                            ; 0xf8145 LB 0x168
     12292scsi_cmd_packet_:                            ; 0xf8173 LB 0x168
    1226812293    push bp                                   ; 55
    1226912294    mov bp, sp                                ; 89 e5
     
    1227712302    mov dx, strict word 0000eh                ; ba 0e 00
    1227812303    mov ax, strict word 00040h                ; b8 40 00
    12279     call 0166ch                               ; e8 0b 95
     12304    call 0166ch                               ; e8 dd 94
    1228012305    mov si, 00122h                            ; be 22 01
    1228112306    mov word [bp-00ah], ax                    ; 89 46 f6
    1228212307    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12283     jne short 0818ch                          ; 75 1f
     12308    jne short 081bah                          ; 75 1f
    1228412309    mov bx, 00da0h                            ; bb a0 0d
    1228512310    mov cx, ds                                ; 8c d9
    1228612311    mov ax, strict word 00004h                ; b8 04 00
    12287     call 01923h                               ; e8 ab 97
     12312    call 01923h                               ; e8 7d 97
    1228812313    push 00b62h                               ; 68 62 0b
    1228912314    push 00b72h                               ; 68 72 0b
    1229012315    push strict byte 00004h                   ; 6a 04
    12291     call 01966h                               ; e8 e3 97
     12316    call 01966h                               ; e8 b5 97
    1229212317    add sp, strict byte 00006h                ; 83 c4 06
    1229312318    mov dx, strict word 00001h                ; ba 01 00
    12294     jmp near 082a2h                           ; e9 16 01
     12319    jmp near 082d0h                           ; e9 16 01
    1229512320    sub di, strict byte 00008h                ; 83 ef 08
    1229612321    sal di, 002h                              ; c1 e7 02
     
    1230612331    ; sub ah, ah                                ; 2a e4
    1230712332    test AL, strict byte 001h                 ; a8 01
    12308     jne short 081a8h                          ; 75 f7
     12333    jne short 081d6h                          ; 75 f7
    1230912334    xor ax, ax                                ; 31 c0
    1231012335    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1232212347    shr dx, 1                                 ; d1 ea
    1232312348    rcr ax, 1                                 ; d1 d8
    12324     loop 081d3h                               ; e2 fa
     12349    loop 08201h                               ; e2 fa
    1232512350    and ax, 000f0h                            ; 25 f0 00
    1232612351    mov cl, byte [bp-006h]                    ; 8a 4e fa
     
    1234112366    shr dx, 1                                 ; d1 ea
    1234212367    rcr ax, 1                                 ; d1 d8
    12343     loop 081fbh                               ; e2 fa
     12368    loop 08229h                               ; e2 fa
    1234412369    mov dx, bx                                ; 89 da
    1234512370    out DX, AL                                ; ee
     
    1234812373    xor ah, ah                                ; 30 e4
    1234912374    cmp cx, ax                                ; 39 c1
    12350     jnc short 0821dh                          ; 73 0e
     12375    jnc short 0824bh                          ; 73 0e
    1235112376    les di, [bp-00eh]                         ; c4 7e f2
    1235212377    add di, cx                                ; 01 cf
     
    1235512380    out DX, AL                                ; ee
    1235612381    inc cx                                    ; 41
    12357     jmp short 08206h                          ; eb e9
     12382    jmp short 08234h                          ; eb e9
    1235812383    mov dx, bx                                ; 89 da
    1235912384    in AL, DX                                 ; ec
     
    1236112386    ; sub ah, ah                                ; 2a e4
    1236212387    test AL, strict byte 001h                 ; a8 01
    12363     jne short 0821dh                          ; 75 f7
     12388    jne short 0824bh                          ; 75 f7
    1236412389    test AL, strict byte 002h                 ; a8 02
    12365     je short 08238h                           ; 74 0e
     12390    je short 08266h                           ; 74 0e
    1236612391    lea dx, [bx+003h]                         ; 8d 57 03
    1236712392    xor al, al                                ; 30 c0
     
    1237112396    ; sub ah, ah                                ; 2a e4
    1237212397    mov dx, strict word 00003h                ; ba 03 00
    12373     jmp short 082a2h                          ; eb 6a
     12398    jmp short 082d0h                          ; eb 6a
    1237412399    mov ax, word [bp+004h]                    ; 8b 46 04
    1237512400    test ax, ax                               ; 85 c0
    12376     je short 08247h                           ; 74 08
     12401    je short 08275h                           ; 74 08
    1237712402    lea dx, [bx+001h]                         ; 8d 57 01
    1237812403    mov cx, ax                                ; 89 c1
    1237912404    in AL, DX                                 ; ec
    12380     loop 08244h                               ; e2 fd
     12405    loop 08272h                               ; e2 fd
    1238112406    mov ax, word [bp+006h]                    ; 8b 46 06
    1238212407    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1238612411    lea ax, [bx+001h]                         ; 8d 47 01
    1238712412    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12388     jne short 08268h                          ; 75 07
     12413    jne short 08296h                          ; 75 07
    1238912414    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12390     jbe short 08285h                          ; 76 1d
     12415    jbe short 082b3h                          ; 76 1d
    1239112416    mov dx, ax                                ; 89 c2
    1239212417    mov cx, 08000h                            ; b9 00 80
     
    1239812423    add ax, 00800h                            ; 05 00 08
    1239912424    mov word [bp+00eh], ax                    ; 89 46 0e
    12400     jmp short 08258h                          ; eb d3
     12425    jmp short 08286h                          ; eb d3
    1240112426    mov dx, ax                                ; 89 c2
    1240212427    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1240512430    mov es, [bp-00ah]                         ; 8e 46 f6
    1240612431    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12407     je short 082a0h                           ; 74 07
     12432    je short 082ceh                           ; 74 07
    1240812433    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1240912434    in AL, DX                                 ; ec
    12410     loop 0829dh                               ; e2 fd
     12435    loop 082cbh                               ; e2 fd
    1241112436    xor dx, dx                                ; 31 d2
    1241212437    mov ax, dx                                ; 89 d0
     
    1241612441    pop bp                                    ; 5d
    1241712442    retn 0000ch                               ; c2 0c 00
    12418 scsi_enumerate_attached_devices_:            ; 0xf82ad LB 0x4a6
     12443scsi_enumerate_attached_devices_:            ; 0xf82db LB 0x4a6
    1241912444    push bp                                   ; 55
    1242012445    mov bp, sp                                ; 89 e5
     
    1242812453    mov dx, strict word 0000eh                ; ba 0e 00
    1242912454    mov ax, strict word 00040h                ; b8 40 00
    12430     call 0166ch                               ; e8 a9 93
     12455    call 0166ch                               ; e8 7b 93
    1243112456    mov di, 00122h                            ; bf 22 01
    1243212457    mov word [bp-020h], ax                    ; 89 46 e0
    1243312458    mov word [bp-022h], strict word 00000h    ; c7 46 de 00 00
    12434     jmp near 086d1h                           ; e9 00 04
     12459    jmp near 086ffh                           ; e9 00 04
    1243512460    cmp AL, strict byte 004h                  ; 3c 04
    12436     jc short 082d8h                           ; 72 03
    12437     jmp near 08749h                           ; e9 71 04
     12461    jc short 08306h                           ; 72 03
     12462    jmp near 08777h                           ; e9 71 04
    1243812463    mov cx, strict word 00010h                ; b9 10 00
    1243912464    xor bx, bx                                ; 31 db
    1244012465    mov dx, ss                                ; 8c d2
    1244112466    lea ax, [bp-046h]                         ; 8d 46 ba
    12442     call 0a000h                               ; e8 1b 1d
     12467    call 0a030h                               ; e8 1d 1d
    1244312468    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
    1244412469    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     
    1245512480    lea bx, [bp-046h]                         ; 8d 5e ba
    1245612481    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12457     call 07ddbh                               ; e8 cd fa
     12482    call 07e09h                               ; e8 cd fa
    1245812483    test al, al                               ; 84 c0
    12459     je short 08320h                           ; 74 0e
     12484    je short 0834eh                           ; 74 0e
    1246012485    push 00b92h                               ; 68 92 0b
    1246112486    push 00bcbh                               ; 68 cb 0b
    1246212487    push strict byte 00007h                   ; 6a 07
    12463     call 01966h                               ; e8 49 96
     12488    call 01966h                               ; e8 1b 96
    1246412489    add sp, strict byte 00006h                ; 83 c4 06
    1246512490    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
     
    1249312518    sal ax, 1                                 ; d1 e0
    1249412519    rcl dx, 1                                 ; d1 d2
    12495     loop 0836fh                               ; e2 fa
     12520    loop 0839dh                               ; e2 fa
    1249612521    or bx, ax                                 ; 09 c3
    1249712522    or dx, si                                 ; 09 f2
     
    1250112526    mov word [bp-028h], bx                    ; 89 5e d8
    1250212527    test dx, dx                               ; 85 d2
    12503     jne short 0838eh                          ; 75 06
     12528    jne short 083bch                          ; 75 06
    1250412529    cmp bx, 00200h                            ; 81 fb 00 02
    12505     je short 083aeh                           ; 74 20
     12530    je short 083dch                           ; 74 20
    1250612531    mov bx, 00da0h                            ; bb a0 0d
    1250712532    mov cx, ds                                ; 8c d9
    1250812533    mov ax, strict word 00004h                ; b8 04 00
    12509     call 01923h                               ; e8 8a 95
     12534    call 01923h                               ; e8 5c 95
    1251012535    push dx                                   ; 52
    1251112536    push word [bp-028h]                       ; ff 76 d8
     
    1251312538    push 00beah                               ; 68 ea 0b
    1251412539    push strict byte 00004h                   ; 6a 04
    12515     call 01966h                               ; e8 be 95
     12540    call 01966h                               ; e8 90 95
    1251612541    add sp, strict byte 0000ah                ; 83 c4 0a
    12517     jmp near 086c5h                           ; e9 17 03
     12542    jmp near 086f3h                           ; e9 17 03
    1251812543    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1251912544    cmp AL, strict byte 001h                  ; 3c 01
    12520     jc short 083c1h                           ; 72 0c
    12521     jbe short 083c9h                          ; 76 12
     12545    jc short 083efh                           ; 72 0c
     12546    jbe short 083f7h                          ; 76 12
    1252212547    cmp AL, strict byte 003h                  ; 3c 03
    12523     je short 083d1h                           ; 74 16
     12548    je short 083ffh                           ; 74 16
    1252412549    cmp AL, strict byte 002h                  ; 3c 02
    12525     je short 083cdh                           ; 74 0e
    12526     jmp short 0841ah                          ; eb 59
     12550    je short 083fbh                           ; 74 0e
     12551    jmp short 08448h                          ; eb 59
    1252712552    test al, al                               ; 84 c0
    12528     jne short 0841ah                          ; 75 55
     12553    jne short 08448h                          ; 75 55
    1252912554    mov BL, strict byte 090h                  ; b3 90
    12530     jmp short 083d3h                          ; eb 0a
     12555    jmp short 08401h                          ; eb 0a
    1253112556    mov BL, strict byte 098h                  ; b3 98
    12532     jmp short 083d3h                          ; eb 06
     12557    jmp short 08401h                          ; eb 06
    1253312558    mov BL, strict byte 0a0h                  ; b3 a0
    12534     jmp short 083d3h                          ; eb 02
     12559    jmp short 08401h                          ; eb 02
    1253512560    mov BL, strict byte 0a8h                  ; b3 a8
    1253612561    mov cl, bl                                ; 88 d9
     
    1253812563    xor ch, ch                                ; 30 ed
    1253912564    mov ax, cx                                ; 89 c8
    12540     call 016ach                               ; e8 cd 92
     12565    call 016ach                               ; e8 9f 92
    1254112566    test al, al                               ; 84 c0
    12542     je short 0841ah                           ; 74 37
     12567    je short 08448h                           ; 74 37
    1254312568    mov al, bl                                ; 88 d8
    1254412569    db  0feh, 0c0h
    1254512570    ; inc al                                    ; fe c0
    1254612571    xor ah, ah                                ; 30 e4
    12547     call 016ach                               ; e8 c0 92
     12572    call 016ach                               ; e8 92 92
    1254812573    xor ah, ah                                ; 30 e4
    1254912574    mov dx, ax                                ; 89 c2
    1255012575    sal dx, 008h                              ; c1 e2 08
    1255112576    mov al, bl                                ; 88 d8
    12552     call 016ach                               ; e8 b4 92
     12577    call 016ach                               ; e8 86 92
    1255312578    xor ah, ah                                ; 30 e4
    1255412579    add ax, dx                                ; 01 d0
     
    1255812583    add AL, strict byte 002h                  ; 04 02
    1255912584    xor ah, ah                                ; 30 e4
    12560     call 016ach                               ; e8 a4 92
     12585    call 016ach                               ; e8 76 92
    1256112586    xor ah, ah                                ; 30 e4
    1256212587    mov word [bp-018h], ax                    ; 89 46 e8
    1256312588    mov ax, cx                                ; 89 c8
    12564     call 016ach                               ; e8 9a 92
     12589    call 016ach                               ; e8 6c 92
    1256512590    xor ah, ah                                ; 30 e4
    1256612591    mov word [bp-026h], ax                    ; 89 46 da
    12567     jmp near 08508h                           ; e9 ee 00
     12592    jmp near 08536h                           ; e9 ee 00
    1256812593    mov ax, word [bp-012h]                    ; 8b 46 ee
    1256912594    mov bx, word [bp-010h]                    ; 8b 5e f0
     
    1257112596    mov dx, word [bp-014h]                    ; 8b 56 ec
    1257212597    mov si, strict word 0000ch                ; be 0c 00
    12573     call 09fe0h                               ; e8 b4 1b
     12598    call 0a010h                               ; e8 b6 1b
    1257412599    mov word [bp-02ah], ax                    ; 89 46 d6
    1257512600    mov word [bp-016h], bx                    ; 89 5e ea
     
    1257812603    mov ax, word [bp-012h]                    ; 8b 46 ee
    1257912604    test ax, ax                               ; 85 c0
    12580     jnbe short 08454h                         ; 77 15
    12581     je short 08444h                           ; 74 03
    12582     jmp near 084c9h                           ; e9 85 00
     12605    jnbe short 08482h                         ; 77 15
     12606    je short 08472h                           ; 74 03
     12607    jmp near 084f7h                           ; e9 85 00
    1258312608    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    12584     jnbe short 08454h                         ; 77 0a
    12585     jne short 08441h                          ; 75 f5
     12609    jnbe short 08482h                         ; 77 0a
     12610    jne short 0846fh                          ; 75 f5
    1258612611    cmp word [bp-01ch], strict byte 00040h    ; 83 7e e4 40
    12587     jnbe short 08454h                         ; 77 02
    12588     jne short 084c9h                          ; 75 75
     12612    jnbe short 08482h                         ; 77 02
     12613    jne short 084f7h                          ; 75 75
    1258912614    mov word [bp-018h], 000ffh                ; c7 46 e8 ff 00
    1259012615    mov word [bp-026h], strict word 0003fh    ; c7 46 da 3f 00
     
    1259312618    mov dx, word [bp-014h]                    ; 8b 56 ec
    1259412619    mov si, strict word 00006h                ; be 06 00
    12595     call 09fe0h                               ; e8 73 1b
     12620    call 0a010h                               ; e8 75 1b
    1259612621    mov si, word [bp-01eh]                    ; 8b 76 e2
    1259712622    add si, dx                                ; 01 d6
     
    1261112636    mov dx, si                                ; 89 f2
    1261212637    mov si, strict word 00008h                ; be 08 00
    12613     call 09fe0h                               ; e8 43 1b
     12638    call 0a010h                               ; e8 45 1b
    1261412639    mov word [bp-02eh], bx                    ; 89 5e d2
    1261512640    mov word [bp-030h], cx                    ; 89 4e d0
     
    1262012645    mov dx, word [bp-036h]                    ; 8b 56 ca
    1262112646    mov si, strict word 00010h                ; be 10 00
    12622     call 09fe0h                               ; e8 28 1b
     12647    call 0a010h                               ; e8 2a 1b
    1262312648    mov si, word [bp-032h]                    ; 8b 76 ce
    1262412649    add si, dx                                ; 01 d6
     
    1262712652    mov ax, word [bp-02eh]                    ; 8b 46 d2
    1262812653    adc ax, bx                                ; 11 d8
    12629     jmp short 08508h                          ; eb 3f
     12654    jmp short 08536h                          ; eb 3f
    1263012655    test ax, ax                               ; 85 c0
    12631     jnbe short 084dfh                         ; 77 12
    12632     jne short 084ebh                          ; 75 1c
     12656    jnbe short 0850dh                         ; 77 12
     12657    jne short 08519h                          ; 75 1c
    1263312658    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    12634     jnbe short 084dfh                         ; 77 0a
    12635     jne short 084ebh                          ; 75 14
     12659    jnbe short 0850dh                         ; 77 0a
     12660    jne short 08519h                          ; 75 14
    1263612661    cmp word [bp-01ch], strict byte 00020h    ; 83 7e e4 20
    12637     jnbe short 084dfh                         ; 77 02
    12638     jne short 084ebh                          ; 75 0c
     12662    jnbe short 0850dh                         ; 77 02
     12663    jne short 08519h                          ; 75 0c
    1263912664    mov word [bp-018h], 00080h                ; c7 46 e8 80 00
    1264012665    mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
    12641     jmp short 08504h                          ; eb 19
     12666    jmp short 08532h                          ; eb 19
    1264212667    mov word [bp-018h], strict word 00040h    ; c7 46 e8 40 00
    1264312668    mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
     
    1264612671    mov dx, word [bp-014h]                    ; 8b 56 ec
    1264712672    mov si, strict word 0000bh                ; be 0b 00
    12648     call 09fe0h                               ; e8 dc 1a
     12673    call 0a010h                               ; e8 de 1a
    1264912674    mov si, dx                                ; 89 d6
    1265012675    mov dx, cx                                ; 89 ca
     
    1268112706    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1268212707    test dx, dx                               ; 85 d2
    12683     jne short 0857ah                          ; 75 06
     12708    jne short 085a8h                          ; 75 06
    1268412709    cmp si, 00400h                            ; 81 fe 00 04
    12685     jbe short 08588h                          ; 76 0e
     12710    jbe short 085b6h                          ; 76 0e
    1268612711    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1268712712    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12688     jmp short 08590h                          ; eb 08
     12713    jmp short 085beh                          ; eb 08
    1268912714    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1269012715    mov word [es:bx+032h], si                 ; 26 89 77 32
     
    1269212717    mov cx, ds                                ; 8c d9
    1269312718    mov ax, strict word 00004h                ; b8 04 00
    12694     call 01923h                               ; e8 88 93
     12719    call 01923h                               ; e8 5a 93
    1269512720    push word [bp-012h]                       ; ff 76 ee
    1269612721    push word [bp-010h]                       ; ff 76 f0
     
    1270712732    push 00c18h                               ; 68 18 0c
    1270812733    push strict byte 00004h                   ; 6a 04
    12709     call 01966h                               ; e8 a6 93
     12734    call 01966h                               ; e8 78 93
    1271012735    add sp, strict byte 00018h                ; 83 c4 18
    1271112736    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    1273512760    mov dx, strict word 00075h                ; ba 75 00
    1273612761    mov ax, strict word 00040h                ; b8 40 00
    12737     call 01650h                               ; e8 3c 90
     12762    call 01650h                               ; e8 0e 90
    1273812763    mov bl, al                                ; 88 c3
    1273912764    db  0feh, 0c3h
     
    1274212767    mov dx, strict word 00075h                ; ba 75 00
    1274312768    mov ax, strict word 00040h                ; b8 40 00
    12744     call 0165eh                               ; e8 3b 90
     12769    call 0165eh                               ; e8 0d 90
    1274512770    inc byte [bp-00ch]                        ; fe 46 f4
    12746     jmp near 086bah                           ; e9 91 00
     12771    jmp near 086e8h                           ; e9 91 00
    1274712772    mov bx, 00da0h                            ; bb a0 0d
    1274812773    mov cx, ds                                ; 8c d9
    1274912774    mov ax, strict word 00004h                ; b8 04 00
    12750     call 01923h                               ; e8 ef 92
     12775    call 01923h                               ; e8 c1 92
    1275112776    push word [bp-022h]                       ; ff 76 de
    1275212777    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1275512780    push 00c46h                               ; 68 46 0c
    1275612781    push strict byte 00004h                   ; 6a 04
    12757     call 01966h                               ; e8 21 93
     12782    call 01966h                               ; e8 f3 92
    1275812783    add sp, strict byte 00008h                ; 83 c4 08
    1275912784    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1276112786    mov byte [bp-00eh], al                    ; 88 46 f2
    1276212787    test byte [bp-00245h], 080h               ; f6 86 bb fd 80
    12763     je short 0865ch                           ; 74 05
     12788    je short 0868ah                           ; 74 05
    1276412789    mov dx, strict word 00001h                ; ba 01 00
    12765     jmp short 0865eh                          ; eb 02
     12790    jmp short 0868ch                          ; eb 02
    1276612791    xor dx, dx                                ; 31 d2
    1276712792    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1279912824    inc word [bp-022h]                        ; ff 46 de
    1280012825    cmp word [bp-022h], strict byte 00010h    ; 83 7e de 10
    12801     jl short 086d1h                           ; 7c 03
    12802     jmp near 08749h                           ; e9 78 00
     12826    jl short 086ffh                           ; 7c 03
     12827    jmp near 08777h                           ; e9 78 00
    1280312828    mov byte [bp-046h], 012h                  ; c6 46 ba 12
    1280412829    xor al, al                                ; 30 c0
     
    1281912844    lea bx, [bp-046h]                         ; 8d 5e ba
    1282012845    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12821     call 07ddbh                               ; e8 d7 f6
     12846    call 07e09h                               ; e8 d7 f6
    1282212847    test al, al                               ; 84 c0
    12823     je short 08716h                           ; 74 0e
     12848    je short 08744h                           ; 74 0e
    1282412849    push 00b92h                               ; 68 92 0b
    1282512850    push 00bb2h                               ; 68 b2 0b
    1282612851    push strict byte 00007h                   ; 6a 07
    12827     call 01966h                               ; e8 53 92
     12852    call 01966h                               ; e8 25 92
    1282812853    add sp, strict byte 00006h                ; 83 c4 06
    1282912854    mov es, [bp-020h]                         ; 8e 46 e0
     
    1283112856    mov byte [bp-00ch], al                    ; 88 46 f4
    1283212857    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12833     jne short 08732h                          ; 75 0a
     12858    jne short 08760h                          ; 75 0a
    1283412859    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
    12835     jne short 08732h                          ; 75 03
    12836     jmp near 082d1h                           ; e9 9f fb
     12860    jne short 08760h                          ; 75 03
     12861    jmp near 082ffh                           ; e9 9f fb
    1283712862    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12838     jne short 086bah                          ; 75 81
     12863    jne short 086e8h                          ; 75 81
    1283912864    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
    1284012865    and AL, strict byte 01fh                  ; 24 1f
    1284112866    cmp AL, strict byte 005h                  ; 3c 05
    12842     jne short 08746h                          ; 75 03
    12843     jmp near 08629h                           ; e9 e3 fe
    12844     jmp near 086bah                           ; e9 71 ff
     12867    jne short 08774h                          ; 75 03
     12868    jmp near 08657h                           ; e9 e3 fe
     12869    jmp near 086e8h                           ; e9 71 ff
    1284512870    lea sp, [bp-00ah]                         ; 8d 66 f6
    1284612871    pop di                                    ; 5f
     
    1285112876    pop bp                                    ; 5d
    1285212877    retn                                      ; c3
    12853 _scsi_init:                                  ; 0xf8753 LB 0x66
     12878_scsi_init:                                  ; 0xf8781 LB 0x66
    1285412879    push bp                                   ; 55
    1285512880    mov bp, sp                                ; 89 e5
    1285612881    mov dx, strict word 0000eh                ; ba 0e 00
    1285712882    mov ax, strict word 00040h                ; b8 40 00
    12858     call 0166ch                               ; e8 0d 8f
     12883    call 0166ch                               ; e8 df 8e
    1285912884    mov bx, 00122h                            ; bb 22 01
    1286012885    mov es, ax                                ; 8e c0
     
    1286712892    ; sub ah, ah                                ; 2a e4
    1286812893    cmp AL, strict byte 055h                  ; 3c 55
    12869     jne short 08783h                          ; 75 0c
     12894    jne short 087b1h                          ; 75 0c
    1287012895    xor al, al                                ; 30 c0
    1287112896    mov dx, 00433h                            ; ba 33 04
    1287212897    out DX, AL                                ; ee
    1287312898    mov ax, 00430h                            ; b8 30 04
    12874     call 082adh                               ; e8 2a fb
     12899    call 082dbh                               ; e8 2a fb
    1287512900    mov AL, strict byte 055h                  ; b0 55
    1287612901    mov dx, 00436h                            ; ba 36 04
     
    1288012905    ; sub ah, ah                                ; 2a e4
    1288112906    cmp AL, strict byte 055h                  ; 3c 55
    12882     jne short 0879ch                          ; 75 0c
     12907    jne short 087cah                          ; 75 0c
    1288312908    xor al, al                                ; 30 c0
    1288412909    mov dx, 00437h                            ; ba 37 04
    1288512910    out DX, AL                                ; ee
    1288612911    mov ax, 00434h                            ; b8 34 04
    12887     call 082adh                               ; e8 11 fb
     12912    call 082dbh                               ; e8 11 fb
    1288812913    mov AL, strict byte 055h                  ; b0 55
    1288912914    mov dx, 0043ah                            ; ba 3a 04
     
    1289312918    ; sub ah, ah                                ; 2a e4
    1289412919    cmp AL, strict byte 055h                  ; 3c 55
    12895     jne short 087b5h                          ; 75 0c
     12920    jne short 087e3h                          ; 75 0c
    1289612921    xor al, al                                ; 30 c0
    1289712922    mov dx, 0043bh                            ; ba 3b 04
    1289812923    out DX, AL                                ; ee
    1289912924    mov ax, 00438h                            ; b8 38 04
    12900     call 082adh                               ; e8 f8 fa
     12925    call 082dbh                               ; e8 f8 fa
    1290112926    mov sp, bp                                ; 89 ec
    1290212927    pop bp                                    ; 5d
    1290312928    retn                                      ; c3
    12904 ahci_ctrl_extract_bits_:                     ; 0xf87b9 LB 0x1c
     12929ahci_ctrl_extract_bits_:                     ; 0xf87e7 LB 0x1c
    1290512930    push si                                   ; 56
    1290612931    push bp                                   ; 55
     
    1291112936    mov cl, byte [bp+006h]                    ; 8a 4e 06
    1291212937    xor ch, ch                                ; 30 ed
    12913     jcxz 087d0h                               ; e3 06
     12938    jcxz 087feh                               ; e3 06
    1291412939    shr dx, 1                                 ; d1 ea
    1291512940    rcr ax, 1                                 ; d1 d8
    12916     loop 087cah                               ; e2 fa
     12941    loop 087f8h                               ; e2 fa
    1291712942    pop bp                                    ; 5d
    1291812943    pop si                                    ; 5e
    1291912944    retn 00002h                               ; c2 02 00
    12920 ahci_addr_to_phys_:                          ; 0xf87d5 LB 0x1e
     12945ahci_addr_to_phys_:                          ; 0xf8803 LB 0x1e
    1292112946    push bx                                   ; 53
    1292212947    push cx                                   ; 51
     
    1292912954    sal ax, 1                                 ; d1 e0
    1293012955    rcl dx, 1                                 ; d1 d2
    12931     loop 087e3h                               ; e2 fa
     12956    loop 08811h                               ; e2 fa
    1293212957    xor cx, cx                                ; 31 c9
    1293312958    add ax, bx                                ; 01 d8
     
    1293712962    pop bx                                    ; 5b
    1293812963    retn                                      ; c3
    12939 ahci_port_cmd_sync_:                         ; 0xf87f3 LB 0x156
     12964ahci_port_cmd_sync_:                         ; 0xf8821 LB 0x156
    1294012965    push bp                                   ; 55
    1294112966    mov bp, sp                                ; 89 e5
     
    1295212977    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1295312978    cmp AL, strict byte 0ffh                  ; 3c ff
    12954     jne short 08816h                          ; 75 03
    12955     jmp near 08941h                           ; e9 2b 01
     12979    jne short 08844h                          ; 75 03
     12980    jmp near 0896fh                           ; e9 2b 01
    1295612981    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    1295712982    xor ah, ah                                ; 30 e4
     
    1296612991    lea ax, [si+00080h]                       ; 8d 84 80 00
    1296712992    mov dx, cx                                ; 89 ca
    12968     call 087d5h                               ; e8 92 ff
     12993    call 08803h                               ; e8 92 ff
    1296912994    mov es, cx                                ; 8e c1
    1297012995    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1303213057    xchg dx, ax                               ; 92
    1303313058    test dh, 040h                             ; f6 c6 40
    13034     jne short 088d4h                          ; 75 04
     13059    jne short 08902h                          ; 75 04
    1303513060    test AL, strict byte 001h                 ; a8 01
    13036     je short 088d8h                           ; 74 04
     13061    je short 08906h                           ; 74 04
    1303713062    mov AL, strict byte 001h                  ; b0 01
    13038     jmp short 088dah                          ; eb 02
     13063    jmp short 08908h                          ; eb 02
    1303913064    xor al, al                                ; 30 c0
    1304013065    test al, al                               ; 84 c0
    13041     je short 088a7h                           ; 74 c9
     13066    je short 088d5h                           ; 74 c9
    1304213067    mov al, byte [bp-008h]                    ; 8a 46 f8
    1304313068    xor ah, ah                                ; 30 e4
     
    1309513120    pop bp                                    ; 5d
    1309613121    retn                                      ; c3
    13097 ahci_cmd_data_:                              ; 0xf8949 LB 0x267
     13122ahci_cmd_data_:                              ; 0xf8977 LB 0x267
    1309813123    push bp                                   ; 55
    1309913124    mov bp, sp                                ; 89 e5
     
    1312013145    mov ax, 00080h                            ; b8 80 00
    1312113146    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13122     call 0a000h                               ; e8 79 16
     13147    call 0a030h                               ; e8 7b 16
    1312313148    mov es, [bp-00ah]                         ; 8e 46 f6
    1312413149    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1313813163    mov dx, word [es:si]                      ; 26 8b 14
    1313913164    mov si, strict word 00008h                ; be 08 00
    13140     call 09fe0h                               ; e8 15 16
     13165    call 0a010h                               ; e8 17 16
    1314113166    mov es, [bp-00ah]                         ; 8e 46 f6
    1314213167    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1314913174    mov dx, word [es:si]                      ; 26 8b 14
    1315013175    mov si, strict word 00010h                ; be 10 00
    13151     call 09fe0h                               ; e8 ef 15
     13176    call 0a010h                               ; e8 f1 15
    1315213177    mov es, [bp-00ah]                         ; 8e 46 f6
    1315313178    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1316113186    mov dx, word [es:si]                      ; 26 8b 14
    1316213187    mov si, strict word 00018h                ; be 18 00
    13163     call 09fe0h                               ; e8 c3 15
     13188    call 0a010h                               ; e8 c5 15
    1316413189    mov es, [bp-00ah]                         ; 8e 46 f6
    1316513190    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1317213197    mov dx, word [es:si]                      ; 26 8b 14
    1317313198    mov si, strict word 00020h                ; be 20 00
    13174     call 09fe0h                               ; e8 9d 15
     13199    call 0a010h                               ; e8 9f 15
    1317513200    mov es, [bp-00ah]                         ; 8e 46 f6
    1317613201    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1318313208    mov dx, word [es:si]                      ; 26 8b 14
    1318413209    mov si, strict word 00028h                ; be 28 00
    13185     call 09fe0h                               ; e8 77 15
     13210    call 0a010h                               ; e8 79 15
    1318613211    mov es, [bp-00ah]                         ; 8e 46 f6
    1318713212    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1319713222    mov bx, word [bp-010h]                    ; 8b 5e f0
    1319813223    xor cx, cx                                ; 31 c9
    13199     call 09f90h                               ; e8 f2 14
     13224    call 09fc0h                               ; e8 f4 14
    1320013225    push dx                                   ; 52
    1320113226    push ax                                   ; 50
     
    1320713232    mov ax, 0026ah                            ; b8 6a 02
    1320813233    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13209     call 09ee5h                               ; e8 2b 14
     13234    call 09f13h                               ; e8 2b 14
    1321013235    mov es, [bp-00ah]                         ; 8e 46 f6
    1321113236    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1323013255    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1323113256    test ax, ax                               ; 85 c0
    13232     je short 08b4ch                           ; 74 3b
     13257    je short 08b7ah                           ; 74 3b
    1323313258    dec ax                                    ; 48
    1323413259    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1324813273    mov al, byte [bp-008h]                    ; 8a 46 f8
    1324913274    cmp AL, strict byte 035h                  ; 3c 35
    13250     jne short 08b59h                          ; 75 06
     13275    jne short 08b87h                          ; 75 06
    1325113276    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13252     jmp short 08b70h                          ; eb 17
     13277    jmp short 08b9eh                          ; eb 17
    1325313278    cmp AL, strict byte 0a0h                  ; 3c a0
    13254     jne short 08b6ch                          ; 75 0f
     13279    jne short 08b9ah                          ; 75 0f
    1325513280    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1325613281    les bx, [bp-00eh]                         ; c4 5e f2
    1325713282    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13258     jmp short 08b70h                          ; eb 04
     13283    jmp short 08b9eh                          ; eb 04
    1325913284    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1326013285    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1326313288    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1326413289    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13265     call 087f3h                               ; e8 71 fc
     13290    call 08821h                               ; e8 71 fc
    1326613291    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1326713292    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1327013295    add ax, 0026ah                            ; 05 6a 02
    1327113296    mov dx, cx                                ; 89 ca
    13272     call 09f5ch                               ; e8 c5 13
     13297    call 09f8ah                               ; e8 c5 13
    1327313298    mov es, cx                                ; 8e c1
    1327413299    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1327513300    test al, al                               ; 84 c0
    13276     je short 08ba6h                           ; 74 05
     13301    je short 08bd4h                           ; 74 05
    1327713302    mov ax, strict word 00004h                ; b8 04 00
    13278     jmp short 08ba8h                          ; eb 02
     13303    jmp short 08bd6h                          ; eb 02
    1327913304    xor ah, ah                                ; 30 e4
    1328013305    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1328413309    pop bp                                    ; 5d
    1328513310    retn                                      ; c3
    13286 ahci_port_deinit_current_:                   ; 0xf8bb0 LB 0x180
     13311ahci_port_deinit_current_:                   ; 0xf8bde LB 0x180
    1328713312    push bp                                   ; 55
    1328813313    mov bp, sp                                ; 89 e5
     
    1329913324    mov byte [bp-00ah], al                    ; 88 46 f6
    1330013325    cmp AL, strict byte 0ffh                  ; 3c ff
    13301     je short 08c31h                           ; 74 5f
     13326    je short 08c5fh                           ; 74 5f
    1330213327    xor ah, ah                                ; 30 e4
    1330313328    sal ax, 007h                              ; c1 e0 07
     
    1334313368    xchg dx, ax                               ; 92
    1334413369    test ax, 0c011h                           ; a9 11 c0
    13345     je short 08c34h                           ; 74 07
     13370    je short 08c62h                           ; 74 07
    1334613371    mov AL, strict byte 001h                  ; b0 01
    13347     jmp short 08c36h                          ; eb 05
    13348     jmp near 08d27h                           ; e9 f3 00
     13372    jmp short 08c64h                          ; eb 05
     13373    jmp near 08d55h                           ; e9 f3 00
    1334913374    xor al, al                                ; 30 c0
    1335013375    cmp AL, strict byte 001h                  ; 3c 01
    13351     je short 08c04h                           ; 74 ca
     13376    je short 08c32h                           ; 74 ca
    1335213377    mov cx, strict word 00020h                ; b9 20 00
    1335313378    xor bx, bx                                ; 31 db
    1335413379    mov ax, di                                ; 89 f8
    1335513380    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13356     call 0a000h                               ; e8 b9 13
     13381    call 0a030h                               ; e8 bb 13
    1335713382    lea ax, [di+00080h]                       ; 8d 85 80 00
    1335813383    mov cx, strict word 00040h                ; b9 40 00
    1335913384    xor bx, bx                                ; 31 db
    1336013385    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13361     call 0a000h                               ; e8 aa 13
     13386    call 0a030h                               ; e8 ac 13
    1336213387    lea ax, [di+00200h]                       ; 8d 85 00 02
    1336313388    mov cx, strict word 00060h                ; b9 60 00
    1336413389    xor bx, bx                                ; 31 db
    1336513390    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13366     call 0a000h                               ; e8 9b 13
     13391    call 0a030h                               ; e8 9d 13
    1336713392    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1336813393    xor ah, ah                                ; 30 e4
     
    1346913494    pop bp                                    ; 5d
    1347013495    retn                                      ; c3
    13471 ahci_port_init_:                             ; 0xf8d30 LB 0x24d
     13496ahci_port_init_:                             ; 0xf8d5e LB 0x24d
    1347213497    push bp                                   ; 55
    1347313498    mov bp, sp                                ; 89 e5
     
    1347913504    mov word [bp-00ah], dx                    ; 89 56 f6
    1348013505    mov byte [bp-008h], bl                    ; 88 5e f8
    13481     call 08bb0h                               ; e8 6c fe
     13506    call 08bdeh                               ; e8 6c fe
    1348213507    mov al, bl                                ; 88 d8
    1348313508    xor ah, ah                                ; 30 e4
     
    1352813553    xchg dx, ax                               ; 92
    1352913554    test ax, 0c011h                           ; a9 11 c0
    13530     je short 08db5h                           ; 74 04
     13555    je short 08de3h                           ; 74 04
    1353113556    mov AL, strict byte 001h                  ; b0 01
    13532     jmp short 08db7h                          ; eb 02
     13557    jmp short 08de5h                          ; eb 02
    1353313558    xor al, al                                ; 30 c0
    1353413559    cmp AL, strict byte 001h                  ; 3c 01
    13535     je short 08d80h                           ; 74 c5
     13560    je short 08daeh                           ; 74 c5
    1353613561    mov cx, strict word 00020h                ; b9 20 00
    1353713562    xor bx, bx                                ; 31 db
    1353813563    mov ax, si                                ; 89 f0
    1353913564    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13540     call 0a000h                               ; e8 38 12
     13565    call 0a030h                               ; e8 3a 12
    1354113566    lea ax, [si+00080h]                       ; 8d 84 80 00
    1354213567    mov cx, strict word 00040h                ; b9 40 00
    1354313568    xor bx, bx                                ; 31 db
    1354413569    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13545     call 0a000h                               ; e8 29 12
     13570    call 0a030h                               ; e8 2b 12
    1354613571    lea di, [si+00200h]                       ; 8d bc 00 02
    1354713572    mov cx, strict word 00060h                ; b9 60 00
     
    1354913574    mov ax, di                                ; 89 f8
    1355013575    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13551     call 0a000h                               ; e8 18 12
     13576    call 0a030h                               ; e8 1a 12
    1355213577    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1355313578    xor bh, bh                                ; 30 ff
     
    1356713592    mov ax, di                                ; 89 f8
    1356813593    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13569     call 087d5h                               ; e8 bf f9
     13594    call 08803h                               ; e8 bf f9
    1357013595    mov es, [bp-00ah]                         ; 8e 46 f6
    1357113596    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1361213637    mov ax, si                                ; 89 f0
    1361313638    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13614     call 087d5h                               ; e8 53 f9
     13639    call 08803h                               ; e8 53 f9
    1361513640    mov es, [bp-00ah]                         ; 8e 46 f6
    1361613641    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1371713742    pop bp                                    ; 5d
    1371813743    retn                                      ; c3
    13719 @ahci_read_sectors:                          ; 0xf8f7d LB 0xa8
     13744@ahci_read_sectors:                          ; 0xf8fab LB 0xa8
    1372013745    push bp                                   ; 55
    1372113746    mov bp, sp                                ; 89 e5
     
    1372813753    sub bx, strict byte 0000ch                ; 83 eb 0c
    1372913754    cmp bx, strict byte 00004h                ; 83 fb 04
    13730     jbe short 08fa3h                          ; 76 0f
     13755    jbe short 08fd1h                          ; 76 0f
    1373113756    push bx                                   ; 53
    1373213757    push 00c62h                               ; 68 62 0c
    1373313758    push 00c74h                               ; 68 74 0c
    1373413759    push strict byte 00007h                   ; 6a 07
    13735     call 01966h                               ; e8 c6 89
     13760    call 01966h                               ; e8 98 89
    1373613761    add sp, strict byte 00008h                ; 83 c4 08
    1373713762    xor di, di                                ; 31 ff
     
    1374813773    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
    1374913774    xor ax, ax                                ; 31 c0
    13750     call 08d30h                               ; e8 60 fd
     13775    call 08d5eh                               ; e8 60 fd
    1375113776    mov bx, strict word 00025h                ; bb 25 00
    1375213777    mov ax, si                                ; 89 f0
    1375313778    mov dx, word [bp+006h]                    ; 8b 56 06
    13754     call 08949h                               ; e8 6e f9
     13779    call 08977h                               ; e8 6e f9
    1375513780    mov word [bp-006h], ax                    ; 89 46 fa
    1375613781    mov es, [bp+006h]                         ; 8e 46 06
     
    1378113806    pop bp                                    ; 5d
    1378213807    retn 00004h                               ; c2 04 00
    13783 @ahci_write_sectors:                         ; 0xf9025 LB 0x86
     13808@ahci_write_sectors:                         ; 0xf9053 LB 0x86
    1378413809    push bp                                   ; 55
    1378513810    mov bp, sp                                ; 89 e5
     
    1379313818    sub dx, strict byte 0000ch                ; 83 ea 0c
    1379413819    cmp dx, strict byte 00004h                ; 83 fa 04
    13795     jbe short 0904fh                          ; 76 0f
     13820    jbe short 0907dh                          ; 76 0f
    1379613821    push dx                                   ; 52
    1379713822    push 00c93h                               ; 68 93 0c
    1379813823    push 00c74h                               ; 68 74 0c
    1379913824    push strict byte 00007h                   ; 6a 07
    13800     call 01966h                               ; e8 1a 89
     13825    call 01966h                               ; e8 ec 88
    1380113826    add sp, strict byte 00008h                ; 83 c4 08
    1380213827    xor bx, bx                                ; 31 db
     
    1381313838    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1381413839    xor ax, ax                                ; 31 c0
    13815     call 08d30h                               ; e8 b6 fc
     13840    call 08d5eh                               ; e8 b6 fc
    1381613841    mov bx, strict word 00035h                ; bb 35 00
    1381713842    mov ax, si                                ; 89 f0
    1381813843    mov dx, cx                                ; 89 ca
    13819     call 08949h                               ; e8 c5 f8
     13844    call 08977h                               ; e8 c5 f8
    1382013845    mov dx, ax                                ; 89 c2
    1382113846    mov es, cx                                ; 8e c1
     
    1383213857    pop bp                                    ; 5d
    1383313858    retn 00004h                               ; c2 04 00
    13834 ahci_cmd_packet_:                            ; 0xf90ab LB 0x18a
     13859ahci_cmd_packet_:                            ; 0xf90d9 LB 0x18a
    1383513860    push bp                                   ; 55
    1383613861    mov bp, sp                                ; 89 e5
     
    1384413869    mov dx, strict word 0000eh                ; ba 0e 00
    1384513870    mov ax, strict word 00040h                ; b8 40 00
    13846     call 0166ch                               ; e8 a6 85
     13871    call 0166ch                               ; e8 78 85
    1384713872    mov si, 00122h                            ; be 22 01
    1384813873    mov word [bp-008h], ax                    ; 89 46 f8
    1384913874    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    13850     jne short 090f1h                          ; 75 1f
     13875    jne short 0911fh                          ; 75 1f
    1385113876    mov bx, 00da0h                            ; bb a0 0d
    1385213877    mov cx, ds                                ; 8c d9
    1385313878    mov ax, strict word 00004h                ; b8 04 00
    13854     call 01923h                               ; e8 46 88
     13879    call 01923h                               ; e8 18 88
    1385513880    push 00ca6h                               ; 68 a6 0c
    1385613881    push 00cb6h                               ; 68 b6 0c
    1385713882    push strict byte 00004h                   ; 6a 04
    13858     call 01966h                               ; e8 7e 88
     13883    call 01966h                               ; e8 50 88
    1385913884    add sp, strict byte 00006h                ; 83 c4 06
    1386013885    mov ax, strict word 00001h                ; b8 01 00
    13861     jmp near 0922ch                           ; e9 3b 01
     13886    jmp near 0925ah                           ; e9 3b 01
    1386213887    test byte [bp+004h], 001h                 ; f6 46 04 01
    13863     jne short 090ebh                          ; 75 f4
     13888    jne short 09119h                          ; 75 f4
    1386413889    mov ax, word [bp+006h]                    ; 8b 46 06
    1386513890    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1386713892    sal ax, 1                                 ; d1 e0
    1386813893    rcl dx, 1                                 ; d1 d2
    13869     loop 09100h                               ; e2 fa
     13894    loop 0912eh                               ; e2 fa
    1387013895    mov es, [bp-008h]                         ; 8e 46 f8
    1387113896    mov word [es:si], ax                      ; 26 89 04
     
    1388113906    mov dx, word [bp+008h]                    ; 8b 56 08
    1388213907    xor cx, cx                                ; 31 c9
    13883     call 09fb0h                               ; e8 77 0e
     13908    call 09fe0h                               ; e8 79 0e
    1388413909    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1388513910    xor di, di                                ; 31 ff
     
    1390013925    mov bx, ax                                ; 89 c3
    1390113926    xor al, al                                ; 30 c0
    13902     call 08d30h                               ; e8 b8 fb
     13927    call 08d5eh                               ; e8 b8 fb
    1390313928    mov al, byte [bp-006h]                    ; 8a 46 fa
    1390413929    xor ah, ah                                ; 30 e4
     
    1390813933    mov ax, 000c0h                            ; b8 c0 00
    1390913934    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13910     call 0a010h                               ; e8 83 0e
     13935    call 0a040h                               ; e8 85 0e
    1391113936    mov es, [bp-008h]                         ; 8e 46 f8
    1391213937    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1391513940    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1391613941    test ax, ax                               ; 85 c0
    13917     je short 091cbh                           ; 74 27
     13942    je short 091f9h                           ; 74 27
    1391813943    dec ax                                    ; 48
    1391913944    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1392813953    mov ax, si                                ; 89 f0
    1392913954    mov dx, word [bp-008h]                    ; 8b 56 f8
    13930     call 08949h                               ; e8 73 f7
     13955    call 08977h                               ; e8 73 f7
    1393113956    les bx, [bp-00eh]                         ; c4 5e f2
    1393213957    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
     
    1395513980    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1395613981    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    13957     jne short 0922ah                          ; 75 05
     13982    jne short 09258h                          ; 75 05
    1395813983    mov ax, strict word 00004h                ; b8 04 00
    13959     jmp short 0922ch                          ; eb 02
     13984    jmp short 0925ah                          ; eb 02
    1396013985    xor ax, ax                                ; 31 c0
    1396113986    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1396413989    pop bp                                    ; 5d
    1396513990    retn 0000ch                               ; c2 0c 00
    13966 ahci_port_detect_device_:                    ; 0xf9235 LB 0x4e3
     13991ahci_port_detect_device_:                    ; 0xf9263 LB 0x4e3
    1396713992    push bp                                   ; 55
    1396813993    mov bp, sp                                ; 89 e5
     
    1397714002    xor ch, ch                                ; 30 ed
    1397814003    mov bx, cx                                ; 89 cb
    13979     call 08d30h                               ; e8 e0 fa
     14004    call 08d5eh                               ; e8 e0 fa
    1398014005    mov dx, strict word 0000eh                ; ba 0e 00
    1398114006    mov ax, strict word 00040h                ; b8 40 00
    13982     call 0166ch                               ; e8 13 84
     14007    call 0166ch                               ; e8 e5 83
    1398314008    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
    1398414009    mov word [bp-016h], ax                    ; 89 46 ea
     
    1405014075    mov bx, strict word 0000fh                ; bb 0f 00
    1405114076    xor cx, cx                                ; 31 c9
    14052     call 087b9h                               ; e8 b5 f4
     14077    call 087e7h                               ; e8 b5 f4
    1405314078    test ax, ax                               ; 85 c0
    14054     jne short 0930bh                          ; 75 03
    14055     jmp near 09710h                           ; e9 05 04
     14079    jne short 09339h                          ; 75 03
     14080    jmp near 0973eh                           ; e9 05 04
    1405614081    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1405714082    xor ah, ah                                ; 30 e4
     
    1408214107    mov bx, strict word 0000fh                ; bb 0f 00
    1408314108    xor cx, cx                                ; 31 c9
    14084     call 087b9h                               ; e8 67 f4
     14109    call 087e7h                               ; e8 67 f4
    1408514110    cmp ax, strict word 00001h                ; 3d 01 00
    14086     je short 0930bh                           ; 74 b4
     14111    je short 09339h                           ; 74 b4
    1408714112    push strict byte 00000h                   ; 6a 00
    1408814113    mov bx, strict word 0000fh                ; bb 0f 00
     
    1409014115    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1409114116    mov dx, di                                ; 89 fa
    14092     call 087b9h                               ; e8 53 f4
     14117    call 087e7h                               ; e8 53 f4
    1409314118    cmp ax, strict word 00003h                ; 3d 03 00
    14094     jne short 09308h                          ; 75 9d
     14119    jne short 09336h                          ; 75 9d
    1409514120    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1409614121    add ax, 00130h                            ; 05 30 01
     
    1412014145    mov byte [bp-008h], al                    ; 88 46 f8
    1412114146    cmp AL, strict byte 004h                  ; 3c 04
    14122     jc short 093b5h                           ; 72 03
    14123     jmp near 09710h                           ; e9 5b 03
     14147    jc short 093e3h                           ; 72 03
     14148    jmp near 0973eh                           ; e9 5b 03
    1412414149    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1412514150    add ax, 00118h                            ; 05 18 01
     
    1417114196    add cl, 00ch                              ; 80 c1 0c
    1417214197    test dx, dx                               ; 85 d2
    14173     jne short 0947bh                          ; 75 54
     14198    jne short 094a9h                          ; 75 54
    1417414199    cmp ax, 00101h                            ; 3d 01 01
    14175     jne short 0947bh                          ; 75 4f
     14200    jne short 094a9h                          ; 75 4f
    1417614201    mov es, [bp-016h]                         ; 8e 46 ea
    1417714202    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1418814213    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1418914214    mov dx, es                                ; 8c c2
    14190     call 08949h                               ; e8 dd f4
     14215    call 08977h                               ; e8 dd f4
    1419114216    mov byte [bp-00ah], cl                    ; 88 4e f6
    1419214217    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14193     je short 0947eh                           ; 74 08
     14218    je short 094ach                           ; 74 08
    1419414219    mov ax, strict word 00001h                ; b8 01 00
    14195     jmp short 09480h                          ; eb 05
    14196     jmp near 0964eh                           ; e9 d0 01
     14220    jmp short 094aeh                          ; eb 05
     14221    jmp near 0967ch                           ; e9 d0 01
    1419714222    xor ax, ax                                ; 31 c0
    1419814223    mov dl, al                                ; 88 c2
     
    1421014235    mov word [bp-01eh], ax                    ; 89 46 e2
    1421114236    cmp word [bp-014h], 00fffh                ; 81 7e ec ff 0f
    14212     jne short 094cfh                          ; 75 1e
     14237    jne short 094fdh                          ; 75 1e
    1421314238    cmp di, strict byte 0ffffh                ; 83 ff ff
    14214     jne short 094cfh                          ; 75 19
     14239    jne short 094fdh                          ; 75 19
    1421514240    mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
    1421614241    mov word [bp-01eh], ax                    ; 89 46 e2
     
    1425114276    mov al, byte [bp-008h]                    ; 8a 46 f8
    1425214277    cmp AL, strict byte 001h                  ; 3c 01
    14253     jc short 0954ah                           ; 72 0c
    14254     jbe short 09552h                          ; 76 12
     14278    jc short 09578h                           ; 72 0c
     14279    jbe short 09580h                          ; 76 12
    1425514280    cmp AL, strict byte 003h                  ; 3c 03
    14256     je short 0955ah                           ; 74 16
     14281    je short 09588h                           ; 74 16
    1425714282    cmp AL, strict byte 002h                  ; 3c 02
    14258     je short 09556h                           ; 74 0e
    14259     jmp short 095a2h                          ; eb 58
     14283    je short 09584h                           ; 74 0e
     14284    jmp short 095d0h                          ; eb 58
    1426014285    test al, al                               ; 84 c0
    14261     jne short 095a2h                          ; 75 54
     14286    jne short 095d0h                          ; 75 54
    1426214287    mov DL, strict byte 040h                  ; b2 40
    14263     jmp short 0955ch                          ; eb 0a
     14288    jmp short 0958ah                          ; eb 0a
    1426414289    mov DL, strict byte 048h                  ; b2 48
    14265     jmp short 0955ch                          ; eb 06
     14290    jmp short 0958ah                          ; eb 06
    1426614291    mov DL, strict byte 050h                  ; b2 50
    14267     jmp short 0955ch                          ; eb 02
     14292    jmp short 0958ah                          ; eb 02
    1426814293    mov DL, strict byte 058h                  ; b2 58
    1426914294    mov bl, dl                                ; 88 d3
     
    1427114296    xor bh, bh                                ; 30 ff
    1427214297    mov ax, bx                                ; 89 d8
    14273     call 016ach                               ; e8 44 81
     14298    call 016ach                               ; e8 16 81
    1427414299    test al, al                               ; 84 c0
    14275     je short 095a2h                           ; 74 36
     14300    je short 095d0h                           ; 74 36
    1427614301    mov al, dl                                ; 88 d0
    1427714302    db  0feh, 0c0h
    1427814303    ; inc al                                    ; fe c0
    1427914304    xor ah, ah                                ; 30 e4
    14280     call 016ach                               ; e8 37 81
     14305    call 016ach                               ; e8 09 81
    1428114306    xor ah, ah                                ; 30 e4
    1428214307    mov cx, ax                                ; 89 c1
    1428314308    sal cx, 008h                              ; c1 e1 08
    1428414309    mov al, dl                                ; 88 d0
    14285     call 016ach                               ; e8 2b 81
     14310    call 016ach                               ; e8 fd 80
    1428614311    xor ah, ah                                ; 30 e4
    1428714312    add ax, cx                                ; 01 c8
     
    1429014315    add AL, strict byte 002h                  ; 04 02
    1429114316    xor ah, ah                                ; 30 e4
    14292     call 016ach                               ; e8 1b 81
     14317    call 016ach                               ; e8 ed 80
    1429314318    xor ah, ah                                ; 30 e4
    1429414319    mov word [bp-02ah], ax                    ; 89 46 d6
    1429514320    mov ax, bx                                ; 89 d8
    14296     call 016ach                               ; e8 11 81
     14321    call 016ach                               ; e8 e3 80
    1429714322    xor ah, ah                                ; 30 e4
    1429814323    mov word [bp-026h], ax                    ; 89 46 da
    14299     jmp short 095b4h                          ; eb 12
     14324    jmp short 095e2h                          ; eb 12
    1430014325    push word [bp-01eh]                       ; ff 76 e2
    1430114326    push word [bp-012h]                       ; ff 76 ee
     
    1430414329    mov dx, ss                                ; 8c d2
    1430514330    lea ax, [bp-02ah]                         ; 8d 46 d6
    14306     call 059cbh                               ; e8 17 c4
     14331    call 059f9h                               ; e8 17 c4
    1430714332    mov bx, 00da0h                            ; bb a0 0d
    1430814333    mov cx, ds                                ; 8c d9
    1430914334    mov ax, strict word 00004h                ; b8 04 00
    14310     call 01923h                               ; e8 64 83
     14335    call 01923h                               ; e8 36 83
    1431114336    push word [bp-01eh]                       ; ff 76 e2
    1431214337    push word [bp-012h]                       ; ff 76 ee
     
    1432914354    push 00cd6h                               ; 68 d6 0c
    1433014355    push strict byte 00004h                   ; 6a 04
    14331     call 01966h                               ; e8 76 83
     14356    call 01966h                               ; e8 48 83
    1433214357    add sp, strict byte 0001ch                ; 83 c4 1c
    1433314358    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    1436014385    mov dx, strict word 00075h                ; ba 75 00
    1436114386    mov ax, strict word 00040h                ; b8 40 00
    14362     call 01650h                               ; e8 14 80
     14387    call 01650h                               ; e8 e6 7f
    1436314388    mov bl, al                                ; 88 c3
    1436414389    db  0feh, 0c3h
     
    1436714392    mov dx, strict word 00075h                ; ba 75 00
    1436814393    mov ax, strict word 00040h                ; b8 40 00
    14369     call 0165eh                               ; e8 13 80
    14370     jmp near 096ffh                           ; e9 b1 00
     14394    call 0165eh                               ; e8 e5 7f
     14395    jmp near 0972dh                           ; e9 b1 00
    1437114396    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14372     jne short 096a8h                          ; 75 54
     14397    jne short 096d6h                          ; 75 54
    1437314398    cmp ax, 00101h                            ; 3d 01 01
    14374     jne short 096a8h                          ; 75 4f
     14399    jne short 096d6h                          ; 75 4f
    1437514400    mov es, [bp-016h]                         ; 8e 46 ea
    1437614401    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1438714412    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1438814413    mov dx, es                                ; 8c c2
    14389     call 08949h                               ; e8 b0 f2
     14414    call 08977h                               ; e8 b0 f2
    1439014415    mov byte [bp-00ah], cl                    ; 88 4e f6
    1439114416    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14392     je short 096aah                           ; 74 07
     14417    je short 096d8h                           ; 74 07
    1439314418    mov dx, strict word 00001h                ; ba 01 00
    14394     jmp short 096ach                          ; eb 04
    14395     jmp short 096ffh                          ; eb 55
     14419    jmp short 096dah                          ; eb 04
     14420    jmp short 0972dh                          ; eb 55
    1439614421    xor dx, dx                                ; 31 d2
    1439714422    mov bl, byte [bp-008h]                    ; 8a 5e f8
     
    1443214457    pop bp                                    ; 5d
    1443314458    retn                                      ; c3
    14434 ahci_mem_alloc_:                             ; 0xf9718 LB 0x43
     14459ahci_mem_alloc_:                             ; 0xf9746 LB 0x43
    1443514460    push bp                                   ; 55
    1443614461    mov bp, sp                                ; 89 e5
     
    1444214467    mov dx, 00413h                            ; ba 13 04
    1444314468    xor ax, ax                                ; 31 c0
    14444     call 0166ch                               ; e8 44 7f
     14469    call 0166ch                               ; e8 16 7f
    1444514470    test ax, ax                               ; 85 c0
    14446     je short 09751h                           ; 74 25
     14471    je short 0977fh                           ; 74 25
    1444714472    dec ax                                    ; 48
    1444814473    mov bx, ax                                ; 89 c3
     
    1445114476    sal ax, 1                                 ; d1 e0
    1445214477    rcl dx, 1                                 ; d1 d2
    14453     loop 09734h                               ; e2 fa
     14478    loop 09762h                               ; e2 fa
    1445414479    mov si, ax                                ; 89 c6
    1445514480    mov di, dx                                ; 89 d7
     
    1445714482    shr di, 1                                 ; d1 ef
    1445814483    rcr si, 1                                 ; d1 de
    14459     loop 09741h                               ; e2 fa
     14484    loop 0976fh                               ; e2 fa
    1446014485    mov dx, 00413h                            ; ba 13 04
    1446114486    xor ax, ax                                ; 31 c0
    14462     call 0167ah                               ; e8 2b 7f
     14487    call 0167ah                               ; e8 fd 7e
    1446314488    mov ax, si                                ; 89 f0
    1446414489    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1447014495    pop bp                                    ; 5d
    1447114496    retn                                      ; c3
    14472 ahci_hba_init_:                              ; 0xf975b LB 0x16d
     14497ahci_hba_init_:                              ; 0xf9789 LB 0x16d
    1447314498    push bp                                   ; 55
    1447414499    mov bp, sp                                ; 89 e5
     
    1448214507    mov dx, strict word 0000eh                ; ba 0e 00
    1448314508    mov ax, strict word 00040h                ; b8 40 00
    14484     call 0166ch                               ; e8 fb 7e
     14509    call 0166ch                               ; e8 cd 7e
    1448514510    mov bx, 00122h                            ; bb 22 01
    1448614511    mov di, ax                                ; 89 c7
     
    1449914524    shr eax, 010h                             ; 66 c1 e8 10
    1450014525    xchg dx, ax                               ; 92
    14501     call 09718h                               ; e8 83 ff
     14526    call 09746h                               ; e8 83 ff
    1450214527    mov word [bp-010h], ax                    ; 89 46 f0
    1450314528    test ax, ax                               ; 85 c0
    14504     jne short 0979fh                          ; 75 03
    14505     jmp near 098a7h                           ; e9 08 01
     14529    jne short 097cdh                          ; 75 03
     14530    jmp near 098d5h                           ; e9 08 01
    1450614531    mov ax, word [bp-010h]                    ; 8b 46 f0
    1450714532    mov es, di                                ; 8e c7
     
    1455314578    xchg dx, ax                               ; 92
    1455414579    test AL, strict byte 001h                 ; a8 01
    14555     jne short 097f9h                          ; 75 de
     14580    jne short 09827h                          ; 75 de
    1455614581    xor ax, ax                                ; 31 c0
    1455714582    xor cx, cx                                ; 31 c9
     
    1457114596    mov bx, strict word 0001fh                ; bb 1f 00
    1457214597    xor cx, cx                                ; 31 c9
    14573     call 087b9h                               ; e8 7a ef
     14598    call 087e7h                               ; e8 7a ef
    1457414599    db  0feh, 0c0h
    1457514600    ; inc al                                    ; fe c0
    1457614601    mov byte [bp-00ch], al                    ; 88 46 f4
    1457714602    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    14578     jmp short 0986bh                          ; eb 21
     14603    jmp short 09899h                          ; eb 21
    1457914604    xor al, al                                ; 30 c0
    1458014605    test al, al                               ; 84 c0
    14581     je short 09862h                           ; 74 12
     14606    je short 09890h                           ; 74 12
    1458214607    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    1458314608    xor bh, bh                                ; 30 ff
    1458414609    xor ax, ax                                ; 31 c0
    1458514610    mov dx, word [bp-010h]                    ; 8b 56 f0
    14586     call 09235h                               ; e8 d8 f9
     14611    call 09263h                               ; e8 d8 f9
    1458714612    dec byte [bp-00ch]                        ; fe 4e f4
    14588     je short 098a5h                           ; 74 43
     14613    je short 098d3h                           ; 74 43
    1458914614    inc byte [bp-00eh]                        ; fe 46 f2
    1459014615    cmp byte [bp-00eh], 020h                  ; 80 7e f2 20
    14591     jnc short 098a5h                          ; 73 3a
     14616    jnc short 098d3h                          ; 73 3a
    1459214617    mov cl, byte [bp-00eh]                    ; 8a 4e f2
    1459314618    xor ch, ch                                ; 30 ed
    1459414619    mov bx, strict word 00001h                ; bb 01 00
    1459514620    xor di, di                                ; 31 ff
    14596     jcxz 0987dh                               ; e3 06
     14621    jcxz 098abh                               ; e3 06
    1459714622    sal bx, 1                                 ; d1 e3
    1459814623    rcl di, 1                                 ; d1 d7
    14599     loop 09877h                               ; e2 fa
     14624    loop 098a5h                               ; e2 fa
    1460014625    mov ax, strict word 0000ch                ; b8 0c 00
    1460114626    xor cx, cx                                ; 31 c9
     
    1461314638    xchg dx, ax                               ; 92
    1461414639    test dx, di                               ; 85 fa
    14615     jne short 098a1h                          ; 75 04
     14640    jne short 098cfh                          ; 75 04
    1461614641    test ax, bx                               ; 85 d8
    14617     je short 0984ah                           ; 74 a9
     14642    je short 09878h                           ; 74 a9
    1461814643    mov AL, strict byte 001h                  ; b0 01
    14619     jmp short 0984ch                          ; eb a7
     14644    jmp short 0987ah                          ; eb a7
    1462014645    xor ax, ax                                ; 31 c0
    1462114646    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1462714652    pop bp                                    ; 5d
    1462814653    retn                                      ; c3
    14629     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0b0h, 099h, 08eh, 099h, 094h, 099h, 09ah, 099h, 0a0h
    14630     db  099h, 0a6h, 099h, 0ach, 099h, 0b0h, 099h
    14631 _ahci_init:                                  ; 0xf98c8 LB 0x119
     14654    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0deh, 099h, 0bch, 099h, 0c2h, 099h, 0c8h, 099h, 0ceh
     14655    db  099h, 0d4h, 099h, 0dah, 099h, 0deh, 099h
     14656_ahci_init:                                  ; 0xf98f6 LB 0x119
    1463214657    push bp                                   ; 55
    1463314658    mov bp, sp                                ; 89 e5
     
    1463614661    mov ax, 00601h                            ; b8 01 06
    1463714662    mov dx, strict word 00001h                ; ba 01 00
    14638     call 09dfch                               ; e8 24 05
     14663    call 09e2ah                               ; e8 24 05
    1463914664    mov dx, ax                                ; 89 c2
    1464014665    cmp ax, strict word 0ffffh                ; 3d ff ff
    14641     je short 0992bh                           ; 74 4c
     14666    je short 09959h                           ; 74 4c
    1464214667    xor al, al                                ; 30 c0
    1464314668    shr ax, 008h                              ; c1 e8 08
     
    1464714672    xor ah, ah                                ; 30 e4
    1464814673    mov bx, strict word 00034h                ; bb 34 00
    14649     call 09e04h                               ; e8 10 05
     14674    call 09e32h                               ; e8 10 05
    1465014675    mov cl, al                                ; 88 c1
    1465114676    test cl, cl                               ; 84 c9
    14652     je short 0992eh                           ; 74 34
     14677    je short 0995ch                           ; 74 34
    1465314678    mov bl, cl                                ; 88 cb
    1465414679    xor bh, bh                                ; 30 ff
     
    1466114686    mov dx, word [bp-010h]                    ; 8b 56 f0
    1466214687    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14663     call 09e04h                               ; e8 eb 04
     14688    call 09e32h                               ; e8 eb 04
    1466414689    cmp AL, strict byte 012h                  ; 3c 12
    14665     je short 0992eh                           ; 74 11
     14690    je short 0995ch                           ; 74 11
    1466614691    mov bl, cl                                ; 88 cb
    1466714692    db  0feh, 0c3h
     
    1467014695    mov dx, word [bp-010h]                    ; 8b 56 f0
    1467114696    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14672     jmp short 098f1h                          ; eb c6
    14673     jmp near 099dbh                           ; e9 ad 00
     14697    jmp short 0991fh                          ; eb c6
     14698    jmp near 09a09h                           ; e9 ad 00
    1467414699    test cl, cl                               ; 84 c9
    14675     je short 0992bh                           ; 74 f9
     14700    je short 09959h                           ; 74 f9
    1467614701    add cl, 002h                              ; 80 c1 02
    1467714702    mov bl, cl                                ; 88 cb
     
    1468514710    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1468614711    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14687     call 09e04h                               ; e8 b0 04
     14712    call 09e32h                               ; e8 b0 04
    1468814713    cmp AL, strict byte 010h                  ; 3c 10
    14689     jne short 0992bh                          ; 75 d3
     14714    jne short 09959h                          ; 75 d3
    1469014715    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1469114716    mov bl, cl                                ; 88 cb
     
    1469414719    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1469514720    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14696     call 09e32h                               ; e8 c6 04
     14721    call 09e60h                               ; e8 c6 04
    1469714722    mov dx, ax                                ; 89 c2
    1469814723    and ax, strict word 0000fh                ; 25 0f 00
    1469914724    sub ax, strict word 00004h                ; 2d 04 00
    1470014725    cmp ax, strict word 0000bh                ; 3d 0b 00
    14701     jnbe short 099b0h                         ; 77 37
     14726    jnbe short 099deh                         ; 77 37
    1470214727    push CS                                   ; 0e
    1470314728    pop ES                                    ; 07
    1470414729    mov cx, strict word 00008h                ; b9 08 00
    14705     mov di, 098b1h                            ; bf b1 98
     14730    mov di, 098dfh                            ; bf df 98
    1470614731    repne scasb                               ; f2 ae
    1470714732    sal cx, 1                                 ; d1 e1
    1470814733    mov di, cx                                ; 89 cf
    14709     mov ax, word [cs:di-06748h]               ; 2e 8b 85 b8 98
     14734    mov ax, word [cs:di-0671ah]               ; 2e 8b 85 e6 98
    1471014735    jmp ax                                    ; ff e0
    1471114736    mov byte [bp-004h], 010h                  ; c6 46 fc 10
    14712     jmp short 099b0h                          ; eb 1c
     14737    jmp short 099deh                          ; eb 1c
    1471314738    mov byte [bp-004h], 014h                  ; c6 46 fc 14
    14714     jmp short 099b0h                          ; eb 16
     14739    jmp short 099deh                          ; eb 16
    1471514740    mov byte [bp-004h], 018h                  ; c6 46 fc 18
    14716     jmp short 099b0h                          ; eb 10
     14741    jmp short 099deh                          ; eb 10
    1471714742    mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
    14718     jmp short 099b0h                          ; eb 0a
     14743    jmp short 099deh                          ; eb 0a
    1471914744    mov byte [bp-004h], 020h                  ; c6 46 fc 20
    14720     jmp short 099b0h                          ; eb 04
     14745    jmp short 099deh                          ; eb 04
    1472114746    mov byte [bp-004h], 024h                  ; c6 46 fc 24
    1472214747    mov cx, dx                                ; 89 d1
     
    1472514750    mov al, byte [bp-004h]                    ; 8a 46 fc
    1472614751    test al, al                               ; 84 c0
    14727     je short 099dbh                           ; 74 1c
     14752    je short 09a09h                           ; 74 1c
    1472814753    mov bl, al                                ; 88 c3
    1472914754    xor bh, bh                                ; 30 ff
     
    1473214757    mov al, byte [bp-008h]                    ; 8a 46 f8
    1473314758    xor ah, ah                                ; 30 e4
    14734     call 09e5ch                               ; e8 8c 04
     14759    call 09e8ah                               ; e8 8c 04
    1473514760    test AL, strict byte 001h                 ; a8 01
    14736     je short 099dbh                           ; 74 07
     14761    je short 09a09h                           ; 74 07
    1473714762    and AL, strict byte 0f0h                  ; 24 f0
    1473814763    add ax, cx                                ; 01 c8
    14739     call 0975bh                               ; e8 80 fd
     14764    call 09789h                               ; e8 80 fd
    1474014765    lea sp, [bp-002h]                         ; 8d 66 fe
    1474114766    pop di                                    ; 5f
    1474214767    pop bp                                    ; 5d
    1474314768    retn                                      ; c3
    14744 apm_out_str_:                                ; 0xf99e1 LB 0x39
     14769apm_out_str_:                                ; 0xf9a0f LB 0x39
    1474514770    push bp                                   ; 55
    1474614771    mov bp, sp                                ; 89 e5
     
    1474814773    mov bx, ax                                ; 89 c3
    1474914774    cmp byte [bx], 000h                       ; 80 3f 00
    14750     je short 099f6h                           ; 74 0a
     14775    je short 09a24h                           ; 74 0a
    1475114776    mov al, byte [bx]                         ; 8a 07
    1475214777    out DX, AL                                ; ee
     
    1475514780    db  00ah, 0c0h
    1475614781    ; or al, al                                 ; 0a c0
    14757     jne short 099eeh                          ; 75 f8
     14782    jne short 09a1ch                          ; 75 f8
    1475814783    lea sp, [bp-002h]                         ; 8d 66 fe
    1475914784    pop bx                                    ; 5b
    1476014785    pop bp                                    ; 5d
    1476114786    retn                                      ; c3
    14762     cmp bx, word [bp+si-0653dh]               ; 3b 9a c3 9a
    14763     dec bp                                    ; 4d
    14764     call far 09ac3h:09a68h                    ; 9a 68 9a c3 9a
    14765     xchg bx, ax                               ; 93
    14766     call far 09ac9h:09ac3h                    ; 9a c3 9a c9 9a
    14767     cbw                                       ; 98
    14768     call far 09a98h:09a98h                    ; 9a 98 9a 98 9a
    14769     or byte [bp+di-06568h], bl                ; 08 9b 98 9a
    14770     cbw                                       ; 98
    14771     db  09ah
    14772     db  001h
     14787    imul bx, word [bp+si-0650fh], 09a7bh      ; 69 9a f1 9a 7b 9a
     14788    xchg si, ax                               ; 96
     14789    call far 09ac1h:09af1h                    ; 9a f1 9a c1 9a
     14790    db  0f1h
     14791    call far 09ac6h:09af7h                    ; 9a f7 9a c6 9a
     14792    db  0c6h, 09ah, 0c6h, 09ah, 036h
     14793    ; mov byte [bp+si-0653ah], 036h             ; c6 9a c6 9a 36
    1477314794    wait                                      ; 9b
    14774 _apm_function:                               ; 0xf9a1a LB 0xf3
     14795    db  0c6h, 09ah, 0c6h, 09ah, 02fh
     14796    ; mov byte [bp+si-0653ah], 02fh             ; c6 9a c6 9a 2f
     14797    wait                                      ; 9b
     14798_apm_function:                               ; 0xf9a48 LB 0xf3
    1477514799    push bp                                   ; 55
    1477614800    mov bp, sp                                ; 89 e5
     
    1478014804    xor ah, ah                                ; 30 e4
    1478114805    cmp ax, strict word 0000eh                ; 3d 0e 00
    14782     jnbe short 09a98h                         ; 77 6c
     14806    jnbe short 09ac6h                         ; 77 6c
    1478314807    mov bx, ax                                ; 89 c3
    1478414808    add bx, ax                                ; 01 c3
    1478514809    mov dx, word [bp+018h]                    ; 8b 56 18
    1478614810    or dl, 001h                               ; 80 ca 01
    14787     jmp word [cs:bx-06604h]                   ; 2e ff a7 fc 99
     14811    jmp word [cs:bx-065d6h]                   ; 2e ff a7 2a 9a
    1478814812    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1478914813    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1479014814    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    14791     jmp near 09ac3h                           ; e9 76 00
     14815    jmp near 09af1h                           ; e9 76 00
    1479214816    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    14793     mov word [bp+00ch], 0a084h                ; c7 46 0c 84 a0
     14817    mov word [bp+00ch], 0a0b4h                ; c7 46 0c b4 a0
    1479414818    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1479514819    mov ax, strict word 0fff0h                ; b8 f0 ff
    1479614820    mov word [bp+006h], ax                    ; 89 46 06
    1479714821    mov word [bp+004h], ax                    ; 89 46 04
    14798     jmp near 09ac3h                           ; e9 5b 00
     14822    jmp near 09af1h                           ; e9 5b 00
    1479914823    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1480014824    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1480914833    mov si, ax                                ; 89 c6
    1481014834    sal esi, 010h                             ; 66 c1 e6 10
    14811     jmp near 09ac3h                           ; e9 30 00
     14835    jmp near 09af1h                           ; e9 30 00
    1481214836    sti                                       ; fb
    1481314837    hlt                                       ; f4
    14814     jmp near 09ac3h                           ; e9 2b 00
     14838    jmp near 09af1h                           ; e9 2b 00
    1481514839    mov bx, 00da0h                            ; bb a0 0d
    1481614840    mov cx, ds                                ; 8c d9
    1481714841    mov ax, strict word 00004h                ; b8 04 00
    14818     call 01923h                               ; e8 80 7e
     14842    call 01923h                               ; e8 52 7e
    1481914843    push word [bp+00ch]                       ; ff 76 0c
    1482014844    push word [bp+012h]                       ; ff 76 12
    1482114845    push 00d29h                               ; 68 29 0d
    1482214846    push strict byte 00004h                   ; 6a 04
    14823     call 01966h                               ; e8 b5 7e
     14847    call 01966h                               ; e8 87 7e
    1482414848    add sp, strict byte 00008h                ; 83 c4 08
    1482514849    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1483314857    retn                                      ; c3
    1483414858    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    14835     je short 09aeeh                           ; 74 1f
     14859    je short 09b1ch                           ; 74 1f
    1483614860    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    14837     je short 09ae6h                           ; 74 11
     14861    je short 09b14h                           ; 74 11
    1483814862    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    14839     jne short 09af6h                          ; 75 1b
     14863    jne short 09b24h                          ; 75 1b
    1484014864    mov dx, 0040fh                            ; ba 0f 04
    1484114865    mov ax, 00d10h                            ; b8 10 0d
    14842     call 099e1h                               ; e8 fd fe
    14843     jmp short 09ac3h                          ; eb dd
     14866    call 09a0fh                               ; e8 fd fe
     14867    jmp short 09af1h                          ; eb dd
    1484414868    mov dx, 0040fh                            ; ba 0f 04
    1484514869    mov ax, 00d18h                            ; b8 18 0d
    14846     jmp short 09ae1h                          ; eb f3
     14870    jmp short 09b0fh                          ; eb f3
    1484714871    mov dx, 0040fh                            ; ba 0f 04
    1484814872    mov ax, 00d20h                            ; b8 20 0d
    14849     jmp short 09ae1h                          ; eb eb
     14873    jmp short 09b0fh                          ; eb eb
    1485014874    or ah, 00ah                               ; 80 cc 0a
    1485114875    mov word [bp+012h], ax                    ; 89 46 12
    1485214876    mov word [bp+018h], dx                    ; 89 56 18
    14853     jmp short 09ac3h                          ; eb c2
     14877    jmp short 09af1h                          ; eb c2
    1485414878    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    14855     jmp short 09ac3h                          ; eb bb
     14879    jmp short 09af1h                          ; eb bb
    1485614880    or ah, 080h                               ; 80 cc 80
    14857     jmp short 09af9h                          ; eb ec
    14858 pci16_select_reg_:                           ; 0xf9b0d LB 0x24
     14881    jmp short 09b27h                          ; eb ec
     14882pci16_select_reg_:                           ; 0xf9b3b LB 0x24
    1485914883    push bp                                   ; 55
    1486014884    mov bp, sp                                ; 89 e5
     
    1487314897    pop bp                                    ; 5d
    1487414898    retn                                      ; c3
    14875 pci16_find_device_:                          ; 0xf9b31 LB 0xf9
     14899pci16_find_device_:                          ; 0xf9b5f LB 0xf9
    1487614900    push bp                                   ; 55
    1487714901    mov bp, sp                                ; 89 e5
     
    1488714911    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1488814912    test bl, 007h                             ; f6 c3 07
    14889     jne short 09b79h                          ; 75 2d
     14913    jne short 09ba7h                          ; 75 2d
    1489014914    mov dx, strict word 0000eh                ; ba 0e 00
    1489114915    mov ax, bx                                ; 89 d8
    14892     call 09b0dh                               ; e8 b9 ff
     14916    call 09b3bh                               ; e8 b9 ff
    1489314917    mov dx, 00cfeh                            ; ba fe 0c
    1489414918    in AL, DX                                 ; ec
     
    1489714921    mov byte [bp-006h], al                    ; 88 46 fa
    1489814922    cmp AL, strict byte 0ffh                  ; 3c ff
    14899     jne short 09b67h                          ; 75 06
     14923    jne short 09b95h                          ; 75 06
    1490014924    add bx, strict byte 00008h                ; 83 c3 08
    14901     jmp near 09bfah                           ; e9 93 00
     14925    jmp near 09c28h                           ; e9 93 00
    1490214926    test byte [bp-006h], 080h                 ; f6 46 fa 80
    14903     je short 09b74h                           ; 74 07
     14927    je short 09ba2h                           ; 74 07
    1490414928    mov word [bp-010h], strict word 00001h    ; c7 46 f0 01 00
    14905     jmp short 09b79h                          ; eb 05
     14929    jmp short 09ba7h                          ; eb 05
    1490614930    mov word [bp-010h], strict word 00008h    ; c7 46 f0 08 00
    1490714931    mov al, byte [bp-006h]                    ; 8a 46 fa
    1490814932    and AL, strict byte 007h                  ; 24 07
    1490914933    cmp AL, strict byte 001h                  ; 3c 01
    14910     jne short 09ba1h                          ; 75 1f
     14934    jne short 09bcfh                          ; 75 1f
    1491114935    mov ax, bx                                ; 89 d8
    1491214936    shr ax, 008h                              ; c1 e8 08
    1491314937    test ax, ax                               ; 85 c0
    14914     jne short 09ba1h                          ; 75 16
     14938    jne short 09bcfh                          ; 75 16
    1491514939    mov dx, strict word 0001ah                ; ba 1a 00
    1491614940    mov ax, bx                                ; 89 d8
    14917     call 09b0dh                               ; e8 7a ff
     14941    call 09b3bh                               ; e8 7a ff
    1491814942    mov dx, 00cfeh                            ; ba fe 0c
    1491914943    in AL, DX                                 ; ec
     
    1492114945    ; sub ah, ah                                ; 2a e4
    1492214946    cmp al, byte [bp-008h]                    ; 3a 46 f8
    14923     jbe short 09ba1h                          ; 76 03
     14947    jbe short 09bcfh                          ; 76 03
    1492414948    mov byte [bp-008h], al                    ; 88 46 f8
    1492514949    test di, di                               ; 85 ff
    14926     je short 09baah                           ; 74 05
     14950    je short 09bd8h                           ; 74 05
    1492714951    mov dx, strict word 00008h                ; ba 08 00
    14928     jmp short 09bach                          ; eb 02
     14952    jmp short 09bdah                          ; eb 02
    1492914953    xor dx, dx                                ; 31 d2
    1493014954    mov ax, bx                                ; 89 d8
    14931     call 09b0dh                               ; e8 5c ff
     14955    call 09b3bh                               ; e8 5c ff
    1493214956    mov dx, 00cfch                            ; ba fc 0c
    1493314957    in eax, DX                                ; 66 ed
     
    1494014964    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    1494114965    test di, di                               ; 85 ff
    14942     je short 09bdbh                           ; 74 0f
     14966    je short 09c09h                           ; 74 0f
    1494314967    mov cx, strict word 00008h                ; b9 08 00
    1494414968    shr dx, 1                                 ; d1 ea
    1494514969    rcr ax, 1                                 ; d1 d8
    14946     loop 09bcfh                               ; e2 fa
     14970    loop 09bfdh                               ; e2 fa
    1494714971    mov word [bp-00ah], ax                    ; 89 46 f6
    1494814972    mov word [bp-00ch], dx                    ; 89 56 f4
    1494914973    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1495014974    cmp ax, word [bp-014h]                    ; 3b 46 ec
    14951     jne short 09bebh                          ; 75 08
     14975    jne short 09c19h                          ; 75 08
    1495214976    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1495314977    cmp ax, word [bp-012h]                    ; 3b 46 ee
    14954     je short 09bf1h                           ; 74 06
     14978    je short 09c1fh                           ; 74 06
    1495514979    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    14956     je short 09bf7h                           ; 74 06
     14980    je short 09c25h                           ; 74 06
    1495714981    dec si                                    ; 4e
    1495814982    cmp si, strict byte 0ffffh                ; 83 fe ff
    14959     je short 09c0bh                           ; 74 14
     14983    je short 09c39h                           ; 74 14
    1496014984    add bx, word [bp-010h]                    ; 03 5e f0
    1496114985    mov dx, bx                                ; 89 da
     
    1496414988    xor ah, ah                                ; 30 e4
    1496514989    cmp dx, ax                                ; 39 c2
    14966     jnbe short 09c0bh                         ; 77 03
    14967     jmp near 09b47h                           ; e9 3c ff
     14990    jnbe short 09c39h                         ; 77 03
     14991    jmp near 09b75h                           ; e9 3c ff
    1496814992    cmp si, strict byte 0ffffh                ; 83 fe ff
    14969     jne short 09c14h                          ; 75 04
     14993    jne short 09c42h                          ; 75 04
    1497014994    mov ax, bx                                ; 89 d8
    14971     jmp short 09c17h                          ; eb 03
     14995    jmp short 09c45h                          ; eb 03
    1497214996    mov ax, strict word 0ffffh                ; b8 ff ff
    1497314997    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1497615000    pop bp                                    ; 5d
    1497715001    retn                                      ; c3
    14978     or bx, word [di-062dch]                   ; 0b 9d 24 9d
    14979     db  036h, 09dh
    14980     ; ss popfw                                  ; 36 9d
    14981     dec dx                                    ; 4a
    14982     popfw                                     ; 9d
    14983     pop sp                                    ; 5c
    14984     popfw                                     ; 9d
    14985     outsw                                     ; 6f
    14986     popfw                                     ; 9d
    14987 _pci16_function:                             ; 0xf9c2a LB 0x1d2
     15002    cmp word [di-062aeh], bx                  ; 39 9d 52 9d
     15003    db  064h, 09dh
     15004    ; fs popfw                                  ; 64 9d
     15005    js short 09bf1h                           ; 78 9d
     15006    mov bl, byte [di-06263h]                  ; 8a 9d 9d 9d
     15007_pci16_function:                             ; 0xf9c58 LB 0x1d2
    1498815008    push bp                                   ; 55
    1498915009    mov bp, sp                                ; 89 e5
     
    1499915019    xor ah, ah                                ; 30 e4
    1500015020    cmp bx, strict byte 00003h                ; 83 fb 03
    15001     jc short 09c5ch                           ; 72 13
    15002     jbe short 09cafh                          ; 76 64
     15021    jc short 09c8ah                           ; 72 13
     15022    jbe short 09cddh                          ; 76 64
    1500315023    cmp bx, strict byte 0000eh                ; 83 fb 0e
    15004     je short 09cb7h                           ; 74 67
     15024    je short 09ce5h                           ; 74 67
    1500515025    cmp bx, strict byte 00008h                ; 83 fb 08
    15006     jc short 09c66h                           ; 72 11
     15026    jc short 09c94h                           ; 72 11
    1500715027    cmp bx, strict byte 0000dh                ; 83 fb 0d
    15008     jbe short 09cbah                          ; 76 60
    15009     jmp short 09c66h                          ; eb 0a
     15028    jbe short 09ce8h                          ; 76 60
     15029    jmp short 09c94h                          ; eb 0a
    1501015030    cmp bx, strict byte 00002h                ; 83 fb 02
    15011     je short 09c85h                           ; 74 24
     15031    je short 09cb3h                           ; 74 24
    1501215032    cmp bx, strict byte 00001h                ; 83 fb 01
    15013     je short 09c69h                           ; 74 03
    15014     jmp near 09dc8h                           ; e9 5f 01
     15033    je short 09c97h                           ; 74 03
     15034    jmp near 09df6h                           ; e9 5f 01
    1501515035    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1501615036    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1501815038    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1501915039    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    15020     jmp near 09df5h                           ; e9 70 01
     15040    jmp near 09e23h                           ; e9 70 01
    1502115041    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    15022     jne short 09c91h                          ; 75 06
     15042    jne short 09cbfh                          ; 75 06
    1502315043    or ah, 083h                               ; 80 cc 83
    15024     jmp near 09deeh                           ; e9 5d 01
     15044    jmp near 09e1ch                           ; e9 5d 01
    1502515045    mov bx, word [bp+008h]                    ; 8b 5e 08
    1502615046    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1502715047    mov ax, word [bp+018h]                    ; 8b 46 18
    1502815048    xor cx, cx                                ; 31 c9
    15029     call 09b31h                               ; e8 92 fe
     15049    call 09b5fh                               ; e8 92 fe
    1503015050    cmp ax, strict word 0ffffh                ; 3d ff ff
    15031     jne short 09cb1h                          ; 75 0d
     15051    jne short 09cdfh                          ; 75 0d
    1503215052    mov ax, word [bp+020h]                    ; 8b 46 20
    1503315053    xor ah, ah                                ; 30 e4
    1503415054    or ah, 086h                               ; 80 cc 86
    15035     jmp near 09deeh                           ; e9 3f 01
    15036     jmp short 09cbch                          ; eb 0b
     15055    jmp near 09e1ch                           ; e9 3f 01
     15056    jmp short 09ceah                          ; eb 0b
    1503715057    mov word [bp+014h], ax                    ; 89 46 14
    15038     jmp near 09df5h                           ; e9 3e 01
    15039     jmp near 09d83h                           ; e9 c9 00
    15040     jmp short 09ce1h                          ; eb 25
     15058    jmp near 09e23h                           ; e9 3e 01
     15059    jmp near 09db1h                           ; e9 c9 00
     15060    jmp short 09d0fh                          ; eb 25
    1504115061    mov bx, word [bp+008h]                    ; 8b 5e 08
    1504215062    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1504315063    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1504415064    mov cx, strict word 00001h                ; b9 01 00
    15045     call 09b31h                               ; e8 66 fe
     15065    call 09b5fh                               ; e8 66 fe
    1504615066    cmp ax, strict word 0ffffh                ; 3d ff ff
    15047     jne short 09cdbh                          ; 75 0b
     15067    jne short 09d09h                          ; 75 0b
    1504815068    mov ax, word [bp+020h]                    ; 8b 46 20
    1504915069    xor ah, ah                                ; 30 e4
    1505015070    or ah, 086h                               ; 80 cc 86
    15051     jmp near 09deeh                           ; e9 13 01
     15071    jmp near 09e1ch                           ; e9 13 01
    1505215072    mov word [bp+014h], ax                    ; 89 46 14
    15053     jmp near 09df5h                           ; e9 14 01
     15073    jmp near 09e23h                           ; e9 14 01
    1505415074    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    15055     jc short 09ceeh                           ; 72 06
     15075    jc short 09d1ch                           ; 72 06
    1505615076    or ah, 087h                               ; 80 cc 87
    15057     jmp near 09deeh                           ; e9 00 01
     15077    jmp near 09e1ch                           ; e9 00 01
    1505815078    mov dx, word [bp+004h]                    ; 8b 56 04
    1505915079    mov ax, word [bp+014h]                    ; 8b 46 14
    15060     call 09b0dh                               ; e8 16 fe
     15080    call 09b3bh                               ; e8 16 fe
    1506115081    mov bx, word [bp+020h]                    ; 8b 5e 20
    1506215082    xor bh, bh                                ; 30 ff
    1506315083    sub bx, strict byte 00008h                ; 83 eb 08
    1506415084    cmp bx, strict byte 00005h                ; 83 fb 05
    15065     jnbe short 09d6ch                         ; 77 68
     15085    jnbe short 09d9ah                         ; 77 68
    1506615086    add bx, bx                                ; 01 db
    15067     jmp word [cs:bx-063e2h]                   ; 2e ff a7 1e 9c
     15087    jmp word [cs:bx-063b4h]                   ; 2e ff a7 4c 9c
    1506815088    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1506915089    xor bl, bl                                ; 30 db
     
    1507615096    or bx, ax                                 ; 09 c3
    1507715097    mov word [bp+01ch], bx                    ; 89 5e 1c
    15078     jmp short 09d6ch                          ; eb 48
     15098    jmp short 09d9ah                          ; eb 48
    1507915099    mov dx, word [bp+004h]                    ; 8b 56 04
    1508015100    xor dh, dh                                ; 30 f6
     
    1508315103    in ax, DX                                 ; ed
    1508415104    mov word [bp+01ch], ax                    ; 89 46 1c
    15085     jmp short 09d6ch                          ; eb 36
     15105    jmp short 09d9ah                          ; eb 36
    1508615106    mov dx, 00cfch                            ; ba fc 0c
    1508715107    in eax, DX                                ; 66 ed
     
    1509215112    mov word [bp+01ch], ax                    ; 89 46 1c
    1509315113    mov word [bp+01eh], dx                    ; 89 56 1e
    15094     jmp short 09d6ch                          ; eb 22
     15114    jmp short 09d9ah                          ; eb 22
    1509515115    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1509615116    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1509915119    add dx, 00cfch                            ; 81 c2 fc 0c
    1510015120    out DX, AL                                ; ee
    15101     jmp short 09d6ch                          ; eb 10
     15121    jmp short 09d9ah                          ; eb 10
    1510215122    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1510315123    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1510615126    add dx, 00cfch                            ; 81 c2 fc 0c
    1510715127    out DX, ax                                ; ef
    15108     jmp near 09df5h                           ; e9 86 00
     15128    jmp near 09e23h                           ; e9 86 00
    1510915129    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1511015130    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1511515135    ; mov ax, cx                                ; 8b c1
    1511615136    out DX, eax                               ; 66 ef
    15117     jmp short 09df5h                          ; eb 72
     15137    jmp short 09e23h                          ; eb 72
    1511815138    mov bx, word [bp+004h]                    ; 8b 5e 04
    1511915139    mov es, [bp+026h]                         ; 8e 46 26
     
    1512215142    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1512315143    cmp cx, word [es:bx]                      ; 26 3b 0f
    15124     jbe short 09da9h                          ; 76 11
     15144    jbe short 09dd7h                          ; 76 11
    1512515145    mov ax, word [bp+020h]                    ; 8b 46 20
    1512615146    xor ah, ah                                ; 30 e4
     
    1512815148    mov word [bp+020h], ax                    ; 89 46 20
    1512915149    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15130     jmp short 09dbdh                          ; eb 14
     15150    jmp short 09debh                          ; eb 14
    1513115151    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1513215152    mov si, 0f2c0h                            ; be c0 f2
     
    1514015160    les bx, [bp-008h]                         ; c4 5e f8
    1514115161    mov word [es:bx], ax                      ; 26 89 07
    15142     jmp short 09df5h                          ; eb 2d
     15162    jmp short 09e23h                          ; eb 2d
    1514315163    mov bx, 00da0h                            ; bb a0 0d
    1514415164    mov cx, ds                                ; 8c d9
    1514515165    mov ax, strict word 00004h                ; b8 04 00
    15146     call 01923h                               ; e8 50 7b
     15166    call 01923h                               ; e8 22 7b
    1514715167    mov ax, word [bp+014h]                    ; 8b 46 14
    1514815168    push ax                                   ; 50
     
    1515115171    push 00d5ch                               ; 68 5c 0d
    1515215172    push strict byte 00004h                   ; 6a 04
    15153     call 01966h                               ; e8 83 7b
     15173    call 01966h                               ; e8 55 7b
    1515415174    add sp, strict byte 00008h                ; 83 c4 08
    1515515175    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1516315183    pop bp                                    ; 5d
    1516415184    retn                                      ; c3
    15165 pci_find_classcode_:                         ; 0xf9dfc LB 0x8
     15185pci_find_classcode_:                         ; 0xf9e2a LB 0x8
    1516615186    push bp                                   ; 55
    1516715187    mov bp, sp                                ; 89 e5
     
    1516915189    pop bp                                    ; 5d
    1517015190    retn                                      ; c3
    15171 pci_read_config_byte_:                       ; 0xf9e04 LB 0x2e
     15191pci_read_config_byte_:                       ; 0xf9e32 LB 0x2e
    1517215192    push bp                                   ; 55
    1517315193    mov bp, sp                                ; 89 e5
     
    1519515215    pop bp                                    ; 5d
    1519615216    retn                                      ; c3
    15197 pci_read_config_word_:                       ; 0xf9e32 LB 0x2a
     15217pci_read_config_word_:                       ; 0xf9e60 LB 0x2a
    1519815218    push bp                                   ; 55
    1519915219    mov bp, sp                                ; 89 e5
     
    1521915239    pop bp                                    ; 5d
    1522015240    retn                                      ; c3
    15221 pci_read_config_dword_:                      ; 0xf9e5c LB 0x4e
     15241pci_read_config_dword_:                      ; 0xf9e8a LB 0x4e
    1522215242    push bp                                   ; 55
    1522315243    mov bp, sp                                ; 89 e5
     
    1524115261    int 01ah                                  ; cd 1a
    1524215262    test cx, cx                               ; 85 c9
    15243     jne short 09e9bh                          ; 75 14
     15263    jne short 09ec9h                          ; 75 14
    1524415264    mov al, byte [bp-006h]                    ; 8a 46 fa
    1524515265    xor ah, ah                                ; 30 e4
     
    1525115271    int 01ah                                  ; cd 1a
    1525215272    test cx, cx                               ; 85 c9
    15253     je short 09ea0h                           ; 74 05
     15273    je short 09eceh                           ; 74 05
    1525415274    mov ax, strict word 00001h                ; b8 01 00
    15255     jmp short 09ea2h                          ; eb 02
     15275    jmp short 09ed0h                          ; eb 02
    1525615276    xor ax, ax                                ; 31 c0
    1525715277    cwd                                       ; 99
     
    1526115281    pop bp                                    ; 5d
    1526215282    retn                                      ; c3
    15263 vds_is_present_:                             ; 0xf9eaa LB 0x1d
     15283vds_is_present_:                             ; 0xf9ed8 LB 0x1d
    1526415284    push bx                                   ; 53
    1526515285    push bp                                   ; 55
     
    1526915289    mov es, ax                                ; 8e c0
    1527015290    test byte [es:bx], 020h                   ; 26 f6 07 20
    15271     je short 09ec2h                           ; 74 06
     15291    je short 09ef0h                           ; 74 06
    1527215292    mov ax, strict word 00001h                ; b8 01 00
    1527315293    pop bp                                    ; 5d
     
    1527815298    pop bx                                    ; 5b
    1527915299    retn                                      ; c3
    15280 vds_real_to_lin_:                            ; 0xf9ec7 LB 0x1e
     15300vds_real_to_lin_:                            ; 0xf9ef5 LB 0x1e
    1528115301    push bx                                   ; 53
    1528215302    push cx                                   ; 51
     
    1528915309    sal ax, 1                                 ; d1 e0
    1529015310    rcl dx, 1                                 ; d1 d2
    15291     loop 09ed5h                               ; e2 fa
     15311    loop 09f03h                               ; e2 fa
    1529215312    xor cx, cx                                ; 31 c9
    1529315313    add ax, bx                                ; 01 d8
     
    1529715317    pop bx                                    ; 5b
    1529815318    retn                                      ; c3
    15299 vds_build_sg_list_:                          ; 0xf9ee5 LB 0x77
     15319vds_build_sg_list_:                          ; 0xf9f13 LB 0x77
    1530015320    push bp                                   ; 55
    1530115321    mov bp, sp                                ; 89 e5
     
    1531115331    mov bx, word [bp+006h]                    ; 8b 5e 06
    1531215332    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15313     call 09ec7h                               ; e8 c3 ff
     15333    call 09ef5h                               ; e8 c3 ff
    1531415334    mov es, si                                ; 8e c6
    1531515335    mov word [es:di+004h], ax                 ; 26 89 45 04
    1531615336    mov word [es:di+006h], dx                 ; 26 89 55 06
    1531715337    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15318     call 09eaah                               ; e8 93 ff
     15338    call 09ed8h                               ; e8 93 ff
    1531915339    test ax, ax                               ; 85 c0
    15320     je short 09f2ch                           ; 74 11
     15340    je short 09f5ah                           ; 74 11
    1532115341    mov es, si                                ; 8e c6
    1532215342    mov ax, 08105h                            ; b8 05 81
    1532315343    mov dx, strict word 00000h                ; ba 00 00
    1532415344    int 04bh                                  ; cd 4b
    15325     jc short 09f29h                           ; 72 02
     15345    jc short 09f57h                           ; 72 02
    1532615346    db  032h, 0c0h
    1532715347    ; xor al, al                                ; 32 c0
    1532815348    cbw                                       ; 98
    15329     jmp short 09f53h                          ; eb 27
     15349    jmp short 09f81h                          ; eb 27
    1533015350    mov es, si                                ; 8e c6
    1533115351    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1534415364    pop bp                                    ; 5d
    1534515365    retn 00004h                               ; c2 04 00
    15346 vds_free_sg_list_:                           ; 0xf9f5c LB 0x34
     15366vds_free_sg_list_:                           ; 0xf9f8a LB 0x36
    1534715367    push bp                                   ; 55
    1534815368    mov bp, sp                                ; 89 e5
     
    1535015370    push di                                   ; 57
    1535115371    mov bx, ax                                ; 89 c3
    15352     call 09eaah                               ; e8 44 ff
     15372    call 09ed8h                               ; e8 44 ff
    1535315373    test ax, ax                               ; 85 c0
    15354     je short 09f7bh                           ; 74 11
     15374    je short 09fa9h                           ; 74 11
    1535515375    mov di, bx                                ; 89 df
    1535615376    mov es, dx                                ; 8e c2
     
    1535815378    mov dx, strict word 00000h                ; ba 00 00
    1535915379    int 04bh                                  ; cd 4b
    15360     jc short 09f7ah                           ; 72 02
     15380    jc short 09fa8h                           ; 72 02
    1536115381    db  032h, 0c0h
    1536215382    ; xor al, al                                ; 32 c0
     
    1536915389    pop bp                                    ; 5d
    1537015390    retn                                      ; c3
    15371     times 0x6 db 0
    15372 __U4M:                                       ; 0xf9f90 LB 0x20
     15391    times 0x8 db 0
     15392__U4M:                                       ; 0xf9fc0 LB 0x20
    1537315393    pushfw                                    ; 9c
    1537415394    push si                                   ; 56
     
    1539715417    retn                                      ; c3
    1539815418    times 0x4 db 0
    15399 __U4D:                                       ; 0xf9fb0 LB 0x30
     15419__U4D:                                       ; 0xf9fe0 LB 0x30
    1540015420    pushfw                                    ; 9c
    1540115421    push DS                                   ; 1e
     
    1541215432    push dx                                   ; 52
    1541315433    push ax                                   ; 50
    15414     call 0a095h                               ; e8 d0 00
     15434    call 0a0c5h                               ; e8 d0 00
    1541515435    mov cx, word [bp-002h]                    ; 8b 4e fe
    1541615436    mov bx, word [bp-004h]                    ; 8b 5e fc
     
    1542315443    retn                                      ; c3
    1542415444    times 0xe db 0
    15425 __U8RS:                                      ; 0xf9fe0 LB 0x10
     15445__U8RS:                                      ; 0xfa010 LB 0x10
    1542615446    test si, si                               ; 85 f6
    15427     je short 09fefh                           ; 74 0b
     15447    je short 0a01fh                           ; 74 0b
    1542815448    shr ax, 1                                 ; d1 e8
    1542915449    rcr bx, 1                                 ; d1 db
     
    1543115451    rcr dx, 1                                 ; d1 da
    1543215452    dec si                                    ; 4e
    15433     jne short 09fe4h                          ; 75 f5
     15453    jne short 0a014h                          ; 75 f5
    1543415454    retn                                      ; c3
    15435 __U8LS:                                      ; 0xf9ff0 LB 0x10
     15455__U8LS:                                      ; 0xfa020 LB 0x10
    1543615456    test si, si                               ; 85 f6
    15437     je short 09fffh                           ; 74 0b
     15457    je short 0a02fh                           ; 74 0b
    1543815458    sal dx, 1                                 ; d1 e2
    1543915459    rcl cx, 1                                 ; d1 d1
     
    1544115461    rcl ax, 1                                 ; d1 d0
    1544215462    dec si                                    ; 4e
    15443     jne short 09ff4h                          ; 75 f5
     15463    jne short 0a024h                          ; 75 f5
    1544415464    retn                                      ; c3
    15445 _fmemset_:                                   ; 0xfa000 LB 0x10
     15465_fmemset_:                                   ; 0xfa030 LB 0x10
    1544615466    push di                                   ; 57
    1544715467    mov es, dx                                ; 8e c2
     
    1545415474    retn                                      ; c3
    1545515475    times 0x3 db 0
    15456 _fmemcpy_:                                   ; 0xfa010 LB 0x3a
     15476_fmemcpy_:                                   ; 0xfa040 LB 0x3a
    1545715477    push bp                                   ; 55
    1545815478    db  08bh, 0ech
     
    1547915499    add byte [bx+si], al                      ; 00 00
    1548015500    add byte [bx+si], al                      ; 00 00
    15481     db  060h, 0a0h, 062h, 0a0h, 066h, 0a0h, 066h, 0a0h, 066h, 0a0h, 068h, 0a0h, 068h, 0a0h, 06ah, 0a0h
    15482     db  06eh, 0a0h, 06eh, 0a0h, 070h, 0a0h, 075h, 0a0h, 077h, 0a0h
    15483 apm_worker:                                  ; 0xfa04a LB 0x3a
     15501    nop                                       ; 90
     15502    mov AL, byte [0a092h]                     ; a0 92 a0
     15503    xchg si, ax                               ; 96
     15504    mov AL, byte [0a096h]                     ; a0 96 a0
     15505    xchg si, ax                               ; 96
     15506    mov AL, byte [0a098h]                     ; a0 98 a0
     15507    cbw                                       ; 98
     15508    mov AL, byte [0a09ah]                     ; a0 9a a0
     15509    sahf                                      ; 9e
     15510    mov AL, byte [0a09eh]                     ; a0 9e a0
     15511    mov AL, byte [0a5a0h]                     ; a0 a0 a5
     15512    mov AL, byte [0a0a7h]                     ; a0 a7 a0
     15513apm_worker:                                  ; 0xfa07a LB 0x3a
    1548415514    sti                                       ; fb
    1548515515    push ax                                   ; 50
     
    1549315523    pop ax                                    ; 58
    1549415524    mov AH, strict byte 053h                  ; b4 53
    15495     jnc short 0a080h                          ; 73 25
    15496     jmp word [cs:bp-05fd0h]                   ; 2e ff a6 30 a0
    15497     jmp short 0a07eh                          ; eb 1c
     15525    jnc short 0a0b0h                          ; 73 25
     15526    jmp word [cs:bp-05fa0h]                   ; 2e ff a6 60 a0
     15527    jmp short 0a0aeh                          ; eb 1c
    1549815528    sti                                       ; fb
    1549915529    hlt                                       ; f4
    15500     jmp short 0a07eh                          ; eb 18
    15501     jmp short 0a07eh                          ; eb 16
    15502     jmp short 0a080h                          ; eb 16
     15530    jmp short 0a0aeh                          ; eb 18
     15531    jmp short 0a0aeh                          ; eb 16
     15532    jmp short 0a0b0h                          ; eb 16
    1550315533    mov AH, strict byte 080h                  ; b4 80
    15504     jmp short 0a082h                          ; eb 14
    15505     jmp short 0a080h                          ; eb 10
     15534    jmp short 0a0b2h                          ; eb 14
     15535    jmp short 0a0b0h                          ; eb 10
    1550615536    mov ax, 00102h                            ; b8 02 01
    15507     jmp short 0a07eh                          ; eb 09
    15508     jmp short 0a07eh                          ; eb 07
     15537    jmp short 0a0aeh                          ; eb 09
     15538    jmp short 0a0aeh                          ; eb 07
    1550915539    mov BL, strict byte 000h                  ; b3 00
    1551015540    mov cx, strict word 00000h                ; b9 00 00
    15511     jmp short 0a07eh                          ; eb 00
     15541    jmp short 0a0aeh                          ; eb 00
    1551215542    clc                                       ; f8
    1551315543    retn                                      ; c3
     
    1551515545    stc                                       ; f9
    1551615546    retn                                      ; c3
    15517 apm_pm16_entry:                              ; 0xfa084 LB 0x11
     15547apm_pm16_entry:                              ; 0xfa0b4 LB 0x11
    1551815548    mov AH, strict byte 002h                  ; b4 02
    1551915549    push DS                                   ; 1e
     
    1552315553    add bp, strict byte 00008h                ; 83 c5 08
    1552415554    mov ds, bp                                ; 8e dd
    15525     call 0a04ah                               ; e8 b8 ff
     15555    call 0a07ah                               ; e8 b8 ff
    1552615556    pop bp                                    ; 5d
    1552715557    pop DS                                    ; 1f
    1552815558    retf                                      ; cb
    15529 _DoUInt32Div:                                ; 0xfa095 LB 0x26b
     15559_DoUInt32Div:                                ; 0xfa0c5 LB 0x26b
    1553015560    push bp                                   ; 55
    1553115561    mov bp, sp                                ; 89 e5
     
    1554515575    mov [bp-006h], ds                         ; 8c 5e fa
    1554615576    cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
    15547     jne short 0a0e5h                          ; 75 22
     15577    jne short 0a115h                          ; 75 22
    1554815578    mov ax, word [bx]                         ; 8b 07
    1554915579    test ax, ax                               ; 85 c0
    15550     je short 0a0e2h                           ; 74 19
     15580    je short 0a112h                           ; 74 19
    1555115581    cmp ax, strict word 00001h                ; 3d 01 00
    15552     jne short 0a0e5h                          ; 75 17
     15582    jne short 0a115h                          ; 75 17
    1555315583    xor ax, ax                                ; 31 c0
    1555415584    mov word [bp+00ah], ax                    ; 89 46 0a
     
    1555815588    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1555915589    mov word [bp+006h], ax                    ; 89 46 06
    15560     jmp near 0a2edh                           ; e9 08 02
     15590    jmp near 0a31dh                           ; e9 08 02
    1556115591    lds bx, [bp-00ch]                         ; c5 5e f4
    1556215592    mov ax, word [bx+002h]                    ; 8b 47 02
    1556315593    mov ds, [bp-006h]                         ; 8e 5e fa
    1556415594    cmp ax, word [si+002h]                    ; 3b 44 02
    15565     je short 0a10bh                           ; 74 18
     15595    je short 0a13bh                           ; 74 18
    1556615596    mov ds, [bp-00ah]                         ; 8e 5e f6
    1556715597    mov ax, word [bx+002h]                    ; 8b 47 02
    1556815598    mov ds, [bp-006h]                         ; 8e 5e fa
    1556915599    cmp ax, word [si+002h]                    ; 3b 44 02
    15570     jbe short 0a106h                          ; 76 05
     15600    jbe short 0a136h                          ; 76 05
    1557115601    mov ax, strict word 00001h                ; b8 01 00
    15572     jmp short 0a12ch                          ; eb 26
     15602    jmp short 0a15ch                          ; eb 26
    1557315603    mov ax, strict word 0ffffh                ; b8 ff ff
    15574     jmp short 0a12ch                          ; eb 21
     15604    jmp short 0a15ch                          ; eb 21
    1557515605    mov ds, [bp-00ah]                         ; 8e 5e f6
    1557615606    mov ax, word [bx]                         ; 8b 07
    1557715607    mov ds, [bp-006h]                         ; 8e 5e fa
    1557815608    cmp ax, word [si]                         ; 3b 04
    15579     je short 0a12ah                           ; 74 13
     15609    je short 0a15ah                           ; 74 13
    1558015610    mov ds, [bp-00ah]                         ; 8e 5e f6
    1558115611    mov ax, word [bx]                         ; 8b 07
    1558215612    mov ds, [bp-006h]                         ; 8e 5e fa
    1558315613    cmp ax, word [si]                         ; 3b 04
    15584     jbe short 0a125h                          ; 76 02
    15585     jmp short 0a101h                          ; eb dc
     15614    jbe short 0a155h                          ; 76 02
     15615    jmp short 0a131h                          ; eb dc
    1558615616    mov ax, strict word 0ffffh                ; b8 ff ff
    15587     jmp short 0a12ch                          ; eb 02
     15617    jmp short 0a15ch                          ; eb 02
    1558815618    xor ax, ax                                ; 31 c0
    1558915619    test ax, ax                               ; 85 c0
    15590     jnl short 0a14eh                          ; 7d 1e
     15620    jnl short 0a17eh                          ; 7d 1e
    1559115621    lds bx, [bp-00ch]                         ; c5 5e f4
    1559215622    mov ax, word [bx]                         ; 8b 07
     
    1559815628    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
    1559915629    mov word [bx], strict word 00000h         ; c7 07 00 00
    15600     jmp short 0a0e2h                          ; eb 94
    15601     jne short 0a165h                          ; 75 15
     15630    jmp short 0a112h                          ; eb 94
     15631    jne short 0a195h                          ; 75 15
    1560215632    mov ds, [bp-008h]                         ; 8e 5e f8
    1560315633    mov word [di+002h], ax                    ; 89 45 02
     
    1560615636    mov word [bx], strict word 00001h         ; c7 07 01 00
    1560715637    mov word [bx+002h], ax                    ; 89 47 02
    15608     jmp near 0a2edh                           ; e9 88 01
     15638    jmp near 0a31dh                           ; e9 88 01
    1560915639    lds bx, [bp-00ch]                         ; c5 5e f4
    1561015640    mov ax, word [bx+002h]                    ; 8b 47 02
    1561115641    test ax, ax                               ; 85 c0
    15612     je short 0a180h                           ; 74 11
     15642    je short 0a1b0h                           ; 74 11
    1561315643    push ax                                   ; 50
    1561415644    mov ax, 0f000h                            ; b8 00 f0
    1561515645    mov ds, ax                                ; 8e d8
    15616     call 0a300h                               ; e8 88 01
     15646    call 0a330h                               ; e8 88 01
    1561715647    add sp, strict byte 00002h                ; 83 c4 02
    1561815648    add ax, strict word 00010h                ; 05 10 00
    15619     jmp short 0a18dh                          ; eb 0d
     15649    jmp short 0a1bdh                          ; eb 0d
    1562015650    push word [bx]                            ; ff 37
    1562115651    mov ax, 0f000h                            ; b8 00 f0
    1562215652    mov ds, ax                                ; 8e d8
    15623     call 0a300h                               ; e8 76 01
     15653    call 0a330h                               ; e8 76 01
    1562415654    add sp, strict byte 00002h                ; 83 c4 02
    1562515655    mov word [bp-014h], ax                    ; 89 46 ec
     
    1562715657    mov ax, word [si+002h]                    ; 8b 44 02
    1562815658    test ax, ax                               ; 85 c0
    15629     je short 0a1abh                           ; 74 11
     15659    je short 0a1dbh                           ; 74 11
    1563015660    push ax                                   ; 50
    1563115661    mov ax, 0f000h                            ; b8 00 f0
    1563215662    mov ds, ax                                ; 8e d8
    15633     call 0a300h                               ; e8 5d 01
     15663    call 0a330h                               ; e8 5d 01
    1563415664    add sp, strict byte 00002h                ; 83 c4 02
    1563515665    add ax, strict word 00010h                ; 05 10 00
    15636     jmp short 0a1b8h                          ; eb 0d
     15666    jmp short 0a1e8h                          ; eb 0d
    1563715667    push word [si]                            ; ff 34
    1563815668    mov ax, 0f000h                            ; b8 00 f0
    1563915669    mov ds, ax                                ; 8e d8
    15640     call 0a300h                               ; e8 4b 01
     15670    call 0a330h                               ; e8 4b 01
    1564115671    add sp, strict byte 00002h                ; 83 c4 02
    1564215672    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    1564915679    mov word [bp-016h], ax                    ; 89 46 ea
    1565015680    test dx, dx                               ; 85 d2
    15651     je short 0a228h                           ; 74 56
     15681    je short 0a258h                           ; 74 56
    1565215682    mov cx, dx                                ; 89 d1
    1565315683    xor ch, dh                                ; 30 f5
     
    1565515685    mov ax, word [si]                         ; 8b 04
    1565615686    mov dx, word [si+002h]                    ; 8b 54 02
    15657     jcxz 0a1e6h                               ; e3 06
     15687    jcxz 0a216h                               ; e3 06
    1565815688    sal ax, 1                                 ; d1 e0
    1565915689    rcl dx, 1                                 ; d1 d2
    15660     loop 0a1e0h                               ; e2 fa
     15690    loop 0a210h                               ; e2 fa
    1566115691    mov word [bp-018h], ax                    ; 89 46 e8
    1566215692    mov word [bp-016h], dx                    ; 89 56 ea
     
    1566415694    lds bx, [bp-00ch]                         ; c5 5e f4
    1566515695    cmp ax, word [bx+002h]                    ; 3b 47 02
    15666     jnbe short 0a206h                         ; 77 0f
     15696    jnbe short 0a236h                         ; 77 0f
    1566715697    mov ax, word [bp-016h]                    ; 8b 46 ea
    1566815698    cmp ax, word [bx+002h]                    ; 3b 47 02
    15669     jne short 0a20ah                          ; 75 0b
     15699    jne short 0a23ah                          ; 75 0b
    1567015700    mov ax, word [bp-018h]                    ; 8b 46 e8
    1567115701    cmp ax, word [bx]                         ; 3b 07
    15672     jbe short 0a20ah                          ; 76 04
     15702    jbe short 0a23ah                          ; 76 04
    1567315703    mov AL, strict byte 001h                  ; b0 01
    15674     jmp short 0a20ch                          ; eb 02
     15704    jmp short 0a23ch                          ; eb 02
    1567515705    xor al, al                                ; 30 c0
    1567615706    test al, al                               ; 84 c0
    15677     je short 0a233h                           ; 74 23
     15707    je short 0a263h                           ; 74 23
    1567815708    shr word [bp-016h], 1                     ; d1 6e ea
    1567915709    rcr word [bp-018h], 1                     ; d1 5e e8
    1568015710    dec word [bp-012h]                        ; ff 4e ee
    15681     jmp short 0a233h                          ; eb 18
     15711    jmp short 0a263h                          ; eb 18
    1568215712    mov cx, strict word 0001fh                ; b9 1f 00
    1568315713    sal word [bp-018h], 1                     ; d1 66 e8
    1568415714    rcl word [bp-016h], 1                     ; d1 56 ea
    15685     loop 0a21eh                               ; e2 f8
    15686     jmp short 0a216h                          ; eb ee
     15715    loop 0a24eh                               ; e2 f8
     15716    jmp short 0a246h                          ; eb ee
    1568715717    mov ax, word [si]                         ; 8b 04
    1568815718    mov word [bp-018h], ax                    ; 89 46 e8
     
    1570115731    mov ds, [bp-006h]                         ; 8e 5e fa
    1570215732    cmp ax, word [si+002h]                    ; 3b 44 02
    15703     jnbe short 0a25fh                         ; 77 06
    15704     jne short 0a263h                          ; 75 08
     15733    jnbe short 0a28fh                         ; 77 06
     15734    jne short 0a293h                          ; 75 08
    1570515735    cmp dx, word [si]                         ; 3b 14
    15706     jc short 0a263h                           ; 72 04
     15736    jc short 0a293h                           ; 72 04
    1570715737    mov AL, strict byte 001h                  ; b0 01
    15708     jmp short 0a265h                          ; eb 02
     15738    jmp short 0a295h                          ; eb 02
    1570915739    xor al, al                                ; 30 c0
    1571015740    test al, al                               ; 84 c0
    15711     je short 0a2cah                           ; 74 61
     15741    je short 0a2fah                           ; 74 61
    1571215742    mov ds, [bp-008h]                         ; 8e 5e f8
    1571315743    mov ax, word [di+002h]                    ; 8b 45 02
    1571415744    cmp ax, word [bp-016h]                    ; 3b 46 ea
    15715     jnbe short 0a280h                         ; 77 0c
     15745    jnbe short 0a2b0h                         ; 77 0c
    1571615746    cmp ax, word [bp-016h]                    ; 3b 46 ea
    15717     jne short 0a284h                          ; 75 0b
     15747    jne short 0a2b4h                          ; 75 0b
    1571815748    mov ax, word [di]                         ; 8b 05
    1571915749    cmp ax, word [bp-018h]                    ; 3b 46 e8
    15720     jc short 0a284h                           ; 72 04
     15750    jc short 0a2b4h                           ; 72 04
    1572115751    mov AL, strict byte 001h                  ; b0 01
    15722     jmp short 0a286h                          ; eb 02
     15752    jmp short 0a2b6h                          ; eb 02
    1572315753    xor al, al                                ; 30 c0
    1572415754    test al, al                               ; 84 c0
    15725     je short 0a2b0h                           ; 74 26
     15755    je short 0a2e0h                           ; 74 26
    1572615756    mov ax, word [bp-018h]                    ; 8b 46 e8
    1572715757    mov ds, [bp-008h]                         ; 8e 5e f8
     
    1573215762    xor dx, dx                                ; 31 d2
    1573315763    mov cx, word [bp-012h]                    ; 8b 4e ee
    15734     jcxz 0a2a8h                               ; e3 06
     15764    jcxz 0a2d8h                               ; e3 06
    1573515765    sal ax, 1                                 ; d1 e0
    1573615766    rcl dx, 1                                 ; d1 d2
    15737     loop 0a2a2h                               ; e2 fa
     15767    loop 0a2d2h                               ; e2 fa
    1573815768    lds bx, [bp-010h]                         ; c5 5e f0
    1573915769    or word [bx], ax                          ; 09 07
     
    1574415774    mov ds, [bp-006h]                         ; 8e 5e fa
    1574515775    cmp ax, word [si+002h]                    ; 3b 44 02
    15746     jc short 0a2c6h                           ; 72 06
    15747     jne short 0a2cch                          ; 75 0a
     15776    jc short 0a2f6h                           ; 72 06
     15777    jne short 0a2fch                          ; 75 0a
    1574815778    cmp dx, word [si]                         ; 3b 14
    15749     jnc short 0a2cch                          ; 73 06
     15779    jnc short 0a2fch                          ; 73 06
    1575015780    mov AL, strict byte 001h                  ; b0 01
    15751     jmp short 0a2ceh                          ; eb 04
    15752     jmp short 0a2edh                          ; eb 21
     15781    jmp short 0a2feh                          ; eb 04
     15782    jmp short 0a31dh                          ; eb 21
    1575315783    xor al, al                                ; 30 c0
    1575415784    test al, al                               ; 84 c0
    15755     je short 0a2e1h                           ; 74 0f
    15756     jmp short 0a2edh                          ; eb 19
     15785    je short 0a311h                           ; 74 0f
     15786    jmp short 0a31dh                          ; eb 19
    1575715787    mov cx, strict word 0001fh                ; b9 1f 00
    1575815788    sal word [bp-018h], 1                     ; d1 66 e8
    1575915789    rcl word [bp-016h], 1                     ; d1 56 ea
    15760     loop 0a2d7h                               ; e2 f8
    15761     jmp short 0a2e7h                          ; eb 06
     15790    loop 0a307h                               ; e2 f8
     15791    jmp short 0a317h                          ; eb 06
    1576215792    shr word [bp-016h], 1                     ; d1 6e ea
    1576315793    rcr word [bp-018h], 1                     ; d1 5e e8
    1576415794    dec word [bp-012h]                        ; ff 4e ee
    15765     jmp near 0a269h                           ; e9 7c ff
     15795    jmp near 0a299h                           ; e9 7c ff
    1576615796    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1576715797    mov dx, word [bp-01ah]                    ; 8b 56 e6
     
    1577215802    retn                                      ; c3
    1577315803    times 0x6 db 0
    15774 _ASMBitLastSetU16:                           ; 0xfa300 LB 0x18
     15804_ASMBitLastSetU16:                           ; 0xfa330 LB 0x18
    1577515805    push bp                                   ; 55
    1577615806    db  08bh, 0ech
     
    1577815808    mov cx, word [bp+004h]                    ; 8b 4e 04
    1577915809    test cx, cx                               ; 85 c9
    15780     je short 0a314h                           ; 74 0a
     15810    je short 0a344h                           ; 74 0a
    1578115811    mov ax, strict word 00010h                ; b8 10 00
    1578215812    sal cx, 1                                 ; d1 e1
    15783     jc short 0a316h                           ; 72 05
     15813    jc short 0a346h                           ; 72 05
    1578415814    dec ax                                    ; 48
    15785     jmp short 0a30dh                          ; eb f9
     15815    jmp short 0a33dh                          ; eb f9
    1578615816    db  033h, 0c0h
    1578715817    ; xor ax, ax                                ; 33 c0
     
    1578915819    retn                                      ; c3
    1579015820
    15791   ; Padding 0x36e8 bytes at 0xfa318
    15792   times 14056 db 0
     15821  ; Padding 0x36b8 bytes at 0xfa348
     15822  times 14008 db 0
    1579315823
    1579415824section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1583715867    add bp, strict byte 00008h                ; 83 c5 08
    1583815868    push ebp                                  ; 66 55
    15839     mov bp, 0a086h                            ; bd 86 a0
     15869    mov bp, 0a0b6h                            ; bd b6 a0
    1584015870    add byte [bx+si], al                      ; 00 00
    1584115871    push ebp                                  ; 66 55
     
    1636116391    mov ax, 0027fh                            ; b8 7f 02
    1636216392    mov word [00413h], ax                     ; a3 13 04
    16363     mov ax, 0e9d6h                            ; b8 d6 e9
     16393    mov ax, 0e9cch                            ; b8 cc e9
    1636416394    mov word [00018h], ax                     ; a3 18 00
    1636516395    mov ax, 0f000h                            ; b8 00 f0
     
    1644616476    mov dx, 0c800h                            ; ba 00 c8
    1644716477    call 01600h                               ; e8 ea 33
    16448     call 04eabh                               ; e8 92 6c
     16478    call 04ed9h                               ; e8 c0 6c
    1644916479    pop DS                                    ; 1f
    1645016480    mov ax, 0ff53h                            ; b8 53 ff
     
    1656316593    call 01c9fh                               ; e8 63 39
    1656416594    call 02118h                               ; e8 d9 3d
    16565     call 098c8h                               ; e8 86 b5
    16566     call 08753h                               ; e8 0e a4
     16595    call 098f6h                               ; e8 b4 b5
     16596    call 08781h                               ; e8 3c a4
    1656716597    call 0ed2fh                               ; e8 e7 09
    1656816598    call 0e2d2h                               ; e8 87 ff
     
    1657416604    call 01600h                               ; e8 a9 32
    1657516605    call 0178dh                               ; e8 33 34
    16576     call 03b23h                               ; e8 c6 57
     16606    call 03b50h                               ; e8 f3 57
    1657716607    sti                                       ; fb
    1657816608    int 019h                                  ; cd 19
     
    1667616706    pop DS                                    ; 1f
    1667716707    cld                                       ; fc
    16678     call 06410h                               ; e8 ce 7c
     16708    call 0643eh                               ; e8 fc 7c
    1667916709    popaw                                     ; 61
    1668016710    pop ES                                    ; 07
     
    1675216782    pop DS                                    ; 1f
    1675316783    cld                                       ; fc
    16754     call 056dbh                               ; e8 99 6e
     16784    call 05709h                               ; e8 c7 6e
    1675516785    popaw                                     ; 61
    1675616786    pop DS                                    ; 1f
     
    1676916799    pop DS                                    ; 1f
    1677016800    cld                                       ; fc
    16771     call 056dbh                               ; e8 7b 6e
     16801    call 05709h                               ; e8 a9 6e
    1677216802    popaw                                     ; 61
    1677316803    pop DS                                    ; 1f
     
    1677716807    times 0x121 db 0
    1677816808    db  'XM'
    16779 biosorg_check_at_0E987h:                     ; 0xfe987 LB 0x5c
     16809biosorg_check_at_0E987h:                     ; 0xfe987 LB 0x52
    1678016810    cli                                       ; fa
    1678116811    push ax                                   ; 50
    1678216812    mov AL, strict byte 0adh                  ; b0 ad
    1678316813    out strict byte 064h, AL                  ; e6 64
    16784     mov AL, strict byte 00bh                  ; b0 0b
    16785     out strict byte 020h, AL                  ; e6 20
    16786     in AL, strict byte 020h                   ; e4 20
    16787     and AL, strict byte 002h                  ; 24 02
    16788     je short 0e9d0h                           ; 74 39
    1678916814    in AL, strict byte 060h                   ; e4 60
    1679016815    push DS                                   ; 1e
     
    1679416819    stc                                       ; f9
    1679516820    int 015h                                  ; cd 15
    16796     jnc short 0e9cah                          ; 73 27
     16821    jnc short 0e9c0h                          ; 73 27
    1679716822    sti                                       ; fb
    1679816823    cmp AL, strict byte 0e0h                  ; 3c e0
    16799     jne short 0e9b3h                          ; 75 0b
     16824    jne short 0e9a9h                          ; 75 0b
    1680016825    db  033h, 0c0h
    1680116826    ; xor ax, ax                                ; 33 c0
    1680216827    mov ds, ax                                ; 8e d8
    1680316828    or byte [00496h], 002h                    ; 80 0e 96 04 02
    16804     jmp short 0e9cah                          ; eb 17
     16829    jmp short 0e9c0h                          ; eb 17
    1680516830    cmp AL, strict byte 0e1h                  ; 3c e1
    16806     jne short 0e9c2h                          ; 75 0b
     16831    jne short 0e9b8h                          ; 75 0b
    1680716832    db  033h, 0c0h
    1680816833    ; xor ax, ax                                ; 33 c0
    1680916834    mov ds, ax                                ; 8e d8
    1681016835    or byte [00496h], 001h                    ; 80 0e 96 04 01
    16811     jmp short 0e9cah                          ; eb 08
     16836    jmp short 0e9c0h                          ; eb 08
    1681216837    push ES                                   ; 06
    1681316838    push CS                                   ; 0e
    1681416839    pop DS                                    ; 1f
    1681516840    cld                                       ; fc
    16816     call 051b3h                               ; e8 ea 67
     16841    call 051e1h                               ; e8 22 68
    1681716842    pop ES                                    ; 07
    1681816843    popaw                                     ; 61
    1681916844    pop DS                                    ; 1f
    1682016845    cli                                       ; fa
    16821     call 0e034h                               ; e8 64 f6
     16846    call 0e034h                               ; e8 6e f6
    1682216847    mov AL, strict byte 0aeh                  ; b0 ae
    1682316848    out strict byte 064h, AL                  ; e6 64
     
    1683016855    pop DS                                    ; 1f
    1683116856    cld                                       ; fc
    16832     call 06eb7h                               ; e8 d8 84
     16857    call 06ee5h                               ; e8 10 85
    1683316858    pop DS                                    ; 1f
    1683416859    pop ES                                    ; 07
    1683516860    popaw                                     ; 61
    1683616861    iret                                      ; cf
    16837 biosorg_check_before_or_at_0EC57h:           ; 0xfe9e3 LB 0x276
    16838     times 0x274 db 0
     16862biosorg_check_before_or_at_0EC57h:           ; 0xfe9d9 LB 0x280
     16863    times 0x27e db 0
    1683916864    db  'XM'
    1684016865biosorg_check_at_0EC59h:                     ; 0xfec59 LB 0x2
     
    1685216877    cld                                       ; fc
    1685316878    push 0ece9h                               ; 68 e9 ec
    16854     jmp near 03b67h                           ; e9 f6 4e
     16879    jmp near 03b94h                           ; e9 23 4f
    1685516880    push ES                                   ; 06
    1685616881    push ax                                   ; 50
     
    1685816883    push cx                                   ; 51
    1685916884    push dx                                   ; 52
    16860     call 03b3bh                               ; e8 c2 4e
     16885    call 03b68h                               ; e8 ef 4e
    1686116886    cmp AL, strict byte 000h                  ; 3c 00
    1686216887    je short 0ecabh                           ; 74 2e
    16863     call 03b51h                               ; e8 d1 4e
     16888    call 03b7eh                               ; e8 fe 4e
    1686416889    pop dx                                    ; 5a
    1686516890    push dx                                   ; 52
     
    1687916904    cld                                       ; fc
    1688016905    push 0ece9h                               ; 68 e9 ec
    16881     jmp near 04160h                           ; e9 c9 54
     16906    jmp near 0418eh                           ; e9 f7 54
    1688216907    and dl, 0e0h                              ; 80 e2 e0
    1688316908    db  03ah, 0c2h
     
    1691916944    jne short 0ecc8h                          ; 75 06
    1692016945    push 0ece9h                               ; 68 e9 ec
    16921     jmp near 03178h                           ; e9 b0 44
     16946    jmp near 0314fh                           ; e9 87 44
    1692216947int13_notfloppy:                             ; 0xfecc8 LB 0x14
    1692316948    cmp dl, 0e0h                              ; 80 fa e0
     
    1692516950    shr ebx, 010h                             ; 66 c1 eb 10
    1692616951    push bx                                   ; 53
    16927     call 045a2h                               ; e8 cd 58
     16952    call 045d0h                               ; e8 fb 58
    1692816953    pop bx                                    ; 5b
    1692916954    sal ebx, 010h                             ; 66 c1 e3 10
     
    1693216957    cmp ah, 040h                              ; 80 fc 40
    1693316958    jnbe short 0ece6h                         ; 77 05
    16934     call 05ab2h                               ; e8 ce 6d
     16959    call 05ae0h                               ; e8 fc 6d
    1693516960    jmp short 0ece9h                          ; eb 03
    16936     call 05f01h                               ; e8 18 72
     16961    call 05f2fh                               ; e8 46 72
    1693716962int13_out:                                   ; 0xfece9 LB 0x4
    1693816963    pop DS                                    ; 1f
     
    1714817173    pop DS                                    ; 1f
    1714917174    cld                                       ; fc
    17150     call 07855h                               ; e8 78 88
     17175    call 07883h                               ; e8 a6 88
    1715117176    popaw                                     ; 61
    1715217177    pop ES                                    ; 07
     
    1719917224    mov ax, strict word 00001h                ; b8 01 00
    1720017225    push ax                                   ; 50
    17201     call 04c27h                               ; e8 57 5b
     17226    call 04c55h                               ; e8 85 5b
    1720217227    inc sp                                    ; 44
    1720317228    inc sp                                    ; 44
     
    1720617231    mov ax, strict word 00002h                ; b8 02 00
    1720717232    push ax                                   ; 50
    17208     call 04c27h                               ; e8 4a 5b
     17233    call 04c55h                               ; e8 78 5b
    1720917234    inc sp                                    ; 44
    1721017235    inc sp                                    ; 44
     
    1721317238    mov ax, strict word 00003h                ; b8 03 00
    1721417239    push ax                                   ; 50
    17215     call 04c27h                               ; e8 3d 5b
     17240    call 04c55h                               ; e8 6b 5b
    1721617241    inc sp                                    ; 44
    1721717242    inc sp                                    ; 44
     
    1722017245    mov ax, strict word 00004h                ; b8 04 00
    1722117246    push ax                                   ; 50
    17222     call 04c27h                               ; e8 30 5b
     17247    call 04c55h                               ; e8 5e 5b
    1722317248    inc sp                                    ; 44
    1722417249    inc sp                                    ; 44
     
    1750417529    pop DS                                    ; 1f
    1750517530    cld                                       ; fc
    17506     call 06d2dh                               ; e8 c6 74
     17531    call 06d5bh                               ; e8 f4 74
    1750717532    pop DS                                    ; 1f
    1750817533    pop ES                                    ; 07
     
    1752617551    cmp ah, 0c2h                              ; 80 fc c2
    1752717552    je short 0f899h                           ; 74 0e
    17528     call 06667h                               ; e8 d9 6d
     17553    call 06695h                               ; e8 07 6e
    1752917554    popaw                                     ; 61
    1753017555    pop ES                                    ; 07
     
    1753217557    popfw                                     ; 9d
    1753317558    jmp short 0f8a5h                          ; eb 11
    17534     call 09a1ah                               ; e8 83 a1
     17559    call 09a48h                               ; e8 b1 a1
    1753517560    jmp short 0f88eh                          ; eb f5
    1753617561int15_handler_mouse:                         ; 0xff899 LB 0x5
    17537     call 074c8h                               ; e8 2c 7c
     17562    call 074f6h                               ; e8 5a 7c
    1753817563    jmp short 0f88eh                          ; eb f0
    1753917564int15_handler32:                             ; 0xff89e LB 0x7
    1754017565    pushaw                                    ; 60
    17541     call 069a3h                               ; e8 01 71
     17566    call 069d1h                               ; e8 2f 71
    1754217567    popaw                                     ; 61
    1754317568    jmp short 0f88fh                          ; eb ea
     
    1757117596    pop DS                                    ; 1f
    1757217597    cld                                       ; fc
    17573     call 073f6h                               ; e8 2c 7b
     17598    call 07424h                               ; e8 5a 7b
    1757417599    pop cx                                    ; 59
    1757517600    jcxz 0f8d9h                               ; e3 0c
     
    1760317628    pop DS                                    ; 1f
    1760417629    cld                                       ; fc
    17605     call 0709bh                               ; e8 9c 77
     17630    call 070c9h                               ; e8 ca 77
    1760617631    popaw                                     ; 61
    1760717632    pop DS                                    ; 1f
     
    1769217717    pop DS                                    ; 1f
    1769317718    cld                                       ; fc
    17694     call 0715ah                               ; e8 e3 72
     17719    call 07188h                               ; e8 11 73
    1769517720    popaw                                     ; 61
    1769617721    pop DS                                    ; 1f
     
    1779717822cpu_reset:                                   ; 0xffff0 LB 0x10
    1779817823    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17799     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 001h
     17824    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 04dh
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum

    r66146 r67495  
    1 3b558b13e9e59388473cb5453a4db1d3 *VBoxPcBios286.rom
     16082f0eb1fd2fca0245f382a0d155fa7 *VBoxPcBios286.rom
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm

    r66146 r67495  
    1111
    1212
    13 ;  Copyright (C) 2004-2016 Oracle Corporation
     13;  Copyright (C) 2004-2017 Oracle Corporation
    1414
    1515;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    880880;
    881881
    882 ;  Copyright (C) 2006-2016 Oracle Corporation
     882;  Copyright (C) 2006-2017 Oracle Corporation
    883883
    884884;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    951951    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    952952_pktacc:                                     ; 0xf006a LB 0xc
    953     db  000h, 000h, 000h, 000h, 000h, 000h, 0cch, 02bh, 01ch, 081h, 043h, 090h
     953    db  000h, 000h, 000h, 000h, 000h, 000h, 05dh, 02ch, 006h, 082h, 02dh, 091h
    954954_softrst:                                    ; 0xf0076 LB 0xc
    955     db  000h, 000h, 000h, 000h, 000h, 000h, 0b4h, 02eh, 0c1h, 03bh, 0c1h, 03bh
     955    db  000h, 000h, 000h, 000h, 000h, 000h, 045h, 02fh, 0aah, 03ch, 0aah, 03ch
    956956_dskacc:                                     ; 0xf0082 LB 0x2e
    957     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0bch, 02ah, 071h, 02bh, 000h, 000h, 000h, 000h
    958     db  066h, 07fh, 041h, 080h, 019h, 08fh, 0bfh, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     957    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 04dh, 02bh, 002h, 02ch, 000h, 000h, 000h, 000h
     958    db  050h, 080h, 02bh, 081h, 003h, 090h, 0a9h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    959959    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    960960
    961 section CONST progbits vstart=0xb0 align=1 ; size=0xcde class=DATA group=DGROUP
     961section CONST progbits vstart=0xb0 align=1 ; size=0xcf0 class=DATA group=DGROUP
     962    db   'CPUID EDX: 0x%lx', 00ah, 000h
    962963    db   'NMI Handler called', 00ah, 000h
    963964    db   'INT18: BOOT FAILURE', 00ah, 000h
     
    10771078    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
    10781079
    1079 section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
    1080 _bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
     1080section CONST2 progbits vstart=0xda0 align=1 ; size=0x3fa class=DATA group=DGROUP
     1081_bios_cvs_version_string:                    ; 0xf0da0 LB 0x12
    10811082    db  'VirtualBox 5.1.51', 000h
    1082 _bios_prefix_string:                         ; 0xf0da0 LB 0x8
     1083_bios_prefix_string:                         ; 0xf0db2 LB 0x8
    10831084    db  'BIOS: ', 000h, 000h
    1084 _isotag:                                     ; 0xf0da8 LB 0x6
     1085_isotag:                                     ; 0xf0dba LB 0x6
    10851086    db  'CD001', 000h
    1086 _eltorito:                                   ; 0xf0dae LB 0x18
     1087_eltorito:                                   ; 0xf0dc0 LB 0x18
    10871088    db  'EL TORITO SPECIFICATION', 000h
    1088 _drivetypes:                                 ; 0xf0dc6 LB 0x28
     1089_drivetypes:                                 ; 0xf0dd8 LB 0x28
    10891090    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    10901091    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    10911092    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    1092 _scan_to_scanascii:                          ; 0xf0dee LB 0x37a
     1093_scan_to_scanascii:                          ; 0xf0e00 LB 0x37a
    10931094    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    10941095    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    11471148    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    11481149    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    1149 _panic_msg_keyb_buffer_full:                 ; 0xf1168 LB 0x20
     1150_panic_msg_keyb_buffer_full:                 ; 0xf117a LB 0x20
    11501151    db  '%s: keyboard input buffer full', 00ah, 000h
    11511152
    1152   ; Padding 0x478 bytes at 0xf1188
    1153   times 1144 db 0
     1153  ; Padding 0x466 bytes at 0xf119a
     1154  times 1126 db 0
    11541155
    1155 section _TEXT progbits vstart=0x1600 align=1 ; size=0x89f5 class=CODE group=AUTO
     1156section _TEXT progbits vstart=0x1600 align=1 ; size=0x8ae5 class=CODE group=AUTO
    11561157rom_scan_:                                   ; 0xf1600 LB 0x50
    11571158    push bp                                   ; 55
     
    11951196    pop bp                                    ; 5d
    11961197    retn                                      ; c3
    1197 _apic_setup:                                 ; 0xf1650 LB 0x68
     1198is_cpuid_supported_:                         ; 0xf1650 LB 0x42
     1199    push bp                                   ; 55
     1200    mov bp, sp                                ; 89 e5
     1201    push bx                                   ; 53
     1202    push cx                                   ; 51
     1203    push dx                                   ; 52
     1204    pushfd                                    ; 66 9c
     1205    pop edx                                   ; 66 5a
     1206    db  08bh, 0c2h
     1207    ; mov ax, dx                                ; 8b c2
     1208    shr edx, 010h                             ; 66 c1 ea 10
     1209    mov bx, ax                                ; 89 c3
     1210    mov cx, dx                                ; 89 d1
     1211    xor dl, 020h                              ; 80 f2 20
     1212    sal edx, 010h                             ; 66 c1 e2 10
     1213    db  08bh, 0d0h
     1214    ; mov dx, ax                                ; 8b d0
     1215    push edx                                  ; 66 52
     1216    popfd                                     ; 66 9d
     1217    pushfd                                    ; 66 9c
     1218    pop edx                                   ; 66 5a
     1219    db  08bh, 0c2h
     1220    ; mov ax, dx                                ; 8b c2
     1221    shr edx, 010h                             ; 66 c1 ea 10
     1222    cmp cx, dx                                ; 39 d1
     1223    jne short 01683h                          ; 75 04
     1224    cmp bx, ax                                ; 39 c3
     1225    je short 01688h                           ; 74 05
     1226    mov ax, strict word 00001h                ; b8 01 00
     1227    jmp short 0168ah                          ; eb 02
     1228    xor ax, ax                                ; 31 c0
     1229    lea sp, [bp-006h]                         ; 8d 66 fa
     1230    pop dx                                    ; 5a
     1231    pop cx                                    ; 59
     1232    pop bx                                    ; 5b
     1233    pop bp                                    ; 5d
     1234    retn                                      ; c3
     1235_apic_setup:                                 ; 0xf1692 LB 0xb7
    11981236    push bp                                   ; 55
    11991237    mov bp, sp                                ; 89 e5
    12001238    push si                                   ; 56
    12011239    push di                                   ; 57
     1240    sub sp, strict byte 00010h                ; 83 ec 10
     1241    call 01650h                               ; e8 b3 ff
     1242    test ax, ax                               ; 85 c0
     1243    je near 01742h                            ; 0f 84 9f 00
     1244    mov ax, strict word 00001h                ; b8 01 00
     1245    xor dx, dx                                ; 31 d2
     1246    push SS                                   ; 16
     1247    pop ES                                    ; 07
     1248    lea di, [bp-014h]                         ; 8d 7e ec
     1249    sal edx, 010h                             ; 66 c1 e2 10
     1250    db  08bh, 0d0h
     1251    ; mov dx, ax                                ; 8b d0
     1252    db  066h, 08bh, 0c2h
     1253    ; mov eax, edx                              ; 66 8b c2
     1254    cpuid                                     ; 0f a2
     1255    db  066h, 026h, 089h, 005h
     1256    ; mov dword [es:di], eax                    ; 66 26 89 05
     1257    db  066h, 026h, 089h, 05dh, 004h
     1258    ; mov dword [es:di+004h], ebx               ; 66 26 89 5d 04
     1259    db  066h, 026h, 089h, 04dh, 008h
     1260    ; mov dword [es:di+008h], ecx               ; 66 26 89 4d 08
     1261    db  066h, 026h, 089h, 055h, 00ch
     1262    ; mov dword [es:di+00ch], edx               ; 66 26 89 55 0c
     1263    mov ax, word [bp-008h]                    ; 8b 46 f8
     1264    mov dx, word [bp-006h]                    ; 8b 56 fa
     1265    push dx                                   ; 52
     1266    push ax                                   ; 50
     1267    push 000b0h                               ; 68 b0 00
     1268    push strict byte 00004h                   ; 6a 04
     1269    call 01a6bh                               ; e8 90 03
     1270    add sp, strict byte 00008h                ; 83 c4 08
     1271    mov ax, word [bp-008h]                    ; 8b 46 f8
     1272    test ah, 002h                             ; f6 c4 02
     1273    je short 01742h                           ; 74 5c
    12021274    mov ax, strict word 00078h                ; b8 78 00
    1203     call 01714h                               ; e8 b9 00
     1275    call 017a5h                               ; e8 b9 00
    12041276    cmp AL, strict byte 002h                  ; 3c 02
    1205     jne short 01664h                          ; 75 05
     1277    jne short 016f5h                          ; 75 05
    12061278    mov si, 00400h                            ; be 00 04
    1207     jmp short 01673h                          ; eb 0f
     1279    jmp short 01704h                          ; eb 0f
    12081280    test al, al                               ; 84 c0
    1209     jne short 0166dh                          ; 75 05
     1281    jne short 016feh                          ; 75 05
    12101282    mov si, 00800h                            ; be 00 08
    1211     jmp short 0166fh                          ; eb 02
     1283    jmp short 01700h                          ; eb 02
    12121284    xor si, si                                ; 31 f6
    12131285    test si, si                               ; 85 f6
    1214     je short 016b1h                           ; 74 3e
     1286    je short 01742h                           ; 74 3e
    12151287    mov ax, strict word 0001bh                ; b8 1b 00
    12161288    xor cx, cx                                ; 31 c9
     
    12491321    pop bp                                    ; 5d
    12501322    retn                                      ; c3
    1251 read_byte_:                                  ; 0xf16b8 LB 0xe
     1323read_byte_:                                  ; 0xf1749 LB 0xe
    12521324    push bx                                   ; 53
    12531325    push bp                                   ; 55
     
    12591331    pop bx                                    ; 5b
    12601332    retn                                      ; c3
    1261 write_byte_:                                 ; 0xf16c6 LB 0xe
     1333write_byte_:                                 ; 0xf1757 LB 0xe
    12621334    push si                                   ; 56
    12631335    push bp                                   ; 55
     
    12691341    pop si                                    ; 5e
    12701342    retn                                      ; c3
    1271 read_word_:                                  ; 0xf16d4 LB 0xe
     1343read_word_:                                  ; 0xf1765 LB 0xe
    12721344    push bx                                   ; 53
    12731345    push bp                                   ; 55
     
    12791351    pop bx                                    ; 5b
    12801352    retn                                      ; c3
    1281 write_word_:                                 ; 0xf16e2 LB 0xe
     1353write_word_:                                 ; 0xf1773 LB 0xe
    12821354    push si                                   ; 56
    12831355    push bp                                   ; 55
     
    12891361    pop si                                    ; 5e
    12901362    retn                                      ; c3
    1291 read_dword_:                                 ; 0xf16f0 LB 0x12
     1363read_dword_:                                 ; 0xf1781 LB 0x12
    12921364    push bx                                   ; 53
    12931365    push bp                                   ; 55
     
    13001372    pop bx                                    ; 5b
    13011373    retn                                      ; c3
    1302 write_dword_:                                ; 0xf1702 LB 0x12
     1374write_dword_:                                ; 0xf1793 LB 0x12
    13031375    push si                                   ; 56
    13041376    push bp                                   ; 55
     
    13111383    pop si                                    ; 5e
    13121384    retn                                      ; c3
    1313 inb_cmos_:                                   ; 0xf1714 LB 0x1d
     1385inb_cmos_:                                   ; 0xf17a5 LB 0x1d
    13141386    push bp                                   ; 55
    13151387    mov bp, sp                                ; 89 e5
     
    13171389    mov AH, strict byte 070h                  ; b4 70
    13181390    cmp AL, strict byte 080h                  ; 3c 80
    1319     jc short 01720h                           ; 72 02
     1391    jc short 017b1h                           ; 72 02
    13201392    mov AH, strict byte 072h                  ; b4 72
    13211393    movzx dx, ah                              ; 0f b6 d4
     
    13301402    pop bp                                    ; 5d
    13311403    retn                                      ; c3
    1332 outb_cmos_:                                  ; 0xf1731 LB 0x1f
     1404outb_cmos_:                                  ; 0xf17c2 LB 0x1f
    13331405    push bp                                   ; 55
    13341406    mov bp, sp                                ; 89 e5
     
    13371409    mov BL, strict byte 070h                  ; b3 70
    13381410    cmp AL, strict byte 080h                  ; 3c 80
    1339     jc short 0173fh                           ; 72 02
     1411    jc short 017d0h                           ; 72 02
    13401412    mov BL, strict byte 072h                  ; b3 72
    13411413    movzx dx, bl                              ; 0f b6 d3
     
    13491421    pop bp                                    ; 5d
    13501422    retn                                      ; c3
    1351 _dummy_isr_function:                         ; 0xf1750 LB 0x6b
     1423_dummy_isr_function:                         ; 0xf17e1 LB 0x6b
    13521424    push bp                                   ; 55
    13531425    mov bp, sp                                ; 89 e5
     
    13631435    mov byte [bp-002h], al                    ; 88 46 fe
    13641436    test al, al                               ; 84 c0
    1365     je short 017abh                           ; 74 43
     1437    je short 0183ch                           ; 74 43
    13661438    mov AL, strict byte 00bh                  ; b0 0b
    13671439    mov dx, 000a0h                            ; ba a0 00
     
    13721444    mov cx, ax                                ; 89 c1
    13731445    test al, al                               ; 84 c0
    1374     je short 0178dh                           ; 74 16
     1446    je short 0181eh                           ; 74 16
    13751447    mov dx, 000a1h                            ; ba a1 00
    13761448    in AL, DX                                 ; ec
     
    13841456    mov dx, 000a0h                            ; ba a0 00
    13851457    out DX, AL                                ; ee
    1386     jmp short 017a2h                          ; eb 15
     1458    jmp short 01833h                          ; eb 15
    13871459    mov dx, strict word 00021h                ; ba 21 00
    13881460    in AL, DX                                 ; ec
     
    14021474    mov dx, strict word 0006bh                ; ba 6b 00
    14031475    mov ax, strict word 00040h                ; b8 40 00
    1404     call 016c6h                               ; e8 0f ff
     1476    call 01757h                               ; e8 0f ff
    14051477    mov sp, bp                                ; 89 ec
    14061478    pop bp                                    ; 5d
    14071479    retn                                      ; c3
    1408 _nmi_handler_msg:                            ; 0xf17bb LB 0x12
     1480_nmi_handler_msg:                            ; 0xf184c LB 0x12
    14091481    push bp                                   ; 55
    14101482    mov bp, sp                                ; 89 e5
    1411     push 000b0h                               ; 68 b0 00
     1483    push 000c2h                               ; 68 c2 00
    14121484    push strict byte 00007h                   ; 6a 07
    1413     call 019dah                               ; e8 14 02
     1485    call 01a6bh                               ; e8 14 02
    14141486    add sp, strict byte 00004h                ; 83 c4 04
    14151487    mov sp, bp                                ; 89 ec
    14161488    pop bp                                    ; 5d
    14171489    retn                                      ; c3
    1418 _int18_panic_msg:                            ; 0xf17cd LB 0x12
     1490_int18_panic_msg:                            ; 0xf185e LB 0x12
    14191491    push bp                                   ; 55
    14201492    mov bp, sp                                ; 89 e5
    1421     push 000c4h                               ; 68 c4 00
     1493    push 000d6h                               ; 68 d6 00
    14221494    push strict byte 00007h                   ; 6a 07
    1423     call 019dah                               ; e8 02 02
     1495    call 01a6bh                               ; e8 02 02
    14241496    add sp, strict byte 00004h                ; 83 c4 04
    14251497    mov sp, bp                                ; 89 ec
    14261498    pop bp                                    ; 5d
    14271499    retn                                      ; c3
    1428 _log_bios_start:                             ; 0xf17df LB 0x20
     1500_log_bios_start:                             ; 0xf1870 LB 0x20
    14291501    push bp                                   ; 55
    14301502    mov bp, sp                                ; 89 e5
    1431     mov bx, 00da0h                            ; bb a0 0d
     1503    mov bx, 00db2h                            ; bb b2 0d
    14321504    mov cx, ds                                ; 8c d9
    14331505    mov ax, strict word 00004h                ; b8 04 00
    1434     call 01999h                               ; e8 ac 01
    1435     push 00d8eh                               ; 68 8e 0d
    1436     push 000d9h                               ; 68 d9 00
     1506    call 01a2ah                               ; e8 ac 01
     1507    push 00da0h                               ; 68 a0 0d
     1508    push 000ebh                               ; 68 eb 00
    14371509    push strict byte 00004h                   ; 6a 04
    1438     call 019dah                               ; e8 e2 01
     1510    call 01a6bh                               ; e8 e2 01
    14391511    add sp, strict byte 00006h                ; 83 c4 06
    14401512    mov sp, bp                                ; 89 ec
    14411513    pop bp                                    ; 5d
    14421514    retn                                      ; c3
    1443 _print_bios_banner:                          ; 0xf17ff LB 0x2e
     1515_print_bios_banner:                          ; 0xf1890 LB 0x2e
    14441516    push bp                                   ; 55
    14451517    mov bp, sp                                ; 89 e5
    14461518    mov dx, strict word 00072h                ; ba 72 00
    14471519    mov ax, strict word 00040h                ; b8 40 00
    1448     call 016d4h                               ; e8 c9 fe
     1520    call 01765h                               ; e8 c9 fe
    14491521    mov cx, ax                                ; 89 c1
    14501522    xor bx, bx                                ; 31 db
    14511523    mov dx, strict word 00072h                ; ba 72 00
    14521524    mov ax, strict word 00040h                ; b8 40 00
    1453     call 016e2h                               ; e8 ca fe
     1525    call 01773h                               ; e8 ca fe
    14541526    cmp cx, 01234h                            ; 81 f9 34 12
    1455     jne short 01826h                          ; 75 08
     1527    jne short 018b7h                          ; 75 08
    14561528    mov AL, strict byte 003h                  ; b0 03
    14571529    mov AH, strict byte 000h                  ; b4 00
    14581530    int 010h                                  ; cd 10
    1459     jmp short 01829h                          ; eb 03
    1460     call 07b24h                               ; e8 fb 62
     1531    jmp short 018bah                          ; eb 03
     1532    call 07c0eh                               ; e8 54 63
    14611533    mov sp, bp                                ; 89 ec
    14621534    pop bp                                    ; 5d
    14631535    retn                                      ; c3
    1464 send_:                                       ; 0xf182d LB 0x3b
     1536send_:                                       ; 0xf18be LB 0x3b
    14651537    push bp                                   ; 55
    14661538    mov bp, sp                                ; 89 e5
     
    14701542    mov cl, dl                                ; 88 d1
    14711543    test AL, strict byte 008h                 ; a8 08
    1472     je short 01840h                           ; 74 06
     1544    je short 018d1h                           ; 74 06
    14731545    mov al, dl                                ; 88 d0
    14741546    mov dx, 00403h                            ; ba 03 04
    14751547    out DX, AL                                ; ee
    14761548    test bl, 004h                             ; f6 c3 04
    1477     je short 0184bh                           ; 74 06
     1549    je short 018dch                           ; 74 06
    14781550    mov al, cl                                ; 88 c8
    14791551    mov dx, 00504h                            ; ba 04 05
    14801552    out DX, AL                                ; ee
    14811553    test bl, 002h                             ; f6 c3 02
    1482     je short 01861h                           ; 74 11
     1554    je short 018f2h                           ; 74 11
    14831555    cmp cl, 00ah                              ; 80 f9 0a
    1484     jne short 0185bh                          ; 75 06
     1556    jne short 018ech                          ; 75 06
    14851557    mov AL, strict byte 00dh                  ; b0 0d
    14861558    mov AH, strict byte 00eh                  ; b4 0e
     
    14941566    pop bp                                    ; 5d
    14951567    retn                                      ; c3
    1496 put_int_:                                    ; 0xf1868 LB 0x5f
     1568put_int_:                                    ; 0xf18f9 LB 0x5f
    14971569    push bp                                   ; 55
    14981570    mov bp, sp                                ; 89 e5
     
    15091581    mov word [bp-006h], ax                    ; 89 46 fa
    15101582    test ax, ax                               ; 85 c0
    1511     je short 0188dh                           ; 74 0a
     1583    je short 0191eh                           ; 74 0a
    15121584    dec bx                                    ; 4b
    15131585    mov dx, ax                                ; 89 c2
    15141586    mov ax, si                                ; 89 f0
    1515     call 01868h                               ; e8 dd ff
    1516     jmp short 018a8h                          ; eb 1b
     1587    call 018f9h                               ; e8 dd ff
     1588    jmp short 01939h                          ; eb 1b
    15171589    dec bx                                    ; 4b
    15181590    test bx, bx                               ; 85 db
    1519     jle short 0189ch                          ; 7e 0a
     1591    jle short 0192dh                          ; 7e 0a
    15201592    mov dx, strict word 00020h                ; ba 20 00
    15211593    mov ax, si                                ; 89 f0
    1522     call 0182dh                               ; e8 93 ff
    1523     jmp short 0188dh                          ; eb f1
     1594    call 018beh                               ; e8 93 ff
     1595    jmp short 0191eh                          ; eb f1
    15241596    test cx, cx                               ; 85 c9
    1525     je short 018a8h                           ; 74 08
     1597    je short 01939h                           ; 74 08
    15261598    mov dx, strict word 0002dh                ; ba 2d 00
    15271599    mov ax, si                                ; 89 f0
    1528     call 0182dh                               ; e8 85 ff
     1600    call 018beh                               ; e8 85 ff
    15291601    mov al, byte [bp-006h]                    ; 8a 46 fa
    15301602    mov DL, strict byte 00ah                  ; b2 0a
     
    15361608    movzx dx, al                              ; 0f b6 d0
    15371609    mov ax, si                                ; 89 f0
    1538     call 0182dh                               ; e8 6d ff
     1610    call 018beh                               ; e8 6d ff
    15391611    lea sp, [bp-004h]                         ; 8d 66 fc
    15401612    pop di                                    ; 5f
     
    15421614    pop bp                                    ; 5d
    15431615    retn                                      ; c3
    1544 put_uint_:                                   ; 0xf18c7 LB 0x60
     1616put_uint_:                                   ; 0xf1958 LB 0x60
    15451617    push bp                                   ; 55
    15461618    mov bp, sp                                ; 89 e5
     
    15571629    mov word [bp-006h], ax                    ; 89 46 fa
    15581630    test ax, ax                               ; 85 c0
    1559     je short 018edh                           ; 74 0a
     1631    je short 0197eh                           ; 74 0a
    15601632    dec bx                                    ; 4b
    15611633    mov dx, ax                                ; 89 c2
    15621634    mov ax, si                                ; 89 f0
    1563     call 018c7h                               ; e8 dc ff
    1564     jmp short 01908h                          ; eb 1b
     1635    call 01958h                               ; e8 dc ff
     1636    jmp short 01999h                          ; eb 1b
    15651637    dec bx                                    ; 4b
    15661638    test bx, bx                               ; 85 db
    1567     jle short 018fch                          ; 7e 0a
     1639    jle short 0198dh                          ; 7e 0a
    15681640    mov dx, strict word 00020h                ; ba 20 00
    15691641    mov ax, si                                ; 89 f0
    1570     call 0182dh                               ; e8 33 ff
    1571     jmp short 018edh                          ; eb f1
     1642    call 018beh                               ; e8 33 ff
     1643    jmp short 0197eh                          ; eb f1
    15721644    test cx, cx                               ; 85 c9
    1573     je short 01908h                           ; 74 08
     1645    je short 01999h                           ; 74 08
    15741646    mov dx, strict word 0002dh                ; ba 2d 00
    15751647    mov ax, si                                ; 89 f0
    1576     call 0182dh                               ; e8 25 ff
     1648    call 018beh                               ; e8 25 ff
    15771649    mov al, byte [bp-006h]                    ; 8a 46 fa
    15781650    mov DL, strict byte 00ah                  ; b2 0a
     
    15841656    movzx dx, al                              ; 0f b6 d0
    15851657    mov ax, si                                ; 89 f0
    1586     call 0182dh                               ; e8 0d ff
     1658    call 018beh                               ; e8 0d ff
    15871659    lea sp, [bp-004h]                         ; 8d 66 fc
    15881660    pop di                                    ; 5f
     
    15901662    pop bp                                    ; 5d
    15911663    retn                                      ; c3
    1592 put_luint_:                                  ; 0xf1927 LB 0x72
     1664put_luint_:                                  ; 0xf19b8 LB 0x72
    15931665    push bp                                   ; 55
    15941666    mov bp, sp                                ; 89 e5
     
    16041676    mov bx, strict word 0000ah                ; bb 0a 00
    16051677    xor cx, cx                                ; 31 c9
    1606     call 09f00h                               ; e8 bf 85
     1678    call 09ff0h                               ; e8 1e 86
    16071679    mov word [bp-008h], ax                    ; 89 46 f8
    16081680    mov cx, dx                                ; 89 d1
    16091681    mov dx, ax                                ; 89 c2
    16101682    or dx, cx                                 ; 09 ca
    1611     je short 0195bh                           ; 74 0f
     1683    je short 019ech                           ; 74 0f
    16121684    push word [bp+004h]                       ; ff 76 04
    16131685    lea dx, [di-001h]                         ; 8d 55 ff
    16141686    mov bx, ax                                ; 89 c3
    16151687    mov ax, si                                ; 89 f0
    1616     call 01927h                               ; e8 ce ff
    1617     jmp short 01978h                          ; eb 1d
     1688    call 019b8h                               ; e8 ce ff
     1689    jmp short 01a09h                          ; eb 1d
    16181690    dec di                                    ; 4f
    16191691    test di, di                               ; 85 ff
    1620     jle short 0196ah                          ; 7e 0a
     1692    jle short 019fbh                          ; 7e 0a
    16211693    mov dx, strict word 00020h                ; ba 20 00
    16221694    mov ax, si                                ; 89 f0
    1623     call 0182dh                               ; e8 c5 fe
    1624     jmp short 0195bh                          ; eb f1
     1695    call 018beh                               ; e8 c5 fe
     1696    jmp short 019ech                          ; eb f1
    16251697    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    1626     je short 01978h                           ; 74 08
     1698    je short 01a09h                           ; 74 08
    16271699    mov dx, strict word 0002dh                ; ba 2d 00
    16281700    mov ax, si                                ; 89 f0
    1629     call 0182dh                               ; e8 b5 fe
     1701    call 018beh                               ; e8 b5 fe
    16301702    mov al, byte [bp-008h]                    ; 8a 46 f8
    16311703    mov DL, strict byte 00ah                  ; b2 0a
     
    16371709    movzx dx, al                              ; 0f b6 d0
    16381710    mov ax, si                                ; 89 f0
    1639     call 0182dh                               ; e8 9d fe
     1711    call 018beh                               ; e8 9d fe
    16401712    lea sp, [bp-004h]                         ; 8d 66 fc
    16411713    pop di                                    ; 5f
     
    16431715    pop bp                                    ; 5d
    16441716    retn 00002h                               ; c2 02 00
    1645 put_str_:                                    ; 0xf1999 LB 0x21
     1717put_str_:                                    ; 0xf1a2a LB 0x21
    16461718    push bp                                   ; 55
    16471719    mov bp, sp                                ; 89 e5
     
    16521724    mov dl, byte [es:bx]                      ; 26 8a 17
    16531725    test dl, dl                               ; 84 d2
    1654     je short 019b3h                           ; 74 0a
     1726    je short 01a44h                           ; 74 0a
    16551727    xor dh, dh                                ; 30 f6
    16561728    mov ax, si                                ; 89 f0
    1657     call 0182dh                               ; e8 7d fe
     1729    call 018beh                               ; e8 7d fe
    16581730    inc bx                                    ; 43
    1659     jmp short 019a0h                          ; eb ed
     1731    jmp short 01a31h                          ; eb ed
    16601732    lea sp, [bp-004h]                         ; 8d 66 fc
    16611733    pop si                                    ; 5e
     
    16631735    pop bp                                    ; 5d
    16641736    retn                                      ; c3
    1665 put_str_near_:                               ; 0xf19ba LB 0x20
     1737put_str_near_:                               ; 0xf1a4b LB 0x20
    16661738    push bp                                   ; 55
    16671739    mov bp, sp                                ; 89 e5
     
    16721744    mov dl, byte [bx]                         ; 8a 17
    16731745    test dl, dl                               ; 84 d2
    1674     je short 019d3h                           ; 74 0a
     1746    je short 01a64h                           ; 74 0a
    16751747    xor dh, dh                                ; 30 f6
    16761748    mov ax, cx                                ; 89 c8
    1677     call 0182dh                               ; e8 5d fe
     1749    call 018beh                               ; e8 5d fe
    16781750    inc bx                                    ; 43
    1679     jmp short 019c3h                          ; eb f0
     1751    jmp short 01a54h                          ; eb f0
    16801752    lea sp, [bp-004h]                         ; 8d 66 fc
    16811753    pop cx                                    ; 59
     
    16831755    pop bp                                    ; 5d
    16841756    retn                                      ; c3
    1685 bios_printf_:                                ; 0xf19da LB 0x33d
     1757bios_printf_:                                ; 0xf1a6b LB 0x33d
    16861758    push bp                                   ; 55
    16871759    mov bp, sp                                ; 89 e5
     
    17001772    and ax, strict word 00007h                ; 25 07 00
    17011773    cmp ax, strict word 00007h                ; 3d 07 00
    1702     jne short 01a08h                          ; 75 0b
    1703     push 000deh                               ; 68 de 00
     1774    jne short 01a99h                          ; 75 0b
     1775    push 000f0h                               ; 68 f0 00
    17041776    push strict byte 00002h                   ; 6a 02
    1705     call 019dah                               ; e8 d5 ff
     1777    call 01a6bh                               ; e8 d5 ff
    17061778    add sp, strict byte 00004h                ; 83 c4 04
    17071779    mov si, word [bp+006h]                    ; 8b 76 06
    17081780    mov dl, byte [si]                         ; 8a 14
    17091781    test dl, dl                               ; 84 d2
    1710     je near 01cfbh                            ; 0f 84 e8 02
     1782    je near 01d8ch                            ; 0f 84 e8 02
    17111783    cmp dl, 025h                              ; 80 fa 25
    1712     jne short 01a20h                          ; 75 08
     1784    jne short 01ab1h                          ; 75 08
    17131785    mov bx, strict word 00001h                ; bb 01 00
    17141786    xor di, di                                ; 31 ff
    1715     jmp near 01cf5h                           ; e9 d5 02
     1787    jmp near 01d86h                           ; e9 d5 02
    17161788    test bx, bx                               ; 85 db
    1717     je near 01cedh                            ; 0f 84 c7 02
     1789    je near 01d7eh                            ; 0f 84 c7 02
    17181790    cmp dl, 030h                              ; 80 fa 30
    1719     jc short 01a3eh                           ; 72 13
     1791    jc short 01acfh                           ; 72 13
    17201792    cmp dl, 039h                              ; 80 fa 39
    1721     jnbe short 01a3eh                         ; 77 0e
     1793    jnbe short 01acfh                         ; 77 0e
    17221794    movzx ax, dl                              ; 0f b6 c2
    17231795    imul di, di, strict byte 0000ah           ; 6b ff 0a
    17241796    sub ax, strict word 00030h                ; 2d 30 00
    17251797    add di, ax                                ; 01 c7
    1726     jmp near 01cf5h                           ; e9 b7 02
     1798    jmp near 01d86h                           ; e9 b7 02
    17271799    mov ax, word [bp-014h]                    ; 8b 46 ec
    17281800    mov word [bp-014h], ax                    ; 89 46 ec
     
    17321804    mov word [bp-012h], ax                    ; 89 46 ee
    17331805    cmp dl, 078h                              ; 80 fa 78
    1734     je short 01a5ch                           ; 74 05
     1806    je short 01aedh                           ; 74 05
    17351807    cmp dl, 058h                              ; 80 fa 58
    1736     jne short 01ab2h                          ; 75 56
     1808    jne short 01b43h                          ; 75 56
    17371809    test di, di                               ; 85 ff
    1738     jne short 01a63h                          ; 75 03
     1810    jne short 01af4h                          ; 75 03
    17391811    mov di, strict word 00004h                ; bf 04 00
    17401812    cmp dl, 078h                              ; 80 fa 78
    1741     jne short 01a6fh                          ; 75 07
     1813    jne short 01b00h                          ; 75 07
    17421814    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
    1743     jmp short 01a74h                          ; eb 05
     1815    jmp short 01b05h                          ; eb 05
    17441816    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
    17451817    lea ax, [di-001h]                         ; 8d 45 ff
     
    17471819    mov ax, word [bp-00ch]                    ; 8b 46 f4
    17481820    test ax, ax                               ; 85 c0
    1749     jl near 01ce9h                            ; 0f 8c 66 02
     1821    jl near 01d7ah                            ; 0f 8c 66 02
    17501822    mov cx, ax                                ; 89 c1
    17511823    sal cx, 002h                              ; c1 e1 02
     
    17551827    and AL, strict byte 00fh                  ; 24 0f
    17561828    cmp ax, strict word 00009h                ; 3d 09 00
    1757     jnbe short 01a9dh                         ; 77 07
     1829    jnbe short 01b2eh                         ; 77 07
    17581830    mov dx, ax                                ; 89 c2
    17591831    add dx, strict byte 00030h                ; 83 c2 30
    1760     jmp short 01aa5h                          ; eb 08
     1832    jmp short 01b36h                          ; eb 08
    17611833    sub ax, strict word 0000ah                ; 2d 0a 00
    17621834    mov dx, word [bp-00eh]                    ; 8b 56 f2
     
    17641836    xor dh, dh                                ; 30 f6
    17651837    mov ax, word [bp+004h]                    ; 8b 46 04
    1766     call 0182dh                               ; e8 80 fd
     1838    call 018beh                               ; e8 80 fd
    17671839    dec word [bp-00ch]                        ; ff 4e f4
    1768     jmp short 01a7ah                          ; eb c8
     1840    jmp short 01b0bh                          ; eb c8
    17691841    cmp dl, 075h                              ; 80 fa 75
    1770     jne short 01ac6h                          ; 75 0f
     1842    jne short 01b57h                          ; 75 0f
    17711843    xor cx, cx                                ; 31 c9
    17721844    mov bx, di                                ; 89 fb
    17731845    mov dx, ax                                ; 89 c2
    17741846    mov ax, word [bp+004h]                    ; 8b 46 04
    1775     call 018c7h                               ; e8 04 fe
    1776     jmp near 01ce9h                           ; e9 23 02
     1847    call 01958h                               ; e8 04 fe
     1848    jmp near 01d7ah                           ; e9 23 02
    17771849    cmp dl, 06ch                              ; 80 fa 6c
    1778     jne near 01ba8h                           ; 0f 85 db 00
     1850    jne near 01c39h                           ; 0f 85 db 00
    17791851    mov bx, word [bp+006h]                    ; 8b 5e 06
    17801852    cmp dl, byte [bx+001h]                    ; 3a 57 01
    1781     jne near 01ba8h                           ; 0f 85 d1 00
     1853    jne near 01c39h                           ; 0f 85 d1 00
    17821854    add word [bp+006h], strict byte 00002h    ; 83 46 06 02
    17831855    mov bx, word [bp+006h]                    ; 8b 5e 06
     
    18031875    mov word [bp-020h], ax                    ; 89 46 e0
    18041876    cmp dl, 078h                              ; 80 fa 78
    1805     je short 01b29h                           ; 74 05
     1877    je short 01bbah                           ; 74 05
    18061878    cmp dl, 058h                              ; 80 fa 58
    1807     jne short 01b9ah                          ; 75 71
     1879    jne short 01c2bh                          ; 75 71
    18081880    test di, di                               ; 85 ff
    1809     jne short 01b30h                          ; 75 03
     1881    jne short 01bc1h                          ; 75 03
    18101882    mov di, strict word 00010h                ; bf 10 00
    18111883    cmp dl, 078h                              ; 80 fa 78
    1812     jne short 01b3ch                          ; 75 07
     1884    jne short 01bcdh                          ; 75 07
    18131885    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
    1814     jmp short 01b41h                          ; eb 05
     1886    jmp short 01bd2h                          ; eb 05
    18151887    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
    18161888    lea ax, [di-001h]                         ; 8d 45 ff
     
    18181890    mov ax, word [bp-00ch]                    ; 8b 46 f4
    18191891    test ax, ax                               ; 85 c0
    1820     jl near 01ce9h                            ; 0f 8c 99 01
     1892    jl near 01d7ah                            ; 0f 8c 99 01
    18211893    sal ax, 002h                              ; c1 e0 02
    18221894    mov word [bp-01eh], ax                    ; 89 46 e2
     
    18301902    mov dx, word [bp-026h]                    ; 8b 56 da
    18311903    mov si, word [bp-01eh]                    ; 8b 76 e2
    1832     call 09f40h                               ; e8 cd 83
     1904    call 0a030h                               ; e8 2c 84
    18331905    mov ax, dx                                ; 89 d0
    18341906    xor ah, dh                                ; 30 f4
    18351907    and AL, strict byte 00fh                  ; 24 0f
    18361908    cmp ax, strict word 00009h                ; 3d 09 00
    1837     jnbe short 01b85h                         ; 77 07
     1909    jnbe short 01c16h                         ; 77 07
    18381910    mov dx, ax                                ; 89 c2
    18391911    add dx, strict byte 00030h                ; 83 c2 30
    1840     jmp short 01b8dh                          ; eb 08
     1912    jmp short 01c1eh                          ; eb 08
    18411913    sub ax, strict word 0000ah                ; 2d 0a 00
    18421914    mov dx, word [bp-00eh]                    ; 8b 56 f2
     
    18441916    xor dh, dh                                ; 30 f6
    18451917    mov ax, word [bp+004h]                    ; 8b 46 04
    1846     call 0182dh                               ; e8 98 fc
     1918    call 018beh                               ; e8 98 fc
    18471919    dec word [bp-00ch]                        ; ff 4e f4
    1848     jmp short 01b47h                          ; eb ad
    1849     push 000e6h                               ; 68 e6 00
     1920    jmp short 01bd8h                          ; eb ad
     1921    push 000f8h                               ; 68 f8 00
    18501922    push strict byte 00007h                   ; 6a 07
    1851     call 019dah                               ; e8 38 fe
     1923    call 01a6bh                               ; e8 38 fe
    18521924    add sp, strict byte 00004h                ; 83 c4 04
    1853     jmp near 01ce9h                           ; e9 41 01
     1925    jmp near 01d7ah                           ; e9 41 01
    18541926    lea bx, [di-001h]                         ; 8d 5d ff
    18551927    cmp dl, 06ch                              ; 80 fa 6c
    1856     jne near 01c71h                           ; 0f 85 bf 00
     1928    jne near 01d02h                           ; 0f 85 bf 00
    18571929    inc word [bp+006h]                        ; ff 46 06
    18581930    mov si, word [bp+006h]                    ; 8b 76 06
     
    18651937    mov word [bp-010h], ax                    ; 89 46 f0
    18661938    cmp dl, 064h                              ; 80 fa 64
    1867     jne short 01c00h                          ; 75 2d
     1939    jne short 01c91h                          ; 75 2d
    18681940    test byte [bp-00fh], 080h                 ; f6 46 f1 80
    1869     je short 01beeh                           ; 74 15
     1941    je short 01c7fh                           ; 74 15
    18701942    push strict byte 00001h                   ; 6a 01
    18711943    mov ax, word [bp-012h]                    ; 8b 46 ee
     
    18761948    mov dx, bx                                ; 89 da
    18771949    mov bx, ax                                ; 89 c3
    1878     jmp short 01bf7h                          ; eb 09
     1950    jmp short 01c88h                          ; eb 09
    18791951    push strict byte 00000h                   ; 6a 00
    18801952    mov bx, word [bp-012h]                    ; 8b 5e ee
     
    18821954    mov cx, ax                                ; 89 c1
    18831955    mov ax, word [bp+004h]                    ; 8b 46 04
    1884     call 01927h                               ; e8 2a fd
    1885     jmp near 01ce9h                           ; e9 e9 00
     1956    call 019b8h                               ; e8 2a fd
     1957    jmp near 01d7ah                           ; e9 e9 00
    18861958    cmp dl, 075h                              ; 80 fa 75
    1887     jne short 01c07h                          ; 75 02
    1888     jmp short 01beeh                          ; eb e7
     1959    jne short 01c98h                          ; 75 02
     1960    jmp short 01c7fh                          ; eb e7
    18891961    cmp dl, 078h                              ; 80 fa 78
    1890     je short 01c13h                           ; 74 07
     1962    je short 01ca4h                           ; 74 07
    18911963    cmp dl, 058h                              ; 80 fa 58
    1892     jne near 01ce9h                           ; 0f 85 d6 00
     1964    jne near 01d7ah                           ; 0f 85 d6 00
    18931965    test di, di                               ; 85 ff
    1894     jne short 01c1ah                          ; 75 03
     1966    jne short 01cabh                          ; 75 03
    18951967    mov di, strict word 00008h                ; bf 08 00
    18961968    cmp dl, 078h                              ; 80 fa 78
    1897     jne short 01c26h                          ; 75 07
     1969    jne short 01cb7h                          ; 75 07
    18981970    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
    1899     jmp short 01c2bh                          ; eb 05
     1971    jmp short 01cbch                          ; eb 05
    19001972    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
    19011973    lea ax, [di-001h]                         ; 8d 45 ff
    19021974    mov word [bp-00ch], ax                    ; 89 46 f4
    19031975    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    1904     jl near 01ce9h                            ; 0f 8c b0 00
     1976    jl near 01d7ah                            ; 0f 8c b0 00
    19051977    mov ax, word [bp-012h]                    ; 8b 46 ee
    19061978    mov cx, word [bp-00ch]                    ; 8b 4e f4
    19071979    sal cx, 002h                              ; c1 e1 02
    19081980    mov dx, word [bp-010h]                    ; 8b 56 f0
    1909     jcxz 01c4dh                               ; e3 06
     1981    jcxz 01cdeh                               ; e3 06
    19101982    shr dx, 1                                 ; d1 ea
    19111983    rcr ax, 1                                 ; d1 d8
    1912     loop 01c47h                               ; e2 fa
     1984    loop 01cd8h                               ; e2 fa
    19131985    and ax, strict word 0000fh                ; 25 0f 00
    19141986    cmp ax, strict word 00009h                ; 3d 09 00
    1915     jnbe short 01c5ch                         ; 77 07
     1987    jnbe short 01cedh                         ; 77 07
    19161988    mov dx, ax                                ; 89 c2
    19171989    add dx, strict byte 00030h                ; 83 c2 30
    1918     jmp short 01c64h                          ; eb 08
     1990    jmp short 01cf5h                          ; eb 08
    19191991    sub ax, strict word 0000ah                ; 2d 0a 00
    19201992    mov dx, word [bp-00eh]                    ; 8b 56 f2
     
    19221994    xor dh, dh                                ; 30 f6
    19231995    mov ax, word [bp+004h]                    ; 8b 46 04
    1924     call 0182dh                               ; e8 c1 fb
     1996    call 018beh                               ; e8 c1 fb
    19251997    dec word [bp-00ch]                        ; ff 4e f4
    1926     jmp short 01c31h                          ; eb c0
     1998    jmp short 01cc2h                          ; eb c0
    19271999    cmp dl, 064h                              ; 80 fa 64
    1928     jne short 01c95h                          ; 75 1f
     2000    jne short 01d26h                          ; 75 1f
    19292001    test byte [bp-011h], 080h                 ; f6 46 ef 80
    1930     je short 01c86h                           ; 74 0a
     2002    je short 01d17h                           ; 74 0a
    19312003    mov dx, word [bp-012h]                    ; 8b 56 ee
    19322004    neg dx                                    ; f7 da
    19332005    mov cx, strict word 00001h                ; b9 01 00
    1934     jmp short 01c8dh                          ; eb 07
     2006    jmp short 01d1eh                          ; eb 07
    19352007    xor cx, cx                                ; 31 c9
    19362008    mov bx, di                                ; 89 fb
    19372009    mov dx, word [bp-012h]                    ; 8b 56 ee
    19382010    mov ax, word [bp+004h]                    ; 8b 46 04
    1939     call 01868h                               ; e8 d5 fb
    1940     jmp short 01ce9h                          ; eb 54
     2011    call 018f9h                               ; e8 d5 fb
     2012    jmp short 01d7ah                          ; eb 54
    19412013    cmp dl, 073h                              ; 80 fa 73
    1942     jne short 01ca7h                          ; 75 0d
     2014    jne short 01d38h                          ; 75 0d
    19432015    mov cx, ds                                ; 8c d9
    19442016    mov bx, word [bp-012h]                    ; 8b 5e ee
    19452017    mov ax, word [bp+004h]                    ; 8b 46 04
    1946     call 01999h                               ; e8 f4 fc
    1947     jmp short 01ce9h                          ; eb 42
     2018    call 01a2ah                               ; e8 f4 fc
     2019    jmp short 01d7ah                          ; eb 42
    19482020    cmp dl, 053h                              ; 80 fa 53
    1949     jne short 01ccdh                          ; 75 21
     2021    jne short 01d5eh                          ; 75 21
    19502022    mov ax, word [bp-012h]                    ; 8b 46 ee
    19512023    mov word [bp-010h], ax                    ; 89 46 f0
     
    19582030    mov bx, ax                                ; 89 c3
    19592031    mov cx, word [bp-010h]                    ; 8b 4e f0
    1960     jmp short 01c9fh                          ; eb d2
     2032    jmp short 01d30h                          ; eb d2
    19612033    cmp dl, 063h                              ; 80 fa 63
    1962     jne short 01cdeh                          ; 75 0c
     2034    jne short 01d6fh                          ; 75 0c
    19632035    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
    19642036    mov ax, word [bp+004h]                    ; 8b 46 04
    1965     call 0182dh                               ; e8 51 fb
    1966     jmp short 01ce9h                          ; eb 0b
    1967     push 00107h                               ; 68 07 01
     2037    call 018beh                               ; e8 51 fb
     2038    jmp short 01d7ah                          ; eb 0b
     2039    push 00119h                               ; 68 19 01
    19682040    push strict byte 00007h                   ; 6a 07
    1969     call 019dah                               ; e8 f4 fc
     2041    call 01a6bh                               ; e8 f4 fc
    19702042    add sp, strict byte 00004h                ; 83 c4 04
    19712043    xor bx, bx                                ; 31 db
    1972     jmp short 01cf5h                          ; eb 08
     2044    jmp short 01d86h                          ; eb 08
    19732045    xor dh, dh                                ; 30 f6
    19742046    mov ax, word [bp+004h]                    ; 8b 46 04
    1975     call 0182dh                               ; e8 38 fb
     2047    call 018beh                               ; e8 38 fb
    19762048    inc word [bp+006h]                        ; ff 46 06
    1977     jmp near 01a08h                           ; e9 0d fd
     2049    jmp near 01a99h                           ; e9 0d fd
    19782050    xor ax, ax                                ; 31 c0
    19792051    mov word [bp-016h], ax                    ; 89 46 ea
    19802052    mov word [bp-014h], ax                    ; 89 46 ec
    19812053    test byte [bp+004h], 001h                 ; f6 46 04 01
    1982     je short 01d0dh                           ; 74 04
     2054    je short 01d9eh                           ; 74 04
    19832055    cli                                       ; fa
    19842056    hlt                                       ; f4
    1985     jmp short 01d0ah                          ; eb fd
     2057    jmp short 01d9bh                          ; eb fd
    19862058    lea sp, [bp-00ah]                         ; 8d 66 f6
    19872059    pop di                                    ; 5f
     
    19922064    pop bp                                    ; 5d
    19932065    retn                                      ; c3
    1994 _ata_init:                                   ; 0xf1d17 LB 0xcd
     2066_ata_init:                                   ; 0xf1da8 LB 0xcd
    19952067    push bp                                   ; 55
    19962068    mov bp, sp                                ; 89 e5
     
    19982070    mov dx, strict word 0000eh                ; ba 0e 00
    19992071    mov ax, strict word 00040h                ; b8 40 00
    2000     call 016d4h                               ; e8 b0 f9
     2072    call 01765h                               ; e8 b0 f9
    20012073    mov si, 00122h                            ; be 22 01
    20022074    mov dx, ax                                ; 89 c2
    20032075    xor al, al                                ; 30 c0
    2004     jmp short 01d31h                          ; eb 04
     2076    jmp short 01dc2h                          ; eb 04
    20052077    cmp AL, strict byte 004h                  ; 3c 04
    2006     jnc short 01d55h                          ; 73 24
     2078    jnc short 01de6h                          ; 73 24
    20072079    movzx bx, al                              ; 0f b6 d8
    20082080    imul bx, bx, strict byte 00006h           ; 6b db 06
     
    20152087    db  0feh, 0c0h
    20162088    ; inc al                                    ; fe c0
    2017     jmp short 01d2dh                          ; eb d8
     2089    jmp short 01dbeh                          ; eb d8
    20182090    xor al, al                                ; 30 c0
    2019     jmp short 01d5dh                          ; eb 04
     2091    jmp short 01deeh                          ; eb 04
    20202092    cmp AL, strict byte 008h                  ; 3c 08
    2021     jnc short 01db1h                          ; 73 54
     2093    jnc short 01e42h                          ; 73 54
    20222094    movzx bx, al                              ; 0f b6 d8
    20232095    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    20412113    db  0feh, 0c0h
    20422114    ; inc al                                    ; fe c0
    2043     jmp short 01d59h                          ; eb a8
     2115    jmp short 01deah                          ; eb a8
    20442116    xor al, al                                ; 30 c0
    2045     jmp short 01db9h                          ; eb 04
     2117    jmp short 01e4ah                          ; eb 04
    20462118    cmp AL, strict byte 010h                  ; 3c 10
    2047     jnc short 01dd0h                          ; 73 17
     2119    jnc short 01e61h                          ; 73 17
    20482120    movzx bx, al                              ; 0f b6 d8
    20492121    mov es, dx                                ; 8e c2
     
    20532125    db  0feh, 0c0h
    20542126    ; inc al                                    ; fe c0
    2055     jmp short 01db5h                          ; eb e5
     2127    jmp short 01e46h                          ; eb e5
    20562128    mov es, dx                                ; 8e c2
    20572129    mov byte [es:si+001e2h], 000h             ; 26 c6 84 e2 01 00
     
    20612133    pop bp                                    ; 5d
    20622134    retn                                      ; c3
    2063 ata_reset_:                                  ; 0xf1de4 LB 0xde
     2135ata_reset_:                                  ; 0xf1e75 LB 0xde
    20642136    push bp                                   ; 55
    20652137    mov bp, sp                                ; 89 e5
     
    20742146    mov dx, strict word 0000eh                ; ba 0e 00
    20752147    mov ax, strict word 00040h                ; b8 40 00
    2076     call 016d4h                               ; e8 dc f8
     2148    call 01765h                               ; e8 dc f8
    20772149    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
    20782150    mov di, ax                                ; 89 c7
     
    20942166    dec bx                                    ; 4b
    20952167    test bx, bx                               ; 85 db
    2096     jbe short 01e3ch                          ; 76 0c
     2168    jbe short 01ecdh                          ; 76 0c
    20972169    mov dx, cx                                ; 89 ca
    20982170    add dx, strict byte 00007h                ; 83 c2 07
     
    21012173    ; sub ah, ah                                ; 2a e4
    21022174    test AL, strict byte 080h                 ; a8 80
    2103     je short 01e2bh                           ; 74 ef
     2175    je short 01ebch                           ; 74 ef
    21042176    lea dx, [si+006h]                         ; 8d 54 06
    21052177    mov AL, strict byte 00ah                  ; b0 0a
     
    21092181    add bx, word [bp-00eh]                    ; 03 5e f2
    21102182    cmp byte [es:bx+022h], 000h               ; 26 80 7f 22 00
    2111     je short 01e9eh                           ; 74 4c
     2183    je short 01f2fh                           ; 74 4c
    21122184    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    2113     je short 01e5dh                           ; 74 05
     2185    je short 01eeeh                           ; 74 05
    21142186    mov ax, 000b0h                            ; b8 b0 00
    2115     jmp short 01e60h                          ; eb 03
     2187    jmp short 01ef1h                          ; eb 03
    21162188    mov ax, 000a0h                            ; b8 a0 00
    21172189    mov dx, cx                                ; 89 ca
     
    21312203    ; sub ah, ah                                ; 2a e4
    21322204    cmp bl, 001h                              ; 80 fb 01
    2133     jne short 01e9eh                          ; 75 22
     2205    jne short 01f2fh                          ; 75 22
    21342206    cmp al, bl                                ; 38 d8
    2135     jne short 01e9eh                          ; 75 1e
     2207    jne short 01f2fh                          ; 75 1e
    21362208    mov bx, strict word 0ffffh                ; bb ff ff
    21372209    dec bx                                    ; 4b
    21382210    test bx, bx                               ; 85 db
    2139     jbe short 01e9eh                          ; 76 16
     2211    jbe short 01f2fh                          ; 76 16
    21402212    mov dx, cx                                ; 89 ca
    21412213    add dx, strict byte 00007h                ; 83 c2 07
     
    21442216    ; sub ah, ah                                ; 2a e4
    21452217    test AL, strict byte 080h                 ; a8 80
    2146     je short 01e9eh                           ; 74 0a
     2218    je short 01f2fh                           ; 74 0a
    21472219    mov ax, strict word 0ffffh                ; b8 ff ff
    21482220    dec ax                                    ; 48
    21492221    test ax, ax                               ; 85 c0
    2150     jnbe short 01e97h                         ; 77 fb
    2151     jmp short 01e83h                          ; eb e5
     2222    jnbe short 01f28h                         ; 77 fb
     2223    jmp short 01f14h                          ; eb e5
    21522224    mov bx, strict word 00010h                ; bb 10 00
    21532225    dec bx                                    ; 4b
    21542226    test bx, bx                               ; 85 db
    2155     jbe short 01eb2h                          ; 76 0c
     2227    jbe short 01f43h                          ; 76 0c
    21562228    mov dx, cx                                ; 89 ca
    21572229    add dx, strict byte 00007h                ; 83 c2 07
     
    21602232    ; sub ah, ah                                ; 2a e4
    21612233    test AL, strict byte 040h                 ; a8 40
    2162     je short 01ea1h                           ; 74 ef
     2234    je short 01f32h                           ; 74 ef
    21632235    lea dx, [si+006h]                         ; 8d 54 06
    21642236    mov AL, strict byte 008h                  ; b0 08
     
    21722244    pop bp                                    ; 5d
    21732245    retn                                      ; c3
    2174 ata_cmd_data_in_:                            ; 0xf1ec2 LB 0x2e2
     2246ata_cmd_data_in_:                            ; 0xf1f53 LB 0x2e2
    21752247    push bp                                   ; 55
    21762248    mov bp, sp                                ; 89 e5
     
    22072279    mov word [bp-00eh], ax                    ; 89 46 f2
    22082280    test ax, ax                               ; 85 c0
    2209     jne short 01f29h                          ; 75 14
     2281    jne short 01fbah                          ; 75 14
    22102282    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
    2211     jne short 01f22h                          ; 75 07
     2283    jne short 01fb3h                          ; 75 07
    22122284    mov word [bp-00eh], 04000h                ; c7 46 f2 00 40
    2213     jmp short 01f38h                          ; eb 16
     2285    jmp short 01fc9h                          ; eb 16
    22142286    mov word [bp-00eh], 08000h                ; c7 46 f2 00 80
    2215     jmp short 01f38h                          ; eb 0f
     2287    jmp short 01fc9h                          ; eb 0f
    22162288    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
    2217     jne short 01f35h                          ; 75 06
     2289    jne short 01fc6h                          ; 75 06
    22182290    shr word [bp-00eh], 002h                  ; c1 6e f2 02
    2219     jmp short 01f38h                          ; eb 03
     2291    jmp short 01fc9h                          ; eb 03
    22202292    shr word [bp-00eh], 1                     ; d1 6e f2
    22212293    mov dx, word [bp-00ch]                    ; 8b 56 f4
     
    22252297    ; sub ah, ah                                ; 2a e4
    22262298    test AL, strict byte 080h                 ; a8 80
    2227     je short 01f54h                           ; 74 0f
     2299    je short 01fe5h                           ; 74 0f
    22282300    mov dx, word [bp-010h]                    ; 8b 56 f0
    22292301    add dx, strict byte 00006h                ; 83 c2 06
     
    22312303    out DX, AL                                ; ee
    22322304    mov dx, strict word 00001h                ; ba 01 00
    2233     jmp near 0219bh                           ; e9 47 02
     2305    jmp near 0222ch                           ; e9 47 02
    22342306    mov es, [bp-01ah]                         ; 8e 46 e6
    22352307    mov di, word [bp-018h]                    ; 8b 7e e8
     
    22452317    mov al, byte [bp-006h]                    ; 8a 46 fa
    22462318    test al, al                               ; 84 c0
    2247     jne near 02066h                           ; 0f 85 e3 00
     2319    jne near 020f7h                           ; 0f 85 e3 00
    22482320    xor bx, bx                                ; 31 db
    22492321    xor dx, dx                                ; 31 d2
     
    22582330    adc ax, word [bp-016h]                    ; 13 46 ea
    22592331    test ax, ax                               ; 85 c0
    2260     jnbe short 01fb8h                         ; 77 10
    2261     jne short 0201ch                          ; 75 72
     2332    jnbe short 02049h                         ; 77 10
     2333    jne short 020adh                          ; 75 72
    22622334    test dx, dx                               ; 85 d2
    2263     jnbe short 01fb8h                         ; 77 0a
    2264     jne short 0201ch                          ; 75 6c
     2335    jnbe short 02049h                         ; 77 0a
     2336    jne short 020adh                          ; 75 6c
    22652337    cmp bx, 01000h                            ; 81 fb 00 10
    2266     jnbe short 01fb8h                         ; 77 02
    2267     jne short 0201ch                          ; 75 64
     2338    jnbe short 02049h                         ; 77 02
     2339    jne short 020adh                          ; 75 64
    22682340    mov bx, si                                ; 89 f3
    22692341    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     
    22722344    mov dx, word [es:si]                      ; 26 8b 14
    22732345    mov si, strict word 00018h                ; be 18 00
    2274     call 09f40h                               ; e8 71 7f
     2346    call 0a030h                               ; e8 d0 7f
    22752347    xor dh, dh                                ; 30 f6
    22762348    mov word [bp-016h], dx                    ; 89 56 ea
     
    22822354    mov dx, word [es:si]                      ; 26 8b 14
    22832355    mov si, strict word 00020h                ; be 20 00
    2284     call 09f40h                               ; e8 51 7f
     2356    call 0a030h                               ; e8 b0 7f
    22852357    mov bx, dx                                ; 89 d3
    22862358    mov ax, word [bp-01eh]                    ; 8b 46 e2
     
    23132385    mov dx, word [es:si]                      ; 26 8b 14
    23142386    mov si, strict word 00008h                ; be 08 00
    2315     call 09f40h                               ; e8 00 7f
     2387    call 0a030h                               ; e8 5f 7f
    23162388    mov word [bp-014h], dx                    ; 89 56 ec
    23172389    mov bx, word [bp-018h]                    ; 8b 5e e8
     
    23222394    mov dx, word [es:si]                      ; 26 8b 14
    23232395    mov si, strict word 00018h                ; be 18 00
    2324     call 09f40h                               ; e8 e2 7e
     2396    call 0a030h                               ; e8 41 7f
    23252397    and dx, strict byte 0000fh                ; 83 e2 0f
    23262398    or dl, 040h                               ; 80 ca 40
     
    23522424    out DX, AL                                ; ee
    23532425    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    2354     je short 020a8h                           ; 74 05
     2426    je short 02139h                           ; 74 05
    23552427    mov ax, 000b0h                            ; b8 b0 00
    2356     jmp short 020abh                          ; eb 03
     2428    jmp short 0213ch                          ; eb 03
    23572429    mov ax, 000a0h                            ; b8 a0 00
    23582430    movzx dx, bl                              ; 0f b6 d3
     
    23672439    mov ax, word [bp-01ch]                    ; 8b 46 e4
    23682440    cmp ax, 000c4h                            ; 3d c4 00
    2369     je short 020ceh                           ; 74 05
     2441    je short 0215fh                           ; 74 05
    23702442    cmp ax, strict word 00029h                ; 3d 29 00
    2371     jne short 020d8h                          ; 75 0a
     2443    jne short 02169h                          ; 75 0a
    23722444    mov bx, word [bp-01eh]                    ; 8b 5e e2
    23732445    mov word [bp-01eh], strict word 00001h    ; c7 46 e2 01 00
    2374     jmp short 020dbh                          ; eb 03
     2446    jmp short 0216ch                          ; eb 03
    23752447    mov bx, strict word 00001h                ; bb 01 00
    23762448    mov dx, word [bp-00ch]                    ; 8b 56 f4
     
    23812453    mov dl, al                                ; 88 c2
    23822454    test AL, strict byte 080h                 ; a8 80
    2383     jne short 020dbh                          ; 75 f1
     2455    jne short 0216ch                          ; 75 f1
    23842456    test AL, strict byte 001h                 ; a8 01
    2385     je short 020fdh                           ; 74 0f
     2457    je short 0218eh                           ; 74 0f
    23862458    mov dx, word [bp-010h]                    ; 8b 56 f0
    23872459    add dx, strict byte 00006h                ; 83 c2 06
     
    23892461    out DX, AL                                ; ee
    23902462    mov dx, strict word 00002h                ; ba 02 00
    2391     jmp near 0219bh                           ; e9 9e 00
     2463    jmp near 0222ch                           ; e9 9e 00
    23922464    test dl, 008h                             ; f6 c2 08
    2393     jne short 02111h                          ; 75 0f
     2465    jne short 021a2h                          ; 75 0f
    23942466    mov dx, word [bp-010h]                    ; 8b 56 f0
    23952467    add dx, strict byte 00006h                ; 83 c2 06
     
    23972469    out DX, AL                                ; ee
    23982470    mov dx, strict word 00003h                ; ba 03 00
    2399     jmp near 0219bh                           ; e9 8a 00
     2471    jmp near 0222ch                           ; e9 8a 00
    24002472    sti                                       ; fb
    24012473    cmp di, 0f800h                            ; 81 ff 00 f8
    2402     jc short 02125h                           ; 72 0d
     2474    jc short 021b6h                           ; 72 0d
    24032475    sub di, 00800h                            ; 81 ef 00 08
    24042476    mov ax, word [bp-012h]                    ; 8b 46 ee
     
    24062478    mov word [bp-012h], ax                    ; 89 46 ee
    24072479    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
    2408     jne short 02139h                          ; 75 0e
     2480    jne short 021cah                          ; 75 0e
    24092481    mov dx, word [bp-00ch]                    ; 8b 56 f4
    24102482    mov cx, word [bp-00eh]                    ; 8b 4e f2
     
    24122484    db  0f3h, 066h, 06dh
    24132485    ; rep insd                                  ; f3 66 6d
    2414     jmp short 02144h                          ; eb 0b
     2486    jmp short 021d5h                          ; eb 0b
    24152487    mov dx, word [bp-00ch]                    ; 8b 56 f4
    24162488    mov cx, word [bp-00eh]                    ; 8b 4e f2
     
    24282500    mov dl, al                                ; 88 c2
    24292501    test AL, strict byte 080h                 ; a8 80
    2430     jne short 02151h                          ; 75 f1
     2502    jne short 021e2h                          ; 75 f1
    24312503    cmp word [bp-01eh], strict byte 00000h    ; 83 7e e2 00
    2432     jne short 0217ah                          ; 75 14
     2504    jne short 0220bh                          ; 75 14
    24332505    and AL, strict byte 0c9h                  ; 24 c9
    24342506    cmp AL, strict byte 040h                  ; 3c 40
    2435     je short 02190h                           ; 74 24
     2507    je short 02221h                           ; 74 24
    24362508    mov dx, word [bp-010h]                    ; 8b 56 f0
    24372509    add dx, strict byte 00006h                ; 83 c2 06
     
    24392511    out DX, AL                                ; ee
    24402512    mov dx, strict word 00004h                ; ba 04 00
    2441     jmp short 0219bh                          ; eb 21
     2513    jmp short 0222ch                          ; eb 21
    24422514    mov al, dl                                ; 88 d0
    24432515    and AL, strict byte 0c9h                  ; 24 c9
    24442516    cmp AL, strict byte 048h                  ; 3c 48
    2445     je short 02112h                           ; 74 90
     2517    je short 021a3h                           ; 74 90
    24462518    mov dx, word [bp-010h]                    ; 8b 56 f0
    24472519    add dx, strict byte 00006h                ; 83 c2 06
     
    24492521    out DX, AL                                ; ee
    24502522    mov dx, strict word 00005h                ; ba 05 00
    2451     jmp short 0219bh                          ; eb 0b
     2523    jmp short 0222ch                          ; eb 0b
    24522524    mov dx, word [bp-010h]                    ; 8b 56 f0
    24532525    add dx, strict byte 00006h                ; 83 c2 06
     
    24612533    pop bp                                    ; 5d
    24622534    retn                                      ; c3
    2463 _ata_detect:                                 ; 0xf21a4 LB 0x65c
     2535_ata_detect:                                 ; 0xf2235 LB 0x65c
    24642536    push bp                                   ; 55
    24652537    mov bp, sp                                ; 89 e5
     
    24692541    mov dx, strict word 0000eh                ; ba 0e 00
    24702542    mov ax, strict word 00040h                ; b8 40 00
    2471     call 016d4h                               ; e8 1e f5
     2543    call 01765h                               ; e8 1e f5
    24722544    mov word [bp-020h], ax                    ; 89 46 e0
    24732545    mov di, 00122h                            ; bf 22 01
     
    24872559    mov byte [bp-010h], al                    ; 88 46 f0
    24882560    mov byte [bp-016h], al                    ; 88 46 ea
    2489     jmp near 02784h                           ; e9 86 05
     2561    jmp near 02815h                           ; e9 86 05
    24902562    mov ax, 000a0h                            ; b8 a0 00
    24912563    lea dx, [si+006h]                         ; 8d 54 06
     
    25192591    ; sub ah, ah                                ; 2a e4
    25202592    cmp cl, 055h                              ; 80 f9 55
    2521     jne near 02302h                           ; 0f 85 ca 00
     2593    jne near 02393h                           ; 0f 85 ca 00
    25222594    cmp AL, strict byte 0aah                  ; 3c aa
    2523     jne near 02302h                           ; 0f 85 c4 00
     2595    jne near 02393h                           ; 0f 85 c4 00
    25242596    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    25252597    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    25292601    mov byte [es:bx+022h], 001h               ; 26 c6 47 22 01
    25302602    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    2531     call 01de4h                               ; e8 8b fb
     2603    call 01e75h                               ; e8 8b fb
    25322604    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    2533     je short 02264h                           ; 74 05
     2605    je short 022f5h                           ; 74 05
    25342606    mov ax, 000b0h                            ; b8 b0 00
    2535     jmp short 02267h                          ; eb 03
     2607    jmp short 022f8h                          ; eb 03
    25362608    mov ax, 000a0h                            ; b8 a0 00
    25372609    lea dx, [si+006h]                         ; 8d 54 06
     
    25472619    ; sub ah, ah                                ; 2a e4
    25482620    cmp bl, 001h                              ; 80 fb 01
    2549     jne near 02302h                           ; 0f 85 82 00
     2621    jne near 02393h                           ; 0f 85 82 00
    25502622    cmp al, bl                                ; 38 d8
    2551     jne near 02302h                           ; 0f 85 7c 00
     2623    jne near 02393h                           ; 0f 85 7c 00
    25522624    lea dx, [si+004h]                         ; 8d 54 04
    25532625    in AL, DX                                 ; ec
     
    25672639    ; sub ah, ah                                ; 2a e4
    25682640    cmp bl, 014h                              ; 80 fb 14
    2569     jne short 022c1h                          ; 75 1b
     2641    jne short 02352h                          ; 75 1b
    25702642    cmp cl, 0ebh                              ; 80 f9 eb
    2571     jne short 022c1h                          ; 75 16
     2643    jne short 02352h                          ; 75 16
    25722644    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    25732645    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    25762648    add bx, ax                                ; 01 c3
    25772649    mov byte [es:bx+022h], 003h               ; 26 c6 47 22 03
    2578     jmp short 02302h                          ; eb 41
     2650    jmp short 02393h                          ; eb 41
    25792651    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
    2580     jne short 022e3h                          ; 75 1c
     2652    jne short 02374h                          ; 75 1c
    25812653    test bh, bh                               ; 84 ff
    2582     jne short 022e3h                          ; 75 18
     2654    jne short 02374h                          ; 75 18
    25832655    test al, al                               ; 84 c0
    2584     je short 022e3h                           ; 74 14
     2656    je short 02374h                           ; 74 14
    25852657    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
    25862658    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    25882660    add bx, word [bp-022h]                    ; 03 5e de
    25892661    mov byte [es:bx+022h], 002h               ; 26 c6 47 22 02
    2590     jmp short 02302h                          ; eb 1f
     2662    jmp short 02393h                          ; eb 1f
    25912663    mov al, byte [bp-018h]                    ; 8a 46 e8
    25922664    cmp AL, strict byte 0ffh                  ; 3c ff
    2593     jne short 02302h                          ; 75 18
     2665    jne short 02393h                          ; 75 18
    25942666    cmp bh, al                                ; 38 c7
    2595     jne short 02302h                          ; 75 14
     2667    jne short 02393h                          ; 75 14
    25962668    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    25972669    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    26112683    mov byte [bp-00ah], al                    ; 88 46 f6
    26122684    cmp AL, strict byte 002h                  ; 3c 02
    2613     jne near 02551h                           ; 0f 85 2c 02
     2685    jne near 025e2h                           ; 0f 85 2c 02
    26142686    mov byte [es:si+023h], 0ffh               ; 26 c6 44 23 ff
    26152687    mov byte [es:si+026h], 000h               ; 26 c6 44 26 00
     
    26242696    mov ax, word [bp-022h]                    ; 8b 46 de
    26252697    mov dx, es                                ; 8c c2
    2626     call 01ec2h                               ; e8 6f fb
     2698    call 01f53h                               ; e8 6f fb
    26272699    test ax, ax                               ; 85 c0
    2628     je short 02362h                           ; 74 0b
    2629     push 00124h                               ; 68 24 01
     2700    je short 023f3h                           ; 74 0b
     2701    push 00136h                               ; 68 36 01
    26302702    push strict byte 00007h                   ; 6a 07
    2631     call 019dah                               ; e8 7b f6
     2703    call 01a6bh                               ; e8 7b f6
    26322704    add sp, strict byte 00004h                ; 83 c4 04
    26332705    test byte [bp-00264h], 080h               ; f6 86 9c fd 80
     
    26552727    mov word [bp-01eh], ax                    ; 89 46 e2
    26562728    cmp word [bp-02ch], 00fffh                ; 81 7e d4 ff 0f
    2657     jne short 023ceh                          ; 75 1e
     2729    jne short 0245fh                          ; 75 1e
    26582730    cmp si, strict byte 0ffffh                ; 83 fe ff
    2659     jne short 023ceh                          ; 75 19
     2731    jne short 0245fh                          ; 75 19
    26602732    mov ax, word [bp-00196h]                  ; 8b 86 6a fe
    26612733    mov word [bp-01eh], ax                    ; 89 46 e2
     
    26672739    mov al, byte [bp-016h]                    ; 8a 46 ea
    26682740    cmp AL, strict byte 001h                  ; 3c 01
    2669     jc short 023e1h                           ; 72 0c
    2670     jbe short 023e9h                          ; 76 12
     2741    jc short 02472h                           ; 72 0c
     2742    jbe short 0247ah                          ; 76 12
    26712743    cmp AL, strict byte 003h                  ; 3c 03
    2672     je short 023f1h                           ; 74 16
     2744    je short 02482h                           ; 74 16
    26732745    cmp AL, strict byte 002h                  ; 3c 02
    2674     je short 023edh                           ; 74 0e
    2675     jmp short 0242eh                          ; eb 4d
     2746    je short 0247eh                           ; 74 0e
     2747    jmp short 024bfh                          ; eb 4d
    26762748    test al, al                               ; 84 c0
    2677     jne short 0242eh                          ; 75 49
     2749    jne short 024bfh                          ; 75 49
    26782750    mov BL, strict byte 01eh                  ; b3 1e
    2679     jmp short 023f3h                          ; eb 0a
     2751    jmp short 02484h                          ; eb 0a
    26802752    mov BL, strict byte 026h                  ; b3 26
    2681     jmp short 023f3h                          ; eb 06
     2753    jmp short 02484h                          ; eb 06
    26822754    mov BL, strict byte 067h                  ; b3 67
    2683     jmp short 023f3h                          ; eb 02
     2755    jmp short 02484h                          ; eb 02
    26842756    mov BL, strict byte 070h                  ; b3 70
    26852757    mov al, bl                                ; 88 d8
     
    26872759    ; inc al                                    ; fe c0
    26882760    xor ah, ah                                ; 30 e4
    2689     call 01714h                               ; e8 18 f3
     2761    call 017a5h                               ; e8 18 f3
    26902762    xor ah, ah                                ; 30 e4
    26912763    mov dx, ax                                ; 89 c2
    26922764    sal dx, 008h                              ; c1 e2 08
    26932765    movzx ax, bl                              ; 0f b6 c3
    2694     call 01714h                               ; e8 0b f3
     2766    call 017a5h                               ; e8 0b f3
    26952767    xor ah, ah                                ; 30 e4
    26962768    add ax, dx                                ; 01 d0
     
    26992771    add AL, strict byte 002h                  ; 04 02
    27002772    xor ah, ah                                ; 30 e4
    2701     call 01714h                               ; e8 fb f2
     2773    call 017a5h                               ; e8 fb f2
    27022774    xor ah, ah                                ; 30 e4
    27032775    mov word [bp-03ah], ax                    ; 89 46 c6
     
    27052777    add AL, strict byte 007h                  ; 04 07
    27062778    xor ah, ah                                ; 30 e4
    2707     call 01714h                               ; e8 ed f2
     2779    call 017a5h                               ; e8 ed f2
    27082780    xor ah, ah                                ; 30 e4
    27092781    mov word [bp-036h], ax                    ; 89 46 ca
    2710     jmp short 02440h                          ; eb 12
     2782    jmp short 024d1h                          ; eb 12
    27112783    push word [bp-01eh]                       ; ff 76 e2
    27122784    push word [bp-028h]                       ; ff 76 d8
     
    27152787    mov dx, ss                                ; 8c d2
    27162788    lea ax, [bp-03ah]                         ; 8d 46 c6
    2717     call 059d6h                               ; e8 96 35
    2718     mov bx, 00da0h                            ; bb a0 0d
     2789    call 05ac0h                               ; e8 ef 35
     2790    mov bx, 00db2h                            ; bb b2 0d
    27192791    mov cx, ds                                ; 8c d9
    27202792    mov ax, strict word 00004h                ; b8 04 00
    2721     call 01999h                               ; e8 4e f5
     2793    call 01a2ah                               ; e8 4e f5
    27222794    mov ax, word [bp-036h]                    ; 8b 46 ca
    27232795    push ax                                   ; 50
     
    27322804    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    27332805    push ax                                   ; 50
    2734     push 0014dh                               ; 68 4d 01
     2806    push 0015fh                               ; 68 5f 01
    27352807    push strict byte 00004h                   ; 6a 04
    2736     call 019dah                               ; e8 6a f5
     2808    call 01a6bh                               ; e8 6a f5
    27372809    add sp, strict byte 00014h                ; 83 c4 14
    27382810    movzx di, byte [bp-016h]                  ; 0f b6 7e ea
     
    27712843    mov al, byte [bp-016h]                    ; 8a 46 ea
    27722844    cmp AL, strict byte 002h                  ; 3c 02
    2773     jnc short 0253ch                          ; 73 60
     2845    jnc short 025cdh                          ; 73 60
    27742846    test al, al                               ; 84 c0
    2775     jne short 024e5h                          ; 75 05
     2847    jne short 02576h                          ; 75 05
    27762848    mov di, strict word 0003dh                ; bf 3d 00
    2777     jmp short 024e8h                          ; eb 03
     2849    jmp short 02579h                          ; eb 03
    27782850    mov di, strict word 0004dh                ; bf 4d 00
    27792851    mov dx, word [bp-020h]                    ; 8b 56 e0
     
    27942866    xor al, al                                ; 30 c0
    27952867    xor ah, ah                                ; 30 e4
    2796     jmp short 02526h                          ; eb 05
     2868    jmp short 025b7h                          ; eb 05
    27972869    cmp ah, 00fh                              ; 80 fc 0f
    2798     jnc short 02534h                          ; 73 0e
     2870    jnc short 025c5h                          ; 73 0e
    27992871    movzx bx, ah                              ; 0f b6 dc
    28002872    mov es, dx                                ; 8e c2
     
    28032875    db  0feh, 0c4h
    28042876    ; inc ah                                    ; fe c4
    2805     jmp short 02521h                          ; eb ed
     2877    jmp short 025b2h                          ; eb ed
    28062878    neg al                                    ; f6 d8
    28072879    mov es, dx                                ; 8e c2
     
    28142886    inc byte [bp-010h]                        ; fe 46 f0
    28152887    cmp byte [bp-00ah], 003h                  ; 80 7e f6 03
    2816     jne near 025f4h                           ; 0f 85 9b 00
     2888    jne near 02685h                           ; 0f 85 9b 00
    28172889    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    28182890    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    28322904    mov ax, word [bp-022h]                    ; 8b 46 de
    28332905    mov dx, es                                ; 8c c2
    2834     call 01ec2h                               ; e8 2c f9
     2906    call 01f53h                               ; e8 2c f9
    28352907    test ax, ax                               ; 85 c0
    2836     je short 025a5h                           ; 74 0b
    2837     push 00174h                               ; 68 74 01
     2908    je short 02636h                           ; 74 0b
     2909    push 00186h                               ; 68 86 01
    28382910    push strict byte 00007h                   ; 6a 07
    2839     call 019dah                               ; e8 38 f4
     2911    call 01a6bh                               ; e8 38 f4
    28402912    add sp, strict byte 00004h                ; 83 c4 04
    28412913    mov dl, byte [bp-00263h]                  ; 8a 96 9d fd
     
    28652937    mov al, byte [bp-00ah]                    ; 8a 46 f6
    28662938    cmp AL, strict byte 003h                  ; 3c 03
    2867     je short 0262ch                           ; 74 31
     2939    je short 026bdh                           ; 74 31
    28682940    cmp AL, strict byte 002h                  ; 3c 02
    2869     jne near 0268fh                           ; 0f 85 8e 00
     2941    jne near 02720h                           ; 0f 85 8e 00
    28702942    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    28712943    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    28782950    mov dx, word [es:si+036h]                 ; 26 8b 54 36
    28792951    mov si, strict word 0000bh                ; be 0b 00
    2880     call 09f40h                               ; e8 1a 79
     2952    call 0a030h                               ; e8 79 79
    28812953    mov word [bp-030h], dx                    ; 89 56 d0
    28822954    mov word [bp-02eh], cx                    ; 89 4e d2
     
    28862958    or dx, ax                                 ; 09 c2
    28872959    mov byte [bp-00ch], 00fh                  ; c6 46 f4 0f
    2888     jmp short 0264ah                          ; eb 09
     2960    jmp short 026dbh                          ; eb 09
    28892961    dec byte [bp-00ch]                        ; fe 4e f4
    28902962    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    2891     jbe short 02657h                          ; 76 0d
     2963    jbe short 026e8h                          ; 76 0d
    28922964    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    28932965    mov ax, strict word 00001h                ; b8 01 00
    28942966    sal ax, CL                                ; d3 e0
    28952967    test dx, ax                               ; 85 c2
    2896     je short 02641h                           ; 74 ea
     2968    je short 026d2h                           ; 74 ea
    28972969    xor di, di                                ; 31 ff
    2898     jmp short 02660h                          ; eb 05
     2970    jmp short 026f1h                          ; eb 05
    28992971    cmp di, strict byte 00014h                ; 83 ff 14
    2900     jnl short 02675h                          ; 7d 15
     2972    jnl short 02706h                          ; 7d 15
    29012973    mov si, di                                ; 89 fe
    29022974    add si, di                                ; 01 fe
     
    29062978    mov byte [bp+si-063h], al                 ; 88 42 9d
    29072979    inc di                                    ; 47
    2908     jmp short 0265bh                          ; eb e6
     2980    jmp short 026ech                          ; eb e6
    29092981    mov byte [bp-03ch], 000h                  ; c6 46 c4 00
    29102982    mov di, strict word 00027h                ; bf 27 00
    2911     jmp short 02683h                          ; eb 05
     2983    jmp short 02714h                          ; eb 05
    29122984    dec di                                    ; 4f
    29132985    test di, di                               ; 85 ff
    2914     jle short 0268fh                          ; 7e 0c
     2986    jle short 02720h                          ; 7e 0c
    29152987    cmp byte [bp+di-064h], 020h               ; 80 7b 9c 20
    2916     jne short 0268fh                          ; 75 06
     2988    jne short 02720h                          ; 75 06
    29172989    mov byte [bp+di-064h], 000h               ; c6 43 9c 00
    2918     jmp short 0267eh                          ; eb ef
     2990    jmp short 0270fh                          ; eb ef
    29192991    mov al, byte [bp-00ah]                    ; 8a 46 f6
    29202992    cmp AL, strict byte 003h                  ; 3c 03
    2921     je short 026f2h                           ; 74 5c
     2993    je short 02783h                           ; 74 5c
    29222994    cmp AL, strict byte 002h                  ; 3c 02
    2923     je short 026a3h                           ; 74 09
     2995    je short 02734h                           ; 74 09
    29242996    cmp AL, strict byte 001h                  ; 3c 01
    2925     je near 0275ch                            ; 0f 84 bc 00
    2926     jmp near 0277bh                           ; e9 d8 00
     2997    je near 027edh                            ; 0f 84 bc 00
     2998    jmp near 0280ch                           ; e9 d8 00
    29272999    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    2928     je short 026aeh                           ; 74 05
    2929     mov ax, 0019fh                            ; b8 9f 01
    2930     jmp short 026b1h                          ; eb 03
    2931     mov ax, 001a6h                            ; b8 a6 01
     3000    je short 0273fh                           ; 74 05
     3001    mov ax, 001b1h                            ; b8 b1 01
     3002    jmp short 02742h                          ; eb 03
     3003    mov ax, 001b8h                            ; b8 b8 01
    29323004    push ax                                   ; 50
    29333005    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    29343006    push ax                                   ; 50
    2935     push 001adh                               ; 68 ad 01
     3007    push 001bfh                               ; 68 bf 01
    29363008    push strict byte 00002h                   ; 6a 02
    2937     call 019dah                               ; e8 1b f3
     3009    call 01a6bh                               ; e8 1b f3
    29383010    add sp, strict byte 00008h                ; 83 c4 08
    29393011    xor di, di                                ; 31 ff
     
    29413013    inc di                                    ; 47
    29423014    test ax, ax                               ; 85 c0
    2943     je short 026dbh                           ; 74 0e
     3015    je short 0276ch                           ; 74 0e
    29443016    push ax                                   ; 50
    2945     push 001b8h                               ; 68 b8 01
     3017    push 001cah                               ; 68 ca 01
    29463018    push strict byte 00002h                   ; 6a 02
    2947     call 019dah                               ; e8 04 f3
     3019    call 01a6bh                               ; e8 04 f3
    29483020    add sp, strict byte 00006h                ; 83 c4 06
    2949     jmp short 026c4h                          ; eb e9
     3021    jmp short 02755h                          ; eb e9
    29503022    push dword [bp-030h]                      ; 66 ff 76 d0
    29513023    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    29523024    push ax                                   ; 50
    2953     push 001bbh                               ; 68 bb 01
     3025    push 001cdh                               ; 68 cd 01
    29543026    push strict byte 00002h                   ; 6a 02
    2955     call 019dah                               ; e8 ee f2
     3027    call 01a6bh                               ; e8 ee f2
    29563028    add sp, strict byte 0000ah                ; 83 c4 0a
    2957     jmp near 0277bh                           ; e9 89 00
     3029    jmp near 0280ch                           ; e9 89 00
    29583030    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    2959     je short 026fdh                           ; 74 05
    2960     mov ax, 0019fh                            ; b8 9f 01
    2961     jmp short 02700h                          ; eb 03
    2962     mov ax, 001a6h                            ; b8 a6 01
     3031    je short 0278eh                           ; 74 05
     3032    mov ax, 001b1h                            ; b8 b1 01
     3033    jmp short 02791h                          ; eb 03
     3034    mov ax, 001b8h                            ; b8 b8 01
    29633035    push ax                                   ; 50
    29643036    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    29653037    push ax                                   ; 50
    2966     push 001adh                               ; 68 ad 01
     3038    push 001bfh                               ; 68 bf 01
    29673039    push strict byte 00002h                   ; 6a 02
    2968     call 019dah                               ; e8 cc f2
     3040    call 01a6bh                               ; e8 cc f2
    29693041    add sp, strict byte 00008h                ; 83 c4 08
    29703042    xor di, di                                ; 31 ff
     
    29723044    inc di                                    ; 47
    29733045    test ax, ax                               ; 85 c0
    2974     je short 0272ah                           ; 74 0e
     3046    je short 027bbh                           ; 74 0e
    29753047    push ax                                   ; 50
    2976     push 001b8h                               ; 68 b8 01
     3048    push 001cah                               ; 68 ca 01
    29773049    push strict byte 00002h                   ; 6a 02
    2978     call 019dah                               ; e8 b5 f2
     3050    call 01a6bh                               ; e8 b5 f2
    29793051    add sp, strict byte 00006h                ; 83 c4 06
    2980     jmp short 02713h                          ; eb e9
     3052    jmp short 027a4h                          ; eb e9
    29813053    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    29823054    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    29853057    add bx, ax                                ; 01 c3
    29863058    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    2987     jne short 0274ah                          ; 75 0a
     3059    jne short 027dbh                          ; 75 0a
    29883060    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    29893061    push ax                                   ; 50
    2990     push 001dbh                               ; 68 db 01
    2991     jmp short 02752h                          ; eb 08
     3062    push 001edh                               ; 68 ed 01
     3063    jmp short 027e3h                          ; eb 08
    29923064    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    29933065    push ax                                   ; 50
    2994     push 001f5h                               ; 68 f5 01
     3066    push 00207h                               ; 68 07 02
    29953067    push strict byte 00002h                   ; 6a 02
    2996     call 019dah                               ; e8 83 f2
     3068    call 01a6bh                               ; e8 83 f2
    29973069    add sp, strict byte 00006h                ; 83 c4 06
    2998     jmp short 0277bh                          ; eb 1f
     3070    jmp short 0280ch                          ; eb 1f
    29993071    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    3000     je short 02767h                           ; 74 05
    3001     mov ax, 0019fh                            ; b8 9f 01
    3002     jmp short 0276ah                          ; eb 03
    3003     mov ax, 001a6h                            ; b8 a6 01
     3072    je short 027f8h                           ; 74 05
     3073    mov ax, 001b1h                            ; b8 b1 01
     3074    jmp short 027fbh                          ; eb 03
     3075    mov ax, 001b8h                            ; b8 b8 01
    30043076    push ax                                   ; 50
    30053077    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    30063078    push ax                                   ; 50
    3007     push 00207h                               ; 68 07 02
     3079    push 00219h                               ; 68 19 02
    30083080    push strict byte 00002h                   ; 6a 02
    3009     call 019dah                               ; e8 62 f2
     3081    call 01a6bh                               ; e8 62 f2
    30103082    add sp, strict byte 00008h                ; 83 c4 08
    30113083    inc byte [bp-016h]                        ; fe 46 ea
    30123084    cmp byte [bp-016h], 008h                  ; 80 7e ea 08
    3013     jnc short 027d6h                          ; 73 52
     3085    jnc short 02867h                          ; 73 52
    30143086    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
    30153087    mov ax, bx                                ; 89 d8
     
    30403112    out DX, AL                                ; ee
    30413113    cmp byte [bp-032h], 000h                  ; 80 7e ce 00
    3042     je near 021feh                            ; 0f 84 2e fa
     3114    je near 0228fh                            ; 0f 84 2e fa
    30433115    mov ax, 000b0h                            ; b8 b0 00
    3044     jmp near 02201h                           ; e9 2b fa
     3116    jmp near 02292h                           ; e9 2b fa
    30453117    mov al, byte [bp-010h]                    ; 8a 46 f0
    30463118    mov es, [bp-034h]                         ; 8e 46 cc
     
    30523124    mov dx, strict word 00075h                ; ba 75 00
    30533125    mov ax, strict word 00040h                ; b8 40 00
    3054     call 016c6h                               ; e8 cd ee
     3126    call 01757h                               ; e8 cd ee
    30553127    lea sp, [bp-004h]                         ; 8d 66 fc
    30563128    pop di                                    ; 5f
     
    30583130    pop bp                                    ; 5d
    30593131    retn                                      ; c3
    3060 ata_cmd_data_out_:                           ; 0xf2800 LB 0x2bc
     3132ata_cmd_data_out_:                           ; 0xf2891 LB 0x2bc
    30613133    push bp                                   ; 55
    30623134    mov bp, sp                                ; 89 e5
     
    30893161    mov byte [bp-008h], al                    ; 88 46 f8
    30903162    cmp AL, strict byte 001h                  ; 3c 01
    3091     jne short 02858h                          ; 75 07
     3163    jne short 028e9h                          ; 75 07
    30923164    mov word [bp-020h], 00080h                ; c7 46 e0 80 00
    3093     jmp short 0285dh                          ; eb 05
     3165    jmp short 028eeh                          ; eb 05
    30943166    mov word [bp-020h], 00100h                ; c7 46 e0 00 01
    30953167    mov dx, word [bp-00ah]                    ; 8b 56 f6
     
    30993171    ; sub ah, ah                                ; 2a e4
    31003172    test AL, strict byte 080h                 ; a8 80
    3101     je short 02879h                           ; 74 0f
     3173    je short 0290ah                           ; 74 0f
    31023174    mov dx, word [bp-012h]                    ; 8b 56 ee
    31033175    add dx, strict byte 00006h                ; 83 c2 06
     
    31053177    out DX, AL                                ; ee
    31063178    mov dx, strict word 00001h                ; ba 01 00
    3107     jmp near 02ab3h                           ; e9 3a 02
     3179    jmp near 02b44h                           ; e9 3a 02
    31083180    mov es, [bp-00ch]                         ; 8e 46 f4
    31093181    mov ax, word [es:di+006h]                 ; 26 8b 45 06
     
    31273199    mov ax, word [bp-01ch]                    ; 8b 46 e4
    31283200    test ax, ax                               ; 85 c0
    3129     jne near 0298ah                           ; 0f 85 c7 00
     3201    jne near 02a1bh                           ; 0f 85 c7 00
    31303202    xor dx, dx                                ; 31 d2
    31313203    xor bx, bx                                ; 31 db
     
    31363208    adc ax, word [bp-010h]                    ; 13 46 f0
    31373209    test ax, ax                               ; 85 c0
    3138     jnbe short 028eah                         ; 77 10
    3139     jne short 0294dh                          ; 75 71
     3210    jnbe short 0297bh                         ; 77 10
     3211    jne short 029deh                          ; 75 71
    31403212    test bx, bx                               ; 85 db
    3141     jnbe short 028eah                         ; 77 0a
    3142     jne short 0294dh                          ; 75 6b
     3213    jnbe short 0297bh                         ; 77 0a
     3214    jne short 029deh                          ; 75 6b
    31433215    cmp dx, 01000h                            ; 81 fa 00 10
    3144     jnbe short 028eah                         ; 77 02
    3145     jne short 0294dh                          ; 75 63
     3216    jnbe short 0297bh                         ; 77 02
     3217    jne short 029deh                          ; 75 63
    31463218    mov ax, word [bp-010h]                    ; 8b 46 f0
    31473219    mov bx, word [bp-014h]                    ; 8b 5e ec
     
    31493221    mov dx, word [bp-01eh]                    ; 8b 56 e2
    31503222    mov si, strict word 00018h                ; be 18 00
    3151     call 09f40h                               ; e8 44 76
     3223    call 0a030h                               ; e8 a3 76
    31523224    xor dh, dh                                ; 30 f6
    31533225    mov word [bp-01ch], dx                    ; 89 56 e4
     
    31573229    mov dx, word [bp-01eh]                    ; 8b 56 e2
    31583230    mov si, strict word 00020h                ; be 20 00
    3159     call 09f40h                               ; e8 2d 76
     3231    call 0a030h                               ; e8 8c 76
    31603232    mov bx, dx                                ; 89 d3
    31613233    mov ax, word [bp-01ah]                    ; 8b 46 e6
     
    31913263    mov dx, word [bp-01eh]                    ; 8b 56 e2
    31923264    mov si, strict word 00008h                ; be 08 00
    3193     call 09f40h                               ; e8 d9 75
     3265    call 0a030h                               ; e8 38 76
    31943266    mov word [bp-010h], ax                    ; 89 46 f0
    31953267    mov word [bp-014h], bx                    ; 89 5e ec
     
    31983270    mov word [bp-026h], dx                    ; 89 56 da
    31993271    mov si, strict word 00010h                ; be 10 00
    3200     call 09f40h                               ; e8 c4 75
     3272    call 0a030h                               ; e8 23 76
    32013273    mov word [bp-01eh], dx                    ; 89 56 e2
    32023274    mov ax, dx                                ; 89 d0
     
    32313303    out DX, AL                                ; ee
    32323304    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3233     je short 029cch                           ; 74 05
     3305    je short 02a5dh                           ; 74 05
    32343306    mov ax, 000b0h                            ; b8 b0 00
    3235     jmp short 029cfh                          ; eb 03
     3307    jmp short 02a60h                          ; eb 03
    32363308    mov ax, 000a0h                            ; b8 a0 00
    32373309    movzx dx, byte [bp-022h]                  ; 0f b6 56 de
     
    32513323    mov dl, al                                ; 88 c2
    32523324    test AL, strict byte 080h                 ; a8 80
    3253     jne short 029e6h                          ; 75 f1
     3325    jne short 02a77h                          ; 75 f1
    32543326    test AL, strict byte 001h                 ; a8 01
    3255     je short 02a08h                           ; 74 0f
     3327    je short 02a99h                           ; 74 0f
    32563328    mov dx, word [bp-012h]                    ; 8b 56 ee
    32573329    add dx, strict byte 00006h                ; 83 c2 06
     
    32593331    out DX, AL                                ; ee
    32603332    mov dx, strict word 00002h                ; ba 02 00
    3261     jmp near 02ab3h                           ; e9 ab 00
     3333    jmp near 02b44h                           ; e9 ab 00
    32623334    test dl, 008h                             ; f6 c2 08
    3263     jne short 02a1ch                          ; 75 0f
     3335    jne short 02aadh                          ; 75 0f
    32643336    mov dx, word [bp-012h]                    ; 8b 56 ee
    32653337    add dx, strict byte 00006h                ; 83 c2 06
     
    32673339    out DX, AL                                ; ee
    32683340    mov dx, strict word 00003h                ; ba 03 00
    3269     jmp near 02ab3h                           ; e9 97 00
     3341    jmp near 02b44h                           ; e9 97 00
    32703342    sti                                       ; fb
    32713343    mov ax, word [bp-00eh]                    ; 8b 46 f2
    32723344    cmp ax, 0f800h                            ; 3d 00 f8
    3273     jc short 02a35h                           ; 72 10
     3345    jc short 02ac6h                           ; 72 10
    32743346    sub ax, 00800h                            ; 2d 00 08
    32753347    mov dx, word [bp-018h]                    ; 8b 56 e8
     
    32783350    mov word [bp-018h], dx                    ; 89 56 e8
    32793351    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
    3280     jne short 02a4dh                          ; 75 12
     3352    jne short 02adeh                          ; 75 12
    32813353    mov dx, word [bp-00ah]                    ; 8b 56 f6
    32823354    mov cx, word [bp-020h]                    ; 8b 4e e0
     
    32853357    db  0f3h, 066h, 026h, 06fh
    32863358    ; rep es outsd                              ; f3 66 26 6f
    3287     jmp short 02a5ch                          ; eb 0f
     3359    jmp short 02aedh                          ; eb 0f
    32883360    mov dx, word [bp-00ah]                    ; 8b 56 f6
    32893361    mov cx, word [bp-020h]                    ; 8b 4e e0
     
    33033375    mov dl, al                                ; 88 c2
    33043376    test AL, strict byte 080h                 ; a8 80
    3305     jne short 02a69h                          ; 75 f1
     3377    jne short 02afah                          ; 75 f1
    33063378    cmp word [bp-01ah], strict byte 00000h    ; 83 7e e6 00
    3307     jne short 02a92h                          ; 75 14
     3379    jne short 02b23h                          ; 75 14
    33083380    and AL, strict byte 0e9h                  ; 24 e9
    33093381    cmp AL, strict byte 040h                  ; 3c 40
    3310     je short 02aa8h                           ; 74 24
     3382    je short 02b39h                           ; 74 24
    33113383    mov dx, word [bp-012h]                    ; 8b 56 ee
    33123384    add dx, strict byte 00006h                ; 83 c2 06
     
    33143386    out DX, AL                                ; ee
    33153387    mov dx, strict word 00006h                ; ba 06 00
    3316     jmp short 02ab3h                          ; eb 21
     3388    jmp short 02b44h                          ; eb 21
    33173389    mov al, dl                                ; 88 d0
    33183390    and AL, strict byte 0c9h                  ; 24 c9
    33193391    cmp AL, strict byte 048h                  ; 3c 48
    3320     je short 02a1dh                           ; 74 83
     3392    je short 02aaeh                           ; 74 83
    33213393    mov dx, word [bp-012h]                    ; 8b 56 ee
    33223394    add dx, strict byte 00006h                ; 83 c2 06
     
    33243396    out DX, AL                                ; ee
    33253397    mov dx, strict word 00007h                ; ba 07 00
    3326     jmp short 02ab3h                          ; eb 0b
     3398    jmp short 02b44h                          ; eb 0b
    33273399    mov dx, word [bp-012h]                    ; 8b 56 ee
    33283400    add dx, strict byte 00006h                ; 83 c2 06
     
    33363408    pop bp                                    ; 5d
    33373409    retn                                      ; c3
    3338 @ata_read_sectors:                           ; 0xf2abc LB 0xb5
     3410@ata_read_sectors:                           ; 0xf2b4d LB 0xb5
    33393411    push bp                                   ; 55
    33403412    mov bp, sp                                ; 89 e5
     
    33493421    sal dx, 009h                              ; c1 e2 09
    33503422    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
    3351     je short 02afdh                           ; 74 1f
     3423    je short 02b8eh                           ; 74 1f
    33523424    xor ah, ah                                ; 30 e4
    33533425    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    33593431    mov ax, si                                ; 89 f0
    33603432    mov dx, es                                ; 8c c2
    3361     call 01ec2h                               ; e8 ca f3
     3433    call 01f53h                               ; e8 ca f3
    33623434    mov es, [bp-00ah]                         ; 8e 46 f6
    3363     jmp short 02b62h                          ; eb 65
     3435    jmp short 02bf3h                          ; eb 65
    33643436    xor bx, bx                                ; 31 db
    33653437    mov word [bp-00ah], bx                    ; 89 5e f6
     
    33763448    adc di, word [bp-00ch]                    ; 13 7e f4
    33773449    test di, di                               ; 85 ff
    3378     jnbe short 02b39h                         ; 77 11
    3379     jne short 02b45h                          ; 75 1b
     3450    jnbe short 02bcah                         ; 77 11
     3451    jne short 02bd6h                          ; 75 1b
    33803452    test bx, bx                               ; 85 db
    3381     jnbe short 02b39h                         ; 77 0b
    3382     jne short 02b45h                          ; 75 15
     3453    jnbe short 02bcah                         ; 77 0b
     3454    jne short 02bd6h                          ; 75 15
    33833455    cmp word [bp-006h], 01000h                ; 81 7e fa 00 10
    3384     jnbe short 02b39h                         ; 77 02
    3385     jne short 02b45h                          ; 75 0c
     3456    jnbe short 02bcah                         ; 77 02
     3457    jne short 02bd6h                          ; 75 0c
    33863458    mov bx, strict word 00024h                ; bb 24 00
    33873459    mov ax, si                                ; 89 f0
    33883460    mov dx, es                                ; 8c c2
    3389     call 01ec2h                               ; e8 7f f3
    3390     jmp short 02b68h                          ; eb 23
     3461    call 01f53h                               ; e8 7f f3
     3462    jmp short 02bf9h                          ; eb 23
    33913463    xor ah, ah                                ; 30 e4
    33923464    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    33983470    mov ax, si                                ; 89 f0
    33993471    mov dx, es                                ; 8c c2
    3400     call 01ec2h                               ; e8 63 f3
     3472    call 01f53h                               ; e8 63 f3
    34013473    mov es, [bp-006h]                         ; 8e 46 fa
    34023474    mov word [es:di+028h], 00200h             ; 26 c7 45 28 00 02
     
    34063478    pop bp                                    ; 5d
    34073479    retn 00004h                               ; c2 04 00
    3408 @ata_write_sectors:                          ; 0xf2b71 LB 0x5b
     3480@ata_write_sectors:                          ; 0xf2c02 LB 0x5b
    34093481    push bp                                   ; 55
    34103482    mov bp, sp                                ; 89 e5
     
    34153487    mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
    34163488    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
    3417     je short 02b91h                           ; 74 0c
     3489    je short 02c22h                           ; 74 0c
    34183490    mov bx, strict word 00030h                ; bb 30 00
    34193491    mov ax, si                                ; 89 f0
    34203492    mov dx, es                                ; 8c c2
    3421     call 02800h                               ; e8 71 fc
    3422     jmp short 02bc3h                          ; eb 32
     3493    call 02891h                               ; e8 71 fc
     3494    jmp short 02c54h                          ; eb 32
    34233495    xor ax, ax                                ; 31 c0
    34243496    xor bx, bx                                ; 31 db
     
    34313503    adc dx, word [es:si+006h]                 ; 26 13 54 06
    34323504    test dx, dx                               ; 85 d2
    3433     jnbe short 02bbeh                         ; 77 0f
    3434     jne short 02b85h                          ; 75 d4
     3505    jnbe short 02c4fh                         ; 77 0f
     3506    jne short 02c16h                          ; 75 d4
    34353507    test bx, bx                               ; 85 db
    3436     jnbe short 02bbeh                         ; 77 09
    3437     jne short 02b85h                          ; 75 ce
     3508    jnbe short 02c4fh                         ; 77 09
     3509    jne short 02c16h                          ; 75 ce
    34383510    cmp ax, 01000h                            ; 3d 00 10
    3439     jnbe short 02bbeh                         ; 77 02
    3440     jne short 02b85h                          ; 75 c7
     3511    jnbe short 02c4fh                         ; 77 02
     3512    jne short 02c16h                          ; 75 c7
    34413513    mov bx, strict word 00034h                ; bb 34 00
    3442     jmp short 02b88h                          ; eb c5
     3514    jmp short 02c19h                          ; eb c5
    34433515    lea sp, [bp-004h]                         ; 8d 66 fc
    34443516    pop di                                    ; 5f
     
    34463518    pop bp                                    ; 5d
    34473519    retn 00004h                               ; c2 04 00
    3448 ata_cmd_packet_:                             ; 0xf2bcc LB 0x2e8
     3520ata_cmd_packet_:                             ; 0xf2c5d LB 0x2e8
    34493521    push bp                                   ; 55
    34503522    mov bp, sp                                ; 89 e5
     
    34573529    mov dx, strict word 0000eh                ; ba 0e 00
    34583530    mov ax, strict word 00040h                ; b8 40 00
    3459     call 016d4h                               ; e8 f1 ea
     3531    call 01765h                               ; e8 f1 ea
    34603532    mov word [bp-012h], 00122h                ; c7 46 ee 22 01
    34613533    mov word [bp-00eh], ax                    ; 89 46 f2
     
    34663538    mov byte [bp-006h], ah                    ; 88 66 fa
    34673539    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    3468     jne short 02c1eh                          ; 75 1f
    3469     mov bx, 00da0h                            ; bb a0 0d
     3540    jne short 02cafh                          ; 75 1f
     3541    mov bx, 00db2h                            ; bb b2 0d
    34703542    mov cx, ds                                ; 8c d9
    34713543    mov ax, strict word 00004h                ; b8 04 00
    3472     call 01999h                               ; e8 8f ed
    3473     push 00221h                               ; 68 21 02
    3474     push 00230h                               ; 68 30 02
     3544    call 01a2ah                               ; e8 8f ed
     3545    push 00233h                               ; 68 33 02
     3546    push 00242h                               ; 68 42 02
    34753547    push strict byte 00004h                   ; 6a 04
    3476     call 019dah                               ; e8 c5 ed
     3548    call 01a6bh                               ; e8 c5 ed
    34773549    add sp, strict byte 00006h                ; 83 c4 06
    34783550    mov dx, strict word 00001h                ; ba 01 00
    3479     jmp near 02ea9h                           ; e9 8b 02
     3551    jmp near 02f3ah                           ; e9 8b 02
    34803552    test byte [bp+004h], 001h                 ; f6 46 04 01
    3481     jne short 02c18h                          ; 75 f4
     3553    jne short 02ca9h                          ; 75 f4
    34823554    xor ah, ah                                ; 30 e4
    34833555    imul ax, ax, strict byte 00006h           ; 6b c0 06
     
    34973569    mov al, byte [bp-008h]                    ; 8a 46 f8
    34983570    cmp AL, strict byte 00ch                  ; 3c 0c
    3499     jnc short 02c61h                          ; 73 06
     3571    jnc short 02cf2h                          ; 73 06
    35003572    mov byte [bp-008h], 00ch                  ; c6 46 f8 0c
    3501     jmp short 02c67h                          ; eb 06
    3502     jbe short 02c67h                          ; 76 04
     3573    jmp short 02cf8h                          ; eb 06
     3574    jbe short 02cf8h                          ; 76 04
    35033575    mov byte [bp-008h], 010h                  ; c6 46 f8 10
    35043576    shr byte [bp-008h], 1                     ; d0 6e f8
     
    35133585    ; sub ah, ah                                ; 2a e4
    35143586    test AL, strict byte 080h                 ; a8 80
    3515     je short 02c8fh                           ; 74 06
     3587    je short 02d20h                           ; 74 06
    35163588    mov dx, strict word 00002h                ; ba 02 00
    3517     jmp near 02ea9h                           ; e9 1a 02
     3589    jmp near 02f3ah                           ; e9 1a 02
    35183590    mov dx, word [bp-010h]                    ; 8b 56 f0
    35193591    add dx, strict byte 00006h                ; 83 c2 06
     
    35273599    out DX, AL                                ; ee
    35283600    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3529     je short 02cafh                           ; 74 05
     3601    je short 02d40h                           ; 74 05
    35303602    mov ax, 000b0h                            ; b8 b0 00
    3531     jmp short 02cb2h                          ; eb 03
     3603    jmp short 02d43h                          ; eb 03
    35323604    mov ax, 000a0h                            ; b8 a0 00
    35333605    lea dx, [bx+006h]                         ; 8d 57 06
     
    35423614    mov dl, al                                ; 88 c2
    35433615    test AL, strict byte 080h                 ; a8 80
    3544     jne short 02cbch                          ; 75 f4
     3616    jne short 02d4dh                          ; 75 f4
    35453617    test AL, strict byte 001h                 ; a8 01
    3546     je short 02cdbh                           ; 74 0f
     3618    je short 02d6ch                           ; 74 0f
    35473619    mov dx, word [bp-010h]                    ; 8b 56 f0
    35483620    add dx, strict byte 00006h                ; 83 c2 06
     
    35503622    out DX, AL                                ; ee
    35513623    mov dx, strict word 00003h                ; ba 03 00
    3552     jmp near 02ea9h                           ; e9 ce 01
     3624    jmp near 02f3ah                           ; e9 ce 01
    35533625    test dl, 008h                             ; f6 c2 08
    3554     jne short 02cefh                          ; 75 0f
     3626    jne short 02d80h                          ; 75 0f
    35553627    mov dx, word [bp-010h]                    ; 8b 56 f0
    35563628    add dx, strict byte 00006h                ; 83 c2 06
     
    35583630    out DX, AL                                ; ee
    35593631    mov dx, strict word 00004h                ; ba 04 00
    3560     jmp near 02ea9h                           ; e9 ba 01
     3632    jmp near 02f3ah                           ; e9 ba 01
    35613633    sti                                       ; fb
    35623634    mov ax, di                                ; 89 f8
     
    35713643    ; rep es outsw                              ; f3 26 6f
    35723644    cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
    3573     jne short 02d18h                          ; 75 0b
     3645    jne short 02da9h                          ; 75 0b
    35743646    lea dx, [bx+007h]                         ; 8d 57 07
    35753647    in AL, DX                                 ; ec
     
    35773649    ; sub ah, ah                                ; 2a e4
    35783650    mov dl, al                                ; 88 c2
    3579     jmp near 02e8ah                           ; e9 72 01
     3651    jmp near 02f1bh                           ; e9 72 01
    35803652    lea dx, [bx+007h]                         ; 8d 57 07
    35813653    in AL, DX                                 ; ec
     
    35843656    mov dl, al                                ; 88 c2
    35853657    test AL, strict byte 080h                 ; a8 80
    3586     jne short 02d18h                          ; 75 f4
     3658    jne short 02da9h                          ; 75 f4
    35873659    test AL, strict byte 088h                 ; a8 88
    3588     je near 02e8ah                            ; 0f 84 60 01
     3660    je near 02f1bh                            ; 0f 84 60 01
    35893661    test AL, strict byte 001h                 ; a8 01
    3590     je short 02d39h                           ; 74 0b
     3662    je short 02dcah                           ; 74 0b
    35913663    mov dx, word [bp-010h]                    ; 8b 56 f0
    35923664    add dx, strict byte 00006h                ; 83 c2 06
    35933665    mov AL, strict byte 008h                  ; b0 08
    35943666    out DX, AL                                ; ee
    3595     jmp short 02cd5h                          ; eb 9c
     3667    jmp short 02d66h                          ; eb 9c
    35963668    mov al, dl                                ; 88 d0
    35973669    and AL, strict byte 0c9h                  ; 24 c9
    35983670    cmp AL, strict byte 048h                  ; 3c 48
    3599     je short 02d4ch                           ; 74 0b
     3671    je short 02dddh                           ; 74 0b
    36003672    mov dx, word [bp-010h]                    ; 8b 56 f0
    36013673    add dx, strict byte 00006h                ; 83 c2 06
    36023674    mov AL, strict byte 008h                  ; b0 08
    36033675    out DX, AL                                ; ee
    3604     jmp short 02ce9h                          ; eb 9d
     3676    jmp short 02d7ah                          ; eb 9d
    36053677    mov ax, word [bp+00ch]                    ; 8b 46 0c
    36063678    shr ax, 004h                              ; c1 e8 04
     
    36253697    mov ax, word [bp+004h]                    ; 8b 46 04
    36263698    cmp ax, cx                                ; 39 c8
    3627     jbe short 02d8ch                          ; 76 0c
     3699    jbe short 02e1dh                          ; 76 0c
    36283700    mov ax, cx                                ; 89 c8
    36293701    sub word [bp+004h], cx                    ; 29 4e 04
    36303702    xor ax, cx                                ; 31 c8
    36313703    mov word [bp-014h], ax                    ; 89 46 ec
    3632     jmp short 02d96h                          ; eb 0a
     3704    jmp short 02e27h                          ; eb 0a
    36333705    mov cx, ax                                ; 89 c1
    36343706    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    36363708    xor ax, ax                                ; 31 c0
    36373709    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    3638     jne short 02dbfh                          ; 75 21
     3710    jne short 02e50h                          ; 75 21
    36393711    mov dx, word [bp-014h]                    ; 8b 56 ec
    36403712    cmp dx, word [bp+006h]                    ; 3b 56 06
    3641     jbe short 02dbfh                          ; 76 19
     3713    jbe short 02e50h                          ; 76 19
    36423714    mov ax, word [bp-014h]                    ; 8b 46 ec
    36433715    sub ax, word [bp+006h]                    ; 2b 46 06
     
    36483720    mov word [bp+006h], ax                    ; 89 46 06
    36493721    mov word [bp+008h], ax                    ; 89 46 08
    3650     jmp short 02dcbh                          ; eb 0c
     3722    jmp short 02e5ch                          ; eb 0c
    36513723    mov word [bp-00ch], ax                    ; 89 46 f4
    36523724    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    36563728    mov al, byte [bp-00ah]                    ; 8a 46 f6
    36573729    test cl, 003h                             ; f6 c1 03
    3658     je short 02dd8h                           ; 74 02
     3730    je short 02e69h                           ; 74 02
    36593731    xor al, al                                ; 30 c0
    36603732    test byte [bp-014h], 003h                 ; f6 46 ec 03
    3661     je short 02de0h                           ; 74 02
     3733    je short 02e71h                           ; 74 02
    36623734    xor al, al                                ; 30 c0
    36633735    test byte [bp-00ch], 003h                 ; f6 46 f4 03
    3664     je short 02de8h                           ; 74 02
     3736    je short 02e79h                           ; 74 02
    36653737    xor al, al                                ; 30 c0
    36663738    test byte [bp-014h], 001h                 ; f6 46 ec 01
    3667     je short 02e00h                           ; 74 12
     3739    je short 02e91h                           ; 74 12
    36683740    inc word [bp-014h]                        ; ff 46 ec
    36693741    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    3670     jbe short 02e00h                          ; 76 09
     3742    jbe short 02e91h                          ; 76 09
    36713743    test byte [bp-00ch], 001h                 ; f6 46 f4 01
    3672     je short 02e00h                           ; 74 03
     3744    je short 02e91h                           ; 74 03
    36733745    dec word [bp-00ch]                        ; ff 4e f4
    36743746    cmp AL, strict byte 001h                  ; 3c 01
    3675     jne short 02e11h                          ; 75 0d
     3747    jne short 02ea2h                          ; 75 0d
    36763748    shr word [bp-014h], 002h                  ; c1 6e ec 02
    36773749    shr cx, 002h                              ; c1 e9 02
    36783750    shr word [bp-00ch], 002h                  ; c1 6e f4 02
    3679     jmp short 02e19h                          ; eb 08
     3751    jmp short 02eaah                          ; eb 08
    36803752    shr word [bp-014h], 1                     ; d1 6e ec
    36813753    shr cx, 1                                 ; d1 e9
    36823754    shr word [bp-00ch], 1                     ; d1 6e f4
    36833755    cmp AL, strict byte 001h                  ; 3c 01
    3684     jne short 02e49h                          ; 75 2c
     3756    jne short 02edah                          ; 75 2c
    36853757    test cx, cx                               ; 85 c9
    3686     je short 02e2bh                           ; 74 0a
     3758    je short 02ebch                           ; 74 0a
    36873759    mov dx, bx                                ; 89 da
    36883760    push eax                                  ; 66 50
    36893761    in eax, DX                                ; 66 ed
    3690     loop 02e25h                               ; e2 fc
     3762    loop 02eb6h                               ; e2 fc
    36913763    pop eax                                   ; 66 58
    36923764    mov dx, bx                                ; 89 da
     
    36973769    mov ax, word [bp-00ch]                    ; 8b 46 f4
    36983770    test ax, ax                               ; 85 c0
    3699     je short 02e68h                           ; 74 2b
     3771    je short 02ef9h                           ; 74 2b
    37003772    mov cx, ax                                ; 89 c1
    37013773    push eax                                  ; 66 50
    37023774    in eax, DX                                ; 66 ed
    3703     loop 02e41h                               ; e2 fc
     3775    loop 02ed2h                               ; e2 fc
    37043776    pop eax                                   ; 66 58
    3705     jmp short 02e68h                          ; eb 1f
     3777    jmp short 02ef9h                          ; eb 1f
    37063778    test cx, cx                               ; 85 c9
    3707     je short 02e52h                           ; 74 05
     3779    je short 02ee3h                           ; 74 05
    37083780    mov dx, bx                                ; 89 da
    37093781    in ax, DX                                 ; ed
    3710     loop 02e4fh                               ; e2 fd
     3782    loop 02ee0h                               ; e2 fd
    37113783    mov dx, bx                                ; 89 da
    37123784    mov cx, word [bp-014h]                    ; 8b 4e ec
     
    37153787    mov ax, word [bp-00ch]                    ; 8b 46 f4
    37163788    test ax, ax                               ; 85 c0
    3717     je short 02e68h                           ; 74 05
     3789    je short 02ef9h                           ; 74 05
    37183790    mov cx, ax                                ; 89 c1
    37193791    in ax, DX                                 ; ed
    3720     loop 02e65h                               ; e2 fd
     3792    loop 02ef6h                               ; e2 fd
    37213793    add word [bp+00ch], si                    ; 01 76 0c
    37223794    xor ax, ax                                ; 31 c0
     
    37293801    mov ax, word [bp-016h]                    ; 8b 46 ea
    37303802    mov word [es:si+01ch], ax                 ; 26 89 44 1c
    3731     jmp near 02d18h                           ; e9 8e fe
     3803    jmp near 02da9h                           ; e9 8e fe
    37323804    mov al, dl                                ; 88 d0
    37333805    and AL, strict byte 0e9h                  ; 24 e9
    37343806    cmp AL, strict byte 040h                  ; 3c 40
    3735     je short 02e9eh                           ; 74 0c
     3807    je short 02f2fh                           ; 74 0c
    37363808    mov dx, word [bp-010h]                    ; 8b 56 f0
    37373809    add dx, strict byte 00006h                ; 83 c2 06
    37383810    mov AL, strict byte 008h                  ; b0 08
    37393811    out DX, AL                                ; ee
    3740     jmp near 02ce9h                           ; e9 4b fe
     3812    jmp near 02d7ah                           ; e9 4b fe
    37413813    mov dx, word [bp-010h]                    ; 8b 56 f0
    37423814    add dx, strict byte 00006h                ; 83 c2 06
     
    37503822    pop bp                                    ; 5d
    37513823    retn 0000ch                               ; c2 0c 00
    3752 ata_soft_reset_:                             ; 0xf2eb4 LB 0x80
     3824ata_soft_reset_:                             ; 0xf2f45 LB 0x80
    37533825    push bp                                   ; 55
    37543826    mov bp, sp                                ; 89 e5
     
    37603832    mov dx, strict word 0000eh                ; ba 0e 00
    37613833    mov ax, strict word 00040h                ; b8 40 00
    3762     call 016d4h                               ; e8 0e e8
     3834    call 01765h                               ; e8 0e e8
    37633835    mov dx, bx                                ; 89 da
    37643836    shr dx, 1                                 ; d1 ea
     
    37753847    out DX, AL                                ; ee
    37763848    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3777     je short 02ef6h                           ; 74 05
     3849    je short 02f87h                           ; 74 05
    37783850    mov ax, 000b0h                            ; b8 b0 00
    3779     jmp short 02ef9h                          ; eb 03
     3851    jmp short 02f8ah                          ; eb 03
    37803852    mov ax, 000a0h                            ; b8 a0 00
    37813853    mov dx, cx                                ; 89 ca
     
    37923864    ; sub ah, ah                                ; 2a e4
    37933865    test AL, strict byte 080h                 ; a8 80
    3794     jne short 02f07h                          ; 75 f4
     3866    jne short 02f98h                          ; 75 f4
    37953867    and AL, strict byte 0e9h                  ; 24 e9
    37963868    cmp AL, strict byte 040h                  ; 3c 40
    3797     je short 02f24h                           ; 74 0b
     3869    je short 02fb5h                           ; 74 0b
    37983870    lea dx, [bx+006h]                         ; 8d 57 06
    37993871    mov AL, strict byte 008h                  ; b0 08
    38003872    out DX, AL                                ; ee
    38013873    mov ax, strict word 00001h                ; b8 01 00
    3802     jmp short 02f2ch                          ; eb 08
     3874    jmp short 02fbdh                          ; eb 08
    38033875    lea dx, [bx+006h]                         ; 8d 57 06
    38043876    mov AL, strict byte 008h                  ; b0 08
     
    38113883    pop bp                                    ; 5d
    38123884    retn                                      ; c3
    3813 set_diskette_ret_status_:                    ; 0xf2f34 LB 0x18
     3885set_diskette_current_cyl_:                   ; 0xf2fc5 LB 0x2a
    38143886    push bp                                   ; 55
    38153887    mov bp, sp                                ; 89 e5
    38163888    push bx                                   ; 53
    3817     push dx                                   ; 52
    3818     movzx bx, al                              ; 0f b6 d8
    3819     mov dx, strict word 00041h                ; ba 41 00
     3889    mov dh, al                                ; 88 c6
     3890    cmp AL, strict byte 001h                  ; 3c 01
     3891    jbe short 02fdah                          ; 76 0b
     3892    push 00262h                               ; 68 62 02
     3893    push strict byte 00007h                   ; 6a 07
     3894    call 01a6bh                               ; e8 94 ea
     3895    add sp, strict byte 00004h                ; 83 c4 04
     3896    movzx bx, dh                              ; 0f b6 de
     3897    add bx, 00094h                            ; 81 c3 94 00
    38203898    mov ax, strict word 00040h                ; b8 40 00
    3821     call 016c6h                               ; e8 81 e7
    3822     lea sp, [bp-004h]                         ; 8d 66 fc
    3823     pop dx                                    ; 5a
    3824     pop bx                                    ; 5b
    3825     pop bp                                    ; 5d
    3826     retn                                      ; c3
    3827 set_diskette_current_cyl_:                   ; 0xf2f4c LB 0x2d
    3828     push bp                                   ; 55
    3829     mov bp, sp                                ; 89 e5
    3830     push bx                                   ; 53
    3831     mov bl, al                                ; 88 c3
    3832     cmp AL, strict byte 001h                  ; 3c 01
    3833     jbe short 02f61h                          ; 76 0b
    3834     push 00250h                               ; 68 50 02
    3835     push strict byte 00007h                   ; 6a 07
    3836     call 019dah                               ; e8 7c ea
    3837     add sp, strict byte 00004h                ; 83 c4 04
    3838     movzx ax, dl                              ; 0f b6 c2
    3839     movzx dx, bl                              ; 0f b6 d3
    3840     add dx, 00094h                            ; 81 c2 94 00
    3841     mov bx, ax                                ; 89 c3
    3842     mov ax, strict word 00040h                ; b8 40 00
    3843     call 016c6h                               ; e8 53 e7
     3899    mov es, ax                                ; 8e c0
     3900    mov byte [es:bx], dl                      ; 26 88 17
    38443901    lea sp, [bp-002h]                         ; 8d 66 fe
    38453902    pop bx                                    ; 5b
    38463903    pop bp                                    ; 5d
    38473904    retn                                      ; c3
    3848 floppy_wait_for_interrupt_:                  ; 0xf2f79 LB 0x21
     3905floppy_wait_for_interrupt_:                  ; 0xf2fef LB 0x23
    38493906    push bp                                   ; 55
    38503907    mov bp, sp                                ; 89 e5
    3851     push dx                                   ; 52
     3908    push bx                                   ; 53
    38523909    cli                                       ; fa
    3853     mov dx, strict word 0003eh                ; ba 3e 00
     3910    mov bx, strict word 0003eh                ; bb 3e 00
    38543911    mov ax, strict word 00040h                ; b8 40 00
    3855     call 016b8h                               ; e8 31 e7
     3912    mov es, ax                                ; 8e c0
     3913    mov al, byte [es:bx]                      ; 26 8a 07
    38563914    test AL, strict byte 080h                 ; a8 80
    3857     je short 02f8fh                           ; 74 04
     3915    je short 03007h                           ; 74 04
    38583916    and AL, strict byte 080h                  ; 24 80
    3859     jmp short 02f94h                          ; eb 05
     3917    jmp short 0300ch                          ; eb 05
    38603918    sti                                       ; fb
    38613919    hlt                                       ; f4
    38623920    cli                                       ; fa
    3863     jmp short 02f7eh                          ; eb ea
     3921    jmp short 02ff4h                          ; eb e8
    38643922    lea sp, [bp-002h]                         ; 8d 66 fe
    3865     pop dx                                    ; 5a
     3923    pop bx                                    ; 5b
    38663924    pop bp                                    ; 5d
    38673925    retn                                      ; c3
    3868 floppy_wait_for_interrupt_or_timeout_:       ; 0xf2f9a LB 0x46
     3926floppy_wait_for_interrupt_or_timeout_:       ; 0xf3012 LB 0x38
     3927    push bp                                   ; 55
     3928    mov bp, sp                                ; 89 e5
     3929    push bx                                   ; 53
     3930    cli                                       ; fa
     3931    mov bx, strict word 00040h                ; bb 40 00
     3932    mov es, bx                                ; 8e c3
     3933    mov al, byte [es:bx]                      ; 26 8a 07
     3934    test al, al                               ; 84 c0
     3935    jne short 03026h                          ; 75 03
     3936    sti                                       ; fb
     3937    jmp short 03044h                          ; eb 1e
     3938    mov bx, strict word 0003eh                ; bb 3e 00
     3939    mov ax, strict word 00040h                ; b8 40 00
     3940    mov es, ax                                ; 8e c0
     3941    mov al, byte [es:bx]                      ; 26 8a 07
     3942    test AL, strict byte 080h                 ; a8 80
     3943    je short 0303fh                           ; 74 0a
     3944    mov ah, al                                ; 88 c4
     3945    and ah, 07fh                              ; 80 e4 7f
     3946    mov byte [es:bx], ah                      ; 26 88 27
     3947    jmp short 03044h                          ; eb 05
     3948    sti                                       ; fb
     3949    hlt                                       ; f4
     3950    cli                                       ; fa
     3951    jmp short 03017h                          ; eb d3
     3952    lea sp, [bp-002h]                         ; 8d 66 fe
     3953    pop bx                                    ; 5b
     3954    pop bp                                    ; 5d
     3955    retn                                      ; c3
     3956floppy_reset_controller_:                    ; 0xf304a LB 0x42
    38693957    push bp                                   ; 55
    38703958    mov bp, sp                                ; 89 e5
     
    38723960    push cx                                   ; 51
    38733961    push dx                                   ; 52
    3874     cli                                       ; fa
    3875     mov dx, strict word 00040h                ; ba 40 00
    3876     mov ax, dx                                ; 89 d0
    3877     call 016b8h                               ; e8 0f e7
    3878     test al, al                               ; 84 c0
    3879     jne short 02fb2h                          ; 75 05
    3880     sti                                       ; fb
    3881     xor cl, cl                                ; 30 c9
    3882     jmp short 02fd6h                          ; eb 24
    3883     mov dx, strict word 0003eh                ; ba 3e 00
     3962    mov cx, ax                                ; 89 c1
     3963    mov dx, 003f2h                            ; ba f2 03
     3964    in AL, DX                                 ; ec
     3965    db  02ah, 0e4h
     3966    ; sub ah, ah                                ; 2a e4
     3967    mov bx, ax                                ; 89 c3
     3968    movzx ax, bl                              ; 0f b6 c3
     3969    and AL, strict byte 0fbh                  ; 24 fb
     3970    out DX, AL                                ; ee
     3971    mov al, bl                                ; 88 d8
     3972    or AL, strict byte 004h                   ; 0c 04
     3973    out DX, AL                                ; ee
     3974    mov dx, 003f4h                            ; ba f4 03
     3975    in AL, DX                                 ; ec
     3976    db  02ah, 0e4h
     3977    ; sub ah, ah                                ; 2a e4
     3978    and AL, strict byte 0c0h                  ; 24 c0
     3979    cmp AL, strict byte 080h                  ; 3c 80
     3980    jne short 03065h                          ; 75 f4
     3981    mov bx, cx                                ; 89 cb
     3982    add bx, 00090h                            ; 81 c3 90 00
    38843983    mov ax, strict word 00040h                ; b8 40 00
    3885     call 016b8h                               ; e8 fd e6
    3886     mov cl, al                                ; 88 c1
    3887     test AL, strict byte 080h                 ; a8 80
    3888     je short 02fd1h                           ; 74 10
    3889     and AL, strict byte 07fh                  ; 24 7f
    3890     movzx bx, al                              ; 0f b6 d8
    3891     mov dx, strict word 0003eh                ; ba 3e 00
    3892     mov ax, strict word 00040h                ; b8 40 00
    3893     call 016c6h                               ; e8 f7 e6
    3894     jmp short 02fd6h                          ; eb 05
    3895     sti                                       ; fb
    3896     hlt                                       ; f4
    3897     cli                                       ; fa
    3898     jmp short 02fa1h                          ; eb cb
    3899     mov al, cl                                ; 88 c8
     3984    mov es, ax                                ; 8e c0
     3985    mov al, byte [es:bx]                      ; 26 8a 07
     3986    and AL, strict byte 0efh                  ; 24 ef
     3987    mov byte [es:bx], al                      ; 26 88 07
    39003988    lea sp, [bp-006h]                         ; 8d 66 fa
    39013989    pop dx                                    ; 5a
     
    39043992    pop bp                                    ; 5d
    39053993    retn                                      ; c3
    3906 floppy_reset_controller_:                    ; 0xf2fe0 LB 0x48
    3907     push bp                                   ; 55
    3908     mov bp, sp                                ; 89 e5
    3909     push bx                                   ; 53
    3910     push cx                                   ; 51
    3911     push dx                                   ; 52
    3912     mov bx, ax                                ; 89 c3
    3913     mov dx, 003f2h                            ; ba f2 03
    3914     in AL, DX                                 ; ec
    3915     db  02ah, 0e4h
    3916     ; sub ah, ah                                ; 2a e4
    3917     mov cx, ax                                ; 89 c1
    3918     movzx ax, cl                              ; 0f b6 c1
    3919     and AL, strict byte 0fbh                  ; 24 fb
    3920     out DX, AL                                ; ee
    3921     mov al, cl                                ; 88 c8
    3922     or AL, strict byte 004h                   ; 0c 04
    3923     out DX, AL                                ; ee
    3924     mov dx, 003f4h                            ; ba f4 03
    3925     in AL, DX                                 ; ec
    3926     db  02ah, 0e4h
    3927     ; sub ah, ah                                ; 2a e4
    3928     and AL, strict byte 0c0h                  ; 24 c0
    3929     cmp AL, strict byte 080h                  ; 3c 80
    3930     jne short 02ffbh                          ; 75 f4
    3931     lea cx, [bx+00090h]                       ; 8d 8f 90 00
    3932     mov dx, cx                                ; 89 ca
    3933     mov ax, strict word 00040h                ; b8 40 00
    3934     call 016b8h                               ; e8 a5 e6
    3935     and AL, strict byte 0efh                  ; 24 ef
    3936     movzx bx, al                              ; 0f b6 d8
    3937     mov dx, cx                                ; 89 ca
    3938     mov ax, strict word 00040h                ; b8 40 00
    3939     call 016c6h                               ; e8 a6 e6
    3940     lea sp, [bp-006h]                         ; 8d 66 fa
    3941     pop dx                                    ; 5a
    3942     pop cx                                    ; 59
    3943     pop bx                                    ; 5b
    3944     pop bp                                    ; 5d
    3945     retn                                      ; c3
    3946 floppy_prepare_controller_:                  ; 0xf3028 LB 0x81
     3994floppy_prepare_controller_:                  ; 0xf308c LB 0x74
    39473995    push bp                                   ; 55
    39483996    mov bp, sp                                ; 89 e5
     
    39524000    push ax                                   ; 50
    39534001    mov cx, ax                                ; 89 c1
    3954     mov dx, strict word 0003eh                ; ba 3e 00
     4002    mov bx, strict word 0003eh                ; bb 3e 00
    39554003    mov ax, strict word 00040h                ; b8 40 00
    3956     call 016b8h                               ; e8 7e e6
     4004    mov es, ax                                ; 8e c0
     4005    mov al, byte [es:bx]                      ; 26 8a 07
    39574006    and AL, strict byte 07fh                  ; 24 7f
    3958     movzx bx, al                              ; 0f b6 d8
    3959     mov dx, strict word 0003eh                ; ba 3e 00
    3960     mov ax, strict word 00040h                ; b8 40 00
    3961     call 016c6h                               ; e8 7e e6
     4007    mov byte [es:bx], al                      ; 26 88 07
    39624008    mov dx, 003f2h                            ; ba f2 03
    39634009    in AL, DX                                 ; ec
     
    39674013    mov byte [bp-008h], al                    ; 88 46 f8
    39684014    test cx, cx                               ; 85 c9
    3969     je short 0305bh                           ; 74 04
     4015    je short 030b8h                           ; 74 04
    39704016    mov AL, strict byte 020h                  ; b0 20
    3971     jmp short 0305dh                          ; eb 02
     4017    jmp short 030bah                          ; eb 02
    39724018    mov AL, strict byte 010h                  ; b0 10
    39734019    or AL, strict byte 00ch                   ; 0c 0c
     
    39754021    mov dx, 003f2h                            ; ba f2 03
    39764022    out DX, AL                                ; ee
    3977     mov bx, strict word 00025h                ; bb 25 00
    3978     mov dx, strict word 00040h                ; ba 40 00
    3979     mov ax, dx                                ; 89 d0
    3980     call 016c6h                               ; e8 56 e6
    3981     mov dx, 0008bh                            ; ba 8b 00
    3982     mov ax, strict word 00040h                ; b8 40 00
    3983     call 016b8h                               ; e8 3f e6
     4023    mov bx, strict word 00040h                ; bb 40 00
     4024    mov es, bx                                ; 8e c3
     4025    mov byte [es:bx], 025h                    ; 26 c6 07 25
     4026    mov bx, 0008bh                            ; bb 8b 00
     4027    mov al, byte [es:bx]                      ; 26 8a 07
    39844028    shr al, 006h                              ; c0 e8 06
    39854029    mov dx, 003f7h                            ; ba f7 03
     
    39914035    and AL, strict byte 0c0h                  ; 24 c0
    39924036    cmp AL, strict byte 080h                  ; 3c 80
    3993     jne short 03080h                          ; 75 f4
     4037    jne short 030d8h                          ; 75 f4
    39944038    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3995     jne short 030a1h                          ; 75 0f
    3996     call 02f79h                               ; e8 e4 fe
    3997     movzx bx, al                              ; 0f b6 d8
    3998     mov dx, strict word 0003eh                ; ba 3e 00
    3999     mov ax, strict word 00040h                ; b8 40 00
    4000     call 016c6h                               ; e8 25 e6
     4039    jne short 030f8h                          ; 75 0e
     4040    call 02fefh                               ; e8 02 ff
     4041    mov bx, strict word 0003eh                ; bb 3e 00
     4042    mov dx, strict word 00040h                ; ba 40 00
     4043    mov es, dx                                ; 8e c2
     4044    mov byte [es:bx], al                      ; 26 88 07
    40014045    lea sp, [bp-006h]                         ; 8d 66 fa
    40024046    pop dx                                    ; 5a
     
    40054049    pop bp                                    ; 5d
    40064050    retn                                      ; c3
    4007 floppy_media_known_:                         ; 0xf30a9 LB 0x43
     4051floppy_media_known_:                         ; 0xf3100 LB 0x49
     4052    push bx                                   ; 53
     4053    push dx                                   ; 52
    40084054    push bp                                   ; 55
    40094055    mov bp, sp                                ; 89 e5
    4010     push bx                                   ; 53
    4011     push dx                                   ; 52
    4012     mov bx, ax                                ; 89 c3
    4013     mov dx, strict word 0003eh                ; ba 3e 00
     4056    mov bx, strict word 0003eh                ; bb 3e 00
     4057    mov dx, strict word 00040h                ; ba 40 00
     4058    mov es, dx                                ; 8e c2
     4059    mov bh, byte [es:bx]                      ; 26 8a 3f
     4060    mov bl, bh                                ; 88 fb
     4061    test ax, ax                               ; 85 c0
     4062    je short 03118h                           ; 74 02
     4063    shr bl, 1                                 ; d0 eb
     4064    and bl, 001h                              ; 80 e3 01
     4065    jne short 03121h                          ; 75 04
     4066    xor bh, bh                                ; 30 ff
     4067    jmp short 03143h                          ; eb 22
     4068    mov bx, 00090h                            ; bb 90 00
     4069    test ax, ax                               ; 85 c0
     4070    je short 0312bh                           ; 74 03
     4071    mov bx, 00091h                            ; bb 91 00
    40144072    mov ax, strict word 00040h                ; b8 40 00
    4015     call 016b8h                               ; e8 ff e5
    4016     mov ah, al                                ; 88 c4
    4017     test bx, bx                               ; 85 db
    4018     je short 030c1h                           ; 74 02
    4019     shr al, 1                                 ; d0 e8
    4020     and AL, strict byte 001h                  ; 24 01
    4021     jne short 030c9h                          ; 75 04
    4022     xor ah, ah                                ; 30 e4
    4023     jmp short 030e5h                          ; eb 1c
    4024     mov dx, 00090h                            ; ba 90 00
    4025     test bx, bx                               ; 85 db
    4026     je short 030d3h                           ; 74 03
    4027     mov dx, 00091h                            ; ba 91 00
    4028     mov ax, strict word 00040h                ; b8 40 00
    4029     call 016b8h                               ; e8 df e5
     4073    mov es, ax                                ; 8e c0
     4074    mov al, byte [es:bx]                      ; 26 8a 07
    40304075    xor ah, ah                                ; 30 e4
    40314076    sar ax, 004h                              ; c1 f8 04
    40324077    and AL, strict byte 001h                  ; 24 01
    4033     je short 030c5h                           ; 74 e3
    4034     mov ax, strict word 00001h                ; b8 01 00
    4035     lea sp, [bp-004h]                         ; 8d 66 fc
     4078    jne short 03140h                          ; 75 04
     4079    xor bx, bx                                ; 31 db
     4080    jmp short 03143h                          ; eb 03
     4081    mov bx, strict word 00001h                ; bb 01 00
     4082    mov ax, bx                                ; 89 d8
     4083    pop bp                                    ; 5d
    40364084    pop dx                                    ; 5a
    40374085    pop bx                                    ; 5b
    4038     pop bp                                    ; 5d
    40394086    retn                                      ; c3
    4040 floppy_read_id_:                             ; 0xf30ec LB 0x40
     4087floppy_read_id_:                             ; 0xf3149 LB 0x4e
    40414088    push bp                                   ; 55
    40424089    mov bp, sp                                ; 89 e5
     
    40444091    push dx                                   ; 52
    40454092    push si                                   ; 56
    4046     sub sp, strict byte 00008h                ; 83 ec 08
    40474093    mov bx, ax                                ; 89 c3
    4048     call 03028h                               ; e8 2e ff
     4094    call 0308ch                               ; e8 38 ff
    40494095    mov AL, strict byte 04ah                  ; b0 4a
    40504096    mov dx, 003f5h                            ; ba f5 03
     
    40524098    mov al, bl                                ; 88 d8
    40534099    out DX, AL                                ; ee
    4054     call 02f79h                               ; e8 73 fe
    4055     xor si, si                                ; 31 f6
    4056     jmp short 0310fh                          ; eb 05
    4057     cmp si, strict byte 00007h                ; 83 fe 07
    4058     jnl short 0311bh                          ; 7d 0c
     4100    call 02fefh                               ; e8 8f fe
     4101    xor bx, bx                                ; 31 db
     4102    jmp short 03169h                          ; eb 05
     4103    cmp bx, strict byte 00007h                ; 83 fb 07
     4104    jnl short 0317dh                          ; 7d 14
    40594105    mov dx, 003f5h                            ; ba f5 03
    40604106    in AL, DX                                 ; ec
    40614107    db  02ah, 0e4h
    40624108    ; sub ah, ah                                ; 2a e4
    4063     mov byte [bp+si-00eh], al                 ; 88 42 f2
    4064     inc si                                    ; 46
    4065     jmp short 0310ah                          ; eb ef
    4066     test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
     4109    lea si, [bx+042h]                         ; 8d 77 42
     4110    mov dx, strict word 00040h                ; ba 40 00
     4111    mov es, dx                                ; 8e c2
     4112    mov byte [es:si], al                      ; 26 88 04
     4113    inc bx                                    ; 43
     4114    jmp short 03164h                          ; eb e7
     4115    mov bx, strict word 00042h                ; bb 42 00
     4116    mov ax, strict word 00040h                ; b8 40 00
     4117    mov es, ax                                ; 8e c0
     4118    mov al, byte [es:bx]                      ; 26 8a 07
     4119    test AL, strict byte 0c0h                 ; a8 c0
    40674120    db  00fh, 094h, 0c0h
    40684121    ; sete al                                   ; 0f 94 c0
     
    40744127    pop bp                                    ; 5d
    40754128    retn                                      ; c3
    4076 floppy_drive_recal_:                         ; 0xf312c LB 0x48
     4129floppy_drive_recal_:                         ; 0xf3197 LB 0x41
    40774130    push bp                                   ; 55
    40784131    mov bp, sp                                ; 89 e5
    40794132    push bx                                   ; 53
    4080     push cx                                   ; 51
    40814133    push dx                                   ; 52
     4134    push si                                   ; 56
    40824135    mov bx, ax                                ; 89 c3
    4083     call 03028h                               ; e8 f1 fe
     4136    call 0308ch                               ; e8 ea fe
    40844137    mov AL, strict byte 007h                  ; b0 07
    40854138    mov dx, 003f5h                            ; ba f5 03
     
    40874140    mov al, bl                                ; 88 d8
    40884141    out DX, AL                                ; ee
    4089     call 02f79h                               ; e8 36 fe
     4142    call 02fefh                               ; e8 41 fe
    40904143    test bx, bx                               ; 85 db
    4091     je short 0314eh                           ; 74 07
     4144    je short 031b9h                           ; 74 07
    40924145    or AL, strict byte 002h                   ; 0c 02
    4093     mov cx, 00095h                            ; b9 95 00
    4094     jmp short 03153h                          ; eb 05
     4146    mov bx, 00095h                            ; bb 95 00
     4147    jmp short 031beh                          ; eb 05
    40954148    or AL, strict byte 001h                   ; 0c 01
    4096     mov cx, 00094h                            ; b9 94 00
    4097     movzx bx, al                              ; 0f b6 d8
    4098     mov dx, strict word 0003eh                ; ba 3e 00
    4099     mov ax, strict word 00040h                ; b8 40 00
    4100     call 016c6h                               ; e8 67 e5
    4101     xor bx, bx                                ; 31 db
    4102     mov dx, cx                                ; 89 ca
    4103     mov ax, strict word 00040h                ; b8 40 00
    4104     call 016c6h                               ; e8 5d e5
     4149    mov bx, 00094h                            ; bb 94 00
     4150    mov si, strict word 0003eh                ; be 3e 00
     4151    mov dx, strict word 00040h                ; ba 40 00
     4152    mov es, dx                                ; 8e c2
     4153    mov byte [es:si], al                      ; 26 88 04
     4154    mov byte [es:bx], 000h                    ; 26 c6 07 00
    41054155    mov ax, strict word 00001h                ; b8 01 00
    41064156    lea sp, [bp-006h]                         ; 8d 66 fa
     4157    pop si                                    ; 5e
    41074158    pop dx                                    ; 5a
    4108     pop cx                                    ; 59
    41094159    pop bx                                    ; 5b
    41104160    pop bp                                    ; 5d
    41114161    retn                                      ; c3
    4112 floppy_media_sense_:                         ; 0xf3174 LB 0xf0
     4162floppy_media_sense_:                         ; 0xf31d8 LB 0xe4
    41134163    push bp                                   ; 55
    41144164    mov bp, sp                                ; 89 e5
     
    41174167    push dx                                   ; 52
    41184168    push si                                   ; 56
    4119     push di                                   ; 57
    4120     mov di, ax                                ; 89 c7
    4121     call 0312ch                               ; e8 ab ff
     4169    mov bx, ax                                ; 89 c3
     4170    call 03197h                               ; e8 b3 ff
    41224171    test ax, ax                               ; 85 c0
    4123     jne short 0318ah                          ; 75 05
     4172    jne short 031edh                          ; 75 05
     4173    xor dx, dx                                ; 31 d2
     4174    jmp near 032b1h                           ; e9 c4 00
     4175    mov ax, strict word 00010h                ; b8 10 00
     4176    call 017a5h                               ; e8 b2 e5
     4177    test bx, bx                               ; 85 db
     4178    jne short 031feh                          ; 75 07
     4179    mov dl, al                                ; 88 c2
     4180    shr dl, 004h                              ; c0 ea 04
     4181    jmp short 03203h                          ; eb 05
     4182    mov dl, al                                ; 88 c2
     4183    and dl, 00fh                              ; 80 e2 0f
     4184    cmp dl, 001h                              ; 80 fa 01
     4185    jne short 03211h                          ; 75 09
     4186    xor dl, dl                                ; 30 d2
     4187    mov DH, strict byte 015h                  ; b6 15
     4188    mov cx, strict word 00001h                ; b9 01 00
     4189    jmp short 0324fh                          ; eb 3e
     4190    cmp dl, 002h                              ; 80 fa 02
     4191    jne short 0321ch                          ; 75 06
     4192    xor dl, dl                                ; 30 d2
     4193    mov DH, strict byte 035h                  ; b6 35
     4194    jmp short 0320ch                          ; eb f0
     4195    cmp dl, 003h                              ; 80 fa 03
     4196    jne short 03227h                          ; 75 06
     4197    xor dl, dl                                ; 30 d2
     4198    mov DH, strict byte 017h                  ; b6 17
     4199    jmp short 0320ch                          ; eb e5
     4200    cmp dl, 004h                              ; 80 fa 04
     4201    jne short 03232h                          ; 75 06
     4202    xor dl, dl                                ; 30 d2
     4203    mov DH, strict byte 017h                  ; b6 17
     4204    jmp short 0320ch                          ; eb da
     4205    cmp dl, 005h                              ; 80 fa 05
     4206    jne short 0323dh                          ; 75 06
     4207    mov DL, strict byte 0cch                  ; b2 cc
     4208    mov DH, strict byte 0d7h                  ; b6 d7
     4209    jmp short 0320ch                          ; eb cf
     4210    cmp dl, 00eh                              ; 80 fa 0e
     4211    je short 03247h                           ; 74 05
     4212    cmp dl, 00fh                              ; 80 fa 0f
     4213    jne short 03249h                          ; 75 02
     4214    jmp short 03237h                          ; eb ee
     4215    xor dl, dl                                ; 30 d2
     4216    xor dh, dh                                ; 30 f6
    41244217    xor cx, cx                                ; 31 c9
    4125     jmp near 03258h                           ; e9 ce 00
    4126     mov ax, strict word 00010h                ; b8 10 00
    4127     call 01714h                               ; e8 84 e5
    4128     test di, di                               ; 85 ff
    4129     jne short 0319bh                          ; 75 07
    4130     mov cl, al                                ; 88 c1
    4131     shr cl, 004h                              ; c0 e9 04
    4132     jmp short 031a0h                          ; eb 05
    4133     mov cl, al                                ; 88 c1
    4134     and cl, 00fh                              ; 80 e1 0f
    4135     cmp cl, 001h                              ; 80 f9 01
    4136     jne short 031aeh                          ; 75 09
    4137     xor cl, cl                                ; 30 c9
    4138     mov CH, strict byte 015h                  ; b5 15
    4139     mov si, strict word 00001h                ; be 01 00
    4140     jmp short 031ech                          ; eb 3e
    4141     cmp cl, 002h                              ; 80 f9 02
    4142     jne short 031b9h                          ; 75 06
    4143     xor cl, cl                                ; 30 c9
    4144     mov CH, strict byte 035h                  ; b5 35
    4145     jmp short 031a9h                          ; eb f0
    4146     cmp cl, 003h                              ; 80 f9 03
    4147     jne short 031c4h                          ; 75 06
    4148     xor cl, cl                                ; 30 c9
    4149     mov CH, strict byte 017h                  ; b5 17
    4150     jmp short 031a9h                          ; eb e5
    4151     cmp cl, 004h                              ; 80 f9 04
    4152     jne short 031cfh                          ; 75 06
    4153     xor cl, cl                                ; 30 c9
    4154     mov CH, strict byte 017h                  ; b5 17
    4155     jmp short 031a9h                          ; eb da
    4156     cmp cl, 005h                              ; 80 f9 05
    4157     jne short 031dah                          ; 75 06
    4158     mov CL, strict byte 0cch                  ; b1 cc
    4159     mov CH, strict byte 0d7h                  ; b5 d7
    4160     jmp short 031a9h                          ; eb cf
    4161     cmp cl, 00eh                              ; 80 f9 0e
    4162     je short 031e4h                           ; 74 05
    4163     cmp cl, 00fh                              ; 80 f9 0f
    4164     jne short 031e6h                          ; 75 02
    4165     jmp short 031d4h                          ; eb ee
    4166     xor cl, cl                                ; 30 c9
    4167     xor ch, ch                                ; 30 ed
    4168     xor si, si                                ; 31 f6
    4169     movzx bx, cl                              ; 0f b6 d9
    4170     mov dx, 0008bh                            ; ba 8b 00
     4218    mov si, 0008bh                            ; be 8b 00
    41714219    mov ax, strict word 00040h                ; b8 40 00
    4172     call 016c6h                               ; e8 ce e4
    4173     mov ax, di                                ; 89 f8
    4174     call 030ech                               ; e8 ef fe
     4220    mov es, ax                                ; 8e c0
     4221    mov byte [es:si], dl                      ; 26 88 14
     4222    mov ax, bx                                ; 89 d8
     4223    call 03149h                               ; e8 ea fe
    41754224    test ax, ax                               ; 85 c0
    4176     jne short 03233h                          ; 75 32
    4177     mov al, cl                                ; 88 c8
     4225    jne short 03295h                          ; 75 32
     4226    mov al, dl                                ; 88 d0
    41784227    and AL, strict byte 0c0h                  ; 24 c0
    41794228    cmp AL, strict byte 080h                  ; 3c 80
    4180     je short 03233h                           ; 74 2a
    4181     mov al, cl                                ; 88 c8
     4229    je short 03295h                           ; 74 2a
     4230    mov al, dl                                ; 88 d0
    41824231    and AL, strict byte 0c0h                  ; 24 c0
    41834232    cmp AL, strict byte 0c0h                  ; 3c c0
    4184     je short 03220h                           ; 74 0f
    4185     mov ah, cl                                ; 88 cc
     4233    je short 03282h                           ; 74 0f
     4234    mov ah, dl                                ; 88 d4
    41864235    and ah, 03fh                              ; 80 e4 3f
    41874236    cmp AL, strict byte 040h                  ; 3c 40
    4188     je short 0322ch                           ; 74 12
     4237    je short 0328eh                           ; 74 12
    41894238    test al, al                               ; 84 c0
    4190     je short 03225h                           ; 74 07
    4191     jmp short 031ech                          ; eb cc
    4192     and cl, 03fh                              ; 80 e1 3f
    4193     jmp short 031ech                          ; eb c7
    4194     mov cl, ah                                ; 88 e1
    4195     or cl, 040h                               ; 80 c9 40
    4196     jmp short 031ech                          ; eb c0
    4197     mov cl, ah                                ; 88 e1
    4198     or cl, 080h                               ; 80 c9 80
    4199     jmp short 031ech                          ; eb b9
    4200     test di, di                               ; 85 ff
     4239    je short 03287h                           ; 74 07
     4240    jmp short 0324fh                          ; eb cd
     4241    and dl, 03fh                              ; 80 e2 3f
     4242    jmp short 0324fh                          ; eb c8
     4243    mov dl, ah                                ; 88 e2
     4244    or dl, 040h                               ; 80 ca 40
     4245    jmp short 0324fh                          ; eb c1
     4246    mov dl, ah                                ; 88 e2
     4247    or dl, 080h                               ; 80 ca 80
     4248    jmp short 0324fh                          ; eb ba
     4249    test bx, bx                               ; 85 db
    42014250    db  00fh, 095h, 0c0h
    42024251    ; setne al                                  ; 0f 95 c0
    4203     movzx di, al                              ; 0f b6 f8
    4204     add di, 00090h                            ; 81 c7 90 00
    4205     movzx bx, cl                              ; 0f b6 d9
    4206     mov dx, 0008bh                            ; ba 8b 00
     4252    movzx bx, al                              ; 0f b6 d8
     4253    add bx, 00090h                            ; 81 c3 90 00
     4254    mov si, 0008bh                            ; be 8b 00
    42074255    mov ax, strict word 00040h                ; b8 40 00
    4208     call 016c6h                               ; e8 7b e4
    4209     movzx bx, ch                              ; 0f b6 dd
    4210     mov dx, di                                ; 89 fa
    4211     mov ax, strict word 00040h                ; b8 40 00
    4212     call 016c6h                               ; e8 70 e4
    4213     mov cx, si                                ; 89 f1
    4214     mov ax, cx                                ; 89 c8
    4215     lea sp, [bp-00ah]                         ; 8d 66 f6
    4216     pop di                                    ; 5f
     4256    mov es, ax                                ; 8e c0
     4257    mov byte [es:si], dl                      ; 26 88 14
     4258    mov byte [es:bx], dh                      ; 26 88 37
     4259    mov dx, cx                                ; 89 ca
     4260    mov ax, dx                                ; 89 d0
     4261    lea sp, [bp-008h]                         ; 8d 66 f8
    42174262    pop si                                    ; 5e
    42184263    pop dx                                    ; 5a
     
    42214266    pop bp                                    ; 5d
    42224267    retn                                      ; c3
    4223 floppy_drive_exists_:                        ; 0xf3264 LB 0x24
     4268floppy_drive_exists_:                        ; 0xf32bc LB 0x47
    42244269    push bp                                   ; 55
    42254270    mov bp, sp                                ; 89 e5
     
    42274272    mov dx, ax                                ; 89 c2
    42284273    mov ax, strict word 00010h                ; b8 10 00
    4229     call 01714h                               ; e8 a4 e4
     4274    call 017a5h                               ; e8 dd e4
    42304275    test dx, dx                               ; 85 d2
    4231     jne short 03279h                          ; 75 05
     4276    jne short 032d1h                          ; 75 05
    42324277    shr al, 004h                              ; c0 e8 04
    4233     jmp short 0327bh                          ; eb 02
     4278    jmp short 032d3h                          ; eb 02
    42344279    and AL, strict byte 00fh                  ; 24 0f
    42354280    test al, al                               ; 84 c0
     
    42414286    pop bp                                    ; 5d
    42424287    retn                                      ; c3
    4243 _int13_diskette_function:                    ; 0xf3288 LB 0x90a
     4288    sbb byte [bx], dl                         ; 18 17
     4289    push SS                                   ; 16
     4290    adc ax, 00508h                            ; 15 08 05
     4291    add AL, strict byte 003h                  ; 04 03
     4292    add al, byte [bx+di]                      ; 02 01
     4293    add byte [bx+si+03ch], bl                 ; 00 58 3c
     4294    aas                                       ; 3f
     4295    xor di, word [si-023cdh]                  ; 33 bc 33 dc
     4296    db  033h, 0dch
     4297    ; xor bx, sp                                ; 33 dc
     4298    db  033h, 0dch
     4299    ; xor bx, sp                                ; 33 dc
     4300    xor dx, word [bx+037h]                    ; 33 57 37
     4301    or ax, 0fd39h                             ; 0d 39 fd
     4302    cmp word [bx], di                         ; 39 3f
     4303    cmp dh, byte [bp+di+03ah]                 ; 3a 73 3a
     4304    in ax, 03ah                               ; e5 3a
     4305_int13_diskette_function:                    ; 0xf3303 LB 0x978
    42444306    push bp                                   ; 55
    42454307    mov bp, sp                                ; 89 e5
    4246     push si                                   ; 56
    4247     push di                                   ; 57
    4248     sub sp, strict byte 00016h                ; 83 ec 16
    4249     mov bx, word [bp+016h]                    ; 8b 5e 16
    4250     shr bx, 008h                              ; c1 eb 08
    4251     mov byte [bp-008h], bl                    ; 88 5e f8
    4252     mov si, word [bp+016h]                    ; 8b 76 16
    4253     and si, 000ffh                            ; 81 e6 ff 00
    4254     mov al, byte [bp+00eh]                    ; 8a 46 0e
    4255     mov ah, byte [bp+014h]                    ; 8a 66 14
    4256     mov cl, byte [bp+016h]                    ; 8a 4e 16
    4257     mov dx, word [bp+014h]                    ; 8b 56 14
    4258     shr dx, 008h                              ; c1 ea 08
    4259     mov word [bp-012h], dx                    ; 89 56 ee
    4260     cmp bl, 008h                              ; 80 fb 08
    4261     jc short 032efh                           ; 72 38
    4262     mov dx, word [bp+01ch]                    ; 8b 56 1c
    4263     or dl, 001h                               ; 80 ca 01
    4264     cmp bl, 008h                              ; 80 fb 08
    4265     jbe near 03856h                           ; 0f 86 92 05
    4266     cmp bl, 016h                              ; 80 fb 16
    4267     jc short 032e5h                           ; 72 1c
     4308    sub sp, strict byte 0000ah                ; 83 ec 0a
     4309    mov ax, word [bp+016h]                    ; 8b 46 16
     4310    shr ax, 008h                              ; c1 e8 08
     4311    cmp ax, strict word 00018h                ; 3d 18 00
     4312    jnbe near 03c58h                          ; 0f 87 42 09
     4313    push CS                                   ; 0e
     4314    pop ES                                    ; 07
     4315    mov cx, strict word 0000ch                ; b9 0c 00
     4316    mov di, 032e0h                            ; bf e0 32
     4317    repne scasb                               ; f2 ae
     4318    sal cx, 1                                 ; d1 e1
     4319    mov di, cx                                ; 89 cf
     4320    mov di, word [cs:di+032ebh]               ; 2e 8b bd eb 32
     4321    mov dx, word [bp+016h]                    ; 8b 56 16
     4322    xor dh, dh                                ; 30 f6
     4323    mov ah, byte [bp+00eh]                    ; 8a 66 0e
     4324    mov cx, word [bp+01ch]                    ; 8b 4e 1c
     4325    or cl, 001h                               ; 80 c9 01
     4326    mov si, dx                                ; 89 d6
    42684327    or si, 00100h                             ; 81 ce 00 01
    4269     cmp bl, 016h                              ; 80 fb 16
    4270     jbe near 0398ch                           ; 0f 86 b8 06
    4271     cmp bl, 018h                              ; 80 fb 18
    4272     je near 03a22h                            ; 0f 84 47 07
    4273     cmp bl, 017h                              ; 80 fb 17
    4274     je near 039b0h                            ; 0f 84 ce 06
    4275     jmp near 03b6fh                           ; e9 8a 08
    4276     cmp bl, 015h                              ; 80 fb 15
    4277     je near 03948h                            ; 0f 84 5c 06
    4278     jmp near 03b6fh                           ; e9 80 08
     4328    jmp di                                    ; ff e7
     4329    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    42794330    cmp bl, 001h                              ; 80 fb 01
    4280     jc short 03309h                           ; 72 15
    4281     jbe near 03382h                           ; 0f 86 8a 00
    4282     cmp bl, 005h                              ; 80 fb 05
    4283     je near 036cch                            ; 0f 84 cd 03
    4284     cmp bl, 004h                              ; 80 fb 04
    4285     jbe near 033a0h                           ; 0f 86 9a 00
    4286     jmp near 03b6fh                           ; e9 66 08
    4287     test bl, bl                               ; 84 db
    4288     jne near 03b6fh                           ; 0f 85 60 08
    4289     mov al, byte [bp+00eh]                    ; 8a 46 0e
    4290     mov byte [bp-00ch], al                    ; 88 46 f4
    4291     cmp AL, strict byte 001h                  ; 3c 01
    4292     jbe short 0332dh                          ; 76 14
     4331    jbe short 03361h                          ; 76 1a
    42934332    mov ax, word [bp+016h]                    ; 8b 46 16
    42944333    xor ah, ah                                ; 30 e4
    42954334    or ah, 001h                               ; 80 cc 01
    42964335    mov word [bp+016h], ax                    ; 89 46 16
    4297     mov ax, strict word 00001h                ; b8 01 00
    4298     call 02f34h                               ; e8 0a fc
    4299     jmp near 036a8h                           ; e9 7b 03
     4336    mov bx, strict word 00041h                ; bb 41 00
     4337    mov ax, strict word 00040h                ; b8 40 00
     4338    mov es, ax                                ; 8e c0
     4339    mov byte [es:bx], 001h                    ; 26 c6 07 01
     4340    jmp near 03b45h                           ; e9 e4 07
    43004341    mov ax, strict word 00010h                ; b8 10 00
    4301     call 01714h                               ; e8 e1 e3
    4302     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    4303     jne short 03340h                          ; 75 07
    4304     mov cl, al                                ; 88 c1
    4305     shr cl, 004h                              ; c0 e9 04
    4306     jmp short 03345h                          ; eb 05
    4307     mov cl, al                                ; 88 c1
    4308     and cl, 00fh                              ; 80 e1 0f
    4309     test cl, cl                               ; 84 c9
    4310     jne short 03359h                          ; 75 10
     4342    call 017a5h                               ; e8 3e e4
     4343    test bl, bl                               ; 84 db
     4344    jne short 03372h                          ; 75 07
     4345    mov dl, al                                ; 88 c2
     4346    shr dl, 004h                              ; c0 ea 04
     4347    jmp short 03377h                          ; eb 05
     4348    mov dl, al                                ; 88 c2
     4349    and dl, 00fh                              ; 80 e2 0f
     4350    test dl, dl                               ; 84 d2
     4351    jne short 03395h                          ; 75 1a
    43114352    mov ax, word [bp+016h]                    ; 8b 46 16
    43124353    xor ah, ah                                ; 30 e4
    43134354    or ah, 080h                               ; 80 cc 80
    43144355    mov word [bp+016h], ax                    ; 89 46 16
    4315     mov ax, 00080h                            ; b8 80 00
    4316     jmp short 03327h                          ; eb ce
    4317     xor bx, bx                                ; 31 db
    4318     mov dx, strict word 0003eh                ; ba 3e 00
     4356    mov bx, strict word 00041h                ; bb 41 00
    43194357    mov ax, strict word 00040h                ; b8 40 00
    4320     call 016c6h                               ; e8 62 e3
     4358    mov es, ax                                ; 8e c0
     4359    mov byte [es:bx], 080h                    ; 26 c6 07 80
     4360    jmp near 03b45h                           ; e9 b0 07
     4361    mov si, strict word 0003eh                ; be 3e 00
     4362    mov ax, strict word 00040h                ; b8 40 00
     4363    mov es, ax                                ; 8e c0
     4364    mov byte [es:si], 000h                    ; 26 c6 04 00
    43214365    xor al, al                                ; 30 c0
    43224366    mov byte [bp+017h], al                    ; 88 46 17
    4323     xor ah, ah                                ; 30 e4
    4324     call 02f34h                               ; e8 c6 fb
     4367    mov si, strict word 00041h                ; be 41 00
     4368    mov byte [es:si], al                      ; 26 88 04
    43254369    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4326     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     4370    movzx ax, bl                              ; 0f b6 c3
    43274371    xor dx, dx                                ; 31 d2
    4328     call 02f4ch                               ; e8 d1 fb
    4329     lea sp, [bp-004h]                         ; 8d 66 fc
    4330     pop di                                    ; 5f
    4331     pop si                                    ; 5e
     4372    call 02fc5h                               ; e8 0d fc
     4373    mov sp, bp                                ; 89 ec
    43324374    pop bp                                    ; 5d
    43334375    retn                                      ; c3
    43344376    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4335     mov dx, 00441h                            ; ba 41 04
     4377    mov bx, 00441h                            ; bb 41 04
    43364378    xor ax, ax                                ; 31 c0
    4337     call 016b8h                               ; e8 2a e3
    4338     movzx dx, al                              ; 0f b6 d0
    4339     sal dx, 008h                              ; c1 e2 08
    4340     or si, dx                                 ; 09 d6
    4341     mov word [bp+016h], si                    ; 89 76 16
     4379    mov es, ax                                ; 8e c0
     4380    mov al, byte [es:bx]                      ; 26 8a 07
     4381    movzx bx, al                              ; 0f b6 d8
     4382    sal bx, 008h                              ; c1 e3 08
     4383    or dx, bx                                 ; 09 da
     4384    mov word [bp+016h], dx                    ; 89 56 16
    43424385    test al, al                               ; 84 c0
    4343     je short 0337bh                           ; 74 de
    4344     jmp near 036a8h                           ; e9 08 03
    4345     mov ch, cl                                ; 88 cd
    4346     mov dl, byte [bp-012h]                    ; 8a 56 ee
    4347     mov byte [bp-00ah], dl                    ; 88 56 f6
    4348     mov byte [bp-006h], ah                    ; 88 66 fa
    4349     mov dx, word [bp+012h]                    ; 8b 56 12
    4350     shr dx, 008h                              ; c1 ea 08
    4351     mov byte [bp-00eh], dl                    ; 88 56 f2
    4352     mov byte [bp-00ch], al                    ; 88 46 f4
     4386    je short 033b8h                           ; 74 df
     4387    jmp near 03b45h                           ; e9 69 07
     4388    mov bh, byte [bp+016h]                    ; 8a 7e 16
     4389    mov ax, word [bp+014h]                    ; 8b 46 14
     4390    shr ax, 008h                              ; c1 e8 08
     4391    mov byte [bp-002h], al                    ; 88 46 fe
     4392    mov al, byte [bp+014h]                    ; 8a 46 14
     4393    mov byte [bp-006h], al                    ; 88 46 fa
     4394    mov ax, word [bp+012h]                    ; 8b 46 12
     4395    shr ax, 008h                              ; c1 e8 08
     4396    mov byte [bp-004h], al                    ; 88 46 fc
     4397    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
     4398    cmp bl, 001h                              ; 80 fb 01
     4399    jnbe short 0340ch                         ; 77 0d
    43534400    cmp AL, strict byte 001h                  ; 3c 01
    4354     jnbe short 033c9h                         ; 77 0e
    4355     cmp dl, 001h                              ; 80 fa 01
    4356     jnbe short 033c9h                         ; 77 09
    4357     test cl, cl                               ; 84 c9
    4358     je short 033c9h                           ; 74 05
    4359     cmp cl, 048h                              ; 80 f9 48
    4360     jbe short 033f3h                          ; 76 2a
    4361     mov bx, 00da0h                            ; bb a0 0d
     4401    jnbe short 0340ch                         ; 77 09
     4402    test bh, bh                               ; 84 ff
     4403    je short 0340ch                           ; 74 05
     4404    cmp bh, 048h                              ; 80 ff 48
     4405    jbe short 0343fh                          ; 76 33
     4406    mov bx, 00db2h                            ; bb b2 0d
    43624407    mov cx, ds                                ; 8c d9
    43634408    mov ax, strict word 00004h                ; b8 04 00
    4364     call 01999h                               ; e8 c5 e5
    4365     push 00275h                               ; 68 75 02
    4366     push 0028dh                               ; 68 8d 02
     4409    call 01a2ah                               ; e8 13 e6
     4410    push 00287h                               ; 68 87 02
     4411    push 0029fh                               ; 68 9f 02
    43674412    push strict byte 00004h                   ; 6a 04
    4368     call 019dah                               ; e8 fb e5
     4413    call 01a6bh                               ; e8 49 e6
    43694414    add sp, strict byte 00006h                ; 83 c4 06
    43704415    mov ax, word [bp+016h]                    ; 8b 46 16
     
    43724417    or ah, 001h                               ; 80 cc 01
    43734418    mov word [bp+016h], ax                    ; 89 46 16
    4374     mov ax, strict word 00001h                ; b8 01 00
    4375     jmp near 03469h                           ; e9 76 00
    4376     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4377     call 03264h                               ; e8 6a fe
     4419    mov bx, strict word 00041h                ; bb 41 00
     4420    mov ax, strict word 00040h                ; b8 40 00
     4421    mov es, ax                                ; 8e c0
     4422    mov byte [es:bx], 001h                    ; 26 c6 07 01
     4423    jmp near 034cah                           ; e9 8b 00
     4424    movzx ax, bl                              ; 0f b6 c3
     4425    call 032bch                               ; e8 77 fe
    43784426    test ax, ax                               ; 85 c0
    4379     je near 03500h                            ; 0f 84 00 01
    4380     movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    4381     mov ax, dx                                ; 89 d0
    4382     call 030a9h                               ; e8 a0 fc
     4427    je near 03561h                            ; 0f 84 16 01
     4428    movzx cx, bl                              ; 0f b6 cb
     4429    mov ax, cx                                ; 89 c8
     4430    call 03100h                               ; e8 ad fc
    43834431    test ax, ax                               ; 85 c0
    4384     jne short 03426h                          ; 75 19
    4385     mov ax, dx                                ; 89 d0
    4386     call 03174h                               ; e8 62 fd
     4432    jne short 03479h                          ; 75 22
     4433    mov ax, cx                                ; 89 c8
     4434    call 031d8h                               ; e8 7c fd
    43874435    test ax, ax                               ; 85 c0
    4388     jne short 03426h                          ; 75 10
     4436    jne short 03479h                          ; 75 19
    43894437    mov ax, word [bp+016h]                    ; 8b 46 16
    43904438    xor ah, ah                                ; 30 e4
    43914439    or ah, 00ch                               ; 80 cc 0c
    43924440    mov word [bp+016h], ax                    ; 89 46 16
    4393     mov ax, strict word 0000ch                ; b8 0c 00
    4394     jmp short 03469h                          ; eb 43
    4395     cmp byte [bp-008h], 002h                  ; 80 7e f8 02
    4396     jne near 03599h                           ; 0f 85 6b 01
    4397     mov ax, word [bp+006h]                    ; 8b 46 06
    4398     shr ax, 00ch                              ; c1 e8 0c
    4399     mov cl, al                                ; 88 c1
     4441    mov bx, strict word 00041h                ; bb 41 00
     4442    mov ax, strict word 00040h                ; b8 40 00
     4443    mov es, ax                                ; 8e c0
     4444    mov byte [es:bx], 00ch                    ; 26 c6 07 0c
     4445    jmp short 034cah                          ; eb 51
     4446    mov ax, word [bp+016h]                    ; 8b 46 16
     4447    shr ax, 008h                              ; c1 e8 08
     4448    cmp ax, strict word 00002h                ; 3d 02 00
     4449    jne near 03615h                           ; 0f 85 8f 01
    44004450    mov dx, word [bp+006h]                    ; 8b 56 06
    4401     sal dx, 004h                              ; c1 e2 04
    4402     mov bx, word [bp+010h]                    ; 8b 5e 10
    4403     add bx, dx                                ; 01 d3
    4404     mov word [bp-010h], bx                    ; 89 5e f0
    4405     cmp dx, bx                                ; 39 da
    4406     jbe short 0344ah                          ; 76 02
    4407     db  0feh, 0c1h
    4408     ; inc cl                                    ; fe c1
    4409     movzx bx, ch                              ; 0f b6 dd
    4410     sal bx, 009h                              ; c1 e3 09
    4411     dec bx                                    ; 4b
    4412     mov ax, word [bp-010h]                    ; 8b 46 f0
    4413     add ax, bx                                ; 01 d8
    4414     cmp ax, word [bp-010h]                    ; 3b 46 f0
    4415     jnc short 03473h                          ; 73 18
     4451    shr dx, 00ch                              ; c1 ea 0c
     4452    mov ah, dl                                ; 88 d4
     4453    mov cx, word [bp+006h]                    ; 8b 4e 06
     4454    sal cx, 004h                              ; c1 e1 04
     4455    mov si, word [bp+010h]                    ; 8b 76 10
     4456    add si, cx                                ; 01 ce
     4457    mov word [bp-008h], si                    ; 89 76 f8
     4458    cmp cx, si                                ; 39 f1
     4459    jbe short 034a2h                          ; 76 02
     4460    db  0feh, 0c4h
     4461    ; inc ah                                    ; fe c4
     4462    movzx cx, bh                              ; 0f b6 cf
     4463    sal cx, 009h                              ; c1 e1 09
     4464    dec cx                                    ; 49
     4465    mov dx, word [bp-008h]                    ; 8b 56 f8
     4466    add dx, cx                                ; 01 ca
     4467    cmp dx, word [bp-008h]                    ; 3b 56 f8
     4468    jnc short 034d1h                          ; 73 1e
    44164469    mov ax, word [bp+016h]                    ; 8b 46 16
    44174470    xor ah, ah                                ; 30 e4
    44184471    or ah, 009h                               ; 80 cc 09
    44194472    mov word [bp+016h], ax                    ; 89 46 16
    4420     mov ax, strict word 00009h                ; b8 09 00
    4421     call 02f34h                               ; e8 c8 fa
     4473    mov bx, strict word 00041h                ; bb 41 00
     4474    mov ax, strict word 00040h                ; b8 40 00
     4475    mov es, ax                                ; 8e c0
     4476    mov byte [es:bx], 009h                    ; 26 c6 07 09
    44224477    mov byte [bp+016h], 000h                  ; c6 46 16 00
    4423     jmp near 036a8h                           ; e9 35 02
     4478    jmp near 03b45h                           ; e9 74 06
    44244479    mov AL, strict byte 006h                  ; b0 06
    44254480    mov dx, strict word 0000ah                ; ba 0a 00
     
    44284483    mov dx, strict word 0000ch                ; ba 0c 00
    44294484    out DX, AL                                ; ee
    4430     mov al, byte [bp-010h]                    ; 8a 46 f0
     4485    mov al, byte [bp-008h]                    ; 8a 46 f8
    44314486    mov dx, strict word 00004h                ; ba 04 00
    44324487    out DX, AL                                ; ee
    4433     mov ax, word [bp-010h]                    ; 8b 46 f0
    4434     shr ax, 008h                              ; c1 e8 08
     4488    mov dx, word [bp-008h]                    ; 8b 56 f8
     4489    shr dx, 008h                              ; c1 ea 08
     4490    mov al, dl                                ; 88 d0
     4491    mov dx, strict word 00004h                ; ba 04 00
    44354492    out DX, AL                                ; ee
    44364493    xor al, al                                ; 30 c0
    44374494    mov dx, strict word 0000ch                ; ba 0c 00
    44384495    out DX, AL                                ; ee
    4439     mov al, bl                                ; 88 d8
     4496    mov al, cl                                ; 88 c8
    44404497    mov dx, strict word 00005h                ; ba 05 00
    44414498    out DX, AL                                ; ee
    4442     mov ax, bx                                ; 89 d8
    4443     shr ax, 008h                              ; c1 e8 08
     4499    shr cx, 008h                              ; c1 e9 08
     4500    mov al, cl                                ; 88 c8
    44444501    out DX, AL                                ; ee
    44454502    mov AL, strict byte 046h                  ; b0 46
    44464503    mov dx, strict word 0000bh                ; ba 0b 00
    44474504    out DX, AL                                ; ee
    4448     mov al, cl                                ; 88 c8
     4505    mov al, ah                                ; 88 e0
    44494506    mov dx, 00081h                            ; ba 81 00
    44504507    out DX, AL                                ; ee
     
    44524509    mov dx, strict word 0000ah                ; ba 0a 00
    44534510    out DX, AL                                ; ee
    4454     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    4455     mov ax, bx                                ; 89 d8
    4456     call 03028h                               ; e8 6e fb
     4511    movzx cx, bl                              ; 0f b6 cb
     4512    mov ax, cx                                ; 89 c8
     4513    call 0308ch                               ; e8 70 fb
    44574514    mov AL, strict byte 0e6h                  ; b0 e6
    44584515    mov dx, 003f5h                            ; ba f5 03
    44594516    out DX, AL                                ; ee
    4460     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    4461     sal ax, 002h                              ; c1 e0 02
    4462     movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
     4517    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     4518    sal dx, 002h                              ; c1 e2 02
     4519    movzx ax, bl                              ; 0f b6 c3
    44634520    or ax, dx                                 ; 09 d0
    44644521    mov dx, 003f5h                            ; ba f5 03
    44654522    out DX, AL                                ; ee
    4466     mov al, byte [bp-00ah]                    ; 8a 46 f6
    4467     out DX, AL                                ; ee
    4468     mov al, byte [bp-00eh]                    ; 8a 46 f2
     4523    mov al, byte [bp-002h]                    ; 8a 46 fe
     4524    out DX, AL                                ; ee
     4525    mov al, byte [bp-004h]                    ; 8a 46 fc
    44694526    out DX, AL                                ; ee
    44704527    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    44724529    mov AL, strict byte 002h                  ; b0 02
    44734530    out DX, AL                                ; ee
    4474     movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    4475     movzx ax, ch                              ; 0f b6 c5
     4531    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     4532    movzx dx, bh                              ; 0f b6 d7
    44764533    add ax, dx                                ; 01 d0
    44774534    dec ax                                    ; 48
     
    44824539    mov AL, strict byte 0ffh                  ; b0 ff
    44834540    out DX, AL                                ; ee
    4484     call 02f9ah                               ; e8 a3 fa
     4541    call 03012h                               ; e8 ba fa
    44854542    test al, al                               ; 84 c0
    4486     jne short 03511h                          ; 75 16
    4487     mov ax, bx                                ; 89 d8
    4488     call 02fe0h                               ; e8 e0 fa
     4543    jne short 0357bh                          ; 75 1f
     4544    mov ax, cx                                ; 89 c8
     4545    call 0304ah                               ; e8 e9 fa
    44894546    mov ax, word [bp+016h]                    ; 8b 46 16
    44904547    xor ah, ah                                ; 30 e4
    44914548    or ah, 080h                               ; 80 cc 80
    44924549    mov word [bp+016h], ax                    ; 89 46 16
    4493     mov ax, 00080h                            ; b8 80 00
    4494     jmp near 03469h                           ; e9 58 ff
     4550    mov bx, strict word 00041h                ; bb 41 00
     4551    mov ax, strict word 00040h                ; b8 40 00
     4552    mov es, ax                                ; 8e c0
     4553    mov byte [es:bx], 080h                    ; 26 c6 07 80
     4554    jmp near 034cah                           ; e9 4f ff
    44954555    mov dx, 003f4h                            ; ba f4 03
    44964556    in AL, DX                                 ; ec
     
    44994559    and AL, strict byte 0c0h                  ; 24 c0
    45004560    cmp AL, strict byte 0c0h                  ; 3c c0
    4501     je short 0352bh                           ; 74 0e
    4502     push 00275h                               ; 68 75 02
    4503     push 002a8h                               ; 68 a8 02
     4561    je short 03595h                           ; 74 0e
     4562    push 00287h                               ; 68 87 02
     4563    push 002bah                               ; 68 ba 02
    45044564    push strict byte 00007h                   ; 6a 07
    4505     call 019dah                               ; e8 b2 e4
     4565    call 01a6bh                               ; e8 d9 e4
    45064566    add sp, strict byte 00006h                ; 83 c4 06
    4507     xor si, si                                ; 31 f6
    4508     jmp short 03534h                          ; eb 05
    4509     cmp si, strict byte 00007h                ; 83 fe 07
    4510     jnl short 0354ch                          ; 7d 18
     4567    xor cx, cx                                ; 31 c9
     4568    jmp short 0359eh                          ; eb 05
     4569    cmp cx, strict byte 00007h                ; 83 f9 07
     4570    jnl short 035b4h                          ; 7d 16
    45114571    mov dx, 003f5h                            ; ba f5 03
    45124572    in AL, DX                                 ; ec
    45134573    db  02ah, 0e4h
    45144574    ; sub ah, ah                                ; 2a e4
    4515     mov byte [bp+si-01ah], al                 ; 88 42 e6
    4516     movzx bx, al                              ; 0f b6 d8
    4517     lea dx, [si+042h]                         ; 8d 54 42
     4575    mov si, cx                                ; 89 ce
     4576    add si, strict byte 00042h                ; 83 c6 42
     4577    mov dx, strict word 00040h                ; ba 40 00
     4578    mov es, dx                                ; 8e c2
     4579    mov byte [es:si], al                      ; 26 88 04
     4580    inc cx                                    ; 41
     4581    jmp short 03599h                          ; eb e5
     4582    mov si, strict word 00042h                ; be 42 00
    45184583    mov ax, strict word 00040h                ; b8 40 00
    4519     call 016c6h                               ; e8 7d e1
    4520     inc si                                    ; 46
    4521     jmp short 0352fh                          ; eb e3
    4522     test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4523     je short 0356ah                           ; 74 18
    4524     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4525     call 02fe0h                               ; e8 87 fa
     4584    mov es, ax                                ; 8e c0
     4585    mov al, byte [es:si]                      ; 26 8a 04
     4586    test AL, strict byte 0c0h                 ; a8 c0
     4587    je short 035e3h                           ; 74 20
     4588    movzx ax, bl                              ; 0f b6 c3
     4589    call 0304ah                               ; e8 81 fa
    45264590    mov ax, word [bp+016h]                    ; 8b 46 16
    45274591    xor ah, ah                                ; 30 e4
    45284592    or ah, 020h                               ; 80 cc 20
    45294593    mov word [bp+016h], ax                    ; 89 46 16
    4530     mov ax, strict word 00020h                ; b8 20 00
    4531     jmp near 03469h                           ; e9 ff fe
    4532     movzx ax, ch                              ; 0f b6 c5
     4594    mov bx, strict word 00041h                ; bb 41 00
     4595    mov ax, strict word 00040h                ; b8 40 00
     4596    mov es, ax                                ; 8e c0
     4597    mov byte [es:bx], 020h                    ; 26 c6 07 20
     4598    jmp near 034cah                           ; e9 e7 fe
     4599    movzx ax, bh                              ; 0f b6 c7
    45334600    sal ax, 009h                              ; c1 e0 09
    45344601    cwd                                       ; 99
     
    45364603    ; sub ax, dx                                ; 2b c2
    45374604    sar ax, 1                                 ; d1 f8
    4538     mov cx, ax                                ; 89 c1
    45394605    mov si, word [bp+010h]                    ; 8b 76 10
    45404606    mov dx, word [bp+006h]                    ; 8b 56 06
    45414607    mov di, si                                ; 89 f7
     4608    mov cx, ax                                ; 89 c1
    45424609    mov es, dx                                ; 8e c2
    45434610    push DS                                   ; 1e
     
    45454612    rep movsw                                 ; f3 a5
    45464613    pop DS                                    ; 1f
    4547     movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    4548     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4549     call 02f4ch                               ; e8 ba f9
     4614    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     4615    movzx ax, bl                              ; 0f b6 c3
     4616    call 02fc5h                               ; e8 bb f9
    45504617    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4551     jmp near 03a1bh                           ; e9 82 04
    4552     cmp byte [bp-008h], 003h                  ; 80 7e f8 03
    4553     jne near 036b6h                           ; 0f 85 15 01
    4554     mov ax, word [bp+006h]                    ; 8b 46 06
    4555     shr ax, 00ch                              ; c1 e8 0c
    4556     mov cl, al                                ; 88 c1
     4618    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     4619    jmp near 033b8h                           ; e9 a3 fd
     4620    mov ax, word [bp+016h]                    ; 8b 46 16
     4621    shr ax, 008h                              ; c1 e8 08
     4622    cmp ax, strict word 00003h                ; 3d 03 00
     4623    jne near 03742h                           ; 0f 85 20 01
     4624    mov cx, word [bp+006h]                    ; 8b 4e 06
     4625    shr cx, 00ch                              ; c1 e9 0c
     4626    mov ah, cl                                ; 88 cc
    45574627    mov dx, word [bp+006h]                    ; 8b 56 06
    45584628    sal dx, 004h                              ; c1 e2 04
    4559     mov bx, word [bp+010h]                    ; 8b 5e 10
    4560     add bx, dx                                ; 01 d3
    4561     mov word [bp-010h], bx                    ; 89 5e f0
    4562     cmp dx, bx                                ; 39 da
    4563     jbe short 035bdh                          ; 76 02
    4564     db  0feh, 0c1h
    4565     ; inc cl                                    ; fe c1
    4566     movzx bx, ch                              ; 0f b6 dd
    4567     sal bx, 009h                              ; c1 e3 09
    4568     dec bx                                    ; 4b
    4569     mov ax, word [bp-010h]                    ; 8b 46 f0
    4570     add ax, bx                                ; 01 d8
    4571     cmp ax, word [bp-010h]                    ; 3b 46 f0
    4572     jc near 0345bh                            ; 0f 82 8b fe
     4629    mov si, word [bp+010h]                    ; 8b 76 10
     4630    add si, dx                                ; 01 d6
     4631    mov word [bp-008h], si                    ; 89 76 f8
     4632    cmp dx, si                                ; 39 f2
     4633    jbe short 0363eh                          ; 76 02
     4634    db  0feh, 0c4h
     4635    ; inc ah                                    ; fe c4
     4636    movzx cx, bh                              ; 0f b6 cf
     4637    sal cx, 009h                              ; c1 e1 09
     4638    dec cx                                    ; 49
     4639    mov dx, word [bp-008h]                    ; 8b 56 f8
     4640    add dx, cx                                ; 01 ca
     4641    cmp dx, word [bp-008h]                    ; 3b 56 f8
     4642    jc near 034b3h                            ; 0f 82 62 fe
    45734643    mov AL, strict byte 006h                  ; b0 06
    45744644    mov dx, strict word 0000ah                ; ba 0a 00
     
    45774647    mov dx, strict word 0000ch                ; ba 0c 00
    45784648    out DX, AL                                ; ee
    4579     mov al, byte [bp-010h]                    ; 8a 46 f0
     4649    mov al, byte [bp-008h]                    ; 8a 46 f8
    45804650    mov dx, strict word 00004h                ; ba 04 00
    45814651    out DX, AL                                ; ee
    4582     mov ax, word [bp-010h]                    ; 8b 46 f0
    4583     shr ax, 008h                              ; c1 e8 08
     4652    mov dx, word [bp-008h]                    ; 8b 56 f8
     4653    shr dx, 008h                              ; c1 ea 08
     4654    mov al, dl                                ; 88 d0
     4655    mov dx, strict word 00004h                ; ba 04 00
    45844656    out DX, AL                                ; ee
    45854657    xor al, al                                ; 30 c0
    45864658    mov dx, strict word 0000ch                ; ba 0c 00
    45874659    out DX, AL                                ; ee
    4588     mov al, bl                                ; 88 d8
     4660    mov al, cl                                ; 88 c8
    45894661    mov dx, strict word 00005h                ; ba 05 00
    45904662    out DX, AL                                ; ee
    4591     mov ax, bx                                ; 89 d8
    4592     shr ax, 008h                              ; c1 e8 08
     4663    shr cx, 008h                              ; c1 e9 08
     4664    mov al, cl                                ; 88 c8
    45934665    out DX, AL                                ; ee
    45944666    mov AL, strict byte 04ah                  ; b0 4a
    45954667    mov dx, strict word 0000bh                ; ba 0b 00
    45964668    out DX, AL                                ; ee
    4597     mov al, cl                                ; 88 c8
     4669    mov al, ah                                ; 88 e0
    45984670    mov dx, 00081h                            ; ba 81 00
    45994671    out DX, AL                                ; ee
     
    46014673    mov dx, strict word 0000ah                ; ba 0a 00
    46024674    out DX, AL                                ; ee
    4603     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    4604     mov ax, bx                                ; 89 d8
    4605     call 03028h                               ; e8 11 fa
     4675    movzx cx, bl                              ; 0f b6 cb
     4676    mov ax, cx                                ; 89 c8
     4677    call 0308ch                               ; e8 f0 f9
    46064678    mov AL, strict byte 0c5h                  ; b0 c5
    46074679    mov dx, 003f5h                            ; ba f5 03
    46084680    out DX, AL                                ; ee
    4609     movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
     4681    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    46104682    sal dx, 002h                              ; c1 e2 02
    4611     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     4683    movzx ax, bl                              ; 0f b6 c3
    46124684    or ax, dx                                 ; 09 d0
    46134685    mov dx, 003f5h                            ; ba f5 03
    46144686    out DX, AL                                ; ee
    4615     mov al, byte [bp-00ah]                    ; 8a 46 f6
    4616     out DX, AL                                ; ee
    4617     mov al, byte [bp-00eh]                    ; 8a 46 f2
     4687    mov al, byte [bp-002h]                    ; 8a 46 fe
     4688    out DX, AL                                ; ee
     4689    mov al, byte [bp-004h]                    ; 8a 46 fc
    46184690    out DX, AL                                ; ee
    46194691    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    46224694    out DX, AL                                ; ee
    46234695    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    4624     movzx ax, ch                              ; 0f b6 c5
     4696    movzx ax, bh                              ; 0f b6 c7
    46254697    add ax, dx                                ; 01 d0
    46264698    dec ax                                    ; 48
     
    46314703    mov AL, strict byte 0ffh                  ; b0 ff
    46324704    out DX, AL                                ; ee
    4633     call 02f9ah                               ; e8 46 f9
     4705    call 03012h                               ; e8 3a f9
    46344706    test al, al                               ; 84 c0
    4635     je near 034fbh                            ; 0f 84 a1 fe
     4707    je near 0355ch                            ; 0f 84 7e fe
    46364708    mov dx, 003f4h                            ; ba f4 03
    46374709    in AL, DX                                 ; ec
     
    46404712    and AL, strict byte 0c0h                  ; 24 c0
    46414713    cmp AL, strict byte 0c0h                  ; 3c c0
    4642     je short 03674h                           ; 74 0e
    4643     push 00275h                               ; 68 75 02
    4644     push 002a8h                               ; 68 a8 02
     4714    je short 036f8h                           ; 74 0e
     4715    push 00287h                               ; 68 87 02
     4716    push 002bah                               ; 68 ba 02
    46454717    push strict byte 00007h                   ; 6a 07
    4646     call 019dah                               ; e8 69 e3
     4718    call 01a6bh                               ; e8 76 e3
    46474719    add sp, strict byte 00006h                ; 83 c4 06
    4648     xor si, si                                ; 31 f6
    4649     jmp short 0367dh                          ; eb 05
    4650     cmp si, strict byte 00007h                ; 83 fe 07
    4651     jnl short 03695h                          ; 7d 18
     4720    xor cx, cx                                ; 31 c9
     4721    jmp short 03701h                          ; eb 05
     4722    cmp cx, strict byte 00007h                ; 83 f9 07
     4723    jnl short 03717h                          ; 7d 16
    46524724    mov dx, 003f5h                            ; ba f5 03
    46534725    in AL, DX                                 ; ec
    46544726    db  02ah, 0e4h
    46554727    ; sub ah, ah                                ; 2a e4
    4656     mov byte [bp+si-01ah], al                 ; 88 42 e6
    4657     movzx bx, al                              ; 0f b6 d8
    4658     lea dx, [si+042h]                         ; 8d 54 42
     4728    mov si, cx                                ; 89 ce
     4729    add si, strict byte 00042h                ; 83 c6 42
     4730    mov dx, strict word 00040h                ; ba 40 00
     4731    mov es, dx                                ; 8e c2
     4732    mov byte [es:si], al                      ; 26 88 04
     4733    inc cx                                    ; 41
     4734    jmp short 036fch                          ; eb e5
     4735    mov si, strict word 00042h                ; be 42 00
    46594736    mov ax, strict word 00040h                ; b8 40 00
    4660     call 016c6h                               ; e8 34 e0
    4661     inc si                                    ; 46
    4662     jmp short 03678h                          ; eb e3
    4663     test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4664     je near 03587h                            ; 0f 84 ea fe
    4665     test byte [bp-019h], 002h                 ; f6 46 e7 02
    4666     je short 036afh                           ; 74 0c
     4737    mov es, ax                                ; 8e c0
     4738    mov al, byte [es:si]                      ; 26 8a 04
     4739    test AL, strict byte 0c0h                 ; a8 c0
     4740    je near 03600h                            ; 0f 84 d8 fe
     4741    mov bx, strict word 00043h                ; bb 43 00
     4742    mov al, byte [es:bx]                      ; 26 8a 07
     4743    test AL, strict byte 002h                 ; a8 02
     4744    je short 0373ah                           ; 74 08
    46674745    mov word [bp+016h], 00300h                ; c7 46 16 00 03
    4668     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4669     jmp near 0337bh                           ; e9 cc fc
     4746    jmp near 03b45h                           ; e9 0b 04
    46704747    mov word [bp+016h], 00100h                ; c7 46 16 00 01
    4671     jmp short 036a8h                          ; eb f2
    4672     movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    4673     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4674     call 02f4ch                               ; e8 8b f8
     4748    jmp near 03b45h                           ; e9 03 04
     4749    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     4750    movzx ax, bl                              ; 0f b6 c3
     4751    call 02fc5h                               ; e8 79 f8
    46754752    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    46764753    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4677     jmp near 0337bh                           ; e9 af fc
    4678     mov ch, byte [bp+016h]                    ; 8a 6e 16
    4679     mov ax, word [bp+014h]                    ; 8b 46 14
     4754    jmp near 033b8h                           ; e9 61 fc
     4755    mov bh, byte [bp+016h]                    ; 8a 7e 16
     4756    mov dx, word [bp+014h]                    ; 8b 56 14
     4757    shr dx, 008h                              ; c1 ea 08
     4758    mov byte [bp-002h], dl                    ; 88 56 fe
     4759    mov ax, word [bp+012h]                    ; 8b 46 12
    46804760    shr ax, 008h                              ; c1 e8 08
    4681     mov byte [bp-00ah], al                    ; 88 46 f6
    4682     mov dx, word [bp+012h]                    ; 8b 56 12
    4683     shr dx, 008h                              ; c1 ea 08
    4684     mov byte [bp-00eh], dl                    ; 88 56 f2
     4761    mov byte [bp-004h], al                    ; 88 46 fc
    46854762    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    4686     mov byte [bp-00ch], bl                    ; 88 5e f4
    46874763    cmp bl, 001h                              ; 80 fb 01
    4688     jnbe short 036feh                         ; 77 12
    4689     cmp dl, 001h                              ; 80 fa 01
    4690     jnbe short 036feh                         ; 77 0d
    4691     cmp AL, strict byte 04fh                  ; 3c 4f
    4692     jnbe short 036feh                         ; 77 09
    4693     test ch, ch                               ; 84 ed
    4694     je short 036feh                           ; 74 05
    4695     cmp ch, 012h                              ; 80 fd 12
    4696     jbe short 03713h                          ; 76 15
     4764    jnbe short 03786h                         ; 77 12
     4765    cmp AL, strict byte 001h                  ; 3c 01
     4766    jnbe short 03786h                         ; 77 0e
     4767    cmp dl, 04fh                              ; 80 fa 4f
     4768    jnbe short 03786h                         ; 77 09
     4769    test bh, bh                               ; 84 ff
     4770    je short 03786h                           ; 74 05
     4771    cmp bh, 012h                              ; 80 ff 12
     4772    jbe short 037a1h                          ; 76 1b
    46974773    mov ax, word [bp+016h]                    ; 8b 46 16
    46984774    xor ah, ah                                ; 30 e4
    46994775    or ah, 001h                               ; 80 cc 01
    47004776    mov word [bp+016h], ax                    ; 89 46 16
    4701     mov ax, strict word 00001h                ; b8 01 00
    4702     call 02f34h                               ; e8 25 f8
     4777    mov si, strict word 00041h                ; be 41 00
     4778    mov ax, strict word 00040h                ; b8 40 00
     4779    mov es, ax                                ; 8e c0
     4780    mov byte [es:si], 001h                    ; 26 c6 04 01
    47034781    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4704     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4705     call 03264h                               ; e8 4a fb
     4782    movzx ax, bl                              ; 0f b6 c3
     4783    call 032bch                               ; e8 15 fb
    47064784    test ax, ax                               ; 85 c0
    4707     je near 03349h                            ; 0f 84 29 fc
    4708     movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    4709     mov ax, dx                                ; 89 d0
    4710     call 030a9h                               ; e8 80 f9
     4785    jne short 037c5h                          ; 75 1a
     4786    mov ax, word [bp+016h]                    ; 8b 46 16
     4787    xor ah, ah                                ; 30 e4
     4788    or ah, 080h                               ; 80 cc 80
     4789    mov word [bp+016h], ax                    ; 89 46 16
     4790    mov bx, strict word 00041h                ; bb 41 00
     4791    mov ax, strict word 00040h                ; b8 40 00
     4792    mov es, ax                                ; 8e c0
     4793    mov byte [es:bx], 080h                    ; 26 c6 07 80
     4794    jmp near 03b45h                           ; e9 80 03
     4795    movzx cx, bl                              ; 0f b6 cb
     4796    mov ax, cx                                ; 89 c8
     4797    call 03100h                               ; e8 33 f9
    47114798    test ax, ax                               ; 85 c0
    4712     jne short 03738h                          ; 75 0b
    4713     mov ax, dx                                ; 89 d0
    4714     call 03174h                               ; e8 42 fa
     4799    jne short 037dch                          ; 75 0b
     4800    mov ax, cx                                ; 89 c8
     4801    call 031d8h                               ; e8 02 fa
    47154802    test ax, ax                               ; 85 c0
    4716     je near 03416h                            ; 0f 84 de fc
    4717     mov ax, word [bp+006h]                    ; 8b 46 06
    4718     shr ax, 00ch                              ; c1 e8 0c
    4719     mov cl, al                                ; 88 c1
     4803    je near 03460h                            ; 0f 84 84 fc
    47204804    mov dx, word [bp+006h]                    ; 8b 56 06
    4721     sal dx, 004h                              ; c1 e2 04
    4722     mov bx, word [bp+010h]                    ; 8b 5e 10
    4723     add bx, dx                                ; 01 d3
    4724     mov word [bp-010h], bx                    ; 89 5e f0
    4725     cmp dx, bx                                ; 39 da
    4726     jbe short 03754h                          ; 76 02
    4727     db  0feh, 0c1h
    4728     ; inc cl                                    ; fe c1
    4729     movzx bx, ch                              ; 0f b6 dd
    4730     sal bx, 002h                              ; c1 e3 02
    4731     dec bx                                    ; 4b
    4732     mov ax, word [bp-010h]                    ; 8b 46 f0
    4733     add ax, bx                                ; 01 d8
    4734     cmp ax, word [bp-010h]                    ; 3b 46 f0
    4735     jc near 0345bh                            ; 0f 82 f4 fc
     4805    shr dx, 00ch                              ; c1 ea 0c
     4806    mov ah, dl                                ; 88 d4
     4807    mov cx, word [bp+006h]                    ; 8b 4e 06
     4808    sal cx, 004h                              ; c1 e1 04
     4809    mov si, word [bp+010h]                    ; 8b 76 10
     4810    add si, cx                                ; 01 ce
     4811    mov word [bp-008h], si                    ; 89 76 f8
     4812    cmp cx, si                                ; 39 f1
     4813    jbe short 037f8h                          ; 76 02
     4814    db  0feh, 0c4h
     4815    ; inc ah                                    ; fe c4
     4816    movzx cx, bh                              ; 0f b6 cf
     4817    sal cx, 002h                              ; c1 e1 02
     4818    dec cx                                    ; 49
     4819    mov dx, word [bp-008h]                    ; 8b 56 f8
     4820    add dx, cx                                ; 01 ca
     4821    cmp dx, word [bp-008h]                    ; 3b 56 f8
     4822    jc near 034b3h                            ; 0f 82 a8 fc
    47364823    mov AL, strict byte 006h                  ; b0 06
    47374824    mov dx, strict word 0000ah                ; ba 0a 00
     
    47404827    mov dx, strict word 0000ch                ; ba 0c 00
    47414828    out DX, AL                                ; ee
    4742     mov al, byte [bp-010h]                    ; 8a 46 f0
     4829    mov al, byte [bp-008h]                    ; 8a 46 f8
    47434830    mov dx, strict word 00004h                ; ba 04 00
    47444831    out DX, AL                                ; ee
    4745     mov ax, word [bp-010h]                    ; 8b 46 f0
    4746     shr ax, 008h                              ; c1 e8 08
     4832    mov dx, word [bp-008h]                    ; 8b 56 f8
     4833    shr dx, 008h                              ; c1 ea 08
     4834    mov al, dl                                ; 88 d0
     4835    mov dx, strict word 00004h                ; ba 04 00
    47474836    out DX, AL                                ; ee
    47484837    xor al, al                                ; 30 c0
    47494838    mov dx, strict word 0000ch                ; ba 0c 00
    47504839    out DX, AL                                ; ee
    4751     mov al, bl                                ; 88 d8
     4840    mov al, cl                                ; 88 c8
    47524841    mov dx, strict word 00005h                ; ba 05 00
    47534842    out DX, AL                                ; ee
    4754     mov ax, bx                                ; 89 d8
    4755     shr ax, 008h                              ; c1 e8 08
     4843    shr cx, 008h                              ; c1 e9 08
     4844    mov al, cl                                ; 88 c8
    47564845    out DX, AL                                ; ee
    47574846    mov AL, strict byte 04ah                  ; b0 4a
    47584847    mov dx, strict word 0000bh                ; ba 0b 00
    47594848    out DX, AL                                ; ee
    4760     mov al, cl                                ; 88 c8
     4849    mov al, ah                                ; 88 e0
    47614850    mov dx, 00081h                            ; ba 81 00
    47624851    out DX, AL                                ; ee
     
    47644853    mov dx, strict word 0000ah                ; ba 0a 00
    47654854    out DX, AL                                ; ee
    4766     movzx si, byte [bp-00ch]                  ; 0f b6 76 f4
     4855    movzx si, bl                              ; 0f b6 f3
    47674856    mov ax, si                                ; 89 f0
    4768     call 03028h                               ; e8 7a f8
     4857    call 0308ch                               ; e8 36 f8
    47694858    mov AL, strict byte 00fh                  ; b0 0f
    47704859    mov dx, 003f5h                            ; ba f5 03
    47714860    out DX, AL                                ; ee
    4772     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     4861    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    47734862    sal ax, 002h                              ; c1 e0 02
    4774     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    4775     or bx, ax                                 ; 09 c3
    4776     mov al, bl                                ; 88 d8
    4777     out DX, AL                                ; ee
    4778     mov al, byte [bp-00ah]                    ; 8a 46 f6
     4863    movzx cx, bl                              ; 0f b6 cb
     4864    or cx, ax                                 ; 09 c1
     4865    mov al, cl                                ; 88 c8
     4866    out DX, AL                                ; ee
     4867    mov al, byte [bp-002h]                    ; 8a 46 fe
    47794868    out DX, AL                                ; ee
    47804869    mov AL, strict byte 04dh                  ; b0 4d
    47814870    out DX, AL                                ; ee
    4782     mov al, bl                                ; 88 d8
     4871    mov al, cl                                ; 88 c8
    47834872    out DX, AL                                ; ee
    47844873    mov AL, strict byte 002h                  ; b0 02
    47854874    out DX, AL                                ; ee
    4786     mov al, ch                                ; 88 e8
    4787     out DX, AL                                ; ee
    4788     xor al, ch                                ; 30 e8
     4875    mov al, bh                                ; 88 f8
     4876    out DX, AL                                ; ee
     4877    xor al, bh                                ; 30 f8
    47894878    out DX, AL                                ; ee
    47904879    mov AL, strict byte 0f6h                  ; b0 f6
    47914880    out DX, AL                                ; ee
    4792     call 02f9ah                               ; e8 bd f7
     4881    call 03012h                               ; e8 8e f7
    47934882    test al, al                               ; 84 c0
    4794     jne short 037e9h                          ; 75 08
     4883    jne short 03890h                          ; 75 08
    47954884    mov ax, si                                ; 89 f0
    4796     call 02fe0h                               ; e8 fa f7
    4797     jmp near 03349h                           ; e9 60 fb
     4885    call 0304ah                               ; e8 bd f7
     4886    jmp near 037abh                           ; e9 1b ff
    47984887    mov dx, 003f4h                            ; ba f4 03
    47994888    in AL, DX                                 ; ec
     
    48024891    and AL, strict byte 0c0h                  ; 24 c0
    48034892    cmp AL, strict byte 0c0h                  ; 3c c0
    4804     je short 03803h                           ; 74 0e
    4805     push 00275h                               ; 68 75 02
    4806     push 002a8h                               ; 68 a8 02
     4893    je short 038aah                           ; 74 0e
     4894    push 00287h                               ; 68 87 02
     4895    push 002bah                               ; 68 ba 02
    48074896    push strict byte 00007h                   ; 6a 07
    4808     call 019dah                               ; e8 da e1
     4897    call 01a6bh                               ; e8 c4 e1
    48094898    add sp, strict byte 00006h                ; 83 c4 06
    4810     xor si, si                                ; 31 f6
    4811     jmp short 0380ch                          ; eb 05
    4812     cmp si, strict byte 00007h                ; 83 fe 07
    4813     jnl short 03824h                          ; 7d 18
     4899    xor cx, cx                                ; 31 c9
     4900    jmp short 038b3h                          ; eb 05
     4901    cmp cx, strict byte 00007h                ; 83 f9 07
     4902    jnl short 038c9h                          ; 7d 16
    48144903    mov dx, 003f5h                            ; ba f5 03
    48154904    in AL, DX                                 ; ec
    48164905    db  02ah, 0e4h
    48174906    ; sub ah, ah                                ; 2a e4
    4818     mov byte [bp+si-01ah], al                 ; 88 42 e6
    4819     movzx bx, al                              ; 0f b6 d8
    4820     lea dx, [si+042h]                         ; 8d 54 42
     4907    mov si, cx                                ; 89 ce
     4908    add si, strict byte 00042h                ; 83 c6 42
     4909    mov dx, strict word 00040h                ; ba 40 00
     4910    mov es, dx                                ; 8e c2
     4911    mov byte [es:si], al                      ; 26 88 04
     4912    inc cx                                    ; 41
     4913    jmp short 038aeh                          ; eb e5
     4914    mov si, strict word 00042h                ; be 42 00
    48214915    mov ax, strict word 00040h                ; b8 40 00
    4822     call 016c6h                               ; e8 a5 de
    4823     inc si                                    ; 46
    4824     jmp short 03807h                          ; eb e3
    4825     test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4826     je short 03840h                           ; 74 16
    4827     test byte [bp-019h], 002h                 ; f6 46 e7 02
    4828     jne near 036a3h                           ; 0f 85 71 fe
    4829     push 00275h                               ; 68 75 02
    4830     push 002bch                               ; 68 bc 02
     4916    mov es, ax                                ; 8e c0
     4917    mov al, byte [es:si]                      ; 26 8a 04
     4918    test AL, strict byte 0c0h                 ; a8 c0
     4919    je short 038f2h                           ; 74 1a
     4920    mov si, strict word 00043h                ; be 43 00
     4921    mov al, byte [es:si]                      ; 26 8a 04
     4922    test AL, strict byte 002h                 ; a8 02
     4923    jne near 03732h                           ; 0f 85 4e fe
     4924    push 00287h                               ; 68 87 02
     4925    push 002ceh                               ; 68 ce 02
    48314926    push strict byte 00007h                   ; 6a 07
    4832     call 019dah                               ; e8 9d e1
     4927    call 01a6bh                               ; e8 7c e1
    48334928    add sp, strict byte 00006h                ; 83 c4 06
    4834     xor al, al                                ; 30 c0
    4835     mov byte [bp+017h], al                    ; 88 46 17
    4836     xor ah, ah                                ; 30 e4
    4837     call 02f34h                               ; e8 ea f6
    4838     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     4929    mov byte [bp+017h], 000h                  ; c6 46 17 00
     4930    mov si, strict word 00041h                ; be 41 00
     4931    mov ax, strict word 00040h                ; b8 40 00
     4932    mov es, ax                                ; 8e c0
     4933    mov byte [es:si], 000h                    ; 26 c6 04 00
     4934    movzx ax, bl                              ; 0f b6 c3
    48394935    xor dx, dx                                ; 31 d2
    4840     call 02f4ch                               ; e8 f9 f6
    4841     jmp near 03a1bh                           ; e9 c5 01
    4842     mov byte [bp-00ch], al                    ; 88 46 f4
    4843     cmp AL, strict byte 001h                  ; 3c 01
    4844     jbe short 0387ah                          ; 76 1d
     4936    call 02fc5h                               ; e8 bb f6
     4937    jmp near 0360eh                           ; e9 01 fd
     4938    mov bl, ah                                ; 88 e3
     4939    cmp ah, 001h                              ; 80 fc 01
     4940    jbe short 03931h                          ; 76 1d
    48454941    xor ax, ax                                ; 31 c0
    48464942    mov word [bp+016h], ax                    ; 89 46 16
     
    48504946    mov word [bp+006h], ax                    ; 89 46 06
    48514947    mov word [bp+008h], ax                    ; 89 46 08
    4852     movzx ax, ch                              ; 0f b6 c5
     4948    movzx ax, bh                              ; 0f b6 c7
    48534949    mov word [bp+012h], ax                    ; 89 46 12
    4854     jmp near 03999h                           ; e9 1f 01
     4950    jmp near 03a53h                           ; e9 22 01
    48554951    mov ax, strict word 00010h                ; b8 10 00
    4856     call 01714h                               ; e8 94 de
    4857     mov cl, al                                ; 88 c1
    4858     xor ch, ch                                ; 30 ed
     4952    call 017a5h                               ; e8 6e de
     4953    mov dl, al                                ; 88 c2
     4954    xor bh, bh                                ; 30 ff
    48594955    test AL, strict byte 0f0h                 ; a8 f0
    4860     je short 0388ah                           ; 74 02
    4861     mov CH, strict byte 001h                  ; b5 01
    4862     test cl, 00fh                             ; f6 c1 0f
    4863     je short 03891h                           ; 74 02
    4864     db  0feh, 0c5h
    4865     ; inc ch                                    ; fe c5
    4866     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    4867     jne short 0389ch                          ; 75 05
    4868     shr cl, 004h                              ; c0 e9 04
    4869     jmp short 0389fh                          ; eb 03
    4870     and cl, 00fh                              ; 80 e1 0f
     4956    je short 03941h                           ; 74 02
     4957    mov BH, strict byte 001h                  ; b7 01
     4958    test dl, 00fh                             ; f6 c2 0f
     4959    je short 03948h                           ; 74 02
     4960    db  0feh, 0c7h
     4961    ; inc bh                                    ; fe c7
     4962    test bl, bl                               ; 84 db
     4963    jne short 03951h                          ; 75 05
     4964    shr dl, 004h                              ; c0 ea 04
     4965    jmp short 03954h                          ; eb 03
     4966    and dl, 00fh                              ; 80 e2 0f
    48714967    mov byte [bp+011h], 000h                  ; c6 46 11 00
    4872     movzx ax, cl                              ; 0f b6 c1
     4968    movzx ax, dl                              ; 0f b6 c2
    48734969    mov word [bp+010h], ax                    ; 89 46 10
    48744970    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    4875     mov dx, word [bp+012h]                    ; 8b 56 12
    4876     xor dl, dl                                ; 30 d2
    4877     movzx ax, ch                              ; 0f b6 c5
    4878     or dx, ax                                 ; 09 c2
    4879     mov word [bp+012h], dx                    ; 89 56 12
    4880     mov ax, dx                                ; 89 d0
    4881     xor ah, dh                                ; 30 f4
     4971    mov cx, word [bp+012h]                    ; 8b 4e 12
     4972    xor cl, cl                                ; 30 c9
     4973    movzx ax, bh                              ; 0f b6 c7
     4974    or cx, ax                                 ; 09 c1
     4975    mov word [bp+012h], cx                    ; 89 4e 12
     4976    mov ax, cx                                ; 89 c8
     4977    xor ah, ch                                ; 30 ec
    48824978    or ah, 001h                               ; 80 cc 01
    48834979    mov word [bp+012h], ax                    ; 89 46 12
    4884     cmp cl, 003h                              ; 80 f9 03
    4885     jc short 038dfh                           ; 72 15
    4886     jbe short 03906h                          ; 76 3a
    4887     cmp cl, 005h                              ; 80 f9 05
    4888     jc short 0390dh                           ; 72 3c
    4889     jbe short 03914h                          ; 76 41
    4890     cmp cl, 00fh                              ; 80 f9 0f
    4891     je short 03922h                           ; 74 4a
    4892     cmp cl, 00eh                              ; 80 f9 0e
    4893     je short 0391bh                           ; 74 3e
    4894     jmp short 03929h                          ; eb 4a
    4895     cmp cl, 002h                              ; 80 f9 02
    4896     je short 038ffh                           ; 74 1b
    4897     cmp cl, 001h                              ; 80 f9 01
    4898     je short 038f8h                           ; 74 0f
    4899     test cl, cl                               ; 84 c9
    4900     jne short 03929h                          ; 75 3c
     4980    cmp dl, 003h                              ; 80 fa 03
     4981    jc short 03994h                           ; 72 15
     4982    jbe short 039bbh                          ; 76 3a
     4983    cmp dl, 005h                              ; 80 fa 05
     4984    jc short 039c2h                           ; 72 3c
     4985    jbe short 039c9h                          ; 76 41
     4986    cmp dl, 00fh                              ; 80 fa 0f
     4987    je short 039d7h                           ; 74 4a
     4988    cmp dl, 00eh                              ; 80 fa 0e
     4989    je short 039d0h                           ; 74 3e
     4990    jmp short 039deh                          ; eb 4a
     4991    cmp dl, 002h                              ; 80 fa 02
     4992    je short 039b4h                           ; 74 1b
     4993    cmp dl, 001h                              ; 80 fa 01
     4994    je short 039adh                           ; 74 0f
     4995    test dl, dl                               ; 84 d2
     4996    jne short 039deh                          ; 75 3c
    49014997    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    49024998    mov byte [bp+013h], 000h                  ; c6 46 13 00
    4903     jmp short 03937h                          ; eb 3f
     4999    jmp short 039ech                          ; eb 3f
    49045000    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    4905     jmp short 03937h                          ; eb 38
     5001    jmp short 039ech                          ; eb 38
    49065002    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    4907     jmp short 03937h                          ; eb 31
     5003    jmp short 039ech                          ; eb 31
    49085004    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    4909     jmp short 03937h                          ; eb 2a
     5005    jmp short 039ech                          ; eb 2a
    49105006    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    4911     jmp short 03937h                          ; eb 23
     5007    jmp short 039ech                          ; eb 23
    49125008    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
    4913     jmp short 03937h                          ; eb 1c
     5009    jmp short 039ech                          ; eb 1c
    49145010    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    4915     jmp short 03937h                          ; eb 15
     5011    jmp short 039ech                          ; eb 15
    49165012    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    4917     jmp short 03937h                          ; eb 0e
    4918     push 00275h                               ; 68 75 02
    4919     push 002cdh                               ; 68 cd 02
     5013    jmp short 039ech                          ; eb 0e
     5014    push 00287h                               ; 68 87 02
     5015    push 002dfh                               ; 68 df 02
    49205016    push strict byte 00007h                   ; 6a 07
    4921     call 019dah                               ; e8 a6 e0
     5017    call 01a6bh                               ; e8 82 e0
    49225018    add sp, strict byte 00006h                ; 83 c4 06
    49235019    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    4924     movzx ax, cl                              ; 0f b6 c1
    4925     call 03b92h                               ; e8 50 02
     5020    movzx ax, dl                              ; 0f b6 c2
     5021    call 03c7bh                               ; e8 84 02
    49265022    mov word [bp+008h], ax                    ; 89 46 08
    4927     jmp near 03a1bh                           ; e9 d3 00
    4928     mov byte [bp-00ch], al                    ; 88 46 f4
    4929     cmp AL, strict byte 001h                  ; 3c 01
    4930     jbe short 03954h                          ; 76 05
     5023    jmp near 0360eh                           ; e9 11 fc
     5024    mov bl, ah                                ; 88 e3
     5025    cmp ah, 001h                              ; 80 fc 01
     5026    jbe short 03a09h                          ; 76 05
     5027    mov word [bp+016h], dx                    ; 89 56 16
     5028    jmp short 03a53h                          ; eb 4a
     5029    mov ax, strict word 00010h                ; b8 10 00
     5030    call 017a5h                               ; e8 96 dd
     5031    test bl, bl                               ; 84 db
     5032    jne short 03a1ah                          ; 75 07
     5033    mov dl, al                                ; 88 c2
     5034    shr dl, 004h                              ; c0 ea 04
     5035    jmp short 03a1fh                          ; eb 05
     5036    mov dl, al                                ; 88 c2
     5037    and dl, 00fh                              ; 80 e2 0f
     5038    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     5039    mov ax, word [bp+016h]                    ; 8b 46 16
     5040    xor ah, ah                                ; 30 e4
     5041    test dl, dl                               ; 84 d2
     5042    je short 03a39h                           ; 74 0d
     5043    cmp dl, 001h                              ; 80 fa 01
     5044    jbe short 03a36h                          ; 76 05
     5045    or ah, 002h                               ; 80 cc 02
     5046    jmp short 03a39h                          ; eb 03
     5047    or ah, 001h                               ; 80 cc 01
     5048    mov word [bp+016h], ax                    ; 89 46 16
     5049    jmp near 033b8h                           ; e9 79 f9
     5050    cmp ah, 001h                              ; 80 fc 01
     5051    jbe short 03a59h                          ; 76 15
    49315052    mov word [bp+016h], si                    ; 89 76 16
    4932     jmp short 03999h                          ; eb 45
    4933     mov ax, strict word 00010h                ; b8 10 00
    4934     call 01714h                               ; e8 ba dd
    4935     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    4936     jne short 03967h                          ; 75 07
    4937     mov cl, al                                ; 88 c1
    4938     shr cl, 004h                              ; c0 e9 04
    4939     jmp short 0396ch                          ; eb 05
    4940     mov cl, al                                ; 88 c1
    4941     and cl, 00fh                              ; 80 e1 0f
    4942     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4943     mov dx, word [bp+016h]                    ; 8b 56 16
    4944     xor dh, dh                                ; 30 f6
    4945     test cl, cl                               ; 84 c9
    4946     je short 03986h                           ; 74 0d
    4947     cmp cl, 001h                              ; 80 f9 01
    4948     jbe short 03983h                          ; 76 05
    4949     or dh, 002h                               ; 80 ce 02
    4950     jmp short 03986h                          ; eb 03
    4951     or dh, 001h                               ; 80 ce 01
    4952     mov word [bp+016h], dx                    ; 89 56 16
    4953     jmp near 0337bh                           ; e9 ef f9
    4954     cmp AL, strict byte 001h                  ; 3c 01
    4955     jbe short 0399fh                          ; 76 0f
    4956     mov word [bp+016h], si                    ; 89 76 16
    4957     mov ax, strict word 00001h                ; b8 01 00
    4958     call 02f34h                               ; e8 9b f5
    4959     mov word [bp+01ch], dx                    ; 89 56 1c
    4960     jmp near 0337bh                           ; e9 dc f9
     5053    mov bx, strict word 00041h                ; bb 41 00
     5054    mov ax, strict word 00040h                ; b8 40 00
     5055    mov es, ax                                ; 8e c0
     5056    mov byte [es:bx], 001h                    ; 26 c6 07 01
     5057    mov word [bp+01ch], cx                    ; 89 4e 1c
     5058    jmp near 033b8h                           ; e9 5f f9
    49615059    mov ax, word [bp+016h]                    ; 8b 46 16
    49625060    xor ah, ah                                ; 30 e4
    49635061    or ah, 006h                               ; 80 cc 06
    49645062    mov word [bp+016h], ax                    ; 89 46 16
    4965     mov ax, strict word 00006h                ; b8 06 00
    4966     jmp near 03327h                           ; e9 77 f9
    4967     mov byte [bp-00ch], al                    ; 88 46 f4
    4968     mov bl, cl                                ; 88 cb
    4969     cmp AL, strict byte 001h                  ; 3c 01
    4970     jnbe short 03990h                         ; 77 d7
    4971     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4972     call 03264h                               ; e8 a4 f8
     5063    mov bx, strict word 00041h                ; bb 41 00
     5064    mov ax, strict word 00040h                ; b8 40 00
     5065    mov es, ax                                ; 8e c0
     5066    mov byte [es:bx], 006h                    ; 26 c6 07 06
     5067    jmp near 03b45h                           ; e9 d2 00
     5068    mov bl, ah                                ; 88 e3
     5069    mov dl, byte [bp+016h]                    ; 8a 56 16
     5070    cmp ah, 001h                              ; 80 fc 01
     5071    jnbe short 03a44h                         ; 77 c7
     5072    movzx ax, bl                              ; 0f b6 c3
     5073    call 032bch                               ; e8 39 f8
    49735074    test ax, ax                               ; 85 c0
    4974     je near 03349h                            ; 0f 84 83 f9
    4975     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     5075    je near 037abh                            ; 0f 84 22 fd
     5076    test bl, bl                               ; 84 db
    49765077    db  00fh, 095h, 0c0h
    49775078    ; setne al                                  ; 0f 95 c0
    4978     movzx dx, al                              ; 0f b6 d0
    4979     add dx, 00090h                            ; 81 c2 90 00
    4980     mov word [bp-010h], dx                    ; 89 56 f0
     5079    movzx bx, al                              ; 0f b6 d8
     5080    add bx, 00090h                            ; 81 c3 90 00
     5081    mov word [bp-008h], bx                    ; 89 5e f8
    49815082    mov ax, strict word 00040h                ; b8 40 00
    4982     call 016b8h                               ; e8 db dc
    4983     and AL, strict byte 00fh                  ; 24 0f
    4984     cmp bl, 002h                              ; 80 fb 02
    4985     jc short 039f3h                           ; 72 0f
    4986     jbe short 039ffh                          ; 76 19
    4987     cmp bl, 004h                              ; 80 fb 04
    4988     je short 039fbh                           ; 74 10
    4989     cmp bl, 003h                              ; 80 fb 03
    4990     je short 03a03h                           ; 74 13
    4991     jmp near 03319h                           ; e9 26 f9
    4992     cmp bl, 001h                              ; 80 fb 01
    4993     je short 039fbh                           ; 74 03
    4994     jmp near 03319h                           ; e9 1e f9
    4995     or AL, strict byte 090h                   ; 0c 90
    4996     jmp short 03a05h                          ; eb 06
    4997     or AL, strict byte 070h                   ; 0c 70
    4998     jmp short 03a05h                          ; eb 02
    4999     or AL, strict byte 010h                   ; 0c 10
    5000     movzx bx, al                              ; 0f b6 d8
    5001     mov dx, word [bp-010h]                    ; 8b 56 f0
     5083    mov es, ax                                ; 8e c0
     5084    mov bl, byte [es:bx]                      ; 26 8a 1f
     5085    and bl, 00fh                              ; 80 e3 0f
     5086    cmp dl, 002h                              ; 80 fa 02
     5087    jc short 03ab7h                           ; 72 0f
     5088    jbe short 03ac4h                          ; 76 1a
     5089    cmp dl, 004h                              ; 80 fa 04
     5090    je short 03abfh                           ; 74 10
     5091    cmp dl, 003h                              ; 80 fa 03
     5092    je short 03ac9h                           ; 74 15
     5093    jmp near 03347h                           ; e9 90 f8
     5094    cmp dl, 001h                              ; 80 fa 01
     5095    je short 03abfh                           ; 74 03
     5096    jmp near 03347h                           ; e9 88 f8
     5097    or bl, 090h                               ; 80 cb 90
     5098    jmp short 03acch                          ; eb 08
     5099    or bl, 070h                               ; 80 cb 70
     5100    jmp short 03acch                          ; eb 03
     5101    or bl, 010h                               ; 80 cb 10
    50025102    mov ax, strict word 00040h                ; b8 40 00
    5003     call 016c6h                               ; e8 b5 dc
     5103    mov es, ax                                ; 8e c0
     5104    mov si, word [bp-008h]                    ; 8b 76 f8
     5105    mov byte [es:si], bl                      ; 26 88 1c
    50045106    xor al, al                                ; 30 c0
    50055107    mov byte [bp+017h], al                    ; 88 46 17
    5006     xor ah, ah                                ; 30 e4
    5007     call 02f34h                               ; e8 19 f5
    5008     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    5009     jmp near 0337bh                           ; e9 59 f9
    5010     mov byte [bp-00ch], al                    ; 88 46 f4
    5011     mov ch, ah                                ; 88 e5
    5012     and ch, 03fh                              ; 80 e5 3f
    5013     movzx bx, ah                              ; 0f b6 dc
    5014     sar bx, 006h                              ; c1 fb 06
    5015     sal bx, 008h                              ; c1 e3 08
    5016     add bx, word [bp-012h]                    ; 03 5e ee
    5017     mov byte [bp-00ah], bl                    ; 88 5e f6
    5018     cmp AL, strict byte 001h                  ; 3c 01
    5019     jnbe near 03990h                          ; 0f 87 51 ff
    5020     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    5021     call 03264h                               ; e8 1e f8
     5108    mov bx, strict word 00041h                ; bb 41 00
     5109    mov byte [es:bx], al                      ; 26 88 07
     5110    jmp near 0360eh                           ; e9 29 fb
     5111    mov bl, ah                                ; 88 e3
     5112    mov dl, byte [bp+014h]                    ; 8a 56 14
     5113    mov bh, dl                                ; 88 d7
     5114    and bh, 03fh                              ; 80 e7 3f
     5115    xor dh, dh                                ; 30 f6
     5116    sar dx, 006h                              ; c1 fa 06
     5117    sal dx, 008h                              ; c1 e2 08
     5118    mov word [bp-00ah], dx                    ; 89 56 f6
     5119    mov dx, word [bp+014h]                    ; 8b 56 14
     5120    shr dx, 008h                              ; c1 ea 08
     5121    add dx, word [bp-00ah]                    ; 03 56 f6
     5122    mov byte [bp-002h], dl                    ; 88 56 fe
     5123    cmp ah, 001h                              ; 80 fc 01
     5124    jnbe near 03a44h                          ; 0f 87 37 ff
     5125    movzx ax, bl                              ; 0f b6 c3
     5126    call 032bch                               ; e8 a9 f7
    50225127    test ax, ax                               ; 85 c0
    5023     je near 03349h                            ; 0f 84 fd f8
    5024     movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    5025     mov ax, dx                                ; 89 d0
    5026     call 030a9h                               ; e8 54 f6
     5128    je near 037abh                            ; 0f 84 92 fc
     5129    movzx cx, bl                              ; 0f b6 cb
     5130    mov ax, cx                                ; 89 c8
     5131    call 03100h                               ; e8 df f5
    50275132    test ax, ax                               ; 85 c0
    5028     jne short 03a73h                          ; 75 1a
    5029     mov ax, dx                                ; 89 d0
    5030     call 03174h                               ; e8 16 f7
     5133    jne short 03b4ch                          ; 75 27
     5134    mov ax, cx                                ; 89 c8
     5135    call 031d8h                               ; e8 ae f6
    50315136    test ax, ax                               ; 85 c0
    5032     jne short 03a73h                          ; 75 11
     5137    jne short 03b4ch                          ; 75 1e
    50335138    mov ax, word [bp+016h]                    ; 8b 46 16
    50345139    xor ah, ah                                ; 30 e4
    50355140    or ah, 00ch                               ; 80 cc 0c
    50365141    mov word [bp+016h], ax                    ; 89 46 16
    5037     mov ax, strict word 0000ch                ; b8 0c 00
    5038     jmp near 03327h                           ; e9 b4 f8
     5142    mov bx, strict word 00041h                ; bb 41 00
     5143    mov ax, strict word 00040h                ; b8 40 00
     5144    mov es, ax                                ; 8e c0
     5145    mov byte [es:bx], 00ch                    ; 26 c6 07 0c
     5146    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     5147    jmp near 033b8h                           ; e9 6c f8
    50395148    mov ax, strict word 00010h                ; b8 10 00
    5040     call 01714h                               ; e8 9b dc
    5041     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    5042     jne short 03a86h                          ; 75 07
    5043     mov cl, al                                ; 88 c1
    5044     shr cl, 004h                              ; c0 e9 04
    5045     jmp short 03a8bh                          ; eb 05
    5046     mov cl, al                                ; 88 c1
    5047     and cl, 00fh                              ; 80 e1 0f
    5048     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     5149    call 017a5h                               ; e8 53 dc
     5150    test bl, bl                               ; 84 db
     5151    jne short 03b5dh                          ; 75 07
     5152    mov dl, al                                ; 88 c2
     5153    shr dl, 004h                              ; c0 ea 04
     5154    jmp short 03b62h                          ; eb 05
     5155    mov dl, al                                ; 88 c2
     5156    and dl, 00fh                              ; 80 e2 0f
     5157    test bl, bl                               ; 84 db
    50495158    db  00fh, 095h, 0c0h
    50505159    ; setne al                                  ; 0f 95 c0
    5051     movzx dx, al                              ; 0f b6 d0
    5052     add dx, 00090h                            ; 81 c2 90 00
    5053     mov word [bp-010h], dx                    ; 89 56 f0
     5160    movzx si, al                              ; 0f b6 f0
     5161    add si, 00090h                            ; 81 c6 90 00
     5162    mov word [bp-008h], si                    ; 89 76 f8
    50545163    mov ax, strict word 00040h                ; b8 40 00
    5055     call 016b8h                               ; e8 16 dc
    5056     and AL, strict byte 00fh                  ; 24 0f
    5057     cmp cl, 003h                              ; 80 f9 03
    5058     jc short 03ac7h                           ; 72 1e
    5059     mov dl, al                                ; 88 c2
    5060     or dl, 090h                               ; 80 ca 90
    5061     cmp cl, 003h                              ; 80 f9 03
    5062     jbe short 03b05h                          ; 76 52
    5063     mov ah, al                                ; 88 c4
    5064     or ah, 010h                               ; 80 cc 10
    5065     cmp cl, 005h                              ; 80 f9 05
    5066     je near 03b2ah                            ; 0f 84 6b 00
    5067     cmp cl, 004h                              ; 80 f9 04
    5068     je short 03b14h                           ; 74 50
    5069     jmp near 03b45h                           ; e9 7e 00
    5070     cmp cl, 002h                              ; 80 f9 02
    5071     je short 03ae7h                           ; 74 1b
    5072     cmp cl, 001h                              ; 80 f9 01
    5073     jne near 03b45h                           ; 0f 85 72 00
    5074     cmp byte [bp-00ah], 027h                  ; 80 7e f6 27
    5075     jne near 03b45h                           ; 0f 85 6a 00
    5076     cmp ch, 009h                              ; 80 fd 09
    5077     jne near 03b45h                           ; 0f 85 63 00
    5078     or AL, strict byte 090h                   ; 0c 90
    5079     jmp near 03b45h                           ; e9 5e 00
    5080     cmp byte [bp-00ah], 027h                  ; 80 7e f6 27
    5081     jne short 03af6h                          ; 75 09
    5082     cmp ch, 009h                              ; 80 fd 09
    5083     jne short 03af6h                          ; 75 04
    5084     or AL, strict byte 070h                   ; 0c 70
    5085     jmp short 03b45h                          ; eb 4f
    5086     cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5087     jne short 03b45h                          ; 75 49
    5088     cmp ch, 00fh                              ; 80 fd 0f
    5089     jne short 03b45h                          ; 75 44
     5164    mov es, ax                                ; 8e c0
     5165    mov bl, byte [es:si]                      ; 26 8a 1c
     5166    and bl, 00fh                              ; 80 e3 0f
     5167    cmp dl, 003h                              ; 80 fa 03
     5168    jc short 03b9eh                           ; 72 1d
     5169    mov ah, bl                                ; 88 dc
     5170    or ah, 090h                               ; 80 cc 90
     5171    cmp dl, 003h                              ; 80 fa 03
     5172    jbe short 03bdfh                          ; 76 54
     5173    mov al, bl                                ; 88 d8
    50905174    or AL, strict byte 010h                   ; 0c 10
    5091     jmp short 03b45h                          ; eb 40
    5092     cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5093     jne short 03b45h                          ; 75 3a
    5094     cmp ch, 009h                              ; 80 fd 09
    5095     jne short 03b45h                          ; 75 35
    5096     mov al, dl                                ; 88 d0
    5097     jmp short 03b45h                          ; eb 31
    5098     cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5099     jne short 03b45h                          ; 75 2b
    5100     cmp ch, 009h                              ; 80 fd 09
    5101     jne short 03b21h                          ; 75 02
    5102     jmp short 03b10h                          ; eb ef
    5103     cmp ch, 012h                              ; 80 fd 12
    5104     jne short 03b45h                          ; 75 1f
    5105     mov al, ah                                ; 88 e0
    5106     jmp short 03b45h                          ; eb 1b
    5107     cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5108     jne short 03b45h                          ; 75 15
    5109     cmp ch, 009h                              ; 80 fd 09
    5110     jne short 03b37h                          ; 75 02
    5111     jmp short 03b10h                          ; eb d9
    5112     cmp ch, 012h                              ; 80 fd 12
    5113     jne short 03b3eh                          ; 75 02
    5114     jmp short 03b26h                          ; eb e8
    5115     cmp ch, 024h                              ; 80 fd 24
    5116     jne short 03b45h                          ; 75 02
    5117     or AL, strict byte 0d0h                   ; 0c d0
    5118     movzx dx, al                              ; 0f b6 d0
    5119     sar dx, 004h                              ; c1 fa 04
    5120     test dl, 001h                             ; f6 c2 01
    5121     je near 03a62h                            ; 0f 84 10 ff
    5122     movzx bx, al                              ; 0f b6 d8
    5123     mov dx, word [bp-010h]                    ; 8b 56 f0
     5175    cmp dl, 005h                              ; 80 fa 05
     5176    je near 03c04h                            ; 0f 84 6e 00
     5177    cmp dl, 004h                              ; 80 fa 04
     5178    je short 03beeh                           ; 74 53
     5179    jmp near 03c20h                           ; e9 82 00
     5180    cmp dl, 002h                              ; 80 fa 02
     5181    je short 03bbfh                           ; 74 1c
     5182    cmp dl, 001h                              ; 80 fa 01
     5183    jne near 03c20h                           ; 0f 85 76 00
     5184    cmp byte [bp-002h], 027h                  ; 80 7e fe 27
     5185    jne near 03c20h                           ; 0f 85 6e 00
     5186    cmp bh, 009h                              ; 80 ff 09
     5187    jne near 03c20h                           ; 0f 85 67 00
     5188    or bl, 090h                               ; 80 cb 90
     5189    jmp near 03c20h                           ; e9 61 00
     5190    cmp byte [bp-002h], 027h                  ; 80 7e fe 27
     5191    jne short 03bcfh                          ; 75 0a
     5192    cmp bh, 009h                              ; 80 ff 09
     5193    jne short 03bcfh                          ; 75 05
     5194    or bl, 070h                               ; 80 cb 70
     5195    jmp short 03c20h                          ; eb 51
     5196    cmp byte [bp-002h], 04fh                  ; 80 7e fe 4f
     5197    jne short 03c20h                          ; 75 4b
     5198    cmp bh, 00fh                              ; 80 ff 0f
     5199    jne short 03c20h                          ; 75 46
     5200    or bl, 010h                               ; 80 cb 10
     5201    jmp short 03c20h                          ; eb 41
     5202    cmp byte [bp-002h], 04fh                  ; 80 7e fe 4f
     5203    jne short 03c20h                          ; 75 3b
     5204    cmp bh, 009h                              ; 80 ff 09
     5205    jne short 03c20h                          ; 75 36
     5206    mov bl, ah                                ; 88 e3
     5207    jmp short 03c20h                          ; eb 32
     5208    cmp byte [bp-002h], 04fh                  ; 80 7e fe 4f
     5209    jne short 03c20h                          ; 75 2c
     5210    cmp bh, 009h                              ; 80 ff 09
     5211    jne short 03bfbh                          ; 75 02
     5212    jmp short 03beah                          ; eb ef
     5213    cmp bh, 012h                              ; 80 ff 12
     5214    jne short 03c20h                          ; 75 20
     5215    mov bl, al                                ; 88 c3
     5216    jmp short 03c20h                          ; eb 1c
     5217    cmp byte [bp-002h], 04fh                  ; 80 7e fe 4f
     5218    jne short 03c20h                          ; 75 16
     5219    cmp bh, 009h                              ; 80 ff 09
     5220    jne short 03c11h                          ; 75 02
     5221    jmp short 03beah                          ; eb d9
     5222    cmp bh, 012h                              ; 80 ff 12
     5223    jne short 03c18h                          ; 75 02
     5224    jmp short 03c00h                          ; eb e8
     5225    cmp bh, 024h                              ; 80 ff 24
     5226    jne short 03c20h                          ; 75 03
     5227    or bl, 0d0h                               ; 80 cb d0
     5228    movzx ax, bl                              ; 0f b6 c3
     5229    sar ax, 004h                              ; c1 f8 04
     5230    test AL, strict byte 001h                 ; a8 01
     5231    je near 03b2eh                            ; 0f 84 02 ff
    51245232    mov ax, strict word 00040h                ; b8 40 00
    5125     call 016c6h                               ; e8 68 db
     5233    mov es, ax                                ; 8e c0
     5234    mov si, word [bp-008h]                    ; 8b 76 f8
     5235    mov byte [es:si], bl                      ; 26 88 1c
    51265236    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    5127     movzx ax, cl                              ; 0f b6 c1
    5128     call 03b92h                               ; e8 29 00
     5237    movzx ax, dl                              ; 0f b6 c2
     5238    call 03c7bh                               ; e8 39 00
    51295239    mov word [bp+008h], ax                    ; 89 46 08
    5130     jmp near 03a11h                           ; e9 a2 fe
    5131     mov bx, 00da0h                            ; bb a0 0d
     5240    mov byte [bp+017h], 000h                  ; c6 46 17 00
     5241    mov bx, strict word 00041h                ; bb 41 00
     5242    mov ax, strict word 00040h                ; b8 40 00
     5243    mov es, ax                                ; 8e c0
     5244    mov byte [es:bx], 000h                    ; 26 c6 07 00
     5245    jmp near 0360eh                           ; e9 b6 f9
     5246    mov bx, 00db2h                            ; bb b2 0d
    51325247    mov cx, ds                                ; 8c d9
    51335248    mov ax, strict word 00004h                ; b8 04 00
    5134     call 01999h                               ; e8 1f de
     5249    call 01a2ah                               ; e8 c7 dd
    51355250    mov ax, word [bp+016h]                    ; 8b 46 16
    51365251    shr ax, 008h                              ; c1 e8 08
    51375252    push ax                                   ; 50
    5138     push 00275h                               ; 68 75 02
    5139     push 002e2h                               ; 68 e2 02
     5253    push 00287h                               ; 68 87 02
     5254    push 002f4h                               ; 68 f4 02
    51405255    push strict byte 00004h                   ; 6a 04
    5141     call 019dah                               ; e8 4e de
     5256    call 01a6bh                               ; e8 f6 dd
    51425257    add sp, strict byte 00008h                ; 83 c4 08
    5143     jmp near 03319h                           ; e9 87 f7
    5144 get_floppy_dpt_:                             ; 0xf3b92 LB 0x2f
     5258    jmp near 03347h                           ; e9 cc f6
     5259get_floppy_dpt_:                             ; 0xf3c7b LB 0x2f
    51455260    push bx                                   ; 53
    51465261    push dx                                   ; 52
     
    51495264    mov dl, al                                ; 88 c2
    51505265    xor ax, ax                                ; 31 c0
    5151     jmp short 03ba3h                          ; eb 06
     5266    jmp short 03c8ch                          ; eb 06
    51525267    inc ax                                    ; 40
    51535268    cmp ax, strict word 00007h                ; 3d 07 00
    5154     jnc short 03bbah                          ; 73 17
     5269    jnc short 03ca3h                          ; 73 17
    51555270    mov bx, ax                                ; 89 c3
    51565271    add bx, ax                                ; 01 c3
    51575272    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
    5158     jne short 03b9dh                          ; 75 f0
     5273    jne short 03c86h                          ; 75 f0
    51595274    movzx ax, byte [word bx+0005ch]           ; 0f b6 87 5c 00
    51605275    imul ax, ax, strict byte 0000dh           ; 6b c0 0d
    51615276    add ax, strict word 00000h                ; 05 00 00
    5162     jmp short 03bbdh                          ; eb 03
     5277    jmp short 03ca6h                          ; eb 03
    51635278    mov ax, strict word 00041h                ; b8 41 00
    51645279    pop bp                                    ; 5d
     
    51665281    pop bx                                    ; 5b
    51675282    retn                                      ; c3
    5168 dummy_soft_reset_:                           ; 0xf3bc1 LB 0x7
     5283dummy_soft_reset_:                           ; 0xf3caa LB 0x7
    51695284    push bp                                   ; 55
    51705285    mov bp, sp                                ; 89 e5
     
    51725287    pop bp                                    ; 5d
    51735288    retn                                      ; c3
    5174 _cdemu_init:                                 ; 0xf3bc8 LB 0x18
     5289_cdemu_init:                                 ; 0xf3cb1 LB 0x18
    51755290    push bp                                   ; 55
    51765291    mov bp, sp                                ; 89 e5
    51775292    mov dx, strict word 0000eh                ; ba 0e 00
    51785293    mov ax, strict word 00040h                ; b8 40 00
    5179     call 016d4h                               ; e8 00 db
     5294    call 01765h                               ; e8 a8 da
    51805295    xor bx, bx                                ; 31 db
    51815296    mov dx, 00366h                            ; ba 66 03
    5182     call 016c6h                               ; e8 ea da
     5297    call 01757h                               ; e8 92 da
    51835298    mov sp, bp                                ; 89 ec
    51845299    pop bp                                    ; 5d
    51855300    retn                                      ; c3
    5186 _cdemu_isactive:                             ; 0xf3be0 LB 0x16
     5301_cdemu_isactive:                             ; 0xf3cc9 LB 0x16
    51875302    push bp                                   ; 55
    51885303    mov bp, sp                                ; 89 e5
    51895304    mov dx, strict word 0000eh                ; ba 0e 00
    51905305    mov ax, strict word 00040h                ; b8 40 00
    5191     call 016d4h                               ; e8 e8 da
     5306    call 01765h                               ; e8 90 da
    51925307    mov dx, 00366h                            ; ba 66 03
    5193     call 016b8h                               ; e8 c6 da
     5308    call 01749h                               ; e8 6e da
    51945309    mov sp, bp                                ; 89 ec
    51955310    pop bp                                    ; 5d
    51965311    retn                                      ; c3
    5197 _cdemu_emulated_drive:                       ; 0xf3bf6 LB 0x16
     5312_cdemu_emulated_drive:                       ; 0xf3cdf LB 0x16
    51985313    push bp                                   ; 55
    51995314    mov bp, sp                                ; 89 e5
    52005315    mov dx, strict word 0000eh                ; ba 0e 00
    52015316    mov ax, strict word 00040h                ; b8 40 00
    5202     call 016d4h                               ; e8 d2 da
     5317    call 01765h                               ; e8 7a da
    52035318    mov dx, 00368h                            ; ba 68 03
    5204     call 016b8h                               ; e8 b0 da
     5319    call 01749h                               ; e8 58 da
    52055320    mov sp, bp                                ; 89 ec
    52065321    pop bp                                    ; 5d
    52075322    retn                                      ; c3
    5208 _int13_eltorito:                             ; 0xf3c0c LB 0x189
     5323_int13_eltorito:                             ; 0xf3cf5 LB 0x189
    52095324    push bp                                   ; 55
    52105325    mov bp, sp                                ; 89 e5
     
    52135328    mov dx, strict word 0000eh                ; ba 0e 00
    52145329    mov ax, strict word 00040h                ; b8 40 00
    5215     call 016d4h                               ; e8 ba da
     5330    call 01765h                               ; e8 62 da
    52165331    mov si, 00366h                            ; be 66 03
    52175332    mov di, ax                                ; 89 c7
     
    52195334    shr ax, 008h                              ; c1 e8 08
    52205335    cmp ax, strict word 0004bh                ; 3d 4b 00
    5221     jc short 03c34h                           ; 72 0a
    5222     jbe short 03c5ah                          ; 76 2e
     5336    jc short 03d1dh                           ; 72 0a
     5337    jbe short 03d43h                          ; 76 2e
    52235338    cmp ax, strict word 0004dh                ; 3d 4d 00
    5224     jbe short 03c3bh                          ; 76 0a
    5225     jmp near 03d59h                           ; e9 25 01
     5339    jbe short 03d24h                          ; 76 0a
     5340    jmp near 03e42h                           ; e9 25 01
    52265341    cmp ax, strict word 0004ah                ; 3d 4a 00
    5227     jne near 03d59h                           ; 0f 85 1e 01
    5228     mov bx, 00da0h                            ; bb a0 0d
     5342    jne near 03e42h                           ; 0f 85 1e 01
     5343    mov bx, 00db2h                            ; bb b2 0d
    52295344    mov cx, ds                                ; 8c d9
    52305345    mov ax, strict word 00004h                ; b8 04 00
    5231     call 01999h                               ; e8 53 dd
     5346    call 01a2ah                               ; e8 fb dc
    52325347    push word [bp+016h]                       ; ff 76 16
    5233     push 002fch                               ; 68 fc 02
    5234     push 0030bh                               ; 68 0b 03
     5348    push 0030eh                               ; 68 0e 03
     5349    push 0031dh                               ; 68 1d 03
    52355350    push strict byte 00004h                   ; 6a 04
    5236     call 019dah                               ; e8 86 dd
     5351    call 01a6bh                               ; e8 2e dd
    52375352    add sp, strict byte 00008h                ; 83 c4 08
    5238     jmp near 03d74h                           ; e9 1a 01
     5353    jmp near 03e5dh                           ; e9 1a 01
    52395354    mov dx, word [bp+00ah]                    ; 8b 56 0a
    52405355    mov ax, word [bp+004h]                    ; 8b 46 04
    52415356    mov bx, strict word 00013h                ; bb 13 00
    5242     call 016c6h                               ; e8 60 da
     5357    call 01757h                               ; e8 08 da
    52435358    mov es, di                                ; 8e c7
    52445359    movzx bx, byte [es:si+001h]               ; 26 0f b6 5c 01
     
    52465361    inc dx                                    ; 42
    52475362    mov ax, word [bp+004h]                    ; 8b 46 04
    5248     call 016c6h                               ; e8 4f da
     5363    call 01757h                               ; e8 f7 d9
    52495364    mov es, di                                ; 8e c7
    52505365    movzx bx, byte [es:si+002h]               ; 26 0f b6 5c 02
     
    52535368    inc dx                                    ; 42
    52545369    mov ax, word [bp+004h]                    ; 8b 46 04
    5255     call 016c6h                               ; e8 3d da
     5370    call 01757h                               ; e8 e5 d9
    52565371    mov es, di                                ; 8e c7
    52575372    movzx bx, byte [es:si+003h]               ; 26 0f b6 5c 03
     
    52595374    add dx, strict byte 00003h                ; 83 c2 03
    52605375    mov ax, word [bp+004h]                    ; 8b 46 04
    5261     call 016c6h                               ; e8 2a da
     5376    call 01757h                               ; e8 d2 d9
    52625377    mov es, di                                ; 8e c7
    52635378    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    52665381    add dx, strict byte 00004h                ; 83 c2 04
    52675382    mov ax, word [bp+004h]                    ; 8b 46 04
    5268     call 01702h                               ; e8 50 da
     5383    call 01793h                               ; e8 f8 d9
    52695384    mov es, di                                ; 8e c7
    52705385    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    52725387    add dx, strict byte 00008h                ; 83 c2 08
    52735388    mov ax, word [bp+004h]                    ; 8b 46 04
    5274     call 016e2h                               ; e8 1e da
     5389    call 01773h                               ; e8 c6 d9
    52755390    mov es, di                                ; 8e c7
    52765391    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    52785393    add dx, strict byte 0000ah                ; 83 c2 0a
    52795394    mov ax, word [bp+004h]                    ; 8b 46 04
    5280     call 016e2h                               ; e8 0c da
     5395    call 01773h                               ; e8 b4 d9
    52815396    mov es, di                                ; 8e c7
    52825397    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    52845399    add dx, strict byte 0000ch                ; 83 c2 0c
    52855400    mov ax, word [bp+004h]                    ; 8b 46 04
    5286     call 016e2h                               ; e8 fa d9
     5401    call 01773h                               ; e8 a2 d9
    52875402    mov es, di                                ; 8e c7
    52885403    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    52905405    add dx, strict byte 0000eh                ; 83 c2 0e
    52915406    mov ax, word [bp+004h]                    ; 8b 46 04
    5292     call 016e2h                               ; e8 e8 d9
     5407    call 01773h                               ; e8 90 d9
    52935408    mov es, di                                ; 8e c7
    52945409    movzx bx, byte [es:si+012h]               ; 26 0f b6 5c 12
     
    52965411    add dx, strict byte 00010h                ; 83 c2 10
    52975412    mov ax, word [bp+004h]                    ; 8b 46 04
    5298     call 016c6h                               ; e8 b9 d9
     5413    call 01757h                               ; e8 61 d9
    52995414    mov es, di                                ; 8e c7
    53005415    movzx bx, byte [es:si+014h]               ; 26 0f b6 5c 14
     
    53025417    add dx, strict byte 00011h                ; 83 c2 11
    53035418    mov ax, word [bp+004h]                    ; 8b 46 04
    5304     call 016c6h                               ; e8 a6 d9
     5419    call 01757h                               ; e8 4e d9
    53055420    mov es, di                                ; 8e c7
    53065421    movzx bx, byte [es:si+010h]               ; 26 0f b6 5c 10
     
    53085423    add dx, strict byte 00012h                ; 83 c2 12
    53095424    mov ax, word [bp+004h]                    ; 8b 46 04
    5310     call 016c6h                               ; e8 93 d9
     5425    call 01757h                               ; e8 3b d9
    53115426    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    5312     jne short 03d3fh                          ; 75 06
     5427    jne short 03e28h                          ; 75 06
    53135428    mov es, di                                ; 8e c7
    53145429    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    53175432    mov dx, strict word 00074h                ; ba 74 00
    53185433    mov ax, strict word 00040h                ; b8 40 00
    5319     call 016c6h                               ; e8 78 d9
     5434    call 01757h                               ; e8 20 d9
    53205435    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    53215436    lea sp, [bp-004h]                         ; 8d 66 fc
     
    53245439    pop bp                                    ; 5d
    53255440    retn                                      ; c3
    5326     mov bx, 00da0h                            ; bb a0 0d
     5441    mov bx, 00db2h                            ; bb b2 0d
    53275442    mov cx, ds                                ; 8c d9
    53285443    mov ax, strict word 00004h                ; b8 04 00
    5329     call 01999h                               ; e8 35 dc
     5444    call 01a2ah                               ; e8 dd db
    53305445    mov ax, word [bp+016h]                    ; 8b 46 16
    53315446    shr ax, 008h                              ; c1 e8 08
    53325447    push ax                                   ; 50
    5333     push 002fch                               ; 68 fc 02
    5334     push 00333h                               ; 68 33 03
    5335     jmp near 03c4fh                           ; e9 db fe
     5448    push 0030eh                               ; 68 0e 03
     5449    push 00345h                               ; 68 45 03
     5450    jmp near 03d38h                           ; e9 db fe
    53365451    mov ax, word [bp+016h]                    ; 8b 46 16
    53375452    xor ah, ah                                ; 30 e4
     
    53435458    mov dx, strict word 00074h                ; ba 74 00
    53445459    mov ax, strict word 00040h                ; b8 40 00
    5345     call 016c6h                               ; e8 37 d9
     5460    call 01757h                               ; e8 df d8
    53465461    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5347     jmp short 03d52h                          ; eb bd
    5348 device_is_cdrom_:                            ; 0xf3d95 LB 0x35
     5462    jmp short 03e3bh                          ; eb bd
     5463device_is_cdrom_:                            ; 0xf3e7e LB 0x35
    53495464    push bp                                   ; 55
    53505465    mov bp, sp                                ; 89 e5
     
    53545469    mov dx, strict word 0000eh                ; ba 0e 00
    53555470    mov ax, strict word 00040h                ; b8 40 00
    5356     call 016d4h                               ; e8 2f d9
     5471    call 01765h                               ; e8 d7 d8
    53575472    cmp bl, 010h                              ; 80 fb 10
    5358     jc short 03daeh                           ; 72 04
     5473    jc short 03e97h                           ; 72 04
    53595474    xor ax, ax                                ; 31 c0
    5360     jmp short 03dc3h                          ; eb 15
     5475    jmp short 03each                          ; eb 15
    53615476    xor bh, bh                                ; 30 ff
    53625477    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    53645479    add bx, 00122h                            ; 81 c3 22 01
    53655480    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    5366     jne short 03daah                          ; 75 ea
     5481    jne short 03e93h                          ; 75 ea
    53675482    mov ax, strict word 00001h                ; b8 01 00
    53685483    lea sp, [bp-004h]                         ; 8d 66 fc
     
    53715486    pop bp                                    ; 5d
    53725487    retn                                      ; c3
    5373 cdrom_boot_:                                 ; 0xf3dca LB 0x416
     5488cdrom_boot_:                                 ; 0xf3eb3 LB 0x417
    53745489    push bp                                   ; 55
    53755490    mov bp, sp                                ; 89 e5
     
    53825497    mov dx, strict word 0000eh                ; ba 0e 00
    53835498    mov ax, strict word 00040h                ; b8 40 00
    5384     call 016d4h                               ; e8 f5 d8
     5499    call 01765h                               ; e8 9d d8
    53855500    mov word [bp-018h], ax                    ; 89 46 e8
    53865501    mov si, 00366h                            ; be 66 03
     
    53895504    mov word [bp-012h], ax                    ; 89 46 ee
    53905505    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    5391     jmp short 03dffh                          ; eb 09
     5506    jmp short 03ee8h                          ; eb 09
    53925507    inc byte [bp-00ch]                        ; fe 46 f4
    53935508    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5394     jnc short 03e0ah                          ; 73 0b
     5509    jnc short 03ef3h                          ; 73 0b
    53955510    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    5396     call 03d95h                               ; e8 8f ff
     5511    call 03e7eh                               ; e8 8f ff
    53975512    test ax, ax                               ; 85 c0
    5398     je short 03df6h                           ; 74 ec
     5513    je short 03edfh                           ; 74 ec
    53995514    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5400     jc short 03e16h                           ; 72 06
     5515    jc short 03effh                           ; 72 06
    54015516    mov ax, strict word 00002h                ; b8 02 00
    5402     jmp near 0417dh                           ; e9 67 03
     5517    jmp near 04267h                           ; e9 68 03
    54035518    mov cx, strict word 0000ch                ; b9 0c 00
    54045519    xor bx, bx                                ; 31 db
    54055520    mov dx, ss                                ; 8c d2
    54065521    lea ax, [bp-026h]                         ; 8d 46 da
    5407     call 09f60h                               ; e8 3d 61
     5522    call 0a050h                               ; e8 44 61
    54085523    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    54095524    mov ax, strict word 00011h                ; b8 11 00
     
    54215536    ; mov dword [es:bx+00eh], strict dword 008000001h ; 66 26 c7 47 0e 01 00 00 08
    54225537    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    5423     jmp short 03e5bh                          ; eb 09
     5538    jmp short 03f44h                          ; eb 09
    54245539    inc byte [bp-00eh]                        ; fe 46 f2
    54255540    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
    5426     jnbe short 03e92h                         ; 77 37
    5427     movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
    5428     imul di, di, strict byte 0001ch           ; 6b ff 1c
    5429     mov es, [bp-012h]                         ; 8e 46 ee
    5430     add di, word [bp-014h]                    ; 03 7e ec
     5541    jnbe short 03f7ah                         ; 77 36
     5542    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     5543    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     5544    les di, [bp-014h]                         ; c4 7e ec
     5545    add di, ax                                ; 01 c7
    54315546    movzx di, byte [es:di+022h]               ; 26 0f b6 7d 22
    54325547    add di, di                                ; 01 ff
     
    54445559    call word [word di+0006ah]                ; ff 95 6a 00
    54455560    test ax, ax                               ; 85 c0
    5446     jne short 03e52h                          ; 75 c0
     5561    jne short 03f3bh                          ; 75 c1
    54475562    test ax, ax                               ; 85 c0
    5448     je short 03e9ch                           ; 74 06
     5563    je short 03f84h                           ; 74 06
    54495564    mov ax, strict word 00003h                ; b8 03 00
    5450     jmp near 0417dh                           ; e9 e1 02
     5565    jmp near 04267h                           ; e9 e3 02
    54515566    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    5452     je short 03ea9h                           ; 74 06
     5567    je short 03f91h                           ; 74 06
    54535568    mov ax, strict word 00004h                ; b8 04 00
    5454     jmp near 0417dh                           ; e9 d4 02
     5569    jmp near 04267h                           ; e9 d6 02
    54555570    xor di, di                                ; 31 ff
    5456     jmp short 03eb3h                          ; eb 06
     5571    jmp short 03f9bh                          ; eb 06
    54575572    inc di                                    ; 47
    54585573    cmp di, strict byte 00005h                ; 83 ff 05
    5459     jnc short 03ec3h                          ; 73 10
     5574    jnc short 03fabh                          ; 73 10
    54605575    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    5461     cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
    5462     je short 03eadh                           ; 74 f0
     5576    cmp al, byte [di+00dbah]                  ; 3a 85 ba 0d
     5577    je short 03f95h                           ; 74 f0
    54635578    mov ax, strict word 00005h                ; b8 05 00
    5464     jmp near 0417dh                           ; e9 ba 02
     5579    jmp near 04267h                           ; e9 bc 02
    54655580    xor di, di                                ; 31 ff
    5466     jmp short 03ecdh                          ; eb 06
     5581    jmp short 03fb5h                          ; eb 06
    54675582    inc di                                    ; 47
    54685583    cmp di, strict byte 00017h                ; 83 ff 17
    5469     jnc short 03eddh                          ; 73 10
     5584    jnc short 03fc5h                          ; 73 10
    54705585    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    5471     cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
    5472     je short 03ec7h                           ; 74 f0
     5586    cmp al, byte [di+00dc0h]                  ; 3a 85 c0 0d
     5587    je short 03fafh                           ; 74 f0
    54735588    mov ax, strict word 00006h                ; b8 06 00
    5474     jmp near 0417dh                           ; e9 a0 02
     5589    jmp near 04267h                           ; e9 a2 02
    54755590    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    54765591    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    54845599    xchg ah, al                               ; 86 c4
    54855600    mov word [bp-01fh], ax                    ; 89 46 e1
    5486     movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
    5487     imul di, di, strict byte 0001ch           ; 6b ff 1c
    5488     mov es, [bp-012h]                         ; 8e 46 ee
    5489     add di, word [bp-014h]                    ; 03 7e ec
     5601    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     5602    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     5603    les di, [bp-014h]                         ; c4 7e ec
     5604    add di, ax                                ; 01 c7
    54905605    movzx di, byte [es:di+022h]               ; 26 0f b6 7d 22
    54915606    add di, di                                ; 01 ff
     
    55035618    call word [word di+0006ah]                ; ff 95 6a 00
    55045619    test ax, ax                               ; 85 c0
    5505     je short 03f3ah                           ; 74 06
     5620    je short 04021h                           ; 74 06
    55065621    mov ax, strict word 00007h                ; b8 07 00
    5507     jmp near 0417dh                           ; e9 43 02
     5622    jmp near 04267h                           ; e9 46 02
    55085623    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    5509     je short 03f47h                           ; 74 06
     5624    je short 0402eh                           ; 74 06
    55105625    mov ax, strict word 00008h                ; b8 08 00
    5511     jmp near 0417dh                           ; e9 36 02
     5626    jmp near 04267h                           ; e9 39 02
    55125627    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    5513     je short 03f54h                           ; 74 06
     5628    je short 0403bh                           ; 74 06
    55145629    mov ax, strict word 00009h                ; b8 09 00
    5515     jmp near 0417dh                           ; e9 29 02
     5630    jmp near 04267h                           ; e9 2c 02
    55165631    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    5517     je short 03f61h                           ; 74 06
     5632    je short 04048h                           ; 74 06
    55185633    mov ax, strict word 0000ah                ; b8 0a 00
    5519     jmp near 0417dh                           ; e9 1c 02
     5634    jmp near 04267h                           ; e9 1f 02
    55205635    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    5521     jne short 03f5bh                          ; 75 f3
     5636    jne short 04042h                          ; 75 f3
    55225637    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    5523     je short 03f75h                           ; 74 06
     5638    je short 0405ch                           ; 74 06
    55245639    mov ax, strict word 0000bh                ; b8 0b 00
    5525     jmp near 0417dh                           ; e9 08 02
     5640    jmp near 04267h                           ; e9 0b 02
    55265641    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    55275642    mov es, [bp-010h]                         ; 8e 46 f0
    55285643    mov byte [es:si+001h], al                 ; 26 88 44 01
    55295644    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    5530     jne short 03f8eh                          ; 75 07
     5645    jne short 04075h                          ; 75 07
    55315646    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    5532     jmp short 03fa1h                          ; eb 13
     5647    jmp short 04088h                          ; eb 13
    55335648    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    5534     jnc short 03f9ch                          ; 73 07
     5649    jnc short 04083h                          ; 73 07
    55355650    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    5536     jmp short 03fa1h                          ; eb 05
     5651    jmp short 04088h                          ; eb 05
    55375652    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    55385653    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
     
    55525667    mov word [bp-016h], ax                    ; 89 46 ea
    55535668    test ax, ax                               ; 85 c0
    5554     jne short 03fcfh                          ; 75 05
     5669    jne short 040b6h                          ; 75 05
    55555670    mov word [bp-016h], 007c0h                ; c7 46 ea c0 07
    55565671    mov ax, word [bp-016h]                    ; 8b 46 ea
     
    55615676    mov word [es:si+00eh], di                 ; 26 89 7c 0e
    55625677    test di, di                               ; 85 ff
    5563     je short 03ff1h                           ; 74 06
     5678    je short 040d8h                           ; 74 06
    55645679    cmp di, 00400h                            ; 81 ff 00 04
    5565     jbe short 03ff7h                          ; 76 06
     5680    jbe short 040deh                          ; 76 06
    55665681    mov ax, strict word 0000ch                ; b8 0c 00
    5567     jmp near 0417dh                           ; e9 86 01
     5682    jmp near 04267h                           ; e9 89 01
    55685683    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    55695684    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    55765691    mov word [bp-024h], ax                    ; 89 46 dc
    55775692    mov word [bp-022h], dx                    ; 89 56 de
    5578     lea dx, [di-001h]                         ; 8d 55 ff
    5579     shr dx, 002h                              ; c1 ea 02
    5580     inc dx                                    ; 42
    5581     mov ax, dx                                ; 89 d0
     5693    lea cx, [di-001h]                         ; 8d 4d ff
     5694    shr cx, 002h                              ; c1 e9 02
     5695    inc cx                                    ; 41
     5696    mov ax, cx                                ; 89 c8
    55825697    xchg ah, al                               ; 86 c4
    55835698    mov word [bp-01fh], ax                    ; 89 46 e1
    55845699    les bx, [bp-014h]                         ; c4 5e ec
    5585     mov word [es:bx+00eh], dx                 ; 26 89 57 0e
     5700    mov word [es:bx+00eh], cx                 ; 26 89 4f 0e
    55865701    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
    55875702    mov ax, di                                ; 89 f8
     
    56055720    sal ax, 1                                 ; d1 e0
    56065721    rcl di, 1                                 ; d1 d7
    5607     loop 04065h                               ; e2 fa
     5722    loop 0414ch                               ; e2 fa
    56085723    push di                                   ; 57
    56095724    push ax                                   ; 50
     
    56185733    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    56195734    test ax, ax                               ; 85 c0
    5620     je short 04095h                           ; 74 06
     5735    je short 0417ch                           ; 74 06
    56215736    mov ax, strict word 0000dh                ; b8 0d 00
    5622     jmp near 0417dh                           ; e9 e8 00
     5737    jmp near 04267h                           ; e9 eb 00
    56235738    mov es, [bp-010h]                         ; 8e 46 f0
    56245739    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    56255740    cmp AL, strict byte 002h                  ; 3c 02
    5626     jc short 040adh                           ; 72 0d
    5627     jbe short 040c5h                          ; 76 23
     5741    jc short 04194h                           ; 72 0d
     5742    jbe short 041ach                          ; 76 23
    56285743    cmp AL, strict byte 004h                  ; 3c 04
    5629     je short 040dbh                           ; 74 35
     5744    je short 041c2h                           ; 74 35
    56305745    cmp AL, strict byte 003h                  ; 3c 03
    5631     je short 040d0h                           ; 74 26
    5632     jmp near 04126h                           ; e9 79 00
     5746    je short 041b7h                           ; 74 26
     5747    jmp near 04210h                           ; e9 7c 00
    56335748    cmp AL, strict byte 001h                  ; 3c 01
    5634     jne short 04126h                          ; 75 75
     5749    jne short 04210h                          ; 75 78
    56355750    mov es, [bp-010h]                         ; 8e 46 f0
    56365751    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h
    56375752    ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00
    56385753    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    5639     jmp short 04126h                          ; eb 61
     5754    jmp short 04210h                          ; eb 64
    56405755    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h
    56415756    ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00
    5642     jmp short 040bdh                          ; eb ed
     5757    jmp short 041a4h                          ; eb ed
    56435758    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h
    56445759    ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00
    5645     jmp short 040bdh                          ; eb e2
     5760    jmp short 041a4h                          ; eb e2
    56465761    mov dx, 001c4h                            ; ba c4 01
    56475762    mov ax, word [bp-016h]                    ; 8b 46 ea
    5648     call 016b8h                               ; e8 d4 d5
     5763    call 01749h                               ; e8 7e d5
    56495764    and AL, strict byte 03fh                  ; 24 3f
    56505765    xor ah, ah                                ; 30 e4
     
    56535768    mov dx, 001c4h                            ; ba c4 01
    56545769    mov ax, word [bp-016h]                    ; 8b 46 ea
    5655     call 016b8h                               ; e8 c0 d5
     5770    call 01749h                               ; e8 6a d5
    56565771    movzx bx, al                              ; 0f b6 d8
     5772    and bl, 0c0h                              ; 80 e3 c0
    56575773    sal bx, 002h                              ; c1 e3 02
    56585774    mov dx, 001c5h                            ; ba c5 01
    56595775    mov ax, word [bp-016h]                    ; 8b 46 ea
    5660     call 016b8h                               ; e8 b1 d5
     5776    call 01749h                               ; e8 58 d5
    56615777    xor ah, ah                                ; 30 e4
    56625778    add ax, bx                                ; 01 d8
     
    56665782    mov dx, 001c3h                            ; ba c3 01
    56675783    mov ax, word [bp-016h]                    ; 8b 46 ea
    5668     call 016b8h                               ; e8 9c d5
     5784    call 01749h                               ; e8 43 d5
    56695785    xor ah, ah                                ; 30 e4
    56705786    inc ax                                    ; 40
     
    56735789    mov es, [bp-010h]                         ; 8e 46 f0
    56745790    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5675     je short 04164h                           ; 74 34
     5791    je short 0424eh                           ; 74 34
    56765792    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    5677     jne short 0414dh                          ; 75 16
     5793    jne short 04237h                          ; 75 16
    56785794    mov dx, strict word 00010h                ; ba 10 00
    56795795    mov ax, strict word 00040h                ; b8 40 00
    5680     call 016b8h                               ; e8 78 d5
     5796    call 01749h                               ; e8 1f d5
    56815797    or AL, strict byte 041h                   ; 0c 41
    56825798    movzx bx, al                              ; 0f b6 d8
    56835799    mov dx, strict word 00010h                ; ba 10 00
    56845800    mov ax, strict word 00040h                ; b8 40 00
    5685     jmp short 04161h                          ; eb 14
     5801    jmp short 0424bh                          ; eb 14
    56865802    mov dx, 00304h                            ; ba 04 03
    56875803    mov ax, word [bp-018h]                    ; 8b 46 e8
    5688     call 016b8h                               ; e8 62 d5
     5804    call 01749h                               ; e8 09 d5
    56895805    db  0feh, 0c0h
    56905806    ; inc al                                    ; fe c0
     
    56925808    mov dx, 00304h                            ; ba 04 03
    56935809    mov ax, word [bp-018h]                    ; 8b 46 e8
    5694     call 016c6h                               ; e8 62 d5
     5810    call 01757h                               ; e8 09 d5
    56955811    mov es, [bp-010h]                         ; 8e 46 f0
    56965812    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5697     je short 04172h                           ; 74 04
     5813    je short 0425ch                           ; 74 04
    56985814    mov byte [es:si], 001h                    ; 26 c6 04 01
    56995815    mov es, [bp-010h]                         ; 8e 46 f0
     
    57095825    retn                                      ; c3
    57105826    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5711     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 078h, 045h, 086h
    5712     db  042h, 0d0h, 042h, 0f8h, 042h, 0c5h, 042h, 0f8h, 042h, 0c5h, 042h, 0ceh, 044h, 0abh, 042h, 078h
    5713     db  045h, 078h, 045h, 0abh, 042h, 0abh, 042h, 0abh, 042h, 0abh, 042h, 0abh, 042h, 06fh, 045h, 0abh
    5714     db  042h, 078h, 045h, 078h, 045h, 078h, 045h, 078h, 045h, 078h, 045h, 078h, 045h, 078h, 045h, 078h
    5715     db  045h, 078h, 045h, 078h, 045h, 078h, 045h, 078h, 045h
    5716 _int13_cdemu:                                ; 0xf41e0 LB 0x434
     5827    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 062h, 046h, 070h
     5828    db  043h, 0bah, 043h, 0e2h, 043h, 0afh, 043h, 0e2h, 043h, 0afh, 043h, 0b8h, 045h, 095h, 043h, 062h
     5829    db  046h, 062h, 046h, 095h, 043h, 095h, 043h, 095h, 043h, 095h, 043h, 095h, 043h, 059h, 046h, 095h
     5830    db  043h, 062h, 046h, 062h, 046h, 062h, 046h, 062h, 046h, 062h, 046h, 062h, 046h, 062h, 046h, 062h
     5831    db  046h, 062h, 046h, 062h, 046h, 062h, 046h, 062h, 046h
     5832_int13_cdemu:                                ; 0xf42ca LB 0x434
    57175833    push bp                                   ; 55
    57185834    mov bp, sp                                ; 89 e5
     
    57225838    mov dx, strict word 0000eh                ; ba 0e 00
    57235839    mov ax, strict word 00040h                ; b8 40 00
    5724     call 016d4h                               ; e8 e3 d4
     5840    call 01765h                               ; e8 8a d4
    57255841    mov di, 00366h                            ; bf 66 03
    57265842    mov cx, ax                                ; 89 c1
     
    57385854    mov dx, strict word 00074h                ; ba 74 00
    57395855    mov ax, strict word 00040h                ; b8 40 00
    5740     call 016c6h                               ; e8 a6 d4
     5856    call 01757h                               ; e8 4d d4
    57415857    mov es, cx                                ; 8e c1
    57425858    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5743     je short 04236h                           ; 74 0e
     5859    je short 04320h                           ; 74 0e
    57445860    movzx dx, byte [es:di+002h]               ; 26 0f b6 55 02
    57455861    mov ax, word [bp+012h]                    ; 8b 46 12
    57465862    xor ah, ah                                ; 30 e4
    57475863    cmp dx, ax                                ; 39 c2
    5748     je short 0425fh                           ; 74 29
    5749     mov bx, 00da0h                            ; bb a0 0d
     5864    je short 04349h                           ; 74 29
     5865    mov bx, 00db2h                            ; bb b2 0d
    57505866    mov cx, ds                                ; 8c d9
    57515867    mov ax, strict word 00004h                ; b8 04 00
    5752     call 01999h                               ; e8 58 d7
     5868    call 01a2ah                               ; e8 ff d6
    57535869    mov ax, word [bp+012h]                    ; 8b 46 12
    57545870    xor ah, ah                                ; 30 e4
     
    57575873    shr ax, 008h                              ; c1 e8 08
    57585874    push ax                                   ; 50
    5759     push 0034ch                               ; 68 4c 03
    5760     push 00358h                               ; 68 58 03
     5875    push 0035eh                               ; 68 5e 03
     5876    push 0036ah                               ; 68 6a 03
    57615877    push strict byte 00004h                   ; 6a 04
    5762     call 019dah                               ; e8 81 d7
     5878    call 01a6bh                               ; e8 28 d7
    57635879    add sp, strict byte 0000ah                ; 83 c4 0a
    5764     jmp near 04598h                           ; e9 39 03
     5880    jmp near 04682h                           ; e9 39 03
    57655881    mov ax, word [bp+016h]                    ; 8b 46 16
    57665882    shr ax, 008h                              ; c1 e8 08
    57675883    cmp ax, strict word 00050h                ; 3d 50 00
    5768     jnbe near 04578h                          ; 0f 87 0c 03
     5884    jnbe near 04662h                          ; 0f 87 0c 03
    57695885    push CS                                   ; 0e
    57705886    pop ES                                    ; 07
    57715887    mov cx, strict word 0001eh                ; b9 1e 00
    5772     mov di, 04187h                            ; bf 87 41
     5888    mov di, 04271h                            ; bf 71 42
    57735889    repne scasb                               ; f2 ae
    57745890    sal cx, 1                                 ; d1 e1
    57755891    mov di, cx                                ; 89 cf
    5776     mov ax, word [cs:di+041a4h]               ; 2e 8b 85 a4 41
     5892    mov ax, word [cs:di+0428eh]               ; 2e 8b 85 8e 42
    57775893    mov bx, word [bp+016h]                    ; 8b 5e 16
    57785894    xor bh, bh                                ; 30 ff
     
    57855901    add bx, bx                                ; 01 db
    57865902    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
    5787     je near 042abh                            ; 0f 84 08 00
     5903    je near 04395h                            ; 0f 84 08 00
    57885904    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    57895905    call word [word bx+00076h]                ; ff 97 76 00
     
    57925908    mov dx, strict word 00074h                ; ba 74 00
    57935909    mov ax, strict word 00040h                ; b8 40 00
    5794     call 016c6h                               ; e8 0c d4
     5910    call 01757h                               ; e8 b3 d3
    57955911    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    57965912    lea sp, [bp-004h]                         ; 8d 66 fc
     
    58025918    xor ah, ah                                ; 30 e4
    58035919    or ah, 003h                               ; 80 cc 03
    5804     jmp near 045a0h                           ; e9 d0 02
     5920    jmp near 0468ah                           ; e9 d0 02
    58055921    mov dx, strict word 00074h                ; ba 74 00
    58065922    mov ax, strict word 00040h                ; b8 40 00
    5807     call 016b8h                               ; e8 df d3
     5923    call 01749h                               ; e8 86 d3
    58085924    mov cl, al                                ; 88 c1
    58095925    movzx ax, cl                              ; 0f b6 c1
     
    58145930    mov dx, strict word 00074h                ; ba 74 00
    58155931    mov ax, strict word 00040h                ; b8 40 00
    5816     call 016c6h                               ; e8 d5 d3
     5932    call 01757h                               ; e8 7c d3
    58175933    test cl, cl                               ; 84 c9
    5818     je short 042afh                           ; 74 ba
    5819     jmp near 045b4h                           ; e9 bc 02
     5934    je short 04399h                           ; 74 ba
     5935    jmp near 0469eh                           ; e9 bc 02
    58205936    mov es, [bp-008h]                         ; 8e 46 f8
    58215937    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    58415957    mov word [bp-00ah], cx                    ; 89 4e f6
    58425958    test cx, cx                               ; 85 c9
    5843     jne short 04345h                          ; 75 03
    5844     jmp near 042abh                           ; e9 66 ff
     5959    jne short 0442fh                          ; 75 03
     5960    jmp near 04395h                           ; e9 66 ff
    58455961    cmp di, word [bp-010h]                    ; 3b 7e f0
    5846     jc near 04598h                            ; 0f 82 4c 02
     5962    jc near 04682h                            ; 0f 82 4c 02
    58475963    cmp ax, dx                                ; 39 d0
    5848     jnc near 04598h                           ; 0f 83 46 02
     5964    jnc near 04682h                           ; 0f 83 46 02
    58495965    cmp si, bx                                ; 39 de
    5850     jnc near 04598h                           ; 0f 83 40 02
     5966    jnc near 04682h                           ; 0f 83 40 02
    58515967    mov dx, word [bp+016h]                    ; 8b 56 16
    58525968    shr dx, 008h                              ; c1 ea 08
    58535969    cmp dx, strict byte 00004h                ; 83 fa 04
    5854     jne short 04366h                          ; 75 03
    5855     jmp near 042abh                           ; e9 45 ff
     5970    jne short 04450h                          ; 75 03
     5971    jmp near 04395h                           ; e9 45 ff
    58565972    mov dx, word [bp+010h]                    ; 8b 56 10
    58575973    shr dx, 004h                              ; c1 ea 04
     
    58645980    xor dl, dl                                ; 30 d2
    58655981    xor cx, cx                                ; 31 c9
    5866     call 09ec0h                               ; e8 3c 5b
     5982    call 09fb0h                               ; e8 42 5b
    58675983    xor bx, bx                                ; 31 db
    58685984    add ax, si                                ; 01 f0
     
    58705986    mov bx, di                                ; 89 fb
    58715987    xor cx, cx                                ; 31 c9
    5872     call 09ec0h                               ; e8 2f 5b
     5988    call 09fb0h                               ; e8 35 5b
    58735989    mov bx, ax                                ; 89 c3
    58745990    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    59056021    mov dx, ss                                ; 8c d2
    59066022    lea ax, [bp-02eh]                         ; 8d 46 d2
    5907     call 09f60h                               ; e8 78 5b
     6023    call 0a050h                               ; e8 7e 5b
    59086024    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    59096025    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    59536069    sal si, 1                                 ; d1 e6
    59546070    rcl di, 1                                 ; d1 d7
    5955     loop 04468h                               ; e2 fa
     6071    loop 04552h                               ; e2 fa
    59566072    push di                                   ; 57
    59576073    push si                                   ; 56
     
    59686084    ; mov dword [es:bx+01eh], strict dword 000000000h ; 66 26 c7 47 1e 00 00 00 00
    59696085    test al, al                               ; 84 c0
    5970     je near 042abh                            ; 0f 84 13 fe
    5971     mov bx, 00da0h                            ; bb a0 0d
     6086    je near 04395h                            ; 0f 84 13 fe
     6087    mov bx, 00db2h                            ; bb b2 0d
    59726088    mov cx, ds                                ; 8c d9
    59736089    mov ax, strict word 00004h                ; b8 04 00
    5974     call 01999h                               ; e8 f6 d4
     6090    call 01a2ah                               ; e8 9d d4
    59756091    movzx ax, dl                              ; 0f b6 c2
    59766092    push ax                                   ; 50
     
    59786094    shr ax, 008h                              ; c1 e8 08
    59796095    push ax                                   ; 50
    5980     push 0034ch                               ; 68 4c 03
    5981     push 0038eh                               ; 68 8e 03
     6096    push 0035eh                               ; 68 5e 03
     6097    push 003a0h                               ; 68 a0 03
    59826098    push strict byte 00004h                   ; 6a 04
    5983     call 019dah                               ; e8 21 d5
     6099    call 01a6bh                               ; e8 c8 d4
    59846100    add sp, strict byte 0000ah                ; 83 c4 0a
    59856101    mov ax, word [bp+016h]                    ; 8b 46 16
     
    59886104    mov word [bp+016h], ax                    ; 89 46 16
    59896105    mov byte [bp+016h], 000h                  ; c6 46 16 00
    5990     jmp near 045a3h                           ; e9 d5 00
     6106    jmp near 0468dh                           ; e9 d5 00
    59916107    mov es, [bp-008h]                         ; 8e 46 f8
    59926108    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    60276143    mov word [bp+010h], ax                    ; 89 46 10
    60286144    cmp dl, 003h                              ; 80 fa 03
    6029     je short 04552h                           ; 74 1a
     6145    je short 0463ch                           ; 74 1a
    60306146    cmp dl, 002h                              ; 80 fa 02
    6031     je short 0454eh                           ; 74 11
     6147    je short 04638h                           ; 74 11
    60326148    cmp dl, 001h                              ; 80 fa 01
    6033     jne short 04556h                          ; 75 14
     6149    jne short 04640h                          ; 75 14
    60346150    mov ax, word [bp+010h]                    ; 8b 46 10
    60356151    xor al, al                                ; 30 c0
    60366152    or AL, strict byte 002h                   ; 0c 02
    60376153    mov word [bp+010h], ax                    ; 89 46 10
    6038     jmp short 04556h                          ; eb 08
     6154    jmp short 04640h                          ; eb 08
    60396155    or AL, strict byte 004h                   ; 0c 04
    6040     jmp short 04549h                          ; eb f7
     6156    jmp short 04633h                          ; eb f7
    60416157    or AL, strict byte 005h                   ; 0c 05
    6042     jmp short 04549h                          ; eb f3
     6158    jmp short 04633h                          ; eb f3
    60436159    mov es, [bp-008h]                         ; 8e 46 f8
    60446160    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    6045     jnc near 042abh                           ; 0f 83 49 fd
     6161    jnc near 04395h                           ; 0f 83 49 fd
    60466162    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    60476163    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    6048     jmp near 042abh                           ; e9 3c fd
     6164    jmp near 04395h                           ; e9 3c fd
    60496165    or bh, 003h                               ; 80 cf 03
    60506166    mov word [bp+016h], bx                    ; 89 5e 16
    6051     jmp near 042afh                           ; e9 37 fd
    6052     mov bx, 00da0h                            ; bb a0 0d
     6167    jmp near 04399h                           ; e9 37 fd
     6168    mov bx, 00db2h                            ; bb b2 0d
    60536169    mov cx, ds                                ; 8c d9
    60546170    mov ax, strict word 00004h                ; b8 04 00
    6055     call 01999h                               ; e8 16 d4
     6171    call 01a2ah                               ; e8 bd d3
    60566172    mov ax, word [bp+016h]                    ; 8b 46 16
    60576173    shr ax, 008h                              ; c1 e8 08
    60586174    push ax                                   ; 50
    6059     push 0034ch                               ; 68 4c 03
    6060     push 003afh                               ; 68 af 03
     6175    push 0035eh                               ; 68 5e 03
     6176    push 003c1h                               ; 68 c1 03
    60616177    push strict byte 00004h                   ; 6a 04
    6062     call 019dah                               ; e8 45 d4
     6178    call 01a6bh                               ; e8 ec d3
    60636179    add sp, strict byte 00008h                ; 83 c4 08
    60646180    mov ax, word [bp+016h]                    ; 8b 46 16
     
    60716187    mov dx, strict word 00074h                ; ba 74 00
    60726188    mov ax, strict word 00040h                ; b8 40 00
    6073     call 016c6h                               ; e8 12 d1
     6189    call 01757h                               ; e8 b9 d0
    60746190    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    6075     jmp near 042beh                           ; e9 03 fd
     6191    jmp near 043a8h                           ; e9 03 fd
    60766192    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    6077     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 059h, 04bh, 0d5h
    6078     db  048h, 0c1h, 046h, 059h, 04bh, 0b6h, 046h, 059h, 04bh, 0b6h, 046h, 059h, 04bh, 0d5h, 048h, 059h
    6079     db  04bh, 059h, 04bh, 0d5h, 048h, 0d5h, 048h, 0d5h, 048h, 0d5h, 048h, 0d5h, 048h, 0ebh, 046h, 0d5h
    6080     db  048h, 059h, 04bh, 0f4h, 046h, 007h, 047h, 0b6h, 046h, 007h, 047h, 035h, 048h, 0efh, 048h, 007h
    6081     db  047h, 016h, 049h, 012h, 04bh, 01ah, 04bh, 059h, 04bh
    6082 _int13_cdrom:                                ; 0xf4614 LB 0x562
     6193    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 043h, 04ch, 0bfh
     6194    db  049h, 0abh, 047h, 043h, 04ch, 0a0h, 047h, 043h, 04ch, 0a0h, 047h, 043h, 04ch, 0bfh, 049h, 043h
     6195    db  04ch, 043h, 04ch, 0bfh, 049h, 0bfh, 049h, 0bfh, 049h, 0bfh, 049h, 0bfh, 049h, 0d5h, 047h, 0bfh
     6196    db  049h, 043h, 04ch, 0deh, 047h, 0f1h, 047h, 0a0h, 047h, 0f1h, 047h, 01fh, 049h, 0d9h, 049h, 0f1h
     6197    db  047h, 000h, 04ah, 0fch, 04bh, 004h, 04ch, 043h, 04ch
     6198_int13_cdrom:                                ; 0xf46fe LB 0x562
    60836199    push bp                                   ; 55
    60846200    mov bp, sp                                ; 89 e5
     
    60886204    mov dx, strict word 0000eh                ; ba 0e 00
    60896205    mov ax, strict word 00040h                ; b8 40 00
    6090     call 016d4h                               ; e8 af d0
     6206    call 01765h                               ; e8 56 d0
    60916207    mov word [bp-01ah], ax                    ; 89 46 e6
    60926208    mov si, 00122h                            ; be 22 01
     
    60956211    mov dx, strict word 00074h                ; ba 74 00
    60966212    mov ax, strict word 00040h                ; b8 40 00
    6097     call 016c6h                               ; e8 8d d0
     6213    call 01757h                               ; e8 34 d0
    60986214    mov ax, word [bp+010h]                    ; 8b 46 10
    60996215    xor ah, ah                                ; 30 e4
    61006216    cmp ax, 000e0h                            ; 3d e0 00
    6101     jc short 04648h                           ; 72 05
     6217    jc short 04732h                           ; 72 05
    61026218    cmp ax, 000f0h                            ; 3d f0 00
    6103     jc short 04666h                           ; 72 1e
     6219    jc short 04750h                           ; 72 1e
    61046220    mov ax, word [bp+010h]                    ; 8b 46 10
    61056221    xor ah, ah                                ; 30 e4
     
    61086224    shr ax, 008h                              ; c1 e8 08
    61096225    push ax                                   ; 50
    6110     push 003dfh                               ; 68 df 03
    6111     push 003ebh                               ; 68 eb 03
     6226    push 003f1h                               ; 68 f1 03
     6227    push 003fdh                               ; 68 fd 03
    61126228    push strict byte 00004h                   ; 6a 04
    6113     call 019dah                               ; e8 7a d3
     6229    call 01a6bh                               ; e8 21 d3
    61146230    add sp, strict byte 0000ah                ; 83 c4 0a
    6115     jmp near 04b36h                           ; e9 d0 04
     6231    jmp near 04c20h                           ; e9 d0 04
    61166232    mov ax, word [bp+010h]                    ; 8b 46 10
    61176233    xor ah, ah                                ; 30 e4
     
    61226238    mov byte [bp-008h], dl                    ; 88 56 f8
    61236239    cmp dl, 010h                              ; 80 fa 10
    6124     jc short 0468fh                           ; 72 10
     6240    jc short 04779h                           ; 72 10
    61256241    push ax                                   ; 50
    61266242    mov ax, word [bp+018h]                    ; 8b 46 18
    61276243    shr ax, 008h                              ; c1 e8 08
    61286244    push ax                                   ; 50
    6129     push 003dfh                               ; 68 df 03
    6130     push 00416h                               ; 68 16 04
    6131     jmp short 0465bh                          ; eb cc
     6245    push 003f1h                               ; 68 f1 03
     6246    push 00428h                               ; 68 28 04
     6247    jmp short 04745h                          ; eb cc
    61326248    mov ax, word [bp+018h]                    ; 8b 46 18
    61336249    shr ax, 008h                              ; c1 e8 08
    61346250    cmp ax, strict word 00050h                ; 3d 50 00
    6135     jnbe near 04b59h                          ; 0f 87 bd 04
     6251    jnbe near 04c43h                          ; 0f 87 bd 04
    61366252    push CS                                   ; 0e
    61376253    pop ES                                    ; 07
    61386254    mov cx, strict word 0001eh                ; b9 1e 00
    6139     mov di, 045bbh                            ; bf bb 45
     6255    mov di, 046a5h                            ; bf a5 46
    61406256    repne scasb                               ; f2 ae
    61416257    sal cx, 1                                 ; d1 e1
    61426258    mov di, cx                                ; 89 cf
    6143     mov ax, word [cs:di+045d8h]               ; 2e 8b 85 d8 45
     6259    mov ax, word [cs:di+046c2h]               ; 2e 8b 85 c2 46
    61446260    mov bx, word [bp+018h]                    ; 8b 5e 18
    61456261    xor bh, bh                                ; 30 ff
     
    61486264    xor ah, ah                                ; 30 e4
    61496265    or ah, 003h                               ; 80 cc 03
    6150     jmp near 04b3eh                           ; e9 7d 04
     6266    jmp near 04c28h                           ; e9 7d 04
    61516267    mov dx, strict word 00074h                ; ba 74 00
    61526268    mov ax, strict word 00040h                ; b8 40 00
    6153     call 016b8h                               ; e8 ee cf
     6269    call 01749h                               ; e8 95 cf
    61546270    mov cl, al                                ; 88 c1
    61556271    movzx ax, cl                              ; 0f b6 c1
     
    61606276    mov dx, strict word 00074h                ; ba 74 00
    61616277    mov ax, strict word 00040h                ; b8 40 00
    6162     call 016c6h                               ; e8 e4 cf
     6278    call 01757h                               ; e8 8b cf
    61636279    test cl, cl                               ; 84 c9
    6164     je near 048d9h                            ; 0f 84 f1 01
    6165     jmp near 04b52h                           ; e9 67 04
     6280    je near 049c3h                            ; 0f 84 f1 01
     6281    jmp near 04c3ch                           ; e9 67 04
    61666282    or bh, 002h                               ; 80 cf 02
    61676283    mov word [bp+018h], bx                    ; 89 5e 18
    6168     jmp near 04b41h                           ; e9 4d 04
     6284    jmp near 04c2bh                           ; e9 4d 04
    61696285    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    61706286    or bh, 030h                               ; 80 cf 30
    61716287    mov word [bp+018h], bx                    ; 89 5e 18
    61726288    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    6173     jmp near 048d9h                           ; e9 d2 01
     6289    jmp near 049c3h                           ; e9 d2 01
    61746290    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    61756291    mov es, [bp+006h]                         ; 8e 46 06
     
    61866302    mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
    61876303    or di, ax                                 ; 09 c7
    6188     je short 0474fh                           ; 74 18
     6304    je short 04839h                           ; 74 18
    61896305    mov ax, word [bp+018h]                    ; 8b 46 18
    61906306    shr ax, 008h                              ; c1 e8 08
    61916307    push ax                                   ; 50
    6192     push 003dfh                               ; 68 df 03
    6193     push 00448h                               ; 68 48 04
     6308    push 003f1h                               ; 68 f1 03
     6309    push 0045ah                               ; 68 5a 04
    61946310    push strict byte 00007h                   ; 6a 07
    6195     call 019dah                               ; e8 91 d2
     6311    call 01a6bh                               ; e8 38 d2
    61966312    add sp, strict byte 00008h                ; 83 c4 08
    6197     jmp near 04b36h                           ; e9 e7 03
     6313    jmp near 04c20h                           ; e9 e7 03
    61986314    les bx, [bp-014h]                         ; c4 5e ec
    61996315    mov ax, word [es:bx+008h]                 ; 26 8b 47 08
     
    62056321    mov word [bp-016h], ax                    ; 89 46 ea
    62066322    cmp ax, strict word 00044h                ; 3d 44 00
    6207     je near 048d5h                            ; 0f 84 66 01
     6323    je near 049bfh                            ; 0f 84 66 01
    62086324    cmp ax, strict word 00047h                ; 3d 47 00
    6209     je near 048d5h                            ; 0f 84 5f 01
     6325    je near 049bfh                            ; 0f 84 5f 01
    62106326    mov cx, strict word 0000ch                ; b9 0c 00
    62116327    xor bx, bx                                ; 31 db
    62126328    mov dx, ss                                ; 8c d2
    62136329    lea ax, [bp-02ch]                         ; 8d 46 d4
    6214     call 09f60h                               ; e8 dd 57
     6330    call 0a050h                               ; e8 e3 57
    62156331    mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
    62166332    mov ax, word [bp-018h]                    ; 8b 46 e8
     
    62406356    sal ax, 1                                 ; d1 e0
    62416357    rcl bx, 1                                 ; d1 d3
    6242     loop 047cdh                               ; e2 fa
     6358    loop 048b7h                               ; e2 fa
    62436359    push bx                                   ; 53
    62446360    push ax                                   ; 50
     
    62566372    shr di, 1                                 ; d1 ef
    62576373    rcr ax, 1                                 ; d1 d8
    6258     loop 047f7h                               ; e2 fa
     6374    loop 048e1h                               ; e2 fa
    62596375    les bx, [bp-014h]                         ; c4 5e ec
    62606376    mov word [es:bx+002h], ax                 ; 26 89 47 02
    62616377    test dl, dl                               ; 84 d2
    6262     je near 048d5h                            ; 0f 84 cb 00
    6263     mov bx, 00da0h                            ; bb a0 0d
     6378    je near 049bfh                            ; 0f 84 cb 00
     6379    mov bx, 00db2h                            ; bb b2 0d
    62646380    mov cx, ds                                ; 8c d9
    62656381    mov ax, strict word 00004h                ; b8 04 00
    6266     call 01999h                               ; e8 84 d1
     6382    call 01a2ah                               ; e8 2b d1
    62676383    movzx ax, dl                              ; 0f b6 c2
    62686384    push ax                                   ; 50
    62696385    push word [bp-016h]                       ; ff 76 ea
    6270     push 003dfh                               ; 68 df 03
    6271     push 00471h                               ; 68 71 04
     6386    push 003f1h                               ; 68 f1 03
     6387    push 00483h                               ; 68 83 04
    62726388    push strict byte 00004h                   ; 6a 04
    6273     call 019dah                               ; e8 b3 d1
     6389    call 01a6bh                               ; e8 5a d1
    62746390    add sp, strict byte 0000ah                ; 83 c4 0a
    62756391    mov ax, word [bp+018h]                    ; 8b 46 18
    62766392    xor ah, ah                                ; 30 e4
    62776393    or ah, 00ch                               ; 80 cc 0c
    6278     jmp near 04b3eh                           ; e9 09 03
     6394    jmp near 04c28h                           ; e9 09 03
    62796395    cmp bx, strict byte 00002h                ; 83 fb 02
    6280     jnbe near 04b36h                          ; 0f 87 fa 02
     6396    jnbe near 04c20h                          ; 0f 87 fa 02
    62816397    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    62826398    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    62866402    mov al, byte [es:di+025h]                 ; 26 8a 45 25
    62876403    cmp bx, strict byte 00002h                ; 83 fb 02
    6288     je short 048c6h                           ; 74 73
     6404    je short 049b0h                           ; 74 73
    62896405    cmp bx, strict byte 00001h                ; 83 fb 01
    6290     je short 04893h                           ; 74 3b
     6406    je short 0497dh                           ; 74 3b
    62916407    test bx, bx                               ; 85 db
    6292     jne near 048d5h                           ; 0f 85 77 00
     6408    jne near 049bfh                           ; 0f 85 77 00
    62936409    cmp AL, strict byte 0ffh                  ; 3c ff
    6294     jne short 04874h                          ; 75 12
     6410    jne short 0495eh                          ; 75 12
    62956411    mov ax, word [bp+018h]                    ; 8b 46 18
    62966412    xor ah, ah                                ; 30 e4
     
    62996415    xor al, al                                ; 30 c0
    63006416    or AL, strict byte 001h                   ; 0c 01
    6301     jmp near 04b3eh                           ; e9 ca 02
     6417    jmp near 04c28h                           ; e9 ca 02
    63026418    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    63036419    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
     
    63116427    or AL, strict byte 001h                   ; 0c 01
    63126428    mov word [bp+018h], ax                    ; 89 46 18
    6313     jmp near 048d5h                           ; e9 42 00
     6429    jmp near 049bfh                           ; e9 42 00
    63146430    test al, al                               ; 84 c0
    6315     jne short 048a3h                          ; 75 0c
     6431    jne short 0498dh                          ; 75 0c
    63166432    or bh, 0b0h                               ; 80 cf b0
    63176433    mov word [bp+018h], bx                    ; 89 5e 18
    63186434    mov byte [bp+018h], al                    ; 88 46 18
    6319     jmp near 04b41h                           ; e9 9e 02
     6435    jmp near 04c2bh                           ; e9 9e 02
    63206436    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    63216437    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
     
    63326448    xor al, al                                ; 30 c0
    63336449    or ax, dx                                 ; 09 d0
    6334     jmp short 0488dh                          ; eb c7
     6450    jmp short 04977h                          ; eb c7
    63356451    test al, al                               ; 84 c0
    63366452    db  00fh, 095h, 0c0h
     
    63446460    mov dx, strict word 00074h                ; ba 74 00
    63456461    mov ax, strict word 00040h                ; b8 40 00
    6346     call 016c6h                               ; e8 e2 cd
     6462    call 01757h                               ; e8 89 cd
    63476463    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    63486464    lea sp, [bp-004h]                         ; 8d 66 fc
     
    63576473    mov al, byte [es:si+025h]                 ; 26 8a 44 25
    63586474    test al, al                               ; 84 c0
    6359     je short 04909h                           ; 74 06
     6475    je short 049f3h                           ; 74 06
    63606476    or bh, 0b1h                               ; 80 cf b1
    6361     jmp near 046eeh                           ; e9 e5 fd
    6362     je short 048d5h                           ; 74 ca
     6477    jmp near 047d8h                           ; e9 e5 fd
     6478    je short 049bfh                           ; 74 ca
    63636479    mov ax, word [bp+018h]                    ; 8b 46 18
    63646480    xor ah, ah                                ; 30 e4
    63656481    or ah, 0b1h                               ; 80 cc b1
    6366     jmp near 04b3eh                           ; e9 28 02
     6482    jmp near 04c28h                           ; e9 28 02
    63676483    mov dx, word [bp+00ch]                    ; 8b 56 0c
    63686484    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    63746490    mov word [bp-00eh], ax                    ; 89 46 f2
    63756491    cmp ax, strict word 0001ah                ; 3d 1a 00
    6376     jc near 04b36h                            ; 0f 82 04 02
    6377     jc short 04983h                           ; 72 4f
     6492    jc near 04c20h                            ; 0f 82 04 02
     6493    jc short 04a6dh                           ; 72 4f
    63786494    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    63796495    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    63986514    ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff
    63996515    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    6400     jc near 04a5ah                            ; 0f 82 cf 00
     6516    jc near 04b44h                            ; 0f 82 cf 00
    64016517    mov es, [bp-00ah]                         ; 8e 46 f6
    64026518    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    64506566    xor cl, cl                                ; 30 c9
    64516567    xor ch, ch                                ; 30 ed
    6452     jmp short 04a3dh                          ; eb 05
     6568    jmp short 04b27h                          ; eb 05
    64536569    cmp ch, 00fh                              ; 80 fd 0f
    6454     jnc short 04a50h                          ; 73 13
     6570    jnc short 04b3ah                          ; 73 13
    64556571    movzx dx, ch                              ; 0f b6 d5
    64566572    add dx, 00356h                            ; 81 c2 56 03
    64576573    mov ax, word [bp-01ah]                    ; 8b 46 e6
    6458     call 016b8h                               ; e8 6e cc
     6574    call 01749h                               ; e8 15 cc
    64596575    add cl, al                                ; 00 c1
    64606576    db  0feh, 0c5h
    64616577    ; inc ch                                    ; fe c5
    6462     jmp short 04a38h                          ; eb e8
     6578    jmp short 04b22h                          ; eb e8
    64636579    neg cl                                    ; f6 d9
    64646580    mov es, [bp-00ch]                         ; 8e 46 f4
    64656581    mov byte [es:si+00243h], cl               ; 26 88 8c 43 02
    64666582    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    6467     jc near 048d5h                            ; 0f 82 73 fe
     6583    jc near 049bfh                            ; 0f 82 73 fe
    64686584    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    64696585    cwd                                       ; 99
     
    64836599    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    64846600    test al, al                               ; 84 c0
    6485     jne short 04aa3h                          ; 75 09
     6601    jne short 04b8dh                          ; 75 09
    64866602    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    64876603    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
     
    64926608    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    64936609    test al, al                               ; 84 c0
    6494     jne short 04acfh                          ; 75 13
     6610    jne short 04bb9h                          ; 75 13
    64956611    mov word [es:bx+030h], dx                 ; 26 89 57 30
    64966612    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     
    65076623    xor al, al                                ; 30 c0
    65086624    mov AH, strict byte 01eh                  ; b4 1e
    6509     jmp short 04af7h                          ; eb 05
     6625    jmp short 04be1h                          ; eb 05
    65106626    cmp ah, 040h                              ; 80 fc 40
    6511     jnc short 04b06h                          ; 73 0f
     6627    jnc short 04bf0h                          ; 73 0f
    65126628    movzx si, ah                              ; 0f b6 f4
    65136629    mov es, [bp-00ah]                         ; 8e 46 f6
     
    65166632    db  0feh, 0c4h
    65176633    ; inc ah                                    ; fe c4
    6518     jmp short 04af2h                          ; eb ec
     6634    jmp short 04bdch                          ; eb ec
    65196635    neg al                                    ; f6 d8
    65206636    mov es, [bp-00ah]                         ; 8e 46 f6
    65216637    mov byte [es:bx+041h], al                 ; 26 88 47 41
    6522     jmp near 048d5h                           ; e9 c3 fd
     6638    jmp near 049bfh                           ; e9 c3 fd
    65236639    or bh, 006h                               ; 80 cf 06
    65246640    mov word [bp+018h], bx                    ; 89 5e 18
    6525     jmp short 04b52h                          ; eb 38
     6641    jmp short 04c3ch                          ; eb 38
    65266642    cmp bx, strict byte 00006h                ; 83 fb 06
    6527     je near 048d5h                            ; 0f 84 b4 fd
     6643    je near 049bfh                            ; 0f 84 b4 fd
    65286644    cmp bx, strict byte 00001h                ; 83 fb 01
    6529     jc short 04b36h                           ; 72 10
    6530     jbe near 048d5h                           ; 0f 86 ab fd
     6645    jc short 04c20h                           ; 72 10
     6646    jbe near 049bfh                           ; 0f 86 ab fd
    65316647    cmp bx, strict byte 00003h                ; 83 fb 03
    6532     jc short 04b36h                           ; 72 07
     6648    jc short 04c20h                           ; 72 07
    65336649    cmp bx, strict byte 00004h                ; 83 fb 04
    6534     jbe near 048d5h                           ; 0f 86 9f fd
     6650    jbe near 049bfh                           ; 0f 86 9f fd
    65356651    mov ax, word [bp+018h]                    ; 8b 46 18
    65366652    xor ah, ah                                ; 30 e4
     
    65426658    mov dx, strict word 00074h                ; ba 74 00
    65436659    mov ax, strict word 00040h                ; b8 40 00
    6544     call 016c6h                               ; e8 74 cb
     6660    call 01757h                               ; e8 1b cb
    65456661    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    6546     jmp near 048e8h                           ; e9 8f fd
    6547     mov bx, 00da0h                            ; bb a0 0d
     6662    jmp near 049d2h                           ; e9 8f fd
     6663    mov bx, 00db2h                            ; bb b2 0d
    65486664    mov cx, ds                                ; 8c d9
    65496665    mov ax, strict word 00004h                ; b8 04 00
    6550     call 01999h                               ; e8 35 ce
     6666    call 01a2ah                               ; e8 dc cd
    65516667    mov ax, word [bp+018h]                    ; 8b 46 18
    65526668    shr ax, 008h                              ; c1 e8 08
    65536669    push ax                                   ; 50
    6554     push 003dfh                               ; 68 df 03
    6555     push 00333h                               ; 68 33 03
     6670    push 003f1h                               ; 68 f1 03
     6671    push 00345h                               ; 68 45 03
    65566672    push strict byte 00004h                   ; 6a 04
    6557     jmp near 04746h                           ; e9 d0 fb
    6558 print_boot_device_:                          ; 0xf4b76 LB 0x4b
     6673    jmp near 04830h                           ; e9 d0 fb
     6674print_boot_device_:                          ; 0xf4c60 LB 0x4b
    65596675    push bp                                   ; 55
    65606676    mov bp, sp                                ; 89 e5
    65616677    push cx                                   ; 51
    65626678    test al, al                               ; 84 c0
    6563     je short 04b83h                           ; 74 05
     6679    je short 04c6dh                           ; 74 05
    65646680    mov dx, strict word 00002h                ; ba 02 00
    6565     jmp short 04b9dh                          ; eb 1a
     6681    jmp short 04c87h                          ; eb 1a
    65666682    test dl, dl                               ; 84 d2
    6567     je short 04b8ch                           ; 74 05
     6683    je short 04c76h                           ; 74 05
    65686684    mov dx, strict word 00003h                ; ba 03 00
    6569     jmp short 04b9dh                          ; eb 11
     6685    jmp short 04c87h                          ; eb 11
    65706686    test bl, 080h                             ; f6 c3 80
    6571     jne short 04b95h                          ; 75 04
     6687    jne short 04c7fh                          ; 75 04
    65726688    xor dh, dh                                ; 30 f6
    6573     jmp short 04b9dh                          ; eb 08
     6689    jmp short 04c87h                          ; eb 08
    65746690    test bl, 080h                             ; f6 c3 80
    6575     je short 04bbbh                           ; 74 21
     6691    je short 04ca5h                           ; 74 21
    65766692    mov dx, strict word 00001h                ; ba 01 00
    6577     mov bx, 00da0h                            ; bb a0 0d
     6693    mov bx, 00db2h                            ; bb b2 0d
    65786694    mov cx, ds                                ; 8c d9
    65796695    mov ax, strict word 00004h                ; b8 04 00
    6580     call 01999h                               ; e8 f1 cd
     6696    call 01a2ah                               ; e8 98 cd
    65816697    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    6582     add dx, 00dc6h                            ; 81 c2 c6 0d
     6698    add dx, 00dd8h                            ; 81 c2 d8 0d
    65836699    push dx                                   ; 52
    6584     push 00494h                               ; 68 94 04
     6700    push 004a6h                               ; 68 a6 04
    65856701    push strict byte 00004h                   ; 6a 04
    6586     call 019dah                               ; e8 22 ce
     6702    call 01a6bh                               ; e8 c9 cd
    65876703    add sp, strict byte 00006h                ; 83 c4 06
    65886704    lea sp, [bp-002h]                         ; 8d 66 fe
     
    65906706    pop bp                                    ; 5d
    65916707    retn                                      ; c3
    6592 print_boot_failure_:                         ; 0xf4bc1 LB 0x93
     6708print_boot_failure_:                         ; 0xf4cab LB 0x93
    65936709    push bp                                   ; 55
    65946710    mov bp, sp                                ; 89 e5
     
    65996715    movzx si, ah                              ; 0f b6 f4
    66006716    test al, al                               ; 84 c0
    6601     je short 04beeh                           ; 74 1b
    6602     mov bx, 00da0h                            ; bb a0 0d
     6717    je short 04cd8h                           ; 74 1b
     6718    mov bx, 00db2h                            ; bb b2 0d
    66036719    mov cx, ds                                ; 8c d9
    66046720    mov ax, strict word 00004h                ; b8 04 00
    6605     call 01999h                               ; e8 bb cd
    6606     push 00ddah                               ; 68 da 0d
    6607     push 004a8h                               ; 68 a8 04
     6721    call 01a2ah                               ; e8 62 cd
     6722    push 00dech                               ; 68 ec 0d
     6723    push 004bah                               ; 68 ba 04
    66086724    push strict byte 00004h                   ; 6a 04
    6609     call 019dah                               ; e8 f1 cd
     6725    call 01a6bh                               ; e8 98 cd
    66106726    add sp, strict byte 00006h                ; 83 c4 06
    6611     jmp short 04c32h                          ; eb 44
     6727    jmp short 04d1ch                          ; eb 44
    66126728    test dl, dl                               ; 84 d2
    6613     je short 04c02h                           ; 74 10
    6614     mov bx, 00da0h                            ; bb a0 0d
     6729    je short 04cech                           ; 74 10
     6730    mov bx, 00db2h                            ; bb b2 0d
    66156731    mov cx, ds                                ; 8c d9
    66166732    mov ax, strict word 00004h                ; b8 04 00
    6617     call 01999h                               ; e8 9c cd
    6618     push 00de4h                               ; 68 e4 0d
    6619     jmp short 04be1h                          ; eb df
     6733    call 01a2ah                               ; e8 43 cd
     6734    push 00df6h                               ; 68 f6 0d
     6735    jmp short 04ccbh                          ; eb df
    66206736    test bl, 080h                             ; f6 c3 80
    6621     je short 04c18h                           ; 74 11
    6622     mov bx, 00da0h                            ; bb a0 0d
     6737    je short 04d02h                           ; 74 11
     6738    mov bx, 00db2h                            ; bb b2 0d
    66236739    mov cx, ds                                ; 8c d9
    66246740    mov ax, strict word 00004h                ; b8 04 00
    6625     call 01999h                               ; e8 87 cd
     6741    call 01a2ah                               ; e8 2e cd
    66266742    push si                                   ; 56
    6627     push 00dd0h                               ; 68 d0 0d
    6628     jmp short 04c27h                          ; eb 0f
    6629     mov bx, 00da0h                            ; bb a0 0d
     6743    push 00de2h                               ; 68 e2 0d
     6744    jmp short 04d11h                          ; eb 0f
     6745    mov bx, 00db2h                            ; bb b2 0d
    66306746    mov cx, ds                                ; 8c d9
    66316747    mov ax, strict word 00004h                ; b8 04 00
    6632     call 01999h                               ; e8 76 cd
     6748    call 01a2ah                               ; e8 1d cd
    66336749    push si                                   ; 56
    6634     push 00dc6h                               ; 68 c6 0d
    6635     push 004bdh                               ; 68 bd 04
     6750    push 00dd8h                               ; 68 d8 0d
     6751    push 004cfh                               ; 68 cf 04
    66366752    push strict byte 00004h                   ; 6a 04
    6637     call 019dah                               ; e8 ab cd
     6753    call 01a6bh                               ; e8 52 cd
    66386754    add sp, strict byte 00008h                ; 83 c4 08
    66396755    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6640     jne short 04c4ch                          ; 75 14
     6756    jne short 04d36h                          ; 75 14
    66416757    test dh, dh                               ; 84 f6
    6642     jne short 04c41h                          ; 75 05
    6643     push 004d5h                               ; 68 d5 04
    6644     jmp short 04c44h                          ; eb 03
    6645     push 004ffh                               ; 68 ff 04
     6758    jne short 04d2bh                          ; 75 05
     6759    push 004e7h                               ; 68 e7 04
     6760    jmp short 04d2eh                          ; eb 03
     6761    push 00511h                               ; 68 11 05
    66466762    push strict byte 00007h                   ; 6a 07
    6647     call 019dah                               ; e8 91 cd
     6763    call 01a6bh                               ; e8 38 cd
    66486764    add sp, strict byte 00004h                ; 83 c4 04
    66496765    lea sp, [bp-002h]                         ; 8d 66 fe
     
    66516767    pop bp                                    ; 5d
    66526768    retn 00002h                               ; c2 02 00
    6653 print_cdromboot_failure_:                    ; 0xf4c54 LB 0x27
     6769print_cdromboot_failure_:                    ; 0xf4d3e LB 0x27
    66546770    push bp                                   ; 55
    66556771    mov bp, sp                                ; 89 e5
     
    66586774    push dx                                   ; 52
    66596775    mov dx, ax                                ; 89 c2
    6660     mov bx, 00da0h                            ; bb a0 0d
     6776    mov bx, 00db2h                            ; bb b2 0d
    66616777    mov cx, ds                                ; 8c d9
    66626778    mov ax, strict word 00004h                ; b8 04 00
    6663     call 01999h                               ; e8 32 cd
     6779    call 01a2ah                               ; e8 d9 cc
    66646780    push dx                                   ; 52
    6665     push 00534h                               ; 68 34 05
     6781    push 00546h                               ; 68 46 05
    66666782    push strict byte 00004h                   ; 6a 04
    6667     call 019dah                               ; e8 6a cd
     6783    call 01a6bh                               ; e8 11 cd
    66686784    add sp, strict byte 00006h                ; 83 c4 06
    66696785    lea sp, [bp-006h]                         ; 8d 66 fa
     
    66736789    pop bp                                    ; 5d
    66746790    retn                                      ; c3
    6675 _int19_function:                             ; 0xf4c7b LB 0x256
     6791_int19_function:                             ; 0xf4d65 LB 0x256
    66766792    push bp                                   ; 55
    66776793    mov bp, sp                                ; 89 e5
     
    66816797    mov dx, strict word 0000eh                ; ba 0e 00
    66826798    mov ax, strict word 00040h                ; b8 40 00
    6683     call 016d4h                               ; e8 48 ca
     6799    call 01765h                               ; e8 ef c9
    66846800    mov bx, ax                                ; 89 c3
    66856801    mov word [bp-00eh], ax                    ; 89 46 f2
    66866802    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    66876803    mov ax, strict word 0003dh                ; b8 3d 00
    6688     call 01714h                               ; e8 79 ca
     6804    call 017a5h                               ; e8 20 ca
    66896805    movzx si, al                              ; 0f b6 f0
    66906806    mov ax, strict word 00038h                ; b8 38 00
    6691     call 01714h                               ; e8 70 ca
     6807    call 017a5h                               ; e8 17 ca
    66926808    and AL, strict byte 0f0h                  ; 24 f0
    66936809    xor ah, ah                                ; 30 e4
     
    66956811    or si, ax                                 ; 09 c6
    66966812    mov ax, strict word 0003ch                ; b8 3c 00
    6697     call 01714h                               ; e8 61 ca
     6813    call 017a5h                               ; e8 08 ca
    66986814    and AL, strict byte 00fh                  ; 24 0f
    66996815    xor ah, ah                                ; 30 e4
     
    67026818    mov dx, 0037dh                            ; ba 7d 03
    67036819    mov ax, bx                                ; 89 d8
    6704     call 016b8h                               ; e8 f4 c9
     6820    call 01749h                               ; e8 9b c9
    67056821    test al, al                               ; 84 c0
    6706     je short 04cd3h                           ; 74 0b
     6822    je short 04dbdh                           ; 74 0b
    67076823    mov dx, 0037dh                            ; ba 7d 03
    67086824    mov ax, bx                                ; 89 d8
    6709     call 016b8h                               ; e8 e8 c9
     6825    call 01749h                               ; e8 8f c9
    67106826    movzx si, al                              ; 0f b6 f0
    67116827    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6712     jne short 04ce9h                          ; 75 10
     6828    jne short 04dd3h                          ; 75 10
    67136829    mov ax, strict word 0003ch                ; b8 3c 00
    6714     call 01714h                               ; e8 35 ca
     6830    call 017a5h                               ; e8 dc c9
    67156831    and AL, strict byte 0f0h                  ; 24 f0
    67166832    xor ah, ah                                ; 30 e4
    67176833    sar ax, 004h                              ; c1 f8 04
    6718     call 07d55h                               ; e8 6c 30
     6834    call 07e3fh                               ; e8 6c 30
    67196835    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    6720     jne short 04cf2h                          ; 75 03
     6836    jne short 04ddch                          ; 75 03
    67216837    shr si, 004h                              ; c1 ee 04
    67226838    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    6723     jne short 04cfbh                          ; 75 03
     6839    jne short 04de5h                          ; 75 03
    67246840    shr si, 008h                              ; c1 ee 08
    67256841    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    6726     jne short 04d04h                          ; 75 03
     6842    jne short 04deeh                          ; 75 03
    67276843    shr si, 00ch                              ; c1 ee 0c
    67286844    cmp si, strict byte 00010h                ; 83 fe 10
    6729     jnc short 04d0dh                          ; 73 04
     6845    jnc short 04df7h                          ; 73 04
    67306846    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    67316847    xor al, al                                ; 30 c0
     
    67336849    mov byte [bp-00ah], al                    ; 88 46 f6
    67346850    mov byte [bp-00ch], al                    ; 88 46 f4
    6735     mov bx, 00da0h                            ; bb a0 0d
     6851    mov bx, 00db2h                            ; bb b2 0d
    67366852    mov cx, ds                                ; 8c d9
    67376853    mov ax, strict word 00004h                ; b8 04 00
    6738     call 01999h                               ; e8 76 cc
     6854    call 01a2ah                               ; e8 1d cc
    67396855    push si                                   ; 56
    67406856    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    67416857    push ax                                   ; 50
    6742     push 00554h                               ; 68 54 05
     6858    push 00566h                               ; 68 66 05
    67436859    push strict byte 00004h                   ; 6a 04
    6744     call 019dah                               ; e8 a9 cc
     6860    call 01a6bh                               ; e8 50 cc
    67456861    add sp, strict byte 00008h                ; 83 c4 08
    67466862    and si, strict byte 0000fh                ; 83 e6 0f
    67476863    cmp si, strict byte 00002h                ; 83 fe 02
    6748     jc short 04d4ah                           ; 72 0e
    6749     jbe short 04d59h                          ; 76 1b
     6864    jc short 04e34h                           ; 72 0e
     6865    jbe short 04e43h                          ; 76 1b
    67506866    cmp si, strict byte 00004h                ; 83 fe 04
    6751     je short 04d77h                           ; 74 34
     6867    je short 04e61h                           ; 74 34
    67526868    cmp si, strict byte 00003h                ; 83 fe 03
    6753     je short 04d6dh                           ; 74 25
    6754     jmp short 04da4h                          ; eb 5a
     6869    je short 04e57h                           ; 74 25
     6870    jmp short 04e8eh                          ; eb 5a
    67556871    cmp si, strict byte 00001h                ; 83 fe 01
    6756     jne short 04da4h                          ; 75 55
     6872    jne short 04e8eh                          ; 75 55
    67576873    xor al, al                                ; 30 c0
    67586874    mov byte [bp-006h], al                    ; 88 46 fa
    67596875    mov byte [bp-00ah], al                    ; 88 46 f6
    6760     jmp short 04dbch                          ; eb 63
     6876    jmp short 04ea6h                          ; eb 63
    67616877    mov dx, 0037ch                            ; ba 7c 03
    67626878    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6763     call 016b8h                               ; e8 56 c9
     6879    call 01749h                               ; e8 fd c8
    67646880    add AL, strict byte 080h                  ; 04 80
    67656881    mov byte [bp-006h], al                    ; 88 46 fa
    67666882    mov byte [bp-00ah], 000h                  ; c6 46 f6 00
    6767     jmp short 04dbch                          ; eb 4f
     6883    jmp short 04ea6h                          ; eb 4f
    67686884    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    67696885    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    6770     jmp short 04d81h                          ; eb 0a
     6886    jmp short 04e6bh                          ; eb 0a
    67716887    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    67726888    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6773     je short 04dbch                           ; 74 3b
    6774     call 03dcah                               ; e8 46 f0
     6889    je short 04ea6h                           ; 74 3b
     6890    call 03eb3h                               ; e8 45 f0
    67756891    mov bx, ax                                ; 89 c3
    67766892    test AL, strict byte 0ffh                 ; a8 ff
    6777     je short 04dabh                           ; 74 21
    6778     call 04c54h                               ; e8 c7 fe
     6893    je short 04e95h                           ; 74 21
     6894    call 04d3eh                               ; e8 c7 fe
    67796895    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    67806896    push ax                                   ; 50
     
    67836899    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    67846900    mov cx, strict word 00001h                ; b9 01 00
    6785     call 04bc1h                               ; e8 1d fe
     6901    call 04cabh                               ; e8 1d fe
    67866902    xor ax, ax                                ; 31 c0
    67876903    xor dx, dx                                ; 31 d2
    6788     jmp near 04ecah                           ; e9 1f 01
     6904    jmp near 04fb4h                           ; e9 1f 01
    67896905    mov dx, 00372h                            ; ba 72 03
    67906906    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6791     call 016d4h                               ; e8 20 c9
     6907    call 01765h                               ; e8 c7 c8
    67926908    mov di, ax                                ; 89 c7
    67936909    shr bx, 008h                              ; c1 eb 08
    67946910    mov byte [bp-006h], bl                    ; 88 5e fa
    67956911    cmp byte [bp-00ch], 001h                  ; 80 7e f4 01
    6796     jne near 04e38h                           ; 0f 85 74 00
     6912    jne near 04f22h                           ; 0f 85 74 00
    67976913    xor si, si                                ; 31 f6
    67986914    mov ax, 0e200h                            ; b8 00 e2
    67996915    mov es, ax                                ; 8e c0
    68006916    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    6801     jne short 04d8dh                          ; 75 bb
     6917    jne short 04e77h                          ; 75 bb
    68026918    mov cx, ax                                ; 89 c1
    68036919    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    68046920    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    6805     jne short 04d8dh                          ; 75 ad
     6921    jne short 04e77h                          ; 75 ad
    68066922    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    6807     jne short 04d8dh                          ; 75 a6
     6923    jne short 04e77h                          ; 75 a6
    68086924    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
    68096925    mov dx, word [es:di]                      ; 26 8b 15
    68106926    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    68116927    cmp ax, 06568h                            ; 3d 68 65
    6812     jne short 04e16h                          ; 75 1f
     6928    jne short 04f00h                          ; 75 1f
    68136929    cmp dx, 07445h                            ; 81 fa 45 74
    6814     jne short 04e16h                          ; 75 19
     6930    jne short 04f00h                          ; 75 19
    68156931    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    68166932    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    68176933    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6818     call 04b76h                               ; e8 6a fd
     6934    call 04c60h                               ; e8 6a fd
    68196935    mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
    68206936    mov word [bp-010h], cx                    ; 89 4e f0
    6821     jmp short 04e32h                          ; eb 1c
     6937    jmp short 04f1ch                          ; eb 1c
    68226938    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    68236939    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    68246940    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6825     call 04b76h                               ; e8 51 fd
     6941    call 04c60h                               ; e8 51 fd
    68266942    sti                                       ; fb
    68276943    mov word [bp-010h], cx                    ; 89 4e f0
     
    68306946    mov word [bp-012h], ax                    ; 89 46 ee
    68316947    call far [bp-012h]                        ; ff 5e ee
    6832     jmp near 04d8dh                           ; e9 55 ff
     6948    jmp near 04e77h                           ; e9 55 ff
    68336949    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6834     jne short 04e64h                          ; 75 26
     6950    jne short 04f4eh                          ; 75 26
    68356951    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    6836     jne short 04e64h                          ; 75 20
     6952    jne short 04f4eh                          ; 75 20
    68376953    mov di, 007c0h                            ; bf c0 07
    68386954    mov es, di                                ; 8e c7
     
    68476963    sbb ax, strict byte 00000h                ; 83 d8 00
    68486964    test ax, ax                               ; 85 c0
    6849     jne near 04d8dh                           ; 0f 85 29 ff
     6965    jne near 04e77h                           ; 0f 85 29 ff
    68506966    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    68516967    db  00fh, 094h, 0c1h
    68526968    ; sete cl                                   ; 0f 94 c1
    68536969    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6854     je short 04e73h                           ; 74 02
     6970    je short 04f5dh                           ; 74 02
    68556971    mov CL, strict byte 001h                  ; b1 01
    68566972    xor dx, dx                                ; 31 d2
    68576973    mov ax, di                                ; 89 f8
    6858     call 016d4h                               ; e8 5a c8
     6974    call 01765h                               ; e8 01 c8
    68596975    mov bx, ax                                ; 89 c3
    68606976    mov dx, strict word 00002h                ; ba 02 00
    68616977    mov ax, di                                ; 89 f8
    6862     call 016d4h                               ; e8 50 c8
     6978    call 01765h                               ; e8 f7 c7
    68636979    cmp bx, ax                                ; 39 c3
    6864     je short 04e99h                           ; 74 11
     6980    je short 04f83h                           ; 74 11
    68656981    test cl, cl                               ; 84 c9
    6866     jne short 04eafh                          ; 75 23
     6982    jne short 04f99h                          ; 75 23
    68676983    mov dx, 001feh                            ; ba fe 01
    68686984    mov ax, di                                ; 89 f8
    6869     call 016d4h                               ; e8 40 c8
     6985    call 01765h                               ; e8 e7 c7
    68706986    cmp ax, 0aa55h                            ; 3d 55 aa
    6871     je short 04eafh                           ; 74 16
     6987    je short 04f99h                           ; 74 16
    68726988    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    68736989    push ax                                   ; 50
     
    68766992    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    68776993    xor cx, cx                                ; 31 c9
    6878     jmp near 04da1h                           ; e9 f2 fe
     6994    jmp near 04e8bh                           ; e9 f2 fe
    68796995    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    68806996    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    68816997    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6882     call 04b76h                               ; e8 b8 fc
     6998    call 04c60h                               ; e8 b8 fc
    68836999    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    68847000    xor dx, dx                                ; 31 d2
     
    68917007    pop bp                                    ; 5d
    68927008    retn                                      ; c3
    6893 keyboard_panic_:                             ; 0xf4ed1 LB 0x13
     7009keyboard_panic_:                             ; 0xf4fbb LB 0x13
    68947010    push bp                                   ; 55
    68957011    mov bp, sp                                ; 89 e5
    68967012    push ax                                   ; 50
    6897     push 00574h                               ; 68 74 05
     7013    push 00586h                               ; 68 86 05
    68987014    push strict byte 00007h                   ; 6a 07
    6899     call 019dah                               ; e8 fd ca
     7015    call 01a6bh                               ; e8 a4 ca
    69007016    add sp, strict byte 00006h                ; 83 c4 06
    69017017    mov sp, bp                                ; 89 ec
    69027018    pop bp                                    ; 5d
    69037019    retn                                      ; c3
    6904 _keyboard_init:                              ; 0xf4ee4 LB 0x26a
     7020_keyboard_init:                              ; 0xf4fce LB 0x26a
    69057021    push bp                                   ; 55
    69067022    mov bp, sp                                ; 89 e5
     
    69147030    ; sub ah, ah                                ; 2a e4
    69157031    test AL, strict byte 002h                 ; a8 02
    6916     je short 04f07h                           ; 74 0d
     7032    je short 04ff1h                           ; 74 0d
    69177033    dec bx                                    ; 4b
    69187034    test bx, bx                               ; 85 db
    6919     jbe short 04f07h                          ; 76 08
     7035    jbe short 04ff1h                          ; 76 08
    69207036    xor al, al                                ; 30 c0
    69217037    mov dx, 00080h                            ; ba 80 00
    69227038    out DX, AL                                ; ee
    6923     jmp short 04ef0h                          ; eb e9
     7039    jmp short 04fdah                          ; eb e9
    69247040    test bx, bx                               ; 85 db
    6925     jne short 04f10h                          ; 75 05
     7041    jne short 04ffah                          ; 75 05
    69267042    xor ax, ax                                ; 31 c0
    6927     call 04ed1h                               ; e8 c1 ff
     7043    call 04fbbh                               ; e8 c1 ff
    69287044    mov bx, strict word 0ffffh                ; bb ff ff
    69297045    mov dx, strict word 00064h                ; ba 64 00
     
    69327048    ; sub ah, ah                                ; 2a e4
    69337049    test AL, strict byte 001h                 ; a8 01
    6934     jne short 04f2ah                          ; 75 0d
     7050    jne short 05014h                          ; 75 0d
    69357051    dec bx                                    ; 4b
    69367052    test bx, bx                               ; 85 db
    6937     jbe short 04f2ah                          ; 76 08
     7053    jbe short 05014h                          ; 76 08
    69387054    mov AL, strict byte 001h                  ; b0 01
    69397055    mov dx, 00080h                            ; ba 80 00
    69407056    out DX, AL                                ; ee
    6941     jmp short 04f13h                          ; eb e9
     7057    jmp short 04ffdh                          ; eb e9
    69427058    test bx, bx                               ; 85 db
    6943     jne short 04f34h                          ; 75 06
     7059    jne short 0501eh                          ; 75 06
    69447060    mov ax, strict word 00001h                ; b8 01 00
    6945     call 04ed1h                               ; e8 9d ff
     7061    call 04fbbh                               ; e8 9d ff
    69467062    mov dx, strict word 00060h                ; ba 60 00
    69477063    in AL, DX                                 ; ec
     
    69497065    ; sub ah, ah                                ; 2a e4
    69507066    cmp ax, strict word 00055h                ; 3d 55 00
    6951     je short 04f45h                           ; 74 06
     7067    je short 0502fh                           ; 74 06
    69527068    mov ax, 003dfh                            ; b8 df 03
    6953     call 04ed1h                               ; e8 8c ff
     7069    call 04fbbh                               ; e8 8c ff
    69547070    mov AL, strict byte 0abh                  ; b0 ab
    69557071    mov dx, strict word 00064h                ; ba 64 00
     
    69617077    ; sub ah, ah                                ; 2a e4
    69627078    test AL, strict byte 002h                 ; a8 02
    6963     je short 04f65h                           ; 74 0d
     7079    je short 0504fh                           ; 74 0d
    69647080    dec bx                                    ; 4b
    69657081    test bx, bx                               ; 85 db
    6966     jbe short 04f65h                          ; 76 08
     7082    jbe short 0504fh                          ; 76 08
    69677083    mov AL, strict byte 010h                  ; b0 10
    69687084    mov dx, 00080h                            ; ba 80 00
    69697085    out DX, AL                                ; ee
    6970     jmp short 04f4eh                          ; eb e9
     7086    jmp short 05038h                          ; eb e9
    69717087    test bx, bx                               ; 85 db
    6972     jne short 04f6fh                          ; 75 06
     7088    jne short 05059h                          ; 75 06
    69737089    mov ax, strict word 0000ah                ; b8 0a 00
    6974     call 04ed1h                               ; e8 62 ff
     7090    call 04fbbh                               ; e8 62 ff
    69757091    mov bx, strict word 0ffffh                ; bb ff ff
    69767092    mov dx, strict word 00064h                ; ba 64 00
     
    69797095    ; sub ah, ah                                ; 2a e4
    69807096    test AL, strict byte 001h                 ; a8 01
    6981     jne short 04f89h                          ; 75 0d
     7097    jne short 05073h                          ; 75 0d
    69827098    dec bx                                    ; 4b
    69837099    test bx, bx                               ; 85 db
    6984     jbe short 04f89h                          ; 76 08
     7100    jbe short 05073h                          ; 76 08
    69857101    mov AL, strict byte 011h                  ; b0 11
    69867102    mov dx, 00080h                            ; ba 80 00
    69877103    out DX, AL                                ; ee
    6988     jmp short 04f72h                          ; eb e9
     7104    jmp short 0505ch                          ; eb e9
    69897105    test bx, bx                               ; 85 db
    6990     jne short 04f93h                          ; 75 06
     7106    jne short 0507dh                          ; 75 06
    69917107    mov ax, strict word 0000bh                ; b8 0b 00
    6992     call 04ed1h                               ; e8 3e ff
     7108    call 04fbbh                               ; e8 3e ff
    69937109    mov dx, strict word 00060h                ; ba 60 00
    69947110    in AL, DX                                 ; ec
     
    69967112    ; sub ah, ah                                ; 2a e4
    69977113    test ax, ax                               ; 85 c0
    6998     je short 04fa3h                           ; 74 06
     7114    je short 0508dh                           ; 74 06
    69997115    mov ax, 003e0h                            ; b8 e0 03
    7000     call 04ed1h                               ; e8 2e ff
     7116    call 04fbbh                               ; e8 2e ff
    70017117    mov AL, strict byte 0ffh                  ; b0 ff
    70027118    mov dx, strict word 00060h                ; ba 60 00
     
    70087124    ; sub ah, ah                                ; 2a e4
    70097125    test AL, strict byte 002h                 ; a8 02
    7010     je short 04fc3h                           ; 74 0d
     7126    je short 050adh                           ; 74 0d
    70117127    dec bx                                    ; 4b
    70127128    test bx, bx                               ; 85 db
    7013     jbe short 04fc3h                          ; 76 08
     7129    jbe short 050adh                          ; 76 08
    70147130    mov AL, strict byte 020h                  ; b0 20
    70157131    mov dx, 00080h                            ; ba 80 00
    70167132    out DX, AL                                ; ee
    7017     jmp short 04fach                          ; eb e9
     7133    jmp short 05096h                          ; eb e9
    70187134    test bx, bx                               ; 85 db
    7019     jne short 04fcdh                          ; 75 06
     7135    jne short 050b7h                          ; 75 06
    70207136    mov ax, strict word 00014h                ; b8 14 00
    7021     call 04ed1h                               ; e8 04 ff
     7137    call 04fbbh                               ; e8 04 ff
    70227138    mov bx, strict word 0ffffh                ; bb ff ff
    70237139    mov dx, strict word 00064h                ; ba 64 00
     
    70267142    ; sub ah, ah                                ; 2a e4
    70277143    test AL, strict byte 001h                 ; a8 01
    7028     jne short 04fe7h                          ; 75 0d
     7144    jne short 050d1h                          ; 75 0d
    70297145    dec bx                                    ; 4b
    70307146    test bx, bx                               ; 85 db
    7031     jbe short 04fe7h                          ; 76 08
     7147    jbe short 050d1h                          ; 76 08
    70327148    mov AL, strict byte 021h                  ; b0 21
    70337149    mov dx, 00080h                            ; ba 80 00
    70347150    out DX, AL                                ; ee
    7035     jmp short 04fd0h                          ; eb e9
     7151    jmp short 050bah                          ; eb e9
    70367152    test bx, bx                               ; 85 db
    7037     jne short 04ff1h                          ; 75 06
     7153    jne short 050dbh                          ; 75 06
    70387154    mov ax, strict word 00015h                ; b8 15 00
    7039     call 04ed1h                               ; e8 e0 fe
     7155    call 04fbbh                               ; e8 e0 fe
    70407156    mov dx, strict word 00060h                ; ba 60 00
    70417157    in AL, DX                                 ; ec
     
    70437159    ; sub ah, ah                                ; 2a e4
    70447160    cmp ax, 000fah                            ; 3d fa 00
    7045     je short 05002h                           ; 74 06
     7161    je short 050ech                           ; 74 06
    70467162    mov ax, 003e1h                            ; b8 e1 03
    7047     call 04ed1h                               ; e8 cf fe
     7163    call 04fbbh                               ; e8 cf fe
    70487164    mov dx, strict word 00064h                ; ba 64 00
    70497165    in AL, DX                                 ; ec
     
    70517167    ; sub ah, ah                                ; 2a e4
    70527168    test AL, strict byte 001h                 ; a8 01
    7053     jne short 05014h                          ; 75 08
     7169    jne short 050feh                          ; 75 08
    70547170    mov AL, strict byte 031h                  ; b0 31
    70557171    mov dx, 00080h                            ; ba 80 00
    70567172    out DX, AL                                ; ee
    7057     jmp short 05002h                          ; eb ee
     7173    jmp short 050ech                          ; eb ee
    70587174    mov dx, strict word 00060h                ; ba 60 00
    70597175    in AL, DX                                 ; ec
     
    70617177    ; sub ah, ah                                ; 2a e4
    70627178    cmp ax, 000aah                            ; 3d aa 00
    7063     je short 0502dh                           ; 74 0e
     7179    je short 05117h                           ; 74 0e
    70647180    in AL, DX                                 ; ec
    70657181    db  02ah, 0e4h
    70667182    ; sub ah, ah                                ; 2a e4
    70677183    cmp ax, 000aah                            ; 3d aa 00
    7068     je short 0502dh                           ; 74 06
     7184    je short 05117h                           ; 74 06
    70697185    mov ax, 003e2h                            ; b8 e2 03
    7070     call 04ed1h                               ; e8 a4 fe
     7186    call 04fbbh                               ; e8 a4 fe
    70717187    mov AL, strict byte 0f5h                  ; b0 f5
    70727188    mov dx, strict word 00060h                ; ba 60 00
     
    70787194    ; sub ah, ah                                ; 2a e4
    70797195    test AL, strict byte 002h                 ; a8 02
    7080     je short 0504dh                           ; 74 0d
     7196    je short 05137h                           ; 74 0d
    70817197    dec bx                                    ; 4b
    70827198    test bx, bx                               ; 85 db
    7083     jbe short 0504dh                          ; 76 08
     7199    jbe short 05137h                          ; 76 08
    70847200    mov AL, strict byte 040h                  ; b0 40
    70857201    mov dx, 00080h                            ; ba 80 00
    70867202    out DX, AL                                ; ee
    7087     jmp short 05036h                          ; eb e9
     7203    jmp short 05120h                          ; eb e9
    70887204    test bx, bx                               ; 85 db
    7089     jne short 05057h                          ; 75 06
     7205    jne short 05141h                          ; 75 06
    70907206    mov ax, strict word 00028h                ; b8 28 00
    7091     call 04ed1h                               ; e8 7a fe
     7207    call 04fbbh                               ; e8 7a fe
    70927208    mov bx, strict word 0ffffh                ; bb ff ff
    70937209    mov dx, strict word 00064h                ; ba 64 00
     
    70967212    ; sub ah, ah                                ; 2a e4
    70977213    test AL, strict byte 001h                 ; a8 01
    7098     jne short 05071h                          ; 75 0d
     7214    jne short 0515bh                          ; 75 0d
    70997215    dec bx                                    ; 4b
    71007216    test bx, bx                               ; 85 db
    7101     jbe short 05071h                          ; 76 08
     7217    jbe short 0515bh                          ; 76 08
    71027218    mov AL, strict byte 041h                  ; b0 41
    71037219    mov dx, 00080h                            ; ba 80 00
    71047220    out DX, AL                                ; ee
    7105     jmp short 0505ah                          ; eb e9
     7221    jmp short 05144h                          ; eb e9
    71067222    test bx, bx                               ; 85 db
    7107     jne short 0507bh                          ; 75 06
     7223    jne short 05165h                          ; 75 06
    71087224    mov ax, strict word 00029h                ; b8 29 00
    7109     call 04ed1h                               ; e8 56 fe
     7225    call 04fbbh                               ; e8 56 fe
    71107226    mov dx, strict word 00060h                ; ba 60 00
    71117227    in AL, DX                                 ; ec
     
    71137229    ; sub ah, ah                                ; 2a e4
    71147230    cmp ax, 000fah                            ; 3d fa 00
    7115     je short 0508ch                           ; 74 06
     7231    je short 05176h                           ; 74 06
    71167232    mov ax, 003e3h                            ; b8 e3 03
    7117     call 04ed1h                               ; e8 45 fe
     7233    call 04fbbh                               ; e8 45 fe
    71187234    mov AL, strict byte 060h                  ; b0 60
    71197235    mov dx, strict word 00064h                ; ba 64 00
     
    71257241    ; sub ah, ah                                ; 2a e4
    71267242    test AL, strict byte 002h                 ; a8 02
    7127     je short 050ach                           ; 74 0d
     7243    je short 05196h                           ; 74 0d
    71287244    dec bx                                    ; 4b
    71297245    test bx, bx                               ; 85 db
    7130     jbe short 050ach                          ; 76 08
     7246    jbe short 05196h                          ; 76 08
    71317247    mov AL, strict byte 050h                  ; b0 50
    71327248    mov dx, 00080h                            ; ba 80 00
    71337249    out DX, AL                                ; ee
    7134     jmp short 05095h                          ; eb e9
     7250    jmp short 0517fh                          ; eb e9
    71357251    test bx, bx                               ; 85 db
    7136     jne short 050b6h                          ; 75 06
     7252    jne short 051a0h                          ; 75 06
    71377253    mov ax, strict word 00032h                ; b8 32 00
    7138     call 04ed1h                               ; e8 1b fe
     7254    call 04fbbh                               ; e8 1b fe
    71397255    mov AL, strict byte 065h                  ; b0 65
    71407256    mov dx, strict word 00060h                ; ba 60 00
     
    71467262    ; sub ah, ah                                ; 2a e4
    71477263    test AL, strict byte 002h                 ; a8 02
    7148     je short 050d6h                           ; 74 0d
     7264    je short 051c0h                           ; 74 0d
    71497265    dec bx                                    ; 4b
    71507266    test bx, bx                               ; 85 db
    7151     jbe short 050d6h                          ; 76 08
     7267    jbe short 051c0h                          ; 76 08
    71527268    mov AL, strict byte 060h                  ; b0 60
    71537269    mov dx, 00080h                            ; ba 80 00
    71547270    out DX, AL                                ; ee
    7155     jmp short 050bfh                          ; eb e9
     7271    jmp short 051a9h                          ; eb e9
    71567272    test bx, bx                               ; 85 db
    7157     jne short 050e0h                          ; 75 06
     7273    jne short 051cah                          ; 75 06
    71587274    mov ax, strict word 0003ch                ; b8 3c 00
    7159     call 04ed1h                               ; e8 f1 fd
     7275    call 04fbbh                               ; e8 f1 fd
    71607276    mov AL, strict byte 0f4h                  ; b0 f4
    71617277    mov dx, strict word 00060h                ; ba 60 00
     
    71677283    ; sub ah, ah                                ; 2a e4
    71687284    test AL, strict byte 002h                 ; a8 02
    7169     je short 05100h                           ; 74 0d
     7285    je short 051eah                           ; 74 0d
    71707286    dec bx                                    ; 4b
    71717287    test bx, bx                               ; 85 db
    7172     jbe short 05100h                          ; 76 08
     7288    jbe short 051eah                          ; 76 08
    71737289    mov AL, strict byte 070h                  ; b0 70
    71747290    mov dx, 00080h                            ; ba 80 00
    71757291    out DX, AL                                ; ee
    7176     jmp short 050e9h                          ; eb e9
     7292    jmp short 051d3h                          ; eb e9
    71777293    test bx, bx                               ; 85 db
    7178     jne short 0510ah                          ; 75 06
     7294    jne short 051f4h                          ; 75 06
    71797295    mov ax, strict word 00046h                ; b8 46 00
    7180     call 04ed1h                               ; e8 c7 fd
     7296    call 04fbbh                               ; e8 c7 fd
    71817297    mov bx, strict word 0ffffh                ; bb ff ff
    71827298    mov dx, strict word 00064h                ; ba 64 00
     
    71857301    ; sub ah, ah                                ; 2a e4
    71867302    test AL, strict byte 001h                 ; a8 01
    7187     jne short 05124h                          ; 75 0d
     7303    jne short 0520eh                          ; 75 0d
    71887304    dec bx                                    ; 4b
    71897305    test bx, bx                               ; 85 db
    7190     jbe short 05124h                          ; 76 08
     7306    jbe short 0520eh                          ; 76 08
    71917307    mov AL, strict byte 071h                  ; b0 71
    71927308    mov dx, 00080h                            ; ba 80 00
    71937309    out DX, AL                                ; ee
    7194     jmp short 0510dh                          ; eb e9
     7310    jmp short 051f7h                          ; eb e9
    71957311    test bx, bx                               ; 85 db
    7196     jne short 0512eh                          ; 75 06
     7312    jne short 05218h                          ; 75 06
    71977313    mov ax, strict word 00046h                ; b8 46 00
    7198     call 04ed1h                               ; e8 a3 fd
     7314    call 04fbbh                               ; e8 a3 fd
    71997315    mov dx, strict word 00060h                ; ba 60 00
    72007316    in AL, DX                                 ; ec
     
    72027318    ; sub ah, ah                                ; 2a e4
    72037319    cmp ax, 000fah                            ; 3d fa 00
    7204     je short 0513fh                           ; 74 06
     7320    je short 05229h                           ; 74 06
    72057321    mov ax, 003e4h                            ; b8 e4 03
    7206     call 04ed1h                               ; e8 92 fd
     7322    call 04fbbh                               ; e8 92 fd
    72077323    mov AL, strict byte 0a8h                  ; b0 a8
    72087324    mov dx, strict word 00064h                ; ba 64 00
    72097325    out DX, AL                                ; ee
    72107326    xor ax, ax                                ; 31 c0
    7211     call 06596h                               ; e8 4c 14
     7327    call 06680h                               ; e8 4c 14
    72127328    mov sp, bp                                ; 89 ec
    72137329    pop bp                                    ; 5d
    72147330    retn                                      ; c3
    7215 enqueue_key_:                                ; 0xf514e LB 0x99
     7331enqueue_key_:                                ; 0xf5238 LB 0x99
    72167332    push bp                                   ; 55
    72177333    mov bp, sp                                ; 89 e5
     
    72257341    mov dx, strict word 0001ah                ; ba 1a 00
    72267342    mov ax, strict word 00040h                ; b8 40 00
    7227     call 016d4h                               ; e8 70 c5
     7343    call 01765h                               ; e8 17 c5
    72287344    mov di, ax                                ; 89 c7
    72297345    mov dx, strict word 0001ch                ; ba 1c 00
    72307346    mov ax, strict word 00040h                ; b8 40 00
    7231     call 016d4h                               ; e8 65 c5
     7347    call 01765h                               ; e8 0c c5
    72327348    mov si, ax                                ; 89 c6
    72337349    lea cx, [si+002h]                         ; 8d 4c 02
    72347350    cmp cx, strict byte 0003eh                ; 83 f9 3e
    7235     jc short 0517ch                           ; 72 03
     7351    jc short 05266h                           ; 72 03
    72367352    mov cx, strict word 0001eh                ; b9 1e 00
    72377353    cmp cx, di                                ; 39 f9
    7238     jne short 05184h                          ; 75 04
     7354    jne short 0526eh                          ; 75 04
    72397355    xor ax, ax                                ; 31 c0
    7240     jmp short 051a9h                          ; eb 25
     7356    jmp short 05293h                          ; eb 25
    72417357    xor bh, bh                                ; 30 ff
    72427358    mov dx, si                                ; 89 f2
    72437359    mov ax, strict word 00040h                ; b8 40 00
    7244     call 016c6h                               ; e8 38 c5
     7360    call 01757h                               ; e8 df c4
    72457361    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    72467362    lea dx, [si+001h]                         ; 8d 54 01
    72477363    mov ax, strict word 00040h                ; b8 40 00
    7248     call 016c6h                               ; e8 2b c5
     7364    call 01757h                               ; e8 d2 c4
    72497365    mov bx, cx                                ; 89 cb
    72507366    mov dx, strict word 0001ch                ; ba 1c 00
    72517367    mov ax, strict word 00040h                ; b8 40 00
    7252     call 016e2h                               ; e8 3c c5
     7368    call 01773h                               ; e8 e3 c4
    72537369    mov ax, strict word 00001h                ; b8 01 00
    72547370    lea sp, [bp-008h]                         ; 8d 66 f8
     
    72607376    retn                                      ; c3
    72617377    db  0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah
    7262     db  01dh, 00fh, 055h, 0d8h, 052h, 080h, 052h, 080h, 052h, 061h, 053h, 056h, 052h, 0dfh, 053h, 04dh
    7263     db  054h, 0f5h, 054h, 0d1h, 054h, 01ch, 053h, 080h, 052h, 080h, 052h, 0a0h, 053h, 072h, 052h, 02eh
    7264     db  054h, 0b2h, 054h, 0eeh, 054h
    7265 _int09_function:                             ; 0xf51e7 LB 0x474
     7378    db  01dh, 0f9h, 055h, 0c2h, 053h, 06ah, 053h, 06ah, 053h, 04bh, 054h, 040h, 053h, 0c9h, 054h, 037h
     7379    db  055h, 0dfh, 055h, 0bbh, 055h, 006h, 054h, 06ah, 053h, 06ah, 053h, 08ah, 054h, 05ch, 053h, 018h
     7380    db  055h, 09ch, 055h, 0d8h, 055h
     7381_int09_function:                             ; 0xf52d1 LB 0x474
    72667382    push bp                                   ; 55
    72677383    mov bp, sp                                ; 89 e5
     
    72717387    mov byte [bp-00ch], al                    ; 88 46 f4
    72727388    test al, al                               ; 84 c0
    7273     jne short 05211h                          ; 75 19
    7274     mov bx, 00da0h                            ; bb a0 0d
     7389    jne short 052fbh                          ; 75 19
     7390    mov bx, 00db2h                            ; bb b2 0d
    72757391    mov cx, ds                                ; 8c d9
    72767392    mov ax, strict word 00004h                ; b8 04 00
    7277     call 01999h                               ; e8 96 c7
    7278     push 00587h                               ; 68 87 05
     7393    call 01a2ah                               ; e8 3d c7
     7394    push 00599h                               ; 68 99 05
    72797395    push strict byte 00004h                   ; 6a 04
    7280     call 019dah                               ; e8 cf c7
     7396    call 01a6bh                               ; e8 76 c7
    72817397    add sp, strict byte 00004h                ; 83 c4 04
    7282     jmp near 052d2h                           ; e9 c1 00
     7398    jmp near 053bch                           ; e9 c1 00
    72837399    mov dx, strict word 00018h                ; ba 18 00
    72847400    mov ax, strict word 00040h                ; b8 40 00
    7285     call 016b8h                               ; e8 9e c4
     7401    call 01749h                               ; e8 45 c4
    72867402    mov byte [bp-006h], al                    ; 88 46 fa
    72877403    mov byte [bp-00ah], al                    ; 88 46 f6
    72887404    mov dx, 00096h                            ; ba 96 00
    72897405    mov ax, strict word 00040h                ; b8 40 00
    7290     call 016b8h                               ; e8 8f c4
     7406    call 01749h                               ; e8 36 c4
    72917407    mov byte [bp-00eh], al                    ; 88 46 f2
    72927408    mov byte [bp-004h], al                    ; 88 46 fc
    72937409    mov dx, strict word 00017h                ; ba 17 00
    72947410    mov ax, strict word 00040h                ; b8 40 00
    7295     call 016b8h                               ; e8 80 c4
     7411    call 01749h                               ; e8 27 c4
    72967412    mov byte [bp-010h], al                    ; 88 46 f0
    72977413    mov byte [bp-008h], al                    ; 88 46 f8
     
    73007416    pop ES                                    ; 07
    73017417    mov cx, strict word 00012h                ; b9 12 00
    7302     mov di, 051b2h                            ; bf b2 51
     7418    mov di, 0529ch                            ; bf 9c 52
    73037419    repne scasb                               ; f2 ae
    73047420    sal cx, 1                                 ; d1 e1
    73057421    mov di, cx                                ; 89 cf
    7306     mov ax, word [cs:di+051c3h]               ; 2e 8b 85 c3 51
     7422    mov ax, word [cs:di+052adh]               ; 2e 8b 85 ad 52
    73077423    jmp ax                                    ; ff e0
    73087424    xor byte [bp-008h], 040h                  ; 80 76 f8 40
     
    73107426    mov dx, strict word 00017h                ; ba 17 00
    73117427    mov ax, strict word 00040h                ; b8 40 00
    7312     call 016c6h                               ; e8 5f c4
     7428    call 01757h                               ; e8 06 c4
    73137429    or byte [bp-00ah], 040h                   ; 80 4e f6 40
    73147430    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    7315     jmp near 054e2h                           ; e9 70 02
     7431    jmp near 055cch                           ; e9 70 02
    73167432    mov al, byte [bp-006h]                    ; 8a 46 fa
    73177433    and AL, strict byte 0bfh                  ; 24 bf
    73187434    mov byte [bp-00ah], al                    ; 88 46 f6
    73197435    movzx bx, al                              ; 0f b6 d8
    7320     jmp near 054e2h                           ; e9 62 02
     7436    jmp near 055cch                           ; e9 62 02
    73217437    test byte [bp-004h], 002h                 ; f6 46 fc 02
    7322     jne near 052b4h                           ; 0f 85 2c 00
     7438    jne near 0539eh                           ; 0f 85 2c 00
    73237439    mov al, byte [bp-00ch]                    ; 8a 46 f4
    73247440    and AL, strict byte 07fh                  ; 24 7f
     
    73307446    mov dl, al                                ; 88 c2
    73317447    test byte [bp-00ch], 080h                 ; f6 46 f4 80
    7332     je short 052a4h                           ; 74 07
     7448    je short 0538eh                           ; 74 07
    73337449    not al                                    ; f6 d0
    73347450    and byte [bp-008h], al                    ; 20 46 f8
    7335     jmp short 052a7h                          ; eb 03
     7451    jmp short 05391h                          ; eb 03
    73367452    or byte [bp-008h], al                     ; 08 46 f8
    73377453    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    73387454    mov dx, strict word 00017h                ; ba 17 00
    73397455    mov ax, strict word 00040h                ; b8 40 00
    7340     call 016c6h                               ; e8 12 c4
     7456    call 01757h                               ; e8 b9 c3
    73417457    mov al, byte [bp-00ch]                    ; 8a 46 f4
    73427458    and AL, strict byte 07fh                  ; 24 7f
    73437459    cmp AL, strict byte 01dh                  ; 3c 1d
    7344     je short 052c1h                           ; 74 04
     7460    je short 053abh                           ; 74 04
    73457461    and byte [bp-004h], 0feh                  ; 80 66 fc fe
    73467462    and byte [bp-004h], 0fdh                  ; 80 66 fc fd
     
    73487464    mov dx, 00096h                            ; ba 96 00
    73497465    mov ax, strict word 00040h                ; b8 40 00
    7350     call 016c6h                               ; e8 f4 c3
     7466    call 01757h                               ; e8 9b c3
    73517467    lea sp, [bp-002h]                         ; 8d 66 fe
    73527468    pop di                                    ; 5f
     
    73547470    retn                                      ; c3
    73557471    test byte [bp-00eh], 001h                 ; f6 46 f2 01
    7356     jne short 052b4h                          ; 75 d6
     7472    jne short 0539eh                          ; 75 d6
    73577473    mov al, byte [bp-010h]                    ; 8a 46 f0
    73587474    or AL, strict byte 004h                   ; 0c 04
     
    73617477    mov dx, strict word 00017h                ; ba 17 00
    73627478    mov ax, strict word 00040h                ; b8 40 00
    7363     call 016c6h                               ; e8 d4 c3
     7479    call 01757h                               ; e8 7b c3
    73647480    mov al, byte [bp-00eh]                    ; 8a 46 f2
    73657481    test AL, strict byte 002h                 ; a8 02
    7366     je short 05306h                           ; 74 0d
     7482    je short 053f0h                           ; 74 0d
    73677483    or AL, strict byte 004h                   ; 0c 04
    73687484    mov byte [bp-004h], al                    ; 88 46 fc
    73697485    movzx bx, al                              ; 0f b6 d8
    73707486    mov dx, 00096h                            ; ba 96 00
    7371     jmp short 05314h                          ; eb 0e
     7487    jmp short 053feh                          ; eb 0e
    73727488    mov al, byte [bp-006h]                    ; 8a 46 fa
    73737489    or AL, strict byte 001h                   ; 0c 01
     
    73767492    mov dx, strict word 00018h                ; ba 18 00
    73777493    mov ax, strict word 00040h                ; b8 40 00
    7378     call 016c6h                               ; e8 ac c3
    7379     jmp short 052b4h                          ; eb 98
     7494    call 01757h                               ; e8 53 c3
     7495    jmp short 0539eh                          ; eb 98
    73807496    test byte [bp-00eh], 001h                 ; f6 46 f2 01
    7381     jne short 052b4h                          ; 75 92
     7497    jne short 0539eh                          ; 75 92
    73827498    mov al, byte [bp-010h]                    ; 8a 46 f0
    73837499    and AL, strict byte 0fbh                  ; 24 fb
     
    73867502    mov dx, strict word 00017h                ; ba 17 00
    73877503    mov ax, strict word 00040h                ; b8 40 00
    7388     call 016c6h                               ; e8 90 c3
     7504    call 01757h                               ; e8 37 c3
    73897505    mov al, byte [bp-00eh]                    ; 8a 46 f2
    73907506    test AL, strict byte 002h                 ; a8 02
    7391     je short 0534ah                           ; 74 0d
     7507    je short 05434h                           ; 74 0d
    73927508    and AL, strict byte 0fbh                  ; 24 fb
    73937509    mov byte [bp-004h], al                    ; 88 46 fc
    73947510    movzx bx, al                              ; 0f b6 d8
    73957511    mov dx, 00096h                            ; ba 96 00
    7396     jmp short 05358h                          ; eb 0e
     7512    jmp short 05442h                          ; eb 0e
    73977513    mov al, byte [bp-006h]                    ; 8a 46 fa
    73987514    and AL, strict byte 0feh                  ; 24 fe
     
    74017517    mov dx, strict word 00018h                ; ba 18 00
    74027518    mov ax, strict word 00040h                ; b8 40 00
    7403     call 016c6h                               ; e8 68 c3
    7404     jmp near 052b4h                           ; e9 53 ff
     7519    call 01757h                               ; e8 0f c3
     7520    jmp near 0539eh                           ; e9 53 ff
    74057521    mov al, byte [bp-010h]                    ; 8a 46 f0
    74067522    or AL, strict byte 008h                   ; 0c 08
     
    74097525    mov dx, strict word 00017h                ; ba 17 00
    74107526    mov ax, strict word 00040h                ; b8 40 00
    7411     call 016c6h                               ; e8 51 c3
     7527    call 01757h                               ; e8 f8 c2
    74127528    mov al, byte [bp-00eh]                    ; 8a 46 f2
    74137529    test AL, strict byte 002h                 ; a8 02
    7414     je short 05389h                           ; 74 0d
     7530    je short 05473h                           ; 74 0d
    74157531    or AL, strict byte 008h                   ; 0c 08
    74167532    mov byte [bp-004h], al                    ; 88 46 fc
    74177533    movzx bx, al                              ; 0f b6 d8
    74187534    mov dx, 00096h                            ; ba 96 00
    7419     jmp short 05397h                          ; eb 0e
     7535    jmp short 05481h                          ; eb 0e
    74207536    mov al, byte [bp-006h]                    ; 8a 46 fa
    74217537    or AL, strict byte 002h                   ; 0c 02
     
    74247540    mov dx, strict word 00018h                ; ba 18 00
    74257541    mov ax, strict word 00040h                ; b8 40 00
    7426     call 016c6h                               ; e8 29 c3
    7427     jmp near 052b4h                           ; e9 14 ff
     7542    call 01757h                               ; e8 d0 c2
     7543    jmp near 0539eh                           ; e9 14 ff
    74287544    mov al, byte [bp-010h]                    ; 8a 46 f0
    74297545    and AL, strict byte 0f7h                  ; 24 f7
     
    74327548    mov dx, strict word 00017h                ; ba 17 00
    74337549    mov ax, strict word 00040h                ; b8 40 00
    7434     call 016c6h                               ; e8 12 c3
     7550    call 01757h                               ; e8 b9 c2
    74357551    mov al, byte [bp-00eh]                    ; 8a 46 f2
    74367552    test AL, strict byte 002h                 ; a8 02
    7437     je short 053c8h                           ; 74 0d
     7553    je short 054b2h                           ; 74 0d
    74387554    and AL, strict byte 0f7h                  ; 24 f7
    74397555    mov byte [bp-004h], al                    ; 88 46 fc
    74407556    movzx bx, al                              ; 0f b6 d8
    74417557    mov dx, 00096h                            ; ba 96 00
    7442     jmp short 053d6h                          ; eb 0e
     7558    jmp short 054c0h                          ; eb 0e
    74437559    mov al, byte [bp-006h]                    ; 8a 46 fa
    74447560    and AL, strict byte 0fdh                  ; 24 fd
     
    74477563    mov dx, strict word 00018h                ; ba 18 00
    74487564    mov ax, strict word 00040h                ; b8 40 00
    7449     call 016c6h                               ; e8 ea c2
    7450     jmp near 052b4h                           ; e9 d5 fe
     7565    call 01757h                               ; e8 91 c2
     7566    jmp near 0539eh                           ; e9 d5 fe
    74517567    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    7452     jne short 05401h                          ; 75 1c
     7568    jne short 054ebh                          ; 75 1c
    74537569    mov al, byte [bp-006h]                    ; 8a 46 fa
    74547570    or AL, strict byte 020h                   ; 0c 20
     
    74577573    mov dx, strict word 00018h                ; ba 18 00
    74587574    mov ax, strict word 00040h                ; b8 40 00
    7459     call 016c6h                               ; e8 cd c2
     7575    call 01757h                               ; e8 74 c2
    74607576    mov al, byte [bp-010h]                    ; 8a 46 f0
    74617577    xor AL, strict byte 020h                  ; 34 20
    7462     jmp near 054a0h                           ; e9 9f 00
     7578    jmp near 0558ah                           ; e9 9f 00
    74637579    mov al, byte [bp-006h]                    ; 8a 46 fa
    74647580    or AL, strict byte 008h                   ; 0c 08
     
    74677583    mov dx, strict word 00018h                ; ba 18 00
    74687584    mov ax, strict word 00040h                ; b8 40 00
    7469     call 016c6h                               ; e8 b1 c2
     7585    call 01757h                               ; e8 58 c2
    74707586    mov AL, strict byte 0aeh                  ; b0 ae
    74717587    mov dx, strict word 00064h                ; ba 64 00
    74727588    out DX, AL                                ; ee
    7473     call 0e034h                               ; e8 16 8c
     7589    call 0e034h                               ; e8 2c 8b
    74747590    mov dx, strict word 00018h                ; ba 18 00
    74757591    mov ax, strict word 00040h                ; b8 40 00
    7476     call 016b8h                               ; e8 91 c2
     7592    call 01749h                               ; e8 38 c2
    74777593    test AL, strict byte 008h                 ; a8 08
    7478     jne short 0541eh                          ; 75 f3
    7479     jmp near 052b4h                           ; e9 86 fe
     7594    jne short 05508h                          ; 75 f3
     7595    jmp near 0539eh                           ; e9 86 fe
    74807596    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    7481     jne near 052b4h                           ; 0f 85 7e fe
     7597    jne near 0539eh                           ; 0f 85 7e fe
    74827598    mov al, byte [bp-006h]                    ; 8a 46 fa
    74837599    and AL, strict byte 0dfh                  ; 24 df
     
    74867602    mov dx, strict word 00018h                ; ba 18 00
    74877603    mov ax, strict word 00040h                ; b8 40 00
    7488     call 016c6h                               ; e8 7c c2
    7489     jmp near 052b4h                           ; e9 67 fe
     7604    call 01757h                               ; e8 23 c2
     7605    jmp near 0539eh                           ; e9 67 fe
    74907606    test byte [bp-00eh], 002h                 ; f6 46 f2 02
    7491     je short 05487h                           ; 74 34
     7607    je short 05571h                           ; 74 34
    74927608    mov dx, strict word 0001ah                ; ba 1a 00
    74937609    mov ax, strict word 00040h                ; b8 40 00
    7494     call 016d4h                               ; e8 78 c2
     7610    call 01765h                               ; e8 1f c2
    74957611    mov bx, ax                                ; 89 c3
    74967612    mov dx, strict word 0001ch                ; ba 1c 00
    74977613    mov ax, strict word 00040h                ; b8 40 00
    7498     call 016e2h                               ; e8 7b c2
     7614    call 01773h                               ; e8 22 c2
    74997615    mov bx, 00080h                            ; bb 80 00
    75007616    mov dx, strict word 00071h                ; ba 71 00
    75017617    mov ax, strict word 00040h                ; b8 40 00
    7502     call 016c6h                               ; e8 53 c2
     7618    call 01757h                               ; e8 fa c1
    75037619    mov AL, strict byte 0aeh                  ; b0 ae
    75047620    mov dx, strict word 00064h                ; ba 64 00
     
    75097625    xor dx, dx                                ; 31 d2
    75107626    xor ax, ax                                ; 31 c0
    7511     call 0514eh                               ; e8 ca fc
    7512     jmp near 052b4h                           ; e9 2d fe
     7627    call 05238h                               ; e8 ca fc
     7628    jmp near 0539eh                           ; e9 2d fe
    75137629    mov al, byte [bp-006h]                    ; 8a 46 fa
    75147630    or AL, strict byte 010h                   ; 0c 10
     
    75177633    mov dx, strict word 00018h                ; ba 18 00
    75187634    mov ax, strict word 00040h                ; b8 40 00
    7519     call 016c6h                               ; e8 2b c2
     7635    call 01757h                               ; e8 d2 c1
    75207636    mov al, byte [bp-010h]                    ; 8a 46 f0
    75217637    xor AL, strict byte 010h                  ; 34 10
     
    75247640    mov dx, strict word 00017h                ; ba 17 00
    75257641    mov ax, strict word 00040h                ; b8 40 00
    7526     call 016c6h                               ; e8 17 c2
    7527     jmp near 052b4h                           ; e9 02 fe
     7642    call 01757h                               ; e8 be c1
     7643    jmp near 0539eh                           ; e9 02 fe
    75287644    test byte [bp-00eh], 002h                 ; f6 46 f2 02
    7529     jne near 052b4h                           ; 0f 85 fa fd
     7645    jne near 0539eh                           ; 0f 85 fa fd
    75307646    mov al, byte [bp-006h]                    ; 8a 46 fa
    75317647    and AL, strict byte 0efh                  ; 24 ef
     
    75347650    mov dx, strict word 00018h                ; ba 18 00
    75357651    mov ax, strict word 00040h                ; b8 40 00
    7536     call 016c6h                               ; e8 f8 c1
    7537     jmp near 052b4h                           ; e9 e3 fd
     7652    call 01757h                               ; e8 9f c1
     7653    jmp near 0539eh                           ; e9 e3 fd
    75387654    mov al, byte [bp-006h]                    ; 8a 46 fa
    75397655    test AL, strict byte 004h                 ; a8 04
    7540     jne near 052b4h                           ; 0f 85 da fd
     7656    jne near 0539eh                           ; 0f 85 da fd
    75417657    or AL, strict byte 004h                   ; 0c 04
    75427658    mov byte [bp-00ah], al                    ; 88 46 f6
     
    75447660    mov dx, strict word 00018h                ; ba 18 00
    75457661    mov ax, strict word 00040h                ; b8 40 00
    7546     call 016c6h                               ; e8 db c1
    7547     jmp near 052b4h                           ; e9 c6 fd
     7662    call 01757h                               ; e8 82 c1
     7663    jmp near 0539eh                           ; e9 c6 fd
    75487664    mov al, byte [bp-006h]                    ; 8a 46 fa
    75497665    and AL, strict byte 0fbh                  ; 24 fb
    7550     jmp short 054dch                          ; eb e7
     7666    jmp short 055c6h                          ; eb e7
    75517667    mov al, byte [bp-010h]                    ; 8a 46 f0
    75527668    and AL, strict byte 00ch                  ; 24 0c
    75537669    cmp AL, strict byte 00ch                  ; 3c 0c
    7554     jne short 0550fh                          ; 75 11
     7670    jne short 055f9h                          ; 75 11
    75557671    mov bx, 01234h                            ; bb 34 12
    75567672    mov dx, strict word 00072h                ; ba 72 00
    75577673    mov ax, strict word 00040h                ; b8 40 00
    7558     call 016e2h                               ; e8 d8 c1
     7674    call 01773h                               ; e8 7f c1
    75597675    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    75607676    test byte [bp-00ah], 008h                 ; f6 46 f6 08
    7561     je short 05523h                           ; 74 0e
     7677    je short 0560dh                           ; 74 0e
    75627678    and byte [bp-00ah], 0f7h                  ; 80 66 f6 f7
    75637679    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    75647680    mov dx, strict word 00018h                ; ba 18 00
    7565     jmp near 052cch                           ; e9 a9 fd
     7681    jmp near 053b6h                           ; e9 a9 fd
    75667682    mov al, byte [bp-00ch]                    ; 8a 46 f4
    75677683    test AL, strict byte 080h                 ; a8 80
    7568     je short 05561h                           ; 74 37
     7684    je short 0564bh                           ; 74 37
    75697685    cmp AL, strict byte 0fah                  ; 3c fa
    7570     jne short 0553eh                          ; 75 10
     7686    jne short 05628h                          ; 75 10
    75717687    mov dx, 00097h                            ; ba 97 00
    75727688    mov ax, strict word 00040h                ; b8 40 00
    7573     call 016b8h                               ; e8 81 c1
     7689    call 01749h                               ; e8 28 c1
    75747690    mov dl, al                                ; 88 c2
    75757691    or dl, 010h                               ; 80 ca 10
    7576     jmp short 05552h                          ; eb 14
     7692    jmp short 0563ch                          ; eb 14
    75777693    cmp AL, strict byte 0feh                  ; 3c fe
    7578     jne near 052b4h                           ; 0f 85 70 fd
     7694    jne near 0539eh                           ; 0f 85 70 fd
    75797695    mov dx, 00097h                            ; ba 97 00
    75807696    mov ax, strict word 00040h                ; b8 40 00
    7581     call 016b8h                               ; e8 6b c1
     7697    call 01749h                               ; e8 12 c1
    75827698    mov dl, al                                ; 88 c2
    75837699    or dl, 020h                               ; 80 ca 20
     
    75857701    mov dx, 00097h                            ; ba 97 00
    75867702    mov ax, strict word 00040h                ; b8 40 00
    7587     call 016c6h                               ; e8 68 c1
    7588     jmp near 052b4h                           ; e9 53 fd
     7703    call 01757h                               ; e8 0f c1
     7704    jmp near 0539eh                           ; e9 53 fd
    75897705    cmp byte [bp-00ch], 058h                  ; 80 7e f4 58
    7590     jbe short 05585h                          ; 76 1e
    7591     mov bx, 00da0h                            ; bb a0 0d
     7706    jbe short 0566fh                          ; 76 1e
     7707    mov bx, 00db2h                            ; bb b2 0d
    75927708    mov cx, ds                                ; 8c d9
    75937709    mov ax, strict word 00004h                ; b8 04 00
    7594     call 01999h                               ; e8 27 c4
     7710    call 01a2ah                               ; e8 ce c3
    75957711    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    75967712    push ax                                   ; 50
    7597     push 005a1h                               ; 68 a1 05
     7713    push 005b3h                               ; 68 b3 05
    75987714    push strict byte 00004h                   ; 6a 04
    7599     call 019dah                               ; e8 5b c4
     7715    call 01a6bh                               ; e8 02 c4
    76007716    add sp, strict byte 00006h                ; 83 c4 06
    7601     jmp near 052d2h                           ; e9 4d fd
     7717    jmp near 053bch                           ; e9 4d fd
    76027718    mov al, byte [bp-008h]                    ; 8a 46 f8
    76037719    test AL, strict byte 008h                 ; a8 08
    7604     je short 0559eh                           ; 74 12
     7720    je short 05688h                           ; 74 12
    76057721    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    76067722    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7607     mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
    7608     mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
    7609     jmp near 0562ch                           ; e9 8e 00
     7723    mov dl, byte [bx+00e06h]                  ; 8a 97 06 0e
     7724    mov ax, word [bx+00e06h]                  ; 8b 87 06 0e
     7725    jmp near 05716h                           ; e9 8e 00
    76107726    test AL, strict byte 004h                 ; a8 04
    7611     je short 055b4h                           ; 74 12
     7727    je short 0569eh                           ; 74 12
    76127728    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    76137729    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7614     mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
    7615     mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
    7616     jmp near 0562ch                           ; e9 78 00
     7730    mov dl, byte [bx+00e04h]                  ; 8a 97 04 0e
     7731    mov ax, word [bx+00e04h]                  ; 8b 87 04 0e
     7732    jmp near 05716h                           ; e9 78 00
    76177733    mov al, byte [bp-004h]                    ; 8a 46 fc
    76187734    and AL, strict byte 002h                  ; 24 02
    76197735    test al, al                               ; 84 c0
    7620     jbe short 055d2h                          ; 76 15
     7736    jbe short 056bch                          ; 76 15
    76217737    mov al, byte [bp-00ch]                    ; 8a 46 f4
    76227738    cmp AL, strict byte 047h                  ; 3c 47
    7623     jc short 055d2h                           ; 72 0e
     7739    jc short 056bch                           ; 72 0e
    76247740    cmp AL, strict byte 053h                  ; 3c 53
    7625     jnbe short 055d2h                         ; 77 0a
     7741    jnbe short 056bch                         ; 77 0a
    76267742    mov DL, strict byte 0e0h                  ; b2 e0
    76277743    movzx bx, al                              ; 0f b6 d8
    76287744    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7629     jmp short 05628h                          ; eb 56
     7745    jmp short 05712h                          ; eb 56
    76307746    test byte [bp-008h], 003h                 ; f6 46 f8 03
    7631     je short 05606h                           ; 74 2e
     7747    je short 056f0h                           ; 74 2e
    76327748    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    76337749    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7634     movzx ax, byte [bx+00df6h]                ; 0f b6 87 f6 0d
     7750    movzx ax, byte [bx+00e08h]                ; 0f b6 87 08 0e
    76357751    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    76367752    test dx, ax                               ; 85 c2
    7637     je short 055f6h                           ; 74 0a
    7638     mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
    7639     mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
    7640     jmp short 055feh                          ; eb 08
    7641     mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
    7642     mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
     7753    je short 056e0h                           ; 74 0a
     7754    mov dl, byte [bx+00e00h]                  ; 8a 97 00 0e
     7755    mov ax, word [bx+00e00h]                  ; 8b 87 00 0e
     7756    jmp short 056e8h                          ; eb 08
     7757    mov dl, byte [bx+00e02h]                  ; 8a 97 02 0e
     7758    mov ax, word [bx+00e02h]                  ; 8b 87 02 0e
    76437759    shr ax, 008h                              ; c1 e8 08
    76447760    mov byte [bp-00ch], al                    ; 88 46 f4
    7645     jmp short 05632h                          ; eb 2c
     7761    jmp short 0571ch                          ; eb 2c
    76467762    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    76477763    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7648     movzx ax, byte [bx+00df6h]                ; 0f b6 87 f6 0d
     7764    movzx ax, byte [bx+00e08h]                ; 0f b6 87 08 0e
    76497765    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    76507766    test dx, ax                               ; 85 c2
    7651     je short 05624h                           ; 74 0a
    7652     mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
    7653     mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
    7654     jmp short 0562ch                          ; eb 08
    7655     mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
    7656     mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
     7767    je short 0570eh                           ; 74 0a
     7768    mov dl, byte [bx+00e02h]                  ; 8a 97 02 0e
     7769    mov ax, word [bx+00e02h]                  ; 8b 87 02 0e
     7770    jmp short 05716h                          ; eb 08
     7771    mov dl, byte [bx+00e00h]                  ; 8a 97 00 0e
     7772    mov ax, word [bx+00e00h]                  ; 8b 87 00 0e
    76577773    shr ax, 008h                              ; c1 e8 08
    76587774    mov byte [bp-00ch], al                    ; 88 46 f4
    76597775    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    7660     jne short 05652h                          ; 75 1a
     7776    jne short 0573ch                          ; 75 1a
    76617777    test dl, dl                               ; 84 d2
    7662     jne short 05652h                          ; 75 16
    7663     mov bx, 00da0h                            ; bb a0 0d
     7778    jne short 0573ch                          ; 75 16
     7779    mov bx, 00db2h                            ; bb b2 0d
    76647780    mov cx, ds                                ; 8c d9
    76657781    mov ax, strict word 00004h                ; b8 04 00
    7666     call 01999h                               ; e8 52 c3
    7667     push 005d8h                               ; 68 d8 05
     7782    call 01a2ah                               ; e8 f9 c2
     7783    push 005eah                               ; 68 ea 05
    76687784    push strict byte 00004h                   ; 6a 04
    7669     call 019dah                               ; e8 8b c3
     7785    call 01a6bh                               ; e8 32 c3
    76707786    add sp, strict byte 00004h                ; 83 c4 04
    76717787    xor dh, dh                                ; 30 f6
    76727788    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    7673     jmp near 05481h                           ; e9 26 fe
    7674 dequeue_key_:                                ; 0xf565b LB 0x94
     7789    jmp near 0556bh                           ; e9 26 fe
     7790dequeue_key_:                                ; 0xf5745 LB 0x94
    76757791    push bp                                   ; 55
    76767792    mov bp, sp                                ; 89 e5
     
    76857801    mov dx, strict word 0001ah                ; ba 1a 00
    76867802    mov ax, strict word 00040h                ; b8 40 00
    7687     call 016d4h                               ; e8 5f c0
     7803    call 01765h                               ; e8 06 c0
    76887804    mov bx, ax                                ; 89 c3
    76897805    mov dx, strict word 0001ch                ; ba 1c 00
    76907806    mov ax, strict word 00040h                ; b8 40 00
    7691     call 016d4h                               ; e8 54 c0
     7807    call 01765h                               ; e8 fb bf
    76927808    cmp bx, ax                                ; 39 c3
    7693     je short 056c1h                           ; 74 3d
     7809    je short 057abh                           ; 74 3d
    76947810    mov dx, bx                                ; 89 da
    76957811    mov ax, strict word 00040h                ; b8 40 00
    7696     call 016b8h                               ; e8 2c c0
     7812    call 01749h                               ; e8 d3 bf
    76977813    mov cl, al                                ; 88 c1
    76987814    lea dx, [bx+001h]                         ; 8d 57 01
    76997815    mov ax, strict word 00040h                ; b8 40 00
    7700     call 016b8h                               ; e8 21 c0
     7816    call 01749h                               ; e8 c8 bf
    77017817    mov es, [bp-008h]                         ; 8e 46 f8
    77027818    mov byte [es:si], cl                      ; 26 88 0c
     
    77047820    mov byte [es:di], al                      ; 26 88 05
    77057821    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    7706     je short 056bch                           ; 74 13
     7822    je short 057a6h                           ; 74 13
    77077823    inc bx                                    ; 43
    77087824    inc bx                                    ; 43
    77097825    cmp bx, strict byte 0003eh                ; 83 fb 3e
    7710     jc short 056b3h                           ; 72 03
     7826    jc short 0579dh                           ; 72 03
    77117827    mov bx, strict word 0001eh                ; bb 1e 00
    77127828    mov dx, strict word 0001ah                ; ba 1a 00
    77137829    mov ax, strict word 00040h                ; b8 40 00
    7714     call 016e2h                               ; e8 26 c0
     7830    call 01773h                               ; e8 cd bf
    77157831    mov ax, strict word 00001h                ; b8 01 00
    7716     jmp short 056c3h                          ; eb 02
     7832    jmp short 057adh                          ; eb 02
    77177833    xor ax, ax                                ; 31 c0
    77187834    lea sp, [bp-004h]                         ; 8d 66 fc
     
    77257841    or cl, byte [bx+di]                       ; 0a 09
    77267842    add ax, 00102h                            ; 05 02 01
    7727     add byte [di-05ca7h], cl                  ; 00 8d 59 a3
    7728     push di                                   ; 57
    7729     jmp far 04658h:03657h                     ; ea 57 36 58 46
     7843    add byte [bx+05ah], dh                    ; 00 77 5a
     7844    lea bx, [bx+si-02ch]                      ; 8d 58 d4
    77307845    pop ax                                    ; 58
    7731     jo short 0573bh                           ; 70 58
    7732     jns short 0573dh                          ; 79 58
    7733     jmp far 04859h:01b58h                     ; ea 58 1b 59 48
     7846    and byte [bx+di+030h], bl                 ; 20 59 30
    77347847    pop cx                                    ; 59
    7735     db  082h, 059h, 0d0h, 059h
    7736     ; sbb byte [bx+di-030h], 059h               ; 82 59 d0 59
    7737 _int16_function:                             ; 0xf56ef LB 0x2e7
     7848    pop dx                                    ; 5a
     7849    pop cx                                    ; 59
     7850    arpl [bx+di-02ch], bx                     ; 63 59 d4
     7851    pop cx                                    ; 59
     7852    add ax, 0325ah                            ; 05 5a 32
     7853    pop dx                                    ; 5a
     7854    insb                                      ; 6c
     7855    pop dx                                    ; 5a
     7856    db  0bah
     7857    pop dx                                    ; 5a
     7858_int16_function:                             ; 0xf57d9 LB 0x2e7
    77387859    push bp                                   ; 55
    77397860    mov bp, sp                                ; 89 e5
     
    77427863    mov dx, strict word 00017h                ; ba 17 00
    77437864    mov ax, strict word 00040h                ; b8 40 00
    7744     call 016b8h                               ; e8 b9 bf
     7865    call 01749h                               ; e8 60 bf
    77457866    mov cl, al                                ; 88 c1
    77467867    mov bh, al                                ; 88 c7
    77477868    mov dx, 00097h                            ; ba 97 00
    77487869    mov ax, strict word 00040h                ; b8 40 00
    7749     call 016b8h                               ; e8 ac bf
     7870    call 01749h                               ; e8 53 bf
    77507871    mov bl, al                                ; 88 c3
    77517872    movzx dx, cl                              ; 0f b6 d1
     
    77567877    xor al, dl                                ; 30 d0
    77577878    test ax, ax                               ; 85 c0
    7758     je short 05781h                           ; 74 60
     7879    je short 0586bh                           ; 74 60
    77597880    cli                                       ; fa
    77607881    mov AL, strict byte 0edh                  ; b0 ed
     
    77667887    ; sub ah, ah                                ; 2a e4
    77677888    test AL, strict byte 001h                 ; a8 01
    7768     jne short 0573ah                          ; 75 08
     7889    jne short 05824h                          ; 75 08
    77697890    mov AL, strict byte 021h                  ; b0 21
    77707891    mov dx, 00080h                            ; ba 80 00
    77717892    out DX, AL                                ; ee
    7772     jmp short 05728h                          ; eb ee
     7893    jmp short 05812h                          ; eb ee
    77737894    mov dx, strict word 00060h                ; ba 60 00
    77747895    in AL, DX                                 ; ec
     
    77767897    ; sub ah, ah                                ; 2a e4
    77777898    cmp ax, 000fah                            ; 3d fa 00
    7778     jne short 05780h                          ; 75 3b
     7899    jne short 0586ah                          ; 75 3b
    77797900    and bl, 0c8h                              ; 80 e3 c8
    77807901    movzx ax, bh                              ; 0f b6 c7
     
    77927913    ; sub ah, ah                                ; 2a e4
    77937914    test AL, strict byte 001h                 ; a8 01
    7794     jne short 0576fh                          ; 75 08
     7915    jne short 05859h                          ; 75 08
    77957916    mov AL, strict byte 021h                  ; b0 21
    77967917    mov dx, 00080h                            ; ba 80 00
    77977918    out DX, AL                                ; ee
    7798     jmp short 0575dh                          ; eb ee
     7919    jmp short 05847h                          ; eb ee
    77997920    mov dx, strict word 00060h                ; ba 60 00
    78007921    in AL, DX                                 ; ec
     
    78047925    mov dx, 00097h                            ; ba 97 00
    78057926    mov ax, strict word 00040h                ; b8 40 00
    7806     call 016c6h                               ; e8 46 bf
     7927    call 01757h                               ; e8 ed be
    78077928    sti                                       ; fb
    78087929    mov ax, word [bp+012h]                    ; 8b 46 12
    78097930    shr ax, 008h                              ; c1 e8 08
    78107931    cmp ax, 000a2h                            ; 3d a2 00
    7811     jnbe near 0598dh                          ; 0f 87 ff 01
     7932    jnbe near 05a77h                          ; 0f 87 ff 01
    78127933    push CS                                   ; 0e
    78137934    pop ES                                    ; 07
    78147935    mov cx, strict word 0000ch                ; b9 0c 00
    7815     mov di, 056cch                            ; bf cc 56
     7936    mov di, 057b6h                            ; bf b6 57
    78167937    repne scasb                               ; f2 ae
    78177938    sal cx, 1                                 ; d1 e1
    78187939    mov di, cx                                ; 89 cf
    7819     mov ax, word [cs:di+056d7h]               ; 2e 8b 85 d7 56
     7940    mov ax, word [cs:di+057c1h]               ; 2e 8b 85 c1 57
    78207941    jmp ax                                    ; ff e0
    78217942    push strict byte 00001h                   ; 6a 01
     
    78247945    mov dx, ss                                ; 8c d2
    78257946    lea ax, [bp-006h]                         ; 8d 46 fa
    7826     call 0565bh                               ; e8 a9 fe
     7947    call 05745h                               ; e8 a9 fe
    78277948    test ax, ax                               ; 85 c0
    7828     jne short 057c1h                          ; 75 0b
    7829     push 0060fh                               ; 68 0f 06
     7949    jne short 058abh                          ; 75 0b
     7950    push 00621h                               ; 68 21 06
    78307951    push strict byte 00007h                   ; 6a 07
    7831     call 019dah                               ; e8 1c c2
     7952    call 01a6bh                               ; e8 c3 c1
    78327953    add sp, strict byte 00004h                ; 83 c4 04
    78337954    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7834     je short 057cdh                           ; 74 06
     7955    je short 058b7h                           ; 74 06
    78357956    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7836     je short 057d3h                           ; 74 06
     7957    je short 058bdh                           ; 74 06
    78377958    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7838     jne short 057d7h                          ; 75 04
     7959    jne short 058c1h                          ; 75 04
    78397960    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    78407961    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    78437964    or dx, ax                                 ; 09 c2
    78447965    mov word [bp+012h], dx                    ; 89 56 12
    7845     jmp near 059d0h                           ; e9 e6 01
     7966    jmp near 05abah                           ; e9 e6 01
    78467967    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    78477968    push strict byte 00000h                   ; 6a 00
     
    78507971    mov dx, ss                                ; 8c d2
    78517972    lea ax, [bp-006h]                         ; 8d 46 fa
    7852     call 0565bh                               ; e8 5d fe
     7973    call 05745h                               ; e8 5d fe
    78537974    test ax, ax                               ; 85 c0
    7854     jne short 05809h                          ; 75 07
     7975    jne short 058f3h                          ; 75 07
    78557976    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
    7856     jmp near 059d0h                           ; e9 c7 01
     7977    jmp near 05abah                           ; e9 c7 01
    78577978    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7858     je short 05815h                           ; 74 06
     7979    je short 058ffh                           ; 74 06
    78597980    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7860     je short 0581bh                           ; 74 06
     7981    je short 05905h                           ; 74 06
    78617982    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7862     jne short 0581fh                          ; 75 04
     7983    jne short 05909h                          ; 75 04
    78637984    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    78647985    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    78687989    mov word [bp+012h], dx                    ; 89 56 12
    78697990    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
    7870     jmp near 059d0h                           ; e9 9a 01
     7991    jmp near 05abah                           ; e9 9a 01
    78717992    mov dx, strict word 00017h                ; ba 17 00
    78727993    mov ax, strict word 00040h                ; b8 40 00
    7873     call 016b8h                               ; e8 79 be
     7994    call 01749h                               ; e8 20 be
    78747995    mov dx, word [bp+012h]                    ; 8b 56 12
    78757996    mov dl, al                                ; 88 c2
    7876     jmp short 057e4h                          ; eb 9e
     7997    jmp short 058ceh                          ; eb 9e
    78777998    mov al, byte [bp+010h]                    ; 8a 46 10
    78787999    movzx dx, al                              ; 0f b6 d0
     
    78808001    shr ax, 008h                              ; c1 e8 08
    78818002    xor ah, ah                                ; 30 e4
    7882     call 0514eh                               ; e8 f7 f8
     8003    call 05238h                               ; e8 f7 f8
    78838004    test ax, ax                               ; 85 c0
    7884     jne short 05868h                          ; 75 0d
     8005    jne short 05952h                          ; 75 0d
    78858006    mov ax, word [bp+012h]                    ; 8b 46 12
    78868007    xor al, al                                ; 30 c0
    78878008    or AL, strict byte 001h                   ; 0c 01
    78888009    mov word [bp+012h], ax                    ; 89 46 12
    7889     jmp near 059d0h                           ; e9 68 01
     8010    jmp near 05abah                           ; e9 68 01
    78908011    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    7891     jmp near 059d0h                           ; e9 60 01
     8012    jmp near 05abah                           ; e9 60 01
    78928013    mov ax, word [bp+012h]                    ; 8b 46 12
    78938014    xor al, al                                ; 30 c0
    78948015    or AL, strict byte 030h                   ; 0c 30
    7895     jmp short 05862h                          ; eb e9
     8016    jmp short 0594ch                          ; eb e9
    78968017    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    78978018    xor cx, cx                                ; 31 c9
     
    79068027    ; sub ah, ah                                ; 2a e4
    79078028    test AL, strict byte 001h                 ; a8 01
    7908     jne short 058a0h                          ; 75 0d
     8029    jne short 0598ah                          ; 75 0d
    79098030    dec bx                                    ; 4b
    79108031    test bx, bx                               ; 85 db
    7911     jbe short 058a0h                          ; 76 08
     8032    jbe short 0598ah                          ; 76 08
    79128033    mov dx, 00080h                            ; ba 80 00
    79138034    in AL, DX                                 ; ec
    79148035    db  02ah, 0e4h
    79158036    ; sub ah, ah                                ; 2a e4
    7916     jmp short 05889h                          ; eb e9
     8037    jmp short 05973h                          ; eb e9
    79178038    test bx, bx                               ; 85 db
    7918     jbe short 058e4h                          ; 76 40
     8039    jbe short 059ceh                          ; 76 40
    79198040    mov dx, strict word 00060h                ; ba 60 00
    79208041    in AL, DX                                 ; ec
     
    79228043    ; sub ah, ah                                ; 2a e4
    79238044    cmp ax, 000fah                            ; 3d fa 00
    7924     jne short 058e4h                          ; 75 35
     8045    jne short 059ceh                          ; 75 35
    79258046    mov bx, strict word 0ffffh                ; bb ff ff
    79268047    mov dx, strict word 00064h                ; ba 64 00
     
    79298050    ; sub ah, ah                                ; 2a e4
    79308051    test AL, strict byte 001h                 ; a8 01
    7931     jne short 058c9h                          ; 75 0d
     8052    jne short 059b3h                          ; 75 0d
    79328053    dec bx                                    ; 4b
    79338054    test bx, bx                               ; 85 db
    7934     jbe short 058c9h                          ; 76 08
     8055    jbe short 059b3h                          ; 76 08
    79358056    mov dx, 00080h                            ; ba 80 00
    79368057    in AL, DX                                 ; ec
    79378058    db  02ah, 0e4h
    79388059    ; sub ah, ah                                ; 2a e4
    7939     jmp short 058b2h                          ; eb e9
     8060    jmp short 0599ch                          ; eb e9
    79408061    test bx, bx                               ; 85 db
    7941     jbe short 058dbh                          ; 76 0e
     8062    jbe short 059c5h                          ; 76 0e
    79428063    shr cx, 008h                              ; c1 e9 08
    79438064    mov dx, strict word 00060h                ; ba 60 00
     
    79498070    dec byte [bp-004h]                        ; fe 4e fc
    79508071    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7951     jnbe short 058afh                         ; 77 cb
     8072    jnbe short 05999h                         ; 77 cb
    79528073    mov word [bp+00ch], cx                    ; 89 4e 0c
    7953     jmp near 059d0h                           ; e9 e6 00
     8074    jmp near 05abah                           ; e9 e6 00
    79548075    push strict byte 00001h                   ; 6a 01
    79558076    mov cx, ss                                ; 8c d1
     
    79578078    mov dx, ss                                ; 8c d2
    79588079    lea ax, [bp-006h]                         ; 8d 46 fa
    7959     call 0565bh                               ; e8 62 fd
     8080    call 05745h                               ; e8 62 fd
    79608081    test ax, ax                               ; 85 c0
    7961     jne short 05908h                          ; 75 0b
    7962     push 0060fh                               ; 68 0f 06
     8082    jne short 059f2h                          ; 75 0b
     8083    push 00621h                               ; 68 21 06
    79638084    push strict byte 00007h                   ; 6a 07
    7964     call 019dah                               ; e8 d5 c0
     8085    call 01a6bh                               ; e8 7c c0
    79658086    add sp, strict byte 00004h                ; 83 c4 04
    79668087    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7967     je near 057d7h                            ; 0f 84 c7 fe
     8088    je near 058c1h                            ; 0f 84 c7 fe
    79688089    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7969     je near 057d3h                            ; 0f 84 bb fe
    7970     jmp near 057d7h                           ; e9 bc fe
     8090    je near 058bdh                            ; 0f 84 bb fe
     8091    jmp near 058c1h                           ; e9 bc fe
    79718092    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    79728093    push strict byte 00000h                   ; 6a 00
     
    79758096    mov dx, ss                                ; 8c d2
    79768097    lea ax, [bp-006h]                         ; 8d 46 fa
    7977     call 0565bh                               ; e8 2c fd
     8098    call 05745h                               ; e8 2c fd
    79788099    test ax, ax                               ; 85 c0
    7979     je near 05802h                            ; 0f 84 cd fe
     8100    je near 058ech                            ; 0f 84 cd fe
    79808101    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7981     je near 0581fh                            ; 0f 84 e2 fe
     8102    je near 05909h                            ; 0f 84 e2 fe
    79828103    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7983     je near 0581bh                            ; 0f 84 d6 fe
    7984     jmp near 0581fh                           ; e9 d7 fe
     8104    je near 05905h                            ; 0f 84 d6 fe
     8105    jmp near 05909h                           ; e9 d7 fe
    79858106    mov dx, strict word 00017h                ; ba 17 00
    79868107    mov ax, strict word 00040h                ; b8 40 00
    7987     call 016b8h                               ; e8 67 bd
     8108    call 01749h                               ; e8 0e bd
    79888109    mov dx, word [bp+012h]                    ; 8b 56 12
    79898110    mov dl, al                                ; 88 c2
     
    79918112    mov dx, strict word 00018h                ; ba 18 00
    79928113    mov ax, strict word 00040h                ; b8 40 00
    7993     call 016b8h                               ; e8 56 bd
     8114    call 01749h                               ; e8 fd bc
    79948115    mov bh, al                                ; 88 c7
    79958116    and bh, 073h                              ; 80 e7 73
    79968117    mov dx, 00096h                            ; ba 96 00
    79978118    mov ax, strict word 00040h                ; b8 40 00
    7998     call 016b8h                               ; e8 48 bd
     8119    call 01749h                               ; e8 ef bc
    79998120    and AL, strict byte 00ch                  ; 24 0c
    80008121    or bh, al                                 ; 08 c7
     
    80038124    movzx ax, bh                              ; 0f b6 c7
    80048125    sal ax, 008h                              ; c1 e0 08
    8005     jmp near 057e2h                           ; e9 60 fe
     8126    jmp near 058cch                           ; e9 60 fe
    80068127    mov ax, word [bp+012h]                    ; 8b 46 12
    80078128    xor ah, ah                                ; 30 e4
    80088129    or ah, 080h                               ; 80 cc 80
    8009     jmp near 05862h                           ; e9 d5 fe
    8010     mov bx, 00da0h                            ; bb a0 0d
     8130    jmp near 0594ch                           ; e9 d5 fe
     8131    mov bx, 00db2h                            ; bb b2 0d
    80118132    mov cx, ds                                ; 8c d9
    80128133    mov ax, strict word 00004h                ; b8 04 00
    8013     call 01999h                               ; e8 01 c0
     8134    call 01a2ah                               ; e8 a8 bf
    80148135    mov ax, word [bp+012h]                    ; 8b 46 12
    80158136    shr ax, 008h                              ; c1 e8 08
    80168137    push ax                                   ; 50
    8017     push 00633h                               ; 68 33 06
     8138    push 00645h                               ; 68 45 06
    80188139    push strict byte 00004h                   ; 6a 04
    8019     call 019dah                               ; e8 33 c0
     8140    call 01a6bh                               ; e8 da bf
    80208141    add sp, strict byte 00006h                ; 83 c4 06
    8021     mov bx, 00da0h                            ; bb a0 0d
     8142    mov bx, 00db2h                            ; bb b2 0d
    80228143    mov cx, ds                                ; 8c d9
    80238144    mov ax, strict word 00004h                ; b8 04 00
    8024     call 01999h                               ; e8 e4 bf
     8145    call 01a2ah                               ; e8 8b bf
    80258146    mov ax, word [bp+00eh]                    ; 8b 46 0e
    80268147    push ax                                   ; 50
     
    80318152    mov ax, word [bp+012h]                    ; 8b 46 12
    80328153    push ax                                   ; 50
    8033     push 0065bh                               ; 68 5b 06
     8154    push 0066dh                               ; 68 6d 06
    80348155    push strict byte 00004h                   ; 6a 04
    8035     call 019dah                               ; e8 0d c0
     8156    call 01a6bh                               ; e8 b4 bf
    80368157    add sp, strict byte 0000ch                ; 83 c4 0c
    80378158    lea sp, [bp-002h]                         ; 8d 66 fe
     
    80398160    pop bp                                    ; 5d
    80408161    retn                                      ; c3
    8041 set_geom_lba_:                               ; 0xf59d6 LB 0xe5
     8162set_geom_lba_:                               ; 0xf5ac0 LB 0xe5
    80428163    push bx                                   ; 53
    80438164    push cx                                   ; 51
     
    80548175    mov dx, word [bp+00ch]                    ; 8b 56 0c
    80558176    mov si, strict word 00020h                ; be 20 00
    8056     call 09f40h                               ; e8 3f 45
     8177    call 0a030h                               ; e8 45 45
    80578178    test ax, ax                               ; 85 c0
    8058     jne short 05a11h                          ; 75 0c
     8179    jne short 05afbh                          ; 75 0c
    80598180    test bx, bx                               ; 85 db
    8060     jne short 05a11h                          ; 75 08
     8181    jne short 05afbh                          ; 75 08
    80618182    test cx, cx                               ; 85 c9
    8062     jne short 05a11h                          ; 75 04
     8183    jne short 05afbh                          ; 75 04
    80638184    test dx, dx                               ; 85 d2
    8064     je short 05a18h                           ; 74 07
     8185    je short 05b02h                           ; 74 07
    80658186    mov bx, strict word 0ffffh                ; bb ff ff
    80668187    mov si, bx                                ; 89 de
    8067     jmp short 05a1eh                          ; eb 06
     8188    jmp short 05b08h                          ; eb 06
    80688189    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    80698190    mov si, word [bp+00eh]                    ; 8b 76 0e
    80708191    mov word [bp-004h], bx                    ; 89 5e fc
    80718192    xor bx, bx                                ; 31 db
    8072     jmp short 05a2ah                          ; eb 05
     8193    jmp short 05b14h                          ; eb 05
    80738194    cmp bx, strict byte 00004h                ; 83 fb 04
    8074     jnl short 05a4dh                          ; 7d 23
     8195    jnl short 05b37h                          ; 7d 23
    80758196    mov ax, word [bp-006h]                    ; 8b 46 fa
    80768197    cmp si, ax                                ; 39 c6
    8077     jc short 05a3bh                           ; 72 0a
    8078     jne short 05a44h                          ; 75 11
     8198    jc short 05b25h                           ; 72 0a
     8199    jne short 05b2eh                          ; 75 11
    80798200    mov ax, word [bp-004h]                    ; 8b 46 fc
    80808201    cmp ax, word [bp-008h]                    ; 3b 46 f8
    8081     jnbe short 05a44h                         ; 77 09
     8202    jnbe short 05b2eh                         ; 77 09
    80828203    mov ax, word [bp-002h]                    ; 8b 46 fe
    80838204    inc ax                                    ; 40
     
    80878208    rcr word [bp-008h], 1                     ; d1 5e f8
    80888209    inc bx                                    ; 43
    8089     jmp short 05a25h                          ; eb d8
     8210    jmp short 05b0fh                          ; eb d8
    80908211    mov ax, word [bp-002h]                    ; 8b 46 fe
    80918212    xor dx, dx                                ; 31 d2
    80928213    mov bx, strict word 0003fh                ; bb 3f 00
    80938214    xor cx, cx                                ; 31 c9
    8094     call 09ec0h                               ; e8 66 44
     8215    call 09fb0h                               ; e8 6c 44
    80958216    mov bx, ax                                ; 89 c3
    80968217    mov cx, dx                                ; 89 d1
    80978218    mov ax, word [bp-004h]                    ; 8b 46 fc
    80988219    mov dx, si                                ; 89 f2
    8099     call 09f00h                               ; e8 9a 44
     8220    call 09ff0h                               ; e8 a0 44
    81008221    mov word [es:di+002h], ax                 ; 26 89 45 02
    81018222    cmp ax, 00400h                            ; 3d 00 04
    8102     jbe short 05a75h                          ; 76 06
     8223    jbe short 05b5fh                          ; 76 06
    81038224    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
    81048225    mov ax, word [bp-002h]                    ; 8b 46 fe
     
    81118232    pop bx                                    ; 5b
    81128233    retn 00008h                               ; c2 08 00
    8113     inc bp                                    ; 45
    8114     pop bx                                    ; 5b
    8115     imul bx, word [bp+di-068h], strict byte 0005bh ; 6b 5b 98 5b
    8116     cbw                                       ; 98
    8117     pop bx                                    ; 5b
    8118     cbw                                       ; 98
    8119     pop bx                                    ; 5b
    8120     jns short 05af2h                          ; 79 5d
    8121     cmpsw                                     ; a7
    8122     pop si                                    ; 5e
    8123     cmpsw                                     ; a7
    8124     pop si                                    ; 5e
    8125     xchg dx, ax                               ; 92
    8126     pop bp                                    ; 5d
    8127     test byte [bp-059h], bl                   ; 84 5e a7
    8128     pop si                                    ; 5e
    8129     cmpsw                                     ; a7
    8130     pop si                                    ; 5e
    8131     test byte [bp-07ch], bl                   ; 84 5e 84
    8132     pop si                                    ; 5e
    8133     cmpsw                                     ; a7
    8134     pop si                                    ; 5e
    8135     cmpsw                                     ; a7
    8136     pop si                                    ; 5e
    8137     or byte [bp-07ch], bl                     ; 08 5e 84
    8138     pop si                                    ; 5e
    8139     cmpsw                                     ; a7
    8140     pop si                                    ; 5e
    8141     cmpsw                                     ; a7
    8142     pop si                                    ; 5e
    8143     test byte [bp+038h], bl                   ; 84 5e 38
    8144     pop si                                    ; 5e
    8145     cmpsw                                     ; a7
    8146     pop si                                    ; 5e
    8147     cmpsw                                     ; a7
    8148     pop si                                    ; 5e
    8149     cmpsw                                     ; a7
    8150     pop si                                    ; 5e
    8151 _int13_harddisk:                             ; 0xf5abb LB 0x44a
     8234    das                                       ; 2f
     8235    pop sp                                    ; 5c
     8236    push bp                                   ; 55
     8237    pop sp                                    ; 5c
     8238    db  082h, 05ch, 082h, 05ch
     8239    ; sbb byte [si-07eh], 05ch                  ; 82 5c 82 5c
     8240    db  082h, 05ch, 063h, 05eh
     8241    ; sbb byte [si+063h], 05eh                  ; 82 5c 63 5e
     8242    xchg cx, ax                               ; 91
     8243    pop di                                    ; 5f
     8244    xchg cx, ax                               ; 91
     8245    pop di                                    ; 5f
     8246    jl short 05be3h                           ; 7c 5e
     8247    outsb                                     ; 6e
     8248    pop di                                    ; 5f
     8249    xchg cx, ax                               ; 91
     8250    pop di                                    ; 5f
     8251    xchg cx, ax                               ; 91
     8252    pop di                                    ; 5f
     8253    outsb                                     ; 6e
     8254    pop di                                    ; 5f
     8255    outsb                                     ; 6e
     8256    pop di                                    ; 5f
     8257    xchg cx, ax                               ; 91
     8258    pop di                                    ; 5f
     8259    xchg cx, ax                               ; 91
     8260    pop di                                    ; 5f
     8261    db  0f2h, 05eh
     8262    ; repne pop si                              ; f2 5e
     8263    outsb                                     ; 6e
     8264    pop di                                    ; 5f
     8265    xchg cx, ax                               ; 91
     8266    pop di                                    ; 5f
     8267    xchg cx, ax                               ; 91
     8268    pop di                                    ; 5f
     8269    outsb                                     ; 6e
     8270    pop di                                    ; 5f
     8271    and bl, byte [bx-06fh]                    ; 22 5f 91
     8272    pop di                                    ; 5f
     8273    xchg cx, ax                               ; 91
     8274    pop di                                    ; 5f
     8275    xchg cx, ax                               ; 91
     8276    pop di                                    ; 5f
     8277_int13_harddisk:                             ; 0xf5ba5 LB 0x44a
    81528278    push bp                                   ; 55
    81538279    mov bp, sp                                ; 89 e5
     
    81558281    mov dx, strict word 0000eh                ; ba 0e 00
    81568282    mov ax, strict word 00040h                ; b8 40 00
    8157     call 016d4h                               ; e8 0a bc
     8283    call 01765h                               ; e8 b1 bb
    81588284    mov si, 00122h                            ; be 22 01
    81598285    mov word [bp-004h], ax                    ; 89 46 fc
     
    81618287    mov dx, 0008eh                            ; ba 8e 00
    81628288    mov ax, strict word 00040h                ; b8 40 00
    8163     call 016c6h                               ; e8 eb bb
     8289    call 01757h                               ; e8 92 bb
    81648290    mov ax, word [bp+00eh]                    ; 8b 46 0e
    81658291    xor ah, ah                                ; 30 e4
    81668292    cmp ax, 00080h                            ; 3d 80 00
    8167     jc short 05aeah                           ; 72 05
     8293    jc short 05bd4h                           ; 72 05
    81688294    cmp ax, 00090h                            ; 3d 90 00
    8169     jc short 05b08h                           ; 72 1e
     8295    jc short 05bf2h                           ; 72 1e
    81708296    mov ax, word [bp+00eh]                    ; 8b 46 0e
    81718297    xor ah, ah                                ; 30 e4
     
    81748300    shr ax, 008h                              ; c1 e8 08
    81758301    push ax                                   ; 50
    8176     push 0067eh                               ; 68 7e 06
    8177     push 0068dh                               ; 68 8d 06
     8302    push 00690h                               ; 68 90 06
     8303    push 0069fh                               ; 68 9f 06
    81788304    push strict byte 00004h                   ; 6a 04
    8179     call 019dah                               ; e8 d8 be
     8305    call 01a6bh                               ; e8 7f be
    81808306    add sp, strict byte 0000ah                ; 83 c4 0a
    8181     jmp near 05ec2h                           ; e9 ba 03
     8307    jmp near 05fach                           ; e9 ba 03
    81828308    mov ax, word [bp+00eh]                    ; 8b 46 0e
    81838309    xor ah, ah                                ; 30 e4
     
    81888314    mov byte [bp-002h], dl                    ; 88 56 fe
    81898315    cmp dl, 010h                              ; 80 fa 10
    8190     jc short 05b31h                           ; 72 10
     8316    jc short 05c1bh                           ; 72 10
    81918317    push ax                                   ; 50
    81928318    mov ax, word [bp+016h]                    ; 8b 46 16
    81938319    shr ax, 008h                              ; c1 e8 08
    81948320    push ax                                   ; 50
    8195     push 0067eh                               ; 68 7e 06
    8196     push 006b8h                               ; 68 b8 06
    8197     jmp short 05afdh                          ; eb cc
     8321    push 00690h                               ; 68 90 06
     8322    push 006cah                               ; 68 ca 06
     8323    jmp short 05be7h                          ; eb cc
    81988324    mov bx, word [bp+016h]                    ; 8b 5e 16
    81998325    shr bx, 008h                              ; c1 eb 08
    82008326    cmp bx, strict byte 00018h                ; 83 fb 18
    8201     jnbe near 05ea7h                          ; 0f 87 69 03
     8327    jnbe near 05f91h                          ; 0f 87 69 03
    82028328    add bx, bx                                ; 01 db
    8203     jmp word [cs:bx+05a89h]                   ; 2e ff a7 89 5a
     8329    jmp word [cs:bx+05b73h]                   ; 2e ff a7 73 5b
    82048330    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8205     jnc near 05b54h                           ; 0f 83 07 00
     8331    jnc near 05c3eh                           ; 0f 83 07 00
    82068332    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    8207     call 01de4h                               ; e8 90 c2
     8333    call 01e75h                               ; e8 37 c2
    82088334    mov byte [bp+017h], 000h                  ; c6 46 17 00
    82098335    xor bx, bx                                ; 31 db
    82108336    mov dx, strict word 00074h                ; ba 74 00
    82118337    mov ax, strict word 00040h                ; b8 40 00
    8212     call 016c6h                               ; e8 63 bb
     8338    call 01757h                               ; e8 0a bb
    82138339    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    82148340    mov sp, bp                                ; 89 ec
     
    82178343    mov dx, strict word 00074h                ; ba 74 00
    82188344    mov ax, strict word 00040h                ; b8 40 00
    8219     call 016b8h                               ; e8 44 bb
     8345    call 01749h                               ; e8 eb ba
    82208346    mov cl, al                                ; 88 c1
    82218347    mov dx, word [bp+016h]                    ; 8b 56 16
     
    82288354    mov dx, strict word 00074h                ; ba 74 00
    82298355    mov ax, strict word 00040h                ; b8 40 00
    8230     call 016c6h                               ; e8 35 bb
     8356    call 01757h                               ; e8 dc ba
    82318357    test cl, cl                               ; 84 c9
    8232     je short 05b58h                           ; 74 c3
    8233     jmp near 05edeh                           ; e9 46 03
     8358    je short 05c42h                           ; 74 c3
     8359    jmp near 05fc8h                           ; e9 46 03
    82348360    mov ax, word [bp+016h]                    ; 8b 46 16
    82358361    xor ah, ah                                ; 30 e4
     
    82518377    mov ax, word [bp-00ch]                    ; 8b 46 f4
    82528378    cmp ax, 00080h                            ; 3d 80 00
    8253     jnbe short 05bd3h                         ; 77 04
     8379    jnbe short 05cbdh                         ; 77 04
    82548380    test ax, ax                               ; 85 c0
    8255     jne short 05bf6h                          ; 75 23
    8256     mov bx, 00da0h                            ; bb a0 0d
     8381    jne short 05ce0h                          ; 75 23
     8382    mov bx, 00db2h                            ; bb b2 0d
    82578383    mov cx, ds                                ; 8c d9
    82588384    mov ax, strict word 00004h                ; b8 04 00
    8259     call 01999h                               ; e8 bb bd
     8385    call 01a2ah                               ; e8 62 bd
    82608386    mov ax, word [bp+016h]                    ; 8b 46 16
    82618387    shr ax, 008h                              ; c1 e8 08
    82628388    push ax                                   ; 50
    8263     push 0067eh                               ; 68 7e 06
    8264     push 006eah                               ; 68 ea 06
     8389    push 00690h                               ; 68 90 06
     8390    push 006fch                               ; 68 fc 06
    82658391    push strict byte 00004h                   ; 6a 04
    8266     call 019dah                               ; e8 ea bd
     8392    call 01a6bh                               ; e8 91 bd
    82678393    add sp, strict byte 00008h                ; 83 c4 08
    8268     jmp near 05ec2h                           ; e9 cc 02
     8394    jmp near 05fach                           ; e9 cc 02
    82698395    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    82708396    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    82778403    mov word [bp-00ah], dx                    ; 89 56 f6
    82788404    cmp di, ax                                ; 39 c7
    8279     jnc short 05c23h                          ; 73 0c
     8405    jnc short 05d0dh                          ; 73 0c
    82808406    cmp cx, word [bp-008h]                    ; 3b 4e f8
    8281     jbe short 05c23h                          ; 76 07
     8407    jbe short 05d0dh                          ; 76 07
    82828408    mov ax, word [bp-006h]                    ; 8b 46 fa
    82838409    cmp ax, dx                                ; 39 d0
    8284     jbe short 05c51h                          ; 76 2e
    8285     mov bx, 00da0h                            ; bb a0 0d
     8410    jbe short 05d3bh                          ; 76 2e
     8411    mov bx, 00db2h                            ; bb b2 0d
    82868412    mov cx, ds                                ; 8c d9
    82878413    mov ax, strict word 00004h                ; b8 04 00
    8288     call 01999h                               ; e8 6b bd
     8414    call 01a2ah                               ; e8 12 bd
    82898415    push dword [bp-008h]                      ; 66 ff 76 f8
    82908416    push di                                   ; 57
     
    82958421    shr ax, 008h                              ; c1 e8 08
    82968422    push ax                                   ; 50
    8297     push 0067eh                               ; 68 7e 06
    8298     push 00712h                               ; 68 12 07
     8423    push 00690h                               ; 68 90 06
     8424    push 00724h                               ; 68 24 07
    82998425    push strict byte 00004h                   ; 6a 04
    8300     call 019dah                               ; e8 8f bd
     8426    call 01a6bh                               ; e8 36 bd
    83018427    add sp, strict byte 00010h                ; 83 c4 10
    8302     jmp near 05ec2h                           ; e9 71 02
     8428    jmp near 05fach                           ; e9 71 02
    83038429    mov ax, word [bp+016h]                    ; 8b 46 16
    83048430    shr ax, 008h                              ; c1 e8 08
    83058431    cmp ax, strict word 00004h                ; 3d 04 00
    8306     jne short 05c5fh                          ; 75 03
    8307     jmp near 05b54h                           ; e9 f5 fe
     8432    jne short 05d49h                          ; 75 03
     8433    jmp near 05c3eh                           ; e9 f5 fe
    83088434    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    83098435    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    83118437    add bx, si                                ; 01 f3
    83128438    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
    8313     jne short 05c80h                          ; 75 0f
     8439    jne short 05d6ah                          ; 75 0f
    83148440    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    83158441    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    8316     jne short 05c80h                          ; 75 06
     8442    jne short 05d6ah                          ; 75 06
    83178443    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8318     jc short 05cb0h                           ; 72 30
     8444    jc short 05d9ah                           ; 72 30
    83198445    mov ax, di                                ; 89 f8
    83208446    xor dx, dx                                ; 31 d2
    83218447    mov bx, cx                                ; 89 cb
    83228448    xor cx, cx                                ; 31 c9
    8323     call 09ec0h                               ; e8 35 42
     8449    call 09fb0h                               ; e8 3b 42
    83248450    xor bx, bx                                ; 31 db
    83258451    add ax, word [bp-008h]                    ; 03 46 f8
     
    83278453    mov bx, word [bp-00ah]                    ; 8b 5e f6
    83288454    xor cx, cx                                ; 31 c9
    8329     call 09ec0h                               ; e8 26 42
     8455    call 09fb0h                               ; e8 2c 42
    83308456    xor bx, bx                                ; 31 db
    83318457    add ax, word [bp-006h]                    ; 03 46 fa
     
    83828508    mov word [bp+016h], bx                    ; 89 5e 16
    83838509    test dl, dl                               ; 84 d2
    8384     je near 05b54h                            ; 0f 84 0a fe
    8385     mov bx, 00da0h                            ; bb a0 0d
     8510    je near 05c3eh                            ; 0f 84 0a fe
     8511    mov bx, 00db2h                            ; bb b2 0d
    83868512    mov cx, ds                                ; 8c d9
    83878513    mov ax, strict word 00004h                ; b8 04 00
    8388     call 01999h                               ; e8 44 bc
     8514    call 01a2ah                               ; e8 eb bb
    83898515    movzx ax, dl                              ; 0f b6 c2
    83908516    push ax                                   ; 50
     
    83928518    shr ax, 008h                              ; c1 e8 08
    83938519    push ax                                   ; 50
    8394     push 0067eh                               ; 68 7e 06
    8395     push 00759h                               ; 68 59 07
     8520    push 00690h                               ; 68 90 06
     8521    push 0076bh                               ; 68 6b 07
    83968522    push strict byte 00004h                   ; 6a 04
    8397     call 019dah                               ; e8 6f bc
     8523    call 01a6bh                               ; e8 16 bc
    83988524    add sp, strict byte 0000ah                ; 83 c4 0a
    83998525    mov ax, word [bp+016h]                    ; 8b 46 16
    84008526    xor ah, ah                                ; 30 e4
    84018527    or ah, 00ch                               ; 80 cc 0c
    8402     jmp near 05ecah                           ; e9 51 01
    8403     mov bx, 00da0h                            ; bb a0 0d
     8528    jmp near 05fb4h                           ; e9 51 01
     8529    mov bx, 00db2h                            ; bb b2 0d
    84048530    mov cx, ds                                ; 8c d9
    84058531    mov ax, strict word 00004h                ; b8 04 00
    8406     call 01999h                               ; e8 15 bc
    8407     push 0077ah                               ; 68 7a 07
     8532    call 01a2ah                               ; e8 bc bb
     8533    push 0078ch                               ; 68 8c 07
    84088534    push strict byte 00004h                   ; 6a 04
    8409     call 019dah                               ; e8 4e bc
     8535    call 01a6bh                               ; e8 f5 bb
    84108536    add sp, strict byte 00004h                ; 83 c4 04
    8411     jmp near 05b54h                           ; e9 c2 fd
     8537    jmp near 05c3eh                           ; e9 c2 fd
    84128538    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    84138539    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    84528578    or dx, ax                                 ; 09 c2
    84538579    mov word [bp+012h], dx                    ; 89 56 12
    8454     jmp near 05b54h                           ; e9 4c fd
     8580    jmp near 05c3eh                           ; e9 4c fd
    84558581    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    84568582    cwd                                       ; 99
     
    84688594    and AL, strict byte 0c0h                  ; 24 c0
    84698595    cmp AL, strict byte 040h                  ; 3c 40
    8470     jne short 05e2dh                          ; 75 03
    8471     jmp near 05b54h                           ; e9 27 fd
     8596    jne short 05f17h                          ; 75 03
     8597    jmp near 05c3eh                           ; e9 27 fd
    84728598    mov ax, word [bp+016h]                    ; 8b 46 16
    84738599    xor ah, ah                                ; 30 e4
    84748600    or ah, 0aah                               ; 80 cc aa
    8475     jmp near 05ecah                           ; e9 92 00
     8601    jmp near 05fb4h                           ; e9 92 00
    84768602    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    84778603    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    84878613    mov bx, word [bp-008h]                    ; 8b 5e f8
    84888614    xor cx, cx                                ; 31 c9
    8489     call 09ec0h                               ; e8 5e 40
     8615    call 09fb0h                               ; e8 64 40
    84908616    mov bx, word [bp-006h]                    ; 8b 5e fa
    84918617    xor cx, cx                                ; 31 c9
    8492     call 09ec0h                               ; e8 56 40
     8618    call 09fb0h                               ; e8 5c 40
    84938619    mov word [bp-010h], ax                    ; 89 46 f0
    84948620    mov word [bp-00eh], dx                    ; 89 56 f2
     
    84998625    or ah, 003h                               ; 80 cc 03
    85008626    mov word [bp+016h], ax                    ; 89 46 16
    8501     jmp near 05b58h                           ; e9 d4 fc
    8502     mov bx, 00da0h                            ; bb a0 0d
     8627    jmp near 05c42h                           ; e9 d4 fc
     8628    mov bx, 00db2h                            ; bb b2 0d
    85038629    mov cx, ds                                ; 8c d9
    85048630    mov ax, strict word 00004h                ; b8 04 00
    8505     call 01999h                               ; e8 0a bb
     8631    call 01a2ah                               ; e8 b1 ba
    85068632    mov ax, word [bp+016h]                    ; 8b 46 16
    85078633    shr ax, 008h                              ; c1 e8 08
    85088634    push ax                                   ; 50
    8509     push 0067eh                               ; 68 7e 06
    8510     push 00794h                               ; 68 94 07
     8635    push 00690h                               ; 68 90 06
     8636    push 007a6h                               ; 68 a6 07
    85118637    push strict byte 00004h                   ; 6a 04
    8512     call 019dah                               ; e8 39 bb
     8638    call 01a6bh                               ; e8 e0 ba
    85138639    add sp, strict byte 00008h                ; 83 c4 08
    8514     jmp near 05b54h                           ; e9 ad fc
    8515     mov bx, 00da0h                            ; bb a0 0d
     8640    jmp near 05c3eh                           ; e9 ad fc
     8641    mov bx, 00db2h                            ; bb b2 0d
    85168642    mov cx, ds                                ; 8c d9
    85178643    mov ax, strict word 00004h                ; b8 04 00
    8518     call 01999h                               ; e8 e7 ba
     8644    call 01a2ah                               ; e8 8e ba
    85198645    mov ax, word [bp+016h]                    ; 8b 46 16
    85208646    shr ax, 008h                              ; c1 e8 08
    85218647    push ax                                   ; 50
    8522     push 0067eh                               ; 68 7e 06
    8523     push 007c7h                               ; 68 c7 07
    8524     jmp near 05bebh                           ; e9 29 fd
     8648    push 00690h                               ; 68 90 06
     8649    push 007d9h                               ; 68 d9 07
     8650    jmp near 05cd5h                           ; e9 29 fd
    85258651    mov ax, word [bp+016h]                    ; 8b 46 16
    85268652    xor ah, ah                                ; 30 e4
     
    85328658    mov dx, strict word 00074h                ; ba 74 00
    85338659    mov ax, strict word 00040h                ; b8 40 00
    8534     call 016c6h                               ; e8 e8 b7
     8660    call 01757h                               ; e8 8f b7
    85358661    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8536     jmp near 05b67h                           ; e9 82 fc
    8537     mov word [0bb5fh], ax                     ; a3 5f bb
    8538     pop di                                    ; 5f
    8539     mov bx, 0bb5fh                            ; bb 5f bb
    8540     pop di                                    ; 5f
    8541     db  08fh, 063h, 010h
    8542     ; pop word [bp+di+010h]                     ; 8f 63 10
     8662    jmp near 05c51h                           ; e9 82 fc
     8663    lea sp, [bx+si-05bh]                      ; 8d 60 a5
     8664    pushaw                                    ; 60
     8665    movsw                                     ; a5
     8666    pushaw                                    ; 60
     8667    movsw                                     ; a5
     8668    pushaw                                    ; 60
     8669    jns short 0603dh                          ; 79 64
     8670    cli                                       ; fa
    85438671    popaw                                     ; 61
    8544     mov bx, 0165fh                            ; bb 5f 16
    8545     popaw                                     ; 61
    8546     db  08fh, 063h, 0deh
    8547     ; pop word [bp+di-022h]                     ; 8f 63 de
    8548     arpl si, bx                               ; 63 de
    8549     arpl si, bx                               ; 63 de
    8550     arpl si, bx                               ; 63 de
    8551     arpl [bp-0219dh], sp                      ; 63 a6 63 de
    8552     arpl si, bx                               ; 63 de
    8553     db  063h
    8554 _int13_harddisk_ext:                         ; 0xf5f05 LB 0x4f4
     8672    movsw                                     ; a5
     8673    pushaw                                    ; 60
     8674    add byte [bp+si+079h], ah                 ; 00 62 79
     8675    db  064h, 0c8h, 064h, 0c8h, 064h
     8676    ; fs enter 0c864h, 064h                     ; 64 c8 64 c8 64
     8677    enter 0c864h, 064h                        ; c8 64 c8 64
     8678    nop                                       ; 90
     8679    db  064h, 0c8h, 064h, 0c8h, 064h
     8680    ; fs enter 0c864h, 064h                     ; 64 c8 64 c8 64
     8681_int13_harddisk_ext:                         ; 0xf5fef LB 0x4f4
    85558682    push bp                                   ; 55
    85568683    mov bp, sp                                ; 89 e5
     
    85588685    mov dx, strict word 0000eh                ; ba 0e 00
    85598686    mov ax, strict word 00040h                ; b8 40 00
    8560     call 016d4h                               ; e8 c0 b7
     8687    call 01765h                               ; e8 67 b7
    85618688    mov word [bp-014h], ax                    ; 89 46 ec
    85628689    mov dx, strict word 0000eh                ; ba 0e 00
    85638690    mov ax, strict word 00040h                ; b8 40 00
    8564     call 016d4h                               ; e8 b4 b7
     8691    call 01765h                               ; e8 5b b7
    85658692    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
    85668693    mov word [bp-006h], ax                    ; 89 46 fa
     
    85688695    mov dx, 0008eh                            ; ba 8e 00
    85698696    mov ax, strict word 00040h                ; b8 40 00
    8570     call 016c6h                               ; e8 93 b7
     8697    call 01757h                               ; e8 3a b7
    85718698    mov ax, word [bp+00eh]                    ; 8b 46 0e
    85728699    xor ah, ah                                ; 30 e4
    85738700    cmp ax, 00080h                            ; 3d 80 00
    8574     jc short 05f42h                           ; 72 05
     8701    jc short 0602ch                           ; 72 05
    85758702    cmp ax, 00090h                            ; 3d 90 00
    8576     jc short 05f60h                           ; 72 1e
     8703    jc short 0604ah                           ; 72 1e
    85778704    mov ax, word [bp+00eh]                    ; 8b 46 0e
    85788705    xor ah, ah                                ; 30 e4
     
    85818708    shr ax, 008h                              ; c1 e8 08
    85828709    push ax                                   ; 50
    8583     push 007f5h                               ; 68 f5 07
    8584     push 0068dh                               ; 68 8d 06
     8710    push 00807h                               ; 68 07 08
     8711    push 0069fh                               ; 68 9f 06
    85858712    push strict byte 00004h                   ; 6a 04
    8586     call 019dah                               ; e8 80 ba
     8713    call 01a6bh                               ; e8 27 ba
    85878714    add sp, strict byte 0000ah                ; 83 c4 0a
    8588     jmp near 063bch                           ; e9 5c 04
     8715    jmp near 064a6h                           ; e9 5c 04
    85898716    mov ax, word [bp+00eh]                    ; 8b 46 0e
    85908717    xor ah, ah                                ; 30 e4
     
    85948721    mov byte [bp-004h], dl                    ; 88 56 fc
    85958722    cmp dl, 010h                              ; 80 fa 10
    8596     jc short 05f87h                           ; 72 10
     8723    jc short 06071h                           ; 72 10
    85978724    push ax                                   ; 50
    85988725    mov ax, word [bp+016h]                    ; 8b 46 16
    85998726    shr ax, 008h                              ; c1 e8 08
    86008727    push ax                                   ; 50
    8601     push 007f5h                               ; 68 f5 07
    8602     push 006b8h                               ; 68 b8 06
    8603     jmp short 05f55h                          ; eb ce
     8728    push 00807h                               ; 68 07 08
     8729    push 006cah                               ; 68 ca 06
     8730    jmp short 0603fh                          ; eb ce
    86048731    mov bx, word [bp+016h]                    ; 8b 5e 16
    86058732    shr bx, 008h                              ; c1 eb 08
    86068733    sub bx, strict byte 00041h                ; 83 eb 41
    86078734    cmp bx, strict byte 0000fh                ; 83 fb 0f
    8608     jnbe near 063deh                          ; 0f 87 47 04
     8735    jnbe near 064c8h                          ; 0f 87 47 04
    86098736    add bx, bx                                ; 01 db
    86108737    mov ax, word [bp+016h]                    ; 8b 46 16
    86118738    xor ah, ah                                ; 30 e4
    8612     jmp word [cs:bx+05ee5h]                   ; 2e ff a7 e5 5e
     8739    jmp word [cs:bx+05fcfh]                   ; 2e ff a7 cf 5f
    86138740    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    86148741    mov ax, word [bp+016h]                    ; 8b 46 16
     
    86178744    mov word [bp+016h], ax                    ; 89 46 16
    86188745    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    8619     jmp near 06393h                           ; e9 d8 03
     8746    jmp near 0647dh                           ; e9 d8 03
    86208747    mov di, word [bp+00ah]                    ; 8b 7e 0a
    86218748    mov es, [bp+004h]                         ; 8e 46 04
     
    86338760    xor bx, bx                                ; 31 db
    86348761    mov si, strict word 00020h                ; be 20 00
    8635     call 09f50h                               ; e8 62 3f
     8762    call 0a040h                               ; e8 68 3f
    86368763    mov word [bp-00eh], bx                    ; 89 5e f2
    86378764    mov bx, word [es:di+008h]                 ; 26 8b 5d 08
     
    86458772    mov bl, byte [es:di+022h]                 ; 26 8a 5d 22
    86468773    cmp ax, word [es:di+03ch]                 ; 26 3b 45 3c
    8647     jnbe short 06035h                         ; 77 22
    8648     jne short 06058h                          ; 75 43
     8774    jnbe short 0611fh                         ; 77 22
     8775    jne short 06142h                          ; 75 43
    86498776    mov si, word [bp-00eh]                    ; 8b 76 f2
    86508777    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
    8651     jnbe short 06035h                         ; 77 17
     8778    jnbe short 0611fh                         ; 77 17
    86528779    mov si, word [bp-00eh]                    ; 8b 76 f2
    86538780    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
    8654     jne short 06058h                          ; 75 31
     8781    jne short 06142h                          ; 75 31
    86558782    cmp cx, word [es:di+038h]                 ; 26 3b 4d 38
    8656     jnbe short 06035h                         ; 77 08
    8657     jne short 06058h                          ; 75 29
     8783    jnbe short 0611fh                         ; 77 08
     8784    jne short 06142h                          ; 75 29
    86588785    cmp dx, word [es:di+036h]                 ; 26 3b 55 36
    8659     jc short 06058h                           ; 72 23
    8660     mov bx, 00da0h                            ; bb a0 0d
     8786    jc short 06142h                           ; 72 23
     8787    mov bx, 00db2h                            ; bb b2 0d
    86618788    mov cx, ds                                ; 8c d9
    86628789    mov ax, strict word 00004h                ; b8 04 00
    8663     call 01999h                               ; e8 59 b9
     8790    call 01a2ah                               ; e8 00 b9
    86648791    mov ax, word [bp+016h]                    ; 8b 46 16
    86658792    shr ax, 008h                              ; c1 e8 08
    86668793    push ax                                   ; 50
    8667     push 007f5h                               ; 68 f5 07
    8668     push 00808h                               ; 68 08 08
     8794    push 00807h                               ; 68 07 08
     8795    push 0081ah                               ; 68 1a 08
    86698796    push strict byte 00004h                   ; 6a 04
    8670     call 019dah                               ; e8 88 b9
     8797    call 01a6bh                               ; e8 2f b9
    86718798    add sp, strict byte 00008h                ; 83 c4 08
    8672     jmp near 063bch                           ; e9 64 03
     8799    jmp near 064a6h                           ; e9 64 03
    86738800    mov di, word [bp+016h]                    ; 8b 7e 16
    86748801    shr di, 008h                              ; c1 ef 08
    86758802    cmp di, strict byte 00044h                ; 83 ff 44
    8676     je near 0638fh                            ; 0f 84 2a 03
     8803    je near 06479h                            ; 0f 84 2a 03
    86778804    cmp di, strict byte 00047h                ; 83 ff 47
    8678     je near 0638fh                            ; 0f 84 23 03
     8805    je near 06479h                            ; 0f 84 23 03
    86798806    les si, [bp-008h]                         ; c4 76 f8
    86808807    db  066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h
     
    87138840    mov word [es:bx+002h], ax                 ; 26 89 47 02
    87148841    test dl, dl                               ; 84 d2
    8715     je near 0638fh                            ; 0f 84 a8 02
    8716     mov bx, 00da0h                            ; bb a0 0d
     8842    je near 06479h                            ; 0f 84 a8 02
     8843    mov bx, 00db2h                            ; bb b2 0d
    87178844    mov cx, ds                                ; 8c d9
    87188845    mov ax, strict word 00004h                ; b8 04 00
    8719     call 01999h                               ; e8 a7 b8
     8846    call 01a2ah                               ; e8 4e b8
    87208847    movzx ax, dl                              ; 0f b6 c2
    87218848    push ax                                   ; 50
    87228849    push di                                   ; 57
    8723     push 007f5h                               ; 68 f5 07
    8724     push 00759h                               ; 68 59 07
     8850    push 00807h                               ; 68 07 08
     8851    push 0076bh                               ; 68 6b 07
    87258852    push strict byte 00004h                   ; 6a 04
    8726     call 019dah                               ; e8 d8 b8
     8853    call 01a6bh                               ; e8 7f b8
    87278854    add sp, strict byte 0000ah                ; 83 c4 0a
    87288855    mov ax, word [bp+016h]                    ; 8b 46 16
    87298856    xor ah, ah                                ; 30 e4
    87308857    or ah, 00ch                               ; 80 cc 0c
    8731     jmp near 063c4h                           ; e9 b4 02
     8858    jmp near 064aeh                           ; e9 b4 02
    87328859    or ah, 0b2h                               ; 80 cc b2
    8733     jmp near 063c4h                           ; e9 ae 02
     8860    jmp near 064aeh                           ; e9 ae 02
    87348861    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    87358862    mov ax, word [bp+004h]                    ; 8b 46 04
     
    87418868    mov word [bp-010h], ax                    ; 89 46 f0
    87428869    cmp ax, strict word 0001ah                ; 3d 1a 00
    8743     jc near 063bch                            ; 0f 82 89 02
    8744     jc near 061d2h                            ; 0f 82 9b 00
     8870    jc near 064a6h                            ; 0f 82 89 02
     8871    jc near 062bch                            ; 0f 82 9b 00
    87458872    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    87468873    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    87848911    mov bx, word [bp-00eh]                    ; 8b 5e f2
    87858912    mov si, strict word 00020h                ; be 20 00
    8786     call 09f40h                               ; e8 78 3d
     8913    call 0a030h                               ; e8 7e 3d
    87878914    mov bx, di                                ; 89 fb
    87888915    mov word [es:bx+014h], dx                 ; 26 89 57 14
    87898916    mov word [es:bx+016h], cx                 ; 26 89 4f 16
    87908917    cmp word [bp-010h], strict byte 0001eh    ; 83 7e f0 1e
    8791     jc near 062d7h                            ; 0f 82 fd 00
     8918    jc near 063c1h                            ; 0f 82 fd 00
    87928919    mov es, [bp-00ah]                         ; 8e 46 f6
    87938920    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
     
    88158942    mov al, byte [es:bx+027h]                 ; 26 8a 47 27
    88168943    test al, al                               ; 84 c0
    8817     jne short 06231h                          ; 75 04
     8944    jne short 0631bh                          ; 75 04
    88188945    xor bx, bx                                ; 31 db
    8819     jmp short 06234h                          ; eb 03
     8946    jmp short 0631eh                          ; eb 03
    88208947    mov bx, strict word 00008h                ; bb 08 00
    88218948    or bl, 010h                               ; 80 cb 10
     
    88318958    or bx, cx                                 ; 09 cb
    88328959    cmp AL, strict byte 003h                  ; 3c 03
    8833     jne short 06255h                          ; 75 05
     8960    jne short 0633fh                          ; 75 05
    88348961    mov ax, strict word 00003h                ; b8 03 00
    8835     jmp short 06257h                          ; eb 02
     8962    jmp short 06341h                          ; eb 02
    88368963    xor ax, ax                                ; 31 c0
    88378964    or bx, ax                                 ; 09 c3
     
    88598986    xor bl, bl                                ; 30 db
    88608987    xor bh, bh                                ; 30 ff
    8861     jmp short 062bah                          ; eb 05
     8988    jmp short 063a4h                          ; eb 05
    88628989    cmp bh, 00fh                              ; 80 ff 0f
    8863     jnc short 062cdh                          ; 73 13
     8990    jnc short 063b7h                          ; 73 13
    88648991    movzx dx, bh                              ; 0f b6 d7
    88658992    add dx, 00356h                            ; 81 c2 56 03
    88668993    mov ax, word [bp-014h]                    ; 8b 46 ec
    8867     call 016b8h                               ; e8 f1 b3
     8994    call 01749h                               ; e8 98 b3
    88688995    add bl, al                                ; 00 c3
    88698996    db  0feh, 0c7h
    88708997    ; inc bh                                    ; fe c7
    8871     jmp short 062b5h                          ; eb e8
     8998    jmp short 0639fh                          ; eb e8
    88728999    neg bl                                    ; f6 db
    88739000    les si, [bp-008h]                         ; c4 76 f8
    88749001    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
    88759002    cmp word [bp-010h], strict byte 00042h    ; 83 7e f0 42
    8876     jc near 0638fh                            ; 0f 82 b0 00
     9003    jc near 06479h                            ; 0f 82 b0 00
    88779004    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    88789005    cwd                                       ; 99
     
    88929019    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
    88939020    test al, al                               ; 84 c0
    8894     jne short 06320h                          ; 75 09
     9021    jne short 0640ah                          ; 75 09
    88959022    db  066h, 026h, 0c7h, 045h, 024h, 049h, 053h, 041h, 020h
    88969023    ; mov dword [es:di+024h], strict dword 020415349h ; 66 26 c7 45 24 49 53 41 20
     
    89019028    ; mov dword [es:di+02ch], strict dword 020202020h ; 66 26 c7 45 2c 20 20 20 20
    89029029    test al, al                               ; 84 c0
    8903     jne short 0634ch                          ; 75 13
     9030    jne short 06436h                          ; 75 13
    89049031    mov word [es:di+030h], dx                 ; 26 89 55 30
    89059032    db  066h, 026h, 0c7h, 045h, 032h, 000h, 000h, 000h, 000h
     
    89169043    xor bl, bl                                ; 30 db
    89179044    mov BH, strict byte 01eh                  ; b7 1e
    8918     jmp short 06374h                          ; eb 05
     9045    jmp short 0645eh                          ; eb 05
    89199046    cmp bh, 040h                              ; 80 ff 40
    8920     jnc short 06386h                          ; 73 12
     9047    jnc short 06470h                          ; 73 12
    89219048    movzx dx, bh                              ; 0f b6 d7
    89229049    add dx, word [bp+00ah]                    ; 03 56 0a
    89239050    mov ax, word [bp+004h]                    ; 8b 46 04
    8924     call 016b8h                               ; e8 38 b3
     9051    call 01749h                               ; e8 df b2
    89259052    add bl, al                                ; 00 c3
    89269053    db  0feh, 0c7h
    89279054    ; inc bh                                    ; fe c7
    8928     jmp short 0636fh                          ; eb e9
     9055    jmp short 06459h                          ; eb e9
    89299056    neg bl                                    ; f6 db
    89309057    mov es, [bp-00ah]                         ; 8e 46 f6
     
    89349061    mov dx, strict word 00074h                ; ba 74 00
    89359062    mov ax, strict word 00040h                ; b8 40 00
    8936     call 016c6h                               ; e8 28 b3
     9063    call 01757h                               ; e8 cf b2
    89379064    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    89389065    mov sp, bp                                ; 89 ec
     
    89409067    retn                                      ; c3
    89419068    cmp ax, strict word 00006h                ; 3d 06 00
    8942     je short 0638fh                           ; 74 e4
     9069    je short 06479h                           ; 74 e4
    89439070    cmp ax, strict word 00001h                ; 3d 01 00
    8944     jc short 063bch                           ; 72 0c
    8945     jbe short 0638fh                          ; 76 dd
     9071    jc short 064a6h                           ; 72 0c
     9072    jbe short 06479h                          ; 76 dd
    89469073    cmp ax, strict word 00003h                ; 3d 03 00
    8947     jc short 063bch                           ; 72 05
     9074    jc short 064a6h                           ; 72 05
    89489075    cmp ax, strict word 00004h                ; 3d 04 00
    8949     jbe short 0638fh                          ; 76 d3
     9076    jbe short 06479h                          ; 76 d3
    89509077    mov ax, word [bp+016h]                    ; 8b 46 16
    89519078    xor ah, ah                                ; 30 e4
     
    89579084    mov dx, strict word 00074h                ; ba 74 00
    89589085    mov ax, strict word 00040h                ; b8 40 00
    8959     call 016c6h                               ; e8 ee b2
     9086    call 01757h                               ; e8 95 b2
    89609087    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8961     jmp short 063a2h                          ; eb c4
    8962     mov bx, 00da0h                            ; bb a0 0d
     9088    jmp short 0648ch                          ; eb c4
     9089    mov bx, 00db2h                            ; bb b2 0d
    89639090    mov cx, ds                                ; 8c d9
    89649091    mov ax, strict word 00004h                ; b8 04 00
    8965     call 01999h                               ; e8 b0 b5
     9092    call 01a2ah                               ; e8 57 b5
    89669093    mov ax, word [bp+016h]                    ; 8b 46 16
    89679094    shr ax, 008h                              ; c1 e8 08
    89689095    push ax                                   ; 50
    8969     push 007f5h                               ; 68 f5 07
    8970     push 007c7h                               ; 68 c7 07
    8971     jmp near 0604dh                           ; e9 54 fc
    8972 _int14_function:                             ; 0xf63f9 LB 0x15a
     9096    push 00807h                               ; 68 07 08
     9097    push 007d9h                               ; 68 d9 07
     9098    jmp near 06137h                           ; e9 54 fc
     9099_int14_function:                             ; 0xf64e3 LB 0x15a
    89739100    push bp                                   ; 55
    89749101    mov bp, sp                                ; 89 e5
     
    89789105    add dx, dx                                ; 01 d2
    89799106    mov ax, strict word 00040h                ; b8 40 00
    8980     call 016d4h                               ; e8 cb b2
     9107    call 01765h                               ; e8 72 b2
    89819108    mov si, ax                                ; 89 c6
    89829109    mov bx, ax                                ; 89 c3
     
    89849111    add dx, strict byte 0007ch                ; 83 c2 7c
    89859112    mov ax, strict word 00040h                ; b8 40 00
    8986     call 016b8h                               ; e8 9f b2
     9113    call 01749h                               ; e8 46 b2
    89879114    mov cl, al                                ; 88 c1
    89889115    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    8989     jnc near 06549h                           ; 0f 83 26 01
     9116    jnc near 06633h                           ; 0f 83 26 01
    89909117    test si, si                               ; 85 f6
    8991     jbe near 06549h                           ; 0f 86 20 01
     9118    jbe near 06633h                           ; 0f 86 20 01
    89929119    mov al, byte [bp+013h]                    ; 8a 46 13
    89939120    cmp AL, strict byte 001h                  ; 3c 01
    8994     jc short 06441h                           ; 72 11
    8995     jbe short 0649ah                          ; 76 68
     9121    jc short 0652bh                           ; 72 11
     9122    jbe short 06584h                          ; 76 68
    89969123    cmp AL, strict byte 003h                  ; 3c 03
    8997     je near 06532h                            ; 0f 84 fa 00
     9124    je near 0661ch                            ; 0f 84 fa 00
    89989125    cmp AL, strict byte 002h                  ; 3c 02
    8999     je near 064e8h                            ; 0f 84 aa 00
    9000     jmp near 06543h                           ; e9 02 01
     9126    je near 065d2h                            ; 0f 84 aa 00
     9127    jmp near 0662dh                           ; e9 02 01
    90019128    test al, al                               ; 84 c0
    9002     jne near 06543h                           ; 0f 85 fc 00
     9129    jne near 0662dh                           ; 0f 85 fc 00
    90039130    lea dx, [bx+003h]                         ; 8d 57 03
    90049131    in AL, DX                                 ; ec
     
    90109137    mov al, byte [bp+012h]                    ; 8a 46 12
    90119138    test AL, strict byte 0e0h                 ; a8 e0
    9012     jne short 06466h                          ; 75 0c
     9139    jne short 06550h                          ; 75 0c
    90139140    mov AL, strict byte 017h                  ; b0 17
    90149141    mov dx, bx                                ; 89 da
     
    90179144    mov dx, si                                ; 89 f2
    90189145    out DX, AL                                ; ee
    9019     jmp short 0647ch                          ; eb 16
     9146    jmp short 06566h                          ; eb 16
    90209147    and AL, strict byte 0e0h                  ; 24 e0
    90219148    movzx cx, al                              ; 0f b6 c8
     
    90429169    ; sub ah, ah                                ; 2a e4
    90439170    mov byte [bp+012h], al                    ; 88 46 12
    9044     jmp near 06524h                           ; e9 8a 00
     9171    jmp near 0660eh                           ; e9 8a 00
    90459172    mov dx, strict word 0006ch                ; ba 6c 00
    90469173    mov ax, strict word 00040h                ; b8 40 00
    9047     call 016d4h                               ; e8 31 b2
     9174    call 01765h                               ; e8 d8 b1
    90489175    mov si, ax                                ; 89 c6
    90499176    lea dx, [bx+005h]                         ; 8d 57 05
     
    90539180    and ax, strict word 00060h                ; 25 60 00
    90549181    cmp ax, strict word 00060h                ; 3d 60 00
    9055     je short 064cah                           ; 74 17
     9182    je short 065b4h                           ; 74 17
    90569183    test cl, cl                               ; 84 c9
    9057     je short 064cah                           ; 74 13
     9184    je short 065b4h                           ; 74 13
    90589185    mov dx, strict word 0006ch                ; ba 6c 00
    90599186    mov ax, strict word 00040h                ; b8 40 00
    9060     call 016d4h                               ; e8 14 b2
     9187    call 01765h                               ; e8 bb b1
    90619188    cmp ax, si                                ; 39 f0
    9062     je short 064a5h                           ; 74 e1
     9189    je short 0658fh                           ; 74 e1
    90639190    mov si, ax                                ; 89 c6
    90649191    db  0feh, 0c9h
    90659192    ; dec cl                                    ; fe c9
    9066     jmp short 064a5h                          ; eb db
     9193    jmp short 0658fh                          ; eb db
    90679194    test cl, cl                               ; 84 c9
    9068     je short 064d4h                           ; 74 06
     9195    je short 065beh                           ; 74 06
    90699196    mov al, byte [bp+012h]                    ; 8a 46 12
    90709197    mov dx, bx                                ; 89 da
     
    90769203    mov byte [bp+013h], al                    ; 88 46 13
    90779204    test cl, cl                               ; 84 c9
    9078     jne short 06524h                          ; 75 43
     9205    jne short 0660eh                          ; 75 43
    90799206    or AL, strict byte 080h                   ; 0c 80
    90809207    mov byte [bp+013h], al                    ; 88 46 13
    9081     jmp short 06524h                          ; eb 3c
     9208    jmp short 0660eh                          ; eb 3c
    90829209    mov dx, strict word 0006ch                ; ba 6c 00
    90839210    mov ax, strict word 00040h                ; b8 40 00
    9084     call 016d4h                               ; e8 e3 b1
     9211    call 01765h                               ; e8 8a b1
    90859212    mov si, ax                                ; 89 c6
    90869213    lea dx, [bx+005h]                         ; 8d 57 05
     
    90899216    ; sub ah, ah                                ; 2a e4
    90909217    test AL, strict byte 001h                 ; a8 01
    9091     jne short 06514h                          ; 75 17
     9218    jne short 065feh                          ; 75 17
    90929219    test cl, cl                               ; 84 c9
    9093     je short 06514h                           ; 74 13
     9220    je short 065feh                           ; 74 13
    90949221    mov dx, strict word 0006ch                ; ba 6c 00
    90959222    mov ax, strict word 00040h                ; b8 40 00
    9096     call 016d4h                               ; e8 ca b1
     9223    call 01765h                               ; e8 71 b1
    90979224    cmp ax, si                                ; 39 f0
    9098     je short 064f3h                           ; 74 e5
     9225    je short 065ddh                           ; 74 e5
    90999226    mov si, ax                                ; 89 c6
    91009227    db  0feh, 0c9h
    91019228    ; dec cl                                    ; fe c9
    9102     jmp short 064f3h                          ; eb df
     9229    jmp short 065ddh                          ; eb df
    91039230    test cl, cl                               ; 84 c9
    9104     je short 0652ah                           ; 74 12
     9231    je short 06614h                           ; 74 12
    91059232    mov byte [bp+013h], 000h                  ; c6 46 13 00
    91069233    mov dx, bx                                ; 89 da
     
    91109237    mov byte [bp+012h], al                    ; 88 46 12
    91119238    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    9112     jmp short 0654dh                          ; eb 23
     9239    jmp short 06637h                          ; eb 23
    91139240    lea dx, [bx+005h]                         ; 8d 57 05
    91149241    in AL, DX                                 ; ec
    91159242    db  02ah, 0e4h
    91169243    ; sub ah, ah                                ; 2a e4
    9117     jmp short 064e3h                          ; eb b1
     9244    jmp short 065cdh                          ; eb b1
    91189245    lea dx, [si+005h]                         ; 8d 54 05
    91199246    in AL, DX                                 ; ec
     
    91259252    db  02ah, 0e4h
    91269253    ; sub ah, ah                                ; 2a e4
    9127     jmp short 06521h                          ; eb de
     9254    jmp short 0660bh                          ; eb de
    91289255    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9129     jmp short 0654dh                          ; eb 04
     9256    jmp short 06637h                          ; eb 04
    91309257    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    91319258    lea sp, [bp-002h]                         ; 8d 66 fe
     
    91339260    pop bp                                    ; 5d
    91349261    retn                                      ; c3
    9135 timer_wait_:                                 ; 0xf6553 LB 0x43
     9262timer_wait_:                                 ; 0xf663d LB 0x43
    91369263    push bp                                   ; 55
    91379264    mov bp, sp                                ; 89 e5
     
    91419268    mov bx, strict word 0000fh                ; bb 0f 00
    91429269    xor cx, cx                                ; 31 c9
    9143     call 09f00h                               ; e8 9f 39
     9270    call 09ff0h                               ; e8 a5 39
    91449271    mov cx, ax                                ; 89 c1
    91459272    mov bx, dx                                ; 89 d3
     
    91539280    adc bx, strict byte 0ffffh                ; 83 d3 ff
    91549281    cmp bx, strict byte 0ffffh                ; 83 fb ff
    9155     jne short 06580h                          ; 75 05
     9282    jne short 0666ah                          ; 75 05
    91569283    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    9157     je short 0658fh                           ; 74 0f
     9284    je short 06679h                           ; 74 0f
    91589285    mov dx, strict word 00061h                ; ba 61 00
    91599286    in AL, DX                                 ; ec
     
    91629289    and AL, strict byte 010h                  ; 24 10
    91639290    cmp al, byte [bp-006h]                    ; 3a 46 fa
    9164     jne short 06580h                          ; 75 f3
    9165     jmp short 06570h                          ; eb e1
     9291    jne short 0666ah                          ; 75 f3
     9292    jmp short 0665ah                          ; eb e1
    91669293    lea sp, [bp-004h]                         ; 8d 66 fc
    91679294    pop cx                                    ; 59
     
    91699296    pop bp                                    ; 5d
    91709297    retn                                      ; c3
    9171 set_enable_a20_:                             ; 0xf6596 LB 0x2c
     9298set_enable_a20_:                             ; 0xf6680 LB 0x2c
    91729299    push bp                                   ; 55
    91739300    mov bp, sp                                ; 89 e5
     
    91829309    mov cl, al                                ; 88 c1
    91839310    test bx, bx                               ; 85 db
    9184     je short 065afh                           ; 74 05
     9311    je short 06699h                           ; 74 05
    91859312    or AL, strict byte 002h                   ; 0c 02
    91869313    out DX, AL                                ; ee
    9187     jmp short 065b2h                          ; eb 03
     9314    jmp short 0669ch                          ; eb 03
    91889315    and AL, strict byte 0fdh                  ; 24 fd
    91899316    out DX, AL                                ; ee
     
    91989325    pop bp                                    ; 5d
    91999326    retn                                      ; c3
    9200 set_e820_range_:                             ; 0xf65c2 LB 0x89
     9327set_e820_range_:                             ; 0xf66ac LB 0x89
    92019328    push si                                   ; 56
    92029329    push bp                                   ; 55
     
    92279354    retn 0000ah                               ; c2 0a 00
    92289355    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
    9229     db  04fh, 069h, 088h, 066h, 09bh, 066h, 030h, 067h, 036h, 067h, 03bh, 067h, 040h, 067h, 0e2h, 067h
    9230     db  00ch, 068h, 029h, 067h, 029h, 067h, 0d9h, 068h, 001h, 069h, 014h, 069h, 023h, 069h, 030h, 067h
    9231     db  02ah, 069h
    9232 _int15_function:                             ; 0xf664b LB 0x336
     9356    db  039h, 06ah, 072h, 067h, 085h, 067h, 01ah, 068h, 020h, 068h, 025h, 068h, 02ah, 068h, 0cch, 068h
     9357    db  0f6h, 068h, 013h, 068h, 013h, 068h, 0c3h, 069h, 0ebh, 069h, 0feh, 069h, 00dh, 06ah, 01ah, 068h
     9358    db  014h, 06ah
     9359_int15_function:                             ; 0xf6735 LB 0x336
    92339360    push bp                                   ; 55
    92349361    mov bp, sp                                ; 89 e5
     
    92389365    shr ax, 008h                              ; c1 e8 08
    92399366    cmp ax, 000ech                            ; 3d ec 00
    9240     jnbe near 0694fh                          ; 0f 87 f2 02
     9367    jnbe near 06a39h                          ; 0f 87 f2 02
    92419368    push CS                                   ; 0e
    92429369    pop ES                                    ; 07
    92439370    mov cx, strict word 00011h                ; b9 11 00
    9244     mov di, 06619h                            ; bf 19 66
     9371    mov di, 06703h                            ; bf 03 67
    92459372    repne scasb                               ; f2 ae
    92469373    sal cx, 1                                 ; d1 e1
    92479374    mov di, cx                                ; 89 cf
    9248     mov si, word [cs:di+06629h]               ; 2e 8b b5 29 66
     9375    mov si, word [cs:di+06713h]               ; 2e 8b b5 13 67
    92499376    mov ax, word [bp+012h]                    ; 8b 46 12
    92509377    xor ah, ah                                ; 30 e4
     
    92599386    xor ah, ah                                ; 30 e4
    92609387    cmp ax, 000c0h                            ; 3d c0 00
    9261     jne near 0694fh                           ; 0f 85 bb 02
     9388    jne near 06a39h                           ; 0f 85 bb 02
    92629389    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9263     jmp near 068f8h                           ; e9 5d 02
     9390    jmp near 069e2h                           ; e9 5d 02
    92649391    mov dx, ax                                ; 89 c2
    92659392    cmp ax, strict word 00001h                ; 3d 01 00
    9266     jc short 066b0h                           ; 72 0e
    9267     jbe short 066c4h                          ; 76 20
     9393    jc short 0679ah                           ; 72 0e
     9394    jbe short 067aeh                          ; 76 20
    92689395    cmp ax, strict word 00003h                ; 3d 03 00
    9269     je short 066f1h                           ; 74 48
     9396    je short 067dbh                           ; 74 48
    92709397    cmp ax, strict word 00002h                ; 3d 02 00
    9271     je short 066d4h                           ; 74 26
    9272     jmp short 066feh                          ; eb 4e
     9398    je short 067beh                           ; 74 26
     9399    jmp short 067e8h                          ; eb 4e
    92739400    test ax, ax                               ; 85 c0
    9274     jne short 066feh                          ; 75 4a
     9401    jne short 067e8h                          ; 75 4a
    92759402    xor ax, ax                                ; 31 c0
    9276     call 06596h                               ; e8 dd fe
     9403    call 06680h                               ; e8 dd fe
    92779404    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    92789405    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9279     jmp near 06729h                           ; e9 65 00
     9406    jmp near 06813h                           ; e9 65 00
    92809407    mov ax, strict word 00001h                ; b8 01 00
    9281     call 06596h                               ; e8 cc fe
     9408    call 06680h                               ; e8 cc fe
    92829409    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    92839410    mov byte [bp+013h], dh                    ; 88 76 13
    9284     jmp near 06729h                           ; e9 55 00
     9411    jmp near 06813h                           ; e9 55 00
    92859412    mov dx, 00092h                            ; ba 92 00
    92869413    in AL, DX                                 ; ec
     
    92949421    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    92959422    mov byte [bp+013h], ah                    ; 88 66 13
    9296     jmp near 06729h                           ; e9 38 00
     9423    jmp near 06813h                           ; e9 38 00
    92979424    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    92989425    mov byte [bp+013h], ah                    ; 88 66 13
    92999426    mov word [bp+00ch], ax                    ; 89 46 0c
    9300     jmp near 06729h                           ; e9 2b 00
    9301     mov bx, 00da0h                            ; bb a0 0d
     9427    jmp near 06813h                           ; e9 2b 00
     9428    mov bx, 00db2h                            ; bb b2 0d
    93029429    mov cx, ds                                ; 8c d9
    93039430    mov ax, strict word 00004h                ; b8 04 00
    9304     call 01999h                               ; e8 90 b2
     9431    call 01a2ah                               ; e8 37 b2
    93059432    mov ax, word [bp+012h]                    ; 8b 46 12
    93069433    xor ah, ah                                ; 30 e4
    93079434    push ax                                   ; 50
    9308     push 0082eh                               ; 68 2e 08
     9435    push 00840h                               ; 68 40 08
    93099436    push strict byte 00004h                   ; 6a 04
    9310     call 019dah                               ; e8 c3 b2
     9437    call 01a6bh                               ; e8 6a b2
    93119438    add sp, strict byte 00006h                ; 83 c4 06
    93129439    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    93219448    retn                                      ; c3
    93229449    mov word [bp+018h], bx                    ; 89 5e 18
    9323     jmp near 067dch                           ; e9 a6 00
     9450    jmp near 068c6h                           ; e9 a6 00
    93249451    mov word [bp+018h], bx                    ; 89 5e 18
    9325     jmp short 06729h                          ; eb ee
     9452    jmp short 06813h                          ; eb ee
    93269453    mov word [bp+018h], cx                    ; 89 4e 18
    9327     jmp short 06726h                          ; eb e6
     9454    jmp short 06810h                          ; eb e6
    93289455    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9329     jne short 067b2h                          ; 75 6c
     9456    jne short 0689ch                          ; 75 6c
    93309457    mov dx, 000a0h                            ; ba a0 00
    93319458    mov ax, strict word 00040h                ; b8 40 00
    9332     call 016b8h                               ; e8 69 af
     9459    call 01749h                               ; e8 10 af
    93339460    test AL, strict byte 001h                 ; a8 01
    9334     jne near 068efh                           ; 0f 85 9a 01
     9461    jne near 069d9h                           ; 0f 85 9a 01
    93359462    mov bx, strict word 00001h                ; bb 01 00
    93369463    mov dx, 000a0h                            ; ba a0 00
    93379464    mov ax, strict word 00040h                ; b8 40 00
    9338     call 016c6h                               ; e8 65 af
     9465    call 01757h                               ; e8 0c af
    93399466    mov bx, word [bp+014h]                    ; 8b 5e 14
    93409467    mov dx, 00098h                            ; ba 98 00
    93419468    mov ax, strict word 00040h                ; b8 40 00
    9342     call 016e2h                               ; e8 75 af
     9469    call 01773h                               ; e8 1c af
    93439470    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    93449471    mov dx, 0009ah                            ; ba 9a 00
    93459472    mov ax, strict word 00040h                ; b8 40 00
    9346     call 016e2h                               ; e8 69 af
     9473    call 01773h                               ; e8 10 af
    93479474    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    93489475    mov dx, 0009ch                            ; ba 9c 00
    93499476    mov ax, strict word 00040h                ; b8 40 00
    9350     call 016e2h                               ; e8 5d af
     9477    call 01773h                               ; e8 04 af
    93519478    mov bx, word [bp+010h]                    ; 8b 5e 10
    93529479    mov dx, 0009eh                            ; ba 9e 00
    93539480    mov ax, strict word 00040h                ; b8 40 00
    9354     call 016e2h                               ; e8 51 af
     9481    call 01773h                               ; e8 f8 ae
    93559482    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    93569483    mov dx, 000a1h                            ; ba a1 00
     
    93619488    out DX, AL                                ; ee
    93629489    mov ax, strict word 0000bh                ; b8 0b 00
    9363     call 01714h                               ; e8 70 af
     9490    call 017a5h                               ; e8 17 af
    93649491    or AL, strict byte 040h                   ; 0c 40
    93659492    movzx dx, al                              ; 0f b6 d0
    93669493    mov ax, strict word 0000bh                ; b8 0b 00
    9367     call 01731h                               ; e8 82 af
    9368     jmp near 06729h                           ; e9 77 ff
     9494    call 017c2h                               ; e8 29 af
     9495    jmp near 06813h                           ; e9 77 ff
    93699496    cmp ax, strict word 00001h                ; 3d 01 00
    9370     jne short 067d0h                          ; 75 19
     9497    jne short 068bah                          ; 75 19
    93719498    xor bx, bx                                ; 31 db
    93729499    mov dx, 000a0h                            ; ba a0 00
    93739500    mov ax, strict word 00040h                ; b8 40 00
    9374     call 016c6h                               ; e8 04 af
     9501    call 01757h                               ; e8 ab ae
    93759502    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    93769503    mov ax, strict word 0000bh                ; b8 0b 00
    9377     call 01714h                               ; e8 48 af
     9504    call 017a5h                               ; e8 ef ae
    93789505    and AL, strict byte 0bfh                  ; 24 bf
    9379     jmp short 067a6h                          ; eb d6
     9506    jmp short 06890h                          ; eb d6
    93809507    mov word [bp+018h], bx                    ; 89 5e 18
    93819508    mov ax, dx                                ; 89 d0
     
    93859512    or dx, ax                                 ; 09 c2
    93869513    mov word [bp+012h], dx                    ; 89 56 12
    9387     jmp near 06729h                           ; e9 47 ff
     9514    jmp near 06813h                           ; e9 47 ff
    93889515    mov ax, strict word 00031h                ; b8 31 00
    9389     call 01714h                               ; e8 2c af
     9516    call 017a5h                               ; e8 d3 ae
    93909517    movzx dx, al                              ; 0f b6 d0
    93919518    sal dx, 008h                              ; c1 e2 08
    93929519    mov ax, strict word 00030h                ; b8 30 00
    9393     call 01714h                               ; e8 20 af
     9520    call 017a5h                               ; e8 c7 ae
    93949521    xor ah, ah                                ; 30 e4
    93959522    or dx, ax                                 ; 09 c2
    93969523    mov word [bp+012h], dx                    ; 89 56 12
    93979524    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9398     jbe short 06805h                          ; 76 05
     9525    jbe short 068efh                          ; 76 05
    93999526    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    94009527    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9401     jmp near 06729h                           ; e9 1d ff
     9528    jmp near 06813h                           ; e9 1d ff
    94029529    cli                                       ; fa
    94039530    mov ax, strict word 00001h                ; b8 01 00
    9404     call 06596h                               ; e8 83 fd
     9531    call 06680h                               ; e8 83 fd
    94059532    mov dx, word [bp+006h]                    ; 8b 56 06
    94069533    add dx, strict byte 00038h                ; 83 c2 38
    94079534    mov ax, word [bp+014h]                    ; 8b 46 14
    94089535    mov bx, strict word 0ffffh                ; bb ff ff
    9409     call 016e2h                               ; e8 c0 ae
     9536    call 01773h                               ; e8 67 ae
    94109537    mov dx, word [bp+006h]                    ; 8b 56 06
    94119538    add dx, strict byte 0003ah                ; 83 c2 3a
    94129539    mov ax, word [bp+014h]                    ; 8b 46 14
    94139540    xor bx, bx                                ; 31 db
    9414     call 016e2h                               ; e8 b2 ae
     9541    call 01773h                               ; e8 59 ae
    94159542    mov dx, word [bp+006h]                    ; 8b 56 06
    94169543    add dx, strict byte 0003ch                ; 83 c2 3c
    94179544    mov ax, word [bp+014h]                    ; 8b 46 14
    94189545    mov bx, strict word 0000fh                ; bb 0f 00
    9419     call 016c6h                               ; e8 87 ae
     9546    call 01757h                               ; e8 2e ae
    94209547    mov dx, word [bp+006h]                    ; 8b 56 06
    94219548    add dx, strict byte 0003dh                ; 83 c2 3d
    94229549    mov ax, word [bp+014h]                    ; 8b 46 14
    94239550    mov bx, 0009bh                            ; bb 9b 00
    9424     call 016c6h                               ; e8 78 ae
     9551    call 01757h                               ; e8 1f ae
    94259552    mov dx, word [bp+006h]                    ; 8b 56 06
    94269553    add dx, strict byte 0003eh                ; 83 c2 3e
    94279554    mov ax, word [bp+014h]                    ; 8b 46 14
    94289555    xor bx, bx                                ; 31 db
    9429     call 016e2h                               ; e8 86 ae
     9556    call 01773h                               ; e8 2d ae
    94309557    mov AL, strict byte 011h                  ; b0 11
    94319558    mov dx, strict word 00020h                ; ba 20 00
     
    94579584    out DX, AL                                ; ee
    94589585    mov si, word [bp+006h]                    ; 8b 76 06
    9459     call 0689dh                               ; e8 00 00
     9586    call 06987h                               ; e8 00 00
    94609587    pop di                                    ; 5f
    94619588    add di, strict byte 00018h                ; 83 c7 18
     
    94859612    push cx                                   ; 51
    94869613    retf                                      ; cb
    9487     jmp near 06729h                           ; e9 50 fe
    9488     mov bx, 00da0h                            ; bb a0 0d
     9614    jmp near 06813h                           ; e9 50 fe
     9615    mov bx, 00db2h                            ; bb b2 0d
    94899616    mov cx, ds                                ; 8c d9
    94909617    mov ax, strict word 00004h                ; b8 04 00
    9491     call 01999h                               ; e8 b5 b0
    9492     push 0086eh                               ; 68 6e 08
     9618    call 01a2ah                               ; e8 5c b0
     9619    push 00880h                               ; 68 80 08
    94939620    push strict byte 00004h                   ; 6a 04
    9494     call 019dah                               ; e8 ee b0
     9621    call 01a6bh                               ; e8 95 b0
    94959622    add sp, strict byte 00004h                ; 83 c4 04
    94969623    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    94999626    or ah, 086h                               ; 80 cc 86
    95009627    mov word [bp+012h], ax                    ; 89 46 12
    9501     jmp near 06729h                           ; e9 28 fe
     9628    jmp near 06813h                           ; e9 28 fe
    95029629    mov word [bp+018h], cx                    ; 89 4e 18
    95039630    mov word [bp+012h], ax                    ; 89 46 12
    95049631    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    95059632    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    9506     jmp near 06729h                           ; e9 15 fe
     9633    jmp near 06813h                           ; e9 15 fe
    95079634    mov dx, strict word 0000eh                ; ba 0e 00
    95089635    mov ax, strict word 00040h                ; b8 40 00
    9509     call 016d4h                               ; e8 b7 ad
     9636    call 01765h                               ; e8 5e ad
    95109637    mov word [bp+014h], ax                    ; 89 46 14
    9511     jmp near 06805h                           ; e9 e2 fe
    9512     push 0089dh                               ; 68 9d 08
     9638    jmp near 068efh                           ; e9 e2 fe
     9639    push 008afh                               ; 68 af 08
    95139640    push strict byte 00008h                   ; 6a 08
    9514     jmp short 068e9h                          ; eb bf
     9641    jmp short 069d3h                          ; eb bf
    95159642    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9516     jne short 0694fh                          ; 75 1f
     9643    jne short 06a39h                          ; 75 1f
    95179644    mov word [bp+012h], ax                    ; 89 46 12
    95189645    mov ax, word [bp+00ch]                    ; 8b 46 0c
    95199646    xor ah, ah                                ; 30 e4
    95209647    cmp ax, strict word 00001h                ; 3d 01 00
    9521     jc short 06948h                           ; 72 0b
     9648    jc short 06a32h                           ; 72 0b
    95229649    cmp ax, strict word 00003h                ; 3d 03 00
    9523     jnbe short 06948h                         ; 77 06
     9650    jnbe short 06a32h                         ; 77 06
    95249651    mov word [bp+018h], cx                    ; 89 4e 18
    9525     jmp near 06729h                           ; e9 e1 fd
     9652    jmp near 06813h                           ; e9 e1 fd
    95269653    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9527     jmp near 06729h                           ; e9 da fd
    9528     mov bx, 00da0h                            ; bb a0 0d
     9654    jmp near 06813h                           ; e9 da fd
     9655    mov bx, 00db2h                            ; bb b2 0d
    95299656    mov cx, ds                                ; 8c d9
    95309657    mov ax, strict word 00004h                ; b8 04 00
    9531     call 01999h                               ; e8 3f b0
     9658    call 01a2ah                               ; e8 e6 af
    95329659    push word [bp+00ch]                       ; ff 76 0c
    95339660    push word [bp+012h]                       ; ff 76 12
    9534     push 008b4h                               ; 68 b4 08
     9661    push 008c6h                               ; 68 c6 08
    95359662    push strict byte 00004h                   ; 6a 04
    9536     call 019dah                               ; e8 72 b0
     9663    call 01a6bh                               ; e8 19 b0
    95379664    add sp, strict byte 00008h                ; 83 c4 08
    9538     jmp short 068efh                          ; eb 82
    9539     cli                                       ; fa
    9540     push strict byte 0001ch                   ; 6a 1c
    9541     imul di, word [bx], strict byte 0006bh    ; 6b 3f 6b
    9542     popaw                                     ; 61
    9543     imul ax, word [bx+di-05f95h], strict byte 0006bh ; 6b 81 6b a0 6b
    9544     les bp, [bp+di-018h]                      ; c4 6b e8
    9545     imul sp, word [bx], strict byte 0006ch    ; 6b 27 6c
    9546     push bx                                   ; 53
     9665    jmp short 069d9h                          ; eb 82
     9666    in AL, strict byte 06bh                   ; e4 6b
     9667    push ES                                   ; 06
    95479668    insb                                      ; 6c
    9548 _int15_function32:                           ; 0xf6981 LB 0x396
     9669    sub word [si+04bh], bp                    ; 29 6c 4b
     9670    insb                                      ; 6c
     9671    imul bp, word [si-076h], strict byte 0006ch ; 6b 6c 8a 6c
     9672    scasb                                     ; ae
     9673    insb                                      ; 6c
     9674    shr byte [si+011h], CL                    ; d2 6c 11
     9675    insw                                      ; 6d
     9676    db  03dh
     9677    insw                                      ; 6d
     9678_int15_function32:                           ; 0xf6a6b LB 0x396
    95499679    push bp                                   ; 55
    95509680    mov bp, sp                                ; 89 e5
     
    95589688    xor dh, dh                                ; 30 f6
    95599689    cmp ax, 000e8h                            ; 3d e8 00
    9560     je near 06a1eh                            ; 0f 84 7e 00
     9690    je near 06b08h                            ; 0f 84 7e 00
    95619691    cmp ax, 000d0h                            ; 3d d0 00
    9562     je short 069b9h                           ; 74 14
     9692    je short 06aa3h                           ; 74 14
    95639693    cmp ax, 00086h                            ; 3d 86 00
    9564     jne near 06ce7h                           ; 0f 85 3b 03
     9694    jne near 06dd1h                           ; 0f 85 3b 03
    95659695    sti                                       ; fb
    95669696    mov dx, word [bp+01ch]                    ; 8b 56 1c
    95679697    mov ax, word [bp+018h]                    ; 8b 46 18
    9568     call 06553h                               ; e8 9d fb
    9569     jmp near 06d11h                           ; e9 58 03
     9698    call 0663dh                               ; e8 9d fb
     9699    jmp near 06dfbh                           ; e9 58 03
    95709700    cmp dx, strict byte 0004fh                ; 83 fa 4f
    9571     jne near 06ce7h                           ; 0f 85 27 03
     9701    jne near 06dd1h                           ; 0f 85 27 03
    95729702    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    9573     jne near 06ce7h                           ; 0f 85 1e 03
     9703    jne near 06dd1h                           ; 0f 85 1e 03
    95749704    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    9575     jne near 06ce7h                           ; 0f 85 15 03
     9705    jne near 06dd1h                           ; 0f 85 15 03
    95769706    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    9577     jne near 06ce7h                           ; 0f 85 0c 03
     9707    jne near 06dd1h                           ; 0f 85 0c 03
    95789708    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    9579     jne near 06ce7h                           ; 0f 85 03 03
     9709    jne near 06dd1h                           ; 0f 85 03 03
    95809710    mov ax, word [bp+00ah]                    ; 8b 46 0a
    95819711    or ax, word [bp+008h]                     ; 0b 46 08
    9582     jne near 06ce7h                           ; 0f 85 f9 02
     9712    jne near 06dd1h                           ; 0f 85 f9 02
    95839713    mov ax, word [bp+006h]                    ; 8b 46 06
    95849714    or ax, word [bp+004h]                     ; 0b 46 04
    9585     jne near 06ce7h                           ; 0f 85 ef 02
     9715    jne near 06dd1h                           ; 0f 85 ef 02
    95869716    mov word [bp+028h], bx                    ; 89 5e 28
    95879717    mov ax, word [bp+014h]                    ; 8b 46 14
     
    95949724    mov word [bp+006h], ax                    ; 89 46 06
    95959725    mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49
    9596     jmp near 06d11h                           ; e9 f3 02
     9726    jmp near 06dfbh                           ; e9 f3 02
    95979727    cmp dx, strict byte 00020h                ; 83 fa 20
    9598     je short 06a2dh                           ; 74 0a
     9728    je short 06b17h                           ; 74 0a
    95999729    cmp dx, strict byte 00001h                ; 83 fa 01
    9600     je near 06c9ah                            ; 0f 84 70 02
    9601     jmp near 06ce7h                           ; e9 ba 02
     9730    je near 06d84h                            ; 0f 84 70 02
     9731    jmp near 06dd1h                           ; e9 ba 02
    96029732    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    9603     jne near 06ce7h                           ; 0f 85 b1 02
     9733    jne near 06dd1h                           ; 0f 85 b1 02
    96049734    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    9605     jne near 06ce7h                           ; 0f 85 a8 02
     9735    jne near 06dd1h                           ; 0f 85 a8 02
    96069736    mov ax, strict word 00035h                ; b8 35 00
    9607     call 01714h                               ; e8 cf ac
     9737    call 017a5h                               ; e8 76 ac
    96089738    movzx bx, al                              ; 0f b6 d8
    96099739    xor dx, dx                                ; 31 d2
     
    96119741    sal bx, 1                                 ; d1 e3
    96129742    rcl dx, 1                                 ; d1 d2
    9613     loop 06a4dh                               ; e2 fa
     9743    loop 06b37h                               ; e2 fa
    96149744    mov ax, strict word 00034h                ; b8 34 00
    9615     call 01714h                               ; e8 bb ac
     9745    call 017a5h                               ; e8 62 ac
    96169746    xor ah, ah                                ; 30 e4
    96179747    mov dx, bx                                ; 89 da
     
    96219751    adc dx, 00100h                            ; 81 d2 00 01
    96229752    cmp dx, 00100h                            ; 81 fa 00 01
    9623     jc short 06a73h                           ; 72 06
    9624     jne short 06aa0h                          ; 75 31
     9753    jc short 06b5dh                           ; 72 06
     9754    jne short 06b8ah                          ; 75 31
    96259755    test bx, bx                               ; 85 db
    9626     jnbe short 06aa0h                         ; 77 2d
     9756    jnbe short 06b8ah                         ; 77 2d
    96279757    mov ax, strict word 00031h                ; b8 31 00
    9628     call 01714h                               ; e8 9b ac
     9758    call 017a5h                               ; e8 42 ac
    96299759    movzx bx, al                              ; 0f b6 d8
    96309760    xor dx, dx                                ; 31 d2
     
    96329762    sal bx, 1                                 ; d1 e3
    96339763    rcl dx, 1                                 ; d1 d2
    9634     loop 06a81h                               ; e2 fa
     9764    loop 06b6bh                               ; e2 fa
    96359765    mov ax, strict word 00030h                ; b8 30 00
    9636     call 01714h                               ; e8 87 ac
     9766    call 017a5h                               ; e8 2e ac
    96379767    xor ah, ah                                ; 30 e4
    96389768    or bx, ax                                 ; 09 c3
     
    96409770    sal bx, 1                                 ; d1 e3
    96419771    rcl dx, 1                                 ; d1 d2
    9642     loop 06a94h                               ; e2 fa
     9772    loop 06b7eh                               ; e2 fa
    96439773    add bx, strict byte 00000h                ; 83 c3 00
    96449774    adc dx, strict byte 00010h                ; 83 d2 10
    96459775    mov ax, strict word 00062h                ; b8 62 00
    9646     call 01714h                               ; e8 6e ac
     9776    call 017a5h                               ; e8 15 ac
    96479777    xor ah, ah                                ; 30 e4
    96489778    mov word [bp-00ah], ax                    ; 89 46 f6
     
    96529782    sal word [bp-00ah], 1                     ; d1 66 f6
    96539783    rcl word [bp-008h], 1                     ; d1 56 f8
    9654     loop 06ab3h                               ; e2 f8
     9784    loop 06b9dh                               ; e2 f8
    96559785    mov ax, strict word 00061h                ; b8 61 00
    9656     call 01714h                               ; e8 53 ac
     9786    call 017a5h                               ; e8 fa ab
    96579787    xor ah, ah                                ; 30 e4
    96589788    or word [bp-00ah], ax                     ; 09 46 f6
     
    96619791    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    96629792    mov ax, strict word 00063h                ; b8 63 00
    9663     call 01714h                               ; e8 3d ac
     9793    call 017a5h                               ; e8 e4 ab
    96649794    mov byte [bp-004h], al                    ; 88 46 fc
    96659795    mov byte [bp-006h], al                    ; 88 46 fa
    96669796    mov ax, word [bp+014h]                    ; 8b 46 14
    96679797    cmp ax, strict word 00009h                ; 3d 09 00
    9668     jnbe near 06ce7h                          ; 0f 87 00 02
     9798    jnbe near 06dd1h                          ; 0f 87 00 02
    96699799    mov si, ax                                ; 89 c6
    96709800    add si, ax                                ; 01 c6
     
    96739803    mov cx, dx                                ; 89 d1
    96749804    adc cx, strict byte 0ffffh                ; 83 d1 ff
    9675     jmp word [cs:si+0696dh]                   ; 2e ff a4 6d 69
     9805    jmp word [cs:si+06a57h]                   ; 2e ff a4 57 6a
    96769806    push strict byte 00001h                   ; 6a 01
    96779807    push dword 000000000h                     ; 66 6a 00
     
    96829812    xor bx, bx                                ; 31 db
    96839813    xor cx, cx                                ; 31 c9
    9684     call 065c2h                               ; e8 b1 fa
     9814    call 066ach                               ; e8 b1 fa
    96859815    mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00
    9686     jmp near 06c84h                           ; e9 68 01
     9816    jmp near 06d6eh                           ; e9 68 01
    96879817    push strict byte 00002h                   ; 6a 02
    96889818    push dword 000000000h                     ; 66 6a 00
     
    96939823    mov bx, 0fc00h                            ; bb 00 fc
    96949824    mov cx, strict word 00009h                ; b9 09 00
    9695     call 065c2h                               ; e8 8e fa
     9825    call 066ach                               ; e8 8e fa
    96969826    mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00
    9697     jmp near 06c84h                           ; e9 45 01
     9827    jmp near 06d6eh                           ; e9 45 01
    96989828    push strict byte 00002h                   ; 6a 02
    96999829    push dword 000000000h                     ; 66 6a 00
     
    97049834    xor bx, bx                                ; 31 db
    97059835    mov cx, strict word 0000fh                ; b9 0f 00
    9706     call 065c2h                               ; e8 6c fa
     9836    call 066ach                               ; e8 6c fa
    97079837    mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00
    9708     jmp near 06c84h                           ; e9 23 01
     9838    jmp near 06d6eh                           ; e9 23 01
    97099839    push strict byte 00001h                   ; 6a 01
    97109840    push dword 000000000h                     ; 66 6a 00
     
    97159845    xor bx, bx                                ; 31 db
    97169846    mov cx, strict word 00010h                ; b9 10 00
    9717     call 065c2h                               ; e8 4c fa
     9847    call 066ach                               ; e8 4c fa
    97189848    mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00
    9719     jmp near 06c84h                           ; e9 03 01
     9849    jmp near 06d6eh                           ; e9 03 01
    97209850    push strict byte 00003h                   ; 6a 03
    97219851    push dword 000000000h                     ; 66 6a 00
     
    97269856    mov bx, ax                                ; 89 c3
    97279857    mov ax, si                                ; 89 f0
    9728     call 065c2h                               ; e8 2d fa
     9858    call 066ach                               ; e8 2d fa
    97299859    mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00
    9730     jmp near 06c84h                           ; e9 e4 00
     9860    jmp near 06d6eh                           ; e9 e4 00
    97319861    push strict byte 00002h                   ; 6a 02
    97329862    push dword 000000000h                     ; 66 6a 00
     
    97379867    xor bx, bx                                ; 31 db
    97389868    mov cx, 0fec0h                            ; b9 c0 fe
    9739     call 065c2h                               ; e8 09 fa
     9869    call 066ach                               ; e8 09 fa
    97409870    mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00
    9741     jmp near 06c84h                           ; e9 c0 00
     9871    jmp near 06d6eh                           ; e9 c0 00
    97429872    push strict byte 00002h                   ; 6a 02
    97439873    push dword 000000000h                     ; 66 6a 00
     
    97489878    xor bx, bx                                ; 31 db
    97499879    mov cx, 0fee0h                            ; b9 e0 fe
    9750     call 065c2h                               ; e8 e5 f9
     9880    call 066ach                               ; e8 e5 f9
    97519881    mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00
    9752     jmp near 06c84h                           ; e9 9c 00
     9882    jmp near 06d6eh                           ; e9 9c 00
    97539883    push strict byte 00002h                   ; 6a 02
    97549884    push dword 000000000h                     ; 66 6a 00
     
    97589888    xor bx, bx                                ; 31 db
    97599889    mov cx, strict word 0fffch                ; b9 fc ff
    9760     call 065c2h                               ; e8 c4 f9
     9890    call 066ach                               ; e8 c4 f9
    97619891    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9762     jne short 06c0bh                          ; 75 07
     9892    jne short 06cf5h                          ; 75 07
    97639893    mov ax, word [bp-008h]                    ; 8b 46 f8
    97649894    test ax, ax                               ; 85 c0
    9765     je short 06c1fh                           ; 74 14
     9895    je short 06d09h                           ; 74 14
    97669896    mov dword [bp+014h], strict dword 000000009h ; 66 c7 46 14 09 00 00 00
    9767     jmp short 06c84h                          ; eb 6f
     9897    jmp short 06d6eh                          ; eb 6f
    97689898    mov dword [bp+014h], strict dword 000000008h ; 66 c7 46 14 08 00 00 00
    9769     jmp short 06c84h                          ; eb 65
     9899    jmp short 06d6eh                          ; eb 65
    97709900    mov word [bp+014h], ax                    ; 89 46 14
    97719901    mov word [bp+016h], ax                    ; 89 46 16
    9772     jmp short 06c84h                          ; eb 5d
     9902    jmp short 06d6eh                          ; eb 5d
    97739903    push strict byte 00002h                   ; 6a 02
    97749904    push dword 000000000h                     ; 66 6a 00
     
    97789908    xor bx, bx                                ; 31 db
    97799909    xor cx, cx                                ; 31 c9
    9780     call 065c2h                               ; e8 86 f9
     9910    call 066ach                               ; e8 86 f9
    97819911    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9782     jne short 06c49h                          ; 75 07
     9912    jne short 06d33h                          ; 75 07
    97839913    mov ax, word [bp-008h]                    ; 8b 46 f8
    97849914    test ax, ax                               ; 85 c0
    9785     je short 06c4bh                           ; 74 02
    9786     jmp short 06c0bh                          ; eb c0
     9915    je short 06d35h                           ; 74 02
     9916    jmp short 06cf5h                          ; eb c0
    97879917    mov word [bp+014h], ax                    ; 89 46 14
    97889918    mov word [bp+016h], ax                    ; 89 46 16
    9789     jmp short 06c84h                          ; eb 31
     9919    jmp short 06d6eh                          ; eb 31
    97909920    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9791     jne short 06c5fh                          ; 75 06
     9921    jne short 06d49h                          ; 75 06
    97929922    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    9793     je short 06c84h                           ; 74 25
     9923    je short 06d6eh                           ; 74 25
    97949924    push strict byte 00001h                   ; 6a 01
    97959925    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    98049934    xor bx, bx                                ; 31 db
    98059935    xor cx, cx                                ; 31 c9
    9806     call 065c2h                               ; e8 46 f9
     9936    call 066ach                               ; e8 46 f9
    98079937    xor ax, ax                                ; 31 c0
    98089938    mov word [bp+014h], ax                    ; 89 46 14
     
    98119941    mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00
    98129942    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    9813     jmp short 06d11h                          ; eb 77
     9943    jmp short 06dfbh                          ; eb 77
    98149944    mov word [bp+028h], bx                    ; 89 5e 28
    98159945    mov ax, strict word 00031h                ; b8 31 00
    9816     call 01714h                               ; e8 71 aa
     9946    call 017a5h                               ; e8 18 aa
    98179947    xor ah, ah                                ; 30 e4
    98189948    mov dx, ax                                ; 89 c2
    98199949    sal dx, 008h                              ; c1 e2 08
    98209950    mov ax, strict word 00030h                ; b8 30 00
    9821     call 01714h                               ; e8 64 aa
     9951    call 017a5h                               ; e8 0b aa
    98229952    xor ah, ah                                ; 30 e4
    98239953    or dx, ax                                 ; 09 c2
    98249954    mov word [bp+01ch], dx                    ; 89 56 1c
    98259955    cmp dx, 03c00h                            ; 81 fa 00 3c
    9826     jbe short 06cc2h                          ; 76 05
     9956    jbe short 06dach                          ; 76 05
    98279957    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    98289958    mov ax, strict word 00035h                ; b8 35 00
    9829     call 01714h                               ; e8 4c aa
     9959    call 017a5h                               ; e8 f3 a9
    98309960    xor ah, ah                                ; 30 e4
    98319961    mov dx, ax                                ; 89 c2
    98329962    sal dx, 008h                              ; c1 e2 08
    98339963    mov ax, strict word 00034h                ; b8 34 00
    9834     call 01714h                               ; e8 3f aa
     9964    call 017a5h                               ; e8 e6 a9
    98359965    xor ah, ah                                ; 30 e4
    98369966    or dx, ax                                 ; 09 c2
     
    98399969    mov word [bp+020h], ax                    ; 89 46 20
    98409970    mov word [bp+014h], dx                    ; 89 56 14
    9841     jmp short 06d11h                          ; eb 2a
    9842     mov bx, 00da0h                            ; bb a0 0d
     9971    jmp short 06dfbh                          ; eb 2a
     9972    mov bx, 00db2h                            ; bb b2 0d
    98439973    mov cx, ds                                ; 8c d9
    98449974    mov ax, strict word 00004h                ; b8 04 00
    9845     call 01999h                               ; e8 a7 ac
     9975    call 01a2ah                               ; e8 4e ac
    98469976    push word [bp+014h]                       ; ff 76 14
    98479977    push word [bp+020h]                       ; ff 76 20
    9848     push 008b4h                               ; 68 b4 08
     9978    push 008c6h                               ; 68 c6 08
    98499979    push strict byte 00004h                   ; 6a 04
    9850     call 019dah                               ; e8 da ac
     9980    call 01a6bh                               ; e8 81 ac
    98519981    add sp, strict byte 00008h                ; 83 c4 08
    98529982    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    98599989    pop bp                                    ; 5d
    98609990    retn                                      ; c3
    9861 _int15_blkmove:                              ; 0xf6d17 LB 0x1ab
     9991_int15_blkmove:                              ; 0xf6e01 LB 0x1ab
    98629992    push bp                                   ; 55
    98639993    mov bp, sp                                ; 89 e5
     
    98689998    cli                                       ; fa
    98699999    mov ax, strict word 00001h                ; b8 01 00
    9870     call 06596h                               ; e8 71 f8
     10000    call 06680h                               ; e8 71 f8
    987110001    mov di, ax                                ; 89 c7
    987210002    mov ax, word [bp+006h]                    ; 8b 46 06
     
    987810008    mov byte [bp-006h], dl                    ; 88 56 fa
    987910009    cmp cx, ax                                ; 39 c1
    9880     jnc short 06d44h                          ; 73 05
     10010    jnc short 06e2eh                          ; 73 05
    988110011    db  0feh, 0c2h
    988210012    ; inc dl                                    ; fe c2
     
    988610016    mov ax, word [bp+006h]                    ; 8b 46 06
    988710017    mov bx, strict word 0002fh                ; bb 2f 00
    9888     call 016e2h                               ; e8 8f a9
     10018    call 01773h                               ; e8 36 a9
    988910019    mov dx, word [bp+00ah]                    ; 8b 56 0a
    989010020    add dx, strict byte 0000ah                ; 83 c2 0a
    989110021    mov ax, word [bp+006h]                    ; 8b 46 06
    989210022    mov bx, cx                                ; 89 cb
    9893     call 016e2h                               ; e8 81 a9
     10023    call 01773h                               ; e8 28 a9
    989410024    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    989510025    mov dx, word [bp+00ah]                    ; 8b 56 0a
    989610026    add dx, strict byte 0000ch                ; 83 c2 0c
    989710027    mov ax, word [bp+006h]                    ; 8b 46 06
    9898     call 016c6h                               ; e8 55 a9
     10028    call 01757h                               ; e8 fc a8
    989910029    mov dx, word [bp+00ah]                    ; 8b 56 0a
    990010030    add dx, strict byte 0000dh                ; 83 c2 0d
    990110031    mov ax, word [bp+006h]                    ; 8b 46 06
    990210032    mov bx, 00093h                            ; bb 93 00
    9903     call 016c6h                               ; e8 46 a9
     10033    call 01757h                               ; e8 ed a8
    990410034    mov dx, word [bp+00ah]                    ; 8b 56 0a
    990510035    add dx, strict byte 0000eh                ; 83 c2 0e
    990610036    mov ax, word [bp+006h]                    ; 8b 46 06
    990710037    xor bx, bx                                ; 31 db
    9908     call 016e2h                               ; e8 54 a9
     10038    call 01773h                               ; e8 fb a8
    990910039    mov dx, word [bp+00ah]                    ; 8b 56 0a
    991010040    add dx, strict byte 00020h                ; 83 c2 20
    991110041    mov ax, word [bp+006h]                    ; 8b 46 06
    991210042    mov bx, strict word 0ffffh                ; bb ff ff
    9913     call 016e2h                               ; e8 45 a9
     10043    call 01773h                               ; e8 ec a8
    991410044    mov dx, word [bp+00ah]                    ; 8b 56 0a
    991510045    add dx, strict byte 00022h                ; 83 c2 22
    991610046    mov ax, word [bp+006h]                    ; 8b 46 06
    991710047    xor bx, bx                                ; 31 db
    9918     call 016e2h                               ; e8 37 a9
     10048    call 01773h                               ; e8 de a8
    991910049    mov dx, word [bp+00ah]                    ; 8b 56 0a
    992010050    add dx, strict byte 00024h                ; 83 c2 24
    992110051    mov ax, word [bp+006h]                    ; 8b 46 06
    992210052    mov bx, strict word 0000fh                ; bb 0f 00
    9923     call 016c6h                               ; e8 0c a9
     10053    call 01757h                               ; e8 b3 a8
    992410054    mov dx, word [bp+00ah]                    ; 8b 56 0a
    992510055    add dx, strict byte 00025h                ; 83 c2 25
    992610056    mov ax, word [bp+006h]                    ; 8b 46 06
    992710057    mov bx, 0009bh                            ; bb 9b 00
    9928     call 016c6h                               ; e8 fd a8
     10058    call 01757h                               ; e8 a4 a8
    992910059    mov dx, word [bp+00ah]                    ; 8b 56 0a
    993010060    add dx, strict byte 00026h                ; 83 c2 26
    993110061    mov ax, word [bp+006h]                    ; 8b 46 06
    993210062    xor bx, bx                                ; 31 db
    9933     call 016e2h                               ; e8 0b a9
     10063    call 01773h                               ; e8 b2 a8
    993410064    mov ax, ss                                ; 8c d0
    993510065    mov cx, ax                                ; 89 c1
     
    994110071    mov ax, word [bp+006h]                    ; 8b 46 06
    994210072    mov bx, strict word 0ffffh                ; bb ff ff
    9943     call 016e2h                               ; e8 ef a8
     10073    call 01773h                               ; e8 96 a8
    994410074    mov dx, word [bp+00ah]                    ; 8b 56 0a
    994510075    add dx, strict byte 0002ah                ; 83 c2 2a
    994610076    mov ax, word [bp+006h]                    ; 8b 46 06
    994710077    mov bx, cx                                ; 89 cb
    9948     call 016e2h                               ; e8 e1 a8
     10078    call 01773h                               ; e8 88 a8
    994910079    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    995010080    mov dx, word [bp+00ah]                    ; 8b 56 0a
    995110081    add dx, strict byte 0002ch                ; 83 c2 2c
    995210082    mov ax, word [bp+006h]                    ; 8b 46 06
    9953     call 016c6h                               ; e8 b5 a8
     10083    call 01757h                               ; e8 5c a8
    995410084    mov dx, word [bp+00ah]                    ; 8b 56 0a
    995510085    add dx, strict byte 0002dh                ; 83 c2 2d
    995610086    mov ax, word [bp+006h]                    ; 8b 46 06
    995710087    mov bx, 00093h                            ; bb 93 00
    9958     call 016c6h                               ; e8 a6 a8
     10088    call 01757h                               ; e8 4d a8
    995910089    mov dx, word [bp+00ah]                    ; 8b 56 0a
    996010090    add dx, strict byte 0002eh                ; 83 c2 2e
    996110091    mov ax, word [bp+006h]                    ; 8b 46 06
    996210092    xor bx, bx                                ; 31 db
    9963     call 016e2h                               ; e8 b4 a8
     10093    call 01773h                               ; e8 5b a8
    996410094    lea ax, [bp+004h]                         ; 8d 46 04
    996510095    mov si, word [bp+00ah]                    ; 8b 76 0a
     
    997310103    mov word [00467h], sp                     ; 89 26 67 04
    997410104    mov [00469h], ss                          ; 8c 16 69 04
    9975     call 06e4dh                               ; e8 00 00
     10105    call 06f37h                               ; e8 00 00
    997610106    pop di                                    ; 5f
    997710107    add di, strict byte 0001bh                ; 83 c7 1b
     
    999610126    cld                                       ; fc
    999710127    rep movsw                                 ; f3 a5
    9998     call 06e81h                               ; e8 00 00
     10128    call 06f6bh                               ; e8 00 00
    999910129    pop ax                                    ; 58
    1000010130    push 0f000h                               ; 68 00 f0
     
    1001710147    pop DS                                    ; 1f
    1001810148    mov ax, di                                ; 89 f8
    10019     call 06596h                               ; e8 e4 f6
     10149    call 06680h                               ; e8 e4 f6
    1002010150    sti                                       ; fb
    1002110151    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    1002610156    pop bp                                    ; 5d
    1002710157    retn                                      ; c3
    10028 _inv_op_handler:                             ; 0xf6ec2 LB 0x195
     10158_inv_op_handler:                             ; 0xf6fac LB 0x195
    1002910159    push bp                                   ; 55
    1003010160    mov bp, sp                                ; 89 e5
     
    1003510165    les bx, [bp+018h]                         ; c4 5e 18
    1003610166    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10037     jne short 06ed8h                          ; 75 06
     10167    jne short 06fc2h                          ; 75 06
    1003810168    inc word [bp+018h]                        ; ff 46 18
    10039     jmp near 07050h                           ; e9 78 01
     10169    jmp near 0713ah                           ; e9 78 01
    1004010170    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10041     jne near 0704ch                           ; 0f 85 6b 01
     10171    jne near 07136h                           ; 0f 85 6b 01
    1004210172    mov si, 00800h                            ; be 00 08
    1004310173    xor ax, ax                                ; 31 c0
     
    1006710197    sal ax, 1                                 ; d1 e0
    1006810198    rcl dx, 1                                 ; d1 d2
    10069     loop 06f31h                               ; e2 fa
     10199    loop 0701bh                               ; e2 fa
    1007010200    cmp bx, dx                                ; 39 d3
    10071     jne short 06f3fh                          ; 75 04
     10201    jne short 07029h                          ; 75 04
    1007210202    cmp di, ax                                ; 39 c7
    10073     je short 06f44h                           ; 74 05
     10203    je short 0702eh                           ; 74 05
    1007410204    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    1007510205    mov es, [bp-006h]                         ; 8e 46 fa
     
    1008110211    sal ax, 1                                 ; d1 e0
    1008210212    rcl dx, 1                                 ; d1 d2
    10083     loop 06f59h                               ; e2 fa
     10213    loop 07043h                               ; e2 fa
    1008410214    cmp di, dx                                ; 39 d7
    10085     jne short 06f67h                          ; 75 04
     10215    jne short 07051h                          ; 75 04
    1008610216    cmp bx, ax                                ; 39 c3
    10087     je short 06f6bh                           ; 74 04
     10217    je short 07055h                           ; 74 04
    1008810218    or byte [bp-008h], 002h                   ; 80 4e f8 02
    1008910219    push strict byte 00000h                   ; 6a 00
     
    1013510265    mov ax, strict word 00008h                ; b8 08 00
    1013610266    test cx, strict word 00001h               ; f7 c1 01 00
    10137     je near 07009h                            ; 0f 84 02 00
     10267    je near 070f3h                            ; 0f 84 02 00
    1013810268    mov es, ax                                ; 8e c0
    1013910269    test cx, strict word 00002h               ; f7 c1 02 00
    10140     je near 07031h                            ; 0f 84 20 00
     10270    je near 0711bh                            ; 0f 84 20 00
    1014110271    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1014210272    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1015510285    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1015610286    iret                                      ; cf
    10157     jmp short 07050h                          ; eb 04
     10287    jmp short 0713ah                          ; eb 04
    1015810288    sti                                       ; fb
    1015910289    hlt                                       ; f4
    10160     jmp short 0704dh                          ; eb fd
     10290    jmp short 07137h                          ; eb fd
    1016110291    lea sp, [bp-004h]                         ; 8d 66 fc
    1016210292    pop di                                    ; 5f
     
    1016410294    pop bp                                    ; 5d
    1016510295    retn                                      ; c3
    10166 init_rtc_:                                   ; 0xf7057 LB 0x28
     10296init_rtc_:                                   ; 0xf7141 LB 0x28
    1016710297    push bp                                   ; 55
    1016810298    mov bp, sp                                ; 89 e5
     
    1017010300    mov dx, strict word 00026h                ; ba 26 00
    1017110301    mov ax, strict word 0000ah                ; b8 0a 00
    10172     call 01731h                               ; e8 cd a6
     10302    call 017c2h                               ; e8 74 a6
    1017310303    mov dx, strict word 00002h                ; ba 02 00
    1017410304    mov ax, strict word 0000bh                ; b8 0b 00
    10175     call 01731h                               ; e8 c4 a6
     10305    call 017c2h                               ; e8 6b a6
    1017610306    mov ax, strict word 0000ch                ; b8 0c 00
    10177     call 01714h                               ; e8 a1 a6
     10307    call 017a5h                               ; e8 48 a6
    1017810308    mov ax, strict word 0000dh                ; b8 0d 00
    10179     call 01714h                               ; e8 9b a6
     10309    call 017a5h                               ; e8 42 a6
    1018010310    lea sp, [bp-002h]                         ; 8d 66 fe
    1018110311    pop dx                                    ; 5a
    1018210312    pop bp                                    ; 5d
    1018310313    retn                                      ; c3
    10184 rtc_updating_:                               ; 0xf707f LB 0x21
     10314rtc_updating_:                               ; 0xf7169 LB 0x21
    1018510315    push bp                                   ; 55
    1018610316    mov bp, sp                                ; 89 e5
     
    1018810318    mov dx, 061a8h                            ; ba a8 61
    1018910319    dec dx                                    ; 4a
    10190     je short 07097h                           ; 74 0e
     10320    je short 07181h                           ; 74 0e
    1019110321    mov ax, strict word 0000ah                ; b8 0a 00
    10192     call 01714h                               ; e8 85 a6
     10322    call 017a5h                               ; e8 2c a6
    1019310323    test AL, strict byte 080h                 ; a8 80
    10194     jne short 07086h                          ; 75 f3
     10324    jne short 07170h                          ; 75 f3
    1019510325    xor ax, ax                                ; 31 c0
    10196     jmp short 0709ah                          ; eb 03
     10326    jmp short 07184h                          ; eb 03
    1019710327    mov ax, strict word 00001h                ; b8 01 00
    1019810328    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1020010330    pop bp                                    ; 5d
    1020110331    retn                                      ; c3
    10202 _int70_function:                             ; 0xf70a0 LB 0xbe
     10332_int70_function:                             ; 0xf718a LB 0xbe
    1020310333    push bp                                   ; 55
    1020410334    mov bp, sp                                ; 89 e5
     
    1020610336    push ax                                   ; 50
    1020710337    mov ax, strict word 0000bh                ; b8 0b 00
    10208     call 01714h                               ; e8 69 a6
     10338    call 017a5h                               ; e8 10 a6
    1020910339    mov dl, al                                ; 88 c2
    1021010340    mov byte [bp-004h], al                    ; 88 46 fc
    1021110341    mov ax, strict word 0000ch                ; b8 0c 00
    10212     call 01714h                               ; e8 5e a6
     10342    call 017a5h                               ; e8 05 a6
    1021310343    mov dh, al                                ; 88 c6
    1021410344    test dl, 060h                             ; f6 c2 60
    10215     je near 07145h                            ; 0f 84 86 00
     10345    je near 0722fh                            ; 0f 84 86 00
    1021610346    test AL, strict byte 020h                 ; a8 20
    10217     je short 070c7h                           ; 74 04
     10347    je short 071b1h                           ; 74 04
    1021810348    sti                                       ; fb
    1021910349    int 04ah                                  ; cd 4a
    1022010350    cli                                       ; fa
    1022110351    test dh, 040h                             ; f6 c6 40
    10222     je near 07145h                            ; 0f 84 77 00
     10352    je near 0722fh                            ; 0f 84 77 00
    1022310353    mov dx, 000a0h                            ; ba a0 00
    1022410354    mov ax, strict word 00040h                ; b8 40 00
    10225     call 016b8h                               ; e8 e1 a5
     10355    call 01749h                               ; e8 88 a5
    1022610356    test al, al                               ; 84 c0
    10227     je short 07145h                           ; 74 6a
     10357    je short 0722fh                           ; 74 6a
    1022810358    mov dx, 0009ch                            ; ba 9c 00
    1022910359    mov ax, strict word 00040h                ; b8 40 00
    10230     call 016f0h                               ; e8 0c a6
     10360    call 01781h                               ; e8 b3 a5
    1023110361    test dx, dx                               ; 85 d2
    10232     jne short 07131h                          ; 75 49
     10362    jne short 0721bh                          ; 75 49
    1023310363    cmp ax, 003d1h                            ; 3d d1 03
    10234     jnc short 07131h                          ; 73 44
     10364    jnc short 0721bh                          ; 73 44
    1023510365    mov dx, 00098h                            ; ba 98 00
    1023610366    mov ax, strict word 00040h                ; b8 40 00
    10237     call 016d4h                               ; e8 de a5
     10367    call 01765h                               ; e8 85 a5
    1023810368    mov si, ax                                ; 89 c6
    1023910369    mov dx, 0009ah                            ; ba 9a 00
    1024010370    mov ax, strict word 00040h                ; b8 40 00
    10241     call 016d4h                               ; e8 d3 a5
     10371    call 01765h                               ; e8 7a a5
    1024210372    mov cx, ax                                ; 89 c1
    1024310373    xor bx, bx                                ; 31 db
    1024410374    mov dx, 000a0h                            ; ba a0 00
    1024510375    mov ax, strict word 00040h                ; b8 40 00
    10246     call 016c6h                               ; e8 b8 a5
     10376    call 01757h                               ; e8 5f a5
    1024710377    mov al, byte [bp-004h]                    ; 8a 46 fc
    1024810378    and AL, strict byte 037h                  ; 24 37
    1024910379    movzx dx, al                              ; 0f b6 d0
    1025010380    mov ax, strict word 0000bh                ; b8 0b 00
    10251     call 01731h                               ; e8 15 a6
     10381    call 017c2h                               ; e8 bc a5
    1025210382    mov dx, cx                                ; 89 ca
    1025310383    mov ax, si                                ; 89 f0
    10254     call 016b8h                               ; e8 95 a5
     10384    call 01749h                               ; e8 3c a5
    1025510385    or AL, strict byte 080h                   ; 0c 80
    1025610386    movzx bx, al                              ; 0f b6 d8
    1025710387    mov dx, cx                                ; 89 ca
    1025810388    mov ax, si                                ; 89 f0
    10259     call 016c6h                               ; e8 97 a5
    10260     jmp short 07145h                          ; eb 14
     10389    call 01757h                               ; e8 3e a5
     10390    jmp short 0722fh                          ; eb 14
    1026110391    mov bx, ax                                ; 89 c3
    1026210392    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1026510395    mov dx, 0009ch                            ; ba 9c 00
    1026610396    mov ax, strict word 00040h                ; b8 40 00
    10267     call 01702h                               ; e8 bd a5
    10268     call 0e030h                               ; e8 e8 6e
     10397    call 01793h                               ; e8 64 a5
     10398    call 0e030h                               ; e8 fe 6d
    1026910399    lea sp, [bp-002h]                         ; 8d 66 fe
    1027010400    pop si                                    ; 5e
    1027110401    pop bp                                    ; 5d
    1027210402    retn                                      ; c3
    10273     jne short 071c1h                          ; 75 71
    10274     sahf                                      ; 9e
    10275     jno short 07116h                          ; 71 c3
    10276     jno short 0714ah                          ; 71 f5
    10277     jno short 0719bh                          ; 71 44
    10278     jc short 071d5h                           ; 72 7c
    10279     jc short 0711ah                           ; 72 bf
    10280     jc short 07173h                           ; 72 16
    10281     db  073h
    10282 _int1a_function:                             ; 0xf715e LB 0x1c8
     10403    pop di                                    ; 5f
     10404    jc short 071c3h                           ; 72 88
     10405    jc short 071eah                           ; 72 ad
     10406    jc short 0721eh                           ; 72 df
     10407    jc short 0726fh                           ; 72 2e
     10408    jnc short 072a9h                          ; 73 66
     10409    jnc short 071eeh                          ; 73 a9
     10410    jnc short 07247h                          ; 73 00
     10411    db  074h
     10412_int1a_function:                             ; 0xf7248 LB 0x1c8
    1028310413    push bp                                   ; 55
    1028410414    mov bp, sp                                ; 89 e5
     
    1028610416    mov al, byte [bp+013h]                    ; 8a 46 13
    1028710417    cmp AL, strict byte 007h                  ; 3c 07
    10288     jnbe near 0719ah                          ; 0f 87 2f 00
     10418    jnbe near 07284h                          ; 0f 87 2f 00
    1028910419    movzx bx, al                              ; 0f b6 d8
    1029010420    add bx, bx                                ; 01 db
    10291     jmp word [cs:bx+0714eh]                   ; 2e ff a7 4e 71
     10421    jmp word [cs:bx+07238h]                   ; 2e ff a7 38 72
    1029210422    cli                                       ; fa
    1029310423    mov bx, 0046eh                            ; bb 6e 04
     
    1032010450    sti                                       ; fb
    1032110451    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10322     jmp short 0719ah                          ; eb d7
    10323     call 0707fh                               ; e8 b9 fe
     10452    jmp short 07284h                          ; eb d7
     10453    call 07169h                               ; e8 b9 fe
    1032410454    test ax, ax                               ; 85 c0
    10325     je short 071cch                           ; 74 02
    10326     jmp short 0719ah                          ; eb ce
     10455    je short 072b6h                           ; 74 02
     10456    jmp short 07284h                          ; eb ce
    1032710457    xor ax, ax                                ; 31 c0
    10328     call 01714h                               ; e8 43 a5
     10458    call 017a5h                               ; e8 ea a4
    1032910459    mov byte [bp+00fh], al                    ; 88 46 0f
    1033010460    mov ax, strict word 00002h                ; b8 02 00
    10331     call 01714h                               ; e8 3a a5
     10461    call 017a5h                               ; e8 e1 a4
    1033210462    mov byte [bp+010h], al                    ; 88 46 10
    1033310463    mov ax, strict word 00004h                ; b8 04 00
    10334     call 01714h                               ; e8 31 a5
     10464    call 017a5h                               ; e8 d8 a4
    1033510465    mov bl, al                                ; 88 c3
    1033610466    mov byte [bp+011h], al                    ; 88 46 11
    1033710467    mov ax, strict word 0000bh                ; b8 0b 00
    10338     call 01714h                               ; e8 26 a5
     10468    call 017a5h                               ; e8 cd a4
    1033910469    and AL, strict byte 001h                  ; 24 01
    1034010470    mov byte [bp+00eh], al                    ; 88 46 0e
    10341     jmp short 0723ah                          ; eb 45
    10342     call 0707fh                               ; e8 87 fe
     10471    jmp short 07324h                          ; eb 45
     10472    call 07169h                               ; e8 87 fe
    1034310473    test ax, ax                               ; 85 c0
    10344     je short 071ffh                           ; 74 03
    10345     call 07057h                               ; e8 58 fe
     10474    je short 072e9h                           ; 74 03
     10475    call 07141h                               ; e8 58 fe
    1034610476    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1034710477    xor ax, ax                                ; 31 c0
    10348     call 01731h                               ; e8 29 a5
     10478    call 017c2h                               ; e8 d0 a4
    1034910479    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1035010480    mov ax, strict word 00002h                ; b8 02 00
    10351     call 01731h                               ; e8 1f a5
     10481    call 017c2h                               ; e8 c6 a4
    1035210482    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1035310483    mov ax, strict word 00004h                ; b8 04 00
    10354     call 01731h                               ; e8 15 a5
     10484    call 017c2h                               ; e8 bc a4
    1035510485    mov ax, strict word 0000bh                ; b8 0b 00
    10356     call 01714h                               ; e8 f2 a4
     10486    call 017a5h                               ; e8 99 a4
    1035710487    mov bl, al                                ; 88 c3
    1035810488    and bl, 060h                              ; 80 e3 60
     
    1036310493    movzx dx, bl                              ; 0f b6 d3
    1036410494    mov ax, strict word 0000bh                ; b8 0b 00
    10365     call 01731h                               ; e8 f7 a4
     10495    call 017c2h                               ; e8 9e a4
    1036610496    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1036710497    mov byte [bp+012h], bl                    ; 88 5e 12
    10368     jmp near 0719ah                           ; e9 56 ff
     10498    jmp near 07284h                           ; e9 56 ff
    1036910499    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10370     call 0707fh                               ; e8 34 fe
     10500    call 07169h                               ; e8 34 fe
    1037110501    test ax, ax                               ; 85 c0
    10372     je short 07252h                           ; 74 03
    10373     jmp near 0719ah                           ; e9 48 ff
     10502    je short 0733ch                           ; 74 03
     10503    jmp near 07284h                           ; e9 48 ff
    1037410504    mov ax, strict word 00009h                ; b8 09 00
    10375     call 01714h                               ; e8 bc a4
     10505    call 017a5h                               ; e8 63 a4
    1037610506    mov byte [bp+010h], al                    ; 88 46 10
    1037710507    mov ax, strict word 00008h                ; b8 08 00
    10378     call 01714h                               ; e8 b3 a4
     10508    call 017a5h                               ; e8 5a a4
    1037910509    mov byte [bp+00fh], al                    ; 88 46 0f
    1038010510    mov ax, strict word 00007h                ; b8 07 00
    10381     call 01714h                               ; e8 aa a4
     10511    call 017a5h                               ; e8 51 a4
    1038210512    mov byte [bp+00eh], al                    ; 88 46 0e
    1038310513    mov ax, strict word 00032h                ; b8 32 00
    10384     call 01714h                               ; e8 a1 a4
     10514    call 017a5h                               ; e8 48 a4
    1038510515    mov byte [bp+011h], al                    ; 88 46 11
    1038610516    mov byte [bp+012h], al                    ; 88 46 12
    10387     jmp near 0719ah                           ; e9 1e ff
    10388     call 0707fh                               ; e8 00 fe
     10517    jmp near 07284h                           ; e9 1e ff
     10518    call 07169h                               ; e8 00 fe
    1038910519    test ax, ax                               ; 85 c0
    10390     je short 07289h                           ; 74 06
    10391     call 07057h                               ; e8 d1 fd
    10392     jmp near 0719ah                           ; e9 11 ff
     10520    je short 07373h                           ; 74 06
     10521    call 07141h                               ; e8 d1 fd
     10522    jmp near 07284h                           ; e9 11 ff
    1039310523    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1039410524    mov ax, strict word 00009h                ; b8 09 00
    10395     call 01731h                               ; e8 9e a4
     10525    call 017c2h                               ; e8 45 a4
    1039610526    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1039710527    mov ax, strict word 00008h                ; b8 08 00
    10398     call 01731h                               ; e8 94 a4
     10528    call 017c2h                               ; e8 3b a4
    1039910529    movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
    1040010530    mov ax, strict word 00007h                ; b8 07 00
    10401     call 01731h                               ; e8 8a a4
     10531    call 017c2h                               ; e8 31 a4
    1040210532    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1040310533    mov ax, strict word 00032h                ; b8 32 00
    10404     call 01731h                               ; e8 80 a4
     10534    call 017c2h                               ; e8 27 a4
    1040510535    mov ax, strict word 0000bh                ; b8 0b 00
    10406     call 01714h                               ; e8 5d a4
     10536    call 017a5h                               ; e8 04 a4
    1040710537    mov bl, al                                ; 88 c3
    1040810538    and bl, 07fh                              ; 80 e3 7f
    10409     jmp near 07231h                           ; e9 72 ff
     10539    jmp near 0731bh                           ; e9 72 ff
    1041010540    mov ax, strict word 0000bh                ; b8 0b 00
    10411     call 01714h                               ; e8 4f a4
     10541    call 017a5h                               ; e8 f6 a3
    1041210542    mov bl, al                                ; 88 c3
    1041310543    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1041410544    test AL, strict byte 020h                 ; a8 20
    10415     je short 072d3h                           ; 74 03
    10416     jmp near 0719ah                           ; e9 c7 fe
    10417     call 0707fh                               ; e8 a9 fd
     10545    je short 073bdh                           ; 74 03
     10546    jmp near 07284h                           ; e9 c7 fe
     10547    call 07169h                               ; e8 a9 fd
    1041810548    test ax, ax                               ; 85 c0
    10419     je short 072ddh                           ; 74 03
    10420     call 07057h                               ; e8 7a fd
     10549    je short 073c7h                           ; 74 03
     10550    call 07141h                               ; e8 7a fd
    1042110551    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1042210552    mov ax, strict word 00001h                ; b8 01 00
    10423     call 01731h                               ; e8 4a a4
     10553    call 017c2h                               ; e8 f1 a3
    1042410554    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1042510555    mov ax, strict word 00003h                ; b8 03 00
    10426     call 01731h                               ; e8 40 a4
     10556    call 017c2h                               ; e8 e7 a3
    1042710557    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1042810558    mov ax, strict word 00005h                ; b8 05 00
    10429     call 01731h                               ; e8 36 a4
     10559    call 017c2h                               ; e8 dd a3
    1043010560    mov dx, 000a1h                            ; ba a1 00
    1043110561    in AL, DX                                 ; ec
     
    1043910569    movzx dx, al                              ; 0f b6 d0
    1044010570    mov ax, strict word 0000bh                ; b8 0b 00
    10441     call 01731h                               ; e8 1e a4
    10442     jmp near 0719ah                           ; e9 84 fe
     10571    call 017c2h                               ; e8 c5 a3
     10572    jmp near 07284h                           ; e9 84 fe
    1044310573    mov ax, strict word 0000bh                ; b8 0b 00
    10444     call 01714h                               ; e8 f8 a3
     10574    call 017a5h                               ; e8 9f a3
    1044510575    mov bl, al                                ; 88 c3
    1044610576    and AL, strict byte 057h                  ; 24 57
    1044710577    movzx dx, al                              ; 0f b6 d0
    10448     jmp near 07234h                           ; e9 0e ff
    10449 send_to_mouse_ctrl_:                         ; 0xf7326 LB 0x34
     10578    jmp near 0731eh                           ; e9 0e ff
     10579send_to_mouse_ctrl_:                         ; 0xf7410 LB 0x34
    1045010580    push bp                                   ; 55
    1045110581    mov bp, sp                                ; 89 e5
     
    1045810588    ; sub ah, ah                                ; 2a e4
    1045910589    test AL, strict byte 002h                 ; a8 02
    10460     je short 07345h                           ; 74 0e
    10461     push 008eeh                               ; 68 ee 08
    10462     push 01168h                               ; 68 68 11
     10590    je short 0742fh                           ; 74 0e
     10591    push 00900h                               ; 68 00 09
     10592    push 0117ah                               ; 68 7a 11
    1046310593    push strict byte 00007h                   ; 6a 07
    10464     call 019dah                               ; e8 98 a6
     10594    call 01a6bh                               ; e8 3f a6
    1046510595    add sp, strict byte 00006h                ; 83 c4 06
    1046610596    mov AL, strict byte 0d4h                  ; b0 d4
     
    1047610606    pop bp                                    ; 5d
    1047710607    retn                                      ; c3
    10478 get_mouse_data_:                             ; 0xf735a LB 0x5c
     10608get_mouse_data_:                             ; 0xf7444 LB 0x5c
    1047910609    push bp                                   ; 55
    1048010610    mov bp, sp                                ; 89 e5
     
    1049110621    and ax, strict word 00021h                ; 25 21 00
    1049210622    cmp ax, strict word 00021h                ; 3d 21 00
    10493     je short 0739ch                           ; 74 27
     10623    je short 07486h                           ; 74 27
    1049410624    test cx, cx                               ; 85 c9
    10495     je short 0739ch                           ; 74 23
     10625    je short 07486h                           ; 74 23
    1049610626    mov dx, strict word 00061h                ; ba 61 00
    1049710627    in AL, DX                                 ; ec
     
    1050910639    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1051010640    cmp dx, ax                                ; 39 c2
    10511     je short 07384h                           ; 74 eb
     10641    je short 0746eh                           ; 74 eb
    1051210642    dec cx                                    ; 49
    10513     jmp short 07367h                          ; eb cb
     10643    jmp short 07451h                          ; eb cb
    1051410644    test cx, cx                               ; 85 c9
    10515     jne short 073a4h                          ; 75 04
     10645    jne short 0748eh                          ; 75 04
    1051610646    mov AL, strict byte 001h                  ; b0 01
    10517     jmp short 073afh                          ; eb 0b
     10647    jmp short 07499h                          ; eb 0b
    1051810648    mov dx, strict word 00060h                ; ba 60 00
    1051910649    in AL, DX                                 ; ec
     
    1052710657    pop bp                                    ; 5d
    1052810658    retn                                      ; c3
    10529 set_kbd_command_byte_:                       ; 0xf73b6 LB 0x32
     10659set_kbd_command_byte_:                       ; 0xf74a0 LB 0x32
    1053010660    push bp                                   ; 55
    1053110661    mov bp, sp                                ; 89 e5
     
    1053810668    ; sub ah, ah                                ; 2a e4
    1053910669    test AL, strict byte 002h                 ; a8 02
    10540     je short 073d5h                           ; 74 0e
    10541     push 008f8h                               ; 68 f8 08
    10542     push 01168h                               ; 68 68 11
     10670    je short 074bfh                           ; 74 0e
     10671    push 0090ah                               ; 68 0a 09
     10672    push 0117ah                               ; 68 7a 11
    1054310673    push strict byte 00007h                   ; 6a 07
    10544     call 019dah                               ; e8 08 a6
     10674    call 01a6bh                               ; e8 af a5
    1054510675    add sp, strict byte 00006h                ; 83 c4 06
    1054610676    mov AL, strict byte 060h                  ; b0 60
     
    1055510685    pop bp                                    ; 5d
    1055610686    retn                                      ; c3
    10557 _int74_function:                             ; 0xf73e8 LB 0xca
     10687_int74_function:                             ; 0xf74d2 LB 0xca
    1055810688    push bp                                   ; 55
    1055910689    mov bp, sp                                ; 89 e5
     
    1056110691    mov dx, strict word 0000eh                ; ba 0e 00
    1056210692    mov ax, strict word 00040h                ; b8 40 00
    10563     call 016d4h                               ; e8 dd a2
     10693    call 01765h                               ; e8 84 a2
    1056410694    mov cx, ax                                ; 89 c1
    1056510695    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1057010700    and AL, strict byte 021h                  ; 24 21
    1057110701    cmp AL, strict byte 021h                  ; 3c 21
    10572     jne near 0749eh                           ; 0f 85 92 00
     10702    jne near 07588h                           ; 0f 85 92 00
    1057310703    mov dx, strict word 00060h                ; ba 60 00
    1057410704    in AL, DX                                 ; ec
     
    1057810708    mov dx, strict word 00026h                ; ba 26 00
    1057910709    mov ax, cx                                ; 89 c8
    10580     call 016b8h                               ; e8 9c a2
     10710    call 01749h                               ; e8 43 a2
    1058110711    mov byte [bp-006h], al                    ; 88 46 fa
    1058210712    mov dx, strict word 00027h                ; ba 27 00
    1058310713    mov ax, cx                                ; 89 c8
    10584     call 016b8h                               ; e8 91 a2
     10714    call 01749h                               ; e8 38 a2
    1058510715    mov byte [bp-008h], al                    ; 88 46 f8
    1058610716    test AL, strict byte 080h                 ; a8 80
    10587     je short 0749eh                           ; 74 70
     10717    je short 07588h                           ; 74 70
    1058810718    mov al, byte [bp-008h]                    ; 8a 46 f8
    1058910719    and AL, strict byte 007h                  ; 24 07
     
    1059610726    add dx, strict byte 00028h                ; 83 c2 28
    1059710727    mov ax, cx                                ; 89 c8
    10598     call 016c6h                               ; e8 7b a2
     10728    call 01757h                               ; e8 22 a2
    1059910729    mov al, byte [bp-004h]                    ; 8a 46 fc
    1060010730    cmp al, byte [bp-002h]                    ; 3a 46 fe
    10601     jc short 0748fh                           ; 72 3c
     10731    jc short 07579h                           ; 72 3c
    1060210732    mov dx, strict word 00028h                ; ba 28 00
    1060310733    mov ax, cx                                ; 89 c8
    10604     call 016b8h                               ; e8 5d a2
     10734    call 01749h                               ; e8 04 a2
    1060510735    xor ah, ah                                ; 30 e4
    1060610736    mov word [bp+00ch], ax                    ; 89 46 0c
    1060710737    mov dx, strict word 00029h                ; ba 29 00
    1060810738    mov ax, cx                                ; 89 c8
    10609     call 016b8h                               ; e8 50 a2
     10739    call 01749h                               ; e8 f7 a1
    1061010740    xor ah, ah                                ; 30 e4
    1061110741    mov word [bp+00ah], ax                    ; 89 46 0a
    1061210742    mov dx, strict word 0002ah                ; ba 2a 00
    1061310743    mov ax, cx                                ; 89 c8
    10614     call 016b8h                               ; e8 43 a2
     10744    call 01749h                               ; e8 ea a1
    1061510745    xor ah, ah                                ; 30 e4
    1061610746    mov word [bp+008h], ax                    ; 89 46 08
     
    1061910749    mov byte [bp-006h], ah                    ; 88 66 fa
    1062010750    test byte [bp-008h], 080h                 ; f6 46 f8 80
    10621     je short 07492h                           ; 74 0a
     10751    je short 0757ch                           ; 74 0a
    1062210752    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    10623     jmp short 07492h                          ; eb 03
     10753    jmp short 0757ch                          ; eb 03
    1062410754    inc byte [bp-006h]                        ; fe 46 fa
    1062510755    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    1062610756    mov dx, strict word 00026h                ; ba 26 00
    1062710757    mov ax, cx                                ; 89 c8
    10628     call 016c6h                               ; e8 28 a2
     10758    call 01757h                               ; e8 cf a1
    1062910759    mov sp, bp                                ; 89 ec
    1063010760    pop bp                                    ; 5d
    1063110761    retn                                      ; c3
    10632     div byte [si+06ch]                        ; f6 74 6c
    10633     jne short 07496h                          ; 75 ef
    10634     jne short 07429h                          ; 75 80
    10635     jbe short 07499h                          ; 76 ee
    10636     jbe short 074efh                          ; 76 42
    10637     jne short 074c5h                          ; 75 16
    10638     jnbe short 0748ch                         ; 77 db
    10639     db  077h
    10640 _int15_function_mouse:                       ; 0xf74b2 LB 0x38b
     10762    loopne 07603h                             ; e0 75
     10763    push si                                   ; 56
     10764    jbe short 0756ah                          ; 76 d9
     10765    jbe short 075fdh                          ; 76 6a
     10766    jnbe short 0756dh                         ; 77 d8
     10767    jnbe short 075c3h                         ; 77 2c
     10768    jbe short 07599h                          ; 76 00
     10769    js short 07560h                           ; 78 c5
     10770    db  078h
     10771_int15_function_mouse:                       ; 0xf759c LB 0x38b
    1064110772    push bp                                   ; 55
    1064210773    mov bp, sp                                ; 89 e5
     
    1064510776    mov dx, strict word 0000eh                ; ba 0e 00
    1064610777    mov ax, strict word 00040h                ; b8 40 00
    10647     call 016d4h                               ; e8 12 a2
     10778    call 01765h                               ; e8 b9 a1
    1064810779    mov cx, ax                                ; 89 c1
    1064910780    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    10650     jbe short 074d5h                          ; 76 0b
     10781    jbe short 075bfh                          ; 76 0b
    1065110782    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1065210783    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10653     jmp near 07837h                           ; e9 62 03
     10784    jmp near 07921h                           ; e9 62 03
    1065410785    mov ax, strict word 00065h                ; b8 65 00
    10655     call 073b6h                               ; e8 db fe
     10786    call 074a0h                               ; e8 db fe
    1065610787    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1065710788    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1065810789    mov al, byte [bp+012h]                    ; 8a 46 12
    1065910790    cmp AL, strict byte 007h                  ; 3c 07
    10660     jnbe near 0781eh                          ; 0f 87 32 03
     10791    jnbe near 07908h                          ; 0f 87 32 03
    1066110792    movzx si, al                              ; 0f b6 f0
    1066210793    add si, si                                ; 01 f6
    10663     jmp word [cs:si+074a2h]                   ; 2e ff a4 a2 74
     10794    jmp word [cs:si+0758ch]                   ; 2e ff a4 8c 75
    1066410795    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    10665     jnbe near 07829h                          ; 0f 87 2b 03
     10796    jnbe near 07913h                          ; 0f 87 2b 03
    1066610797    mov dx, strict word 00027h                ; ba 27 00
    1066710798    mov ax, cx                                ; 89 c8
    10668     call 016b8h                               ; e8 b2 a1
     10799    call 01749h                               ; e8 59 a1
    1066910800    test AL, strict byte 080h                 ; a8 80
    10670     jne short 07515h                          ; 75 0b
     10801    jne short 075ffh                          ; 75 0b
    1067110802    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1067210803    mov byte [bp+013h], 005h                  ; c6 46 13 05
    10673     jmp near 07831h                           ; e9 1c 03
     10804    jmp near 0791bh                           ; e9 1c 03
    1067410805    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    1067510806    db  00fh, 094h, 0c0h
     
    1067710808    add AL, strict byte 0f4h                  ; 04 f4
    1067810809    xor ah, ah                                ; 30 e4
    10679     call 07326h                               ; e8 03 fe
     10810    call 07410h                               ; e8 03 fe
    1068010811    test al, al                               ; 84 c0
    10681     jne near 077b7h                           ; 0f 85 8e 02
     10812    jne near 078a1h                           ; 0f 85 8e 02
    1068210813    mov dx, ss                                ; 8c d2
    1068310814    lea ax, [bp-008h]                         ; 8d 46 f8
    10684     call 0735ah                               ; e8 29 fe
     10815    call 07444h                               ; e8 29 fe
    1068510816    test al, al                               ; 84 c0
    10686     je near 07831h                            ; 0f 84 fa 02
     10817    je near 0791bh                            ; 0f 84 fa 02
    1068710818    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10688     jne near 077b7h                           ; 0f 85 78 02
    10689     jmp near 07831h                           ; e9 ef 02
     10819    jne near 078a1h                           ; 0f 85 78 02
     10820    jmp near 0791bh                           ; e9 ef 02
    1069010821    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1069110822    cmp AL, strict byte 001h                  ; 3c 01
    10692     jc short 0754dh                           ; 72 04
     10823    jc short 07637h                           ; 72 04
    1069310824    cmp AL, strict byte 008h                  ; 3c 08
    10694     jbe short 07550h                          ; 76 03
    10695     jmp near 076e3h                           ; e9 93 01
     10825    jbe short 0763ah                          ; 76 03
     10826    jmp near 077cdh                           ; e9 93 01
    1069610827    mov dx, strict word 00027h                ; ba 27 00
    1069710828    mov ax, cx                                ; 89 c8
    10698     call 016b8h                               ; e8 60 a1
     10829    call 01749h                               ; e8 07 a1
    1069910830    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1070010831    db  0feh, 0cch
     
    1070510836    mov dx, strict word 00027h                ; ba 27 00
    1070610837    mov ax, cx                                ; 89 c8
    10707     call 016c6h                               ; e8 5a a1
     10838    call 01757h                               ; e8 01 a1
    1070810839    mov dx, strict word 00026h                ; ba 26 00
    1070910840    mov ax, cx                                ; 89 c8
    10710     call 016b8h                               ; e8 44 a1
     10841    call 01749h                               ; e8 eb a0
    1071110842    and AL, strict byte 0f8h                  ; 24 f8
    1071210843    movzx bx, al                              ; 0f b6 d8
    1071310844    mov dx, strict word 00026h                ; ba 26 00
    1071410845    mov ax, cx                                ; 89 c8
    10715     call 016c6h                               ; e8 45 a1
     10846    call 01757h                               ; e8 ec a0
    1071610847    mov ax, 000ffh                            ; b8 ff 00
    10717     call 07326h                               ; e8 9f fd
     10848    call 07410h                               ; e8 9f fd
    1071810849    test al, al                               ; 84 c0
    10719     jne near 077b7h                           ; 0f 85 2a 02
     10850    jne near 078a1h                           ; 0f 85 2a 02
    1072010851    mov dx, ss                                ; 8c d2
    1072110852    lea ax, [bp-004h]                         ; 8d 46 fc
    10722     call 0735ah                               ; e8 c5 fd
     10853    call 07444h                               ; e8 c5 fd
    1072310854    mov cl, al                                ; 88 c1
    1072410855    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
    10725     jne short 075a8h                          ; 75 0b
     10856    jne short 07692h                          ; 75 0b
    1072610857    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1072710858    mov byte [bp+013h], 004h                  ; c6 46 13 04
    10728     jmp near 07831h                           ; e9 89 02
     10859    jmp near 0791bh                           ; e9 89 02
    1072910860    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    10730     je short 075beh                           ; 74 10
     10861    je short 076a8h                           ; 74 10
    1073110862    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    1073210863    push ax                                   ; 50
    10733     push 00903h                               ; 68 03 09
     10864    push 00915h                               ; 68 15 09
    1073410865    push strict byte 00007h                   ; 6a 07
    10735     call 019dah                               ; e8 1f a4
     10866    call 01a6bh                               ; e8 c6 a3
    1073610867    add sp, strict byte 00006h                ; 83 c4 06
    1073710868    test cl, cl                               ; 84 c9
    10738     jne near 077b7h                           ; 0f 85 f3 01
     10869    jne near 078a1h                           ; 0f 85 f3 01
    1073910870    mov dx, ss                                ; 8c d2
    1074010871    lea ax, [bp-008h]                         ; 8d 46 f8
    10741     call 0735ah                               ; e8 8e fd
     10872    call 07444h                               ; e8 8e fd
    1074210873    test al, al                               ; 84 c0
    10743     jne near 077b7h                           ; 0f 85 e5 01
     10874    jne near 078a1h                           ; 0f 85 e5 01
    1074410875    mov dx, ss                                ; 8c d2
    1074510876    lea ax, [bp-006h]                         ; 8d 46 fa
    10746     call 0735ah                               ; e8 80 fd
     10877    call 07444h                               ; e8 80 fd
    1074710878    test al, al                               ; 84 c0
    10748     jne near 077b7h                           ; 0f 85 d7 01
     10879    jne near 078a1h                           ; 0f 85 d7 01
    1074910880    mov al, byte [bp-008h]                    ; 8a 46 f8
    1075010881    mov byte [bp+00ch], al                    ; 88 46 0c
    1075110882    mov al, byte [bp-006h]                    ; 8a 46 fa
    1075210883    mov byte [bp+00dh], al                    ; 88 46 0d
    10753     jmp near 07831h                           ; e9 42 02
     10884    jmp near 0791bh                           ; e9 42 02
    1075410885    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1075510886    cmp AL, strict byte 003h                  ; 3c 03
    10756     jc short 07606h                           ; 72 10
    10757     jbe short 07624h                          ; 76 2c
     10887    jc short 076f0h                           ; 72 10
     10888    jbe short 0770eh                          ; 76 2c
    1075810889    cmp AL, strict byte 006h                  ; 3c 06
    10759     je short 07636h                           ; 74 3a
     10890    je short 07720h                           ; 74 3a
    1076010891    cmp AL, strict byte 005h                  ; 3c 05
    10761     je short 07630h                           ; 74 30
     10892    je short 0771ah                           ; 74 30
    1076210893    cmp AL, strict byte 004h                  ; 3c 04
    10763     je short 0762ah                           ; 74 26
    10764     jmp short 0763ch                          ; eb 36
     10894    je short 07714h                           ; 74 26
     10895    jmp short 07726h                          ; eb 36
    1076510896    cmp AL, strict byte 002h                  ; 3c 02
    10766     je short 0761eh                           ; 74 14
     10897    je short 07708h                           ; 74 14
    1076710898    cmp AL, strict byte 001h                  ; 3c 01
    10768     je short 07618h                           ; 74 0a
     10899    je short 07702h                           ; 74 0a
    1076910900    test al, al                               ; 84 c0
    10770     jne short 0763ch                          ; 75 2a
     10901    jne short 07726h                          ; 75 2a
    1077110902    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
    10772     jmp short 07640h                          ; eb 28
     10903    jmp short 0772ah                          ; eb 28
    1077310904    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    10774     jmp short 07640h                          ; eb 22
     10905    jmp short 0772ah                          ; eb 22
    1077510906    mov byte [bp-008h], 028h                  ; c6 46 f8 28
    10776     jmp short 07640h                          ; eb 1c
     10907    jmp short 0772ah                          ; eb 1c
    1077710908    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
    10778     jmp short 07640h                          ; eb 16
     10909    jmp short 0772ah                          ; eb 16
    1077910910    mov byte [bp-008h], 050h                  ; c6 46 f8 50
    10780     jmp short 07640h                          ; eb 10
     10911    jmp short 0772ah                          ; eb 10
    1078110912    mov byte [bp-008h], 064h                  ; c6 46 f8 64
    10782     jmp short 07640h                          ; eb 0a
     10913    jmp short 0772ah                          ; eb 0a
    1078310914    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
    10784     jmp short 07640h                          ; eb 04
     10915    jmp short 0772ah                          ; eb 04
    1078510916    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1078610917    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    10787     jbe short 07675h                          ; 76 2f
     10918    jbe short 0775fh                          ; 76 2f
    1078810919    mov ax, 000f3h                            ; b8 f3 00
    10789     call 07326h                               ; e8 da fc
     10920    call 07410h                               ; e8 da fc
    1079010921    test al, al                               ; 84 c0
    10791     jne short 0766ah                          ; 75 1a
     10922    jne short 07754h                          ; 75 1a
    1079210923    mov dx, ss                                ; 8c d2
    1079310924    lea ax, [bp-006h]                         ; 8d 46 fa
    10794     call 0735ah                               ; e8 02 fd
     10925    call 07444h                               ; e8 02 fd
    1079510926    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    10796     call 07326h                               ; e8 c7 fc
     10927    call 07410h                               ; e8 c7 fc
    1079710928    mov dx, ss                                ; 8c d2
    1079810929    lea ax, [bp-006h]                         ; 8d 46 fa
    10799     call 0735ah                               ; e8 f3 fc
    10800     jmp near 07831h                           ; e9 c7 01
     10930    call 07444h                               ; e8 f3 fc
     10931    jmp near 0791bh                           ; e9 c7 01
    1080110932    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1080210933    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10803     jmp near 07831h                           ; e9 bc 01
     10934    jmp near 0791bh                           ; e9 bc 01
    1080410935    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1080510936    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10806     jmp near 07831h                           ; e9 b1 01
     10937    jmp near 0791bh                           ; e9 b1 01
    1080710938    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    10808     jnc short 076e3h                          ; 73 5d
     10939    jnc short 077cdh                          ; 73 5d
    1080910940    mov ax, 000e8h                            ; b8 e8 00
    10810     call 07326h                               ; e8 9a fc
     10941    call 07410h                               ; e8 9a fc
    1081110942    test al, al                               ; 84 c0
    10812     jne short 076d8h                          ; 75 48
     10943    jne short 077c2h                          ; 75 48
    1081310944    mov dx, ss                                ; 8c d2
    1081410945    lea ax, [bp-008h]                         ; 8d 46 f8
    10815     call 0735ah                               ; e8 c2 fc
     10946    call 07444h                               ; e8 c2 fc
    1081610947    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10817     je short 076aeh                           ; 74 10
     10948    je short 07798h                           ; 74 10
    1081810949    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1081910950    push ax                                   ; 50
    10820     push 0092eh                               ; 68 2e 09
     10951    push 00940h                               ; 68 40 09
    1082110952    push strict byte 00007h                   ; 6a 07
    10822     call 019dah                               ; e8 2f a3
     10953    call 01a6bh                               ; e8 d6 a2
    1082310954    add sp, strict byte 00006h                ; 83 c4 06
    1082410955    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    10825     call 07326h                               ; e8 71 fc
     10956    call 07410h                               ; e8 71 fc
    1082610957    mov dx, ss                                ; 8c d2
    1082710958    lea ax, [bp-008h]                         ; 8d 46 f8
    10828     call 0735ah                               ; e8 9d fc
     10959    call 07444h                               ; e8 9d fc
    1082910960    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10830     je near 07831h                            ; 0f 84 6c 01
     10961    je near 0791bh                            ; 0f 84 6c 01
    1083110962    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1083210963    push ax                                   ; 50
    10833     push 0092eh                               ; 68 2e 09
     10964    push 00940h                               ; 68 40 09
    1083410965    push strict byte 00007h                   ; 6a 07
    10835     call 019dah                               ; e8 08 a3
     10966    call 01a6bh                               ; e8 af a2
    1083610967    add sp, strict byte 00006h                ; 83 c4 06
    10837     jmp near 07831h                           ; e9 59 01
     10968    jmp near 0791bh                           ; e9 59 01
    1083810969    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1083910970    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10840     jmp near 07831h                           ; e9 4e 01
     10971    jmp near 0791bh                           ; e9 4e 01
    1084110972    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1084210973    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10843     jmp near 07831h                           ; e9 43 01
     10974    jmp near 0791bh                           ; e9 43 01
    1084410975    mov ax, 000f2h                            ; b8 f2 00
    10845     call 07326h                               ; e8 32 fc
     10976    call 07410h                               ; e8 32 fc
    1084610977    test al, al                               ; 84 c0
    10847     jne short 0770bh                          ; 75 13
     10978    jne short 077f5h                          ; 75 13
    1084810979    mov dx, ss                                ; 8c d2
    1084910980    lea ax, [bp-008h]                         ; 8d 46 f8
    10850     call 0735ah                               ; e8 5a fc
     10981    call 07444h                               ; e8 5a fc
    1085110982    mov dx, ss                                ; 8c d2
    1085210983    lea ax, [bp-006h]                         ; 8d 46 fa
    10853     call 0735ah                               ; e8 52 fc
    10854     jmp near 075e6h                           ; e9 db fe
     10984    call 07444h                               ; e8 52 fc
     10985    jmp near 076d0h                           ; e9 db fe
    1085510986    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1085610987    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10857     jmp near 07831h                           ; e9 1b 01
     10988    jmp near 0791bh                           ; e9 1b 01
    1085810989    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1085910990    test al, al                               ; 84 c0
    10860     jbe short 07724h                          ; 76 07
     10991    jbe short 0780eh                          ; 76 07
    1086110992    cmp AL, strict byte 002h                  ; 3c 02
    10862     jbe short 0778dh                          ; 76 6c
    10863     jmp near 077c1h                           ; e9 9d 00
     10993    jbe short 07877h                          ; 76 6c
     10994    jmp near 078abh                           ; e9 9d 00
    1086410995    mov ax, 000e9h                            ; b8 e9 00
    10865     call 07326h                               ; e8 fc fb
     10996    call 07410h                               ; e8 fc fb
    1086610997    test al, al                               ; 84 c0
    10867     jne near 077b7h                           ; 0f 85 87 00
     10998    jne near 078a1h                           ; 0f 85 87 00
    1086810999    mov dx, ss                                ; 8c d2
    1086911000    lea ax, [bp-008h]                         ; 8d 46 f8
    10870     call 0735ah                               ; e8 22 fc
     11001    call 07444h                               ; e8 22 fc
    1087111002    mov cl, al                                ; 88 c1
    1087211003    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10873     je short 07750h                           ; 74 10
     11004    je short 0783ah                           ; 74 10
    1087411005    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1087511006    push ax                                   ; 50
    10876     push 0092eh                               ; 68 2e 09
     11007    push 00940h                               ; 68 40 09
    1087711008    push strict byte 00007h                   ; 6a 07
    10878     call 019dah                               ; e8 8d a2
     11009    call 01a6bh                               ; e8 34 a2
    1087911010    add sp, strict byte 00006h                ; 83 c4 06
    1088011011    test cl, cl                               ; 84 c9
    10881     jne short 077b7h                          ; 75 63
     11012    jne short 078a1h                          ; 75 63
    1088211013    mov dx, ss                                ; 8c d2
    1088311014    lea ax, [bp-008h]                         ; 8d 46 f8
    10884     call 0735ah                               ; e8 fe fb
     11015    call 07444h                               ; e8 fe fb
    1088511016    test al, al                               ; 84 c0
    10886     jne short 077b7h                          ; 75 57
     11017    jne short 078a1h                          ; 75 57
    1088711018    mov dx, ss                                ; 8c d2
    1088811019    lea ax, [bp-006h]                         ; 8d 46 fa
    10889     call 0735ah                               ; e8 f2 fb
     11020    call 07444h                               ; e8 f2 fb
    1089011021    test al, al                               ; 84 c0
    10891     jne short 077b7h                          ; 75 4b
     11022    jne short 078a1h                          ; 75 4b
    1089211023    mov dx, ss                                ; 8c d2
    1089311024    lea ax, [bp-004h]                         ; 8d 46 fc
    10894     call 0735ah                               ; e8 e6 fb
     11025    call 07444h                               ; e8 e6 fb
    1089511026    test al, al                               ; 84 c0
    10896     jne short 077b7h                          ; 75 3f
     11027    jne short 078a1h                          ; 75 3f
    1089711028    mov al, byte [bp-008h]                    ; 8a 46 f8
    1089811029    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1090111032    mov al, byte [bp-004h]                    ; 8a 46 fc
    1090211033    mov byte [bp+00eh], al                    ; 88 46 0e
    10903     jmp near 07831h                           ; e9 a4 00
     11034    jmp near 0791bh                           ; e9 a4 00
    1090411035    cmp AL, strict byte 001h                  ; 3c 01
    10905     jne short 07796h                          ; 75 05
     11036    jne short 07880h                          ; 75 05
    1090611037    mov ax, 000e6h                            ; b8 e6 00
    10907     jmp short 07799h                          ; eb 03
     11038    jmp short 07883h                          ; eb 03
    1090811039    mov ax, 000e7h                            ; b8 e7 00
    10909     call 07326h                               ; e8 8a fb
     11040    call 07410h                               ; e8 8a fb
    1091011041    mov cl, al                                ; 88 c1
    1091111042    test cl, cl                               ; 84 c9
    10912     jne short 077b1h                          ; 75 0f
     11043    jne short 0789bh                          ; 75 0f
    1091311044    mov dx, ss                                ; 8c d2
    1091411045    lea ax, [bp-008h]                         ; 8d 46 f8
    10915     call 0735ah                               ; e8 b0 fb
     11046    call 07444h                               ; e8 b0 fb
    1091611047    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    1091711048    db  00fh, 095h, 0c1h
    1091811049    ; setne cl                                  ; 0f 95 c1
    1091911050    test cl, cl                               ; 84 c9
    10920     je near 07831h                            ; 0f 84 7a 00
     11051    je near 0791bh                            ; 0f 84 7a 00
    1092111052    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1092211053    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10923     jmp short 07831h                          ; eb 70
     11054    jmp short 0791bh                          ; eb 70
    1092411055    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    1092511056    push ax                                   ; 50
    10926     push 0095ah                               ; 68 5a 09
     11057    push 0096ch                               ; 68 6c 09
    1092711058    push strict byte 00007h                   ; 6a 07
    10928     call 019dah                               ; e8 0c a2
     11059    call 01a6bh                               ; e8 b3 a1
    1092911060    add sp, strict byte 00006h                ; 83 c4 06
    1093011061    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1093111062    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10932     jmp short 07831h                          ; eb 56
     11063    jmp short 0791bh                          ; eb 56
    1093311064    mov si, word [bp+00ch]                    ; 8b 76 0c
    1093411065    mov bx, si                                ; 89 f3
    1093511066    mov dx, strict word 00022h                ; ba 22 00
    1093611067    mov ax, cx                                ; 89 c8
    10937     call 016e2h                               ; e8 fa 9e
     11068    call 01773h                               ; e8 a1 9e
    1093811069    mov bx, word [bp+014h]                    ; 8b 5e 14
    1093911070    mov dx, strict word 00024h                ; ba 24 00
    1094011071    mov ax, cx                                ; 89 c8
    10941     call 016e2h                               ; e8 ef 9e
     11072    call 01773h                               ; e8 96 9e
    1094211073    mov dx, strict word 00027h                ; ba 27 00
    1094311074    mov ax, cx                                ; 89 c8
    10944     call 016b8h                               ; e8 bd 9e
     11075    call 01749h                               ; e8 64 9e
    1094511076    mov ah, al                                ; 88 c4
    1094611077    test si, si                               ; 85 f6
    10947     jne short 0780fh                          ; 75 0e
     11078    jne short 078f9h                          ; 75 0e
    1094811079    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    10949     jne short 0780fh                          ; 75 08
     11080    jne short 078f9h                          ; 75 08
    1095011081    test AL, strict byte 080h                 ; a8 80
    10951     je short 07811h                           ; 74 06
     11082    je short 078fbh                           ; 74 06
    1095211083    and AL, strict byte 07fh                  ; 24 7f
    10953     jmp short 07811h                          ; eb 02
     11084    jmp short 078fbh                          ; eb 02
    1095411085    or AL, strict byte 080h                   ; 0c 80
    1095511086    movzx bx, al                              ; 0f b6 d8
    1095611087    mov dx, strict word 00027h                ; ba 27 00
    1095711088    mov ax, cx                                ; 89 c8
    10958     call 016c6h                               ; e8 aa 9e
    10959     jmp short 07831h                          ; eb 13
    10960     push 00974h                               ; 68 74 09
     11089    call 01757h                               ; e8 51 9e
     11090    jmp short 0791bh                          ; eb 13
     11091    push 00986h                               ; 68 86 09
    1096111092    push strict byte 00007h                   ; 6a 07
    10962     call 019dah                               ; e8 b4 a1
     11093    call 01a6bh                               ; e8 5b a1
    1096311094    add sp, strict byte 00004h                ; 83 c4 04
    1096411095    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1096511096    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1096611097    mov ax, strict word 00047h                ; b8 47 00
    10967     call 073b6h                               ; e8 7f fb
     11098    call 074a0h                               ; e8 7f fb
    1096811099    lea sp, [bp-002h]                         ; 8d 66 fe
    1096911100    pop si                                    ; 5e
    1097011101    pop bp                                    ; 5d
    1097111102    retn                                      ; c3
    10972 _int17_function:                             ; 0xf783d LB 0xb3
     11103_int17_function:                             ; 0xf7927 LB 0xb3
    1097311104    push bp                                   ; 55
    1097411105    mov bp, sp                                ; 89 e5
     
    1098011111    add dx, strict byte 00008h                ; 83 c2 08
    1098111112    mov ax, strict word 00040h                ; b8 40 00
    10982     call 016d4h                               ; e8 83 9e
     11113    call 01765h                               ; e8 2a 9e
    1098311114    mov bx, ax                                ; 89 c3
    1098411115    mov si, ax                                ; 89 c6
    1098511116    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    10986     jnc near 078e6h                           ; 0f 83 89 00
     11117    jnc near 079d0h                           ; 0f 83 89 00
    1098711118    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1098811119    cmp ax, strict word 00003h                ; 3d 03 00
    10989     jnc near 078e6h                           ; 0f 83 7f 00
     11120    jnc near 079d0h                           ; 0f 83 7f 00
    1099011121    test bx, bx                               ; 85 db
    10991     jbe near 078e6h                           ; 0f 86 79 00
     11122    jbe near 079d0h                           ; 0f 86 79 00
    1099211123    mov dx, ax                                ; 89 c2
    1099311124    add dx, strict byte 00078h                ; 83 c2 78
    1099411125    mov ax, strict word 00040h                ; b8 40 00
    10995     call 016b8h                               ; e8 40 9e
     11126    call 01749h                               ; e8 e7 9d
    1099611127    movzx cx, al                              ; 0f b6 c8
    1099711128    sal cx, 008h                              ; c1 e1 08
    1099811129    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    10999     jne short 078b1h                          ; 75 2d
     11130    jne short 0799bh                          ; 75 2d
    1100011131    mov al, byte [bp+012h]                    ; 8a 46 12
    1100111132    mov dx, bx                                ; 89 da
     
    1101711148    ; sub ah, ah                                ; 2a e4
    1101811149    test AL, strict byte 040h                 ; a8 40
    11019     je short 078b1h                           ; 74 07
     11150    je short 0799bh                           ; 74 07
    1102011151    test cx, cx                               ; 85 c9
    11021     je short 078b1h                           ; 74 03
     11152    je short 0799bh                           ; 74 03
    1102211153    dec cx                                    ; 49
    11023     jmp short 078a0h                          ; eb ef
     11154    jmp short 0798ah                          ; eb ef
    1102411155    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11025     jne short 078cdh                          ; 75 16
     11156    jne short 079b7h                          ; 75 16
    1102611157    lea dx, [si+002h]                         ; 8d 54 02
    1102711158    in AL, DX                                 ; ec
     
    1104211173    mov byte [bp+013h], al                    ; 88 46 13
    1104311174    test cx, cx                               ; 85 c9
    11044     jne short 078e0h                          ; 75 04
     11175    jne short 079cah                          ; 75 04
    1104511176    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1104611177    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11047     jmp short 078eah                          ; eb 04
     11178    jmp short 079d4h                          ; eb 04
    1104811179    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1104911180    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1105111182    pop bp                                    ; 5d
    1105211183    retn                                      ; c3
    11053 wait_:                                       ; 0xf78f0 LB 0xb2
     11184wait_:                                       ; 0xf79da LB 0xb2
    1105411185    push bp                                   ; 55
    1105511186    mov bp, sp                                ; 89 e5
     
    1106911200    mov dx, 0046ch                            ; ba 6c 04
    1107011201    xor ax, ax                                ; 31 c0
    11071     call 016f0h                               ; e8 dd 9d
     11202    call 01781h                               ; e8 84 9d
    1107211203    mov word [bp-00eh], ax                    ; 89 46 f2
    1107311204    mov bx, dx                                ; 89 d3
     
    1107511206    mov dx, 0046ch                            ; ba 6c 04
    1107611207    xor ax, ax                                ; 31 c0
    11077     call 016f0h                               ; e8 cf 9d
     11208    call 01781h                               ; e8 76 9d
    1107811209    mov word [bp-012h], ax                    ; 89 46 ee
    1107911210    mov di, dx                                ; 89 d7
    1108011211    cmp dx, bx                                ; 39 da
    11081     jnbe short 07931h                         ; 77 07
    11082     jne short 07938h                          ; 75 0c
     11212    jnbe short 07a1bh                         ; 77 07
     11213    jne short 07a22h                          ; 75 0c
    1108311214    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11084     jbe short 07938h                          ; 76 07
     11215    jbe short 07a22h                          ; 76 07
    1108511216    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1108611217    sbb dx, bx                                ; 19 da
    11087     jmp short 07943h                          ; eb 0b
     11218    jmp short 07a2dh                          ; eb 0b
    1108811219    cmp dx, bx                                ; 39 da
    11089     jc short 07943h                           ; 72 07
    11090     jne short 07947h                          ; 75 09
     11220    jc short 07a2dh                           ; 72 07
     11221    jne short 07a31h                          ; 75 09
    1109111222    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11092     jnc short 07947h                          ; 73 04
     11223    jnc short 07a31h                          ; 73 04
    1109311224    sub si, ax                                ; 29 c6
    1109411225    sbb cx, dx                                ; 19 d1
     
    1109811229    mov ax, 00100h                            ; b8 00 01
    1109911230    int 016h                                  ; cd 16
    11100     je near 0795dh                            ; 0f 84 05 00
     11231    je near 07a47h                            ; 0f 84 05 00
    1110111232    mov AL, strict byte 001h                  ; b0 01
    11102     jmp near 0795fh                           ; e9 02 00
     11233    jmp near 07a49h                           ; e9 02 00
    1110311234    db  032h, 0c0h
    1110411235    ; xor al, al                                ; 32 c0
    1110511236    test al, al                               ; 84 c0
    11106     je short 07987h                           ; 74 24
     11237    je short 07a71h                           ; 74 24
    1110711238    db  033h, 0c0h
    1110811239    ; xor ax, ax                                ; 33 c0
     
    1111311244    movzx ax, dl                              ; 0f b6 c2
    1111411245    push ax                                   ; 50
    11115     push 00996h                               ; 68 96 09
     11246    push 009a8h                               ; 68 a8 09
    1111611247    push strict byte 00004h                   ; 6a 04
    11117     call 019dah                               ; e8 60 a0
     11248    call 01a6bh                               ; e8 07 a0
    1111811249    add sp, strict byte 00006h                ; 83 c4 06
    1111911250    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11120     je short 07987h                           ; 74 04
     11251    je short 07a71h                           ; 74 04
    1112111252    mov al, dl                                ; 88 d0
    11122     jmp short 07999h                          ; eb 12
     11253    jmp short 07a83h                          ; eb 12
    1112311254    test cx, cx                               ; 85 c9
    11124     jnle short 07918h                         ; 7f 8d
    11125     jne short 07991h                          ; 75 04
     11255    jnle short 07a02h                         ; 7f 8d
     11256    jne short 07a7bh                          ; 75 04
    1112611257    test si, si                               ; 85 f6
    11127     jnbe short 07918h                         ; 77 87
     11258    jnbe short 07a02h                         ; 77 87
    1112811259    mov ax, word [bp-010h]                    ; 8b 46 f0
    1112911260    push ax                                   ; 50
     
    1113711268    pop bp                                    ; 5d
    1113811269    retn                                      ; c3
    11139 read_logo_byte_:                             ; 0xf79a2 LB 0x16
     11270read_logo_byte_:                             ; 0xf7a8c LB 0x16
    1114011271    push bp                                   ; 55
    1114111272    mov bp, sp                                ; 89 e5
     
    1115211283    pop bp                                    ; 5d
    1115311284    retn                                      ; c3
    11154 read_logo_word_:                             ; 0xf79b8 LB 0x14
     11285read_logo_word_:                             ; 0xf7aa2 LB 0x14
    1115511286    push bp                                   ; 55
    1115611287    mov bp, sp                                ; 89 e5
     
    1116511296    pop bp                                    ; 5d
    1116611297    retn                                      ; c3
    11167 print_detected_harddisks_:                   ; 0xf79cc LB 0x130
     11298print_detected_harddisks_:                   ; 0xf7ab6 LB 0x130
    1116811299    push bp                                   ; 55
    1116911300    mov bp, sp                                ; 89 e5
     
    1117711308    mov dx, strict word 0000eh                ; ba 0e 00
    1117811309    mov ax, strict word 00040h                ; b8 40 00
    11179     call 016d4h                               ; e8 f5 9c
     11310    call 01765h                               ; e8 9c 9c
    1118011311    mov si, ax                                ; 89 c6
    1118111312    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     
    1118311314    xor ch, ch                                ; 30 ed
    1118411315    mov dx, 00304h                            ; ba 04 03
    11185     call 016b8h                               ; e8 c9 9c
     11316    call 01749h                               ; e8 70 9c
    1118611317    mov byte [bp-00eh], al                    ; 88 46 f2
    1118711318    xor bl, bl                                ; 30 db
    1118811319    cmp bl, byte [bp-00eh]                    ; 3a 5e f2
    11189     jnc near 07aceh                           ; 0f 83 d3 00
     11320    jnc near 07bb8h                           ; 0f 83 d3 00
    1119011321    movzx dx, bl                              ; 0f b6 d3
    1119111322    add dx, 00305h                            ; 81 c2 05 03
    1119211323    mov ax, si                                ; 89 f0
    11193     call 016b8h                               ; e8 b1 9c
     11324    call 01749h                               ; e8 58 9c
    1119411325    mov bh, al                                ; 88 c7
    1119511326    cmp AL, strict byte 00ch                  ; 3c 0c
    11196     jc short 07a31h                           ; 72 24
     11327    jc short 07b1bh                           ; 72 24
    1119711328    test cl, cl                               ; 84 c9
    11198     jne short 07a1eh                          ; 75 0d
    11199     push 009a7h                               ; 68 a7 09
     11329    jne short 07b08h                          ; 75 0d
     11330    push 009b9h                               ; 68 b9 09
    1120011331    push strict byte 00002h                   ; 6a 02
    11201     call 019dah                               ; e8 c1 9f
     11332    call 01a6bh                               ; e8 68 9f
    1120211333    add sp, strict byte 00004h                ; 83 c4 04
    1120311334    mov CL, strict byte 001h                  ; b1 01
     
    1120511336    inc ax                                    ; 40
    1120611337    push ax                                   ; 50
    11207     push 009bch                               ; 68 bc 09
     11338    push 009ceh                               ; 68 ce 09
    1120811339    push strict byte 00002h                   ; 6a 02
    11209     call 019dah                               ; e8 af 9f
     11340    call 01a6bh                               ; e8 56 9f
    1121011341    add sp, strict byte 00006h                ; 83 c4 06
    11211     jmp near 07ac9h                           ; e9 98 00
     11342    jmp near 07bb3h                           ; e9 98 00
    1121211343    cmp AL, strict byte 008h                  ; 3c 08
    11213     jc short 07a48h                           ; 72 13
     11344    jc short 07b32h                           ; 72 13
    1121411345    test ch, ch                               ; 84 ed
    11215     jne short 07a46h                          ; 75 0d
    11216     push 009cfh                               ; 68 cf 09
     11346    jne short 07b30h                          ; 75 0d
     11347    push 009e1h                               ; 68 e1 09
    1121711348    push strict byte 00002h                   ; 6a 02
    11218     call 019dah                               ; e8 99 9f
     11349    call 01a6bh                               ; e8 40 9f
    1121911350    add sp, strict byte 00004h                ; 83 c4 04
    1122011351    mov CH, strict byte 001h                  ; b5 01
    11221     jmp short 07a1eh                          ; eb d6
     11352    jmp short 07b08h                          ; eb d6
    1122211353    cmp AL, strict byte 004h                  ; 3c 04
    11223     jnc short 07a63h                          ; 73 17
     11354    jnc short 07b4dh                          ; 73 17
    1122411355    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11225     jne short 07a63h                          ; 75 11
    11226     push 009e4h                               ; 68 e4 09
     11356    jne short 07b4dh                          ; 75 11
     11357    push 009f6h                               ; 68 f6 09
    1122711358    push strict byte 00002h                   ; 6a 02
    11228     call 019dah                               ; e8 80 9f
     11359    call 01a6bh                               ; e8 27 9f
    1122911360    add sp, strict byte 00004h                ; 83 c4 04
    1123011361    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11231     jmp short 07a79h                          ; eb 16
     11362    jmp short 07b63h                          ; eb 16
    1123211363    cmp bh, 004h                              ; 80 ff 04
    11233     jc short 07a79h                           ; 72 11
     11364    jc short 07b63h                           ; 72 11
    1123411365    test cl, cl                               ; 84 c9
    11235     jne short 07a79h                          ; 75 0d
    11236     push 009f6h                               ; 68 f6 09
     11366    jne short 07b63h                          ; 75 0d
     11367    push 00a08h                               ; 68 08 0a
    1123711368    push strict byte 00002h                   ; 6a 02
    11238     call 019dah                               ; e8 66 9f
     11369    call 01a6bh                               ; e8 0d 9f
    1123911370    add sp, strict byte 00004h                ; 83 c4 04
    1124011371    mov CL, strict byte 001h                  ; b1 01
     
    1124211373    inc ax                                    ; 40
    1124311374    push ax                                   ; 50
    11244     push 00a0ah                               ; 68 0a 0a
     11375    push 00a1ch                               ; 68 1c 0a
    1124511376    push strict byte 00002h                   ; 6a 02
    11246     call 019dah                               ; e8 54 9f
     11377    call 01a6bh                               ; e8 fb 9e
    1124711378    add sp, strict byte 00006h                ; 83 c4 06
    1124811379    cmp bh, 004h                              ; 80 ff 04
    11249     jc short 07a91h                           ; 72 03
     11380    jc short 07b7bh                           ; 72 03
    1125011381    sub bh, 004h                              ; 80 ef 04
    1125111382    movzx ax, bh                              ; 0f b6 c7
     
    1125511386    sar ax, 1                                 ; d1 f8
    1125611387    test ax, ax                               ; 85 c0
    11257     je short 07aa2h                           ; 74 05
    11258     push 00a14h                               ; 68 14 0a
    11259     jmp short 07aa5h                          ; eb 03
    11260     push 00a1fh                               ; 68 1f 0a
     11388    je short 07b8ch                           ; 74 05
     11389    push 00a26h                               ; 68 26 0a
     11390    jmp short 07b8fh                          ; eb 03
     11391    push 00a31h                               ; 68 31 0a
    1126111392    push strict byte 00002h                   ; 6a 02
    11262     call 019dah                               ; e8 30 9f
     11393    call 01a6bh                               ; e8 d7 9e
    1126311394    add sp, strict byte 00004h                ; 83 c4 04
    1126411395    movzx ax, bh                              ; 0f b6 c7
     
    1126711398    idiv di                                   ; f7 ff
    1126811399    test dx, dx                               ; 85 d2
    11269     je short 07abfh                           ; 74 05
    11270     push 00a28h                               ; 68 28 0a
    11271     jmp short 07ac2h                          ; eb 03
    11272     push 00a2eh                               ; 68 2e 0a
     11400    je short 07ba9h                           ; 74 05
     11401    push 00a3ah                               ; 68 3a 0a
     11402    jmp short 07bach                          ; eb 03
     11403    push 00a40h                               ; 68 40 0a
    1127311404    push di                                   ; 57
    11274     call 019dah                               ; e8 14 9f
     11405    call 01a6bh                               ; e8 bb 9e
    1127511406    add sp, strict byte 00004h                ; 83 c4 04
    1127611407    db  0feh, 0c3h
    1127711408    ; inc bl                                    ; fe c3
    11278     jmp near 079f4h                           ; e9 26 ff
     11409    jmp near 07adeh                           ; e9 26 ff
    1127911410    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11280     jne short 07ae7h                          ; 75 13
     11411    jne short 07bd1h                          ; 75 13
    1128111412    test cl, cl                               ; 84 c9
    11282     jne short 07ae7h                          ; 75 0f
     11413    jne short 07bd1h                          ; 75 0f
    1128311414    test ch, ch                               ; 84 ed
    11284     jne short 07ae7h                          ; 75 0b
    11285     push 00a35h                               ; 68 35 0a
     11415    jne short 07bd1h                          ; 75 0b
     11416    push 00a47h                               ; 68 47 0a
    1128611417    push strict byte 00002h                   ; 6a 02
    11287     call 019dah                               ; e8 f6 9e
     11418    call 01a6bh                               ; e8 9d 9e
    1128811419    add sp, strict byte 00004h                ; 83 c4 04
    11289     push 00a49h                               ; 68 49 0a
     11420    push 00a5bh                               ; 68 5b 0a
    1129011421    push strict byte 00002h                   ; 6a 02
    11291     call 019dah                               ; e8 eb 9e
     11422    call 01a6bh                               ; e8 92 9e
    1129211423    add sp, strict byte 00004h                ; 83 c4 04
    1129311424    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1129911430    pop bp                                    ; 5d
    1130011431    retn                                      ; c3
    11301 get_boot_drive_:                             ; 0xf7afc LB 0x28
     11432get_boot_drive_:                             ; 0xf7be6 LB 0x28
    1130211433    push bp                                   ; 55
    1130311434    mov bp, sp                                ; 89 e5
     
    1130711438    mov dx, strict word 0000eh                ; ba 0e 00
    1130811439    mov ax, strict word 00040h                ; b8 40 00
    11309     call 016d4h                               ; e8 c8 9b
     11440    call 01765h                               ; e8 6f 9b
    1131011441    mov dx, 00304h                            ; ba 04 03
    11311     call 016b8h                               ; e8 a6 9b
     11442    call 01749h                               ; e8 4d 9b
    1131211443    sub bl, 002h                              ; 80 eb 02
    1131311444    cmp bl, al                                ; 38 c3
    11314     jc short 07b1bh                           ; 72 02
     11445    jc short 07c05h                           ; 72 02
    1131511446    mov BL, strict byte 0ffh                  ; b3 ff
    1131611447    mov al, bl                                ; 88 d8
     
    1132011451    pop bp                                    ; 5d
    1132111452    retn                                      ; c3
    11322 show_logo_:                                  ; 0xf7b24 LB 0x231
     11453show_logo_:                                  ; 0xf7c0e LB 0x231
    1132311454    push bp                                   ; 55
    1132411455    mov bp, sp                                ; 89 e5
     
    1133111462    mov dx, strict word 0000eh                ; ba 0e 00
    1133211463    mov ax, strict word 00040h                ; b8 40 00
    11333     call 016d4h                               ; e8 9c 9b
     11464    call 01765h                               ; e8 43 9b
    1133411465    mov si, ax                                ; 89 c6
    1133511466    xor cl, cl                                ; 30 c9
     
    1134211473    out strict byte 040h, AL                  ; e6 40
    1134311474    movzx ax, dl                              ; 0f b6 c2
    11344     call 079b8h                               ; e8 68 fe
     11475    call 07aa2h                               ; e8 68 fe
    1134511476    cmp ax, 066bbh                            ; 3d bb 66
    11346     jne near 07c35h                           ; 0f 85 de 00
     11477    jne near 07d1fh                           ; 0f 85 de 00
    1134711478    push SS                                   ; 16
    1134811479    pop ES                                    ; 07
     
    1135211483    mov word [es:di], bx                      ; 26 89 1d
    1135311484    cmp ax, strict word 0004fh                ; 3d 4f 00
    11354     jne near 07c35h                           ; 0f 85 ca 00
     11485    jne near 07d1fh                           ; 0f 85 ca 00
    1135511486    mov al, dl                                ; 88 d0
    1135611487    add AL, strict byte 004h                  ; 04 04
    1135711488    xor ah, ah                                ; 30 e4
    11358     call 079a2h                               ; e8 2e fe
     11489    call 07a8ch                               ; e8 2e fe
    1135911490    mov ch, al                                ; 88 c5
    1136011491    mov byte [bp-00ch], al                    ; 88 46 f4
     
    1136211493    add AL, strict byte 005h                  ; 04 05
    1136311494    xor ah, ah                                ; 30 e4
    11364     call 079a2h                               ; e8 20 fe
     11495    call 07a8ch                               ; e8 20 fe
    1136511496    mov dh, al                                ; 88 c6
    1136611497    mov byte [bp-010h], al                    ; 88 46 f0
     
    1136811499    add AL, strict byte 002h                  ; 04 02
    1136911500    xor ah, ah                                ; 30 e4
    11370     call 079b8h                               ; e8 28 fe
     11501    call 07aa2h                               ; e8 28 fe
    1137111502    mov bx, ax                                ; 89 c3
    1137211503    mov word [bp-014h], ax                    ; 89 46 ec
     
    1137411505    add AL, strict byte 006h                  ; 04 06
    1137511506    xor ah, ah                                ; 30 e4
    11376     call 079a2h                               ; e8 04 fe
     11507    call 07a8ch                               ; e8 04 fe
    1137711508    mov byte [bp-012h], al                    ; 88 46 ee
    1137811509    test ch, ch                               ; 84 ed
    11379     jne short 07bafh                          ; 75 0a
     11510    jne short 07c99h                          ; 75 0a
    1138011511    test dh, dh                               ; 84 f6
    11381     jne short 07bafh                          ; 75 06
     11512    jne short 07c99h                          ; 75 06
    1138211513    test bx, bx                               ; 85 db
    11383     je near 07c35h                            ; 0f 84 86 00
     11514    je near 07d1fh                            ; 0f 84 86 00
    1138411515    mov bx, 00142h                            ; bb 42 01
    1138511516    mov ax, 04f02h                            ; b8 02 4f
    1138611517    int 010h                                  ; cd 10
    1138711518    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11388     je short 07be0h                           ; 74 23
     11519    je short 07ccah                           ; 74 23
    1138911520    xor bx, bx                                ; 31 db
    11390     jmp short 07bc7h                          ; eb 06
     11521    jmp short 07cb1h                          ; eb 06
    1139111522    inc bx                                    ; 43
    1139211523    cmp bx, strict byte 00010h                ; 83 fb 10
    11393     jnbe short 07be7h                         ; 77 20
     11524    jnbe short 07cd1h                         ; 77 20
    1139411525    mov ax, bx                                ; 89 d8
    1139511526    or ah, 002h                               ; 80 cc 02
     
    1139811529    xor dx, dx                                ; 31 d2
    1139911530    mov ax, strict word 00001h                ; b8 01 00
    11400     call 078f0h                               ; e8 18 fd
     11531    call 079dah                               ; e8 18 fd
    1140111532    cmp AL, strict byte 086h                  ; 3c 86
    11402     jne short 07bc1h                          ; 75 e5
     11533    jne short 07cabh                          ; 75 e5
    1140311534    mov CL, strict byte 001h                  ; b1 01
    11404     jmp short 07be7h                          ; eb 07
     11535    jmp short 07cd1h                          ; eb 07
    1140511536    mov ax, 00210h                            ; b8 10 02
    1140611537    mov dx, 003b8h                            ; ba b8 03
    1140711538    out DX, ax                                ; ef
    1140811539    test cl, cl                               ; 84 c9
    11409     jne short 07bfdh                          ; 75 12
     11540    jne short 07ce7h                          ; 75 12
    1141011541    mov ax, word [bp-014h]                    ; 8b 46 ec
    1141111542    shr ax, 004h                              ; c1 e8 04
    1141211543    mov dx, strict word 00001h                ; ba 01 00
    11413     call 078f0h                               ; e8 f9 fc
     11544    call 079dah                               ; e8 f9 fc
    1141411545    cmp AL, strict byte 086h                  ; 3c 86
    11415     jne short 07bfdh                          ; 75 02
     11546    jne short 07ce7h                          ; 75 02
    1141611547    mov CL, strict byte 001h                  ; b1 01
    1141711548    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11418     je short 07c2ah                           ; 74 27
     11549    je short 07d14h                           ; 74 27
    1141911550    test cl, cl                               ; 84 c9
    11420     jne short 07c2ah                          ; 75 23
     11551    jne short 07d14h                          ; 75 23
    1142111552    mov bx, strict word 00010h                ; bb 10 00
    11422     jmp short 07c11h                          ; eb 05
     11553    jmp short 07cfbh                          ; eb 05
    1142311554    dec bx                                    ; 4b
    1142411555    test bx, bx                               ; 85 db
    11425     jbe short 07c35h                          ; 76 24
     11556    jbe short 07d1fh                          ; 76 24
    1142611557    mov ax, bx                                ; 89 d8
    1142711558    or ah, 002h                               ; 80 cc 02
     
    1143011561    xor dx, dx                                ; 31 d2
    1143111562    mov ax, strict word 00001h                ; b8 01 00
    11432     call 078f0h                               ; e8 ce fc
     11563    call 079dah                               ; e8 ce fc
    1143311564    cmp AL, strict byte 086h                  ; 3c 86
    11434     jne short 07c0ch                          ; 75 e6
     11565    jne short 07cf6h                          ; 75 e6
    1143511566    mov CL, strict byte 001h                  ; b1 01
    11436     jmp short 07c35h                          ; eb 0b
     11567    jmp short 07d1fh                          ; eb 0b
    1143711568    test cl, cl                               ; 84 c9
    11438     jne short 07c35h                          ; 75 07
     11569    jne short 07d1fh                          ; 75 07
    1143911570    mov ax, 00200h                            ; b8 00 02
    1144011571    mov dx, 003b8h                            ; ba b8 03
     
    1144311574    mov dx, 0037dh                            ; ba 7d 03
    1144411575    mov ax, si                                ; 89 f0
    11445     call 016c6h                               ; e8 87 9a
     11576    call 01757h                               ; e8 2e 9a
    1144611577    mov AL, strict byte 003h                  ; b0 03
    1144711578    mov AH, strict byte 000h                  ; b4 00
    1144811579    int 010h                                  ; cd 10
    1144911580    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11450     je near 07d36h                            ; 0f 84 e9 00
     11581    je near 07e20h                            ; 0f 84 e9 00
    1145111582    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11452     jne short 07c83h                          ; 75 30
     11583    jne short 07d6dh                          ; 75 30
    1145311584    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11454     jne short 07c83h                          ; 75 2a
     11585    jne short 07d6dh                          ; 75 2a
    1145511586    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    11456     jne short 07c83h                          ; 75 24
     11587    jne short 07d6dh                          ; 75 24
    1145711588    cmp byte [bp-012h], 002h                  ; 80 7e ee 02
    11458     jne short 07c70h                          ; 75 0b
    11459     push 00a4bh                               ; 68 4b 0a
     11589    jne short 07d5ah                          ; 75 0b
     11590    push 00a5dh                               ; 68 5d 0a
    1146011591    push strict byte 00002h                   ; 6a 02
    11461     call 019dah                               ; e8 6d 9d
     11592    call 01a6bh                               ; e8 14 9d
    1146211593    add sp, strict byte 00004h                ; 83 c4 04
    1146311594    test cl, cl                               ; 84 c9
    11464     jne short 07c83h                          ; 75 0f
     11595    jne short 07d6dh                          ; 75 0f
    1146511596    mov dx, strict word 00001h                ; ba 01 00
    1146611597    mov ax, 000c0h                            ; b8 c0 00
    11467     call 078f0h                               ; e8 73 fc
     11598    call 079dah                               ; e8 73 fc
    1146811599    cmp AL, strict byte 086h                  ; 3c 86
    11469     jne short 07c83h                          ; 75 02
     11600    jne short 07d6dh                          ; 75 02
    1147011601    mov CL, strict byte 001h                  ; b1 01
    1147111602    test cl, cl                               ; 84 c9
    11472     je near 07d36h                            ; 0f 84 ad 00
     11603    je near 07e20h                            ; 0f 84 ad 00
    1147311604    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1147411605    mov ax, 00100h                            ; b8 00 01
     
    1148711618    ; xor dx, dx                                ; 33 d2
    1148811619    int 010h                                  ; cd 10
    11489     push 00a6dh                               ; 68 6d 0a
     11620    push 00a7fh                               ; 68 7f 0a
    1149011621    push strict byte 00002h                   ; 6a 02
    11491     call 019dah                               ; e8 28 9d
     11622    call 01a6bh                               ; e8 cf 9c
    1149211623    add sp, strict byte 00004h                ; 83 c4 04
    11493     call 079cch                               ; e8 14 fd
    11494     push 00ab1h                               ; 68 b1 0a
     11624    call 07ab6h                               ; e8 14 fd
     11625    push 00ac3h                               ; 68 c3 0a
    1149511626    push strict byte 00002h                   ; 6a 02
    11496     call 019dah                               ; e8 1a 9d
     11627    call 01a6bh                               ; e8 c1 9c
    1149711628    add sp, strict byte 00004h                ; 83 c4 04
    1149811629    mov dx, strict word 00001h                ; ba 01 00
    1149911630    mov ax, strict word 00040h                ; b8 40 00
    11500     call 078f0h                               ; e8 24 fc
     11631    call 079dah                               ; e8 24 fc
    1150111632    mov bl, al                                ; 88 c3
    1150211633    test al, al                               ; 84 c0
    11503     je short 07cc3h                           ; 74 f1
     11634    je short 07dadh                           ; 74 f1
    1150411635    cmp AL, strict byte 030h                  ; 3c 30
    11505     je short 07d24h                           ; 74 4e
     11636    je short 07e0eh                           ; 74 4e
    1150611637    cmp bl, 002h                              ; 80 fb 02
    11507     jc short 07cfdh                           ; 72 22
     11638    jc short 07de7h                           ; 72 22
    1150811639    cmp bl, 009h                              ; 80 fb 09
    11509     jnbe short 07cfdh                         ; 77 1d
     11640    jnbe short 07de7h                         ; 77 1d
    1151011641    movzx ax, bl                              ; 0f b6 c3
    11511     call 07afch                               ; e8 16 fe
     11642    call 07be6h                               ; e8 16 fe
    1151211643    cmp AL, strict byte 0ffh                  ; 3c ff
    11513     jne short 07cech                          ; 75 02
    11514     jmp short 07cc3h                          ; eb d7
     11644    jne short 07dd6h                          ; 75 02
     11645    jmp short 07dadh                          ; eb d7
    1151511646    movzx bx, al                              ; 0f b6 d8
    1151611647    mov dx, 0037ch                            ; ba 7c 03
    1151711648    mov ax, si                                ; 89 f0
    11518     call 016c6h                               ; e8 cf 99
     11649    call 01757h                               ; e8 76 99
    1151911650    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    11520     jmp short 07d24h                          ; eb 27
     11651    jmp short 07e0eh                          ; eb 27
    1152111652    cmp bl, 02eh                              ; 80 fb 2e
    11522     je short 07d12h                           ; 74 10
     11653    je short 07dfch                           ; 74 10
    1152311654    cmp bl, 026h                              ; 80 fb 26
    11524     je short 07d18h                           ; 74 11
     11655    je short 07e02h                           ; 74 11
    1152511656    cmp bl, 021h                              ; 80 fb 21
    11526     jne short 07d1eh                          ; 75 12
     11657    jne short 07e08h                          ; 75 12
    1152711658    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11528     jmp short 07d24h                          ; eb 12
     11659    jmp short 07e0eh                          ; eb 12
    1152911660    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    11530     jmp short 07d24h                          ; eb 0c
     11661    jmp short 07e0eh                          ; eb 0c
    1153111662    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    11532     jmp short 07d24h                          ; eb 06
     11663    jmp short 07e0eh                          ; eb 06
    1153311664    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11534     je short 07cc3h                           ; 74 9f
     11665    je short 07dadh                           ; 74 9f
    1153511666    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    1153611667    mov dx, 0037dh                            ; ba 7d 03
    1153711668    mov ax, si                                ; 89 f0
    11538     call 016c6h                               ; e8 96 99
     11669    call 01757h                               ; e8 3d 99
    1153911670    mov AL, strict byte 003h                  ; b0 03
    1154011671    mov AH, strict byte 000h                  ; b4 00
     
    1154911680    push DS                                   ; 1e
    1155011681    mov ds, ax                                ; 8e d8
    11551     call 0edbfh                               ; e8 77 70
     11682    call 0edbfh                               ; e8 8d 6f
    1155211683    pop DS                                    ; 1f
    1155311684    popad                                     ; 66 61
     
    1156011691    pop bp                                    ; 5d
    1156111692    retn                                      ; c3
    11562 delay_boot_:                                 ; 0xf7d55 LB 0x67
     11693delay_boot_:                                 ; 0xf7e3f LB 0x67
    1156311694    push bp                                   ; 55
    1156411695    mov bp, sp                                ; 89 e5
     
    1156711698    mov dx, ax                                ; 89 c2
    1156811699    test ax, ax                               ; 85 c0
    11569     je short 07db5h                           ; 74 55
     11700    je short 07e9fh                           ; 74 55
    1157011701    mov AL, strict byte 034h                  ; b0 34
    1157111702    out strict byte 043h, AL                  ; e6 43
     
    1157511706    out strict byte 040h, AL                  ; e6 40
    1157611707    push dx                                   ; 52
    11577     push 00afbh                               ; 68 fb 0a
     11708    push 00b0dh                               ; 68 0d 0b
    1157811709    push strict byte 00002h                   ; 6a 02
    11579     call 019dah                               ; e8 65 9c
     11710    call 01a6bh                               ; e8 0c 9c
    1158011711    add sp, strict byte 00006h                ; 83 c4 06
    1158111712    mov bx, dx                                ; 89 d3
    1158211713    test bx, bx                               ; 85 db
    11583     jbe short 07d95h                          ; 76 17
     11714    jbe short 07e7fh                          ; 76 17
    1158411715    push bx                                   ; 53
    11585     push 00b19h                               ; 68 19 0b
     11716    push 00b2bh                               ; 68 2b 0b
    1158611717    push strict byte 00002h                   ; 6a 02
    11587     call 019dah                               ; e8 53 9c
     11718    call 01a6bh                               ; e8 fa 9b
    1158811719    add sp, strict byte 00006h                ; 83 c4 06
    1158911720    xor dx, dx                                ; 31 d2
    1159011721    mov ax, strict word 00040h                ; b8 40 00
    11591     call 078f0h                               ; e8 5e fb
     11722    call 079dah                               ; e8 5e fb
    1159211723    dec bx                                    ; 4b
    11593     jmp short 07d7ah                          ; eb e5
    11594     push 00a49h                               ; 68 49 0a
     11724    jmp short 07e64h                          ; eb e5
     11725    push 00a5bh                               ; 68 5b 0a
    1159511726    push strict byte 00002h                   ; 6a 02
    11596     call 019dah                               ; e8 3d 9c
     11727    call 01a6bh                               ; e8 e4 9b
    1159711728    add sp, strict byte 00004h                ; 83 c4 04
    1159811729    mov AL, strict byte 034h                  ; b0 34
     
    1160511736    push DS                                   ; 1e
    1160611737    mov ds, ax                                ; 8e d8
    11607     call 0edbfh                               ; e8 0d 70
     11738    call 0edbfh                               ; e8 23 6f
    1160811739    pop DS                                    ; 1f
    1160911740    popad                                     ; 66 61
     
    1161311744    pop bp                                    ; 5d
    1161411745    retn                                      ; c3
    11615 scsi_cmd_data_in_:                           ; 0xf7dbc LB 0xd5
     11746scsi_cmd_data_in_:                           ; 0xf7ea6 LB 0xd5
    1161611747    push bp                                   ; 55
    1161711748    mov bp, sp                                ; 89 e5
     
    1162911760    ; sub ah, ah                                ; 2a e4
    1163011761    test AL, strict byte 001h                 ; a8 01
    11631     jne short 07dd2h                          ; 75 f7
     11762    jne short 07ebch                          ; 75 f7
    1163211763    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
    11633     jne short 07de5h                          ; 75 04
     11764    jne short 07ecfh                          ; 75 04
    1163411765    xor ax, ax                                ; 31 c0
    11635     jmp short 07de9h                          ; eb 04
     11766    jmp short 07ed3h                          ; eb 04
    1163611767    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1163711768    mov di, ax                                ; 89 c7
     
    1164111772    shr dx, 1                                 ; d1 ea
    1164211773    rcr ax, 1                                 ; d1 d8
    11643     loop 07df3h                               ; e2 fa
     11774    loop 07eddh                               ; e2 fa
    1164411775    mov cx, ax                                ; 89 c1
    1164511776    and cx, 000f0h                            ; 81 e1 f0 00
     
    1165911790    shr dx, 1                                 ; d1 ea
    1166011791    rcr ax, 1                                 ; d1 d8
    11661     loop 07e18h                               ; e2 fa
     11792    loop 07f02h                               ; e2 fa
    1166211793    mov dx, si                                ; 89 f2
    1166311794    out DX, AL                                ; ee
     
    1166511796    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1166611797    cmp cx, ax                                ; 39 c1
    11667     jnc short 07e39h                          ; 73 0e
     11798    jnc short 07f23h                          ; 73 0e
    1166811799    les di, [bp-00ah]                         ; c4 7e f6
    1166911800    add di, cx                                ; 01 cf
     
    1167211803    out DX, AL                                ; ee
    1167311804    inc cx                                    ; 41
    11674     jmp short 07e23h                          ; eb ea
     11805    jmp short 07f0dh                          ; eb ea
    1167511806    mov dx, si                                ; 89 f2
    1167611807    in AL, DX                                 ; ec
     
    1167811809    ; sub ah, ah                                ; 2a e4
    1167911810    test AL, strict byte 001h                 ; a8 01
    11680     jne short 07e39h                          ; 75 f7
     11811    jne short 07f23h                          ; 75 f7
    1168111812    test AL, strict byte 002h                 ; a8 02
    11682     je short 07e54h                           ; 74 0e
     11813    je short 07f3eh                           ; 74 0e
    1168311814    lea dx, [si+003h]                         ; 8d 54 03
    1168411815    xor al, al                                ; 30 c0
     
    1168811819    ; sub ah, ah                                ; 2a e4
    1168911820    mov di, strict word 00004h                ; bf 04 00
    11690     jmp short 07e86h                          ; eb 32
     11821    jmp short 07f70h                          ; eb 32
    1169111822    lea dx, [si+001h]                         ; 8d 54 01
    1169211823    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11693     jne short 07e63h                          ; 75 06
     11824    jne short 07f4dh                          ; 75 06
    1169411825    cmp bx, 08000h                            ; 81 fb 00 80
    11695     jbe short 07e7dh                          ; 76 1a
     11826    jbe short 07f67h                          ; 76 1a
    1169611827    mov cx, 08000h                            ; b9 00 80
    1169711828    les di, [bp+006h]                         ; c4 7e 06
     
    1170211833    add ax, 00800h                            ; 05 00 08
    1170311834    mov word [bp+008h], ax                    ; 89 46 08
    11704     jmp short 07e54h                          ; eb d7
     11835    jmp short 07f3eh                          ; eb d7
    1170511836    mov cx, bx                                ; 89 d9
    1170611837    les di, [bp+006h]                         ; c4 7e 06
     
    1171311844    pop bp                                    ; 5d
    1171411845    retn 0000ah                               ; c2 0a 00
    11715 scsi_cmd_data_out_:                          ; 0xf7e91 LB 0xd5
     11846scsi_cmd_data_out_:                          ; 0xf7f7b LB 0xd5
    1171611847    push bp                                   ; 55
    1171711848    mov bp, sp                                ; 89 e5
     
    1172911860    ; sub ah, ah                                ; 2a e4
    1173011861    test AL, strict byte 001h                 ; a8 01
    11731     jne short 07ea7h                          ; 75 f7
     11862    jne short 07f91h                          ; 75 f7
    1173211863    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
    11733     jne short 07ebah                          ; 75 04
     11864    jne short 07fa4h                          ; 75 04
    1173411865    xor ax, ax                                ; 31 c0
    11735     jmp short 07ebeh                          ; eb 04
     11866    jmp short 07fa8h                          ; eb 04
    1173611867    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1173711868    mov si, ax                                ; 89 c6
     
    1174111872    shr dx, 1                                 ; d1 ea
    1174211873    rcr ax, 1                                 ; d1 d8
    11743     loop 07ec8h                               ; e2 fa
     11874    loop 07fb2h                               ; e2 fa
    1174411875    mov cx, ax                                ; 89 c1
    1174511876    and cx, 000f0h                            ; 81 e1 f0 00
     
    1175911890    shr dx, 1                                 ; d1 ea
    1176011891    rcr ax, 1                                 ; d1 d8
    11761     loop 07eedh                               ; e2 fa
     11892    loop 07fd7h                               ; e2 fa
    1176211893    mov dx, di                                ; 89 fa
    1176311894    out DX, AL                                ; ee
     
    1176511896    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1176611897    cmp cx, ax                                ; 39 c1
    11767     jnc short 07f0eh                          ; 73 0e
     11898    jnc short 07ff8h                          ; 73 0e
    1176811899    les si, [bp-00ah]                         ; c4 76 f6
    1176911900    add si, cx                                ; 01 ce
     
    1177211903    out DX, AL                                ; ee
    1177311904    inc cx                                    ; 41
    11774     jmp short 07ef8h                          ; eb ea
     11905    jmp short 07fe2h                          ; eb ea
    1177511906    lea dx, [di+001h]                         ; 8d 55 01
    1177611907    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11777     jne short 07f1dh                          ; 75 06
     11908    jne short 08007h                          ; 75 06
    1177811909    cmp bx, 08000h                            ; 81 fb 00 80
    11779     jbe short 07f38h                          ; 76 1b
     11910    jbe short 08022h                          ; 76 1b
    1178011911    mov cx, 08000h                            ; b9 00 80
    1178111912    les si, [bp+006h]                         ; c4 76 06
     
    1178711918    add ax, 00800h                            ; 05 00 08
    1178811919    mov word [bp+008h], ax                    ; 89 46 08
    11789     jmp short 07f0eh                          ; eb d6
     11920    jmp short 07ff8h                          ; eb d6
    1179011921    mov cx, bx                                ; 89 d9
    1179111922    les si, [bp+006h]                         ; c4 76 06
     
    1179711928    ; sub ah, ah                                ; 2a e4
    1179811929    test AL, strict byte 001h                 ; a8 01
    11799     jne short 07f40h                          ; 75 f7
     11930    jne short 0802ah                          ; 75 f7
    1180011931    test AL, strict byte 002h                 ; a8 02
    11801     je short 07f5bh                           ; 74 0e
     11932    je short 08045h                           ; 74 0e
    1180211933    lea dx, [di+003h]                         ; 8d 55 03
    1180311934    xor al, al                                ; 30 c0
     
    1180711938    ; sub ah, ah                                ; 2a e4
    1180811939    mov ax, strict word 00004h                ; b8 04 00
    11809     jmp short 07f5dh                          ; eb 02
     11940    jmp short 08047h                          ; eb 02
    1181011941    xor ax, ax                                ; 31 c0
    1181111942    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1181411945    pop bp                                    ; 5d
    1181511946    retn 0000ah                               ; c2 0a 00
    11816 @scsi_read_sectors:                          ; 0xf7f66 LB 0xdb
     11947@scsi_read_sectors:                          ; 0xf8050 LB 0xdb
    1181711948    push bp                                   ; 55
    1181811949    mov bp, sp                                ; 89 e5
     
    1182611957    mov byte [bp-006h], al                    ; 88 46 fa
    1182711958    cmp AL, strict byte 004h                  ; 3c 04
    11828     jbe short 07f94h                          ; 76 13
     11959    jbe short 0807eh                          ; 76 13
    1182911960    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1183011961    push ax                                   ; 50
    11831     push 00b1eh                               ; 68 1e 0b
    1183211962    push 00b30h                               ; 68 30 0b
     11963    push 00b42h                               ; 68 42 0b
    1183311964    push strict byte 00007h                   ; 6a 07
    11834     call 019dah                               ; e8 49 9a
     11965    call 01a6bh                               ; e8 f0 99
    1183511966    add sp, strict byte 00008h                ; 83 c4 08
    1183611967    mov es, [bp+006h]                         ; 8e 46 06
     
    1187112002    sal word [bp-00ah], 1                     ; d1 66 f6
    1187212003    rcl word [bp-008h], 1                     ; d1 56 f8
    11873     loop 07ffdh                               ; e2 f8
     12004    loop 080e7h                               ; e2 f8
    1187412005    push dword [bp-00ah]                      ; 66 ff 76 f6
    1187512006    db  066h, 026h, 0ffh, 074h, 008h
     
    1187912010    mov cx, ss                                ; 8c d1
    1188012011    lea bx, [bp-01ah]                         ; 8d 5e e6
    11881     call 07dbch                               ; e8 a2 fd
     12012    call 07ea6h                               ; e8 a2 fd
    1188212013    mov ah, al                                ; 88 c4
    1188312014    test al, al                               ; 84 c0
    11884     jne short 08035h                          ; 75 15
     12015    jne short 0811fh                          ; 75 15
    1188512016    mov es, [bp+006h]                         ; 8e 46 06
    1188612017    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1189512026    pop bp                                    ; 5d
    1189612027    retn 00004h                               ; c2 04 00
    11897 @scsi_write_sectors:                         ; 0xf8041 LB 0xdb
     12028@scsi_write_sectors:                         ; 0xf812b LB 0xdb
    1189812029    push bp                                   ; 55
    1189912030    mov bp, sp                                ; 89 e5
     
    1190712038    mov byte [bp-006h], al                    ; 88 46 fa
    1190812039    cmp AL, strict byte 004h                  ; 3c 04
    11909     jbe short 0806fh                          ; 76 13
     12040    jbe short 08159h                          ; 76 13
    1191012041    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1191112042    push ax                                   ; 50
    11912     push 00b4fh                               ; 68 4f 0b
    11913     push 00b30h                               ; 68 30 0b
     12043    push 00b61h                               ; 68 61 0b
     12044    push 00b42h                               ; 68 42 0b
    1191412045    push strict byte 00007h                   ; 6a 07
    11915     call 019dah                               ; e8 6e 99
     12046    call 01a6bh                               ; e8 15 99
    1191612047    add sp, strict byte 00008h                ; 83 c4 08
    1191712048    mov es, [bp+006h]                         ; 8e 46 06
     
    1195212083    sal word [bp-00ah], 1                     ; d1 66 f6
    1195312084    rcl word [bp-008h], 1                     ; d1 56 f8
    11954     loop 080d8h                               ; e2 f8
     12085    loop 081c2h                               ; e2 f8
    1195512086    push dword [bp-00ah]                      ; 66 ff 76 f6
    1195612087    db  066h, 026h, 0ffh, 074h, 008h
     
    1196012091    mov cx, ss                                ; 8c d1
    1196112092    lea bx, [bp-01ah]                         ; 8d 5e e6
    11962     call 07e91h                               ; e8 9c fd
     12093    call 07f7bh                               ; e8 9c fd
    1196312094    mov ah, al                                ; 88 c4
    1196412095    test al, al                               ; 84 c0
    11965     jne short 08110h                          ; 75 15
     12096    jne short 081fah                          ; 75 15
    1196612097    mov es, [bp+006h]                         ; 8e 46 06
    1196712098    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1197612107    pop bp                                    ; 5d
    1197712108    retn 00004h                               ; c2 04 00
    11978 scsi_cmd_packet_:                            ; 0xf811c LB 0x166
     12109scsi_cmd_packet_:                            ; 0xf8206 LB 0x166
    1197912110    push bp                                   ; 55
    1198012111    mov bp, sp                                ; 89 e5
     
    1198812119    mov dx, strict word 0000eh                ; ba 0e 00
    1198912120    mov ax, strict word 00040h                ; b8 40 00
    11990     call 016d4h                               ; e8 9c 95
     12121    call 01765h                               ; e8 43 95
    1199112122    mov si, 00122h                            ; be 22 01
    1199212123    mov word [bp-00eh], ax                    ; 89 46 f2
    1199312124    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    11994     jne short 08163h                          ; 75 1f
    11995     mov bx, 00da0h                            ; bb a0 0d
     12125    jne short 0824dh                          ; 75 1f
     12126    mov bx, 00db2h                            ; bb b2 0d
    1199612127    mov cx, ds                                ; 8c d9
    1199712128    mov ax, strict word 00004h                ; b8 04 00
    11998     call 01999h                               ; e8 4a 98
    11999     push 00b62h                               ; 68 62 0b
    12000     push 00b72h                               ; 68 72 0b
     12129    call 01a2ah                               ; e8 f1 97
     12130    push 00b74h                               ; 68 74 0b
     12131    push 00b84h                               ; 68 84 0b
    1200112132    push strict byte 00004h                   ; 6a 04
    12002     call 019dah                               ; e8 80 98
     12133    call 01a6bh                               ; e8 27 98
    1200312134    add sp, strict byte 00006h                ; 83 c4 06
    1200412135    mov dx, strict word 00001h                ; ba 01 00
    12005     jmp near 08277h                           ; e9 14 01
     12136    jmp near 08361h                           ; e9 14 01
    1200612137    sub di, strict byte 00008h                ; 83 ef 08
    1200712138    sal di, 002h                              ; c1 e7 02
     
    1201712148    ; sub ah, ah                                ; 2a e4
    1201812149    test AL, strict byte 001h                 ; a8 01
    12019     jne short 0817fh                          ; 75 f7
     12150    jne short 08269h                          ; 75 f7
    1202012151    xor ax, ax                                ; 31 c0
    1202112152    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1203312164    shr dx, 1                                 ; d1 ea
    1203412165    rcr ax, 1                                 ; d1 d8
    12035     loop 081aah                               ; e2 fa
     12166    loop 08294h                               ; e2 fa
    1203612167    and ax, 000f0h                            ; 25 f0 00
    1203712168    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     
    1205112182    shr dx, 1                                 ; d1 ea
    1205212183    rcr ax, 1                                 ; d1 d8
    12053     loop 081d1h                               ; e2 fa
     12184    loop 082bbh                               ; e2 fa
    1205412185    mov dx, bx                                ; 89 da
    1205512186    out DX, AL                                ; ee
     
    1205712188    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1205812189    cmp cx, ax                                ; 39 c1
    12059     jnc short 081f2h                          ; 73 0e
     12190    jnc short 082dch                          ; 73 0e
    1206012191    les di, [bp-00ch]                         ; c4 7e f4
    1206112192    add di, cx                                ; 01 cf
     
    1206412195    out DX, AL                                ; ee
    1206512196    inc cx                                    ; 41
    12066     jmp short 081dch                          ; eb ea
     12197    jmp short 082c6h                          ; eb ea
    1206712198    mov dx, bx                                ; 89 da
    1206812199    in AL, DX                                 ; ec
     
    1207012201    ; sub ah, ah                                ; 2a e4
    1207112202    test AL, strict byte 001h                 ; a8 01
    12072     jne short 081f2h                          ; 75 f7
     12203    jne short 082dch                          ; 75 f7
    1207312204    test AL, strict byte 002h                 ; a8 02
    12074     je short 0820dh                           ; 74 0e
     12205    je short 082f7h                           ; 74 0e
    1207512206    lea dx, [bx+003h]                         ; 8d 57 03
    1207612207    xor al, al                                ; 30 c0
     
    1208012211    ; sub ah, ah                                ; 2a e4
    1208112212    mov dx, strict word 00003h                ; ba 03 00
    12082     jmp short 08277h                          ; eb 6a
     12213    jmp short 08361h                          ; eb 6a
    1208312214    mov ax, word [bp+004h]                    ; 8b 46 04
    1208412215    test ax, ax                               ; 85 c0
    12085     je short 0821ch                           ; 74 08
     12216    je short 08306h                           ; 74 08
    1208612217    lea dx, [bx+001h]                         ; 8d 57 01
    1208712218    mov cx, ax                                ; 89 c1
    1208812219    in AL, DX                                 ; ec
    12089     loop 08219h                               ; e2 fd
     12220    loop 08303h                               ; e2 fd
    1209012221    mov ax, word [bp+006h]                    ; 8b 46 06
    1209112222    mov es, [bp-00eh]                         ; 8e 46 f2
     
    1209512226    lea ax, [bx+001h]                         ; 8d 47 01
    1209612227    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12097     jne short 0823dh                          ; 75 07
     12228    jne short 08327h                          ; 75 07
    1209812229    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12099     jbe short 0825ah                          ; 76 1d
     12230    jbe short 08344h                          ; 76 1d
    1210012231    mov dx, ax                                ; 89 c2
    1210112232    mov cx, 08000h                            ; b9 00 80
     
    1210712238    add ax, 00800h                            ; 05 00 08
    1210812239    mov word [bp+00eh], ax                    ; 89 46 0e
    12109     jmp short 0822dh                          ; eb d3
     12240    jmp short 08317h                          ; eb d3
    1211012241    mov dx, ax                                ; 89 c2
    1211112242    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1211412245    mov es, [bp-00eh]                         ; 8e 46 f2
    1211512246    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12116     je short 08275h                           ; 74 07
     12247    je short 0835fh                           ; 74 07
    1211712248    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1211812249    in AL, DX                                 ; ec
    12119     loop 08272h                               ; e2 fd
     12250    loop 0835ch                               ; e2 fd
    1212012251    xor dx, dx                                ; 31 d2
    1212112252    mov ax, dx                                ; 89 d0
     
    1212512256    pop bp                                    ; 5d
    1212612257    retn 0000ch                               ; c2 0c 00
    12127 scsi_enumerate_attached_devices_:            ; 0xf8282 LB 0x482
     12258scsi_enumerate_attached_devices_:            ; 0xf836c LB 0x482
    1212812259    push bp                                   ; 55
    1212912260    mov bp, sp                                ; 89 e5
     
    1213712268    mov dx, strict word 0000eh                ; ba 0e 00
    1213812269    mov ax, strict word 00040h                ; b8 40 00
    12139     call 016d4h                               ; e8 3c 94
     12270    call 01765h                               ; e8 e3 93
    1214012271    mov di, 00122h                            ; bf 22 01
    1214112272    mov word [bp-02eh], ax                    ; 89 46 d2
    1214212273    mov word [bp-01eh], strict word 00000h    ; c7 46 e2 00 00
    12143     jmp near 08686h                           ; e9 e0 03
     12274    jmp near 08770h                           ; e9 e0 03
    1214412275    cmp AL, strict byte 004h                  ; 3c 04
    12145     jnc near 086fah                           ; 0f 83 4e 04
     12276    jnc near 087e4h                           ; 0f 83 4e 04
    1214612277    mov cx, strict word 00010h                ; b9 10 00
    1214712278    xor bx, bx                                ; 31 db
    1214812279    mov dx, ss                                ; 8c d2
    1214912280    lea ax, [bp-046h]                         ; 8d 46 ba
    12150     call 09f60h                               ; e8 a7 1c
     12281    call 0a050h                               ; e8 ad 1c
    1215112282    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
    1215212283    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     
    1216112292    lea bx, [bp-046h]                         ; 8d 5e ba
    1216212293    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12163     call 07dbch                               ; e8 dc fa
     12294    call 07ea6h                               ; e8 dc fa
    1216412295    test al, al                               ; 84 c0
    12165     je short 082f2h                           ; 74 0e
    12166     push 00b92h                               ; 68 92 0b
    12167     push 00bcbh                               ; 68 cb 0b
     12296    je short 083dch                           ; 74 0e
     12297    push 00ba4h                               ; 68 a4 0b
     12298    push 00bddh                               ; 68 dd 0b
    1216812299    push strict byte 00007h                   ; 6a 07
    12169     call 019dah                               ; e8 eb 96
     12300    call 01a6bh                               ; e8 92 96
    1217012301    add sp, strict byte 00006h                ; 83 c4 06
    1217112302    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
     
    1219712328    sal ax, 1                                 ; d1 e0
    1219812329    rcl dx, 1                                 ; d1 d2
    12199     loop 08340h                               ; e2 fa
     12330    loop 0842ah                               ; e2 fa
    1220012331    or bx, ax                                 ; 09 c3
    1220112332    or dx, si                                 ; 09 f2
     
    1220412335    mov word [bp-024h], bx                    ; 89 5e dc
    1220512336    test dx, dx                               ; 85 d2
    12206     jne short 0835eh                          ; 75 06
     12337    jne short 08448h                          ; 75 06
    1220712338    cmp bx, 00200h                            ; 81 fb 00 02
    12208     je short 0837eh                           ; 74 20
    12209     mov bx, 00da0h                            ; bb a0 0d
     12339    je short 08468h                           ; 74 20
     12340    mov bx, 00db2h                            ; bb b2 0d
    1221012341    mov cx, ds                                ; 8c d9
    1221112342    mov ax, strict word 00004h                ; b8 04 00
    12212     call 01999h                               ; e8 30 96
     12343    call 01a2ah                               ; e8 d7 95
    1221312344    push dx                                   ; 52
    1221412345    push word [bp-024h]                       ; ff 76 dc
    1221512346    push word [bp-01eh]                       ; ff 76 e2
    12216     push 00beah                               ; 68 ea 0b
     12347    push 00bfch                               ; 68 fc 0b
    1221712348    push strict byte 00004h                   ; 6a 04
    12218     call 019dah                               ; e8 62 96
     12349    call 01a6bh                               ; e8 09 96
    1221912350    add sp, strict byte 0000ah                ; 83 c4 0a
    12220     jmp near 0867dh                           ; e9 ff 02
     12351    jmp near 08767h                           ; e9 ff 02
    1222112352    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1222212353    cmp AL, strict byte 001h                  ; 3c 01
    12223     jc short 08391h                           ; 72 0c
    12224     jbe short 08399h                          ; 76 12
     12354    jc short 0847bh                           ; 72 0c
     12355    jbe short 08483h                          ; 76 12
    1222512356    cmp AL, strict byte 003h                  ; 3c 03
    12226     je short 083a1h                           ; 74 16
     12357    je short 0848bh                           ; 74 16
    1222712358    cmp AL, strict byte 002h                  ; 3c 02
    12228     je short 0839dh                           ; 74 0e
    12229     jmp short 083eah                          ; eb 59
     12359    je short 08487h                           ; 74 0e
     12360    jmp short 084d4h                          ; eb 59
    1223012361    test al, al                               ; 84 c0
    12231     jne short 083eah                          ; 75 55
     12362    jne short 084d4h                          ; 75 55
    1223212363    mov BL, strict byte 090h                  ; b3 90
    12233     jmp short 083a3h                          ; eb 0a
     12364    jmp short 0848dh                          ; eb 0a
    1223412365    mov BL, strict byte 098h                  ; b3 98
    12235     jmp short 083a3h                          ; eb 06
     12366    jmp short 0848dh                          ; eb 06
    1223612367    mov BL, strict byte 0a0h                  ; b3 a0
    12237     jmp short 083a3h                          ; eb 02
     12368    jmp short 0848dh                          ; eb 02
    1223812369    mov BL, strict byte 0a8h                  ; b3 a8
    1223912370    mov al, bl                                ; 88 d8
     
    1224112372    movzx cx, al                              ; 0f b6 c8
    1224212373    mov ax, cx                                ; 89 c8
    12243     call 01714h                               ; e8 65 93
     12374    call 017a5h                               ; e8 0c 93
    1224412375    test al, al                               ; 84 c0
    12245     je short 083eah                           ; 74 37
     12376    je short 084d4h                           ; 74 37
    1224612377    mov al, bl                                ; 88 d8
    1224712378    db  0feh, 0c0h
    1224812379    ; inc al                                    ; fe c0
    1224912380    xor ah, ah                                ; 30 e4
    12250     call 01714h                               ; e8 58 93
     12381    call 017a5h                               ; e8 ff 92
    1225112382    movzx dx, al                              ; 0f b6 d0
    1225212383    sal dx, 008h                              ; c1 e2 08
    1225312384    movzx ax, bl                              ; 0f b6 c3
    12254     call 01714h                               ; e8 4c 93
     12385    call 017a5h                               ; e8 f3 92
    1225512386    xor ah, ah                                ; 30 e4
    1225612387    add ax, dx                                ; 01 d0
     
    1226012391    add AL, strict byte 002h                  ; 04 02
    1226112392    xor ah, ah                                ; 30 e4
    12262     call 01714h                               ; e8 3c 93
     12393    call 017a5h                               ; e8 e3 92
    1226312394    xor ah, ah                                ; 30 e4
    1226412395    mov word [bp-034h], ax                    ; 89 46 cc
    1226512396    mov ax, cx                                ; 89 c8
    12266     call 01714h                               ; e8 32 93
     12397    call 017a5h                               ; e8 d9 92
    1226712398    xor ah, ah                                ; 30 e4
    1226812399    mov word [bp-032h], ax                    ; 89 46 ce
    12269     jmp near 084d3h                           ; e9 e9 00
     12400    jmp near 085bdh                           ; e9 e9 00
    1227012401    mov ax, word [bp-010h]                    ; 8b 46 f0
    1227112402    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1227312404    mov dx, word [bp-016h]                    ; 8b 56 ea
    1227412405    mov si, strict word 0000ch                ; be 0c 00
    12275     call 09f40h                               ; e8 44 1b
     12406    call 0a030h                               ; e8 4a 1b
    1227612407    mov word [bp-018h], ax                    ; 89 46 e8
    1227712408    mov word [bp-014h], bx                    ; 89 5e ec
     
    1228012411    mov ax, word [bp-010h]                    ; 8b 46 f0
    1228112412    test ax, ax                               ; 85 c0
    12282     jnbe short 08425h                         ; 77 16
    12283     jne near 08498h                           ; 0f 85 85 00
     12413    jnbe short 0850fh                         ; 77 16
     12414    jne near 08582h                           ; 0f 85 85 00
    1228412415    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
    12285     jnbe short 08425h                         ; 77 0c
    12286     jne near 08498h                           ; 0f 85 7b 00
     12416    jnbe short 0850fh                         ; 77 0c
     12417    jne near 08582h                           ; 0f 85 7b 00
    1228712418    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
    12288     jnbe short 08425h                         ; 77 02
    12289     jne short 08498h                          ; 75 73
     12419    jnbe short 0850fh                         ; 77 02
     12420    jne short 08582h                          ; 75 73
    1229012421    mov dword [bp-034h], strict dword 0003f00ffh ; 66 c7 46 cc ff 00 3f 00
    1229112422    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1229312424    mov dx, word [bp-016h]                    ; 8b 56 ea
    1229412425    mov si, strict word 00006h                ; be 06 00
    12295     call 09f40h                               ; e8 04 1b
     12426    call 0a030h                               ; e8 0a 1b
    1229612427    mov si, word [bp-020h]                    ; 8b 76 e0
    1229712428    add si, dx                                ; 01 d6
     
    1231112442    mov dx, si                                ; 89 f2
    1231212443    mov si, strict word 00008h                ; be 08 00
    12313     call 09f40h                               ; e8 d4 1a
     12444    call 0a030h                               ; e8 da 1a
    1231412445    mov word [bp-022h], bx                    ; 89 5e de
    1231512446    mov word [bp-02ch], cx                    ; 89 4e d4
     
    1232012451    mov dx, word [bp-02ah]                    ; 8b 56 d6
    1232112452    mov si, strict word 00010h                ; be 10 00
    12322     call 09f40h                               ; e8 b9 1a
     12453    call 0a030h                               ; e8 bf 1a
    1232312454    mov si, word [bp-01ah]                    ; 8b 76 e6
    1232412455    add si, dx                                ; 01 d6
     
    1232712458    mov ax, word [bp-022h]                    ; 8b 46 de
    1232812459    adc ax, bx                                ; 11 d8
    12329     jmp short 084d3h                          ; eb 3b
     12460    jmp short 085bdh                          ; eb 3b
    1233012461    test ax, ax                               ; 85 c0
    12331     jnbe short 084aeh                         ; 77 12
    12332     jne short 084b8h                          ; 75 1a
     12462    jnbe short 08598h                         ; 77 12
     12463    jne short 085a2h                          ; 75 1a
    1233312464    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
    12334     jnbe short 084aeh                         ; 77 0a
    12335     jne short 084b8h                          ; 75 12
     12465    jnbe short 08598h                         ; 77 0a
     12466    jne short 085a2h                          ; 75 12
    1233612467    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
    12337     jnbe short 084aeh                         ; 77 02
    12338     jne short 084b8h                          ; 75 0a
     12468    jnbe short 08598h                         ; 77 02
     12469    jne short 085a2h                          ; 75 0a
    1233912470    mov dword [bp-034h], strict dword 000200080h ; 66 c7 46 cc 80 00 20 00
    12340     jmp short 084cfh                          ; eb 17
     12471    jmp short 085b9h                          ; eb 17
    1234112472    mov dword [bp-034h], strict dword 000200040h ; 66 c7 46 cc 40 00 20 00
    1234212473    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1234412475    mov dx, word [bp-016h]                    ; 8b 56 ea
    1234512476    mov si, strict word 0000bh                ; be 0b 00
    12346     call 09f40h                               ; e8 71 1a
     12477    call 0a030h                               ; e8 77 1a
    1234712478    mov si, dx                                ; 89 d6
    1234812479    mov dx, cx                                ; 89 ca
     
    1237712508    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1237812509    test dx, dx                               ; 85 d2
    12379     jne short 08540h                          ; 75 06
     12510    jne short 0862ah                          ; 75 06
    1238012511    cmp si, 00400h                            ; 81 fe 00 04
    12381     jbe short 0854eh                          ; 76 0e
     12512    jbe short 08638h                          ; 76 0e
    1238212513    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1238312514    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12384     jmp short 08556h                          ; eb 08
     12515    jmp short 08640h                          ; eb 08
    1238512516    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1238612517    mov word [es:bx+032h], si                 ; 26 89 77 32
    12387     mov bx, 00da0h                            ; bb a0 0d
     12518    mov bx, 00db2h                            ; bb b2 0d
    1238812519    mov cx, ds                                ; 8c d9
    1238912520    mov ax, strict word 00004h                ; b8 04 00
    12390     call 01999h                               ; e8 38 94
     12521    call 01a2ah                               ; e8 df 93
    1239112522    push word [bp-010h]                       ; ff 76 f0
    1239212523    push word [bp-030h]                       ; ff 76 d0
     
    1239912530    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    1240012531    push ax                                   ; 50
    12401     push 00c18h                               ; 68 18 0c
     12532    push 00c2ah                               ; 68 2a 0c
    1240212533    push strict byte 00004h                   ; 6a 04
    12403     call 019dah                               ; e8 57 94
     12534    call 01a6bh                               ; e8 fe 93
    1240412535    add sp, strict byte 00018h                ; 83 c4 18
    1240512536    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
     
    1242612557    mov dx, strict word 00075h                ; ba 75 00
    1242712558    mov ax, strict word 00040h                ; b8 40 00
    12428     call 016b8h                               ; e8 e5 90
     12559    call 01749h                               ; e8 8c 90
    1242912560    db  0feh, 0c0h
    1243012561    ; inc al                                    ; fe c0
     
    1243212563    mov dx, strict word 00075h                ; ba 75 00
    1243312564    mov ax, strict word 00040h                ; b8 40 00
    12434     call 016c6h                               ; e8 e5 90
     12565    call 01757h                               ; e8 8c 90
    1243512566    inc byte [bp-00ch]                        ; fe 46 f4
    12436     jmp near 08672h                           ; e9 8b 00
    12437     mov bx, 00da0h                            ; bb a0 0d
     12567    jmp near 0875ch                           ; e9 8b 00
     12568    mov bx, 00db2h                            ; bb b2 0d
    1243812569    mov cx, ds                                ; 8c d9
    1243912570    mov ax, strict word 00004h                ; b8 04 00
    12440     call 01999h                               ; e8 a7 93
     12571    call 01a2ah                               ; e8 4e 93
    1244112572    push word [bp-01eh]                       ; ff 76 e2
    1244212573    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    1244312574    push ax                                   ; 50
    12444     push 00c46h                               ; 68 46 0c
     12575    push 00c58h                               ; 68 58 0c
    1244512576    push strict byte 00004h                   ; 6a 04
    12446     call 019dah                               ; e8 d8 93
     12577    call 01a6bh                               ; e8 7f 93
    1244712578    add sp, strict byte 00008h                ; 83 c4 08
    1244812579    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1248512616    inc word [bp-01eh]                        ; ff 46 e2
    1248612617    cmp word [bp-01eh], strict byte 00010h    ; 83 7e e2 10
    12487     jnl short 086fah                          ; 7d 74
     12618    jnl short 087e4h                          ; 7d 74
    1248812619    mov byte [bp-046h], 012h                  ; c6 46 ba 12
    1248912620    xor al, al                                ; 30 c0
     
    1250212633    lea bx, [bp-046h]                         ; 8d 5e ba
    1250312634    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12504     call 07dbch                               ; e8 05 f7
     12635    call 07ea6h                               ; e8 05 f7
    1250512636    test al, al                               ; 84 c0
    12506     je short 086c9h                           ; 74 0e
    12507     push 00b92h                               ; 68 92 0b
    12508     push 00bb2h                               ; 68 b2 0b
     12637    je short 087b3h                           ; 74 0e
     12638    push 00ba4h                               ; 68 a4 0b
     12639    push 00bc4h                               ; 68 c4 0b
    1250912640    push strict byte 00007h                   ; 6a 07
    12510     call 019dah                               ; e8 14 93
     12641    call 01a6bh                               ; e8 bb 92
    1251112642    add sp, strict byte 00006h                ; 83 c4 06
    1251212643    mov es, [bp-02eh]                         ; 8e 46 d2
     
    1251412645    mov byte [bp-00ch], al                    ; 88 46 f4
    1251512646    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12516     jne short 086e4h                          ; 75 09
     12647    jne short 087ceh                          ; 75 09
    1251712648    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
    12518     je near 082a6h                            ; 0f 84 c2 fb
     12649    je near 08390h                            ; 0f 84 c2 fb
    1251912650    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12520     jne short 08672h                          ; 75 87
     12651    jne short 0875ch                          ; 75 87
    1252112652    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
    1252212653    and AL, strict byte 01fh                  ; 24 1f
    1252312654    cmp AL, strict byte 005h                  ; 3c 05
    12524     je near 085e7h                            ; 0f 84 f0 fe
    12525     jmp near 08672h                           ; e9 78 ff
     12655    je near 086d1h                            ; 0f 84 f0 fe
     12656    jmp near 0875ch                           ; e9 78 ff
    1252612657    lea sp, [bp-00ah]                         ; 8d 66 f6
    1252712658    pop di                                    ; 5f
     
    1253212663    pop bp                                    ; 5d
    1253312664    retn                                      ; c3
    12534 _scsi_init:                                  ; 0xf8704 LB 0x66
     12665_scsi_init:                                  ; 0xf87ee LB 0x66
    1253512666    push bp                                   ; 55
    1253612667    mov bp, sp                                ; 89 e5
    1253712668    mov dx, strict word 0000eh                ; ba 0e 00
    1253812669    mov ax, strict word 00040h                ; b8 40 00
    12539     call 016d4h                               ; e8 c4 8f
     12670    call 01765h                               ; e8 6b 8f
    1254012671    mov bx, 00122h                            ; bb 22 01
    1254112672    mov es, ax                                ; 8e c0
     
    1254812679    ; sub ah, ah                                ; 2a e4
    1254912680    cmp AL, strict byte 055h                  ; 3c 55
    12550     jne short 08734h                          ; 75 0c
     12681    jne short 0881eh                          ; 75 0c
    1255112682    xor al, al                                ; 30 c0
    1255212683    mov dx, 00433h                            ; ba 33 04
    1255312684    out DX, AL                                ; ee
    1255412685    mov ax, 00430h                            ; b8 30 04
    12555     call 08282h                               ; e8 4e fb
     12686    call 0836ch                               ; e8 4e fb
    1255612687    mov AL, strict byte 055h                  ; b0 55
    1255712688    mov dx, 00436h                            ; ba 36 04
     
    1256112692    ; sub ah, ah                                ; 2a e4
    1256212693    cmp AL, strict byte 055h                  ; 3c 55
    12563     jne short 0874dh                          ; 75 0c
     12694    jne short 08837h                          ; 75 0c
    1256412695    xor al, al                                ; 30 c0
    1256512696    mov dx, 00437h                            ; ba 37 04
    1256612697    out DX, AL                                ; ee
    1256712698    mov ax, 00434h                            ; b8 34 04
    12568     call 08282h                               ; e8 35 fb
     12699    call 0836ch                               ; e8 35 fb
    1256912700    mov AL, strict byte 055h                  ; b0 55
    1257012701    mov dx, 0043ah                            ; ba 3a 04
     
    1257412705    ; sub ah, ah                                ; 2a e4
    1257512706    cmp AL, strict byte 055h                  ; 3c 55
    12576     jne short 08766h                          ; 75 0c
     12707    jne short 08850h                          ; 75 0c
    1257712708    xor al, al                                ; 30 c0
    1257812709    mov dx, 0043bh                            ; ba 3b 04
    1257912710    out DX, AL                                ; ee
    1258012711    mov ax, 00438h                            ; b8 38 04
    12581     call 08282h                               ; e8 1c fb
     12712    call 0836ch                               ; e8 1c fb
    1258212713    mov sp, bp                                ; 89 ec
    1258312714    pop bp                                    ; 5d
    1258412715    retn                                      ; c3
    12585 ahci_ctrl_extract_bits_:                     ; 0xf876a LB 0x1b
     12716ahci_ctrl_extract_bits_:                     ; 0xf8854 LB 0x1b
    1258612717    push si                                   ; 56
    1258712718    push bp                                   ; 55
     
    1259112722    and dx, cx                                ; 21 ca
    1259212723    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    12593     jcxz 08780h                               ; e3 06
     12724    jcxz 0886ah                               ; e3 06
    1259412725    shr dx, 1                                 ; d1 ea
    1259512726    rcr ax, 1                                 ; d1 d8
    12596     loop 0877ah                               ; e2 fa
     12727    loop 08864h                               ; e2 fa
    1259712728    pop bp                                    ; 5d
    1259812729    pop si                                    ; 5e
    1259912730    retn 00002h                               ; c2 02 00
    12600 ahci_addr_to_phys_:                          ; 0xf8785 LB 0x1e
     12731ahci_addr_to_phys_:                          ; 0xf886f LB 0x1e
    1260112732    push bx                                   ; 53
    1260212733    push cx                                   ; 51
     
    1260912740    sal ax, 1                                 ; d1 e0
    1261012741    rcl dx, 1                                 ; d1 d2
    12611     loop 08793h                               ; e2 fa
     12742    loop 0887dh                               ; e2 fa
    1261212743    xor cx, cx                                ; 31 c9
    1261312744    add ax, bx                                ; 01 d8
     
    1261712748    pop bx                                    ; 5b
    1261812749    retn                                      ; c3
    12619 ahci_port_cmd_sync_:                         ; 0xf87a3 LB 0x14b
     12750ahci_port_cmd_sync_:                         ; 0xf888d LB 0x14b
    1262012751    push bp                                   ; 55
    1262112752    mov bp, sp                                ; 89 e5
     
    1263212763    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1263312764    cmp ah, 0ffh                              ; 80 fc ff
    12634     je near 088e6h                            ; 0f 84 20 01
     12765    je near 089d0h                            ; 0f 84 20 01
    1263512766    movzx dx, byte [es:si+00263h]             ; 26 0f b6 94 63 02
    1263612767    xor di, di                                ; 31 ff
     
    1264412775    lea ax, [si+00080h]                       ; 8d 84 80 00
    1264512776    mov dx, cx                                ; 89 ca
    12646     call 08785h                               ; e8 96 ff
     12777    call 0886fh                               ; e8 96 ff
    1264712778    mov es, cx                                ; 8e c1
    1264812779    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1270712838    xchg dx, ax                               ; 92
    1270812839    test dh, 040h                             ; f6 c6 40
    12709     jne short 0887ch                          ; 75 04
     12840    jne short 08966h                          ; 75 04
    1271012841    test AL, strict byte 001h                 ; a8 01
    12711     je short 08880h                           ; 74 04
     12842    je short 0896ah                           ; 74 04
    1271212843    mov AL, strict byte 001h                  ; b0 01
    12713     jmp short 08882h                          ; eb 02
     12844    jmp short 0896ch                          ; eb 02
    1271412845    xor al, al                                ; 30 c0
    1271512846    test al, al                               ; 84 c0
    12716     je short 08850h                           ; 74 ca
     12847    je short 0893ah                           ; 74 ca
    1271712848    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
    1271812849    sal di, 007h                              ; c1 e7 07
     
    1276812899    pop bp                                    ; 5d
    1276912900    retn                                      ; c3
    12770 ahci_cmd_data_:                              ; 0xf88ee LB 0x262
     12901ahci_cmd_data_:                              ; 0xf89d8 LB 0x262
    1277112902    push bp                                   ; 55
    1277212903    mov bp, sp                                ; 89 e5
     
    1279312924    mov ax, 00080h                            ; b8 80 00
    1279412925    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12795     call 09f60h                               ; e8 34 16
     12926    call 0a050h                               ; e8 3a 16
    1279612927    mov es, [bp-00ah]                         ; 8e 46 f6
    1279712928    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1281112942    mov dx, word [es:si]                      ; 26 8b 14
    1281212943    mov si, strict word 00008h                ; be 08 00
    12813     call 09f40h                               ; e8 d0 15
     12944    call 0a030h                               ; e8 d6 15
    1281412945    mov es, [bp-00ah]                         ; 8e 46 f6
    1281512946    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1282212953    mov dx, word [es:si]                      ; 26 8b 14
    1282312954    mov si, strict word 00010h                ; be 10 00
    12824     call 09f40h                               ; e8 aa 15
     12955    call 0a030h                               ; e8 b0 15
    1282512956    mov es, [bp-00ah]                         ; 8e 46 f6
    1282612957    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1283412965    mov dx, word [es:si]                      ; 26 8b 14
    1283512966    mov si, strict word 00018h                ; be 18 00
    12836     call 09f40h                               ; e8 7e 15
     12967    call 0a030h                               ; e8 84 15
    1283712968    mov es, [bp-00ah]                         ; 8e 46 f6
    1283812969    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1284512976    mov dx, word [es:si]                      ; 26 8b 14
    1284612977    mov si, strict word 00020h                ; be 20 00
    12847     call 09f40h                               ; e8 58 15
     12978    call 0a030h                               ; e8 5e 15
    1284812979    mov es, [bp-00ah]                         ; 8e 46 f6
    1284912980    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1285612987    mov dx, word [es:si]                      ; 26 8b 14
    1285712988    mov si, strict word 00028h                ; be 28 00
    12858     call 09f40h                               ; e8 32 15
     12989    call 0a030h                               ; e8 38 15
    1285912990    mov es, [bp-00ah]                         ; 8e 46 f6
    1286012991    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1287013001    mov bx, word [bp-010h]                    ; 8b 5e f0
    1287113002    xor cx, cx                                ; 31 c9
    12872     call 09ec0h                               ; e8 7d 14
     13003    call 09fb0h                               ; e8 83 14
    1287313004    push dx                                   ; 52
    1287413005    push ax                                   ; 50
     
    1288013011    mov ax, 0026ah                            ; b8 6a 02
    1288113012    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12882     call 09e11h                               ; e8 b2 13
     13013    call 09efbh                               ; e8 b2 13
    1288313014    mov es, [bp-00ah]                         ; 8e 46 f6
    1288413015    mov ax, word [es:di+0027eh]               ; 26 8b 85 7e 02
     
    1290113032    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1290213033    test ax, ax                               ; 85 c0
    12903     je short 08aedh                           ; 74 39
     13034    je short 08bd7h                           ; 74 39
    1290413035    dec ax                                    ; 48
    1290513036    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1291713048    mov al, byte [bp-008h]                    ; 8a 46 f8
    1291813049    cmp AL, strict byte 035h                  ; 3c 35
    12919     jne short 08afah                          ; 75 06
     13050    jne short 08be4h                          ; 75 06
    1292013051    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    12921     jmp short 08b11h                          ; eb 17
     13052    jmp short 08bfbh                          ; eb 17
    1292213053    cmp AL, strict byte 0a0h                  ; 3c a0
    12923     jne short 08b0dh                          ; 75 0f
     13054    jne short 08bf7h                          ; 75 0f
    1292413055    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1292513056    les bx, [bp-00eh]                         ; c4 5e f2
    1292613057    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    12927     jmp short 08b11h                          ; eb 04
     13058    jmp short 08bfbh                          ; eb 04
    1292813059    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1292913060    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1293113062    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1293213063    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12933     call 087a3h                               ; e8 81 fc
     13064    call 0888dh                               ; e8 81 fc
    1293413065    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1293513066    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1293813069    add ax, 0026ah                            ; 05 6a 02
    1293913070    mov dx, cx                                ; 89 ca
    12940     call 09e8ah                               ; e8 53 13
     13071    call 09f74h                               ; e8 53 13
    1294113072    mov es, cx                                ; 8e c1
    1294213073    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1294313074    test al, al                               ; 84 c0
    12944     je short 08b46h                           ; 74 05
     13075    je short 08c30h                           ; 74 05
    1294513076    mov ax, strict word 00004h                ; b8 04 00
    12946     jmp short 08b48h                          ; eb 02
     13077    jmp short 08c32h                          ; eb 02
    1294713078    xor ah, ah                                ; 30 e4
    1294813079    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1295213083    pop bp                                    ; 5d
    1295313084    retn                                      ; c3
    12954 ahci_port_deinit_current_:                   ; 0xf8b50 LB 0x17f
     13085ahci_port_deinit_current_:                   ; 0xf8c3a LB 0x17f
    1295513086    push bp                                   ; 55
    1295613087    mov bp, sp                                ; 89 e5
     
    1296713098    mov byte [bp-00ah], al                    ; 88 46 f6
    1296813099    cmp AL, strict byte 0ffh                  ; 3c ff
    12969     je near 08cc6h                            ; 0f 84 52 01
     13100    je near 08db0h                            ; 0f 84 52 01
    1297013101    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1297113102    sal ax, 007h                              ; c1 e0 07
     
    1301013141    xchg dx, ax                               ; 92
    1301113142    test ax, 0c011h                           ; a9 11 c0
    13012     je short 08bd4h                           ; 74 04
     13143    je short 08cbeh                           ; 74 04
    1301313144    mov AL, strict byte 001h                  ; b0 01
    13014     jmp short 08bd6h                          ; eb 02
     13145    jmp short 08cc0h                          ; eb 02
    1301513146    xor al, al                                ; 30 c0
    1301613147    cmp AL, strict byte 001h                  ; 3c 01
    13017     je short 08ba8h                           ; 74 ce
     13148    je short 08c92h                           ; 74 ce
    1301813149    mov cx, strict word 00020h                ; b9 20 00
    1301913150    xor bx, bx                                ; 31 db
    1302013151    mov ax, di                                ; 89 f8
    1302113152    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13022     call 09f60h                               ; e8 79 13
     13153    call 0a050h                               ; e8 7f 13
    1302313154    lea ax, [di+00080h]                       ; 8d 85 80 00
    1302413155    mov cx, strict word 00040h                ; b9 40 00
    1302513156    xor bx, bx                                ; 31 db
    1302613157    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13027     call 09f60h                               ; e8 6a 13
     13158    call 0a050h                               ; e8 70 13
    1302813159    lea ax, [di+00200h]                       ; 8d 85 00 02
    1302913160    mov cx, strict word 00060h                ; b9 60 00
    1303013161    xor bx, bx                                ; 31 db
    1303113162    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13032     call 09f60h                               ; e8 5b 13
     13163    call 0a050h                               ; e8 61 13
    1303313164    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1303413165    sal ax, 007h                              ; c1 e0 07
     
    1313413265    pop bp                                    ; 5d
    1313513266    retn                                      ; c3
    13136 ahci_port_init_:                             ; 0xf8ccf LB 0x24a
     13267ahci_port_init_:                             ; 0xf8db9 LB 0x24a
    1313713268    push bp                                   ; 55
    1313813269    mov bp, sp                                ; 89 e5
     
    1314413275    mov word [bp-00ah], dx                    ; 89 56 f6
    1314513276    mov byte [bp-008h], bl                    ; 88 5e f8
    13146     call 08b50h                               ; e8 6d fe
     13277    call 08c3ah                               ; e8 6d fe
    1314713278    movzx ax, bl                              ; 0f b6 c3
    1314813279    sal ax, 007h                              ; c1 e0 07
     
    1319113322    xchg dx, ax                               ; 92
    1319213323    test ax, 0c011h                           ; a9 11 c0
    13193     je short 08d52h                           ; 74 04
     13324    je short 08e3ch                           ; 74 04
    1319413325    mov AL, strict byte 001h                  ; b0 01
    13195     jmp short 08d54h                          ; eb 02
     13326    jmp short 08e3eh                          ; eb 02
    1319613327    xor al, al                                ; 30 c0
    1319713328    cmp AL, strict byte 001h                  ; 3c 01
    13198     je short 08d1eh                           ; 74 c6
     13329    je short 08e08h                           ; 74 c6
    1319913330    mov cx, strict word 00020h                ; b9 20 00
    1320013331    xor bx, bx                                ; 31 db
    1320113332    mov ax, si                                ; 89 f0
    1320213333    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13203     call 09f60h                               ; e8 fb 11
     13334    call 0a050h                               ; e8 01 12
    1320413335    lea ax, [si+00080h]                       ; 8d 84 80 00
    1320513336    mov cx, strict word 00040h                ; b9 40 00
    1320613337    xor bx, bx                                ; 31 db
    1320713338    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13208     call 09f60h                               ; e8 ec 11
     13339    call 0a050h                               ; e8 f2 11
    1320913340    lea di, [si+00200h]                       ; 8d bc 00 02
    1321013341    mov cx, strict word 00060h                ; b9 60 00
     
    1321213343    mov ax, di                                ; 89 f8
    1321313344    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13214     call 09f60h                               ; e8 db 11
     13345    call 0a050h                               ; e8 e1 11
    1321513346    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    1321613347    sal bx, 007h                              ; c1 e3 07
     
    1322913360    mov ax, di                                ; 89 f8
    1323013361    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13231     call 08785h                               ; e8 d3 f9
     13362    call 0886fh                               ; e8 d3 f9
    1323213363    mov es, [bp-00ah]                         ; 8e 46 f6
    1323313364    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1327413405    mov ax, si                                ; 89 f0
    1327513406    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13276     call 08785h                               ; e8 67 f9
     13407    call 0886fh                               ; e8 67 f9
    1327713408    mov es, [bp-00ah]                         ; 8e 46 f6
    1327813409    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1337913510    pop bp                                    ; 5d
    1338013511    retn                                      ; c3
    13381 @ahci_read_sectors:                          ; 0xf8f19 LB 0xa6
     13512@ahci_read_sectors:                          ; 0xf9003 LB 0xa6
    1338213513    push bp                                   ; 55
    1338313514    mov bp, sp                                ; 89 e5
     
    1338913520    sub di, strict byte 0000ch                ; 83 ef 0c
    1339013521    cmp di, strict byte 00004h                ; 83 ff 04
    13391     jbe short 08f3eh                          ; 76 0f
     13522    jbe short 09028h                          ; 76 0f
    1339213523    push di                                   ; 57
    13393     push 00c62h                               ; 68 62 0c
    1339413524    push 00c74h                               ; 68 74 0c
     13525    push 00c86h                               ; 68 86 0c
    1339513526    push strict byte 00007h                   ; 6a 07
    13396     call 019dah                               ; e8 9f 8a
     13527    call 01a6bh                               ; e8 46 8a
    1339713528    add sp, strict byte 00008h                ; 83 c4 08
    1339813529    xor bx, bx                                ; 31 db
     
    1340813539    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
    1340913540    xor ax, ax                                ; 31 c0
    13410     call 08ccfh                               ; e8 65 fd
     13541    call 08db9h                               ; e8 65 fd
    1341113542    mov bx, strict word 00025h                ; bb 25 00
    1341213543    mov ax, si                                ; 89 f0
    1341313544    mov dx, word [bp+006h]                    ; 8b 56 06
    13414     call 088eeh                               ; e8 79 f9
     13545    call 089d8h                               ; e8 79 f9
    1341513546    mov word [bp-006h], ax                    ; 89 46 fa
    1341613547    mov es, [bp+006h]                         ; 8e 46 06
     
    1344113572    pop bp                                    ; 5d
    1344213573    retn 00004h                               ; c2 04 00
    13443 @ahci_write_sectors:                         ; 0xf8fbf LB 0x84
     13574@ahci_write_sectors:                         ; 0xf90a9 LB 0x84
    1344413575    push bp                                   ; 55
    1344513576    mov bp, sp                                ; 89 e5
     
    1345213583    sub dx, strict byte 0000ch                ; 83 ea 0c
    1345313584    cmp dx, strict byte 00004h                ; 83 fa 04
    13454     jbe short 08fe8h                          ; 76 0f
     13585    jbe short 090d2h                          ; 76 0f
    1345513586    push dx                                   ; 52
    13456     push 00c93h                               ; 68 93 0c
    13457     push 00c74h                               ; 68 74 0c
     13587    push 00ca5h                               ; 68 a5 0c
     13588    push 00c86h                               ; 68 86 0c
    1345813589    push strict byte 00007h                   ; 6a 07
    13459     call 019dah                               ; e8 f5 89
     13590    call 01a6bh                               ; e8 9c 89
    1346013591    add sp, strict byte 00008h                ; 83 c4 08
    1346113592    xor bx, bx                                ; 31 db
     
    1347113602    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1347213603    xor ax, ax                                ; 31 c0
    13473     call 08ccfh                               ; e8 bd fc
     13604    call 08db9h                               ; e8 bd fc
    1347413605    mov bx, strict word 00035h                ; bb 35 00
    1347513606    mov ax, si                                ; 89 f0
    1347613607    mov dx, cx                                ; 89 ca
    13477     call 088eeh                               ; e8 d2 f8
     13608    call 089d8h                               ; e8 d2 f8
    1347813609    mov dx, ax                                ; 89 c2
    1347913610    mov es, cx                                ; 8e c1
     
    1349013621    pop bp                                    ; 5d
    1349113622    retn 00004h                               ; c2 04 00
    13492 ahci_cmd_packet_:                            ; 0xf9043 LB 0x183
     13623ahci_cmd_packet_:                            ; 0xf912d LB 0x183
    1349313624    push bp                                   ; 55
    1349413625    mov bp, sp                                ; 89 e5
     
    1350213633    mov dx, strict word 0000eh                ; ba 0e 00
    1350313634    mov ax, strict word 00040h                ; b8 40 00
    13504     call 016d4h                               ; e8 76 86
     13635    call 01765h                               ; e8 1d 86
    1350513636    mov si, 00122h                            ; be 22 01
    1350613637    mov word [bp-008h], ax                    ; 89 46 f8
    1350713638    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    13508     jne short 09089h                          ; 75 1f
    13509     mov bx, 00da0h                            ; bb a0 0d
     13639    jne short 09173h                          ; 75 1f
     13640    mov bx, 00db2h                            ; bb b2 0d
    1351013641    mov cx, ds                                ; 8c d9
    1351113642    mov ax, strict word 00004h                ; b8 04 00
    13512     call 01999h                               ; e8 24 89
    13513     push 00ca6h                               ; 68 a6 0c
    13514     push 00cb6h                               ; 68 b6 0c
     13643    call 01a2ah                               ; e8 cb 88
     13644    push 00cb8h                               ; 68 b8 0c
     13645    push 00cc8h                               ; 68 c8 0c
    1351513646    push strict byte 00004h                   ; 6a 04
    13516     call 019dah                               ; e8 5a 89
     13647    call 01a6bh                               ; e8 01 89
    1351713648    add sp, strict byte 00006h                ; 83 c4 06
    1351813649    mov ax, strict word 00001h                ; b8 01 00
    13519     jmp near 091bdh                           ; e9 34 01
     13650    jmp near 092a7h                           ; e9 34 01
    1352013651    test byte [bp+004h], 001h                 ; f6 46 04 01
    13521     jne short 09083h                          ; 75 f4
     13652    jne short 0916dh                          ; 75 f4
    1352213653    mov ax, word [bp+006h]                    ; 8b 46 06
    1352313654    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1352513656    sal ax, 1                                 ; d1 e0
    1352613657    rcl dx, 1                                 ; d1 d2
    13527     loop 09098h                               ; e2 fa
     13658    loop 09182h                               ; e2 fa
    1352813659    mov es, [bp-008h]                         ; 8e 46 f8
    1352913660    mov word [es:si], ax                      ; 26 89 04
     
    1353913670    mov dx, word [bp+008h]                    ; 8b 56 08
    1354013671    xor cx, cx                                ; 31 c9
    13541     call 09f00h                               ; e8 32 0e
     13672    call 09ff0h                               ; e8 38 0e
    1354213673    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1354313674    xor di, di                                ; 31 ff
     
    1355613687    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1355713688    xor ax, ax                                ; 31 c0
    13558     call 08ccfh                               ; e8 c5 fb
     13689    call 08db9h                               ; e8 c5 fb
    1355913690    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1356013691    push ax                                   ; 50
     
    1356313694    mov ax, 000c0h                            ; b8 c0 00
    1356413695    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13565     call 09f70h                               ; e8 52 0e
     13696    call 0a060h                               ; e8 58 0e
    1356613697    mov es, [bp-008h]                         ; 8e 46 f8
    1356713698    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1357013701    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1357113702    test ax, ax                               ; 85 c0
    13572     je short 0915ch                           ; 74 27
     13703    je short 09246h                           ; 74 27
    1357313704    dec ax                                    ; 48
    1357413705    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1358313714    mov ax, si                                ; 89 f0
    1358413715    mov dx, word [bp-008h]                    ; 8b 56 f8
    13585     call 088eeh                               ; e8 87 f7
     13716    call 089d8h                               ; e8 87 f7
    1358613717    les bx, [bp-00eh]                         ; c4 5e f2
    1358713718    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     
    1361013741    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1361113742    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    13612     jne short 091bbh                          ; 75 05
     13743    jne short 092a5h                          ; 75 05
    1361313744    mov ax, strict word 00004h                ; b8 04 00
    13614     jmp short 091bdh                          ; eb 02
     13745    jmp short 092a7h                          ; eb 02
    1361513746    xor ax, ax                                ; 31 c0
    1361613747    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1361913750    pop bp                                    ; 5d
    1362013751    retn 0000ch                               ; c2 0c 00
    13621 ahci_port_detect_device_:                    ; 0xf91c6 LB 0x4b1
     13752ahci_port_detect_device_:                    ; 0xf92b0 LB 0x4b1
    1362213753    push bp                                   ; 55
    1362313754    mov bp, sp                                ; 89 e5
     
    1363113762    movzx di, bl                              ; 0f b6 fb
    1363213763    mov bx, di                                ; 89 fb
    13633     call 08ccfh                               ; e8 ef fa
     13764    call 08db9h                               ; e8 ef fa
    1363413765    mov dx, strict word 0000eh                ; ba 0e 00
    1363513766    mov ax, strict word 00040h                ; b8 40 00
    13636     call 016d4h                               ; e8 eb 84
     13767    call 01765h                               ; e8 92 84
    1363713768    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
    1363813769    mov word [bp-00eh], ax                    ; 89 46 f2
     
    1370313834    mov bx, strict word 0000fh                ; bb 0f 00
    1370413835    xor cx, cx                                ; 31 c9
    13705     call 0876ah                               ; e8 d7 f4
     13836    call 08854h                               ; e8 d7 f4
    1370613837    test ax, ax                               ; 85 c0
    13707     je near 0966fh                            ; 0f 84 d6 03
     13838    je near 09759h                            ; 0f 84 d6 03
    1370813839    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1370913840    sal ax, 007h                              ; c1 e0 07
     
    1373313864    mov bx, strict word 0000fh                ; bb 0f 00
    1373413865    xor cx, cx                                ; 31 c9
    13735     call 0876ah                               ; e8 8b f4
     13866    call 08854h                               ; e8 8b f4
    1373613867    cmp ax, strict word 00001h                ; 3d 01 00
    13737     je short 09299h                           ; 74 b5
     13868    je short 09383h                           ; 74 b5
    1373813869    push strict byte 00000h                   ; 6a 00
    1373913870    mov bx, strict word 0000fh                ; bb 0f 00
     
    1374113872    mov ax, di                                ; 89 f8
    1374213873    mov dx, word [bp-022h]                    ; 8b 56 de
    13743     call 0876ah                               ; e8 77 f4
     13874    call 08854h                               ; e8 77 f4
    1374413875    cmp ax, strict word 00003h                ; 3d 03 00
    13745     jne near 0966fh                           ; 0f 85 75 03
     13876    jne near 09759h                           ; 0f 85 75 03
    1374613877    mov ax, word [bp-018h]                    ; 8b 46 e8
    1374713878    add ax, 00130h                            ; 05 30 01
     
    1377013901    mov byte [bp-008h], al                    ; 88 46 f8
    1377113902    cmp AL, strict byte 004h                  ; 3c 04
    13772     jnc near 0966fh                           ; 0f 83 2f 03
     13903    jnc near 09759h                           ; 0f 83 2f 03
    1377313904    mov ax, word [bp-018h]                    ; 8b 46 e8
    1377413905    add ax, 00118h                            ; 05 18 01
     
    1382213953    add cl, 00ch                              ; 80 c1 0c
    1382313954    test dx, dx                               ; 85 d2
    13824     jne near 095c5h                           ; 0f 85 0d 02
     13955    jne near 096afh                           ; 0f 85 0d 02
    1382513956    cmp di, 00101h                            ; 81 ff 01 01
    13826     jne near 095c5h                           ; 0f 85 05 02
     13957    jne near 096afh                           ; 0f 85 05 02
    1382713958    les bx, [bp-010h]                         ; c4 5e f0
    1382813959    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     
    1383813969    mov ax, word [bp-010h]                    ; 8b 46 f0
    1383913970    mov dx, es                                ; 8c c2
    13840     call 088eeh                               ; e8 fa f4
     13971    call 089d8h                               ; e8 fa f4
    1384113972    mov byte [bp-00ch], cl                    ; 88 4e f4
    1384213973    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
     
    1385513986    mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00
    1385613987    cmp di, 00fffh                            ; 81 ff ff 0f
    13857     jne short 0944dh                          ; 75 1e
     13988    jne short 09537h                          ; 75 1e
    1385813989    cmp dx, strict byte 0ffffh                ; 83 fa ff
    13859     jne short 0944dh                          ; 75 19
     13990    jne short 09537h                          ; 75 19
    1386013991    mov dx, word [bp-0015ch]                  ; 8b 96 a4 fe
    1386113992    mov word [bp-014h], dx                    ; 89 56 ec
     
    1389414025    mov al, byte [bp-008h]                    ; 8a 46 f8
    1389514026    cmp AL, strict byte 001h                  ; 3c 01
    13896     jc short 094c6h                           ; 72 0c
    13897     jbe short 094ceh                          ; 76 12
     14027    jc short 095b0h                           ; 72 0c
     14028    jbe short 095b8h                          ; 76 12
    1389814029    cmp AL, strict byte 003h                  ; 3c 03
    13899     je short 094d6h                           ; 74 16
     14030    je short 095c0h                           ; 74 16
    1390014031    cmp AL, strict byte 002h                  ; 3c 02
    13901     je short 094d2h                           ; 74 0e
    13902     jmp short 0951fh                          ; eb 59
     14032    je short 095bch                           ; 74 0e
     14033    jmp short 09609h                          ; eb 59
    1390314034    test al, al                               ; 84 c0
    13904     jne short 0951fh                          ; 75 55
     14035    jne short 09609h                          ; 75 55
    1390514036    mov DL, strict byte 040h                  ; b2 40
    13906     jmp short 094d8h                          ; eb 0a
     14037    jmp short 095c2h                          ; eb 0a
    1390714038    mov DL, strict byte 048h                  ; b2 48
    13908     jmp short 094d8h                          ; eb 06
     14039    jmp short 095c2h                          ; eb 06
    1390914040    mov DL, strict byte 050h                  ; b2 50
    13910     jmp short 094d8h                          ; eb 02
     14041    jmp short 095c2h                          ; eb 02
    1391114042    mov DL, strict byte 058h                  ; b2 58
    1391214043    mov al, dl                                ; 88 d0
     
    1391414045    movzx bx, al                              ; 0f b6 d8
    1391514046    mov ax, bx                                ; 89 d8
    13916     call 01714h                               ; e8 30 82
     14047    call 017a5h                               ; e8 d7 81
    1391714048    test al, al                               ; 84 c0
    13918     je short 0951fh                           ; 74 37
     14049    je short 09609h                           ; 74 37
    1391914050    mov al, dl                                ; 88 d0
    1392014051    db  0feh, 0c0h
    1392114052    ; inc al                                    ; fe c0
    1392214053    xor ah, ah                                ; 30 e4
    13923     call 01714h                               ; e8 23 82
     14054    call 017a5h                               ; e8 ca 81
    1392414055    xor ah, ah                                ; 30 e4
    1392514056    mov si, ax                                ; 89 c6
    1392614057    sal si, 008h                              ; c1 e6 08
    1392714058    movzx ax, dl                              ; 0f b6 c2
    13928     call 01714h                               ; e8 16 82
     14059    call 017a5h                               ; e8 bd 81
    1392914060    xor ah, ah                                ; 30 e4
    1393014061    add ax, si                                ; 01 f0
     
    1393314064    add AL, strict byte 002h                  ; 04 02
    1393414065    xor ah, ah                                ; 30 e4
    13935     call 01714h                               ; e8 06 82
     14066    call 017a5h                               ; e8 ad 81
    1393614067    xor ah, ah                                ; 30 e4
    1393714068    mov word [bp-02ah], ax                    ; 89 46 d6
    1393814069    mov ax, bx                                ; 89 d8
    13939     call 01714h                               ; e8 fc 81
     14070    call 017a5h                               ; e8 a3 81
    1394014071    xor ah, ah                                ; 30 e4
    1394114072    mov word [bp-026h], ax                    ; 89 46 da
    13942     jmp short 0952fh                          ; eb 10
     14073    jmp short 09619h                          ; eb 10
    1394314074    push dword [bp-016h]                      ; 66 ff 76 ea
    1394414075    push di                                   ; 57
     
    1394614077    mov dx, ss                                ; 8c d2
    1394714078    lea ax, [bp-02ah]                         ; 8d 46 d6
    13948     call 059d6h                               ; e8 a7 c4
    13949     mov bx, 00da0h                            ; bb a0 0d
     14079    call 05ac0h                               ; e8 a7 c4
     14080    mov bx, 00db2h                            ; bb b2 0d
    1395014081    mov cx, ds                                ; 8c d9
    1395114082    mov ax, strict word 00004h                ; b8 04 00
    13952     call 01999h                               ; e8 5f 84
     14083    call 01a2ah                               ; e8 06 84
    1395314084    push dword [bp-016h]                      ; 66 ff 76 ea
    1395414085    push di                                   ; 57
     
    1396714098    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1396814099    push ax                                   ; 50
    13969     push 00cd6h                               ; 68 d6 0c
     14100    push 00ce8h                               ; 68 e8 0c
    1397014101    push strict byte 00004h                   ; 6a 04
    13971     call 019dah                               ; e8 71 84
     14102    call 01a6bh                               ; e8 18 84
    1397214103    add sp, strict byte 0001ch                ; 83 c4 1c
    1397314104    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    1399814129    mov dx, strict word 00075h                ; ba 75 00
    1399914130    mov ax, strict word 00040h                ; b8 40 00
    14000     call 016b8h                               ; e8 04 81
     14131    call 01749h                               ; e8 ab 80
    1400114132    db  0feh, 0c0h
    1400214133    ; inc al                                    ; fe c0
     
    1400414135    mov dx, strict word 00075h                ; ba 75 00
    1400514136    mov ax, strict word 00040h                ; b8 40 00
    14006     call 016c6h                               ; e8 04 81
    14007     jmp near 09661h                           ; e9 9c 00
     14137    call 01757h                               ; e8 ab 80
     14138    jmp near 0974bh                           ; e9 9c 00
    1400814139    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14009     jne near 09661h                           ; 0f 85 94 00
     14140    jne near 0974bh                           ; 0f 85 94 00
    1401014141    cmp di, 00101h                            ; 81 ff 01 01
    14011     jne near 09661h                           ; 0f 85 8c 00
     14142    jne near 0974bh                           ; 0f 85 8c 00
    1401214143    les bx, [bp-010h]                         ; c4 5e f0
    1401314144    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     
    1402314154    mov ax, word [bp-010h]                    ; 8b 46 f0
    1402414155    mov dx, es                                ; 8c c2
    14025     call 088eeh                               ; e8 e5 f2
     14156    call 089d8h                               ; e8 e5 f2
    1402614157    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    1402714158    db  00fh, 095h, 0c0h
     
    1406014191    pop bp                                    ; 5d
    1406114192    retn                                      ; c3
    14062 ahci_mem_alloc_:                             ; 0xf9677 LB 0x43
     14193ahci_mem_alloc_:                             ; 0xf9761 LB 0x43
    1406314194    push bp                                   ; 55
    1406414195    mov bp, sp                                ; 89 e5
     
    1407014201    mov dx, 00413h                            ; ba 13 04
    1407114202    xor ax, ax                                ; 31 c0
    14072     call 016d4h                               ; e8 4d 80
     14203    call 01765h                               ; e8 f4 7f
    1407314204    test ax, ax                               ; 85 c0
    14074     je short 096b0h                           ; 74 25
     14205    je short 0979ah                           ; 74 25
    1407514206    dec ax                                    ; 48
    1407614207    mov bx, ax                                ; 89 c3
     
    1407914210    sal ax, 1                                 ; d1 e0
    1408014211    rcl dx, 1                                 ; d1 d2
    14081     loop 09693h                               ; e2 fa
     14212    loop 0977dh                               ; e2 fa
    1408214213    mov si, ax                                ; 89 c6
    1408314214    mov di, dx                                ; 89 d7
     
    1408514216    shr di, 1                                 ; d1 ef
    1408614217    rcr si, 1                                 ; d1 de
    14087     loop 096a0h                               ; e2 fa
     14218    loop 0978ah                               ; e2 fa
    1408814219    mov dx, 00413h                            ; ba 13 04
    1408914220    xor ax, ax                                ; 31 c0
    14090     call 016e2h                               ; e8 34 80
     14221    call 01773h                               ; e8 db 7f
    1409114222    mov ax, si                                ; 89 f0
    1409214223    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1409814229    pop bp                                    ; 5d
    1409914230    retn                                      ; c3
    14100 ahci_hba_init_:                              ; 0xf96ba LB 0x166
     14231ahci_hba_init_:                              ; 0xf97a4 LB 0x166
    1410114232    push bp                                   ; 55
    1410214233    mov bp, sp                                ; 89 e5
     
    1411014241    mov dx, strict word 0000eh                ; ba 0e 00
    1411114242    mov ax, strict word 00040h                ; b8 40 00
    14112     call 016d4h                               ; e8 04 80
     14243    call 01765h                               ; e8 ab 7f
    1411314244    mov bx, 00122h                            ; bb 22 01
    1411414245    mov di, ax                                ; 89 c7
     
    1412714258    shr eax, 010h                             ; 66 c1 e8 10
    1412814259    xchg dx, ax                               ; 92
    14129     call 09677h                               ; e8 83 ff
     14260    call 09761h                               ; e8 83 ff
    1413014261    mov word [bp-010h], ax                    ; 89 46 f0
    1413114262    test ax, ax                               ; 85 c0
    14132     je near 097ffh                            ; 0f 84 02 01
     14263    je near 098e9h                            ; 0f 84 02 01
    1413314264    mov ax, word [bp-010h]                    ; 8b 46 f0
    1413414265    mov es, di                                ; 8e c7
     
    1418014311    xchg dx, ax                               ; 92
    1418114312    test AL, strict byte 001h                 ; a8 01
    14182     jne short 09753h                          ; 75 de
     14313    jne short 0983dh                          ; 75 de
    1418314314    xor ax, ax                                ; 31 c0
    1418414315    xor cx, cx                                ; 31 c9
     
    1419814329    mov bx, strict word 0001fh                ; bb 1f 00
    1419914330    xor cx, cx                                ; 31 c9
    14200     call 0876ah                               ; e8 d1 ef
     14331    call 08854h                               ; e8 d1 ef
    1420114332    db  0feh, 0c0h
    1420214333    ; inc al                                    ; fe c0
    1420314334    mov byte [bp-00eh], al                    ; 88 46 f2
    1420414335    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    14205     jmp short 097c4h                          ; eb 20
     14336    jmp short 098aeh                          ; eb 20
    1420614337    xor al, al                                ; 30 c0
    1420714338    test al, al                               ; 84 c0
    14208     je short 097bbh                           ; 74 11
     14339    je short 098a5h                           ; 74 11
    1420914340    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    1421014341    xor ax, ax                                ; 31 c0
    1421114342    mov dx, word [bp-010h]                    ; 8b 56 f0
    14212     call 091c6h                               ; e8 10 fa
     14343    call 092b0h                               ; e8 10 fa
    1421314344    dec byte [bp-00eh]                        ; fe 4e f2
    14214     je short 097fdh                           ; 74 42
     14345    je short 098e7h                           ; 74 42
    1421514346    inc byte [bp-00ch]                        ; fe 46 f4
    1421614347    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    14217     jnc short 097fdh                          ; 73 39
     14348    jnc short 098e7h                          ; 73 39
    1421814349    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    1421914350    mov bx, strict word 00001h                ; bb 01 00
    1422014351    xor di, di                                ; 31 ff
    14221     jcxz 097d5h                               ; e3 06
     14352    jcxz 098bfh                               ; e3 06
    1422214353    sal bx, 1                                 ; d1 e3
    1422314354    rcl di, 1                                 ; d1 d7
    14224     loop 097cfh                               ; e2 fa
     14355    loop 098b9h                               ; e2 fa
    1422514356    mov ax, strict word 0000ch                ; b8 0c 00
    1422614357    xor cx, cx                                ; 31 c9
     
    1423814369    xchg dx, ax                               ; 92
    1423914370    test dx, di                               ; 85 fa
    14240     jne short 097f9h                          ; 75 04
     14371    jne short 098e3h                          ; 75 04
    1424114372    test ax, bx                               ; 85 d8
    14242     je short 097a4h                           ; 74 ab
     14373    je short 0988eh                           ; 74 ab
    1424314374    mov AL, strict byte 001h                  ; b0 01
    14244     jmp short 097a6h                          ; eb a9
     14375    jmp short 09890h                          ; eb a9
    1424514376    xor ax, ax                                ; 31 c0
    1424614377    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1425214383    pop bp                                    ; 5d
    1425314384    retn                                      ; c3
    14254     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0efh, 098h, 0cdh, 098h, 0d3h, 098h, 0d9h, 098h, 0dfh
    14255     db  098h, 0e5h, 098h, 0ebh, 098h, 0efh, 098h
    14256 _ahci_init:                                  ; 0xf9820 LB 0xfe
     14385    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0d9h, 099h, 0b7h, 099h, 0bdh, 099h, 0c3h, 099h, 0c9h
     14386    db  099h, 0cfh, 099h, 0d5h, 099h, 0d9h, 099h
     14387_ahci_init:                                  ; 0xf990a LB 0xfe
    1425714388    push bp                                   ; 55
    1425814389    mov bp, sp                                ; 89 e5
     
    1426214393    mov ax, 00601h                            ; b8 01 06
    1426314394    mov dx, strict word 00001h                ; ba 01 00
    14264     call 09d3eh                               ; e8 0d 05
     14395    call 09e28h                               ; e8 0d 05
    1426514396    mov dx, ax                                ; 89 c2
    1426614397    cmp ax, strict word 0ffffh                ; 3d ff ff
    14267     je near 09917h                            ; 0f 84 dd 00
     14398    je near 09a01h                            ; 0f 84 dd 00
    1426814399    xor al, al                                ; 30 c0
    1426914400    shr ax, 008h                              ; c1 e8 08
     
    1427314404    xor ah, ah                                ; 30 e4
    1427414405    mov bx, strict word 00034h                ; bb 34 00
    14275     call 09d69h                               ; e8 1a 05
     14406    call 09e53h                               ; e8 1a 05
    1427614407    mov cl, al                                ; 88 c1
    1427714408    test cl, cl                               ; 84 c9
    14278     je short 09878h                           ; 74 23
     14409    je short 09962h                           ; 74 23
    1427914410    movzx bx, cl                              ; 0f b6 d9
    1428014411    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1428214413    mov dx, di                                ; 89 fa
    1428314414    mov ax, si                                ; 89 f0
    14284     call 09d69h                               ; e8 02 05
     14415    call 09e53h                               ; e8 02 05
    1428514416    cmp AL, strict byte 012h                  ; 3c 12
    14286     je short 09878h                           ; 74 0d
     14417    je short 09962h                           ; 74 0d
    1428714418    mov al, cl                                ; 88 c8
    1428814419    db  0feh, 0c0h
     
    1429114422    mov dx, di                                ; 89 fa
    1429214423    mov ax, si                                ; 89 f0
    14293     jmp short 0984ch                          ; eb d4
     14424    jmp short 09936h                          ; eb d4
    1429414425    test cl, cl                               ; 84 c9
    14295     je near 09917h                            ; 0f 84 99 00
     14426    je near 09a01h                            ; 0f 84 99 00
    1429614427    add cl, 002h                              ; 80 c1 02
    1429714428    movzx bx, cl                              ; 0f b6 d9
     
    1430014431    mov dx, di                                ; 89 fa
    1430114432    mov ax, si                                ; 89 f0
    14302     call 09d69h                               ; e8 d6 04
     14433    call 09e53h                               ; e8 d6 04
    1430314434    cmp AL, strict byte 010h                  ; 3c 10
    14304     jne near 09917h                           ; 0f 85 7e 00
     14435    jne near 09a01h                           ; 0f 85 7e 00
    1430514436    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1430614437    mov al, cl                                ; 88 c8
     
    1430914440    mov dx, di                                ; 89 fa
    1431014441    mov ax, si                                ; 89 f0
    14311     call 09d8dh                               ; e8 e2 04
     14442    call 09e77h                               ; e8 e2 04
    1431214443    mov dx, ax                                ; 89 c2
    1431314444    and ax, strict word 0000fh                ; 25 0f 00
    1431414445    sub ax, strict word 00004h                ; 2d 04 00
    1431514446    cmp ax, strict word 0000bh                ; 3d 0b 00
    14316     jnbe short 098efh                         ; 77 37
     14447    jnbe short 099d9h                         ; 77 37
    1431714448    push CS                                   ; 0e
    1431814449    pop ES                                    ; 07
    1431914450    mov cx, strict word 00008h                ; b9 08 00
    14320     mov di, 09809h                            ; bf 09 98
     14451    mov di, 098f3h                            ; bf f3 98
    1432114452    repne scasb                               ; f2 ae
    1432214453    sal cx, 1                                 ; d1 e1
    1432314454    mov di, cx                                ; 89 cf
    14324     mov ax, word [cs:di-067f0h]               ; 2e 8b 85 10 98
     14455    mov ax, word [cs:di-06706h]               ; 2e 8b 85 fa 98
    1432514456    jmp ax                                    ; ff e0
    1432614457    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    14327     jmp short 098efh                          ; eb 1c
     14458    jmp short 099d9h                          ; eb 1c
    1432814459    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    14329     jmp short 098efh                          ; eb 16
     14460    jmp short 099d9h                          ; eb 16
    1433014461    mov byte [bp-006h], 018h                  ; c6 46 fa 18
    14331     jmp short 098efh                          ; eb 10
     14462    jmp short 099d9h                          ; eb 10
    1433214463    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
    14333     jmp short 098efh                          ; eb 0a
     14464    jmp short 099d9h                          ; eb 0a
    1433414465    mov byte [bp-006h], 020h                  ; c6 46 fa 20
    14335     jmp short 098efh                          ; eb 04
     14466    jmp short 099d9h                          ; eb 04
    1433614467    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1433714468    mov si, dx                                ; 89 d6
     
    1434014471    mov al, byte [bp-006h]                    ; 8a 46 fa
    1434114472    test al, al                               ; 84 c0
    14342     je short 09917h                           ; 74 19
     14473    je short 09a01h                           ; 74 19
    1434314474    movzx bx, al                              ; 0f b6 d8
    1434414475    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    1434514476    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    14346     call 09dafh                               ; e8 a3 04
     14477    call 09e99h                               ; e8 a3 04
    1434714478    test AL, strict byte 001h                 ; a8 01
    14348     je short 09917h                           ; 74 07
     14479    je short 09a01h                           ; 74 07
    1434914480    and AL, strict byte 0f0h                  ; 24 f0
    1435014481    add ax, si                                ; 01 f0
    14351     call 096bah                               ; e8 a3 fd
     14482    call 097a4h                               ; e8 a3 fd
    1435214483    lea sp, [bp-004h]                         ; 8d 66 fc
    1435314484    pop di                                    ; 5f
     
    1435514486    pop bp                                    ; 5d
    1435614487    retn                                      ; c3
    14357 apm_out_str_:                                ; 0xf991e LB 0x39
     14488apm_out_str_:                                ; 0xf9a08 LB 0x39
    1435814489    push bp                                   ; 55
    1435914490    mov bp, sp                                ; 89 e5
     
    1436114492    mov bx, ax                                ; 89 c3
    1436214493    cmp byte [bx], 000h                       ; 80 3f 00
    14363     je short 09933h                           ; 74 0a
     14494    je short 09a1dh                           ; 74 0a
    1436414495    mov al, byte [bx]                         ; 8a 07
    1436514496    out DX, AL                                ; ee
     
    1436814499    db  00ah, 0c0h
    1436914500    ; or al, al                                 ; 0a c0
    14370     jne short 0992bh                          ; 75 f8
     14501    jne short 09a15h                          ; 75 f8
    1437114502    lea sp, [bp-002h]                         ; 8d 66 fe
    1437214503    pop bx                                    ; 5b
    1437314504    pop bp                                    ; 5d
    1437414505    retn                                      ; c3
    14375     jp short 098d4h                           ; 7a 99
    14376     inc si                                    ; 46
    14377     call far 099a7h:0998ch                    ; 9a 8c 99 a7 99
    14378     inc si                                    ; 46
    14379     call far 09a46h:099d2h                    ; 9a d2 99 46 9a
    14380     xlatb                                     ; d7
    14381     cwd                                       ; 99
    14382     sbb bx, word [bp+si-065e5h]               ; 1b 9a 1b 9a
    14383     sbb bx, word [bp+si-065eah]               ; 1b 9a 16 9a
    14384     sbb bx, word [bp+si-065e5h]               ; 1b 9a 1b 9a
    14385     db  00fh
     14506    db  064h, 09ah, 030h, 09bh, 076h, 09ah
     14507    ; fs call far fs:09a76h:09b30h              ; 64 9a 30 9b 76 9a
     14508    xchg cx, ax                               ; 91
     14509    call far 09abch:09b30h                    ; 9a 30 9b bc 9a
     14510    xor byte [bp+di-0653fh], bl               ; 30 9b c1 9a
     14511    add ax, 0059bh                            ; 05 9b 05
     14512    wait                                      ; 9b
     14513    add ax, 0009bh                            ; 05 9b 00
     14514    wait                                      ; 9b
     14515    add ax, 0059bh                            ; 05 9b 05
     14516    wait                                      ; 9b
     14517    stc                                       ; f9
    1438614518    db  09ah
    14387 _apm_function:                               ; 0xf9957 LB 0xf5
     14519_apm_function:                               ; 0xf9a41 LB 0xf5
    1438814520    push bp                                   ; 55
    1438914521    mov bp, sp                                ; 89 e5
     
    1439314525    xor ah, ah                                ; 30 e4
    1439414526    cmp ax, strict word 0000eh                ; 3d 0e 00
    14395     jnbe near 09a1bh                          ; 0f 87 b0 00
     14527    jnbe near 09b05h                          ; 0f 87 b0 00
    1439614528    mov bx, ax                                ; 89 c3
    1439714529    add bx, ax                                ; 01 c3
    1439814530    mov dx, word [bp+018h]                    ; 8b 56 18
    1439914531    or dl, 001h                               ; 80 ca 01
    14400     jmp word [cs:bx-066c7h]                   ; 2e ff a7 39 99
     14532    jmp word [cs:bx-065ddh]                   ; 2e ff a7 23 9a
    1440114533    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1440214534    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1440314535    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    14404     jmp near 09a46h                           ; e9 ba 00
     14536    jmp near 09b30h                           ; e9 ba 00
    1440514537    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    14406     mov word [bp+00ch], 09fe4h                ; c7 46 0c e4 9f
     14538    mov word [bp+00ch], 0a0d4h                ; c7 46 0c d4 a0
    1440714539    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1440814540    mov ax, strict word 0fff0h                ; b8 f0 ff
    1440914541    mov word [bp+006h], ax                    ; 89 46 06
    1441014542    mov word [bp+004h], ax                    ; 89 46 04
    14411     jmp near 09a46h                           ; e9 9f 00
     14543    jmp near 09b30h                           ; e9 9f 00
    1441214544    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1441314545    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1442214554    mov si, ax                                ; 89 c6
    1442314555    sal esi, 010h                             ; 66 c1 e6 10
    14424     jmp near 09a46h                           ; e9 74 00
     14556    jmp near 09b30h                           ; e9 74 00
    1442514557    sti                                       ; fb
    1442614558    hlt                                       ; f4
    14427     jmp near 09a46h                           ; e9 6f 00
     14559    jmp near 09b30h                           ; e9 6f 00
    1442814560    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    14429     je short 099fch                           ; 74 1f
     14561    je short 09ae6h                           ; 74 1f
    1443014562    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    14431     je short 099f4h                           ; 74 11
     14563    je short 09adeh                           ; 74 11
    1443214564    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    14433     jne short 09a04h                          ; 75 1b
     14565    jne short 09aeeh                          ; 75 1b
    1443414566    mov dx, 0040fh                            ; ba 0f 04
    14435     mov ax, 00d10h                            ; b8 10 0d
    14436     call 0991eh                               ; e8 2c ff
    14437     jmp short 09a46h                          ; eb 52
     14567    mov ax, 00d22h                            ; b8 22 0d
     14568    call 09a08h                               ; e8 2c ff
     14569    jmp short 09b30h                          ; eb 52
    1443814570    mov dx, 0040fh                            ; ba 0f 04
    14439     mov ax, 00d18h                            ; b8 18 0d
    14440     jmp short 099efh                          ; eb f3
     14571    mov ax, 00d2ah                            ; b8 2a 0d
     14572    jmp short 09ad9h                          ; eb f3
    1444114573    mov dx, 0040fh                            ; ba 0f 04
    14442     mov ax, 00d20h                            ; b8 20 0d
    14443     jmp short 099efh                          ; eb eb
     14574    mov ax, 00d32h                            ; b8 32 0d
     14575    jmp short 09ad9h                          ; eb eb
    1444414576    or ah, 00ah                               ; 80 cc 0a
    1444514577    mov word [bp+012h], ax                    ; 89 46 12
    1444614578    mov word [bp+018h], dx                    ; 89 56 18
    14447     jmp short 09a46h                          ; eb 37
     14579    jmp short 09b30h                          ; eb 37
    1444814580    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    14449     jmp short 09a46h                          ; eb 30
     14581    jmp short 09b30h                          ; eb 30
    1445014582    or ah, 080h                               ; 80 cc 80
    14451     jmp short 09a07h                          ; eb ec
    14452     mov bx, 00da0h                            ; bb a0 0d
     14583    jmp short 09af1h                          ; eb ec
     14584    mov bx, 00db2h                            ; bb b2 0d
    1445314585    mov cx, ds                                ; 8c d9
    1445414586    mov ax, strict word 00004h                ; b8 04 00
    14455     call 01999h                               ; e8 73 7f
     14587    call 01a2ah                               ; e8 1a 7f
    1445614588    push word [bp+00ch]                       ; ff 76 0c
    1445714589    push word [bp+012h]                       ; ff 76 12
    14458     push 00d29h                               ; 68 29 0d
     14590    push 00d3bh                               ; 68 3b 0d
    1445914591    push strict byte 00004h                   ; 6a 04
    14460     call 019dah                               ; e8 a6 7f
     14592    call 01a6bh                               ; e8 4d 7f
    1446114593    add sp, strict byte 00008h                ; 83 c4 08
    1446214594    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1446914601    pop bp                                    ; 5d
    1447014602    retn                                      ; c3
    14471 pci16_select_reg_:                           ; 0xf9a4c LB 0x24
     14603pci16_select_reg_:                           ; 0xf9b36 LB 0x24
    1447214604    push bp                                   ; 55
    1447314605    mov bp, sp                                ; 89 e5
     
    1448614618    pop bp                                    ; 5d
    1448714619    retn                                      ; c3
    14488 pci16_find_device_:                          ; 0xf9a70 LB 0xf7
     14620pci16_find_device_:                          ; 0xf9b5a LB 0xf7
    1448914621    push bp                                   ; 55
    1449014622    mov bp, sp                                ; 89 e5
     
    1450014632    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1450114633    test bl, 007h                             ; f6 c3 07
    14502     jne short 09ab8h                          ; 75 2d
     14634    jne short 09ba2h                          ; 75 2d
    1450314635    mov dx, strict word 0000eh                ; ba 0e 00
    1450414636    mov ax, bx                                ; 89 d8
    14505     call 09a4ch                               ; e8 b9 ff
     14637    call 09b36h                               ; e8 b9 ff
    1450614638    mov dx, 00cfeh                            ; ba fe 0c
    1450714639    in AL, DX                                 ; ec
     
    1451014642    mov byte [bp-006h], al                    ; 88 46 fa
    1451114643    cmp AL, strict byte 0ffh                  ; 3c ff
    14512     jne short 09aa6h                          ; 75 06
     14644    jne short 09b90h                          ; 75 06
    1451314645    add bx, strict byte 00008h                ; 83 c3 08
    14514     jmp near 09b39h                           ; e9 93 00
     14646    jmp near 09c23h                           ; e9 93 00
    1451514647    test byte [bp-006h], 080h                 ; f6 46 fa 80
    14516     je short 09ab3h                           ; 74 07
     14648    je short 09b9dh                           ; 74 07
    1451714649    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    14518     jmp short 09ab8h                          ; eb 05
     14650    jmp short 09ba2h                          ; eb 05
    1451914651    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
    1452014652    mov al, byte [bp-006h]                    ; 8a 46 fa
    1452114653    and AL, strict byte 007h                  ; 24 07
    1452214654    cmp AL, strict byte 001h                  ; 3c 01
    14523     jne short 09ae0h                          ; 75 1f
     14655    jne short 09bcah                          ; 75 1f
    1452414656    mov ax, bx                                ; 89 d8
    1452514657    shr ax, 008h                              ; c1 e8 08
    1452614658    test ax, ax                               ; 85 c0
    14527     jne short 09ae0h                          ; 75 16
     14659    jne short 09bcah                          ; 75 16
    1452814660    mov dx, strict word 0001ah                ; ba 1a 00
    1452914661    mov ax, bx                                ; 89 d8
    14530     call 09a4ch                               ; e8 7a ff
     14662    call 09b36h                               ; e8 7a ff
    1453114663    mov dx, 00cfeh                            ; ba fe 0c
    1453214664    in AL, DX                                 ; ec
     
    1453414666    ; sub ah, ah                                ; 2a e4
    1453514667    cmp al, byte [bp-008h]                    ; 3a 46 f8
    14536     jbe short 09ae0h                          ; 76 03
     14668    jbe short 09bcah                          ; 76 03
    1453714669    mov byte [bp-008h], al                    ; 88 46 f8
    1453814670    test di, di                               ; 85 ff
    14539     je short 09ae9h                           ; 74 05
     14671    je short 09bd3h                           ; 74 05
    1454014672    mov dx, strict word 00008h                ; ba 08 00
    14541     jmp short 09aebh                          ; eb 02
     14673    jmp short 09bd5h                          ; eb 02
    1454214674    xor dx, dx                                ; 31 d2
    1454314675    mov ax, bx                                ; 89 d8
    14544     call 09a4ch                               ; e8 5c ff
     14676    call 09b36h                               ; e8 5c ff
    1454514677    mov dx, 00cfch                            ; ba fc 0c
    1454614678    in eax, DX                                ; 66 ed
     
    1455314685    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    1455414686    test di, di                               ; 85 ff
    14555     je short 09b1ah                           ; 74 0f
     14687    je short 09c04h                           ; 74 0f
    1455614688    mov cx, strict word 00008h                ; b9 08 00
    1455714689    shr dx, 1                                 ; d1 ea
    1455814690    rcr ax, 1                                 ; d1 d8
    14559     loop 09b0eh                               ; e2 fa
     14691    loop 09bf8h                               ; e2 fa
    1456014692    mov word [bp-00eh], ax                    ; 89 46 f2
    1456114693    mov word [bp-00ch], dx                    ; 89 56 f4
    1456214694    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1456314695    cmp ax, word [bp-014h]                    ; 3b 46 ec
    14564     jne short 09b2ah                          ; 75 08
     14696    jne short 09c14h                          ; 75 08
    1456514697    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1456614698    cmp ax, word [bp-012h]                    ; 3b 46 ee
    14567     je short 09b30h                           ; 74 06
     14699    je short 09c1ah                           ; 74 06
    1456814700    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    14569     je short 09b36h                           ; 74 06
     14701    je short 09c20h                           ; 74 06
    1457014702    dec si                                    ; 4e
    1457114703    cmp si, strict byte 0ffffh                ; 83 fe ff
    14572     je short 09b48h                           ; 74 12
     14704    je short 09c32h                           ; 74 12
    1457314705    add bx, word [bp-00ah]                    ; 03 5e f6
    1457414706    mov dx, bx                                ; 89 da
     
    1457614708    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1457714709    cmp dx, ax                                ; 39 c2
    14578     jbe near 09a86h                           ; 0f 86 3e ff
     14710    jbe near 09b70h                           ; 0f 86 3e ff
    1457914711    cmp si, strict byte 0ffffh                ; 83 fe ff
    14580     jne short 09b51h                          ; 75 04
     14712    jne short 09c3bh                          ; 75 04
    1458114713    mov ax, bx                                ; 89 d8
    14582     jmp short 09b54h                          ; eb 03
     14714    jmp short 09c3eh                          ; eb 03
    1458314715    mov ax, strict word 0ffffh                ; b8 ff ff
    1458414716    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1458714719    pop bp                                    ; 5d
    1458814720    retn                                      ; c3
    14589     dec cx                                    ; 49
    14590     pushfw                                    ; 9c
    14591     arpl [si-0638ah], bx                      ; 63 9c 76 9c
    14592     mov bx, word [si-06362h]                  ; 8b 9c 9e 9c
    14593     mov CL, strict byte 09ch                  ; b1 9c
    14594 _pci16_function:                             ; 0xf9b67 LB 0x1d7
     14721    xor bx, word [di-062b3h]                  ; 33 9d 4d 9d
     14722    pushaw                                    ; 60
     14723    popfw                                     ; 9d
     14724    jne short 09beah                          ; 75 9d
     14725    mov byte [di-06265h], bl                  ; 88 9d 9b 9d
     14726_pci16_function:                             ; 0xf9c51 LB 0x1d7
    1459514727    push bp                                   ; 55
    1459614728    mov bp, sp                                ; 89 e5
     
    1460614738    xor ah, ah                                ; 30 e4
    1460714739    cmp bx, strict byte 00003h                ; 83 fb 03
    14608     jc short 09ba0h                           ; 72 1a
    14609     jbe short 09bf8h                          ; 76 70
     14740    jc short 09c8ah                           ; 72 1a
     14741    jbe short 09ce2h                          ; 76 70
    1461014742    cmp bx, strict byte 0000eh                ; 83 fb 0e
    14611     je near 09cc5h                            ; 0f 84 36 01
     14743    je near 09dafh                            ; 0f 84 36 01
    1461214744    cmp bx, strict byte 00008h                ; 83 fb 08
    14613     jc near 09d0ah                            ; 0f 82 74 01
     14745    jc near 09df4h                            ; 0f 82 74 01
    1461414746    cmp bx, strict byte 0000dh                ; 83 fb 0d
    14615     jbe near 09c1dh                           ; 0f 86 80 00
    14616     jmp near 09d0ah                           ; e9 6a 01
     14747    jbe near 09d07h                           ; 0f 86 80 00
     14748    jmp near 09df4h                           ; e9 6a 01
    1461714749    cmp bx, strict byte 00002h                ; 83 fb 02
    14618     je short 09bc8h                           ; 74 23
     14750    je short 09cb2h                           ; 74 23
    1461914751    cmp bx, strict byte 00001h                ; 83 fb 01
    14620     jne near 09d0ah                           ; 0f 85 5e 01
     14752    jne near 09df4h                           ; 0f 85 5e 01
    1462114753    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1462214754    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1462414756    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1462514757    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    14626     jmp near 09d37h                           ; e9 6f 01
     14758    jmp near 09e21h                           ; e9 6f 01
    1462714759    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    14628     jne short 09bd4h                          ; 75 06
     14760    jne short 09cbeh                          ; 75 06
    1462914761    or ah, 083h                               ; 80 cc 83
    14630     jmp near 09d30h                           ; e9 5c 01
     14762    jmp near 09e1ah                           ; e9 5c 01
    1463114763    mov bx, word [bp+008h]                    ; 8b 5e 08
    1463214764    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1463314765    mov ax, word [bp+018h]                    ; 8b 46 18
    1463414766    xor cx, cx                                ; 31 c9
    14635     call 09a70h                               ; e8 8e fe
     14767    call 09b5ah                               ; e8 8e fe
    1463614768    cmp ax, strict word 0ffffh                ; 3d ff ff
    14637     jne short 09bf2h                          ; 75 0b
     14769    jne short 09cdch                          ; 75 0b
    1463814770    mov ax, word [bp+020h]                    ; 8b 46 20
    1463914771    xor ah, ah                                ; 30 e4
    1464014772    or ah, 086h                               ; 80 cc 86
    14641     jmp near 09d30h                           ; e9 3e 01
     14773    jmp near 09e1ah                           ; e9 3e 01
    1464214774    mov word [bp+014h], ax                    ; 89 46 14
    14643     jmp near 09d37h                           ; e9 3f 01
     14775    jmp near 09e21h                           ; e9 3f 01
    1464414776    mov bx, word [bp+008h]                    ; 8b 5e 08
    1464514777    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1464614778    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1464714779    mov cx, strict word 00001h                ; b9 01 00
    14648     call 09a70h                               ; e8 69 fe
     14780    call 09b5ah                               ; e8 69 fe
    1464914781    cmp ax, strict word 0ffffh                ; 3d ff ff
    14650     jne short 09c17h                          ; 75 0b
     14782    jne short 09d01h                          ; 75 0b
    1465114783    mov ax, word [bp+020h]                    ; 8b 46 20
    1465214784    xor ah, ah                                ; 30 e4
    1465314785    or ah, 086h                               ; 80 cc 86
    14654     jmp near 09d30h                           ; e9 19 01
     14786    jmp near 09e1ah                           ; e9 19 01
    1465514787    mov word [bp+014h], ax                    ; 89 46 14
    14656     jmp near 09d37h                           ; e9 1a 01
     14788    jmp near 09e21h                           ; e9 1a 01
    1465714789    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    14658     jc short 09c2ah                           ; 72 06
     14790    jc short 09d14h                           ; 72 06
    1465914791    or ah, 087h                               ; 80 cc 87
    14660     jmp near 09d30h                           ; e9 06 01
     14792    jmp near 09e1ah                           ; e9 06 01
    1466114793    mov dx, word [bp+004h]                    ; 8b 56 04
    1466214794    mov ax, word [bp+014h]                    ; 8b 46 14
    14663     call 09a4ch                               ; e8 19 fe
     14795    call 09b36h                               ; e8 19 fe
    1466414796    mov bx, word [bp+020h]                    ; 8b 5e 20
    1466514797    xor bh, bh                                ; 30 ff
    1466614798    sub bx, strict byte 00008h                ; 83 eb 08
    1466714799    cmp bx, strict byte 00005h                ; 83 fb 05
    14668     jnbe near 09d37h                          ; 0f 87 f5 00
     14800    jnbe near 09e21h                          ; 0f 87 f5 00
    1466914801    add bx, bx                                ; 01 db
    14670     jmp word [cs:bx-064a5h]                   ; 2e ff a7 5b 9b
     14802    jmp word [cs:bx-063bbh]                   ; 2e ff a7 45 9c
    1467114803    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1467214804    xor bl, bl                                ; 30 db
     
    1467914811    or bx, ax                                 ; 09 c3
    1468014812    mov word [bp+01ch], bx                    ; 89 5e 1c
    14681     jmp near 09d37h                           ; e9 d4 00
     14813    jmp near 09e21h                           ; e9 d4 00
    1468214814    mov dx, word [bp+004h]                    ; 8b 56 04
    1468314815    xor dh, dh                                ; 30 f6
     
    1468614818    in ax, DX                                 ; ed
    1468714819    mov word [bp+01ch], ax                    ; 89 46 1c
    14688     jmp near 09d37h                           ; e9 c1 00
     14820    jmp near 09e21h                           ; e9 c1 00
    1468914821    mov dx, 00cfch                            ; ba fc 0c
    1469014822    in eax, DX                                ; 66 ed
     
    1469514827    mov word [bp+01ch], ax                    ; 89 46 1c
    1469614828    mov word [bp+01eh], dx                    ; 89 56 1e
    14697     jmp near 09d37h                           ; e9 ac 00
     14829    jmp near 09e21h                           ; e9 ac 00
    1469814830    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1469914831    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1470214834    add dx, 00cfch                            ; 81 c2 fc 0c
    1470314835    out DX, AL                                ; ee
    14704     jmp near 09d37h                           ; e9 99 00
     14836    jmp near 09e21h                           ; e9 99 00
    1470514837    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1470614838    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1470914841    add dx, 00cfch                            ; 81 c2 fc 0c
    1471014842    out DX, ax                                ; ef
    14711     jmp near 09d37h                           ; e9 86 00
     14843    jmp near 09e21h                           ; e9 86 00
    1471214844    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1471314845    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1471814850    ; mov ax, cx                                ; 8b c1
    1471914851    out DX, eax                               ; 66 ef
    14720     jmp short 09d37h                          ; eb 72
     14852    jmp short 09e21h                          ; eb 72
    1472114853    mov bx, word [bp+004h]                    ; 8b 5e 04
    1472214854    mov es, [bp+026h]                         ; 8e 46 26
     
    1472514857    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1472614858    cmp cx, word [es:bx]                      ; 26 3b 0f
    14727     jbe short 09cebh                          ; 76 11
     14859    jbe short 09dd5h                          ; 76 11
    1472814860    mov ax, word [bp+020h]                    ; 8b 46 20
    1472914861    xor ah, ah                                ; 30 e4
     
    1473114863    mov word [bp+020h], ax                    ; 89 46 20
    1473214864    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    14733     jmp short 09cffh                          ; eb 14
     14865    jmp short 09de9h                          ; eb 14
    1473414866    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1473514867    mov si, 0f2c0h                            ; be c0 f2
     
    1474314875    les bx, [bp-008h]                         ; c4 5e f8
    1474414876    mov word [es:bx], ax                      ; 26 89 07
    14745     jmp short 09d37h                          ; eb 2d
    14746     mov bx, 00da0h                            ; bb a0 0d
     14877    jmp short 09e21h                          ; eb 2d
     14878    mov bx, 00db2h                            ; bb b2 0d
    1474714879    mov cx, ds                                ; 8c d9
    1474814880    mov ax, strict word 00004h                ; b8 04 00
    14749     call 01999h                               ; e8 84 7c
     14881    call 01a2ah                               ; e8 2b 7c
    1475014882    mov ax, word [bp+014h]                    ; 8b 46 14
    1475114883    push ax                                   ; 50
    1475214884    mov ax, word [bp+020h]                    ; 8b 46 20
    1475314885    push ax                                   ; 50
    14754     push 00d5ch                               ; 68 5c 0d
     14886    push 00d6eh                               ; 68 6e 0d
    1475514887    push strict byte 00004h                   ; 6a 04
    14756     call 019dah                               ; e8 b5 7c
     14888    call 01a6bh                               ; e8 5c 7c
    1475714889    add sp, strict byte 00008h                ; 83 c4 08
    1475814890    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1476614898    pop bp                                    ; 5d
    1476714899    retn                                      ; c3
    14768 pci_find_classcode_:                         ; 0xf9d3e LB 0x2b
     14900pci_find_classcode_:                         ; 0xf9e28 LB 0x2b
    1476914901    push bp                                   ; 55
    1477014902    mov bp, sp                                ; 89 e5
     
    1478114913    int 01ah                                  ; cd 1a
    1478214914    cmp ah, 000h                              ; 80 fc 00
    14783     je near 09d5fh                            ; 0f 84 03 00
     14915    je near 09e49h                            ; 0f 84 03 00
    1478414916    mov bx, strict word 0ffffh                ; bb ff ff
    1478514917    mov ax, bx                                ; 89 d8
     
    1479014922    pop bp                                    ; 5d
    1479114923    retn                                      ; c3
    14792 pci_read_config_byte_:                       ; 0xf9d69 LB 0x24
     14924pci_read_config_byte_:                       ; 0xf9e53 LB 0x24
    1479314925    push bp                                   ; 55
    1479414926    mov bp, sp                                ; 89 e5
     
    1480914941    pop bp                                    ; 5d
    1481014942    retn                                      ; c3
    14811 pci_read_config_word_:                       ; 0xf9d8d LB 0x22
     14943pci_read_config_word_:                       ; 0xf9e77 LB 0x22
    1481214944    push bp                                   ; 55
    1481314945    mov bp, sp                                ; 89 e5
     
    1482814960    pop bp                                    ; 5d
    1482914961    retn                                      ; c3
    14830 pci_read_config_dword_:                      ; 0xf9daf LB 0x27
     14962pci_read_config_dword_:                      ; 0xf9e99 LB 0x27
    1483114963    push bp                                   ; 55
    1483214964    mov bp, sp                                ; 89 e5
     
    1484914981    pop bp                                    ; 5d
    1485014982    retn                                      ; c3
    14851 vds_is_present_:                             ; 0xf9dd6 LB 0x1d
     14983vds_is_present_:                             ; 0xf9ec0 LB 0x1d
    1485214984    push bx                                   ; 53
    1485314985    push bp                                   ; 55
     
    1485714989    mov es, ax                                ; 8e c0
    1485814990    test byte [es:bx], 020h                   ; 26 f6 07 20
    14859     je short 09deeh                           ; 74 06
     14991    je short 09ed8h                           ; 74 06
    1486014992    mov ax, strict word 00001h                ; b8 01 00
    1486114993    pop bp                                    ; 5d
     
    1486614998    pop bx                                    ; 5b
    1486714999    retn                                      ; c3
    14868 vds_real_to_lin_:                            ; 0xf9df3 LB 0x1e
     15000vds_real_to_lin_:                            ; 0xf9edd LB 0x1e
    1486915001    push bx                                   ; 53
    1487015002    push cx                                   ; 51
     
    1487715009    sal ax, 1                                 ; d1 e0
    1487815010    rcl dx, 1                                 ; d1 d2
    14879     loop 09e01h                               ; e2 fa
     15011    loop 09eebh                               ; e2 fa
    1488015012    xor cx, cx                                ; 31 c9
    1488115013    add ax, bx                                ; 01 d8
     
    1488515017    pop bx                                    ; 5b
    1488615018    retn                                      ; c3
    14887 vds_build_sg_list_:                          ; 0xf9e11 LB 0x79
     15019vds_build_sg_list_:                          ; 0xf9efb LB 0x79
    1488815020    push bp                                   ; 55
    1488915021    mov bp, sp                                ; 89 e5
     
    1489915031    mov bx, word [bp+006h]                    ; 8b 5e 06
    1490015032    mov word [es:di+002h], bx                 ; 26 89 5d 02
    14901     call 09df3h                               ; e8 c3 ff
     15033    call 09eddh                               ; e8 c3 ff
    1490215034    mov es, si                                ; 8e c6
    1490315035    mov word [es:di+004h], ax                 ; 26 89 45 04
    1490415036    mov word [es:di+006h], dx                 ; 26 89 55 06
    1490515037    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    14906     call 09dd6h                               ; e8 93 ff
     15038    call 09ec0h                               ; e8 93 ff
    1490715039    test ax, ax                               ; 85 c0
    14908     je short 09e5ah                           ; 74 13
     15040    je short 09f44h                           ; 74 13
    1490915041    mov es, si                                ; 8e c6
    1491015042    mov ax, 08105h                            ; b8 05 81
    1491115043    mov dx, strict word 00000h                ; ba 00 00
    1491215044    int 04bh                                  ; cd 4b
    14913     jc near 09e57h                            ; 0f 82 02 00
     15045    jc near 09f41h                            ; 0f 82 02 00
    1491415046    db  032h, 0c0h
    1491515047    ; xor al, al                                ; 32 c0
    1491615048    cbw                                       ; 98
    14917     jmp short 09e81h                          ; eb 27
     15049    jmp short 09f6bh                          ; eb 27
    1491815050    mov es, si                                ; 8e c6
    1491915051    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1493215064    pop bp                                    ; 5d
    1493315065    retn 00004h                               ; c2 04 00
    14934 vds_free_sg_list_:                           ; 0xf9e8a LB 0x36
     15066vds_free_sg_list_:                           ; 0xf9f74 LB 0x3c
    1493515067    push bp                                   ; 55
    1493615068    mov bp, sp                                ; 89 e5
     
    1493815070    push di                                   ; 57
    1493915071    mov bx, ax                                ; 89 c3
    14940     call 09dd6h                               ; e8 42 ff
     15072    call 09ec0h                               ; e8 42 ff
    1494115073    test ax, ax                               ; 85 c0
    14942     je short 09eabh                           ; 74 13
     15074    je short 09f95h                           ; 74 13
    1494315075    mov di, bx                                ; 89 df
    1494415076    mov es, dx                                ; 8e c2
     
    1494615078    mov dx, strict word 00000h                ; ba 00 00
    1494715079    int 04bh                                  ; cd 4b
    14948     jc near 09eaah                            ; 0f 82 02 00
     15080    jc near 09f94h                            ; 0f 82 02 00
    1494915081    db  032h, 0c0h
    1495015082    ; xor al, al                                ; 32 c0
     
    1495715089    pop bp                                    ; 5d
    1495815090    retn                                      ; c3
    14959     times 0x6 db 0
    14960 __U4M:                                       ; 0xf9ec0 LB 0x40
     15091    times 0xc db 0
     15092__U4M:                                       ; 0xf9fb0 LB 0x40
    1496115093    pushfw                                    ; 9c
    1496215094    push eax                                  ; 66 50
     
    1498415116    retn                                      ; c3
    1498515117    times 0xf db 0
    14986 __U4D:                                       ; 0xf9f00 LB 0x40
     15118__U4D:                                       ; 0xf9ff0 LB 0x40
    1498715119    pushfw                                    ; 9c
    1498815120    push eax                                  ; 66 50
     
    1501515147    retn                                      ; c3
    1501615148    times 0x7 db 0
    15017 __U8RS:                                      ; 0xf9f40 LB 0x10
     15149__U8RS:                                      ; 0xfa030 LB 0x10
    1501815150    test si, si                               ; 85 f6
    15019     je short 09f4fh                           ; 74 0b
     15151    je short 0a03fh                           ; 74 0b
    1502015152    shr ax, 1                                 ; d1 e8
    1502115153    rcr bx, 1                                 ; d1 db
     
    1502315155    rcr dx, 1                                 ; d1 da
    1502415156    dec si                                    ; 4e
    15025     jne short 09f44h                          ; 75 f5
     15157    jne short 0a034h                          ; 75 f5
    1502615158    retn                                      ; c3
    15027 __U8LS:                                      ; 0xf9f50 LB 0x10
     15159__U8LS:                                      ; 0xfa040 LB 0x10
    1502815160    test si, si                               ; 85 f6
    15029     je short 09f5fh                           ; 74 0b
     15161    je short 0a04fh                           ; 74 0b
    1503015162    sal dx, 1                                 ; d1 e2
    1503115163    rcl cx, 1                                 ; d1 d1
     
    1503315165    rcl ax, 1                                 ; d1 d0
    1503415166    dec si                                    ; 4e
    15035     jne short 09f54h                          ; 75 f5
     15167    jne short 0a044h                          ; 75 f5
    1503615168    retn                                      ; c3
    15037 _fmemset_:                                   ; 0xf9f60 LB 0x10
     15169_fmemset_:                                   ; 0xfa050 LB 0x10
    1503815170    push di                                   ; 57
    1503915171    mov es, dx                                ; 8e c2
     
    1504615178    retn                                      ; c3
    1504715179    times 0x3 db 0
    15048 _fmemcpy_:                                   ; 0xf9f70 LB 0x3a
     15180_fmemcpy_:                                   ; 0xfa060 LB 0x3a
    1504915181    push bp                                   ; 55
    1505015182    db  08bh, 0ech
     
    1507115203    add byte [bx+si], al                      ; 00 00
    1507215204    add byte [bx+si], al                      ; 00 00
    15073     rcr byte [bx-0603eh], 0c6h                ; c0 9f c2 9f c6
    15074     lahf                                      ; 9f
    15075     db  0c6h, 09fh, 0c6h, 09fh, 0c8h
    15076     ; mov byte [bx-0603ah], 0c8h                ; c6 9f c6 9f c8
    15077     lahf                                      ; 9f
    15078     enter 0ca9fh, 09fh                        ; c8 9f ca 9f
    15079     into                                      ; ce
    15080     lahf                                      ; 9f
    15081     into                                      ; ce
    15082     lahf                                      ; 9f
    15083     rcr byte [bx-0602bh], 1                   ; d0 9f d5 9f
    15084     xlatb                                     ; d7
    15085     lahf                                      ; 9f
    15086 apm_worker:                                  ; 0xf9faa LB 0x3a
     15205    mov AL, strict byte 0a0h                  ; b0 a0
     15206    mov DL, strict byte 0a0h                  ; b2 a0
     15207    mov DH, strict byte 0a0h                  ; b6 a0
     15208    mov DH, strict byte 0a0h                  ; b6 a0
     15209    mov DH, strict byte 0a0h                  ; b6 a0
     15210    mov ax, 0b8a0h                            ; b8 a0 b8
     15211    mov AL, byte [0a0bah]                     ; a0 ba a0
     15212    mov si, 0bea0h                            ; be a0 be
     15213    mov AL, byte [0a0c0h]                     ; a0 c0 a0
     15214    lds sp, [bx+si-05f39h]                    ; c5 a0 c7 a0
     15215apm_worker:                                  ; 0xfa09a LB 0x3a
    1508715216    sti                                       ; fb
    1508815217    push ax                                   ; 50
     
    1509615225    pop ax                                    ; 58
    1509715226    mov AH, strict byte 053h                  ; b4 53
    15098     jnc short 09fe0h                          ; 73 25
    15099     jmp word [cs:bp-06070h]                   ; 2e ff a6 90 9f
    15100     jmp short 09fdeh                          ; eb 1c
     15227    jnc short 0a0d0h                          ; 73 25
     15228    jmp word [cs:bp-05f80h]                   ; 2e ff a6 80 a0
     15229    jmp short 0a0ceh                          ; eb 1c
    1510115230    sti                                       ; fb
    1510215231    hlt                                       ; f4
    15103     jmp short 09fdeh                          ; eb 18
    15104     jmp short 09fdeh                          ; eb 16
    15105     jmp short 09fe0h                          ; eb 16
     15232    jmp short 0a0ceh                          ; eb 18
     15233    jmp short 0a0ceh                          ; eb 16
     15234    jmp short 0a0d0h                          ; eb 16
    1510615235    mov AH, strict byte 080h                  ; b4 80
    15107     jmp short 09fe2h                          ; eb 14
    15108     jmp short 09fe0h                          ; eb 10
     15236    jmp short 0a0d2h                          ; eb 14
     15237    jmp short 0a0d0h                          ; eb 10
    1510915238    mov ax, 00102h                            ; b8 02 01
    15110     jmp short 09fdeh                          ; eb 09
    15111     jmp short 09fdeh                          ; eb 07
     15239    jmp short 0a0ceh                          ; eb 09
     15240    jmp short 0a0ceh                          ; eb 07
    1511215241    mov BL, strict byte 000h                  ; b3 00
    1511315242    mov cx, strict word 00000h                ; b9 00 00
    15114     jmp short 09fdeh                          ; eb 00
     15243    jmp short 0a0ceh                          ; eb 00
    1511515244    clc                                       ; f8
    1511615245    retn                                      ; c3
     
    1511815247    stc                                       ; f9
    1511915248    retn                                      ; c3
    15120 apm_pm16_entry:                              ; 0xf9fe4 LB 0x11
     15249apm_pm16_entry:                              ; 0xfa0d4 LB 0x11
    1512115250    mov AH, strict byte 002h                  ; b4 02
    1512215251    push DS                                   ; 1e
     
    1512615255    add bp, strict byte 00008h                ; 83 c5 08
    1512715256    mov ds, bp                                ; 8e dd
    15128     call 09faah                               ; e8 b8 ff
     15257    call 0a09ah                               ; e8 b8 ff
    1512915258    pop bp                                    ; 5d
    1513015259    pop DS                                    ; 1f
    1513115260    retf                                      ; cb
    1513215261
    15133   ; Padding 0x3a0b bytes at 0xf9ff5
    15134   times 14859 db 0
     15262  ; Padding 0x391b bytes at 0xfa0e5
     15263  times 14619 db 0
    1513515264
    1513615265section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1517915308    add bp, strict byte 00008h                ; 83 c5 08
    1518015309    push ebp                                  ; 66 55
    15181     mov bp, 09fe6h                            ; bd e6 9f
     15310    mov bp, 0a0d6h                            ; bd d6 a0
    1518215311    add byte [bx+si], al                      ; 00 00
    1518315312    push ebp                                  ; 66 55
     
    1564515774    cmp AL, strict byte 009h                  ; 3c 09
    1564615775    jne short 0e0bch                          ; 75 03
    15647     jmp near 0e36dh                           ; e9 b1 02
     15776    jmp near 0e379h                           ; e9 bd 02
    1564815777    cmp AL, strict byte 005h                  ; 3c 05
    1564915778    je short 0e044h                           ; 74 84
     
    1569015819    pop DS                                    ; 1f
    1569115820    cld                                       ; fc
    15692     call 017dfh                               ; e8 d5 36
     15821    call 01870h                               ; e8 66 37
    1569315822    call 0e8e0h                               ; e8 d3 07
    1569415823    db  033h, 0dbh
     
    1570415833    mov ax, 0027fh                            ; b8 7f 02
    1570515834    mov word [00413h], ax                     ; a3 13 04
    15706     mov ax, 0e9d6h                            ; b8 d6 e9
     15835    mov ax, 0e9cch                            ; b8 cc e9
    1570715836    mov word [00018h], ax                     ; a3 18 00
    1570815837    mov ax, 0f000h                            ; b8 00 f0
     
    1579115920    mov dx, 0c800h                            ; ba 00 c8
    1579215921    call 01600h                               ; e8 e1 33
    15793     call 04ee4h                               ; e8 c2 6c
     15922    call 04fceh                               ; e8 ac 6d
    1579415923    pop DS                                    ; 1f
    1579515924    mov ax, 0ff53h                            ; b8 53 ff
     
    1586015989    pop DS                                    ; 1f
    1586115990    cld                                       ; fc
    15862     call 017bbh                               ; e8 f2 34
     15991    call 0184ch                               ; e8 83 35
    1586315992    iret                                      ; cf
    1586415993int75_handler:                               ; 0xfe2ca LB 0x8
     
    1586715996    int 002h                                  ; cd 02
    1586815997    iret                                      ; cf
    15869 hard_drive_post:                             ; 0xfe2d2 LB 0xc4
     15998hard_drive_post:                             ; 0xfe2d2 LB 0xd0
    1587015999    db  033h, 0c0h
    1587116000    ; xor ax, ax                                ; 33 c0
     
    1590816037    cld                                       ; fc
    1590916038    pushad                                    ; 66 60
    15910     call 01650h                               ; e8 12 33
     16039    call 01692h                               ; e8 54 33
    1591116040    popad                                     ; 66 61
    15912     call 01d17h                               ; e8 d4 39
    15913     call 021a4h                               ; e8 5e 3e
    15914     call 09820h                               ; e8 d7 b4
    15915     call 08704h                               ; e8 b8 a3
     16041    call 01da8h                               ; e8 65 3a
     16042    call 02235h                               ; e8 ef 3e
     16043    call 0990ah                               ; e8 c1 b5
     16044    call 087eeh                               ; e8 a2 a4
    1591616045    call 0ed2fh                               ; e8 e0 09
    1591716046    call 0e2d2h                               ; e8 80 ff
     
    1592216051    mov dx, 0f000h                            ; ba 00 f0
    1592316052    call 01600h                               ; e8 a2 32
    15924     call 017ffh                               ; e8 9e 34
    15925     call 03bc8h                               ; e8 64 58
     16053    db  066h, 033h, 0c0h
     16054    ; xor eax, eax                              ; 66 33 c0
     16055    db  066h, 033h, 0dbh
     16056    ; xor ebx, ebx                              ; 66 33 db
     16057    db  066h, 033h, 0c9h
     16058    ; xor ecx, ecx                              ; 66 33 c9
     16059    db  066h, 033h, 0d2h
     16060    ; xor edx, edx                              ; 66 33 d2
     16061    call 01890h                               ; e8 23 35
     16062    call 03cb1h                               ; e8 41 59
    1592616063    sti                                       ; fb
    1592716064    int 019h                                  ; cd 19
    1592816065    sti                                       ; fb
    1592916066    hlt                                       ; f4
    15930     jmp short 0e368h                          ; eb fd
     16067    jmp short 0e374h                          ; eb fd
    1593116068    cli                                       ; fa
    1593216069    hlt                                       ; f4
     
    1595016087    sti                                       ; fb
    1595116088    retf 00002h                               ; ca 02 00
    15952 biosorg_check_before_or_at_0E3FCh:           ; 0xfe396 LB 0x68
    15953     times 0x66 db 0
     16089biosorg_check_before_or_at_0E3FCh:           ; 0xfe3a2 LB 0x5c
     16090    times 0x5a db 0
    1595416091    db  'XM'
    1595516092int13_handler:                               ; 0xfe3fe LB 0x3
     
    1602516162    pop DS                                    ; 1f
    1602616163    cld                                       ; fc
    16027     call 063f9h                               ; e8 b7 7c
     16164    call 064e3h                               ; e8 a1 7d
    1602816165    popaw                                     ; 61
    1602916166    pop ES                                    ; 07
     
    1603616173    pop DS                                    ; 1f
    1603716174    cld                                       ; fc
    16038     call 01750h                               ; e8 01 30
     16175    call 017e1h                               ; e8 92 30
    1603916176    popaw                                     ; 61
    1604016177    pop ES                                    ; 07
     
    1610116238    pop DS                                    ; 1f
    1610216239    cld                                       ; fc
    16103     call 056efh                               ; e8 ad 6e
     16240    call 057d9h                               ; e8 97 6f
    1610416241    popaw                                     ; 61
    1610516242    pop DS                                    ; 1f
     
    1611816255    pop DS                                    ; 1f
    1611916256    cld                                       ; fc
    16120     call 056efh                               ; e8 8f 6e
     16257    call 057d9h                               ; e8 79 6f
    1612116258    popaw                                     ; 61
    1612216259    pop DS                                    ; 1f
     
    1618016317    times 0x49 db 0
    1618116318    db  'XM'
    16182 biosorg_check_at_0E987h:                     ; 0xfe987 LB 0x5c
     16319biosorg_check_at_0E987h:                     ; 0xfe987 LB 0x52
    1618316320    cli                                       ; fa
    1618416321    push ax                                   ; 50
    1618516322    mov AL, strict byte 0adh                  ; b0 ad
    1618616323    out strict byte 064h, AL                  ; e6 64
    16187     mov AL, strict byte 00bh                  ; b0 0b
    16188     out strict byte 020h, AL                  ; e6 20
    16189     in AL, strict byte 020h                   ; e4 20
    16190     and AL, strict byte 002h                  ; 24 02
    16191     je short 0e9d0h                           ; 74 39
    1619216324    in AL, strict byte 060h                   ; e4 60
    1619316325    push DS                                   ; 1e
     
    1619716329    stc                                       ; f9
    1619816330    int 015h                                  ; cd 15
    16199     jnc short 0e9cah                          ; 73 27
     16331    jnc short 0e9c0h                          ; 73 27
    1620016332    sti                                       ; fb
    1620116333    cmp AL, strict byte 0e0h                  ; 3c e0
    16202     jne short 0e9b3h                          ; 75 0b
     16334    jne short 0e9a9h                          ; 75 0b
    1620316335    db  033h, 0c0h
    1620416336    ; xor ax, ax                                ; 33 c0
    1620516337    mov ds, ax                                ; 8e d8
    1620616338    or byte [00496h], 002h                    ; 80 0e 96 04 02
    16207     jmp short 0e9cah                          ; eb 17
     16339    jmp short 0e9c0h                          ; eb 17
    1620816340    cmp AL, strict byte 0e1h                  ; 3c e1
    16209     jne short 0e9c2h                          ; 75 0b
     16341    jne short 0e9b8h                          ; 75 0b
    1621016342    db  033h, 0c0h
    1621116343    ; xor ax, ax                                ; 33 c0
    1621216344    mov ds, ax                                ; 8e d8
    1621316345    or byte [00496h], 001h                    ; 80 0e 96 04 01
    16214     jmp short 0e9cah                          ; eb 08
     16346    jmp short 0e9c0h                          ; eb 08
    1621516347    push ES                                   ; 06
    1621616348    push CS                                   ; 0e
    1621716349    pop DS                                    ; 1f
    1621816350    cld                                       ; fc
    16219     call 051e7h                               ; e8 1e 68
     16351    call 052d1h                               ; e8 12 69
    1622016352    pop ES                                    ; 07
    1622116353    popaw                                     ; 61
    1622216354    pop DS                                    ; 1f
    1622316355    cli                                       ; fa
    16224     call 0e034h                               ; e8 64 f6
     16356    call 0e034h                               ; e8 6e f6
    1622516357    mov AL, strict byte 0aeh                  ; b0 ae
    1622616358    out strict byte 064h, AL                  ; e6 64
     
    1623316365    pop DS                                    ; 1f
    1623416366    cld                                       ; fc
    16235     call 06ec2h                               ; e8 e3 84
     16367    call 06fach                               ; e8 d7 85
    1623616368    pop DS                                    ; 1f
    1623716369    pop ES                                    ; 07
    1623816370    popaw                                     ; 61
    1623916371    iret                                      ; cf
    16240 biosorg_check_before_or_at_0EC57h:           ; 0xfe9e3 LB 0x276
    16241     times 0x274 db 0
     16372biosorg_check_before_or_at_0EC57h:           ; 0xfe9d9 LB 0x280
     16373    times 0x27e db 0
    1624216374    db  'XM'
    1624316375biosorg_check_at_0EC59h:                     ; 0xfec59 LB 0x2
     
    1625516387    cld                                       ; fc
    1625616388    push 0ece9h                               ; 68 e9 ec
    16257     jmp near 03c0ch                           ; e9 9b 4f
     16389    jmp near 03cf5h                           ; e9 84 50
    1625816390    push ES                                   ; 06
    1625916391    push ax                                   ; 50
     
    1626116393    push cx                                   ; 51
    1626216394    push dx                                   ; 52
    16263     call 03be0h                               ; e8 67 4f
     16395    call 03cc9h                               ; e8 50 50
    1626416396    cmp AL, strict byte 000h                  ; 3c 00
    1626516397    je short 0ecabh                           ; 74 2e
    16266     call 03bf6h                               ; e8 76 4f
     16398    call 03cdfh                               ; e8 5f 50
    1626716399    pop dx                                    ; 5a
    1626816400    push dx                                   ; 52
     
    1628216414    cld                                       ; fc
    1628316415    push 0ece9h                               ; 68 e9 ec
    16284     jmp near 041e0h                           ; e9 49 55
     16416    jmp near 042cah                           ; e9 33 56
    1628516417    and dl, 0e0h                              ; 80 e2 e0
    1628616418    db  03ah, 0c2h
     
    1632216454    jne short 0ecc8h                          ; 75 06
    1632316455    push 0ece9h                               ; 68 e9 ec
    16324     jmp near 03288h                           ; e9 c0 45
     16456    jmp near 03303h                           ; e9 3b 46
    1632516457int13_notfloppy:                             ; 0xfecc8 LB 0x14
    1632616458    cmp dl, 0e0h                              ; 80 fa e0
     
    1632816460    shr ebx, 010h                             ; 66 c1 eb 10
    1632916461    push bx                                   ; 53
    16330     call 04614h                               ; e8 3f 59
     16462    call 046feh                               ; e8 29 5a
    1633116463    pop bx                                    ; 5b
    1633216464    sal ebx, 010h                             ; 66 c1 e3 10
     
    1633516467    cmp ah, 040h                              ; 80 fc 40
    1633616468    jnbe short 0ece6h                         ; 77 05
    16337     call 05abbh                               ; e8 d7 6d
     16469    call 05ba5h                               ; e8 c1 6e
    1633816470    jmp short 0ece9h                          ; eb 03
    16339     call 05f05h                               ; e8 1c 72
     16471    call 05fefh                               ; e8 06 73
    1634016472int13_out:                                   ; 0xfece9 LB 0x4
    1634116473    pop DS                                    ; 1f
     
    1655316685    pop DS                                    ; 1f
    1655416686    cld                                       ; fc
    16555     call 0783dh                               ; e8 60 88
     16687    call 07927h                               ; e8 4a 89
    1655616688    popaw                                     ; 61
    1655716689    pop ES                                    ; 07
     
    1658116713    pop DS                                    ; 1f
    1658216714    cld                                       ; fc
    16583     call 017cdh                               ; e8 23 27
     16715    call 0185eh                               ; e8 b4 27
    1658416716    hlt                                       ; f4
    1658516717    iret                                      ; cf
     
    1660416736    mov ax, strict word 00001h                ; b8 01 00
    1660516737    push ax                                   ; 50
    16606     call 04c7bh                               ; e8 ab 5b
     16738    call 04d65h                               ; e8 95 5c
    1660716739    inc sp                                    ; 44
    1660816740    inc sp                                    ; 44
     
    1661116743    mov ax, strict word 00002h                ; b8 02 00
    1661216744    push ax                                   ; 50
    16613     call 04c7bh                               ; e8 9e 5b
     16745    call 04d65h                               ; e8 88 5c
    1661416746    inc sp                                    ; 44
    1661516747    inc sp                                    ; 44
     
    1661816750    mov ax, strict word 00003h                ; b8 03 00
    1661916751    push ax                                   ; 50
    16620     call 04c7bh                               ; e8 91 5b
     16752    call 04d65h                               ; e8 7b 5c
    1662116753    inc sp                                    ; 44
    1662216754    inc sp                                    ; 44
     
    1662516757    mov ax, strict word 00004h                ; b8 04 00
    1662616758    push ax                                   ; 50
    16627     call 04c7bh                               ; e8 84 5b
     16759    call 04d65h                               ; e8 6e 5c
    1662816760    inc sp                                    ; 44
    1662916761    inc sp                                    ; 44
     
    1690817040    pop DS                                    ; 1f
    1690917041    cld                                       ; fc
    16910     call 06d17h                               ; e8 b0 74
     17042    call 06e01h                               ; e8 9a 75
    1691117043    pop DS                                    ; 1f
    1691217044    pop ES                                    ; 07
     
    1693017062    cmp ah, 0c2h                              ; 80 fc c2
    1693117063    je short 0f899h                           ; 74 0e
    16932     call 0664bh                               ; e8 bd 6d
     17064    call 06735h                               ; e8 a7 6e
    1693317065    popaw                                     ; 61
    1693417066    pop ES                                    ; 07
     
    1693617068    popfw                                     ; 9d
    1693717069    jmp short 0f8a7h                          ; eb 13
    16938     call 09957h                               ; e8 c0 a0
     17070    call 09a41h                               ; e8 aa a1
    1693917071    jmp short 0f88eh                          ; eb f5
    1694017072int15_handler_mouse:                         ; 0xff899 LB 0x5
    16941     call 074b2h                               ; e8 16 7c
     17073    call 0759ch                               ; e8 00 7d
    1694217074    jmp short 0f88eh                          ; eb f0
    1694317075int15_handler32:                             ; 0xff89e LB 0x9
    1694417076    pushad                                    ; 66 60
    16945     call 06981h                               ; e8 de 70
     17077    call 06a6bh                               ; e8 c8 71
    1694617078    popad                                     ; 66 61
    1694717079    jmp short 0f88fh                          ; eb e8
     
    1697517107    pop DS                                    ; 1f
    1697617108    cld                                       ; fc
    16977     call 073e8h                               ; e8 1c 7b
     17109    call 074d2h                               ; e8 06 7c
    1697817110    pop cx                                    ; 59
    1697917111    jcxz 0f8dbh                               ; e3 0c
     
    1700717139    pop DS                                    ; 1f
    1700817140    cld                                       ; fc
    17009     call 070a0h                               ; e8 9f 77
     17141    call 0718ah                               ; e8 89 78
    1701017142    popaw                                     ; 61
    1701117143    pop DS                                    ; 1f
     
    1708917221    cld                                       ; fc
    1709017222    pushad                                    ; 66 60
    17091     call 09b67h                               ; e8 ea 9c
     17223    call 09c51h                               ; e8 d4 9d
    1709217224    popad                                     ; 66 61
    1709317225    pop DS                                    ; 1f
     
    1710017232    pop DS                                    ; 1f
    1710117233    cld                                       ; fc
    17102     call 0715eh                               ; e8 d3 72
     17234    call 07248h                               ; e8 bd 73
    1710317235    popaw                                     ; 61
    1710417236    pop DS                                    ; 1f
     
    1720317335cpu_reset:                                   ; 0xffff0 LB 0x10
    1720417336    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17205     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 031h
     17337    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 03ah
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum

    r66146 r67495  
    1 0d999d86f4e7faf14b247137b10e2926 *VBoxPcBios386.rom
     18754dcaf0f6dc65cc52733150d18ab66 *VBoxPcBios386.rom
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm

    r66146 r67495  
    1111
    1212
    13 ;  Copyright (C) 2004-2016 Oracle Corporation
     13;  Copyright (C) 2004-2017 Oracle Corporation
    1414
    1515;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    880880;
    881881
    882 ;  Copyright (C) 2006-2016 Oracle Corporation
     882;  Copyright (C) 2006-2017 Oracle Corporation
    883883
    884884;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    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, 0d7h, 081h, 072h, 091h
     990    db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 0ffh, 081h, 09ah, 091h
    991991_softrst:                                    ; 0xf0076 LB 0xc
    992     db  000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 003h, 03ch, 003h, 03ch
     992    db  000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 02ah, 03ch, 02ah, 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  005h, 080h, 0eeh, 080h, 040h, 090h, 0eah, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     995    db  02dh, 080h, 016h, 081h, 068h, 090h, 012h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    996996    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    997997
     
    11901190  times 1144 db 0
    11911191
    1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8de8 class=CODE group=AUTO
     1192section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e18 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 07b9ah                               ; e8 d7 63
     1452    call 07bc2h                               ; e8 ff 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 0a080h                               ; e8 a3 87
     1598    call 0a0b0h                               ; e8 d3 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 0a0b0h                               ; e8 98 85
     1835    call 0a0e0h                               ; e8 c8 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 0a0b0h                               ; e8 1e 81
     2296    call 0a0e0h                               ; e8 4e 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 0a0b0h                               ; e8 fe 80
     2306    call 0a0e0h                               ; e8 2e 81
    23072307    mov bx, dx                                ; 89 d3
    23082308    mov word [bp-010h], dx                    ; 89 56 f0
     
    23362336    mov dx, word [es:si]                      ; 26 8b 14
    23372337    mov si, strict word 00008h                ; be 08 00
    2338     call 0a0b0h                               ; e8 ab 80
     2338    call 0a0e0h                               ; e8 db 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 0a0b0h                               ; e8 8d 80
     2347    call 0a0e0h                               ; e8 bd 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 05b4fh                               ; e8 4e 37
     2743    call 05b77h                               ; e8 76 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 0a0b0h                               ; e8 b1 7a
     2925    call 0a0e0h                               ; e8 e1 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 0a0b0h                               ; e8 d4 77
     3217    call 0a0e0h                               ; e8 04 78
    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 0a0b0h                               ; e8 bd 77
     3225    call 0a0e0h                               ; e8 ed 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 0a0b0h                               ; e8 69 77
     3259    call 0a0e0h                               ; e8 99 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 0a0b0h                               ; e8 54 77
     3266    call 0a0e0h                               ; e8 84 77
    32673267    mov word [bp-022h], dx                    ; 89 56 de
    32683268    mov ax, dx                                ; 89 d0
     
    38433843    pop bp                                    ; 5d
    38443844    retn                                      ; c3
    3845 set_diskette_ret_status_:                    ; 0xf2eb0 LB 0x19
     3845set_diskette_current_cyl_:                   ; 0xf2eb0 LB 0x2c
    38463846    push bp                                   ; 55
    38473847    mov bp, sp                                ; 89 e5
    38483848    push bx                                   ; 53
    3849     push dx                                   ; 52
    3850     xor ah, ah                                ; 30 e4
    3851     mov bx, ax                                ; 89 c3
    3852     mov dx, strict word 00041h                ; ba 41 00
     3849    mov bl, al                                ; 88 c3
     3850    cmp AL, strict byte 001h                  ; 3c 01
     3851    jbe short 02ec8h                          ; 76 0e
     3852    mov ax, 00250h                            ; b8 50 02
     3853    push ax                                   ; 50
     3854    mov ax, strict word 00007h                ; b8 07 00
     3855    push ax                                   ; 50
     3856    call 01976h                               ; e8 b1 ea
     3857    add sp, strict byte 00004h                ; 83 c4 04
     3858    xor bh, bh                                ; 30 ff
     3859    add bx, 00094h                            ; 81 c3 94 00
    38533860    mov ax, strict word 00040h                ; b8 40 00
    3854     call 01660h                               ; e8 9e e7
    3855     lea sp, [bp-004h]                         ; 8d 66 fc
    3856     pop dx                                    ; 5a
     3861    mov es, ax                                ; 8e c0
     3862    mov byte [es:bx], dl                      ; 26 88 17
     3863    lea sp, [bp-002h]                         ; 8d 66 fe
    38573864    pop bx                                    ; 5b
    38583865    pop bp                                    ; 5d
    38593866    retn                                      ; c3
    3860 set_diskette_current_cyl_:                   ; 0xf2ec9 LB 0x36
     3867floppy_wait_for_interrupt_:                  ; 0xf2edc LB 0x23
    38613868    push bp                                   ; 55
    38623869    mov bp, sp                                ; 89 e5
    38633870    push bx                                   ; 53
    3864     push cx                                   ; 51
    3865     mov bl, al                                ; 88 c3
    3866     cmp AL, strict byte 001h                  ; 3c 01
    3867     jbe short 02ee2h                          ; 76 0e
    3868     mov ax, 00250h                            ; b8 50 02
    3869     push ax                                   ; 50
    3870     mov ax, strict word 00007h                ; b8 07 00
    3871     push ax                                   ; 50
    3872     call 01976h                               ; e8 97 ea
    3873     add sp, strict byte 00004h                ; 83 c4 04
    3874     mov al, dl                                ; 88 d0
    3875     xor ah, ah                                ; 30 e4
    3876     mov cx, ax                                ; 89 c1
    3877     mov al, bl                                ; 88 d8
    3878     mov dx, ax                                ; 89 c2
    3879     add dx, 00094h                            ; 81 c2 94 00
    3880     mov bx, cx                                ; 89 cb
     3871    cli                                       ; fa
     3872    mov bx, strict word 0003eh                ; bb 3e 00
    38813873    mov ax, strict word 00040h                ; b8 40 00
    3882     call 01660h                               ; e8 68 e7
    3883     lea sp, [bp-004h]                         ; 8d 66 fc
    3884     pop cx                                    ; 59
     3874    mov es, ax                                ; 8e c0
     3875    mov al, byte [es:bx]                      ; 26 8a 07
     3876    test AL, strict byte 080h                 ; a8 80
     3877    je short 02ef4h                           ; 74 04
     3878    and AL, strict byte 080h                  ; 24 80
     3879    jmp short 02ef9h                          ; eb 05
     3880    sti                                       ; fb
     3881    hlt                                       ; f4
     3882    cli                                       ; fa
     3883    jmp short 02ee1h                          ; eb e8
     3884    lea sp, [bp-002h]                         ; 8d 66 fe
    38853885    pop bx                                    ; 5b
    38863886    pop bp                                    ; 5d
    38873887    retn                                      ; c3
    3888 floppy_wait_for_interrupt_:                  ; 0xf2eff LB 0x21
     3888floppy_wait_for_interrupt_or_timeout_:       ; 0xf2eff LB 0x38
    38893889    push bp                                   ; 55
    38903890    mov bp, sp                                ; 89 e5
    3891     push dx                                   ; 52
     3891    push bx                                   ; 53
    38923892    cli                                       ; fa
    3893     mov dx, strict word 0003eh                ; ba 3e 00
     3893    mov bx, strict word 00040h                ; bb 40 00
     3894    mov es, bx                                ; 8e c3
     3895    mov al, byte [es:bx]                      ; 26 8a 07
     3896    test al, al                               ; 84 c0
     3897    jne short 02f13h                          ; 75 03
     3898    sti                                       ; fb
     3899    jmp short 02f31h                          ; eb 1e
     3900    mov bx, strict word 0003eh                ; bb 3e 00
    38943901    mov ax, strict word 00040h                ; b8 40 00
    3895     call 01652h                               ; e8 45 e7
     3902    mov es, ax                                ; 8e c0
     3903    mov al, byte [es:bx]                      ; 26 8a 07
    38963904    test AL, strict byte 080h                 ; a8 80
    3897     je short 02f15h                           ; 74 04
    3898     and AL, strict byte 080h                  ; 24 80
    3899     jmp short 02f1ah                          ; eb 05
     3905    je short 02f2ch                           ; 74 0a
     3906    mov ah, al                                ; 88 c4
     3907    and ah, 07fh                              ; 80 e4 7f
     3908    mov byte [es:bx], ah                      ; 26 88 27
     3909    jmp short 02f31h                          ; eb 05
    39003910    sti                                       ; fb
    39013911    hlt                                       ; f4
    39023912    cli                                       ; fa
    3903     jmp short 02f04h                          ; eb ea
     3913    jmp short 02f04h                          ; eb d3
    39043914    lea sp, [bp-002h]                         ; 8d 66 fe
    3905     pop dx                                    ; 5a
     3915    pop bx                                    ; 5b
    39063916    pop bp                                    ; 5d
    39073917    retn                                      ; c3
    3908 floppy_wait_for_interrupt_or_timeout_:       ; 0xf2f20 LB 0x47
     3918floppy_reset_controller_:                    ; 0xf2f37 LB 0x3f
    39093919    push bp                                   ; 55
    39103920    mov bp, sp                                ; 89 e5
     
    39123922    push cx                                   ; 51
    39133923    push dx                                   ; 52
    3914     cli                                       ; fa
    3915     mov dx, strict word 00040h                ; ba 40 00
    3916     mov ax, dx                                ; 89 d0
    3917     call 01652h                               ; e8 23 e7
    3918     test al, al                               ; 84 c0
    3919     jne short 02f38h                          ; 75 05
    3920     sti                                       ; fb
    3921     xor cl, cl                                ; 30 c9
    3922     jmp short 02f5dh                          ; eb 25
    3923     mov dx, strict word 0003eh                ; ba 3e 00
     3924    mov cx, ax                                ; 89 c1
     3925    mov dx, 003f2h                            ; ba f2 03
     3926    in AL, DX                                 ; ec
     3927    db  02ah, 0e4h
     3928    ; sub ah, ah                                ; 2a e4
     3929    mov bx, ax                                ; 89 c3
     3930    and AL, strict byte 0fbh                  ; 24 fb
     3931    out DX, AL                                ; ee
     3932    mov al, bl                                ; 88 d8
     3933    or AL, strict byte 004h                   ; 0c 04
     3934    out DX, AL                                ; ee
     3935    mov dx, 003f4h                            ; ba f4 03
     3936    in AL, DX                                 ; ec
     3937    db  02ah, 0e4h
     3938    ; sub ah, ah                                ; 2a e4
     3939    and AL, strict byte 0c0h                  ; 24 c0
     3940    cmp AL, strict byte 080h                  ; 3c 80
     3941    jne short 02f4fh                          ; 75 f4
     3942    mov bx, cx                                ; 89 cb
     3943    add bx, 00090h                            ; 81 c3 90 00
    39243944    mov ax, strict word 00040h                ; b8 40 00
    3925     call 01652h                               ; e8 11 e7
    3926     mov cl, al                                ; 88 c1
    3927     test AL, strict byte 080h                 ; a8 80
    3928     je short 02f58h                           ; 74 11
    3929     and AL, strict byte 07fh                  ; 24 7f
    3930     xor ah, ah                                ; 30 e4
    3931     mov bx, ax                                ; 89 c3
    3932     mov dx, strict word 0003eh                ; ba 3e 00
    3933     mov ax, strict word 00040h                ; b8 40 00
    3934     call 01660h                               ; e8 0a e7
    3935     jmp short 02f5dh                          ; eb 05
    3936     sti                                       ; fb
    3937     hlt                                       ; f4
    3938     cli                                       ; fa
    3939     jmp short 02f27h                          ; eb ca
    3940     mov al, cl                                ; 88 c8
     3945    mov es, ax                                ; 8e c0
     3946    mov al, byte [es:bx]                      ; 26 8a 07
     3947    and AL, strict byte 0efh                  ; 24 ef
     3948    mov byte [es:bx], al                      ; 26 88 07
    39413949    lea sp, [bp-006h]                         ; 8d 66 fa
    39423950    pop dx                                    ; 5a
     
    39453953    pop bp                                    ; 5d
    39463954    retn                                      ; c3
    3947 floppy_reset_controller_:                    ; 0xf2f67 LB 0x46
     3955floppy_prepare_controller_:                  ; 0xf2f76 LB 0x75
    39483956    push bp                                   ; 55
    39493957    mov bp, sp                                ; 89 e5
     
    39513959    push cx                                   ; 51
    39523960    push dx                                   ; 52
    3953     mov bx, ax                                ; 89 c3
    3954     mov dx, 003f2h                            ; ba f2 03
    3955     in AL, DX                                 ; ec
    3956     db  02ah, 0e4h
    3957     ; sub ah, ah                                ; 2a e4
     3961    push ax                                   ; 50
    39583962    mov cx, ax                                ; 89 c1
    3959     and AL, strict byte 0fbh                  ; 24 fb
    3960     out DX, AL                                ; ee
    3961     mov al, cl                                ; 88 c8
    3962     or AL, strict byte 004h                   ; 0c 04
    3963     out DX, AL                                ; ee
    3964     mov dx, 003f4h                            ; ba f4 03
    3965     in AL, DX                                 ; ec
    3966     db  02ah, 0e4h
    3967     ; sub ah, ah                                ; 2a e4
    3968     and AL, strict byte 0c0h                  ; 24 c0
    3969     cmp AL, strict byte 080h                  ; 3c 80
    3970     jne short 02f7fh                          ; 75 f4
    3971     lea cx, [bx+00090h]                       ; 8d 8f 90 00
    3972     mov dx, cx                                ; 89 ca
     3963    mov bx, strict word 0003eh                ; bb 3e 00
    39733964    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
    3982     pop dx                                    ; 5a
    3983     pop cx                                    ; 59
    3984     pop bx                                    ; 5b
    3985     pop bp                                    ; 5d
    3986     retn                                      ; c3
    3987 floppy_prepare_controller_:                  ; 0xf2fad LB 0x84
    3988     push bp                                   ; 55
    3989     mov bp, sp                                ; 89 e5
    3990     push bx                                   ; 53
    3991     push cx                                   ; 51
    3992     push dx                                   ; 52
    3993     push ax                                   ; 50
    3994     mov cx, ax                                ; 89 c1
    3995     mov dx, strict word 0003eh                ; ba 3e 00
    3996     mov ax, strict word 00040h                ; b8 40 00
    3997     call 01652h                               ; e8 93 e6
     3965    mov es, ax                                ; 8e c0
     3966    mov al, byte [es:bx]                      ; 26 8a 07
    39983967    and AL, strict byte 07fh                  ; 24 7f
    3999     xor ah, ah                                ; 30 e4
    4000     mov bx, ax                                ; 89 c3
    4001     mov dx, strict word 0003eh                ; ba 3e 00
    4002     mov ax, strict word 00040h                ; b8 40 00
    4003     call 01660h                               ; e8 92 e6
     3968    mov byte [es:bx], al                      ; 26 88 07
    40043969    mov dx, 003f2h                            ; ba f2 03
    40053970    in AL, DX                                 ; ec
     
    40093974    mov byte [bp-008h], al                    ; 88 46 f8
    40103975    test cx, cx                               ; 85 c9
    4011     je short 02fe1h                           ; 74 04
     3976    je short 02fa2h                           ; 74 04
    40123977    mov AL, strict byte 020h                  ; b0 20
    4013     jmp short 02fe3h                          ; eb 02
     3978    jmp short 02fa4h                          ; eb 02
    40143979    mov AL, strict byte 010h                  ; b0 10
    40153980    or AL, strict byte 00ch                   ; 0c 0c
     
    40173982    mov dx, 003f2h                            ; ba f2 03
    40183983    out DX, AL                                ; ee
    4019     mov bx, strict word 00025h                ; bb 25 00
    4020     mov dx, strict word 00040h                ; ba 40 00
    4021     mov ax, dx                                ; 89 d0
    4022     call 01660h                               ; e8 6a e6
    4023     mov dx, 0008bh                            ; ba 8b 00
    4024     mov ax, strict word 00040h                ; b8 40 00
    4025     call 01652h                               ; e8 53 e6
     3984    mov bx, strict word 00040h                ; bb 40 00
     3985    mov es, bx                                ; 8e c3
     3986    mov byte [es:bx], 025h                    ; 26 c6 07 25
     3987    mov bx, 0008bh                            ; bb 8b 00
     3988    mov al, byte [es:bx]                      ; 26 8a 07
    40263989    mov CL, strict byte 006h                  ; b1 06
    40273990    shr al, CL                                ; d2 e8
     
    40343997    and AL, strict byte 0c0h                  ; 24 c0
    40353998    cmp AL, strict byte 080h                  ; 3c 80
    4036     jne short 03007h                          ; 75 f4
     3999    jne short 02fc3h                          ; 75 f4
    40374000    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    4038     jne short 03029h                          ; 75 10
    4039     call 02effh                               ; e8 e3 fe
    4040     mov bl, al                                ; 88 c3
    4041     xor bh, bh                                ; 30 ff
    4042     mov dx, strict word 0003eh                ; ba 3e 00
    4043     mov ax, strict word 00040h                ; b8 40 00
    4044     call 01660h                               ; e8 37 e6
     4001    jne short 02fe3h                          ; 75 0e
     4002    call 02edch                               ; e8 04 ff
     4003    mov bx, strict word 0003eh                ; bb 3e 00
     4004    mov dx, strict word 00040h                ; ba 40 00
     4005    mov es, dx                                ; 8e c2
     4006    mov byte [es:bx], al                      ; 26 88 07
    40454007    lea sp, [bp-006h]                         ; 8d 66 fa
    40464008    pop dx                                    ; 5a
     
    40494011    pop bp                                    ; 5d
    40504012    retn                                      ; c3
    4051 floppy_media_known_:                         ; 0xf3031 LB 0x46
    4052     push bp                                   ; 55
    4053     mov bp, sp                                ; 89 e5
     4013floppy_media_known_:                         ; 0xf2feb LB 0x4c
    40544014    push bx                                   ; 53
    40554015    push cx                                   ; 51
    40564016    push dx                                   ; 52
    4057     mov bx, ax                                ; 89 c3
    4058     mov dx, strict word 0003eh                ; ba 3e 00
     4017    push bp                                   ; 55
     4018    mov bp, sp                                ; 89 e5
     4019    mov bx, strict word 0003eh                ; bb 3e 00
     4020    mov dx, strict word 00040h                ; ba 40 00
     4021    mov es, dx                                ; 8e c2
     4022    mov bh, byte [es:bx]                      ; 26 8a 3f
     4023    mov bl, bh                                ; 88 fb
     4024    test ax, ax                               ; 85 c0
     4025    je short 03004h                           ; 74 02
     4026    shr bl, 1                                 ; d0 eb
     4027    and bl, 001h                              ; 80 e3 01
     4028    jne short 0300dh                          ; 75 04
     4029    xor bh, bh                                ; 30 ff
     4030    jmp short 03030h                          ; eb 23
     4031    mov bx, 00090h                            ; bb 90 00
     4032    test ax, ax                               ; 85 c0
     4033    je short 03017h                           ; 74 03
     4034    mov bx, 00091h                            ; bb 91 00
    40594035    mov ax, strict word 00040h                ; b8 40 00
    4060     call 01652h                               ; e8 10 e6
    4061     mov ah, al                                ; 88 c4
    4062     test bx, bx                               ; 85 db
    4063     je short 0304ah                           ; 74 02
    4064     shr al, 1                                 ; d0 e8
    4065     and AL, strict byte 001h                  ; 24 01
    4066     jne short 03052h                          ; 75 04
    4067     xor ah, ah                                ; 30 e4
    4068     jmp short 0306fh                          ; eb 1d
    4069     mov dx, 00090h                            ; ba 90 00
    4070     test bx, bx                               ; 85 db
    4071     je short 0305ch                           ; 74 03
    4072     mov dx, 00091h                            ; ba 91 00
    4073     mov ax, strict word 00040h                ; b8 40 00
    4074     call 01652h                               ; e8 f0 e5
     4036    mov es, ax                                ; 8e c0
     4037    mov al, byte [es:bx]                      ; 26 8a 07
    40754038    xor ah, ah                                ; 30 e4
    40764039    mov CL, strict byte 004h                  ; b1 04
    40774040    sar ax, CL                                ; d3 f8
    40784041    and AL, strict byte 001h                  ; 24 01
    4079     je short 0304eh                           ; 74 e2
    4080     mov ax, strict word 00001h                ; b8 01 00
    4081     lea sp, [bp-006h]                         ; 8d 66 fa
     4042    jne short 0302dh                          ; 75 04
     4043    xor bx, bx                                ; 31 db
     4044    jmp short 03030h                          ; eb 03
     4045    mov bx, strict word 00001h                ; bb 01 00
     4046    mov ax, bx                                ; 89 d8
     4047    pop bp                                    ; 5d
    40824048    pop dx                                    ; 5a
    40834049    pop cx                                    ; 59
    40844050    pop bx                                    ; 5b
    4085     pop bp                                    ; 5d
    40864051    retn                                      ; c3
    4087 floppy_read_id_:                             ; 0xf3077 LB 0x44
     4052floppy_read_id_:                             ; 0xf3037 LB 0x52
    40884053    push bp                                   ; 55
    40894054    mov bp, sp                                ; 89 e5
     
    40914056    push dx                                   ; 52
    40924057    push si                                   ; 56
    4093     sub sp, strict byte 00008h                ; 83 ec 08
    40944058    mov bx, ax                                ; 89 c3
    4095     call 02fadh                               ; e8 28 ff
     4059    call 02f76h                               ; e8 34 ff
    40964060    mov AL, strict byte 04ah                  ; b0 4a
    40974061    mov dx, 003f5h                            ; ba f5 03
     
    40994063    mov al, bl                                ; 88 d8
    41004064    out DX, AL                                ; ee
    4101     call 02effh                               ; e8 6e fe
    4102     xor si, si                                ; 31 f6
    4103     jmp short 0309ah                          ; eb 05
    4104     cmp si, strict byte 00007h                ; 83 fe 07
    4105     jnl short 030a6h                          ; 7d 0c
     4065    call 02edch                               ; e8 8e fe
     4066    xor bx, bx                                ; 31 db
     4067    jmp short 03057h                          ; eb 05
     4068    cmp bx, strict byte 00007h                ; 83 fb 07
     4069    jnl short 0306bh                          ; 7d 14
    41064070    mov dx, 003f5h                            ; ba f5 03
    41074071    in AL, DX                                 ; ec
    41084072    db  02ah, 0e4h
    41094073    ; sub ah, ah                                ; 2a e4
    4110     mov byte [bp+si-00eh], al                 ; 88 42 f2
    4111     inc si                                    ; 46
    4112     jmp short 03095h                          ; eb ef
    4113     test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
    4114     je short 030b0h                           ; 74 04
     4074    lea si, [bx+042h]                         ; 8d 77 42
     4075    mov dx, strict word 00040h                ; ba 40 00
     4076    mov es, dx                                ; 8e c2
     4077    mov byte [es:si], al                      ; 26 88 04
     4078    inc bx                                    ; 43
     4079    jmp short 03052h                          ; eb e7
     4080    mov bx, strict word 00042h                ; bb 42 00
     4081    mov ax, strict word 00040h                ; b8 40 00
     4082    mov es, ax                                ; 8e c0
     4083    mov al, byte [es:bx]                      ; 26 8a 07
     4084    test AL, strict byte 0c0h                 ; a8 c0
     4085    je short 0307eh                           ; 74 04
    41154086    xor ax, ax                                ; 31 c0
    4116     jmp short 030b3h                          ; eb 03
     4087    jmp short 03081h                          ; eb 03
    41174088    mov ax, strict word 00001h                ; b8 01 00
    41184089    lea sp, [bp-006h]                         ; 8d 66 fa
     
    41224093    pop bp                                    ; 5d
    41234094    retn                                      ; c3
    4124 floppy_drive_recal_:                         ; 0xf30bb LB 0x4d
     4095floppy_drive_recal_:                         ; 0xf3089 LB 0x41
    41254096    push bp                                   ; 55
    41264097    mov bp, sp                                ; 89 e5
    41274098    push bx                                   ; 53
    4128     push cx                                   ; 51
    41294099    push dx                                   ; 52
     4100    push si                                   ; 56
    41304101    mov bx, ax                                ; 89 c3
    4131     call 02fadh                               ; e8 e7 fe
     4102    call 02f76h                               ; e8 e2 fe
    41324103    mov AL, strict byte 007h                  ; b0 07
    41334104    mov dx, 003f5h                            ; ba f5 03
     
    41354106    mov al, bl                                ; 88 d8
    41364107    out DX, AL                                ; ee
    4137     call 02effh                               ; e8 2d fe
     4108    call 02edch                               ; e8 3c fe
    41384109    test bx, bx                               ; 85 db
    4139     je short 030e0h                           ; 74 0a
    4140     mov bl, al                                ; 88 c3
    4141     or bl, 002h                               ; 80 cb 02
    4142     mov cx, 00095h                            ; b9 95 00
    4143     jmp short 030e8h                          ; eb 08
    4144     mov bl, al                                ; 88 c3
    4145     or bl, 001h                               ; 80 cb 01
    4146     mov cx, 00094h                            ; b9 94 00
    4147     xor bh, bh                                ; 30 ff
    4148     mov dx, strict word 0003eh                ; ba 3e 00
    4149     mov ax, strict word 00040h                ; b8 40 00
    4150     call 01660h                               ; e8 6d e5
    4151     xor bx, bx                                ; 31 db
    4152     mov dx, cx                                ; 89 ca
    4153     mov ax, strict word 00040h                ; b8 40 00
    4154     call 01660h                               ; e8 63 e5
     4110    je short 030abh                           ; 74 07
     4111    or AL, strict byte 002h                   ; 0c 02
     4112    mov bx, 00095h                            ; bb 95 00
     4113    jmp short 030b0h                          ; eb 05
     4114    or AL, strict byte 001h                   ; 0c 01
     4115    mov bx, 00094h                            ; bb 94 00
     4116    mov si, strict word 0003eh                ; be 3e 00
     4117    mov dx, strict word 00040h                ; ba 40 00
     4118    mov es, dx                                ; 8e c2
     4119    mov byte [es:si], al                      ; 26 88 04
     4120    mov byte [es:bx], 000h                    ; 26 c6 07 00
    41554121    mov ax, strict word 00001h                ; b8 01 00
    41564122    lea sp, [bp-006h]                         ; 8d 66 fa
     4123    pop si                                    ; 5e
    41574124    pop dx                                    ; 5a
    4158     pop cx                                    ; 59
    41594125    pop bx                                    ; 5b
    41604126    pop bp                                    ; 5d
    41614127    retn                                      ; c3
    4162 floppy_media_sense_:                         ; 0xf3108 LB 0xfa
     4128floppy_media_sense_:                         ; 0xf30ca LB 0xe7
    41634129    push bp                                   ; 55
    41644130    mov bp, sp                                ; 89 e5
     
    41684134    push si                                   ; 56
    41694135    push di                                   ; 57
    4170     mov di, ax                                ; 89 c7
    4171     call 030bbh                               ; e8 a6 ff
     4136    mov si, ax                                ; 89 c6
     4137    call 03089h                               ; e8 b2 ff
    41724138    test ax, ax                               ; 85 c0
    4173     jne short 0311eh                          ; 75 05
    4174     xor cx, cx                                ; 31 c9
    4175     jmp near 031f6h                           ; e9 d8 00
     4139    jne short 030e0h                          ; 75 05
     4140    xor dx, dx                                ; 31 d2
     4141    jmp near 031a5h                           ; e9 c5 00
    41764142    mov ax, strict word 00010h                ; b8 10 00
    4177     call 016aeh                               ; e8 8a e5
    4178     test di, di                               ; 85 ff
    4179     jne short 03130h                          ; 75 08
     4143    call 016aeh                               ; e8 c8 e5
     4144    test si, si                               ; 85 f6
     4145    jne short 030f2h                          ; 75 08
    41804146    mov CL, strict byte 004h                  ; b1 04
    4181     shr al, CL                                ; d2 e8
    4182     mov cl, al                                ; 88 c1
    4183     jmp short 03135h                          ; eb 05
    4184     mov cl, al                                ; 88 c1
    4185     and cl, 00fh                              ; 80 e1 0f
    4186     cmp cl, 001h                              ; 80 f9 01
    4187     jne short 03143h                          ; 75 09
    4188     xor cl, cl                                ; 30 c9
    4189     mov CH, strict byte 015h                  ; b5 15
    4190     mov si, strict word 00001h                ; be 01 00
    4191     jmp short 03181h                          ; eb 3e
    4192     cmp cl, 002h                              ; 80 f9 02
    4193     jne short 0314eh                          ; 75 06
    4194     xor cl, cl                                ; 30 c9
    4195     mov CH, strict byte 035h                  ; b5 35
    4196     jmp short 0313eh                          ; eb f0
    4197     cmp cl, 003h                              ; 80 f9 03
    4198     jne short 03159h                          ; 75 06
    4199     xor cl, cl                                ; 30 c9
    4200     mov CH, strict byte 017h                  ; b5 17
    4201     jmp short 0313eh                          ; eb e5
    4202     cmp cl, 004h                              ; 80 f9 04
    4203     jne short 03164h                          ; 75 06
    4204     xor cl, cl                                ; 30 c9
    4205     mov CH, strict byte 017h                  ; b5 17
    4206     jmp short 0313eh                          ; eb da
    4207     cmp cl, 005h                              ; 80 f9 05
    4208     jne short 0316fh                          ; 75 06
    4209     mov CL, strict byte 0cch                  ; b1 cc
    4210     mov CH, strict byte 0d7h                  ; b5 d7
    4211     jmp short 0313eh                          ; eb cf
    4212     cmp cl, 00eh                              ; 80 f9 0e
    4213     je short 03179h                           ; 74 05
    4214     cmp cl, 00fh                              ; 80 f9 0f
    4215     jne short 0317bh                          ; 75 02
    4216     jmp short 03169h                          ; eb ee
    4217     xor cl, cl                                ; 30 c9
    4218     xor ch, ch                                ; 30 ed
    4219     xor si, si                                ; 31 f6
    4220     mov al, cl                                ; 88 c8
    4221     xor ah, ah                                ; 30 e4
    4222     mov bx, ax                                ; 89 c3
    4223     mov dx, 0008bh                            ; ba 8b 00
     4147    mov dl, al                                ; 88 c2
     4148    shr dl, CL                                ; d2 ea
     4149    jmp short 030f7h                          ; eb 05
     4150    mov dl, al                                ; 88 c2
     4151    and dl, 00fh                              ; 80 e2 0f
     4152    cmp dl, 001h                              ; 80 fa 01
     4153    jne short 03105h                          ; 75 09
     4154    xor dl, dl                                ; 30 d2
     4155    mov DH, strict byte 015h                  ; b6 15
     4156    mov bx, strict word 00001h                ; bb 01 00
     4157    jmp short 03143h                          ; eb 3e
     4158    cmp dl, 002h                              ; 80 fa 02
     4159    jne short 03110h                          ; 75 06
     4160    xor dl, dl                                ; 30 d2
     4161    mov DH, strict byte 035h                  ; b6 35
     4162    jmp short 03100h                          ; eb f0
     4163    cmp dl, 003h                              ; 80 fa 03
     4164    jne short 0311bh                          ; 75 06
     4165    xor dl, dl                                ; 30 d2
     4166    mov DH, strict byte 017h                  ; b6 17
     4167    jmp short 03100h                          ; eb e5
     4168    cmp dl, 004h                              ; 80 fa 04
     4169    jne short 03126h                          ; 75 06
     4170    xor dl, dl                                ; 30 d2
     4171    mov DH, strict byte 017h                  ; b6 17
     4172    jmp short 03100h                          ; eb da
     4173    cmp dl, 005h                              ; 80 fa 05
     4174    jne short 03131h                          ; 75 06
     4175    mov DL, strict byte 0cch                  ; b2 cc
     4176    mov DH, strict byte 0d7h                  ; b6 d7
     4177    jmp short 03100h                          ; eb cf
     4178    cmp dl, 00eh                              ; 80 fa 0e
     4179    je short 0313bh                           ; 74 05
     4180    cmp dl, 00fh                              ; 80 fa 0f
     4181    jne short 0313dh                          ; 75 02
     4182    jmp short 0312bh                          ; eb ee
     4183    xor dl, dl                                ; 30 d2
     4184    xor dh, dh                                ; 30 f6
     4185    xor bx, bx                                ; 31 db
     4186    mov di, 0008bh                            ; bf 8b 00
    42244187    mov ax, strict word 00040h                ; b8 40 00
    4225     call 01660h                               ; e8 d0 e4
    4226     mov ax, di                                ; 89 f8
    4227     call 03077h                               ; e8 e2 fe
     4188    mov es, ax                                ; 8e c0
     4189    mov byte [es:di], dl                      ; 26 88 15
     4190    mov ax, si                                ; 89 f0
     4191    call 03037h                               ; e8 e4 fe
    42284192    test ax, ax                               ; 85 c0
    4229     jne short 031cbh                          ; 75 32
    4230     mov al, cl                                ; 88 c8
     4193    jne short 03189h                          ; 75 32
     4194    mov al, dl                                ; 88 d0
    42314195    and AL, strict byte 0c0h                  ; 24 c0
    42324196    cmp AL, strict byte 080h                  ; 3c 80
    4233     je short 031cbh                           ; 74 2a
    4234     mov al, cl                                ; 88 c8
     4197    je short 03189h                           ; 74 2a
     4198    mov al, dl                                ; 88 d0
    42354199    and AL, strict byte 0c0h                  ; 24 c0
    42364200    cmp AL, strict byte 0c0h                  ; 3c c0
    4237     je short 031b8h                           ; 74 0f
    4238     mov ah, cl                                ; 88 cc
     4201    je short 03176h                           ; 74 0f
     4202    mov ah, dl                                ; 88 d4
    42394203    and ah, 03fh                              ; 80 e4 3f
    42404204    cmp AL, strict byte 040h                  ; 3c 40
    4241     je short 031c4h                           ; 74 12
     4205    je short 03182h                           ; 74 12
    42424206    test al, al                               ; 84 c0
    4243     je short 031bdh                           ; 74 07
    4244     jmp short 03181h                          ; eb c9
    4245     and cl, 03fh                              ; 80 e1 3f
    4246     jmp short 03181h                          ; eb c4
    4247     mov cl, ah                                ; 88 e1
    4248     or cl, 040h                               ; 80 c9 40
    4249     jmp short 03181h                          ; eb bd
    4250     mov cl, ah                                ; 88 e1
    4251     or cl, 080h                               ; 80 c9 80
    4252     jmp short 03181h                          ; eb b6
    4253     test di, di                               ; 85 ff
    4254     jne short 031d4h                          ; 75 05
    4255     mov di, 00090h                            ; bf 90 00
    4256     jmp short 031d7h                          ; eb 03
    4257     mov di, 00091h                            ; bf 91 00
    4258     mov al, cl                                ; 88 c8
    4259     xor ah, ah                                ; 30 e4
    4260     mov bx, ax                                ; 89 c3
    4261     mov dx, 0008bh                            ; ba 8b 00
     4207    je short 0317bh                           ; 74 07
     4208    jmp short 03143h                          ; eb cd
     4209    and dl, 03fh                              ; 80 e2 3f
     4210    jmp short 03143h                          ; eb c8
     4211    mov dl, ah                                ; 88 e2
     4212    or dl, 040h                               ; 80 ca 40
     4213    jmp short 03143h                          ; eb c1
     4214    mov dl, ah                                ; 88 e2
     4215    or dl, 080h                               ; 80 ca 80
     4216    jmp short 03143h                          ; eb ba
     4217    test si, si                               ; 85 f6
     4218    jne short 03192h                          ; 75 05
     4219    mov si, 00090h                            ; be 90 00
     4220    jmp short 03195h                          ; eb 03
     4221    mov si, 00091h                            ; be 91 00
     4222    mov di, 0008bh                            ; bf 8b 00
    42624223    mov ax, strict word 00040h                ; b8 40 00
    4263     call 01660h                               ; e8 7a e4
    4264     mov al, ch                                ; 88 e8
    4265     xor ah, ah                                ; 30 e4
    4266     mov bx, ax                                ; 89 c3
    4267     mov dx, di                                ; 89 fa
    4268     mov ax, strict word 00040h                ; b8 40 00
    4269     call 01660h                               ; e8 6c e4
    4270     mov cx, si                                ; 89 f1
    4271     mov ax, cx                                ; 89 c8
     4224    mov es, ax                                ; 8e c0
     4225    mov byte [es:di], dl                      ; 26 88 15
     4226    mov byte [es:si], dh                      ; 26 88 34
     4227    mov dx, bx                                ; 89 da
     4228    mov ax, dx                                ; 89 d0
    42724229    lea sp, [bp-00ah]                         ; 8d 66 f6
    42734230    pop di                                    ; 5f
     
    42784235    pop bp                                    ; 5d
    42794236    retn                                      ; c3
    4280 floppy_drive_exists_:                        ; 0xf3202 LB 0x2b
     4237floppy_drive_exists_:                        ; 0xf31b1 LB 0x4e
    42814238    push bp                                   ; 55
    42824239    mov bp, sp                                ; 89 e5
     
    42854242    mov dx, ax                                ; 89 c2
    42864243    mov ax, strict word 00010h                ; b8 10 00
    4287     call 016aeh                               ; e8 9f e4
     4244    call 016aeh                               ; e8 f0 e4
    42884245    test dx, dx                               ; 85 d2
    4289     jne short 03219h                          ; 75 06
     4246    jne short 031c8h                          ; 75 06
    42904247    mov CL, strict byte 004h                  ; b1 04
    42914248    shr al, CL                                ; d2 e8
    4292     jmp short 0321bh                          ; eb 02
     4249    jmp short 031cah                          ; eb 02
    42934250    and AL, strict byte 00fh                  ; 24 0f
    42944251    test al, al                               ; 84 c0
    4295     je short 03224h                           ; 74 05
     4252    je short 031d3h                           ; 74 05
    42964253    mov ax, strict word 00001h                ; b8 01 00
    4297     jmp short 03226h                          ; eb 02
     4254    jmp short 031d5h                          ; eb 02
    42984255    xor ah, ah                                ; 30 e4
    42994256    lea sp, [bp-004h]                         ; 8d 66 fc
     
    43024259    pop bp                                    ; 5d
    43034260    retn                                      ; c3
    4304 _int13_diskette_function:                    ; 0xf322d LB 0x9a4
     4261    sbb byte [bx], dl                         ; 18 17
     4262    push SS                                   ; 16
     4263    adc ax, 00508h                            ; 15 08 05
     4264    add AL, strict byte 003h                  ; 04 03
     4265    add al, byte [bx+di]                      ; 02 01
     4266    add dl, dl                                ; 00 d2
     4267    cmp di, word [bx+di]                      ; 3b 39
     4268    xor bh, byte [bp+di-02aceh]               ; 32 bb 32 d5
     4269    db  032h, 0d5h
     4270    ; xor dl, ch                                ; 32 d5
     4271    db  032h, 0d5h
     4272    ; xor dl, ch                                ; 32 d5
     4273    xor al, byte [bp+06a36h]                  ; 32 86 36 6a
     4274    cmp byte [di+039h], ah                    ; 38 65 39
     4275    test AL, strict byte 039h                 ; a8 39
     4276    fdivr qword [bx+di]                       ; dc 39
     4277    push ax                                   ; 50
     4278    db  03ah
     4279_int13_diskette_function:                    ; 0xf31ff LB 0x9f9
    43054280    push bp                                   ; 55
    43064281    mov bp, sp                                ; 89 e5
    4307     push si                                   ; 56
    4308     push di                                   ; 57
    4309     sub sp, strict byte 00018h                ; 83 ec 18
    4310     mov bl, byte [bp+017h]                    ; 8a 5e 17
    4311     xor bh, bh                                ; 30 ff
    4312     mov cl, bl                                ; 88 d9
    4313     mov si, word [bp+016h]                    ; 8b 76 16
    4314     and si, 000ffh                            ; 81 e6 ff 00
    4315     mov al, byte [bp+00eh]                    ; 8a 46 0e
    4316     mov dl, byte [bp+014h]                    ; 8a 56 14
    4317     mov byte [bp-010h], dl                    ; 88 56 f0
    4318     mov ch, byte [bp+016h]                    ; 8a 6e 16
    4319     mov dl, byte [bp+015h]                    ; 8a 56 15
    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
    4323     cmp bl, 008h                              ; 80 fb 08
    4324     jc short 0328eh                           ; 72 2e
    4325     mov dx, word [bp+01ch]                    ; 8b 56 1c
    4326     or dl, 001h                               ; 80 ca 01
    4327     cmp bl, 008h                              ; 80 fb 08
    4328     jbe short 032c4h                          ; 76 59
    4329     cmp bl, 016h                              ; 80 fb 16
    4330     jc short 03286h                           ; 72 16
     4282    sub sp, strict byte 0000eh                ; 83 ec 0e
     4283    mov al, byte [bp+017h]                    ; 8a 46 17
     4284    xor ah, ah                                ; 30 e4
     4285    mov dx, ax                                ; 89 c2
     4286    cmp ax, strict word 00018h                ; 3d 18 00
     4287    jnbe short 0326dh                         ; 77 5c
     4288    push CS                                   ; 0e
     4289    pop ES                                    ; 07
     4290    mov cx, strict word 0000ch                ; b9 0c 00
     4291    mov di, 031dch                            ; bf dc 31
     4292    repne scasb                               ; f2 ae
     4293    sal cx, 1                                 ; d1 e1
     4294    mov di, cx                                ; 89 cf
     4295    mov di, word [cs:di+031e7h]               ; 2e 8b bd e7 31
     4296    mov cx, word [bp+016h]                    ; 8b 4e 16
     4297    xor ch, ch                                ; 30 ed
     4298    mov dl, byte [bp+00eh]                    ; 8a 56 0e
     4299    mov ax, word [bp+01ch]                    ; 8b 46 1c
     4300    or AL, strict byte 001h                   ; 0c 01
     4301    mov si, cx                                ; 89 ce
    43314302    or si, 00100h                             ; 81 ce 00 01
    4332     cmp bl, 016h                              ; 80 fb 16
    4333     jbe short 032c7h                          ; 76 4e
    4334     cmp bl, 018h                              ; 80 fb 18
    4335     je short 032cah                           ; 74 4c
    4336     cmp bl, 017h                              ; 80 fb 17
    4337     je short 032e1h                           ; 74 5e
    4338     jmp near 03babh                           ; e9 25 09
    4339     cmp bl, 015h                              ; 80 fb 15
    4340     je short 032e4h                           ; 74 59
    4341     jmp near 03babh                           ; e9 1d 09
     4303    jmp di                                    ; ff e7
     4304    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    43424305    cmp bl, 001h                              ; 80 fb 01
    4343     jc short 032a2h                           ; 72 0f
    4344     jbe short 032e7h                          ; 76 52
    4345     cmp bl, 005h                              ; 80 fb 05
    4346     je short 03302h                           ; 74 68
    4347     cmp bl, 004h                              ; 80 fb 04
    4348     jbe short 03305h                          ; 76 66
    4349     jmp near 03babh                           ; e9 09 09
    4350     test bl, bl                               ; 84 db
    4351     jne short 03307h                          ; 75 61
    4352     mov al, byte [bp+00eh]                    ; 8a 46 0e
    4353     mov byte [bp-006h], al                    ; 88 46 fa
    4354     cmp AL, strict byte 001h                  ; 3c 01
    4355     jbe short 032cdh                          ; 76 1d
     4306    jbe short 0325bh                          ; 76 1a
    43564307    mov ax, word [bp+016h]                    ; 8b 46 16
    43574308    xor ah, ah                                ; 30 e4
    43584309    or ah, 001h                               ; 80 cc 01
    43594310    mov word [bp+016h], ax                    ; 89 46 16
    4360     mov ax, strict word 00001h                ; b8 01 00
    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
     4311    mov bx, strict word 00041h                ; bb 41 00
     4312    mov ax, strict word 00040h                ; b8 40 00
     4313    mov es, ax                                ; 8e c0
     4314    mov byte [es:bx], 001h                    ; 26 c6 07 01
     4315    jmp near 03abdh                           ; e9 62 08
    43664316    mov ax, strict word 00010h                ; b8 10 00
    4367     call 016aeh                               ; e8 db e3
    4368     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4369     jne short 032e9h                          ; 75 10
     4317    call 016aeh                               ; e8 4d e4
     4318    test bl, bl                               ; 84 db
     4319    jne short 03270h                          ; 75 0b
    43704320    mov CL, strict byte 004h                  ; b1 04
    4371     mov ch, al                                ; 88 c5
    4372     shr ch, CL                                ; d2 ed
    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
    4377     mov ch, al                                ; 88 c5
    4378     and ch, 00fh                              ; 80 e5 0f
    4379     test ch, ch                               ; 84 ed
    4380     jne short 0330ah                          ; 75 18
     4321    mov dl, al                                ; 88 c2
     4322    shr dl, CL                                ; d2 ea
     4323    jmp short 03275h                          ; eb 08
     4324    jmp near 03bd2h                           ; e9 62 09
     4325    mov dl, al                                ; 88 c2
     4326    and dl, 00fh                              ; 80 e2 0f
     4327    test dl, dl                               ; 84 d2
     4328    jne short 03293h                          ; 75 1a
    43814329    mov ax, word [bp+016h]                    ; 8b 46 16
    43824330    xor ah, ah                                ; 30 e4
    43834331    or ah, 080h                               ; 80 cc 80
    43844332    mov word [bp+016h], ax                    ; 89 46 16
    4385     mov ax, 00080h                            ; b8 80 00
    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
    4390     xor bx, bx                                ; 31 db
    4391     mov dx, strict word 0003eh                ; ba 3e 00
     4333    mov bx, strict word 00041h                ; bb 41 00
    43924334    mov ax, strict word 00040h                ; b8 40 00
    4393     call 01660h                               ; e8 4b e3
     4335    mov es, ax                                ; 8e c0
     4336    mov byte [es:bx], 080h                    ; 26 c6 07 80
     4337    jmp near 03abdh                           ; e9 2a 08
     4338    mov si, strict word 0003eh                ; be 3e 00
     4339    mov ax, strict word 00040h                ; b8 40 00
     4340    mov es, ax                                ; 8e c0
     4341    mov byte [es:si], 000h                    ; 26 c6 04 00
    43944342    xor al, al                                ; 30 c0
    43954343    mov byte [bp+017h], al                    ; 88 46 17
    4396     xor ah, ah                                ; 30 e4
    4397     call 02eb0h                               ; e8 91 fb
     4344    mov si, strict word 00041h                ; be 41 00
     4345    mov byte [es:si], al                      ; 26 88 04
    43984346    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4399     mov al, byte [bp-006h]                    ; 8a 46 fa
     4347    mov al, bl                                ; 88 d8
    44004348    xor ah, ah                                ; 30 e4
    44014349    xor dx, dx                                ; 31 d2
    4402     call 02ec9h                               ; e8 9c fb
    4403     jmp near 036bah                           ; e9 8a 03
     4350    call 02eb0h                               ; e8 f9 fb
     4351    mov sp, bp                                ; 89 ec
     4352    pop bp                                    ; 5d
     4353    retn                                      ; c3
    44044354    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4405     mov dx, 00441h                            ; ba 41 04
     4355    mov bx, 00441h                            ; bb 41 04
    44064356    xor ax, ax                                ; 31 c0
    4407     call 01652h                               ; e8 16 e3
    4408     mov dh, al                                ; 88 c6
    4409     xor dl, dl                                ; 30 d2
    4410     or si, dx                                 ; 09 d6
    4411     mov word [bp+016h], si                    ; 89 76 16
    4412     test al, al                               ; 84 c0
    4413     je short 033a3h                           ; 74 5a
    4414     jmp near 03697h                           ; e9 4b 03
    4415     mov byte [bp-008h], ch                    ; 88 6e f8
    4416     mov byte [bp-00ah], dl                    ; 88 56 f6
    4417     mov ah, byte [bp-010h]                    ; 8a 66 f0
    4418     mov byte [bp-00eh], ah                    ; 88 66 f2
    4419     mov dl, byte [bp+013h]                    ; 8a 56 13
    4420     xor dh, dh                                ; 30 f6
    4421     mov byte [bp-00ch], dl                    ; 88 56 f4
     4357    mov es, ax                                ; 8e c0
     4358    mov dl, byte [es:bx]                      ; 26 8a 17
     4359    mov ch, dl                                ; 88 d5
     4360    mov word [bp+016h], cx                    ; 89 4e 16
     4361    test dl, dl                               ; 84 d2
     4362    je short 032b7h                           ; 74 e5
     4363    jmp near 03abdh                           ; e9 e8 07
     4364    mov bh, byte [bp+016h]                    ; 8a 7e 16
     4365    mov al, byte [bp+015h]                    ; 8a 46 15
     4366    mov byte [bp-004h], al                    ; 88 46 fc
     4367    mov al, byte [bp+014h]                    ; 8a 46 14
     4368    mov byte [bp-002h], al                    ; 88 46 fe
     4369    mov al, byte [bp+013h]                    ; 8a 46 13
     4370    xor ah, ah                                ; 30 e4
    44224371    mov byte [bp-006h], al                    ; 88 46 fa
     4372    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
     4373    cmp bl, 001h                              ; 80 fb 01
     4374    jnbe short 03301h                         ; 77 0d
    44234375    cmp AL, strict byte 001h                  ; 3c 01
    4424     jnbe short 03375h                         ; 77 0e
    4425     cmp dl, 001h                              ; 80 fa 01
    4426     jnbe short 03375h                         ; 77 09
    4427     test ch, ch                               ; 84 ed
    4428     je short 03375h                           ; 74 05
    4429     cmp ch, 048h                              ; 80 fd 48
    4430     jbe short 033a6h                          ; 76 31
     4376    jnbe short 03301h                         ; 77 09
     4377    test bh, bh                               ; 84 ff
     4378    je short 03301h                           ; 74 05
     4379    cmp bh, 048h                              ; 80 ff 48
     4380    jbe short 03338h                          ; 76 37
    44314381    mov bx, 00da0h                            ; bb a0 0d
    44324382    mov cx, ds                                ; 8c d9
    44334383    mov ax, strict word 00004h                ; b8 04 00
    4434     call 01933h                               ; e8 b3 e5
     4384    call 01933h                               ; e8 27 e6
    44354385    mov ax, 00275h                            ; b8 75 02
    44364386    push ax                                   ; 50
     
    44394389    mov ax, strict word 00004h                ; b8 04 00
    44404390    push ax                                   ; 50
    4441     call 01976h                               ; e8 e7 e5
     4391    call 01976h                               ; e8 5b e6
    44424392    add sp, strict byte 00006h                ; 83 c4 06
    44434393    mov ax, word [bp+016h]                    ; 8b 46 16
     
    44454395    or ah, 001h                               ; 80 cc 01
    44464396    mov word [bp+016h], ax                    ; 89 46 16
    4447     mov ax, strict word 00001h                ; b8 01 00
    4448     jmp near 03435h                           ; e9 92 00
    4449     jmp near 036bah                           ; e9 14 03
    4450     mov al, byte [bp-006h]                    ; 8a 46 fa
    4451     xor ah, ah                                ; 30 e4
    4452     call 03202h                               ; e8 54 fe
     4397    mov bx, strict word 00041h                ; bb 41 00
     4398    mov ax, strict word 00040h                ; b8 40 00
     4399    mov es, ax                                ; 8e c0
     4400    mov byte [es:bx], 001h                    ; 26 c6 07 01
     4401    jmp near 033e2h                           ; e9 aa 00
     4402    mov al, bl                                ; 88 d8
     4403    xor ah, ah                                ; 30 e4
     4404    call 031b1h                               ; e8 72 fe
    44534405    test ax, ax                               ; 85 c0
    4454     jne short 033c3h                          ; 75 11
     4406    jne short 0335dh                          ; 75 1a
    44554407    mov ax, word [bp+016h]                    ; 8b 46 16
    44564408    xor ah, ah                                ; 30 e4
    44574409    or ah, 080h                               ; 80 cc 80
    44584410    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
     4411    mov bx, strict word 00041h                ; bb 41 00
     4412    mov ax, strict word 00040h                ; b8 40 00
     4413    mov es, ax                                ; 8e c0
     4414    mov byte [es:bx], 080h                    ; 26 c6 07 80
     4415    jmp near 033e2h                           ; e9 85 00
     4416    mov cl, bl                                ; 88 d9
     4417    xor ch, ch                                ; 30 ed
     4418    mov ax, cx                                ; 89 c8
     4419    call 02febh                               ; e8 85 fc
    44654420    test ax, ax                               ; 85 c0
    4466     jne short 033f1h                          ; 75 20
    4467     mov ax, dx                                ; 89 d0
    4468     call 03108h                               ; e8 32 fd
     4421    jne short 03390h                          ; 75 26
     4422    mov ax, cx                                ; 89 c8
     4423    call 030cah                               ; e8 5b fd
    44694424    test ax, ax                               ; 85 c0
    4470     jne short 033f1h                          ; 75 17
     4425    jne short 03390h                          ; 75 1d
    44714426    mov ax, word [bp+016h]                    ; 8b 46 16
    44724427    xor ah, ah                                ; 30 e4
    44734428    or ah, 00ch                               ; 80 cc 0c
    44744429    mov word [bp+016h], ax                    ; 89 46 16
    4475     mov ax, strict word 0000ch                ; b8 0c 00
    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
     4430    mov bx, strict word 00041h                ; bb 41 00
     4431    mov ax, strict word 00040h                ; b8 40 00
     4432    mov es, ax                                ; 8e c0
     4433    mov byte [es:bx], 00ch                    ; 26 c6 07 0c
     4434    mov byte [bp+016h], ch                    ; 88 6e 16
     4435    jmp near 03abdh                           ; e9 2d 07
     4436    mov al, byte [bp+017h]                    ; 8a 46 17
     4437    xor ah, ah                                ; 30 e4
     4438    cmp ax, strict word 00002h                ; 3d 02 00
     4439    jne short 033e9h                          ; 75 4f
    44814440    mov CL, strict byte 00ch                  ; b1 0c
     4441    mov ax, word [bp+006h]                    ; 8b 46 06
     4442    shr ax, CL                                ; d3 e8
     4443    mov ch, al                                ; 88 c5
     4444    mov CL, strict byte 004h                  ; b1 04
    44824445    mov dx, word [bp+006h]                    ; 8b 56 06
    4483     shr dx, CL                                ; d3 ea
    4484     mov ch, dl                                ; 88 d5
    4485     mov CL, strict byte 004h                  ; b1 04
    4486     mov ax, word [bp+006h]                    ; 8b 46 06
    4487     sal ax, CL                                ; d3 e0
    4488     mov bx, word [bp+010h]                    ; 8b 5e 10
    4489     add bx, ax                                ; 01 c3
    4490     mov word [bp-014h], bx                    ; 89 5e ec
    4491     cmp ax, bx                                ; 39 d8
    4492     jbe short 03414h                          ; 76 02
     4446    sal dx, CL                                ; d3 e2
     4447    mov si, word [bp+010h]                    ; 8b 76 10
     4448    add si, dx                                ; 01 d6
     4449    mov word [bp-00eh], si                    ; 89 76 f2
     4450    cmp dx, si                                ; 39 f2
     4451    jbe short 033b8h                          ; 76 02
    44934452    db  0feh, 0c5h
    44944453    ; inc ch                                    ; fe c5
    4495     mov al, byte [bp-008h]                    ; 8a 46 f8
     4454    mov al, bh                                ; 88 f8
    44964455    xor ah, ah                                ; 30 e4
    44974456    mov CL, strict byte 009h                  ; b1 09
    4498     mov bx, ax                                ; 89 c3
    4499     sal bx, CL                                ; d3 e3
    4500     dec bx                                    ; 4b
    4501     mov ax, word [bp-014h]                    ; 8b 46 ec
    4502     add ax, bx                                ; 01 d8
    4503     cmp ax, word [bp-014h]                    ; 3b 46 ec
    4504     jnc short 03442h                          ; 73 18
     4457    sal ax, CL                                ; d3 e0
     4458    dec ax                                    ; 48
     4459    mov word [bp-008h], ax                    ; 89 46 f8
     4460    mov ax, word [bp-00eh]                    ; 8b 46 f2
     4461    add ax, word [bp-008h]                    ; 03 46 f8
     4462    cmp ax, word [bp-00eh]                    ; 3b 46 f2
     4463    jnc short 033ech                          ; 73 1d
    45054464    mov ax, word [bp+016h]                    ; 8b 46 16
    45064465    mov ah, cl                                ; 88 cc
    45074466    mov word [bp+016h], ax                    ; 89 46 16
    4508     mov ax, strict word 00009h                ; b8 09 00
    4509     call 02eb0h                               ; e8 78 fa
     4467    mov bx, strict word 00041h                ; bb 41 00
     4468    mov ax, strict word 00040h                ; b8 40 00
     4469    mov es, ax                                ; 8e c0
     4470    mov byte [es:bx], cl                      ; 26 88 0f
    45104471    mov byte [bp+016h], 000h                  ; c6 46 16 00
    4511     jmp near 03697h                           ; e9 58 02
    4512     jmp near 03579h                           ; e9 37 01
     4472    jmp near 03abdh                           ; e9 d4 06
     4473    jmp near 03536h                           ; e9 4a 01
    45134474    mov AL, strict byte 006h                  ; b0 06
    45144475    mov dx, strict word 0000ah                ; ba 0a 00
     
    45174478    mov dx, strict word 0000ch                ; ba 0c 00
    45184479    out DX, AL                                ; ee
    4519     mov al, byte [bp-014h]                    ; 8a 46 ec
     4480    mov al, byte [bp-00eh]                    ; 8a 46 f2
    45204481    mov dx, strict word 00004h                ; ba 04 00
    45214482    out DX, AL                                ; ee
    4522     mov al, byte [bp-013h]                    ; 8a 46 ed
     4483    mov al, byte [bp-00dh]                    ; 8a 46 f3
    45234484    out DX, AL                                ; ee
    45244485    xor al, al                                ; 30 c0
    45254486    mov dx, strict word 0000ch                ; ba 0c 00
    45264487    out DX, AL                                ; ee
    4527     mov al, bl                                ; 88 d8
     4488    mov al, byte [bp-008h]                    ; 8a 46 f8
    45284489    mov dx, strict word 00005h                ; ba 05 00
    45294490    out DX, AL                                ; ee
    4530     mov al, bh                                ; 88 f8
     4491    mov al, byte [bp-007h]                    ; 8a 46 f9
    45314492    out DX, AL                                ; ee
    45324493    mov AL, strict byte 046h                  ; b0 46
     
    45394500    mov dx, strict word 0000ah                ; ba 0a 00
    45404501    out DX, AL                                ; ee
    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
     4502    mov cl, bl                                ; 88 d9
     4503    xor ch, ch                                ; 30 ed
     4504    mov ax, cx                                ; 89 c8
     4505    call 02f76h                               ; e8 47 fb
    45454506    mov AL, strict byte 0e6h                  ; b0 e6
    45464507    mov dx, 003f5h                            ; ba f5 03
    45474508    out DX, AL                                ; ee
    4548     mov al, byte [bp-00ch]                    ; 8a 46 f4
     4509    mov al, byte [bp-006h]                    ; 8a 46 fa
    45494510    xor ah, ah                                ; 30 e4
    45504511    mov dx, ax                                ; 89 c2
     
    45554516    mov dx, 003f5h                            ; ba f5 03
    45564517    out DX, AL                                ; ee
    4557     mov al, byte [bp-00ah]                    ; 8a 46 f6
    4558     out DX, AL                                ; ee
    4559     mov al, byte [bp-00ch]                    ; 8a 46 f4
    4560     out DX, AL                                ; ee
    4561     mov al, byte [bp-00eh]                    ; 8a 46 f2
     4518    mov al, byte [bp-004h]                    ; 8a 46 fc
     4519    out DX, AL                                ; ee
     4520    mov al, byte [bp-006h]                    ; 8a 46 fa
     4521    out DX, AL                                ; ee
     4522    mov al, byte [bp-002h]                    ; 8a 46 fe
    45624523    out DX, AL                                ; ee
    45634524    mov AL, strict byte 002h                  ; b0 02
    45644525    out DX, AL                                ; ee
    4565     mov dl, byte [bp-00eh]                    ; 8a 56 f2
     4526    mov al, byte [bp-002h]                    ; 8a 46 fe
     4527    xor ah, ah                                ; 30 e4
     4528    mov dl, bh                                ; 88 fa
    45664529    xor dh, dh                                ; 30 f6
    4567     mov al, byte [bp-008h]                    ; 8a 46 f8
    4568     xor ah, ah                                ; 30 e4
    45694530    add ax, dx                                ; 01 d0
    45704531    dec ax                                    ; 48
     
    45754536    mov AL, strict byte 0ffh                  ; b0 ff
    45764537    out DX, AL                                ; ee
    4577     call 02f20h                               ; e8 5a fa
     4538    call 02effh                               ; e8 8f fa
    45784539    test al, al                               ; 84 c0
    4579     jne short 034e6h                          ; 75 1c
    4580     mov ax, bx                                ; 89 d8
    4581     call 02f67h                               ; e8 98 fa
     4540    jne short 03493h                          ; 75 1f
     4541    mov ax, cx                                ; 89 c8
     4542    call 02f37h                               ; e8 be fa
    45824543    mov ax, word [bp+016h]                    ; 8b 46 16
    45834544    xor ah, ah                                ; 30 e4
    45844545    or ah, 080h                               ; 80 cc 80
    45854546    mov word [bp+016h], ax                    ; 89 46 16
    4586     mov ax, 00080h                            ; b8 80 00
    4587     call 02eb0h                               ; e8 d0 f9
    4588     mov byte [bp+016h], bh                    ; 88 7e 16
    4589     jmp near 03697h                           ; e9 b1 01
     4547    mov bx, strict word 00041h                ; bb 41 00
     4548    mov ax, strict word 00040h                ; b8 40 00
     4549    mov es, ax                                ; 8e c0
     4550    mov byte [es:bx], 080h                    ; 26 c6 07 80
     4551    jmp near 0338ah                           ; e9 f7 fe
    45904552    mov dx, 003f4h                            ; ba f4 03
    45914553    in AL, DX                                 ; ec
     
    45944556    and AL, strict byte 0c0h                  ; 24 c0
    45954557    cmp AL, strict byte 0c0h                  ; 3c c0
    4596     je short 03504h                           ; 74 12
     4558    je short 034b1h                           ; 74 12
    45974559    mov ax, 00275h                            ; b8 75 02
    45984560    push ax                                   ; 50
     
    46014563    mov ax, strict word 00007h                ; b8 07 00
    46024564    push ax                                   ; 50
    4603     call 01976h                               ; e8 75 e4
     4565    call 01976h                               ; e8 c8 e4
    46044566    add sp, strict byte 00006h                ; 83 c4 06
    4605     xor si, si                                ; 31 f6
    4606     jmp short 0350dh                          ; eb 05
    4607     cmp si, strict byte 00007h                ; 83 fe 07
    4608     jnl short 03526h                          ; 7d 19
     4567    xor cx, cx                                ; 31 c9
     4568    jmp short 034bah                          ; eb 05
     4569    cmp cx, strict byte 00007h                ; 83 f9 07
     4570    jnl short 034d0h                          ; 7d 16
    46094571    mov dx, 003f5h                            ; ba f5 03
    46104572    in AL, DX                                 ; ec
    46114573    db  02ah, 0e4h
    46124574    ; sub ah, ah                                ; 2a e4
    4613     mov byte [bp+si-01ch], al                 ; 88 42 e4
    4614     mov bl, al                                ; 88 c3
    4615     xor bh, bh                                ; 30 ff
    4616     lea dx, [si+042h]                         ; 8d 54 42
     4575    mov si, cx                                ; 89 ce
     4576    add si, strict byte 00042h                ; 83 c6 42
     4577    mov dx, strict word 00040h                ; ba 40 00
     4578    mov es, dx                                ; 8e c2
     4579    mov byte [es:si], al                      ; 26 88 04
     4580    inc cx                                    ; 41
     4581    jmp short 034b5h                          ; eb e5
     4582    mov si, strict word 00042h                ; be 42 00
    46174583    mov ax, strict word 00040h                ; b8 40 00
    4618     call 01660h                               ; e8 3d e1
    4619     inc si                                    ; 46
    4620     jmp short 03508h                          ; eb e2
    4621     test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
    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
     4584    mov es, ax                                ; 8e c0
     4585    mov al, byte [es:si]                      ; 26 8a 04
     4586    test AL, strict byte 0c0h                 ; a8 c0
     4587    je short 03500h                           ; 74 21
     4588    mov al, bl                                ; 88 d8
     4589    xor ah, ah                                ; 30 e4
     4590    call 02f37h                               ; e8 51 fa
    46264591    mov ax, word [bp+016h]                    ; 8b 46 16
    46274592    xor ah, ah                                ; 30 e4
    46284593    or ah, 020h                               ; 80 cc 20
    46294594    mov word [bp+016h], ax                    ; 89 46 16
    4630     mov ax, strict word 00020h                ; b8 20 00
    4631     jmp near 03435h                           ; e9 f0 fe
    4632     mov al, byte [bp-008h]                    ; 8a 46 f8
     4595    mov bx, strict word 00041h                ; bb 41 00
     4596    mov ax, strict word 00040h                ; b8 40 00
     4597    mov es, ax                                ; 8e c0
     4598    mov byte [es:bx], 020h                    ; 26 c6 07 20
     4599    jmp near 033e2h                           ; e9 e2 fe
     4600    mov al, bh                                ; 88 f8
    46334601    xor ah, ah                                ; 30 e4
    46344602    mov CL, strict byte 009h                  ; b1 09
     
    46414609    mov dx, word [bp+006h]                    ; 8b 56 06
    46424610    mov di, si                                ; 89 f7
     4611    mov cx, ax                                ; 89 c1
    46434612    mov es, dx                                ; 8e c2
    4644     mov cx, ax                                ; 89 c1
    46454613    push DS                                   ; 1e
    46464614    mov ds, dx                                ; 8e da
    46474615    rep movsw                                 ; f3 a5
    46484616    pop DS                                    ; 1f
    4649     mov dl, byte [bp-00ah]                    ; 8a 56 f6
     4617    mov dl, byte [bp-004h]                    ; 8a 56 fc
    46504618    xor dh, dh                                ; 30 f6
    4651     mov al, byte [bp-006h]                    ; 8a 46 fa
    4652     xor ah, ah                                ; 30 e4
    4653     call 02ec9h                               ; e8 57 f9
     4619    mov al, bl                                ; 88 d8
     4620    xor ah, ah                                ; 30 e4
     4621    call 02eb0h                               ; e8 85 f9
    46544622    mov byte [bp+017h], 000h                  ; c6 46 17 00
    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
     4623    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     4624    jmp near 032b7h                           ; e9 81 fd
     4625    mov al, byte [bp+017h]                    ; 8a 46 17
     4626    xor ah, ah                                ; 30 e4
     4627    cmp ax, strict word 00003h                ; 3d 03 00
     4628    je short 03543h                           ; 74 03
     4629    jmp near 0366fh                           ; e9 2c 01
    46594630    mov CL, strict byte 00ch                  ; b1 0c
    46604631    mov dx, word [bp+006h]                    ; 8b 56 06
     
    46644635    mov ax, word [bp+006h]                    ; 8b 46 06
    46654636    sal ax, CL                                ; d3 e0
    4666     mov bx, word [bp+010h]                    ; 8b 5e 10
    4667     add bx, ax                                ; 01 c3
    4668     mov word [bp-014h], bx                    ; 89 5e ec
    4669     cmp ax, bx                                ; 39 d8
    4670     jbe short 0359fh                          ; 76 02
     4637    mov si, word [bp+010h]                    ; 8b 76 10
     4638    add si, ax                                ; 01 c6
     4639    mov word [bp-00eh], si                    ; 89 76 f2
     4640    cmp ax, si                                ; 39 f0
     4641    jbe short 03561h                          ; 76 02
    46714642    db  0feh, 0c5h
    46724643    ; inc ch                                    ; fe c5
    4673     mov al, byte [bp-008h]                    ; 8a 46 f8
     4644    mov al, bh                                ; 88 f8
    46744645    xor ah, ah                                ; 30 e4
    46754646    mov CL, strict byte 009h                  ; b1 09
    4676     mov bx, ax                                ; 89 c3
    4677     sal bx, CL                                ; d3 e3
    4678     dec bx                                    ; 4b
    4679     mov ax, word [bp-014h]                    ; 8b 46 ec
    4680     add ax, bx                                ; 01 d8
    4681     cmp ax, word [bp-014h]                    ; 3b 46 ec
    4682     jnc short 035b8h                          ; 73 03
    4683     jmp near 0342ah                           ; e9 72 fe
     4647    sal ax, CL                                ; d3 e0
     4648    dec ax                                    ; 48
     4649    mov word [bp-008h], ax                    ; 89 46 f8
     4650    mov ax, word [bp-00eh]                    ; 8b 46 f2
     4651    add ax, word [bp-008h]                    ; 03 46 f8
     4652    cmp ax, word [bp-00eh]                    ; 3b 46 f2
     4653    jnc short 0357bh                          ; 73 03
     4654    jmp near 033cfh                           ; e9 54 fe
    46844655    mov AL, strict byte 006h                  ; b0 06
    46854656    mov dx, strict word 0000ah                ; ba 0a 00
     
    46884659    mov dx, strict word 0000ch                ; ba 0c 00
    46894660    out DX, AL                                ; ee
    4690     mov al, byte [bp-014h]                    ; 8a 46 ec
     4661    mov al, byte [bp-00eh]                    ; 8a 46 f2
    46914662    mov dx, strict word 00004h                ; ba 04 00
    46924663    out DX, AL                                ; ee
    4693     mov al, byte [bp-013h]                    ; 8a 46 ed
     4664    mov al, byte [bp-00dh]                    ; 8a 46 f3
    46944665    out DX, AL                                ; ee
    46954666    xor al, al                                ; 30 c0
    46964667    mov dx, strict word 0000ch                ; ba 0c 00
    46974668    out DX, AL                                ; ee
    4698     mov al, bl                                ; 88 d8
     4669    mov al, byte [bp-008h]                    ; 8a 46 f8
    46994670    mov dx, strict word 00005h                ; ba 05 00
    47004671    out DX, AL                                ; ee
    4701     mov al, bh                                ; 88 f8
     4672    mov al, byte [bp-007h]                    ; 8a 46 f9
    47024673    out DX, AL                                ; ee
    47034674    mov AL, strict byte 04ah                  ; b0 4a
     
    47104681    mov dx, strict word 0000ah                ; ba 0a 00
    47114682    out DX, AL                                ; ee
    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
     4683    mov cl, bl                                ; 88 d9
     4684    xor ch, ch                                ; 30 ed
     4685    mov ax, cx                                ; 89 c8
     4686    call 02f76h                               ; e8 b8 f9
    47164687    mov AL, strict byte 0c5h                  ; b0 c5
    47174688    mov dx, 003f5h                            ; ba f5 03
    47184689    out DX, AL                                ; ee
    4719     mov al, byte [bp-00ch]                    ; 8a 46 f4
     4690    mov al, byte [bp-006h]                    ; 8a 46 fa
    47204691    xor ah, ah                                ; 30 e4
    47214692    mov dx, ax                                ; 89 c2
     
    47264697    mov dx, 003f5h                            ; ba f5 03
    47274698    out DX, AL                                ; ee
    4728     mov al, byte [bp-00ah]                    ; 8a 46 f6
    4729     out DX, AL                                ; ee
    4730     mov al, byte [bp-00ch]                    ; 8a 46 f4
    4731     out DX, AL                                ; ee
    4732     mov al, byte [bp-00eh]                    ; 8a 46 f2
     4699    mov al, byte [bp-004h]                    ; 8a 46 fc
     4700    out DX, AL                                ; ee
     4701    mov al, byte [bp-006h]                    ; 8a 46 fa
     4702    out DX, AL                                ; ee
     4703    mov al, byte [bp-002h]                    ; 8a 46 fe
    47334704    out DX, AL                                ; ee
    47344705    mov AL, strict byte 002h                  ; b0 02
    47354706    out DX, AL                                ; ee
    4736     mov dl, byte [bp-00eh]                    ; 8a 56 f2
     4707    mov dl, byte [bp-002h]                    ; 8a 56 fe
    47374708    xor dh, dh                                ; 30 f6
    4738     mov al, byte [bp-008h]                    ; 8a 46 f8
     4709    mov al, bh                                ; 88 f8
    47394710    xor ah, ah                                ; 30 e4
    47404711    add ax, dx                                ; 01 d0
     
    47464717    mov AL, strict byte 0ffh                  ; b0 ff
    47474718    out DX, AL                                ; ee
    4748     call 02f20h                               ; e8 e4 f8
     4719    call 02effh                               ; e8 00 f9
    47494720    test al, al                               ; 84 c0
    4750     jne short 03643h                          ; 75 03
    4751     jmp near 034cah                           ; e9 87 fe
     4721    jne short 03606h                          ; 75 03
     4722    jmp near 03474h                           ; e9 6e fe
    47524723    mov dx, 003f4h                            ; ba f4 03
    47534724    in AL, DX                                 ; ec
     
    47564727    and AL, strict byte 0c0h                  ; 24 c0
    47574728    cmp AL, strict byte 0c0h                  ; 3c c0
    4758     je short 03661h                           ; 74 12
     4729    je short 03624h                           ; 74 12
    47594730    mov ax, 00275h                            ; b8 75 02
    47604731    push ax                                   ; 50
     
    47634734    mov ax, strict word 00007h                ; b8 07 00
    47644735    push ax                                   ; 50
    4765     call 01976h                               ; e8 18 e3
     4736    call 01976h                               ; e8 55 e3
    47664737    add sp, strict byte 00006h                ; 83 c4 06
    4767     xor si, si                                ; 31 f6
    4768     jmp short 0366ah                          ; eb 05
    4769     cmp si, strict byte 00007h                ; 83 fe 07
    4770     jnl short 03683h                          ; 7d 19
     4738    xor cx, cx                                ; 31 c9
     4739    jmp short 0362dh                          ; eb 05
     4740    cmp cx, strict byte 00007h                ; 83 f9 07
     4741    jnl short 03643h                          ; 7d 16
    47714742    mov dx, 003f5h                            ; ba f5 03
    47724743    in AL, DX                                 ; ec
    47734744    db  02ah, 0e4h
    47744745    ; sub ah, ah                                ; 2a e4
    4775     mov byte [bp+si-01ch], al                 ; 88 42 e4
    4776     mov bl, al                                ; 88 c3
    4777     xor bh, bh                                ; 30 ff
    4778     lea dx, [si+042h]                         ; 8d 54 42
     4746    mov si, cx                                ; 89 ce
     4747    add si, strict byte 00042h                ; 83 c6 42
     4748    mov dx, strict word 00040h                ; ba 40 00
     4749    mov es, dx                                ; 8e c2
     4750    mov byte [es:si], al                      ; 26 88 04
     4751    inc cx                                    ; 41
     4752    jmp short 03628h                          ; eb e5
     4753    mov si, strict word 00042h                ; be 42 00
    47794754    mov ax, strict word 00040h                ; b8 40 00
    4780     call 01660h                               ; e8 e0 df
    4781     inc si                                    ; 46
    4782     jmp short 03665h                          ; eb e2
    4783     test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
    4784     jne short 0368ch                          ; 75 03
    4785     jmp near 03565h                           ; e9 d9 fe
    4786     test byte [bp-01bh], 002h                 ; f6 46 e5 02
    4787     je short 0369eh                           ; 74 0c
     4755    mov es, ax                                ; 8e c0
     4756    mov al, byte [es:si]                      ; 26 8a 04
     4757    test AL, strict byte 0c0h                 ; a8 c0
     4758    jne short 03655h                          ; 75 03
     4759    jmp near 0351fh                           ; e9 ca fe
     4760    mov bx, strict word 00043h                ; bb 43 00
     4761    mov al, byte [es:bx]                      ; 26 8a 07
     4762    test AL, strict byte 002h                 ; a8 02
     4763    je short 03667h                           ; 74 08
    47884764    mov word [bp+016h], 00300h                ; c7 46 16 00 03
    4789     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4790     jmp near 036bah                           ; e9 1c 00
     4765    jmp near 03abdh                           ; e9 56 04
    47914766    mov word [bp+016h], 00100h                ; c7 46 16 00 01
    4792     jmp short 03697h                          ; eb f2
    4793     mov dl, byte [bp-00ah]                    ; 8a 56 f6
     4767    jmp near 03abdh                           ; e9 4e 04
     4768    mov dl, byte [bp-004h]                    ; 8a 56 fc
    47944769    xor dh, dh                                ; 30 f6
    4795     mov al, byte [bp-006h]                    ; 8a 46 fa
    4796     xor ah, ah                                ; 30 e4
    4797     call 02ec9h                               ; e8 17 f8
     4770    mov al, bl                                ; 88 d8
     4771    xor ah, ah                                ; 30 e4
     4772    call 02eb0h                               ; e8 35 f8
    47984773    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    47994774    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4800     lea sp, [bp-004h]                         ; 8d 66 fc
    4801     pop di                                    ; 5f
    4802     pop si                                    ; 5e
    4803     pop bp                                    ; 5d
    4804     retn                                      ; c3
    4805     mov al, byte [bp+016h]                    ; 8a 46 16
    4806     mov byte [bp-008h], al                    ; 88 46 f8
     4775    jmp near 032b7h                           ; e9 31 fc
     4776    mov bh, byte [bp+016h]                    ; 8a 7e 16
    48074777    mov al, byte [bp+015h]                    ; 8a 46 15
    48084778    xor ah, ah                                ; 30 e4
    48094779    mov dx, ax                                ; 89 c2
    4810     mov byte [bp-00ah], al                    ; 88 46 f6
     4780    mov byte [bp-004h], al                    ; 88 46 fc
    48114781    mov al, byte [bp+013h]                    ; 8a 46 13
    4812     mov byte [bp-00ch], al                    ; 88 46 f4
     4782    mov byte [bp-006h], al                    ; 88 46 fa
    48134783    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    4814     mov byte [bp-006h], bl                    ; 88 5e fa
    48154784    cmp bl, 001h                              ; 80 fb 01
    4816     jnbe short 036f6h                         ; 77 14
     4785    jnbe short 036b3h                         ; 77 12
    48174786    cmp AL, strict byte 001h                  ; 3c 01
    4818     jnbe short 036f6h                         ; 77 10
     4787    jnbe short 036b3h                         ; 77 0e
    48194788    cmp dl, 04fh                              ; 80 fa 4f
    4820     jnbe short 036f6h                         ; 77 0b
    4821     mov al, byte [bp-008h]                    ; 8a 46 f8
    4822     test al, al                               ; 84 c0
    4823     je short 036f6h                           ; 74 04
    4824     cmp AL, strict byte 012h                  ; 3c 12
    4825     jbe short 0370bh                          ; 76 15
     4789    jnbe short 036b3h                         ; 77 09
     4790    test bh, bh                               ; 84 ff
     4791    je short 036b3h                           ; 74 05
     4792    cmp bh, 012h                              ; 80 ff 12
     4793    jbe short 036ceh                          ; 76 1b
    48264794    mov ax, word [bp+016h]                    ; 8b 46 16
    48274795    xor ah, ah                                ; 30 e4
    48284796    or ah, 001h                               ; 80 cc 01
    48294797    mov word [bp+016h], ax                    ; 89 46 16
    4830     mov ax, strict word 00001h                ; b8 01 00
    4831     call 02eb0h                               ; e8 a9 f7
     4798    mov si, strict word 00041h                ; be 41 00
     4799    mov ax, strict word 00040h                ; b8 40 00
     4800    mov es, ax                                ; 8e c0
     4801    mov byte [es:si], 001h                    ; 26 c6 04 01
    48324802    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4833     mov al, byte [bp-006h]                    ; 8a 46 fa
    4834     xor ah, ah                                ; 30 e4
    4835     call 03202h                               ; e8 ef fa
     4803    mov al, bl                                ; 88 d8
     4804    xor ah, ah                                ; 30 e4
     4805    call 031b1h                               ; e8 dc fa
    48364806    test ax, ax                               ; 85 c0
    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
     4807    jne short 036f3h                          ; 75 1a
     4808    mov ax, word [bp+016h]                    ; 8b 46 16
     4809    xor ah, ah                                ; 30 e4
     4810    or ah, 080h                               ; 80 cc 80
     4811    mov word [bp+016h], ax                    ; 89 46 16
     4812    mov bx, strict word 00041h                ; bb 41 00
     4813    mov ax, strict word 00040h                ; b8 40 00
     4814    mov es, ax                                ; 8e c0
     4815    mov byte [es:bx], 080h                    ; 26 c6 07 80
     4816    jmp near 03abdh                           ; e9 ca 03
     4817    mov cl, bl                                ; 88 d9
     4818    xor ch, ch                                ; 30 ed
     4819    mov ax, cx                                ; 89 c8
     4820    call 02febh                               ; e8 ef f8
    48434821    test ax, ax                               ; 85 c0
    4844     jne short 03734h                          ; 75 0c
    4845     mov ax, dx                                ; 89 d0
    4846     call 03108h                               ; e8 db f9
     4822    jne short 0370ch                          ; 75 0c
     4823    mov ax, cx                                ; 89 c8
     4824    call 030cah                               ; e8 c5 f9
    48474825    test ax, ax                               ; 85 c0
    4848     jne short 03734h                          ; 75 03
    4849     jmp near 033dah                           ; e9 a6 fc
     4826    jne short 0370ch                          ; 75 03
     4827    jmp near 03373h                           ; e9 67 fc
    48504828    mov CL, strict byte 00ch                  ; b1 0c
    48514829    mov ax, word [bp+006h]                    ; 8b 46 06
     
    48554833    mov dx, word [bp+006h]                    ; 8b 56 06
    48564834    sal dx, CL                                ; d3 e2
    4857     mov bx, word [bp+010h]                    ; 8b 5e 10
    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
     4835    mov si, word [bp+010h]                    ; 8b 76 10
     4836    add si, dx                                ; 01 d6
     4837    mov word [bp-00eh], si                    ; 89 76 f2
     4838    cmp dx, si                                ; 39 f2
     4839    jbe short 0372ah                          ; 76 02
    48624840    db  0feh, 0c5h
    48634841    ; inc ch                                    ; fe c5
    4864     mov al, byte [bp-008h]                    ; 8a 46 f8
    4865     xor ah, ah                                ; 30 e4
    4866     mov bx, ax                                ; 89 c3
    4867     sal bx, 1                                 ; d1 e3
    4868     sal bx, 1                                 ; d1 e3
    4869     dec bx                                    ; 4b
    4870     mov ax, word [bp-014h]                    ; 8b 46 ec
    4871     add ax, bx                                ; 01 d8
    4872     cmp ax, word [bp-014h]                    ; 3b 46 ec
    4873     jnc short 03773h                          ; 73 0b
     4842    mov al, bh                                ; 88 f8
     4843    xor ah, ah                                ; 30 e4
     4844    sal ax, 1                                 ; d1 e0
     4845    sal ax, 1                                 ; d1 e0
     4846    dec ax                                    ; 48
     4847    mov word [bp-008h], ax                    ; 89 46 f8
     4848    mov ax, word [bp-00eh]                    ; 8b 46 f2
     4849    add ax, word [bp-008h]                    ; 03 46 f8
     4850    cmp ax, word [bp-00eh]                    ; 3b 46 f2
     4851    jnc short 0375bh                          ; 73 1a
    48744852    mov ax, word [bp+016h]                    ; 8b 46 16
    48754853    xor ah, ah                                ; 30 e4
    48764854    or ah, 009h                               ; 80 cc 09
    4877     jmp near 0342fh                           ; e9 bc fc
     4855    mov word [bp+016h], ax                    ; 89 46 16
     4856    mov bx, strict word 00041h                ; bb 41 00
     4857    mov ax, strict word 00040h                ; b8 40 00
     4858    mov es, ax                                ; 8e c0
     4859    mov byte [es:bx], 009h                    ; 26 c6 07 09
     4860    jmp near 033e2h                           ; e9 87 fc
    48784861    mov AL, strict byte 006h                  ; b0 06
    48794862    mov dx, strict word 0000ah                ; ba 0a 00
     
    48824865    mov dx, strict word 0000ch                ; ba 0c 00
    48834866    out DX, AL                                ; ee
    4884     mov al, byte [bp-014h]                    ; 8a 46 ec
     4867    mov al, byte [bp-00eh]                    ; 8a 46 f2
    48854868    mov dx, strict word 00004h                ; ba 04 00
    48864869    out DX, AL                                ; ee
    4887     mov al, byte [bp-013h]                    ; 8a 46 ed
     4870    mov al, byte [bp-00dh]                    ; 8a 46 f3
    48884871    out DX, AL                                ; ee
    48894872    xor al, al                                ; 30 c0
    48904873    mov dx, strict word 0000ch                ; ba 0c 00
    48914874    out DX, AL                                ; ee
    4892     mov al, bl                                ; 88 d8
     4875    mov al, byte [bp-008h]                    ; 8a 46 f8
    48934876    mov dx, strict word 00005h                ; ba 05 00
    48944877    out DX, AL                                ; ee
    4895     mov al, bh                                ; 88 f8
     4878    mov al, byte [bp-007h]                    ; 8a 46 f9
    48964879    out DX, AL                                ; ee
    48974880    mov AL, strict byte 04ah                  ; b0 4a
     
    49044887    mov dx, strict word 0000ah                ; ba 0a 00
    49054888    out DX, AL                                ; ee
    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
     4889    mov cl, bl                                ; 88 d9
     4890    xor ch, ch                                ; 30 ed
     4891    mov ax, cx                                ; 89 c8
     4892    call 02f76h                               ; e8 d8 f7
    49104893    mov AL, strict byte 00fh                  ; b0 0f
    49114894    mov dx, 003f5h                            ; ba f5 03
    49124895    out DX, AL                                ; ee
     4896    mov al, byte [bp-006h]                    ; 8a 46 fa
     4897    xor ah, ah                                ; 30 e4
     4898    mov dx, ax                                ; 89 c2
     4899    sal dx, 1                                 ; d1 e2
     4900    sal dx, 1                                 ; d1 e2
     4901    mov al, bl                                ; 88 d8
     4902    or dx, ax                                 ; 09 c2
     4903    mov word [bp-00ch], dx                    ; 89 56 f4
    49134904    mov al, byte [bp-00ch]                    ; 8a 46 f4
    4914     xor ah, ah                                ; 30 e4
    4915     sal ax, 1                                 ; d1 e0
    4916     sal ax, 1                                 ; d1 e0
    4917     mov cl, bl                                ; 88 d9
    4918     xor ch, ch                                ; 30 ed
    4919     or cx, ax                                 ; 09 c1
    4920     mov al, cl                                ; 88 c8
    4921     out DX, AL                                ; ee
    4922     mov al, byte [bp-00ah]                    ; 8a 46 f6
     4905    mov dx, 003f5h                            ; ba f5 03
     4906    out DX, AL                                ; ee
     4907    mov al, byte [bp-004h]                    ; 8a 46 fc
    49234908    out DX, AL                                ; ee
    49244909    mov AL, strict byte 04dh                  ; b0 4d
    49254910    out DX, AL                                ; ee
    4926     mov al, cl                                ; 88 c8
     4911    mov al, byte [bp-00ch]                    ; 8a 46 f4
    49274912    out DX, AL                                ; ee
    49284913    mov AL, strict byte 002h                  ; b0 02
    49294914    out DX, AL                                ; ee
    4930     mov al, byte [bp-008h]                    ; 8a 46 f8
    4931     out DX, AL                                ; ee
    4932     xor al, al                                ; 30 c0
     4915    mov al, bh                                ; 88 f8
     4916    out DX, AL                                ; ee
     4917    xor al, bh                                ; 30 f8
    49334918    out DX, AL                                ; ee
    49344919    mov AL, strict byte 0f6h                  ; b0 f6
    49354920    out DX, AL                                ; ee
    4936     call 02f20h                               ; e8 39 f7
     4921    call 02effh                               ; e8 28 f7
    49374922    test al, al                               ; 84 c0
    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
     4923    jne short 037e3h                          ; 75 08
     4924    mov ax, cx                                ; 89 c8
     4925    call 02f37h                               ; e8 57 f7
     4926    jmp near 036d9h                           ; e9 f6 fe
    49424927    mov dx, 003f4h                            ; ba f4 03
    49434928    in AL, DX                                 ; ec
     
    49464931    and AL, strict byte 0c0h                  ; 24 c0
    49474932    cmp AL, strict byte 0c0h                  ; 3c c0
    4948     je short 03811h                           ; 74 12
     4933    je short 03801h                           ; 74 12
    49494934    mov ax, 00275h                            ; b8 75 02
    49504935    push ax                                   ; 50
     
    49534938    mov ax, strict word 00007h                ; b8 07 00
    49544939    push ax                                   ; 50
    4955     call 01976h                               ; e8 68 e1
     4940    call 01976h                               ; e8 78 e1
    49564941    add sp, strict byte 00006h                ; 83 c4 06
    4957     xor si, si                                ; 31 f6
    4958     jmp short 0381ah                          ; eb 05
    4959     cmp si, strict byte 00007h                ; 83 fe 07
    4960     jnl short 03833h                          ; 7d 19
     4942    xor cx, cx                                ; 31 c9
     4943    jmp short 0380ah                          ; eb 05
     4944    cmp cx, strict byte 00007h                ; 83 f9 07
     4945    jnl short 03820h                          ; 7d 16
    49614946    mov dx, 003f5h                            ; ba f5 03
    49624947    in AL, DX                                 ; ec
    49634948    db  02ah, 0e4h
    49644949    ; sub ah, ah                                ; 2a e4
    4965     mov byte [bp+si-01ch], al                 ; 88 42 e4
    4966     mov bl, al                                ; 88 c3
    4967     xor bh, bh                                ; 30 ff
    4968     lea dx, [si+042h]                         ; 8d 54 42
     4950    mov si, cx                                ; 89 ce
     4951    add si, strict byte 00042h                ; 83 c6 42
     4952    mov dx, strict word 00040h                ; ba 40 00
     4953    mov es, dx                                ; 8e c2
     4954    mov byte [es:si], al                      ; 26 88 04
     4955    inc cx                                    ; 41
     4956    jmp short 03805h                          ; eb e5
     4957    mov si, strict word 00042h                ; be 42 00
    49694958    mov ax, strict word 00040h                ; b8 40 00
    4970     call 01660h                               ; e8 30 de
    4971     inc si                                    ; 46
    4972     jmp short 03815h                          ; eb e2
    4973     test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
    4974     je short 03854h                           ; 74 1b
    4975     test byte [bp-01bh], 002h                 ; f6 46 e5 02
    4976     je short 03842h                           ; 74 03
    4977     jmp near 03692h                           ; e9 50 fe
     4959    mov es, ax                                ; 8e c0
     4960    mov al, byte [es:si]                      ; 26 8a 04
     4961    test AL, strict byte 0c0h                 ; a8 c0
     4962    je short 0384eh                           ; 74 1f
     4963    mov si, strict word 00043h                ; be 43 00
     4964    mov al, byte [es:si]                      ; 26 8a 04
     4965    test AL, strict byte 002h                 ; a8 02
     4966    je short 0383ch                           ; 74 03
     4967    jmp near 0365fh                           ; e9 23 fe
    49784968    mov ax, 00275h                            ; b8 75 02
    49794969    push ax                                   ; 50
     
    49824972    mov ax, strict word 00007h                ; b8 07 00
    49834973    push ax                                   ; 50
    4984     call 01976h                               ; e8 25 e1
     4974    call 01976h                               ; e8 2b e1
    49854975    add sp, strict byte 00006h                ; 83 c4 06
    4986     xor al, al                                ; 30 c0
    4987     mov byte [bp+017h], al                    ; 88 46 17
    4988     xor ah, ah                                ; 30 e4
    4989     call 02eb0h                               ; e8 52 f6
    4990     mov al, byte [bp-006h]                    ; 8a 46 fa
     4976    mov byte [bp+017h], 000h                  ; c6 46 17 00
     4977    mov si, strict word 00041h                ; be 41 00
     4978    mov ax, strict word 00040h                ; b8 40 00
     4979    mov es, ax                                ; 8e c0
     4980    mov byte [es:si], 000h                    ; 26 c6 04 00
     4981    mov al, bl                                ; 88 d8
    49914982    xor ah, ah                                ; 30 e4
    49924983    xor dx, dx                                ; 31 d2
    4993     call 02ec9h                               ; e8 61 f6
    4994     jmp near 03a41h                           ; e9 d6 01
    4995     mov byte [bp-006h], al                    ; 88 46 fa
    4996     cmp AL, strict byte 001h                  ; 3c 01
    4997     jbe short 0389ah                          ; 76 28
     4984    call 02eb0h                               ; e8 49 f6
     4985    jmp near 0352fh                           ; e9 c5 fc
     4986    mov bl, dl                                ; 88 d3
     4987    cmp dl, 001h                              ; 80 fa 01
     4988    jbe short 03897h                          ; 76 26
    49984989    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    49994990    mov word [bp+010h], strict word 00000h    ; c7 46 10 00 00
     
    50024993    mov word [bp+006h], strict word 00000h    ; c7 46 06 00 00
    50034994    mov word [bp+008h], strict word 00000h    ; c7 46 08 00 00
    5004     mov al, ah                                ; 88 e0
    5005     xor ah, ah                                ; 30 e4
    5006     mov word [bp+012h], ax                    ; 89 46 12
    5007     jmp near 039bch                           ; e9 22 01
     4995    mov dl, bh                                ; 88 fa
     4996    mov word [bp+012h], dx                    ; 89 56 12
     4997    jmp near 039bch                           ; e9 25 01
    50084998    mov ax, strict word 00010h                ; b8 10 00
    5009     call 016aeh                               ; e8 0e de
    5010     mov ch, al                                ; 88 c5
    5011     xor ah, ah                                ; 30 e4
     4999    call 016aeh                               ; e8 11 de
     5000    mov dl, al                                ; 88 c2
     5001    xor bh, bh                                ; 30 ff
    50125002    test AL, strict byte 0f0h                 ; a8 f0
    5013     je short 038aah                           ; 74 02
    5014     mov AH, strict byte 001h                  ; b4 01
    5015     test ch, 00fh                             ; f6 c5 0f
    5016     je short 038b1h                           ; 74 02
    5017     db  0feh, 0c4h
    5018     ; inc ah                                    ; fe c4
    5019     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5020     jne short 038bdh                          ; 75 06
     5003    je short 038a7h                           ; 74 02
     5004    mov BH, strict byte 001h                  ; b7 01
     5005    test dl, 00fh                             ; f6 c2 0f
     5006    je short 038aeh                           ; 74 02
     5007    db  0feh, 0c7h
     5008    ; inc bh                                    ; fe c7
     5009    test bl, bl                               ; 84 db
     5010    jne short 038b8h                          ; 75 06
    50215011    mov CL, strict byte 004h                  ; b1 04
    5022     shr ch, CL                                ; d2 ed
    5023     jmp short 038c0h                          ; eb 03
    5024     and ch, 00fh                              ; 80 e5 0f
     5012    shr dl, CL                                ; d2 ea
     5013    jmp short 038bbh                          ; eb 03
     5014    and dl, 00fh                              ; 80 e2 0f
    50255015    mov byte [bp+011h], 000h                  ; c6 46 11 00
    5026     mov dl, ch                                ; 88 ea
    5027     xor dh, dh                                ; 30 f6
    5028     mov word [bp+010h], dx                    ; 89 56 10
    5029     mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    5030     mov dx, word [bp+012h]                    ; 8b 56 12
    5031     mov dl, ah                                ; 88 e2
    5032     mov word [bp+012h], dx                    ; 89 56 12
    5033     mov ax, dx                                ; 89 d0
    5034     xor ah, dh                                ; 30 f4
     5016    mov al, dl                                ; 88 d0
     5017    xor ah, ah                                ; 30 e4
     5018    mov word [bp+010h], ax                    ; 89 46 10
     5019    xor al, dl                                ; 30 d0
     5020    mov word [bp+016h], ax                    ; 89 46 16
     5021    mov cx, word [bp+012h]                    ; 8b 4e 12
     5022    mov cl, bh                                ; 88 f9
     5023    mov word [bp+012h], cx                    ; 89 4e 12
     5024    mov ax, cx                                ; 89 c8
     5025    xor ah, ch                                ; 30 ec
    50355026    or ah, 001h                               ; 80 cc 01
    50365027    mov word [bp+012h], ax                    ; 89 46 12
    5037     cmp ch, 003h                              ; 80 fd 03
    5038     jc short 038fch                           ; 72 15
    5039     jbe short 03923h                          ; 76 3a
    5040     cmp ch, 005h                              ; 80 fd 05
    5041     jc short 0392ah                           ; 72 3c
    5042     jbe short 03931h                          ; 76 41
    5043     cmp ch, 00fh                              ; 80 fd 0f
    5044     je short 0393fh                           ; 74 4a
    5045     cmp ch, 00eh                              ; 80 fd 0e
    5046     je short 03938h                           ; 74 3e
    5047     jmp short 03946h                          ; eb 4a
    5048     cmp ch, 002h                              ; 80 fd 02
    5049     je short 0391ch                           ; 74 1b
    5050     cmp ch, 001h                              ; 80 fd 01
    5051     je short 03915h                           ; 74 0f
    5052     test ch, ch                               ; 84 ed
    5053     jne short 03946h                          ; 75 3c
     5028    cmp dl, 003h                              ; 80 fa 03
     5029    jc short 038f7h                           ; 72 15
     5030    jbe short 0391eh                          ; 76 3a
     5031    cmp dl, 005h                              ; 80 fa 05
     5032    jc short 03925h                           ; 72 3c
     5033    jbe short 0392ch                          ; 76 41
     5034    cmp dl, 00fh                              ; 80 fa 0f
     5035    je short 0393ah                           ; 74 4a
     5036    cmp dl, 00eh                              ; 80 fa 0e
     5037    je short 03933h                           ; 74 3e
     5038    jmp short 03941h                          ; eb 4a
     5039    cmp dl, 002h                              ; 80 fa 02
     5040    je short 03917h                           ; 74 1b
     5041    cmp dl, 001h                              ; 80 fa 01
     5042    je short 03910h                           ; 74 0f
     5043    test dl, dl                               ; 84 d2
     5044    jne short 03941h                          ; 75 3c
    50545045    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    50555046    mov byte [bp+013h], 000h                  ; c6 46 13 00
    5056     jmp short 03958h                          ; eb 43
     5047    jmp short 03953h                          ; eb 43
    50575048    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    5058     jmp short 03958h                          ; eb 3c
     5049    jmp short 03953h                          ; eb 3c
    50595050    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    5060     jmp short 03958h                          ; eb 35
     5051    jmp short 03953h                          ; eb 35
    50615052    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    5062     jmp short 03958h                          ; eb 2e
     5053    jmp short 03953h                          ; eb 2e
    50635054    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    5064     jmp short 03958h                          ; eb 27
     5055    jmp short 03953h                          ; eb 27
    50655056    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
    5066     jmp short 03958h                          ; eb 20
     5057    jmp short 03953h                          ; eb 20
    50675058    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    5068     jmp short 03958h                          ; eb 19
     5059    jmp short 03953h                          ; eb 19
    50695060    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    5070     jmp short 03958h                          ; eb 12
     5061    jmp short 03953h                          ; eb 12
    50715062    mov ax, 00275h                            ; b8 75 02
    50725063    push ax                                   ; 50
     
    50755066    mov ax, strict word 00007h                ; b8 07 00
    50765067    push ax                                   ; 50
    5077     call 01976h                               ; e8 21 e0
     5068    call 01976h                               ; e8 26 e0
    50785069    add sp, strict byte 00006h                ; 83 c4 06
    50795070    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    5080     mov al, ch                                ; 88 e8
    5081     xor ah, ah                                ; 30 e4
    5082     call 03bd1h                               ; e8 6d 02
     5071    mov al, dl                                ; 88 d0
     5072    xor ah, ah                                ; 30 e4
     5073    call 03bf8h                               ; e8 99 02
    50835074    mov word [bp+008h], ax                    ; 89 46 08
    5084     jmp near 03a41h                           ; e9 d7 00
    5085     mov byte [bp-006h], al                    ; 88 46 fa
    5086     cmp AL, strict byte 001h                  ; 3c 01
    5087     jbe short 03976h                          ; 76 05
    5088     mov word [bp+016h], si                    ; 89 76 16
    5089     jmp short 039bch                          ; eb 46
     5075    jmp near 0352fh                           ; e9 ca fb
     5076    mov bl, dl                                ; 88 d3
     5077    cmp dl, 001h                              ; 80 fa 01
     5078    jbe short 03971h                          ; 76 05
     5079    mov word [bp+016h], cx                    ; 89 4e 16
     5080    jmp short 039bch                          ; eb 4b
    50905081    mov ax, strict word 00010h                ; b8 10 00
    5091     call 016aeh                               ; e8 32 dd
    5092     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5093     jne short 0398ah                          ; 75 08
     5082    call 016aeh                               ; e8 37 dd
     5083    test bl, bl                               ; 84 db
     5084    jne short 03983h                          ; 75 08
    50945085    mov CL, strict byte 004h                  ; b1 04
    5095     mov ch, al                                ; 88 c5
    5096     shr ch, CL                                ; d2 ed
    5097     jmp short 0398fh                          ; eb 05
    5098     mov ch, al                                ; 88 c5
    5099     and ch, 00fh                              ; 80 e5 0f
     5086    mov dl, al                                ; 88 c2
     5087    shr dl, CL                                ; d2 ea
     5088    jmp short 03988h                          ; eb 05
     5089    mov dl, al                                ; 88 c2
     5090    and dl, 00fh                              ; 80 e2 0f
    51005091    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    51015092    mov ax, word [bp+016h]                    ; 8b 46 16
    51025093    xor ah, ah                                ; 30 e4
    5103     test ch, ch                               ; 84 ed
    5104     je short 039a9h                           ; 74 0d
    5105     cmp ch, 001h                              ; 80 fd 01
    5106     jbe short 039a6h                          ; 76 05
     5094    test dl, dl                               ; 84 d2
     5095    je short 039a2h                           ; 74 0d
     5096    cmp dl, 001h                              ; 80 fa 01
     5097    jbe short 0399fh                          ; 76 05
    51075098    or ah, 002h                               ; 80 cc 02
    5108     jmp short 039a9h                          ; eb 03
     5099    jmp short 039a2h                          ; eb 03
    51095100    or ah, 001h                               ; 80 cc 01
    51105101    mov word [bp+016h], ax                    ; 89 46 16
    5111     jmp near 036bah                           ; e9 0b fd
    5112     cmp AL, strict byte 001h                  ; 3c 01
    5113     jbe short 039c2h                          ; 76 0f
     5102    jmp near 032b7h                           ; e9 0f f9
     5103    cmp dl, 001h                              ; 80 fa 01
     5104    jbe short 039c2h                          ; 76 15
    51145105    mov word [bp+016h], si                    ; 89 76 16
    5115     mov ax, strict word 00001h                ; b8 01 00
    5116     call 02eb0h                               ; e8 f4 f4
    5117     mov word [bp+01ch], dx                    ; 89 56 1c
    5118     jmp near 036bah                           ; e9 f8 fc
     5106    mov bx, strict word 00041h                ; bb 41 00
     5107    mov dx, strict word 00040h                ; ba 40 00
     5108    mov es, dx                                ; 8e c2
     5109    mov byte [es:bx], 001h                    ; 26 c6 07 01
     5110    mov word [bp+01ch], ax                    ; 89 46 1c
     5111    jmp near 032b7h                           ; e9 f5 f8
    51195112    mov ax, word [bp+016h]                    ; 8b 46 16
    51205113    xor ah, ah                                ; 30 e4
    51215114    or ah, 006h                               ; 80 cc 06
    51225115    mov word [bp+016h], ax                    ; 89 46 16
    5123     mov ax, strict word 00006h                ; b8 06 00
    5124     jmp near 032beh                           ; e9 eb f8
    5125     mov byte [bp-006h], al                    ; 88 46 fa
    5126     mov bl, ch                                ; 88 eb
    5127     cmp AL, strict byte 001h                  ; 3c 01
    5128     jnbe short 039b3h                         ; 77 d7
    5129     mov al, byte [bp-006h]                    ; 8a 46 fa
    5130     xor ah, ah                                ; 30 e4
    5131     call 03202h                               ; e8 1e f8
     5116    mov bx, strict word 00041h                ; bb 41 00
     5117    mov ax, strict word 00040h                ; b8 40 00
     5118    mov es, ax                                ; 8e c0
     5119    mov byte [es:bx], 006h                    ; 26 c6 07 06
     5120    jmp near 03abdh                           ; e9 e1 00
     5121    mov bl, dl                                ; 88 d3
     5122    mov cl, byte [bp+016h]                    ; 8a 4e 16
     5123    cmp dl, 001h                              ; 80 fa 01
     5124    jnbe short 039adh                         ; 77 c7
     5125    mov al, bl                                ; 88 d8
     5126    xor ah, ah                                ; 30 e4
     5127    call 031b1h                               ; e8 c4 f7
    51325128    test ax, ax                               ; 85 c0
    5133     jne short 039ebh                          ; 75 03
    5134     jmp near 032f2h                           ; e9 07 f9
    5135     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5136     je short 039f6h                           ; 74 05
    5137     mov dx, 00091h                            ; ba 91 00
    5138     jmp short 039f9h                          ; eb 03
    5139     mov dx, 00090h                            ; ba 90 00
    5140     mov word [bp-014h], dx                    ; 89 56 ec
     5129    jne short 039f4h                          ; 75 03
     5130    jmp near 036d9h                           ; e9 e5 fc
     5131    test bl, bl                               ; 84 db
     5132    je short 039fdh                           ; 74 05
     5133    mov bx, 00091h                            ; bb 91 00
     5134    jmp short 03a00h                          ; eb 03
     5135    mov bx, 00090h                            ; bb 90 00
     5136    mov word [bp-00eh], bx                    ; 89 5e f2
    51415137    mov ax, strict word 00040h                ; b8 40 00
    5142     call 01652h                               ; e8 50 dc
    5143     and AL, strict byte 00fh                  ; 24 0f
    5144     cmp bl, 002h                              ; 80 fb 02
    5145     jc short 03a18h                           ; 72 0f
    5146     jbe short 03a24h                          ; 76 19
    5147     cmp bl, 004h                              ; 80 fb 04
    5148     je short 03a20h                           ; 74 10
    5149     cmp bl, 003h                              ; 80 fb 03
    5150     je short 03a28h                           ; 74 13
    5151     jmp near 032b0h                           ; e9 98 f8
    5152     cmp bl, 001h                              ; 80 fb 01
    5153     je short 03a20h                           ; 74 03
    5154     jmp near 032b0h                           ; e9 90 f8
    5155     or AL, strict byte 090h                   ; 0c 90
    5156     jmp short 03a2ah                          ; eb 06
    5157     or AL, strict byte 070h                   ; 0c 70
    5158     jmp short 03a2ah                          ; eb 02
    5159     or AL, strict byte 010h                   ; 0c 10
    5160     mov bl, al                                ; 88 c3
    5161     xor bh, bh                                ; 30 ff
    5162     mov dx, word [bp-014h]                    ; 8b 56 ec
     5138    mov es, ax                                ; 8e c0
     5139    mov bl, byte [es:bx]                      ; 26 8a 1f
     5140    and bl, 00fh                              ; 80 e3 0f
     5141    cmp cl, 002h                              ; 80 f9 02
     5142    jc short 03a22h                           ; 72 0f
     5143    jbe short 03a2fh                          ; 76 1a
     5144    cmp cl, 004h                              ; 80 f9 04
     5145    je short 03a2ah                           ; 74 10
     5146    cmp cl, 003h                              ; 80 f9 03
     5147    je short 03a34h                           ; 74 15
     5148    jmp near 03241h                           ; e9 1f f8
     5149    cmp cl, 001h                              ; 80 f9 01
     5150    je short 03a2ah                           ; 74 03
     5151    jmp near 03241h                           ; e9 17 f8
     5152    or bl, 090h                               ; 80 cb 90
     5153    jmp short 03a37h                          ; eb 08
     5154    or bl, 070h                               ; 80 cb 70
     5155    jmp short 03a37h                          ; eb 03
     5156    or bl, 010h                               ; 80 cb 10
    51635157    mov ax, strict word 00040h                ; b8 40 00
    5164     call 01660h                               ; e8 29 dc
     5158    mov es, ax                                ; 8e c0
     5159    mov si, word [bp-00eh]                    ; 8b 76 f2
     5160    mov byte [es:si], bl                      ; 26 88 1c
    51655161    xor al, al                                ; 30 c0
    51665162    mov byte [bp+017h], al                    ; 88 46 17
    5167     xor ah, ah                                ; 30 e4
    5168     call 02eb0h                               ; e8 6f f4
    5169     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    5170     jmp near 036bah                           ; e9 72 fc
    5171     mov byte [bp-006h], al                    ; 88 46 fa
    5172     mov ah, byte [bp+014h]                    ; 8a 66 14
    5173     and ah, 03fh                              ; 80 e4 3f
    5174     mov byte [bp-008h], ah                    ; 88 66 f8
    5175     mov bl, byte [bp-010h]                    ; 8a 5e f0
     5163    mov bx, strict word 00041h                ; bb 41 00
     5164    mov byte [es:bx], al                      ; 26 88 07
     5165    jmp near 0352fh                           ; e9 df fa
     5166    mov bl, dl                                ; 88 d3
     5167    mov cl, byte [bp+014h]                    ; 8a 4e 14
     5168    mov bh, cl                                ; 88 cf
     5169    and bh, 03fh                              ; 80 e7 3f
     5170    mov byte [bp-00ah], cl                    ; 88 4e f6
     5171    mov byte [bp-009h], dh                    ; 88 76 f7
    51765172    mov CL, strict byte 006h                  ; b1 06
    5177     sar bx, CL                                ; d3 fb
    5178     mov bh, bl                                ; 88 df
    5179     xor bl, bl                                ; 30 db
    5180     add bx, word [bp-012h]                    ; 03 5e ee
    5181     mov byte [bp-00ah], bl                    ; 88 5e f6
    5182     cmp AL, strict byte 001h                  ; 3c 01
    5183     jbe short 03a6ch                          ; 76 03
    5184     jmp near 039b3h                           ; e9 47 ff
    5185     mov al, byte [bp-006h]                    ; 8a 46 fa
    5186     xor ah, ah                                ; 30 e4
    5187     call 03202h                               ; e8 8e f7
     5173    mov di, word [bp-00ah]                    ; 8b 7e f6
     5174    sar di, CL                                ; d3 ff
     5175    mov cx, di                                ; 89 f9
     5176    mov byte [bp-009h], cl                    ; 88 4e f7
     5177    mov byte [bp-00ah], dh                    ; 88 76 f6
     5178    mov cl, byte [bp+015h]                    ; 8a 4e 15
     5179    xor ch, ch                                ; 30 ed
     5180    add cx, word [bp-00ah]                    ; 03 4e f6
     5181    mov byte [bp-004h], cl                    ; 88 4e fc
     5182    cmp dl, 001h                              ; 80 fa 01
     5183    jbe short 03a82h                          ; 76 03
     5184    jmp near 039adh                           ; e9 2b ff
     5185    mov al, bl                                ; 88 d8
     5186    xor ah, ah                                ; 30 e4
     5187    call 031b1h                               ; e8 28 f7
    51885188    test ax, ax                               ; 85 c0
    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
     5189    jne short 03a90h                          ; 75 03
     5190    jmp near 036d9h                           ; e9 49 fc
     5191    mov cl, bl                                ; 88 d9
     5192    xor ch, ch                                ; 30 ed
     5193    mov ax, cx                                ; 89 c8
     5194    call 02febh                               ; e8 52 f5
    51955195    test ax, ax                               ; 85 c0
    5196     jne short 03aa3h                          ; 75 1a
    5197     mov ax, dx                                ; 89 d0
    5198     call 03108h                               ; e8 7a f6
     5196    jne short 03ac4h                          ; 75 27
     5197    mov ax, cx                                ; 89 c8
     5198    call 030cah                               ; e8 28 f6
    51995199    test ax, ax                               ; 85 c0
    5200     jne short 03aa3h                          ; 75 11
     5200    jne short 03ac4h                          ; 75 1e
    52015201    mov ax, word [bp+016h]                    ; 8b 46 16
    52025202    xor ah, ah                                ; 30 e4
    52035203    or ah, 00ch                               ; 80 cc 0c
    52045204    mov word [bp+016h], ax                    ; 89 46 16
    5205     mov ax, strict word 0000ch                ; b8 0c 00
    5206     jmp near 032beh                           ; e9 1b f8
     5205    mov bx, strict word 00041h                ; bb 41 00
     5206    mov ax, strict word 00040h                ; b8 40 00
     5207    mov es, ax                                ; 8e c0
     5208    mov byte [es:bx], 00ch                    ; 26 c6 07 0c
     5209    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     5210    jmp near 032b7h                           ; e9 f3 f7
    52075211    mov ax, strict word 00010h                ; b8 10 00
    5208     call 016aeh                               ; e8 05 dc
    5209     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5210     jne short 03ab7h                          ; 75 08
     5212    call 016aeh                               ; e8 e4 db
     5213    test bl, bl                               ; 84 db
     5214    jne short 03ad6h                          ; 75 08
    52115215    mov CL, strict byte 004h                  ; b1 04
    5212     mov ch, al                                ; 88 c5
    5213     shr ch, CL                                ; d2 ed
    5214     jmp short 03abch                          ; eb 05
    5215     mov ch, al                                ; 88 c5
    5216     and ch, 00fh                              ; 80 e5 0f
    5217     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5218     je short 03ac7h                           ; 74 05
    5219     mov dx, 00091h                            ; ba 91 00
    5220     jmp short 03acah                          ; eb 03
    5221     mov dx, 00090h                            ; ba 90 00
    5222     mov word [bp-014h], dx                    ; 89 56 ec
     5216    mov dl, al                                ; 88 c2
     5217    shr dl, CL                                ; d2 ea
     5218    jmp short 03adbh                          ; eb 05
     5219    mov dl, al                                ; 88 c2
     5220    and dl, 00fh                              ; 80 e2 0f
     5221    test bl, bl                               ; 84 db
     5222    je short 03ae4h                           ; 74 05
     5223    mov si, 00091h                            ; be 91 00
     5224    jmp short 03ae7h                          ; eb 03
     5225    mov si, 00090h                            ; be 90 00
     5226    mov word [bp-00eh], si                    ; 89 76 f2
    52235227    mov ax, strict word 00040h                ; b8 40 00
    5224     call 01652h                               ; e8 7f db
    5225     and AL, strict byte 00fh                  ; 24 0f
    5226     cmp ch, 003h                              ; 80 fd 03
    5227     jc short 03af6h                           ; 72 1c
    5228     mov ah, al                                ; 88 c4
    5229     or ah, 090h                               ; 80 cc 90
    5230     cmp ch, 003h                              ; 80 fd 03
    5231     jbe short 03b32h                          ; 76 4e
    5232     mov dl, al                                ; 88 c2
    5233     or dl, 010h                               ; 80 ca 10
    5234     cmp ch, 005h                              ; 80 fd 05
    5235     je short 03b30h                           ; 74 42
    5236     cmp ch, 004h                              ; 80 fd 04
    5237     je short 03b40h                           ; 74 4d
    5238     jmp near 03b7ch                           ; e9 86 00
    5239     cmp ch, 002h                              ; 80 fd 02
    5240     je short 03b10h                           ; 74 15
    5241     cmp ch, 001h                              ; 80 fd 01
    5242     jne short 03b44h                          ; 75 44
    5243     cmp byte [bp-00ah], 027h                  ; 80 7e f6 27
    5244     jne short 03b44h                          ; 75 3e
    5245     cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5246     jne short 03b5ch                          ; 75 50
     5228    mov es, ax                                ; 8e c0
     5229    mov bl, byte [es:si]                      ; 26 8a 1c
     5230    and bl, 00fh                              ; 80 e3 0f
     5231    cmp dl, 003h                              ; 80 fa 03
     5232    jc short 03b15h                           ; 72 1b
     5233    mov al, bl                                ; 88 d8
    52475234    or AL, strict byte 090h                   ; 0c 90
    5248     jmp short 03b5ch                          ; eb 4c
    5249     cmp byte [bp-00ah], 027h                  ; 80 7e f6 27
    5250     jne short 03b20h                          ; 75 0a
    5251     cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5252     jne short 03b20h                          ; 75 04
    5253     or AL, strict byte 070h                   ; 0c 70
    5254     jmp short 03b5ch                          ; eb 3c
    5255     cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5256     jne short 03b5ch                          ; 75 36
    5257     cmp byte [bp-008h], 00fh                  ; 80 7e f8 0f
    5258     jne short 03b7ch                          ; 75 50
    5259     or AL, strict byte 010h                   ; 0c 10
    5260     jmp short 03b7ch                          ; eb 4c
    5261     jmp short 03b5eh                          ; eb 2c
    5262     cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5263     jne short 03b7ch                          ; 75 44
    5264     cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5265     je short 03b42h                           ; 74 04
    5266     jmp short 03b7ch                          ; eb 3c
    5267     jmp short 03b46h                          ; eb 04
    5268     mov al, ah                                ; 88 e0
    5269     jmp short 03b7ch                          ; eb 36
    5270     cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5271     jne short 03b7ch                          ; 75 30
    5272     cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5273     jne short 03b54h                          ; 75 02
    5274     jmp short 03b42h                          ; eb ee
    5275     cmp byte [bp-008h], 012h                  ; 80 7e f8 12
    5276     jne short 03b7ch                          ; 75 22
     5235    cmp dl, 003h                              ; 80 fa 03
     5236    jbe short 03b51h                          ; 76 4e
     5237    mov ah, bl                                ; 88 dc
     5238    or ah, 010h                               ; 80 cc 10
     5239    cmp dl, 005h                              ; 80 fa 05
     5240    je short 03b4fh                           ; 74 42
     5241    cmp dl, 004h                              ; 80 fa 04
     5242    je short 03b5eh                           ; 74 4c
     5243    jmp near 03b96h                           ; e9 81 00
     5244    cmp dl, 002h                              ; 80 fa 02
     5245    je short 03b2fh                           ; 74 15
     5246    cmp dl, 001h                              ; 80 fa 01
     5247    jne short 03b62h                          ; 75 43
     5248    cmp byte [bp-004h], 027h                  ; 80 7e fc 27
     5249    jne short 03b62h                          ; 75 3d
     5250    cmp bh, 009h                              ; 80 ff 09
     5251    jne short 03b78h                          ; 75 4e
     5252    or bl, 090h                               ; 80 cb 90
     5253    jmp short 03b78h                          ; eb 49
     5254    cmp byte [bp-004h], 027h                  ; 80 7e fc 27
     5255    jne short 03b3fh                          ; 75 0a
     5256    cmp bh, 009h                              ; 80 ff 09
     5257    jne short 03b3fh                          ; 75 05
     5258    or bl, 070h                               ; 80 cb 70
     5259    jmp short 03b78h                          ; eb 39
     5260    cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
     5261    jne short 03b96h                          ; 75 51
     5262    cmp bh, 00fh                              ; 80 ff 0f
     5263    jne short 03b96h                          ; 75 4c
     5264    or bl, 010h                               ; 80 cb 10
     5265    jmp short 03b96h                          ; eb 47
     5266    jmp short 03b7ah                          ; eb 29
     5267    cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
     5268    jne short 03b96h                          ; 75 3f
     5269    cmp bh, 009h                              ; 80 ff 09
     5270    je short 03b60h                           ; 74 04
     5271    jmp short 03b96h                          ; eb 38
     5272    jmp short 03b64h                          ; eb 04
     5273    mov bl, al                                ; 88 c3
     5274    jmp short 03b96h                          ; eb 32
     5275    cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
     5276    jne short 03b96h                          ; 75 2c
     5277    cmp bh, 009h                              ; 80 ff 09
     5278    jne short 03b71h                          ; 75 02
     5279    jmp short 03b60h                          ; eb ef
     5280    cmp bh, 012h                              ; 80 ff 12
     5281    jne short 03b96h                          ; 75 20
     5282    mov bl, ah                                ; 88 e3
     5283    jmp short 03b96h                          ; eb 1c
     5284    cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
     5285    jne short 03b96h                          ; 75 16
     5286    cmp bh, 009h                              ; 80 ff 09
     5287    jne short 03b87h                          ; 75 02
     5288    jmp short 03b60h                          ; eb d9
     5289    cmp bh, 012h                              ; 80 ff 12
     5290    jne short 03b8eh                          ; 75 02
     5291    jmp short 03b76h                          ; eb e8
     5292    cmp bh, 024h                              ; 80 ff 24
     5293    jne short 03b96h                          ; 75 03
     5294    or bl, 0d0h                               ; 80 cb d0
     5295    mov al, bl                                ; 88 d8
     5296    xor ah, ah                                ; 30 e4
     5297    mov CL, strict byte 004h                  ; b1 04
     5298    sar ax, CL                                ; d3 f8
     5299    test AL, strict byte 001h                 ; a8 01
     5300    jne short 03ba5h                          ; 75 03
     5301    jmp near 03aa6h                           ; e9 01 ff
     5302    mov ax, strict word 00040h                ; b8 40 00
     5303    mov es, ax                                ; 8e c0
     5304    mov si, word [bp-00eh]                    ; 8b 76 f2
     5305    mov byte [es:si], bl                      ; 26 88 1c
     5306    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    52775307    mov al, dl                                ; 88 d0
    5278     jmp short 03b7ch                          ; eb 1e
    5279     cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5280     jne short 03b7ch                          ; 75 18
    5281     cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5282     jne short 03b6ch                          ; 75 02
    5283     jmp short 03b42h                          ; eb d6
    5284     cmp byte [bp-008h], 012h                  ; 80 7e f8 12
    5285     jne short 03b74h                          ; 75 02
    5286     jmp short 03b5ah                          ; eb e6
    5287     cmp byte [bp-008h], 024h                  ; 80 7e f8 24
    5288     jne short 03b7ch                          ; 75 02
    5289     or AL, strict byte 0d0h                   ; 0c d0
    5290     mov dl, al                                ; 88 c2
    5291     xor dh, dh                                ; 30 f6
    5292     mov CL, strict byte 004h                  ; b1 04
    5293     sar dx, CL                                ; d3 fa
    5294     test dl, 001h                             ; f6 c2 01
    5295     jne short 03b8ch                          ; 75 03
    5296     jmp near 03a92h                           ; e9 06 ff
    5297     mov bl, al                                ; 88 c3
    5298     xor bh, bh                                ; 30 ff
    5299     mov dx, word [bp-014h]                    ; 8b 56 ec
     5308    xor ah, ah                                ; 30 e4
     5309    call 03bf8h                               ; e8 3c 00
     5310    mov word [bp+008h], ax                    ; 89 46 08
     5311    mov byte [bp+017h], 000h                  ; c6 46 17 00
     5312    mov bx, strict word 00041h                ; bb 41 00
    53005313    mov ax, strict word 00040h                ; b8 40 00
    5301     call 01660h                               ; e8 c7 da
    5302     mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    5303     mov al, ch                                ; 88 e8
    5304     xor ah, ah                                ; 30 e4
    5305     call 03bd1h                               ; e8 2c 00
    5306     mov word [bp+008h], ax                    ; 89 46 08
    5307     jmp near 03a37h                           ; e9 8c fe
     5314    mov es, ax                                ; 8e c0
     5315    mov byte [es:bx], 000h                    ; 26 c6 07 00
     5316    jmp near 0352fh                           ; e9 5d f9
    53085317    mov bx, 00da0h                            ; bb a0 0d
    53095318    mov cx, ds                                ; 8c d9
    53105319    mov ax, strict word 00004h                ; b8 04 00
    5311     call 01933h                               ; e8 7d dd
     5320    call 01933h                               ; e8 56 dd
    53125321    mov al, byte [bp+017h]                    ; 8a 46 17
    53135322    xor ah, ah                                ; 30 e4
     
    53195328    mov ax, strict word 00004h                ; b8 04 00
    53205329    push ax                                   ; 50
    5321     call 01976h                               ; e8 ab dd
     5330    call 01976h                               ; e8 84 dd
    53225331    add sp, strict byte 00008h                ; 83 c4 08
    5323     jmp near 032b0h                           ; e9 df f6
    5324 get_floppy_dpt_:                             ; 0xf3bd1 LB 0x32
     5332    jmp near 03241h                           ; e9 49 f6
     5333get_floppy_dpt_:                             ; 0xf3bf8 LB 0x32
    53255334    push bx                                   ; 53
    53265335    push dx                                   ; 52
     
    53295338    mov dl, al                                ; 88 c2
    53305339    xor ax, ax                                ; 31 c0
    5331     jmp short 03be2h                          ; eb 06
     5340    jmp short 03c09h                          ; eb 06
    53325341    inc ax                                    ; 40
    53335342    cmp ax, strict word 00007h                ; 3d 07 00
    5334     jnc short 03bfch                          ; 73 1a
     5343    jnc short 03c23h                          ; 73 1a
    53355344    mov bx, ax                                ; 89 c3
    53365345    sal bx, 1                                 ; d1 e3
    53375346    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
    5338     jne short 03bdch                          ; 75 f0
     5347    jne short 03c03h                          ; 75 f0
    53395348    mov al, byte [word bx+0005ch]             ; 8a 87 5c 00
    53405349    xor ah, ah                                ; 30 e4
     
    53425351    imul bx                                   ; f7 eb
    53435352    add ax, strict word 00000h                ; 05 00 00
    5344     jmp short 03bffh                          ; eb 03
     5353    jmp short 03c26h                          ; eb 03
    53455354    mov ax, strict word 00041h                ; b8 41 00
    53465355    pop bp                                    ; 5d
     
    53485357    pop bx                                    ; 5b
    53495358    retn                                      ; c3
    5350 dummy_soft_reset_:                           ; 0xf3c03 LB 0x7
     5359dummy_soft_reset_:                           ; 0xf3c2a LB 0x7
    53515360    push bp                                   ; 55
    53525361    mov bp, sp                                ; 89 e5
     
    53545363    pop bp                                    ; 5d
    53555364    retn                                      ; c3
    5356 _cdemu_init:                                 ; 0xf3c0a LB 0x18
     5365_cdemu_init:                                 ; 0xf3c31 LB 0x18
    53575366    push bp                                   ; 55
    53585367    mov bp, sp                                ; 89 e5
    53595368    mov dx, strict word 0000eh                ; ba 0e 00
    53605369    mov ax, strict word 00040h                ; b8 40 00
    5361     call 0166eh                               ; e8 58 da
     5370    call 0166eh                               ; e8 31 da
    53625371    xor bx, bx                                ; 31 db
    53635372    mov dx, 00366h                            ; ba 66 03
    5364     call 01660h                               ; e8 42 da
     5373    call 01660h                               ; e8 1b da
    53655374    mov sp, bp                                ; 89 ec
    53665375    pop bp                                    ; 5d
    53675376    retn                                      ; c3
    5368 _cdemu_isactive:                             ; 0xf3c22 LB 0x16
     5377_cdemu_isactive:                             ; 0xf3c49 LB 0x16
    53695378    push bp                                   ; 55
    53705379    mov bp, sp                                ; 89 e5
    53715380    mov dx, strict word 0000eh                ; ba 0e 00
    53725381    mov ax, strict word 00040h                ; b8 40 00
    5373     call 0166eh                               ; e8 40 da
     5382    call 0166eh                               ; e8 19 da
    53745383    mov dx, 00366h                            ; ba 66 03
    5375     call 01652h                               ; e8 1e da
     5384    call 01652h                               ; e8 f7 d9
    53765385    mov sp, bp                                ; 89 ec
    53775386    pop bp                                    ; 5d
    53785387    retn                                      ; c3
    5379 _cdemu_emulated_drive:                       ; 0xf3c38 LB 0x16
     5388_cdemu_emulated_drive:                       ; 0xf3c5f LB 0x16
    53805389    push bp                                   ; 55
    53815390    mov bp, sp                                ; 89 e5
    53825391    mov dx, strict word 0000eh                ; ba 0e 00
    53835392    mov ax, strict word 00040h                ; b8 40 00
    5384     call 0166eh                               ; e8 2a da
     5393    call 0166eh                               ; e8 03 da
    53855394    mov dx, 00368h                            ; ba 68 03
    5386     call 01652h                               ; e8 08 da
     5395    call 01652h                               ; e8 e1 d9
    53875396    mov sp, bp                                ; 89 ec
    53885397    pop bp                                    ; 5d
    53895398    retn                                      ; c3
    5390 _int13_eltorito:                             ; 0xf3c4e LB 0x191
     5399_int13_eltorito:                             ; 0xf3c75 LB 0x191
    53915400    push bp                                   ; 55
    53925401    mov bp, sp                                ; 89 e5
     
    53955404    mov dx, strict word 0000eh                ; ba 0e 00
    53965405    mov ax, strict word 00040h                ; b8 40 00
    5397     call 0166eh                               ; e8 12 da
     5406    call 0166eh                               ; e8 eb d9
    53985407    mov si, 00366h                            ; be 66 03
    53995408    mov di, ax                                ; 89 c7
     
    54015410    xor ah, ah                                ; 30 e4
    54025411    cmp ax, strict word 0004bh                ; 3d 4b 00
    5403     jc short 03c75h                           ; 72 0a
    5404     jbe short 03ca0h                          ; 76 33
     5412    jc short 03c9ch                           ; 72 0a
     5413    jbe short 03cc7h                          ; 76 33
    54055414    cmp ax, strict word 0004dh                ; 3d 4d 00
    5406     jbe short 03c7ah                          ; 76 08
    5407     jmp near 03da5h                           ; e9 30 01
     5415    jbe short 03ca1h                          ; 76 08
     5416    jmp near 03dcch                           ; e9 30 01
    54085417    cmp ax, strict word 0004ah                ; 3d 4a 00
    5409     jne short 03c9dh                          ; 75 23
     5418    jne short 03cc4h                          ; 75 23
    54105419    mov bx, 00da0h                            ; bb a0 0d
    54115420    mov cx, ds                                ; 8c d9
    54125421    mov ax, strict word 00004h                ; b8 04 00
    5413     call 01933h                               ; e8 ae dc
     5422    call 01933h                               ; e8 87 dc
    54145423    push word [bp+016h]                       ; ff 76 16
    54155424    mov ax, 002fch                            ; b8 fc 02
     
    54195428    mov ax, strict word 00004h                ; b8 04 00
    54205429    push ax                                   ; 50
    5421     call 01976h                               ; e8 df dc
     5430    call 01976h                               ; e8 b8 dc
    54225431    add sp, strict byte 00008h                ; 83 c4 08
    5423     jmp near 03dc0h                           ; e9 23 01
    5424     jmp near 03da5h                           ; e9 05 01
     5432    jmp near 03de7h                           ; e9 23 01
     5433    jmp near 03dcch                           ; e9 05 01
    54255434    mov dx, word [bp+00ah]                    ; 8b 56 0a
    54265435    mov ax, word [bp+004h]                    ; 8b 46 04
    54275436    mov bx, strict word 00013h                ; bb 13 00
    5428     call 01660h                               ; e8 b4 d9
     5437    call 01660h                               ; e8 8d d9
    54295438    mov es, di                                ; 8e c7
    54305439    mov bl, byte [es:si+001h]                 ; 26 8a 5c 01
     
    54335442    inc dx                                    ; 42
    54345443    mov ax, word [bp+004h]                    ; 8b 46 04
    5435     call 01660h                               ; e8 a2 d9
     5444    call 01660h                               ; e8 7b d9
    54365445    mov es, di                                ; 8e c7
    54375446    mov bl, byte [es:si+002h]                 ; 26 8a 5c 02
     
    54415450    inc dx                                    ; 42
    54425451    mov ax, word [bp+004h]                    ; 8b 46 04
    5443     call 01660h                               ; e8 8f d9
     5452    call 01660h                               ; e8 68 d9
    54445453    mov es, di                                ; 8e c7
    54455454    mov bl, byte [es:si+003h]                 ; 26 8a 5c 03
     
    54485457    add dx, strict byte 00003h                ; 83 c2 03
    54495458    mov ax, word [bp+004h]                    ; 8b 46 04
    5450     call 01660h                               ; e8 7b d9
     5459    call 01660h                               ; e8 54 d9
    54515460    mov es, di                                ; 8e c7
    54525461    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    54555464    add dx, strict byte 00004h                ; 83 c2 04
    54565465    mov ax, word [bp+004h]                    ; 8b 46 04
    5457     call 0169ch                               ; e8 a1 d9
     5466    call 0169ch                               ; e8 7a d9
    54585467    mov es, di                                ; 8e c7
    54595468    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    54615470    add dx, strict byte 00008h                ; 83 c2 08
    54625471    mov ax, word [bp+004h]                    ; 8b 46 04
    5463     call 0167ch                               ; e8 6f d9
     5472    call 0167ch                               ; e8 48 d9
    54645473    mov es, di                                ; 8e c7
    54655474    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    54675476    add dx, strict byte 0000ah                ; 83 c2 0a
    54685477    mov ax, word [bp+004h]                    ; 8b 46 04
    5469     call 0167ch                               ; e8 5d d9
     5478    call 0167ch                               ; e8 36 d9
    54705479    mov es, di                                ; 8e c7
    54715480    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    54735482    add dx, strict byte 0000ch                ; 83 c2 0c
    54745483    mov ax, word [bp+004h]                    ; 8b 46 04
    5475     call 0167ch                               ; e8 4b d9
     5484    call 0167ch                               ; e8 24 d9
    54765485    mov es, di                                ; 8e c7
    54775486    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    54795488    add dx, strict byte 0000eh                ; 83 c2 0e
    54805489    mov ax, word [bp+004h]                    ; 8b 46 04
    5481     call 0167ch                               ; e8 39 d9
     5490    call 0167ch                               ; e8 12 d9
    54825491    mov es, di                                ; 8e c7
    54835492    mov bl, byte [es:si+012h]                 ; 26 8a 5c 12
     
    54865495    add dx, strict byte 00010h                ; 83 c2 10
    54875496    mov ax, word [bp+004h]                    ; 8b 46 04
    5488     call 01660h                               ; e8 09 d9
     5497    call 01660h                               ; e8 e2 d8
    54895498    mov es, di                                ; 8e c7
    54905499    mov bl, byte [es:si+014h]                 ; 26 8a 5c 14
     
    54935502    add dx, strict byte 00011h                ; 83 c2 11
    54945503    mov ax, word [bp+004h]                    ; 8b 46 04
    5495     call 01660h                               ; e8 f5 d8
     5504    call 01660h                               ; e8 ce d8
    54965505    mov es, di                                ; 8e c7
    54975506    mov bl, byte [es:si+010h]                 ; 26 8a 5c 10
     
    55005509    add dx, strict byte 00012h                ; 83 c2 12
    55015510    mov ax, word [bp+004h]                    ; 8b 46 04
    5502     call 01660h                               ; e8 e1 d8
     5511    call 01660h                               ; e8 ba d8
    55035512    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    5504     jne short 03d8bh                          ; 75 06
     5513    jne short 03db2h                          ; 75 06
    55055514    mov es, di                                ; 8e c7
    55065515    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    55095518    mov dx, strict word 00074h                ; ba 74 00
    55105519    mov ax, strict word 00040h                ; b8 40 00
    5511     call 01660h                               ; e8 c6 d8
     5520    call 01660h                               ; e8 9f d8
    55125521    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    55135522    lea sp, [bp-004h]                         ; 8d 66 fc
     
    55195528    mov cx, ds                                ; 8c d9
    55205529    mov ax, strict word 00004h                ; b8 04 00
    5521     call 01933h                               ; e8 83 db
     5530    call 01933h                               ; e8 5c db
    55225531    mov al, byte [bp+017h]                    ; 8a 46 17
    55235532    xor ah, ah                                ; 30 e4
     
    55265535    push ax                                   ; 50
    55275536    mov ax, 00333h                            ; b8 33 03
    5528     jmp near 03c8fh                           ; e9 cf fe
     5537    jmp near 03cb6h                           ; e9 cf fe
    55295538    mov ax, word [bp+016h]                    ; 8b 46 16
    55305539    xor ah, ah                                ; 30 e4
     
    55355544    mov dx, strict word 00074h                ; ba 74 00
    55365545    mov ax, strict word 00040h                ; b8 40 00
    5537     call 01660h                               ; e8 87 d8
     5546    call 01660h                               ; e8 60 d8
    55385547    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5539     jmp short 03d9eh                          ; eb bf
    5540 device_is_cdrom_:                            ; 0xf3ddf LB 0x3f
     5548    jmp short 03dc5h                          ; eb bf
     5549device_is_cdrom_:                            ; 0xf3e06 LB 0x3f
    55415550    push bp                                   ; 55
    55425551    mov bp, sp                                ; 89 e5
     
    55475556    mov dx, strict word 0000eh                ; ba 0e 00
    55485557    mov ax, strict word 00040h                ; b8 40 00
    5549     call 0166eh                               ; e8 7e d8
     5558    call 0166eh                               ; e8 57 d8
    55505559    mov cx, ax                                ; 89 c1
    55515560    cmp bl, 010h                              ; 80 fb 10
    5552     jc short 03dfbh                           ; 72 04
     5561    jc short 03e22h                           ; 72 04
    55535562    xor ax, ax                                ; 31 c0
    5554     jmp short 03e16h                          ; eb 1b
     5563    jmp short 03e3dh                          ; eb 1b
    55555564    mov al, bl                                ; 88 d8
    55565565    xor ah, ah                                ; 30 e4
     
    55615570    add bx, 00122h                            ; 81 c3 22 01
    55625571    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    5563     jne short 03df7h                          ; 75 e4
     5572    jne short 03e1eh                          ; 75 e4
    55645573    mov ax, strict word 00001h                ; b8 01 00
    55655574    lea sp, [bp-006h]                         ; 8d 66 fa
     
    55695578    pop bp                                    ; 5d
    55705579    retn                                      ; c3
    5571 cdrom_boot_:                                 ; 0xf3e1e LB 0x43d
     5580cdrom_boot_:                                 ; 0xf3e45 LB 0x43e
    55725581    push bp                                   ; 55
    55735582    mov bp, sp                                ; 89 e5
     
    55805589    mov dx, strict word 0000eh                ; ba 0e 00
    55815590    mov ax, strict word 00040h                ; b8 40 00
    5582     call 0166eh                               ; e8 3b d8
    5583     mov word [bp-01ah], ax                    ; 89 46 e6
     5591    call 0166eh                               ; e8 14 d8
     5592    mov word [bp-018h], ax                    ; 89 46 e8
    55845593    mov si, 00366h                            ; be 66 03
    5585     mov word [bp-018h], ax                    ; 89 46 e8
    5586     mov word [bp-014h], 00122h                ; c7 46 ec 22 01
    5587     mov word [bp-012h], ax                    ; 89 46 ee
    5588     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    5589     jmp short 03e53h                          ; eb 09
    5590     inc byte [bp-00ch]                        ; fe 46 f4
    5591     cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5592     jnc short 03e5fh                          ; 73 0c
    5593     mov al, byte [bp-00ch]                    ; 8a 46 f4
    5594     xor ah, ah                                ; 30 e4
    5595     call 03ddfh                               ; e8 84 ff
     5594    mov word [bp-016h], ax                    ; 89 46 ea
     5595    mov word [bp-012h], 00122h                ; c7 46 ee 22 01
     5596    mov word [bp-010h], ax                    ; 89 46 f0
     5597    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     5598    jmp short 03e7ah                          ; eb 09
     5599    inc byte [bp-00eh]                        ; fe 46 f2
     5600    cmp byte [bp-00eh], 010h                  ; 80 7e f2 10
     5601    jnc short 03e86h                          ; 73 0c
     5602    mov al, byte [bp-00eh]                    ; 8a 46 f2
     5603    xor ah, ah                                ; 30 e4
     5604    call 03e06h                               ; e8 84 ff
    55965605    test ax, ax                               ; 85 c0
    5597     je short 03e4ah                           ; 74 eb
    5598     cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5599     jc short 03e6bh                           ; 72 06
     5606    je short 03e71h                           ; 74 eb
     5607    cmp byte [bp-00eh], 010h                  ; 80 7e f2 10
     5608    jc short 03e92h                           ; 72 06
    56005609    mov ax, strict word 00002h                ; b8 02 00
    5601     jmp near 041f8h                           ; e9 8d 03
     5610    jmp near 04220h                           ; e9 8e 03
    56025611    mov cx, strict word 0000ch                ; b9 0c 00
    56035612    xor bx, bx                                ; 31 db
    56045613    mov dx, ss                                ; 8c d2
    56055614    lea ax, [bp-026h]                         ; 8d 46 da
    5606     call 0a0d0h                               ; e8 58 62
     5615    call 0a100h                               ; e8 61 62
    56075616    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    56085617    mov ax, strict word 00011h                ; b8 11 00
     
    56165625    xchg ah, al                               ; 86 c4
    56175626    mov word [bp-01fh], ax                    ; 89 46 e1
    5618     les bx, [bp-014h]                         ; c4 5e ec
     5627    les bx, [bp-012h]                         ; c4 5e ee
    56195628    mov word [es:bx+00eh], strict word 00001h ; 26 c7 47 0e 01 00
    56205629    mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
    5621     mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    5622     jmp short 03eb3h                          ; eb 09
    5623     inc byte [bp-00eh]                        ; fe 46 f2
    5624     cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
    5625     jnbe short 03ef5h                         ; 77 42
    5626     mov al, byte [bp-00ch]                    ; 8a 46 f4
     5630    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     5631    jmp short 03edah                          ; eb 09
     5632    inc byte [bp-00ch]                        ; fe 46 f4
     5633    cmp byte [bp-00ch], 004h                  ; 80 7e f4 04
     5634    jnbe short 03f1ch                         ; 77 42
     5635    mov al, byte [bp-00eh]                    ; 8a 46 f2
    56275636    xor ah, ah                                ; 30 e4
    56285637    mov dx, strict word 0001ch                ; ba 1c 00
    56295638    imul dx                                   ; f7 ea
    5630     les bx, [bp-014h]                         ; c4 5e ec
     5639    les bx, [bp-012h]                         ; c4 5e ee
    56315640    add bx, ax                                ; 01 c3
    56325641    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
     
    56455654    xor ax, ax                                ; 31 c0
    56465655    push ax                                   ; 50
    5647     mov al, byte [bp-00ch]                    ; 8a 46 f4
     5656    mov al, byte [bp-00eh]                    ; 8a 46 f2
    56485657    xor ah, ah                                ; 30 e4
    56495658    mov cx, ss                                ; 8c d1
     
    56525661    call word [word di+0006ah]                ; ff 95 6a 00
    56535662    test ax, ax                               ; 85 c0
    5654     jne short 03eaah                          ; 75 b5
     5663    jne short 03ed1h                          ; 75 b5
    56555664    test ax, ax                               ; 85 c0
    5656     je short 03effh                           ; 74 06
     5665    je short 03f26h                           ; 74 06
    56575666    mov ax, strict word 00003h                ; b8 03 00
    5658     jmp near 041f8h                           ; e9 f9 02
     5667    jmp near 04220h                           ; e9 fa 02
    56595668    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    5660     je short 03f0ch                           ; 74 06
     5669    je short 03f33h                           ; 74 06
    56615670    mov ax, strict word 00004h                ; b8 04 00
    5662     jmp near 041f8h                           ; e9 ec 02
     5671    jmp near 04220h                           ; e9 ed 02
    56635672    xor di, di                                ; 31 ff
    5664     jmp short 03f16h                          ; eb 06
     5673    jmp short 03f3dh                          ; eb 06
    56655674    inc di                                    ; 47
    56665675    cmp di, strict byte 00005h                ; 83 ff 05
    5667     jnc short 03f26h                          ; 73 10
     5676    jnc short 03f4dh                          ; 73 10
    56685677    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    56695678    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
    5670     je short 03f10h                           ; 74 f0
     5679    je short 03f37h                           ; 74 f0
    56715680    mov ax, strict word 00005h                ; b8 05 00
    5672     jmp near 041f8h                           ; e9 d2 02
     5681    jmp near 04220h                           ; e9 d3 02
    56735682    xor di, di                                ; 31 ff
    5674     jmp short 03f30h                          ; eb 06
     5683    jmp short 03f57h                          ; eb 06
    56755684    inc di                                    ; 47
    56765685    cmp di, strict byte 00017h                ; 83 ff 17
    5677     jnc short 03f40h                          ; 73 10
     5686    jnc short 03f67h                          ; 73 10
    56785687    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    56795688    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
    5680     je short 03f2ah                           ; 74 f0
     5689    je short 03f51h                           ; 74 f0
    56815690    mov ax, strict word 00006h                ; b8 06 00
    5682     jmp near 041f8h                           ; e9 b8 02
     5691    jmp near 04220h                           ; e9 b9 02
    56835692    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    56845693    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    56925701    xchg ah, al                               ; 86 c4
    56935702    mov word [bp-01fh], ax                    ; 89 46 e1
    5694     mov al, byte [bp-00ch]                    ; 8a 46 f4
     5703    mov al, byte [bp-00eh]                    ; 8a 46 f2
    56955704    xor ah, ah                                ; 30 e4
    56965705    mov dx, strict word 0001ch                ; ba 1c 00
    56975706    imul dx                                   ; f7 ea
    5698     les bx, [bp-014h]                         ; c4 5e ec
     5707    les bx, [bp-012h]                         ; c4 5e ee
    56995708    add bx, ax                                ; 01 c3
    57005709    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
     
    57135722    xor ax, ax                                ; 31 c0
    57145723    push ax                                   ; 50
    5715     mov al, byte [bp-00ch]                    ; 8a 46 f4
     5724    mov al, byte [bp-00eh]                    ; 8a 46 f2
    57165725    xor ah, ah                                ; 30 e4
    57175726    mov cx, ss                                ; 8c d1
     
    57205729    call word [word di+0006ah]                ; ff 95 6a 00
    57215730    test ax, ax                               ; 85 c0
    5722     je short 03fa8h                           ; 74 06
     5731    je short 03fcfh                           ; 74 06
    57235732    mov ax, strict word 00007h                ; b8 07 00
    5724     jmp near 041f8h                           ; e9 50 02
     5733    jmp near 04220h                           ; e9 51 02
    57255734    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    5726     je short 03fb5h                           ; 74 06
     5735    je short 03fdch                           ; 74 06
    57275736    mov ax, strict word 00008h                ; b8 08 00
    5728     jmp near 041f8h                           ; e9 43 02
     5737    jmp near 04220h                           ; e9 44 02
    57295738    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    5730     je short 03fc2h                           ; 74 06
     5739    je short 03fe9h                           ; 74 06
    57315740    mov ax, strict word 00009h                ; b8 09 00
    5732     jmp near 041f8h                           ; e9 36 02
     5741    jmp near 04220h                           ; e9 37 02
    57335742    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    5734     je short 03fcfh                           ; 74 06
     5743    je short 03ff6h                           ; 74 06
    57355744    mov ax, strict word 0000ah                ; b8 0a 00
    5736     jmp near 041f8h                           ; e9 29 02
     5745    jmp near 04220h                           ; e9 2a 02
    57375746    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    5738     jne short 03fc9h                          ; 75 f3
     5747    jne short 03ff0h                          ; 75 f3
    57395748    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    5740     je short 03fe3h                           ; 74 06
     5749    je short 0400ah                           ; 74 06
    57415750    mov ax, strict word 0000bh                ; b8 0b 00
    5742     jmp near 041f8h                           ; e9 15 02
     5751    jmp near 04220h                           ; e9 16 02
    57435752    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    5744     mov es, [bp-018h]                         ; 8e 46 e8
     5753    mov es, [bp-016h]                         ; 8e 46 ea
    57455754    mov byte [es:si+001h], al                 ; 26 88 44 01
    57465755    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    5747     jne short 03ffch                          ; 75 07
     5756    jne short 04023h                          ; 75 07
    57485757    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    5749     jmp short 0400fh                          ; eb 13
     5758    jmp short 04036h                          ; eb 13
    57505759    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    5751     jnc short 0400ah                          ; 73 07
     5760    jnc short 04031h                          ; 73 07
    57525761    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    5753     jmp short 0400fh                          ; eb 05
     5762    jmp short 04036h                          ; eb 05
    57545763    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    5755     mov bl, byte [bp-00ch]                    ; 8a 5e f4
     5764    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    57565765    xor bh, bh                                ; 30 ff
    57575766    mov ax, bx                                ; 89 d8
     
    57605769    ; sub ax, dx                                ; 2b c2
    57615770    sar ax, 1                                 ; d1 f8
    5762     mov es, [bp-018h]                         ; 8e 46 e8
     5771    mov es, [bp-016h]                         ; 8e 46 ea
    57635772    mov byte [es:si+003h], al                 ; 26 88 44 03
    57645773    mov ax, bx                                ; 89 d8
     
    57685777    mov word [es:si+004h], dx                 ; 26 89 54 04
    57695778    mov ax, word [bp-00804h]                  ; 8b 86 fc f7
    5770     mov word [bp-010h], ax                    ; 89 46 f0
     5779    mov word [bp-014h], ax                    ; 89 46 ec
    57715780    test ax, ax                               ; 85 c0
    5772     jne short 0403eh                          ; 75 05
    5773     mov word [bp-010h], 007c0h                ; c7 46 f0 c0 07
    5774     mov ax, word [bp-010h]                    ; 8b 46 f0
    5775     mov es, [bp-018h]                         ; 8e 46 e8
     5781    jne short 04065h                          ; 75 05
     5782    mov word [bp-014h], 007c0h                ; c7 46 ec c0 07
     5783    mov ax, word [bp-014h]                    ; 8b 46 ec
     5784    mov es, [bp-016h]                         ; 8e 46 ea
    57765785    mov word [es:si+00ch], ax                 ; 26 89 44 0c
    57775786    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
     
    57795788    mov word [es:si+00eh], bx                 ; 26 89 5c 0e
    57805789    test bx, bx                               ; 85 db
    5781     je short 04060h                           ; 74 06
     5790    je short 04087h                           ; 74 06
    57825791    cmp bx, 00400h                            ; 81 fb 00 04
    5783     jbe short 04066h                          ; 76 06
     5792    jbe short 0408dh                          ; 76 06
    57845793    mov ax, strict word 0000ch                ; b8 0c 00
    5785     jmp near 041f8h                           ; e9 92 01
     5794    jmp near 04220h                           ; e9 93 01
    57865795    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    57875796    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    58015810    xchg ah, al                               ; 86 c4
    58025811    mov word [bp-01fh], ax                    ; 89 46 e1
    5803     les di, [bp-014h]                         ; c4 7e ec
     5812    les di, [bp-012h]                         ; c4 7e ee
    58045813    mov word [es:di+00eh], dx                 ; 26 89 55 0e
    58055814    mov word [es:di+010h], 00200h             ; 26 c7 45 10 00 02
     
    58125821    and ah, 007h                              ; 80 e4 07
    58135822    mov word [es:di+020h], ax                 ; 26 89 45 20
    5814     mov al, byte [bp-00ch]                    ; 8a 46 f4
     5823    mov al, byte [bp-00eh]                    ; 8a 46 f2
    58155824    xor ah, ah                                ; 30 e4
    58165825    mov dx, strict word 0001ch                ; ba 1c 00
     
    58205829    xor ah, ah                                ; 30 e4
    58215830    sal ax, 1                                 ; d1 e0
    5822     mov word [bp-016h], ax                    ; 89 46 ea
    5823     push word [bp-010h]                       ; ff 76 f0
     5831    mov word [bp-01ah], ax                    ; 89 46 e6
     5832    push word [bp-014h]                       ; ff 76 ec
    58245833    xor ax, ax                                ; 31 c0
    58255834    push ax                                   ; 50
     
    58315840    sal ax, 1                                 ; d1 e0
    58325841    rcl di, 1                                 ; d1 d7
    5833     loop 040deh                               ; e2 fa
     5842    loop 04105h                               ; e2 fa
    58345843    push di                                   ; 57
    58355844    push ax                                   ; 50
    58365845    xor ax, ax                                ; 31 c0
    58375846    push ax                                   ; 50
    5838     mov al, byte [bp-00ch]                    ; 8a 46 f4
     5847    mov al, byte [bp-00eh]                    ; 8a 46 f2
    58395848    xor ah, ah                                ; 30 e4
    58405849    mov cx, ss                                ; 8c d1
    58415850    lea bx, [bp-026h]                         ; 8d 5e da
    58425851    mov dx, strict word 0000ch                ; ba 0c 00
    5843     mov di, word [bp-016h]                    ; 8b 7e ea
     5852    mov di, word [bp-01ah]                    ; 8b 7e e6
    58445853    call word [word di+0006ah]                ; ff 95 6a 00
    5845     les bx, [bp-014h]                         ; c4 5e ec
     5854    les bx, [bp-012h]                         ; c4 5e ee
    58465855    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    58475856    test ax, ax                               ; 85 c0
    5848     je short 04110h                           ; 74 06
     5857    je short 04137h                           ; 74 06
    58495858    mov ax, strict word 0000dh                ; b8 0d 00
    5850     jmp near 041f8h                           ; e9 e8 00
    5851     mov es, [bp-018h]                         ; 8e 46 e8
     5859    jmp near 04220h                           ; e9 e9 00
     5860    mov es, [bp-016h]                         ; 8e 46 ea
    58525861    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    58535862    cmp AL, strict byte 002h                  ; 3c 02
    5854     jc short 04128h                           ; 72 0d
    5855     jbe short 04143h                          ; 76 26
     5863    jc short 0414fh                           ; 72 0d
     5864    jbe short 0416ah                          ; 76 26
    58565865    cmp AL, strict byte 004h                  ; 3c 04
    5857     je short 04153h                           ; 74 32
     5866    je short 0417ah                           ; 74 32
    58585867    cmp AL, strict byte 003h                  ; 3c 03
    5859     je short 0414bh                           ; 74 26
    5860     jmp near 041a0h                           ; e9 78 00
     5868    je short 04172h                           ; 74 26
     5869    jmp near 041c8h                           ; e9 79 00
    58615870    cmp AL, strict byte 001h                  ; 3c 01
    5862     jne short 041a0h                          ; 75 74
    5863     mov es, [bp-018h]                         ; 8e 46 e8
     5871    jne short 041c8h                          ; 75 75
     5872    mov es, [bp-016h]                         ; 8e 46 ea
    58645873    mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00
    58655874    mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00
    58665875    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    5867     jmp short 041a0h                          ; eb 5d
     5876    jmp short 041c8h                          ; eb 5e
    58685877    mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00
    5869     jmp short 04135h                          ; eb ea
     5878    jmp short 0415ch                          ; eb ea
    58705879    mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00
    5871     jmp short 04135h                          ; eb e2
     5880    jmp short 0415ch                          ; eb e2
    58725881    mov dx, 001c4h                            ; ba c4 01
    5873     mov ax, word [bp-010h]                    ; 8b 46 f0
    5874     call 01652h                               ; e8 f6 d4
     5882    mov ax, word [bp-014h]                    ; 8b 46 ec
     5883    call 01652h                               ; e8 cf d4
    58755884    and AL, strict byte 03fh                  ; 24 3f
    58765885    xor ah, ah                                ; 30 e4
    5877     mov es, [bp-018h]                         ; 8e 46 e8
     5886    mov es, [bp-016h]                         ; 8e 46 ea
    58785887    mov word [es:si+014h], ax                 ; 26 89 44 14
    58795888    mov dx, 001c4h                            ; ba c4 01
    5880     mov ax, word [bp-010h]                    ; 8b 46 f0
    5881     call 01652h                               ; e8 e2 d4
    5882     xor ah, ah                                ; 30 e4
     5889    mov ax, word [bp-014h]                    ; 8b 46 ec
     5890    call 01652h                               ; e8 bb d4
     5891    and ax, 000c0h                            ; 25 c0 00
    58835892    mov bx, ax                                ; 89 c3
    58845893    sal bx, 1                                 ; d1 e3
    58855894    sal bx, 1                                 ; d1 e3
    58865895    mov dx, 001c5h                            ; ba c5 01
    5887     mov ax, word [bp-010h]                    ; 8b 46 f0
    5888     call 01652h                               ; e8 d1 d4
     5896    mov ax, word [bp-014h]                    ; 8b 46 ec
     5897    call 01652h                               ; e8 a9 d4
    58895898    xor ah, ah                                ; 30 e4
    58905899    add ax, bx                                ; 01 d8
    58915900    inc ax                                    ; 40
    5892     mov es, [bp-018h]                         ; 8e 46 e8
     5901    mov es, [bp-016h]                         ; 8e 46 ea
    58935902    mov word [es:si+012h], ax                 ; 26 89 44 12
    58945903    mov dx, 001c3h                            ; ba c3 01
    5895     mov ax, word [bp-010h]                    ; 8b 46 f0
    5896     call 01652h                               ; e8 bc d4
     5904    mov ax, word [bp-014h]                    ; 8b 46 ec
     5905    call 01652h                               ; e8 94 d4
    58975906    xor ah, ah                                ; 30 e4
    58985907    inc ax                                    ; 40
    5899     mov es, [bp-018h]                         ; 8e 46 e8
     5908    mov es, [bp-016h]                         ; 8e 46 ea
    59005909    mov word [es:si+010h], ax                 ; 26 89 44 10
    5901     mov es, [bp-018h]                         ; 8e 46 e8
     5910    mov es, [bp-016h]                         ; 8e 46 ea
    59025911    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5903     je short 041e1h                           ; 74 37
     5912    je short 04209h                           ; 74 37
    59045913    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    5905     jne short 041c9h                          ; 75 18
     5914    jne short 041f1h                          ; 75 18
    59065915    mov dx, strict word 00010h                ; ba 10 00
    59075916    mov ax, strict word 00040h                ; b8 40 00
    5908     call 01652h                               ; e8 98 d4
     5917    call 01652h                               ; e8 70 d4
    59095918    mov bl, al                                ; 88 c3
    59105919    or bl, 041h                               ; 80 cb 41
     
    59125921    mov dx, strict word 00010h                ; ba 10 00
    59135922    mov ax, strict word 00040h                ; b8 40 00
    5914     jmp short 041deh                          ; eb 15
     5923    jmp short 04206h                          ; eb 15
    59155924    mov dx, 00304h                            ; ba 04 03
    5916     mov ax, word [bp-01ah]                    ; 8b 46 e6
    5917     call 01652h                               ; e8 80 d4
     5925    mov ax, word [bp-018h]                    ; 8b 46 e8
     5926    call 01652h                               ; e8 58 d4
    59185927    mov bl, al                                ; 88 c3
    59195928    db  0feh, 0c3h
     
    59215930    xor bh, bh                                ; 30 ff
    59225931    mov dx, 00304h                            ; ba 04 03
    5923     mov ax, word [bp-01ah]                    ; 8b 46 e6
    5924     call 01660h                               ; e8 7f d4
    5925     mov es, [bp-018h]                         ; 8e 46 e8
     5932    mov ax, word [bp-018h]                    ; 8b 46 e8
     5933    call 01660h                               ; e8 57 d4
     5934    mov es, [bp-016h]                         ; 8e 46 ea
    59265935    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5927     je short 041efh                           ; 74 04
     5936    je short 04217h                           ; 74 04
    59285937    mov byte [es:si], 001h                    ; 26 c6 04 01
    5929     mov es, [bp-018h]                         ; 8e 46 e8
     5938    mov es, [bp-016h]                         ; 8e 46 ea
    59305939    mov ah, byte [es:si+002h]                 ; 26 8a 64 02
    59315940    xor al, al                                ; 30 c0
     
    59395948    retn                                      ; c3
    59405949    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    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
     5950    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 03ah, 046h, 02ah
     5951    db  043h, 05fh, 043h, 084h, 043h, 054h, 043h, 084h, 043h, 054h, 043h, 083h, 045h, 069h, 045h, 03ah
     5952    db  046h, 03ah, 046h, 069h, 045h, 069h, 045h, 069h, 045h, 069h, 045h, 069h, 045h, 031h, 046h, 069h
     5953    db  045h, 03ah, 046h, 03ah, 046h, 03ah, 046h, 03ah, 046h, 03ah, 046h, 03ah, 046h, 03ah, 046h, 03ah
     5954    db  046h, 03ah, 046h, 03ah, 046h, 03ah, 046h, 03ah, 046h
     5955_int13_cdemu:                                ; 0xf4283 LB 0x453
    59475956    push bp                                   ; 55
    59485957    mov bp, sp                                ; 89 e5
     
    59525961    mov dx, strict word 0000eh                ; ba 0e 00
    59535962    mov ax, strict word 00040h                ; b8 40 00
    5954     call 0166eh                               ; e8 02 d4
     5963    call 0166eh                               ; e8 da d3
    59555964    mov di, 00366h                            ; bf 66 03
    59565965    mov cx, ax                                ; 89 c1
     
    59685977    mov dx, strict word 00074h                ; ba 74 00
    59695978    mov ax, strict word 00040h                ; b8 40 00
    5970     call 01660h                               ; e8 c5 d3
     5979    call 01660h                               ; e8 9d d3
    59715980    mov es, cx                                ; 8e c1
    59725981    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5973     je short 042b2h                           ; 74 0f
     5982    je short 042dah                           ; 74 0f
    59745983    mov al, byte [es:di+002h]                 ; 26 8a 45 02
    59755984    xor ah, ah                                ; 30 e4
     
    59775986    xor dh, dh                                ; 30 f6
    59785987    cmp ax, dx                                ; 39 d0
    5979     je short 042dch                           ; 74 2a
     5988    je short 04304h                           ; 74 2a
    59805989    mov bx, 00da0h                            ; bb a0 0d
    59815990    mov cx, ds                                ; 8c d9
    59825991    mov ax, strict word 00004h                ; b8 04 00
    5983     call 01933h                               ; e8 76 d6
     5992    call 01933h                               ; e8 4e d6
    59845993    mov ax, word [bp+012h]                    ; 8b 46 12
    59855994    xor ah, ah                                ; 30 e4
     
    59936002    mov ax, strict word 00004h                ; b8 04 00
    59946003    push ax                                   ; 50
    5995     call 01976h                               ; e8 a0 d6
     6004    call 01976h                               ; e8 78 d6
    59966005    add sp, strict byte 0000ah                ; 83 c4 0a
    5997     jmp near 04635h                           ; e9 59 03
     6006    jmp near 0465dh                           ; e9 59 03
    59986007    mov al, byte [bp+017h]                    ; 8a 46 17
    59996008    xor ah, ah                                ; 30 e4
    60006009    mov dx, ax                                ; 89 c2
    60016010    cmp ax, strict word 00050h                ; 3d 50 00
    6002     jnbe short 04359h                         ; 77 71
     6011    jnbe short 04381h                         ; 77 71
    60036012    push CS                                   ; 0e
    60046013    pop ES                                    ; 07
    60056014    mov cx, strict word 0001eh                ; b9 1e 00
    6006     mov di, 04202h                            ; bf 02 42
     6015    mov di, 0422ah                            ; bf 2a 42
    60076016    repne scasb                               ; f2 ae
    60086017    sal cx, 1                                 ; d1 e1
    60096018    mov di, cx                                ; 89 cf
    6010     mov ax, word [cs:di+0421fh]               ; 2e 8b 85 1f 42
     6019    mov ax, word [cs:di+04247h]               ; 2e 8b 85 47 42
    60116020    mov bx, word [bp+016h]                    ; 8b 5e 16
    60126021    xor bh, bh                                ; 30 ff
     
    60226031    sal bx, 1                                 ; d1 e3
    60236032    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
    6024     je short 04329h                           ; 74 09
     6033    je short 04351h                           ; 74 09
    60256034    mov al, byte [bp-006h]                    ; 8a 46 fa
    60266035    xor ah, ah                                ; 30 e4
    60276036    call word [word bx+00076h]                ; ff 97 76 00
    6028     jmp near 04541h                           ; e9 15 02
     6037    jmp near 04569h                           ; e9 15 02
    60296038    mov ax, word [bp+016h]                    ; 8b 46 16
    60306039    xor ah, ah                                ; 30 e4
    60316040    or ah, 003h                               ; 80 cc 03
    6032     jmp near 0463dh                           ; e9 06 03
     6041    jmp near 04665h                           ; e9 06 03
    60336042    mov dx, strict word 00074h                ; ba 74 00
    60346043    mov ax, strict word 00040h                ; b8 40 00
    6035     call 01652h                               ; e8 12 d3
     6044    call 01652h                               ; e8 ea d2
    60366045    mov cl, al                                ; 88 c1
    60376046    mov bh, al                                ; 88 c7
     
    60406049    mov dx, strict word 00074h                ; ba 74 00
    60416050    mov ax, strict word 00040h                ; b8 40 00
    6042     call 01660h                               ; e8 0e d3
     6051    call 01660h                               ; e8 e6 d2
    60436052    test cl, cl                               ; 84 c9
    6044     je short 043bbh                           ; 74 65
    6045     jmp near 0464eh                           ; e9 f5 02
    6046     jmp near 04612h                           ; e9 b6 02
     6053    je short 043e3h                           ; 74 65
     6054    jmp near 04676h                           ; e9 f5 02
     6055    jmp near 0463ah                           ; e9 b6 02
    60476056    mov es, [bp-012h]                         ; 8e 46 ee
    60486057    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    60706079    mov word [bp-014h], cx                    ; 89 4e ec
    60716080    test cx, cx                               ; 85 c9
    6072     je short 043c8h                           ; 74 1d
     6081    je short 043f0h                           ; 74 1d
    60736082    cmp di, word [bp-00ah]                    ; 3b 7e f6
    6074     jc short 043b8h                           ; 72 08
     6083    jc short 043e0h                           ; 72 08
    60756084    cmp ax, dx                                ; 39 d0
    6076     jnc short 043b8h                          ; 73 04
     6085    jnc short 043e0h                          ; 73 04
    60776086    cmp bx, si                                ; 39 f3
    6078     jnbe short 043beh                         ; 77 06
    6079     jmp near 04635h                           ; e9 7a 02
    6080     jmp near 04545h                           ; e9 87 01
     6087    jnbe short 043e6h                         ; 77 06
     6088    jmp near 0465dh                           ; e9 7a 02
     6089    jmp near 0456dh                           ; e9 87 01
    60816090    mov dl, byte [bp+017h]                    ; 8a 56 17
    60826091    xor dh, dh                                ; 30 f6
    60836092    cmp dx, strict byte 00004h                ; 83 fa 04
    6084     jne short 043cbh                          ; 75 03
    6085     jmp near 04541h                           ; e9 76 01
     6093    jne short 043f3h                          ; 75 03
     6094    jmp near 04569h                           ; e9 76 01
    60866095    mov CL, strict byte 004h                  ; b1 04
    60876096    mov dx, word [bp+010h]                    ; 8b 56 10
     
    60966105    xor dl, dl                                ; 30 d2
    60976106    xor cx, cx                                ; 31 c9
    6098     call 0a060h                               ; e8 74 5c
     6107    call 0a090h                               ; e8 7c 5c
    60996108    xor bx, bx                                ; 31 db
    61006109    add ax, si                                ; 01 f0
     
    61026111    mov bx, di                                ; 89 fb
    61036112    xor cx, cx                                ; 31 c9
    6104     call 0a060h                               ; e8 67 5c
     6113    call 0a090h                               ; e8 6f 5c
    61056114    mov bx, ax                                ; 89 c3
    61066115    mov ax, word [bp-00ah]                    ; 8b 46 f6
     
    61376146    mov dx, ss                                ; 8c d2
    61386147    lea ax, [bp-030h]                         ; 8d 46 d0
    6139     call 0a0d0h                               ; e8 80 5c
     6148    call 0a100h                               ; e8 88 5c
    61406149    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    61416150    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    61906199    sal si, 1                                 ; d1 e6
    61916200    rcl di, 1                                 ; d1 d7
    6192     loop 044d5h                               ; e2 fa
     6201    loop 044fdh                               ; e2 fa
    61936202    push di                                   ; 57
    61946203    push si                                   ; 56
     
    62066215    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    62076216    test al, al                               ; 84 c0
    6208     je short 04541h                           ; 74 38
     6217    je short 04569h                           ; 74 38
    62096218    mov bx, 00da0h                            ; bb a0 0d
    62106219    mov cx, ds                                ; 8c d9
    62116220    mov ax, strict word 00004h                ; b8 04 00
    6212     call 01933h                               ; e8 1f d4
     6221    call 01933h                               ; e8 f7 d3
    62136222    mov al, dl                                ; 88 d0
    62146223    xor ah, ah                                ; 30 e4
     
    62226231    mov ax, strict word 00004h                ; b8 04 00
    62236232    push ax                                   ; 50
    6224     call 01976h                               ; e8 4a d4
     6233    call 01976h                               ; e8 22 d4
    62256234    add sp, strict byte 0000ah                ; 83 c4 0a
    62266235    mov ax, word [bp+016h]                    ; 8b 46 16
     
    62296238    mov word [bp+016h], ax                    ; 89 46 16
    62306239    mov byte [bp+016h], 000h                  ; c6 46 16 00
    6231     jmp near 04640h                           ; e9 ff 00
     6240    jmp near 04668h                           ; e9 ff 00
    62326241    mov byte [bp+017h], 000h                  ; c6 46 17 00
    62336242    xor bx, bx                                ; 31 db
    62346243    mov dx, strict word 00074h                ; ba 74 00
    62356244    mov ax, strict word 00040h                ; b8 40 00
    6236     call 01660h                               ; e8 10 d1
     6245    call 01660h                               ; e8 e8 d0
    62376246    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    62386247    lea sp, [bp-004h]                         ; 8d 66 fc
     
    62846293    mov word [bp+010h], cx                    ; 89 4e 10
    62856294    cmp AL, strict byte 003h                  ; 3c 03
    6286     je short 045ebh                           ; 74 1c
     6295    je short 04613h                           ; 74 1c
    62876296    cmp AL, strict byte 002h                  ; 3c 02
    6288     je short 045e3h                           ; 74 10
     6297    je short 0460bh                           ; 74 10
    62896298    cmp AL, strict byte 001h                  ; 3c 01
    6290     jne short 045f0h                          ; 75 19
     6299    jne short 04618h                          ; 75 19
    62916300    mov ax, word [bp+010h]                    ; 8b 46 10
    62926301    xor al, al                                ; 30 c0
    62936302    or AL, strict byte 002h                   ; 0c 02
    62946303    mov word [bp+010h], ax                    ; 89 46 10
    6295     jmp short 045f0h                          ; eb 0d
     6304    jmp short 04618h                          ; eb 0d
    62966305    or cl, 004h                               ; 80 c9 04
    62976306    mov word [bp+010h], cx                    ; 89 4e 10
    6298     jmp short 045f0h                          ; eb 05
     6307    jmp short 04618h                          ; eb 05
    62996308    or cl, 005h                               ; 80 c9 05
    6300     jmp short 045e6h                          ; eb f6
     6309    jmp short 0460eh                          ; eb f6
    63016310    mov es, [bp-012h]                         ; 8e 46 ee
    63026311    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    6303     jc short 045fdh                           ; 72 03
    6304     jmp near 04541h                           ; e9 44 ff
     6312    jc short 04625h                           ; 72 03
     6313    jmp near 04569h                           ; e9 44 ff
    63056314    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    63066315    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    6307     jmp short 045fah                          ; eb f1
     6316    jmp short 04622h                          ; eb f1
    63086317    or bh, 003h                               ; 80 cf 03
    63096318    mov word [bp+016h], bx                    ; 89 5e 16
    6310     jmp near 04545h                           ; e9 33 ff
     6319    jmp near 0456dh                           ; e9 33 ff
    63116320    mov bx, 00da0h                            ; bb a0 0d
    63126321    mov cx, ds                                ; 8c d9
    63136322    mov ax, strict word 00004h                ; b8 04 00
    6314     call 01933h                               ; e8 16 d3
     6323    call 01933h                               ; e8 ee d2
    63156324    mov al, byte [bp+017h]                    ; 8a 46 17
    63166325    xor ah, ah                                ; 30 e4
     
    63226331    mov ax, strict word 00004h                ; b8 04 00
    63236332    push ax                                   ; 50
    6324     call 01976h                               ; e8 44 d3
     6333    call 01976h                               ; e8 1c d3
    63256334    add sp, strict byte 00008h                ; 83 c4 08
    63266335    mov ax, word [bp+016h]                    ; 8b 46 16
     
    63326341    mov dx, strict word 00074h                ; ba 74 00
    63336342    mov ax, strict word 00040h                ; b8 40 00
    6334     call 01660h                               ; e8 12 d0
     6343    call 01660h                               ; e8 ea cf
    63356344    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    6336     jmp near 04554h                           ; e9 ff fe
     6345    jmp near 0457ch                           ; e9 ff fe
    63376346    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    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
     6347    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0bfh, 047h, 004h
     6348    db  04ch, 081h, 047h, 0bfh, 047h, 076h, 047h, 0bfh, 047h, 076h, 047h, 0bfh, 047h, 004h, 04ch, 0bfh
     6349    db  047h, 0bfh, 047h, 004h, 04ch, 004h, 04ch, 004h, 04ch, 004h, 04ch, 004h, 04ch, 0a3h, 047h, 004h
     6350    db  04ch, 0bfh, 047h, 0ach, 047h, 0ddh, 047h, 076h, 047h, 0ddh, 047h, 026h, 049h, 0c6h, 049h, 0ddh
     6351    db  047h, 0f0h, 049h, 01eh, 04ch, 026h, 04ch, 0bfh, 047h
     6352_int13_cdrom:                                ; 0xf46d6 LB 0x585
    63446353    push bp                                   ; 55
    63456354    mov bp, sp                                ; 89 e5
     
    63496358    mov dx, strict word 0000eh                ; ba 0e 00
    63506359    mov ax, strict word 00040h                ; b8 40 00
    6351     call 0166eh                               ; e8 af cf
     6360    call 0166eh                               ; e8 87 cf
    63526361    mov word [bp-018h], ax                    ; 89 46 e8
    63536362    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
     
    63566365    mov dx, strict word 00074h                ; ba 74 00
    63576366    mov ax, strict word 00040h                ; b8 40 00
    6358     call 01660h                               ; e8 8b cf
     6367    call 01660h                               ; e8 63 cf
    63596368    mov ax, word [bp+010h]                    ; 8b 46 10
    63606369    xor ah, ah                                ; 30 e4
    63616370    cmp ax, 000e0h                            ; 3d e0 00
    6362     jc short 046e4h                           ; 72 05
     6371    jc short 0470ch                           ; 72 05
    63636372    cmp ax, 000f0h                            ; 3d f0 00
    6364     jc short 04703h                           ; 72 1f
     6373    jc short 0472bh                           ; 72 1f
    63656374    mov ax, word [bp+010h]                    ; 8b 46 10
    63666375    xor ah, ah                                ; 30 e4
     
    63746383    mov ax, strict word 00004h                ; b8 04 00
    63756384    push ax                                   ; 50
    6376     call 01976h                               ; e8 79 d2
     6385    call 01976h                               ; e8 51 d2
    63776386    add sp, strict byte 0000ah                ; 83 c4 0a
    6378     jmp near 04c14h                           ; e9 11 05
     6387    jmp near 04c3ch                           ; e9 11 05
    63796388    mov ax, word [bp+010h]                    ; 8b 46 10
    63806389    xor ah, ah                                ; 30 e4
     
    63846393    mov byte [bp-008h], dl                    ; 88 56 f8
    63856394    cmp dl, 010h                              ; 80 fa 10
    6386     jc short 04728h                           ; 72 0e
     6395    jc short 04750h                           ; 72 0e
    63876396    push ax                                   ; 50
    63886397    mov al, byte [bp+019h]                    ; 8a 46 19
     
    63916400    push ax                                   ; 50
    63926401    mov ax, 00416h                            ; b8 16 04
    6393     jmp short 046f5h                          ; eb cd
     6402    jmp short 0471dh                          ; eb cd
    63946403    mov al, byte [bp+019h]                    ; 8a 46 19
    63956404    xor ah, ah                                ; 30 e4
    63966405    mov dx, ax                                ; 89 c2
    63976406    cmp ax, strict word 00050h                ; 3d 50 00
    6398     jnbe short 04797h                         ; 77 63
     6407    jnbe short 047bfh                         ; 77 63
    63996408    push CS                                   ; 0e
    64006409    pop ES                                    ; 07
    64016410    mov cx, strict word 0001eh                ; b9 1e 00
    6402     mov di, 04655h                            ; bf 55 46
     6411    mov di, 0467dh                            ; bf 7d 46
    64036412    repne scasb                               ; f2 ae
    64046413    sal cx, 1                                 ; d1 e1
    64056414    mov di, cx                                ; 89 cf
    6406     mov ax, word [cs:di+04672h]               ; 2e 8b 85 72 46
     6415    mov ax, word [cs:di+0469ah]               ; 2e 8b 85 9a 46
    64076416    mov bx, word [bp+018h]                    ; 8b 5e 18
    64086417    xor bh, bh                                ; 30 ff
     
    64116420    xor ah, ah                                ; 30 e4
    64126421    or ah, 003h                               ; 80 cc 03
    6413     jmp near 04c1ch                           ; e9 c3 04
     6422    jmp near 04c44h                           ; e9 c3 04
    64146423    mov dx, strict word 00074h                ; ba 74 00
    64156424    mov ax, strict word 00040h                ; b8 40 00
    6416     call 01652h                               ; e8 f0 ce
     6425    call 01652h                               ; e8 c8 ce
    64176426    mov cl, al                                ; 88 c1
    64186427    mov bh, al                                ; 88 c7
     
    64216430    mov dx, strict word 00074h                ; ba 74 00
    64226431    mov ax, strict word 00040h                ; b8 40 00
    6423     call 01660h                               ; e8 ec ce
     6432    call 01660h                               ; e8 c4 ce
    64246433    test cl, cl                               ; 84 c9
    6425     je short 04794h                           ; 74 1c
    6426     jmp near 04c2dh                           ; e9 b2 04
     6434    je short 047bch                           ; 74 1c
     6435    jmp near 04c55h                           ; e9 b2 04
    64276436    or bh, 002h                               ; 80 cf 02
    64286437    mov word [bp+018h], bx                    ; 89 5e 18
    6429     jmp near 04c1fh                           ; e9 9b 04
     6438    jmp near 04c47h                           ; e9 9b 04
    64306439    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    64316440    or bh, 030h                               ; 80 cf 30
    64326441    mov word [bp+018h], bx                    ; 89 5e 18
    64336442    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    6434     jmp near 04be0h                           ; e9 49 04
     6443    jmp near 04c08h                           ; e9 49 04
    64356444    mov bx, 00da0h                            ; bb a0 0d
    64366445    mov cx, ds                                ; 8c d9
    64376446    mov ax, strict word 00004h                ; b8 04 00
    6438     call 01933h                               ; e8 91 d1
     6447    call 01933h                               ; e8 69 d1
    64396448    mov al, byte [bp+019h]                    ; 8a 46 19
    64406449    xor ah, ah                                ; 30 e4
     
    64456454    push ax                                   ; 50
    64466455    mov ax, strict word 00004h                ; b8 04 00
    6447     jmp short 047f6h                          ; eb 41
     6456    jmp short 0481eh                          ; eb 41
    64486457    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    64496458    mov es, [bp+006h]                         ; 8e 46 06
     
    64606469    mov word [bp-012h], ax                    ; 89 46 ee
    64616470    or ax, word [bp-014h]                     ; 0b 46 ec
    6462     je short 04800h                           ; 74 1b
     6471    je short 04828h                           ; 74 1b
    64636472    mov al, byte [bp+019h]                    ; 8a 46 19
    64646473    xor ah, ah                                ; 30 e4
     
    64706479    mov ax, strict word 00007h                ; b8 07 00
    64716480    push ax                                   ; 50
    6472     call 01976h                               ; e8 7c d1
     6481    call 01976h                               ; e8 54 d1
    64736482    add sp, strict byte 00008h                ; 83 c4 08
    6474     jmp near 04c14h                           ; e9 14 04
     6483    jmp near 04c3ch                           ; e9 14 04
    64756484    mov es, [bp-020h]                         ; 8e 46 e0
    64766485    mov ax, word [es:di+008h]                 ; 26 8b 45 08
     
    64836492    mov ax, word [bp-010h]                    ; 8b 46 f0
    64846493    cmp ax, strict word 00044h                ; 3d 44 00
    6485     je short 04828h                           ; 74 05
     6494    je short 04850h                           ; 74 05
    64866495    cmp ax, strict word 00047h                ; 3d 47 00
    6487     jne short 0482bh                          ; 75 03
    6488     jmp near 04bdch                           ; e9 b1 03
     6496    jne short 04853h                          ; 75 03
     6497    jmp near 04c04h                           ; e9 b1 03
    64896498    mov cx, strict word 0000ch                ; b9 0c 00
    64906499    xor bx, bx                                ; 31 db
    64916500    mov dx, ss                                ; 8c d2
    64926501    lea ax, [bp-02eh]                         ; 8d 46 d2
    6493     call 0a0d0h                               ; e8 98 58
     6502    call 0a100h                               ; e8 a0 58
    64946503    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    64956504    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    65246533    sal bx, 1                                 ; d1 e3
    65256534    rcl si, 1                                 ; d1 d6
    6526     loop 0488ah                               ; e2 fa
     6535    loop 048b2h                               ; e2 fa
    65276536    push si                                   ; 56
    65286537    push bx                                   ; 53
     
    65436552    shr dx, 1                                 ; d1 ea
    65446553    rcr ax, 1                                 ; d1 d8
    6545     loop 048bah                               ; e2 fa
     6554    loop 048e2h                               ; e2 fa
    65466555    mov es, [bp-020h]                         ; 8e 46 e0
    65476556    mov word [es:di+002h], ax                 ; 26 89 45 02
    65486557    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
    6549     je short 04924h                           ; 74 57
     6558    je short 0494ch                           ; 74 57
    65506559    mov bx, 00da0h                            ; bb a0 0d
    65516560    mov cx, ds                                ; 8c d9
    65526561    mov ax, strict word 00004h                ; b8 04 00
    6553     call 01933h                               ; e8 5b d0
     6562    call 01933h                               ; e8 33 d0
    65546563    mov al, byte [bp-016h]                    ; 8a 46 ea
    65556564    xor ah, ah                                ; 30 e4
     
    65626571    mov ax, strict word 00004h                ; b8 04 00
    65636572    push ax                                   ; 50
    6564     call 01976h                               ; e8 86 d0
     6573    call 01976h                               ; e8 5e d0
    65656574    add sp, strict byte 0000ah                ; 83 c4 0a
    65666575    mov ax, word [bp+018h]                    ; 8b 46 18
    65676576    xor ah, ah                                ; 30 e4
    65686577    or ah, 00ch                               ; 80 cc 0c
    6569     jmp near 04c1ch                           ; e9 1e 03
     6578    jmp near 04c44h                           ; e9 1e 03
    65706579    cmp bx, strict byte 00002h                ; 83 fb 02
    6571     jnbe short 0496fh                         ; 77 6c
     6580    jnbe short 04997h                         ; 77 6c
    65726581    mov al, byte [bp-008h]                    ; 8a 46 f8
    65736582    xor ah, ah                                ; 30 e4
     
    65786587    mov cl, byte [es:si+025h]                 ; 26 8a 4c 25
    65796588    cmp bx, strict byte 00002h                ; 83 fb 02
    6580     je short 04987h                           ; 74 6c
     6589    je short 049afh                           ; 74 6c
    65816590    cmp bx, strict byte 00001h                ; 83 fb 01
    6582     je short 0495fh                           ; 74 3f
     6591    je short 04987h                           ; 74 3f
    65836592    test bx, bx                               ; 85 db
    6584     je short 04927h                           ; 74 03
    6585     jmp near 04bdch                           ; e9 b5 02
     6593    je short 0494fh                           ; 74 03
     6594    jmp near 04c04h                           ; e9 b5 02
    65866595    cmp cl, 0ffh                              ; 80 f9 ff
    6587     jne short 0493eh                          ; 75 12
     6596    jne short 04966h                          ; 75 12
    65886597    mov ax, word [bp+018h]                    ; 8b 46 18
    65896598    xor ah, ah                                ; 30 e4
     
    65926601    xor al, al                                ; 30 c0
    65936602    or AL, strict byte 001h                   ; 0c 01
    6594     jmp near 04c1ch                           ; e9 de 02
     6603    jmp near 04c44h                           ; e9 de 02
    65956604    mov al, byte [bp-008h]                    ; 8a 46 f8
    65966605    xor ah, ah                                ; 30 e4
     
    66066615    or AL, strict byte 001h                   ; 0c 01
    66076616    mov word [bp+018h], ax                    ; 89 46 18
    6608     jmp short 04924h                          ; eb c5
     6617    jmp short 0494ch                          ; eb c5
    66096618    test cl, cl                               ; 84 c9
    6610     jne short 04972h                          ; 75 0f
     6619    jne short 0499ah                          ; 75 0f
    66116620    or bh, 0b0h                               ; 80 cf b0
    66126621    mov word [bp+018h], bx                    ; 89 5e 18
    66136622    mov byte [bp+018h], cl                    ; 88 4e 18
    6614     jmp near 04c1fh                           ; e9 b0 02
    6615     jmp near 04c14h                           ; e9 a2 02
     6623    jmp near 04c47h                           ; e9 b0 02
     6624    jmp near 04c3ch                           ; e9 a2 02
    66166625    mov al, byte [bp-008h]                    ; 8a 46 f8
    66176626    xor ah, ah                                ; 30 e4
     
    66246633    mov byte [es:bx+025h], cl                 ; 26 88 4f 25
    66256634    test cl, cl                               ; 84 c9
    6626     jne short 04999h                          ; 75 0e
     6635    jne short 049c1h                          ; 75 0e
    66276636    xor ax, ax                                ; 31 c0
    66286637    mov dx, word [bp+018h]                    ; 8b 56 18
     
    66306639    or dx, ax                                 ; 09 c2
    66316640    mov word [bp+018h], dx                    ; 89 56 18
    6632     jmp short 04924h                          ; eb 8b
     6641    jmp short 0494ch                          ; eb 8b
    66336642    mov ax, strict word 00001h                ; b8 01 00
    6634     jmp short 0498dh                          ; eb ef
     6643    jmp short 049b5h                          ; eb ef
    66356644    mov al, byte [bp-008h]                    ; 8a 46 f8
    66366645    xor ah, ah                                ; 30 e4
     
    66416650    mov cl, byte [es:si+025h]                 ; 26 8a 4c 25
    66426651    test cl, cl                               ; 84 c9
    6643     je short 049bbh                           ; 74 06
     6652    je short 049e3h                           ; 74 06
    66446653    or bh, 0b1h                               ; 80 cf b1
    6645     jmp near 0477eh                           ; e9 c3 fd
    6646     je short 049e2h                           ; 74 25
     6654    jmp near 047a6h                           ; e9 c3 fd
     6655    je short 04a0ah                           ; 74 25
    66476656    mov ax, word [bp+018h]                    ; 8b 46 18
    66486657    xor ah, ah                                ; 30 e4
    66496658    or ah, 0b1h                               ; 80 cc b1
    6650     jmp near 04c1ch                           ; e9 54 02
     6659    jmp near 04c44h                           ; e9 54 02
    66516660    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    66526661    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    66576666    mov word [bp-01eh], ax                    ; 89 46 e2
    66586667    cmp ax, strict word 0001ah                ; 3d 1a 00
    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
     6668    jnc short 04a0dh                          ; 73 05
     6669    jmp short 04997h                          ; eb 8d
     6670    jmp near 04c04h                           ; e9 f7 01
     6671    jc short 04a6fh                           ; 72 60
    66636672    mov al, byte [bp-008h]                    ; 8a 46 f8
    66646673    xor ah, ah                                ; 30 e4
     
    66836692    mov word [es:bx+016h], strict word 0ffffh ; 26 c7 47 16 ff ff
    66846693    cmp word [bp-01eh], strict byte 0001eh    ; 83 7e e2 1e
    6685     jnc short 04a50h                          ; 73 03
    6686     jmp near 04b10h                           ; e9 c0 00
     6694    jnc short 04a78h                          ; 73 03
     6695    jmp near 04b38h                           ; e9 c0 00
    66876696    mov es, [bp-00ah]                         ; 8e 46 f6
    66886697    mov word [es:si], strict word 0001eh      ; 26 c7 04 1e 00
     
    67296738    xor bl, bl                                ; 30 db
    67306739    xor bh, bh                                ; 30 ff
    6731     jmp short 04af0h                          ; eb 05
     6740    jmp short 04b18h                          ; eb 05
    67326741    cmp bh, 00fh                              ; 80 ff 0f
    6733     jnc short 04b06h                          ; 73 16
     6742    jnc short 04b2eh                          ; 73 16
    67346743    mov al, bh                                ; 88 f8
    67356744    xor ah, ah                                ; 30 e4
     
    67376746    add dx, 00356h                            ; 81 c2 56 03
    67386747    mov ax, word [bp-018h]                    ; 8b 46 e8
    6739     call 01652h                               ; e8 52 cb
     6748    call 01652h                               ; e8 2a cb
    67406749    add bl, al                                ; 00 c3
    67416750    db  0feh, 0c7h
    67426751    ; inc bh                                    ; fe c7
    6743     jmp short 04aebh                          ; eb e5
     6752    jmp short 04b13h                          ; eb e5
    67446753    neg bl                                    ; f6 db
    67456754    les di, [bp-00eh]                         ; c4 7e f2
    67466755    mov byte [es:di+00243h], bl               ; 26 88 9d 43 02
    67476756    cmp word [bp-01eh], strict byte 00042h    ; 83 7e e2 42
    6748     jnc short 04b19h                          ; 73 03
    6749     jmp near 04bdch                           ; e9 c3 00
     6757    jnc short 04b41h                          ; 73 03
     6758    jmp near 04c04h                           ; e9 c3 00
    67506759    mov al, byte [bp-008h]                    ; 8a 46 f8
    67516760    xor ah, ah                                ; 30 e4
     
    67676776    mov word [es:si+022h], strict word 00000h ; 26 c7 44 22 00 00
    67686777    test al, al                               ; 84 c0
    6769     jne short 04b63h                          ; 75 0c
     6778    jne short 04b8bh                          ; 75 0c
    67706779    mov word [es:si+024h], 05349h             ; 26 c7 44 24 49 53
    67716780    mov word [es:si+026h], 02041h             ; 26 c7 44 26 41 20
     
    67766785    mov word [es:si+02eh], 02020h             ; 26 c7 44 2e 20 20
    67776786    test al, al                               ; 84 c0
    6778     jne short 04b98h                          ; 75 16
     6787    jne short 04bc0h                          ; 75 16
    67796788    mov word [es:si+030h], dx                 ; 26 89 54 30
    67806789    mov word [es:si+032h], strict word 00000h ; 26 c7 44 32 00 00
     
    67916800    xor al, al                                ; 30 c0
    67926801    mov AH, strict byte 01eh                  ; b4 1e
    6793     jmp short 04bc3h                          ; eb 05
     6802    jmp short 04bebh                          ; eb 05
    67946803    cmp ah, 040h                              ; 80 fc 40
    6795     jnc short 04bd3h                          ; 73 10
     6804    jnc short 04bfbh                          ; 73 10
    67966805    mov bl, ah                                ; 88 e3
    67976806    xor bh, bh                                ; 30 ff
     
    68016810    db  0feh, 0c4h
    68026811    ; inc ah                                    ; fe c4
    6803     jmp short 04bbeh                          ; eb eb
     6812    jmp short 04be6h                          ; eb eb
    68046813    neg al                                    ; f6 d8
    68056814    mov es, [bp-00ah]                         ; 8e 46 f6
     
    68096818    mov dx, strict word 00074h                ; ba 74 00
    68106819    mov ax, strict word 00040h                ; b8 40 00
    6811     call 01660h                               ; e8 75 ca
     6820    call 01660h                               ; e8 4d ca
    68126821    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    68136822    lea sp, [bp-004h]                         ; 8d 66 fc
     
    68186827    or bh, 006h                               ; 80 cf 06
    68196828    mov word [bp+018h], bx                    ; 89 5e 18
    6820     jmp short 04c2dh                          ; eb 2f
     6829    jmp short 04c55h                          ; eb 2f
    68216830    cmp bx, strict byte 00006h                ; 83 fb 06
    6822     je short 04bdch                           ; 74 d9
     6831    je short 04c04h                           ; 74 d9
    68236832    cmp bx, strict byte 00001h                ; 83 fb 01
    6824     jc short 04c14h                           ; 72 0c
    6825     jbe short 04bdch                          ; 76 d2
     6833    jc short 04c3ch                           ; 72 0c
     6834    jbe short 04c04h                          ; 76 d2
    68266835    cmp bx, strict byte 00003h                ; 83 fb 03
    6827     jc short 04c14h                           ; 72 05
     6836    jc short 04c3ch                           ; 72 05
    68286837    cmp bx, strict byte 00004h                ; 83 fb 04
    6829     jbe short 04bdch                          ; 76 c8
     6838    jbe short 04c04h                          ; 76 c8
    68306839    mov ax, word [bp+018h]                    ; 8b 46 18
    68316840    xor ah, ah                                ; 30 e4
     
    68366845    mov dx, strict word 00074h                ; ba 74 00
    68376846    mov ax, strict word 00040h                ; b8 40 00
    6838     call 01660h                               ; e8 33 ca
     6847    call 01660h                               ; e8 0b ca
    68396848    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    6840     jmp short 04befh                          ; eb bc
    6841 print_boot_device_:                          ; 0xf4c33 LB 0x51
     6849    jmp short 04c17h                          ; eb bc
     6850print_boot_device_:                          ; 0xf4c5b LB 0x51
    68426851    push bp                                   ; 55
    68436852    mov bp, sp                                ; 89 e5
    68446853    push cx                                   ; 51
    68456854    test al, al                               ; 84 c0
    6846     je short 04c40h                           ; 74 05
     6855    je short 04c68h                           ; 74 05
    68476856    mov dx, strict word 00002h                ; ba 02 00
    6848     jmp short 04c5ah                          ; eb 1a
     6857    jmp short 04c82h                          ; eb 1a
    68496858    test dl, dl                               ; 84 d2
    6850     je short 04c49h                           ; 74 05
     6859    je short 04c71h                           ; 74 05
    68516860    mov dx, strict word 00003h                ; ba 03 00
    6852     jmp short 04c5ah                          ; eb 11
     6861    jmp short 04c82h                          ; eb 11
    68536862    test bl, 080h                             ; f6 c3 80
    6854     jne short 04c52h                          ; 75 04
     6863    jne short 04c7ah                          ; 75 04
    68556864    xor dh, dh                                ; 30 f6
    6856     jmp short 04c5ah                          ; eb 08
     6865    jmp short 04c82h                          ; eb 08
    68576866    test bl, 080h                             ; f6 c3 80
    6858     je short 04c7eh                           ; 74 27
     6867    je short 04ca6h                           ; 74 27
    68596868    mov dx, strict word 00001h                ; ba 01 00
    68606869    mov bx, 00da0h                            ; bb a0 0d
    68616870    mov cx, ds                                ; 8c d9
    68626871    mov ax, strict word 00004h                ; b8 04 00
    6863     call 01933h                               ; e8 ce cc
     6872    call 01933h                               ; e8 a6 cc
    68646873    mov ax, dx                                ; 89 d0
    68656874    mov dx, strict word 0000ah                ; ba 0a 00
     
    68716880    mov ax, strict word 00004h                ; b8 04 00
    68726881    push ax                                   ; 50
    6873     call 01976h                               ; e8 fb cc
     6882    call 01976h                               ; e8 d3 cc
    68746883    add sp, strict byte 00006h                ; 83 c4 06
    68756884    lea sp, [bp-002h]                         ; 8d 66 fe
     
    68776886    pop bp                                    ; 5d
    68786887    retn                                      ; c3
    6879 print_boot_failure_:                         ; 0xf4c84 LB 0x9f
     6888print_boot_failure_:                         ; 0xf4cac LB 0x9f
    68806889    push bp                                   ; 55
    68816890    mov bp, sp                                ; 89 e5
     
    68876896    mov si, cx                                ; 89 ce
    68886897    test al, al                               ; 84 c0
    6889     je short 04cb6h                           ; 74 1f
     6898    je short 04cdeh                           ; 74 1f
    68906899    mov bx, 00da0h                            ; bb a0 0d
    68916900    mov cx, ds                                ; 8c d9
    68926901    mov ax, strict word 00004h                ; b8 04 00
    6893     call 01933h                               ; e8 91 cc
     6902    call 01933h                               ; e8 69 cc
    68946903    mov cx, 00ddah                            ; b9 da 0d
    68956904    push cx                                   ; 51
     
    68986907    mov cx, strict word 00004h                ; b9 04 00
    68996908    push cx                                   ; 51
    6900     call 01976h                               ; e8 c5 cc
     6909    call 01976h                               ; e8 9d cc
    69016910    add sp, strict byte 00006h                ; 83 c4 06
    6902     jmp short 04cfeh                          ; eb 48
     6911    jmp short 04d26h                          ; eb 48
    69036912    test dl, dl                               ; 84 d2
    6904     je short 04ccah                           ; 74 10
     6913    je short 04cf2h                           ; 74 10
    69056914    mov bx, 00da0h                            ; bb a0 0d
    69066915    mov cx, ds                                ; 8c d9
    69076916    mov ax, strict word 00004h                ; b8 04 00
    6908     call 01933h                               ; e8 6e cc
     6917    call 01933h                               ; e8 46 cc
    69096918    mov cx, 00de4h                            ; b9 e4 0d
    6910     jmp short 04ca5h                          ; eb db
     6919    jmp short 04ccdh                          ; eb db
    69116920    test bl, 080h                             ; f6 c3 80
    6912     je short 04ce0h                           ; 74 11
     6921    je short 04d08h                           ; 74 11
    69136922    mov bx, 00da0h                            ; bb a0 0d
    69146923    mov cx, ds                                ; 8c d9
    69156924    mov ax, strict word 00004h                ; b8 04 00
    6916     call 01933h                               ; e8 59 cc
     6925    call 01933h                               ; e8 31 cc
    69176926    push si                                   ; 56
    69186927    mov cx, 00dd0h                            ; b9 d0 0d
    6919     jmp short 04cefh                          ; eb 0f
     6928    jmp short 04d17h                          ; eb 0f
    69206929    mov bx, 00da0h                            ; bb a0 0d
    69216930    mov cx, ds                                ; 8c d9
    69226931    mov ax, strict word 00004h                ; b8 04 00
    6923     call 01933h                               ; e8 48 cc
     6932    call 01933h                               ; e8 20 cc
    69246933    push si                                   ; 56
    69256934    mov cx, 00dc6h                            ; b9 c6 0d
     
    69296938    mov cx, strict word 00004h                ; b9 04 00
    69306939    push cx                                   ; 51
    6931     call 01976h                               ; e8 7b cc
     6940    call 01976h                               ; e8 53 cc
    69326941    add sp, strict byte 00008h                ; 83 c4 08
    69336942    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6934     jne short 04d1bh                          ; 75 17
     6943    jne short 04d43h                          ; 75 17
    69356944    test dh, dh                               ; 84 f6
    6936     jne short 04d0dh                          ; 75 05
     6945    jne short 04d35h                          ; 75 05
    69376946    mov dx, 004d5h                            ; ba d5 04
    6938     jmp short 04d10h                          ; eb 03
     6947    jmp short 04d38h                          ; eb 03
    69396948    mov dx, 004ffh                            ; ba ff 04
    69406949    push dx                                   ; 52
    69416950    mov dx, strict word 00007h                ; ba 07 00
    69426951    push dx                                   ; 52
    6943     call 01976h                               ; e8 5e cc
     6952    call 01976h                               ; e8 36 cc
    69446953    add sp, strict byte 00004h                ; 83 c4 04
    69456954    lea sp, [bp-002h]                         ; 8d 66 fe
     
    69476956    pop bp                                    ; 5d
    69486957    retn 00002h                               ; c2 02 00
    6949 print_cdromboot_failure_:                    ; 0xf4d23 LB 0x2a
     6958print_cdromboot_failure_:                    ; 0xf4d4b LB 0x2a
    69506959    push bp                                   ; 55
    69516960    mov bp, sp                                ; 89 e5
     
    69576966    mov cx, ds                                ; 8c d9
    69586967    mov ax, strict word 00004h                ; b8 04 00
    6959     call 01933h                               ; e8 fd cb
     6968    call 01933h                               ; e8 d5 cb
    69606969    push dx                                   ; 52
    69616970    mov dx, 00534h                            ; ba 34 05
     
    69636972    mov dx, strict word 00004h                ; ba 04 00
    69646973    push dx                                   ; 52
    6965     call 01976h                               ; e8 34 cc
     6974    call 01976h                               ; e8 0c cc
    69666975    add sp, strict byte 00006h                ; 83 c4 06
    69676976    lea sp, [bp-006h]                         ; 8d 66 fa
     
    69716980    pop bp                                    ; 5d
    69726981    retn                                      ; c3
    6973 _int19_function:                             ; 0xf4d4d LB 0x28d
     6982_int19_function:                             ; 0xf4d75 LB 0x28d
    69746983    push bp                                   ; 55
    69756984    mov bp, sp                                ; 89 e5
     
    69796988    mov dx, strict word 0000eh                ; ba 0e 00
    69806989    mov ax, strict word 00040h                ; b8 40 00
    6981     call 0166eh                               ; e8 10 c9
     6990    call 0166eh                               ; e8 e8 c8
    69826991    mov bx, ax                                ; 89 c3
    69836992    mov di, ax                                ; 89 c7
    69846993    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    69856994    mov ax, strict word 0003dh                ; b8 3d 00
    6986     call 016aeh                               ; e8 42 c9
     6995    call 016aeh                               ; e8 1a c9
    69876996    mov dl, al                                ; 88 c2
    69886997    xor dh, dh                                ; 30 f6
    69896998    mov word [bp-00eh], dx                    ; 89 56 f2
    69906999    mov ax, strict word 00038h                ; b8 38 00
    6991     call 016aeh                               ; e8 35 c9
     7000    call 016aeh                               ; e8 0d c9
    69927001    and AL, strict byte 0f0h                  ; 24 f0
    69937002    mov byte [bp-010h], al                    ; 88 46 f0
     
    69997008    mov word [bp-00eh], dx                    ; 89 56 f2
    70007009    mov ax, strict word 0003ch                ; b8 3c 00
    7001     call 016aeh                               ; e8 1b c9
     7010    call 016aeh                               ; e8 f3 c8
    70027011    and AL, strict byte 00fh                  ; 24 0f
    70037012    xor ah, ah                                ; 30 e4
     
    70077016    mov dx, 0037dh                            ; ba 7d 03
    70087017    mov ax, bx                                ; 89 d8
    7009     call 01652h                               ; e8 ac c8
     7018    call 01652h                               ; e8 84 c8
    70107019    test al, al                               ; 84 c0
    7011     je short 04db7h                           ; 74 0d
     7020    je short 04ddfh                           ; 74 0d
    70127021    mov dx, 0037dh                            ; ba 7d 03
    70137022    mov ax, bx                                ; 89 d8
    7014     call 01652h                               ; e8 a0 c8
     7023    call 01652h                               ; e8 78 c8
    70157024    xor ah, ah                                ; 30 e4
    70167025    mov word [bp-00eh], ax                    ; 89 46 f2
    70177026    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    7018     jne short 04dceh                          ; 75 11
     7027    jne short 04df6h                          ; 75 11
    70197028    mov ax, strict word 0003ch                ; b8 3c 00
    7020     call 016aeh                               ; e8 eb c8
     7029    call 016aeh                               ; e8 c3 c8
    70217030    and AL, strict byte 0f0h                  ; 24 f0
    70227031    xor ah, ah                                ; 30 e4
    70237032    mov CL, strict byte 004h                  ; b1 04
    70247033    sar ax, CL                                ; d3 f8
    7025     call 07de9h                               ; e8 1b 30
     7034    call 07e11h                               ; e8 1b 30
    70267035    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    7027     jne short 04dd9h                          ; 75 05
     7036    jne short 04e01h                          ; 75 05
    70287037    mov CL, strict byte 004h                  ; b1 04
    70297038    shr word [bp-00eh], CL                    ; d3 6e f2
    70307039    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    7031     jne short 04de7h                          ; 75 08
     7040    jne short 04e0fh                          ; 75 08
    70327041    mov al, byte [bp-00dh]                    ; 8a 46 f3
    70337042    xor ah, ah                                ; 30 e4
    70347043    mov word [bp-00eh], ax                    ; 89 46 f2
    70357044    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    7036     jne short 04df2h                          ; 75 05
     7045    jne short 04e1ah                          ; 75 05
    70377046    mov CL, strict byte 00ch                  ; b1 0c
    70387047    shr word [bp-00eh], CL                    ; d3 6e f2
    70397048    cmp word [bp-00eh], strict byte 00010h    ; 83 7e f2 10
    7040     jnc short 04dfch                          ; 73 04
     7049    jnc short 04e24h                          ; 73 04
    70417050    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    70427051    xor al, al                                ; 30 c0
     
    70477056    mov cx, ds                                ; 8c d9
    70487057    mov ax, strict word 00004h                ; b8 04 00
    7049     call 01933h                               ; e8 21 cb
     7058    call 01933h                               ; e8 f9 ca
    70507059    push word [bp-00eh]                       ; ff 76 f2
    70517060    mov al, byte [bp+004h]                    ; 8a 46 04
     
    70567065    mov ax, strict word 00004h                ; b8 04 00
    70577066    push ax                                   ; 50
    7058     call 01976h                               ; e8 50 cb
     7067    call 01976h                               ; e8 28 cb
    70597068    add sp, strict byte 00008h                ; 83 c4 08
    70607069    mov ax, word [bp-00eh]                    ; 8b 46 f2
    70617070    and ax, strict word 0000fh                ; 25 0f 00
    70627071    cmp ax, strict word 00002h                ; 3d 02 00
    7063     jc short 04e42h                           ; 72 0e
    7064     jbe short 04e51h                          ; 76 1b
     7072    jc short 04e6ah                           ; 72 0e
     7073    jbe short 04e79h                          ; 76 1b
    70657074    cmp ax, strict word 00004h                ; 3d 04 00
    7066     je short 04e6eh                           ; 74 33
     7075    je short 04e96h                           ; 74 33
    70677076    cmp ax, strict word 00003h                ; 3d 03 00
    7068     je short 04e64h                           ; 74 24
    7069     jmp short 04e9dh                          ; eb 5b
     7077    je short 04e8ch                           ; 74 24
     7078    jmp short 04ec5h                          ; eb 5b
    70707079    cmp ax, strict word 00001h                ; 3d 01 00
    7071     jne short 04e9dh                          ; 75 56
     7080    jne short 04ec5h                          ; 75 56
    70727081    xor al, al                                ; 30 c0
    70737082    mov byte [bp-006h], al                    ; 88 46 fa
    70747083    mov byte [bp-008h], al                    ; 88 46 f8
    7075     jmp short 04eb1h                          ; eb 60
     7084    jmp short 04ed9h                          ; eb 60
    70767085    mov dx, 0037ch                            ; ba 7c 03
    70777086    mov ax, di                                ; 89 f8
    7078     call 01652h                               ; e8 f9 c7
     7087    call 01652h                               ; e8 d1 c7
    70797088    add AL, strict byte 080h                  ; 04 80
    70807089    mov byte [bp-006h], al                    ; 88 46 fa
    70817090    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    7082     jmp short 04eb1h                          ; eb 4d
     7091    jmp short 04ed9h                          ; eb 4d
    70837092    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    70847093    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    7085     jmp short 04e78h                          ; eb 0a
     7094    jmp short 04ea0h                          ; eb 0a
    70867095    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    70877096    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    7088     je short 04eb1h                           ; 74 39
    7089     call 03e1eh                               ; e8 a3 ef
     7097    je short 04ed9h                           ; 74 39
     7098    call 03e45h                               ; e8 a2 ef
    70907099    mov bx, ax                                ; 89 c3
    70917100    test AL, strict byte 0ffh                 ; a8 ff
    7092     je short 04ea4h                           ; 74 23
    7093     call 04d23h                               ; e8 9f fe
     7101    je short 04ecch                           ; 74 23
     7102    call 04d4bh                               ; e8 9f fe
    70947103    mov al, byte [bp-00ch]                    ; 8a 46 f4
    70957104    xor ah, ah                                ; 30 e4
     
    71017110    mov al, byte [bp-008h]                    ; 8a 46 f8
    71027111    mov cx, strict word 00001h                ; b9 01 00
    7103     call 04c84h                               ; e8 e7 fd
     7112    call 04cach                               ; e8 e7 fd
    71047113    xor ax, ax                                ; 31 c0
    71057114    xor dx, dx                                ; 31 d2
    7106     jmp near 04fd3h                           ; e9 2f 01
     7115    jmp near 04ffbh                           ; e9 2f 01
    71077116    mov dx, 00372h                            ; ba 72 03
    71087117    mov ax, di                                ; 89 f8
    7109     call 0166eh                               ; e8 c2 c7
     7118    call 0166eh                               ; e8 9a c7
    71107119    mov si, ax                                ; 89 c6
    71117120    mov byte [bp-006h], bh                    ; 88 7e fa
    71127121    cmp byte [bp-00ah], 001h                  ; 80 7e f6 01
    7113     jne short 04f0ch                          ; 75 55
     7122    jne short 04f34h                          ; 75 55
    71147123    xor si, si                                ; 31 f6
    71157124    mov ax, 0e200h                            ; b8 00 e2
    71167125    mov es, ax                                ; 8e c0
    71177126    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    7118     jne short 04e84h                          ; 75 bf
     7127    jne short 04each                          ; 75 bf
    71197128    mov cx, ax                                ; 89 c1
    71207129    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    71217130    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    7122     jne short 04e84h                          ; 75 b1
     7131    jne short 04each                          ; 75 b1
    71237132    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    7124     jne short 04e84h                          ; 75 aa
     7133    jne short 04each                          ; 75 aa
    71257134    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
    71267135    mov dx, word [es:bx]                      ; 26 8b 17
    71277136    mov ax, word [es:bx+002h]                 ; 26 8b 47 02
    71287137    cmp ax, 06568h                            ; 3d 68 65
    7129     jne short 04f0eh                          ; 75 24
     7138    jne short 04f36h                          ; 75 24
    71307139    cmp dx, 07445h                            ; 81 fa 45 74
    7131     jne short 04f0eh                          ; 75 1e
     7140    jne short 04f36h                          ; 75 1e
    71327141    mov bl, byte [bp-006h]                    ; 8a 5e fa
    71337142    xor bh, bh                                ; 30 ff
     
    71367145    mov al, byte [bp-008h]                    ; 8a 46 f8
    71377146    xor ah, ah                                ; 30 e4
    7138     call 04c33h                               ; e8 31 fd
     7147    call 04c5bh                               ; e8 31 fd
    71397148    mov word [bp-014h], strict word 00006h    ; c7 46 ec 06 00
    71407149    mov word [bp-012h], cx                    ; 89 4e ee
    7141     jmp short 04f2dh                          ; eb 21
    7142     jmp short 04f33h                          ; eb 25
     7150    jmp short 04f55h                          ; eb 21
     7151    jmp short 04f5bh                          ; eb 25
    71437152    mov bl, byte [bp-006h]                    ; 8a 5e fa
    71447153    xor bh, bh                                ; 30 ff
     
    71477156    mov al, byte [bp-008h]                    ; 8a 46 f8
    71487157    xor ah, ah                                ; 30 e4
    7149     call 04c33h                               ; e8 13 fd
     7158    call 04c5bh                               ; e8 13 fd
    71507159    sti                                       ; fb
    71517160    mov word [bp-012h], cx                    ; 89 4e ee
     
    71547163    mov word [bp-014h], ax                    ; 89 46 ec
    71557164    call far [bp-014h]                        ; ff 5e ec
    7156     jmp near 04e84h                           ; e9 51 ff
     7165    jmp near 04each                           ; e9 51 ff
    71577166    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    7158     jne short 04f60h                          ; 75 27
     7167    jne short 04f88h                          ; 75 27
    71597168    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    7160     jne short 04f60h                          ; 75 21
     7169    jne short 04f88h                          ; 75 21
    71617170    mov si, 007c0h                            ; be c0 07
    71627171    mov es, si                                ; 8e c6
     
    71717180    sbb ax, strict byte 00000h                ; 83 d8 00
    71727181    test ax, ax                               ; 85 c0
    7173     je short 04f60h                           ; 74 03
    7174     jmp near 04e84h                           ; e9 24 ff
     7182    je short 04f88h                           ; 74 03
     7183    jmp near 04each                           ; e9 24 ff
    71757184    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7176     je short 04f6ah                           ; 74 04
     7185    je short 04f92h                           ; 74 04
    71777186    xor bl, bl                                ; 30 db
    7178     jmp short 04f6ch                          ; eb 02
     7187    jmp short 04f94h                          ; eb 02
    71797188    mov BL, strict byte 001h                  ; b3 01
    71807189    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    7181     je short 04f74h                           ; 74 02
     7190    je short 04f9ch                           ; 74 02
    71827191    mov BL, strict byte 001h                  ; b3 01
    71837192    xor dx, dx                                ; 31 d2
    71847193    mov ax, si                                ; 89 f0
    7185     call 0166eh                               ; e8 f3 c6
     7194    call 0166eh                               ; e8 cb c6
    71867195    mov di, ax                                ; 89 c7
    71877196    mov dx, strict word 00002h                ; ba 02 00
    71887197    mov ax, si                                ; 89 f0
    7189     call 0166eh                               ; e8 e9 c6
     7198    call 0166eh                               ; e8 c1 c6
    71907199    cmp di, ax                                ; 39 c7
    7191     je short 04f9ah                           ; 74 11
     7200    je short 04fc2h                           ; 74 11
    71927201    test bl, bl                               ; 84 db
    7193     jne short 04fb2h                          ; 75 25
     7202    jne short 04fdah                          ; 75 25
    71947203    mov dx, 001feh                            ; ba fe 01
    71957204    mov ax, si                                ; 89 f0
    7196     call 0166eh                               ; e8 d9 c6
     7205    call 0166eh                               ; e8 b1 c6
    71977206    cmp ax, 0aa55h                            ; 3d 55 aa
    7198     je short 04fb2h                           ; 74 18
     7207    je short 04fdah                           ; 74 18
    71997208    mov al, byte [bp-00ch]                    ; 8a 46 f4
    72007209    xor ah, ah                                ; 30 e4
     
    72067215    mov al, byte [bp-008h]                    ; 8a 46 f8
    72077216    xor cx, cx                                ; 31 c9
    7208     jmp near 04e9ah                           ; e9 e8 fe
     7217    jmp near 04ec2h                           ; e9 e8 fe
    72097218    mov bl, byte [bp-006h]                    ; 8a 5e fa
    72107219    xor bh, bh                                ; 30 ff
     
    72137222    mov al, byte [bp-008h]                    ; 8a 46 f8
    72147223    xor ah, ah                                ; 30 e4
    7215     call 04c33h                               ; e8 6f fc
     7224    call 04c5bh                               ; e8 6f fc
    72167225    mov al, byte [bp-006h]                    ; 8a 46 fa
    72177226    xor ah, ah                                ; 30 e4
     
    72267235    pop bp                                    ; 5d
    72277236    retn                                      ; c3
    7228 keyboard_panic_:                             ; 0xf4fda LB 0x16
     7237keyboard_panic_:                             ; 0xf5002 LB 0x16
    72297238    push bp                                   ; 55
    72307239    mov bp, sp                                ; 89 e5
     
    72347243    mov ax, strict word 00007h                ; b8 07 00
    72357244    push ax                                   ; 50
    7236     call 01976h                               ; e8 8d c9
     7245    call 01976h                               ; e8 65 c9
    72377246    add sp, strict byte 00006h                ; 83 c4 06
    72387247    mov sp, bp                                ; 89 ec
    72397248    pop bp                                    ; 5d
    72407249    retn                                      ; c3
    7241 _keyboard_init:                              ; 0xf4ff0 LB 0x26a
     7250_keyboard_init:                              ; 0xf5018 LB 0x26a
    72427251    push bp                                   ; 55
    72437252    mov bp, sp                                ; 89 e5
     
    72517260    ; sub ah, ah                                ; 2a e4
    72527261    test AL, strict byte 002h                 ; a8 02
    7253     je short 05013h                           ; 74 0d
     7262    je short 0503bh                           ; 74 0d
    72547263    dec bx                                    ; 4b
    72557264    test bx, bx                               ; 85 db
    7256     jbe short 05013h                          ; 76 08
     7265    jbe short 0503bh                          ; 76 08
    72577266    xor al, al                                ; 30 c0
    72587267    mov dx, 00080h                            ; ba 80 00
    72597268    out DX, AL                                ; ee
    7260     jmp short 04ffch                          ; eb e9
     7269    jmp short 05024h                          ; eb e9
    72617270    test bx, bx                               ; 85 db
    7262     jne short 0501ch                          ; 75 05
     7271    jne short 05044h                          ; 75 05
    72637272    xor ax, ax                                ; 31 c0
    7264     call 04fdah                               ; e8 be ff
     7273    call 05002h                               ; e8 be ff
    72657274    mov bx, strict word 0ffffh                ; bb ff ff
    72667275    mov dx, strict word 00064h                ; ba 64 00
     
    72697278    ; sub ah, ah                                ; 2a e4
    72707279    test AL, strict byte 001h                 ; a8 01
    7271     jne short 05036h                          ; 75 0d
     7280    jne short 0505eh                          ; 75 0d
    72727281    dec bx                                    ; 4b
    72737282    test bx, bx                               ; 85 db
    7274     jbe short 05036h                          ; 76 08
     7283    jbe short 0505eh                          ; 76 08
    72757284    mov AL, strict byte 001h                  ; b0 01
    72767285    mov dx, 00080h                            ; ba 80 00
    72777286    out DX, AL                                ; ee
    7278     jmp short 0501fh                          ; eb e9
     7287    jmp short 05047h                          ; eb e9
    72797288    test bx, bx                               ; 85 db
    7280     jne short 05040h                          ; 75 06
     7289    jne short 05068h                          ; 75 06
    72817290    mov ax, strict word 00001h                ; b8 01 00
    7282     call 04fdah                               ; e8 9a ff
     7291    call 05002h                               ; e8 9a ff
    72837292    mov dx, strict word 00060h                ; ba 60 00
    72847293    in AL, DX                                 ; ec
     
    72867295    ; sub ah, ah                                ; 2a e4
    72877296    cmp ax, strict word 00055h                ; 3d 55 00
    7288     je short 05051h                           ; 74 06
     7297    je short 05079h                           ; 74 06
    72897298    mov ax, 003dfh                            ; b8 df 03
    7290     call 04fdah                               ; e8 89 ff
     7299    call 05002h                               ; e8 89 ff
    72917300    mov AL, strict byte 0abh                  ; b0 ab
    72927301    mov dx, strict word 00064h                ; ba 64 00
     
    72987307    ; sub ah, ah                                ; 2a e4
    72997308    test AL, strict byte 002h                 ; a8 02
    7300     je short 05071h                           ; 74 0d
     7309    je short 05099h                           ; 74 0d
    73017310    dec bx                                    ; 4b
    73027311    test bx, bx                               ; 85 db
    7303     jbe short 05071h                          ; 76 08
     7312    jbe short 05099h                          ; 76 08
    73047313    mov AL, strict byte 010h                  ; b0 10
    73057314    mov dx, 00080h                            ; ba 80 00
    73067315    out DX, AL                                ; ee
    7307     jmp short 0505ah                          ; eb e9
     7316    jmp short 05082h                          ; eb e9
    73087317    test bx, bx                               ; 85 db
    7309     jne short 0507bh                          ; 75 06
     7318    jne short 050a3h                          ; 75 06
    73107319    mov ax, strict word 0000ah                ; b8 0a 00
    7311     call 04fdah                               ; e8 5f ff
     7320    call 05002h                               ; e8 5f ff
    73127321    mov bx, strict word 0ffffh                ; bb ff ff
    73137322    mov dx, strict word 00064h                ; ba 64 00
     
    73167325    ; sub ah, ah                                ; 2a e4
    73177326    test AL, strict byte 001h                 ; a8 01
    7318     jne short 05095h                          ; 75 0d
     7327    jne short 050bdh                          ; 75 0d
    73197328    dec bx                                    ; 4b
    73207329    test bx, bx                               ; 85 db
    7321     jbe short 05095h                          ; 76 08
     7330    jbe short 050bdh                          ; 76 08
    73227331    mov AL, strict byte 011h                  ; b0 11
    73237332    mov dx, 00080h                            ; ba 80 00
    73247333    out DX, AL                                ; ee
    7325     jmp short 0507eh                          ; eb e9
     7334    jmp short 050a6h                          ; eb e9
    73267335    test bx, bx                               ; 85 db
    7327     jne short 0509fh                          ; 75 06
     7336    jne short 050c7h                          ; 75 06
    73287337    mov ax, strict word 0000bh                ; b8 0b 00
    7329     call 04fdah                               ; e8 3b ff
     7338    call 05002h                               ; e8 3b ff
    73307339    mov dx, strict word 00060h                ; ba 60 00
    73317340    in AL, DX                                 ; ec
     
    73337342    ; sub ah, ah                                ; 2a e4
    73347343    test ax, ax                               ; 85 c0
    7335     je short 050afh                           ; 74 06
     7344    je short 050d7h                           ; 74 06
    73367345    mov ax, 003e0h                            ; b8 e0 03
    7337     call 04fdah                               ; e8 2b ff
     7346    call 05002h                               ; e8 2b ff
    73387347    mov AL, strict byte 0ffh                  ; b0 ff
    73397348    mov dx, strict word 00060h                ; ba 60 00
     
    73457354    ; sub ah, ah                                ; 2a e4
    73467355    test AL, strict byte 002h                 ; a8 02
    7347     je short 050cfh                           ; 74 0d
     7356    je short 050f7h                           ; 74 0d
    73487357    dec bx                                    ; 4b
    73497358    test bx, bx                               ; 85 db
    7350     jbe short 050cfh                          ; 76 08
     7359    jbe short 050f7h                          ; 76 08
    73517360    mov AL, strict byte 020h                  ; b0 20
    73527361    mov dx, 00080h                            ; ba 80 00
    73537362    out DX, AL                                ; ee
    7354     jmp short 050b8h                          ; eb e9
     7363    jmp short 050e0h                          ; eb e9
    73557364    test bx, bx                               ; 85 db
    7356     jne short 050d9h                          ; 75 06
     7365    jne short 05101h                          ; 75 06
    73577366    mov ax, strict word 00014h                ; b8 14 00
    7358     call 04fdah                               ; e8 01 ff
     7367    call 05002h                               ; e8 01 ff
    73597368    mov bx, strict word 0ffffh                ; bb ff ff
    73607369    mov dx, strict word 00064h                ; ba 64 00
     
    73637372    ; sub ah, ah                                ; 2a e4
    73647373    test AL, strict byte 001h                 ; a8 01
    7365     jne short 050f3h                          ; 75 0d
     7374    jne short 0511bh                          ; 75 0d
    73667375    dec bx                                    ; 4b
    73677376    test bx, bx                               ; 85 db
    7368     jbe short 050f3h                          ; 76 08
     7377    jbe short 0511bh                          ; 76 08
    73697378    mov AL, strict byte 021h                  ; b0 21
    73707379    mov dx, 00080h                            ; ba 80 00
    73717380    out DX, AL                                ; ee
    7372     jmp short 050dch                          ; eb e9
     7381    jmp short 05104h                          ; eb e9
    73737382    test bx, bx                               ; 85 db
    7374     jne short 050fdh                          ; 75 06
     7383    jne short 05125h                          ; 75 06
    73757384    mov ax, strict word 00015h                ; b8 15 00
    7376     call 04fdah                               ; e8 dd fe
     7385    call 05002h                               ; e8 dd fe
    73777386    mov dx, strict word 00060h                ; ba 60 00
    73787387    in AL, DX                                 ; ec
     
    73807389    ; sub ah, ah                                ; 2a e4
    73817390    cmp ax, 000fah                            ; 3d fa 00
    7382     je short 0510eh                           ; 74 06
     7391    je short 05136h                           ; 74 06
    73837392    mov ax, 003e1h                            ; b8 e1 03
    7384     call 04fdah                               ; e8 cc fe
     7393    call 05002h                               ; e8 cc fe
    73857394    mov dx, strict word 00064h                ; ba 64 00
    73867395    in AL, DX                                 ; ec
     
    73887397    ; sub ah, ah                                ; 2a e4
    73897398    test AL, strict byte 001h                 ; a8 01
    7390     jne short 05120h                          ; 75 08
     7399    jne short 05148h                          ; 75 08
    73917400    mov AL, strict byte 031h                  ; b0 31
    73927401    mov dx, 00080h                            ; ba 80 00
    73937402    out DX, AL                                ; ee
    7394     jmp short 0510eh                          ; eb ee
     7403    jmp short 05136h                          ; eb ee
    73957404    mov dx, strict word 00060h                ; ba 60 00
    73967405    in AL, DX                                 ; ec
     
    73987407    ; sub ah, ah                                ; 2a e4
    73997408    cmp ax, 000aah                            ; 3d aa 00
    7400     je short 05139h                           ; 74 0e
     7409    je short 05161h                           ; 74 0e
    74017410    in AL, DX                                 ; ec
    74027411    db  02ah, 0e4h
    74037412    ; sub ah, ah                                ; 2a e4
    74047413    cmp ax, 000aah                            ; 3d aa 00
    7405     je short 05139h                           ; 74 06
     7414    je short 05161h                           ; 74 06
    74067415    mov ax, 003e2h                            ; b8 e2 03
    7407     call 04fdah                               ; e8 a1 fe
     7416    call 05002h                               ; e8 a1 fe
    74087417    mov AL, strict byte 0f5h                  ; b0 f5
    74097418    mov dx, strict word 00060h                ; ba 60 00
     
    74157424    ; sub ah, ah                                ; 2a e4
    74167425    test AL, strict byte 002h                 ; a8 02
    7417     je short 05159h                           ; 74 0d
     7426    je short 05181h                           ; 74 0d
    74187427    dec bx                                    ; 4b
    74197428    test bx, bx                               ; 85 db
    7420     jbe short 05159h                          ; 76 08
     7429    jbe short 05181h                          ; 76 08
    74217430    mov AL, strict byte 040h                  ; b0 40
    74227431    mov dx, 00080h                            ; ba 80 00
    74237432    out DX, AL                                ; ee
    7424     jmp short 05142h                          ; eb e9
     7433    jmp short 0516ah                          ; eb e9
    74257434    test bx, bx                               ; 85 db
    7426     jne short 05163h                          ; 75 06
     7435    jne short 0518bh                          ; 75 06
    74277436    mov ax, strict word 00028h                ; b8 28 00
    7428     call 04fdah                               ; e8 77 fe
     7437    call 05002h                               ; e8 77 fe
    74297438    mov bx, strict word 0ffffh                ; bb ff ff
    74307439    mov dx, strict word 00064h                ; ba 64 00
     
    74337442    ; sub ah, ah                                ; 2a e4
    74347443    test AL, strict byte 001h                 ; a8 01
    7435     jne short 0517dh                          ; 75 0d
     7444    jne short 051a5h                          ; 75 0d
    74367445    dec bx                                    ; 4b
    74377446    test bx, bx                               ; 85 db
    7438     jbe short 0517dh                          ; 76 08
     7447    jbe short 051a5h                          ; 76 08
    74397448    mov AL, strict byte 041h                  ; b0 41
    74407449    mov dx, 00080h                            ; ba 80 00
    74417450    out DX, AL                                ; ee
    7442     jmp short 05166h                          ; eb e9
     7451    jmp short 0518eh                          ; eb e9
    74437452    test bx, bx                               ; 85 db
    7444     jne short 05187h                          ; 75 06
     7453    jne short 051afh                          ; 75 06
    74457454    mov ax, strict word 00029h                ; b8 29 00
    7446     call 04fdah                               ; e8 53 fe
     7455    call 05002h                               ; e8 53 fe
    74477456    mov dx, strict word 00060h                ; ba 60 00
    74487457    in AL, DX                                 ; ec
     
    74507459    ; sub ah, ah                                ; 2a e4
    74517460    cmp ax, 000fah                            ; 3d fa 00
    7452     je short 05198h                           ; 74 06
     7461    je short 051c0h                           ; 74 06
    74537462    mov ax, 003e3h                            ; b8 e3 03
    7454     call 04fdah                               ; e8 42 fe
     7463    call 05002h                               ; e8 42 fe
    74557464    mov AL, strict byte 060h                  ; b0 60
    74567465    mov dx, strict word 00064h                ; ba 64 00
     
    74627471    ; sub ah, ah                                ; 2a e4
    74637472    test AL, strict byte 002h                 ; a8 02
    7464     je short 051b8h                           ; 74 0d
     7473    je short 051e0h                           ; 74 0d
    74657474    dec bx                                    ; 4b
    74667475    test bx, bx                               ; 85 db
    7467     jbe short 051b8h                          ; 76 08
     7476    jbe short 051e0h                          ; 76 08
    74687477    mov AL, strict byte 050h                  ; b0 50
    74697478    mov dx, 00080h                            ; ba 80 00
    74707479    out DX, AL                                ; ee
    7471     jmp short 051a1h                          ; eb e9
     7480    jmp short 051c9h                          ; eb e9
    74727481    test bx, bx                               ; 85 db
    7473     jne short 051c2h                          ; 75 06
     7482    jne short 051eah                          ; 75 06
    74747483    mov ax, strict word 00032h                ; b8 32 00
    7475     call 04fdah                               ; e8 18 fe
     7484    call 05002h                               ; e8 18 fe
    74767485    mov AL, strict byte 065h                  ; b0 65
    74777486    mov dx, strict word 00060h                ; ba 60 00
     
    74837492    ; sub ah, ah                                ; 2a e4
    74847493    test AL, strict byte 002h                 ; a8 02
    7485     je short 051e2h                           ; 74 0d
     7494    je short 0520ah                           ; 74 0d
    74867495    dec bx                                    ; 4b
    74877496    test bx, bx                               ; 85 db
    7488     jbe short 051e2h                          ; 76 08
     7497    jbe short 0520ah                          ; 76 08
    74897498    mov AL, strict byte 060h                  ; b0 60
    74907499    mov dx, 00080h                            ; ba 80 00
    74917500    out DX, AL                                ; ee
    7492     jmp short 051cbh                          ; eb e9
     7501    jmp short 051f3h                          ; eb e9
    74937502    test bx, bx                               ; 85 db
    7494     jne short 051ech                          ; 75 06
     7503    jne short 05214h                          ; 75 06
    74957504    mov ax, strict word 0003ch                ; b8 3c 00
    7496     call 04fdah                               ; e8 ee fd
     7505    call 05002h                               ; e8 ee fd
    74977506    mov AL, strict byte 0f4h                  ; b0 f4
    74987507    mov dx, strict word 00060h                ; ba 60 00
     
    75047513    ; sub ah, ah                                ; 2a e4
    75057514    test AL, strict byte 002h                 ; a8 02
    7506     je short 0520ch                           ; 74 0d
     7515    je short 05234h                           ; 74 0d
    75077516    dec bx                                    ; 4b
    75087517    test bx, bx                               ; 85 db
    7509     jbe short 0520ch                          ; 76 08
     7518    jbe short 05234h                          ; 76 08
    75107519    mov AL, strict byte 070h                  ; b0 70
    75117520    mov dx, 00080h                            ; ba 80 00
    75127521    out DX, AL                                ; ee
    7513     jmp short 051f5h                          ; eb e9
     7522    jmp short 0521dh                          ; eb e9
    75147523    test bx, bx                               ; 85 db
    7515     jne short 05216h                          ; 75 06
     7524    jne short 0523eh                          ; 75 06
    75167525    mov ax, strict word 00046h                ; b8 46 00
    7517     call 04fdah                               ; e8 c4 fd
     7526    call 05002h                               ; e8 c4 fd
    75187527    mov bx, strict word 0ffffh                ; bb ff ff
    75197528    mov dx, strict word 00064h                ; ba 64 00
     
    75227531    ; sub ah, ah                                ; 2a e4
    75237532    test AL, strict byte 001h                 ; a8 01
    7524     jne short 05230h                          ; 75 0d
     7533    jne short 05258h                          ; 75 0d
    75257534    dec bx                                    ; 4b
    75267535    test bx, bx                               ; 85 db
    7527     jbe short 05230h                          ; 76 08
     7536    jbe short 05258h                          ; 76 08
    75287537    mov AL, strict byte 071h                  ; b0 71
    75297538    mov dx, 00080h                            ; ba 80 00
    75307539    out DX, AL                                ; ee
    7531     jmp short 05219h                          ; eb e9
     7540    jmp short 05241h                          ; eb e9
    75327541    test bx, bx                               ; 85 db
    7533     jne short 0523ah                          ; 75 06
     7542    jne short 05262h                          ; 75 06
    75347543    mov ax, strict word 00046h                ; b8 46 00
    7535     call 04fdah                               ; e8 a0 fd
     7544    call 05002h                               ; e8 a0 fd
    75367545    mov dx, strict word 00060h                ; ba 60 00
    75377546    in AL, DX                                 ; ec
     
    75397548    ; sub ah, ah                                ; 2a e4
    75407549    cmp ax, 000fah                            ; 3d fa 00
    7541     je short 0524bh                           ; 74 06
     7550    je short 05273h                           ; 74 06
    75427551    mov ax, 003e4h                            ; b8 e4 03
    7543     call 04fdah                               ; e8 8f fd
     7552    call 05002h                               ; e8 8f fd
    75447553    mov AL, strict byte 0a8h                  ; b0 a8
    75457554    mov dx, strict word 00064h                ; ba 64 00
    75467555    out DX, AL                                ; ee
    75477556    xor ax, ax                                ; 31 c0
    7548     call 0674ah                               ; e8 f4 14
     7557    call 06772h                               ; e8 f4 14
    75497558    mov sp, bp                                ; 89 ec
    75507559    pop bp                                    ; 5d
    75517560    retn                                      ; c3
    7552 enqueue_key_:                                ; 0xf525a LB 0x9e
     7561enqueue_key_:                                ; 0xf5282 LB 0x9e
    75537562    push bp                                   ; 55
    75547563    mov bp, sp                                ; 89 e5
     
    75627571    mov dx, strict word 0001ah                ; ba 1a 00
    75637572    mov ax, strict word 00040h                ; b8 40 00
    7564     call 0166eh                               ; e8 fe c3
     7573    call 0166eh                               ; e8 d6 c3
    75657574    mov di, ax                                ; 89 c7
    75667575    mov dx, strict word 0001ch                ; ba 1c 00
    75677576    mov ax, strict word 00040h                ; b8 40 00
    7568     call 0166eh                               ; e8 f3 c3
     7577    call 0166eh                               ; e8 cb c3
    75697578    mov si, ax                                ; 89 c6
    75707579    lea cx, [si+002h]                         ; 8d 4c 02
    75717580    cmp cx, strict byte 0003eh                ; 83 f9 3e
    7572     jc short 05288h                           ; 72 03
     7581    jc short 052b0h                           ; 72 03
    75737582    mov cx, strict word 0001eh                ; b9 1e 00
    75747583    cmp cx, di                                ; 39 f9
    7575     jne short 05290h                          ; 75 04
     7584    jne short 052b8h                          ; 75 04
    75767585    xor ax, ax                                ; 31 c0
    7577     jmp short 052bah                          ; eb 2a
     7586    jmp short 052e2h                          ; eb 2a
    75787587    mov al, bl                                ; 88 d8
    75797588    xor ah, ah                                ; 30 e4
     
    75817590    mov dx, si                                ; 89 f2
    75827591    mov ax, strict word 00040h                ; b8 40 00
    7583     call 01660h                               ; e8 c2 c3
     7592    call 01660h                               ; e8 9a c3
    75847593    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    75857594    xor bh, bh                                ; 30 ff
    75867595    lea dx, [si+001h]                         ; 8d 54 01
    75877596    mov ax, strict word 00040h                ; b8 40 00
    7588     call 01660h                               ; e8 b4 c3
     7597    call 01660h                               ; e8 8c c3
    75897598    mov bx, cx                                ; 89 cb
    75907599    mov dx, strict word 0001ch                ; ba 1c 00
    75917600    mov ax, strict word 00040h                ; b8 40 00
    7592     call 0167ch                               ; e8 c5 c3
     7601    call 0167ch                               ; e8 9d c3
    75937602    mov ax, strict word 00001h                ; b8 01 00
    75947603    lea sp, [bp-008h]                         ; 8d 66 f8
     
    76007609    retn                                      ; c3
    76017610    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
     7611    db  01dh, 066h, 056h, 021h, 054h, 0c1h, 053h, 0c1h, 053h, 0b0h, 054h, 092h, 053h, 034h, 055h, 0a5h
     7612    db  055h, 04ch, 056h, 02ah, 056h, 068h, 054h, 0c1h, 053h, 0c1h, 053h, 0f2h, 054h, 0b2h, 053h, 085h
     7613    db  055h, 00ah, 056h, 045h, 056h
     7614_int09_function:                             ; 0xf5320 LB 0x4cd
    76067615    push bp                                   ; 55
    76077616    mov bp, sp                                ; 89 e5
     
    76117620    mov byte [bp-004h], al                    ; 88 46 fc
    76127621    test al, al                               ; 84 c0
    7613     jne short 05325h                          ; 75 1c
     7622    jne short 0534dh                          ; 75 1c
    76147623    mov bx, 00da0h                            ; bb a0 0d
    76157624    mov cx, ds                                ; 8c d9
    76167625    mov ax, strict word 00004h                ; b8 04 00
    7617     call 01933h                               ; e8 1f c6
     7626    call 01933h                               ; e8 f7 c5
    76187627    mov ax, 00587h                            ; b8 87 05
    76197628    push ax                                   ; 50
    76207629    mov ax, strict word 00004h                ; b8 04 00
    76217630    push ax                                   ; 50
    7622     call 01976h                               ; e8 57 c6
     7631    call 01976h                               ; e8 2f c6
    76237632    add sp, strict byte 00004h                ; 83 c4 04
    7624     jmp near 053f3h                           ; e9 ce 00
     7633    jmp near 0541bh                           ; e9 ce 00
    76257634    mov dx, strict word 00018h                ; ba 18 00
    76267635    mov ax, strict word 00040h                ; b8 40 00
    7627     call 01652h                               ; e8 24 c3
     7636    call 01652h                               ; e8 fc c2
    76287637    mov byte [bp-006h], al                    ; 88 46 fa
    76297638    mov byte [bp-008h], al                    ; 88 46 f8
    76307639    mov dx, 00096h                            ; ba 96 00
    76317640    mov ax, strict word 00040h                ; b8 40 00
    7632     call 01652h                               ; e8 15 c3
     7641    call 01652h                               ; e8 ed c2
    76337642    mov byte [bp-00ah], al                    ; 88 46 f6
    76347643    mov byte [bp-010h], al                    ; 88 46 f0
    76357644    mov dx, strict word 00017h                ; ba 17 00
    76367645    mov ax, strict word 00040h                ; b8 40 00
    7637     call 01652h                               ; e8 06 c3
     7646    call 01652h                               ; e8 de c2
    76387647    mov byte [bp-00ch], al                    ; 88 46 f4
    76397648    mov byte [bp-00eh], al                    ; 88 46 f2
     
    76427651    pop ES                                    ; 07
    76437652    mov cx, strict word 00012h                ; b9 12 00
    7644     mov di, 052c3h                            ; bf c3 52
     7653    mov di, 052ebh                            ; bf eb 52
    76457654    repne scasb                               ; f2 ae
    76467655    sal cx, 1                                 ; d1 e1
    76477656    mov di, cx                                ; 89 cf
    7648     mov ax, word [cs:di+052d4h]               ; 2e 8b 85 d4 52
     7657    mov ax, word [cs:di+052fch]               ; 2e 8b 85 fc 52
    76497658    jmp ax                                    ; ff e0
    76507659    xor byte [bp-00eh], 040h                  ; 80 76 f2 40
     
    76537662    mov dx, strict word 00017h                ; ba 17 00
    76547663    mov ax, strict word 00040h                ; b8 40 00
    7655     call 01660h                               ; e8 e4 c2
     7664    call 01660h                               ; e8 bc c2
    76567665    or byte [bp-008h], 040h                   ; 80 4e f8 40
    76577666    mov al, byte [bp-008h]                    ; 8a 46 f8
    76587667    xor ah, ah                                ; 30 e4
    76597668    mov bx, ax                                ; 89 c3
    7660     jmp near 05612h                           ; e9 88 02
     7669    jmp near 0563ah                           ; e9 88 02
    76617670    mov al, byte [bp-006h]                    ; 8a 46 fa
    76627671    and AL, strict byte 0bfh                  ; 24 bf
     
    76647673    mov bl, al                                ; 88 c3
    76657674    xor bh, bh                                ; 30 ff
    7666     jmp near 05612h                           ; e9 79 02
     7675    jmp near 0563ah                           ; e9 79 02
    76677676    test byte [bp-010h], 002h                 ; f6 46 f0 02
    7668     jne short 053d2h                          ; 75 33
     7677    jne short 053fah                          ; 75 33
    76697678    mov al, byte [bp-004h]                    ; 8a 46 fc
    76707679    and AL, strict byte 07fh                  ; 24 7f
    76717680    cmp AL, strict byte 02ah                  ; 3c 2a
    7672     jne short 053adh                          ; 75 05
     7681    jne short 053d5h                          ; 75 05
    76737682    mov bx, strict word 00002h                ; bb 02 00
    7674     jmp short 053b0h                          ; eb 03
     7683    jmp short 053d8h                          ; eb 03
    76757684    mov bx, strict word 00001h                ; bb 01 00
    76767685    test byte [bp-004h], 080h                 ; f6 46 fc 80
    7677     je short 053bfh                           ; 74 09
     7686    je short 053e7h                           ; 74 09
    76787687    mov al, bl                                ; 88 d8
    76797688    not al                                    ; f6 d0
    76807689    and byte [bp-00eh], al                    ; 20 46 f2
    7681     jmp short 053c2h                          ; eb 03
     7690    jmp short 053eah                          ; eb 03
    76827691    or byte [bp-00eh], bl                     ; 08 5e f2
    76837692    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    76867695    mov dx, strict word 00017h                ; ba 17 00
    76877696    mov ax, strict word 00040h                ; b8 40 00
    7688     call 01660h                               ; e8 8e c2
     7697    call 01660h                               ; e8 66 c2
    76897698    mov al, byte [bp-004h]                    ; 8a 46 fc
    76907699    and AL, strict byte 07fh                  ; 24 7f
    76917700    cmp AL, strict byte 01dh                  ; 3c 1d
    7692     je short 053dfh                           ; 74 04
     7701    je short 05407h                           ; 74 04
    76937702    and byte [bp-010h], 0feh                  ; 80 66 f0 fe
    76947703    and byte [bp-010h], 0fdh                  ; 80 66 f0 fd
     
    76987707    mov dx, 00096h                            ; ba 96 00
    76997708    mov ax, strict word 00040h                ; b8 40 00
    7700     call 01660h                               ; e8 6d c2
     7709    call 01660h                               ; e8 45 c2
    77017710    lea sp, [bp-002h]                         ; 8d 66 fe
    77027711    pop di                                    ; 5f
     
    77047713    retn                                      ; c3
    77057714    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    7706     jne short 053d2h                          ; 75 d3
     7715    jne short 053fah                          ; 75 d3
    77077716    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77087717    or AL, strict byte 004h                   ; 0c 04
     
    77127721    mov dx, strict word 00017h                ; ba 17 00
    77137722    mov ax, strict word 00040h                ; b8 40 00
    7714     call 01660h                               ; e8 4c c2
     7723    call 01660h                               ; e8 24 c2
    77157724    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77167725    test AL, strict byte 002h                 ; a8 02
    7717     je short 05429h                           ; 74 0e
     7726    je short 05451h                           ; 74 0e
    77187727    or AL, strict byte 004h                   ; 0c 04
    77197728    mov byte [bp-010h], al                    ; 88 46 f0
     
    77217730    mov bx, ax                                ; 89 c3
    77227731    mov dx, 00096h                            ; ba 96 00
    7723     jmp short 05438h                          ; eb 0f
     7732    jmp short 05460h                          ; eb 0f
    77247733    mov al, byte [bp-006h]                    ; 8a 46 fa
    77257734    or AL, strict byte 001h                   ; 0c 01
     
    77297738    mov dx, strict word 00018h                ; ba 18 00
    77307739    mov ax, strict word 00040h                ; b8 40 00
    7731     call 01660h                               ; e8 22 c2
    7732     jmp short 053d2h                          ; eb 92
     7740    call 01660h                               ; e8 fa c1
     7741    jmp short 053fah                          ; eb 92
    77337742    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    7734     jne short 053d2h                          ; 75 8c
     7743    jne short 053fah                          ; 75 8c
    77357744    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77367745    and AL, strict byte 0fbh                  ; 24 fb
     
    77407749    mov dx, strict word 00017h                ; ba 17 00
    77417750    mov ax, strict word 00040h                ; b8 40 00
    7742     call 01660h                               ; e8 05 c2
     7751    call 01660h                               ; e8 dd c1
    77437752    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77447753    test AL, strict byte 002h                 ; a8 02
    7745     je short 05470h                           ; 74 0e
     7754    je short 05498h                           ; 74 0e
    77467755    and AL, strict byte 0fbh                  ; 24 fb
    77477756    mov byte [bp-010h], al                    ; 88 46 f0
     
    77497758    mov bx, ax                                ; 89 c3
    77507759    mov dx, 00096h                            ; ba 96 00
    7751     jmp short 0547fh                          ; eb 0f
     7760    jmp short 054a7h                          ; eb 0f
    77527761    mov al, byte [bp-006h]                    ; 8a 46 fa
    77537762    and AL, strict byte 0feh                  ; 24 fe
     
    77577766    mov dx, strict word 00018h                ; ba 18 00
    77587767    mov ax, strict word 00040h                ; b8 40 00
    7759     call 01660h                               ; e8 db c1
    7760     jmp near 053d2h                           ; e9 4a ff
     7768    call 01660h                               ; e8 b3 c1
     7769    jmp near 053fah                           ; e9 4a ff
    77617770    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77627771    or AL, strict byte 008h                   ; 0c 08
     
    77667775    mov dx, strict word 00017h                ; ba 17 00
    77677776    mov ax, strict word 00040h                ; b8 40 00
    7768     call 01660h                               ; e8 c3 c1
     7777    call 01660h                               ; e8 9b c1
    77697778    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77707779    test AL, strict byte 002h                 ; a8 02
    7771     je short 054b2h                           ; 74 0e
     7780    je short 054dah                           ; 74 0e
    77727781    or AL, strict byte 008h                   ; 0c 08
    77737782    mov byte [bp-010h], al                    ; 88 46 f0
     
    77757784    mov bx, ax                                ; 89 c3
    77767785    mov dx, 00096h                            ; ba 96 00
    7777     jmp short 054c1h                          ; eb 0f
     7786    jmp short 054e9h                          ; eb 0f
    77787787    mov al, byte [bp-006h]                    ; 8a 46 fa
    77797788    or AL, strict byte 002h                   ; 0c 02
     
    77837792    mov dx, strict word 00018h                ; ba 18 00
    77847793    mov ax, strict word 00040h                ; b8 40 00
    7785     call 01660h                               ; e8 99 c1
    7786     jmp near 053d2h                           ; e9 08 ff
     7794    call 01660h                               ; e8 71 c1
     7795    jmp near 053fah                           ; e9 08 ff
    77877796    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77887797    and AL, strict byte 0f7h                  ; 24 f7
     
    77927801    mov dx, strict word 00017h                ; ba 17 00
    77937802    mov ax, strict word 00040h                ; b8 40 00
    7794     call 01660h                               ; e8 81 c1
     7803    call 01660h                               ; e8 59 c1
    77957804    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77967805    test AL, strict byte 002h                 ; a8 02
    7797     je short 054f4h                           ; 74 0e
     7806    je short 0551ch                           ; 74 0e
    77987807    and AL, strict byte 0f7h                  ; 24 f7
    77997808    mov byte [bp-010h], al                    ; 88 46 f0
     
    78017810    mov bx, ax                                ; 89 c3
    78027811    mov dx, 00096h                            ; ba 96 00
    7803     jmp short 05503h                          ; eb 0f
     7812    jmp short 0552bh                          ; eb 0f
    78047813    mov al, byte [bp-006h]                    ; 8a 46 fa
    78057814    and AL, strict byte 0fdh                  ; 24 fd
     
    78097818    mov dx, strict word 00018h                ; ba 18 00
    78107819    mov ax, strict word 00040h                ; b8 40 00
    7811     call 01660h                               ; e8 57 c1
    7812     jmp near 053d2h                           ; e9 c6 fe
     7820    call 01660h                               ; e8 2f c1
     7821    jmp near 053fah                           ; e9 c6 fe
    78137822    test byte [bp-00ah], 003h                 ; f6 46 f6 03
    7814     jne short 0552fh                          ; 75 1d
     7823    jne short 05557h                          ; 75 1d
    78157824    mov al, byte [bp-006h]                    ; 8a 46 fa
    78167825    or AL, strict byte 020h                   ; 0c 20
     
    78207829    mov dx, strict word 00018h                ; ba 18 00
    78217830    mov ax, strict word 00040h                ; b8 40 00
    7822     call 01660h                               ; e8 39 c1
     7831    call 01660h                               ; e8 11 c1
    78237832    mov al, byte [bp-00ch]                    ; 8a 46 f4
    78247833    xor AL, strict byte 020h                  ; 34 20
    7825     jmp near 055d0h                           ; e9 a1 00
     7834    jmp near 055f8h                           ; e9 a1 00
    78267835    mov al, byte [bp-006h]                    ; 8a 46 fa
    78277836    or AL, strict byte 008h                   ; 0c 08
     
    78317840    mov dx, strict word 00018h                ; ba 18 00
    78327841    mov ax, strict word 00040h                ; b8 40 00
    7833     call 01660h                               ; e8 1c c1
     7842    call 01660h                               ; e8 f4 c0
    78347843    mov AL, strict byte 0aeh                  ; b0 ae
    78357844    mov dx, strict word 00064h                ; ba 64 00
    78367845    out DX, AL                                ; ee
    7837     call 0e034h                               ; e8 e7 8a
     7846    call 0e034h                               ; e8 bf 8a
    78387847    mov dx, strict word 00018h                ; ba 18 00
    78397848    mov ax, strict word 00040h                ; b8 40 00
    7840     call 01652h                               ; e8 fc c0
     7849    call 01652h                               ; e8 d4 c0
    78417850    test AL, strict byte 008h                 ; a8 08
    7842     jne short 0554dh                          ; 75 f3
    7843     jmp near 053d2h                           ; e9 75 fe
     7851    jne short 05575h                          ; 75 f3
     7852    jmp near 053fah                           ; e9 75 fe
    78447853    test byte [bp-00ah], 003h                 ; f6 46 f6 03
    7845     je short 05566h                           ; 74 03
    7846     jmp near 053d2h                           ; e9 6c fe
     7854    je short 0558eh                           ; 74 03
     7855    jmp near 053fah                           ; e9 6c fe
    78477856    mov al, byte [bp-006h]                    ; 8a 46 fa
    78487857    and AL, strict byte 0dfh                  ; 24 df
     
    78527861    mov dx, strict word 00018h                ; ba 18 00
    78537862    mov ax, strict word 00040h                ; b8 40 00
    7854     call 01660h                               ; e8 e5 c0
    7855     jmp short 05563h                          ; eb e6
     7863    call 01660h                               ; e8 bd c0
     7864    jmp short 0558bh                          ; eb e6
    78567865    test byte [bp-00ah], 002h                 ; f6 46 f6 02
    7857     je short 055b6h                           ; 74 33
     7866    je short 055deh                           ; 74 33
    78587867    mov dx, strict word 0001ah                ; ba 1a 00
    78597868    mov ax, strict word 00040h                ; b8 40 00
    7860     call 0166eh                               ; e8 e2 c0
     7869    call 0166eh                               ; e8 ba c0
    78617870    mov bx, ax                                ; 89 c3
    78627871    mov dx, strict word 0001ch                ; ba 1c 00
    78637872    mov ax, strict word 00040h                ; b8 40 00
    7864     call 0167ch                               ; e8 e5 c0
     7873    call 0167ch                               ; e8 bd c0
    78657874    mov bx, 00080h                            ; bb 80 00
    78667875    mov dx, strict word 00071h                ; ba 71 00
    78677876    mov ax, strict word 00040h                ; b8 40 00
    7868     call 01660h                               ; e8 bd c0
     7877    call 01660h                               ; e8 95 c0
    78697878    mov AL, strict byte 0aeh                  ; b0 ae
    78707879    mov dx, strict word 00064h                ; ba 64 00
     
    78757884    xor dx, dx                                ; 31 d2
    78767885    xor ax, ax                                ; 31 c0
    7877     call 0525ah                               ; e8 a6 fc
    7878     jmp short 05563h                          ; eb ad
     7886    call 05282h                               ; e8 a6 fc
     7887    jmp short 0558bh                          ; eb ad
    78797888    mov al, byte [bp-006h]                    ; 8a 46 fa
    78807889    or AL, strict byte 010h                   ; 0c 10
     
    78847893    mov dx, strict word 00018h                ; ba 18 00
    78857894    mov ax, strict word 00040h                ; b8 40 00
    7886     call 01660h                               ; e8 95 c0
     7895    call 01660h                               ; e8 6d c0
    78877896    mov al, byte [bp-00ch]                    ; 8a 46 f4
    78887897    xor AL, strict byte 010h                  ; 34 10
     
    78927901    mov dx, strict word 00017h                ; ba 17 00
    78937902    mov ax, strict word 00040h                ; b8 40 00
    7894     call 01660h                               ; e8 80 c0
    7895     jmp short 05563h                          ; eb 81
     7903    call 01660h                               ; e8 58 c0
     7904    jmp short 0558bh                          ; eb 81
    78967905    test byte [bp-00ah], 002h                 ; f6 46 f6 02
    7897     je short 055ebh                           ; 74 03
    7898     jmp near 053d2h                           ; e9 e7 fd
     7906    je short 05613h                           ; 74 03
     7907    jmp near 053fah                           ; e9 e7 fd
    78997908    mov al, byte [bp-006h]                    ; 8a 46 fa
    79007909    and AL, strict byte 0efh                  ; 24 ef
     
    79047913    mov dx, strict word 00018h                ; ba 18 00
    79057914    mov ax, strict word 00040h                ; b8 40 00
    7906     call 01660h                               ; e8 60 c0
    7907     jmp short 055e8h                          ; eb e6
     7915    call 01660h                               ; e8 38 c0
     7916    jmp short 05610h                          ; eb e6
    79087917    mov al, byte [bp-006h]                    ; 8a 46 fa
    79097918    test AL, strict byte 004h                 ; a8 04
    7910     jne short 055e8h                          ; 75 df
     7919    jne short 05610h                          ; 75 df
    79117920    or AL, strict byte 004h                   ; 0c 04
    79127921    mov byte [bp-008h], al                    ; 88 46 f8
     
    79157924    mov dx, strict word 00018h                ; ba 18 00
    79167925    mov ax, strict word 00040h                ; b8 40 00
    7917     call 01660h                               ; e8 45 c0
    7918     jmp short 055e8h                          ; eb cb
     7926    call 01660h                               ; e8 1d c0
     7927    jmp short 05610h                          ; eb cb
    79197928    mov al, byte [bp-006h]                    ; 8a 46 fa
    79207929    and AL, strict byte 0fbh                  ; 24 fb
    7921     jmp short 0560bh                          ; eb e7
     7930    jmp short 05633h                          ; eb e7
    79227931    mov al, byte [bp-00ch]                    ; 8a 46 f4
    79237932    and AL, strict byte 00ch                  ; 24 0c
    79247933    cmp AL, strict byte 00ch                  ; 3c 0c
    7925     jne short 0563eh                          ; 75 11
     7934    jne short 05666h                          ; 75 11
    79267935    mov bx, 01234h                            ; bb 34 12
    79277936    mov dx, strict word 00072h                ; ba 72 00
    79287937    mov ax, strict word 00040h                ; b8 40 00
    7929     call 0167ch                               ; e8 43 c0
     7938    call 0167ch                               ; e8 1b c0
    79307939    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    79317940    test byte [bp-008h], 008h                 ; f6 46 f8 08
    7932     je short 05655h                           ; 74 11
     7941    je short 0567dh                           ; 74 11
    79337942    and byte [bp-008h], 0f7h                  ; 80 66 f8 f7
    79347943    mov al, byte [bp-008h]                    ; 8a 46 f8
     
    79367945    mov bx, ax                                ; 89 c3
    79377946    mov dx, strict word 00018h                ; ba 18 00
    7938     jmp near 053edh                           ; e9 98 fd
     7947    jmp near 05415h                           ; e9 98 fd
    79397948    mov al, byte [bp-004h]                    ; 8a 46 fc
    79407949    test AL, strict byte 080h                 ; a8 80
    7941     je short 05693h                           ; 74 37
     7950    je short 056bbh                           ; 74 37
    79427951    cmp AL, strict byte 0fah                  ; 3c fa
    7943     jne short 05672h                          ; 75 12
     7952    jne short 0569ah                          ; 75 12
    79447953    mov dx, 00097h                            ; ba 97 00
    79457954    mov ax, strict word 00040h                ; b8 40 00
    7946     call 01652h                               ; e8 e9 bf
     7955    call 01652h                               ; e8 c1 bf
    79477956    mov bl, al                                ; 88 c3
    79487957    or bl, 010h                               ; 80 cb 10
    79497958    xor bh, bh                                ; 30 ff
    7950     jmp short 05688h                          ; eb 16
     7959    jmp short 056b0h                          ; eb 16
    79517960    cmp AL, strict byte 0feh                  ; 3c fe
    7952     je short 05679h                           ; 74 03
    7953     jmp near 053d2h                           ; e9 59 fd
     7961    je short 056a1h                           ; 74 03
     7962    jmp near 053fah                           ; e9 59 fd
    79547963    mov dx, 00097h                            ; ba 97 00
    79557964    mov ax, strict word 00040h                ; b8 40 00
    7956     call 01652h                               ; e8 d0 bf
     7965    call 01652h                               ; e8 a8 bf
    79577966    or AL, strict byte 020h                   ; 0c 20
    79587967    xor ah, ah                                ; 30 e4
     
    79607969    mov dx, 00097h                            ; ba 97 00
    79617970    mov ax, strict word 00040h                ; b8 40 00
    7962     call 01660h                               ; e8 cf bf
    7963     jmp short 05676h                          ; eb e3
     7971    call 01660h                               ; e8 a7 bf
     7972    jmp short 0569eh                          ; eb e3
    79647973    cmp byte [bp-004h], 058h                  ; 80 7e fc 58
    7965     jbe short 056bbh                          ; 76 22
     7974    jbe short 056e3h                          ; 76 22
    79667975    mov bx, 00da0h                            ; bb a0 0d
    79677976    mov cx, ds                                ; 8c d9
    79687977    mov ax, strict word 00004h                ; b8 04 00
    7969     call 01933h                               ; e8 8f c2
     7978    call 01933h                               ; e8 67 c2
    79707979    mov al, byte [bp-004h]                    ; 8a 46 fc
    79717980    xor ah, ah                                ; 30 e4
     
    79757984    mov ax, strict word 00004h                ; b8 04 00
    79767985    push ax                                   ; 50
    7977     call 01976h                               ; e8 c1 c2
     7986    call 01976h                               ; e8 99 c2
    79787987    add sp, strict byte 00006h                ; 83 c4 06
    7979     jmp near 053f3h                           ; e9 38 fd
     7988    jmp near 0541bh                           ; e9 38 fd
    79807989    mov al, byte [bp-00eh]                    ; 8a 46 f2
    79817990    test AL, strict byte 008h                 ; a8 08
    7982     je short 056dch                           ; 74 1a
     7991    je short 05704h                           ; 74 1a
    79837992    mov al, byte [bp-004h]                    ; 8a 46 fc
    79847993    xor ah, ah                                ; 30 e4
     
    79897998    mov byte [bp-012h], al                    ; 88 46 ee
    79907999    mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
    7991     jmp near 0578eh                           ; e9 b2 00
     8000    jmp near 057b6h                           ; e9 b2 00
    79928001    test AL, strict byte 004h                 ; a8 04
    7993     je short 056fah                           ; 74 1a
     8002    je short 05722h                           ; 74 1a
    79948003    mov al, byte [bp-004h]                    ; 8a 46 fc
    79958004    xor ah, ah                                ; 30 e4
     
    80008009    mov byte [bp-012h], al                    ; 88 46 ee
    80018010    mov al, byte [bx+00df3h]                  ; 8a 87 f3 0d
    8002     jmp near 0578eh                           ; e9 94 00
     8011    jmp near 057b6h                           ; e9 94 00
    80038012    mov al, byte [bp-010h]                    ; 8a 46 f0
    80048013    and AL, strict byte 002h                  ; 24 02
    80058014    test al, al                               ; 84 c0
    8006     jbe short 0571dh                          ; 76 1a
     8015    jbe short 05745h                          ; 76 1a
    80078016    mov al, byte [bp-004h]                    ; 8a 46 fc
    80088017    cmp AL, strict byte 047h                  ; 3c 47
    8009     jc short 0571dh                           ; 72 13
     8018    jc short 05745h                           ; 72 13
    80108019    cmp AL, strict byte 053h                  ; 3c 53
    8011     jnbe short 0571dh                         ; 77 0f
     8020    jnbe short 05745h                         ; 77 0f
    80128021    mov byte [bp-012h], 0e0h                  ; c6 46 ee e0
    80138022    xor ah, ah                                ; 30 e4
     
    80158024    imul dx                                   ; f7 ea
    80168025    mov bx, ax                                ; 89 c3
    8017     jmp short 0578ah                          ; eb 6d
     8026    jmp short 057b2h                          ; eb 6d
    80188027    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    8019     je short 0575bh                           ; 74 38
     8028    je short 05783h                           ; 74 38
    80208029    mov al, byte [bp-004h]                    ; 8a 46 fc
    80218030    xor ah, ah                                ; 30 e4
     
    80288037    mov al, byte [bp-00eh]                    ; 8a 46 f2
    80298038    test ax, dx                               ; 85 d0
    8030     je short 0574bh                           ; 74 0d
     8039    je short 05773h                           ; 74 0d
    80318040    mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
    80328041    mov byte [bp-012h], al                    ; 88 46 ee
    80338042    mov al, byte [bx+00defh]                  ; 8a 87 ef 0d
    8034     jmp short 05756h                          ; eb 0b
     8043    jmp short 0577eh                          ; eb 0b
    80358044    mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
    80368045    mov byte [bp-012h], al                    ; 88 46 ee
    80378046    mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
    80388047    mov byte [bp-004h], al                    ; 88 46 fc
    8039     jmp short 05791h                          ; eb 36
     8048    jmp short 057b9h                          ; eb 36
    80408049    mov al, byte [bp-004h]                    ; 8a 46 fc
    80418050    xor ah, ah                                ; 30 e4
     
    80488057    mov al, byte [bp-00eh]                    ; 8a 46 f2
    80498058    test ax, dx                               ; 85 d0
    8050     je short 05783h                           ; 74 0d
     8059    je short 057abh                           ; 74 0d
    80518060    mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
    80528061    mov byte [bp-012h], al                    ; 88 46 ee
    80538062    mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
    8054     jmp short 0578eh                          ; eb 0b
     8063    jmp short 057b6h                          ; eb 0b
    80558064    mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
    80568065    mov byte [bp-012h], al                    ; 88 46 ee
     
    80588067    mov byte [bp-004h], al                    ; 88 46 fc
    80598068    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    8060     jne short 057b6h                          ; 75 1f
     8069    jne short 057deh                          ; 75 1f
    80618070    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    8062     jne short 057b6h                          ; 75 19
     8071    jne short 057deh                          ; 75 19
    80638072    mov bx, 00da0h                            ; bb a0 0d
    80648073    mov cx, ds                                ; 8c d9
    80658074    mov ax, strict word 00004h                ; b8 04 00
    8066     call 01933h                               ; e8 8b c1
     8075    call 01933h                               ; e8 63 c1
    80678076    mov ax, 005d8h                            ; b8 d8 05
    80688077    push ax                                   ; 50
    80698078    mov ax, strict word 00004h                ; b8 04 00
    80708079    push ax                                   ; 50
    8071     call 01976h                               ; e8 c3 c1
     8080    call 01976h                               ; e8 9b c1
    80728081    add sp, strict byte 00004h                ; 83 c4 04
    80738082    mov bl, byte [bp-012h]                    ; 8a 5e ee
     
    80768085    xor ah, ah                                ; 30 e4
    80778086    mov dx, bx                                ; 89 da
    8078     jmp near 055b1h                           ; e9 ec fd
    8079 dequeue_key_:                                ; 0xf57c5 LB 0x94
     8087    jmp near 055d9h                           ; e9 ec fd
     8088dequeue_key_:                                ; 0xf57ed LB 0x94
    80808089    push bp                                   ; 55
    80818090    mov bp, sp                                ; 89 e5
     
    80908099    mov dx, strict word 0001ah                ; ba 1a 00
    80918100    mov ax, strict word 00040h                ; b8 40 00
    8092     call 0166eh                               ; e8 8f be
     8101    call 0166eh                               ; e8 67 be
    80938102    mov bx, ax                                ; 89 c3
    80948103    mov dx, strict word 0001ch                ; ba 1c 00
    80958104    mov ax, strict word 00040h                ; b8 40 00
    8096     call 0166eh                               ; e8 84 be
     8105    call 0166eh                               ; e8 5c be
    80978106    cmp bx, ax                                ; 39 c3
    8098     je short 0582bh                           ; 74 3d
     8107    je short 05853h                           ; 74 3d
    80998108    mov dx, bx                                ; 89 da
    81008109    mov ax, strict word 00040h                ; b8 40 00
    8101     call 01652h                               ; e8 5c be
     8110    call 01652h                               ; e8 34 be
    81028111    mov cl, al                                ; 88 c1
    81038112    lea dx, [bx+001h]                         ; 8d 57 01
    81048113    mov ax, strict word 00040h                ; b8 40 00
    8105     call 01652h                               ; e8 51 be
     8114    call 01652h                               ; e8 29 be
    81068115    mov es, [bp-008h]                         ; 8e 46 f8
    81078116    mov byte [es:si], cl                      ; 26 88 0c
     
    81098118    mov byte [es:di], al                      ; 26 88 05
    81108119    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    8111     je short 05826h                           ; 74 13
     8120    je short 0584eh                           ; 74 13
    81128121    inc bx                                    ; 43
    81138122    inc bx                                    ; 43
    81148123    cmp bx, strict byte 0003eh                ; 83 fb 3e
    8115     jc short 0581dh                           ; 72 03
     8124    jc short 05845h                           ; 72 03
    81168125    mov bx, strict word 0001eh                ; bb 1e 00
    81178126    mov dx, strict word 0001ah                ; ba 1a 00
    81188127    mov ax, strict word 00040h                ; b8 40 00
    8119     call 0167ch                               ; e8 56 be
     8128    call 0167ch                               ; e8 2e be
    81208129    mov ax, strict word 00001h                ; b8 01 00
    8121     jmp short 0582dh                          ; eb 02
     8130    jmp short 05855h                          ; eb 02
    81228131    xor ax, ax                                ; 31 c0
    81238132    lea sp, [bp-004h]                         ; 8d 66 fc
     
    81308139    or cl, byte [bx+di]                       ; 0a 09
    81318140    add ax, 00102h                            ; 05 02 01
    8132     add byte [bx+059h], bl                    ; 00 5f 59
    8133     sbb bl, byte [bx+di-051h]                 ; 1a 59 af
     8141    add byte [bx+04259h], al                  ; 00 87 59 42
    81348142    pop cx                                    ; 59
    8135     db  0f3h, 059h
    8136     ; rep pop cx                                ; f3 59
    8137     push ES                                   ; 06
     8143    xlatb                                     ; d7
     8144    pop cx                                    ; 59
     8145    sbb bx, word [bp+si+02eh]                 ; 1b 5a 2e
    81388146    pop dx                                    ; 5a
    8139     sub ax, 0375ah                            ; 2d 5a 37
     8147    push bp                                   ; 55
    81408148    pop dx                                    ; 5a
    8141     cmpsb                                     ; a6
     8149    pop di                                    ; 5f
    81428150    pop dx                                    ; 5a
    8143     fstp qword [bp+si+00dh]                   ; dd 5a 0d
     8151    into                                      ; ce
     8152    pop dx                                    ; 5a
     8153    add ax, 0355bh                            ; 05 5b 35
    81448154    pop bx                                    ; 5b
    8145     inc sp                                    ; 44
     8155    insb                                      ; 6c
    81468156    pop bx                                    ; 5b
    8147     db  0a9h
     8157    db  0d1h
    81488158    pop cx                                    ; 59
    8149 _int16_function:                             ; 0xf5859 LB 0x2f6
     8159_int16_function:                             ; 0xf5881 LB 0x2f6
    81508160    push bp                                   ; 55
    81518161    mov bp, sp                                ; 89 e5
     
    81548164    mov dx, strict word 00017h                ; ba 17 00
    81558165    mov ax, strict word 00040h                ; b8 40 00
    8156     call 01652h                               ; e8 e9 bd
     8166    call 01652h                               ; e8 c1 bd
    81578167    mov cl, al                                ; 88 c1
    81588168    mov bh, al                                ; 88 c7
    81598169    mov dx, 00097h                            ; ba 97 00
    81608170    mov ax, strict word 00040h                ; b8 40 00
    8161     call 01652h                               ; e8 dc bd
     8171    call 01652h                               ; e8 b4 bd
    81628172    mov bl, al                                ; 88 c3
    81638173    mov dl, cl                                ; 88 ca
     
    81708180    xor al, dl                                ; 30 d0
    81718181    test ax, ax                               ; 85 c0
    8172     je short 058f9h                           ; 74 6c
     8182    je short 05921h                           ; 74 6c
    81738183    cli                                       ; fa
    81748184    mov AL, strict byte 0edh                  ; b0 ed
     
    81808190    ; sub ah, ah                                ; 2a e4
    81818191    test AL, strict byte 001h                 ; a8 01
    8182     jne short 058a6h                          ; 75 08
     8192    jne short 058ceh                          ; 75 08
    81838193    mov AL, strict byte 021h                  ; b0 21
    81848194    mov dx, 00080h                            ; ba 80 00
    81858195    out DX, AL                                ; ee
    8186     jmp short 05894h                          ; eb ee
     8196    jmp short 058bch                          ; eb ee
    81878197    mov dx, strict word 00060h                ; ba 60 00
    81888198    in AL, DX                                 ; ec
     
    81908200    ; sub ah, ah                                ; 2a e4
    81918201    cmp ax, 000fah                            ; 3d fa 00
    8192     jne short 058f8h                          ; 75 47
     8202    jne short 05920h                          ; 75 47
    81938203    and bl, 0c8h                              ; 80 e3 c8
    81948204    mov al, bh                                ; 88 f8
     
    82138223    ; sub ah, ah                                ; 2a e4
    82148224    test AL, strict byte 001h                 ; a8 01
    8215     jne short 058e7h                          ; 75 08
     8225    jne short 0590fh                          ; 75 08
    82168226    mov AL, strict byte 021h                  ; b0 21
    82178227    mov dx, 00080h                            ; ba 80 00
    82188228    out DX, AL                                ; ee
    8219     jmp short 058d5h                          ; eb ee
     8229    jmp short 058fdh                          ; eb ee
    82208230    mov dx, strict word 00060h                ; ba 60 00
    82218231    in AL, DX                                 ; ec
     
    82258235    mov dx, 00097h                            ; ba 97 00
    82268236    mov ax, strict word 00040h                ; b8 40 00
    8227     call 01660h                               ; e8 68 bd
     8237    call 01660h                               ; e8 40 bd
    82288238    sti                                       ; fb
    82298239    mov CL, strict byte 008h                  ; b1 08
     
    82318241    shr ax, CL                                ; d3 e8
    82328242    cmp ax, 000a2h                            ; 3d a2 00
    8233     jnbe short 0595fh                         ; 77 5a
     8243    jnbe short 05987h                         ; 77 5a
    82348244    push CS                                   ; 0e
    82358245    pop ES                                    ; 07
    82368246    mov cx, strict word 0000ch                ; b9 0c 00
    8237     mov di, 05836h                            ; bf 36 58
     8247    mov di, 0585eh                            ; bf 5e 58
    82388248    repne scasb                               ; f2 ae
    82398249    sal cx, 1                                 ; d1 e1
    82408250    mov di, cx                                ; 89 cf
    8241     mov ax, word [cs:di+05841h]               ; 2e 8b 85 41 58
     8251    mov ax, word [cs:di+05869h]               ; 2e 8b 85 69 58
    82428252    jmp ax                                    ; ff e0
    82438253    mov ax, strict word 00001h                ; b8 01 00
     
    82478257    mov dx, ss                                ; 8c d2
    82488258    lea ax, [bp-008h]                         ; 8d 46 f8
    8249     call 057c5h                               ; e8 9a fe
     8259    call 057edh                               ; e8 9a fe
    82508260    test ax, ax                               ; 85 c0
    8251     jne short 0593dh                          ; 75 0e
     8261    jne short 05965h                          ; 75 0e
    82528262    mov ax, 0060fh                            ; b8 0f 06
    82538263    push ax                                   ; 50
    82548264    mov ax, strict word 00007h                ; b8 07 00
    82558265    push ax                                   ; 50
    8256     call 01976h                               ; e8 3c c0
     8266    call 01976h                               ; e8 14 c0
    82578267    add sp, strict byte 00004h                ; 83 c4 04
    82588268    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    8259     je short 05949h                           ; 74 06
     8269    je short 05971h                           ; 74 06
    82608270    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    8261     je short 0594fh                           ; 74 06
     8271    je short 05977h                           ; 74 06
    82628272    cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
    8263     jne short 05953h                          ; 75 04
     8273    jne short 0597bh                          ; 75 04
    82648274    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    82658275    mov ah, byte [bp-008h]                    ; 8a 66 f8
    82668276    mov al, byte [bp-006h]                    ; 8a 46 fa
    82678277    mov word [bp+012h], ax                    ; 89 46 12
    8268     jmp near 059a9h                           ; e9 4a 00
     8278    jmp near 059d1h                           ; e9 4a 00
    82698279    mov bx, 00da0h                            ; bb a0 0d
    82708280    mov cx, ds                                ; 8c d9
    82718281    mov ax, strict word 00004h                ; b8 04 00
    8272     call 01933h                               ; e8 c9 bf
     8282    call 01933h                               ; e8 a1 bf
    82738283    mov CL, strict byte 008h                  ; b1 08
    82748284    mov ax, word [bp+012h]                    ; 8b 46 12
     
    82798289    mov ax, strict word 00004h                ; b8 04 00
    82808290    push ax                                   ; 50
    8281     call 01976h                               ; e8 f9 bf
     8291    call 01976h                               ; e8 d1 bf
    82828292    add sp, strict byte 00006h                ; 83 c4 06
    82838293    mov bx, 00da0h                            ; bb a0 0d
    82848294    mov cx, ds                                ; 8c d9
    82858295    mov ax, strict word 00004h                ; b8 04 00
    8286     call 01933h                               ; e8 a8 bf
     8296    call 01933h                               ; e8 80 bf
    82878297    mov ax, word [bp+00eh]                    ; 8b 46 0e
    82888298    push ax                                   ; 50
     
    82978307    mov ax, strict word 00004h                ; b8 04 00
    82988308    push ax                                   ; 50
    8299     call 01976h                               ; e8 d0 bf
     8309    call 01976h                               ; e8 a8 bf
    83008310    add sp, strict byte 0000ch                ; 83 c4 0c
    83018311    lea sp, [bp-002h]                         ; 8d 66 fe
     
    83108320    mov dx, ss                                ; 8c d2
    83118321    lea ax, [bp-008h]                         ; 8d 46 f8
    8312     call 057c5h                               ; e8 01 fe
     8322    call 057edh                               ; e8 01 fe
    83138323    test ax, ax                               ; 85 c0
    8314     jne short 059ceh                          ; 75 06
     8324    jne short 059f6h                          ; 75 06
    83158325    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
    8316     jmp short 059a9h                          ; eb db
     8326    jmp short 059d1h                          ; eb db
    83178327    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    8318     je short 059dah                           ; 74 06
     8328    je short 05a02h                           ; 74 06
    83198329    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    8320     je short 059e0h                           ; 74 06
     8330    je short 05a08h                           ; 74 06
    83218331    cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
    8322     jne short 059e4h                          ; 75 04
     8332    jne short 05a0ch                          ; 75 04
    83238333    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    83248334    mov dh, byte [bp-008h]                    ; 8a 76 f8
     
    83268336    mov word [bp+012h], dx                    ; 89 56 12
    83278337    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
    8328     jmp short 059a9h                          ; eb b6
     8338    jmp short 059d1h                          ; eb b6
    83298339    mov dx, strict word 00017h                ; ba 17 00
    83308340    mov ax, strict word 00040h                ; b8 40 00
    8331     call 01652h                               ; e8 56 bc
     8341    call 01652h                               ; e8 2e bc
    83328342    mov dx, word [bp+012h]                    ; 8b 56 12
    83338343    mov dl, al                                ; 88 c2
    83348344    mov word [bp+012h], dx                    ; 89 56 12
    8335     jmp short 059a9h                          ; eb a3
     8345    jmp short 059d1h                          ; eb a3
    83368346    mov dl, byte [bp+010h]                    ; 8a 56 10
    83378347    xor dh, dh                                ; 30 f6
     
    83408350    shr ax, CL                                ; d3 e8
    83418351    xor ah, ah                                ; 30 e4
    8342     call 0525ah                               ; e8 43 f8
     8352    call 05282h                               ; e8 43 f8
    83438353    test ax, ax                               ; 85 c0
    8344     jne short 05a25h                          ; 75 0a
     8354    jne short 05a4dh                          ; 75 0a
    83458355    mov ax, word [bp+012h]                    ; 8b 46 12
    83468356    xor al, al                                ; 30 c0
    83478357    or AL, strict byte 001h                   ; 0c 01
    8348     jmp near 05959h                           ; e9 34 ff
     8358    jmp near 05981h                           ; e9 34 ff
    83498359    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    8350     jmp near 059a9h                           ; e9 7c ff
     8360    jmp near 059d1h                           ; e9 7c ff
    83518361    mov ax, word [bp+012h]                    ; 8b 46 12
    83528362    xor al, al                                ; 30 c0
    83538363    or AL, strict byte 030h                   ; 0c 30
    8354     jmp near 05959h                           ; e9 22 ff
     8364    jmp near 05981h                           ; e9 22 ff
    83558365    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    83568366    xor cx, cx                                ; 31 c9
     
    83658375    ; sub ah, ah                                ; 2a e4
    83668376    test AL, strict byte 001h                 ; a8 01
    8367     jne short 05a5eh                          ; 75 0d
     8377    jne short 05a86h                          ; 75 0d
    83688378    dec bx                                    ; 4b
    83698379    test bx, bx                               ; 85 db
    8370     jbe short 05a5eh                          ; 76 08
     8380    jbe short 05a86h                          ; 76 08
    83718381    mov dx, 00080h                            ; ba 80 00
    83728382    in AL, DX                                 ; ec
    83738383    db  02ah, 0e4h
    83748384    ; sub ah, ah                                ; 2a e4
    8375     jmp short 05a47h                          ; eb e9
     8385    jmp short 05a6fh                          ; eb e9
    83768386    test bx, bx                               ; 85 db
    8377     jbe short 05aa0h                          ; 76 3e
     8387    jbe short 05ac8h                          ; 76 3e
    83788388    mov dx, strict word 00060h                ; ba 60 00
    83798389    in AL, DX                                 ; ec
     
    83818391    ; sub ah, ah                                ; 2a e4
    83828392    cmp ax, 000fah                            ; 3d fa 00
    8383     jne short 05aa0h                          ; 75 33
     8393    jne short 05ac8h                          ; 75 33
    83848394    mov bx, strict word 0ffffh                ; bb ff ff
    83858395    mov dx, strict word 00064h                ; ba 64 00
     
    83888398    ; sub ah, ah                                ; 2a e4
    83898399    test AL, strict byte 001h                 ; a8 01
    8390     jne short 05a87h                          ; 75 0d
     8400    jne short 05aafh                          ; 75 0d
    83918401    dec bx                                    ; 4b
    83928402    test bx, bx                               ; 85 db
    8393     jbe short 05a87h                          ; 76 08
     8403    jbe short 05aafh                          ; 76 08
    83948404    mov dx, 00080h                            ; ba 80 00
    83958405    in AL, DX                                 ; ec
    83968406    db  02ah, 0e4h
    83978407    ; sub ah, ah                                ; 2a e4
    8398     jmp short 05a70h                          ; eb e9
     8408    jmp short 05a98h                          ; eb e9
    83998409    test bx, bx                               ; 85 db
    8400     jbe short 05a97h                          ; 76 0c
     8410    jbe short 05abfh                          ; 76 0c
    84018411    mov bl, ch                                ; 88 eb
    84028412    mov dx, strict word 00060h                ; ba 60 00
     
    84088418    dec byte [bp-004h]                        ; fe 4e fc
    84098419    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    8410     jnbe short 05a6dh                         ; 77 cd
     8420    jnbe short 05a95h                         ; 77 cd
    84118421    mov word [bp+00ch], cx                    ; 89 4e 0c
    8412     jmp near 059a9h                           ; e9 03 ff
     8422    jmp near 059d1h                           ; e9 03 ff
    84138423    mov ax, strict word 00001h                ; b8 01 00
    84148424    push ax                                   ; 50
     
    84178427    mov dx, ss                                ; 8c d2
    84188428    lea ax, [bp-008h]                         ; 8d 46 f8
    8419     call 057c5h                               ; e8 0e fd
     8429    call 057edh                               ; e8 0e fd
    84208430    test ax, ax                               ; 85 c0
    8421     jne short 05ac9h                          ; 75 0e
     8431    jne short 05af1h                          ; 75 0e
    84228432    mov ax, 0060fh                            ; b8 0f 06
    84238433    push ax                                   ; 50
    84248434    mov ax, strict word 00007h                ; b8 07 00
    84258435    push ax                                   ; 50
    8426     call 01976h                               ; e8 b0 be
     8436    call 01976h                               ; e8 88 be
    84278437    add sp, strict byte 00004h                ; 83 c4 04
    84288438    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    8429     jne short 05ad2h                          ; 75 03
    8430     jmp near 05953h                           ; e9 81 fe
     8439    jne short 05afah                          ; 75 03
     8440    jmp near 0597bh                           ; e9 81 fe
    84318441    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    8432     jne short 05adbh                          ; 75 03
    8433     jmp near 0594fh                           ; e9 74 fe
    8434     jmp short 05acfh                          ; eb f2
     8442    jne short 05b03h                          ; 75 03
     8443    jmp near 05977h                           ; e9 74 fe
     8444    jmp short 05af7h                          ; eb f2
    84358445    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    84368446    xor ax, ax                                ; 31 c0
     
    84408450    mov dx, ss                                ; 8c d2
    84418451    lea ax, [bp-008h]                         ; 8d 46 f8
    8442     call 057c5h                               ; e8 d3 fc
     8452    call 057edh                               ; e8 d3 fc
    84438453    test ax, ax                               ; 85 c0
    8444     jne short 05af9h                          ; 75 03
    8445     jmp near 059c8h                           ; e9 cf fe
     8454    jne short 05b21h                          ; 75 03
     8455    jmp near 059f0h                           ; e9 cf fe
    84468456    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    8447     jne short 05b02h                          ; 75 03
    8448     jmp near 059e4h                           ; e9 e2 fe
     8457    jne short 05b2ah                          ; 75 03
     8458    jmp near 05a0ch                           ; e9 e2 fe
    84498459    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    8450     jne short 05b0bh                          ; 75 03
    8451     jmp near 059e0h                           ; e9 d5 fe
    8452     jmp short 05affh                          ; eb f2
     8460    jne short 05b33h                          ; 75 03
     8461    jmp near 05a08h                           ; e9 d5 fe
     8462    jmp short 05b27h                          ; eb f2
    84538463    mov dx, strict word 00017h                ; ba 17 00
    84548464    mov ax, strict word 00040h                ; b8 40 00
    8455     call 01652h                               ; e8 3c bb
     8465    call 01652h                               ; e8 14 bb
    84568466    mov dx, word [bp+012h]                    ; 8b 56 12
    84578467    mov dl, al                                ; 88 c2
     
    84598469    mov dx, strict word 00018h                ; ba 18 00
    84608470    mov ax, strict word 00040h                ; b8 40 00
    8461     call 01652h                               ; e8 2b bb
     8471    call 01652h                               ; e8 03 bb
    84628472    mov bh, al                                ; 88 c7
    84638473    and bh, 073h                              ; 80 e7 73
    84648474    mov dx, 00096h                            ; ba 96 00
    84658475    mov ax, strict word 00040h                ; b8 40 00
    8466     call 01652h                               ; e8 1d bb
     8476    call 01652h                               ; e8 f5 ba
    84678477    mov ah, al                                ; 88 c4
    84688478    and ah, 00ch                              ; 80 e4 0c
     
    84708480    mov dx, word [bp+012h]                    ; 8b 56 12
    84718481    mov dh, ah                                ; 88 e6
    8472     jmp near 05a01h                           ; e9 bd fe
     8482    jmp near 05a29h                           ; e9 bd fe
    84738483    mov ax, word [bp+012h]                    ; 8b 46 12
    84748484    xor ah, ah                                ; 30 e4
    84758485    or ah, 080h                               ; 80 cc 80
    8476     jmp near 05959h                           ; e9 0a fe
    8477 set_geom_lba_:                               ; 0xf5b4f LB 0xeb
     8486    jmp near 05981h                           ; e9 0a fe
     8487set_geom_lba_:                               ; 0xf5b77 LB 0xeb
    84788488    push bx                                   ; 53
    84798489    push cx                                   ; 51
     
    84938503    mov dx, word [bp+00ch]                    ; 8b 56 0c
    84948504    mov si, strict word 00020h                ; be 20 00
    8495     call 0a0b0h                               ; e8 32 45
     8505    call 0a0e0h                               ; e8 3a 45
    84968506    test ax, ax                               ; 85 c0
    8497     jne short 05b8eh                          ; 75 0c
     8507    jne short 05bb6h                          ; 75 0c
    84988508    test bx, bx                               ; 85 db
    8499     jne short 05b8eh                          ; 75 08
     8509    jne short 05bb6h                          ; 75 08
    85008510    test cx, cx                               ; 85 c9
    8501     jne short 05b8eh                          ; 75 04
     8511    jne short 05bb6h                          ; 75 04
    85028512    test dx, dx                               ; 85 d2
    8503     je short 05b95h                           ; 74 07
     8513    je short 05bbdh                           ; 74 07
    85048514    mov bx, strict word 0ffffh                ; bb ff ff
    85058515    mov si, bx                                ; 89 de
    8506     jmp short 05b9bh                          ; eb 06
     8516    jmp short 05bc3h                          ; eb 06
    85078517    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    85088518    mov si, word [bp+00eh]                    ; 8b 76 0e
    85098519    mov word [bp-004h], bx                    ; 89 5e fc
    85108520    xor bx, bx                                ; 31 db
    8511     jmp short 05ba7h                          ; eb 05
     8521    jmp short 05bcfh                          ; eb 05
    85128522    cmp bx, strict byte 00004h                ; 83 fb 04
    8513     jnl short 05bcah                          ; 7d 23
     8523    jnl short 05bf2h                          ; 7d 23
    85148524    mov ax, word [bp-006h]                    ; 8b 46 fa
    85158525    cmp si, ax                                ; 39 c6
    8516     jc short 05bb8h                           ; 72 0a
    8517     jne short 05bc1h                          ; 75 11
     8526    jc short 05be0h                           ; 72 0a
     8527    jne short 05be9h                          ; 75 11
    85188528    mov ax, word [bp-004h]                    ; 8b 46 fc
    85198529    cmp ax, word [bp-008h]                    ; 3b 46 f8
    8520     jnbe short 05bc1h                         ; 77 09
     8530    jnbe short 05be9h                         ; 77 09
    85218531    mov ax, word [bp-002h]                    ; 8b 46 fe
    85228532    inc ax                                    ; 40
     
    85268536    rcr word [bp-008h], 1                     ; d1 5e f8
    85278537    inc bx                                    ; 43
    8528     jmp short 05ba2h                          ; eb d8
     8538    jmp short 05bcah                          ; eb d8
    85298539    mov ax, word [bp-002h]                    ; 8b 46 fe
    85308540    xor dx, dx                                ; 31 d2
    85318541    mov bx, strict word 0003fh                ; bb 3f 00
    85328542    xor cx, cx                                ; 31 c9
    8533     call 0a060h                               ; e8 89 44
     8543    call 0a090h                               ; e8 91 44
    85348544    mov bx, ax                                ; 89 c3
    85358545    mov cx, dx                                ; 89 d1
    85368546    mov ax, word [bp-004h]                    ; 8b 46 fc
    85378547    mov dx, si                                ; 89 f2
    8538     call 0a080h                               ; e8 9d 44
     8548    call 0a0b0h                               ; e8 a5 44
    85398549    mov word [es:di+002h], ax                 ; 26 89 45 02
    85408550    cmp ax, 00400h                            ; 3d 00 04
    8541     jbe short 05bf2h                          ; 76 06
     8551    jbe short 05c1ah                          ; 76 06
    85428552    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
    85438553    mov ax, word [bp-002h]                    ; 8b 46 fe
     
    85518561    pop bx                                    ; 5b
    85528562    retn 00008h                               ; c2 08 00
    8553     retn 0d35ch                               ; c2 5c d3
    8554     pop sp                                    ; 5c
    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
     8563    jmp far 0235ch:0fb5ch                     ; ea 5c fb 5c 23
     8564    pop bp                                    ; 5d
     8565    and bx, word [di+023h]                    ; 23 5d 23
     8566    pop bp                                    ; 5d
     8567    adc word [bx+04dh], bx                    ; 11 5f 4d
    85628568    pushaw                                    ; 60
    8563     and ax, 01960h                            ; 25 60 19
     8569    dec bp                                    ; 4d
     8570    pushaw                                    ; 60
     8571    inc cx                                    ; 41
    85648572    pop di                                    ; 5f
    8565     call far [bx+025h]                        ; ff 5f 25
     8573    daa                                       ; 27
    85668574    pushaw                                    ; 60
    8567     and ax, 0ff60h                            ; 25 60 ff
     8575    dec bp                                    ; 4d
     8576    pushaw                                    ; 60
     8577    dec bp                                    ; 4d
     8578    pushaw                                    ; 60
     8579    daa                                       ; 27
     8580    pushaw                                    ; 60
     8581    daa                                       ; 27
     8582    pushaw                                    ; 60
     8583    dec bp                                    ; 4d
     8584    pushaw                                    ; 60
     8585    dec bp                                    ; 4d
     8586    pushaw                                    ; 60
     8587    cmpsw                                     ; a7
    85688588    pop di                                    ; 5f
    8569     call far [bx+025h]                        ; ff 5f 25
     8589    daa                                       ; 27
    85708590    pushaw                                    ; 60
    8571     and ax, 07f60h                            ; 25 60 7f
    8572     pop di                                    ; 5f
    8573     call far [bx+025h]                        ; ff 5f 25
     8591    dec bp                                    ; 4d
    85748592    pushaw                                    ; 60
    8575     and ax, 0ff60h                            ; 25 60 ff
    8576     pop di                                    ; 5f
    8577     mov AL, strict byte 05fh                  ; b0 5f
    8578     and ax, 02560h                            ; 25 60 25
     8593    dec bp                                    ; 4d
    85798594    pushaw                                    ; 60
    8580     db  025h
     8595    daa                                       ; 27
    85818596    pushaw                                    ; 60
    8582 _int13_harddisk:                             ; 0xf5c3a LB 0x446
     8597    fcomp dword [bx+04dh]                     ; d8 5f 4d
     8598    pushaw                                    ; 60
     8599    dec bp                                    ; 4d
     8600    pushaw                                    ; 60
     8601    dec bp                                    ; 4d
     8602    pushaw                                    ; 60
     8603_int13_harddisk:                             ; 0xf5c62 LB 0x446
    85838604    push bp                                   ; 55
    85848605    mov bp, sp                                ; 89 e5
     
    85868607    mov dx, strict word 0000eh                ; ba 0e 00
    85878608    mov ax, strict word 00040h                ; b8 40 00
    8588     call 0166eh                               ; e8 25 ba
     8609    call 0166eh                               ; e8 fd b9
    85898610    mov si, 00122h                            ; be 22 01
    85908611    mov word [bp-004h], ax                    ; 89 46 fc
     
    85928613    mov dx, 0008eh                            ; ba 8e 00
    85938614    mov ax, strict word 00040h                ; b8 40 00
    8594     call 01660h                               ; e8 06 ba
     8615    call 01660h                               ; e8 de b9
    85958616    mov ax, word [bp+00eh]                    ; 8b 46 0e
    85968617    xor ah, ah                                ; 30 e4
    85978618    cmp ax, 00080h                            ; 3d 80 00
    8598     jc short 05c69h                           ; 72 05
     8619    jc short 05c91h                           ; 72 05
    85998620    cmp ax, 00090h                            ; 3d 90 00
    8600     jc short 05c88h                           ; 72 1f
     8621    jc short 05cb0h                           ; 72 1f
    86018622    mov ax, word [bp+00eh]                    ; 8b 46 0e
    86028623    xor ah, ah                                ; 30 e4
     
    86108631    mov ax, strict word 00004h                ; b8 04 00
    86118632    push ax                                   ; 50
    8612     call 01976h                               ; e8 f4 bc
     8633    call 01976h                               ; e8 cc bc
    86138634    add sp, strict byte 0000ah                ; 83 c4 0a
    8614     jmp near 06040h                           ; e9 b8 03
     8635    jmp near 06068h                           ; e9 b8 03
    86158636    mov ax, word [bp+00eh]                    ; 8b 46 0e
    86168637    xor ah, ah                                ; 30 e4
     
    86218642    mov byte [bp-002h], dl                    ; 88 56 fe
    86228643    cmp dl, 010h                              ; 80 fa 10
    8623     jc short 05cafh                           ; 72 0e
     8644    jc short 05cd7h                           ; 72 0e
    86248645    push ax                                   ; 50
    86258646    mov al, byte [bp+017h]                    ; 8a 46 17
     
    86288649    push ax                                   ; 50
    86298650    mov ax, 006b8h                            ; b8 b8 06
    8630     jmp short 05c7ah                          ; eb cb
     8651    jmp short 05ca2h                          ; eb cb
    86318652    mov al, byte [bp+017h]                    ; 8a 46 17
    86328653    xor ah, ah                                ; 30 e4
    86338654    cmp ax, strict word 00018h                ; 3d 18 00
    8634     jnbe short 05cf8h                         ; 77 3f
     8655    jnbe short 05d20h                         ; 77 3f
    86358656    mov bx, ax                                ; 89 c3
    86368657    sal bx, 1                                 ; d1 e3
    8637     jmp word [cs:bx+05c08h]                   ; 2e ff a7 08 5c
     8658    jmp word [cs:bx+05c30h]                   ; 2e ff a7 30 5c
    86388659    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8639     jnc short 05cd0h                          ; 73 08
     8660    jnc short 05cf8h                          ; 73 08
    86408661    mov al, byte [bp-002h]                    ; 8a 46 fe
    86418662    xor ah, ah                                ; 30 e4
    8642     call 01db8h                               ; e8 e8 c0
    8643     jmp near 05f02h                           ; e9 2f 02
     8663    call 01db8h                               ; e8 c0 c0
     8664    jmp near 05f2ah                           ; e9 2f 02
    86448665    mov dx, strict word 00074h                ; ba 74 00
    86458666    mov ax, strict word 00040h                ; b8 40 00
    8646     call 01652h                               ; e8 76 b9
     8667    call 01652h                               ; e8 4e b9
    86478668    mov cl, al                                ; 88 c1
    86488669    mov dx, word [bp+016h]                    ; 8b 56 16
     
    86528673    mov dx, strict word 00074h                ; ba 74 00
    86538674    mov ax, strict word 00040h                ; b8 40 00
    8654     call 01660h                               ; e8 6f b9
     8675    call 01660h                               ; e8 47 b9
    86558676    test cl, cl                               ; 84 c9
    8656     je short 05d57h                           ; 74 62
    8657     jmp near 06059h                           ; e9 61 03
    8658     jmp near 06025h                           ; e9 2a 03
     8677    je short 05d7fh                           ; 74 62
     8678    jmp near 06081h                           ; e9 61 03
     8679    jmp near 0604dh                           ; e9 2a 03
    86598680    mov ax, word [bp+016h]                    ; 8b 46 16
    86608681    xor ah, ah                                ; 30 e4
     
    86758696    mov ax, word [bp-00eh]                    ; 8b 46 f2
    86768697    cmp ax, 00080h                            ; 3d 80 00
    8677     jnbe short 05d31h                         ; 77 04
     8698    jnbe short 05d59h                         ; 77 04
    86788699    test ax, ax                               ; 85 c0
    8679     jne short 05d5ah                          ; 75 29
     8700    jne short 05d82h                          ; 75 29
    86808701    mov bx, 00da0h                            ; bb a0 0d
    86818702    mov cx, ds                                ; 8c d9
    86828703    mov ax, strict word 00004h                ; b8 04 00
    8683     call 01933h                               ; e8 f7 bb
     8704    call 01933h                               ; e8 cf bb
    86848705    mov al, byte [bp+017h]                    ; 8a 46 17
    86858706    xor ah, ah                                ; 30 e4
     
    86918712    mov ax, strict word 00004h                ; b8 04 00
    86928713    push ax                                   ; 50
    8693     call 01976h                               ; e8 25 bc
     8714    call 01976h                               ; e8 fd bb
    86948715    add sp, strict byte 00008h                ; 83 c4 08
    8695     jmp near 06040h                           ; e9 e9 02
    8696     jmp near 05f06h                           ; e9 ac 01
     8716    jmp near 06068h                           ; e9 e9 02
     8717    jmp near 05f2eh                           ; e9 ac 01
    86978718    mov al, byte [bp-002h]                    ; 8a 46 fe
    86988719    xor ah, ah                                ; 30 e4
     
    87078728    mov word [bp-010h], dx                    ; 89 56 f0
    87088729    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    8709     jbe short 05d88h                          ; 76 09
     8730    jbe short 05db0h                          ; 76 09
    87108731    cmp cx, word [bp-00ch]                    ; 3b 4e f4
    8711     jbe short 05d88h                          ; 76 04
     8732    jbe short 05db0h                          ; 76 04
    87128733    cmp di, dx                                ; 39 d7
    8713     jbe short 05db9h                          ; 76 31
     8734    jbe short 05de1h                          ; 76 31
    87148735    mov bx, 00da0h                            ; bb a0 0d
    87158736    mov cx, ds                                ; 8c d9
    87168737    mov ax, strict word 00004h                ; b8 04 00
    8717     call 01933h                               ; e8 a0 bb
     8738    call 01933h                               ; e8 78 bb
    87188739    push di                                   ; 57
    87198740    push word [bp-00ch]                       ; ff 76 f4
     
    87308751    mov ax, strict word 00004h                ; b8 04 00
    87318752    push ax                                   ; 50
    8732     call 01976h                               ; e8 c3 bb
     8753    call 01976h                               ; e8 9b bb
    87338754    add sp, strict byte 00010h                ; 83 c4 10
    8734     jmp near 06040h                           ; e9 87 02
     8755    jmp near 06068h                           ; e9 87 02
    87358756    mov al, byte [bp+017h]                    ; 8a 46 17
    87368757    xor ah, ah                                ; 30 e4
    87378758    cmp ax, strict word 00004h                ; 3d 04 00
    8738     je short 05de3h                           ; 74 20
     8759    je short 05e0bh                           ; 74 20
    87398760    mov al, byte [bp-002h]                    ; 8a 46 fe
    87408761    mov dx, strict word 0001ch                ; ba 1c 00
     
    87448765    add bx, ax                                ; 01 c3
    87458766    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
    8746     jne short 05dech                          ; 75 14
     8767    jne short 05e14h                          ; 75 14
    87478768    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    87488769    cmp ax, word [bp-010h]                    ; 3b 46 f0
    8749     je short 05de6h                           ; 74 05
    8750     jmp short 05dech                          ; eb 09
    8751     jmp near 05f02h                           ; e9 1c 01
     8770    je short 05e0eh                           ; 74 05
     8771    jmp short 05e14h                          ; eb 09
     8772    jmp near 05f2ah                           ; e9 1c 01
    87528773    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8753     jc short 05e1bh                           ; 72 2f
     8774    jc short 05e43h                           ; 72 2f
    87548775    mov ax, word [bp-00ah]                    ; 8b 46 f6
    87558776    xor dx, dx                                ; 31 d2
    87568777    mov bx, cx                                ; 89 cb
    87578778    xor cx, cx                                ; 31 c9
    8758     call 0a060h                               ; e8 68 42
     8779    call 0a090h                               ; e8 70 42
    87598780    xor bx, bx                                ; 31 db
    87608781    add ax, word [bp-00ch]                    ; 03 46 f4
     
    87628783    mov bx, word [bp-010h]                    ; 8b 5e f0
    87638784    xor cx, cx                                ; 31 c9
    8764     call 0a060h                               ; e8 59 42
     8785    call 0a090h                               ; e8 61 42
    87658786    xor bx, bx                                ; 31 db
    87668787    add ax, di                                ; 01 f8
     
    88198840    mov word [bp+016h], bx                    ; 89 5e 16
    88208841    test dl, dl                               ; 84 d2
    8821     je short 05f02h                           ; 74 4a
     8842    je short 05f2ah                           ; 74 4a
    88228843    mov bx, 00da0h                            ; bb a0 0d
    88238844    mov cx, ds                                ; 8c d9
    88248845    mov ax, strict word 00004h                ; b8 04 00
    8825     call 01933h                               ; e8 70 ba
     8846    call 01933h                               ; e8 48 ba
    88268847    mov al, dl                                ; 88 d0
    88278848    xor ah, ah                                ; 30 e4
     
    88358856    mov ax, strict word 00004h                ; b8 04 00
    88368857    push ax                                   ; 50
    8837     call 01976h                               ; e8 9b ba
     8858    call 01976h                               ; e8 73 ba
    88388859    add sp, strict byte 0000ah                ; 83 c4 0a
    88398860    mov ax, word [bp+016h]                    ; 8b 46 16
    88408861    xor ah, ah                                ; 30 e4
    88418862    or ah, 00ch                               ; 80 cc 0c
    8842     jmp near 06048h                           ; e9 5f 01
     8863    jmp near 06070h                           ; e9 5f 01
    88438864    mov bx, 00da0h                            ; bb a0 0d
    88448865    mov cx, ds                                ; 8c d9
    88458866    mov ax, strict word 00004h                ; b8 04 00
    8846     call 01933h                               ; e8 3f ba
     8867    call 01933h                               ; e8 17 ba
    88478868    mov ax, 0077ah                            ; b8 7a 07
    88488869    push ax                                   ; 50
    88498870    mov ax, strict word 00004h                ; b8 04 00
    88508871    push ax                                   ; 50
    8851     call 01976h                               ; e8 77 ba
     8872    call 01976h                               ; e8 4f ba
    88528873    add sp, strict byte 00004h                ; 83 c4 04
    88538874    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    88558876    mov dx, strict word 00074h                ; ba 74 00
    88568877    mov ax, strict word 00040h                ; b8 40 00
    8857     call 01660h                               ; e8 4f b7
     8878    call 01660h                               ; e8 27 b7
    88588879    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    88598880    mov sp, bp                                ; 89 ec
     
    88988919    or ax, dx                                 ; 09 d0
    88998920    mov word [bp+012h], ax                    ; 89 46 12
    8900     jmp short 05f02h                          ; eb 83
     8921    jmp short 05f2ah                          ; eb 83
    89018922    mov al, byte [bp-002h]                    ; 8a 46 fe
    89028923    cwd                                       ; 99
     
    89158936    and AL, strict byte 0c0h                  ; 24 c0
    89168937    cmp AL, strict byte 040h                  ; 3c 40
    8917     jne short 05fa5h                          ; 75 03
    8918     jmp near 05f02h                           ; e9 5d ff
     8938    jne short 05fcdh                          ; 75 03
     8939    jmp near 05f2ah                           ; e9 5d ff
    89198940    mov ax, word [bp+016h]                    ; 8b 46 16
    89208941    xor ah, ah                                ; 30 e4
    89218942    or ah, 0aah                               ; 80 cc aa
    8922     jmp near 06048h                           ; e9 98 00
     8943    jmp near 06070h                           ; e9 98 00
    89238944    mov al, byte [bp-002h]                    ; 8a 46 fe
    89248945    xor ah, ah                                ; 30 e4
     
    89368957    mov bx, word [bp-00ch]                    ; 8b 5e f4
    89378958    xor cx, cx                                ; 31 c9
    8938     call 0a060h                               ; e8 82 40
     8959    call 0a090h                               ; e8 8a 40
    89398960    mov bx, di                                ; 89 fb
    89408961    xor cx, cx                                ; 31 c9
    8941     call 0a060h                               ; e8 7b 40
     8962    call 0a090h                               ; e8 83 40
    89428963    mov word [bp-008h], ax                    ; 89 46 f8
    89438964    mov word [bp-006h], dx                    ; 89 56 fa
     
    89488969    or ah, 003h                               ; 80 cc 03
    89498970    mov word [bp+016h], ax                    ; 89 46 16
    8950     jmp near 05f06h                           ; e9 07 ff
     8971    jmp near 05f2eh                           ; e9 07 ff
    89518972    mov bx, 00da0h                            ; bb a0 0d
    89528973    mov cx, ds                                ; 8c d9
    89538974    mov ax, strict word 00004h                ; b8 04 00
    8954     call 01933h                               ; e8 29 b9
     8975    call 01933h                               ; e8 01 b9
    89558976    mov al, byte [bp+017h]                    ; 8a 46 17
    89568977    xor ah, ah                                ; 30 e4
     
    89628983    mov ax, strict word 00004h                ; b8 04 00
    89638984    push ax                                   ; 50
    8964     call 01976h                               ; e8 57 b9
     8985    call 01976h                               ; e8 2f b9
    89658986    add sp, strict byte 00008h                ; 83 c4 08
    8966     jmp near 05f02h                           ; e9 dd fe
     8987    jmp near 05f2ah                           ; e9 dd fe
    89678988    mov bx, 00da0h                            ; bb a0 0d
    89688989    mov cx, ds                                ; 8c d9
    89698990    mov ax, strict word 00004h                ; b8 04 00
    8970     call 01933h                               ; e8 03 b9
     8991    call 01933h                               ; e8 db b8
    89718992    mov al, byte [bp+017h]                    ; 8a 46 17
    89728993    xor ah, ah                                ; 30 e4
     
    89758996    push ax                                   ; 50
    89768997    mov ax, 007c7h                            ; b8 c7 07
    8977     jmp near 05d49h                           ; e9 09 fd
     8998    jmp near 05d71h                           ; e9 09 fd
    89788999    mov ax, word [bp+016h]                    ; 8b 46 16
    89799000    xor ah, ah                                ; 30 e4
     
    89849005    mov dx, strict word 00074h                ; ba 74 00
    89859006    mov ax, strict word 00040h                ; b8 40 00
    8986     call 01660h                               ; e8 07 b6
     9007    call 01660h                               ; e8 df b5
    89879008    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8988     jmp near 05f15h                           ; e9 b5 fe
    8989     sbb ah, byte [bx+di+04dh]                 ; 1a 61 4d
    8990     popaw                                     ; 61
    8991     dec bp                                    ; 4d
    8992     popaw                                     ; 61
    8993     dec bp                                    ; 4d
    8994     popaw                                     ; 61
    8995     pop di                                    ; 5f
    8996     db  065h, 0c2h, 062h, 04dh
    8997     ; gs retn 04d62h                            ; 65 c2 62 4d
    8998     popaw                                     ; 61
    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
     9009    jmp near 05f3dh                           ; e9 b5 fe
     9010    db  042h, 061h, 075h, 061h, 075h, 061h, 075h, 061h, 087h, 065h, 0eah, 062h, 075h, 061h, 0f0h, 062h
     9011    db  087h, 065h, 05ah, 061h, 05ah, 061h, 05ah, 061h, 05ah, 061h, 09eh, 065h, 05ah, 061h, 05ah, 061h
     9012_int13_harddisk_ext:                         ; 0xf60a8 LB 0x52b
    90089013    push bp                                   ; 55
    90099014    mov bp, sp                                ; 89 e5
     
    90119016    mov dx, strict word 0000eh                ; ba 0e 00
    90129017    mov ax, strict word 00040h                ; b8 40 00
    9013     call 0166eh                               ; e8 df b5
     9018    call 0166eh                               ; e8 b7 b5
    90149019    mov word [bp-018h], ax                    ; 89 46 e8
    90159020    mov dx, strict word 0000eh                ; ba 0e 00
    90169021    mov ax, strict word 00040h                ; b8 40 00
    9017     call 0166eh                               ; e8 d3 b5
     9022    call 0166eh                               ; e8 ab b5
    90189023    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
    90199024    mov word [bp-006h], ax                    ; 89 46 fa
     
    90219026    mov dx, 0008eh                            ; ba 8e 00
    90229027    mov ax, strict word 00040h                ; b8 40 00
    9023     call 01660h                               ; e8 b2 b5
     9028    call 01660h                               ; e8 8a b5
    90249029    mov ax, word [bp+00eh]                    ; 8b 46 0e
    90259030    xor ah, ah                                ; 30 e4
    90269031    cmp ax, 00080h                            ; 3d 80 00
    9027     jc short 060bdh                           ; 72 05
     9032    jc short 060e5h                           ; 72 05
    90289033    cmp ax, 00090h                            ; 3d 90 00
    9029     jc short 060dch                           ; 72 1f
     9034    jc short 06104h                           ; 72 1f
    90309035    mov ax, word [bp+00eh]                    ; 8b 46 0e
    90319036    xor ah, ah                                ; 30 e4
     
    90399044    mov ax, strict word 00004h                ; b8 04 00
    90409045    push ax                                   ; 50
    9041     call 01976h                               ; e8 a0 b8
     9046    call 01976h                               ; e8 78 b8
    90429047    add sp, strict byte 0000ah                ; 83 c4 0a
    9043     jmp near 0658ch                           ; e9 b0 04
     9048    jmp near 065b4h                           ; e9 b0 04
    90449049    mov ax, word [bp+00eh]                    ; 8b 46 0e
    90459050    xor ah, ah                                ; 30 e4
     
    90499054    mov byte [bp-004h], dl                    ; 88 56 fc
    90509055    cmp dl, 010h                              ; 80 fa 10
    9051     jc short 06101h                           ; 72 0e
     9056    jc short 06129h                           ; 72 0e
    90529057    push ax                                   ; 50
    90539058    mov al, byte [bp+017h]                    ; 8a 46 17
     
    90569061    push ax                                   ; 50
    90579062    mov ax, 006b8h                            ; b8 b8 06
    9058     jmp short 060ceh                          ; eb cd
     9063    jmp short 060f6h                          ; eb cd
    90599064    mov bl, byte [bp+017h]                    ; 8a 5e 17
    90609065    xor bh, bh                                ; 30 ff
    90619066    sub bx, strict byte 00041h                ; 83 eb 41
    90629067    cmp bx, strict byte 0000fh                ; 83 fb 0f
    9063     jnbe short 06132h                         ; 77 24
     9068    jnbe short 0615ah                         ; 77 24
    90649069    sal bx, 1                                 ; d1 e3
    90659070    mov ax, word [bp+016h]                    ; 8b 46 16
    90669071    xor ah, ah                                ; 30 e4
    9067     jmp word [cs:bx+06060h]                   ; 2e ff a7 60 60
     9072    jmp word [cs:bx+06088h]                   ; 2e ff a7 88 60
    90689073    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    90699074    mov ax, word [bp+016h]                    ; 8b 46 16
     
    90729077    mov word [bp+016h], ax                    ; 89 46 16
    90739078    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    9074     jmp near 06563h                           ; e9 31 04
     9079    jmp near 0658bh                           ; e9 31 04
    90759080    mov bx, 00da0h                            ; bb a0 0d
    90769081    mov cx, ds                                ; 8c d9
    90779082    mov ax, strict word 00004h                ; b8 04 00
    9078     call 01933h                               ; e8 f6 b7
     9083    call 01933h                               ; e8 ce b7
    90799084    mov al, byte [bp+017h]                    ; 8a 46 17
    90809085    xor ah, ah                                ; 30 e4
     
    90839088    push ax                                   ; 50
    90849089    mov ax, 007c7h                            ; b8 c7 07
    9085     jmp near 061eah                           ; e9 9d 00
     9090    jmp near 06212h                           ; e9 9d 00
    90869091    mov di, word [bp+00ah]                    ; 8b 7e 0a
    90879092    mov es, [bp+004h]                         ; 8e 46 04
     
    90999104    xor bx, bx                                ; 31 db
    91009105    mov si, strict word 00020h                ; be 20 00
    9101     call 0a0c0h                               ; e8 40 3f
     9106    call 0a0f0h                               ; e8 48 3f
    91029107    mov word [bp-00eh], ax                    ; 89 46 f2
    91039108    mov word [bp-010h], bx                    ; 89 5e f0
     
    91169121    mov dx, word [bp-00eh]                    ; 8b 56 f2
    91179122    cmp dx, word [es:bx+03ch]                 ; 26 3b 57 3c
    9118     jnbe short 061d2h                         ; 77 22
    9119     jne short 061f8h                          ; 75 46
     9123    jnbe short 061fah                         ; 77 22
     9124    jne short 06220h                          ; 75 46
    91209125    mov dx, word [bp-010h]                    ; 8b 56 f0
    91219126    cmp dx, word [es:bx+03ah]                 ; 26 3b 57 3a
    9122     jnbe short 061d2h                         ; 77 17
     9127    jnbe short 061fah                         ; 77 17
    91239128    mov dx, word [bp-010h]                    ; 8b 56 f0
    91249129    cmp dx, word [es:bx+03ah]                 ; 26 3b 57 3a
    9125     jne short 061f8h                          ; 75 34
     9130    jne short 06220h                          ; 75 34
    91269131    cmp cx, word [es:bx+038h]                 ; 26 3b 4f 38
    9127     jnbe short 061d2h                         ; 77 08
    9128     jne short 061f8h                          ; 75 2c
     9132    jnbe short 061fah                         ; 77 08
     9133    jne short 06220h                          ; 75 2c
    91299134    cmp si, word [es:bx+036h]                 ; 26 3b 77 36
    9130     jc short 061f8h                           ; 72 26
     9135    jc short 06220h                           ; 72 26
    91319136    mov bx, 00da0h                            ; bb a0 0d
    91329137    mov cx, ds                                ; 8c d9
    91339138    mov ax, strict word 00004h                ; b8 04 00
    9134     call 01933h                               ; e8 56 b7
     9139    call 01933h                               ; e8 2e b7
    91359140    mov al, byte [bp+017h]                    ; 8a 46 17
    91369141    xor ah, ah                                ; 30 e4
     
    91429147    mov ax, strict word 00004h                ; b8 04 00
    91439148    push ax                                   ; 50
    9144     call 01976h                               ; e8 84 b7
     9149    call 01976h                               ; e8 5c b7
    91459150    add sp, strict byte 00008h                ; 83 c4 08
    9146     jmp near 0658ch                           ; e9 94 03
     9151    jmp near 065b4h                           ; e9 94 03
    91479152    mov ah, byte [bp+017h]                    ; 8a 66 17
    91489153    mov byte [bp-012h], ah                    ; 88 66 ee
    91499154    mov byte [bp-011h], 000h                  ; c6 46 ef 00
    91509155    cmp word [bp-012h], strict byte 00044h    ; 83 7e ee 44
    9151     je short 0620eh                           ; 74 06
     9156    je short 06236h                           ; 74 06
    91529157    cmp word [bp-012h], strict byte 00047h    ; 83 7e ee 47
    9153     jne short 06211h                          ; 75 03
    9154     jmp near 0655fh                           ; e9 4e 03
     9158    jne short 06239h                          ; 75 03
     9159    jmp near 06587h                           ; e9 4e 03
    91559160    les bx, [bp-008h]                         ; c4 5e f8
    91569161    mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00
     
    91909195    mov word [es:bx+002h], ax                 ; 26 89 47 02
    91919196    test dl, dl                               ; 84 d2
    9192     je short 062e6h                           ; 74 54
     9197    je short 0630eh                           ; 74 54
    91939198    mov bx, 00da0h                            ; bb a0 0d
    91949199    mov cx, ds                                ; 8c d9
    91959200    mov ax, strict word 00004h                ; b8 04 00
    9196     call 01933h                               ; e8 96 b6
     9201    call 01933h                               ; e8 6e b6
    91979202    mov al, dl                                ; 88 d0
    91989203    xor ah, ah                                ; 30 e4
     
    92059210    mov ax, strict word 00004h                ; b8 04 00
    92069211    push ax                                   ; 50
    9207     call 01976h                               ; e8 c2 b6
     9212    call 01976h                               ; e8 9a b6
    92089213    add sp, strict byte 0000ah                ; 83 c4 0a
    92099214    mov ax, word [bp+016h]                    ; 8b 46 16
    92109215    xor ah, ah                                ; 30 e4
    92119216    or ah, 00ch                               ; 80 cc 0c
    9212     jmp near 06594h                           ; e9 d2 02
     9217    jmp near 065bch                           ; e9 d2 02
    92139218    or ah, 0b2h                               ; 80 cc b2
    9214     jmp near 06594h                           ; e9 cc 02
     9219    jmp near 065bch                           ; e9 cc 02
    92159220    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    92169221    mov ax, word [bp+004h]                    ; 8b 46 04
     
    92229227    mov word [bp-014h], ax                    ; 89 46 ec
    92239228    cmp ax, strict word 0001ah                ; 3d 1a 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
     9229    jnc short 06311h                          ; 73 06
     9230    jmp near 065b4h                           ; e9 a6 02
     9231    jmp near 06587h                           ; e9 76 02
     9232    jnc short 06316h                          ; 73 03
     9233    jmp near 063a9h                           ; e9 93 00
    92299234    mov al, byte [bp-004h]                    ; 8a 46 fc
    92309235    xor ah, ah                                ; 30 e4
     
    92649269    mov dx, si                                ; 89 f2
    92659270    mov si, strict word 00020h                ; be 20 00
    9266     call 0a0b0h                               ; e8 39 3d
     9271    call 0a0e0h                               ; e8 41 3d
    92679272    mov bx, di                                ; 89 fb
    92689273    mov word [es:bx+014h], dx                 ; 26 89 57 14
    92699274    mov word [es:bx+016h], cx                 ; 26 89 4f 16
    92709275    cmp word [bp-014h], strict byte 0001eh    ; 83 7e ec 1e
    9271     jc short 063f3h                           ; 72 6c
     9276    jc short 0641bh                           ; 72 6c
    92729277    mov es, [bp-00ah]                         ; 8e 46 f6
    92739278    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
     
    93009305    mov al, byte [es:bx+027h]                 ; 26 8a 47 27
    93019306    test al, al                               ; 84 c0
    9302     jne short 063e4h                          ; 75 04
     9307    jne short 0640ch                          ; 75 04
    93039308    xor si, si                                ; 31 f6
    9304     jmp short 063e7h                          ; eb 03
     9309    jmp short 0640fh                          ; eb 03
    93059310    mov si, strict word 00008h                ; be 08 00
    93069311    or si, strict byte 00010h                 ; 83 ce 10
    93079312    cmp AL, strict byte 001h                  ; 3c 01
    9308     jne short 063f6h                          ; 75 08
     9313    jne short 0641eh                          ; 75 08
    93099314    mov dx, strict word 00001h                ; ba 01 00
    9310     jmp short 063f8h                          ; eb 05
    9311     jmp near 0648eh                           ; e9 98 00
     9315    jmp short 06420h                          ; eb 05
     9316    jmp near 064b6h                           ; e9 98 00
    93129317    xor dx, dx                                ; 31 d2
    93139318    or si, dx                                 ; 09 d6
    93149319    cmp AL, strict byte 003h                  ; 3c 03
    9315     jne short 06403h                          ; 75 05
     9320    jne short 0642bh                          ; 75 05
    93169321    mov ax, strict word 00003h                ; b8 03 00
    9317     jmp short 06405h                          ; eb 02
     9322    jmp short 0642dh                          ; eb 02
    93189323    xor ax, ax                                ; 31 c0
    93199324    or si, ax                                 ; 09 c6
     
    93449349    xor bl, bl                                ; 30 db
    93459350    xor bh, bh                                ; 30 ff
    9346     jmp short 0646eh                          ; eb 05
     9351    jmp short 06496h                          ; eb 05
    93479352    cmp bh, 00fh                              ; 80 ff 0f
    9348     jnc short 06484h                          ; 73 16
     9353    jnc short 064ach                          ; 73 16
    93499354    mov al, bh                                ; 88 f8
    93509355    xor ah, ah                                ; 30 e4
     
    93529357    add dx, 00356h                            ; 81 c2 56 03
    93539358    mov ax, word [bp-018h]                    ; 8b 46 e8
    9354     call 01652h                               ; e8 d4 b1
     9359    call 01652h                               ; e8 ac b1
    93559360    add bl, al                                ; 00 c3
    93569361    db  0feh, 0c7h
    93579362    ; inc bh                                    ; fe c7
    9358     jmp short 06469h                          ; eb e5
     9363    jmp short 06491h                          ; eb e5
    93599364    neg bl                                    ; f6 db
    93609365    les si, [bp-008h]                         ; c4 76 f8
    93619366    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
    93629367    cmp word [bp-014h], strict byte 00042h    ; 83 7e ec 42
    9363     jnc short 06497h                          ; 73 03
    9364     jmp near 0655fh                           ; e9 c8 00
     9368    jnc short 064bfh                          ; 73 03
     9369    jmp near 06587h                           ; e9 c8 00
    93659370    mov al, byte [bp-004h]                    ; 8a 46 fc
    93669371    xor ah, ah                                ; 30 e4
     
    93829387    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
    93839388    test al, al                               ; 84 c0
    9384     jne short 064e1h                          ; 75 0c
     9389    jne short 06509h                          ; 75 0c
    93859390    mov word [es:di+024h], 05349h             ; 26 c7 45 24 49 53
    93869391    mov word [es:di+026h], 02041h             ; 26 c7 45 26 41 20
     
    93919396    mov word [es:di+02eh], 02020h             ; 26 c7 45 2e 20 20
    93929397    test al, al                               ; 84 c0
    9393     jne short 06516h                          ; 75 16
     9398    jne short 0653eh                          ; 75 16
    93949399    mov word [es:di+030h], dx                 ; 26 89 55 30
    93959400    mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00
     
    94069411    xor bl, bl                                ; 30 db
    94079412    mov BH, strict byte 01eh                  ; b7 1e
    9408     jmp short 06541h                          ; eb 05
     9413    jmp short 06569h                          ; eb 05
    94099414    cmp bh, 040h                              ; 80 ff 40
    9410     jnc short 06556h                          ; 73 15
     9415    jnc short 0657eh                          ; 73 15
    94119416    mov al, bh                                ; 88 f8
    94129417    xor ah, ah                                ; 30 e4
     
    94149419    add dx, ax                                ; 01 c2
    94159420    mov ax, word [bp+004h]                    ; 8b 46 04
    9416     call 01652h                               ; e8 02 b1
     9421    call 01652h                               ; e8 da b0
    94179422    add bl, al                                ; 00 c3
    94189423    db  0feh, 0c7h
    94199424    ; inc bh                                    ; fe c7
    9420     jmp short 0653ch                          ; eb e6
     9425    jmp short 06564h                          ; eb e6
    94219426    neg bl                                    ; f6 db
    94229427    mov es, [bp-00ah]                         ; 8e 46 f6
     
    94269431    mov dx, strict word 00074h                ; ba 74 00
    94279432    mov ax, strict word 00040h                ; b8 40 00
    9428     call 01660h                               ; e8 f2 b0
     9433    call 01660h                               ; e8 ca b0
    94299434    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    94309435    mov sp, bp                                ; 89 ec
     
    94329437    retn                                      ; c3
    94339438    cmp ax, strict word 00006h                ; 3d 06 00
    9434     je short 0655fh                           ; 74 e4
     9439    je short 06587h                           ; 74 e4
    94359440    cmp ax, strict word 00001h                ; 3d 01 00
    9436     jc short 0658ch                           ; 72 0c
    9437     jbe short 0655fh                          ; 76 dd
     9441    jc short 065b4h                           ; 72 0c
     9442    jbe short 06587h                          ; 76 dd
    94389443    cmp ax, strict word 00003h                ; 3d 03 00
    9439     jc short 0658ch                           ; 72 05
     9444    jc short 065b4h                           ; 72 05
    94409445    cmp ax, strict word 00004h                ; 3d 04 00
    9441     jbe short 0655fh                          ; 76 d3
     9446    jbe short 06587h                          ; 76 d3
    94429447    mov ax, word [bp+016h]                    ; 8b 46 16
    94439448    xor ah, ah                                ; 30 e4
     
    94489453    mov dx, strict word 00074h                ; ba 74 00
    94499454    mov ax, strict word 00040h                ; b8 40 00
    9450     call 01660h                               ; e8 bb b0
     9455    call 01660h                               ; e8 93 b0
    94519456    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9452     jmp short 06572h                          ; eb c7
    9453 _int14_function:                             ; 0xf65ab LB 0x15c
     9457    jmp short 0659ah                          ; eb c7
     9458_int14_function:                             ; 0xf65d3 LB 0x15c
    94549459    push bp                                   ; 55
    94559460    mov bp, sp                                ; 89 e5
     
    94599464    sal dx, 1                                 ; d1 e2
    94609465    mov ax, strict word 00040h                ; b8 40 00
    9461     call 0166eh                               ; e8 b3 b0
     9466    call 0166eh                               ; e8 8b b0
    94629467    mov si, ax                                ; 89 c6
    94639468    mov bx, ax                                ; 89 c3
     
    94659470    add dx, strict byte 0007ch                ; 83 c2 7c
    94669471    mov ax, strict word 00040h                ; b8 40 00
    9467     call 01652h                               ; e8 87 b0
     9472    call 01652h                               ; e8 5f b0
    94689473    mov cl, al                                ; 88 c1
    94699474    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    9470     jnc short 065d7h                          ; 73 04
     9475    jnc short 065ffh                          ; 73 04
    94719476    test si, si                               ; 85 f6
    9472     jnbe short 065dah                         ; 77 03
    9473     jmp near 066fdh                           ; e9 23 01
     9477    jnbe short 06602h                         ; 77 03
     9478    jmp near 06725h                           ; e9 23 01
    94749479    mov al, byte [bp+013h]                    ; 8a 46 13
    94759480    cmp AL, strict byte 001h                  ; 3c 01
    9476     jc short 065eeh                           ; 72 0d
    9477     jbe short 0664eh                          ; 76 6b
     9481    jc short 06616h                           ; 72 0d
     9482    jbe short 06676h                          ; 76 6b
    94789483    cmp AL, strict byte 003h                  ; 3c 03
    9479     je short 06646h                           ; 74 5f
     9484    je short 0666eh                           ; 74 5f
    94809485    cmp AL, strict byte 002h                  ; 3c 02
    9481     je short 06649h                           ; 74 5e
    9482     jmp near 066f7h                           ; e9 09 01
     9486    je short 06671h                           ; 74 5e
     9487    jmp near 0671fh                           ; e9 09 01
    94839488    test al, al                               ; 84 c0
    9484     jne short 0664bh                          ; 75 59
     9489    jne short 06673h                          ; 75 59
    94859490    lea dx, [bx+003h]                         ; 8d 57 03
    94869491    in AL, DX                                 ; ec
     
    94929497    mov al, byte [bp+012h]                    ; 8a 46 12
    94939498    test AL, strict byte 0e0h                 ; a8 e0
    9494     jne short 06611h                          ; 75 0c
     9499    jne short 06639h                          ; 75 0c
    94959500    mov AL, strict byte 017h                  ; b0 17
    94969501    mov dx, bx                                ; 89 da
     
    94999504    mov dx, si                                ; 89 f2
    95009505    out DX, AL                                ; ee
    9501     jmp short 06628h                          ; eb 17
     9506    jmp short 06650h                          ; eb 17
    95029507    and AL, strict byte 0e0h                  ; 24 e0
    95039508    xor ah, ah                                ; 30 e4
     
    95269531    ; sub ah, ah                                ; 2a e4
    95279532    mov byte [bp+012h], al                    ; 88 46 12
    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
     9533    jmp near 06700h                           ; e9 92 00
     9534    jmp near 0670eh                           ; e9 9d 00
     9535    jmp short 066c4h                          ; eb 51
     9536    jmp near 0671fh                           ; e9 a9 00
    95329537    mov dx, strict word 0006ch                ; ba 6c 00
    95339538    mov ax, strict word 00040h                ; b8 40 00
    9534     call 0166eh                               ; e8 17 b0
     9539    call 0166eh                               ; e8 ef af
    95359540    mov si, ax                                ; 89 c6
    95369541    lea dx, [bx+005h]                         ; 8d 57 05
     
    95409545    and ax, strict word 00060h                ; 25 60 00
    95419546    cmp ax, strict word 00060h                ; 3d 60 00
    9542     je short 0667eh                           ; 74 17
     9547    je short 066a6h                           ; 74 17
    95439548    test cl, cl                               ; 84 c9
    9544     je short 0667eh                           ; 74 13
     9549    je short 066a6h                           ; 74 13
    95459550    mov dx, strict word 0006ch                ; ba 6c 00
    95469551    mov ax, strict word 00040h                ; b8 40 00
    9547     call 0166eh                               ; e8 fa af
     9552    call 0166eh                               ; e8 d2 af
    95489553    cmp ax, si                                ; 39 f0
    9549     je short 06659h                           ; 74 e1
     9554    je short 06681h                           ; 74 e1
    95509555    mov si, ax                                ; 89 c6
    95519556    db  0feh, 0c9h
    95529557    ; dec cl                                    ; fe c9
    9553     jmp short 06659h                          ; eb db
     9558    jmp short 06681h                          ; eb db
    95549559    test cl, cl                               ; 84 c9
    9555     je short 06688h                           ; 74 06
     9560    je short 066b0h                           ; 74 06
    95569561    mov al, byte [bp+012h]                    ; 8a 46 12
    95579562    mov dx, bx                                ; 89 da
     
    95639568    mov byte [bp+013h], al                    ; 88 46 13
    95649569    test cl, cl                               ; 84 c9
    9565     jne short 066d8h                          ; 75 43
     9570    jne short 06700h                          ; 75 43
    95669571    or AL, strict byte 080h                   ; 0c 80
    95679572    mov byte [bp+013h], al                    ; 88 46 13
    9568     jmp short 066d8h                          ; eb 3c
     9573    jmp short 06700h                          ; eb 3c
    95699574    mov dx, strict word 0006ch                ; ba 6c 00
    95709575    mov ax, strict word 00040h                ; b8 40 00
    9571     call 0166eh                               ; e8 c9 af
     9576    call 0166eh                               ; e8 a1 af
    95729577    mov si, ax                                ; 89 c6
    95739578    lea dx, [bx+005h]                         ; 8d 57 05
     
    95769581    ; sub ah, ah                                ; 2a e4
    95779582    test AL, strict byte 001h                 ; a8 01
    9578     jne short 066c8h                          ; 75 17
     9583    jne short 066f0h                          ; 75 17
    95799584    test cl, cl                               ; 84 c9
    9580     je short 066c8h                           ; 74 13
     9585    je short 066f0h                           ; 74 13
    95819586    mov dx, strict word 0006ch                ; ba 6c 00
    95829587    mov ax, strict word 00040h                ; b8 40 00
    9583     call 0166eh                               ; e8 b0 af
     9588    call 0166eh                               ; e8 88 af
    95849589    cmp ax, si                                ; 39 f0
    9585     je short 066a7h                           ; 74 e5
     9590    je short 066cfh                           ; 74 e5
    95869591    mov si, ax                                ; 89 c6
    95879592    db  0feh, 0c9h
    95889593    ; dec cl                                    ; fe c9
    9589     jmp short 066a7h                          ; eb df
     9594    jmp short 066cfh                          ; eb df
    95909595    test cl, cl                               ; 84 c9
    9591     je short 066deh                           ; 74 12
     9596    je short 06706h                           ; 74 12
    95929597    mov byte [bp+013h], 000h                  ; c6 46 13 00
    95939598    mov dx, bx                                ; 89 da
     
    95979602    mov byte [bp+012h], al                    ; 88 46 12
    95989603    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    9599     jmp short 06701h                          ; eb 23
     9604    jmp short 06729h                          ; eb 23
    96009605    lea dx, [bx+005h]                         ; 8d 57 05
    96019606    in AL, DX                                 ; ec
    96029607    db  02ah, 0e4h
    96039608    ; sub ah, ah                                ; 2a e4
    9604     jmp short 06697h                          ; eb b1
     9609    jmp short 066bfh                          ; eb b1
    96059610    lea dx, [si+005h]                         ; 8d 54 05
    96069611    in AL, DX                                 ; ec
     
    96129617    db  02ah, 0e4h
    96139618    ; sub ah, ah                                ; 2a e4
    9614     jmp short 066d5h                          ; eb de
     9619    jmp short 066fdh                          ; eb de
    96159620    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9616     jmp short 06701h                          ; eb 04
     9621    jmp short 06729h                          ; eb 04
    96179622    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    96189623    lea sp, [bp-002h]                         ; 8d 66 fe
     
    96209625    pop bp                                    ; 5d
    96219626    retn                                      ; c3
    9622 timer_wait_:                                 ; 0xf6707 LB 0x43
     9627timer_wait_:                                 ; 0xf672f LB 0x43
    96239628    push bp                                   ; 55
    96249629    mov bp, sp                                ; 89 e5
     
    96289633    mov bx, strict word 0000fh                ; bb 0f 00
    96299634    xor cx, cx                                ; 31 c9
    9630     call 0a080h                               ; e8 6b 39
     9635    call 0a0b0h                               ; e8 73 39
    96319636    mov cx, ax                                ; 89 c1
    96329637    mov bx, dx                                ; 89 d3
     
    96409645    adc bx, strict byte 0ffffh                ; 83 d3 ff
    96419646    cmp bx, strict byte 0ffffh                ; 83 fb ff
    9642     jne short 06734h                          ; 75 05
     9647    jne short 0675ch                          ; 75 05
    96439648    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    9644     je short 06743h                           ; 74 0f
     9649    je short 0676bh                           ; 74 0f
    96459650    mov dx, strict word 00061h                ; ba 61 00
    96469651    in AL, DX                                 ; ec
     
    96499654    and AL, strict byte 010h                  ; 24 10
    96509655    cmp al, byte [bp-006h]                    ; 3a 46 fa
    9651     jne short 06734h                          ; 75 f3
    9652     jmp short 06724h                          ; eb e1
     9656    jne short 0675ch                          ; 75 f3
     9657    jmp short 0674ch                          ; eb e1
    96539658    lea sp, [bp-004h]                         ; 8d 66 fc
    96549659    pop cx                                    ; 59
     
    96569661    pop bp                                    ; 5d
    96579662    retn                                      ; c3
    9658 set_enable_a20_:                             ; 0xf674a LB 0x30
     9663set_enable_a20_:                             ; 0xf6772 LB 0x30
    96599664    push bp                                   ; 55
    96609665    mov bp, sp                                ; 89 e5
     
    96699674    mov cl, al                                ; 88 c1
    96709675    test bx, bx                               ; 85 db
    9671     je short 06763h                           ; 74 05
     9676    je short 0678bh                           ; 74 05
    96729677    or AL, strict byte 002h                   ; 0c 02
    96739678    out DX, AL                                ; ee
    9674     jmp short 06766h                          ; eb 03
     9679    jmp short 0678eh                          ; eb 03
    96759680    and AL, strict byte 0fdh                  ; 24 fd
    96769681    out DX, AL                                ; ee
    96779682    test cl, 002h                             ; f6 c1 02
    9678     je short 06770h                           ; 74 05
     9683    je short 06798h                           ; 74 05
    96799684    mov ax, strict word 00001h                ; b8 01 00
    9680     jmp short 06772h                          ; eb 02
     9685    jmp short 0679ah                          ; eb 02
    96819686    xor ax, ax                                ; 31 c0
    96829687    lea sp, [bp-006h]                         ; 8d 66 fa
     
    96869691    pop bp                                    ; 5d
    96879692    retn                                      ; c3
    9688 set_e820_range_:                             ; 0xf677a LB 0x88
     9693set_e820_range_:                             ; 0xf67a2 LB 0x88
    96899694    push si                                   ; 56
    96909695    push bp                                   ; 55
     
    97169721    retn 0000ah                               ; c2 0a 00
    97179722    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
    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
     9723    db  037h, 06bh, 066h, 068h, 07ah, 068h, 016h, 069h, 01ch, 069h, 021h, 069h, 026h, 069h, 0ceh, 069h
     9724    db  0f2h, 069h, 00fh, 069h, 00fh, 069h, 0bch, 06ah, 0e7h, 06ah, 0fah, 06ah, 009h, 06bh, 016h, 069h
     9725    db  012h, 06bh
     9726_int15_function:                             ; 0xf682a LB 0x343
    97229727    push bp                                   ; 55
    97239728    mov bp, sp                                ; 89 e5
     
    97289733    mov dx, ax                                ; 89 c2
    97299734    cmp ax, 000ech                            ; 3d ec 00
    9730     jnbe short 06848h                         ; 77 35
     9735    jnbe short 06870h                         ; 77 35
    97319736    push CS                                   ; 0e
    97329737    pop ES                                    ; 07
    97339738    mov cx, strict word 00011h                ; b9 11 00
    9734     mov di, 067d0h                            ; bf d0 67
     9739    mov di, 067f8h                            ; bf f8 67
    97359740    repne scasb                               ; f2 ae
    97369741    sal cx, 1                                 ; d1 e1
    97379742    mov di, cx                                ; 89 cf
    9738     mov si, word [cs:di+067e0h]               ; 2e 8b b5 e0 67
     9743    mov si, word [cs:di+06808h]               ; 2e 8b b5 08 68
    97399744    mov ax, word [bp+012h]                    ; 8b 46 12
    97409745    xor ah, ah                                ; 30 e4
     
    97499754    xor ah, ah                                ; 30 e4
    97509755    cmp ax, 000c0h                            ; 3d c0 00
    9751     je short 0684bh                           ; 74 03
    9752     jmp near 06b0fh                           ; e9 c4 02
     9756    je short 06873h                           ; 74 03
     9757    jmp near 06b37h                           ; e9 c4 02
    97539758    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9754     jmp near 06ab6h                           ; e9 64 02
     9759    jmp near 06adeh                           ; e9 64 02
    97559760    mov dx, ax                                ; 89 c2
    97569761    cmp ax, strict word 00001h                ; 3d 01 00
    9757     jc short 06867h                           ; 72 0e
    9758     jbe short 0687bh                          ; 76 20
     9762    jc short 0688fh                           ; 72 0e
     9763    jbe short 068a3h                          ; 76 20
    97599764    cmp ax, strict word 00003h                ; 3d 03 00
    9760     je short 068ach                           ; 74 4c
     9765    je short 068d4h                           ; 74 4c
    97619766    cmp ax, strict word 00002h                ; 3d 02 00
    9762     je short 0688bh                           ; 74 26
    9763     jmp short 068b9h                          ; eb 52
     9767    je short 068b3h                           ; 74 26
     9768    jmp short 068e1h                          ; eb 52
    97649769    test ax, ax                               ; 85 c0
    9765     jne short 068b9h                          ; 75 4e
     9770    jne short 068e1h                          ; 75 4e
    97669771    xor ax, ax                                ; 31 c0
    9767     call 0674ah                               ; e8 da fe
     9772    call 06772h                               ; e8 da fe
    97689773    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    97699774    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9770     jmp near 068e7h                           ; e9 6c 00
     9775    jmp near 0690fh                           ; e9 6c 00
    97719776    mov ax, strict word 00001h                ; b8 01 00
    9772     call 0674ah                               ; e8 c9 fe
     9777    call 06772h                               ; e8 c9 fe
    97739778    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    97749779    mov byte [bp+013h], dh                    ; 88 76 13
    9775     jmp near 068e7h                           ; e9 5c 00
     9780    jmp near 0690fh                           ; e9 5c 00
    97769781    mov dx, 00092h                            ; ba 92 00
    97779782    in AL, DX                                 ; ec
     
    97879792    xor al, dl                                ; 30 d0
    97889793    mov byte [bp+013h], al                    ; 88 46 13
    9789     jmp near 068e7h                           ; e9 3b 00
     9794    jmp near 0690fh                           ; e9 3b 00
    97909795    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    97919796    mov byte [bp+013h], ah                    ; 88 66 13
    97929797    mov word [bp+00ch], ax                    ; 89 46 0c
    9793     jmp near 068e7h                           ; e9 2e 00
     9798    jmp near 0690fh                           ; e9 2e 00
    97949799    mov bx, 00da0h                            ; bb a0 0d
    97959800    mov cx, ds                                ; 8c d9
    97969801    mov ax, strict word 00004h                ; b8 04 00
    9797     call 01933h                               ; e8 6f b0
     9802    call 01933h                               ; e8 47 b0
    97989803    mov ax, word [bp+012h]                    ; 8b 46 12
    97999804    xor ah, ah                                ; 30 e4
     
    98039808    mov ax, strict word 00004h                ; b8 04 00
    98049809    push ax                                   ; 50
    9805     call 01976h                               ; e8 a1 b0
     9810    call 01976h                               ; e8 79 b0
    98069811    add sp, strict byte 00006h                ; 83 c4 06
    98079812    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    98169821    retn                                      ; c3
    98179822    mov word [bp+018h], dx                    ; 89 56 18
    9818     jmp near 069a0h                           ; e9 ac 00
     9823    jmp near 069c8h                           ; e9 ac 00
    98199824    mov word [bp+018h], dx                    ; 89 56 18
    9820     jmp short 068e7h                          ; eb ee
     9825    jmp short 0690fh                          ; eb ee
    98219826    mov word [bp+018h], cx                    ; 89 4e 18
    9822     jmp short 068e4h                          ; eb e6
     9827    jmp short 0690ch                          ; eb e6
    98239828    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9824     jne short 06973h                          ; 75 6f
     9829    jne short 0699bh                          ; 75 6f
    98259830    mov dx, 000a0h                            ; ba a0 00
    98269831    mov ax, strict word 00040h                ; b8 40 00
    9827     call 01652h                               ; e8 45 ad
     9832    call 01652h                               ; e8 1d ad
    98289833    test AL, strict byte 001h                 ; a8 01
    9829     jne short 06970h                          ; 75 5f
     9834    jne short 06998h                          ; 75 5f
    98309835    mov bx, strict word 00001h                ; bb 01 00
    98319836    mov dx, 000a0h                            ; ba a0 00
    98329837    mov ax, strict word 00040h                ; b8 40 00
    9833     call 01660h                               ; e8 43 ad
     9838    call 01660h                               ; e8 1b ad
    98349839    mov bx, word [bp+014h]                    ; 8b 5e 14
    98359840    mov dx, 00098h                            ; ba 98 00
    98369841    mov ax, strict word 00040h                ; b8 40 00
    9837     call 0167ch                               ; e8 53 ad
     9842    call 0167ch                               ; e8 2b ad
    98389843    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    98399844    mov dx, 0009ah                            ; ba 9a 00
    98409845    mov ax, strict word 00040h                ; b8 40 00
    9841     call 0167ch                               ; e8 47 ad
     9846    call 0167ch                               ; e8 1f ad
    98429847    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    98439848    mov dx, 0009ch                            ; ba 9c 00
    98449849    mov ax, strict word 00040h                ; b8 40 00
    9845     call 0167ch                               ; e8 3b ad
     9850    call 0167ch                               ; e8 13 ad
    98469851    mov bx, word [bp+010h]                    ; 8b 5e 10
    98479852    mov dx, 0009eh                            ; ba 9e 00
    98489853    mov ax, strict word 00040h                ; b8 40 00
    9849     call 0167ch                               ; e8 2f ad
     9854    call 0167ch                               ; e8 07 ad
    98509855    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    98519856    mov dx, 000a1h                            ; ba a1 00
     
    98569861    out DX, AL                                ; ee
    98579862    mov ax, strict word 0000bh                ; b8 0b 00
    9858     call 016aeh                               ; e8 4e ad
     9863    call 016aeh                               ; e8 26 ad
    98599864    mov dl, al                                ; 88 c2
    98609865    or dl, 040h                               ; 80 ca 40
    98619866    xor dh, dh                                ; 30 f6
    98629867    mov ax, strict word 0000bh                ; b8 0b 00
    9863     call 016c9h                               ; e8 5c ad
    9864     jmp near 068e7h                           ; e9 77 ff
    9865     jmp near 06aadh                           ; e9 3a 01
     9868    call 016c9h                               ; e8 34 ad
     9869    jmp near 0690fh                           ; e9 77 ff
     9870    jmp near 06ad5h                           ; e9 3a 01
    98669871    cmp ax, strict word 00001h                ; 3d 01 00
    9867     jne short 06994h                          ; 75 1c
     9872    jne short 069bch                          ; 75 1c
    98689873    xor bx, bx                                ; 31 db
    98699874    mov dx, 000a0h                            ; ba a0 00
    98709875    mov ax, strict word 00040h                ; b8 40 00
    9871     call 01660h                               ; e8 dd ac
     9876    call 01660h                               ; e8 b5 ac
    98729877    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    98739878    mov ax, strict word 0000bh                ; b8 0b 00
    9874     call 016aeh                               ; e8 21 ad
     9879    call 016aeh                               ; e8 f9 ac
    98759880    mov dl, al                                ; 88 c2
    98769881    and dl, 0bfh                              ; 80 e2 bf
    9877     jmp short 06965h                          ; eb d1
     9882    jmp short 0698dh                          ; eb d1
    98789883    mov word [bp+018h], dx                    ; 89 56 18
    98799884    mov ax, bx                                ; 89 d8
     
    98839888    or bx, ax                                 ; 09 c3
    98849889    mov word [bp+012h], bx                    ; 89 5e 12
    9885     jmp near 068e7h                           ; e9 41 ff
     9890    jmp near 0690fh                           ; e9 41 ff
    98869891    mov ax, strict word 00031h                ; b8 31 00
    9887     call 016aeh                               ; e8 02 ad
     9892    call 016aeh                               ; e8 da ac
    98889893    mov dh, al                                ; 88 c6
    98899894    mov ax, strict word 00030h                ; b8 30 00
    9890     call 016aeh                               ; e8 fa ac
     9895    call 016aeh                               ; e8 d2 ac
    98919896    mov dl, al                                ; 88 c2
    98929897    mov word [bp+012h], dx                    ; 89 56 12
    98939898    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9894     jbe short 069c3h                          ; 76 05
     9899    jbe short 069ebh                          ; 76 05
    98959900    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    98969901    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9897     jmp near 068e7h                           ; e9 1d ff
     9902    jmp near 0690fh                           ; e9 1d ff
    98989903    cli                                       ; fa
    98999904    mov ax, strict word 00001h                ; b8 01 00
    9900     call 0674ah                               ; e8 79 fd
     9905    call 06772h                               ; e8 79 fd
    99019906    mov dx, word [bp+006h]                    ; 8b 56 06
    99029907    add dx, strict byte 00038h                ; 83 c2 38
    99039908    mov ax, word [bp+014h]                    ; 8b 46 14
    99049909    mov bx, strict word 0ffffh                ; bb ff ff
    9905     call 0167ch                               ; e8 9c ac
     9910    call 0167ch                               ; e8 74 ac
    99069911    mov dx, word [bp+006h]                    ; 8b 56 06
    99079912    add dx, strict byte 0003ah                ; 83 c2 3a
    99089913    mov ax, word [bp+014h]                    ; 8b 46 14
    99099914    xor bx, bx                                ; 31 db
    9910     call 0167ch                               ; e8 8e ac
     9915    call 0167ch                               ; e8 66 ac
    99119916    mov dx, word [bp+006h]                    ; 8b 56 06
    99129917    add dx, strict byte 0003ch                ; 83 c2 3c
    99139918    mov ax, word [bp+014h]                    ; 8b 46 14
    99149919    mov bx, strict word 0000fh                ; bb 0f 00
    9915     call 01660h                               ; e8 63 ac
     9920    call 01660h                               ; e8 3b ac
    99169921    mov dx, word [bp+006h]                    ; 8b 56 06
    99179922    add dx, strict byte 0003dh                ; 83 c2 3d
    99189923    mov ax, word [bp+014h]                    ; 8b 46 14
    99199924    mov bx, 0009bh                            ; bb 9b 00
    9920     call 01660h                               ; e8 54 ac
     9925    call 01660h                               ; e8 2c ac
    99219926    mov dx, word [bp+006h]                    ; 8b 56 06
    99229927    add dx, strict byte 0003eh                ; 83 c2 3e
    99239928    mov ax, word [bp+014h]                    ; 8b 46 14
    99249929    xor bx, bx                                ; 31 db
    9925     call 0167ch                               ; e8 62 ac
     9930    call 0167ch                               ; e8 3a ac
    99269931    mov AL, strict byte 011h                  ; b0 11
    99279932    mov dx, strict word 00020h                ; ba 20 00
     
    99529957    out DX, AL                                ; ee
    99539958    mov si, word [bp+006h]                    ; 8b 76 06
    9954     call 06a58h                               ; e8 00 00
     9959    call 06a80h                               ; e8 00 00
    99559960    pop di                                    ; 5f
    99569961    add di, strict byte 00018h                ; 83 c7 18
     
    99809985    push cx                                   ; 51
    99819986    retf                                      ; cb
    9982     jmp near 068e7h                           ; e9 53 fe
     9987    jmp near 0690fh                           ; e9 53 fe
    99839988    mov bx, 00da0h                            ; bb a0 0d
    99849989    mov cx, ds                                ; 8c d9
    99859990    mov ax, strict word 00004h                ; b8 04 00
    9986     call 01933h                               ; e8 94 ae
     9991    call 01933h                               ; e8 6c ae
    99879992    mov ax, 0086eh                            ; b8 6e 08
    99889993    push ax                                   ; 50
    99899994    mov ax, strict word 00004h                ; b8 04 00
    99909995    push ax                                   ; 50
    9991     call 01976h                               ; e8 cc ae
     9996    call 01976h                               ; e8 a4 ae
    99929997    add sp, strict byte 00004h                ; 83 c4 04
    99939998    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    999610001    or ah, 086h                               ; 80 cc 86
    999710002    mov word [bp+012h], ax                    ; 89 46 12
    9998     jmp near 068e7h                           ; e9 28 fe
     10003    jmp near 0690fh                           ; e9 28 fe
    999910004    mov word [bp+018h], cx                    ; 89 4e 18
    1000010005    mov word [bp+012h], ax                    ; 89 46 12
    1000110006    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    1000210007    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    10003     jmp near 068e7h                           ; e9 15 fe
     10008    jmp near 0690fh                           ; e9 15 fe
    1000410009    mov dx, strict word 0000eh                ; ba 0e 00
    1000510010    mov ax, strict word 00040h                ; b8 40 00
    10006     call 0166eh                               ; e8 93 ab
     10011    call 0166eh                               ; e8 6b ab
    1000710012    mov word [bp+014h], ax                    ; 89 46 14
    10008     jmp near 069c3h                           ; e9 e2 fe
     10013    jmp near 069ebh                           ; e9 e2 fe
    1000910014    mov ax, 0089dh                            ; b8 9d 08
    1001010015    push ax                                   ; 50
    1001110016    mov ax, strict word 00008h                ; b8 08 00
    10012     jmp short 06aa6h                          ; eb bc
     10017    jmp short 06aceh                          ; eb bc
    1001310018    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    10014     jne short 06b0fh                          ; 75 1f
     10019    jne short 06b37h                          ; 75 1f
    1001510020    mov word [bp+012h], ax                    ; 89 46 12
    1001610021    mov ax, word [bp+00ch]                    ; 8b 46 0c
    1001710022    xor ah, ah                                ; 30 e4
    1001810023    cmp ax, strict word 00001h                ; 3d 01 00
    10019     jc short 06b08h                           ; 72 0b
     10024    jc short 06b30h                           ; 72 0b
    1002010025    cmp ax, strict word 00003h                ; 3d 03 00
    10021     jnbe short 06b08h                         ; 77 06
     10026    jnbe short 06b30h                         ; 77 06
    1002210027    mov word [bp+018h], cx                    ; 89 4e 18
    10023     jmp near 068e7h                           ; e9 df fd
     10028    jmp near 0690fh                           ; e9 df fd
    1002410029    or byte [bp+018h], 001h                   ; 80 4e 18 01
    10025     jmp near 068e7h                           ; e9 d8 fd
     10030    jmp near 0690fh                           ; e9 d8 fd
    1002610031    mov bx, 00da0h                            ; bb a0 0d
    1002710032    mov cx, ds                                ; 8c d9
    1002810033    mov ax, strict word 00004h                ; b8 04 00
    10029     call 01933h                               ; e8 19 ae
     10034    call 01933h                               ; e8 f1 ad
    1003010035    push word [bp+00ch]                       ; ff 76 0c
    1003110036    push word [bp+012h]                       ; ff 76 12
     
    1003410039    mov ax, strict word 00004h                ; b8 04 00
    1003510040    push ax                                   ; 50
    10036     call 01976h                               ; e8 4b ae
     10041    call 01976h                               ; e8 23 ae
    1003710042    add sp, strict byte 00008h                ; 83 c4 08
    10038     jmp near 06aadh                           ; e9 7c ff
    10039     scasb                                     ; ae
     10043    jmp near 06ad5h                           ; e9 7c ff
     10044    db  0d6h
    1004010045    insb                                      ; 6c
    10041     fsubr dword [si+030h]                     ; d8 6c 30
     10046    add byte [di+058h], ch                    ; 00 6d 58
    1004210047    insw                                      ; 6d
    10043     push bp                                   ; 55
     10048    jnl short 06bceh                          ; 7d 6d
     10049    popfw                                     ; 9d
    1004410050    insw                                      ; 6d
    10045     jne short 06ba8h                          ; 75 6d
    10046     xchg sp, ax                               ; 94
     10051    mov sp, 0e26dh                            ; bc 6d e2
    1004710052    insw                                      ; 6d
    10048     mov dx, 0e06dh                            ; ba 6d e0
    10049     insw                                      ; 6d
    10050     sbb ax, 0516eh                            ; 1d 6e 51
     10053    or byte [bp+045h], ch                     ; 08 6e 45
    1005110054    outsb                                     ; 6e
    10052 _int15_function32:                           ; 0xf6b45 LB 0x39e
     10055    jns short 06bdbh                          ; 79 6e
     10056_int15_function32:                           ; 0xf6b6d LB 0x39e
    1005310057    push bp                                   ; 55
    1005410058    mov bp, sp                                ; 89 e5
     
    1006210066    xor dh, dh                                ; 30 f6
    1006310067    cmp ax, 000e8h                            ; 3d e8 00
    10064     je short 06babh                           ; 74 4a
     10068    je short 06bd3h                           ; 74 4a
    1006510069    cmp ax, 000d0h                            ; 3d d0 00
    10066     je short 06b78h                           ; 74 12
     10070    je short 06ba0h                           ; 74 12
    1006710071    cmp ax, 00086h                            ; 3d 86 00
    10068     jne short 06ba9h                          ; 75 3e
     10072    jne short 06bd1h                          ; 75 3e
    1006910073    sti                                       ; fb
    1007010074    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1007110075    mov ax, word [bp+018h]                    ; 8b 46 18
    10072     call 06707h                               ; e8 92 fb
    10073     jmp near 06d2ah                           ; e9 b2 01
     10076    call 0672fh                               ; e8 92 fb
     10077    jmp near 06d52h                           ; e9 b2 01
    1007410078    cmp dx, strict byte 0004fh                ; 83 fa 4f
    10075     jne short 06ba9h                          ; 75 2c
     10079    jne short 06bd1h                          ; 75 2c
    1007610080    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    10077     jne short 06bdfh                          ; 75 5b
     10081    jne short 06c07h                          ; 75 5b
    1007810082    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    10079     jne short 06bdfh                          ; 75 54
     10083    jne short 06c07h                          ; 75 54
    1008010084    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    10081     jne short 06bdfh                          ; 75 4d
     10085    jne short 06c07h                          ; 75 4d
    1008210086    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    10083     jne short 06bdfh                          ; 75 46
     10087    jne short 06c07h                          ; 75 46
    1008410088    mov ax, word [bp+00ah]                    ; 8b 46 0a
    1008510089    or ax, word [bp+008h]                     ; 0b 46 08
    10086     jne short 06bdfh                          ; 75 3e
     10090    jne short 06c07h                          ; 75 3e
    1008710091    mov ax, word [bp+006h]                    ; 8b 46 06
    1008810092    or ax, word [bp+004h]                     ; 0b 46 04
    10089     je short 06badh                           ; 74 04
    10090     jmp short 06bdfh                          ; eb 34
    10091     jmp short 06bd5h                          ; eb 28
     10093    je short 06bd5h                           ; 74 04
     10094    jmp short 06c07h                          ; eb 34
     10095    jmp short 06bfdh                          ; eb 28
    1009210096    mov word [bp+028h], bx                    ; 89 5e 28
    1009310097    mov ax, word [bp+014h]                    ; 8b 46 14
     
    1010110105    mov word [bp+020h], 03332h                ; c7 46 20 32 33
    1010210106    mov word [bp+022h], 04941h                ; c7 46 22 41 49
    10103     jmp near 06d2ah                           ; e9 55 01
     10107    jmp near 06d52h                           ; e9 55 01
    1010410108    cmp dx, strict byte 00020h                ; 83 fa 20
    10105     je short 06be5h                           ; 74 0b
     10109    je short 06c0dh                           ; 74 0b
    1010610110    cmp dx, strict byte 00001h                ; 83 fa 01
    10107     je short 06be2h                           ; 74 03
    10108     jmp near 06cfdh                           ; e9 1b 01
    10109     jmp near 06ea3h                           ; e9 be 02
     10111    je short 06c0ah                           ; 74 03
     10112    jmp near 06d25h                           ; e9 1b 01
     10113    jmp near 06ecbh                           ; e9 be 02
    1011010114    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    10111     jne short 06bdfh                          ; 75 f3
     10115    jne short 06c07h                          ; 75 f3
    1011210116    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    10113     jne short 06bdfh                          ; 75 ec
     10117    jne short 06c07h                          ; 75 ec
    1011410118    mov ax, strict word 00035h                ; b8 35 00
    10115     call 016aeh                               ; e8 b5 aa
     10119    call 016aeh                               ; e8 8d aa
    1011610120    mov bl, al                                ; 88 c3
    1011710121    xor bh, bh                                ; 30 ff
     
    1012010124    sal bx, 1                                 ; d1 e3
    1012110125    rcl dx, 1                                 ; d1 d2
    10122     loop 06c02h                               ; e2 fa
     10126    loop 06c2ah                               ; e2 fa
    1012310127    mov ax, strict word 00034h                ; b8 34 00
    10124     call 016aeh                               ; e8 a0 aa
     10128    call 016aeh                               ; e8 78 aa
    1012510129    xor ah, ah                                ; 30 e4
    1012610130    mov dx, bx                                ; 89 da
     
    1013010134    adc dx, 00100h                            ; 81 d2 00 01
    1013110135    cmp dx, 00100h                            ; 81 fa 00 01
    10132     jc short 06c28h                           ; 72 06
    10133     jne short 06c56h                          ; 75 32
     10136    jc short 06c50h                           ; 72 06
     10137    jne short 06c7eh                          ; 75 32
    1013410138    test bx, bx                               ; 85 db
    10135     jnbe short 06c56h                         ; 77 2e
     10139    jnbe short 06c7eh                         ; 77 2e
    1013610140    mov ax, strict word 00031h                ; b8 31 00
    10137     call 016aeh                               ; e8 80 aa
     10141    call 016aeh                               ; e8 58 aa
    1013810142    mov bl, al                                ; 88 c3
    1013910143    xor bh, bh                                ; 30 ff
     
    1014210146    sal bx, 1                                 ; d1 e3
    1014310147    rcl dx, 1                                 ; d1 d2
    10144     loop 06c37h                               ; e2 fa
     10148    loop 06c5fh                               ; e2 fa
    1014510149    mov ax, strict word 00030h                ; b8 30 00
    10146     call 016aeh                               ; e8 6b aa
     10150    call 016aeh                               ; e8 43 aa
    1014710151    xor ah, ah                                ; 30 e4
    1014810152    or bx, ax                                 ; 09 c3
     
    1015010154    sal bx, 1                                 ; d1 e3
    1015110155    rcl dx, 1                                 ; d1 d2
    10152     loop 06c4ah                               ; e2 fa
     10156    loop 06c72h                               ; e2 fa
    1015310157    add bx, strict byte 00000h                ; 83 c3 00
    1015410158    adc dx, strict byte 00010h                ; 83 d2 10
    1015510159    mov ax, strict word 00062h                ; b8 62 00
    10156     call 016aeh                               ; e8 52 aa
     10160    call 016aeh                               ; e8 2a aa
    1015710161    xor ah, ah                                ; 30 e4
    1015810162    mov word [bp-00ah], ax                    ; 89 46 f6
     
    1016210166    sal word [bp-00ah], 1                     ; d1 66 f6
    1016310167    rcl word [bp-008h], 1                     ; d1 56 f8
    10164     loop 06c69h                               ; e2 f8
     10168    loop 06c91h                               ; e2 f8
    1016510169    mov ax, strict word 00061h                ; b8 61 00
    10166     call 016aeh                               ; e8 37 aa
     10170    call 016aeh                               ; e8 0f aa
    1016710171    xor ah, ah                                ; 30 e4
    1016810172    or word [bp-00ah], ax                     ; 09 46 f6
     
    1017110175    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    1017210176    mov ax, strict word 00063h                ; b8 63 00
    10173     call 016aeh                               ; e8 21 aa
     10177    call 016aeh                               ; e8 f9 a9
    1017410178    mov byte [bp-004h], al                    ; 88 46 fc
    1017510179    mov byte [bp-006h], al                    ; 88 46 fa
    1017610180    mov ax, word [bp+014h]                    ; 8b 46 14
    1017710181    cmp ax, strict word 00009h                ; 3d 09 00
    10178     jnbe short 06cfdh                         ; 77 62
     10182    jnbe short 06d25h                         ; 77 62
    1017910183    mov si, ax                                ; 89 c6
    1018010184    sal si, 1                                 ; d1 e6
     
    1018310187    mov cx, dx                                ; 89 d1
    1018410188    adc cx, strict byte 0ffffh                ; 83 d1 ff
    10185     jmp word [cs:si+06b31h]                   ; 2e ff a4 31 6b
     10189    jmp word [cs:si+06b59h]                   ; 2e ff a4 59 6b
    1018610190    mov ax, strict word 00001h                ; b8 01 00
    1018710191    push ax                                   ; 50
     
    1019710201    xor bx, bx                                ; 31 db
    1019810202    xor cx, cx                                ; 31 c9
    10199     call 0677ah                               ; e8 af fa
     10203    call 067a2h                               ; e8 af fa
    1020010204    mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
    1020110205    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    10202     jmp near 06e88h                           ; e9 b0 01
     10206    jmp near 06eb0h                           ; e9 b0 01
    1020310207    mov ax, strict word 00002h                ; b8 02 00
    1020410208    push ax                                   ; 50
     
    1021410218    mov bx, 0fc00h                            ; bb 00 fc
    1021510219    mov cx, strict word 00009h                ; b9 09 00
    10216     call 0677ah                               ; e8 84 fa
     10220    call 067a2h                               ; e8 84 fa
    1021710221    mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
    10218     jmp short 06cd0h                          ; eb d3
     10222    jmp short 06cf8h                          ; eb d3
    1021910223    mov bx, 00da0h                            ; bb a0 0d
    1022010224    mov cx, ds                                ; 8c d9
    1022110225    mov ax, strict word 00004h                ; b8 04 00
    10222     call 01933h                               ; e8 2b ac
     10226    call 01933h                               ; e8 03 ac
    1022310227    push word [bp+014h]                       ; ff 76 14
    1022410228    push word [bp+020h]                       ; ff 76 20
     
    1022710231    mov ax, strict word 00004h                ; b8 04 00
    1022810232    push ax                                   ; 50
    10229     call 01976h                               ; e8 5d ac
     10233    call 01976h                               ; e8 35 ac
    1023010234    add sp, strict byte 00008h                ; 83 c4 08
    1023110235    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    1025110255    xor bx, bx                                ; 31 db
    1025210256    mov cx, strict word 0000fh                ; b9 0f 00
    10253     call 0677ah                               ; e8 2d fa
     10257    call 067a2h                               ; e8 2d fa
    1025410258    mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
    10255     jmp near 06cd0h                           ; e9 7b ff
     10259    jmp near 06cf8h                           ; e9 7b ff
    1025610260    mov dx, strict word 00001h                ; ba 01 00
    1025710261    push dx                                   ; 52
     
    1026510269    xor bx, bx                                ; 31 db
    1026610270    mov cx, strict word 00010h                ; b9 10 00
    10267     call 0677ah                               ; e8 0d fa
     10271    call 067a2h                               ; e8 0d fa
    1026810272    mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
    10269     jmp near 06cd0h                           ; e9 5b ff
     10273    jmp near 06cf8h                           ; e9 5b ff
    1027010274    mov si, strict word 00003h                ; be 03 00
    1027110275    push si                                   ; 56
     
    1027910283    mov bx, ax                                ; 89 c3
    1028010284    mov ax, si                                ; 89 f0
    10281     call 0677ah                               ; e8 ee f9
     10285    call 067a2h                               ; e8 ee f9
    1028210286    mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
    10283     jmp near 06cd0h                           ; e9 3c ff
     10287    jmp near 06cf8h                           ; e9 3c ff
    1028410288    mov ax, strict word 00002h                ; b8 02 00
    1028510289    push ax                                   ; 50
     
    1029510299    xor bx, bx                                ; 31 db
    1029610300    mov cx, 0fec0h                            ; b9 c0 fe
    10297     call 0677ah                               ; e8 c8 f9
     10301    call 067a2h                               ; e8 c8 f9
    1029810302    mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
    10299     jmp near 06cd0h                           ; e9 16 ff
     10303    jmp near 06cf8h                           ; e9 16 ff
    1030010304    mov ax, strict word 00002h                ; b8 02 00
    1030110305    push ax                                   ; 50
     
    1031110315    xor bx, bx                                ; 31 db
    1031210316    mov cx, 0fee0h                            ; b9 e0 fe
    10313     call 0677ah                               ; e8 a2 f9
     10317    call 067a2h                               ; e8 a2 f9
    1031410318    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    10315     jmp near 06cd0h                           ; e9 f0 fe
     10319    jmp near 06cf8h                           ; e9 f0 fe
    1031610320    mov ax, strict word 00002h                ; b8 02 00
    1031710321    push ax                                   ; 50
     
    1032510329    xor bx, bx                                ; 31 db
    1032610330    mov cx, strict word 0fffch                ; b9 fc ff
    10327     call 0677ah                               ; e8 82 f9
     10331    call 067a2h                               ; e8 82 f9
    1032810332    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10329     jne short 06e05h                          ; 75 07
     10333    jne short 06e2dh                          ; 75 07
    1033010334    mov ax, word [bp-008h]                    ; 8b 46 f8
    1033110335    test ax, ax                               ; 85 c0
    10332     je short 06e15h                           ; 74 10
     10336    je short 06e3dh                           ; 74 10
    1033310337    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10334     jmp near 06cd0h                           ; e9 c3 fe
     10338    jmp near 06cf8h                           ; e9 c3 fe
    1033510339    mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
    10336     jmp near 06cd0h                           ; e9 bb fe
     10340    jmp near 06cf8h                           ; e9 bb fe
    1033710341    mov word [bp+014h], ax                    ; 89 46 14
    1033810342    mov word [bp+016h], ax                    ; 89 46 16
    10339     jmp short 06e88h                          ; eb 6b
     10343    jmp short 06eb0h                          ; eb 6b
    1034010344    mov ax, strict word 00002h                ; b8 02 00
    1034110345    push ax                                   ; 50
     
    1034910353    xor bx, bx                                ; 31 db
    1035010354    xor cx, cx                                ; 31 c9
    10351     call 0677ah                               ; e8 46 f9
     10355    call 067a2h                               ; e8 46 f9
    1035210356    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10353     jne short 06e41h                          ; 75 07
     10357    jne short 06e69h                          ; 75 07
    1035410358    mov ax, word [bp-008h]                    ; 8b 46 f8
    1035510359    test ax, ax                               ; 85 c0
    10356     je short 06e49h                           ; 74 08
     10360    je short 06e71h                           ; 74 08
    1035710361    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10358     jmp near 06cd0h                           ; e9 87 fe
     10362    jmp near 06cf8h                           ; e9 87 fe
    1035910363    mov word [bp+014h], ax                    ; 89 46 14
    1036010364    mov word [bp+016h], ax                    ; 89 46 16
    10361     jmp short 06e88h                          ; eb 37
     10365    jmp short 06eb0h                          ; eb 37
    1036210366    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10363     jne short 06e5dh                          ; 75 06
     10367    jne short 06e85h                          ; 75 06
    1036410368    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    10365     je short 06e88h                           ; 74 2b
     10369    je short 06eb0h                           ; 74 2b
    1036610370    mov ax, strict word 00001h                ; b8 01 00
    1036710371    push ax                                   ; 50
     
    1037910383    xor bx, bx                                ; 31 db
    1038010384    xor cx, cx                                ; 31 c9
    10381     call 0677ah                               ; e8 fa f8
     10385    call 067a2h                               ; e8 fa f8
    1038210386    xor ax, ax                                ; 31 c0
    1038310387    mov word [bp+014h], ax                    ; 89 46 14
     
    1038810392    mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
    1038910393    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    10390     jmp near 06d2ah                           ; e9 87 fe
     10394    jmp near 06d52h                           ; e9 87 fe
    1039110395    mov word [bp+028h], bx                    ; 89 5e 28
    1039210396    mov ax, strict word 00031h                ; b8 31 00
    10393     call 016aeh                               ; e8 02 a8
     10397    call 016aeh                               ; e8 da a7
    1039410398    mov dh, al                                ; 88 c6
    1039510399    mov ax, strict word 00030h                ; b8 30 00
    10396     call 016aeh                               ; e8 fa a7
     10400    call 016aeh                               ; e8 d2 a7
    1039710401    mov dl, al                                ; 88 c2
    1039810402    mov word [bp+01ch], dx                    ; 89 56 1c
    1039910403    cmp dx, 03c00h                            ; 81 fa 00 3c
    10400     jbe short 06ec4h                          ; 76 05
     10404    jbe short 06eech                          ; 76 05
    1040110405    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    1040210406    mov ax, strict word 00035h                ; b8 35 00
    10403     call 016aeh                               ; e8 e4 a7
     10407    call 016aeh                               ; e8 bc a7
    1040410408    mov dh, al                                ; 88 c6
    1040510409    mov ax, strict word 00034h                ; b8 34 00
    10406     call 016aeh                               ; e8 dc a7
     10410    call 016aeh                               ; e8 b4 a7
    1040710411    mov dl, al                                ; 88 c2
    1040810412    mov word [bp+018h], dx                    ; 89 56 18
     
    1041010414    mov word [bp+020h], ax                    ; 89 46 20
    1041110415    mov word [bp+014h], dx                    ; 89 56 14
    10412     jmp near 06d2ah                           ; e9 47 fe
    10413 _inv_op_handler:                             ; 0xf6ee3 LB 0x18f
     10416    jmp near 06d52h                           ; e9 47 fe
     10417_inv_op_handler:                             ; 0xf6f0b LB 0x18f
    1041410418    push bp                                   ; 55
    1041510419    mov bp, sp                                ; 89 e5
     
    1042010424    les bx, [bp+018h]                         ; c4 5e 18
    1042110425    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10422     jne short 06ef9h                          ; 75 06
     10426    jne short 06f21h                          ; 75 06
    1042310427    inc word [bp+018h]                        ; ff 46 18
    10424     jmp near 0706bh                           ; e9 72 01
     10428    jmp near 07093h                           ; e9 72 01
    1042510429    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10426     je short 06f03h                           ; 74 03
    10427     jmp near 07067h                           ; e9 64 01
     10430    je short 06f2bh                           ; 74 03
     10431    jmp near 0708fh                           ; e9 64 01
    1042810432    mov si, 00800h                            ; be 00 08
    1042910433    xor ax, ax                                ; 31 c0
     
    1045410458    sal ax, 1                                 ; d1 e0
    1045510459    rcl dx, 1                                 ; d1 d2
    10456     loop 06f54h                               ; e2 fa
     10460    loop 06f7ch                               ; e2 fa
    1045710461    cmp bx, dx                                ; 39 d3
    10458     jne short 06f62h                          ; 75 04
     10462    jne short 06f8ah                          ; 75 04
    1045910463    cmp di, ax                                ; 39 c7
    10460     je short 06f67h                           ; 74 05
     10464    je short 06f8fh                           ; 74 05
    1046110465    mov word [bp-006h], strict word 00001h    ; c7 46 fa 01 00
    1046210466    mov es, [bp-008h]                         ; 8e 46 f8
     
    1046910473    sal ax, 1                                 ; d1 e0
    1047010474    rcl dx, 1                                 ; d1 d2
    10471     loop 06f7dh                               ; e2 fa
     10475    loop 06fa5h                               ; e2 fa
    1047210476    cmp bx, dx                                ; 39 d3
    10473     jne short 06f8bh                          ; 75 04
     10477    jne short 06fb3h                          ; 75 04
    1047410478    cmp di, ax                                ; 39 c7
    10475     je short 06f8fh                           ; 74 04
     10479    je short 06fb7h                           ; 74 04
    1047610480    or byte [bp-006h], 002h                   ; 80 4e fa 02
    1047710481    xor ax, ax                                ; 31 c0
     
    1052310527    mov ax, strict word 00008h                ; b8 08 00
    1052410528    test cx, strict word 00001h               ; f7 c1 01 00
    10525     je near 07024h                            ; 0f 84 02 00
     10529    je near 0704ch                            ; 0f 84 02 00
    1052610530    mov es, ax                                ; 8e c0
    1052710531    test cx, strict word 00002h               ; f7 c1 02 00
    10528     je near 0704ch                            ; 0f 84 20 00
     10532    je near 07074h                            ; 0f 84 20 00
    1052910533    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1053010534    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1054310547    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1054410548    iret                                      ; cf
    10545     jmp short 0706bh                          ; eb 04
     10549    jmp short 07093h                          ; eb 04
    1054610550    sti                                       ; fb
    1054710551    hlt                                       ; f4
    10548     jmp short 07068h                          ; eb fd
     10552    jmp short 07090h                          ; eb fd
    1054910553    lea sp, [bp-004h]                         ; 8d 66 fc
    1055010554    pop di                                    ; 5f
     
    1055210556    pop bp                                    ; 5d
    1055310557    retn                                      ; c3
    10554 init_rtc_:                                   ; 0xf7072 LB 0x28
     10558init_rtc_:                                   ; 0xf709a LB 0x28
    1055510559    push bp                                   ; 55
    1055610560    mov bp, sp                                ; 89 e5
     
    1055810562    mov dx, strict word 00026h                ; ba 26 00
    1055910563    mov ax, strict word 0000ah                ; b8 0a 00
    10560     call 016c9h                               ; e8 4a a6
     10564    call 016c9h                               ; e8 22 a6
    1056110565    mov dx, strict word 00002h                ; ba 02 00
    1056210566    mov ax, strict word 0000bh                ; b8 0b 00
    10563     call 016c9h                               ; e8 41 a6
     10567    call 016c9h                               ; e8 19 a6
    1056410568    mov ax, strict word 0000ch                ; b8 0c 00
    10565     call 016aeh                               ; e8 20 a6
     10569    call 016aeh                               ; e8 f8 a5
    1056610570    mov ax, strict word 0000dh                ; b8 0d 00
    10567     call 016aeh                               ; e8 1a a6
     10571    call 016aeh                               ; e8 f2 a5
    1056810572    lea sp, [bp-002h]                         ; 8d 66 fe
    1056910573    pop dx                                    ; 5a
    1057010574    pop bp                                    ; 5d
    1057110575    retn                                      ; c3
    10572 rtc_updating_:                               ; 0xf709a LB 0x21
     10576rtc_updating_:                               ; 0xf70c2 LB 0x21
    1057310577    push bp                                   ; 55
    1057410578    mov bp, sp                                ; 89 e5
     
    1057610580    mov dx, 061a8h                            ; ba a8 61
    1057710581    dec dx                                    ; 4a
    10578     je short 070b2h                           ; 74 0e
     10582    je short 070dah                           ; 74 0e
    1057910583    mov ax, strict word 0000ah                ; b8 0a 00
    10580     call 016aeh                               ; e8 04 a6
     10584    call 016aeh                               ; e8 dc a5
    1058110585    test AL, strict byte 080h                 ; a8 80
    10582     jne short 070a1h                          ; 75 f3
     10586    jne short 070c9h                          ; 75 f3
    1058310587    xor ax, ax                                ; 31 c0
    10584     jmp short 070b5h                          ; eb 03
     10588    jmp short 070ddh                          ; eb 03
    1058510589    mov ax, strict word 00001h                ; b8 01 00
    1058610590    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1058810592    pop bp                                    ; 5d
    1058910593    retn                                      ; c3
    10590 _int70_function:                             ; 0xf70bb LB 0xbf
     10594_int70_function:                             ; 0xf70e3 LB 0xbf
    1059110595    push bp                                   ; 55
    1059210596    mov bp, sp                                ; 89 e5
     
    1059410598    push ax                                   ; 50
    1059510599    mov ax, strict word 0000bh                ; b8 0b 00
    10596     call 016aeh                               ; e8 e8 a5
     10600    call 016aeh                               ; e8 c0 a5
    1059710601    mov bl, al                                ; 88 c3
    1059810602    mov byte [bp-004h], al                    ; 88 46 fc
    1059910603    mov ax, strict word 0000ch                ; b8 0c 00
    10600     call 016aeh                               ; e8 dd a5
     10604    call 016aeh                               ; e8 b5 a5
    1060110605    mov dl, al                                ; 88 c2
    1060210606    test bl, 060h                             ; f6 c3 60
    10603     jne short 070dbh                          ; 75 03
    10604     jmp near 07161h                           ; e9 86 00
     10607    jne short 07103h                          ; 75 03
     10608    jmp near 07189h                           ; e9 86 00
    1060510609    test AL, strict byte 020h                 ; a8 20
    10606     je short 070e3h                           ; 74 04
     10610    je short 0710bh                           ; 74 04
    1060710611    sti                                       ; fb
    1060810612    int 04ah                                  ; cd 4a
    1060910613    cli                                       ; fa
    1061010614    test dl, 040h                             ; f6 c2 40
    10611     je short 0714bh                           ; 74 63
     10615    je short 07173h                           ; 74 63
    1061210616    mov dx, 000a0h                            ; ba a0 00
    1061310617    mov ax, strict word 00040h                ; b8 40 00
    10614     call 01652h                               ; e8 61 a5
     10618    call 01652h                               ; e8 39 a5
    1061510619    test al, al                               ; 84 c0
    10616     je short 07161h                           ; 74 6c
     10620    je short 07189h                           ; 74 6c
    1061710621    mov dx, 0009ch                            ; ba 9c 00
    1061810622    mov ax, strict word 00040h                ; b8 40 00
    10619     call 0168ah                               ; e8 8c a5
     10623    call 0168ah                               ; e8 64 a5
    1062010624    test dx, dx                               ; 85 d2
    10621     jne short 0714dh                          ; 75 4b
     10625    jne short 07175h                          ; 75 4b
    1062210626    cmp ax, 003d1h                            ; 3d d1 03
    10623     jnc short 0714dh                          ; 73 46
     10627    jnc short 07175h                          ; 73 46
    1062410628    mov dx, 00098h                            ; ba 98 00
    1062510629    mov ax, strict word 00040h                ; b8 40 00
    10626     call 0166eh                               ; e8 5e a5
     10630    call 0166eh                               ; e8 36 a5
    1062710631    mov si, ax                                ; 89 c6
    1062810632    mov dx, 0009ah                            ; ba 9a 00
    1062910633    mov ax, strict word 00040h                ; b8 40 00
    10630     call 0166eh                               ; e8 53 a5
     10634    call 0166eh                               ; e8 2b a5
    1063110635    mov cx, ax                                ; 89 c1
    1063210636    xor bx, bx                                ; 31 db
    1063310637    mov dx, 000a0h                            ; ba a0 00
    1063410638    mov ax, strict word 00040h                ; b8 40 00
    10635     call 01660h                               ; e8 38 a5
     10639    call 01660h                               ; e8 10 a5
    1063610640    mov dl, byte [bp-004h]                    ; 8a 56 fc
    1063710641    and dl, 037h                              ; 80 e2 37
    1063810642    xor dh, dh                                ; 30 f6
    1063910643    mov ax, strict word 0000bh                ; b8 0b 00
    10640     call 016c9h                               ; e8 93 a5
     10644    call 016c9h                               ; e8 6b a5
    1064110645    mov dx, cx                                ; 89 ca
    1064210646    mov ax, si                                ; 89 f0
    10643     call 01652h                               ; e8 15 a5
     10647    call 01652h                               ; e8 ed a4
    1064410648    mov bl, al                                ; 88 c3
    1064510649    or bl, 080h                               ; 80 cb 80
     
    1064710651    mov dx, cx                                ; 89 ca
    1064810652    mov ax, si                                ; 89 f0
    10649     call 01660h                               ; e8 15 a5
    10650     jmp short 07161h                          ; eb 14
     10653    call 01660h                               ; e8 ed a4
     10654    jmp short 07189h                          ; eb 14
    1065110655    mov bx, ax                                ; 89 c3
    1065210656    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1065510659    mov dx, 0009ch                            ; ba 9c 00
    1065610660    mov ax, strict word 00040h                ; b8 40 00
    10657     call 0169ch                               ; e8 3b a5
    10658     call 0e030h                               ; e8 cc 6e
     10661    call 0169ch                               ; e8 13 a5
     10662    call 0e030h                               ; e8 a4 6e
    1065910663    lea sp, [bp-002h]                         ; 8d 66 fe
    1066010664    pop si                                    ; 5e
    1066110665    pop bp                                    ; 5d
    1066210666    retn                                      ; c3
    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
     10667    mov ax, 0df71h                            ; b8 71 df
     10668    jno short 0719bh                          ; 71 04
     10669    jc short 071d9h                           ; 72 40
     10670    jc short 0712dh                           ; 72 92
     10671    jc short 07166h                           ; 72 c9
     10672    jc short 071afh                           ; 72 10
     10673    jnc short 0720ch                          ; 73 6b
    1067110674    db  073h
    10672 _int1a_function:                             ; 0xf717a LB 0x1d9
     10675_int1a_function:                             ; 0xf71a2 LB 0x1d9
    1067310676    push bp                                   ; 55
    1067410677    mov bp, sp                                ; 89 e5
     
    1067610679    mov al, byte [bp+013h]                    ; 8a 46 13
    1067710680    cmp AL, strict byte 007h                  ; 3c 07
    10678     jnbe short 071e3h                         ; 77 5e
     10681    jnbe short 0720bh                         ; 77 5e
    1067910682    mov bl, al                                ; 88 c3
    1068010683    xor bh, bh                                ; 30 ff
    1068110684    sal bx, 1                                 ; d1 e3
    10682     jmp word [cs:bx+0716ah]                   ; 2e ff a7 6a 71
     10685    jmp word [cs:bx+07192h]                   ; 2e ff a7 92 71
    1068310686    cli                                       ; fa
    1068410687    mov bx, 0046eh                            ; bb 6e 04
     
    1069510698    mov byte [es:bx], 000h                    ; 26 c6 07 00
    1069610699    sti                                       ; fb
    10697     jmp short 071e3h                          ; eb 2c
     10700    jmp short 0720bh                          ; eb 2c
    1069810701    cli                                       ; fa
    1069910702    mov bx, 0046eh                            ; bb 6e 04
     
    1070910712    sti                                       ; fb
    1071010713    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10711     jmp short 071e3h                          ; eb 07
    10712     call 0709ah                               ; e8 bb fe
     10714    jmp short 0720bh                          ; eb 07
     10715    call 070c2h                               ; e8 bb fe
    1071310716    test ax, ax                               ; 85 c0
    10714     je short 071e6h                           ; 74 03
    10715     jmp near 07214h                           ; e9 2e 00
     10717    je short 0720eh                           ; 74 03
     10718    jmp near 0723ch                           ; e9 2e 00
    1071610719    xor ax, ax                                ; 31 c0
    10717     call 016aeh                               ; e8 c3 a4
     10720    call 016aeh                               ; e8 9b a4
    1071810721    mov byte [bp+00fh], al                    ; 88 46 0f
    1071910722    mov ax, strict word 00002h                ; b8 02 00
    10720     call 016aeh                               ; e8 ba a4
     10723    call 016aeh                               ; e8 92 a4
    1072110724    mov byte [bp+010h], al                    ; 88 46 10
    1072210725    mov ax, strict word 00004h                ; b8 04 00
    10723     call 016aeh                               ; e8 b1 a4
     10726    call 016aeh                               ; e8 89 a4
    1072410727    mov dl, al                                ; 88 c2
    1072510728    mov byte [bp+011h], al                    ; 88 46 11
    1072610729    mov ax, strict word 0000bh                ; b8 0b 00
    10727     call 016aeh                               ; e8 a6 a4
     10730    call 016aeh                               ; e8 7e a4
    1072810731    and AL, strict byte 001h                  ; 24 01
    1072910732    mov byte [bp+00eh], al                    ; 88 46 0e
     
    1073310736    pop bp                                    ; 5d
    1073410737    retn                                      ; c3
    10735     call 0709ah                               ; e8 7f fe
     10738    call 070c2h                               ; e8 7f fe
    1073610739    test ax, ax                               ; 85 c0
    10737     je short 07222h                           ; 74 03
    10738     call 07072h                               ; e8 50 fe
     10740    je short 0724ah                           ; 74 03
     10741    call 0709ah                               ; e8 50 fe
    1073910742    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1074010743    xor dh, dh                                ; 30 f6
    1074110744    xor ax, ax                                ; 31 c0
    10742     call 016c9h                               ; e8 9d a4
     10745    call 016c9h                               ; e8 75 a4
    1074310746    mov dl, byte [bp+010h]                    ; 8a 56 10
    1074410747    xor dh, dh                                ; 30 f6
    1074510748    mov ax, strict word 00002h                ; b8 02 00
    10746     call 016c9h                               ; e8 92 a4
     10749    call 016c9h                               ; e8 6a a4
    1074710750    mov dl, byte [bp+011h]                    ; 8a 56 11
    1074810751    xor dh, dh                                ; 30 f6
    1074910752    mov ax, strict word 00004h                ; b8 04 00
    10750     call 016c9h                               ; e8 87 a4
     10753    call 016c9h                               ; e8 5f a4
    1075110754    mov ax, strict word 0000bh                ; b8 0b 00
    10752     call 016aeh                               ; e8 66 a4
     10755    call 016aeh                               ; e8 3e a4
    1075310756    mov bl, al                                ; 88 c3
    1075410757    and bl, 060h                              ; 80 e3 60
     
    1076010763    xor dh, dh                                ; 30 f6
    1076110764    mov ax, strict word 0000bh                ; b8 0b 00
    10762     call 016c9h                               ; e8 68 a4
     10765    call 016c9h                               ; e8 40 a4
    1076310766    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1076410767    mov byte [bp+012h], bl                    ; 88 5e 12
    10765     jmp short 07214h                          ; eb aa
     10768    jmp short 0723ch                          ; eb aa
    1076610769    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10767     call 0709ah                               ; e8 29 fe
     10770    call 070c2h                               ; e8 29 fe
    1076810771    test ax, ax                               ; 85 c0
    10769     je short 07277h                           ; 74 02
    10770     jmp short 07214h                          ; eb 9d
     10772    je short 0729fh                           ; 74 02
     10773    jmp short 0723ch                          ; eb 9d
    1077110774    mov ax, strict word 00009h                ; b8 09 00
    10772     call 016aeh                               ; e8 31 a4
     10775    call 016aeh                               ; e8 09 a4
    1077310776    mov byte [bp+010h], al                    ; 88 46 10
    1077410777    mov ax, strict word 00008h                ; b8 08 00
    10775     call 016aeh                               ; e8 28 a4
     10778    call 016aeh                               ; e8 00 a4
    1077610779    mov byte [bp+00fh], al                    ; 88 46 0f
    1077710780    mov ax, strict word 00007h                ; b8 07 00
    10778     call 016aeh                               ; e8 1f a4
     10781    call 016aeh                               ; e8 f7 a3
    1077910782    mov byte [bp+00eh], al                    ; 88 46 0e
    1078010783    mov ax, strict word 00032h                ; b8 32 00
    10781     call 016aeh                               ; e8 16 a4
     10784    call 016aeh                               ; e8 ee a3
    1078210785    mov byte [bp+011h], al                    ; 88 46 11
    1078310786    mov byte [bp+012h], al                    ; 88 46 12
    10784     jmp near 07214h                           ; e9 73 ff
    10785     call 0709ah                               ; e8 f6 fd
     10787    jmp near 0723ch                           ; e9 73 ff
     10788    call 070c2h                               ; e8 f6 fd
    1078610789    test ax, ax                               ; 85 c0
    10787     je short 072aeh                           ; 74 06
    10788     call 07072h                               ; e8 c7 fd
    10789     jmp near 07214h                           ; e9 66 ff
     10790    je short 072d6h                           ; 74 06
     10791    call 0709ah                               ; e8 c7 fd
     10792    jmp near 0723ch                           ; e9 66 ff
    1079010793    mov dl, byte [bp+010h]                    ; 8a 56 10
    1079110794    xor dh, dh                                ; 30 f6
    1079210795    mov ax, strict word 00009h                ; b8 09 00
    10793     call 016c9h                               ; e8 10 a4
     10796    call 016c9h                               ; e8 e8 a3
    1079410797    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1079510798    xor dh, dh                                ; 30 f6
    1079610799    mov ax, strict word 00008h                ; b8 08 00
    10797     call 016c9h                               ; e8 05 a4
     10800    call 016c9h                               ; e8 dd a3
    1079810801    mov dl, byte [bp+00eh]                    ; 8a 56 0e
    1079910802    xor dh, dh                                ; 30 f6
    1080010803    mov ax, strict word 00007h                ; b8 07 00
    10801     call 016c9h                               ; e8 fa a3
     10804    call 016c9h                               ; e8 d2 a3
    1080210805    mov dl, byte [bp+011h]                    ; 8a 56 11
    1080310806    xor dh, dh                                ; 30 f6
    1080410807    mov ax, strict word 00032h                ; b8 32 00
    10805     call 016c9h                               ; e8 ef a3
     10808    call 016c9h                               ; e8 c7 a3
    1080610809    mov ax, strict word 0000bh                ; b8 0b 00
    10807     call 016aeh                               ; e8 ce a3
     10810    call 016aeh                               ; e8 a6 a3
    1080810811    mov bl, al                                ; 88 c3
    1080910812    and bl, 07fh                              ; 80 e3 7f
    10810     jmp near 07257h                           ; e9 6f ff
     10813    jmp near 0727fh                           ; e9 6f ff
    1081110814    mov ax, strict word 0000bh                ; b8 0b 00
    10812     call 016aeh                               ; e8 c0 a3
     10815    call 016aeh                               ; e8 98 a3
    1081310816    mov bl, al                                ; 88 c3
    1081410817    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1081510818    test AL, strict byte 020h                 ; a8 20
    10816     je short 072fch                           ; 74 03
    10817     jmp near 07214h                           ; e9 18 ff
    10818     call 0709ah                               ; e8 9b fd
     10819    je short 07324h                           ; 74 03
     10820    jmp near 0723ch                           ; e9 18 ff
     10821    call 070c2h                               ; e8 9b fd
    1081910822    test ax, ax                               ; 85 c0
    10820     je short 07306h                           ; 74 03
    10821     call 07072h                               ; e8 6c fd
     10823    je short 0732eh                           ; 74 03
     10824    call 0709ah                               ; e8 6c fd
    1082210825    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1082310826    xor dh, dh                                ; 30 f6
    1082410827    mov ax, strict word 00001h                ; b8 01 00
    10825     call 016c9h                               ; e8 b8 a3
     10828    call 016c9h                               ; e8 90 a3
    1082610829    mov dl, byte [bp+010h]                    ; 8a 56 10
    1082710830    xor dh, dh                                ; 30 f6
    1082810831    mov ax, strict word 00003h                ; b8 03 00
    10829     call 016c9h                               ; e8 ad a3
     10832    call 016c9h                               ; e8 85 a3
    1083010833    mov dl, byte [bp+011h]                    ; 8a 56 11
    1083110834    xor dh, dh                                ; 30 f6
    1083210835    mov ax, strict word 00005h                ; b8 05 00
    10833     call 016c9h                               ; e8 a2 a3
     10836    call 016c9h                               ; e8 7a a3
    1083410837    mov dx, 000a1h                            ; ba a1 00
    1083510838    in AL, DX                                 ; ec
     
    1084310846    xor dh, dh                                ; 30 f6
    1084410847    mov ax, strict word 0000bh                ; b8 0b 00
    10845     call 016c9h                               ; e8 89 a3
    10846     jmp near 07214h                           ; e9 d1 fe
     10848    call 016c9h                               ; e8 61 a3
     10849    jmp near 0723ch                           ; e9 d1 fe
    1084710850    mov ax, strict word 0000bh                ; b8 0b 00
    10848     call 016aeh                               ; e8 65 a3
     10851    call 016aeh                               ; e8 3d a3
    1084910852    mov bl, al                                ; 88 c3
    1085010853    mov dl, al                                ; 88 c2
    1085110854    and dl, 057h                              ; 80 e2 57
    10852     jmp near 07259h                           ; e9 06 ff
    10853 send_to_mouse_ctrl_:                         ; 0xf7353 LB 0x38
     10855    jmp near 07281h                           ; e9 06 ff
     10856send_to_mouse_ctrl_:                         ; 0xf737b LB 0x38
    1085410857    push bp                                   ; 55
    1085510858    mov bp, sp                                ; 89 e5
     
    1086210865    ; sub ah, ah                                ; 2a e4
    1086310866    test AL, strict byte 002h                 ; a8 02
    10864     je short 07376h                           ; 74 12
     10867    je short 0739eh                           ; 74 12
    1086510868    mov ax, 008eeh                            ; b8 ee 08
    1086610869    push ax                                   ; 50
     
    1086910872    mov ax, strict word 00007h                ; b8 07 00
    1087010873    push ax                                   ; 50
    10871     call 01976h                               ; e8 03 a6
     10874    call 01976h                               ; e8 db a5
    1087210875    add sp, strict byte 00006h                ; 83 c4 06
    1087310876    mov AL, strict byte 0d4h                  ; b0 d4
     
    1088310886    pop bp                                    ; 5d
    1088410887    retn                                      ; c3
    10885 get_mouse_data_:                             ; 0xf738b LB 0x5d
     10888get_mouse_data_:                             ; 0xf73b3 LB 0x5d
    1088610889    push bp                                   ; 55
    1088710890    mov bp, sp                                ; 89 e5
     
    1089810901    and ax, strict word 00021h                ; 25 21 00
    1089910902    cmp ax, strict word 00021h                ; 3d 21 00
    10900     je short 073ceh                           ; 74 28
     10903    je short 073f6h                           ; 74 28
    1090110904    test cx, cx                               ; 85 c9
    10902     je short 073ceh                           ; 74 24
     10905    je short 073f6h                           ; 74 24
    1090310906    mov dx, strict word 00061h                ; ba 61 00
    1090410907    in AL, DX                                 ; ec
     
    1091710920    xor ah, ah                                ; 30 e4
    1091810921    cmp dx, ax                                ; 39 c2
    10919     je short 073b5h                           ; 74 ea
     10922    je short 073ddh                           ; 74 ea
    1092010923    dec cx                                    ; 49
    10921     jmp short 07398h                          ; eb ca
     10924    jmp short 073c0h                          ; eb ca
    1092210925    test cx, cx                               ; 85 c9
    10923     jne short 073d6h                          ; 75 04
     10926    jne short 073feh                          ; 75 04
    1092410927    mov AL, strict byte 001h                  ; b0 01
    10925     jmp short 073e1h                          ; eb 0b
     10928    jmp short 07409h                          ; eb 0b
    1092610929    mov dx, strict word 00060h                ; ba 60 00
    1092710930    in AL, DX                                 ; ec
     
    1093510938    pop bp                                    ; 5d
    1093610939    retn                                      ; c3
    10937 set_kbd_command_byte_:                       ; 0xf73e8 LB 0x36
     10940set_kbd_command_byte_:                       ; 0xf7410 LB 0x36
    1093810941    push bp                                   ; 55
    1093910942    mov bp, sp                                ; 89 e5
     
    1094610949    ; sub ah, ah                                ; 2a e4
    1094710950    test AL, strict byte 002h                 ; a8 02
    10948     je short 0740bh                           ; 74 12
     10951    je short 07433h                           ; 74 12
    1094910952    mov ax, 008f8h                            ; b8 f8 08
    1095010953    push ax                                   ; 50
     
    1095310956    mov ax, strict word 00007h                ; b8 07 00
    1095410957    push ax                                   ; 50
    10955     call 01976h                               ; e8 6e a5
     10958    call 01976h                               ; e8 46 a5
    1095610959    add sp, strict byte 00006h                ; 83 c4 06
    1095710960    mov AL, strict byte 060h                  ; b0 60
     
    1096610969    pop bp                                    ; 5d
    1096710970    retn                                      ; c3
    10968 _int74_function:                             ; 0xf741e LB 0xd2
     10971_int74_function:                             ; 0xf7446 LB 0xd2
    1096910972    push bp                                   ; 55
    1097010973    mov bp, sp                                ; 89 e5
     
    1097210975    mov dx, strict word 0000eh                ; ba 0e 00
    1097310976    mov ax, strict word 00040h                ; b8 40 00
    10974     call 0166eh                               ; e8 41 a2
     10977    call 0166eh                               ; e8 19 a2
    1097510978    mov cx, ax                                ; 89 c1
    1097610979    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1098110984    and AL, strict byte 021h                  ; 24 21
    1098210985    cmp AL, strict byte 021h                  ; 3c 21
    10983     jne short 07462h                          ; 75 22
     10986    jne short 0748ah                          ; 75 22
    1098410987    mov dx, strict word 00060h                ; ba 60 00
    1098510988    in AL, DX                                 ; ec
     
    1098910992    mov dx, strict word 00026h                ; ba 26 00
    1099010993    mov ax, cx                                ; 89 c8
    10991     call 01652h                               ; e8 02 a2
     10994    call 01652h                               ; e8 da a1
    1099210995    mov byte [bp-002h], al                    ; 88 46 fe
    1099310996    mov dx, strict word 00027h                ; ba 27 00
    1099410997    mov ax, cx                                ; 89 c8
    10995     call 01652h                               ; e8 f7 a1
     10998    call 01652h                               ; e8 cf a1
    1099610999    mov byte [bp-006h], al                    ; 88 46 fa
    1099711000    test AL, strict byte 080h                 ; a8 80
    10998     jne short 07465h                          ; 75 03
    10999     jmp near 074dch                           ; e9 77 00
     11001    jne short 0748dh                          ; 75 03
     11002    jmp near 07504h                           ; e9 77 00
    1100011003    mov al, byte [bp-006h]                    ; 8a 46 fa
    1100111004    and AL, strict byte 007h                  ; 24 07
     
    1101111014    add dx, strict byte 00028h                ; 83 c2 28
    1101211015    mov ax, cx                                ; 89 c8
    11013     call 01660h                               ; e8 d8 a1
     11016    call 01660h                               ; e8 b0 a1
    1101411017    mov al, byte [bp-008h]                    ; 8a 46 f8
    1101511018    cmp al, byte [bp-004h]                    ; 3a 46 fc
    11016     jc short 074cch                           ; 72 3c
     11019    jc short 074f4h                           ; 72 3c
    1101711020    mov dx, strict word 00028h                ; ba 28 00
    1101811021    mov ax, cx                                ; 89 c8
    11019     call 01652h                               ; e8 ba a1
     11022    call 01652h                               ; e8 92 a1
    1102011023    xor ah, ah                                ; 30 e4
    1102111024    mov word [bp+00ch], ax                    ; 89 46 0c
    1102211025    mov dx, strict word 00029h                ; ba 29 00
    1102311026    mov ax, cx                                ; 89 c8
    11024     call 01652h                               ; e8 ad a1
     11027    call 01652h                               ; e8 85 a1
    1102511028    xor ah, ah                                ; 30 e4
    1102611029    mov word [bp+00ah], ax                    ; 89 46 0a
    1102711030    mov dx, strict word 0002ah                ; ba 2a 00
    1102811031    mov ax, cx                                ; 89 c8
    11029     call 01652h                               ; e8 a0 a1
     11032    call 01652h                               ; e8 78 a1
    1103011033    xor ah, ah                                ; 30 e4
    1103111034    mov word [bp+008h], ax                    ; 89 46 08
     
    1103411037    mov byte [bp-002h], ah                    ; 88 66 fe
    1103511038    test byte [bp-006h], 080h                 ; f6 46 fa 80
    11036     je short 074cfh                           ; 74 0a
     11039    je short 074f7h                           ; 74 0a
    1103711040    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    11038     jmp short 074cfh                          ; eb 03
     11041    jmp short 074f7h                          ; eb 03
    1103911042    inc byte [bp-002h]                        ; fe 46 fe
    1104011043    mov bl, byte [bp-002h]                    ; 8a 5e fe
     
    1104211045    mov dx, strict word 00026h                ; ba 26 00
    1104311046    mov ax, cx                                ; 89 c8
    11044     call 01660h                               ; e8 84 a1
     11047    call 01660h                               ; e8 5c a1
    1104511048    mov sp, bp                                ; 89 ec
    1104611049    pop bp                                    ; 5d
    1104711050    retn                                      ; c3
    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
     11051    pop dx                                    ; 5a
     11052    jne short 074e1h                          ; 75 d6
     11053    jne short 07563h                          ; 75 56
     11054    jbe short 074fah                          ; 76 eb
     11055    jbe short 0756eh                          ; 76 5d
     11056    jnbe short 074b4h                         ; 77 a1
     11057    jne short 0749ah                          ; 75 85
     11058    jnbe short 07569h                         ; 77 52
    1105511059    db  078h
    11056 _int15_function_mouse:                       ; 0xf74f0 LB 0x3a0
     11060_int15_function_mouse:                       ; 0xf7518 LB 0x3a0
    1105711061    push bp                                   ; 55
    1105811062    mov bp, sp                                ; 89 e5
     
    1106111065    mov dx, strict word 0000eh                ; ba 0e 00
    1106211066    mov ax, strict word 00040h                ; b8 40 00
    11063     call 0166eh                               ; e8 6e a1
     11067    call 0166eh                               ; e8 46 a1
    1106411068    mov cx, ax                                ; 89 c1
    1106511069    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    11066     jbe short 07513h                          ; 76 0b
     11070    jbe short 0753bh                          ; 76 0b
    1106711071    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1106811072    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11069     jmp near 0788ah                           ; e9 77 03
     11073    jmp near 078b2h                           ; e9 77 03
    1107011074    mov ax, strict word 00065h                ; b8 65 00
    11071     call 073e8h                               ; e8 cf fe
     11075    call 07410h                               ; e8 cf fe
    1107211076    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1107311077    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1107411078    mov bl, byte [bp+012h]                    ; 8a 5e 12
    1107511079    cmp bl, 007h                              ; 80 fb 07
    11076     jnbe short 07587h                         ; 77 5e
     11080    jnbe short 075afh                         ; 77 5e
    1107711081    xor bh, bh                                ; 30 ff
    1107811082    sal bx, 1                                 ; d1 e3
    11079     jmp word [cs:bx+074e0h]                   ; 2e ff a7 e0 74
     11083    jmp word [cs:bx+07508h]                   ; 2e ff a7 08 75
    1108011084    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    11081     jnbe short 0758ah                         ; 77 52
     11085    jnbe short 075b2h                         ; 77 52
    1108211086    mov dx, strict word 00027h                ; ba 27 00
    1108311087    mov ax, cx                                ; 89 c8
    11084     call 01652h                               ; e8 12 a1
     11088    call 01652h                               ; e8 ea a0
    1108511089    test AL, strict byte 080h                 ; a8 80
    11086     jne short 0754fh                          ; 75 0b
     11090    jne short 07577h                          ; 75 0b
    1108711091    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1108811092    mov byte [bp+013h], 005h                  ; c6 46 13 05
    11089     jmp near 07884h                           ; e9 35 03
     11093    jmp near 078ach                           ; e9 35 03
    1109011094    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    11091     jne short 07559h                          ; 75 04
     11095    jne short 07581h                          ; 75 04
    1109211096    mov AL, strict byte 0f5h                  ; b0 f5
    11093     jmp short 0755bh                          ; eb 02
     11097    jmp short 07583h                          ; eb 02
    1109411098    mov AL, strict byte 0f4h                  ; b0 f4
    1109511099    xor ah, ah                                ; 30 e4
    11096     call 07353h                               ; e8 f3 fd
     11100    call 0737bh                               ; e8 f3 fd
    1109711101    test al, al                               ; 84 c0
    11098     jne short 0758dh                          ; 75 29
     11102    jne short 075b5h                          ; 75 29
    1109911103    mov dx, ss                                ; 8c d2
    1110011104    lea ax, [bp-006h]                         ; 8d 46 fa
    11101     call 0738bh                               ; e8 1f fe
     11105    call 073b3h                               ; e8 1f fe
    1110211106    test al, al                               ; 84 c0
    11103     je short 07576h                           ; 74 06
     11107    je short 0759eh                           ; 74 06
    1110411108    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11105     jne short 0758dh                          ; 75 17
    11106     jmp near 07884h                           ; e9 0b 03
     11109    jne short 075b5h                          ; 75 17
     11110    jmp near 078ach                           ; e9 0b 03
    1110711111    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1110811112    cmp AL, strict byte 001h                  ; 3c 01
    11109     jc short 07584h                           ; 72 04
     11113    jc short 075ach                           ; 72 04
    1111011114    cmp AL, strict byte 008h                  ; 3c 08
    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
     11115    jbe short 075b8h                          ; 76 0c
     11116    jmp near 07753h                           ; e9 a4 01
     11117    jmp near 07896h                           ; e9 e4 02
     11118    jmp near 078a4h                           ; e9 ef 02
     11119    jmp near 0782ah                           ; e9 72 02
    1111611120    mov dx, strict word 00027h                ; ba 27 00
    1111711121    mov ax, cx                                ; 89 c8
    11118     call 01652h                               ; e8 ba a0
     11122    call 01652h                               ; e8 92 a0
    1111911123    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1112011124    db  0feh, 0cch
     
    1112611130    mov dx, strict word 00027h                ; ba 27 00
    1112711131    mov ax, cx                                ; 89 c8
    11128     call 01660h                               ; e8 b2 a0
     11132    call 01660h                               ; e8 8a a0
    1112911133    mov dx, strict word 00026h                ; ba 26 00
    1113011134    mov ax, cx                                ; 89 c8
    11131     call 01652h                               ; e8 9c a0
     11135    call 01652h                               ; e8 74 a0
    1113211136    mov bl, al                                ; 88 c3
    1113311137    and bl, 0f8h                              ; 80 e3 f8
     
    1113511139    mov dx, strict word 00026h                ; ba 26 00
    1113611140    mov ax, cx                                ; 89 c8
    11137     call 01660h                               ; e8 9b a0
     11141    call 01660h                               ; e8 73 a0
    1113811142    mov ax, 000ffh                            ; b8 ff 00
    11139     call 07353h                               ; e8 88 fd
     11143    call 0737bh                               ; e8 88 fd
    1114011144    test al, al                               ; 84 c0
    11141     jne short 0758dh                          ; 75 be
     11145    jne short 075b5h                          ; 75 be
    1114211146    mov dx, ss                                ; 8c d2
    1114311147    lea ax, [bp-008h]                         ; 8d 46 f8
    11144     call 0738bh                               ; e8 b4 fd
     11148    call 073b3h                               ; e8 b4 fd
    1114511149    mov cl, al                                ; 88 c1
    1114611150    cmp byte [bp-008h], 0feh                  ; 80 7e f8 fe
    11147     jne short 075e9h                          ; 75 0a
     11151    jne short 07611h                          ; 75 0a
    1114811152    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1114911153    mov byte [bp+013h], 004h                  ; c6 46 13 04
    11150     jmp short 07576h                          ; eb 8d
     11154    jmp short 0759eh                          ; eb 8d
    1115111155    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11152     je short 07603h                           ; 74 14
     11156    je short 0762bh                           ; 74 14
    1115311157    mov al, byte [bp-008h]                    ; 8a 46 f8
    1115411158    xor ah, ah                                ; 30 e4
     
    1115811162    mov ax, strict word 00007h                ; b8 07 00
    1115911163    push ax                                   ; 50
    11160     call 01976h                               ; e8 76 a3
     11164    call 01976h                               ; e8 4e a3
    1116111165    add sp, strict byte 00006h                ; 83 c4 06
    1116211166    test cl, cl                               ; 84 c9
    11163     jne short 0758dh                          ; 75 86
     11167    jne short 075b5h                          ; 75 86
    1116411168    mov dx, ss                                ; 8c d2
    1116511169    lea ax, [bp-006h]                         ; 8d 46 fa
    11166     call 0738bh                               ; e8 7c fd
     11170    call 073b3h                               ; e8 7c fd
    1116711171    test al, al                               ; 84 c0
    11168     jne short 07669h                          ; 75 56
     11172    jne short 07691h                          ; 75 56
    1116911173    mov dx, ss                                ; 8c d2
    1117011174    lea ax, [bp-004h]                         ; 8d 46 fc
    11171     call 0738bh                               ; e8 70 fd
     11175    call 073b3h                               ; e8 70 fd
    1117211176    test al, al                               ; 84 c0
    11173     jne short 07669h                          ; 75 4a
     11177    jne short 07691h                          ; 75 4a
    1117411178    mov al, byte [bp-006h]                    ; 8a 46 fa
    1117511179    mov byte [bp+00ch], al                    ; 88 46 0c
    1117611180    mov al, byte [bp-004h]                    ; 8a 46 fc
    1117711181    mov byte [bp+00dh], al                    ; 88 46 0d
    11178     jmp near 07884h                           ; e9 56 02
     11182    jmp near 078ach                           ; e9 56 02
    1117911183    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1118011184    cmp AL, strict byte 003h                  ; 3c 03
    11181     jc short 07645h                           ; 72 10
    11182     jbe short 07663h                          ; 76 2c
     11185    jc short 0766dh                           ; 72 10
     11186    jbe short 0768bh                          ; 76 2c
    1118311187    cmp AL, strict byte 006h                  ; 3c 06
    11184     je short 07678h                           ; 74 3d
     11188    je short 076a0h                           ; 74 3d
    1118511189    cmp AL, strict byte 005h                  ; 3c 05
    11186     je short 07672h                           ; 74 33
     11190    je short 0769ah                           ; 74 33
    1118711191    cmp AL, strict byte 004h                  ; 3c 04
    11188     je short 0766ch                           ; 74 29
    11189     jmp short 0767eh                          ; eb 39
     11192    je short 07694h                           ; 74 29
     11193    jmp short 076a6h                          ; eb 39
    1119011194    cmp AL, strict byte 002h                  ; 3c 02
    11191     je short 0765dh                           ; 74 14
     11195    je short 07685h                           ; 74 14
    1119211196    cmp AL, strict byte 001h                  ; 3c 01
    11193     je short 07657h                           ; 74 0a
     11197    je short 0767fh                           ; 74 0a
    1119411198    test al, al                               ; 84 c0
    11195     jne short 0767eh                          ; 75 2d
     11199    jne short 076a6h                          ; 75 2d
    1119611200    mov byte [bp-006h], 00ah                  ; c6 46 fa 0a
    11197     jmp short 07682h                          ; eb 2b
     11201    jmp short 076aah                          ; eb 2b
    1119811202    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    11199     jmp short 07682h                          ; eb 25
     11203    jmp short 076aah                          ; eb 25
    1120011204    mov byte [bp-006h], 028h                  ; c6 46 fa 28
    11201     jmp short 07682h                          ; eb 1f
     11205    jmp short 076aah                          ; eb 1f
    1120211206    mov byte [bp-006h], 03ch                  ; c6 46 fa 3c
    11203     jmp short 07682h                          ; eb 19
    11204     jmp near 07802h                           ; e9 96 01
     11207    jmp short 076aah                          ; eb 19
     11208    jmp near 0782ah                           ; e9 96 01
    1120511209    mov byte [bp-006h], 050h                  ; c6 46 fa 50
    11206     jmp short 07682h                          ; eb 10
     11210    jmp short 076aah                          ; eb 10
    1120711211    mov byte [bp-006h], 064h                  ; c6 46 fa 64
    11208     jmp short 07682h                          ; eb 0a
     11212    jmp short 076aah                          ; eb 0a
    1120911213    mov byte [bp-006h], 0c8h                  ; c6 46 fa c8
    11210     jmp short 07682h                          ; eb 04
     11214    jmp short 076aah                          ; eb 04
    1121111215    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1121211216    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    11213     jbe short 076b8h                          ; 76 30
     11217    jbe short 076e0h                          ; 76 30
    1121411218    mov ax, 000f3h                            ; b8 f3 00
    11215     call 07353h                               ; e8 c5 fc
     11219    call 0737bh                               ; e8 c5 fc
    1121611220    test al, al                               ; 84 c0
    11217     jne short 076adh                          ; 75 1b
     11221    jne short 076d5h                          ; 75 1b
    1121811222    mov dx, ss                                ; 8c d2
    1121911223    lea ax, [bp-004h]                         ; 8d 46 fc
    11220     call 0738bh                               ; e8 f1 fc
     11224    call 073b3h                               ; e8 f1 fc
    1122111225    mov al, byte [bp-006h]                    ; 8a 46 fa
    1122211226    xor ah, ah                                ; 30 e4
    11223     call 07353h                               ; e8 b1 fc
     11227    call 0737bh                               ; e8 b1 fc
    1122411228    mov dx, ss                                ; 8c d2
    1122511229    lea ax, [bp-004h]                         ; 8d 46 fc
    11226     call 0738bh                               ; e8 e1 fc
    11227     jmp near 07884h                           ; e9 d7 01
     11230    call 073b3h                               ; e8 e1 fc
     11231    jmp near 078ach                           ; e9 d7 01
    1122811232    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1122911233    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11230     jmp near 07884h                           ; e9 cc 01
     11234    jmp near 078ach                           ; e9 cc 01
    1123111235    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1123211236    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11233     jmp near 07884h                           ; e9 c1 01
     11237    jmp near 078ach                           ; e9 c1 01
    1123411238    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    11235     jnc short 0772bh                          ; 73 62
     11239    jnc short 07753h                          ; 73 62
    1123611240    mov ax, 000e8h                            ; b8 e8 00
    11237     call 07353h                               ; e8 84 fc
     11241    call 0737bh                               ; e8 84 fc
    1123811242    test al, al                               ; 84 c0
    11239     jne short 07721h                          ; 75 4e
     11243    jne short 07749h                          ; 75 4e
    1124011244    mov dx, ss                                ; 8c d2
    1124111245    lea ax, [bp-006h]                         ; 8d 46 fa
    11242     call 0738bh                               ; e8 b0 fc
     11246    call 073b3h                               ; e8 b0 fc
    1124311247    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11244     je short 076f5h                           ; 74 14
     11248    je short 0771dh                           ; 74 14
    1124511249    mov al, byte [bp-006h]                    ; 8a 46 fa
    1124611250    xor ah, ah                                ; 30 e4
     
    1125011254    mov ax, strict word 00007h                ; b8 07 00
    1125111255    push ax                                   ; 50
    11252     call 01976h                               ; e8 84 a2
     11256    call 01976h                               ; e8 5c a2
    1125311257    add sp, strict byte 00006h                ; 83 c4 06
    1125411258    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1125511259    xor ah, ah                                ; 30 e4
    11256     call 07353h                               ; e8 56 fc
     11260    call 0737bh                               ; e8 56 fc
    1125711261    mov dx, ss                                ; 8c d2
    1125811262    lea ax, [bp-006h]                         ; 8d 46 fa
    11259     call 0738bh                               ; e8 86 fc
     11263    call 073b3h                               ; e8 86 fc
    1126011264    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11261     je short 0775ah                           ; 74 4f
     11265    je short 07782h                           ; 74 4f
    1126211266    mov al, byte [bp-006h]                    ; 8a 46 fa
    1126311267    xor ah, ah                                ; 30 e4
     
    1126711271    mov ax, strict word 00007h                ; b8 07 00
    1126811272    push ax                                   ; 50
    11269     call 01976h                               ; e8 5a a2
     11273    call 01976h                               ; e8 32 a2
    1127011274    add sp, strict byte 00006h                ; 83 c4 06
    11271     jmp short 0775ah                          ; eb 39
     11275    jmp short 07782h                          ; eb 39
    1127211276    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1127311277    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11274     jmp short 0775ah                          ; eb 2f
     11278    jmp short 07782h                          ; eb 2f
    1127511279    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1127611280    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11277     jmp short 0775ah                          ; eb 25
     11281    jmp short 07782h                          ; eb 25
    1127811282    mov ax, 000f2h                            ; b8 f2 00
    11279     call 07353h                               ; e8 18 fc
     11283    call 0737bh                               ; e8 18 fc
    1128011284    test al, al                               ; 84 c0
    11281     jne short 07752h                          ; 75 13
     11285    jne short 0777ah                          ; 75 13
    1128211286    mov dx, ss                                ; 8c d2
    1128311287    lea ax, [bp-006h]                         ; 8d 46 fa
    11284     call 0738bh                               ; e8 44 fc
     11288    call 073b3h                               ; e8 44 fc
    1128511289    mov dx, ss                                ; 8c d2
    1128611290    lea ax, [bp-004h]                         ; 8d 46 fc
    11287     call 0738bh                               ; e8 3c fc
    11288     jmp near 07625h                           ; e9 d3 fe
     11291    call 073b3h                               ; e8 3c fc
     11292    jmp near 0764dh                           ; e9 d3 fe
    1128911293    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1129011294    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11291     jmp near 07884h                           ; e9 27 01
     11295    jmp near 078ach                           ; e9 27 01
    1129211296    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1129311297    test al, al                               ; 84 c0
    11294     jbe short 0776dh                          ; 76 09
     11298    jbe short 07795h                          ; 76 09
    1129511299    cmp AL, strict byte 002h                  ; 3c 02
    11296     jbe short 0776bh                          ; 76 03
    11297     jmp near 0780ch                           ; e9 a1 00
    11298     jmp short 077d7h                          ; eb 6a
     11300    jbe short 07793h                          ; 76 03
     11301    jmp near 07834h                           ; e9 a1 00
     11302    jmp short 077ffh                          ; eb 6a
    1129911303    mov ax, 000e9h                            ; b8 e9 00
    11300     call 07353h                               ; e8 e0 fb
     11304    call 0737bh                               ; e8 e0 fb
    1130111305    test al, al                               ; 84 c0
    11302     jne short 077e0h                          ; 75 69
     11306    jne short 07808h                          ; 75 69
    1130311307    mov dx, ss                                ; 8c d2
    1130411308    lea ax, [bp-006h]                         ; 8d 46 fa
    11305     call 0738bh                               ; e8 0c fc
     11309    call 073b3h                               ; e8 0c fc
    1130611310    mov cl, al                                ; 88 c1
    1130711311    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11308     je short 0779bh                           ; 74 14
     11312    je short 077c3h                           ; 74 14
    1130911313    mov al, byte [bp-006h]                    ; 8a 46 fa
    1131011314    xor ah, ah                                ; 30 e4
     
    1131411318    mov ax, strict word 00007h                ; b8 07 00
    1131511319    push ax                                   ; 50
    11316     call 01976h                               ; e8 de a1
     11320    call 01976h                               ; e8 b6 a1
    1131711321    add sp, strict byte 00006h                ; 83 c4 06
    1131811322    test cl, cl                               ; 84 c9
    11319     jne short 07802h                          ; 75 63
     11323    jne short 0782ah                          ; 75 63
    1132011324    mov dx, ss                                ; 8c d2
    1132111325    lea ax, [bp-006h]                         ; 8d 46 fa
    11322     call 0738bh                               ; e8 e4 fb
     11326    call 073b3h                               ; e8 e4 fb
    1132311327    test al, al                               ; 84 c0
    11324     jne short 07802h                          ; 75 57
     11328    jne short 0782ah                          ; 75 57
    1132511329    mov dx, ss                                ; 8c d2
    1132611330    lea ax, [bp-004h]                         ; 8d 46 fc
    11327     call 0738bh                               ; e8 d8 fb
     11331    call 073b3h                               ; e8 d8 fb
    1132811332    test al, al                               ; 84 c0
    11329     jne short 07802h                          ; 75 4b
     11333    jne short 0782ah                          ; 75 4b
    1133011334    mov dx, ss                                ; 8c d2
    1133111335    lea ax, [bp-008h]                         ; 8d 46 f8
    11332     call 0738bh                               ; e8 cc fb
     11336    call 073b3h                               ; e8 cc fb
    1133311337    test al, al                               ; 84 c0
    11334     jne short 07802h                          ; 75 3f
     11338    jne short 0782ah                          ; 75 3f
    1133511339    mov al, byte [bp-006h]                    ; 8a 46 fa
    1133611340    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1133911343    mov al, byte [bp-008h]                    ; 8a 46 f8
    1134011344    mov byte [bp+00eh], al                    ; 88 46 0e
    11341     jmp short 0775ah                          ; eb 83
     11345    jmp short 07782h                          ; eb 83
    1134211346    cmp AL, strict byte 001h                  ; 3c 01
    11343     jne short 077e2h                          ; 75 07
     11347    jne short 0780ah                          ; 75 07
    1134411348    mov ax, 000e6h                            ; b8 e6 00
    11345     jmp short 077e5h                          ; eb 05
    11346     jmp short 07802h                          ; eb 20
     11349    jmp short 0780dh                          ; eb 05
     11350    jmp short 0782ah                          ; eb 20
    1134711351    mov ax, 000e7h                            ; b8 e7 00
    11348     call 07353h                               ; e8 6b fb
     11352    call 0737bh                               ; e8 6b fb
    1134911353    mov cl, al                                ; 88 c1
    1135011354    test cl, cl                               ; 84 c9
    11351     jne short 077feh                          ; 75 10
     11355    jne short 07826h                          ; 75 10
    1135211356    mov dx, ss                                ; 8c d2
    1135311357    lea ax, [bp-006h]                         ; 8d 46 fa
    11354     call 0738bh                               ; e8 95 fb
     11358    call 073b3h                               ; e8 95 fb
    1135511359    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11356     je short 077feh                           ; 74 02
     11360    je short 07826h                           ; 74 02
    1135711361    mov CL, strict byte 001h                  ; b1 01
    1135811362    test cl, cl                               ; 84 c9
    11359     je short 0786ch                           ; 74 6a
     11363    je short 07894h                           ; 74 6a
    1136011364    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1136111365    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11362     jmp short 0786ch                          ; eb 60
     11366    jmp short 07894h                          ; eb 60
    1136311367    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1136411368    xor ah, ah                                ; 30 e4
     
    1136811372    mov ax, strict word 00007h                ; b8 07 00
    1136911373    push ax                                   ; 50
    11370     call 01976h                               ; e8 59 a1
     11374    call 01976h                               ; e8 31 a1
    1137111375    add sp, strict byte 00006h                ; 83 c4 06
    1137211376    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1137311377    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11374     jmp short 07884h                          ; eb 5a
     11378    jmp short 078ach                          ; eb 5a
    1137511379    mov si, word [bp+00ch]                    ; 8b 76 0c
    1137611380    mov bx, si                                ; 89 f3
    1137711381    mov dx, strict word 00022h                ; ba 22 00
    1137811382    mov ax, cx                                ; 89 c8
    11379     call 0167ch                               ; e8 45 9e
     11383    call 0167ch                               ; e8 1d 9e
    1138011384    mov bx, word [bp+014h]                    ; 8b 5e 14
    1138111385    mov dx, strict word 00024h                ; ba 24 00
    1138211386    mov ax, cx                                ; 89 c8
    11383     call 0167ch                               ; e8 3a 9e
     11387    call 0167ch                               ; e8 12 9e
    1138411388    mov dx, strict word 00027h                ; ba 27 00
    1138511389    mov ax, cx                                ; 89 c8
    11386     call 01652h                               ; e8 08 9e
     11390    call 01652h                               ; e8 e0 9d
    1138711391    mov ah, al                                ; 88 c4
    1138811392    test si, si                               ; 85 f6
    11389     jne short 0785eh                          ; 75 0e
     11393    jne short 07886h                          ; 75 0e
    1139011394    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    11391     jne short 0785eh                          ; 75 08
     11395    jne short 07886h                          ; 75 08
    1139211396    test AL, strict byte 080h                 ; a8 80
    11393     je short 07860h                           ; 74 06
     11397    je short 07888h                           ; 74 06
    1139411398    and AL, strict byte 07fh                  ; 24 7f
    11395     jmp short 07860h                          ; eb 02
     11399    jmp short 07888h                          ; eb 02
    1139611400    or AL, strict byte 080h                   ; 0c 80
    1139711401    mov bl, al                                ; 88 c3
     
    1139911403    mov dx, strict word 00027h                ; ba 27 00
    1140011404    mov ax, cx                                ; 89 c8
    11401     call 01660h                               ; e8 f4 9d
    11402     jmp short 07884h                          ; eb 16
     11405    call 01660h                               ; e8 cc 9d
     11406    jmp short 078ach                          ; eb 16
    1140311407    mov ax, 00974h                            ; b8 74 09
    1140411408    push ax                                   ; 50
    1140511409    mov ax, strict word 00007h                ; b8 07 00
    1140611410    push ax                                   ; 50
    11407     call 01976h                               ; e8 fd a0
     11411    call 01976h                               ; e8 d5 a0
    1140811412    add sp, strict byte 00004h                ; 83 c4 04
    1140911413    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1141011414    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1141111415    mov ax, strict word 00047h                ; b8 47 00
    11412     call 073e8h                               ; e8 5e fb
     11416    call 07410h                               ; e8 5e fb
    1141311417    lea sp, [bp-002h]                         ; 8d 66 fe
    1141411418    pop si                                    ; 5e
    1141511419    pop bp                                    ; 5d
    1141611420    retn                                      ; c3
    11417 _int17_function:                             ; 0xf7890 LB 0xac
     11421_int17_function:                             ; 0xf78b8 LB 0xac
    1141811422    push bp                                   ; 55
    1141911423    mov bp, sp                                ; 89 e5
     
    1142511429    add dx, strict byte 00008h                ; 83 c2 08
    1142611430    mov ax, strict word 00040h                ; b8 40 00
    11427     call 0166eh                               ; e8 ca 9d
     11431    call 0166eh                               ; e8 a2 9d
    1142811432    mov bx, ax                                ; 89 c3
    1142911433    mov si, ax                                ; 89 c6
    1143011434    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    11431     jnc short 078bah                          ; 73 0c
     11435    jnc short 078e2h                          ; 73 0c
    1143211436    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1143311437    cmp ax, strict word 00003h                ; 3d 03 00
    11434     jnc short 078bah                          ; 73 04
     11438    jnc short 078e2h                          ; 73 04
    1143511439    test bx, bx                               ; 85 db
    11436     jnbe short 078bdh                         ; 77 03
    11437     jmp near 07932h                           ; e9 75 00
     11440    jnbe short 078e5h                         ; 77 03
     11441    jmp near 0795ah                           ; e9 75 00
    1143811442    mov dx, ax                                ; 89 c2
    1143911443    add dx, strict byte 00078h                ; 83 c2 78
    1144011444    mov ax, strict word 00040h                ; b8 40 00
    11441     call 01652h                               ; e8 8a 9d
     11445    call 01652h                               ; e8 62 9d
    1144211446    mov ch, al                                ; 88 c5
    1144311447    xor cl, cl                                ; 30 c9
    1144411448    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    11445     jne short 078feh                          ; 75 2c
     11449    jne short 07926h                          ; 75 2c
    1144611450    mov al, byte [bp+012h]                    ; 8a 46 12
    1144711451    mov dx, bx                                ; 89 da
     
    1146311467    ; sub ah, ah                                ; 2a e4
    1146411468    test AL, strict byte 040h                 ; a8 40
    11465     je short 078feh                           ; 74 07
     11469    je short 07926h                           ; 74 07
    1146611470    test cx, cx                               ; 85 c9
    11467     je short 078feh                           ; 74 03
     11471    je short 07926h                           ; 74 03
    1146811472    dec cx                                    ; 49
    11469     jmp short 078edh                          ; eb ef
     11473    jmp short 07915h                          ; eb ef
    1147011474    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11471     jne short 07919h                          ; 75 15
     11475    jne short 07941h                          ; 75 15
    1147211476    lea dx, [si+002h]                         ; 8d 54 02
    1147311477    in AL, DX                                 ; ec
     
    1148811492    mov byte [bp+013h], al                    ; 88 46 13
    1148911493    test cx, cx                               ; 85 c9
    11490     jne short 0792ch                          ; 75 04
     11494    jne short 07954h                          ; 75 04
    1149111495    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1149211496    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11493     jmp short 07936h                          ; eb 04
     11497    jmp short 0795eh                          ; eb 04
    1149411498    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1149511499    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1149711501    pop bp                                    ; 5d
    1149811502    retn                                      ; c3
    11499 wait_:                                       ; 0xf793c LB 0xb2
     11503wait_:                                       ; 0xf7964 LB 0xb2
    1150011504    push bp                                   ; 55
    1150111505    mov bp, sp                                ; 89 e5
     
    1151511519    mov dx, 0046ch                            ; ba 6c 04
    1151611520    xor ax, ax                                ; 31 c0
    11517     call 0168ah                               ; e8 2b 9d
     11521    call 0168ah                               ; e8 03 9d
    1151811522    mov word [bp-00eh], ax                    ; 89 46 f2
    1151911523    mov bx, dx                                ; 89 d3
     
    1152111525    mov dx, 0046ch                            ; ba 6c 04
    1152211526    xor ax, ax                                ; 31 c0
    11523     call 0168ah                               ; e8 1d 9d
     11527    call 0168ah                               ; e8 f5 9c
    1152411528    mov word [bp-012h], ax                    ; 89 46 ee
    1152511529    mov di, dx                                ; 89 d7
    1152611530    cmp dx, bx                                ; 39 da
    11527     jnbe short 0797dh                         ; 77 07
    11528     jne short 07984h                          ; 75 0c
     11531    jnbe short 079a5h                         ; 77 07
     11532    jne short 079ach                          ; 75 0c
    1152911533    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11530     jbe short 07984h                          ; 76 07
     11534    jbe short 079ach                          ; 76 07
    1153111535    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1153211536    sbb dx, bx                                ; 19 da
    11533     jmp short 0798fh                          ; eb 0b
     11537    jmp short 079b7h                          ; eb 0b
    1153411538    cmp dx, bx                                ; 39 da
    11535     jc short 0798fh                           ; 72 07
    11536     jne short 07993h                          ; 75 09
     11539    jc short 079b7h                           ; 72 07
     11540    jne short 079bbh                          ; 75 09
    1153711541    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11538     jnc short 07993h                          ; 73 04
     11542    jnc short 079bbh                          ; 73 04
    1153911543    sub si, ax                                ; 29 c6
    1154011544    sbb cx, dx                                ; 19 d1
     
    1154411548    mov ax, 00100h                            ; b8 00 01
    1154511549    int 016h                                  ; cd 16
    11546     je short 079a7h                           ; 74 05
     11550    je short 079cfh                           ; 74 05
    1154711551    mov AL, strict byte 001h                  ; b0 01
    11548     jmp near 079a9h                           ; e9 02 00
     11552    jmp near 079d1h                           ; e9 02 00
    1154911553    db  032h, 0c0h
    1155011554    ; xor al, al                                ; 32 c0
    1155111555    test al, al                               ; 84 c0
    11552     je short 079d3h                           ; 74 26
     11556    je short 079fbh                           ; 74 26
    1155311557    db  033h, 0c0h
    1155411558    ; xor ax, ax                                ; 33 c0
     
    1156311567    mov ax, strict word 00004h                ; b8 04 00
    1156411568    push ax                                   ; 50
    11565     call 01976h                               ; e8 b0 9f
     11569    call 01976h                               ; e8 88 9f
    1156611570    add sp, strict byte 00006h                ; 83 c4 06
    1156711571    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    11568     je short 079d3h                           ; 74 04
     11572    je short 079fbh                           ; 74 04
    1156911573    mov al, dl                                ; 88 d0
    11570     jmp short 079e5h                          ; eb 12
     11574    jmp short 07a0dh                          ; eb 12
    1157111575    test cx, cx                               ; 85 c9
    11572     jnle short 07964h                         ; 7f 8d
    11573     jne short 079ddh                          ; 75 04
     11576    jnle short 0798ch                         ; 7f 8d
     11577    jne short 07a05h                          ; 75 04
    1157411578    test si, si                               ; 85 f6
    11575     jnbe short 07964h                         ; 77 87
     11579    jnbe short 0798ch                         ; 77 87
    1157611580    mov ax, word [bp-010h]                    ; 8b 46 f0
    1157711581    push ax                                   ; 50
     
    1158511589    pop bp                                    ; 5d
    1158611590    retn                                      ; c3
    11587 read_logo_byte_:                             ; 0xf79ee LB 0x16
     11591read_logo_byte_:                             ; 0xf7a16 LB 0x16
    1158811592    push bp                                   ; 55
    1158911593    mov bp, sp                                ; 89 e5
     
    1160011604    pop bp                                    ; 5d
    1160111605    retn                                      ; c3
    11602 read_logo_word_:                             ; 0xf7a04 LB 0x14
     11606read_logo_word_:                             ; 0xf7a2c LB 0x14
    1160311607    push bp                                   ; 55
    1160411608    mov bp, sp                                ; 89 e5
     
    1161311617    pop bp                                    ; 5d
    1161411618    retn                                      ; c3
    11615 print_detected_harddisks_:                   ; 0xf7a18 LB 0x15a
     11619print_detected_harddisks_:                   ; 0xf7a40 LB 0x15a
    1161611620    push bp                                   ; 55
    1161711621    mov bp, sp                                ; 89 e5
     
    1162311627    mov dx, strict word 0000eh                ; ba 0e 00
    1162411628    mov ax, strict word 00040h                ; b8 40 00
    11625     call 0166eh                               ; e8 43 9c
     11629    call 0166eh                               ; e8 1b 9c
    1162611630    mov si, ax                                ; 89 c6
    1162711631    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     
    1162911633    mov byte [bp-00ch], ch                    ; 88 6e f4
    1163011634    mov dx, 00304h                            ; ba 04 03
    11631     call 01652h                               ; e8 16 9c
     11635    call 01652h                               ; e8 ee 9b
    1163211636    mov byte [bp-00ah], al                    ; 88 46 f6
    1163311637    xor cl, cl                                ; 30 c9
    1163411638    cmp cl, byte [bp-00ah]                    ; 3a 4e f6
    11635     jnc short 07aa4h                          ; 73 5e
     11639    jnc short 07acch                          ; 73 5e
    1163611640    mov al, cl                                ; 88 c8
    1163711641    xor ah, ah                                ; 30 e4
     
    1163911643    add dx, 00305h                            ; 81 c2 05 03
    1164011644    mov ax, si                                ; 89 f0
    11641     call 01652h                               ; e8 fd 9b
     11645    call 01652h                               ; e8 d5 9b
    1164211646    mov bl, al                                ; 88 c3
    1164311647    cmp AL, strict byte 00ch                  ; 3c 0c
    11644     jc short 07a86h                           ; 72 2b
     11648    jc short 07aaeh                           ; 72 2b
    1164511649    test ch, ch                               ; 84 ed
    11646     jne short 07a6fh                          ; 75 10
     11650    jne short 07a97h                          ; 75 10
    1164711651    mov ax, 009a7h                            ; b8 a7 09
    1164811652    push ax                                   ; 50
    1164911653    mov ax, strict word 00002h                ; b8 02 00
    1165011654    push ax                                   ; 50
    11651     call 01976h                               ; e8 0c 9f
     11655    call 01976h                               ; e8 e4 9e
    1165211656    add sp, strict byte 00004h                ; 83 c4 04
    1165311657    mov CH, strict byte 001h                  ; b5 01
     
    1166011664    mov ax, strict word 00002h                ; b8 02 00
    1166111665    push ax                                   ; 50
    11662     call 01976h                               ; e8 f6 9e
     11666    call 01976h                               ; e8 ce 9e
    1166311667    add sp, strict byte 00006h                ; 83 c4 06
    11664     jmp near 07b38h                           ; e9 b2 00
     11668    jmp near 07b60h                           ; e9 b2 00
    1166511669    cmp AL, strict byte 008h                  ; 3c 08
    11666     jc short 07aa7h                           ; 72 1d
     11670    jc short 07acfh                           ; 72 1d
    1166711671    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11668     jne short 07aa2h                          ; 75 12
     11672    jne short 07acah                          ; 75 12
    1166911673    mov ax, 009cfh                            ; b8 cf 09
    1167011674    push ax                                   ; 50
    1167111675    mov ax, strict word 00002h                ; b8 02 00
    1167211676    push ax                                   ; 50
    11673     call 01976h                               ; e8 db 9e
     11677    call 01976h                               ; e8 b3 9e
    1167411678    add sp, strict byte 00004h                ; 83 c4 04
    1167511679    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11676     jmp short 07a6fh                          ; eb cb
    11677     jmp near 07b3dh                           ; e9 96 00
     11680    jmp short 07a97h                          ; eb cb
     11681    jmp near 07b65h                           ; e9 96 00
    1167811682    cmp AL, strict byte 004h                  ; 3c 04
    11679     jnc short 07ac5h                          ; 73 1a
     11683    jnc short 07aedh                          ; 73 1a
    1168011684    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11681     jne short 07ac5h                          ; 75 14
     11685    jne short 07aedh                          ; 75 14
    1168211686    mov ax, 009e4h                            ; b8 e4 09
    1168311687    push ax                                   ; 50
    1168411688    mov ax, strict word 00002h                ; b8 02 00
    1168511689    push ax                                   ; 50
    11686     call 01976h                               ; e8 ba 9e
     11690    call 01976h                               ; e8 92 9e
    1168711691    add sp, strict byte 00004h                ; 83 c4 04
    1168811692    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11689     jmp short 07adeh                          ; eb 19
     11693    jmp short 07b06h                          ; eb 19
    1169011694    cmp bl, 004h                              ; 80 fb 04
    11691     jc short 07adeh                           ; 72 14
     11695    jc short 07b06h                           ; 72 14
    1169211696    test ch, ch                               ; 84 ed
    11693     jne short 07adeh                          ; 75 10
     11697    jne short 07b06h                          ; 75 10
    1169411698    mov ax, 009f6h                            ; b8 f6 09
    1169511699    push ax                                   ; 50
    1169611700    mov ax, strict word 00002h                ; b8 02 00
    1169711701    push ax                                   ; 50
    11698     call 01976h                               ; e8 9d 9e
     11702    call 01976h                               ; e8 75 9e
    1169911703    add sp, strict byte 00004h                ; 83 c4 04
    1170011704    mov CH, strict byte 001h                  ; b5 01
     
    1170711711    mov ax, strict word 00002h                ; b8 02 00
    1170811712    push ax                                   ; 50
    11709     call 01976h                               ; e8 87 9e
     11713    call 01976h                               ; e8 5f 9e
    1171011714    add sp, strict byte 00006h                ; 83 c4 06
    1171111715    cmp bl, 004h                              ; 80 fb 04
    11712     jc short 07afah                           ; 72 03
     11716    jc short 07b22h                           ; 72 03
    1171311717    sub bl, 004h                              ; 80 eb 04
    1171411718    mov al, bl                                ; 88 d8
     
    1171911723    sar ax, 1                                 ; d1 f8
    1172011724    test ax, ax                               ; 85 c0
    11721     je short 07b0ch                           ; 74 05
     11725    je short 07b34h                           ; 74 05
    1172211726    mov ax, 00a14h                            ; b8 14 0a
    11723     jmp short 07b0fh                          ; eb 03
     11727    jmp short 07b37h                          ; eb 03
    1172411728    mov ax, 00a1fh                            ; b8 1f 0a
    1172511729    push ax                                   ; 50
    1172611730    mov ax, strict word 00002h                ; b8 02 00
    1172711731    push ax                                   ; 50
    11728     call 01976h                               ; e8 5f 9e
     11732    call 01976h                               ; e8 37 9e
    1172911733    add sp, strict byte 00004h                ; 83 c4 04
    1173011734    mov al, bl                                ; 88 d8
     
    1173411738    idiv bx                                   ; f7 fb
    1173511739    test dx, dx                               ; 85 d2
    11736     je short 07b2dh                           ; 74 05
     11740    je short 07b55h                           ; 74 05
    1173711741    mov ax, 00a28h                            ; b8 28 0a
    11738     jmp short 07b30h                          ; eb 03
     11742    jmp short 07b58h                          ; eb 03
    1173911743    mov ax, 00a2eh                            ; b8 2e 0a
    1174011744    push ax                                   ; 50
    1174111745    push bx                                   ; 53
    11742     call 01976h                               ; e8 41 9e
     11746    call 01976h                               ; e8 19 9e
    1174311747    add sp, strict byte 00004h                ; 83 c4 04
    1174411748    db  0feh, 0c1h
    1174511749    ; inc cl                                    ; fe c1
    11746     jmp near 07a41h                           ; e9 04 ff
     11750    jmp near 07a69h                           ; e9 04 ff
    1174711751    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11748     jne short 07b5bh                          ; 75 18
     11752    jne short 07b83h                          ; 75 18
    1174911753    test ch, ch                               ; 84 ed
    11750     jne short 07b5bh                          ; 75 14
     11754    jne short 07b83h                          ; 75 14
    1175111755    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11752     jne short 07b5bh                          ; 75 0e
     11756    jne short 07b83h                          ; 75 0e
    1175311757    mov ax, 00a35h                            ; b8 35 0a
    1175411758    push ax                                   ; 50
    1175511759    mov ax, strict word 00002h                ; b8 02 00
    1175611760    push ax                                   ; 50
    11757     call 01976h                               ; e8 1e 9e
     11761    call 01976h                               ; e8 f6 9d
    1175811762    add sp, strict byte 00004h                ; 83 c4 04
    1175911763    mov ax, 00a49h                            ; b8 49 0a
     
    1176111765    mov ax, strict word 00002h                ; b8 02 00
    1176211766    push ax                                   ; 50
    11763     call 01976h                               ; e8 10 9e
     11767    call 01976h                               ; e8 e8 9d
    1176411768    add sp, strict byte 00004h                ; 83 c4 04
    1176511769    lea sp, [bp-008h]                         ; 8d 66 f8
     
    1177011774    pop bp                                    ; 5d
    1177111775    retn                                      ; c3
    11772 get_boot_drive_:                             ; 0xf7b72 LB 0x28
     11776get_boot_drive_:                             ; 0xf7b9a LB 0x28
    1177311777    push bp                                   ; 55
    1177411778    mov bp, sp                                ; 89 e5
     
    1177811782    mov dx, strict word 0000eh                ; ba 0e 00
    1177911783    mov ax, strict word 00040h                ; b8 40 00
    11780     call 0166eh                               ; e8 ec 9a
     11784    call 0166eh                               ; e8 c4 9a
    1178111785    mov dx, 00304h                            ; ba 04 03
    11782     call 01652h                               ; e8 ca 9a
     11786    call 01652h                               ; e8 a2 9a
    1178311787    sub bl, 002h                              ; 80 eb 02
    1178411788    cmp bl, al                                ; 38 c3
    11785     jc short 07b91h                           ; 72 02
     11789    jc short 07bb9h                           ; 72 02
    1178611790    mov BL, strict byte 0ffh                  ; b3 ff
    1178711791    mov al, bl                                ; 88 d8
     
    1179111795    pop bp                                    ; 5d
    1179211796    retn                                      ; c3
    11793 show_logo_:                                  ; 0xf7b9a LB 0x24f
     11797show_logo_:                                  ; 0xf7bc2 LB 0x24f
    1179411798    push bp                                   ; 55
    1179511799    mov bp, sp                                ; 89 e5
     
    1180211806    mov dx, strict word 0000eh                ; ba 0e 00
    1180311807    mov ax, strict word 00040h                ; b8 40 00
    11804     call 0166eh                               ; e8 c0 9a
     11808    call 0166eh                               ; e8 98 9a
    1180511809    mov si, ax                                ; 89 c6
    1180611810    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     
    1181411818    mov al, cl                                ; 88 c8
    1181511819    xor ah, ah                                ; 30 e4
    11816     call 07a04h                               ; e8 3b fe
     11820    call 07a2ch                               ; e8 3b fe
    1181711821    cmp ax, 066bbh                            ; 3d bb 66
    11818     jne short 07be0h                          ; 75 12
     11822    jne short 07c08h                          ; 75 12
    1181911823    push SS                                   ; 16
    1182011824    pop ES                                    ; 07
     
    1182411828    mov word [es:di], bx                      ; 26 89 1d
    1182511829    cmp ax, strict word 0004fh                ; 3d 4f 00
    11826     je short 07be3h                           ; 74 03
    11827     jmp near 07cb8h                           ; e9 d5 00
     11830    je short 07c0bh                           ; 74 03
     11831    jmp near 07ce0h                           ; e9 d5 00
    1182811832    mov al, cl                                ; 88 c8
    1182911833    add AL, strict byte 004h                  ; 04 04
    1183011834    xor ah, ah                                ; 30 e4
    11831     call 079eeh                               ; e8 02 fe
     11835    call 07a16h                               ; e8 02 fe
    1183211836    mov bl, al                                ; 88 c3
    1183311837    mov byte [bp-014h], al                    ; 88 46 ec
     
    1183511839    add AL, strict byte 005h                  ; 04 05
    1183611840    xor ah, ah                                ; 30 e4
    11837     call 079eeh                               ; e8 f4 fd
     11841    call 07a16h                               ; e8 f4 fd
    1183811842    mov bh, al                                ; 88 c7
    1183911843    mov byte [bp-012h], al                    ; 88 46 ee
     
    1184111845    add AL, strict byte 002h                  ; 04 02
    1184211846    xor ah, ah                                ; 30 e4
    11843     call 07a04h                               ; e8 fc fd
     11847    call 07a2ch                               ; e8 fc fd
    1184411848    mov dx, ax                                ; 89 c2
    1184511849    mov word [bp-016h], ax                    ; 89 46 ea
     
    1184711851    add AL, strict byte 006h                  ; 04 06
    1184811852    xor ah, ah                                ; 30 e4
    11849     call 079eeh                               ; e8 d8 fd
     11853    call 07a16h                               ; e8 d8 fd
    1185011854    mov byte [bp-010h], al                    ; 88 46 f0
    1185111855    test bl, bl                               ; 84 db
    11852     jne short 07c25h                          ; 75 08
     11856    jne short 07c4dh                          ; 75 08
    1185311857    test bh, bh                               ; 84 ff
    11854     jne short 07c25h                          ; 75 04
     11858    jne short 07c4dh                          ; 75 04
    1185511859    test dx, dx                               ; 85 d2
    11856     je short 07be0h                           ; 74 bb
     11860    je short 07c08h                           ; 74 bb
    1185711861    mov bx, 00142h                            ; bb 42 01
    1185811862    mov ax, 04f02h                            ; b8 02 4f
    1185911863    int 010h                                  ; cd 10
    1186011864    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    11861     je short 07c58h                           ; 74 25
     11865    je short 07c80h                           ; 74 25
    1186211866    xor cx, cx                                ; 31 c9
    11863     jmp short 07c3dh                          ; eb 06
     11867    jmp short 07c65h                          ; eb 06
    1186411868    inc cx                                    ; 41
    1186511869    cmp cx, strict byte 00010h                ; 83 f9 10
    11866     jnbe short 07c5fh                         ; 77 22
     11870    jnbe short 07c87h                         ; 77 22
    1186711871    mov ax, cx                                ; 89 c8
    1186811872    or ah, 002h                               ; 80 cc 02
     
    1187111875    xor dx, dx                                ; 31 d2
    1187211876    mov ax, strict word 00001h                ; b8 01 00
    11873     call 0793ch                               ; e8 ee fc
     11877    call 07964h                               ; e8 ee fc
    1187411878    cmp AL, strict byte 086h                  ; 3c 86
    11875     jne short 07c37h                          ; 75 e5
     11879    jne short 07c5fh                          ; 75 e5
    1187611880    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11877     jmp short 07c5fh                          ; eb 07
     11881    jmp short 07c87h                          ; eb 07
    1187811882    mov ax, 00210h                            ; b8 10 02
    1187911883    mov dx, 003b8h                            ; ba b8 03
    1188011884    out DX, ax                                ; ef
    1188111885    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11882     jne short 07c7ah                          ; 75 15
     11886    jne short 07ca2h                          ; 75 15
    1188311887    mov CL, strict byte 004h                  ; b1 04
    1188411888    mov ax, word [bp-016h]                    ; 8b 46 ea
    1188511889    shr ax, CL                                ; d3 e8
    1188611890    mov dx, strict word 00001h                ; ba 01 00
    11887     call 0793ch                               ; e8 ca fc
     11891    call 07964h                               ; e8 ca fc
    1188811892    cmp AL, strict byte 086h                  ; 3c 86
    11889     jne short 07c7ah                          ; 75 04
     11893    jne short 07ca2h                          ; 75 04
    1189011894    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1189111895    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11892     je short 07cabh                           ; 74 2b
     11896    je short 07cd3h                           ; 74 2b
    1189311897    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11894     jne short 07cabh                          ; 75 25
     11898    jne short 07cd3h                          ; 75 25
    1189511899    mov cx, strict word 00010h                ; b9 10 00
    11896     jmp short 07c90h                          ; eb 05
     11900    jmp short 07cb8h                          ; eb 05
    1189711901    dec cx                                    ; 49
    1189811902    test cx, cx                               ; 85 c9
    11899     jbe short 07cb8h                          ; 76 28
     11903    jbe short 07ce0h                          ; 76 28
    1190011904    mov ax, cx                                ; 89 c8
    1190111905    or ah, 002h                               ; 80 cc 02
     
    1190411908    xor dx, dx                                ; 31 d2
    1190511909    mov ax, strict word 00001h                ; b8 01 00
    11906     call 0793ch                               ; e8 9b fc
     11910    call 07964h                               ; e8 9b fc
    1190711911    cmp AL, strict byte 086h                  ; 3c 86
    11908     jne short 07c8bh                          ; 75 e6
     11912    jne short 07cb3h                          ; 75 e6
    1190911913    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11910     jmp short 07cb8h                          ; eb 0d
     11914    jmp short 07ce0h                          ; eb 0d
    1191111915    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11912     jne short 07cb8h                          ; 75 07
     11916    jne short 07ce0h                          ; 75 07
    1191311917    mov ax, 00200h                            ; b8 00 02
    1191411918    mov dx, 003b8h                            ; ba b8 03
     
    1191711921    mov dx, 0037dh                            ; ba 7d 03
    1191811922    mov ax, si                                ; 89 f0
    11919     call 01660h                               ; e8 9e 99
     11923    call 01660h                               ; e8 76 99
    1192011924    mov AL, strict byte 003h                  ; b0 03
    1192111925    mov AH, strict byte 000h                  ; b4 00
    1192211926    int 010h                                  ; cd 10
    1192311927    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11924     je short 07ce2h                           ; 74 14
     11928    je short 07d0ah                           ; 74 14
    1192511929    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    11926     jne short 07d10h                          ; 75 3c
     11930    jne short 07d38h                          ; 75 3c
    1192711931    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11928     jne short 07d10h                          ; 75 36
     11932    jne short 07d38h                          ; 75 36
    1192911933    cmp word [bp-016h], strict byte 00000h    ; 83 7e ea 00
    11930     je short 07ce5h                           ; 74 05
    11931     jmp short 07d10h                          ; eb 2e
    11932     jmp near 07dcch                           ; e9 e7 00
     11934    je short 07d0dh                           ; 74 05
     11935    jmp short 07d38h                          ; eb 2e
     11936    jmp near 07df4h                           ; e9 e7 00
    1193311937    cmp byte [bp-010h], 002h                  ; 80 7e f0 02
    11934     jne short 07cf9h                          ; 75 0e
     11938    jne short 07d21h                          ; 75 0e
    1193511939    mov ax, 00a4bh                            ; b8 4b 0a
    1193611940    push ax                                   ; 50
    1193711941    mov ax, strict word 00002h                ; b8 02 00
    1193811942    push ax                                   ; 50
    11939     call 01976h                               ; e8 80 9c
     11943    call 01976h                               ; e8 58 9c
    1194011944    add sp, strict byte 00004h                ; 83 c4 04
    1194111945    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11942     jne short 07d10h                          ; 75 11
     11946    jne short 07d38h                          ; 75 11
    1194311947    mov dx, strict word 00001h                ; ba 01 00
    1194411948    mov ax, 000c0h                            ; b8 c0 00
    11945     call 0793ch                               ; e8 34 fc
     11949    call 07964h                               ; e8 34 fc
    1194611950    cmp AL, strict byte 086h                  ; 3c 86
    11947     jne short 07d10h                          ; 75 04
     11951    jne short 07d38h                          ; 75 04
    1194811952    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1194911953    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11950     je short 07ce2h                           ; 74 cc
     11954    je short 07d0ah                           ; 74 cc
    1195111955    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1195211956    mov ax, 00100h                            ; b8 00 01
     
    1196911973    mov ax, strict word 00002h                ; b8 02 00
    1197011974    push ax                                   ; 50
    11971     call 01976h                               ; e8 34 9c
     11975    call 01976h                               ; e8 0c 9c
    1197211976    add sp, strict byte 00004h                ; 83 c4 04
    11973     call 07a18h                               ; e8 d0 fc
     11977    call 07a40h                               ; e8 d0 fc
    1197411978    mov ax, 00ab1h                            ; b8 b1 0a
    1197511979    push ax                                   ; 50
    1197611980    mov ax, strict word 00002h                ; b8 02 00
    1197711981    push ax                                   ; 50
    11978     call 01976h                               ; e8 23 9c
     11982    call 01976h                               ; e8 fb 9b
    1197911983    add sp, strict byte 00004h                ; 83 c4 04
    1198011984    mov dx, strict word 00001h                ; ba 01 00
    1198111985    mov ax, strict word 00040h                ; b8 40 00
    11982     call 0793ch                               ; e8 dd fb
     11986    call 07964h                               ; e8 dd fb
    1198311987    mov cl, al                                ; 88 c1
    1198411988    test al, al                               ; 84 c0
    11985     je short 07d56h                           ; 74 f1
     11989    je short 07d7eh                           ; 74 f1
    1198611990    cmp AL, strict byte 030h                  ; 3c 30
    11987     je short 07db9h                           ; 74 50
     11991    je short 07de1h                           ; 74 50
    1198811992    cmp cl, 002h                              ; 80 f9 02
    11989     jc short 07d92h                           ; 72 24
     11993    jc short 07dbah                           ; 72 24
    1199011994    cmp cl, 009h                              ; 80 f9 09
    11991     jnbe short 07d92h                         ; 77 1f
     11995    jnbe short 07dbah                         ; 77 1f
    1199211996    mov al, cl                                ; 88 c8
    1199311997    xor ah, ah                                ; 30 e4
    11994     call 07b72h                               ; e8 f8 fd
     11998    call 07b9ah                               ; e8 f8 fd
    1199511999    cmp AL, strict byte 0ffh                  ; 3c ff
    11996     jne short 07d80h                          ; 75 02
    11997     jmp short 07d56h                          ; eb d6
     12000    jne short 07da8h                          ; 75 02
     12001    jmp short 07d7eh                          ; eb d6
    1199812002    mov bl, al                                ; 88 c3
    1199912003    xor bh, bh                                ; 30 ff
    1200012004    mov dx, 0037ch                            ; ba 7c 03
    1200112005    mov ax, si                                ; 89 f0
    12002     call 01660h                               ; e8 d4 98
     12006    call 01660h                               ; e8 ac 98
    1200312007    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    12004     jmp short 07db9h                          ; eb 27
     12008    jmp short 07de1h                          ; eb 27
    1200512009    cmp cl, 02eh                              ; 80 f9 2e
    12006     je short 07da7h                           ; 74 10
     12010    je short 07dcfh                           ; 74 10
    1200712011    cmp cl, 026h                              ; 80 f9 26
    12008     je short 07dadh                           ; 74 11
     12012    je short 07dd5h                           ; 74 11
    1200912013    cmp cl, 021h                              ; 80 f9 21
    12010     jne short 07db3h                          ; 75 12
     12014    jne short 07ddbh                          ; 75 12
    1201112015    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    12012     jmp short 07db9h                          ; eb 12
     12016    jmp short 07de1h                          ; eb 12
    1201312017    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    12014     jmp short 07db9h                          ; eb 0c
     12018    jmp short 07de1h                          ; eb 0c
    1201512019    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    12016     jmp short 07db9h                          ; eb 06
     12020    jmp short 07de1h                          ; eb 06
    1201712021    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    12018     je short 07d56h                           ; 74 9d
     12022    je short 07d7eh                           ; 74 9d
    1201912023    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    1202012024    xor bh, bh                                ; 30 ff
    1202112025    mov dx, 0037dh                            ; ba 7d 03
    1202212026    mov ax, si                                ; 89 f0
    12023     call 01660h                               ; e8 9a 98
     12027    call 01660h                               ; e8 72 98
    1202412028    mov AL, strict byte 003h                  ; b0 03
    1202512029    mov AH, strict byte 000h                  ; b4 00
     
    1203412038    push DS                                   ; 1e
    1203512039    mov ds, ax                                ; 8e d8
    12036     call 0ede3h                               ; e8 06 70
     12040    call 0ede3h                               ; e8 de 6f
    1203712041    pop DS                                    ; 1f
    1203812042    pop bp                                    ; 5d
     
    1204512049    pop bp                                    ; 5d
    1204612050    retn                                      ; c3
    12047 delay_boot_:                                 ; 0xf7de9 LB 0x72
     12051delay_boot_:                                 ; 0xf7e11 LB 0x72
    1204812052    push bp                                   ; 55
    1204912053    mov bp, sp                                ; 89 e5
     
    1205512059    mov bx, ax                                ; 89 c3
    1205612060    test ax, ax                               ; 85 c0
    12057     je short 07e51h                           ; 74 5a
     12061    je short 07e79h                           ; 74 5a
    1205812062    mov AL, strict byte 034h                  ; b0 34
    1205912063    out strict byte 043h, AL                  ; e6 43
     
    1206712071    mov ax, strict word 00002h                ; b8 02 00
    1206812072    push ax                                   ; 50
    12069     call 01976h                               ; e8 67 9b
     12073    call 01976h                               ; e8 3f 9b
    1207012074    add sp, strict byte 00006h                ; 83 c4 06
    1207112075    test bx, bx                               ; 85 db
    12072     jbe short 07e30h                          ; 76 1a
     12076    jbe short 07e58h                          ; 76 1a
    1207312077    push bx                                   ; 53
    1207412078    mov ax, 00b19h                            ; b8 19 0b
     
    1207612080    mov ax, strict word 00002h                ; b8 02 00
    1207712081    push ax                                   ; 50
    12078     call 01976h                               ; e8 54 9b
     12082    call 01976h                               ; e8 2c 9b
    1207912083    add sp, strict byte 00006h                ; 83 c4 06
    1208012084    xor dx, dx                                ; 31 d2
    1208112085    mov ax, strict word 00040h                ; b8 40 00
    12082     call 0793ch                               ; e8 0f fb
     12086    call 07964h                               ; e8 0f fb
    1208312087    dec bx                                    ; 4b
    12084     jmp short 07e12h                          ; eb e2
     12088    jmp short 07e3ah                          ; eb e2
    1208512089    mov bx, 00a49h                            ; bb 49 0a
    1208612090    push bx                                   ; 53
    1208712091    mov bx, strict word 00002h                ; bb 02 00
    1208812092    push bx                                   ; 53
    12089     call 01976h                               ; e8 3b 9b
     12093    call 01976h                               ; e8 13 9b
    1209012094    add sp, strict byte 00004h                ; 83 c4 04
    1209112095    mov AL, strict byte 034h                  ; b0 34
     
    1209812102    push DS                                   ; 1e
    1209912103    mov ds, ax                                ; 8e d8
    12100     call 0ede3h                               ; e8 94 6f
     12104    call 0ede3h                               ; e8 6c 6f
    1210112105    pop DS                                    ; 1f
    1210212106    pop bp                                    ; 5d
     
    1210912113    pop bp                                    ; 5d
    1211012114    retn                                      ; c3
    12111 scsi_cmd_data_in_:                           ; 0xf7e5b LB 0xd5
     12115scsi_cmd_data_in_:                           ; 0xf7e83 LB 0xd5
    1211212116    push bp                                   ; 55
    1211312117    mov bp, sp                                ; 89 e5
     
    1212512129    ; sub ah, ah                                ; 2a e4
    1212612130    test AL, strict byte 001h                 ; a8 01
    12127     jne short 07e71h                          ; 75 f7
     12131    jne short 07e99h                          ; 75 f7
    1212812132    mov al, byte [bp+004h]                    ; 8a 46 04
    1212912133    cmp AL, strict byte 010h                  ; 3c 10
    12130     jne short 07e85h                          ; 75 04
     12134    jne short 07eadh                          ; 75 04
    1213112135    xor ax, ax                                ; 31 c0
    12132     jmp short 07e87h                          ; eb 02
     12136    jmp short 07eafh                          ; eb 02
    1213312137    xor ah, ah                                ; 30 e4
    1213412138    mov di, ax                                ; 89 c7
     
    1213812142    shr dx, 1                                 ; d1 ea
    1213912143    rcr ax, 1                                 ; d1 d8
    12140     loop 07e91h                               ; e2 fa
     12144    loop 07eb9h                               ; e2 fa
    1214112145    mov cx, ax                                ; 89 c1
    1214212146    and cx, 000f0h                            ; 81 e1 f0 00
     
    1215612160    shr dx, 1                                 ; d1 ea
    1215712161    rcr ax, 1                                 ; d1 d8
    12158     loop 07eb6h                               ; e2 fa
     12162    loop 07edeh                               ; e2 fa
    1215912163    mov dx, si                                ; 89 f2
    1216012164    out DX, AL                                ; ee
     
    1216312167    xor ah, ah                                ; 30 e4
    1216412168    cmp cx, ax                                ; 39 c1
    12165     jnc short 07ed8h                          ; 73 0e
     12169    jnc short 07f00h                          ; 73 0e
    1216612170    les di, [bp-00ah]                         ; c4 7e f6
    1216712171    add di, cx                                ; 01 cf
     
    1217012174    out DX, AL                                ; ee
    1217112175    inc cx                                    ; 41
    12172     jmp short 07ec1h                          ; eb e9
     12176    jmp short 07ee9h                          ; eb e9
    1217312177    mov dx, si                                ; 89 f2
    1217412178    in AL, DX                                 ; ec
     
    1217612180    ; sub ah, ah                                ; 2a e4
    1217712181    test AL, strict byte 001h                 ; a8 01
    12178     jne short 07ed8h                          ; 75 f7
     12182    jne short 07f00h                          ; 75 f7
    1217912183    test AL, strict byte 002h                 ; a8 02
    12180     je short 07ef3h                           ; 74 0e
     12184    je short 07f1bh                           ; 74 0e
    1218112185    lea dx, [si+003h]                         ; 8d 54 03
    1218212186    xor al, al                                ; 30 c0
     
    1218612190    ; sub ah, ah                                ; 2a e4
    1218712191    mov di, strict word 00004h                ; bf 04 00
    12188     jmp short 07f25h                          ; eb 32
     12192    jmp short 07f4dh                          ; eb 32
    1218912193    lea dx, [si+001h]                         ; 8d 54 01
    1219012194    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12191     jne short 07f02h                          ; 75 06
     12195    jne short 07f2ah                          ; 75 06
    1219212196    cmp bx, 08000h                            ; 81 fb 00 80
    12193     jbe short 07f1ch                          ; 76 1a
     12197    jbe short 07f44h                          ; 76 1a
    1219412198    mov cx, 08000h                            ; b9 00 80
    1219512199    les di, [bp+006h]                         ; c4 7e 06
     
    1220012204    add ax, 00800h                            ; 05 00 08
    1220112205    mov word [bp+008h], ax                    ; 89 46 08
    12202     jmp short 07ef3h                          ; eb d7
     12206    jmp short 07f1bh                          ; eb d7
    1220312207    mov cx, bx                                ; 89 d9
    1220412208    les di, [bp+006h]                         ; c4 7e 06
     
    1221112215    pop bp                                    ; 5d
    1221212216    retn 0000ah                               ; c2 0a 00
    12213 scsi_cmd_data_out_:                          ; 0xf7f30 LB 0xd5
     12217scsi_cmd_data_out_:                          ; 0xf7f58 LB 0xd5
    1221412218    push bp                                   ; 55
    1221512219    mov bp, sp                                ; 89 e5
     
    1222712231    ; sub ah, ah                                ; 2a e4
    1222812232    test AL, strict byte 001h                 ; a8 01
    12229     jne short 07f46h                          ; 75 f7
     12233    jne short 07f6eh                          ; 75 f7
    1223012234    mov al, byte [bp+004h]                    ; 8a 46 04
    1223112235    cmp AL, strict byte 010h                  ; 3c 10
    12232     jne short 07f5ah                          ; 75 04
     12236    jne short 07f82h                          ; 75 04
    1223312237    xor ax, ax                                ; 31 c0
    12234     jmp short 07f5ch                          ; eb 02
     12238    jmp short 07f84h                          ; eb 02
    1223512239    xor ah, ah                                ; 30 e4
    1223612240    mov si, ax                                ; 89 c6
     
    1224012244    shr dx, 1                                 ; d1 ea
    1224112245    rcr ax, 1                                 ; d1 d8
    12242     loop 07f66h                               ; e2 fa
     12246    loop 07f8eh                               ; e2 fa
    1224312247    mov cx, ax                                ; 89 c1
    1224412248    and cx, 000f0h                            ; 81 e1 f0 00
     
    1225812262    shr dx, 1                                 ; d1 ea
    1225912263    rcr ax, 1                                 ; d1 d8
    12260     loop 07f8bh                               ; e2 fa
     12264    loop 07fb3h                               ; e2 fa
    1226112265    mov dx, di                                ; 89 fa
    1226212266    out DX, AL                                ; ee
     
    1226512269    xor ah, ah                                ; 30 e4
    1226612270    cmp cx, ax                                ; 39 c1
    12267     jnc short 07fadh                          ; 73 0e
     12271    jnc short 07fd5h                          ; 73 0e
    1226812272    les si, [bp-00ah]                         ; c4 76 f6
    1226912273    add si, cx                                ; 01 ce
     
    1227212276    out DX, AL                                ; ee
    1227312277    inc cx                                    ; 41
    12274     jmp short 07f96h                          ; eb e9
     12278    jmp short 07fbeh                          ; eb e9
    1227512279    lea dx, [di+001h]                         ; 8d 55 01
    1227612280    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12277     jne short 07fbch                          ; 75 06
     12281    jne short 07fe4h                          ; 75 06
    1227812282    cmp bx, 08000h                            ; 81 fb 00 80
    12279     jbe short 07fd7h                          ; 76 1b
     12283    jbe short 07fffh                          ; 76 1b
    1228012284    mov cx, 08000h                            ; b9 00 80
    1228112285    les si, [bp+006h]                         ; c4 76 06
     
    1228712291    add ax, 00800h                            ; 05 00 08
    1228812292    mov word [bp+008h], ax                    ; 89 46 08
    12289     jmp short 07fadh                          ; eb d6
     12293    jmp short 07fd5h                          ; eb d6
    1229012294    mov cx, bx                                ; 89 d9
    1229112295    les si, [bp+006h]                         ; c4 76 06
     
    1229712301    ; sub ah, ah                                ; 2a e4
    1229812302    test AL, strict byte 001h                 ; a8 01
    12299     jne short 07fdfh                          ; 75 f7
     12303    jne short 08007h                          ; 75 f7
    1230012304    test AL, strict byte 002h                 ; a8 02
    12301     je short 07ffah                           ; 74 0e
     12305    je short 08022h                           ; 74 0e
    1230212306    lea dx, [di+003h]                         ; 8d 55 03
    1230312307    xor al, al                                ; 30 c0
     
    1230712311    ; sub ah, ah                                ; 2a e4
    1230812312    mov ax, strict word 00004h                ; b8 04 00
    12309     jmp short 07ffch                          ; eb 02
     12313    jmp short 08024h                          ; eb 02
    1231012314    xor ax, ax                                ; 31 c0
    1231112315    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1231412318    pop bp                                    ; 5d
    1231512319    retn 0000ah                               ; c2 0a 00
    12316 @scsi_read_sectors:                          ; 0xf8005 LB 0xe9
     12320@scsi_read_sectors:                          ; 0xf802d LB 0xe9
    1231712321    push bp                                   ; 55
    1231812322    mov bp, sp                                ; 89 e5
     
    1232612330    mov byte [bp-006h], al                    ; 88 46 fa
    1232712331    cmp AL, strict byte 004h                  ; 3c 04
    12328     jbe short 08035h                          ; 76 15
     12332    jbe short 0805dh                          ; 76 15
    1232912333    xor ah, ah                                ; 30 e4
    1233012334    push ax                                   ; 50
     
    1233512339    mov ax, strict word 00007h                ; b8 07 00
    1233612340    push ax                                   ; 50
    12337     call 01976h                               ; e8 44 99
     12341    call 01976h                               ; e8 1c 99
    1233812342    add sp, strict byte 00008h                ; 83 c4 08
    1233912343    mov es, [bp+006h]                         ; 8e 46 06
     
    1237612380    sal word [bp-00ah], 1                     ; d1 66 f6
    1237712381    rcl word [bp-008h], 1                     ; d1 56 f8
    12378     loop 080a0h                               ; e2 f8
     12382    loop 080c8h                               ; e2 f8
    1237912383    push word [bp-008h]                       ; ff 76 f8
    1238012384    push word [bp-00ah]                       ; ff 76 f6
     
    1238712391    mov cx, ss                                ; 8c d1
    1238812392    lea bx, [bp-01ah]                         ; 8d 5e e6
    12389     call 07e5bh                               ; e8 95 fd
     12393    call 07e83h                               ; e8 95 fd
    1239012394    mov ah, al                                ; 88 c4
    1239112395    test al, al                               ; 84 c0
    12392     jne short 080e1h                          ; 75 15
     12396    jne short 08109h                          ; 75 15
    1239312397    mov es, [bp+006h]                         ; 8e 46 06
    1239412398    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1240412408    pop bp                                    ; 5d
    1240512409    retn 00004h                               ; c2 04 00
    12406 @scsi_write_sectors:                         ; 0xf80ee LB 0xe9
     12410@scsi_write_sectors:                         ; 0xf8116 LB 0xe9
    1240712411    push bp                                   ; 55
    1240812412    mov bp, sp                                ; 89 e5
     
    1241612420    mov byte [bp-006h], al                    ; 88 46 fa
    1241712421    cmp AL, strict byte 004h                  ; 3c 04
    12418     jbe short 0811eh                          ; 76 15
     12422    jbe short 08146h                          ; 76 15
    1241912423    xor ah, ah                                ; 30 e4
    1242012424    push ax                                   ; 50
     
    1242512429    mov ax, strict word 00007h                ; b8 07 00
    1242612430    push ax                                   ; 50
    12427     call 01976h                               ; e8 5b 98
     12431    call 01976h                               ; e8 33 98
    1242812432    add sp, strict byte 00008h                ; 83 c4 08
    1242912433    mov es, [bp+006h]                         ; 8e 46 06
     
    1246612470    sal word [bp-00ah], 1                     ; d1 66 f6
    1246712471    rcl word [bp-008h], 1                     ; d1 56 f8
    12468     loop 08189h                               ; e2 f8
     12472    loop 081b1h                               ; e2 f8
    1246912473    push word [bp-008h]                       ; ff 76 f8
    1247012474    push word [bp-00ah]                       ; ff 76 f6
     
    1247712481    mov cx, ss                                ; 8c d1
    1247812482    lea bx, [bp-01ah]                         ; 8d 5e e6
    12479     call 07f30h                               ; e8 81 fd
     12483    call 07f58h                               ; e8 81 fd
    1248012484    mov ah, al                                ; 88 c4
    1248112485    test al, al                               ; 84 c0
    12482     jne short 081cah                          ; 75 15
     12486    jne short 081f2h                          ; 75 15
    1248312487    mov es, [bp+006h]                         ; 8e 46 06
    1248412488    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1249412498    pop bp                                    ; 5d
    1249512499    retn 00004h                               ; c2 04 00
    12496 scsi_cmd_packet_:                            ; 0xf81d7 LB 0x170
     12500scsi_cmd_packet_:                            ; 0xf81ff LB 0x170
    1249712501    push bp                                   ; 55
    1249812502    mov bp, sp                                ; 89 e5
     
    1250612510    mov dx, strict word 0000eh                ; ba 0e 00
    1250712511    mov ax, strict word 00040h                ; b8 40 00
    12508     call 0166eh                               ; e8 7b 94
     12512    call 0166eh                               ; e8 53 94
    1250912513    mov si, 00122h                            ; be 22 01
    1251012514    mov word [bp-00ch], ax                    ; 89 46 f4
    1251112515    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12512     jne short 08222h                          ; 75 23
     12516    jne short 0824ah                          ; 75 23
    1251312517    mov bx, 00da0h                            ; bb a0 0d
    1251412518    mov cx, ds                                ; 8c d9
    1251512519    mov ax, strict word 00004h                ; b8 04 00
    12516     call 01933h                               ; e8 29 97
     12520    call 01933h                               ; e8 01 97
    1251712521    mov ax, 00b62h                            ; b8 62 0b
    1251812522    push ax                                   ; 50
     
    1252112525    mov ax, strict word 00004h                ; b8 04 00
    1252212526    push ax                                   ; 50
    12523     call 01976h                               ; e8 5d 97
     12527    call 01976h                               ; e8 35 97
    1252412528    add sp, strict byte 00006h                ; 83 c4 06
    1252512529    mov dx, strict word 00001h                ; ba 01 00
    12526     jmp near 0833ch                           ; e9 1a 01
     12530    jmp near 08364h                           ; e9 1a 01
    1252712531    sub di, strict byte 00008h                ; 83 ef 08
    1252812532    sal di, 1                                 ; d1 e7
     
    1253912543    ; sub ah, ah                                ; 2a e4
    1254012544    test AL, strict byte 001h                 ; a8 01
    12541     jne short 0823fh                          ; 75 f7
     12545    jne short 08267h                          ; 75 f7
    1254212546    xor dx, bx                                ; 31 da
    1254312547    mov ax, word [bp+006h]                    ; 8b 46 06
     
    1255512559    shr dx, 1                                 ; d1 ea
    1255612560    rcr ax, 1                                 ; d1 d8
    12557     loop 0826ah                               ; e2 fa
     12561    loop 08292h                               ; e2 fa
    1255812562    and ax, 000f0h                            ; 25 f0 00
    1255912563    mov cl, byte [bp-006h]                    ; 8a 4e fa
     
    1257412578    shr dx, 1                                 ; d1 ea
    1257512579    rcr ax, 1                                 ; d1 d8
    12576     loop 08292h                               ; e2 fa
     12580    loop 082bah                               ; e2 fa
    1257712581    mov dx, bx                                ; 89 da
    1257812582    out DX, AL                                ; ee
     
    1258112585    xor ah, ah                                ; 30 e4
    1258212586    cmp cx, ax                                ; 39 c1
    12583     jnc short 082b7h                          ; 73 11
     12587    jnc short 082dfh                          ; 73 11
    1258412588    mov es, [bp-00ah]                         ; 8e 46 f6
    1258512589    mov di, word [bp-00eh]                    ; 8b 7e f2
     
    1258912593    out DX, AL                                ; ee
    1259012594    inc cx                                    ; 41
    12591     jmp short 0829dh                          ; eb e6
     12595    jmp short 082c5h                          ; eb e6
    1259212596    mov dx, bx                                ; 89 da
    1259312597    in AL, DX                                 ; ec
     
    1259512599    ; sub ah, ah                                ; 2a e4
    1259612600    test AL, strict byte 001h                 ; a8 01
    12597     jne short 082b7h                          ; 75 f7
     12601    jne short 082dfh                          ; 75 f7
    1259812602    test AL, strict byte 002h                 ; a8 02
    12599     je short 082d2h                           ; 74 0e
     12603    je short 082fah                           ; 74 0e
    1260012604    lea dx, [bx+003h]                         ; 8d 57 03
    1260112605    xor al, al                                ; 30 c0
     
    1260512609    ; sub ah, ah                                ; 2a e4
    1260612610    mov dx, strict word 00003h                ; ba 03 00
    12607     jmp short 0833ch                          ; eb 6a
     12611    jmp short 08364h                          ; eb 6a
    1260812612    mov ax, word [bp+004h]                    ; 8b 46 04
    1260912613    test ax, ax                               ; 85 c0
    12610     je short 082e1h                           ; 74 08
     12614    je short 08309h                           ; 74 08
    1261112615    lea dx, [bx+001h]                         ; 8d 57 01
    1261212616    mov cx, ax                                ; 89 c1
    1261312617    in AL, DX                                 ; ec
    12614     loop 082deh                               ; e2 fd
     12618    loop 08306h                               ; e2 fd
    1261512619    mov ax, word [bp+006h]                    ; 8b 46 06
    1261612620    mov es, [bp-00ch]                         ; 8e 46 f4
     
    1262012624    lea ax, [bx+001h]                         ; 8d 47 01
    1262112625    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12622     jne short 08302h                          ; 75 07
     12626    jne short 0832ah                          ; 75 07
    1262312627    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12624     jbe short 0831fh                          ; 76 1d
     12628    jbe short 08347h                          ; 76 1d
    1262512629    mov dx, ax                                ; 89 c2
    1262612630    mov cx, 08000h                            ; b9 00 80
     
    1263212636    add ax, 00800h                            ; 05 00 08
    1263312637    mov word [bp+00eh], ax                    ; 89 46 0e
    12634     jmp short 082f2h                          ; eb d3
     12638    jmp short 0831ah                          ; eb d3
    1263512639    mov dx, ax                                ; 89 c2
    1263612640    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1263912643    mov es, [bp-00ch]                         ; 8e 46 f4
    1264012644    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12641     je short 0833ah                           ; 74 07
     12645    je short 08362h                           ; 74 07
    1264212646    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1264312647    in AL, DX                                 ; ec
    12644     loop 08337h                               ; e2 fd
     12648    loop 0835fh                               ; e2 fd
    1264512649    xor dx, dx                                ; 31 d2
    1264612650    mov ax, dx                                ; 89 d0
     
    1265012654    pop bp                                    ; 5d
    1265112655    retn 0000ch                               ; c2 0c 00
    12652 scsi_enumerate_attached_devices_:            ; 0xf8347 LB 0x4cb
     12656scsi_enumerate_attached_devices_:            ; 0xf836f LB 0x4cb
    1265312657    push bp                                   ; 55
    1265412658    mov bp, sp                                ; 89 e5
     
    1266212666    mov dx, strict word 0000eh                ; ba 0e 00
    1266312667    mov ax, strict word 00040h                ; b8 40 00
    12664     call 0166eh                               ; e8 11 93
     12668    call 0166eh                               ; e8 e9 92
    1266512669    mov di, 00122h                            ; bf 22 01
    1266612670    mov word [bp-016h], ax                    ; 89 46 ea
    1266712671    mov word [bp-014h], strict word 00000h    ; c7 46 ec 00 00
    12668     jmp near 08785h                           ; e9 1a 04
     12672    jmp near 087adh                           ; e9 1a 04
    1266912673    cmp AL, strict byte 004h                  ; 3c 04
    12670     jc short 08372h                           ; 72 03
    12671     jmp near 08808h                           ; e9 96 04
     12674    jc short 0839ah                           ; 72 03
     12675    jmp near 08830h                           ; e9 96 04
    1267212676    mov cx, strict word 00010h                ; b9 10 00
    1267312677    xor bx, bx                                ; 31 db
    1267412678    mov dx, ss                                ; 8c d2
    1267512679    lea ax, [bp-048h]                         ; 8d 46 b8
    12676     call 0a0d0h                               ; e8 51 1d
     12680    call 0a100h                               ; e8 59 1d
    1267712681    mov byte [bp-048h], 09eh                  ; c6 46 b8 9e
    1267812682    mov byte [bp-047h], 010h                  ; c6 46 b9 10
     
    1269212696    lea bx, [bp-048h]                         ; 8d 5e b8
    1269312697    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
    12694     call 07e5bh                               ; e8 ae fa
     12698    call 07e83h                               ; e8 ae fa
    1269512699    test al, al                               ; 84 c0
    12696     je short 083c3h                           ; 74 12
     12700    je short 083ebh                           ; 74 12
    1269712701    mov ax, 00b92h                            ; b8 92 0b
    1269812702    push ax                                   ; 50
     
    1270112705    mov ax, strict word 00007h                ; b8 07 00
    1270212706    push ax                                   ; 50
    12703     call 01976h                               ; e8 b6 95
     12707    call 01976h                               ; e8 8e 95
    1270412708    add sp, strict byte 00006h                ; 83 c4 06
    1270512709    mov ax, word [bp-00242h]                  ; 8b 86 be fd
     
    1273312737    sal ax, 1                                 ; d1 e0
    1273412738    rcl dx, 1                                 ; d1 d2
    12735     loop 08411h                               ; e2 fa
     12739    loop 08439h                               ; e2 fa
    1273612740    or bx, ax                                 ; 09 c3
    1273712741    or dx, si                                 ; 09 f2
     
    1274112745    mov word [bp-01ch], bx                    ; 89 5e e4
    1274212746    test dx, dx                               ; 85 d2
    12743     jne short 08430h                          ; 75 06
     12747    jne short 08458h                          ; 75 06
    1274412748    cmp bx, 00200h                            ; 81 fb 00 02
    12745     je short 08453h                           ; 74 23
     12749    je short 0847bh                           ; 74 23
    1274612750    mov bx, 00da0h                            ; bb a0 0d
    1274712751    mov cx, ds                                ; 8c d9
    1274812752    mov ax, strict word 00004h                ; b8 04 00
    12749     call 01933h                               ; e8 f8 94
     12753    call 01933h                               ; e8 d0 94
    1275012754    push dx                                   ; 52
    1275112755    push word [bp-01ch]                       ; ff 76 e4
     
    1275512759    mov ax, strict word 00004h                ; b8 04 00
    1275612760    push ax                                   ; 50
    12757     call 01976h                               ; e8 29 95
     12761    call 01976h                               ; e8 01 95
    1275812762    add sp, strict byte 0000ah                ; 83 c4 0a
    12759     jmp near 08779h                           ; e9 26 03
     12763    jmp near 087a1h                           ; e9 26 03
    1276012764    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1276112765    cmp AL, strict byte 001h                  ; 3c 01
    12762     jc short 08466h                           ; 72 0c
    12763     jbe short 0846eh                          ; 76 12
     12766    jc short 0848eh                           ; 72 0c
     12767    jbe short 08496h                          ; 76 12
    1276412768    cmp AL, strict byte 003h                  ; 3c 03
    12765     je short 08476h                           ; 74 16
     12769    je short 0849eh                           ; 74 16
    1276612770    cmp AL, strict byte 002h                  ; 3c 02
    12767     je short 08472h                           ; 74 0e
    12768     jmp short 084bdh                          ; eb 57
     12771    je short 0849ah                           ; 74 0e
     12772    jmp short 084e5h                          ; eb 57
    1276912773    test al, al                               ; 84 c0
    12770     jne short 084bdh                          ; 75 53
     12774    jne short 084e5h                          ; 75 53
    1277112775    mov BL, strict byte 090h                  ; b3 90
    12772     jmp short 08478h                          ; eb 0a
     12776    jmp short 084a0h                          ; eb 0a
    1277312777    mov BL, strict byte 098h                  ; b3 98
    12774     jmp short 08478h                          ; eb 06
     12778    jmp short 084a0h                          ; eb 06
    1277512779    mov BL, strict byte 0a0h                  ; b3 a0
    12776     jmp short 08478h                          ; eb 02
     12780    jmp short 084a0h                          ; eb 02
    1277712781    mov BL, strict byte 0a8h                  ; b3 a8
    1277812782    mov cl, bl                                ; 88 d9
     
    1278012784    xor ch, ch                                ; 30 ed
    1278112785    mov ax, cx                                ; 89 c8
    12782     call 016aeh                               ; e8 2a 92
     12786    call 016aeh                               ; e8 02 92
    1278312787    test al, al                               ; 84 c0
    12784     je short 084bdh                           ; 74 35
     12788    je short 084e5h                           ; 74 35
    1278512789    mov al, bl                                ; 88 d8
    1278612790    db  0feh, 0c0h
    1278712791    ; inc al                                    ; fe c0
    1278812792    xor ah, ah                                ; 30 e4
    12789     call 016aeh                               ; e8 1d 92
     12793    call 016aeh                               ; e8 f5 91
    1279012794    mov dh, al                                ; 88 c6
    1279112795    mov al, bl                                ; 88 d8
    1279212796    xor ah, ah                                ; 30 e4
    12793     call 016aeh                               ; e8 14 92
     12797    call 016aeh                               ; e8 ec 91
    1279412798    mov ah, dh                                ; 88 f4
    1279512799    cwd                                       ; 99
     
    1279912803    add AL, strict byte 002h                  ; 04 02
    1280012804    xor ah, ah                                ; 30 e4
    12801     call 016aeh                               ; e8 03 92
     12805    call 016aeh                               ; e8 db 91
    1280212806    xor ah, ah                                ; 30 e4
    1280312807    mov word [bp-028h], ax                    ; 89 46 d8
    1280412808    mov ax, cx                                ; 89 c8
    12805     call 016aeh                               ; e8 f9 91
     12809    call 016aeh                               ; e8 d1 91
    1280612810    xor ah, ah                                ; 30 e4
    1280712811    mov word [bp-01ah], ax                    ; 89 46 e6
    12808     jmp near 085aah                           ; e9 ed 00
     12812    jmp near 085d2h                           ; e9 ed 00
    1280912813    mov ax, word [bp-020h]                    ; 8b 46 e0
    1281012814    mov bx, word [bp-022h]                    ; 8b 5e de
     
    1281212816    mov dx, word [bp-024h]                    ; 8b 56 dc
    1281312817    mov si, strict word 0000ch                ; be 0c 00
    12814     call 0a0b0h                               ; e8 e1 1b
     12818    call 0a0e0h                               ; e8 e9 1b
    1281512819    mov word [bp-02ah], ax                    ; 89 46 d6
    1281612820    mov word [bp-02ch], bx                    ; 89 5e d4
     
    1281912823    mov ax, word [bp-020h]                    ; 8b 46 e0
    1282012824    test ax, ax                               ; 85 c0
    12821     jnbe short 084f7h                         ; 77 15
    12822     je short 084e7h                           ; 74 03
    12823     jmp near 0856ah                           ; e9 83 00
     12825    jnbe short 0851fh                         ; 77 15
     12826    je short 0850fh                           ; 74 03
     12827    jmp near 08592h                           ; e9 83 00
    1282412828    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    12825     jnbe short 084f7h                         ; 77 0a
    12826     jne short 084e4h                          ; 75 f5
     12829    jnbe short 0851fh                         ; 77 0a
     12830    jne short 0850ch                          ; 75 f5
    1282712831    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
    12828     jnbe short 084f7h                         ; 77 02
    12829     jne short 0856ah                          ; 75 73
     12832    jnbe short 0851fh                         ; 77 02
     12833    jne short 08592h                          ; 75 73
    1283012834    mov word [bp-028h], 000ffh                ; c7 46 d8 ff 00
    1283112835    mov word [bp-01ah], strict word 0003fh    ; c7 46 e6 3f 00
     
    1283412838    mov dx, word [bp-024h]                    ; 8b 56 dc
    1283512839    mov si, strict word 00006h                ; be 06 00
    12836     call 0a0b0h                               ; e8 a0 1b
     12840    call 0a0e0h                               ; e8 a8 1b
    1283712841    mov si, word [bp-018h]                    ; 8b 76 e8
    1283812842    add si, dx                                ; 01 d6
     
    1285212856    mov dx, si                                ; 89 f2
    1285312857    mov si, strict word 00008h                ; be 08 00
    12854     call 0a0b0h                               ; e8 70 1b
     12858    call 0a0e0h                               ; e8 78 1b
    1285512859    mov word [bp-02eh], bx                    ; 89 5e d2
    1285612860    mov word [bp-030h], cx                    ; 89 4e d0
     
    1286112865    mov dx, word [bp-01eh]                    ; 8b 56 e2
    1286212866    mov si, strict word 00010h                ; be 10 00
    12863     call 0a0b0h                               ; e8 55 1b
     12867    call 0a0e0h                               ; e8 5d 1b
    1286412868    mov si, word [bp-032h]                    ; 8b 76 ce
    1286512869    add si, dx                                ; 01 d6
     
    1286712871    mov ax, word [bp-02eh]                    ; 8b 46 d2
    1286812872    adc ax, bx                                ; 11 d8
    12869     jmp short 085a7h                          ; eb 3d
     12873    jmp short 085cfh                          ; eb 3d
    1287012874    test ax, ax                               ; 85 c0
    12871     jnbe short 08580h                         ; 77 12
    12872     jne short 0858ch                          ; 75 1c
     12875    jnbe short 085a8h                         ; 77 12
     12876    jne short 085b4h                          ; 75 1c
    1287312877    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    12874     jnbe short 08580h                         ; 77 0a
    12875     jne short 0858ch                          ; 75 14
     12878    jnbe short 085a8h                         ; 77 0a
     12879    jne short 085b4h                          ; 75 14
    1287612880    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
    12877     jnbe short 08580h                         ; 77 02
    12878     jne short 0858ch                          ; 75 0c
     12881    jnbe short 085a8h                         ; 77 02
     12882    jne short 085b4h                          ; 75 0c
    1287912883    mov word [bp-028h], 00080h                ; c7 46 d8 80 00
    1288012884    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
    12881     jmp short 085a5h                          ; eb 19
     12885    jmp short 085cdh                          ; eb 19
    1288212886    mov word [bp-028h], strict word 00040h    ; c7 46 d8 40 00
    1288312887    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
     
    1288612890    mov dx, word [bp-024h]                    ; 8b 56 dc
    1288712891    mov si, strict word 0000bh                ; be 0b 00
    12888     call 0a0b0h                               ; e8 0b 1b
     12892    call 0a0e0h                               ; e8 13 1b
    1288912893    mov si, dx                                ; 89 d6
    1289012894    mov word [bp-026h], cx                    ; 89 4e da
     
    1292312927    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1292412928    cmp word [bp-026h], strict byte 00000h    ; 83 7e da 00
    12925     jne short 08621h                          ; 75 06
     12929    jne short 08649h                          ; 75 06
    1292612930    cmp si, 00400h                            ; 81 fe 00 04
    12927     jbe short 0862fh                          ; 76 0e
     12931    jbe short 08657h                          ; 76 0e
    1292812932    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1292912933    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12930     jmp short 08637h                          ; eb 08
     12934    jmp short 0865fh                          ; eb 08
    1293112935    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1293212936    mov word [es:bx+032h], si                 ; 26 89 77 32
     
    1293412938    mov cx, ds                                ; 8c d9
    1293512939    mov ax, strict word 00004h                ; b8 04 00
    12936     call 01933h                               ; e8 f1 92
     12940    call 01933h                               ; e8 c9 92
    1293712941    push word [bp-020h]                       ; ff 76 e0
    1293812942    push word [bp-022h]                       ; ff 76 de
     
    1295112955    mov ax, strict word 00004h                ; b8 04 00
    1295212956    push ax                                   ; 50
    12953     call 01976h                               ; e8 0a 93
     12957    call 01976h                               ; e8 e2 92
    1295412958    add sp, strict byte 00018h                ; 83 c4 18
    1295512959    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    1298012984    mov dx, strict word 00075h                ; ba 75 00
    1298112985    mov ax, strict word 00040h                ; b8 40 00
    12982     call 01652h                               ; e8 90 8f
     12986    call 01652h                               ; e8 68 8f
    1298312987    mov bl, al                                ; 88 c3
    1298412988    db  0feh, 0c3h
     
    1298712991    mov dx, strict word 00075h                ; ba 75 00
    1298812992    mov ax, strict word 00040h                ; b8 40 00
    12989     call 01660h                               ; e8 8f 8f
     12993    call 01660h                               ; e8 67 8f
    1299012994    inc byte [bp-00ch]                        ; fe 46 f4
    12991     jmp near 0876eh                           ; e9 97 00
     12995    jmp near 08796h                           ; e9 97 00
    1299212996    mov bx, 00da0h                            ; bb a0 0d
    1299312997    mov cx, ds                                ; 8c d9
    1299412998    mov ax, strict word 00004h                ; b8 04 00
    12995     call 01933h                               ; e8 51 92
     12999    call 01933h                               ; e8 29 92
    1299613000    push word [bp-014h]                       ; ff 76 ec
    1299713001    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1300213006    mov ax, strict word 00004h                ; b8 04 00
    1300313007    push ax                                   ; 50
    13004     call 01976h                               ; e8 80 92
     13008    call 01976h                               ; e8 58 92
    1300513009    add sp, strict byte 00008h                ; 83 c4 08
    1300613010    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1300813012    mov byte [bp-00eh], al                    ; 88 46 f2
    1300913013    test byte [bp-00247h], 080h               ; f6 86 b9 fd 80
    13010     je short 0870dh                           ; 74 05
     13014    je short 08735h                           ; 74 05
    1301113015    mov cx, strict word 00001h                ; b9 01 00
    13012     jmp short 0870fh                          ; eb 02
     13016    jmp short 08737h                          ; eb 02
    1301313017    xor cx, cx                                ; 31 c9
    1301413018    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1304813052    inc word [bp-014h]                        ; ff 46 ec
    1304913053    cmp word [bp-014h], strict byte 00010h    ; 83 7e ec 10
    13050     jl short 08785h                           ; 7c 03
    13051     jmp near 08808h                           ; e9 83 00
     13054    jl short 087adh                           ; 7c 03
     13055    jmp near 08830h                           ; e9 83 00
    1305213056    mov byte [bp-048h], 012h                  ; c6 46 b8 12
    1305313057    xor al, al                                ; 30 c0
     
    1307113075    lea bx, [bp-048h]                         ; 8d 5e b8
    1307213076    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
    13073     call 07e5bh                               ; e8 9e f6
     13077    call 07e83h                               ; e8 9e f6
    1307413078    test al, al                               ; 84 c0
    13075     je short 087d3h                           ; 74 12
     13079    je short 087fbh                           ; 74 12
    1307613080    mov ax, 00b92h                            ; b8 92 0b
    1307713081    push ax                                   ; 50
     
    1308013084    mov ax, strict word 00007h                ; b8 07 00
    1308113085    push ax                                   ; 50
    13082     call 01976h                               ; e8 a6 91
     13086    call 01976h                               ; e8 7e 91
    1308313087    add sp, strict byte 00006h                ; 83 c4 06
    1308413088    mov es, [bp-016h]                         ; 8e 46 ea
     
    1308613090    mov byte [bp-00ch], al                    ; 88 46 f4
    1308713091    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
    13088     jne short 087efh                          ; 75 0a
     13092    jne short 08817h                          ; 75 0a
    1308913093    test byte [bp-00248h], 01fh               ; f6 86 b8 fd 1f
    13090     jne short 087efh                          ; 75 03
    13091     jmp near 0836bh                           ; e9 7c fb
     13094    jne short 08817h                          ; 75 03
     13095    jmp near 08393h                           ; e9 7c fb
    1309213096    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
    13093     je short 087f9h                           ; 74 03
    13094     jmp near 0876eh                           ; e9 75 ff
     13097    je short 08821h                           ; 74 03
     13098    jmp near 08796h                           ; e9 75 ff
    1309513099    mov al, byte [bp-00248h]                  ; 8a 86 b8 fd
    1309613100    and AL, strict byte 01fh                  ; 24 1f
    1309713101    cmp AL, strict byte 005h                  ; 3c 05
    13098     jne short 08806h                          ; 75 03
    13099     jmp near 086d7h                           ; e9 d1 fe
    13100     jmp short 087f6h                          ; eb ee
     13102    jne short 0882eh                          ; 75 03
     13103    jmp near 086ffh                           ; e9 d1 fe
     13104    jmp short 0881eh                          ; eb ee
    1310113105    lea sp, [bp-00ah]                         ; 8d 66 f6
    1310213106    pop di                                    ; 5f
     
    1310713111    pop bp                                    ; 5d
    1310813112    retn                                      ; c3
    13109 _scsi_init:                                  ; 0xf8812 LB 0x66
     13113_scsi_init:                                  ; 0xf883a LB 0x66
    1311013114    push bp                                   ; 55
    1311113115    mov bp, sp                                ; 89 e5
    1311213116    mov dx, strict word 0000eh                ; ba 0e 00
    1311313117    mov ax, strict word 00040h                ; b8 40 00
    13114     call 0166eh                               ; e8 50 8e
     13118    call 0166eh                               ; e8 28 8e
    1311513119    mov bx, 00122h                            ; bb 22 01
    1311613120    mov es, ax                                ; 8e c0
     
    1312313127    ; sub ah, ah                                ; 2a e4
    1312413128    cmp AL, strict byte 055h                  ; 3c 55
    13125     jne short 08842h                          ; 75 0c
     13129    jne short 0886ah                          ; 75 0c
    1312613130    xor al, al                                ; 30 c0
    1312713131    mov dx, 00433h                            ; ba 33 04
    1312813132    out DX, AL                                ; ee
    1312913133    mov ax, 00430h                            ; b8 30 04
    13130     call 08347h                               ; e8 05 fb
     13134    call 0836fh                               ; e8 05 fb
    1313113135    mov AL, strict byte 055h                  ; b0 55
    1313213136    mov dx, 00436h                            ; ba 36 04
     
    1313613140    ; sub ah, ah                                ; 2a e4
    1313713141    cmp AL, strict byte 055h                  ; 3c 55
    13138     jne short 0885bh                          ; 75 0c
     13142    jne short 08883h                          ; 75 0c
    1313913143    xor al, al                                ; 30 c0
    1314013144    mov dx, 00437h                            ; ba 37 04
    1314113145    out DX, AL                                ; ee
    1314213146    mov ax, 00434h                            ; b8 34 04
    13143     call 08347h                               ; e8 ec fa
     13147    call 0836fh                               ; e8 ec fa
    1314413148    mov AL, strict byte 055h                  ; b0 55
    1314513149    mov dx, 0043ah                            ; ba 3a 04
     
    1314913153    ; sub ah, ah                                ; 2a e4
    1315013154    cmp AL, strict byte 055h                  ; 3c 55
    13151     jne short 08874h                          ; 75 0c
     13155    jne short 0889ch                          ; 75 0c
    1315213156    xor al, al                                ; 30 c0
    1315313157    mov dx, 0043bh                            ; ba 3b 04
    1315413158    out DX, AL                                ; ee
    1315513159    mov ax, 00438h                            ; b8 38 04
    13156     call 08347h                               ; e8 d3 fa
     13160    call 0836fh                               ; e8 d3 fa
    1315713161    mov sp, bp                                ; 89 ec
    1315813162    pop bp                                    ; 5d
    1315913163    retn                                      ; c3
    13160 ahci_ctrl_extract_bits_:                     ; 0xf8878 LB 0x1c
     13164ahci_ctrl_extract_bits_:                     ; 0xf88a0 LB 0x1c
    1316113165    push si                                   ; 56
    1316213166    push bp                                   ; 55
     
    1316713171    mov cl, byte [bp+006h]                    ; 8a 4e 06
    1316813172    xor ch, ch                                ; 30 ed
    13169     jcxz 0888fh                               ; e3 06
     13173    jcxz 088b7h                               ; e3 06
    1317013174    shr dx, 1                                 ; d1 ea
    1317113175    rcr ax, 1                                 ; d1 d8
    13172     loop 08889h                               ; e2 fa
     13176    loop 088b1h                               ; e2 fa
    1317313177    pop bp                                    ; 5d
    1317413178    pop si                                    ; 5e
    1317513179    retn 00002h                               ; c2 02 00
    13176 ahci_addr_to_phys_:                          ; 0xf8894 LB 0x1e
     13180ahci_addr_to_phys_:                          ; 0xf88bc LB 0x1e
    1317713181    push bx                                   ; 53
    1317813182    push cx                                   ; 51
     
    1318513189    sal ax, 1                                 ; d1 e0
    1318613190    rcl dx, 1                                 ; d1 d2
    13187     loop 088a2h                               ; e2 fa
     13191    loop 088cah                               ; e2 fa
    1318813192    xor cx, cx                                ; 31 c9
    1318913193    add ax, bx                                ; 01 d8
     
    1319313197    pop bx                                    ; 5b
    1319413198    retn                                      ; c3
    13195 ahci_port_cmd_sync_:                         ; 0xf88b2 LB 0x159
     13199ahci_port_cmd_sync_:                         ; 0xf88da LB 0x159
    1319613200    push bp                                   ; 55
    1319713201    mov bp, sp                                ; 89 e5
     
    1320813212    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1320913213    cmp AL, strict byte 0ffh                  ; 3c ff
    13210     jne short 088d5h                          ; 75 03
    13211     jmp near 08a03h                           ; e9 2e 01
     13214    jne short 088fdh                          ; 75 03
     13215    jmp near 08a2bh                           ; e9 2e 01
    1321213216    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    1321313217    xor ah, ah                                ; 30 e4
     
    1322213226    lea ax, [si+00080h]                       ; 8d 84 80 00
    1322313227    mov dx, cx                                ; 89 ca
    13224     call 08894h                               ; e8 92 ff
     13228    call 088bch                               ; e8 92 ff
    1322513229    mov es, cx                                ; 8e c1
    1322613230    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1329013294    xchg dx, ax                               ; 92
    1329113295    test dh, 040h                             ; f6 c6 40
    13292     jne short 08995h                          ; 75 04
     13296    jne short 089bdh                          ; 75 04
    1329313297    test AL, strict byte 001h                 ; a8 01
    13294     je short 08999h                           ; 74 04
     13298    je short 089c1h                           ; 74 04
    1329513299    mov AL, strict byte 001h                  ; b0 01
    13296     jmp short 0899bh                          ; eb 02
     13300    jmp short 089c3h                          ; eb 02
    1329713301    xor al, al                                ; 30 c0
    1329813302    test al, al                               ; 84 c0
    13299     je short 08967h                           ; 74 c8
     13303    je short 0898fh                           ; 74 c8
    1330013304    mov al, byte [bp-008h]                    ; 8a 46 f8
    1330113305    xor ah, ah                                ; 30 e4
     
    1335413358    pop bp                                    ; 5d
    1335513359    retn                                      ; c3
    13356 ahci_cmd_data_:                              ; 0xf8a0b LB 0x262
     13360ahci_cmd_data_:                              ; 0xf8a33 LB 0x262
    1335713361    push bp                                   ; 55
    1335813362    mov bp, sp                                ; 89 e5
     
    1337913383    mov ax, 00080h                            ; b8 80 00
    1338013384    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13381     call 0a0d0h                               ; e8 87 16
     13385    call 0a100h                               ; e8 8f 16
    1338213386    mov es, [bp-00ah]                         ; 8e 46 f6
    1338313387    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1339713401    mov dx, word [es:si]                      ; 26 8b 14
    1339813402    mov si, strict word 00008h                ; be 08 00
    13399     call 0a0b0h                               ; e8 23 16
     13403    call 0a0e0h                               ; e8 2b 16
    1340013404    mov es, [bp-00ah]                         ; 8e 46 f6
    1340113405    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1340813412    mov dx, word [es:si]                      ; 26 8b 14
    1340913413    mov si, strict word 00010h                ; be 10 00
    13410     call 0a0b0h                               ; e8 fd 15
     13414    call 0a0e0h                               ; e8 05 16
    1341113415    mov es, [bp-00ah]                         ; 8e 46 f6
    1341213416    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1342013424    mov dx, word [es:si]                      ; 26 8b 14
    1342113425    mov si, strict word 00018h                ; be 18 00
    13422     call 0a0b0h                               ; e8 d1 15
     13426    call 0a0e0h                               ; e8 d9 15
    1342313427    mov es, [bp-00ah]                         ; 8e 46 f6
    1342413428    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1343113435    mov dx, word [es:si]                      ; 26 8b 14
    1343213436    mov si, strict word 00020h                ; be 20 00
    13433     call 0a0b0h                               ; e8 ab 15
     13437    call 0a0e0h                               ; e8 b3 15
    1343413438    mov es, [bp-00ah]                         ; 8e 46 f6
    1343513439    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1344213446    mov dx, word [es:si]                      ; 26 8b 14
    1344313447    mov si, strict word 00028h                ; be 28 00
    13444     call 0a0b0h                               ; e8 85 15
     13448    call 0a0e0h                               ; e8 8d 15
    1344513449    mov es, [bp-00ah]                         ; 8e 46 f6
    1344613450    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1345513459    mov bx, word [bp-012h]                    ; 8b 5e ee
    1345613460    xor cx, cx                                ; 31 c9
    13457     call 0a060h                               ; e8 03 15
     13461    call 0a090h                               ; e8 0b 15
    1345813462    push dx                                   ; 52
    1345913463    push ax                                   ; 50
     
    1346513469    mov ax, 0026ah                            ; b8 6a 02
    1346613470    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13467     call 09fb4h                               ; e8 3b 14
     13471    call 09fdch                               ; e8 3b 14
    1346813472    mov es, [bp-00ah]                         ; 8e 46 f6
    1346913473    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1348913493    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1349013494    test ax, ax                               ; 85 c0
    13491     je short 08c09h                           ; 74 39
     13495    je short 08c31h                           ; 74 39
    1349213496    dec ax                                    ; 48
    1349313497    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1350713511    mov al, byte [bp-008h]                    ; 8a 46 f8
    1350813512    cmp AL, strict byte 035h                  ; 3c 35
    13509     jne short 08c16h                          ; 75 06
     13513    jne short 08c3eh                          ; 75 06
    1351013514    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13511     jmp short 08c2dh                          ; eb 17
     13515    jmp short 08c55h                          ; eb 17
    1351213516    cmp AL, strict byte 0a0h                  ; 3c a0
    13513     jne short 08c29h                          ; 75 0f
     13517    jne short 08c51h                          ; 75 0f
    1351413518    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1351513519    les bx, [bp-00eh]                         ; c4 5e f2
    1351613520    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13517     jmp short 08c2dh                          ; eb 04
     13521    jmp short 08c55h                          ; eb 04
    1351813522    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1351913523    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1352213526    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1352313527    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13524     call 088b2h                               ; e8 73 fc
     13528    call 088dah                               ; e8 73 fc
    1352513529    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1352613530    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1352913533    add ax, 0026ah                            ; 05 6a 02
    1353013534    mov dx, cx                                ; 89 ca
    13531     call 0a02bh                               ; e8 d7 13
     13535    call 0a053h                               ; e8 d7 13
    1353213536    mov es, cx                                ; 8e c1
    1353313537    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1353413538    test al, al                               ; 84 c0
    13535     je short 08c63h                           ; 74 05
     13539    je short 08c8bh                           ; 74 05
    1353613540    mov ax, strict word 00004h                ; b8 04 00
    13537     jmp short 08c65h                          ; eb 02
     13541    jmp short 08c8dh                          ; eb 02
    1353813542    xor ah, ah                                ; 30 e4
    1353913543    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1354313547    pop bp                                    ; 5d
    1354413548    retn                                      ; c3
    13545 ahci_port_deinit_current_:                   ; 0xf8c6d LB 0x183
     13549ahci_port_deinit_current_:                   ; 0xf8c95 LB 0x183
    1354613550    push bp                                   ; 55
    1354713551    mov bp, sp                                ; 89 e5
     
    1355813562    mov byte [bp-00ah], al                    ; 88 46 f6
    1355913563    cmp AL, strict byte 0ffh                  ; 3c ff
    13560     je short 08cf0h                           ; 74 61
     13564    je short 08d18h                           ; 74 61
    1356113565    xor ah, ah                                ; 30 e4
    1356213566    mov CL, strict byte 007h                  ; b1 07
     
    1360413608    xchg dx, ax                               ; 92
    1360513609    test ax, 0c011h                           ; a9 11 c0
    13606     je short 08cf3h                           ; 74 07
     13610    je short 08d1bh                           ; 74 07
    1360713611    mov AL, strict byte 001h                  ; b0 01
    13608     jmp short 08cf5h                          ; eb 05
    13609     jmp near 08de7h                           ; e9 f4 00
     13612    jmp short 08d1dh                          ; eb 05
     13613    jmp near 08e0fh                           ; e9 f4 00
    1361013614    xor al, al                                ; 30 c0
    1361113615    cmp AL, strict byte 001h                  ; 3c 01
    13612     je short 08cc2h                           ; 74 c9
     13616    je short 08ceah                           ; 74 c9
    1361313617    mov cx, strict word 00020h                ; b9 20 00
    1361413618    xor bx, bx                                ; 31 db
    1361513619    mov ax, di                                ; 89 f8
    1361613620    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13617     call 0a0d0h                               ; e8 ca 13
     13621    call 0a100h                               ; e8 d2 13
    1361813622    lea ax, [di+00080h]                       ; 8d 85 80 00
    1361913623    mov cx, strict word 00040h                ; b9 40 00
    1362013624    xor bx, bx                                ; 31 db
    1362113625    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13622     call 0a0d0h                               ; e8 bb 13
     13626    call 0a100h                               ; e8 c3 13
    1362313627    lea ax, [di+00200h]                       ; 8d 85 00 02
    1362413628    mov cx, strict word 00060h                ; b9 60 00
    1362513629    xor bx, bx                                ; 31 db
    1362613630    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13627     call 0a0d0h                               ; e8 ac 13
     13631    call 0a100h                               ; e8 b4 13
    1362813632    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1362913633    xor ah, ah                                ; 30 e4
     
    1373113735    pop bp                                    ; 5d
    1373213736    retn                                      ; c3
    13733 ahci_port_init_:                             ; 0xf8df0 LB 0x250
     13737ahci_port_init_:                             ; 0xf8e18 LB 0x250
    1373413738    push bp                                   ; 55
    1373513739    mov bp, sp                                ; 89 e5
     
    1374113745    mov word [bp-00ah], dx                    ; 89 56 f6
    1374213746    mov byte [bp-008h], bl                    ; 88 5e f8
    13743     call 08c6dh                               ; e8 69 fe
     13747    call 08c95h                               ; e8 69 fe
    1374413748    mov al, bl                                ; 88 d8
    1374513749    xor ah, ah                                ; 30 e4
     
    1379213796    xchg dx, ax                               ; 92
    1379313797    test ax, 0c011h                           ; a9 11 c0
    13794     je short 08e77h                           ; 74 04
     13798    je short 08e9fh                           ; 74 04
    1379513799    mov AL, strict byte 001h                  ; b0 01
    13796     jmp short 08e79h                          ; eb 02
     13800    jmp short 08ea1h                          ; eb 02
    1379713801    xor al, al                                ; 30 c0
    1379813802    cmp AL, strict byte 001h                  ; 3c 01
    13799     je short 08e41h                           ; 74 c4
     13803    je short 08e69h                           ; 74 c4
    1380013804    mov cx, strict word 00020h                ; b9 20 00
    1380113805    xor bx, bx                                ; 31 db
    1380213806    mov ax, si                                ; 89 f0
    1380313807    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13804     call 0a0d0h                               ; e8 46 12
     13808    call 0a100h                               ; e8 4e 12
    1380513809    lea ax, [si+00080h]                       ; 8d 84 80 00
    1380613810    mov cx, strict word 00040h                ; b9 40 00
    1380713811    xor bx, bx                                ; 31 db
    1380813812    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13809     call 0a0d0h                               ; e8 37 12
     13813    call 0a100h                               ; e8 3f 12
    1381013814    lea di, [si+00200h]                       ; 8d bc 00 02
    1381113815    mov cx, strict word 00060h                ; b9 60 00
     
    1381313817    mov ax, di                                ; 89 f8
    1381413818    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13815     call 0a0d0h                               ; e8 26 12
     13819    call 0a100h                               ; e8 2e 12
    1381613820    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1381713821    xor bh, bh                                ; 30 ff
     
    1383213836    mov ax, di                                ; 89 f8
    1383313837    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13834     call 08894h                               ; e8 bb f9
     13838    call 088bch                               ; e8 bb f9
    1383513839    mov es, [bp-00ah]                         ; 8e 46 f6
    1383613840    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1387713881    mov ax, si                                ; 89 f0
    1387813882    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13879     call 08894h                               ; e8 4f f9
     13883    call 088bch                               ; e8 4f f9
    1388013884    mov es, [bp-00ah]                         ; 8e 46 f6
    1388113885    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1398213986    pop bp                                    ; 5d
    1398313987    retn                                      ; c3
    13984 @ahci_read_sectors:                          ; 0xf9040 LB 0xaa
     13988@ahci_read_sectors:                          ; 0xf9068 LB 0xaa
    1398513989    push bp                                   ; 55
    1398613990    mov bp, sp                                ; 89 e5
     
    1399313997    sub di, strict byte 0000ch                ; 83 ef 0c
    1399413998    cmp di, strict byte 00004h                ; 83 ff 04
    13995     jbe short 0906bh                          ; 76 13
     13999    jbe short 09093h                          ; 76 13
    1399614000    push di                                   ; 57
    1399714001    mov ax, 00c62h                            ; b8 62 0c
     
    1400114005    mov ax, strict word 00007h                ; b8 07 00
    1400214006    push ax                                   ; 50
    14003     call 01976h                               ; e8 0e 89
     14007    call 01976h                               ; e8 e6 88
    1400414008    add sp, strict byte 00008h                ; 83 c4 08
    1400514009    xor bx, bx                                ; 31 db
     
    1401514019    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1401614020    xor ax, ax                                ; 31 c0
    14017     call 08df0h                               ; e8 5a fd
     14021    call 08e18h                               ; e8 5a fd
    1401814022    mov bx, strict word 00025h                ; bb 25 00
    1401914023    mov ax, si                                ; 89 f0
    1402014024    mov dx, word [bp+006h]                    ; 8b 56 06
    14021     call 08a0bh                               ; e8 6a f9
     14025    call 08a33h                               ; e8 6a f9
    1402214026    mov bx, ax                                ; 89 c3
    1402314027    mov es, [bp+006h]                         ; 8e 46 06
     
    1404914053    pop bp                                    ; 5d
    1405014054    retn 00004h                               ; c2 04 00
    14051 @ahci_write_sectors:                         ; 0xf90ea LB 0x88
     14055@ahci_write_sectors:                         ; 0xf9112 LB 0x88
    1405214056    push bp                                   ; 55
    1405314057    mov bp, sp                                ; 89 e5
     
    1406114065    sub bx, strict byte 0000ch                ; 83 eb 0c
    1406214066    cmp bx, strict byte 00004h                ; 83 fb 04
    14063     jbe short 09118h                          ; 76 13
     14067    jbe short 09140h                          ; 76 13
    1406414068    push bx                                   ; 53
    1406514069    mov ax, 00c93h                            ; b8 93 0c
     
    1406914073    mov ax, strict word 00007h                ; b8 07 00
    1407014074    push ax                                   ; 50
    14071     call 01976h                               ; e8 61 88
     14075    call 01976h                               ; e8 39 88
    1407214076    add sp, strict byte 00008h                ; 83 c4 08
    1407314077    xor di, di                                ; 31 ff
     
    1408314087    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1408414088    xor ax, ax                                ; 31 c0
    14085     call 08df0h                               ; e8 af fc
     14089    call 08e18h                               ; e8 af fc
    1408614090    mov bx, strict word 00035h                ; bb 35 00
    1408714091    mov ax, si                                ; 89 f0
    1408814092    mov dx, cx                                ; 89 ca
    14089     call 08a0bh                               ; e8 c0 f8
     14093    call 08a33h                               ; e8 c0 f8
    1409014094    mov dx, ax                                ; 89 c2
    1409114095    mov es, cx                                ; 8e c1
     
    1410214106    pop bp                                    ; 5d
    1410314107    retn 00004h                               ; c2 04 00
    14104 ahci_cmd_packet_:                            ; 0xf9172 LB 0x18c
     14108ahci_cmd_packet_:                            ; 0xf919a LB 0x18c
    1410514109    push bp                                   ; 55
    1410614110    mov bp, sp                                ; 89 e5
     
    1411414118    mov dx, strict word 0000eh                ; ba 0e 00
    1411514119    mov ax, strict word 00040h                ; b8 40 00
    14116     call 0166eh                               ; e8 e1 84
     14120    call 0166eh                               ; e8 b9 84
    1411714121    mov si, 00122h                            ; be 22 01
    1411814122    mov word [bp-008h], ax                    ; 89 46 f8
    1411914123    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    14120     jne short 091bch                          ; 75 23
     14124    jne short 091e4h                          ; 75 23
    1412114125    mov bx, 00da0h                            ; bb a0 0d
    1412214126    mov cx, ds                                ; 8c d9
    1412314127    mov ax, strict word 00004h                ; b8 04 00
    14124     call 01933h                               ; e8 8f 87
     14128    call 01933h                               ; e8 67 87
    1412514129    mov ax, 00ca6h                            ; b8 a6 0c
    1412614130    push ax                                   ; 50
     
    1412914133    mov ax, strict word 00004h                ; b8 04 00
    1413014134    push ax                                   ; 50
    14131     call 01976h                               ; e8 c3 87
     14135    call 01976h                               ; e8 9b 87
    1413214136    add sp, strict byte 00006h                ; 83 c4 06
    1413314137    mov ax, strict word 00001h                ; b8 01 00
    14134     jmp near 092f5h                           ; e9 39 01
     14138    jmp near 0931dh                           ; e9 39 01
    1413514139    test byte [bp+004h], 001h                 ; f6 46 04 01
    14136     jne short 091b6h                          ; 75 f4
     14140    jne short 091deh                          ; 75 f4
    1413714141    mov bx, word [bp+006h]                    ; 8b 5e 06
    1413814142    mov di, word [bp+008h]                    ; 8b 7e 08
     
    1414014144    sal bx, 1                                 ; d1 e3
    1414114145    rcl di, 1                                 ; d1 d7
    14142     loop 091cbh                               ; e2 fa
     14146    loop 091f3h                               ; e2 fa
    1414314147    mov es, [bp-008h]                         ; 8e 46 f8
    1414414148    mov word [es:si], bx                      ; 26 89 1c
     
    1415414158    mov dx, word [bp+008h]                    ; 8b 56 08
    1415514159    xor cx, cx                                ; 31 c9
    14156     call 0a080h                               ; e8 7c 0e
     14160    call 0a0b0h                               ; e8 84 0e
    1415714161    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1415814162    xor di, di                                ; 31 ff
     
    1417214176    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1417314177    xor ax, ax                                ; 31 c0
    14174     call 08df0h                               ; e8 af fb
     14178    call 08e18h                               ; e8 af fb
    1417514179    mov al, byte [bp-006h]                    ; 8a 46 fa
    1417614180    xor ah, ah                                ; 30 e4
     
    1418014184    mov ax, 000c0h                            ; b8 c0 00
    1418114185    mov dx, word [bp-00ah]                    ; 8b 56 f6
    14182     call 0a0e0h                               ; e8 8a 0e
     14186    call 0a110h                               ; e8 92 0e
    1418314187    mov es, [bp-008h]                         ; 8e 46 f8
    1418414188    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1418714191    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1418814192    test ax, ax                               ; 85 c0
    14189     je short 09294h                           ; 74 27
     14193    je short 092bch                           ; 74 27
    1419014194    dec ax                                    ; 48
    1419114195    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1420014204    mov ax, si                                ; 89 f0
    1420114205    mov dx, word [bp-008h]                    ; 8b 56 f8
    14202     call 08a0bh                               ; e8 6c f7
     14206    call 08a33h                               ; e8 6c f7
    1420314207    les bx, [bp-00eh]                         ; c4 5e f2
    1420414208    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
     
    1422714231    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1422814232    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    14229     jne short 092f3h                          ; 75 05
     14233    jne short 0931bh                          ; 75 05
    1423014234    mov ax, strict word 00004h                ; b8 04 00
    14231     jmp short 092f5h                          ; eb 02
     14235    jmp short 0931dh                          ; eb 02
    1423214236    xor ax, ax                                ; 31 c0
    1423314237    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1423614240    pop bp                                    ; 5d
    1423714241    retn 0000ch                               ; c2 0c 00
    14238 ahci_port_detect_device_:                    ; 0xf92fe LB 0x4fe
     14242ahci_port_detect_device_:                    ; 0xf9326 LB 0x4fe
    1423914243    push bp                                   ; 55
    1424014244    mov bp, sp                                ; 89 e5
     
    1425214256    mov bx, word [bp-020h]                    ; 8b 5e e0
    1425314257    mov ax, si                                ; 89 f0
    14254     call 08df0h                               ; e8 ce fa
     14258    call 08e18h                               ; e8 ce fa
    1425514259    mov dx, strict word 0000eh                ; ba 0e 00
    1425614260    mov ax, strict word 00040h                ; b8 40 00
    14257     call 0166eh                               ; e8 43 83
     14261    call 0166eh                               ; e8 1b 83
    1425814262    mov word [bp-01ah], 00122h                ; c7 46 e6 22 01
    1425914263    mov word [bp-00eh], ax                    ; 89 46 f2
     
    1432714331    mov bx, strict word 0000fh                ; bb 0f 00
    1432814332    xor cx, cx                                ; 31 c9
    14329     call 08878h                               ; e8 9f f4
     14333    call 088a0h                               ; e8 9f f4
    1433014334    test ax, ax                               ; 85 c0
    14331     jne short 093e0h                          ; 75 03
    14332     jmp near 097f4h                           ; e9 14 04
     14335    jne short 09408h                          ; 75 03
     14336    jmp near 0981ch                           ; e9 14 04
    1433314337    mov al, byte [bp-008h]                    ; 8a 46 f8
    1433414338    xor ah, ah                                ; 30 e4
     
    1436214366    xor cx, cx                                ; 31 c9
    1436314367    mov ax, di                                ; 89 f8
    14364     call 08878h                               ; e8 4d f4
     14368    call 088a0h                               ; e8 4d f4
    1436514369    cmp ax, strict word 00001h                ; 3d 01 00
    14366     je short 093e0h                           ; 74 b0
     14370    je short 09408h                           ; 74 b0
    1436714371    xor ax, ax                                ; 31 c0
    1436814372    push ax                                   ; 50
     
    1437114375    mov ax, di                                ; 89 f8
    1437214376    mov dx, word [bp-01ch]                    ; 8b 56 e4
    14373     call 08878h                               ; e8 38 f4
     14377    call 088a0h                               ; e8 38 f4
    1437414378    cmp ax, strict word 00003h                ; 3d 03 00
    14375     jne short 093ddh                          ; 75 98
     14379    jne short 09405h                          ; 75 98
    1437614380    mov ax, word [bp-016h]                    ; 8b 46 ea
    1437714381    add ax, 00130h                            ; 05 30 01
     
    1440114405    mov byte [bp-00ch], al                    ; 88 46 f4
    1440214406    cmp AL, strict byte 004h                  ; 3c 04
    14403     jc short 0948fh                           ; 72 03
    14404     jmp near 097f4h                           ; e9 65 03
     14407    jc short 094b7h                           ; 72 03
     14408    jmp near 0981ch                           ; e9 65 03
    1440514409    mov ax, word [bp-016h]                    ; 8b 46 ea
    1440614410    add ax, 00118h                            ; 05 18 01
     
    1445414458    add cl, 00ch                              ; 80 c1 0c
    1445514459    test dx, dx                               ; 85 d2
    14456     jne short 0955ah                          ; 75 55
     14460    jne short 09582h                          ; 75 55
    1445714461    cmp bx, 00101h                            ; 81 fb 01 01
    14458     jne short 0955ah                          ; 75 4f
     14462    jne short 09582h                          ; 75 4f
    1445914463    mov es, [bp-00eh]                         ; 8e 46 f2
    1446014464    mov bx, word [bp-01ah]                    ; 8b 5e e6
     
    1447114475    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1447214476    mov dx, es                                ; 8c c2
    14473     call 08a0bh                               ; e8 c0 f4
     14477    call 08a33h                               ; e8 c0 f4
    1447414478    mov byte [bp-00ah], cl                    ; 88 4e f6
    1447514479    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14476     je short 0955dh                           ; 74 08
     14480    je short 09585h                           ; 74 08
    1447714481    mov ax, strict word 00001h                ; b8 01 00
    14478     jmp short 0955fh                          ; eb 05
    14479     jmp near 0972fh                           ; e9 d2 01
     14482    jmp short 09587h                          ; eb 05
     14483    jmp near 09757h                           ; e9 d2 01
    1448014484    xor ax, ax                                ; 31 c0
    1448114485    mov cl, al                                ; 88 c1
     
    1449314497    mov word [bp-012h], ax                    ; 89 46 ee
    1449414498    cmp di, 00fffh                            ; 81 ff ff 0f
    14495     jne short 095aeh                          ; 75 1f
     14499    jne short 095d6h                          ; 75 1f
    1449614500    cmp word [bp-014h], strict byte 0ffffh    ; 83 7e ec ff
    14497     jne short 095aeh                          ; 75 19
     14501    jne short 095d6h                          ; 75 19
    1449814502    mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
    1449914503    mov word [bp-012h], ax                    ; 89 46 ee
     
    1453514539    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1453614540    cmp AL, strict byte 001h                  ; 3c 01
    14537     jc short 0962bh                           ; 72 0c
    14538     jbe short 09633h                          ; 76 12
     14541    jc short 09653h                           ; 72 0c
     14542    jbe short 0965bh                          ; 76 12
    1453914543    cmp AL, strict byte 003h                  ; 3c 03
    14540     je short 0963bh                           ; 74 16
     14544    je short 09663h                           ; 74 16
    1454114545    cmp AL, strict byte 002h                  ; 3c 02
    14542     je short 09637h                           ; 74 0e
    14543     jmp short 0967eh                          ; eb 53
     14546    je short 0965fh                           ; 74 0e
     14547    jmp short 096a6h                          ; eb 53
    1454414548    test al, al                               ; 84 c0
    14545     jne short 0967eh                          ; 75 4f
     14549    jne short 096a6h                          ; 75 4f
    1454614550    mov DL, strict byte 040h                  ; b2 40
    14547     jmp short 0963dh                          ; eb 0a
     14551    jmp short 09665h                          ; eb 0a
    1454814552    mov DL, strict byte 048h                  ; b2 48
    14549     jmp short 0963dh                          ; eb 06
     14553    jmp short 09665h                          ; eb 06
    1455014554    mov DL, strict byte 050h                  ; b2 50
    14551     jmp short 0963dh                          ; eb 02
     14555    jmp short 09665h                          ; eb 02
    1455214556    mov DL, strict byte 058h                  ; b2 58
    1455314557    mov bl, dl                                ; 88 d3
     
    1455514559    xor bh, bh                                ; 30 ff
    1455614560    mov ax, bx                                ; 89 d8
    14557     call 016aeh                               ; e8 65 80
     14561    call 016aeh                               ; e8 3d 80
    1455814562    test al, al                               ; 84 c0
    14559     je short 0967eh                           ; 74 31
     14563    je short 096a6h                           ; 74 31
    1456014564    mov al, dl                                ; 88 d0
    1456114565    db  0feh, 0c0h
    1456214566    ; inc al                                    ; fe c0
    1456314567    xor ah, ah                                ; 30 e4
    14564     call 016aeh                               ; e8 58 80
     14568    call 016aeh                               ; e8 30 80
    1456514569    mov ch, al                                ; 88 c5
    1456614570    mov al, dl                                ; 88 d0
    1456714571    xor ah, ah                                ; 30 e4
    14568     call 016aeh                               ; e8 4f 80
     14572    call 016aeh                               ; e8 27 80
    1456914573    mov ah, ch                                ; 88 ec
    1457014574    mov word [bp-028h], ax                    ; 89 46 d8
     
    1457214576    add AL, strict byte 002h                  ; 04 02
    1457314577    xor ah, ah                                ; 30 e4
    14574     call 016aeh                               ; e8 41 80
     14578    call 016aeh                               ; e8 19 80
    1457514579    xor ah, ah                                ; 30 e4
    1457614580    mov word [bp-02ah], ax                    ; 89 46 d6
    1457714581    mov ax, bx                                ; 89 d8
    14578     call 016aeh                               ; e8 37 80
     14582    call 016aeh                               ; e8 0f 80
    1457914583    xor ah, ah                                ; 30 e4
    1458014584    mov word [bp-026h], ax                    ; 89 46 da
    14581     jmp short 09690h                          ; eb 12
     14585    jmp short 096b8h                          ; eb 12
    1458214586    push word [bp-012h]                       ; ff 76 ee
    1458314587    push word [bp-01eh]                       ; ff 76 e2
     
    1458614590    mov dx, ss                                ; 8c d2
    1458714591    lea ax, [bp-02ah]                         ; 8d 46 d6
    14588     call 05b4fh                               ; e8 bf c4
     14592    call 05b77h                               ; e8 bf c4
    1458914593    mov bx, 00da0h                            ; bb a0 0d
    1459014594    mov cx, ds                                ; 8c d9
    1459114595    mov ax, strict word 00004h                ; b8 04 00
    14592     call 01933h                               ; e8 98 82
     14596    call 01933h                               ; e8 70 82
    1459314597    push word [bp-012h]                       ; ff 76 ee
    1459414598    push word [bp-01eh]                       ; ff 76 e2
     
    1461314617    mov ax, strict word 00004h                ; b8 04 00
    1461414618    push ax                                   ; 50
    14615     call 01976h                               ; e8 a7 82
     14619    call 01976h                               ; e8 7f 82
    1461614620    add sp, strict byte 0001ch                ; 83 c4 1c
    1461714621    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    1464514649    mov dx, strict word 00075h                ; ba 75 00
    1464614650    mov ax, strict word 00040h                ; b8 40 00
    14647     call 01652h                               ; e8 35 7f
     14651    call 01652h                               ; e8 0d 7f
    1464814652    mov bl, al                                ; 88 c3
    1464914653    db  0feh, 0c3h
     
    1465214656    mov dx, strict word 00075h                ; ba 75 00
    1465314657    mov ax, strict word 00040h                ; b8 40 00
    14654     call 01660h                               ; e8 34 7f
    14655     jmp near 097e3h                           ; e9 b4 00
     14658    call 01660h                               ; e8 0c 7f
     14659    jmp near 0980bh                           ; e9 b4 00
    1465614660    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14657     jne short 0978ah                          ; 75 55
     14661    jne short 097b2h                          ; 75 55
    1465814662    cmp bx, 00101h                            ; 81 fb 01 01
    14659     jne short 0978ah                          ; 75 4f
     14663    jne short 097b2h                          ; 75 4f
    1466014664    mov es, [bp-00eh]                         ; 8e 46 f2
    1466114665    mov bx, word [bp-01ah]                    ; 8b 5e e6
     
    1467214676    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1467314677    mov dx, es                                ; 8c c2
    14674     call 08a0bh                               ; e8 90 f2
     14678    call 08a33h                               ; e8 90 f2
    1467514679    mov byte [bp-00ah], cl                    ; 88 4e f6
    1467614680    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14677     je short 0978ch                           ; 74 07
     14681    je short 097b4h                           ; 74 07
    1467814682    mov cx, strict word 00001h                ; b9 01 00
    14679     jmp short 0978eh                          ; eb 04
    14680     jmp short 097e3h                          ; eb 57
     14683    jmp short 097b6h                          ; eb 04
     14684    jmp short 0980bh                          ; eb 57
    1468114685    xor cx, cx                                ; 31 c9
    1468214686    mov bl, byte [bp-00ch]                    ; 8a 5e f4
     
    1471814722    pop bp                                    ; 5d
    1471914723    retn                                      ; c3
    14720 ahci_mem_alloc_:                             ; 0xf97fc LB 0x43
     14724ahci_mem_alloc_:                             ; 0xf9824 LB 0x43
    1472114725    push bp                                   ; 55
    1472214726    mov bp, sp                                ; 89 e5
     
    1472814732    mov dx, 00413h                            ; ba 13 04
    1472914733    xor ax, ax                                ; 31 c0
    14730     call 0166eh                               ; e8 62 7e
     14734    call 0166eh                               ; e8 3a 7e
    1473114735    test ax, ax                               ; 85 c0
    14732     je short 09835h                           ; 74 25
     14736    je short 0985dh                           ; 74 25
    1473314737    dec ax                                    ; 48
    1473414738    mov bx, ax                                ; 89 c3
     
    1473714741    sal ax, 1                                 ; d1 e0
    1473814742    rcl dx, 1                                 ; d1 d2
    14739     loop 09818h                               ; e2 fa
     14743    loop 09840h                               ; e2 fa
    1474014744    mov si, ax                                ; 89 c6
    1474114745    mov di, dx                                ; 89 d7
     
    1474314747    shr di, 1                                 ; d1 ef
    1474414748    rcr si, 1                                 ; d1 de
    14745     loop 09825h                               ; e2 fa
     14749    loop 0984dh                               ; e2 fa
    1474614750    mov dx, 00413h                            ; ba 13 04
    1474714751    xor ax, ax                                ; 31 c0
    14748     call 0167ch                               ; e8 49 7e
     14752    call 0167ch                               ; e8 21 7e
    1474914753    mov ax, si                                ; 89 f0
    1475014754    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1475614760    pop bp                                    ; 5d
    1475714761    retn                                      ; c3
    14758 ahci_hba_init_:                              ; 0xf983f LB 0x16e
     14762ahci_hba_init_:                              ; 0xf9867 LB 0x16e
    1475914763    push bp                                   ; 55
    1476014764    mov bp, sp                                ; 89 e5
     
    1476814772    mov dx, strict word 0000eh                ; ba 0e 00
    1476914773    mov ax, strict word 00040h                ; b8 40 00
    14770     call 0166eh                               ; e8 19 7e
     14774    call 0166eh                               ; e8 f1 7d
    1477114775    mov bx, 00122h                            ; bb 22 01
    1477214776    mov di, ax                                ; 89 c7
     
    1478514789    shr eax, 010h                             ; 66 c1 e8 10
    1478614790    xchg dx, ax                               ; 92
    14787     call 097fch                               ; e8 83 ff
     14791    call 09824h                               ; e8 83 ff
    1478814792    mov word [bp-010h], ax                    ; 89 46 f0
    1478914793    test ax, ax                               ; 85 c0
    14790     jne short 09883h                          ; 75 03
    14791     jmp near 0998ch                           ; e9 09 01
     14794    jne short 098abh                          ; 75 03
     14795    jmp near 099b4h                           ; e9 09 01
    1479214796    mov ax, word [bp-010h]                    ; 8b 46 f0
    1479314797    mov es, di                                ; 8e c7
     
    1483914843    xchg dx, ax                               ; 92
    1484014844    test AL, strict byte 001h                 ; a8 01
    14841     jne short 098ddh                          ; 75 de
     14845    jne short 09905h                          ; 75 de
    1484214846    xor ax, ax                                ; 31 c0
    1484314847    xor cx, cx                                ; 31 c9
     
    1485814862    mov bx, strict word 0001fh                ; bb 1f 00
    1485914863    xor cx, cx                                ; 31 c9
    14860     call 08878h                               ; e8 54 ef
     14864    call 088a0h                               ; e8 54 ef
    1486114865    db  0feh, 0c0h
    1486214866    ; inc al                                    ; fe c0
    1486314867    mov byte [bp-00eh], al                    ; 88 46 f2
    1486414868    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    14865     jmp short 09950h                          ; eb 21
     14869    jmp short 09978h                          ; eb 21
    1486614870    xor al, al                                ; 30 c0
    1486714871    test al, al                               ; 84 c0
    14868     je short 09947h                           ; 74 12
     14872    je short 0996fh                           ; 74 12
    1486914873    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    1487014874    xor bh, bh                                ; 30 ff
    1487114875    xor ax, ax                                ; 31 c0
    1487214876    mov dx, word [bp-010h]                    ; 8b 56 f0
    14873     call 092feh                               ; e8 bc f9
     14877    call 09326h                               ; e8 bc f9
    1487414878    dec byte [bp-00eh]                        ; fe 4e f2
    14875     je short 0998ah                           ; 74 43
     14879    je short 099b2h                           ; 74 43
    1487614880    inc byte [bp-00ch]                        ; fe 46 f4
    1487714881    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    14878     jnc short 0998ah                          ; 73 3a
     14882    jnc short 099b2h                          ; 73 3a
    1487914883    mov cl, byte [bp-00ch]                    ; 8a 4e f4
    1488014884    xor ch, ch                                ; 30 ed
    1488114885    mov bx, strict word 00001h                ; bb 01 00
    1488214886    xor di, di                                ; 31 ff
    14883     jcxz 09962h                               ; e3 06
     14887    jcxz 0998ah                               ; e3 06
    1488414888    sal bx, 1                                 ; d1 e3
    1488514889    rcl di, 1                                 ; d1 d7
    14886     loop 0995ch                               ; e2 fa
     14890    loop 09984h                               ; e2 fa
    1488714891    mov ax, strict word 0000ch                ; b8 0c 00
    1488814892    xor cx, cx                                ; 31 c9
     
    1490014904    xchg dx, ax                               ; 92
    1490114905    test dx, di                               ; 85 fa
    14902     jne short 09986h                          ; 75 04
     14906    jne short 099aeh                          ; 75 04
    1490314907    test ax, bx                               ; 85 d8
    14904     je short 0992fh                           ; 74 a9
     14908    je short 09957h                           ; 74 a9
    1490514909    mov AL, strict byte 001h                  ; b0 01
    14906     jmp short 09931h                          ; eb a7
     14910    jmp short 09959h                          ; eb a7
    1490714911    xor ax, ax                                ; 31 c0
    1490814912    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1491414918    pop bp                                    ; 5d
    1491514919    retn                                      ; c3
    14916     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 092h, 09ah, 070h, 09ah, 076h, 09ah, 07ch, 09ah, 082h
    14917     db  09ah, 088h, 09ah, 08eh, 09ah, 092h, 09ah
    14918 _ahci_init:                                  ; 0xf99ad LB 0x11a
     14920    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0bah, 09ah, 098h, 09ah, 09eh, 09ah, 0a4h, 09ah, 0aah
     14921    db  09ah, 0b0h, 09ah, 0b6h, 09ah, 0bah, 09ah
     14922_ahci_init:                                  ; 0xf99d5 LB 0x11a
    1491914923    push bp                                   ; 55
    1492014924    mov bp, sp                                ; 89 e5
     
    1492314927    mov ax, 00601h                            ; b8 01 06
    1492414928    mov dx, strict word 00001h                ; ba 01 00
    14925     call 09ee6h                               ; e8 29 05
     14929    call 09f0eh                               ; e8 29 05
    1492614930    mov dx, ax                                ; 89 c2
    1492714931    cmp ax, strict word 0ffffh                ; 3d ff ff
    14928     je short 09a0dh                           ; 74 49
     14932    je short 09a35h                           ; 74 49
    1492914933    mov al, ah                                ; 88 e0
    1493014934    mov byte [bp-006h], ah                    ; 88 66 fa
     
    1493314937    xor ah, ah                                ; 30 e4
    1493414938    mov bx, strict word 00034h                ; bb 34 00
    14935     call 09eeeh                               ; e8 18 05
     14939    call 09f16h                               ; e8 18 05
    1493614940    mov cl, al                                ; 88 c1
    1493714941    test cl, cl                               ; 84 c9
    14938     je short 09a10h                           ; 74 34
     14942    je short 09a38h                           ; 74 34
    1493914943    mov bl, cl                                ; 88 cb
    1494014944    xor bh, bh                                ; 30 ff
     
    1494714951    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1494814952    mov ax, word [bp-010h]                    ; 8b 46 f0
    14949     call 09eeeh                               ; e8 f3 04
     14953    call 09f16h                               ; e8 f3 04
    1495014954    cmp AL, strict byte 012h                  ; 3c 12
    14951     je short 09a10h                           ; 74 11
     14955    je short 09a38h                           ; 74 11
    1495214956    mov bl, cl                                ; 88 cb
    1495314957    db  0feh, 0c3h
     
    1495614960    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1495714961    mov ax, word [bp-010h]                    ; 8b 46 f0
    14958     jmp short 099d3h                          ; eb c6
    14959     jmp near 09ac1h                           ; e9 b1 00
     14962    jmp short 099fbh                          ; eb c6
     14963    jmp near 09ae9h                           ; e9 b1 00
    1496014964    test cl, cl                               ; 84 c9
    14961     je short 09a0dh                           ; 74 f9
     14965    je short 09a35h                           ; 74 f9
    1496214966    add cl, 002h                              ; 80 c1 02
    1496314967    mov bl, cl                                ; 88 cb
     
    1497114975    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1497214976    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14973     call 09eeeh                               ; e8 b8 04
     14977    call 09f16h                               ; e8 b8 04
    1497414978    cmp AL, strict byte 010h                  ; 3c 10
    14975     jne short 09a0dh                          ; 75 d3
     14979    jne short 09a35h                          ; 75 d3
    1497614980    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1497714981    mov bl, cl                                ; 88 cb
     
    1498014984    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1498114985    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14982     call 09f15h                               ; e8 c7 04
     14986    call 09f3dh                               ; e8 c7 04
    1498314987    mov dx, ax                                ; 89 c2
    1498414988    and ax, strict word 0000fh                ; 25 0f 00
    1498514989    sub ax, strict word 00004h                ; 2d 04 00
    1498614990    cmp ax, strict word 0000bh                ; 3d 0b 00
    14987     jnbe short 09a92h                         ; 77 37
     14991    jnbe short 09abah                         ; 77 37
    1498814992    push CS                                   ; 0e
    1498914993    pop ES                                    ; 07
    1499014994    mov cx, strict word 00008h                ; b9 08 00
    14991     mov di, 09996h                            ; bf 96 99
     14995    mov di, 099beh                            ; bf be 99
    1499214996    repne scasb                               ; f2 ae
    1499314997    sal cx, 1                                 ; d1 e1
    1499414998    mov di, cx                                ; 89 cf
    14995     mov ax, word [cs:di-06663h]               ; 2e 8b 85 9d 99
     14999    mov ax, word [cs:di-0663bh]               ; 2e 8b 85 c5 99
    1499615000    jmp ax                                    ; ff e0
    1499715001    mov byte [bp-004h], 010h                  ; c6 46 fc 10
    14998     jmp short 09a92h                          ; eb 1c
     15002    jmp short 09abah                          ; eb 1c
    1499915003    mov byte [bp-004h], 014h                  ; c6 46 fc 14
    15000     jmp short 09a92h                          ; eb 16
     15004    jmp short 09abah                          ; eb 16
    1500115005    mov byte [bp-004h], 018h                  ; c6 46 fc 18
    15002     jmp short 09a92h                          ; eb 10
     15006    jmp short 09abah                          ; eb 10
    1500315007    mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
    15004     jmp short 09a92h                          ; eb 0a
     15008    jmp short 09abah                          ; eb 0a
    1500515009    mov byte [bp-004h], 020h                  ; c6 46 fc 20
    15006     jmp short 09a92h                          ; eb 04
     15010    jmp short 09abah                          ; eb 04
    1500715011    mov byte [bp-004h], 024h                  ; c6 46 fc 24
    1500815012    mov CL, strict byte 004h                  ; b1 04
     
    1501415018    mov al, byte [bp-004h]                    ; 8a 46 fc
    1501515019    test al, al                               ; 84 c0
    15016     je short 09ac1h                           ; 74 1c
     15020    je short 09ae9h                           ; 74 1c
    1501715021    mov bl, al                                ; 88 c3
    1501815022    xor bh, bh                                ; 30 ff
     
    1502115025    mov al, byte [bp-006h]                    ; 8a 46 fa
    1502215026    xor ah, ah                                ; 30 e4
    15023     call 09f3ah                               ; e8 84 04
     15027    call 09f62h                               ; e8 84 04
    1502415028    test AL, strict byte 001h                 ; a8 01
    15025     je short 09ac1h                           ; 74 07
     15029    je short 09ae9h                           ; 74 07
    1502615030    and AL, strict byte 0f0h                  ; 24 f0
    1502715031    add ax, cx                                ; 01 c8
    15028     call 0983fh                               ; e8 7e fd
     15032    call 09867h                               ; e8 7e fd
    1502915033    lea sp, [bp-002h]                         ; 8d 66 fe
    1503015034    pop di                                    ; 5f
    1503115035    pop bp                                    ; 5d
    1503215036    retn                                      ; c3
    15033 apm_out_str_:                                ; 0xf9ac7 LB 0x39
     15037apm_out_str_:                                ; 0xf9aef LB 0x39
    1503415038    push bp                                   ; 55
    1503515039    mov bp, sp                                ; 89 e5
     
    1503715041    mov bx, ax                                ; 89 c3
    1503815042    cmp byte [bx], 000h                       ; 80 3f 00
    15039     je short 09adch                           ; 74 0a
     15043    je short 09b04h                           ; 74 0a
    1504015044    mov al, byte [bx]                         ; 8a 07
    1504115045    out DX, AL                                ; ee
     
    1504415048    db  00ah, 0c0h
    1504515049    ; or al, al                                 ; 0a c0
    15046     jne short 09ad4h                          ; 75 f8
     15050    jne short 09afch                          ; 75 f8
    1504715051    lea sp, [bp-002h]                         ; 8d 66 fe
    1504815052    pop bx                                    ; 5b
    1504915053    pop bp                                    ; 5d
    1505015054    retn                                      ; c3
    15051     and word [bp+di-06454h], bx               ; 21 9b ac 9b
    15052     xor bx, word [bp+di-064b2h]               ; 33 9b 4e 9b
    15053     lodsb                                     ; ac
     15055    dec cx                                    ; 49
    1505415056    wait                                      ; 9b
    15055     jns short 09a89h                          ; 79 9b
    15056     lodsb                                     ; ac
     15057    aam 09bh                                  ; d4 9b
     15058    pop bx                                    ; 5b
    1505715059    wait                                      ; 9b
    15058     mov DL, strict byte 09bh                  ; b2 9b
    15059     jle short 09a8fh                          ; 7e 9b
    15060     jle short 09a91h                          ; 7e 9b
    15061     jle short 09a93h                          ; 7e 9b
    15062     db  0f1h
     15060    jbe short 09aadh                          ; 76 9b
     15061    aam 09bh                                  ; d4 9b
     15062    mov ax, word [0d49bh]                     ; a1 9b d4
    1506315063    wait                                      ; 9b
    15064     jle short 09a97h                          ; 7e 9b
    15065     jle short 09a99h                          ; 7e 9b
    15066     db  0eah
     15064    ficomp dword [bp+di-0645ah]               ; da 9b a6 9b
     15065    cmpsb                                     ; a6
    1506715066    wait                                      ; 9b
    15068 _apm_function:                               ; 0xf9b00 LB 0xf6
     15067    cmpsb                                     ; a6
     15068    wait                                      ; 9b
     15069    sbb word [si-0645ah], bx                  ; 19 9c a6 9b
     15070    cmpsb                                     ; a6
     15071    wait                                      ; 9b
     15072    db  012h
     15073    pushfw                                    ; 9c
     15074_apm_function:                               ; 0xf9b28 LB 0xf6
    1506915075    push bp                                   ; 55
    1507015076    mov bp, sp                                ; 89 e5
     
    1507415080    xor ah, ah                                ; 30 e4
    1507515081    cmp ax, strict word 0000eh                ; 3d 0e 00
    15076     jnbe short 09b7eh                         ; 77 6c
     15082    jnbe short 09ba6h                         ; 77 6c
    1507715083    mov bx, ax                                ; 89 c3
    1507815084    sal bx, 1                                 ; d1 e3
    1507915085    mov dx, word [bp+018h]                    ; 8b 56 18
    1508015086    or dl, 001h                               ; 80 ca 01
    15081     jmp word [cs:bx-0651eh]                   ; 2e ff a7 e2 9a
     15087    jmp word [cs:bx-064f6h]                   ; 2e ff a7 0a 9b
    1508215088    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1508315089    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1508415090    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    15085     jmp near 09bach                           ; e9 79 00
     15091    jmp near 09bd4h                           ; e9 79 00
    1508615092    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    15087     mov word [bp+00ch], 0a154h                ; c7 46 0c 54 a1
     15093    mov word [bp+00ch], 0a184h                ; c7 46 0c 84 a1
    1508815094    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1508915095    mov ax, strict word 0fff0h                ; b8 f0 ff
    1509015096    mov word [bp+006h], ax                    ; 89 46 06
    1509115097    mov word [bp+004h], ax                    ; 89 46 04
    15092     jmp near 09bach                           ; e9 5e 00
     15098    jmp near 09bd4h                           ; e9 5e 00
    1509315099    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1509415100    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1510315109    mov si, ax                                ; 89 c6
    1510415110    sal esi, 010h                             ; 66 c1 e6 10
    15105     jmp near 09bach                           ; e9 33 00
     15111    jmp near 09bd4h                           ; e9 33 00
    1510615112    sti                                       ; fb
    1510715113    hlt                                       ; f4
    15108     jmp near 09bach                           ; e9 2e 00
     15114    jmp near 09bd4h                           ; e9 2e 00
    1510915115    mov bx, 00da0h                            ; bb a0 0d
    1511015116    mov cx, ds                                ; 8c d9
    1511115117    mov ax, strict word 00004h                ; b8 04 00
    15112     call 01933h                               ; e8 aa 7d
     15118    call 01933h                               ; e8 82 7d
    1511315119    push word [bp+00ch]                       ; ff 76 0c
    1511415120    push word [bp+012h]                       ; ff 76 12
     
    1511715123    mov ax, strict word 00004h                ; b8 04 00
    1511815124    push ax                                   ; 50
    15119     call 01976h                               ; e8 dc 7d
     15125    call 01976h                               ; e8 b4 7d
    1512015126    add sp, strict byte 00008h                ; 83 c4 08
    1512115127    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1512915135    retn                                      ; c3
    1513015136    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    15131     je short 09bd7h                           ; 74 1f
     15137    je short 09bffh                           ; 74 1f
    1513215138    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    15133     je short 09bcfh                           ; 74 11
     15139    je short 09bf7h                           ; 74 11
    1513415140    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    15135     jne short 09bdfh                          ; 75 1b
     15141    jne short 09c07h                          ; 75 1b
    1513615142    mov dx, 0040fh                            ; ba 0f 04
    1513715143    mov ax, 00d10h                            ; b8 10 0d
    15138     call 09ac7h                               ; e8 fa fe
    15139     jmp short 09bach                          ; eb dd
     15144    call 09aefh                               ; e8 fa fe
     15145    jmp short 09bd4h                          ; eb dd
    1514015146    mov dx, 0040fh                            ; ba 0f 04
    1514115147    mov ax, 00d18h                            ; b8 18 0d
    15142     jmp short 09bcah                          ; eb f3
     15148    jmp short 09bf2h                          ; eb f3
    1514315149    mov dx, 0040fh                            ; ba 0f 04
    1514415150    mov ax, 00d20h                            ; b8 20 0d
    15145     jmp short 09bcah                          ; eb eb
     15151    jmp short 09bf2h                          ; eb eb
    1514615152    or ah, 00ah                               ; 80 cc 0a
    1514715153    mov word [bp+012h], ax                    ; 89 46 12
    1514815154    mov word [bp+018h], dx                    ; 89 56 18
    15149     jmp short 09bach                          ; eb c2
     15155    jmp short 09bd4h                          ; eb c2
    1515015156    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    15151     jmp short 09bach                          ; eb bb
     15157    jmp short 09bd4h                          ; eb bb
    1515215158    or ah, 080h                               ; 80 cc 80
    15153     jmp short 09be2h                          ; eb ec
    15154 pci16_select_reg_:                           ; 0xf9bf6 LB 0x24
     15159    jmp short 09c0ah                          ; eb ec
     15160pci16_select_reg_:                           ; 0xf9c1e LB 0x24
    1515515161    push bp                                   ; 55
    1515615162    mov bp, sp                                ; 89 e5
     
    1516915175    pop bp                                    ; 5d
    1517015176    retn                                      ; c3
    15171 pci16_find_device_:                          ; 0xf9c1a LB 0xf7
     15177pci16_find_device_:                          ; 0xf9c42 LB 0xf7
    1517215178    push bp                                   ; 55
    1517315179    mov bp, sp                                ; 89 e5
     
    1518315189    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1518415190    test bl, 007h                             ; f6 c3 07
    15185     jne short 09c62h                          ; 75 2d
     15191    jne short 09c8ah                          ; 75 2d
    1518615192    mov dx, strict word 0000eh                ; ba 0e 00
    1518715193    mov ax, bx                                ; 89 d8
    15188     call 09bf6h                               ; e8 b9 ff
     15194    call 09c1eh                               ; e8 b9 ff
    1518915195    mov dx, 00cfeh                            ; ba fe 0c
    1519015196    in AL, DX                                 ; ec
     
    1519315199    mov byte [bp-008h], al                    ; 88 46 f8
    1519415200    cmp AL, strict byte 0ffh                  ; 3c ff
    15195     jne short 09c50h                          ; 75 06
     15201    jne short 09c78h                          ; 75 06
    1519615202    add bx, strict byte 00008h                ; 83 c3 08
    15197     jmp near 09ce2h                           ; e9 92 00
     15203    jmp near 09d0ah                           ; e9 92 00
    1519815204    test byte [bp-008h], 080h                 ; f6 46 f8 80
    15199     je short 09c5dh                           ; 74 07
     15205    je short 09c85h                           ; 74 07
    1520015206    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    15201     jmp short 09c62h                          ; eb 05
     15207    jmp short 09c8ah                          ; eb 05
    1520215208    mov word [bp-00eh], strict word 00008h    ; c7 46 f2 08 00
    1520315209    mov al, byte [bp-008h]                    ; 8a 46 f8
    1520415210    and AL, strict byte 007h                  ; 24 07
    1520515211    cmp AL, strict byte 001h                  ; 3c 01
    15206     jne short 09c89h                          ; 75 1e
     15212    jne short 09cb1h                          ; 75 1e
    1520715213    mov al, bh                                ; 88 f8
    1520815214    xor ah, ah                                ; 30 e4
    1520915215    test ax, ax                               ; 85 c0
    15210     jne short 09c89h                          ; 75 16
     15216    jne short 09cb1h                          ; 75 16
    1521115217    mov dx, strict word 0001ah                ; ba 1a 00
    1521215218    mov ax, bx                                ; 89 d8
    15213     call 09bf6h                               ; e8 7b ff
     15219    call 09c1eh                               ; e8 7b ff
    1521415220    mov dx, 00cfeh                            ; ba fe 0c
    1521515221    in AL, DX                                 ; ec
     
    1521715223    ; sub ah, ah                                ; 2a e4
    1521815224    cmp al, byte [bp-006h]                    ; 3a 46 fa
    15219     jbe short 09c89h                          ; 76 03
     15225    jbe short 09cb1h                          ; 76 03
    1522015226    mov byte [bp-006h], al                    ; 88 46 fa
    1522115227    test di, di                               ; 85 ff
    15222     je short 09c92h                           ; 74 05
     15228    je short 09cbah                           ; 74 05
    1522315229    mov dx, strict word 00008h                ; ba 08 00
    15224     jmp short 09c94h                          ; eb 02
     15230    jmp short 09cbch                          ; eb 02
    1522515231    xor dx, dx                                ; 31 d2
    1522615232    mov ax, bx                                ; 89 d8
    15227     call 09bf6h                               ; e8 5d ff
     15233    call 09c1eh                               ; e8 5d ff
    1522815234    mov dx, 00cfch                            ; ba fc 0c
    1522915235    in eax, DX                                ; 66 ed
     
    1523615242    mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
    1523715243    test di, di                               ; 85 ff
    15238     je short 09cc3h                           ; 74 0f
     15244    je short 09cebh                           ; 74 0f
    1523915245    mov cx, strict word 00008h                ; b9 08 00
    1524015246    shr dx, 1                                 ; d1 ea
    1524115247    rcr ax, 1                                 ; d1 d8
    15242     loop 09cb7h                               ; e2 fa
     15248    loop 09cdfh                               ; e2 fa
    1524315249    mov word [bp-00ah], ax                    ; 89 46 f6
    1524415250    mov word [bp-010h], dx                    ; 89 56 f0
    1524515251    mov ax, word [bp-010h]                    ; 8b 46 f0
    1524615252    cmp ax, word [bp-014h]                    ; 3b 46 ec
    15247     jne short 09cd3h                          ; 75 08
     15253    jne short 09cfbh                          ; 75 08
    1524815254    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1524915255    cmp ax, word [bp-012h]                    ; 3b 46 ee
    15250     je short 09cd9h                           ; 74 06
     15256    je short 09d01h                           ; 74 06
    1525115257    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    15252     je short 09cdfh                           ; 74 06
     15258    je short 09d07h                           ; 74 06
    1525315259    dec si                                    ; 4e
    1525415260    cmp si, strict byte 0ffffh                ; 83 fe ff
    15255     je short 09cf2h                           ; 74 13
     15261    je short 09d1ah                           ; 74 13
    1525615262    add bx, word [bp-00eh]                    ; 03 5e f2
    1525715263    mov al, bh                                ; 88 f8
     
    1526015266    xor dh, dh                                ; 30 f6
    1526115267    cmp ax, dx                                ; 39 d0
    15262     jnbe short 09cf2h                         ; 77 03
    15263     jmp near 09c30h                           ; e9 3e ff
     15268    jnbe short 09d1ah                         ; 77 03
     15269    jmp near 09c58h                           ; e9 3e ff
    1526415270    cmp si, strict byte 0ffffh                ; 83 fe ff
    15265     jne short 09cfbh                          ; 75 04
     15271    jne short 09d23h                          ; 75 04
    1526615272    mov ax, bx                                ; 89 d8
    15267     jmp short 09cfeh                          ; eb 03
     15273    jmp short 09d26h                          ; eb 03
    1526815274    mov ax, strict word 0ffffh                ; b8 ff ff
    1526915275    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1527215278    pop bp                                    ; 5d
    1527315279    retn                                      ; c3
    15274     db  0f2h, 09dh
    15275     ; repne popfw                               ; f2 9d
    15276     or bx, word [bp-061e3h]                   ; 0b 9e 1d 9e
    15277     xor word [bp-061bdh], bx                  ; 31 9e 43 9e
    15278     push si                                   ; 56
     15280    sbb bl, byte [bp-061cdh]                  ; 1a 9e 33 9e
     15281    inc bp                                    ; 45
    1527915282    sahf                                      ; 9e
    15280 _pci16_function:                             ; 0xf9d11 LB 0x1d5
     15283    pop cx                                    ; 59
     15284    sahf                                      ; 9e
     15285    db  06bh
     15286    sahf                                      ; 9e
     15287    jle short 09cd7h                          ; 7e 9e
     15288_pci16_function:                             ; 0xf9d39 LB 0x1d5
    1528115289    push bp                                   ; 55
    1528215290    mov bp, sp                                ; 89 e5
     
    1529215300    xor ah, ah                                ; 30 e4
    1529315301    cmp bx, strict byte 00003h                ; 83 fb 03
    15294     jc short 09d43h                           ; 72 13
    15295     jbe short 09d96h                          ; 76 64
     15302    jc short 09d6bh                           ; 72 13
     15303    jbe short 09dbeh                          ; 76 64
    1529615304    cmp bx, strict byte 0000eh                ; 83 fb 0e
    15297     je short 09d9eh                           ; 74 67
     15305    je short 09dc6h                           ; 74 67
    1529815306    cmp bx, strict byte 00008h                ; 83 fb 08
    15299     jc short 09d4dh                           ; 72 11
     15307    jc short 09d75h                           ; 72 11
    1530015308    cmp bx, strict byte 0000dh                ; 83 fb 0d
    15301     jbe short 09da1h                          ; 76 60
    15302     jmp short 09d4dh                          ; eb 0a
     15309    jbe short 09dc9h                          ; 76 60
     15310    jmp short 09d75h                          ; eb 0a
    1530315311    cmp bx, strict byte 00002h                ; 83 fb 02
    15304     je short 09d6ch                           ; 74 24
     15312    je short 09d94h                           ; 74 24
    1530515313    cmp bx, strict byte 00001h                ; 83 fb 01
    15306     je short 09d50h                           ; 74 03
    15307     jmp near 09eafh                           ; e9 5f 01
     15314    je short 09d78h                           ; 74 03
     15315    jmp near 09ed7h                           ; e9 5f 01
    1530815316    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1530915317    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1531115319    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1531215320    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    15313     jmp near 09edfh                           ; e9 73 01
     15321    jmp near 09f07h                           ; e9 73 01
    1531415322    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    15315     jne short 09d78h                          ; 75 06
     15323    jne short 09da0h                          ; 75 06
    1531615324    or ah, 083h                               ; 80 cc 83
    15317     jmp near 09ed8h                           ; e9 60 01
     15325    jmp near 09f00h                           ; e9 60 01
    1531815326    mov bx, word [bp+008h]                    ; 8b 5e 08
    1531915327    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1532015328    mov ax, word [bp+018h]                    ; 8b 46 18
    1532115329    xor cx, cx                                ; 31 c9
    15322     call 09c1ah                               ; e8 94 fe
     15330    call 09c42h                               ; e8 94 fe
    1532315331    cmp ax, strict word 0ffffh                ; 3d ff ff
    15324     jne short 09d98h                          ; 75 0d
     15332    jne short 09dc0h                          ; 75 0d
    1532515333    mov ax, word [bp+020h]                    ; 8b 46 20
    1532615334    xor ah, ah                                ; 30 e4
    1532715335    or ah, 086h                               ; 80 cc 86
    15328     jmp near 09ed8h                           ; e9 42 01
    15329     jmp short 09da3h                          ; eb 0b
     15336    jmp near 09f00h                           ; e9 42 01
     15337    jmp short 09dcbh                          ; eb 0b
    1533015338    mov word [bp+014h], ax                    ; 89 46 14
    15331     jmp near 09edfh                           ; e9 41 01
    15332     jmp near 09e6ah                           ; e9 c9 00
    15333     jmp short 09dc8h                          ; eb 25
     15339    jmp near 09f07h                           ; e9 41 01
     15340    jmp near 09e92h                           ; e9 c9 00
     15341    jmp short 09df0h                          ; eb 25
    1533415342    mov bx, word [bp+008h]                    ; 8b 5e 08
    1533515343    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1533615344    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1533715345    mov cx, strict word 00001h                ; b9 01 00
    15338     call 09c1ah                               ; e8 68 fe
     15346    call 09c42h                               ; e8 68 fe
    1533915347    cmp ax, strict word 0ffffh                ; 3d ff ff
    15340     jne short 09dc2h                          ; 75 0b
     15348    jne short 09deah                          ; 75 0b
    1534115349    mov ax, word [bp+020h]                    ; 8b 46 20
    1534215350    xor ah, ah                                ; 30 e4
    1534315351    or ah, 086h                               ; 80 cc 86
    15344     jmp near 09ed8h                           ; e9 16 01
     15352    jmp near 09f00h                           ; e9 16 01
    1534515353    mov word [bp+014h], ax                    ; 89 46 14
    15346     jmp near 09edfh                           ; e9 17 01
     15354    jmp near 09f07h                           ; e9 17 01
    1534715355    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    15348     jc short 09dd5h                           ; 72 06
     15356    jc short 09dfdh                           ; 72 06
    1534915357    or ah, 087h                               ; 80 cc 87
    15350     jmp near 09ed8h                           ; e9 03 01
     15358    jmp near 09f00h                           ; e9 03 01
    1535115359    mov dx, word [bp+004h]                    ; 8b 56 04
    1535215360    mov ax, word [bp+014h]                    ; 8b 46 14
    15353     call 09bf6h                               ; e8 18 fe
     15361    call 09c1eh                               ; e8 18 fe
    1535415362    mov bx, word [bp+020h]                    ; 8b 5e 20
    1535515363    xor bh, bh                                ; 30 ff
    1535615364    sub bx, strict byte 00008h                ; 83 eb 08
    1535715365    cmp bx, strict byte 00005h                ; 83 fb 05
    15358     jnbe short 09e53h                         ; 77 68
     15366    jnbe short 09e7bh                         ; 77 68
    1535915367    sal bx, 1                                 ; d1 e3
    15360     jmp word [cs:bx-062fbh]                   ; 2e ff a7 05 9d
     15368    jmp word [cs:bx-062d3h]                   ; 2e ff a7 2d 9d
    1536115369    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1536215370    xor bl, bl                                ; 30 db
     
    1536915377    or bx, ax                                 ; 09 c3
    1537015378    mov word [bp+01ch], bx                    ; 89 5e 1c
    15371     jmp short 09e53h                          ; eb 48
     15379    jmp short 09e7bh                          ; eb 48
    1537215380    mov dx, word [bp+004h]                    ; 8b 56 04
    1537315381    xor dh, dh                                ; 30 f6
     
    1537615384    in ax, DX                                 ; ed
    1537715385    mov word [bp+01ch], ax                    ; 89 46 1c
    15378     jmp short 09e53h                          ; eb 36
     15386    jmp short 09e7bh                          ; eb 36
    1537915387    mov dx, 00cfch                            ; ba fc 0c
    1538015388    in eax, DX                                ; 66 ed
     
    1538515393    mov word [bp+01ch], ax                    ; 89 46 1c
    1538615394    mov word [bp+01eh], dx                    ; 89 56 1e
    15387     jmp short 09e53h                          ; eb 22
     15395    jmp short 09e7bh                          ; eb 22
    1538815396    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1538915397    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1539215400    add dx, 00cfch                            ; 81 c2 fc 0c
    1539315401    out DX, AL                                ; ee
    15394     jmp short 09e53h                          ; eb 10
     15402    jmp short 09e7bh                          ; eb 10
    1539515403    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1539615404    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1539915407    add dx, 00cfch                            ; 81 c2 fc 0c
    1540015408    out DX, ax                                ; ef
    15401     jmp near 09edfh                           ; e9 89 00
     15409    jmp near 09f07h                           ; e9 89 00
    1540215410    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1540315411    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1540815416    ; mov ax, cx                                ; 8b c1
    1540915417    out DX, eax                               ; 66 ef
    15410     jmp short 09edfh                          ; eb 75
     15418    jmp short 09f07h                          ; eb 75
    1541115419    mov bx, word [bp+004h]                    ; 8b 5e 04
    1541215420    mov es, [bp+026h]                         ; 8e 46 26
     
    1541515423    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1541615424    cmp cx, word [es:bx]                      ; 26 3b 0f
    15417     jbe short 09e90h                          ; 76 11
     15425    jbe short 09eb8h                          ; 76 11
    1541815426    mov ax, word [bp+020h]                    ; 8b 46 20
    1541915427    xor ah, ah                                ; 30 e4
     
    1542115429    mov word [bp+020h], ax                    ; 89 46 20
    1542215430    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15423     jmp short 09ea4h                          ; eb 14
     15431    jmp short 09ecch                          ; eb 14
    1542415432    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1542515433    mov si, 0f2c0h                            ; be c0 f2
     
    1543315441    les bx, [bp-008h]                         ; c4 5e f8
    1543415442    mov word [es:bx], ax                      ; 26 89 07
    15435     jmp short 09edfh                          ; eb 30
     15443    jmp short 09f07h                          ; eb 30
    1543615444    mov bx, 00da0h                            ; bb a0 0d
    1543715445    mov cx, ds                                ; 8c d9
    1543815446    mov ax, strict word 00004h                ; b8 04 00
    15439     call 01933h                               ; e8 79 7a
     15447    call 01933h                               ; e8 51 7a
    1544015448    mov ax, word [bp+014h]                    ; 8b 46 14
    1544115449    push ax                                   ; 50
     
    1544615454    mov ax, strict word 00004h                ; b8 04 00
    1544715455    push ax                                   ; 50
    15448     call 01976h                               ; e8 a9 7a
     15456    call 01976h                               ; e8 81 7a
    1544915457    add sp, strict byte 00008h                ; 83 c4 08
    1545015458    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1545815466    pop bp                                    ; 5d
    1545915467    retn                                      ; c3
    15460 pci_find_classcode_:                         ; 0xf9ee6 LB 0x8
     15468pci_find_classcode_:                         ; 0xf9f0e LB 0x8
    1546115469    push bp                                   ; 55
    1546215470    mov bp, sp                                ; 89 e5
     
    1546415472    pop bp                                    ; 5d
    1546515473    retn                                      ; c3
    15466 pci_read_config_byte_:                       ; 0xf9eee LB 0x27
     15474pci_read_config_byte_:                       ; 0xf9f16 LB 0x27
    1546715475    push bp                                   ; 55
    1546815476    mov bp, sp                                ; 89 e5
     
    1548715495    pop bp                                    ; 5d
    1548815496    retn                                      ; c3
    15489 pci_read_config_word_:                       ; 0xf9f15 LB 0x25
     15497pci_read_config_word_:                       ; 0xf9f3d LB 0x25
    1549015498    push bp                                   ; 55
    1549115499    mov bp, sp                                ; 89 e5
     
    1550915517    pop bp                                    ; 5d
    1551015518    retn                                      ; c3
    15511 pci_read_config_dword_:                      ; 0xf9f3a LB 0x3f
     15519pci_read_config_dword_:                      ; 0xf9f62 LB 0x3f
    1551215520    push bp                                   ; 55
    1551315521    mov bp, sp                                ; 89 e5
     
    1552415532    int 01ah                                  ; cd 1a
    1552515533    test cx, cx                               ; 85 c9
    15526     jne short 09f6ah                          ; 75 14
     15534    jne short 09f92h                          ; 75 14
    1552715535    mov al, byte [bp-006h]                    ; 8a 46 fa
    1552815536    xor ah, ah                                ; 30 e4
     
    1553415542    int 01ah                                  ; cd 1a
    1553515543    test cx, cx                               ; 85 c9
    15536     je short 09f6fh                           ; 74 05
     15544    je short 09f97h                           ; 74 05
    1553715545    mov ax, strict word 00001h                ; b8 01 00
    15538     jmp short 09f71h                          ; eb 02
     15546    jmp short 09f99h                          ; eb 02
    1553915547    xor ax, ax                                ; 31 c0
    1554015548    cwd                                       ; 99
     
    1554415552    pop bp                                    ; 5d
    1554515553    retn                                      ; c3
    15546 vds_is_present_:                             ; 0xf9f79 LB 0x1d
     15554vds_is_present_:                             ; 0xf9fa1 LB 0x1d
    1554715555    push bx                                   ; 53
    1554815556    push bp                                   ; 55
     
    1555215560    mov es, ax                                ; 8e c0
    1555315561    test byte [es:bx], 020h                   ; 26 f6 07 20
    15554     je short 09f91h                           ; 74 06
     15562    je short 09fb9h                           ; 74 06
    1555515563    mov ax, strict word 00001h                ; b8 01 00
    1555615564    pop bp                                    ; 5d
     
    1556115569    pop bx                                    ; 5b
    1556215570    retn                                      ; c3
    15563 vds_real_to_lin_:                            ; 0xf9f96 LB 0x1e
     15571vds_real_to_lin_:                            ; 0xf9fbe LB 0x1e
    1556415572    push bx                                   ; 53
    1556515573    push cx                                   ; 51
     
    1557215580    sal ax, 1                                 ; d1 e0
    1557315581    rcl dx, 1                                 ; d1 d2
    15574     loop 09fa4h                               ; e2 fa
     15582    loop 09fcch                               ; e2 fa
    1557515583    xor cx, cx                                ; 31 c9
    1557615584    add ax, bx                                ; 01 d8
     
    1558015588    pop bx                                    ; 5b
    1558115589    retn                                      ; c3
    15582 vds_build_sg_list_:                          ; 0xf9fb4 LB 0x77
     15590vds_build_sg_list_:                          ; 0xf9fdc LB 0x77
    1558315591    push bp                                   ; 55
    1558415592    mov bp, sp                                ; 89 e5
     
    1559415602    mov bx, word [bp+006h]                    ; 8b 5e 06
    1559515603    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15596     call 09f96h                               ; e8 c3 ff
     15604    call 09fbeh                               ; e8 c3 ff
    1559715605    mov es, si                                ; 8e c6
    1559815606    mov word [es:di+004h], ax                 ; 26 89 45 04
    1559915607    mov word [es:di+006h], dx                 ; 26 89 55 06
    1560015608    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15601     call 09f79h                               ; e8 93 ff
     15609    call 09fa1h                               ; e8 93 ff
    1560215610    test ax, ax                               ; 85 c0
    15603     je short 09ffbh                           ; 74 11
     15611    je short 0a023h                           ; 74 11
    1560415612    mov es, si                                ; 8e c6
    1560515613    mov ax, 08105h                            ; b8 05 81
    1560615614    mov dx, strict word 00000h                ; ba 00 00
    1560715615    int 04bh                                  ; cd 4b
    15608     jc short 09ff8h                           ; 72 02
     15616    jc short 0a020h                           ; 72 02
    1560915617    db  032h, 0c0h
    1561015618    ; xor al, al                                ; 32 c0
    1561115619    cbw                                       ; 98
    15612     jmp short 0a022h                          ; eb 27
     15620    jmp short 0a04ah                          ; eb 27
    1561315621    mov es, si                                ; 8e c6
    1561415622    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1562715635    pop bp                                    ; 5d
    1562815636    retn 00004h                               ; c2 04 00
    15629 vds_free_sg_list_:                           ; 0xfa02b LB 0x35
     15637vds_free_sg_list_:                           ; 0xfa053 LB 0x3d
    1563015638    push bp                                   ; 55
    1563115639    mov bp, sp                                ; 89 e5
     
    1563315641    push di                                   ; 57
    1563415642    mov bx, ax                                ; 89 c3
    15635     call 09f79h                               ; e8 44 ff
     15643    call 09fa1h                               ; e8 44 ff
    1563615644    test ax, ax                               ; 85 c0
    15637     je short 0a04ah                           ; 74 11
     15645    je short 0a072h                           ; 74 11
    1563815646    mov di, bx                                ; 89 df
    1563915647    mov es, dx                                ; 8e c2
     
    1564115649    mov dx, strict word 00000h                ; ba 00 00
    1564215650    int 04bh                                  ; cd 4b
    15643     jc short 0a049h                           ; 72 02
     15651    jc short 0a071h                           ; 72 02
    1564415652    db  032h, 0c0h
    1564515653    ; xor al, al                                ; 32 c0
     
    1565215660    pop bp                                    ; 5d
    1565315661    retn                                      ; c3
    15654     times 0x7 db 0
    15655 __U4M:                                       ; 0xfa060 LB 0x20
     15662    times 0xf db 0
     15663__U4M:                                       ; 0xfa090 LB 0x20
    1565615664    pushfw                                    ; 9c
    1565715665    push si                                   ; 56
     
    1568015688    retn                                      ; c3
    1568115689    times 0x4 db 0
    15682 __U4D:                                       ; 0xfa080 LB 0x30
     15690__U4D:                                       ; 0xfa0b0 LB 0x30
    1568315691    pushfw                                    ; 9c
    1568415692    push DS                                   ; 1e
     
    1569515703    push dx                                   ; 52
    1569615704    push ax                                   ; 50
    15697     call 0a165h                               ; e8 d0 00
     15705    call 0a195h                               ; e8 d0 00
    1569815706    mov cx, word [bp-002h]                    ; 8b 4e fe
    1569915707    mov bx, word [bp-004h]                    ; 8b 5e fc
     
    1570615714    retn                                      ; c3
    1570715715    times 0xe db 0
    15708 __U8RS:                                      ; 0xfa0b0 LB 0x10
     15716__U8RS:                                      ; 0xfa0e0 LB 0x10
    1570915717    test si, si                               ; 85 f6
    15710     je short 0a0bfh                           ; 74 0b
     15718    je short 0a0efh                           ; 74 0b
    1571115719    shr ax, 1                                 ; d1 e8
    1571215720    rcr bx, 1                                 ; d1 db
     
    1571415722    rcr dx, 1                                 ; d1 da
    1571515723    dec si                                    ; 4e
    15716     jne short 0a0b4h                          ; 75 f5
     15724    jne short 0a0e4h                          ; 75 f5
    1571715725    retn                                      ; c3
    15718 __U8LS:                                      ; 0xfa0c0 LB 0x10
     15726__U8LS:                                      ; 0xfa0f0 LB 0x10
    1571915727    test si, si                               ; 85 f6
    15720     je short 0a0cfh                           ; 74 0b
     15728    je short 0a0ffh                           ; 74 0b
    1572115729    sal dx, 1                                 ; d1 e2
    1572215730    rcl cx, 1                                 ; d1 d1
     
    1572415732    rcl ax, 1                                 ; d1 d0
    1572515733    dec si                                    ; 4e
    15726     jne short 0a0c4h                          ; 75 f5
     15734    jne short 0a0f4h                          ; 75 f5
    1572715735    retn                                      ; c3
    15728 _fmemset_:                                   ; 0xfa0d0 LB 0x10
     15736_fmemset_:                                   ; 0xfa100 LB 0x10
    1572915737    push di                                   ; 57
    1573015738    mov es, dx                                ; 8e c2
     
    1573715745    retn                                      ; c3
    1573815746    times 0x3 db 0
    15739 _fmemcpy_:                                   ; 0xfa0e0 LB 0x3a
     15747_fmemcpy_:                                   ; 0xfa110 LB 0x3a
    1574015748    push bp                                   ; 55
    1574115749    db  08bh, 0ech
     
    1576215770    add byte [bx+si], al                      ; 00 00
    1576315771    add byte [bx+si], al                      ; 00 00
    15764     xor byte [bx+di-05eceh], ah               ; 30 a1 32 a1
    15765     mov ax, word [ss:0a136h]                  ; 36 a1 36 a1
    15766     mov ax, word [ss:0a138h]                  ; 36 a1 38 a1
    15767     cmp byte [bx+di-05ec6h], ah               ; 38 a1 3a a1
    15768     mov ax, word [ds:0a13eh]                  ; 3e a1 3e a1
    15769     inc ax                                    ; 40
    15770     mov ax, word [0a145h]                     ; a1 45 a1
    15771     inc di                                    ; 47
    15772     db  0a1h
    15773 apm_worker:                                  ; 0xfa11a LB 0x3a
     15772    pushaw                                    ; 60
     15773    mov ax, word [0a162h]                     ; a1 62 a1
     15774    mov eax, dword [0a166h]                   ; 66 a1 66 a1
     15775    mov eax, dword [0a168h]                   ; 66 a1 68 a1
     15776    push 06aa1h                               ; 68 a1 6a
     15777    mov ax, word [0a16eh]                     ; a1 6e a1
     15778    outsb                                     ; 6e
     15779    mov ax, word [0a170h]                     ; a1 70 a1
     15780    jne short 0a0e9h                          ; 75 a1
     15781    jnbe short 0a0ebh                         ; 77 a1
     15782apm_worker:                                  ; 0xfa14a LB 0x3a
    1577415783    sti                                       ; fb
    1577515784    push ax                                   ; 50
     
    1578315792    pop ax                                    ; 58
    1578415793    mov AH, strict byte 053h                  ; b4 53
    15785     jnc short 0a150h                          ; 73 25
    15786     jmp word [cs:bp-05f00h]                   ; 2e ff a6 00 a1
    15787     jmp short 0a14eh                          ; eb 1c
     15794    jnc short 0a180h                          ; 73 25
     15795    jmp word [cs:bp-05ed0h]                   ; 2e ff a6 30 a1
     15796    jmp short 0a17eh                          ; eb 1c
    1578815797    sti                                       ; fb
    1578915798    hlt                                       ; f4
    15790     jmp short 0a14eh                          ; eb 18
    15791     jmp short 0a14eh                          ; eb 16
    15792     jmp short 0a150h                          ; eb 16
     15799    jmp short 0a17eh                          ; eb 18
     15800    jmp short 0a17eh                          ; eb 16
     15801    jmp short 0a180h                          ; eb 16
    1579315802    mov AH, strict byte 080h                  ; b4 80
    15794     jmp short 0a152h                          ; eb 14
    15795     jmp short 0a150h                          ; eb 10
     15803    jmp short 0a182h                          ; eb 14
     15804    jmp short 0a180h                          ; eb 10
    1579615805    mov ax, 00102h                            ; b8 02 01
    15797     jmp short 0a14eh                          ; eb 09
    15798     jmp short 0a14eh                          ; eb 07
     15806    jmp short 0a17eh                          ; eb 09
     15807    jmp short 0a17eh                          ; eb 07
    1579915808    mov BL, strict byte 000h                  ; b3 00
    1580015809    mov cx, strict word 00000h                ; b9 00 00
    15801     jmp short 0a14eh                          ; eb 00
     15810    jmp short 0a17eh                          ; eb 00
    1580215811    clc                                       ; f8
    1580315812    retn                                      ; c3
     
    1580515814    stc                                       ; f9
    1580615815    retn                                      ; c3
    15807 apm_pm16_entry:                              ; 0xfa154 LB 0x11
     15816apm_pm16_entry:                              ; 0xfa184 LB 0x11
    1580815817    mov AH, strict byte 002h                  ; b4 02
    1580915818    push DS                                   ; 1e
     
    1581315822    add bp, strict byte 00008h                ; 83 c5 08
    1581415823    mov ds, bp                                ; 8e dd
    15815     call 0a11ah                               ; e8 b8 ff
     15824    call 0a14ah                               ; e8 b8 ff
    1581615825    pop bp                                    ; 5d
    1581715826    pop DS                                    ; 1f
    1581815827    retf                                      ; cb
    15819 _DoUInt32Div:                                ; 0xfa165 LB 0x26b
     15828_DoUInt32Div:                                ; 0xfa195 LB 0x26b
    1582015829    push bp                                   ; 55
    1582115830    mov bp, sp                                ; 89 e5
     
    1583515844    mov [bp-006h], ds                         ; 8c 5e fa
    1583615845    cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
    15837     jne short 0a1b5h                          ; 75 22
     15846    jne short 0a1e5h                          ; 75 22
    1583815847    mov ax, word [bx]                         ; 8b 07
    1583915848    test ax, ax                               ; 85 c0
    15840     je short 0a1b2h                           ; 74 19
     15849    je short 0a1e2h                           ; 74 19
    1584115850    cmp ax, strict word 00001h                ; 3d 01 00
    15842     jne short 0a1b5h                          ; 75 17
     15851    jne short 0a1e5h                          ; 75 17
    1584315852    xor ax, ax                                ; 31 c0
    1584415853    mov word [bp+00ah], ax                    ; 89 46 0a
     
    1584815857    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1584915858    mov word [bp+006h], ax                    ; 89 46 06
    15850     jmp near 0a3bdh                           ; e9 08 02
     15859    jmp near 0a3edh                           ; e9 08 02
    1585115860    lds bx, [bp-00ch]                         ; c5 5e f4
    1585215861    mov ax, word [bx+002h]                    ; 8b 47 02
    1585315862    mov ds, [bp-006h]                         ; 8e 5e fa
    1585415863    cmp ax, word [si+002h]                    ; 3b 44 02
    15855     je short 0a1dbh                           ; 74 18
     15864    je short 0a20bh                           ; 74 18
    1585615865    mov ds, [bp-00ah]                         ; 8e 5e f6
    1585715866    mov ax, word [bx+002h]                    ; 8b 47 02
    1585815867    mov ds, [bp-006h]                         ; 8e 5e fa
    1585915868    cmp ax, word [si+002h]                    ; 3b 44 02
    15860     jbe short 0a1d6h                          ; 76 05
     15869    jbe short 0a206h                          ; 76 05
    1586115870    mov ax, strict word 00001h                ; b8 01 00
    15862     jmp short 0a1fch                          ; eb 26
     15871    jmp short 0a22ch                          ; eb 26
    1586315872    mov ax, strict word 0ffffh                ; b8 ff ff
    15864     jmp short 0a1fch                          ; eb 21
     15873    jmp short 0a22ch                          ; eb 21
    1586515874    mov ds, [bp-00ah]                         ; 8e 5e f6
    1586615875    mov ax, word [bx]                         ; 8b 07
    1586715876    mov ds, [bp-006h]                         ; 8e 5e fa
    1586815877    cmp ax, word [si]                         ; 3b 04
    15869     je short 0a1fah                           ; 74 13
     15878    je short 0a22ah                           ; 74 13
    1587015879    mov ds, [bp-00ah]                         ; 8e 5e f6
    1587115880    mov ax, word [bx]                         ; 8b 07
    1587215881    mov ds, [bp-006h]                         ; 8e 5e fa
    1587315882    cmp ax, word [si]                         ; 3b 04
    15874     jbe short 0a1f5h                          ; 76 02
    15875     jmp short 0a1d1h                          ; eb dc
     15883    jbe short 0a225h                          ; 76 02
     15884    jmp short 0a201h                          ; eb dc
    1587615885    mov ax, strict word 0ffffh                ; b8 ff ff
    15877     jmp short 0a1fch                          ; eb 02
     15886    jmp short 0a22ch                          ; eb 02
    1587815887    xor ax, ax                                ; 31 c0
    1587915888    test ax, ax                               ; 85 c0
    15880     jnl short 0a21eh                          ; 7d 1e
     15889    jnl short 0a24eh                          ; 7d 1e
    1588115890    lds bx, [bp-00ch]                         ; c5 5e f4
    1588215891    mov ax, word [bx]                         ; 8b 07
     
    1588815897    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
    1588915898    mov word [bx], strict word 00000h         ; c7 07 00 00
    15890     jmp short 0a1b2h                          ; eb 94
    15891     jne short 0a235h                          ; 75 15
     15899    jmp short 0a1e2h                          ; eb 94
     15900    jne short 0a265h                          ; 75 15
    1589215901    mov ds, [bp-008h]                         ; 8e 5e f8
    1589315902    mov word [di+002h], ax                    ; 89 45 02
     
    1589615905    mov word [bx], strict word 00001h         ; c7 07 01 00
    1589715906    mov word [bx+002h], ax                    ; 89 47 02
    15898     jmp near 0a3bdh                           ; e9 88 01
     15907    jmp near 0a3edh                           ; e9 88 01
    1589915908    lds bx, [bp-00ch]                         ; c5 5e f4
    1590015909    mov ax, word [bx+002h]                    ; 8b 47 02
    1590115910    test ax, ax                               ; 85 c0
    15902     je short 0a250h                           ; 74 11
     15911    je short 0a280h                           ; 74 11
    1590315912    push ax                                   ; 50
    1590415913    mov ax, 0f000h                            ; b8 00 f0
    1590515914    mov ds, ax                                ; 8e d8
    15906     call 0a3d0h                               ; e8 88 01
     15915    call 0a400h                               ; e8 88 01
    1590715916    add sp, strict byte 00002h                ; 83 c4 02
    1590815917    add ax, strict word 00010h                ; 05 10 00
    15909     jmp short 0a25dh                          ; eb 0d
     15918    jmp short 0a28dh                          ; eb 0d
    1591015919    push word [bx]                            ; ff 37
    1591115920    mov ax, 0f000h                            ; b8 00 f0
    1591215921    mov ds, ax                                ; 8e d8
    15913     call 0a3d0h                               ; e8 76 01
     15922    call 0a400h                               ; e8 76 01
    1591415923    add sp, strict byte 00002h                ; 83 c4 02
    1591515924    mov word [bp-014h], ax                    ; 89 46 ec
     
    1591715926    mov ax, word [si+002h]                    ; 8b 44 02
    1591815927    test ax, ax                               ; 85 c0
    15919     je short 0a27bh                           ; 74 11
     15928    je short 0a2abh                           ; 74 11
    1592015929    push ax                                   ; 50
    1592115930    mov ax, 0f000h                            ; b8 00 f0
    1592215931    mov ds, ax                                ; 8e d8
    15923     call 0a3d0h                               ; e8 5d 01
     15932    call 0a400h                               ; e8 5d 01
    1592415933    add sp, strict byte 00002h                ; 83 c4 02
    1592515934    add ax, strict word 00010h                ; 05 10 00
    15926     jmp short 0a288h                          ; eb 0d
     15935    jmp short 0a2b8h                          ; eb 0d
    1592715936    push word [si]                            ; ff 34
    1592815937    mov ax, 0f000h                            ; b8 00 f0
    1592915938    mov ds, ax                                ; 8e d8
    15930     call 0a3d0h                               ; e8 4b 01
     15939    call 0a400h                               ; e8 4b 01
    1593115940    add sp, strict byte 00002h                ; 83 c4 02
    1593215941    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    1593915948    mov word [bp-016h], ax                    ; 89 46 ea
    1594015949    test dx, dx                               ; 85 d2
    15941     je short 0a2f8h                           ; 74 56
     15950    je short 0a328h                           ; 74 56
    1594215951    mov cx, dx                                ; 89 d1
    1594315952    xor ch, dh                                ; 30 f5
     
    1594515954    mov ax, word [si]                         ; 8b 04
    1594615955    mov dx, word [si+002h]                    ; 8b 54 02
    15947     jcxz 0a2b6h                               ; e3 06
     15956    jcxz 0a2e6h                               ; e3 06
    1594815957    sal ax, 1                                 ; d1 e0
    1594915958    rcl dx, 1                                 ; d1 d2
    15950     loop 0a2b0h                               ; e2 fa
     15959    loop 0a2e0h                               ; e2 fa
    1595115960    mov word [bp-018h], ax                    ; 89 46 e8
    1595215961    mov word [bp-016h], dx                    ; 89 56 ea
     
    1595415963    lds bx, [bp-00ch]                         ; c5 5e f4
    1595515964    cmp ax, word [bx+002h]                    ; 3b 47 02
    15956     jnbe short 0a2d6h                         ; 77 0f
     15965    jnbe short 0a306h                         ; 77 0f
    1595715966    mov ax, word [bp-016h]                    ; 8b 46 ea
    1595815967    cmp ax, word [bx+002h]                    ; 3b 47 02
    15959     jne short 0a2dah                          ; 75 0b
     15968    jne short 0a30ah                          ; 75 0b
    1596015969    mov ax, word [bp-018h]                    ; 8b 46 e8
    1596115970    cmp ax, word [bx]                         ; 3b 07
    15962     jbe short 0a2dah                          ; 76 04
     15971    jbe short 0a30ah                          ; 76 04
    1596315972    mov AL, strict byte 001h                  ; b0 01
    15964     jmp short 0a2dch                          ; eb 02
     15973    jmp short 0a30ch                          ; eb 02
    1596515974    xor al, al                                ; 30 c0
    1596615975    test al, al                               ; 84 c0
    15967     je short 0a303h                           ; 74 23
     15976    je short 0a333h                           ; 74 23
    1596815977    shr word [bp-016h], 1                     ; d1 6e ea
    1596915978    rcr word [bp-018h], 1                     ; d1 5e e8
    1597015979    dec word [bp-012h]                        ; ff 4e ee
    15971     jmp short 0a303h                          ; eb 18
     15980    jmp short 0a333h                          ; eb 18
    1597215981    mov cx, strict word 0001fh                ; b9 1f 00
    1597315982    sal word [bp-018h], 1                     ; d1 66 e8
    1597415983    rcl word [bp-016h], 1                     ; d1 56 ea
    15975     loop 0a2eeh                               ; e2 f8
    15976     jmp short 0a2e6h                          ; eb ee
     15984    loop 0a31eh                               ; e2 f8
     15985    jmp short 0a316h                          ; eb ee
    1597715986    mov ax, word [si]                         ; 8b 04
    1597815987    mov word [bp-018h], ax                    ; 89 46 e8
     
    1599116000    mov ds, [bp-006h]                         ; 8e 5e fa
    1599216001    cmp ax, word [si+002h]                    ; 3b 44 02
    15993     jnbe short 0a32fh                         ; 77 06
    15994     jne short 0a333h                          ; 75 08
     16002    jnbe short 0a35fh                         ; 77 06
     16003    jne short 0a363h                          ; 75 08
    1599516004    cmp dx, word [si]                         ; 3b 14
    15996     jc short 0a333h                           ; 72 04
     16005    jc short 0a363h                           ; 72 04
    1599716006    mov AL, strict byte 001h                  ; b0 01
    15998     jmp short 0a335h                          ; eb 02
     16007    jmp short 0a365h                          ; eb 02
    1599916008    xor al, al                                ; 30 c0
    1600016009    test al, al                               ; 84 c0
    16001     je short 0a39ah                           ; 74 61
     16010    je short 0a3cah                           ; 74 61
    1600216011    mov ds, [bp-008h]                         ; 8e 5e f8
    1600316012    mov ax, word [di+002h]                    ; 8b 45 02
    1600416013    cmp ax, word [bp-016h]                    ; 3b 46 ea
    16005     jnbe short 0a350h                         ; 77 0c
     16014    jnbe short 0a380h                         ; 77 0c
    1600616015    cmp ax, word [bp-016h]                    ; 3b 46 ea
    16007     jne short 0a354h                          ; 75 0b
     16016    jne short 0a384h                          ; 75 0b
    1600816017    mov ax, word [di]                         ; 8b 05
    1600916018    cmp ax, word [bp-018h]                    ; 3b 46 e8
    16010     jc short 0a354h                           ; 72 04
     16019    jc short 0a384h                           ; 72 04
    1601116020    mov AL, strict byte 001h                  ; b0 01
    16012     jmp short 0a356h                          ; eb 02
     16021    jmp short 0a386h                          ; eb 02
    1601316022    xor al, al                                ; 30 c0
    1601416023    test al, al                               ; 84 c0
    16015     je short 0a380h                           ; 74 26
     16024    je short 0a3b0h                           ; 74 26
    1601616025    mov ax, word [bp-018h]                    ; 8b 46 e8
    1601716026    mov ds, [bp-008h]                         ; 8e 5e f8
     
    1602216031    xor dx, dx                                ; 31 d2
    1602316032    mov cx, word [bp-012h]                    ; 8b 4e ee
    16024     jcxz 0a378h                               ; e3 06
     16033    jcxz 0a3a8h                               ; e3 06
    1602516034    sal ax, 1                                 ; d1 e0
    1602616035    rcl dx, 1                                 ; d1 d2
    16027     loop 0a372h                               ; e2 fa
     16036    loop 0a3a2h                               ; e2 fa
    1602816037    lds bx, [bp-010h]                         ; c5 5e f0
    1602916038    or word [bx], ax                          ; 09 07
     
    1603416043    mov ds, [bp-006h]                         ; 8e 5e fa
    1603516044    cmp ax, word [si+002h]                    ; 3b 44 02
    16036     jc short 0a396h                           ; 72 06
    16037     jne short 0a39ch                          ; 75 0a
     16045    jc short 0a3c6h                           ; 72 06
     16046    jne short 0a3cch                          ; 75 0a
    1603816047    cmp dx, word [si]                         ; 3b 14
    16039     jnc short 0a39ch                          ; 73 06
     16048    jnc short 0a3cch                          ; 73 06
    1604016049    mov AL, strict byte 001h                  ; b0 01
    16041     jmp short 0a39eh                          ; eb 04
    16042     jmp short 0a3bdh                          ; eb 21
     16050    jmp short 0a3ceh                          ; eb 04
     16051    jmp short 0a3edh                          ; eb 21
    1604316052    xor al, al                                ; 30 c0
    1604416053    test al, al                               ; 84 c0
    16045     je short 0a3b1h                           ; 74 0f
    16046     jmp short 0a3bdh                          ; eb 19
     16054    je short 0a3e1h                           ; 74 0f
     16055    jmp short 0a3edh                          ; eb 19
    1604716056    mov cx, strict word 0001fh                ; b9 1f 00
    1604816057    sal word [bp-018h], 1                     ; d1 66 e8
    1604916058    rcl word [bp-016h], 1                     ; d1 56 ea
    16050     loop 0a3a7h                               ; e2 f8
    16051     jmp short 0a3b7h                          ; eb 06
     16059    loop 0a3d7h                               ; e2 f8
     16060    jmp short 0a3e7h                          ; eb 06
    1605216061    shr word [bp-016h], 1                     ; d1 6e ea
    1605316062    rcr word [bp-018h], 1                     ; d1 5e e8
    1605416063    dec word [bp-012h]                        ; ff 4e ee
    16055     jmp near 0a339h                           ; e9 7c ff
     16064    jmp near 0a369h                           ; e9 7c ff
    1605616065    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1605716066    mov dx, word [bp-01ah]                    ; 8b 56 e6
     
    1606216071    retn                                      ; c3
    1606316072    times 0x6 db 0
    16064 _ASMBitLastSetU16:                           ; 0xfa3d0 LB 0x18
     16073_ASMBitLastSetU16:                           ; 0xfa400 LB 0x18
    1606516074    push bp                                   ; 55
    1606616075    db  08bh, 0ech
     
    1606816077    mov cx, word [bp+004h]                    ; 8b 4e 04
    1606916078    test cx, cx                               ; 85 c9
    16070     je short 0a3e4h                           ; 74 0a
     16079    je short 0a414h                           ; 74 0a
    1607116080    mov ax, strict word 00010h                ; b8 10 00
    1607216081    sal cx, 1                                 ; d1 e1
    16073     jc short 0a3e6h                           ; 72 05
     16082    jc short 0a416h                           ; 72 05
    1607416083    dec ax                                    ; 48
    16075     jmp short 0a3ddh                          ; eb f9
     16084    jmp short 0a40dh                          ; eb f9
    1607616085    db  033h, 0c0h
    1607716086    ; xor ax, ax                                ; 33 c0
     
    1607916088    retn                                      ; c3
    1608016089
    16081   ; Padding 0x3618 bytes at 0xfa3e8
    16082   times 13848 db 0
     16090  ; Padding 0x35e8 bytes at 0xfa418
     16091  times 13800 db 0
    1608316092
    1608416093section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1612716136    add bp, strict byte 00008h                ; 83 c5 08
    1612816137    push ebp                                  ; 66 55
    16129     mov bp, 0a156h                            ; bd 56 a1
     16138    mov bp, 0a186h                            ; bd 86 a1
    1613016139    add byte [bx+si], al                      ; 00 00
    1613116140    push ebp                                  ; 66 55
     
    1664916658    mov ax, 0027fh                            ; b8 7f 02
    1665016659    mov word [00413h], ax                     ; a3 13 04
    16651     mov ax, 0e9e4h                            ; b8 e4 e9
     16660    mov ax, 0e9dah                            ; b8 da e9
    1665216661    mov word [00018h], ax                     ; a3 18 00
    1665316662    mov ax, 0f000h                            ; b8 00 f0
     
    1673416743    mov dx, 0c800h                            ; ba 00 c8
    1673516744    call 01600h                               ; e8 f0 33
    16736     call 04ff0h                               ; e8 dd 6d
     16745    call 05018h                               ; e8 05 6e
    1673716746    pop DS                                    ; 1f
    1673816747    mov ax, 0ff53h                            ; b8 53 ff
     
    1685716866    call 01cc5h                               ; e8 89 39
    1685816867    call 02154h                               ; e8 15 3e
    16859     call 099adh                               ; e8 6b b6
    16860     call 08812h                               ; e8 cd a4
     16868    call 099d5h                               ; e8 93 b6
     16869    call 0883ah                               ; e8 f5 a4
    1686116870    call 0ed4ch                               ; e8 04 0a
    1686216871    call 0e2d2h                               ; e8 87 ff
     
    1686816877    call 01600h                               ; e8 a9 32
    1686916878    call 01799h                               ; e8 3f 34
    16870     call 03c0ah                               ; e8 ad 58
     16879    call 03c31h                               ; e8 d4 58
    1687116880    sti                                       ; fb
    1687216881    int 019h                                  ; cd 19
     
    1697716986    pop DS                                    ; 1f
    1697816987    cld                                       ; fc
    16979     call 065abh                               ; e8 62 7e
     16988    call 065d3h                               ; e8 8a 7e
    1698016989    pop di                                    ; 5f
    1698116990    pop si                                    ; 5e
     
    1708117090    pop DS                                    ; 1f
    1708217091    cld                                       ; fc
    17083     call 05859h                               ; e8 10 70
     17092    call 05881h                               ; e8 38 70
    1708417093    pop di                                    ; 5f
    1708517094    pop si                                    ; 5e
     
    1710517114    pop DS                                    ; 1f
    1710617115    cld                                       ; fc
    17107     call 05859h                               ; e8 eb 6f
     17116    call 05881h                               ; e8 13 70
    1710817117    pop di                                    ; 5f
    1710917118    pop si                                    ; 5e
     
    1712017129    times 0x10c db 0
    1712117130    db  'XM'
    17122 biosorg_check_at_0E987h:                     ; 0xfe987 LB 0x78
     17131biosorg_check_at_0E987h:                     ; 0xfe987 LB 0x6e
    1712317132    cli                                       ; fa
    1712417133    push ax                                   ; 50
    1712517134    mov AL, strict byte 0adh                  ; b0 ad
    1712617135    out strict byte 064h, AL                  ; e6 64
    17127     mov AL, strict byte 00bh                  ; b0 0b
    17128     out strict byte 020h, AL                  ; e6 20
    17129     in AL, strict byte 020h                   ; e4 20
    17130     and AL, strict byte 002h                  ; 24 02
    17131     je short 0e9deh                           ; 74 47
    1713217136    in AL, strict byte 060h                   ; e4 60
    1713317137    push DS                                   ; 1e
     
    1714417148    stc                                       ; f9
    1714517149    int 015h                                  ; cd 15
    17146     jnc short 0e9d1h                          ; 73 27
     17150    jnc short 0e9c7h                          ; 73 27
    1714717151    sti                                       ; fb
    1714817152    cmp AL, strict byte 0e0h                  ; 3c e0
    17149     jne short 0e9bah                          ; 75 0b
     17153    jne short 0e9b0h                          ; 75 0b
    1715017154    db  033h, 0c0h
    1715117155    ; xor ax, ax                                ; 33 c0
    1715217156    mov ds, ax                                ; 8e d8
    1715317157    or byte [00496h], 002h                    ; 80 0e 96 04 02
    17154     jmp short 0e9d1h                          ; eb 17
     17158    jmp short 0e9c7h                          ; eb 17
    1715517159    cmp AL, strict byte 0e1h                  ; 3c e1
    17156     jne short 0e9c9h                          ; 75 0b
     17160    jne short 0e9bfh                          ; 75 0b
    1715717161    db  033h, 0c0h
    1715817162    ; xor ax, ax                                ; 33 c0
    1715917163    mov ds, ax                                ; 8e d8
    1716017164    or byte [00496h], 001h                    ; 80 0e 96 04 01
    17161     jmp short 0e9d1h                          ; eb 08
     17165    jmp short 0e9c7h                          ; eb 08
    1716217166    push ES                                   ; 06
    1716317167    push CS                                   ; 0e
    1716417168    pop DS                                    ; 1f
    1716517169    cld                                       ; fc
    17166     call 052f8h                               ; e8 28 69
     17170    call 05320h                               ; e8 5a 69
    1716717171    pop ES                                    ; 07
    1716817172    pop di                                    ; 5f
     
    1717617180    pop DS                                    ; 1f
    1717717181    cli                                       ; fa
    17178     call 0e034h                               ; e8 56 f6
     17182    call 0e034h                               ; e8 60 f6
    1717917183    mov AL, strict byte 0aeh                  ; b0 ae
    1718017184    out strict byte 064h, AL                  ; e6 64
     
    1719417198    pop DS                                    ; 1f
    1719517199    cld                                       ; fc
    17196     call 06ee3h                               ; e8 ef 84
     17200    call 06f0bh                               ; e8 21 85
    1719717201    pop DS                                    ; 1f
    1719817202    pop ES                                    ; 07
     
    1720617210    pop ax                                    ; 58
    1720717211    iret                                      ; cf
    17208 biosorg_check_before_or_at_0EC57h:           ; 0xfe9ff LB 0x25a
    17209     times 0x258 db 0
     17212biosorg_check_before_or_at_0EC57h:           ; 0xfe9f5 LB 0x264
     17213    times 0x262 db 0
    1721017214    db  'XM'
    1721117215biosorg_check_at_0EC59h:                     ; 0xfec59 LB 0x2
     
    1723017234    cld                                       ; fc
    1723117235    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
    17232     jmp near 03c4eh                           ; e9 d4 4f
     17236    jmp near 03c75h                           ; e9 fb 4f
    1723317237jmp_call_ret_int13_out:                      ; 0xfec7a LB 0x4a
    1723417238    db  0ffh
     
    1723917243    push cx                                   ; 51
    1724017244    push dx                                   ; 52
    17241     call 03c22h                               ; e8 9e 4f
     17245    call 03c49h                               ; e8 c5 4f
    1724217246    cmp AL, strict byte 000h                  ; 3c 00
    1724317247    je short 0ecbfh                           ; 74 37
    17244     call 03c38h                               ; e8 ad 4f
     17248    call 03c5fh                               ; e8 d4 4f
    1724517249    pop dx                                    ; 5a
    1724617250    push dx                                   ; 52
     
    1726717271    cld                                       ; fc
    1726817272    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
    17269     jmp near 0425bh                           ; e9 b0 55
     17273    jmp near 04283h                           ; e9 d8 55
    1727017274    and dl, 0e0h                              ; 80 e2 e0
    1727117275    db  03ah, 0c2h
     
    1730717311    jne short 0ecdeh                          ; 75 08
    1730817312    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
    17309     jmp near 0322dh                           ; e9 4f 45
     17313    jmp near 031ffh                           ; e9 21 45
    1731017314int13_notfloppy:                             ; 0xfecde LB 0x14
    1731117315    cmp dl, 0e0h                              ; 80 fa e0
     
    1731317317    shr ebx, 010h                             ; 66 c1 eb 10
    1731417318    push bx                                   ; 53
    17315     call 046aeh                               ; e8 c3 59
     17319    call 046d6h                               ; e8 eb 59
    1731617320    pop bx                                    ; 5b
    1731717321    sal ebx, 010h                             ; 66 c1 e3 10
     
    1732017324    cmp ah, 040h                              ; 80 fc 40
    1732117325    jnbe short 0ecfch                         ; 77 05
    17322     call 05c3ah                               ; e8 40 6f
     17326    call 05c62h                               ; e8 68 6f
    1732317327    jmp short 0ecffh                          ; eb 03
    17324     call 06080h                               ; e8 81 73
     17328    call 060a8h                               ; e8 a9 73
    1732517329int13_out:                                   ; 0xfecff LB 0xb
    1732617330    pop DS                                    ; 1f
     
    1755617560    pop DS                                    ; 1f
    1755717561    cld                                       ; fc
    17558     call 07890h                               ; e8 ac 88
     17562    call 078b8h                               ; e8 d4 88
    1755917563    pop di                                    ; 5f
    1756017564    pop si                                    ; 5e
     
    1761417618    mov ax, strict word 00001h                ; b8 01 00
    1761517619    push ax                                   ; 50
    17616     call 04d4dh                               ; e8 7d 5c
     17620    call 04d75h                               ; e8 a5 5c
    1761717621    inc sp                                    ; 44
    1761817622    inc sp                                    ; 44
     
    1762117625    mov ax, strict word 00002h                ; b8 02 00
    1762217626    push ax                                   ; 50
    17623     call 04d4dh                               ; e8 70 5c
     17627    call 04d75h                               ; e8 98 5c
    1762417628    inc sp                                    ; 44
    1762517629    inc sp                                    ; 44
     
    1762817632    mov ax, strict word 00003h                ; b8 03 00
    1762917633    push ax                                   ; 50
    17630     call 04d4dh                               ; e8 63 5c
     17634    call 04d75h                               ; e8 8b 5c
    1763117635    inc sp                                    ; 44
    1763217636    inc sp                                    ; 44
     
    1763517639    mov ax, strict word 00004h                ; b8 04 00
    1763617640    push ax                                   ; 50
    17637     call 04d4dh                               ; e8 56 5c
     17641    call 04d75h                               ; e8 7e 5c
    1763817642    inc sp                                    ; 44
    1763917643    inc sp                                    ; 44
     
    1793817942    cmp ah, 0c2h                              ; 80 fc c2
    1793917943    je short 0f895h                           ; 74 15
    17940     call 06802h                               ; e8 7f 6f
     17944    call 0682ah                               ; e8 a7 6f
    1794117945    pop di                                    ; 5f
    1794217946    pop si                                    ; 5e
     
    1795117955    popfw                                     ; 9d
    1795217956    jmp short 0f8afh                          ; eb 1f
    17953     call 09b00h                               ; e8 6d a2
     17957    call 09b28h                               ; e8 95 a2
    1795417958    jmp short 0f883h                          ; eb ee
    1795517959int15_handler_mouse:                         ; 0xff895 LB 0x5
    17956     call 074f0h                               ; e8 58 7c
     17960    call 07518h                               ; e8 80 7c
    1795717961    jmp short 0f883h                          ; eb e9
    1795817962int15_handler32:                             ; 0xff89a LB 0x15
     
    1796517969    push si                                   ; 56
    1796617970    push di                                   ; 57
    17967     call 06b45h                               ; e8 a0 72
     17971    call 06b6dh                               ; e8 c8 72
    1796817972    pop di                                    ; 5f
    1796917973    pop si                                    ; 5e
     
    1801118015    pop DS                                    ; 1f
    1801218016    cld                                       ; fc
    18013     call 0741eh                               ; e8 43 7b
     18017    call 07446h                               ; e8 6b 7b
    1801418018    pop cx                                    ; 59
    1801518019    jcxz 0f8ebh                               ; e3 0d
     
    1805918063    pop DS                                    ; 1f
    1806018064    cld                                       ; fc
    18061     call 070bbh                               ; e8 9c 77
     18065    call 070e3h                               ; e8 c4 77
    1806218066    pop di                                    ; 5f
    1806318067    pop si                                    ; 5e
     
    1816218166    pop DS                                    ; 1f
    1816318167    cld                                       ; fc
    18164     call 0717ah                               ; e8 fc 72
     18168    call 071a2h                               ; e8 24 73
    1816518169    pop di                                    ; 5f
    1816618170    pop si                                    ; 5e
     
    1827418278cpu_reset:                                   ; 0xffff0 LB 0x10
    1827518279    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    18276     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 018h
     18280    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0ffh
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum

    r66146 r67495  
    1 3c9f961cb03c5004439fcce031a895cf *VBoxPcBios8086.rom
     18ad7d52695284ae041ae25c322b029a5 *VBoxPcBios8086.rom
Note: See TracChangeset for help on using the changeset viewer.

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