VirtualBox

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


Ignore:
Timestamp:
May 20, 2016 11:12:27 AM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
107362
Message:

updated alternative BIOS assembler files

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

Legend:

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

    r60443 r61092  
    728728
    729729;
    730 ; Source file: support.asm
     730; Source file: __U4M.asm
     731;
     732;  $Id$
     733;  Compiler support routines.
     734
     735
     736
     737;  Copyright (C) 2012-2015 Oracle Corporation
     738
     739;  This file is part of VirtualBox Open Source Edition (OSE), as
     740;  available from http://www.virtualbox.org. This file is free software;
     741;  you can redistribute it and/or modify it under the terms of the GNU
     742;  General Public License (GPL) as published by the Free Software
     743;  Foundation, in version 2 as it comes in the "COPYING" file of the
     744;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     745;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     746
     747
     748;
     749; Source file: __U4D.asm
     750;
     751;  $Id$
     752;  Compiler support routines.
     753
     754
     755
     756;  Copyright (C) 2012-2016 Oracle Corporation
     757
     758;  This file is part of VirtualBox Open Source Edition (OSE), as
     759;  available from http://www.virtualbox.org. This file is free software;
     760;  you can redistribute it and/or modify it under the terms of the GNU
     761;  General Public License (GPL) as published by the Free Software
     762;  Foundation, in version 2 as it comes in the "COPYING" file of the
     763;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     764;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     765
     766
     767;
     768; Source file: __U8RS.asm
     769;
     770;  $Id$
     771;  Compiler support routines.
     772
     773
     774
     775;  Copyright (C) 2012-2015 Oracle Corporation
     776
     777;  This file is part of VirtualBox Open Source Edition (OSE), as
     778;  available from http://www.virtualbox.org. This file is free software;
     779;  you can redistribute it and/or modify it under the terms of the GNU
     780;  General Public License (GPL) as published by the Free Software
     781;  Foundation, in version 2 as it comes in the "COPYING" file of the
     782;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     783;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     784
     785
     786;
     787; Source file: __U8LS.asm
     788;
     789;  $Id$
     790;  Compiler support routines.
     791
     792
     793
     794;  Copyright (C) 2012-2015 Oracle Corporation
     795
     796;  This file is part of VirtualBox Open Source Edition (OSE), as
     797;  available from http://www.virtualbox.org. This file is free software;
     798;  you can redistribute it and/or modify it under the terms of the GNU
     799;  General Public License (GPL) as published by the Free Software
     800;  Foundation, in version 2 as it comes in the "COPYING" file of the
     801;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     802;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     803
     804
     805;
     806; Source file: fmemset.asm
     807;
     808;  $Id$
     809;  Compiler support routines.
     810
     811
     812
     813;  Copyright (C) 2012-2015 Oracle Corporation
     814
     815;  This file is part of VirtualBox Open Source Edition (OSE), as
     816;  available from http://www.virtualbox.org. This file is free software;
     817;  you can redistribute it and/or modify it under the terms of the GNU
     818;  General Public License (GPL) as published by the Free Software
     819;  Foundation, in version 2 as it comes in the "COPYING" file of the
     820;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     821;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     822
     823
     824;
     825; Source file: fmemcpy.asm
    731826;
    732827;  $Id$
     
    822917;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
    823918
     919
     920
     921;
     922; Source file: DoUInt32Div.c
     923;
     924;  $Id$
     925;  AHCI host adapter driver to boot from SATA disks.
     926
     927
     928
     929;  Copyright (C) 2011-2015 Oracle Corporation
     930
     931;  This file is part of VirtualBox Open Source Edition (OSE), as
     932;  available from http://www.virtualbox.org. This file is free software;
     933;  you can redistribute it and/or modify it under the terms of the GNU
     934;  General Public License (GPL) as published by the Free Software
     935;  Foundation, in version 2 as it comes in the "COPYING" file of the
     936;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     937;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     938
     939;
     940; Source file: ASMBitLastSetU16.asm
     941;
     942;  $Id$
     943;  BiosCommonCode - ASMBitLastSetU16() - borrowed from IPRT.
     944
     945
     946
     947;  Copyright (C) 2006-2016 Oracle Corporation
     948
     949;  This file is part of VirtualBox Open Source Edition (OSE), as
     950;  available from http://www.virtualbox.org. This file is free software;
     951;  you can redistribute it and/or modify it under the terms of the GNU
     952;  General Public License (GPL) as published by the Free Software
     953;  Foundation, in version 2 as it comes in the "COPYING" file of the
     954;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     955;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
    824956
    825957
     
    856988    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    857989_pktacc:                                     ; 0xf006a LB 0xc
    858     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 0e5h, 080h, 04bh, 090h
     990    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 0e1h, 080h, 047h, 090h
    859991_softrst:                                    ; 0xf0076 LB 0xc
    860992    db  000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 0c8h, 03ah, 0c8h, 03ah
    861993_dskacc:                                     ; 0xf0082 LB 0x2e
    862994    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f0h, 029h, 0a5h, 02ah, 000h, 000h, 000h, 000h
    863     db  025h, 07fh, 005h, 080h, 01dh, 08fh, 0c5h, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     995    db  021h, 07fh, 001h, 080h, 019h, 08fh, 0c1h, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    864996    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    865997
     
    10581190  times 1144 db 0
    10591191
    1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8a45 class=CODE group=AUTO
     1192section _TEXT progbits vstart=0x1600 align=1 ; size=0x8cb8 class=CODE group=AUTO
    10611193rom_scan_:                                   ; 0xf1600 LB 0x50
    10621194    push bp                                   ; 55
     
    13081440    int 010h                                  ; cd 10
    13091441    jmp short 017b7h                          ; eb 03
    1310     call 07aeah                               ; e8 33 63
     1442    call 07ae6h                               ; e8 2f 63
    13111443    mov sp, bp                                ; 89 ec
    13121444    pop bp                                    ; 5d
     
    14531585    mov bx, strict word 0000ah                ; bb 0a 00
    14541586    xor cx, cx                                ; 31 c9
    1455     call 09f30h                               ; e8 63 86
     1587    call 09f50h                               ; e8 83 86
    14561588    mov word [bp-008h], ax                    ; 89 46 f8
    14571589    mov cx, dx                                ; 89 d1
     
    16831815    mov dx, word [bp-026h]                    ; 8b 56 da
    16841816    mov si, word [bp-01eh]                    ; 8b 76 e2
    1685     call 09faah                               ; e8 ad 84
     1817    call 09f80h                               ; e8 83 84
    16861818    mov ax, dx                                ; 89 d0
    16871819    xor ah, dh                                ; 30 f4
     
    21222254    mov dx, word [es:si]                      ; 26 8b 14
    21232255    mov si, strict word 00018h                ; be 18 00
    2124     call 09faah                               ; e8 5a 80
     2256    call 09f80h                               ; e8 30 80
    21252257    xor dh, dh                                ; 30 f6
    21262258    mov word [bp-014h], dx                    ; 89 56 ec
     
    21322264    mov dx, word [es:si]                      ; 26 8b 14
    21332265    mov si, strict word 00020h                ; be 20 00
    2134     call 09faah                               ; e8 3a 80
     2266    call 09f80h                               ; e8 10 80
    21352267    mov bx, dx                                ; 89 d3
    21362268    mov ax, word [bp-01ch]                    ; 8b 46 e4
     
    21632295    mov dx, word [es:si]                      ; 26 8b 14
    21642296    mov si, strict word 00008h                ; be 08 00
    2165     call 09faah                               ; e8 e9 7f
     2297    call 09f80h                               ; e8 bf 7f
    21662298    mov word [bp-012h], dx                    ; 89 56 ee
    21672299    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    21722304    mov dx, word [es:si]                      ; 26 8b 14
    21732305    mov si, strict word 00018h                ; be 18 00
    2174     call 09faah                               ; e8 cb 7f
     2306    call 09f80h                               ; e8 a1 7f
    21752307    mov ah, dl                                ; 88 d4
    21762308    and ah, 00fh                              ; 80 e4 0f
     
    27292861    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    27302862    mov si, strict word 0000bh                ; be 0b 00
    2731     call 09faah                               ; e8 23 7a
     2863    call 09f80h                               ; e8 f9 79
    27322864    mov word [bp-024h], dx                    ; 89 56 dc
    27332865    mov word [bp-032h], cx                    ; 89 4e ce
     
    30053137    mov dx, word [bp-024h]                    ; 8b 56 dc
    30063138    mov si, strict word 00018h                ; be 18 00
    3007     call 09faah                               ; e8 61 77
     3139    call 09f80h                               ; e8 37 77
    30083140    xor dh, dh                                ; 30 f6
    30093141    mov word [bp-014h], dx                    ; 89 56 ec
     
    30133145    mov dx, word [bp-024h]                    ; 8b 56 dc
    30143146    mov si, strict word 00020h                ; be 20 00
    3015     call 09faah                               ; e8 4a 77
     3147    call 09f80h                               ; e8 20 77
    30163148    mov bx, dx                                ; 89 d3
    30173149    mov ax, word [bp-022h]                    ; 8b 46 de
     
    30473179    mov dx, word [bp-024h]                    ; 8b 56 dc
    30483180    mov si, strict word 00008h                ; be 08 00
    3049     call 09faah                               ; e8 f6 76
     3181    call 09f80h                               ; e8 cc 76
    30503182    mov word [bp-00ch], ax                    ; 89 46 f4
    30513183    mov word [bp-00eh], bx                    ; 89 5e f2
     
    30543186    mov word [bp-018h], dx                    ; 89 56 e8
    30553187    mov si, strict word 00010h                ; be 10 00
    3056     call 09faah                               ; e8 e1 76
     3188    call 09f80h                               ; e8 b7 76
    30573189    mov word [bp-024h], dx                    ; 89 56 dc
    30583190    mov ax, dx                                ; 89 d0
     
    52905422    mov dx, ss                                ; 8c d2
    52915423    lea ax, [bp-026h]                         ; 8d 46 da
    5292     call 09fbah                               ; e8 88 62
     5424    call 09fa0h                               ; e8 6e 62
    52935425    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    52945426    mov ax, strict word 00011h                ; b8 11 00
     
    57635895    xor dl, dl                                ; 30 d2
    57645896    xor cx, cx                                ; 31 c9
    5765     call 09f69h                               ; e8 d2 5c
     5897    call 09f30h                               ; e8 99 5c
    57665898    xor bx, bx                                ; 31 db
    57675899    add ax, si                                ; 01 f0
     
    57695901    mov bx, di                                ; 89 fb
    57705902    xor cx, cx                                ; 31 c9
    5771     call 09f69h                               ; e8 c5 5c
     5903    call 09f30h                               ; e8 8c 5c
    57725904    mov bx, ax                                ; 89 c3
    57735905    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    58045936    mov dx, ss                                ; 8c d2
    58055937    lea ax, [bp-02eh]                         ; 8d 46 d2
    5806     call 09fbah                               ; e8 bf 5c
     5938    call 09fa0h                               ; e8 a5 5c
    58075939    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    58085940    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    61436275    mov dx, ss                                ; 8c d2
    61446276    lea ax, [bp-030h]                         ; 8d 46 d0
    6145     call 09fbah                               ; e8 e2 58
     6277    call 09fa0h                               ; e8 c8 58
    61466278    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    61476279    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    66506782    xor ah, ah                                ; 30 e4
    66516783    sar ax, 004h                              ; c1 f8 04
    6652     call 07d10h                               ; e8 cb 30
     6784    call 07d0ch                               ; e8 c7 30
    66536785    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    66546786    jne short 04c4eh                          ; 75 03
     
    71657297    out DX, AL                                ; ee
    71667298    xor ax, ax                                ; 31 c0
    7167     call 06513h                               ; e8 56 14
     7299    call 06556h                               ; e8 99 14
    71687300    mov sp, bp                                ; 89 ec
    71697301    pop bp                                    ; 5d
     
    81028234    mov dx, word [bp+00ch]                    ; 8b 56 0c
    81038235    mov si, strict word 00020h                ; be 20 00
    8104     call 09faah                               ; e8 06 46
     8236    call 09f80h                               ; e8 dc 45
    81058237    test ax, ax                               ; 85 c0
    81068238    jne short 059b4h                          ; 75 0c
     
    81408272    mov bx, strict word 0003fh                ; bb 3f 00
    81418273    xor cx, cx                                ; 31 c9
    8142     call 09f69h                               ; e8 6c 45
     8274    call 09f30h                               ; e8 33 45
    81438275    mov bx, ax                                ; 89 c3
    81448276    mov cx, dx                                ; 89 d1
    81458277    mov ax, word [bp-004h]                    ; 8b 46 fc
    81468278    mov dx, si                                ; 89 f2
    8147     call 09f30h                               ; e8 27 45
     8279    call 09f50h                               ; e8 47 45
    81488280    mov word [es:di+002h], ax                 ; 26 89 45 02
    81498281    cmp ax, 00400h                            ; 3d 00 04
     
    83718503    mov bx, cx                                ; 89 cb
    83728504    xor cx, cx                                ; 31 c9
    8373     call 09f69h                               ; e8 45 43
     8505    call 09f30h                               ; e8 0c 43
    83748506    xor bx, bx                                ; 31 db
    83758507    add ax, word [bp-008h]                    ; 03 46 f8
     
    83778509    mov bx, word [bp-00ah]                    ; 8b 5e f6
    83788510    xor cx, cx                                ; 31 c9
    8379     call 09f69h                               ; e8 36 43
     8511    call 09f30h                               ; e8 fd 42
    83808512    xor bx, bx                                ; 31 db
    83818513    add ax, word [bp-006h]                    ; 03 46 fa
     
    85458677    mov bx, word [bp-008h]                    ; 8b 5e f8
    85468678    xor cx, cx                                ; 31 c9
    8547     call 09f69h                               ; e8 5f 41
     8679    call 09f30h                               ; e8 26 41
    85488680    mov bx, word [bp-006h]                    ; 8b 5e fa
    85498681    xor cx, cx                                ; 31 c9
    8550     call 09f69h                               ; e8 57 41
     8682    call 09f30h                               ; e8 1e 41
    85518683    mov word [bp-010h], ax                    ; 89 46 f0
    85528684    mov word [bp-00ch], dx                    ; 89 56 f4
     
    87068838    xor bx, bx                                ; 31 db
    87078839    mov si, strict word 00020h                ; be 20 00
    8708     call 09f9ah                               ; e8 eb 3f
     8840    call 09f90h                               ; e8 e1 3f
    87098841    mov si, ax                                ; 89 c6
    87108842    mov word [bp-00ch], bx                    ; 89 5e f4
     
    88638995    mov bx, word [bp-00ch]                    ; 8b 5e f4
    88648996    mov si, strict word 00020h                ; be 20 00
    8865     call 09faah                               ; e8 17 3e
     8997    call 09f80h                               ; e8 ed 3d
    88668998    mov bx, di                                ; 89 fb
    88678999    mov word [es:bx+014h], dx                 ; 26 89 57 14
     
    92089340    pop bp                                    ; 5d
    92099341    retn                                      ; c3
    9210 set_enable_a20_:                             ; 0xf6513 LB 0x30
     9342timer_wait_:                                 ; 0xf6513 LB 0x43
     9343    push bp                                   ; 55
     9344    mov bp, sp                                ; 89 e5
     9345    push bx                                   ; 53
     9346    push cx                                   ; 51
     9347    push ax                                   ; 50
     9348    mov bx, strict word 0000fh                ; bb 0f 00
     9349    xor cx, cx                                ; 31 c9
     9350    call 09f50h                               ; e8 2f 3a
     9351    mov cx, ax                                ; 89 c1
     9352    mov bx, dx                                ; 89 d3
     9353    mov dx, strict word 00061h                ; ba 61 00
     9354    in AL, DX                                 ; ec
     9355    db  02ah, 0e4h
     9356    ; sub ah, ah                                ; 2a e4
     9357    and AL, strict byte 010h                  ; 24 10
     9358    mov byte [bp-006h], al                    ; 88 46 fa
     9359    add cx, strict byte 0ffffh                ; 83 c1 ff
     9360    adc bx, strict byte 0ffffh                ; 83 d3 ff
     9361    cmp bx, strict byte 0ffffh                ; 83 fb ff
     9362    jne short 06540h                          ; 75 05
     9363    cmp cx, strict byte 0ffffh                ; 83 f9 ff
     9364    je short 0654fh                           ; 74 0f
     9365    mov dx, strict word 00061h                ; ba 61 00
     9366    in AL, DX                                 ; ec
     9367    db  02ah, 0e4h
     9368    ; sub ah, ah                                ; 2a e4
     9369    and AL, strict byte 010h                  ; 24 10
     9370    cmp al, byte [bp-006h]                    ; 3a 46 fa
     9371    jne short 06540h                          ; 75 f3
     9372    jmp short 06530h                          ; eb e1
     9373    lea sp, [bp-004h]                         ; 8d 66 fc
     9374    pop cx                                    ; 59
     9375    pop bx                                    ; 5b
     9376    pop bp                                    ; 5d
     9377    retn                                      ; c3
     9378set_enable_a20_:                             ; 0xf6556 LB 0x30
    92119379    push bp                                   ; 55
    92129380    mov bp, sp                                ; 89 e5
     
    92219389    mov cl, al                                ; 88 c1
    92229390    test bx, bx                               ; 85 db
    9223     je short 0652ch                           ; 74 05
     9391    je short 0656fh                           ; 74 05
    92249392    or AL, strict byte 002h                   ; 0c 02
    92259393    out DX, AL                                ; ee
    9226     jmp short 0652fh                          ; eb 03
     9394    jmp short 06572h                          ; eb 03
    92279395    and AL, strict byte 0fdh                  ; 24 fd
    92289396    out DX, AL                                ; ee
    92299397    test cl, 002h                             ; f6 c1 02
    9230     je short 06539h                           ; 74 05
     9398    je short 0657ch                           ; 74 05
    92319399    mov ax, strict word 00001h                ; b8 01 00
    9232     jmp short 0653bh                          ; eb 02
     9400    jmp short 0657eh                          ; eb 02
    92339401    xor ax, ax                                ; 31 c0
    92349402    lea sp, [bp-006h]                         ; 8d 66 fa
     
    92389406    pop bp                                    ; 5d
    92399407    retn                                      ; c3
    9240 set_e820_range_:                             ; 0xf6543 LB 0x8b
     9408set_e820_range_:                             ; 0xf6586 LB 0x88
    92419409    push si                                   ; 56
    92429410    push bp                                   ; 55
     
    92679435    pop si                                    ; 5e
    92689436    retn 0000ah                               ; c2 0a 00
    9269     db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 087h, 083h, 052h, 04fh, 041h, 024h
    9270     db  000h, 074h, 06ah, 00bh, 066h, 01fh, 066h, 0b4h, 066h, 0bah, 066h, 0bfh, 066h, 0c4h, 066h, 06ch
    9271     db  067h, 00bh, 069h, 031h, 069h, 0adh, 066h, 0adh, 066h, 0feh, 069h, 026h, 06ah, 039h, 06ah, 048h
    9272     db  06ah, 0b4h, 066h, 04fh, 06ah
    9273 _int15_function:                             ; 0xf65ce LB 0x4d8
     9437    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
     9438    db  018h, 069h, 049h, 066h, 05dh, 066h, 0f2h, 066h, 0f8h, 066h, 0fdh, 066h, 002h, 067h, 0aah, 067h
     9439    db  0d5h, 067h, 0ebh, 066h, 0ebh, 066h, 0a2h, 068h, 0cah, 068h, 0ddh, 068h, 0ech, 068h, 0f2h, 066h
     9440    db  0f3h, 068h
     9441_int15_function:                             ; 0xf660e LB 0x33c
    92749442    push bp                                   ; 55
    92759443    mov bp, sp                                ; 89 e5
    92769444    push si                                   ; 56
    92779445    push di                                   ; 57
    9278     push ax                                   ; 50
    9279     push ax                                   ; 50
    92809446    mov ax, word [bp+012h]                    ; 8b 46 12
    92819447    shr ax, 008h                              ; c1 e8 08
    92829448    cmp ax, 000ech                            ; 3d ec 00
    9283     jnbe short 06615h                         ; 77 35
     9449    jnbe short 06653h                         ; 77 35
    92849450    push CS                                   ; 0e
    92859451    pop ES                                    ; 07
    9286     mov cx, strict word 00012h                ; b9 12 00
    9287     mov di, 06599h                            ; bf 99 65
     9452    mov cx, strict word 00011h                ; b9 11 00
     9453    mov di, 065dch                            ; bf dc 65
    92889454    repne scasb                               ; f2 ae
    92899455    sal cx, 1                                 ; d1 e1
    92909456    mov di, cx                                ; 89 cf
    9291     mov si, word [cs:di+065aah]               ; 2e 8b b5 aa 65
     9457    mov si, word [cs:di+065ech]               ; 2e 8b b5 ec 65
    92929458    mov ax, word [bp+012h]                    ; 8b 46 12
    92939459    xor ah, ah                                ; 30 e4
     
    93029468    xor ah, ah                                ; 30 e4
    93039469    cmp ax, 000c0h                            ; 3d c0 00
    9304     je short 06618h                           ; 74 03
    9305     jmp near 06a74h                           ; e9 5c 04
     9470    je short 06656h                           ; 74 03
     9471    jmp near 06918h                           ; e9 c2 02
    93069472    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9307     jmp near 06a1dh                           ; e9 fe 03
     9473    jmp near 068c1h                           ; e9 64 02
    93089474    mov dx, ax                                ; 89 c2
    93099475    cmp ax, strict word 00001h                ; 3d 01 00
    9310     jc short 06634h                           ; 72 0e
    9311     jbe short 06648h                          ; 76 20
     9476    jc short 06672h                           ; 72 0e
     9477    jbe short 06686h                          ; 76 20
    93129478    cmp ax, strict word 00003h                ; 3d 03 00
    9313     je short 06675h                           ; 74 48
     9479    je short 066b3h                           ; 74 48
    93149480    cmp ax, strict word 00002h                ; 3d 02 00
    9315     je short 06658h                           ; 74 26
    9316     jmp short 06682h                          ; eb 4e
     9481    je short 06696h                           ; 74 26
     9482    jmp short 066c0h                          ; eb 4e
    93179483    test ax, ax                               ; 85 c0
    9318     jne short 06682h                          ; 75 4a
     9484    jne short 066c0h                          ; 75 4a
    93199485    xor ax, ax                                ; 31 c0
    9320     call 06513h                               ; e8 d6 fe
     9486    call 06556h                               ; e8 db fe
    93219487    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    93229488    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9323     jmp near 066adh                           ; e9 65 00
     9489    jmp near 066ebh                           ; e9 65 00
    93249490    mov ax, strict word 00001h                ; b8 01 00
    9325     call 06513h                               ; e8 c5 fe
     9491    call 06556h                               ; e8 ca fe
    93269492    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    93279493    mov byte [bp+013h], dh                    ; 88 76 13
    9328     jmp near 066adh                           ; e9 55 00
     9494    jmp near 066ebh                           ; e9 55 00
    93299495    mov dx, 00092h                            ; ba 92 00
    93309496    in AL, DX                                 ; ec
     
    93389504    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    93399505    mov byte [bp+013h], ah                    ; 88 66 13
    9340     jmp near 066adh                           ; e9 38 00
     9506    jmp near 066ebh                           ; e9 38 00
    93419507    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    93429508    mov byte [bp+013h], ah                    ; 88 66 13
    93439509    mov word [bp+00ch], ax                    ; 89 46 0c
    9344     jmp near 066adh                           ; e9 2b 00
     9510    jmp near 066ebh                           ; e9 2b 00
    93459511    mov bx, 00da0h                            ; bb a0 0d
    93469512    mov cx, ds                                ; 8c d9
    93479513    mov ax, strict word 00004h                ; b8 04 00
    9348     call 01923h                               ; e8 96 b2
     9514    call 01923h                               ; e8 58 b2
    93499515    mov ax, word [bp+012h]                    ; 8b 46 12
    93509516    xor ah, ah                                ; 30 e4
     
    93529518    push 0082eh                               ; 68 2e 08
    93539519    push strict byte 00004h                   ; 6a 04
    9354     call 01966h                               ; e8 cb b2
     9520    call 01966h                               ; e8 8d b2
    93559521    add sp, strict byte 00006h                ; 83 c4 06
    93569522    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    93659531    retn                                      ; c3
    93669532    mov word [bp+018h], dx                    ; 89 56 18
    9367     jmp near 06766h                           ; e9 ac 00
     9533    jmp near 067a4h                           ; e9 ac 00
    93689534    mov word [bp+018h], dx                    ; 89 56 18
    9369     jmp short 066adh                          ; eb ee
     9535    jmp short 066ebh                          ; eb ee
    93709536    mov word [bp+018h], cx                    ; 89 4e 18
    9371     jmp short 066aah                          ; eb e6
     9537    jmp short 066e8h                          ; eb e6
    93729538    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9373     jne short 06739h                          ; 75 6f
     9539    jne short 06777h                          ; 75 6f
    93749540    mov dx, 000a0h                            ; ba a0 00
    93759541    mov ax, strict word 00040h                ; b8 40 00
    9376     call 01650h                               ; e8 7d af
     9542    call 01650h                               ; e8 3f af
    93779543    test AL, strict byte 001h                 ; a8 01
    9378     jne short 06736h                          ; 75 5f
     9544    jne short 06774h                          ; 75 5f
    93799545    mov bx, strict word 00001h                ; bb 01 00
    93809546    mov dx, 000a0h                            ; ba a0 00
    93819547    mov ax, strict word 00040h                ; b8 40 00
    9382     call 0165eh                               ; e8 7b af
     9548    call 0165eh                               ; e8 3d af
    93839549    mov bx, word [bp+014h]                    ; 8b 5e 14
    93849550    mov dx, 00098h                            ; ba 98 00
    93859551    mov ax, strict word 00040h                ; b8 40 00
    9386     call 0167ah                               ; e8 8b af
     9552    call 0167ah                               ; e8 4d af
    93879553    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    93889554    mov dx, 0009ah                            ; ba 9a 00
    93899555    mov ax, strict word 00040h                ; b8 40 00
    9390     call 0167ah                               ; e8 7f af
     9556    call 0167ah                               ; e8 41 af
    93919557    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    93929558    mov dx, 0009ch                            ; ba 9c 00
    93939559    mov ax, strict word 00040h                ; b8 40 00
    9394     call 0167ah                               ; e8 73 af
     9560    call 0167ah                               ; e8 35 af
    93959561    mov bx, word [bp+010h]                    ; 8b 5e 10
    93969562    mov dx, 0009eh                            ; ba 9e 00
    93979563    mov ax, strict word 00040h                ; b8 40 00
    9398     call 0167ah                               ; e8 67 af
     9564    call 0167ah                               ; e8 29 af
    93999565    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94009566    mov dx, 000a1h                            ; ba a1 00
     
    94059571    out DX, AL                                ; ee
    94069572    mov ax, strict word 0000bh                ; b8 0b 00
    9407     call 016ach                               ; e8 86 af
     9573    call 016ach                               ; e8 48 af
    94089574    mov dl, al                                ; 88 c2
    94099575    or dl, 040h                               ; 80 ca 40
    94109576    xor dh, dh                                ; 30 f6
    94119577    mov ax, strict word 0000bh                ; b8 0b 00
    9412     call 016c7h                               ; e8 94 af
    9413     jmp near 066adh                           ; e9 77 ff
    9414     jmp near 06a14h                           ; e9 db 02
     9578    call 016c7h                               ; e8 56 af
     9579    jmp near 066ebh                           ; e9 77 ff
     9580    jmp near 068b8h                           ; e9 41 01
    94159581    cmp ax, strict word 00001h                ; 3d 01 00
    9416     jne short 0675ah                          ; 75 1c
     9582    jne short 06798h                          ; 75 1c
    94179583    xor bx, bx                                ; 31 db
    94189584    mov dx, 000a0h                            ; ba a0 00
    94199585    mov ax, strict word 00040h                ; b8 40 00
    9420     call 0165eh                               ; e8 15 af
     9586    call 0165eh                               ; e8 d7 ae
    94219587    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94229588    mov ax, strict word 0000bh                ; b8 0b 00
    9423     call 016ach                               ; e8 59 af
     9589    call 016ach                               ; e8 1b af
    94249590    mov dl, al                                ; 88 c2
    94259591    and dl, 0bfh                              ; 80 e2 bf
    9426     jmp short 0672bh                          ; eb d1
     9592    jmp short 06769h                          ; eb d1
    94279593    mov word [bp+018h], dx                    ; 89 56 18
    94289594    mov ax, bx                                ; 89 d8
     
    94329598    or bx, ax                                 ; 09 c3
    94339599    mov word [bp+012h], bx                    ; 89 5e 12
    9434     jmp near 066adh                           ; e9 41 ff
    9435     cli                                       ; fa
    9436     mov ax, strict word 00001h                ; b8 01 00
    9437     call 06513h                               ; e8 a0 fd
    9438     mov di, ax                                ; 89 c7
    9439     mov ax, word [bp+014h]                    ; 8b 46 14
    9440     sal ax, 004h                              ; c1 e0 04
    9441     mov cx, word [bp+006h]                    ; 8b 4e 06
    9442     add cx, ax                                ; 01 c1
    9443     mov dx, word [bp+014h]                    ; 8b 56 14
    9444     shr dx, 00ch                              ; c1 ea 0c
    9445     mov byte [bp-006h], dl                    ; 88 56 fa
    9446     cmp cx, ax                                ; 39 c1
    9447     jnc short 06792h                          ; 73 05
    9448     db  0feh, 0c2h
    9449     ; inc dl                                    ; fe c2
    9450     mov byte [bp-006h], dl                    ; 88 56 fa
    9451     mov dx, word [bp+006h]                    ; 8b 56 06
    9452     add dx, strict byte 00008h                ; 83 c2 08
    9453     mov ax, word [bp+014h]                    ; 8b 46 14
    9454     mov bx, strict word 0002fh                ; bb 2f 00
    9455     call 0167ah                               ; e8 d9 ae
    9456     mov dx, word [bp+006h]                    ; 8b 56 06
    9457     add dx, strict byte 0000ah                ; 83 c2 0a
    9458     mov ax, word [bp+014h]                    ; 8b 46 14
    9459     mov bx, cx                                ; 89 cb
    9460     call 0167ah                               ; e8 cb ae
    9461     mov bl, byte [bp-006h]                    ; 8a 5e fa
    9462     xor bh, bh                                ; 30 ff
    9463     mov dx, word [bp+006h]                    ; 8b 56 06
    9464     add dx, strict byte 0000ch                ; 83 c2 0c
    9465     mov ax, word [bp+014h]                    ; 8b 46 14
    9466     call 0165eh                               ; e8 9e ae
    9467     mov dx, word [bp+006h]                    ; 8b 56 06
    9468     add dx, strict byte 0000dh                ; 83 c2 0d
    9469     mov ax, word [bp+014h]                    ; 8b 46 14
    9470     mov bx, 00093h                            ; bb 93 00
    9471     call 0165eh                               ; e8 8f ae
    9472     mov dx, word [bp+006h]                    ; 8b 56 06
    9473     add dx, strict byte 0000eh                ; 83 c2 0e
    9474     mov ax, word [bp+014h]                    ; 8b 46 14
    9475     xor bx, bx                                ; 31 db
    9476     call 0167ah                               ; e8 9d ae
    9477     mov dx, word [bp+006h]                    ; 8b 56 06
    9478     add dx, strict byte 00020h                ; 83 c2 20
    9479     mov ax, word [bp+014h]                    ; 8b 46 14
    9480     mov bx, strict word 0ffffh                ; bb ff ff
    9481     call 0167ah                               ; e8 8e ae
    9482     mov dx, word [bp+006h]                    ; 8b 56 06
    9483     add dx, strict byte 00022h                ; 83 c2 22
    9484     mov ax, word [bp+014h]                    ; 8b 46 14
    9485     xor bx, bx                                ; 31 db
    9486     call 0167ah                               ; e8 80 ae
    9487     mov dx, word [bp+006h]                    ; 8b 56 06
    9488     add dx, strict byte 00024h                ; 83 c2 24
    9489     mov ax, word [bp+014h]                    ; 8b 46 14
    9490     mov bx, strict word 0000fh                ; bb 0f 00
    9491     call 0165eh                               ; e8 55 ae
    9492     mov dx, word [bp+006h]                    ; 8b 56 06
    9493     add dx, strict byte 00025h                ; 83 c2 25
    9494     mov ax, word [bp+014h]                    ; 8b 46 14
    9495     mov bx, 0009bh                            ; bb 9b 00
    9496     call 0165eh                               ; e8 46 ae
    9497     mov dx, word [bp+006h]                    ; 8b 56 06
    9498     add dx, strict byte 00026h                ; 83 c2 26
    9499     mov ax, word [bp+014h]                    ; 8b 46 14
    9500     xor bx, bx                                ; 31 db
    9501     call 0167ah                               ; e8 54 ae
    9502     mov ax, ss                                ; 8c d0
    9503     mov cx, ax                                ; 89 c1
    9504     sal cx, 004h                              ; c1 e1 04
    9505     shr ax, 00ch                              ; c1 e8 0c
    9506     mov word [bp-008h], ax                    ; 89 46 f8
    9507     mov dx, word [bp+006h]                    ; 8b 56 06
    9508     add dx, strict byte 00028h                ; 83 c2 28
    9509     mov ax, word [bp+014h]                    ; 8b 46 14
    9510     mov bx, strict word 0ffffh                ; bb ff ff
    9511     call 0167ah                               ; e8 38 ae
    9512     mov dx, word [bp+006h]                    ; 8b 56 06
    9513     add dx, strict byte 0002ah                ; 83 c2 2a
    9514     mov ax, word [bp+014h]                    ; 8b 46 14
    9515     mov bx, cx                                ; 89 cb
    9516     call 0167ah                               ; e8 2a ae
    9517     mov bl, byte [bp-008h]                    ; 8a 5e f8
    9518     xor bh, bh                                ; 30 ff
    9519     mov dx, word [bp+006h]                    ; 8b 56 06
    9520     add dx, strict byte 0002ch                ; 83 c2 2c
    9521     mov ax, word [bp+014h]                    ; 8b 46 14
    9522     call 0165eh                               ; e8 fd ad
    9523     mov dx, word [bp+006h]                    ; 8b 56 06
    9524     add dx, strict byte 0002dh                ; 83 c2 2d
    9525     mov ax, word [bp+014h]                    ; 8b 46 14
    9526     mov bx, 00093h                            ; bb 93 00
    9527     call 0165eh                               ; e8 ee ad
    9528     mov dx, word [bp+006h]                    ; 8b 56 06
    9529     add dx, strict byte 0002eh                ; 83 c2 2e
    9530     mov ax, word [bp+014h]                    ; 8b 46 14
    9531     xor bx, bx                                ; 31 db
    9532     call 0167ah                               ; e8 fc ad
    9533     mov si, word [bp+006h]                    ; 8b 76 06
    9534     mov es, [bp+014h]                         ; 8e 46 14
    9535     mov cx, word [bp+010h]                    ; 8b 4e 10
    9536     push DS                                   ; 1e
    9537     push eax                                  ; 66 50
    9538     db  066h, 033h, 0c0h
    9539     ; xor eax, eax                              ; 66 33 c0
    9540     mov ds, ax                                ; 8e d8
    9541     mov word [00467h], sp                     ; 89 26 67 04
    9542     mov [00469h], ss                          ; 8c 16 69 04
    9543     call 0689ah                               ; e8 00 00
    9544     pop di                                    ; 5f
    9545     add di, strict byte 0001bh                ; 83 c7 1b
    9546     push strict byte 00020h                   ; 6a 20
    9547     push di                                   ; 57
    9548     lgdt [es:si+008h]                         ; 26 0f 01 54 08
    9549     lidt [cs:0efe1h]                          ; 2e 0f 01 1e e1 ef
    9550     mov eax, cr0                              ; 0f 20 c0
    9551     or AL, strict byte 001h                   ; 0c 01
    9552     mov cr0, eax                              ; 0f 22 c0
    9553     retf                                      ; cb
    9554     mov ax, strict word 00028h                ; b8 28 00
    9555     mov ss, ax                                ; 8e d0
    9556     mov ax, strict word 00010h                ; b8 10 00
    9557     mov ds, ax                                ; 8e d8
    9558     mov ax, strict word 00018h                ; b8 18 00
    9559     mov es, ax                                ; 8e c0
    9560     db  033h, 0f6h
    9561     ; xor si, si                                ; 33 f6
    9562     db  033h, 0ffh
    9563     ; xor di, di                                ; 33 ff
    9564     cld                                       ; fc
    9565     rep movsw                                 ; f3 a5
    9566     call 068ceh                               ; e8 00 00
    9567     pop ax                                    ; 58
    9568     push 0f000h                               ; 68 00 f0
    9569     add ax, strict byte 00018h                ; 83 c0 18
    9570     push ax                                   ; 50
    9571     mov ax, strict word 00028h                ; b8 28 00
    9572     mov ds, ax                                ; 8e d8
    9573     mov es, ax                                ; 8e c0
    9574     mov eax, cr0                              ; 0f 20 c0
    9575     and AL, strict byte 0feh                  ; 24 fe
    9576     mov cr0, eax                              ; 0f 22 c0
    9577     retf                                      ; cb
    9578     lidt [cs:0efe7h]                          ; 2e 0f 01 1e e7 ef
    9579     db  033h, 0c0h
    9580     ; xor ax, ax                                ; 33 c0
    9581     mov ds, ax                                ; 8e d8
    9582     mov es, ax                                ; 8e c0
    9583     lss sp, [00467h]                          ; 0f b2 26 67 04
    9584     pop eax                                   ; 66 58
    9585     pop DS                                    ; 1f
    9586     mov ax, di                                ; 89 f8
    9587     call 06513h                               ; e8 14 fc
    9588     sti                                       ; fb
    9589     mov byte [bp+013h], 000h                  ; c6 46 13 00
    9590     and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9591     jmp near 066adh                           ; e9 a2 fd
     9600    jmp near 066ebh                           ; e9 41 ff
    95929601    mov ax, strict word 00031h                ; b8 31 00
    9593     call 016ach                               ; e8 9b ad
     9602    call 016ach                               ; e8 fc ae
    95949603    xor ah, ah                                ; 30 e4
    95959604    mov dx, ax                                ; 89 c2
    95969605    sal dx, 008h                              ; c1 e2 08
    95979606    mov ax, strict word 00030h                ; b8 30 00
    9598     call 016ach                               ; e8 8e ad
     9607    call 016ach                               ; e8 ef ae
    95999608    xor ah, ah                                ; 30 e4
    96009609    or dx, ax                                 ; 09 c2
    96019610    mov word [bp+012h], dx                    ; 89 56 12
    96029611    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9603     jbe short 06904h                          ; 76 da
     9612    jbe short 067ceh                          ; 76 05
    96049613    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    9605     jmp short 06904h                          ; eb d3
     9614    and byte [bp+018h], 0feh                  ; 80 66 18 fe
     9615    jmp near 066ebh                           ; e9 16 ff
    96069616    cli                                       ; fa
    96079617    mov ax, strict word 00001h                ; b8 01 00
    9608     call 06513h                               ; e8 db fb
     9618    call 06556h                               ; e8 7a fd
    96099619    mov dx, word [bp+006h]                    ; 8b 56 06
    96109620    add dx, strict byte 00038h                ; 83 c2 38
    96119621    mov ax, word [bp+014h]                    ; 8b 46 14
    96129622    mov bx, strict word 0ffffh                ; bb ff ff
    9613     call 0167ah                               ; e8 33 ad
     9623    call 0167ah                               ; e8 8f ae
    96149624    mov dx, word [bp+006h]                    ; 8b 56 06
    96159625    add dx, strict byte 0003ah                ; 83 c2 3a
    96169626    mov ax, word [bp+014h]                    ; 8b 46 14
    96179627    xor bx, bx                                ; 31 db
    9618     call 0167ah                               ; e8 25 ad
     9628    call 0167ah                               ; e8 81 ae
    96199629    mov dx, word [bp+006h]                    ; 8b 56 06
    96209630    add dx, strict byte 0003ch                ; 83 c2 3c
    96219631    mov ax, word [bp+014h]                    ; 8b 46 14
    96229632    mov bx, strict word 0000fh                ; bb 0f 00
    9623     call 0165eh                               ; e8 fa ac
     9633    call 0165eh                               ; e8 56 ae
    96249634    mov dx, word [bp+006h]                    ; 8b 56 06
    96259635    add dx, strict byte 0003dh                ; 83 c2 3d
    96269636    mov ax, word [bp+014h]                    ; 8b 46 14
    96279637    mov bx, 0009bh                            ; bb 9b 00
    9628     call 0165eh                               ; e8 eb ac
     9638    call 0165eh                               ; e8 47 ae
    96299639    mov dx, word [bp+006h]                    ; 8b 56 06
    96309640    add dx, strict byte 0003eh                ; 83 c2 3e
    96319641    mov ax, word [bp+014h]                    ; 8b 46 14
    96329642    xor bx, bx                                ; 31 db
    9633     call 0167ah                               ; e8 f9 ac
     9643    call 0167ah                               ; e8 55 ae
    96349644    mov AL, strict byte 011h                  ; b0 11
    96359645    mov dx, strict word 00020h                ; ba 20 00
     
    96619671    out DX, AL                                ; ee
    96629672    mov si, word [bp+006h]                    ; 8b 76 06
    9663     call 069c2h                               ; e8 00 00
     9673    call 06866h                               ; e8 00 00
    96649674    pop di                                    ; 5f
    96659675    add di, strict byte 00018h                ; 83 c7 18
     
    96899699    push cx                                   ; 51
    96909700    retf                                      ; cb
    9691     jmp near 066adh                           ; e9 af fc
     9701    jmp near 066ebh                           ; e9 49 fe
    96929702    mov bx, 00da0h                            ; bb a0 0d
    96939703    mov cx, ds                                ; 8c d9
    96949704    mov ax, strict word 00004h                ; b8 04 00
    9695     call 01923h                               ; e8 1a af
     9705    call 01923h                               ; e8 76 b0
    96969706    push 0086eh                               ; 68 6e 08
    96979707    push strict byte 00004h                   ; 6a 04
    9698     call 01966h                               ; e8 55 af
     9708    call 01966h                               ; e8 b1 b0
    96999709    add sp, strict byte 00004h                ; 83 c4 04
    97009710    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    97039713    or ah, 086h                               ; 80 cc 86
    97049714    mov word [bp+012h], ax                    ; 89 46 12
    9705     jmp near 066adh                           ; e9 87 fc
     9715    jmp near 066ebh                           ; e9 21 fe
    97069716    mov word [bp+018h], cx                    ; 89 4e 18
    97079717    mov word [bp+012h], ax                    ; 89 46 12
    97089718    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    97099719    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    9710     jmp near 066adh                           ; e9 74 fc
     9720    jmp near 066ebh                           ; e9 0e fe
    97119721    mov dx, strict word 0000eh                ; ba 0e 00
    97129722    mov ax, strict word 00040h                ; b8 40 00
    9713     call 0166ch                               ; e8 2a ac
     9723    call 0166ch                               ; e8 86 ad
    97149724    mov word [bp+014h], ax                    ; 89 46 14
    9715     jmp near 06904h                           ; e9 bc fe
     9725    jmp near 067ceh                           ; e9 e2 fe
    97169726    push 0089dh                               ; 68 9d 08
    97179727    push strict byte 00008h                   ; 6a 08
    9718     jmp short 06a0eh                          ; eb bf
     9728    jmp short 068b2h                          ; eb bf
    97199729    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9720     jne short 06a74h                          ; 75 1f
     9730    jne short 06918h                          ; 75 1f
    97219731    mov word [bp+012h], ax                    ; 89 46 12
    97229732    mov ax, word [bp+00ch]                    ; 8b 46 0c
    97239733    xor ah, ah                                ; 30 e4
    97249734    cmp ax, strict word 00001h                ; 3d 01 00
    9725     jc short 06a6dh                           ; 72 0b
     9735    jc short 06911h                           ; 72 0b
    97269736    cmp ax, strict word 00003h                ; 3d 03 00
    9727     jnbe short 06a6dh                         ; 77 06
     9737    jnbe short 06911h                         ; 77 06
    97289738    mov word [bp+018h], cx                    ; 89 4e 18
    9729     jmp near 066adh                           ; e9 40 fc
     9739    jmp near 066ebh                           ; e9 da fd
    97309740    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9731     jmp near 066adh                           ; e9 39 fc
     9741    jmp near 066ebh                           ; e9 d3 fd
    97329742    mov bx, 00da0h                            ; bb a0 0d
    97339743    mov cx, ds                                ; 8c d9
    97349744    mov ax, strict word 00004h                ; b8 04 00
    9735     call 01923h                               ; e8 a4 ae
     9745    call 01923h                               ; e8 00 b0
    97369746    push word [bp+00ch]                       ; ff 76 0c
    97379747    push word [bp+012h]                       ; ff 76 12
    97389748    push 008b4h                               ; 68 b4 08
    97399749    push strict byte 00004h                   ; 6a 04
    9740     call 01966h                               ; e8 d9 ae
     9750    call 01966h                               ; e8 35 b0
    97419751    add sp, strict byte 00008h                ; 83 c4 08
    9742     jmp short 06a14h                          ; eb 82
    9743     inc dx                                    ; 42
     9752    jmp short 068b8h                          ; eb 82
     9753    mov AH, strict byte 06ah                  ; b4 6a
     9754    fldcw [bp+si-007h]                        ; d9 6a f9
     9755    push strict byte 00048h                   ; 6a 48
     9756    imul sp, word [bp+06bh], strict byte 0ff83h ; 6b 66 6b 83
     9757    imul sp, word [di-03895h], strict byte 0006bh ; 6b a5 6b c7 6b
     9758    add AL, strict byte 06ch                  ; 04 6c
     9759    db  038h
    97449760    insb                                      ; 6c
    9745     a32 insb                                  ; 67 6c
    9746     xchg word [si-02ah], bp                   ; 87 6c d6
    9747     insb                                      ; 6c
    9748     hlt                                       ; f4
    9749     insb                                      ; 6c
    9750     adc word [di+033h], bp                    ; 11 6d 33
    9751     insw                                      ; 6d
    9752     push bp                                   ; 55
    9753     insw                                      ; 6d
    9754     xchg dx, ax                               ; 92
    9755     insw                                      ; 6d
    9756     db  0c6h
    9757     insw                                      ; 6d
    9758 _int15_function32:                           ; 0xf6aa6 LB 0x3bc
     9761_int15_function32:                           ; 0xf694a LB 0x38a
    97599762    push bp                                   ; 55
    97609763    mov bp, sp                                ; 89 e5
    97619764    push si                                   ; 56
    97629765    sub sp, strict byte 00008h                ; 83 ec 08
    9763     mov dx, word [bp+020h]                    ; 8b 56 20
    9764     shr dx, 008h                              ; c1 ea 08
     9766    mov ax, word [bp+020h]                    ; 8b 46 20
     9767    shr ax, 008h                              ; c1 e8 08
    97659768    mov bx, word [bp+028h]                    ; 8b 5e 28
    97669769    and bl, 0feh                              ; 80 e3 fe
    9767     mov ax, word [bp+020h]                    ; 8b 46 20
    9768     xor ah, ah                                ; 30 e4
    9769     cmp dx, 000e8h                            ; 81 fa e8 00
    9770     je short 06b11h                           ; 74 4d
    9771     cmp dx, 000d0h                            ; 81 fa d0 00
    9772     je short 06b0ah                           ; 74 40
    9773     cmp dx, 00086h                            ; 81 fa 86 00
    9774     jne short 06b2fh                          ; 75 5f
     9770    mov dx, word [bp+020h]                    ; 8b 56 20
     9771    xor dh, dh                                ; 30 f6
     9772    cmp ax, 000e8h                            ; 3d e8 00
     9773    je short 069b1h                           ; 74 4a
     9774    cmp ax, 000d0h                            ; 3d d0 00
     9775    je short 0697eh                           ; 74 12
     9776    cmp ax, 00086h                            ; 3d 86 00
     9777    jne short 069afh                          ; 75 3e
    97759778    sti                                       ; fb
    9776     mov ax, word [bp+01ch]                    ; 8b 46 1c
    9777     mov dx, word [bp+018h]                    ; 8b 56 18
    9778     sal eax, 010h                             ; 66 c1 e0 10
    9779     db  08bh, 0c2h
    9780     ; mov ax, dx                                ; 8b c2
    9781     mov ebx, strict dword 00000000fh          ; 66 bb 0f 00 00 00
    9782     db  066h, 033h, 0d2h
    9783     ; xor edx, edx                              ; 66 33 d2
    9784     div ebx                                   ; 66 f7 f3
    9785     db  066h, 08bh, 0c8h
    9786     ; mov ecx, eax                              ; 66 8b c8
    9787     in AL, strict byte 061h                   ; e4 61
    9788     and AL, strict byte 010h                  ; 24 10
    9789     db  08ah, 0e0h
    9790     ; mov ah, al                                ; 8a e0
    9791     db  066h, 00bh, 0c9h
    9792     ; or ecx, ecx                               ; 66 0b c9
    9793     je near 06b07h                            ; 0f 84 0e 00
    9794     in AL, strict byte 061h                   ; e4 61
    9795     and AL, strict byte 010h                  ; 24 10
    9796     db  03ah, 0c4h
    9797     ; cmp al, ah                                ; 3a c4
    9798     je short 06af9h                           ; 74 f8
    9799     db  08ah, 0e0h
    9800     ; mov ah, al                                ; 8a e0
    9801     dec ecx                                   ; 66 49
    9802     jne short 06af9h                          ; 75 f2
    9803     jmp near 06cd0h                           ; e9 c6 01
    9804     cmp ax, strict word 0004fh                ; 3d 4f 00
    9805     je short 06b13h                           ; 74 04
    9806     jmp short 06b2fh                          ; eb 1e
    9807     jmp short 06b69h                          ; eb 56
     9779    mov dx, word [bp+01ch]                    ; 8b 56 1c
     9780    mov ax, word [bp+018h]                    ; 8b 46 18
     9781    call 06513h                               ; e8 98 fb
     9782    jmp near 06b42h                           ; e9 c4 01
     9783    cmp dx, strict byte 0004fh                ; 83 fa 4f
     9784    jne short 069afh                          ; 75 2c
    98089785    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    9809     jne short 06b73h                          ; 75 59
     9786    jne short 069e5h                          ; 75 5b
    98109787    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    9811     jne short 06b73h                          ; 75 52
     9788    jne short 069e5h                          ; 75 54
    98129789    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    9813     jne short 06b73h                          ; 75 4b
     9790    jne short 069e5h                          ; 75 4d
    98149791    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    9815     je short 06b31h                           ; 74 02
    9816     jmp short 06b73h                          ; eb 42
     9792    jne short 069e5h                          ; 75 46
    98179793    mov ax, word [bp+00ah]                    ; 8b 46 0a
    98189794    or ax, word [bp+008h]                     ; 0b 46 08
    9819     jne short 06b73h                          ; 75 3a
     9795    jne short 069e5h                          ; 75 3e
    98209796    mov ax, word [bp+006h]                    ; 8b 46 06
    98219797    or ax, word [bp+004h]                     ; 0b 46 04
    9822     jne short 06b73h                          ; 75 32
     9798    je short 069b3h                           ; 74 04
     9799    jmp short 069e5h                          ; eb 34
     9800    jmp short 069dbh                          ; eb 28
    98239801    mov word [bp+028h], bx                    ; 89 5e 28
    98249802    mov ax, word [bp+014h]                    ; 8b 46 14
     
    98329810    mov word [bp+020h], 03332h                ; c7 46 20 32 33
    98339811    mov word [bp+022h], 04941h                ; c7 46 22 41 49
    9834     jmp near 06cd0h                           ; e9 67 01
    9835     cmp ax, strict word 00020h                ; 3d 20 00
    9836     je short 06b79h                           ; 74 0b
    9837     cmp ax, strict word 00001h                ; 3d 01 00
    9838     je short 06b76h                           ; 74 03
    9839     jmp near 06ca6h                           ; e9 30 01
    9840     jmp near 06e14h                           ; e9 9b 02
     9812    jmp near 06b42h                           ; e9 67 01
     9813    cmp dx, strict byte 00020h                ; 83 fa 20
     9814    je short 069ebh                           ; 74 0b
     9815    cmp dx, strict byte 00001h                ; 83 fa 01
     9816    je short 069e8h                           ; 74 03
     9817    jmp near 06b18h                           ; e9 30 01
     9818    jmp near 06c86h                           ; e9 9b 02
    98419819    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    9842     jne short 06b73h                          ; 75 f3
     9820    jne short 069e5h                          ; 75 f3
    98439821    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    9844     jne short 06b73h                          ; 75 ec
     9822    jne short 069e5h                          ; 75 ec
    98459823    mov ax, strict word 00035h                ; b8 35 00
    9846     call 016ach                               ; e8 1f ab
     9824    call 016ach                               ; e8 ad ac
    98479825    mov bl, al                                ; 88 c3
    98489826    xor bh, bh                                ; 30 ff
     
    98519829    sal bx, 1                                 ; d1 e3
    98529830    rcl dx, 1                                 ; d1 d2
    9853     loop 06b96h                               ; e2 fa
     9831    loop 06a08h                               ; e2 fa
    98549832    mov ax, strict word 00034h                ; b8 34 00
    9855     call 016ach                               ; e8 0a ab
     9833    call 016ach                               ; e8 98 ac
    98569834    xor ah, ah                                ; 30 e4
    98579835    mov dx, bx                                ; 89 da
     
    98619839    adc dx, 00100h                            ; 81 d2 00 01
    98629840    cmp dx, 00100h                            ; 81 fa 00 01
    9863     jc short 06bbch                           ; 72 06
    9864     jne short 06beah                          ; 75 32
     9841    jc short 06a2eh                           ; 72 06
     9842    jne short 06a5ch                          ; 75 32
    98659843    test bx, bx                               ; 85 db
    9866     jnbe short 06beah                         ; 77 2e
     9844    jnbe short 06a5ch                         ; 77 2e
    98679845    mov ax, strict word 00031h                ; b8 31 00
    9868     call 016ach                               ; e8 ea aa
     9846    call 016ach                               ; e8 78 ac
    98699847    mov bl, al                                ; 88 c3
    98709848    xor bh, bh                                ; 30 ff
     
    98739851    sal bx, 1                                 ; d1 e3
    98749852    rcl dx, 1                                 ; d1 d2
    9875     loop 06bcbh                               ; e2 fa
     9853    loop 06a3dh                               ; e2 fa
    98769854    mov ax, strict word 00030h                ; b8 30 00
    9877     call 016ach                               ; e8 d5 aa
     9855    call 016ach                               ; e8 63 ac
    98789856    xor ah, ah                                ; 30 e4
    98799857    or bx, ax                                 ; 09 c3
     
    98819859    sal bx, 1                                 ; d1 e3
    98829860    rcl dx, 1                                 ; d1 d2
    9883     loop 06bdeh                               ; e2 fa
     9861    loop 06a50h                               ; e2 fa
    98849862    add bx, strict byte 00000h                ; 83 c3 00
    98859863    adc dx, strict byte 00010h                ; 83 d2 10
    98869864    mov ax, strict word 00062h                ; b8 62 00
    9887     call 016ach                               ; e8 bc aa
     9865    call 016ach                               ; e8 4a ac
    98889866    xor ah, ah                                ; 30 e4
    98899867    mov word [bp-00ah], ax                    ; 89 46 f6
     
    98939871    sal word [bp-00ah], 1                     ; d1 66 f6
    98949872    rcl word [bp-008h], 1                     ; d1 56 f8
    9895     loop 06bfdh                               ; e2 f8
     9873    loop 06a6fh                               ; e2 f8
    98969874    mov ax, strict word 00061h                ; b8 61 00
    9897     call 016ach                               ; e8 a1 aa
     9875    call 016ach                               ; e8 2f ac
    98989876    xor ah, ah                                ; 30 e4
    98999877    or word [bp-00ah], ax                     ; 09 46 f6
     
    99029880    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    99039881    mov ax, strict word 00063h                ; b8 63 00
    9904     call 016ach                               ; e8 8b aa
     9882    call 016ach                               ; e8 19 ac
     9883    mov byte [bp-004h], al                    ; 88 46 fc
    99059884    mov byte [bp-006h], al                    ; 88 46 fa
    9906     mov byte [bp-004h], al                    ; 88 46 fc
    99079885    mov ax, word [bp+014h]                    ; 8b 46 14
    99089886    cmp ax, strict word 00009h                ; 3d 09 00
    9909     jnbe short 06ca6h                         ; 77 77
     9887    jnbe short 06b18h                         ; 77 77
    99109888    mov si, ax                                ; 89 c6
    99119889    add si, ax                                ; 01 c6
     
    99149892    mov cx, dx                                ; 89 d1
    99159893    adc cx, strict byte 0ffffh                ; 83 d1 ff
    9916     jmp word [cs:si+06a92h]                   ; 2e ff a4 92 6a
     9894    jmp word [cs:si+06936h]                   ; 2e ff a4 36 69
    99179895    push strict byte 00001h                   ; 6a 01
    99189896    push strict byte 00000h                   ; 6a 00
     
    99249902    xor bx, bx                                ; 31 db
    99259903    xor cx, cx                                ; 31 c9
    9926     call 06543h                               ; e8 e9 f8
     9904    call 06586h                               ; e8 ba fa
    99279905    mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
    99289906    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    9929     jmp near 06df9h                           ; e9 92 01
     9907    jmp near 06c6bh                           ; e9 92 01
    99309908    push strict byte 00002h                   ; 6a 02
    99319909    push strict byte 00000h                   ; 6a 00
     
    99379915    mov bx, 0fc00h                            ; bb 00 fc
    99389916    mov cx, strict word 00009h                ; b9 09 00
    9939     call 06543h                               ; e8 c3 f8
     9917    call 06586h                               ; e8 94 fa
    99409918    mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
    9941     jmp short 06c5fh                          ; eb d8
     9919    jmp short 06ad1h                          ; eb d8
    99429920    push strict byte 00002h                   ; 6a 02
    99439921    push strict byte 00000h                   ; 6a 00
     
    99499927    xor bx, bx                                ; 31 db
    99509928    mov cx, strict word 0000fh                ; b9 0f 00
    9951     call 06543h                               ; e8 a4 f8
     9929    call 06586h                               ; e8 75 fa
    99529930    mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
    9953     jmp short 06c5fh                          ; eb b9
     9931    jmp short 06ad1h                          ; eb b9
    99549932    mov bx, 00da0h                            ; bb a0 0d
    99559933    mov cx, ds                                ; 8c d9
    99569934    mov ax, strict word 00004h                ; b8 04 00
    9957     call 01923h                               ; e8 72 ac
     9935    call 01923h                               ; e8 00 ae
    99589936    push word [bp+014h]                       ; ff 76 14
    99599937    push word [bp+020h]                       ; ff 76 20
    99609938    push 008b4h                               ; 68 b4 08
    99619939    push strict byte 00004h                   ; 6a 04
    9962     call 01966h                               ; e8 a7 ac
     9940    call 01966h                               ; e8 35 ae
    99639941    add sp, strict byte 00008h                ; 83 c4 08
    99649942    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    99809958    xor bx, bx                                ; 31 db
    99819959    mov cx, strict word 00010h                ; b9 10 00
    9982     call 06543h                               ; e8 57 f8
     9960    call 06586h                               ; e8 28 fa
    99839961    mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
    9984     jmp near 06c5fh                           ; e9 6b ff
     9962    jmp near 06ad1h                           ; e9 6b ff
    99859963    push strict byte 00003h                   ; 6a 03
    99869964    push strict byte 00000h                   ; 6a 00
     
    99929970    mov bx, ax                                ; 89 c3
    99939971    mov ax, si                                ; 89 f0
    9994     call 06543h                               ; e8 3a f8
     9972    call 06586h                               ; e8 0b fa
    99959973    mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
    9996     jmp near 06c5fh                           ; e9 4e ff
     9974    jmp near 06ad1h                           ; e9 4e ff
    99979975    push strict byte 00002h                   ; 6a 02
    99989976    push strict byte 00000h                   ; 6a 00
     
    100049982    xor bx, bx                                ; 31 db
    100059983    mov cx, 0fec0h                            ; b9 c0 fe
    10006     call 06543h                               ; e8 18 f8
     9984    call 06586h                               ; e8 e9 f9
    100079985    mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
    10008     jmp near 06c5fh                           ; e9 2c ff
     9986    jmp near 06ad1h                           ; e9 2c ff
    100099987    push strict byte 00002h                   ; 6a 02
    100109988    push strict byte 00000h                   ; 6a 00
     
    100169994    xor bx, bx                                ; 31 db
    100179995    mov cx, 0fee0h                            ; b9 e0 fe
    10018     call 06543h                               ; e8 f6 f7
     9996    call 06586h                               ; e8 c7 f9
    100199997    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    10020     jmp near 06c5fh                           ; e9 0a ff
     9998    jmp near 06ad1h                           ; e9 0a ff
    100219999    push strict byte 00002h                   ; 6a 02
    1002210000    push strict byte 00000h                   ; 6a 00
     
    1002810006    xor bx, bx                                ; 31 db
    1002910007    mov cx, strict word 0fffch                ; b9 fc ff
    10030     call 06543h                               ; e8 d6 f7
    10031     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10032     jne short 06d7ah                          ; 75 07
     10008    call 06586h                               ; e8 a7 f9
     10009    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     10010    jne short 06bech                          ; 75 07
    1003310011    mov ax, word [bp-008h]                    ; 8b 46 f8
    1003410012    test ax, ax                               ; 85 c0
    10035     je short 06d8ah                           ; 74 10
     10013    je short 06bfch                           ; 74 10
    1003610014    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10037     jmp near 06c5fh                           ; e9 dd fe
     10015    jmp near 06ad1h                           ; e9 dd fe
    1003810016    mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
    10039     jmp near 06c5fh                           ; e9 d5 fe
     10017    jmp near 06ad1h                           ; e9 d5 fe
    1004010018    mov word [bp+014h], ax                    ; 89 46 14
    1004110019    mov word [bp+016h], ax                    ; 89 46 16
    10042     jmp short 06df9h                          ; eb 67
     10020    jmp short 06c6bh                          ; eb 67
    1004310021    push strict byte 00002h                   ; 6a 02
    1004410022    push strict byte 00000h                   ; 6a 00
     
    1005010028    xor bx, bx                                ; 31 db
    1005110029    xor cx, cx                                ; 31 c9
    10052     call 06543h                               ; e8 9a f7
    10053     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10054     jne short 06db6h                          ; 75 07
     10030    call 06586h                               ; e8 6b f9
     10031    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     10032    jne short 06c28h                          ; 75 07
    1005510033    mov ax, word [bp-008h]                    ; 8b 46 f8
    1005610034    test ax, ax                               ; 85 c0
    10057     je short 06dbeh                           ; 74 08
     10035    je short 06c30h                           ; 74 08
    1005810036    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10059     jmp near 06c5fh                           ; e9 a1 fe
     10037    jmp near 06ad1h                           ; e9 a1 fe
    1006010038    mov word [bp+014h], ax                    ; 89 46 14
    1006110039    mov word [bp+016h], ax                    ; 89 46 16
    10062     jmp short 06df9h                          ; eb 33
    10063     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10064     jne short 06dd2h                          ; 75 06
     10040    jmp short 06c6bh                          ; eb 33
     10041    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     10042    jne short 06c44h                          ; 75 06
    1006510043    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    10066     je short 06df9h                           ; 74 27
     10044    je short 06c6bh                           ; 74 27
    1006710045    push strict byte 00001h                   ; 6a 01
    10068     mov al, byte [bp-004h]                    ; 8a 46 fc
     10046    mov al, byte [bp-006h]                    ; 8a 46 fa
    1006910047    db  0feh, 0c0h
    1007010048    ; inc al                                    ; fe c0
     
    1007810056    xor bx, bx                                ; 31 db
    1007910057    xor cx, cx                                ; 31 c9
    10080     call 06543h                               ; e8 52 f7
     10058    call 06586h                               ; e8 23 f9
    1008110059    xor ax, ax                                ; 31 c0
    1008210060    mov word [bp+014h], ax                    ; 89 46 14
     
    1008710065    mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
    1008810066    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    10089     jmp near 06cd0h                           ; e9 bc fe
     10067    jmp near 06b42h                           ; e9 bc fe
    1009010068    mov word [bp+028h], bx                    ; 89 5e 28
    1009110069    mov ax, strict word 00031h                ; b8 31 00
    10092     call 016ach                               ; e8 8f a8
     10070    call 016ach                               ; e8 1d aa
    1009310071    xor ah, ah                                ; 30 e4
    1009410072    mov dx, ax                                ; 89 c2
    1009510073    sal dx, 008h                              ; c1 e2 08
    1009610074    mov ax, strict word 00030h                ; b8 30 00
    10097     call 016ach                               ; e8 82 a8
     10075    call 016ach                               ; e8 10 aa
    1009810076    xor ah, ah                                ; 30 e4
    1009910077    or dx, ax                                 ; 09 c2
    1010010078    mov word [bp+01ch], dx                    ; 89 56 1c
    1010110079    cmp dx, 03c00h                            ; 81 fa 00 3c
    10102     jbe short 06e3ch                          ; 76 05
     10080    jbe short 06caeh                          ; 76 05
    1010310081    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    1010410082    mov ax, strict word 00035h                ; b8 35 00
    10105     call 016ach                               ; e8 6a a8
     10083    call 016ach                               ; e8 f8 a9
    1010610084    xor ah, ah                                ; 30 e4
    1010710085    mov dx, ax                                ; 89 c2
    1010810086    sal dx, 008h                              ; c1 e2 08
    1010910087    mov ax, strict word 00034h                ; b8 34 00
    10110     call 016ach                               ; e8 5d a8
     10088    call 016ach                               ; e8 eb a9
    1011110089    xor ah, ah                                ; 30 e4
    1011210090    or dx, ax                                 ; 09 c2
     
    1011510093    mov word [bp+020h], ax                    ; 89 46 20
    1011610094    mov word [bp+014h], dx                    ; 89 56 14
    10117     jmp near 06cd0h                           ; e9 6e fe
    10118 _inv_op_handler:                             ; 0xf6e62 LB 0x19b
     10095    jmp near 06b42h                           ; e9 6e fe
     10096_int15_blkmove:                              ; 0xf6cd4 LB 0x18a
     10097    push bp                                   ; 55
     10098    mov bp, sp                                ; 89 e5
     10099    push si                                   ; 56
     10100    push di                                   ; 57
     10101    push ax                                   ; 50
     10102    push ax                                   ; 50
     10103    cli                                       ; fa
     10104    mov ax, strict word 00001h                ; b8 01 00
     10105    call 06556h                               ; e8 74 f8
     10106    mov di, ax                                ; 89 c7
     10107    mov ax, word [bp+006h]                    ; 8b 46 06
     10108    sal ax, 004h                              ; c1 e0 04
     10109    mov cx, word [bp+00ah]                    ; 8b 4e 0a
     10110    add cx, ax                                ; 01 c1
     10111    mov dx, word [bp+006h]                    ; 8b 56 06
     10112    shr dx, 00ch                              ; c1 ea 0c
     10113    mov byte [bp-006h], dl                    ; 88 56 fa
     10114    cmp cx, ax                                ; 39 c1
     10115    jnc short 06d01h                          ; 73 05
     10116    db  0feh, 0c2h
     10117    ; inc dl                                    ; fe c2
     10118    mov byte [bp-006h], dl                    ; 88 56 fa
     10119    mov dx, word [bp+00ah]                    ; 8b 56 0a
     10120    add dx, strict byte 00008h                ; 83 c2 08
     10121    mov ax, word [bp+006h]                    ; 8b 46 06
     10122    mov bx, strict word 0002fh                ; bb 2f 00
     10123    call 0167ah                               ; e8 6a a9
     10124    mov dx, word [bp+00ah]                    ; 8b 56 0a
     10125    add dx, strict byte 0000ah                ; 83 c2 0a
     10126    mov ax, word [bp+006h]                    ; 8b 46 06
     10127    mov bx, cx                                ; 89 cb
     10128    call 0167ah                               ; e8 5c a9
     10129    mov bl, byte [bp-006h]                    ; 8a 5e fa
     10130    xor bh, bh                                ; 30 ff
     10131    mov dx, word [bp+00ah]                    ; 8b 56 0a
     10132    add dx, strict byte 0000ch                ; 83 c2 0c
     10133    mov ax, word [bp+006h]                    ; 8b 46 06
     10134    call 0165eh                               ; e8 2f a9
     10135    mov dx, word [bp+00ah]                    ; 8b 56 0a
     10136    add dx, strict byte 0000dh                ; 83 c2 0d
     10137    mov ax, word [bp+006h]                    ; 8b 46 06
     10138    mov bx, 00093h                            ; bb 93 00
     10139    call 0165eh                               ; e8 20 a9
     10140    mov dx, word [bp+00ah]                    ; 8b 56 0a
     10141    add dx, strict byte 0000eh                ; 83 c2 0e
     10142    mov ax, word [bp+006h]                    ; 8b 46 06
     10143    xor bx, bx                                ; 31 db
     10144    call 0167ah                               ; e8 2e a9
     10145    mov dx, word [bp+00ah]                    ; 8b 56 0a
     10146    add dx, strict byte 00020h                ; 83 c2 20
     10147    mov ax, word [bp+006h]                    ; 8b 46 06
     10148    mov bx, strict word 0ffffh                ; bb ff ff
     10149    call 0167ah                               ; e8 1f a9
     10150    mov dx, word [bp+00ah]                    ; 8b 56 0a
     10151    add dx, strict byte 00022h                ; 83 c2 22
     10152    mov ax, word [bp+006h]                    ; 8b 46 06
     10153    xor bx, bx                                ; 31 db
     10154    call 0167ah                               ; e8 11 a9
     10155    mov dx, word [bp+00ah]                    ; 8b 56 0a
     10156    add dx, strict byte 00024h                ; 83 c2 24
     10157    mov ax, word [bp+006h]                    ; 8b 46 06
     10158    mov bx, strict word 0000fh                ; bb 0f 00
     10159    call 0165eh                               ; e8 e6 a8
     10160    mov dx, word [bp+00ah]                    ; 8b 56 0a
     10161    add dx, strict byte 00025h                ; 83 c2 25
     10162    mov ax, word [bp+006h]                    ; 8b 46 06
     10163    mov bx, 0009bh                            ; bb 9b 00
     10164    call 0165eh                               ; e8 d7 a8
     10165    mov dx, word [bp+00ah]                    ; 8b 56 0a
     10166    add dx, strict byte 00026h                ; 83 c2 26
     10167    mov ax, word [bp+006h]                    ; 8b 46 06
     10168    xor bx, bx                                ; 31 db
     10169    call 0167ah                               ; e8 e5 a8
     10170    mov ax, ss                                ; 8c d0
     10171    mov cx, ax                                ; 89 c1
     10172    sal cx, 004h                              ; c1 e1 04
     10173    shr ax, 00ch                              ; c1 e8 0c
     10174    mov word [bp-008h], ax                    ; 89 46 f8
     10175    mov dx, word [bp+00ah]                    ; 8b 56 0a
     10176    add dx, strict byte 00028h                ; 83 c2 28
     10177    mov ax, word [bp+006h]                    ; 8b 46 06
     10178    mov bx, strict word 0ffffh                ; bb ff ff
     10179    call 0167ah                               ; e8 c9 a8
     10180    mov dx, word [bp+00ah]                    ; 8b 56 0a
     10181    add dx, strict byte 0002ah                ; 83 c2 2a
     10182    mov ax, word [bp+006h]                    ; 8b 46 06
     10183    mov bx, cx                                ; 89 cb
     10184    call 0167ah                               ; e8 bb a8
     10185    mov bl, byte [bp-008h]                    ; 8a 5e f8
     10186    xor bh, bh                                ; 30 ff
     10187    mov dx, word [bp+00ah]                    ; 8b 56 0a
     10188    add dx, strict byte 0002ch                ; 83 c2 2c
     10189    mov ax, word [bp+006h]                    ; 8b 46 06
     10190    call 0165eh                               ; e8 8e a8
     10191    mov dx, word [bp+00ah]                    ; 8b 56 0a
     10192    add dx, strict byte 0002dh                ; 83 c2 2d
     10193    mov ax, word [bp+006h]                    ; 8b 46 06
     10194    mov bx, 00093h                            ; bb 93 00
     10195    call 0165eh                               ; e8 7f a8
     10196    mov dx, word [bp+00ah]                    ; 8b 56 0a
     10197    add dx, strict byte 0002eh                ; 83 c2 2e
     10198    mov ax, word [bp+006h]                    ; 8b 46 06
     10199    xor bx, bx                                ; 31 db
     10200    call 0167ah                               ; e8 8d a8
     10201    lea bx, [bp+004h]                         ; 8d 5e 04
     10202    mov si, word [bp+00ah]                    ; 8b 76 0a
     10203    mov es, [bp+006h]                         ; 8e 46 06
     10204    mov cx, word [bp+014h]                    ; 8b 4e 14
     10205    db  033h, 0c0h
     10206    ; xor ax, ax                                ; 33 c0
     10207    mov ds, ax                                ; 8e d8
     10208    mov word [00467h], bx                     ; 89 1e 67 04
     10209    mov [00469h], ss                          ; 8c 16 69 04
     10210    call 06e08h                               ; e8 00 00
     10211    pop di                                    ; 5f
     10212    add di, strict byte 00018h                ; 83 c7 18
     10213    push strict byte 00020h                   ; 6a 20
     10214    push di                                   ; 57
     10215    lgdt [es:si+008h]                         ; 26 0f 01 54 08
     10216    lidt [cs:0efe1h]                          ; 2e 0f 01 1e e1 ef
     10217    or AL, strict byte 001h                   ; 0c 01
     10218    lmsw ax                                   ; 0f 01 f0
     10219    retf                                      ; cb
     10220    mov ax, strict word 00028h                ; b8 28 00
     10221    mov ss, ax                                ; 8e d0
     10222    mov ax, strict word 00010h                ; b8 10 00
     10223    mov ds, ax                                ; 8e d8
     10224    mov ax, strict word 00018h                ; b8 18 00
     10225    mov es, ax                                ; 8e c0
     10226    db  033h, 0f6h
     10227    ; xor si, si                                ; 33 f6
     10228    db  033h, 0ffh
     10229    ; xor di, di                                ; 33 ff
     10230    cld                                       ; fc
     10231    rep movsw                                 ; f3 a5
     10232    db  033h, 0c0h
     10233    ; xor ax, ax                                ; 33 c0
     10234    out strict byte 080h, AL                  ; e6 80
     10235    mov AL, strict byte 00fh                  ; b0 0f
     10236    out strict byte 070h, AL                  ; e6 70
     10237    mov AL, strict byte 009h                  ; b0 09
     10238    out strict byte 071h, AL                  ; e6 71
     10239    lidt [cs:0efe1h]                          ; 2e 0f 01 1e e1 ef
     10240    int3                                      ; cc
     10241    mov ax, di                                ; 89 f8
     10242    call 06556h                               ; e8 08 f7
     10243    sti                                       ; fb
     10244    mov byte [bp+017h], 000h                  ; c6 46 17 00
     10245    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     10246    lea sp, [bp-004h]                         ; 8d 66 fc
     10247    pop di                                    ; 5f
     10248    pop si                                    ; 5e
     10249    pop bp                                    ; 5d
     10250    retn                                      ; c3
     10251_inv_op_handler:                             ; 0xf6e5e LB 0x19b
    1011910252    push bp                                   ; 55
    1012010253    mov bp, sp                                ; 89 e5
     
    1012510258    les bx, [bp+018h]                         ; c4 5e 18
    1012610259    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10127     jne short 06e78h                          ; 75 06
     10260    jne short 06e74h                          ; 75 06
    1012810261    inc word [bp+018h]                        ; ff 46 18
    10129     jmp near 06ff6h                           ; e9 7e 01
     10262    jmp near 06ff2h                           ; e9 7e 01
    1013010263    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10131     je short 06e82h                           ; 74 03
    10132     jmp near 06ff2h                           ; e9 70 01
     10264    je short 06e7eh                           ; 74 03
     10265    jmp near 06feeh                           ; e9 70 01
    1013310266    mov si, 00800h                            ; be 00 08
    1013410267    xor ax, ax                                ; 31 c0
     
    1015910292    sal ax, 1                                 ; d1 e0
    1016010293    rcl dx, 1                                 ; d1 d2
    10161     loop 06ed3h                               ; e2 fa
     10294    loop 06ecfh                               ; e2 fa
    1016210295    cmp bx, dx                                ; 39 d3
    10163     jne short 06ee1h                          ; 75 04
     10296    jne short 06eddh                          ; 75 04
    1016410297    cmp di, ax                                ; 39 c7
    10165     je short 06ee6h                           ; 74 05
     10298    je short 06ee2h                           ; 74 05
    1016610299    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    1016710300    mov es, [bp-006h]                         ; 8e 46 fa
     
    1017410307    sal ax, 1                                 ; d1 e0
    1017510308    rcl dx, 1                                 ; d1 d2
    10176     loop 06efch                               ; e2 fa
     10309    loop 06ef8h                               ; e2 fa
    1017710310    cmp bx, dx                                ; 39 d3
    10178     jne short 06f0ah                          ; 75 04
     10311    jne short 06f06h                          ; 75 04
    1017910312    cmp di, ax                                ; 39 c7
    10180     je short 06f0eh                           ; 74 04
     10313    je short 06f0ah                           ; 74 04
    1018110314    or byte [bp-008h], 002h                   ; 80 4e f8 02
    1018210315    push strict byte 00000h                   ; 6a 00
     
    1023210365    mov ax, strict word 00008h                ; b8 08 00
    1023310366    test cx, strict word 00001h               ; f7 c1 01 00
    10234     je near 06fafh                            ; 0f 84 02 00
     10367    je near 06fabh                            ; 0f 84 02 00
    1023510368    mov es, ax                                ; 8e c0
    1023610369    test cx, strict word 00002h               ; f7 c1 02 00
    10237     je near 06fd7h                            ; 0f 84 20 00
     10370    je near 06fd3h                            ; 0f 84 20 00
    1023810371    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1023910372    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1025210385    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1025310386    iret                                      ; cf
    10254     jmp short 06ff6h                          ; eb 04
     10387    jmp short 06ff2h                          ; eb 04
    1025510388    sti                                       ; fb
    1025610389    hlt                                       ; f4
    10257     jmp short 06ff3h                          ; eb fd
     10390    jmp short 06fefh                          ; eb fd
    1025810391    lea sp, [bp-004h]                         ; 8d 66 fc
    1025910392    pop di                                    ; 5f
     
    1026110394    pop bp                                    ; 5d
    1026210395    retn                                      ; c3
    10263 init_rtc_:                                   ; 0xf6ffd LB 0x28
     10396init_rtc_:                                   ; 0xf6ff9 LB 0x28
    1026410397    push bp                                   ; 55
    1026510398    mov bp, sp                                ; 89 e5
     
    1026710400    mov dx, strict word 00026h                ; ba 26 00
    1026810401    mov ax, strict word 0000ah                ; b8 0a 00
    10269     call 016c7h                               ; e8 bd a6
     10402    call 016c7h                               ; e8 c1 a6
    1027010403    mov dx, strict word 00002h                ; ba 02 00
    1027110404    mov ax, strict word 0000bh                ; b8 0b 00
    10272     call 016c7h                               ; e8 b4 a6
     10405    call 016c7h                               ; e8 b8 a6
    1027310406    mov ax, strict word 0000ch                ; b8 0c 00
    10274     call 016ach                               ; e8 93 a6
     10407    call 016ach                               ; e8 97 a6
    1027510408    mov ax, strict word 0000dh                ; b8 0d 00
    10276     call 016ach                               ; e8 8d a6
     10409    call 016ach                               ; e8 91 a6
    1027710410    lea sp, [bp-002h]                         ; 8d 66 fe
    1027810411    pop dx                                    ; 5a
    1027910412    pop bp                                    ; 5d
    1028010413    retn                                      ; c3
    10281 rtc_updating_:                               ; 0xf7025 LB 0x21
     10414rtc_updating_:                               ; 0xf7021 LB 0x21
    1028210415    push bp                                   ; 55
    1028310416    mov bp, sp                                ; 89 e5
     
    1028510418    mov dx, 061a8h                            ; ba a8 61
    1028610419    dec dx                                    ; 4a
    10287     je short 0703dh                           ; 74 0e
     10420    je short 07039h                           ; 74 0e
    1028810421    mov ax, strict word 0000ah                ; b8 0a 00
    10289     call 016ach                               ; e8 77 a6
     10422    call 016ach                               ; e8 7b a6
    1029010423    test AL, strict byte 080h                 ; a8 80
    10291     jne short 0702ch                          ; 75 f3
     10424    jne short 07028h                          ; 75 f3
    1029210425    xor ax, ax                                ; 31 c0
    10293     jmp short 07040h                          ; eb 03
     10426    jmp short 0703ch                          ; eb 03
    1029410427    mov ax, strict word 00001h                ; b8 01 00
    1029510428    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1029710430    pop bp                                    ; 5d
    1029810431    retn                                      ; c3
    10299 _int70_function:                             ; 0xf7046 LB 0xbf
     10432_int70_function:                             ; 0xf7042 LB 0xbf
    1030010433    push bp                                   ; 55
    1030110434    mov bp, sp                                ; 89 e5
     
    1030310436    push ax                                   ; 50
    1030410437    mov ax, strict word 0000bh                ; b8 0b 00
    10305     call 016ach                               ; e8 5b a6
     10438    call 016ach                               ; e8 5f a6
    1030610439    mov bl, al                                ; 88 c3
    1030710440    mov byte [bp-004h], al                    ; 88 46 fc
    1030810441    mov ax, strict word 0000ch                ; b8 0c 00
    10309     call 016ach                               ; e8 50 a6
     10442    call 016ach                               ; e8 54 a6
    1031010443    mov dl, al                                ; 88 c2
    1031110444    test bl, 060h                             ; f6 c3 60
    10312     jne short 07066h                          ; 75 03
    10313     jmp near 070ech                           ; e9 86 00
     10445    jne short 07062h                          ; 75 03
     10446    jmp near 070e8h                           ; e9 86 00
    1031410447    test AL, strict byte 020h                 ; a8 20
    10315     je short 0706eh                           ; 74 04
     10448    je short 0706ah                           ; 74 04
    1031610449    sti                                       ; fb
    1031710450    int 04ah                                  ; cd 4a
    1031810451    cli                                       ; fa
    1031910452    test dl, 040h                             ; f6 c2 40
    10320     je short 070d6h                           ; 74 63
     10453    je short 070d2h                           ; 74 63
    1032110454    mov dx, 000a0h                            ; ba a0 00
    1032210455    mov ax, strict word 00040h                ; b8 40 00
    10323     call 01650h                               ; e8 d4 a5
     10456    call 01650h                               ; e8 d8 a5
    1032410457    test al, al                               ; 84 c0
    10325     je short 070ech                           ; 74 6c
     10458    je short 070e8h                           ; 74 6c
    1032610459    mov dx, 0009ch                            ; ba 9c 00
    1032710460    mov ax, strict word 00040h                ; b8 40 00
    10328     call 01688h                               ; e8 ff a5
     10461    call 01688h                               ; e8 03 a6
    1032910462    test dx, dx                               ; 85 d2
    10330     jne short 070d8h                          ; 75 4b
     10463    jne short 070d4h                          ; 75 4b
    1033110464    cmp ax, 003d1h                            ; 3d d1 03
    10332     jnc short 070d8h                          ; 73 46
     10465    jnc short 070d4h                          ; 73 46
    1033310466    mov dx, 00098h                            ; ba 98 00
    1033410467    mov ax, strict word 00040h                ; b8 40 00
    10335     call 0166ch                               ; e8 d1 a5
     10468    call 0166ch                               ; e8 d5 a5
    1033610469    mov si, ax                                ; 89 c6
    1033710470    mov dx, 0009ah                            ; ba 9a 00
    1033810471    mov ax, strict word 00040h                ; b8 40 00
    10339     call 0166ch                               ; e8 c6 a5
     10472    call 0166ch                               ; e8 ca a5
    1034010473    mov cx, ax                                ; 89 c1
    1034110474    xor bx, bx                                ; 31 db
    1034210475    mov dx, 000a0h                            ; ba a0 00
    1034310476    mov ax, strict word 00040h                ; b8 40 00
    10344     call 0165eh                               ; e8 ab a5
     10477    call 0165eh                               ; e8 af a5
    1034510478    mov dl, byte [bp-004h]                    ; 8a 56 fc
    1034610479    and dl, 037h                              ; 80 e2 37
    1034710480    xor dh, dh                                ; 30 f6
    1034810481    mov ax, strict word 0000bh                ; b8 0b 00
    10349     call 016c7h                               ; e8 06 a6
     10482    call 016c7h                               ; e8 0a a6
    1035010483    mov dx, cx                                ; 89 ca
    1035110484    mov ax, si                                ; 89 f0
    10352     call 01650h                               ; e8 88 a5
     10485    call 01650h                               ; e8 8c a5
    1035310486    mov bl, al                                ; 88 c3
    1035410487    or bl, 080h                               ; 80 cb 80
     
    1035610489    mov dx, cx                                ; 89 ca
    1035710490    mov ax, si                                ; 89 f0
    10358     call 0165eh                               ; e8 88 a5
    10359     jmp short 070ech                          ; eb 14
     10491    call 0165eh                               ; e8 8c a5
     10492    jmp short 070e8h                          ; eb 14
    1036010493    mov bx, ax                                ; 89 c3
    1036110494    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1036410497    mov dx, 0009ch                            ; ba 9c 00
    1036510498    mov ax, strict word 00040h                ; b8 40 00
    10366     call 0169ah                               ; e8 ae a5
    10367     call 0e030h                               ; e8 41 6f
     10499    call 0169ah                               ; e8 b2 a5
     10500    call 0e030h                               ; e8 45 6f
    1036810501    lea sp, [bp-002h]                         ; 8d 66 fe
    1036910502    pop si                                    ; 5e
    1037010503    pop bp                                    ; 5d
    1037110504    retn                                      ; c3
    10372     sbb si, word [bx+di+042h]                 ; 1b 71 42
    10373     jno short 07161h                          ; 71 67
    10374     jno short 0709fh                          ; 71 a3
    10375     jno short 070f3h                          ; 71 f5
    10376     jno short 0712ch                          ; 71 2c
    10377     jc short 07175h                           ; 72 73
    10378     jc short 070d2h                           ; 72 ce
     10505    pop SS                                    ; 17
     10506    jno short 07132h                          ; 71 3e
     10507    jno short 07159h                          ; 71 63
     10508    jno short 07097h                          ; 71 9f
     10509    jno short 070ebh                          ; 71 f1
     10510    jno short 07124h                          ; 71 28
     10511    jc short 0716dh                           ; 72 6f
     10512    jc short 070cah                           ; 72 ca
    1037910513    db  072h
    10380 _int1a_function:                             ; 0xf7105 LB 0x1d9
     10514_int1a_function:                             ; 0xf7101 LB 0x1d9
    1038110515    push bp                                   ; 55
    1038210516    mov bp, sp                                ; 89 e5
     
    1038410518    mov al, byte [bp+013h]                    ; 8a 46 13
    1038510519    cmp AL, strict byte 007h                  ; 3c 07
    10386     jnbe short 0716eh                         ; 77 5e
     10520    jnbe short 0716ah                         ; 77 5e
    1038710521    mov bl, al                                ; 88 c3
    1038810522    xor bh, bh                                ; 30 ff
    1038910523    add bx, bx                                ; 01 db
    10390     jmp word [cs:bx+070f5h]                   ; 2e ff a7 f5 70
     10524    jmp word [cs:bx+070f1h]                   ; 2e ff a7 f1 70
    1039110525    cli                                       ; fa
    1039210526    mov bx, 0046eh                            ; bb 6e 04
     
    1040310537    mov byte [es:bx], 000h                    ; 26 c6 07 00
    1040410538    sti                                       ; fb
    10405     jmp short 0716eh                          ; eb 2c
     10539    jmp short 0716ah                          ; eb 2c
    1040610540    cli                                       ; fa
    1040710541    mov bx, 0046eh                            ; bb 6e 04
     
    1041710551    sti                                       ; fb
    1041810552    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10419     jmp short 0716eh                          ; eb 07
    10420     call 07025h                               ; e8 bb fe
     10553    jmp short 0716ah                          ; eb 07
     10554    call 07021h                               ; e8 bb fe
    1042110555    test ax, ax                               ; 85 c0
    10422     je short 07171h                           ; 74 03
    10423     jmp near 0719fh                           ; e9 2e 00
     10556    je short 0716dh                           ; 74 03
     10557    jmp near 0719bh                           ; e9 2e 00
    1042410558    xor ax, ax                                ; 31 c0
    10425     call 016ach                               ; e8 36 a5
     10559    call 016ach                               ; e8 3a a5
    1042610560    mov byte [bp+00fh], al                    ; 88 46 0f
    1042710561    mov ax, strict word 00002h                ; b8 02 00
    10428     call 016ach                               ; e8 2d a5
     10562    call 016ach                               ; e8 31 a5
    1042910563    mov byte [bp+010h], al                    ; 88 46 10
    1043010564    mov ax, strict word 00004h                ; b8 04 00
    10431     call 016ach                               ; e8 24 a5
     10565    call 016ach                               ; e8 28 a5
    1043210566    mov dl, al                                ; 88 c2
    1043310567    mov byte [bp+011h], al                    ; 88 46 11
    1043410568    mov ax, strict word 0000bh                ; b8 0b 00
    10435     call 016ach                               ; e8 19 a5
     10569    call 016ach                               ; e8 1d a5
    1043610570    and AL, strict byte 001h                  ; 24 01
    1043710571    mov byte [bp+00eh], al                    ; 88 46 0e
     
    1044110575    pop bp                                    ; 5d
    1044210576    retn                                      ; c3
    10443     call 07025h                               ; e8 7f fe
     10577    call 07021h                               ; e8 7f fe
    1044410578    test ax, ax                               ; 85 c0
    10445     je short 071adh                           ; 74 03
    10446     call 06ffdh                               ; e8 50 fe
     10579    je short 071a9h                           ; 74 03
     10580    call 06ff9h                               ; e8 50 fe
    1044710581    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1044810582    xor dh, dh                                ; 30 f6
    1044910583    xor ax, ax                                ; 31 c0
    10450     call 016c7h                               ; e8 10 a5
     10584    call 016c7h                               ; e8 14 a5
    1045110585    mov dl, byte [bp+010h]                    ; 8a 56 10
    1045210586    xor dh, dh                                ; 30 f6
    1045310587    mov ax, strict word 00002h                ; b8 02 00
    10454     call 016c7h                               ; e8 05 a5
     10588    call 016c7h                               ; e8 09 a5
    1045510589    mov dl, byte [bp+011h]                    ; 8a 56 11
    1045610590    xor dh, dh                                ; 30 f6
    1045710591    mov ax, strict word 00004h                ; b8 04 00
    10458     call 016c7h                               ; e8 fa a4
     10592    call 016c7h                               ; e8 fe a4
    1045910593    mov ax, strict word 0000bh                ; b8 0b 00
    10460     call 016ach                               ; e8 d9 a4
     10594    call 016ach                               ; e8 dd a4
    1046110595    mov bl, al                                ; 88 c3
    1046210596    and bl, 060h                              ; 80 e3 60
     
    1046810602    xor dh, dh                                ; 30 f6
    1046910603    mov ax, strict word 0000bh                ; b8 0b 00
    10470     call 016c7h                               ; e8 db a4
     10604    call 016c7h                               ; e8 df a4
    1047110605    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1047210606    mov byte [bp+012h], bl                    ; 88 5e 12
    10473     jmp short 0719fh                          ; eb aa
     10607    jmp short 0719bh                          ; eb aa
    1047410608    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10475     call 07025h                               ; e8 29 fe
     10609    call 07021h                               ; e8 29 fe
    1047610610    test ax, ax                               ; 85 c0
    10477     je short 07202h                           ; 74 02
    10478     jmp short 0719fh                          ; eb 9d
     10611    je short 071feh                           ; 74 02
     10612    jmp short 0719bh                          ; eb 9d
    1047910613    mov ax, strict word 00009h                ; b8 09 00
    10480     call 016ach                               ; e8 a4 a4
     10614    call 016ach                               ; e8 a8 a4
    1048110615    mov byte [bp+010h], al                    ; 88 46 10
    1048210616    mov ax, strict word 00008h                ; b8 08 00
    10483     call 016ach                               ; e8 9b a4
     10617    call 016ach                               ; e8 9f a4
    1048410618    mov byte [bp+00fh], al                    ; 88 46 0f
    1048510619    mov ax, strict word 00007h                ; b8 07 00
    10486     call 016ach                               ; e8 92 a4
     10620    call 016ach                               ; e8 96 a4
    1048710621    mov byte [bp+00eh], al                    ; 88 46 0e
    1048810622    mov ax, strict word 00032h                ; b8 32 00
    10489     call 016ach                               ; e8 89 a4
     10623    call 016ach                               ; e8 8d a4
    1049010624    mov byte [bp+011h], al                    ; 88 46 11
    1049110625    mov byte [bp+012h], al                    ; 88 46 12
    10492     jmp near 0719fh                           ; e9 73 ff
    10493     call 07025h                               ; e8 f6 fd
     10626    jmp near 0719bh                           ; e9 73 ff
     10627    call 07021h                               ; e8 f6 fd
    1049410628    test ax, ax                               ; 85 c0
    10495     je short 07239h                           ; 74 06
    10496     call 06ffdh                               ; e8 c7 fd
    10497     jmp near 0719fh                           ; e9 66 ff
     10629    je short 07235h                           ; 74 06
     10630    call 06ff9h                               ; e8 c7 fd
     10631    jmp near 0719bh                           ; e9 66 ff
    1049810632    mov dl, byte [bp+010h]                    ; 8a 56 10
    1049910633    xor dh, dh                                ; 30 f6
    1050010634    mov ax, strict word 00009h                ; b8 09 00
    10501     call 016c7h                               ; e8 83 a4
     10635    call 016c7h                               ; e8 87 a4
    1050210636    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1050310637    xor dh, dh                                ; 30 f6
    1050410638    mov ax, strict word 00008h                ; b8 08 00
    10505     call 016c7h                               ; e8 78 a4
     10639    call 016c7h                               ; e8 7c a4
    1050610640    mov dl, byte [bp+00eh]                    ; 8a 56 0e
    1050710641    xor dh, dh                                ; 30 f6
    1050810642    mov ax, strict word 00007h                ; b8 07 00
    10509     call 016c7h                               ; e8 6d a4
     10643    call 016c7h                               ; e8 71 a4
    1051010644    mov dl, byte [bp+011h]                    ; 8a 56 11
    1051110645    xor dh, dh                                ; 30 f6
    1051210646    mov ax, strict word 00032h                ; b8 32 00
    10513     call 016c7h                               ; e8 62 a4
     10647    call 016c7h                               ; e8 66 a4
    1051410648    mov ax, strict word 0000bh                ; b8 0b 00
    10515     call 016ach                               ; e8 41 a4
     10649    call 016ach                               ; e8 45 a4
    1051610650    mov bl, al                                ; 88 c3
    1051710651    and bl, 07fh                              ; 80 e3 7f
    10518     jmp near 071e2h                           ; e9 6f ff
     10652    jmp near 071deh                           ; e9 6f ff
    1051910653    mov ax, strict word 0000bh                ; b8 0b 00
    10520     call 016ach                               ; e8 33 a4
     10654    call 016ach                               ; e8 37 a4
    1052110655    mov bl, al                                ; 88 c3
    1052210656    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1052310657    test AL, strict byte 020h                 ; a8 20
    10524     je short 07287h                           ; 74 03
    10525     jmp near 0719fh                           ; e9 18 ff
    10526     call 07025h                               ; e8 9b fd
     10658    je short 07283h                           ; 74 03
     10659    jmp near 0719bh                           ; e9 18 ff
     10660    call 07021h                               ; e8 9b fd
    1052710661    test ax, ax                               ; 85 c0
    10528     je short 07291h                           ; 74 03
    10529     call 06ffdh                               ; e8 6c fd
     10662    je short 0728dh                           ; 74 03
     10663    call 06ff9h                               ; e8 6c fd
    1053010664    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1053110665    xor dh, dh                                ; 30 f6
    1053210666    mov ax, strict word 00001h                ; b8 01 00
    10533     call 016c7h                               ; e8 2b a4
     10667    call 016c7h                               ; e8 2f a4
    1053410668    mov dl, byte [bp+010h]                    ; 8a 56 10
    1053510669    xor dh, dh                                ; 30 f6
    1053610670    mov ax, strict word 00003h                ; b8 03 00
    10537     call 016c7h                               ; e8 20 a4
     10671    call 016c7h                               ; e8 24 a4
    1053810672    mov dl, byte [bp+011h]                    ; 8a 56 11
    1053910673    xor dh, dh                                ; 30 f6
    1054010674    mov ax, strict word 00005h                ; b8 05 00
    10541     call 016c7h                               ; e8 15 a4
     10675    call 016c7h                               ; e8 19 a4
    1054210676    mov dx, 000a1h                            ; ba a1 00
    1054310677    in AL, DX                                 ; ec
     
    1055110685    xor dh, dh                                ; 30 f6
    1055210686    mov ax, strict word 0000bh                ; b8 0b 00
    10553     call 016c7h                               ; e8 fc a3
    10554     jmp near 0719fh                           ; e9 d1 fe
     10687    call 016c7h                               ; e8 00 a4
     10688    jmp near 0719bh                           ; e9 d1 fe
    1055510689    mov ax, strict word 0000bh                ; b8 0b 00
    10556     call 016ach                               ; e8 d8 a3
     10690    call 016ach                               ; e8 dc a3
    1055710691    mov bl, al                                ; 88 c3
    1055810692    mov dl, al                                ; 88 c2
    1055910693    and dl, 057h                              ; 80 e2 57
    10560     jmp near 071e4h                           ; e9 06 ff
    10561 send_to_mouse_ctrl_:                         ; 0xf72de LB 0x34
     10694    jmp near 071e0h                           ; e9 06 ff
     10695send_to_mouse_ctrl_:                         ; 0xf72da LB 0x34
    1056210696    push bp                                   ; 55
    1056310697    mov bp, sp                                ; 89 e5
     
    1057010704    ; sub ah, ah                                ; 2a e4
    1057110705    test AL, strict byte 002h                 ; a8 02
    10572     je short 072fdh                           ; 74 0e
     10706    je short 072f9h                           ; 74 0e
    1057310707    push 008eeh                               ; 68 ee 08
    1057410708    push 01168h                               ; 68 68 11
    1057510709    push strict byte 00007h                   ; 6a 07
    10576     call 01966h                               ; e8 6c a6
     10710    call 01966h                               ; e8 70 a6
    1057710711    add sp, strict byte 00006h                ; 83 c4 06
    1057810712    mov AL, strict byte 0d4h                  ; b0 d4
     
    1058810722    pop bp                                    ; 5d
    1058910723    retn                                      ; c3
    10590 get_mouse_data_:                             ; 0xf7312 LB 0x5d
     10724get_mouse_data_:                             ; 0xf730e LB 0x5d
    1059110725    push bp                                   ; 55
    1059210726    mov bp, sp                                ; 89 e5
     
    1060310737    and ax, strict word 00021h                ; 25 21 00
    1060410738    cmp ax, strict word 00021h                ; 3d 21 00
    10605     je short 07355h                           ; 74 28
     10739    je short 07351h                           ; 74 28
    1060610740    test cx, cx                               ; 85 c9
    10607     je short 07355h                           ; 74 24
     10741    je short 07351h                           ; 74 24
    1060810742    mov dx, strict word 00061h                ; ba 61 00
    1060910743    in AL, DX                                 ; ec
     
    1062210756    xor ah, ah                                ; 30 e4
    1062310757    cmp dx, ax                                ; 39 c2
    10624     je short 0733ch                           ; 74 ea
     10758    je short 07338h                           ; 74 ea
    1062510759    dec cx                                    ; 49
    10626     jmp short 0731fh                          ; eb ca
     10760    jmp short 0731bh                          ; eb ca
    1062710761    test cx, cx                               ; 85 c9
    10628     jne short 0735dh                          ; 75 04
     10762    jne short 07359h                          ; 75 04
    1062910763    mov AL, strict byte 001h                  ; b0 01
    10630     jmp short 07368h                          ; eb 0b
     10764    jmp short 07364h                          ; eb 0b
    1063110765    mov dx, strict word 00060h                ; ba 60 00
    1063210766    in AL, DX                                 ; ec
     
    1064010774    pop bp                                    ; 5d
    1064110775    retn                                      ; c3
    10642 set_kbd_command_byte_:                       ; 0xf736f LB 0x32
     10776set_kbd_command_byte_:                       ; 0xf736b LB 0x32
    1064310777    push bp                                   ; 55
    1064410778    mov bp, sp                                ; 89 e5
     
    1065110785    ; sub ah, ah                                ; 2a e4
    1065210786    test AL, strict byte 002h                 ; a8 02
    10653     je short 0738eh                           ; 74 0e
     10787    je short 0738ah                           ; 74 0e
    1065410788    push 008f8h                               ; 68 f8 08
    1065510789    push 01168h                               ; 68 68 11
    1065610790    push strict byte 00007h                   ; 6a 07
    10657     call 01966h                               ; e8 db a5
     10791    call 01966h                               ; e8 df a5
    1065810792    add sp, strict byte 00006h                ; 83 c4 06
    1065910793    mov AL, strict byte 060h                  ; b0 60
     
    1066810802    pop bp                                    ; 5d
    1066910803    retn                                      ; c3
    10670 _int74_function:                             ; 0xf73a1 LB 0xd2
     10804_int74_function:                             ; 0xf739d LB 0xd2
    1067110805    push bp                                   ; 55
    1067210806    mov bp, sp                                ; 89 e5
     
    1067410808    mov dx, strict word 0000eh                ; ba 0e 00
    1067510809    mov ax, strict word 00040h                ; b8 40 00
    10676     call 0166ch                               ; e8 bc a2
     10810    call 0166ch                               ; e8 c0 a2
    1067710811    mov cx, ax                                ; 89 c1
    1067810812    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1068310817    and AL, strict byte 021h                  ; 24 21
    1068410818    cmp AL, strict byte 021h                  ; 3c 21
    10685     jne short 073e5h                          ; 75 22
     10819    jne short 073e1h                          ; 75 22
    1068610820    mov dx, strict word 00060h                ; ba 60 00
    1068710821    in AL, DX                                 ; ec
     
    1069110825    mov dx, strict word 00026h                ; ba 26 00
    1069210826    mov ax, cx                                ; 89 c8
    10693     call 01650h                               ; e8 7d a2
     10827    call 01650h                               ; e8 81 a2
    1069410828    mov byte [bp-002h], al                    ; 88 46 fe
    1069510829    mov dx, strict word 00027h                ; ba 27 00
    1069610830    mov ax, cx                                ; 89 c8
    10697     call 01650h                               ; e8 72 a2
     10831    call 01650h                               ; e8 76 a2
    1069810832    mov byte [bp-006h], al                    ; 88 46 fa
    1069910833    test AL, strict byte 080h                 ; a8 80
    10700     jne short 073e8h                          ; 75 03
    10701     jmp near 0745fh                           ; e9 77 00
     10834    jne short 073e4h                          ; 75 03
     10835    jmp near 0745bh                           ; e9 77 00
    1070210836    mov al, byte [bp-006h]                    ; 8a 46 fa
    1070310837    and AL, strict byte 007h                  ; 24 07
     
    1071310847    add dx, strict byte 00028h                ; 83 c2 28
    1071410848    mov ax, cx                                ; 89 c8
    10715     call 0165eh                               ; e8 53 a2
     10849    call 0165eh                               ; e8 57 a2
    1071610850    mov al, byte [bp-008h]                    ; 8a 46 f8
    1071710851    cmp al, byte [bp-004h]                    ; 3a 46 fc
    10718     jc short 0744fh                           ; 72 3c
     10852    jc short 0744bh                           ; 72 3c
    1071910853    mov dx, strict word 00028h                ; ba 28 00
    1072010854    mov ax, cx                                ; 89 c8
    10721     call 01650h                               ; e8 35 a2
     10855    call 01650h                               ; e8 39 a2
    1072210856    xor ah, ah                                ; 30 e4
    1072310857    mov word [bp+00ch], ax                    ; 89 46 0c
    1072410858    mov dx, strict word 00029h                ; ba 29 00
    1072510859    mov ax, cx                                ; 89 c8
    10726     call 01650h                               ; e8 28 a2
     10860    call 01650h                               ; e8 2c a2
    1072710861    xor ah, ah                                ; 30 e4
    1072810862    mov word [bp+00ah], ax                    ; 89 46 0a
    1072910863    mov dx, strict word 0002ah                ; ba 2a 00
    1073010864    mov ax, cx                                ; 89 c8
    10731     call 01650h                               ; e8 1b a2
     10865    call 01650h                               ; e8 1f a2
    1073210866    xor ah, ah                                ; 30 e4
    1073310867    mov word [bp+008h], ax                    ; 89 46 08
     
    1073610870    mov byte [bp-002h], ah                    ; 88 66 fe
    1073710871    test byte [bp-006h], 080h                 ; f6 46 fa 80
    10738     je short 07452h                           ; 74 0a
     10872    je short 0744eh                           ; 74 0a
    1073910873    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    10740     jmp short 07452h                          ; eb 03
     10874    jmp short 0744eh                          ; eb 03
    1074110875    inc byte [bp-002h]                        ; fe 46 fe
    1074210876    mov bl, byte [bp-002h]                    ; 8a 5e fe
     
    1074410878    mov dx, strict word 00026h                ; ba 26 00
    1074510879    mov ax, cx                                ; 89 c8
    10746     call 0165eh                               ; e8 ff a1
     10880    call 0165eh                               ; e8 03 a2
    1074710881    mov sp, bp                                ; 89 ec
    1074810882    pop bp                                    ; 5d
    1074910883    retn                                      ; c3
    10750     mov DH, strict byte 074h                  ; b6 74
    10751     xor dh, byte [di-051h]                    ; 32 75 af
    10752     jne short 074aeh                          ; 75 44
    10753     jbe short 0741ch                          ; 76 b0
    10754     jbe short 0746bh                          ; 76 fd
    10755     je short 07448h                           ; 74 d8
    10756     jbe short 0740fh                          ; 76 9d
     10884    mov DL, strict byte 074h                  ; b2 74
     10885    db  02eh, 075h, 0abh
     10886    ; cs jne short 0740fh                       ; 2e 75 ab
     10887    jne short 074a6h                          ; 75 40
     10888    jbe short 07414h                          ; 76 ac
     10889    jbe short 07463h                          ; 76 f9
     10890    je short 07440h                           ; 74 d4
     10891    jbe short 07407h                          ; 76 99
    1075710892    db  077h
    10758 _int15_function_mouse:                       ; 0xf7473 LB 0x38d
     10893_int15_function_mouse:                       ; 0xf746f LB 0x38d
    1075910894    push bp                                   ; 55
    1076010895    mov bp, sp                                ; 89 e5
     
    1076310898    mov dx, strict word 0000eh                ; ba 0e 00
    1076410899    mov ax, strict word 00040h                ; b8 40 00
    10765     call 0166ch                               ; e8 e9 a1
     10900    call 0166ch                               ; e8 ed a1
    1076610901    mov cx, ax                                ; 89 c1
    1076710902    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    10768     jbe short 07496h                          ; 76 0b
     10903    jbe short 07492h                          ; 76 0b
    1076910904    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1077010905    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10771     jmp near 077fah                           ; e9 64 03
     10906    jmp near 077f6h                           ; e9 64 03
    1077210907    mov ax, strict word 00065h                ; b8 65 00
    10773     call 0736fh                               ; e8 d3 fe
     10908    call 0736bh                               ; e8 d3 fe
    1077410909    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1077510910    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1077610911    mov al, byte [bp+012h]                    ; 8a 46 12
    1077710912    cmp AL, strict byte 007h                  ; 3c 07
    10778     jnbe short 0750bh                         ; 77 60
     10913    jnbe short 07507h                         ; 77 60
    1077910914    xor ah, ah                                ; 30 e4
    1078010915    mov si, ax                                ; 89 c6
    1078110916    add si, ax                                ; 01 c6
    10782     jmp word [cs:si+07463h]                   ; 2e ff a4 63 74
     10917    jmp word [cs:si+0745fh]                   ; 2e ff a4 5f 74
    1078310918    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    10784     jnbe short 0750eh                         ; 77 52
     10919    jnbe short 0750ah                         ; 77 52
    1078510920    mov dx, strict word 00027h                ; ba 27 00
    1078610921    mov ax, cx                                ; 89 c8
    10787     call 01650h                               ; e8 8c a1
     10922    call 01650h                               ; e8 90 a1
    1078810923    test AL, strict byte 080h                 ; a8 80
    10789     jne short 074d3h                          ; 75 0b
     10924    jne short 074cfh                          ; 75 0b
    1079010925    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1079110926    mov byte [bp+013h], 005h                  ; c6 46 13 05
    10792     jmp near 077f4h                           ; e9 21 03
     10927    jmp near 077f0h                           ; e9 21 03
    1079310928    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    10794     jne short 074ddh                          ; 75 04
     10929    jne short 074d9h                          ; 75 04
    1079510930    mov AL, strict byte 0f5h                  ; b0 f5
    10796     jmp short 074dfh                          ; eb 02
     10931    jmp short 074dbh                          ; eb 02
    1079710932    mov AL, strict byte 0f4h                  ; b0 f4
    1079810933    xor ah, ah                                ; 30 e4
    10799     call 072deh                               ; e8 fa fd
     10934    call 072dah                               ; e8 fa fd
    1080010935    test al, al                               ; 84 c0
    10801     jne short 07511h                          ; 75 29
     10936    jne short 0750dh                          ; 75 29
    1080210937    mov dx, ss                                ; 8c d2
    1080310938    lea ax, [bp-008h]                         ; 8d 46 f8
    10804     call 07312h                               ; e8 22 fe
     10939    call 0730eh                               ; e8 22 fe
    1080510940    test al, al                               ; 84 c0
    10806     je short 074fah                           ; 74 06
     10941    je short 074f6h                           ; 74 06
    1080710942    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10808     jne short 07511h                          ; 75 17
    10809     jmp near 077f4h                           ; e9 f7 02
     10943    jne short 0750dh                          ; 75 17
     10944    jmp near 077f0h                           ; e9 f7 02
    1081010945    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1081110946    cmp AL, strict byte 001h                  ; 3c 01
    10812     jc short 07508h                           ; 72 04
     10947    jc short 07504h                           ; 72 04
    1081310948    cmp AL, strict byte 008h                  ; 3c 08
    10814     jbe short 07514h                          ; 76 0c
    10815     jmp near 076a6h                           ; e9 9b 01
    10816     jmp near 077e1h                           ; e9 d3 02
    10817     jmp near 077ech                           ; e9 db 02
    10818     jmp near 07778h                           ; e9 64 02
     10949    jbe short 07510h                          ; 76 0c
     10950    jmp near 076a2h                           ; e9 9b 01
     10951    jmp near 077ddh                           ; e9 d3 02
     10952    jmp near 077e8h                           ; e9 db 02
     10953    jmp near 07774h                           ; e9 64 02
    1081910954    mov dx, strict word 00027h                ; ba 27 00
    1082010955    mov ax, cx                                ; 89 c8
    10821     call 01650h                               ; e8 34 a1
     10956    call 01650h                               ; e8 38 a1
    1082210957    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1082310958    db  0feh, 0cch
     
    1082910964    mov dx, strict word 00027h                ; ba 27 00
    1083010965    mov ax, cx                                ; 89 c8
    10831     call 0165eh                               ; e8 2c a1
     10966    call 0165eh                               ; e8 30 a1
    1083210967    mov dx, strict word 00026h                ; ba 26 00
    1083310968    mov ax, cx                                ; 89 c8
    10834     call 01650h                               ; e8 16 a1
     10969    call 01650h                               ; e8 1a a1
    1083510970    mov bl, al                                ; 88 c3
    1083610971    and bl, 0f8h                              ; 80 e3 f8
     
    1083810973    mov dx, strict word 00026h                ; ba 26 00
    1083910974    mov ax, cx                                ; 89 c8
    10840     call 0165eh                               ; e8 15 a1
     10975    call 0165eh                               ; e8 19 a1
    1084110976    mov ax, 000ffh                            ; b8 ff 00
    10842     call 072deh                               ; e8 8f fd
     10977    call 072dah                               ; e8 8f fd
    1084310978    test al, al                               ; 84 c0
    10844     jne short 07511h                          ; 75 be
     10979    jne short 0750dh                          ; 75 be
    1084510980    mov dx, ss                                ; 8c d2
    1084610981    lea ax, [bp-004h]                         ; 8d 46 fc
    10847     call 07312h                               ; e8 b7 fd
     10982    call 0730eh                               ; e8 b7 fd
    1084810983    mov cl, al                                ; 88 c1
    1084910984    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
    10850     jne short 0756dh                          ; 75 0a
     10985    jne short 07569h                          ; 75 0a
    1085110986    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1085210987    mov byte [bp+013h], 004h                  ; c6 46 13 04
    10853     jmp short 074fah                          ; eb 8d
     10988    jmp short 074f6h                          ; eb 8d
    1085410989    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    10855     je short 07584h                           ; 74 11
     10990    je short 07580h                           ; 74 11
    1085610991    mov al, byte [bp-004h]                    ; 8a 46 fc
    1085710992    xor ah, ah                                ; 30 e4
     
    1085910994    push 00903h                               ; 68 03 09
    1086010995    push strict byte 00007h                   ; 6a 07
    10861     call 01966h                               ; e8 e5 a3
     10996    call 01966h                               ; e8 e9 a3
    1086210997    add sp, strict byte 00006h                ; 83 c4 06
    1086310998    test cl, cl                               ; 84 c9
    10864     jne short 07511h                          ; 75 89
     10999    jne short 0750dh                          ; 75 89
    1086511000    mov dx, ss                                ; 8c d2
    1086611001    lea ax, [bp-008h]                         ; 8d 46 f8
    10867     call 07312h                               ; e8 82 fd
     11002    call 0730eh                               ; e8 82 fd
    1086811003    test al, al                               ; 84 c0
    10869     jne short 075eah                          ; 75 56
     11004    jne short 075e6h                          ; 75 56
    1087011005    mov dx, ss                                ; 8c d2
    1087111006    lea ax, [bp-006h]                         ; 8d 46 fa
    10872     call 07312h                               ; e8 76 fd
     11007    call 0730eh                               ; e8 76 fd
    1087311008    test al, al                               ; 84 c0
    10874     jne short 075eah                          ; 75 4a
     11009    jne short 075e6h                          ; 75 4a
    1087511010    mov al, byte [bp-008h]                    ; 8a 46 f8
    1087611011    mov byte [bp+00ch], al                    ; 88 46 0c
    1087711012    mov al, byte [bp-006h]                    ; 8a 46 fa
    1087811013    mov byte [bp+00dh], al                    ; 88 46 0d
    10879     jmp near 077f4h                           ; e9 45 02
     11014    jmp near 077f0h                           ; e9 45 02
    1088011015    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1088111016    cmp AL, strict byte 003h                  ; 3c 03
    10882     jc short 075c6h                           ; 72 10
    10883     jbe short 075e4h                          ; 76 2c
     11017    jc short 075c2h                           ; 72 10
     11018    jbe short 075e0h                          ; 76 2c
    1088411019    cmp AL, strict byte 006h                  ; 3c 06
    10885     je short 075f9h                           ; 74 3d
     11020    je short 075f5h                           ; 74 3d
    1088611021    cmp AL, strict byte 005h                  ; 3c 05
    10887     je short 075f3h                           ; 74 33
     11022    je short 075efh                           ; 74 33
    1088811023    cmp AL, strict byte 004h                  ; 3c 04
    10889     je short 075edh                           ; 74 29
    10890     jmp short 075ffh                          ; eb 39
     11024    je short 075e9h                           ; 74 29
     11025    jmp short 075fbh                          ; eb 39
    1089111026    cmp AL, strict byte 002h                  ; 3c 02
    10892     je short 075deh                           ; 74 14
     11027    je short 075dah                           ; 74 14
    1089311028    cmp AL, strict byte 001h                  ; 3c 01
    10894     je short 075d8h                           ; 74 0a
     11029    je short 075d4h                           ; 74 0a
    1089511030    test al, al                               ; 84 c0
    10896     jne short 075ffh                          ; 75 2d
     11031    jne short 075fbh                          ; 75 2d
    1089711032    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
    10898     jmp short 07603h                          ; eb 2b
     11033    jmp short 075ffh                          ; eb 2b
    1089911034    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    10900     jmp short 07603h                          ; eb 25
     11035    jmp short 075ffh                          ; eb 25
    1090111036    mov byte [bp-008h], 028h                  ; c6 46 f8 28
    10902     jmp short 07603h                          ; eb 1f
     11037    jmp short 075ffh                          ; eb 1f
    1090311038    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
    10904     jmp short 07603h                          ; eb 19
    10905     jmp near 07778h                           ; e9 8b 01
     11039    jmp short 075ffh                          ; eb 19
     11040    jmp near 07774h                           ; e9 8b 01
    1090611041    mov byte [bp-008h], 050h                  ; c6 46 f8 50
    10907     jmp short 07603h                          ; eb 10
     11042    jmp short 075ffh                          ; eb 10
    1090811043    mov byte [bp-008h], 064h                  ; c6 46 f8 64
    10909     jmp short 07603h                          ; eb 0a
     11044    jmp short 075ffh                          ; eb 0a
    1091011045    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
    10911     jmp short 07603h                          ; eb 04
     11046    jmp short 075ffh                          ; eb 04
    1091211047    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1091311048    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    10914     jbe short 07639h                          ; 76 30
     11049    jbe short 07635h                          ; 76 30
    1091511050    mov ax, 000f3h                            ; b8 f3 00
    10916     call 072deh                               ; e8 cf fc
     11051    call 072dah                               ; e8 cf fc
    1091711052    test al, al                               ; 84 c0
    10918     jne short 0762eh                          ; 75 1b
     11053    jne short 0762ah                          ; 75 1b
    1091911054    mov dx, ss                                ; 8c d2
    1092011055    lea ax, [bp-006h]                         ; 8d 46 fa
    10921     call 07312h                               ; e8 f7 fc
     11056    call 0730eh                               ; e8 f7 fc
    1092211057    mov al, byte [bp-008h]                    ; 8a 46 f8
    1092311058    xor ah, ah                                ; 30 e4
    10924     call 072deh                               ; e8 bb fc
     11059    call 072dah                               ; e8 bb fc
    1092511060    mov dx, ss                                ; 8c d2
    1092611061    lea ax, [bp-006h]                         ; 8d 46 fa
    10927     call 07312h                               ; e8 e7 fc
    10928     jmp near 077f4h                           ; e9 c6 01
     11062    call 0730eh                               ; e8 e7 fc
     11063    jmp near 077f0h                           ; e9 c6 01
    1092911064    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1093011065    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10931     jmp near 077f4h                           ; e9 bb 01
     11066    jmp near 077f0h                           ; e9 bb 01
    1093211067    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1093311068    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10934     jmp near 077f4h                           ; e9 b0 01
     11069    jmp near 077f0h                           ; e9 b0 01
    1093511070    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    10936     jnc short 076a6h                          ; 73 5c
     11071    jnc short 076a2h                          ; 73 5c
    1093711072    mov ax, 000e8h                            ; b8 e8 00
    10938     call 072deh                               ; e8 8e fc
     11073    call 072dah                               ; e8 8e fc
    1093911074    test al, al                               ; 84 c0
    10940     jne short 0769ch                          ; 75 48
     11075    jne short 07698h                          ; 75 48
    1094111076    mov dx, ss                                ; 8c d2
    1094211077    lea ax, [bp-008h]                         ; 8d 46 f8
    10943     call 07312h                               ; e8 b6 fc
     11078    call 0730eh                               ; e8 b6 fc
    1094411079    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10945     je short 07673h                           ; 74 11
     11080    je short 0766fh                           ; 74 11
    1094611081    mov al, byte [bp-008h]                    ; 8a 46 f8
    1094711082    xor ah, ah                                ; 30 e4
     
    1094911084    push 0092eh                               ; 68 2e 09
    1095011085    push strict byte 00007h                   ; 6a 07
    10951     call 01966h                               ; e8 f6 a2
     11086    call 01966h                               ; e8 fa a2
    1095211087    add sp, strict byte 00006h                ; 83 c4 06
    1095311088    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1095411089    xor ah, ah                                ; 30 e4
    10955     call 072deh                               ; e8 63 fc
     11090    call 072dah                               ; e8 63 fc
    1095611091    mov dx, ss                                ; 8c d2
    1095711092    lea ax, [bp-008h]                         ; 8d 46 f8
    10958     call 07312h                               ; e8 8f fc
     11093    call 0730eh                               ; e8 8f fc
    1095911094    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10960     je short 076d5h                           ; 74 4c
     11095    je short 076d1h                           ; 74 4c
    1096111096    mov al, byte [bp-008h]                    ; 8a 46 f8
    1096211097    xor ah, ah                                ; 30 e4
     
    1096411099    push 0092eh                               ; 68 2e 09
    1096511100    push strict byte 00007h                   ; 6a 07
    10966     call 01966h                               ; e8 cf a2
     11101    call 01966h                               ; e8 d3 a2
    1096711102    add sp, strict byte 00006h                ; 83 c4 06
    10968     jmp short 076d5h                          ; eb 39
     11103    jmp short 076d1h                          ; eb 39
    1096911104    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1097011105    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10971     jmp short 076d5h                          ; eb 2f
     11106    jmp short 076d1h                          ; eb 2f
    1097211107    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1097311108    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10974     jmp short 076d5h                          ; eb 25
     11109    jmp short 076d1h                          ; eb 25
    1097511110    mov ax, 000f2h                            ; b8 f2 00
    10976     call 072deh                               ; e8 28 fc
     11111    call 072dah                               ; e8 28 fc
    1097711112    test al, al                               ; 84 c0
    10978     jne short 076cdh                          ; 75 13
     11113    jne short 076c9h                          ; 75 13
    1097911114    mov dx, ss                                ; 8c d2
    1098011115    lea ax, [bp-008h]                         ; 8d 46 f8
    10981     call 07312h                               ; e8 50 fc
     11116    call 0730eh                               ; e8 50 fc
    1098211117    mov dx, ss                                ; 8c d2
    1098311118    lea ax, [bp-006h]                         ; 8d 46 fa
    10984     call 07312h                               ; e8 48 fc
    10985     jmp near 075a6h                           ; e9 d9 fe
     11119    call 0730eh                               ; e8 48 fc
     11120    jmp near 075a2h                           ; e9 d9 fe
    1098611121    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1098711122    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10988     jmp near 077f4h                           ; e9 1c 01
     11123    jmp near 077f0h                           ; e9 1c 01
    1098911124    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1099011125    test al, al                               ; 84 c0
    10991     jbe short 076e6h                          ; 76 07
     11126    jbe short 076e2h                          ; 76 07
    1099211127    cmp AL, strict byte 002h                  ; 3c 02
    10993     jbe short 0774dh                          ; 76 6a
    10994     jmp near 07782h                           ; e9 9c 00
     11128    jbe short 07749h                          ; 76 6a
     11129    jmp near 0777eh                           ; e9 9c 00
    1099511130    mov ax, 000e9h                            ; b8 e9 00
    10996     call 072deh                               ; e8 f2 fb
     11131    call 072dah                               ; e8 f2 fb
    1099711132    test al, al                               ; 84 c0
    10998     jne short 07756h                          ; 75 66
     11133    jne short 07752h                          ; 75 66
    1099911134    mov dx, ss                                ; 8c d2
    1100011135    lea ax, [bp-008h]                         ; 8d 46 f8
    11001     call 07312h                               ; e8 1a fc
     11136    call 0730eh                               ; e8 1a fc
    1100211137    mov cl, al                                ; 88 c1
    1100311138    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11004     je short 07711h                           ; 74 11
     11139    je short 0770dh                           ; 74 11
    1100511140    mov al, byte [bp-008h]                    ; 8a 46 f8
    1100611141    xor ah, ah                                ; 30 e4
     
    1100811143    push 0092eh                               ; 68 2e 09
    1100911144    push strict byte 00007h                   ; 6a 07
    11010     call 01966h                               ; e8 58 a2
     11145    call 01966h                               ; e8 5c a2
    1101111146    add sp, strict byte 00006h                ; 83 c4 06
    1101211147    test cl, cl                               ; 84 c9
    11013     jne short 07778h                          ; 75 63
     11148    jne short 07774h                          ; 75 63
    1101411149    mov dx, ss                                ; 8c d2
    1101511150    lea ax, [bp-008h]                         ; 8d 46 f8
    11016     call 07312h                               ; e8 f5 fb
     11151    call 0730eh                               ; e8 f5 fb
    1101711152    test al, al                               ; 84 c0
    11018     jne short 07778h                          ; 75 57
     11153    jne short 07774h                          ; 75 57
    1101911154    mov dx, ss                                ; 8c d2
    1102011155    lea ax, [bp-006h]                         ; 8d 46 fa
    11021     call 07312h                               ; e8 e9 fb
     11156    call 0730eh                               ; e8 e9 fb
    1102211157    test al, al                               ; 84 c0
    11023     jne short 07778h                          ; 75 4b
     11158    jne short 07774h                          ; 75 4b
    1102411159    mov dx, ss                                ; 8c d2
    1102511160    lea ax, [bp-004h]                         ; 8d 46 fc
    11026     call 07312h                               ; e8 dd fb
     11161    call 0730eh                               ; e8 dd fb
    1102711162    test al, al                               ; 84 c0
    11028     jne short 07778h                          ; 75 3f
     11163    jne short 07774h                          ; 75 3f
    1102911164    mov al, byte [bp-008h]                    ; 8a 46 f8
    1103011165    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1103311168    mov al, byte [bp-004h]                    ; 8a 46 fc
    1103411169    mov byte [bp+00eh], al                    ; 88 46 0e
    11035     jmp short 076d5h                          ; eb 88
     11170    jmp short 076d1h                          ; eb 88
    1103611171    cmp AL, strict byte 001h                  ; 3c 01
    11037     jne short 07758h                          ; 75 07
     11172    jne short 07754h                          ; 75 07
    1103811173    mov ax, 000e6h                            ; b8 e6 00
    11039     jmp short 0775bh                          ; eb 05
    11040     jmp short 07778h                          ; eb 20
     11174    jmp short 07757h                          ; eb 05
     11175    jmp short 07774h                          ; eb 20
    1104111176    mov ax, 000e7h                            ; b8 e7 00
    11042     call 072deh                               ; e8 80 fb
     11177    call 072dah                               ; e8 80 fb
    1104311178    mov cl, al                                ; 88 c1
    1104411179    test cl, cl                               ; 84 c9
    11045     jne short 07774h                          ; 75 10
     11180    jne short 07770h                          ; 75 10
    1104611181    mov dx, ss                                ; 8c d2
    1104711182    lea ax, [bp-008h]                         ; 8d 46 f8
    11048     call 07312h                               ; e8 a6 fb
     11183    call 0730eh                               ; e8 a6 fb
    1104911184    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11050     je short 07774h                           ; 74 02
     11185    je short 07770h                           ; 74 02
    1105111186    mov CL, strict byte 001h                  ; b1 01
    1105211187    test cl, cl                               ; 84 c9
    11053     je short 077dfh                           ; 74 67
     11188    je short 077dbh                           ; 74 67
    1105411189    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1105511190    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11056     jmp short 077dfh                          ; eb 5d
     11191    jmp short 077dbh                          ; eb 5d
    1105711192    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1105811193    xor ah, ah                                ; 30 e4
     
    1106011195    push 0095ah                               ; 68 5a 09
    1106111196    push strict byte 00007h                   ; 6a 07
    11062     call 01966h                               ; e8 d6 a1
     11197    call 01966h                               ; e8 da a1
    1106311198    add sp, strict byte 00006h                ; 83 c4 06
    1106411199    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1106511200    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11066     jmp short 077f4h                          ; eb 57
     11201    jmp short 077f0h                          ; eb 57
    1106711202    mov si, word [bp+00ch]                    ; 8b 76 0c
    1106811203    mov bx, si                                ; 89 f3
    1106911204    mov dx, strict word 00022h                ; ba 22 00
    1107011205    mov ax, cx                                ; 89 c8
    11071     call 0167ah                               ; e8 d0 9e
     11206    call 0167ah                               ; e8 d4 9e
    1107211207    mov bx, word [bp+014h]                    ; 8b 5e 14
    1107311208    mov dx, strict word 00024h                ; ba 24 00
    1107411209    mov ax, cx                                ; 89 c8
    11075     call 0167ah                               ; e8 c5 9e
     11210    call 0167ah                               ; e8 c9 9e
    1107611211    mov dx, strict word 00027h                ; ba 27 00
    1107711212    mov ax, cx                                ; 89 c8
    11078     call 01650h                               ; e8 93 9e
     11213    call 01650h                               ; e8 97 9e
    1107911214    mov ah, al                                ; 88 c4
    1108011215    test si, si                               ; 85 f6
    11081     jne short 077d1h                          ; 75 0e
     11216    jne short 077cdh                          ; 75 0e
    1108211217    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    11083     jne short 077d1h                          ; 75 08
     11218    jne short 077cdh                          ; 75 08
    1108411219    test AL, strict byte 080h                 ; a8 80
    11085     je short 077d3h                           ; 74 06
     11220    je short 077cfh                           ; 74 06
    1108611221    and AL, strict byte 07fh                  ; 24 7f
    11087     jmp short 077d3h                          ; eb 02
     11222    jmp short 077cfh                          ; eb 02
    1108811223    or AL, strict byte 080h                   ; 0c 80
    1108911224    mov bl, al                                ; 88 c3
     
    1109111226    mov dx, strict word 00027h                ; ba 27 00
    1109211227    mov ax, cx                                ; 89 c8
    11093     call 0165eh                               ; e8 7f 9e
    11094     jmp short 077f4h                          ; eb 13
     11228    call 0165eh                               ; e8 83 9e
     11229    jmp short 077f0h                          ; eb 13
    1109511230    push 00974h                               ; 68 74 09
    1109611231    push strict byte 00007h                   ; 6a 07
    11097     call 01966h                               ; e8 7d a1
     11232    call 01966h                               ; e8 81 a1
    1109811233    add sp, strict byte 00004h                ; 83 c4 04
    1109911234    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1110011235    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1110111236    mov ax, strict word 00047h                ; b8 47 00
    11102     call 0736fh                               ; e8 75 fb
     11237    call 0736bh                               ; e8 75 fb
    1110311238    lea sp, [bp-002h]                         ; 8d 66 fe
    1110411239    pop si                                    ; 5e
    1110511240    pop bp                                    ; 5d
    1110611241    retn                                      ; c3
    11107 _int17_function:                             ; 0xf7800 LB 0xaf
     11242_int17_function:                             ; 0xf77fc LB 0xaf
    1110811243    push bp                                   ; 55
    1110911244    mov bp, sp                                ; 89 e5
     
    1111511250    add dx, strict byte 00008h                ; 83 c2 08
    1111611251    mov ax, strict word 00040h                ; b8 40 00
    11117     call 0166ch                               ; e8 58 9e
     11252    call 0166ch                               ; e8 5c 9e
    1111811253    mov bx, ax                                ; 89 c3
    1111911254    mov si, ax                                ; 89 c6
    1112011255    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    11121     jnc short 0782ah                          ; 73 0c
     11256    jnc short 07826h                          ; 73 0c
    1112211257    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1112311258    cmp ax, strict word 00003h                ; 3d 03 00
    11124     jnc short 0782ah                          ; 73 04
     11259    jnc short 07826h                          ; 73 04
    1112511260    test bx, bx                               ; 85 db
    11126     jnbe short 0782dh                         ; 77 03
    11127     jmp near 078a5h                           ; e9 78 00
     11261    jnbe short 07829h                         ; 77 03
     11262    jmp near 078a1h                           ; e9 78 00
    1112811263    mov dx, ax                                ; 89 c2
    1112911264    add dx, strict byte 00078h                ; 83 c2 78
    1113011265    mov ax, strict word 00040h                ; b8 40 00
    11131     call 01650h                               ; e8 18 9e
     11266    call 01650h                               ; e8 1c 9e
    1113211267    xor ah, ah                                ; 30 e4
    1113311268    mov cx, ax                                ; 89 c1
    1113411269    sal cx, 008h                              ; c1 e1 08
    1113511270    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    11136     jne short 07871h                          ; 75 2c
     11271    jne short 0786dh                          ; 75 2c
    1113711272    mov al, byte [bp+012h]                    ; 8a 46 12
    1113811273    mov dx, bx                                ; 89 da
     
    1115411289    ; sub ah, ah                                ; 2a e4
    1115511290    test AL, strict byte 040h                 ; a8 40
    11156     je short 07871h                           ; 74 07
     11291    je short 0786dh                           ; 74 07
    1115711292    test cx, cx                               ; 85 c9
    11158     je short 07871h                           ; 74 03
     11293    je short 0786dh                           ; 74 03
    1115911294    dec cx                                    ; 49
    11160     jmp short 07860h                          ; eb ef
     11295    jmp short 0785ch                          ; eb ef
    1116111296    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11162     jne short 0788ch                          ; 75 15
     11297    jne short 07888h                          ; 75 15
    1116311298    lea dx, [si+002h]                         ; 8d 54 02
    1116411299    in AL, DX                                 ; ec
     
    1117911314    mov byte [bp+013h], al                    ; 88 46 13
    1118011315    test cx, cx                               ; 85 c9
    11181     jne short 0789fh                          ; 75 04
     11316    jne short 0789bh                          ; 75 04
    1118211317    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1118311318    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11184     jmp short 078a9h                          ; eb 04
     11319    jmp short 078a5h                          ; eb 04
    1118511320    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1118611321    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1118811323    pop bp                                    ; 5d
    1118911324    retn                                      ; c3
    11190 wait_:                                       ; 0xf78af LB 0xaf
     11325wait_:                                       ; 0xf78ab LB 0xaf
    1119111326    push bp                                   ; 55
    1119211327    mov bp, sp                                ; 89 e5
     
    1120611341    mov dx, 0046ch                            ; ba 6c 04
    1120711342    xor ax, ax                                ; 31 c0
    11208     call 01688h                               ; e8 b6 9d
     11343    call 01688h                               ; e8 ba 9d
    1120911344    mov word [bp-010h], ax                    ; 89 46 f0
    1121011345    mov bx, dx                                ; 89 d3
     
    1121211347    mov dx, 0046ch                            ; ba 6c 04
    1121311348    xor ax, ax                                ; 31 c0
    11214     call 01688h                               ; e8 a8 9d
     11349    call 01688h                               ; e8 ac 9d
    1121511350    mov word [bp-012h], ax                    ; 89 46 ee
    1121611351    mov di, dx                                ; 89 d7
    1121711352    cmp dx, bx                                ; 39 da
    11218     jnbe short 078f0h                         ; 77 07
    11219     jne short 078f7h                          ; 75 0c
     11353    jnbe short 078ech                         ; 77 07
     11354    jne short 078f3h                          ; 75 0c
    1122011355    cmp ax, word [bp-010h]                    ; 3b 46 f0
    11221     jbe short 078f7h                          ; 76 07
     11356    jbe short 078f3h                          ; 76 07
    1122211357    sub ax, word [bp-010h]                    ; 2b 46 f0
    1122311358    sbb dx, bx                                ; 19 da
    11224     jmp short 07902h                          ; eb 0b
     11359    jmp short 078feh                          ; eb 0b
    1122511360    cmp dx, bx                                ; 39 da
    11226     jc short 07902h                           ; 72 07
    11227     jne short 07906h                          ; 75 09
     11361    jc short 078feh                           ; 72 07
     11362    jne short 07902h                          ; 75 09
    1122811363    cmp ax, word [bp-010h]                    ; 3b 46 f0
    11229     jnc short 07906h                          ; 73 04
     11364    jnc short 07902h                          ; 73 04
    1123011365    sub si, ax                                ; 29 c6
    1123111366    sbb cx, dx                                ; 19 d1
     
    1123511370    mov ax, 00100h                            ; b8 00 01
    1123611371    int 016h                                  ; cd 16
    11237     je short 0791ah                           ; 74 05
     11372    je short 07916h                           ; 74 05
    1123811373    mov AL, strict byte 001h                  ; b0 01
    11239     jmp near 0791ch                           ; e9 02 00
     11374    jmp near 07918h                           ; e9 02 00
    1124011375    db  032h, 0c0h
    1124111376    ; xor al, al                                ; 32 c0
    1124211377    test al, al                               ; 84 c0
    11243     je short 07943h                           ; 74 23
     11378    je short 0793fh                           ; 74 23
    1124411379    db  033h, 0c0h
    1124511380    ; xor ax, ax                                ; 33 c0
     
    1125211387    push 00996h                               ; 68 96 09
    1125311388    push strict byte 00004h                   ; 6a 04
    11254     call 01966h                               ; e8 30 a0
     11389    call 01966h                               ; e8 34 a0
    1125511390    add sp, strict byte 00006h                ; 83 c4 06
    1125611391    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    11257     je short 07943h                           ; 74 04
     11392    je short 0793fh                           ; 74 04
    1125811393    mov al, dl                                ; 88 d0
    11259     jmp short 07955h                          ; eb 12
     11394    jmp short 07951h                          ; eb 12
    1126011395    test cx, cx                               ; 85 c9
    11261     jnle short 078d7h                         ; 7f 90
    11262     jne short 0794dh                          ; 75 04
     11396    jnle short 078d3h                         ; 7f 90
     11397    jne short 07949h                          ; 75 04
    1126311398    test si, si                               ; 85 f6
    11264     jnbe short 078d7h                         ; 77 8a
     11399    jnbe short 078d3h                         ; 77 8a
    1126511400    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1126611401    push ax                                   ; 50
     
    1127411409    pop bp                                    ; 5d
    1127511410    retn                                      ; c3
    11276 read_logo_byte_:                             ; 0xf795e LB 0x16
     11411read_logo_byte_:                             ; 0xf795a LB 0x16
    1127711412    push bp                                   ; 55
    1127811413    mov bp, sp                                ; 89 e5
     
    1128911424    pop bp                                    ; 5d
    1129011425    retn                                      ; c3
    11291 read_logo_word_:                             ; 0xf7974 LB 0x14
     11426read_logo_word_:                             ; 0xf7970 LB 0x14
    1129211427    push bp                                   ; 55
    1129311428    mov bp, sp                                ; 89 e5
     
    1130211437    pop bp                                    ; 5d
    1130311438    retn                                      ; c3
    11304 print_detected_harddisks_:                   ; 0xf7988 LB 0x13a
     11439print_detected_harddisks_:                   ; 0xf7984 LB 0x13a
    1130511440    push bp                                   ; 55
    1130611441    mov bp, sp                                ; 89 e5
     
    1131411449    mov dx, strict word 0000eh                ; ba 0e 00
    1131511450    mov ax, strict word 00040h                ; b8 40 00
    11316     call 0166ch                               ; e8 d1 9c
     11451    call 0166ch                               ; e8 d5 9c
    1131711452    mov si, ax                                ; 89 c6
    1131811453    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     
    1132011455    xor ch, ch                                ; 30 ed
    1132111456    mov dx, 00304h                            ; ba 04 03
    11322     call 01650h                               ; e8 a5 9c
     11457    call 01650h                               ; e8 a9 9c
    1132311458    mov byte [bp-00ch], al                    ; 88 46 f4
    1132411459    xor bl, bl                                ; 30 db
    1132511460    cmp bl, byte [bp-00ch]                    ; 3a 5e f4
    11326     jnc short 07a12h                          ; 73 5d
     11461    jnc short 07a0eh                          ; 73 5d
    1132711462    mov al, bl                                ; 88 d8
    1132811463    xor ah, ah                                ; 30 e4
     
    1133011465    add dx, 00305h                            ; 81 c2 05 03
    1133111466    mov ax, si                                ; 89 f0
    11332     call 01650h                               ; e8 8c 9c
     11467    call 01650h                               ; e8 90 9c
    1133311468    mov bh, al                                ; 88 c7
    1133411469    cmp AL, strict byte 00ch                  ; 3c 0c
    11335     jc short 079efh                           ; 72 25
     11470    jc short 079ebh                           ; 72 25
    1133611471    test cl, cl                               ; 84 c9
    11337     jne short 079dbh                          ; 75 0d
     11472    jne short 079d7h                          ; 75 0d
    1133811473    push 009a7h                               ; 68 a7 09
    1133911474    push strict byte 00002h                   ; 6a 02
    11340     call 01966h                               ; e8 90 9f
     11475    call 01966h                               ; e8 94 9f
    1134111476    add sp, strict byte 00004h                ; 83 c4 04
    1134211477    mov CL, strict byte 001h                  ; b1 01
     
    1134711482    push 009bch                               ; 68 bc 09
    1134811483    push strict byte 00002h                   ; 6a 02
    11349     call 01966h                               ; e8 7d 9f
     11484    call 01966h                               ; e8 81 9f
    1135011485    add sp, strict byte 00006h                ; 83 c4 06
    11351     jmp near 07a8fh                           ; e9 a0 00
     11486    jmp near 07a8bh                           ; e9 a0 00
    1135211487    cmp AL, strict byte 008h                  ; 3c 08
    11353     jc short 07a06h                           ; 72 13
     11488    jc short 07a02h                           ; 72 13
    1135411489    test ch, ch                               ; 84 ed
    11355     jne short 07a04h                          ; 75 0d
     11490    jne short 07a00h                          ; 75 0d
    1135611491    push 009cfh                               ; 68 cf 09
    1135711492    push strict byte 00002h                   ; 6a 02
    11358     call 01966h                               ; e8 67 9f
     11493    call 01966h                               ; e8 6b 9f
    1135911494    add sp, strict byte 00004h                ; 83 c4 04
    1136011495    mov CH, strict byte 001h                  ; b5 01
    11361     jmp short 079dbh                          ; eb d5
     11496    jmp short 079d7h                          ; eb d5
    1136211497    cmp AL, strict byte 004h                  ; 3c 04
    11363     jnc short 07a26h                          ; 73 1c
     11498    jnc short 07a22h                          ; 73 1c
    1136411499    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11365     je short 07a15h                           ; 74 05
    11366     jmp short 07a26h                          ; eb 14
    11367     jmp near 07a94h                           ; e9 7f 00
     11500    je short 07a11h                           ; 74 05
     11501    jmp short 07a22h                          ; eb 14
     11502    jmp near 07a90h                           ; e9 7f 00
    1136811503    push 009e4h                               ; 68 e4 09
    1136911504    push strict byte 00002h                   ; 6a 02
    11370     call 01966h                               ; e8 49 9f
     11505    call 01966h                               ; e8 4d 9f
    1137111506    add sp, strict byte 00004h                ; 83 c4 04
    1137211507    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11373     jmp short 07a3ch                          ; eb 16
     11508    jmp short 07a38h                          ; eb 16
    1137411509    cmp bh, 004h                              ; 80 ff 04
    11375     jc short 07a3ch                           ; 72 11
     11510    jc short 07a38h                           ; 72 11
    1137611511    test cl, cl                               ; 84 c9
    11377     jne short 07a3ch                          ; 75 0d
     11512    jne short 07a38h                          ; 75 0d
    1137811513    push 009f6h                               ; 68 f6 09
    1137911514    push strict byte 00002h                   ; 6a 02
    11380     call 01966h                               ; e8 2f 9f
     11515    call 01966h                               ; e8 33 9f
    1138111516    add sp, strict byte 00004h                ; 83 c4 04
    1138211517    mov CL, strict byte 001h                  ; b1 01
     
    1138711522    push 00a0ah                               ; 68 0a 0a
    1138811523    push strict byte 00002h                   ; 6a 02
    11389     call 01966h                               ; e8 1c 9f
     11524    call 01966h                               ; e8 20 9f
    1139011525    add sp, strict byte 00006h                ; 83 c4 06
    1139111526    cmp bh, 004h                              ; 80 ff 04
    11392     jc short 07a55h                           ; 72 03
     11527    jc short 07a51h                           ; 72 03
    1139311528    sub bh, 004h                              ; 80 ef 04
    1139411529    mov al, bh                                ; 88 f8
     
    1139911534    sar ax, 1                                 ; d1 f8
    1140011535    test ax, ax                               ; 85 c0
    11401     je short 07a67h                           ; 74 05
     11536    je short 07a63h                           ; 74 05
    1140211537    push 00a14h                               ; 68 14 0a
    11403     jmp short 07a6ah                          ; eb 03
     11538    jmp short 07a66h                          ; eb 03
    1140411539    push 00a1fh                               ; 68 1f 0a
    1140511540    push strict byte 00002h                   ; 6a 02
    11406     call 01966h                               ; e8 f7 9e
     11541    call 01966h                               ; e8 fb 9e
    1140711542    add sp, strict byte 00004h                ; 83 c4 04
    1140811543    mov al, bh                                ; 88 f8
     
    1141211547    idiv di                                   ; f7 ff
    1141311548    test dx, dx                               ; 85 d2
    11414     je short 07a85h                           ; 74 05
     11549    je short 07a81h                           ; 74 05
    1141511550    push 00a28h                               ; 68 28 0a
    11416     jmp short 07a88h                          ; eb 03
     11551    jmp short 07a84h                          ; eb 03
    1141711552    push 00a2eh                               ; 68 2e 0a
    1141811553    push di                                   ; 57
    11419     call 01966h                               ; e8 da 9e
     11554    call 01966h                               ; e8 de 9e
    1142011555    add sp, strict byte 00004h                ; 83 c4 04
    1142111556    db  0feh, 0c3h
    1142211557    ; inc bl                                    ; fe c3
    11423     jmp near 079b0h                           ; e9 1c ff
     11558    jmp near 079ach                           ; e9 1c ff
    1142411559    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11425     jne short 07aadh                          ; 75 13
     11560    jne short 07aa9h                          ; 75 13
    1142611561    test cl, cl                               ; 84 c9
    11427     jne short 07aadh                          ; 75 0f
     11562    jne short 07aa9h                          ; 75 0f
    1142811563    test ch, ch                               ; 84 ed
    11429     jne short 07aadh                          ; 75 0b
     11564    jne short 07aa9h                          ; 75 0b
    1143011565    push 00a35h                               ; 68 35 0a
    1143111566    push strict byte 00002h                   ; 6a 02
    11432     call 01966h                               ; e8 bc 9e
     11567    call 01966h                               ; e8 c0 9e
    1143311568    add sp, strict byte 00004h                ; 83 c4 04
    1143411569    push 00a49h                               ; 68 49 0a
    1143511570    push strict byte 00002h                   ; 6a 02
    11436     call 01966h                               ; e8 b1 9e
     11571    call 01966h                               ; e8 b5 9e
    1143711572    add sp, strict byte 00004h                ; 83 c4 04
    1143811573    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1144411579    pop bp                                    ; 5d
    1144511580    retn                                      ; c3
    11446 get_boot_drive_:                             ; 0xf7ac2 LB 0x28
     11581get_boot_drive_:                             ; 0xf7abe LB 0x28
    1144711582    push bp                                   ; 55
    1144811583    mov bp, sp                                ; 89 e5
     
    1145211587    mov dx, strict word 0000eh                ; ba 0e 00
    1145311588    mov ax, strict word 00040h                ; b8 40 00
    11454     call 0166ch                               ; e8 9a 9b
     11589    call 0166ch                               ; e8 9e 9b
    1145511590    mov dx, 00304h                            ; ba 04 03
    11456     call 01650h                               ; e8 78 9b
     11591    call 01650h                               ; e8 7c 9b
    1145711592    sub bl, 002h                              ; 80 eb 02
    1145811593    cmp bl, al                                ; 38 c3
    11459     jc short 07ae1h                           ; 72 02
     11594    jc short 07addh                           ; 72 02
    1146011595    mov BL, strict byte 0ffh                  ; b3 ff
    1146111596    mov al, bl                                ; 88 d8
     
    1146511600    pop bp                                    ; 5d
    1146611601    retn                                      ; c3
    11467 show_logo_:                                  ; 0xf7aea LB 0x226
     11602show_logo_:                                  ; 0xf7ae6 LB 0x226
    1146811603    push bp                                   ; 55
    1146911604    mov bp, sp                                ; 89 e5
     
    1147611611    mov dx, strict word 0000eh                ; ba 0e 00
    1147711612    mov ax, strict word 00040h                ; b8 40 00
    11478     call 0166ch                               ; e8 6e 9b
     11613    call 0166ch                               ; e8 72 9b
    1147911614    mov si, ax                                ; 89 c6
    1148011615    xor cl, cl                                ; 30 c9
     
    1148811623    mov al, dl                                ; 88 d0
    1148911624    xor ah, ah                                ; 30 e4
    11490     call 07974h                               ; e8 5d fe
     11625    call 07970h                               ; e8 5d fe
    1149111626    cmp ax, 066bbh                            ; 3d bb 66
    11492     jne short 07b2eh                          ; 75 12
     11627    jne short 07b2ah                          ; 75 12
    1149311628    push SS                                   ; 16
    1149411629    pop ES                                    ; 07
     
    1149811633    mov word [es:di], bx                      ; 26 89 1d
    1149911634    cmp ax, strict word 0004fh                ; 3d 4f 00
    11500     je short 07b31h                           ; 74 03
    11501     jmp near 07beeh                           ; e9 bd 00
     11635    je short 07b2dh                           ; 74 03
     11636    jmp near 07beah                           ; e9 bd 00
    1150211637    mov al, dl                                ; 88 d0
    1150311638    add AL, strict byte 004h                  ; 04 04
    1150411639    xor ah, ah                                ; 30 e4
    11505     call 0795eh                               ; e8 24 fe
     11640    call 0795ah                               ; e8 24 fe
    1150611641    mov ch, al                                ; 88 c5
    1150711642    mov byte [bp-012h], al                    ; 88 46 ee
     
    1150911644    add AL, strict byte 005h                  ; 04 05
    1151011645    xor ah, ah                                ; 30 e4
    11511     call 0795eh                               ; e8 16 fe
     11646    call 0795ah                               ; e8 16 fe
    1151211647    mov dh, al                                ; 88 c6
    1151311648    mov byte [bp-010h], al                    ; 88 46 f0
     
    1151511650    add AL, strict byte 002h                  ; 04 02
    1151611651    xor ah, ah                                ; 30 e4
    11517     call 07974h                               ; e8 1e fe
     11652    call 07970h                               ; e8 1e fe
    1151811653    mov bx, ax                                ; 89 c3
    1151911654    mov word [bp-014h], ax                    ; 89 46 ec
     
    1152111656    add AL, strict byte 006h                  ; 04 06
    1152211657    xor ah, ah                                ; 30 e4
    11523     call 0795eh                               ; e8 fa fd
     11658    call 0795ah                               ; e8 fa fd
    1152411659    mov byte [bp-00eh], al                    ; 88 46 f2
    1152511660    test ch, ch                               ; 84 ed
    11526     jne short 07b73h                          ; 75 08
     11661    jne short 07b6fh                          ; 75 08
    1152711662    test dh, dh                               ; 84 f6
    11528     jne short 07b73h                          ; 75 04
     11663    jne short 07b6fh                          ; 75 04
    1152911664    test bx, bx                               ; 85 db
    11530     je short 07bcbh                           ; 74 58
     11665    je short 07bc7h                           ; 74 58
    1153111666    mov bx, 00142h                            ; bb 42 01
    1153211667    mov ax, 04f02h                            ; b8 02 4f
    1153311668    int 010h                                  ; cd 10
    1153411669    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11535     je short 07ba4h                           ; 74 23
     11670    je short 07ba0h                           ; 74 23
    1153611671    xor bx, bx                                ; 31 db
    11537     jmp short 07b8bh                          ; eb 06
     11672    jmp short 07b87h                          ; eb 06
    1153811673    inc bx                                    ; 43
    1153911674    cmp bx, strict byte 00010h                ; 83 fb 10
    11540     jnbe short 07babh                         ; 77 20
     11675    jnbe short 07ba7h                         ; 77 20
    1154111676    mov ax, bx                                ; 89 d8
    1154211677    or ah, 002h                               ; 80 cc 02
     
    1154511680    xor dx, dx                                ; 31 d2
    1154611681    mov ax, strict word 00001h                ; b8 01 00
    11547     call 078afh                               ; e8 13 fd
     11682    call 078abh                               ; e8 13 fd
    1154811683    cmp AL, strict byte 086h                  ; 3c 86
    11549     jne short 07b85h                          ; 75 e5
     11684    jne short 07b81h                          ; 75 e5
    1155011685    mov CL, strict byte 001h                  ; b1 01
    11551     jmp short 07babh                          ; eb 07
     11686    jmp short 07ba7h                          ; eb 07
    1155211687    mov ax, 00210h                            ; b8 10 02
    1155311688    mov dx, 003b8h                            ; ba b8 03
    1155411689    out DX, ax                                ; ef
    1155511690    test cl, cl                               ; 84 c9
    11556     jne short 07bc1h                          ; 75 12
     11691    jne short 07bbdh                          ; 75 12
    1155711692    mov ax, word [bp-014h]                    ; 8b 46 ec
    1155811693    shr ax, 004h                              ; c1 e8 04
    1155911694    mov dx, strict word 00001h                ; ba 01 00
    11560     call 078afh                               ; e8 f4 fc
     11695    call 078abh                               ; e8 f4 fc
    1156111696    cmp AL, strict byte 086h                  ; 3c 86
    11562     jne short 07bc1h                          ; 75 02
     11697    jne short 07bbdh                          ; 75 02
    1156311698    mov CL, strict byte 001h                  ; b1 01
    1156411699    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11565     je short 07beeh                           ; 74 27
     11700    je short 07beah                           ; 74 27
    1156611701    test cl, cl                               ; 84 c9
    11567     je short 07bcdh                           ; 74 02
    11568     jmp short 07beeh                          ; eb 21
     11702    je short 07bc9h                           ; 74 02
     11703    jmp short 07beah                          ; eb 21
    1156911704    mov bx, strict word 00010h                ; bb 10 00
    11570     jmp short 07bd7h                          ; eb 05
     11705    jmp short 07bd3h                          ; eb 05
    1157111706    dec bx                                    ; 4b
    1157211707    test bx, bx                               ; 85 db
    11573     jbe short 07beeh                          ; 76 17
     11708    jbe short 07beah                          ; 76 17
    1157411709    mov ax, bx                                ; 89 d8
    1157511710    or ah, 002h                               ; 80 cc 02
     
    1157811713    xor dx, dx                                ; 31 d2
    1157911714    mov ax, strict word 00001h                ; b8 01 00
    11580     call 078afh                               ; e8 c7 fc
     11715    call 078abh                               ; e8 c7 fc
    1158111716    cmp AL, strict byte 086h                  ; 3c 86
    11582     jne short 07bd2h                          ; 75 e6
     11717    jne short 07bceh                          ; 75 e6
    1158311718    mov CL, strict byte 001h                  ; b1 01
    1158411719    xor bx, bx                                ; 31 db
    1158511720    mov dx, 0037dh                            ; ba 7d 03
    1158611721    mov ax, si                                ; 89 f0
    11587     call 0165eh                               ; e8 66 9a
     11722    call 0165eh                               ; e8 6a 9a
    1158811723    mov AL, strict byte 003h                  ; b0 03
    1158911724    mov AH, strict byte 000h                  ; b4 00
    1159011725    int 010h                                  ; cd 10
    1159111726    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11592     je short 07c18h                           ; 74 14
     11727    je short 07c14h                           ; 74 14
    1159311728    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11594     jne short 07c3fh                          ; 75 35
     11729    jne short 07c3bh                          ; 75 35
    1159511730    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11596     jne short 07c3fh                          ; 75 2f
     11731    jne short 07c3bh                          ; 75 2f
    1159711732    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    11598     je short 07c1bh                           ; 74 05
    11599     jmp short 07c3fh                          ; eb 27
    11600     jmp near 07cf3h                           ; e9 d8 00
     11733    je short 07c17h                           ; 74 05
     11734    jmp short 07c3bh                          ; eb 27
     11735    jmp near 07cefh                           ; e9 d8 00
    1160111736    cmp byte [bp-00eh], 002h                  ; 80 7e f2 02
    11602     jne short 07c2ch                          ; 75 0b
     11737    jne short 07c28h                          ; 75 0b
    1160311738    push 00a4bh                               ; 68 4b 0a
    1160411739    push strict byte 00002h                   ; 6a 02
    11605     call 01966h                               ; e8 3d 9d
     11740    call 01966h                               ; e8 41 9d
    1160611741    add sp, strict byte 00004h                ; 83 c4 04
    1160711742    test cl, cl                               ; 84 c9
    11608     jne short 07c3fh                          ; 75 0f
     11743    jne short 07c3bh                          ; 75 0f
    1160911744    mov dx, strict word 00001h                ; ba 01 00
    1161011745    mov ax, 000c0h                            ; b8 c0 00
    11611     call 078afh                               ; e8 76 fc
     11746    call 078abh                               ; e8 76 fc
    1161211747    cmp AL, strict byte 086h                  ; 3c 86
    11613     jne short 07c3fh                          ; 75 02
     11748    jne short 07c3bh                          ; 75 02
    1161411749    mov CL, strict byte 001h                  ; b1 01
    1161511750    test cl, cl                               ; 84 c9
    11616     je short 07c18h                           ; 74 d5
     11751    je short 07c14h                           ; 74 d5
    1161711752    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    1161811753    mov ax, 00100h                            ; b8 00 01
     
    1163311768    push 00a6dh                               ; 68 6d 0a
    1163411769    push strict byte 00002h                   ; 6a 02
    11635     call 01966h                               ; e8 fa 9c
     11770    call 01966h                               ; e8 fe 9c
    1163611771    add sp, strict byte 00004h                ; 83 c4 04
    11637     call 07988h                               ; e8 16 fd
     11772    call 07984h                               ; e8 16 fd
    1163811773    push 00ab1h                               ; 68 b1 0a
    1163911774    push strict byte 00002h                   ; 6a 02
    11640     call 01966h                               ; e8 ec 9c
     11775    call 01966h                               ; e8 f0 9c
    1164111776    add sp, strict byte 00004h                ; 83 c4 04
    1164211777    mov dx, strict word 00001h                ; ba 01 00
    1164311778    mov ax, strict word 00040h                ; b8 40 00
    11644     call 078afh                               ; e8 29 fc
     11779    call 078abh                               ; e8 29 fc
    1164511780    mov bl, al                                ; 88 c3
    1164611781    test al, al                               ; 84 c0
    11647     je short 07c7dh                           ; 74 f1
     11782    je short 07c79h                           ; 74 f1
    1164811783    cmp AL, strict byte 030h                  ; 3c 30
    11649     je short 07ce0h                           ; 74 50
     11784    je short 07cdch                           ; 74 50
    1165011785    cmp bl, 002h                              ; 80 fb 02
    11651     jc short 07cb9h                           ; 72 24
     11786    jc short 07cb5h                           ; 72 24
    1165211787    cmp bl, 009h                              ; 80 fb 09
    11653     jnbe short 07cb9h                         ; 77 1f
     11788    jnbe short 07cb5h                         ; 77 1f
    1165411789    mov al, bl                                ; 88 d8
    1165511790    xor ah, ah                                ; 30 e4
    11656     call 07ac2h                               ; e8 21 fe
     11791    call 07abeh                               ; e8 21 fe
    1165711792    cmp AL, strict byte 0ffh                  ; 3c ff
    11658     jne short 07ca7h                          ; 75 02
    11659     jmp short 07c7dh                          ; eb d6
     11793    jne short 07ca3h                          ; 75 02
     11794    jmp short 07c79h                          ; eb d6
    1166011795    mov bl, al                                ; 88 c3
    1166111796    xor bh, bh                                ; 30 ff
    1166211797    mov dx, 0037ch                            ; ba 7c 03
    1166311798    mov ax, si                                ; 89 f0
    11664     call 0165eh                               ; e8 ab 99
     11799    call 0165eh                               ; e8 af 99
    1166511800    mov byte [bp-00ch], 002h                  ; c6 46 f4 02
    11666     jmp short 07ce0h                          ; eb 27
     11801    jmp short 07cdch                          ; eb 27
    1166711802    cmp bl, 02eh                              ; 80 fb 2e
    11668     je short 07cceh                           ; 74 10
     11803    je short 07ccah                           ; 74 10
    1166911804    cmp bl, 026h                              ; 80 fb 26
    11670     je short 07cd4h                           ; 74 11
     11805    je short 07cd0h                           ; 74 11
    1167111806    cmp bl, 021h                              ; 80 fb 21
    11672     jne short 07cdah                          ; 75 12
     11807    jne short 07cd6h                          ; 75 12
    1167311808    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11674     jmp short 07ce0h                          ; eb 12
     11809    jmp short 07cdch                          ; eb 12
    1167511810    mov byte [bp-00ch], 003h                  ; c6 46 f4 03
    11676     jmp short 07ce0h                          ; eb 0c
     11811    jmp short 07cdch                          ; eb 0c
    1167711812    mov byte [bp-00ch], 004h                  ; c6 46 f4 04
    11678     jmp short 07ce0h                          ; eb 06
     11813    jmp short 07cdch                          ; eb 06
    1167911814    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11680     je short 07c7dh                           ; 74 9d
     11815    je short 07c79h                           ; 74 9d
    1168111816    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    1168211817    xor bh, bh                                ; 30 ff
    1168311818    mov dx, 0037dh                            ; ba 7d 03
    1168411819    mov ax, si                                ; 89 f0
    11685     call 0165eh                               ; e8 71 99
     11820    call 0165eh                               ; e8 75 99
    1168611821    mov AL, strict byte 003h                  ; b0 03
    1168711822    mov AH, strict byte 000h                  ; b4 00
     
    1169611831    push DS                                   ; 1e
    1169711832    mov ds, ax                                ; 8e d8
    11698     call 0edbfh                               ; e8 bb 70
     11833    call 0edbfh                               ; e8 bf 70
    1169911834    pop DS                                    ; 1f
    1170011835    pop bp                                    ; 5d
     
    1170711842    pop bp                                    ; 5d
    1170811843    retn                                      ; c3
    11709 delay_boot_:                                 ; 0xf7d10 LB 0x6b
     11844delay_boot_:                                 ; 0xf7d0c LB 0x6b
    1171011845    push bp                                   ; 55
    1171111846    mov bp, sp                                ; 89 e5
     
    1171711852    mov dx, ax                                ; 89 c2
    1171811853    test ax, ax                               ; 85 c0
    11719     je short 07d71h                           ; 74 53
     11854    je short 07d6dh                           ; 74 53
    1172011855    mov AL, strict byte 034h                  ; b0 34
    1172111856    out strict byte 043h, AL                  ; e6 43
     
    1172711862    push 00afbh                               ; 68 fb 0a
    1172811863    push strict byte 00002h                   ; 6a 02
    11729     call 01966h                               ; e8 33 9c
     11864    call 01966h                               ; e8 37 9c
    1173011865    add sp, strict byte 00006h                ; 83 c4 06
    1173111866    mov bx, dx                                ; 89 d3
    1173211867    test bx, bx                               ; 85 db
    11733     jbe short 07d53h                          ; 76 17
     11868    jbe short 07d4fh                          ; 76 17
    1173411869    push bx                                   ; 53
    1173511870    push 00b19h                               ; 68 19 0b
    1173611871    push strict byte 00002h                   ; 6a 02
    11737     call 01966h                               ; e8 21 9c
     11872    call 01966h                               ; e8 25 9c
    1173811873    add sp, strict byte 00006h                ; 83 c4 06
    1173911874    xor dx, dx                                ; 31 d2
    1174011875    mov ax, strict word 00040h                ; b8 40 00
    11741     call 078afh                               ; e8 5f fb
     11876    call 078abh                               ; e8 5f fb
    1174211877    dec bx                                    ; 4b
    11743     jmp short 07d38h                          ; eb e5
     11878    jmp short 07d34h                          ; eb e5
    1174411879    push 00a49h                               ; 68 49 0a
    1174511880    push strict byte 00002h                   ; 6a 02
    11746     call 01966h                               ; e8 0b 9c
     11881    call 01966h                               ; e8 0f 9c
    1174711882    add sp, strict byte 00004h                ; 83 c4 04
    1174811883    mov AL, strict byte 034h                  ; b0 34
     
    1175511890    push DS                                   ; 1e
    1175611891    mov ds, ax                                ; 8e d8
    11757     call 0edbfh                               ; e8 50 70
     11892    call 0edbfh                               ; e8 54 70
    1175811893    pop DS                                    ; 1f
    1175911894    pop bp                                    ; 5d
     
    1176611901    pop bp                                    ; 5d
    1176711902    retn                                      ; c3
    11768 scsi_cmd_data_in_:                           ; 0xf7d7b LB 0xd5
     11903scsi_cmd_data_in_:                           ; 0xf7d77 LB 0xd5
    1176911904    push bp                                   ; 55
    1177011905    mov bp, sp                                ; 89 e5
     
    1178211917    ; sub ah, ah                                ; 2a e4
    1178311918    test AL, strict byte 001h                 ; a8 01
    11784     jne short 07d91h                          ; 75 f7
     11919    jne short 07d8dh                          ; 75 f7
    1178511920    mov al, byte [bp+004h]                    ; 8a 46 04
    1178611921    cmp AL, strict byte 010h                  ; 3c 10
    11787     jne short 07da5h                          ; 75 04
     11922    jne short 07da1h                          ; 75 04
    1178811923    xor ax, ax                                ; 31 c0
    11789     jmp short 07da7h                          ; eb 02
     11924    jmp short 07da3h                          ; eb 02
    1179011925    xor ah, ah                                ; 30 e4
    1179111926    mov di, ax                                ; 89 c7
     
    1179511930    shr dx, 1                                 ; d1 ea
    1179611931    rcr ax, 1                                 ; d1 d8
    11797     loop 07db1h                               ; e2 fa
     11932    loop 07dadh                               ; e2 fa
    1179811933    mov cx, ax                                ; 89 c1
    1179911934    and cx, 000f0h                            ; 81 e1 f0 00
     
    1181311948    shr dx, 1                                 ; d1 ea
    1181411949    rcr ax, 1                                 ; d1 d8
    11815     loop 07dd6h                               ; e2 fa
     11950    loop 07dd2h                               ; e2 fa
    1181611951    mov dx, si                                ; 89 f2
    1181711952    out DX, AL                                ; ee
     
    1182011955    xor ah, ah                                ; 30 e4
    1182111956    cmp cx, ax                                ; 39 c1
    11822     jnc short 07df8h                          ; 73 0e
     11957    jnc short 07df4h                          ; 73 0e
    1182311958    les di, [bp-00ah]                         ; c4 7e f6
    1182411959    add di, cx                                ; 01 cf
     
    1182711962    out DX, AL                                ; ee
    1182811963    inc cx                                    ; 41
    11829     jmp short 07de1h                          ; eb e9
     11964    jmp short 07dddh                          ; eb e9
    1183011965    mov dx, si                                ; 89 f2
    1183111966    in AL, DX                                 ; ec
     
    1183311968    ; sub ah, ah                                ; 2a e4
    1183411969    test AL, strict byte 001h                 ; a8 01
    11835     jne short 07df8h                          ; 75 f7
     11970    jne short 07df4h                          ; 75 f7
    1183611971    test AL, strict byte 002h                 ; a8 02
    11837     je short 07e13h                           ; 74 0e
     11972    je short 07e0fh                           ; 74 0e
    1183811973    lea dx, [si+003h]                         ; 8d 54 03
    1183911974    xor al, al                                ; 30 c0
     
    1184311978    ; sub ah, ah                                ; 2a e4
    1184411979    mov di, strict word 00004h                ; bf 04 00
    11845     jmp short 07e45h                          ; eb 32
     11980    jmp short 07e41h                          ; eb 32
    1184611981    lea dx, [si+001h]                         ; 8d 54 01
    1184711982    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11848     jne short 07e22h                          ; 75 06
     11983    jne short 07e1eh                          ; 75 06
    1184911984    cmp bx, 08000h                            ; 81 fb 00 80
    11850     jbe short 07e3ch                          ; 76 1a
     11985    jbe short 07e38h                          ; 76 1a
    1185111986    mov cx, 08000h                            ; b9 00 80
    1185211987    les di, [bp+006h]                         ; c4 7e 06
     
    1185711992    add ax, 00800h                            ; 05 00 08
    1185811993    mov word [bp+008h], ax                    ; 89 46 08
    11859     jmp short 07e13h                          ; eb d7
     11994    jmp short 07e0fh                          ; eb d7
    1186011995    mov cx, bx                                ; 89 d9
    1186111996    les di, [bp+006h]                         ; c4 7e 06
     
    1186812003    pop bp                                    ; 5d
    1186912004    retn 0000ah                               ; c2 0a 00
    11870 scsi_cmd_data_out_:                          ; 0xf7e50 LB 0xd5
     12005scsi_cmd_data_out_:                          ; 0xf7e4c LB 0xd5
    1187112006    push bp                                   ; 55
    1187212007    mov bp, sp                                ; 89 e5
     
    1188412019    ; sub ah, ah                                ; 2a e4
    1188512020    test AL, strict byte 001h                 ; a8 01
    11886     jne short 07e66h                          ; 75 f7
     12021    jne short 07e62h                          ; 75 f7
    1188712022    mov al, byte [bp+004h]                    ; 8a 46 04
    1188812023    cmp AL, strict byte 010h                  ; 3c 10
    11889     jne short 07e7ah                          ; 75 04
     12024    jne short 07e76h                          ; 75 04
    1189012025    xor ax, ax                                ; 31 c0
    11891     jmp short 07e7ch                          ; eb 02
     12026    jmp short 07e78h                          ; eb 02
    1189212027    xor ah, ah                                ; 30 e4
    1189312028    mov si, ax                                ; 89 c6
     
    1189712032    shr dx, 1                                 ; d1 ea
    1189812033    rcr ax, 1                                 ; d1 d8
    11899     loop 07e86h                               ; e2 fa
     12034    loop 07e82h                               ; e2 fa
    1190012035    mov cx, ax                                ; 89 c1
    1190112036    and cx, 000f0h                            ; 81 e1 f0 00
     
    1191512050    shr dx, 1                                 ; d1 ea
    1191612051    rcr ax, 1                                 ; d1 d8
    11917     loop 07eabh                               ; e2 fa
     12052    loop 07ea7h                               ; e2 fa
    1191812053    mov dx, di                                ; 89 fa
    1191912054    out DX, AL                                ; ee
     
    1192212057    xor ah, ah                                ; 30 e4
    1192312058    cmp cx, ax                                ; 39 c1
    11924     jnc short 07ecdh                          ; 73 0e
     12059    jnc short 07ec9h                          ; 73 0e
    1192512060    les si, [bp-00ah]                         ; c4 76 f6
    1192612061    add si, cx                                ; 01 ce
     
    1192912064    out DX, AL                                ; ee
    1193012065    inc cx                                    ; 41
    11931     jmp short 07eb6h                          ; eb e9
     12066    jmp short 07eb2h                          ; eb e9
    1193212067    lea dx, [di+001h]                         ; 8d 55 01
    1193312068    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11934     jne short 07edch                          ; 75 06
     12069    jne short 07ed8h                          ; 75 06
    1193512070    cmp bx, 08000h                            ; 81 fb 00 80
    11936     jbe short 07ef7h                          ; 76 1b
     12071    jbe short 07ef3h                          ; 76 1b
    1193712072    mov cx, 08000h                            ; b9 00 80
    1193812073    les si, [bp+006h]                         ; c4 76 06
     
    1194412079    add ax, 00800h                            ; 05 00 08
    1194512080    mov word [bp+008h], ax                    ; 89 46 08
    11946     jmp short 07ecdh                          ; eb d6
     12081    jmp short 07ec9h                          ; eb d6
    1194712082    mov cx, bx                                ; 89 d9
    1194812083    les si, [bp+006h]                         ; c4 76 06
     
    1195412089    ; sub ah, ah                                ; 2a e4
    1195512090    test AL, strict byte 001h                 ; a8 01
    11956     jne short 07effh                          ; 75 f7
     12091    jne short 07efbh                          ; 75 f7
    1195712092    test AL, strict byte 002h                 ; a8 02
    11958     je short 07f1ah                           ; 74 0e
     12093    je short 07f16h                           ; 74 0e
    1195912094    lea dx, [di+003h]                         ; 8d 55 03
    1196012095    xor al, al                                ; 30 c0
     
    1196412099    ; sub ah, ah                                ; 2a e4
    1196512100    mov ax, strict word 00004h                ; b8 04 00
    11966     jmp short 07f1ch                          ; eb 02
     12101    jmp short 07f18h                          ; eb 02
    1196712102    xor ax, ax                                ; 31 c0
    1196812103    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1197112106    pop bp                                    ; 5d
    1197212107    retn 0000ah                               ; c2 0a 00
    11973 @scsi_read_sectors:                          ; 0xf7f25 LB 0xe0
     12108@scsi_read_sectors:                          ; 0xf7f21 LB 0xe0
    1197412109    push bp                                   ; 55
    1197512110    mov bp, sp                                ; 89 e5
     
    1198312118    mov byte [bp-006h], al                    ; 88 46 fa
    1198412119    cmp AL, strict byte 004h                  ; 3c 04
    11985     jbe short 07f51h                          ; 76 11
     12120    jbe short 07f4dh                          ; 76 11
    1198612121    xor ah, ah                                ; 30 e4
    1198712122    push ax                                   ; 50
     
    1198912124    push 00b30h                               ; 68 30 0b
    1199012125    push strict byte 00007h                   ; 6a 07
    11991     call 01966h                               ; e8 18 9a
     12126    call 01966h                               ; e8 1c 9a
    1199212127    add sp, strict byte 00008h                ; 83 c4 08
    1199312128    mov es, [bp+006h]                         ; 8e 46 06
     
    1202912164    sal word [bp-00ah], 1                     ; d1 66 f6
    1203012165    rcl word [bp-008h], 1                     ; d1 56 f8
    12031     loop 07fbbh                               ; e2 f8
     12166    loop 07fb7h                               ; e2 f8
    1203212167    push word [bp-008h]                       ; ff 76 f8
    1203312168    push word [bp-00ah]                       ; ff 76 f6
     
    1203812173    mov cx, ss                                ; 8c d1
    1203912174    lea bx, [bp-01ah]                         ; 8d 5e e6
    12040     call 07d7bh                               ; e8 9e fd
     12175    call 07d77h                               ; e8 9e fd
    1204112176    mov ah, al                                ; 88 c4
    1204212177    test al, al                               ; 84 c0
    12043     jne short 07ff8h                          ; 75 15
     12178    jne short 07ff4h                          ; 75 15
    1204412179    mov es, [bp+006h]                         ; 8e 46 06
    1204512180    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1205512190    pop bp                                    ; 5d
    1205612191    retn 00004h                               ; c2 04 00
    12057 @scsi_write_sectors:                         ; 0xf8005 LB 0xe0
     12192@scsi_write_sectors:                         ; 0xf8001 LB 0xe0
    1205812193    push bp                                   ; 55
    1205912194    mov bp, sp                                ; 89 e5
     
    1206712202    mov byte [bp-006h], al                    ; 88 46 fa
    1206812203    cmp AL, strict byte 004h                  ; 3c 04
    12069     jbe short 08031h                          ; 76 11
     12204    jbe short 0802dh                          ; 76 11
    1207012205    xor ah, ah                                ; 30 e4
    1207112206    push ax                                   ; 50
     
    1207312208    push 00b30h                               ; 68 30 0b
    1207412209    push strict byte 00007h                   ; 6a 07
    12075     call 01966h                               ; e8 38 99
     12210    call 01966h                               ; e8 3c 99
    1207612211    add sp, strict byte 00008h                ; 83 c4 08
    1207712212    mov es, [bp+006h]                         ; 8e 46 06
     
    1211312248    sal word [bp-00ah], 1                     ; d1 66 f6
    1211412249    rcl word [bp-008h], 1                     ; d1 56 f8
    12115     loop 0809bh                               ; e2 f8
     12250    loop 08097h                               ; e2 f8
    1211612251    push word [bp-008h]                       ; ff 76 f8
    1211712252    push word [bp-00ah]                       ; ff 76 f6
     
    1212212257    mov cx, ss                                ; 8c d1
    1212312258    lea bx, [bp-01ah]                         ; 8d 5e e6
    12124     call 07e50h                               ; e8 93 fd
     12259    call 07e4ch                               ; e8 93 fd
    1212512260    mov ah, al                                ; 88 c4
    1212612261    test al, al                               ; 84 c0
    12127     jne short 080d8h                          ; 75 15
     12262    jne short 080d4h                          ; 75 15
    1212812263    mov es, [bp+006h]                         ; 8e 46 06
    1212912264    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1213912274    pop bp                                    ; 5d
    1214012275    retn 00004h                               ; c2 04 00
    12141 scsi_cmd_packet_:                            ; 0xf80e5 LB 0x168
     12276scsi_cmd_packet_:                            ; 0xf80e1 LB 0x168
    1214212277    push bp                                   ; 55
    1214312278    mov bp, sp                                ; 89 e5
     
    1215112286    mov dx, strict word 0000eh                ; ba 0e 00
    1215212287    mov ax, strict word 00040h                ; b8 40 00
    12153     call 0166ch                               ; e8 6b 95
     12288    call 0166ch                               ; e8 6f 95
    1215412289    mov si, 00122h                            ; be 22 01
    1215512290    mov word [bp-00ah], ax                    ; 89 46 f6
    1215612291    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12157     jne short 0812ch                          ; 75 1f
     12292    jne short 08128h                          ; 75 1f
    1215812293    mov bx, 00da0h                            ; bb a0 0d
    1215912294    mov cx, ds                                ; 8c d9
    1216012295    mov ax, strict word 00004h                ; b8 04 00
    12161     call 01923h                               ; e8 0b 98
     12296    call 01923h                               ; e8 0f 98
    1216212297    push 00b62h                               ; 68 62 0b
    1216312298    push 00b72h                               ; 68 72 0b
    1216412299    push strict byte 00004h                   ; 6a 04
    12165     call 01966h                               ; e8 43 98
     12300    call 01966h                               ; e8 47 98
    1216612301    add sp, strict byte 00006h                ; 83 c4 06
    1216712302    mov dx, strict word 00001h                ; ba 01 00
    12168     jmp near 08242h                           ; e9 16 01
     12303    jmp near 0823eh                           ; e9 16 01
    1216912304    sub di, strict byte 00008h                ; 83 ef 08
    1217012305    sal di, 002h                              ; c1 e7 02
     
    1218012315    ; sub ah, ah                                ; 2a e4
    1218112316    test AL, strict byte 001h                 ; a8 01
    12182     jne short 08148h                          ; 75 f7
     12317    jne short 08144h                          ; 75 f7
    1218312318    xor ax, ax                                ; 31 c0
    1218412319    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1219612331    shr dx, 1                                 ; d1 ea
    1219712332    rcr ax, 1                                 ; d1 d8
    12198     loop 08173h                               ; e2 fa
     12333    loop 0816fh                               ; e2 fa
    1219912334    and ax, 000f0h                            ; 25 f0 00
    1220012335    mov cl, byte [bp-006h]                    ; 8a 4e fa
     
    1221512350    shr dx, 1                                 ; d1 ea
    1221612351    rcr ax, 1                                 ; d1 d8
    12217     loop 0819bh                               ; e2 fa
     12352    loop 08197h                               ; e2 fa
    1221812353    mov dx, bx                                ; 89 da
    1221912354    out DX, AL                                ; ee
     
    1222212357    xor ah, ah                                ; 30 e4
    1222312358    cmp cx, ax                                ; 39 c1
    12224     jnc short 081bdh                          ; 73 0e
     12359    jnc short 081b9h                          ; 73 0e
    1222512360    les di, [bp-00eh]                         ; c4 7e f2
    1222612361    add di, cx                                ; 01 cf
     
    1222912364    out DX, AL                                ; ee
    1223012365    inc cx                                    ; 41
    12231     jmp short 081a6h                          ; eb e9
     12366    jmp short 081a2h                          ; eb e9
    1223212367    mov dx, bx                                ; 89 da
    1223312368    in AL, DX                                 ; ec
     
    1223512370    ; sub ah, ah                                ; 2a e4
    1223612371    test AL, strict byte 001h                 ; a8 01
    12237     jne short 081bdh                          ; 75 f7
     12372    jne short 081b9h                          ; 75 f7
    1223812373    test AL, strict byte 002h                 ; a8 02
    12239     je short 081d8h                           ; 74 0e
     12374    je short 081d4h                           ; 74 0e
    1224012375    lea dx, [bx+003h]                         ; 8d 57 03
    1224112376    xor al, al                                ; 30 c0
     
    1224512380    ; sub ah, ah                                ; 2a e4
    1224612381    mov dx, strict word 00003h                ; ba 03 00
    12247     jmp short 08242h                          ; eb 6a
     12382    jmp short 0823eh                          ; eb 6a
    1224812383    mov ax, word [bp+004h]                    ; 8b 46 04
    1224912384    test ax, ax                               ; 85 c0
    12250     je short 081e7h                           ; 74 08
     12385    je short 081e3h                           ; 74 08
    1225112386    lea dx, [bx+001h]                         ; 8d 57 01
    1225212387    mov cx, ax                                ; 89 c1
    1225312388    in AL, DX                                 ; ec
    12254     loop 081e4h                               ; e2 fd
     12389    loop 081e0h                               ; e2 fd
    1225512390    mov ax, word [bp+006h]                    ; 8b 46 06
    1225612391    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1226012395    lea ax, [bx+001h]                         ; 8d 47 01
    1226112396    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12262     jne short 08208h                          ; 75 07
     12397    jne short 08204h                          ; 75 07
    1226312398    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12264     jbe short 08225h                          ; 76 1d
     12399    jbe short 08221h                          ; 76 1d
    1226512400    mov dx, ax                                ; 89 c2
    1226612401    mov cx, 08000h                            ; b9 00 80
     
    1227212407    add ax, 00800h                            ; 05 00 08
    1227312408    mov word [bp+00eh], ax                    ; 89 46 0e
    12274     jmp short 081f8h                          ; eb d3
     12409    jmp short 081f4h                          ; eb d3
    1227512410    mov dx, ax                                ; 89 c2
    1227612411    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1227912414    mov es, [bp-00ah]                         ; 8e 46 f6
    1228012415    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12281     je short 08240h                           ; 74 07
     12416    je short 0823ch                           ; 74 07
    1228212417    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1228312418    in AL, DX                                 ; ec
    12284     loop 0823dh                               ; e2 fd
     12419    loop 08239h                               ; e2 fd
    1228512420    xor dx, dx                                ; 31 d2
    1228612421    mov ax, dx                                ; 89 d0
     
    1229012425    pop bp                                    ; 5d
    1229112426    retn 0000ch                               ; c2 0c 00
    12292 scsi_enumerate_attached_devices_:            ; 0xf824d LB 0x4a6
     12427scsi_enumerate_attached_devices_:            ; 0xf8249 LB 0x4a6
    1229312428    push bp                                   ; 55
    1229412429    mov bp, sp                                ; 89 e5
     
    1230212437    mov dx, strict word 0000eh                ; ba 0e 00
    1230312438    mov ax, strict word 00040h                ; b8 40 00
    12304     call 0166ch                               ; e8 09 94
     12439    call 0166ch                               ; e8 0d 94
    1230512440    mov di, 00122h                            ; bf 22 01
    1230612441    mov word [bp-020h], ax                    ; 89 46 e0
    1230712442    mov word [bp-022h], strict word 00000h    ; c7 46 de 00 00
    12308     jmp near 08671h                           ; e9 00 04
     12443    jmp near 0866dh                           ; e9 00 04
    1230912444    cmp AL, strict byte 004h                  ; 3c 04
    12310     jc short 08278h                           ; 72 03
    12311     jmp near 086e9h                           ; e9 71 04
     12445    jc short 08274h                           ; 72 03
     12446    jmp near 086e5h                           ; e9 71 04
    1231212447    mov cx, strict word 00010h                ; b9 10 00
    1231312448    xor bx, bx                                ; 31 db
    1231412449    mov dx, ss                                ; 8c d2
    1231512450    lea ax, [bp-046h]                         ; 8d 46 ba
    12316     call 09fbah                               ; e8 35 1d
     12451    call 09fa0h                               ; e8 1f 1d
    1231712452    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
    1231812453    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     
    1232912464    lea bx, [bp-046h]                         ; 8d 5e ba
    1233012465    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12331     call 07d7bh                               ; e8 cd fa
     12466    call 07d77h                               ; e8 cd fa
    1233212467    test al, al                               ; 84 c0
    12333     je short 082c0h                           ; 74 0e
     12468    je short 082bch                           ; 74 0e
    1233412469    push 00b92h                               ; 68 92 0b
    1233512470    push 00bcbh                               ; 68 cb 0b
    1233612471    push strict byte 00007h                   ; 6a 07
    12337     call 01966h                               ; e8 a9 96
     12472    call 01966h                               ; e8 ad 96
    1233812473    add sp, strict byte 00006h                ; 83 c4 06
    1233912474    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
     
    1236712502    sal ax, 1                                 ; d1 e0
    1236812503    rcl dx, 1                                 ; d1 d2
    12369     loop 0830fh                               ; e2 fa
     12504    loop 0830bh                               ; e2 fa
    1237012505    or bx, ax                                 ; 09 c3
    1237112506    or dx, si                                 ; 09 f2
     
    1237512510    mov word [bp-028h], bx                    ; 89 5e d8
    1237612511    test dx, dx                               ; 85 d2
    12377     jne short 0832eh                          ; 75 06
     12512    jne short 0832ah                          ; 75 06
    1237812513    cmp bx, 00200h                            ; 81 fb 00 02
    12379     je short 0834eh                           ; 74 20
     12514    je short 0834ah                           ; 74 20
    1238012515    mov bx, 00da0h                            ; bb a0 0d
    1238112516    mov cx, ds                                ; 8c d9
    1238212517    mov ax, strict word 00004h                ; b8 04 00
    12383     call 01923h                               ; e8 ea 95
     12518    call 01923h                               ; e8 ee 95
    1238412519    push dx                                   ; 52
    1238512520    push word [bp-028h]                       ; ff 76 d8
     
    1238712522    push 00beah                               ; 68 ea 0b
    1238812523    push strict byte 00004h                   ; 6a 04
    12389     call 01966h                               ; e8 1e 96
     12524    call 01966h                               ; e8 22 96
    1239012525    add sp, strict byte 0000ah                ; 83 c4 0a
    12391     jmp near 08665h                           ; e9 17 03
     12526    jmp near 08661h                           ; e9 17 03
    1239212527    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1239312528    cmp AL, strict byte 001h                  ; 3c 01
    12394     jc short 08361h                           ; 72 0c
    12395     jbe short 08369h                          ; 76 12
     12529    jc short 0835dh                           ; 72 0c
     12530    jbe short 08365h                          ; 76 12
    1239612531    cmp AL, strict byte 003h                  ; 3c 03
    12397     je short 08371h                           ; 74 16
     12532    je short 0836dh                           ; 74 16
    1239812533    cmp AL, strict byte 002h                  ; 3c 02
    12399     je short 0836dh                           ; 74 0e
    12400     jmp short 083bah                          ; eb 59
     12534    je short 08369h                           ; 74 0e
     12535    jmp short 083b6h                          ; eb 59
    1240112536    test al, al                               ; 84 c0
    12402     jne short 083bah                          ; 75 55
     12537    jne short 083b6h                          ; 75 55
    1240312538    mov BL, strict byte 090h                  ; b3 90
    12404     jmp short 08373h                          ; eb 0a
     12539    jmp short 0836fh                          ; eb 0a
    1240512540    mov BL, strict byte 098h                  ; b3 98
    12406     jmp short 08373h                          ; eb 06
     12541    jmp short 0836fh                          ; eb 06
    1240712542    mov BL, strict byte 0a0h                  ; b3 a0
    12408     jmp short 08373h                          ; eb 02
     12543    jmp short 0836fh                          ; eb 02
    1240912544    mov BL, strict byte 0a8h                  ; b3 a8
    1241012545    mov cl, bl                                ; 88 d9
     
    1241212547    xor ch, ch                                ; 30 ed
    1241312548    mov ax, cx                                ; 89 c8
    12414     call 016ach                               ; e8 2d 93
     12549    call 016ach                               ; e8 31 93
    1241512550    test al, al                               ; 84 c0
    12416     je short 083bah                           ; 74 37
     12551    je short 083b6h                           ; 74 37
    1241712552    mov al, bl                                ; 88 d8
    1241812553    db  0feh, 0c0h
    1241912554    ; inc al                                    ; fe c0
    1242012555    xor ah, ah                                ; 30 e4
    12421     call 016ach                               ; e8 20 93
     12556    call 016ach                               ; e8 24 93
    1242212557    xor ah, ah                                ; 30 e4
    1242312558    mov dx, ax                                ; 89 c2
    1242412559    sal dx, 008h                              ; c1 e2 08
    1242512560    mov al, bl                                ; 88 d8
    12426     call 016ach                               ; e8 14 93
     12561    call 016ach                               ; e8 18 93
    1242712562    xor ah, ah                                ; 30 e4
    1242812563    add ax, dx                                ; 01 d0
     
    1243212567    add AL, strict byte 002h                  ; 04 02
    1243312568    xor ah, ah                                ; 30 e4
    12434     call 016ach                               ; e8 04 93
     12569    call 016ach                               ; e8 08 93
    1243512570    xor ah, ah                                ; 30 e4
    1243612571    mov word [bp-018h], ax                    ; 89 46 e8
    1243712572    mov ax, cx                                ; 89 c8
    12438     call 016ach                               ; e8 fa 92
     12573    call 016ach                               ; e8 fe 92
    1243912574    xor ah, ah                                ; 30 e4
    1244012575    mov word [bp-026h], ax                    ; 89 46 da
    12441     jmp near 084a8h                           ; e9 ee 00
     12576    jmp near 084a4h                           ; e9 ee 00
    1244212577    mov ax, word [bp-012h]                    ; 8b 46 ee
    1244312578    mov bx, word [bp-010h]                    ; 8b 5e f0
     
    1244512580    mov dx, word [bp-014h]                    ; 8b 56 ec
    1244612581    mov si, strict word 0000ch                ; be 0c 00
    12447     call 09faah                               ; e8 de 1b
     12582    call 09f80h                               ; e8 b8 1b
    1244812583    mov word [bp-02ah], ax                    ; 89 46 d6
    1244912584    mov word [bp-016h], bx                    ; 89 5e ea
     
    1245212587    mov ax, word [bp-012h]                    ; 8b 46 ee
    1245312588    test ax, ax                               ; 85 c0
    12454     jnbe short 083f4h                         ; 77 15
    12455     je short 083e4h                           ; 74 03
    12456     jmp near 08469h                           ; e9 85 00
     12589    jnbe short 083f0h                         ; 77 15
     12590    je short 083e0h                           ; 74 03
     12591    jmp near 08465h                           ; e9 85 00
    1245712592    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    12458     jnbe short 083f4h                         ; 77 0a
    12459     jne short 083e1h                          ; 75 f5
     12593    jnbe short 083f0h                         ; 77 0a
     12594    jne short 083ddh                          ; 75 f5
    1246012595    cmp word [bp-01ch], strict byte 00040h    ; 83 7e e4 40
    12461     jnbe short 083f4h                         ; 77 02
    12462     jne short 08469h                          ; 75 75
     12596    jnbe short 083f0h                         ; 77 02
     12597    jne short 08465h                          ; 75 75
    1246312598    mov word [bp-018h], 000ffh                ; c7 46 e8 ff 00
    1246412599    mov word [bp-026h], strict word 0003fh    ; c7 46 da 3f 00
     
    1246712602    mov dx, word [bp-014h]                    ; 8b 56 ec
    1246812603    mov si, strict word 00006h                ; be 06 00
    12469     call 09faah                               ; e8 9d 1b
     12604    call 09f80h                               ; e8 77 1b
    1247012605    mov si, word [bp-01eh]                    ; 8b 76 e2
    1247112606    add si, dx                                ; 01 d6
     
    1248512620    mov dx, si                                ; 89 f2
    1248612621    mov si, strict word 00008h                ; be 08 00
    12487     call 09faah                               ; e8 6d 1b
     12622    call 09f80h                               ; e8 47 1b
    1248812623    mov word [bp-02eh], bx                    ; 89 5e d2
    1248912624    mov word [bp-030h], cx                    ; 89 4e d0
     
    1249412629    mov dx, word [bp-036h]                    ; 8b 56 ca
    1249512630    mov si, strict word 00010h                ; be 10 00
    12496     call 09faah                               ; e8 52 1b
     12631    call 09f80h                               ; e8 2c 1b
    1249712632    mov si, word [bp-032h]                    ; 8b 76 ce
    1249812633    add si, dx                                ; 01 d6
     
    1250112636    mov ax, word [bp-02eh]                    ; 8b 46 d2
    1250212637    adc ax, bx                                ; 11 d8
    12503     jmp short 084a8h                          ; eb 3f
     12638    jmp short 084a4h                          ; eb 3f
    1250412639    test ax, ax                               ; 85 c0
    12505     jnbe short 0847fh                         ; 77 12
    12506     jne short 0848bh                          ; 75 1c
     12640    jnbe short 0847bh                         ; 77 12
     12641    jne short 08487h                          ; 75 1c
    1250712642    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    12508     jnbe short 0847fh                         ; 77 0a
    12509     jne short 0848bh                          ; 75 14
     12643    jnbe short 0847bh                         ; 77 0a
     12644    jne short 08487h                          ; 75 14
    1251012645    cmp word [bp-01ch], strict byte 00020h    ; 83 7e e4 20
    12511     jnbe short 0847fh                         ; 77 02
    12512     jne short 0848bh                          ; 75 0c
     12646    jnbe short 0847bh                         ; 77 02
     12647    jne short 08487h                          ; 75 0c
    1251312648    mov word [bp-018h], 00080h                ; c7 46 e8 80 00
    1251412649    mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
    12515     jmp short 084a4h                          ; eb 19
     12650    jmp short 084a0h                          ; eb 19
    1251612651    mov word [bp-018h], strict word 00040h    ; c7 46 e8 40 00
    1251712652    mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
     
    1252012655    mov dx, word [bp-014h]                    ; 8b 56 ec
    1252112656    mov si, strict word 0000bh                ; be 0b 00
    12522     call 09faah                               ; e8 06 1b
     12657    call 09f80h                               ; e8 e0 1a
    1252312658    mov si, dx                                ; 89 d6
    1252412659    mov dx, cx                                ; 89 ca
     
    1255512690    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1255612691    test dx, dx                               ; 85 d2
    12557     jne short 0851ah                          ; 75 06
     12692    jne short 08516h                          ; 75 06
    1255812693    cmp si, 00400h                            ; 81 fe 00 04
    12559     jbe short 08528h                          ; 76 0e
     12694    jbe short 08524h                          ; 76 0e
    1256012695    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1256112696    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12562     jmp short 08530h                          ; eb 08
     12697    jmp short 0852ch                          ; eb 08
    1256312698    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1256412699    mov word [es:bx+032h], si                 ; 26 89 77 32
     
    1256612701    mov cx, ds                                ; 8c d9
    1256712702    mov ax, strict word 00004h                ; b8 04 00
    12568     call 01923h                               ; e8 e8 93
     12703    call 01923h                               ; e8 ec 93
    1256912704    push word [bp-012h]                       ; ff 76 ee
    1257012705    push word [bp-010h]                       ; ff 76 f0
     
    1258112716    push 00c18h                               ; 68 18 0c
    1258212717    push strict byte 00004h                   ; 6a 04
    12583     call 01966h                               ; e8 06 94
     12718    call 01966h                               ; e8 0a 94
    1258412719    add sp, strict byte 00018h                ; 83 c4 18
    1258512720    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    1260912744    mov dx, strict word 00075h                ; ba 75 00
    1261012745    mov ax, strict word 00040h                ; b8 40 00
    12611     call 01650h                               ; e8 9c 90
     12746    call 01650h                               ; e8 a0 90
    1261212747    mov bl, al                                ; 88 c3
    1261312748    db  0feh, 0c3h
     
    1261612751    mov dx, strict word 00075h                ; ba 75 00
    1261712752    mov ax, strict word 00040h                ; b8 40 00
    12618     call 0165eh                               ; e8 9b 90
     12753    call 0165eh                               ; e8 9f 90
    1261912754    inc byte [bp-00ch]                        ; fe 46 f4
    12620     jmp near 0865ah                           ; e9 91 00
     12755    jmp near 08656h                           ; e9 91 00
    1262112756    mov bx, 00da0h                            ; bb a0 0d
    1262212757    mov cx, ds                                ; 8c d9
    1262312758    mov ax, strict word 00004h                ; b8 04 00
    12624     call 01923h                               ; e8 4f 93
     12759    call 01923h                               ; e8 53 93
    1262512760    push word [bp-022h]                       ; ff 76 de
    1262612761    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1262912764    push 00c46h                               ; 68 46 0c
    1263012765    push strict byte 00004h                   ; 6a 04
    12631     call 01966h                               ; e8 81 93
     12766    call 01966h                               ; e8 85 93
    1263212767    add sp, strict byte 00008h                ; 83 c4 08
    1263312768    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1263512770    mov byte [bp-00eh], al                    ; 88 46 f2
    1263612771    test byte [bp-00245h], 080h               ; f6 86 bb fd 80
    12637     je short 085fch                           ; 74 05
     12772    je short 085f8h                           ; 74 05
    1263812773    mov dx, strict word 00001h                ; ba 01 00
    12639     jmp short 085feh                          ; eb 02
     12774    jmp short 085fah                          ; eb 02
    1264012775    xor dx, dx                                ; 31 d2
    1264112776    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1267312808    inc word [bp-022h]                        ; ff 46 de
    1267412809    cmp word [bp-022h], strict byte 00010h    ; 83 7e de 10
    12675     jl short 08671h                           ; 7c 03
    12676     jmp near 086e9h                           ; e9 78 00
     12810    jl short 0866dh                           ; 7c 03
     12811    jmp near 086e5h                           ; e9 78 00
    1267712812    mov byte [bp-046h], 012h                  ; c6 46 ba 12
    1267812813    xor al, al                                ; 30 c0
     
    1269312828    lea bx, [bp-046h]                         ; 8d 5e ba
    1269412829    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12695     call 07d7bh                               ; e8 d7 f6
     12830    call 07d77h                               ; e8 d7 f6
    1269612831    test al, al                               ; 84 c0
    12697     je short 086b6h                           ; 74 0e
     12832    je short 086b2h                           ; 74 0e
    1269812833    push 00b92h                               ; 68 92 0b
    1269912834    push 00bb2h                               ; 68 b2 0b
    1270012835    push strict byte 00007h                   ; 6a 07
    12701     call 01966h                               ; e8 b3 92
     12836    call 01966h                               ; e8 b7 92
    1270212837    add sp, strict byte 00006h                ; 83 c4 06
    1270312838    mov es, [bp-020h]                         ; 8e 46 e0
     
    1270512840    mov byte [bp-00ch], al                    ; 88 46 f4
    1270612841    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12707     jne short 086d2h                          ; 75 0a
     12842    jne short 086ceh                          ; 75 0a
    1270812843    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
    12709     jne short 086d2h                          ; 75 03
    12710     jmp near 08271h                           ; e9 9f fb
     12844    jne short 086ceh                          ; 75 03
     12845    jmp near 0826dh                           ; e9 9f fb
    1271112846    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12712     jne short 0865ah                          ; 75 81
     12847    jne short 08656h                          ; 75 81
    1271312848    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
    1271412849    and AL, strict byte 01fh                  ; 24 1f
    1271512850    cmp AL, strict byte 005h                  ; 3c 05
    12716     jne short 086e6h                          ; 75 03
    12717     jmp near 085c9h                           ; e9 e3 fe
    12718     jmp near 0865ah                           ; e9 71 ff
     12851    jne short 086e2h                          ; 75 03
     12852    jmp near 085c5h                           ; e9 e3 fe
     12853    jmp near 08656h                           ; e9 71 ff
    1271912854    lea sp, [bp-00ah]                         ; 8d 66 f6
    1272012855    pop di                                    ; 5f
     
    1272512860    pop bp                                    ; 5d
    1272612861    retn                                      ; c3
    12727 _scsi_init:                                  ; 0xf86f3 LB 0x66
     12862_scsi_init:                                  ; 0xf86ef LB 0x66
    1272812863    push bp                                   ; 55
    1272912864    mov bp, sp                                ; 89 e5
    1273012865    mov dx, strict word 0000eh                ; ba 0e 00
    1273112866    mov ax, strict word 00040h                ; b8 40 00
    12732     call 0166ch                               ; e8 6d 8f
     12867    call 0166ch                               ; e8 71 8f
    1273312868    mov bx, 00122h                            ; bb 22 01
    1273412869    mov es, ax                                ; 8e c0
     
    1274112876    ; sub ah, ah                                ; 2a e4
    1274212877    cmp AL, strict byte 055h                  ; 3c 55
    12743     jne short 08723h                          ; 75 0c
     12878    jne short 0871fh                          ; 75 0c
    1274412879    xor al, al                                ; 30 c0
    1274512880    mov dx, 00433h                            ; ba 33 04
    1274612881    out DX, AL                                ; ee
    1274712882    mov ax, 00430h                            ; b8 30 04
    12748     call 0824dh                               ; e8 2a fb
     12883    call 08249h                               ; e8 2a fb
    1274912884    mov AL, strict byte 055h                  ; b0 55
    1275012885    mov dx, 00436h                            ; ba 36 04
     
    1275412889    ; sub ah, ah                                ; 2a e4
    1275512890    cmp AL, strict byte 055h                  ; 3c 55
    12756     jne short 0873ch                          ; 75 0c
     12891    jne short 08738h                          ; 75 0c
    1275712892    xor al, al                                ; 30 c0
    1275812893    mov dx, 00437h                            ; ba 37 04
    1275912894    out DX, AL                                ; ee
    1276012895    mov ax, 00434h                            ; b8 34 04
    12761     call 0824dh                               ; e8 11 fb
     12896    call 08249h                               ; e8 11 fb
    1276212897    mov AL, strict byte 055h                  ; b0 55
    1276312898    mov dx, 0043ah                            ; ba 3a 04
     
    1276712902    ; sub ah, ah                                ; 2a e4
    1276812903    cmp AL, strict byte 055h                  ; 3c 55
    12769     jne short 08755h                          ; 75 0c
     12904    jne short 08751h                          ; 75 0c
    1277012905    xor al, al                                ; 30 c0
    1277112906    mov dx, 0043bh                            ; ba 3b 04
    1277212907    out DX, AL                                ; ee
    1277312908    mov ax, 00438h                            ; b8 38 04
    12774     call 0824dh                               ; e8 f8 fa
     12909    call 08249h                               ; e8 f8 fa
    1277512910    mov sp, bp                                ; 89 ec
    1277612911    pop bp                                    ; 5d
    1277712912    retn                                      ; c3
    12778 ahci_ctrl_extract_bits_:                     ; 0xf8759 LB 0x1c
     12913ahci_ctrl_extract_bits_:                     ; 0xf8755 LB 0x1c
    1277912914    push si                                   ; 56
    1278012915    push bp                                   ; 55
     
    1278512920    mov cl, byte [bp+006h]                    ; 8a 4e 06
    1278612921    xor ch, ch                                ; 30 ed
    12787     jcxz 08770h                               ; e3 06
     12922    jcxz 0876ch                               ; e3 06
    1278812923    shr dx, 1                                 ; d1 ea
    1278912924    rcr ax, 1                                 ; d1 d8
    12790     loop 0876ah                               ; e2 fa
     12925    loop 08766h                               ; e2 fa
    1279112926    pop bp                                    ; 5d
    1279212927    pop si                                    ; 5e
    1279312928    retn 00002h                               ; c2 02 00
    12794 ahci_addr_to_phys_:                          ; 0xf8775 LB 0x1e
     12929ahci_addr_to_phys_:                          ; 0xf8771 LB 0x1e
    1279512930    push bx                                   ; 53
    1279612931    push cx                                   ; 51
     
    1280312938    sal ax, 1                                 ; d1 e0
    1280412939    rcl dx, 1                                 ; d1 d2
    12805     loop 08783h                               ; e2 fa
     12940    loop 0877fh                               ; e2 fa
    1280612941    xor cx, cx                                ; 31 c9
    1280712942    add ax, bx                                ; 01 d8
     
    1281112946    pop bx                                    ; 5b
    1281212947    retn                                      ; c3
    12813 ahci_port_cmd_sync_:                         ; 0xf8793 LB 0x156
     12948ahci_port_cmd_sync_:                         ; 0xf878f LB 0x156
    1281412949    push bp                                   ; 55
    1281512950    mov bp, sp                                ; 89 e5
     
    1282612961    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1282712962    cmp AL, strict byte 0ffh                  ; 3c ff
    12828     jne short 087b6h                          ; 75 03
    12829     jmp near 088e1h                           ; e9 2b 01
     12963    jne short 087b2h                          ; 75 03
     12964    jmp near 088ddh                           ; e9 2b 01
    1283012965    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    1283112966    xor ah, ah                                ; 30 e4
     
    1284012975    lea ax, [si+00080h]                       ; 8d 84 80 00
    1284112976    mov dx, cx                                ; 89 ca
    12842     call 08775h                               ; e8 92 ff
     12977    call 08771h                               ; e8 92 ff
    1284312978    mov es, cx                                ; 8e c1
    1284412979    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1290613041    xchg dx, ax                               ; 92
    1290713042    test dh, 040h                             ; f6 c6 40
    12908     jne short 08874h                          ; 75 04
     13043    jne short 08870h                          ; 75 04
    1290913044    test AL, strict byte 001h                 ; a8 01
    12910     je short 08878h                           ; 74 04
     13045    je short 08874h                           ; 74 04
    1291113046    mov AL, strict byte 001h                  ; b0 01
    12912     jmp short 0887ah                          ; eb 02
     13047    jmp short 08876h                          ; eb 02
    1291313048    xor al, al                                ; 30 c0
    1291413049    test al, al                               ; 84 c0
    12915     je short 08847h                           ; 74 c9
     13050    je short 08843h                           ; 74 c9
    1291613051    mov al, byte [bp-008h]                    ; 8a 46 f8
    1291713052    xor ah, ah                                ; 30 e4
     
    1296913104    pop bp                                    ; 5d
    1297013105    retn                                      ; c3
    12971 ahci_cmd_data_:                              ; 0xf88e9 LB 0x267
     13106ahci_cmd_data_:                              ; 0xf88e5 LB 0x267
    1297213107    push bp                                   ; 55
    1297313108    mov bp, sp                                ; 89 e5
     
    1299413129    mov ax, 00080h                            ; b8 80 00
    1299513130    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12996     call 09fbah                               ; e8 93 16
     13131    call 09fa0h                               ; e8 7d 16
    1299713132    mov es, [bp-00ah]                         ; 8e 46 f6
    1299813133    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1301213147    mov dx, word [es:si]                      ; 26 8b 14
    1301313148    mov si, strict word 00008h                ; be 08 00
    13014     call 09faah                               ; e8 3f 16
     13149    call 09f80h                               ; e8 19 16
    1301513150    mov es, [bp-00ah]                         ; 8e 46 f6
    1301613151    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1302313158    mov dx, word [es:si]                      ; 26 8b 14
    1302413159    mov si, strict word 00010h                ; be 10 00
    13025     call 09faah                               ; e8 19 16
     13160    call 09f80h                               ; e8 f3 15
    1302613161    mov es, [bp-00ah]                         ; 8e 46 f6
    1302713162    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1303513170    mov dx, word [es:si]                      ; 26 8b 14
    1303613171    mov si, strict word 00018h                ; be 18 00
    13037     call 09faah                               ; e8 ed 15
     13172    call 09f80h                               ; e8 c7 15
    1303813173    mov es, [bp-00ah]                         ; 8e 46 f6
    1303913174    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1304613181    mov dx, word [es:si]                      ; 26 8b 14
    1304713182    mov si, strict word 00020h                ; be 20 00
    13048     call 09faah                               ; e8 c7 15
     13183    call 09f80h                               ; e8 a1 15
    1304913184    mov es, [bp-00ah]                         ; 8e 46 f6
    1305013185    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1305713192    mov dx, word [es:si]                      ; 26 8b 14
    1305813193    mov si, strict word 00028h                ; be 28 00
    13059     call 09faah                               ; e8 a1 15
     13194    call 09f80h                               ; e8 7b 15
    1306013195    mov es, [bp-00ah]                         ; 8e 46 f6
    1306113196    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1307113206    mov bx, word [bp-010h]                    ; 8b 5e f0
    1307213207    xor cx, cx                                ; 31 c9
    13073     call 09f69h                               ; e8 2b 15
     13208    call 09f30h                               ; e8 f6 14
    1307413209    push dx                                   ; 52
    1307513210    push ax                                   ; 50
     
    1308113216    mov ax, 0026ah                            ; b8 6a 02
    1308213217    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13083     call 09e85h                               ; e8 2b 14
     13218    call 09e81h                               ; e8 2b 14
    1308413219    mov es, [bp-00ah]                         ; 8e 46 f6
    1308513220    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1310413239    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1310513240    test ax, ax                               ; 85 c0
    13106     je short 08aech                           ; 74 3b
     13241    je short 08ae8h                           ; 74 3b
    1310713242    dec ax                                    ; 48
    1310813243    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1312213257    mov al, byte [bp-008h]                    ; 8a 46 f8
    1312313258    cmp AL, strict byte 035h                  ; 3c 35
    13124     jne short 08af9h                          ; 75 06
     13259    jne short 08af5h                          ; 75 06
    1312513260    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13126     jmp short 08b10h                          ; eb 17
     13261    jmp short 08b0ch                          ; eb 17
    1312713262    cmp AL, strict byte 0a0h                  ; 3c a0
    13128     jne short 08b0ch                          ; 75 0f
     13263    jne short 08b08h                          ; 75 0f
    1312913264    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1313013265    les bx, [bp-00eh]                         ; c4 5e f2
    1313113266    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13132     jmp short 08b10h                          ; eb 04
     13267    jmp short 08b0ch                          ; eb 04
    1313313268    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1313413269    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1313713272    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1313813273    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13139     call 08793h                               ; e8 71 fc
     13274    call 0878fh                               ; e8 71 fc
    1314013275    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1314113276    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1314413279    add ax, 0026ah                            ; 05 6a 02
    1314513280    mov dx, cx                                ; 89 ca
    13146     call 09efch                               ; e8 c5 13
     13281    call 09ef8h                               ; e8 c5 13
    1314713282    mov es, cx                                ; 8e c1
    1314813283    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1314913284    test al, al                               ; 84 c0
    13150     je short 08b46h                           ; 74 05
     13285    je short 08b42h                           ; 74 05
    1315113286    mov ax, strict word 00004h                ; b8 04 00
    13152     jmp short 08b48h                          ; eb 02
     13287    jmp short 08b44h                          ; eb 02
    1315313288    xor ah, ah                                ; 30 e4
    1315413289    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1315813293    pop bp                                    ; 5d
    1315913294    retn                                      ; c3
    13160 ahci_port_deinit_current_:                   ; 0xf8b50 LB 0x180
     13295ahci_port_deinit_current_:                   ; 0xf8b4c LB 0x180
    1316113296    push bp                                   ; 55
    1316213297    mov bp, sp                                ; 89 e5
     
    1317313308    mov byte [bp-00ah], al                    ; 88 46 f6
    1317413309    cmp AL, strict byte 0ffh                  ; 3c ff
    13175     je short 08bd1h                           ; 74 5f
     13310    je short 08bcdh                           ; 74 5f
    1317613311    xor ah, ah                                ; 30 e4
    1317713312    sal ax, 007h                              ; c1 e0 07
     
    1321713352    xchg dx, ax                               ; 92
    1321813353    test ax, 0c011h                           ; a9 11 c0
    13219     je short 08bd4h                           ; 74 07
     13354    je short 08bd0h                           ; 74 07
    1322013355    mov AL, strict byte 001h                  ; b0 01
    13221     jmp short 08bd6h                          ; eb 05
    13222     jmp near 08cc7h                           ; e9 f3 00
     13356    jmp short 08bd2h                          ; eb 05
     13357    jmp near 08cc3h                           ; e9 f3 00
    1322313358    xor al, al                                ; 30 c0
    1322413359    cmp AL, strict byte 001h                  ; 3c 01
    13225     je short 08ba4h                           ; 74 ca
     13360    je short 08ba0h                           ; 74 ca
    1322613361    mov cx, strict word 00020h                ; b9 20 00
    1322713362    xor bx, bx                                ; 31 db
    1322813363    mov ax, di                                ; 89 f8
    1322913364    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13230     call 09fbah                               ; e8 d3 13
     13365    call 09fa0h                               ; e8 bd 13
    1323113366    lea ax, [di+00080h]                       ; 8d 85 80 00
    1323213367    mov cx, strict word 00040h                ; b9 40 00
    1323313368    xor bx, bx                                ; 31 db
    1323413369    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13235     call 09fbah                               ; e8 c4 13
     13370    call 09fa0h                               ; e8 ae 13
    1323613371    lea ax, [di+00200h]                       ; 8d 85 00 02
    1323713372    mov cx, strict word 00060h                ; b9 60 00
    1323813373    xor bx, bx                                ; 31 db
    1323913374    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13240     call 09fbah                               ; e8 b5 13
     13375    call 09fa0h                               ; e8 9f 13
    1324113376    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1324213377    xor ah, ah                                ; 30 e4
     
    1334313478    pop bp                                    ; 5d
    1334413479    retn                                      ; c3
    13345 ahci_port_init_:                             ; 0xf8cd0 LB 0x24d
     13480ahci_port_init_:                             ; 0xf8ccc LB 0x24d
    1334613481    push bp                                   ; 55
    1334713482    mov bp, sp                                ; 89 e5
     
    1335313488    mov word [bp-00ah], dx                    ; 89 56 f6
    1335413489    mov byte [bp-008h], bl                    ; 88 5e f8
    13355     call 08b50h                               ; e8 6c fe
     13490    call 08b4ch                               ; e8 6c fe
    1335613491    mov al, bl                                ; 88 d8
    1335713492    xor ah, ah                                ; 30 e4
     
    1340213537    xchg dx, ax                               ; 92
    1340313538    test ax, 0c011h                           ; a9 11 c0
    13404     je short 08d55h                           ; 74 04
     13539    je short 08d51h                           ; 74 04
    1340513540    mov AL, strict byte 001h                  ; b0 01
    13406     jmp short 08d57h                          ; eb 02
     13541    jmp short 08d53h                          ; eb 02
    1340713542    xor al, al                                ; 30 c0
    1340813543    cmp AL, strict byte 001h                  ; 3c 01
    13409     je short 08d20h                           ; 74 c5
     13544    je short 08d1ch                           ; 74 c5
    1341013545    mov cx, strict word 00020h                ; b9 20 00
    1341113546    xor bx, bx                                ; 31 db
    1341213547    mov ax, si                                ; 89 f0
    1341313548    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13414     call 09fbah                               ; e8 52 12
     13549    call 09fa0h                               ; e8 3c 12
    1341513550    lea ax, [si+00080h]                       ; 8d 84 80 00
    1341613551    mov cx, strict word 00040h                ; b9 40 00
    1341713552    xor bx, bx                                ; 31 db
    1341813553    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13419     call 09fbah                               ; e8 43 12
     13554    call 09fa0h                               ; e8 2d 12
    1342013555    lea di, [si+00200h]                       ; 8d bc 00 02
    1342113556    mov cx, strict word 00060h                ; b9 60 00
     
    1342313558    mov ax, di                                ; 89 f8
    1342413559    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13425     call 09fbah                               ; e8 32 12
     13560    call 09fa0h                               ; e8 1c 12
    1342613561    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1342713562    xor bh, bh                                ; 30 ff
     
    1344113576    mov ax, di                                ; 89 f8
    1344213577    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13443     call 08775h                               ; e8 bf f9
     13578    call 08771h                               ; e8 bf f9
    1344413579    mov es, [bp-00ah]                         ; 8e 46 f6
    1344513580    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1348613621    mov ax, si                                ; 89 f0
    1348713622    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13488     call 08775h                               ; e8 53 f9
     13623    call 08771h                               ; e8 53 f9
    1348913624    mov es, [bp-00ah]                         ; 8e 46 f6
    1349013625    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1359113726    pop bp                                    ; 5d
    1359213727    retn                                      ; c3
    13593 @ahci_read_sectors:                          ; 0xf8f1d LB 0xa8
     13728@ahci_read_sectors:                          ; 0xf8f19 LB 0xa8
    1359413729    push bp                                   ; 55
    1359513730    mov bp, sp                                ; 89 e5
     
    1360213737    sub bx, strict byte 0000ch                ; 83 eb 0c
    1360313738    cmp bx, strict byte 00004h                ; 83 fb 04
    13604     jbe short 08f43h                          ; 76 0f
     13739    jbe short 08f3fh                          ; 76 0f
    1360513740    push bx                                   ; 53
    1360613741    push 00c62h                               ; 68 62 0c
    1360713742    push 00c74h                               ; 68 74 0c
    1360813743    push strict byte 00007h                   ; 6a 07
    13609     call 01966h                               ; e8 26 8a
     13744    call 01966h                               ; e8 2a 8a
    1361013745    add sp, strict byte 00008h                ; 83 c4 08
    1361113746    xor di, di                                ; 31 ff
     
    1362213757    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
    1362313758    xor ax, ax                                ; 31 c0
    13624     call 08cd0h                               ; e8 60 fd
     13759    call 08ccch                               ; e8 60 fd
    1362513760    mov bx, strict word 00025h                ; bb 25 00
    1362613761    mov ax, si                                ; 89 f0
    1362713762    mov dx, word [bp+006h]                    ; 8b 56 06
    13628     call 088e9h                               ; e8 6e f9
     13763    call 088e5h                               ; e8 6e f9
    1362913764    mov word [bp-006h], ax                    ; 89 46 fa
    1363013765    mov es, [bp+006h]                         ; 8e 46 06
     
    1365513790    pop bp                                    ; 5d
    1365613791    retn 00004h                               ; c2 04 00
    13657 @ahci_write_sectors:                         ; 0xf8fc5 LB 0x86
     13792@ahci_write_sectors:                         ; 0xf8fc1 LB 0x86
    1365813793    push bp                                   ; 55
    1365913794    mov bp, sp                                ; 89 e5
     
    1366713802    sub dx, strict byte 0000ch                ; 83 ea 0c
    1366813803    cmp dx, strict byte 00004h                ; 83 fa 04
    13669     jbe short 08fefh                          ; 76 0f
     13804    jbe short 08febh                          ; 76 0f
    1367013805    push dx                                   ; 52
    1367113806    push 00c93h                               ; 68 93 0c
    1367213807    push 00c74h                               ; 68 74 0c
    1367313808    push strict byte 00007h                   ; 6a 07
    13674     call 01966h                               ; e8 7a 89
     13809    call 01966h                               ; e8 7e 89
    1367513810    add sp, strict byte 00008h                ; 83 c4 08
    1367613811    xor bx, bx                                ; 31 db
     
    1368713822    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1368813823    xor ax, ax                                ; 31 c0
    13689     call 08cd0h                               ; e8 b6 fc
     13824    call 08ccch                               ; e8 b6 fc
    1369013825    mov bx, strict word 00035h                ; bb 35 00
    1369113826    mov ax, si                                ; 89 f0
    1369213827    mov dx, cx                                ; 89 ca
    13693     call 088e9h                               ; e8 c5 f8
     13828    call 088e5h                               ; e8 c5 f8
    1369413829    mov dx, ax                                ; 89 c2
    1369513830    mov es, cx                                ; 8e c1
     
    1370613841    pop bp                                    ; 5d
    1370713842    retn 00004h                               ; c2 04 00
    13708 ahci_cmd_packet_:                            ; 0xf904b LB 0x18a
     13843ahci_cmd_packet_:                            ; 0xf9047 LB 0x18a
    1370913844    push bp                                   ; 55
    1371013845    mov bp, sp                                ; 89 e5
     
    1371813853    mov dx, strict word 0000eh                ; ba 0e 00
    1371913854    mov ax, strict word 00040h                ; b8 40 00
    13720     call 0166ch                               ; e8 06 86
     13855    call 0166ch                               ; e8 0a 86
    1372113856    mov si, 00122h                            ; be 22 01
    1372213857    mov word [bp-008h], ax                    ; 89 46 f8
    1372313858    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    13724     jne short 09091h                          ; 75 1f
     13859    jne short 0908dh                          ; 75 1f
    1372513860    mov bx, 00da0h                            ; bb a0 0d
    1372613861    mov cx, ds                                ; 8c d9
    1372713862    mov ax, strict word 00004h                ; b8 04 00
    13728     call 01923h                               ; e8 a6 88
     13863    call 01923h                               ; e8 aa 88
    1372913864    push 00ca6h                               ; 68 a6 0c
    1373013865    push 00cb6h                               ; 68 b6 0c
    1373113866    push strict byte 00004h                   ; 6a 04
    13732     call 01966h                               ; e8 de 88
     13867    call 01966h                               ; e8 e2 88
    1373313868    add sp, strict byte 00006h                ; 83 c4 06
    1373413869    mov ax, strict word 00001h                ; b8 01 00
    13735     jmp near 091cch                           ; e9 3b 01
     13870    jmp near 091c8h                           ; e9 3b 01
    1373613871    test byte [bp+004h], 001h                 ; f6 46 04 01
    13737     jne short 0908bh                          ; 75 f4
     13872    jne short 09087h                          ; 75 f4
    1373813873    mov ax, word [bp+006h]                    ; 8b 46 06
    1373913874    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1374113876    sal ax, 1                                 ; d1 e0
    1374213877    rcl dx, 1                                 ; d1 d2
    13743     loop 090a0h                               ; e2 fa
     13878    loop 0909ch                               ; e2 fa
    1374413879    mov es, [bp-008h]                         ; 8e 46 f8
    1374513880    mov word [es:si], ax                      ; 26 89 04
     
    1375513890    mov dx, word [bp+008h]                    ; 8b 56 08
    1375613891    xor cx, cx                                ; 31 c9
    13757     call 09f30h                               ; e8 57 0e
     13892    call 09f50h                               ; e8 7b 0e
    1375813893    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1375913894    xor di, di                                ; 31 ff
     
    1377413909    mov bx, ax                                ; 89 c3
    1377513910    xor al, al                                ; 30 c0
    13776     call 08cd0h                               ; e8 b8 fb
     13911    call 08ccch                               ; e8 b8 fb
    1377713912    mov al, byte [bp-006h]                    ; 8a 46 fa
    1377813913    xor ah, ah                                ; 30 e4
     
    1378213917    mov ax, 000c0h                            ; b8 c0 00
    1378313918    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13784     call 09fc7h                               ; e8 9a 0e
     13919    call 09fb0h                               ; e8 87 0e
    1378513920    mov es, [bp-008h]                         ; 8e 46 f8
    1378613921    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1378913924    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1379013925    test ax, ax                               ; 85 c0
    13791     je short 0916bh                           ; 74 27
     13926    je short 09167h                           ; 74 27
    1379213927    dec ax                                    ; 48
    1379313928    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1380213937    mov ax, si                                ; 89 f0
    1380313938    mov dx, word [bp-008h]                    ; 8b 56 f8
    13804     call 088e9h                               ; e8 73 f7
     13939    call 088e5h                               ; e8 73 f7
    1380513940    les bx, [bp-00eh]                         ; c4 5e f2
    1380613941    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
     
    1382913964    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1383013965    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    13831     jne short 091cah                          ; 75 05
     13966    jne short 091c6h                          ; 75 05
    1383213967    mov ax, strict word 00004h                ; b8 04 00
    13833     jmp short 091cch                          ; eb 02
     13968    jmp short 091c8h                          ; eb 02
    1383413969    xor ax, ax                                ; 31 c0
    1383513970    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1383813973    pop bp                                    ; 5d
    1383913974    retn 0000ch                               ; c2 0c 00
    13840 ahci_port_detect_device_:                    ; 0xf91d5 LB 0x4e3
     13975ahci_port_detect_device_:                    ; 0xf91d1 LB 0x4e3
    1384113976    push bp                                   ; 55
    1384213977    mov bp, sp                                ; 89 e5
     
    1385113986    xor ch, ch                                ; 30 ed
    1385213987    mov bx, cx                                ; 89 cb
    13853     call 08cd0h                               ; e8 e0 fa
     13988    call 08ccch                               ; e8 e0 fa
    1385413989    mov dx, strict word 0000eh                ; ba 0e 00
    1385513990    mov ax, strict word 00040h                ; b8 40 00
    13856     call 0166ch                               ; e8 73 84
     13991    call 0166ch                               ; e8 77 84
    1385713992    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
    1385813993    mov word [bp-016h], ax                    ; 89 46 ea
     
    1392414059    mov bx, strict word 0000fh                ; bb 0f 00
    1392514060    xor cx, cx                                ; 31 c9
    13926     call 08759h                               ; e8 b5 f4
     14061    call 08755h                               ; e8 b5 f4
    1392714062    test ax, ax                               ; 85 c0
    13928     jne short 092abh                          ; 75 03
    13929     jmp near 096b0h                           ; e9 05 04
     14063    jne short 092a7h                          ; 75 03
     14064    jmp near 096ach                           ; e9 05 04
    1393014065    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1393114066    xor ah, ah                                ; 30 e4
     
    1395614091    mov bx, strict word 0000fh                ; bb 0f 00
    1395714092    xor cx, cx                                ; 31 c9
    13958     call 08759h                               ; e8 67 f4
     14093    call 08755h                               ; e8 67 f4
    1395914094    cmp ax, strict word 00001h                ; 3d 01 00
    13960     je short 092abh                           ; 74 b4
     14095    je short 092a7h                           ; 74 b4
    1396114096    push strict byte 00000h                   ; 6a 00
    1396214097    mov bx, strict word 0000fh                ; bb 0f 00
     
    1396414099    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1396514100    mov dx, di                                ; 89 fa
    13966     call 08759h                               ; e8 53 f4
     14101    call 08755h                               ; e8 53 f4
    1396714102    cmp ax, strict word 00003h                ; 3d 03 00
    13968     jne short 092a8h                          ; 75 9d
     14103    jne short 092a4h                          ; 75 9d
    1396914104    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1397014105    add ax, 00130h                            ; 05 30 01
     
    1399414129    mov byte [bp-008h], al                    ; 88 46 f8
    1399514130    cmp AL, strict byte 004h                  ; 3c 04
    13996     jc short 09355h                           ; 72 03
    13997     jmp near 096b0h                           ; e9 5b 03
     14131    jc short 09351h                           ; 72 03
     14132    jmp near 096ach                           ; e9 5b 03
    1399814133    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1399914134    add ax, 00118h                            ; 05 18 01
     
    1404514180    add cl, 00ch                              ; 80 c1 0c
    1404614181    test dx, dx                               ; 85 d2
    14047     jne short 0941bh                          ; 75 54
     14182    jne short 09417h                          ; 75 54
    1404814183    cmp ax, 00101h                            ; 3d 01 01
    14049     jne short 0941bh                          ; 75 4f
     14184    jne short 09417h                          ; 75 4f
    1405014185    mov es, [bp-016h]                         ; 8e 46 ea
    1405114186    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1406214197    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1406314198    mov dx, es                                ; 8c c2
    14064     call 088e9h                               ; e8 dd f4
     14199    call 088e5h                               ; e8 dd f4
    1406514200    mov byte [bp-00ah], cl                    ; 88 4e f6
    1406614201    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14067     je short 0941eh                           ; 74 08
     14202    je short 0941ah                           ; 74 08
    1406814203    mov ax, strict word 00001h                ; b8 01 00
    14069     jmp short 09420h                          ; eb 05
    14070     jmp near 095eeh                           ; e9 d0 01
     14204    jmp short 0941ch                          ; eb 05
     14205    jmp near 095eah                           ; e9 d0 01
    1407114206    xor ax, ax                                ; 31 c0
    1407214207    mov dl, al                                ; 88 c2
     
    1408414219    mov word [bp-01eh], ax                    ; 89 46 e2
    1408514220    cmp word [bp-014h], 00fffh                ; 81 7e ec ff 0f
    14086     jne short 0946fh                          ; 75 1e
     14221    jne short 0946bh                          ; 75 1e
    1408714222    cmp di, strict byte 0ffffh                ; 83 ff ff
    14088     jne short 0946fh                          ; 75 19
     14223    jne short 0946bh                          ; 75 19
    1408914224    mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
    1409014225    mov word [bp-01eh], ax                    ; 89 46 e2
     
    1412514260    mov al, byte [bp-008h]                    ; 8a 46 f8
    1412614261    cmp AL, strict byte 001h                  ; 3c 01
    14127     jc short 094eah                           ; 72 0c
    14128     jbe short 094f2h                          ; 76 12
     14262    jc short 094e6h                           ; 72 0c
     14263    jbe short 094eeh                          ; 76 12
    1412914264    cmp AL, strict byte 003h                  ; 3c 03
    14130     je short 094fah                           ; 74 16
     14265    je short 094f6h                           ; 74 16
    1413114266    cmp AL, strict byte 002h                  ; 3c 02
    14132     je short 094f6h                           ; 74 0e
    14133     jmp short 09542h                          ; eb 58
     14267    je short 094f2h                           ; 74 0e
     14268    jmp short 0953eh                          ; eb 58
    1413414269    test al, al                               ; 84 c0
    14135     jne short 09542h                          ; 75 54
     14270    jne short 0953eh                          ; 75 54
    1413614271    mov DL, strict byte 040h                  ; b2 40
    14137     jmp short 094fch                          ; eb 0a
     14272    jmp short 094f8h                          ; eb 0a
    1413814273    mov DL, strict byte 048h                  ; b2 48
    14139     jmp short 094fch                          ; eb 06
     14274    jmp short 094f8h                          ; eb 06
    1414014275    mov DL, strict byte 050h                  ; b2 50
    14141     jmp short 094fch                          ; eb 02
     14276    jmp short 094f8h                          ; eb 02
    1414214277    mov DL, strict byte 058h                  ; b2 58
    1414314278    mov bl, dl                                ; 88 d3
     
    1414514280    xor bh, bh                                ; 30 ff
    1414614281    mov ax, bx                                ; 89 d8
    14147     call 016ach                               ; e8 a4 81
     14282    call 016ach                               ; e8 a8 81
    1414814283    test al, al                               ; 84 c0
    14149     je short 09542h                           ; 74 36
     14284    je short 0953eh                           ; 74 36
    1415014285    mov al, dl                                ; 88 d0
    1415114286    db  0feh, 0c0h
    1415214287    ; inc al                                    ; fe c0
    1415314288    xor ah, ah                                ; 30 e4
    14154     call 016ach                               ; e8 97 81
     14289    call 016ach                               ; e8 9b 81
    1415514290    xor ah, ah                                ; 30 e4
    1415614291    mov cx, ax                                ; 89 c1
    1415714292    sal cx, 008h                              ; c1 e1 08
    1415814293    mov al, dl                                ; 88 d0
    14159     call 016ach                               ; e8 8b 81
     14294    call 016ach                               ; e8 8f 81
    1416014295    xor ah, ah                                ; 30 e4
    1416114296    add ax, cx                                ; 01 c8
     
    1416414299    add AL, strict byte 002h                  ; 04 02
    1416514300    xor ah, ah                                ; 30 e4
    14166     call 016ach                               ; e8 7b 81
     14301    call 016ach                               ; e8 7f 81
    1416714302    xor ah, ah                                ; 30 e4
    1416814303    mov word [bp-02ah], ax                    ; 89 46 d6
    1416914304    mov ax, bx                                ; 89 d8
    14170     call 016ach                               ; e8 71 81
     14305    call 016ach                               ; e8 75 81
    1417114306    xor ah, ah                                ; 30 e4
    1417214307    mov word [bp-026h], ax                    ; 89 46 da
    14173     jmp short 09554h                          ; eb 12
     14308    jmp short 09550h                          ; eb 12
    1417414309    push word [bp-01eh]                       ; ff 76 e2
    1417514310    push word [bp-012h]                       ; ff 76 ee
     
    1417814313    mov dx, ss                                ; 8c d2
    1417914314    lea ax, [bp-02ah]                         ; 8d 46 d6
    14180     call 05977h                               ; e8 23 c4
     14315    call 05977h                               ; e8 27 c4
    1418114316    mov bx, 00da0h                            ; bb a0 0d
    1418214317    mov cx, ds                                ; 8c d9
    1418314318    mov ax, strict word 00004h                ; b8 04 00
    14184     call 01923h                               ; e8 c4 83
     14319    call 01923h                               ; e8 c8 83
    1418514320    push word [bp-01eh]                       ; ff 76 e2
    1418614321    push word [bp-012h]                       ; ff 76 ee
     
    1420314338    push 00cd6h                               ; 68 d6 0c
    1420414339    push strict byte 00004h                   ; 6a 04
    14205     call 01966h                               ; e8 d6 83
     14340    call 01966h                               ; e8 da 83
    1420614341    add sp, strict byte 0001ch                ; 83 c4 1c
    1420714342    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    1423414369    mov dx, strict word 00075h                ; ba 75 00
    1423514370    mov ax, strict word 00040h                ; b8 40 00
    14236     call 01650h                               ; e8 74 80
     14371    call 01650h                               ; e8 78 80
    1423714372    mov bl, al                                ; 88 c3
    1423814373    db  0feh, 0c3h
     
    1424114376    mov dx, strict word 00075h                ; ba 75 00
    1424214377    mov ax, strict word 00040h                ; b8 40 00
    14243     call 0165eh                               ; e8 73 80
    14244     jmp near 0969fh                           ; e9 b1 00
     14378    call 0165eh                               ; e8 77 80
     14379    jmp near 0969bh                           ; e9 b1 00
    1424514380    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14246     jne short 09648h                          ; 75 54
     14381    jne short 09644h                          ; 75 54
    1424714382    cmp ax, 00101h                            ; 3d 01 01
    14248     jne short 09648h                          ; 75 4f
     14383    jne short 09644h                          ; 75 4f
    1424914384    mov es, [bp-016h]                         ; 8e 46 ea
    1425014385    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1426114396    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1426214397    mov dx, es                                ; 8c c2
    14263     call 088e9h                               ; e8 b0 f2
     14398    call 088e5h                               ; e8 b0 f2
    1426414399    mov byte [bp-00ah], cl                    ; 88 4e f6
    1426514400    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14266     je short 0964ah                           ; 74 07
     14401    je short 09646h                           ; 74 07
    1426714402    mov dx, strict word 00001h                ; ba 01 00
    14268     jmp short 0964ch                          ; eb 04
    14269     jmp short 0969fh                          ; eb 55
     14403    jmp short 09648h                          ; eb 04
     14404    jmp short 0969bh                          ; eb 55
    1427014405    xor dx, dx                                ; 31 d2
    1427114406    mov bl, byte [bp-008h]                    ; 8a 5e f8
     
    1430614441    pop bp                                    ; 5d
    1430714442    retn                                      ; c3
    14308 ahci_mem_alloc_:                             ; 0xf96b8 LB 0x43
     14443ahci_mem_alloc_:                             ; 0xf96b4 LB 0x43
    1430914444    push bp                                   ; 55
    1431014445    mov bp, sp                                ; 89 e5
     
    1431614451    mov dx, 00413h                            ; ba 13 04
    1431714452    xor ax, ax                                ; 31 c0
    14318     call 0166ch                               ; e8 a4 7f
     14453    call 0166ch                               ; e8 a8 7f
    1431914454    test ax, ax                               ; 85 c0
    14320     je short 096f1h                           ; 74 25
     14455    je short 096edh                           ; 74 25
    1432114456    dec ax                                    ; 48
    1432214457    mov bx, ax                                ; 89 c3
     
    1432514460    sal ax, 1                                 ; d1 e0
    1432614461    rcl dx, 1                                 ; d1 d2
    14327     loop 096d4h                               ; e2 fa
     14462    loop 096d0h                               ; e2 fa
    1432814463    mov si, ax                                ; 89 c6
    1432914464    mov di, dx                                ; 89 d7
     
    1433114466    shr di, 1                                 ; d1 ef
    1433214467    rcr si, 1                                 ; d1 de
    14333     loop 096e1h                               ; e2 fa
     14468    loop 096ddh                               ; e2 fa
    1433414469    mov dx, 00413h                            ; ba 13 04
    1433514470    xor ax, ax                                ; 31 c0
    14336     call 0167ah                               ; e8 8b 7f
     14471    call 0167ah                               ; e8 8f 7f
    1433714472    mov ax, si                                ; 89 f0
    1433814473    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1434414479    pop bp                                    ; 5d
    1434514480    retn                                      ; c3
    14346 ahci_hba_init_:                              ; 0xf96fb LB 0x16d
     14481ahci_hba_init_:                              ; 0xf96f7 LB 0x16d
    1434714482    push bp                                   ; 55
    1434814483    mov bp, sp                                ; 89 e5
     
    1435614491    mov dx, strict word 0000eh                ; ba 0e 00
    1435714492    mov ax, strict word 00040h                ; b8 40 00
    14358     call 0166ch                               ; e8 5b 7f
     14493    call 0166ch                               ; e8 5f 7f
    1435914494    mov bx, 00122h                            ; bb 22 01
    1436014495    mov di, ax                                ; 89 c7
     
    1437314508    shr eax, 010h                             ; 66 c1 e8 10
    1437414509    xchg dx, ax                               ; 92
    14375     call 096b8h                               ; e8 83 ff
     14510    call 096b4h                               ; e8 83 ff
    1437614511    mov word [bp-010h], ax                    ; 89 46 f0
    1437714512    test ax, ax                               ; 85 c0
    14378     jne short 0973fh                          ; 75 03
    14379     jmp near 09847h                           ; e9 08 01
     14513    jne short 0973bh                          ; 75 03
     14514    jmp near 09843h                           ; e9 08 01
    1438014515    mov ax, word [bp-010h]                    ; 8b 46 f0
    1438114516    mov es, di                                ; 8e c7
     
    1442714562    xchg dx, ax                               ; 92
    1442814563    test AL, strict byte 001h                 ; a8 01
    14429     jne short 09799h                          ; 75 de
     14564    jne short 09795h                          ; 75 de
    1443014565    xor ax, ax                                ; 31 c0
    1443114566    xor cx, cx                                ; 31 c9
     
    1444514580    mov bx, strict word 0001fh                ; bb 1f 00
    1444614581    xor cx, cx                                ; 31 c9
    14447     call 08759h                               ; e8 7a ef
     14582    call 08755h                               ; e8 7a ef
    1444814583    db  0feh, 0c0h
    1444914584    ; inc al                                    ; fe c0
    1445014585    mov byte [bp-00ch], al                    ; 88 46 f4
    1445114586    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    14452     jmp short 0980bh                          ; eb 21
     14587    jmp short 09807h                          ; eb 21
    1445314588    xor al, al                                ; 30 c0
    1445414589    test al, al                               ; 84 c0
    14455     je short 09802h                           ; 74 12
     14590    je short 097feh                           ; 74 12
    1445614591    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    1445714592    xor bh, bh                                ; 30 ff
    1445814593    xor ax, ax                                ; 31 c0
    1445914594    mov dx, word [bp-010h]                    ; 8b 56 f0
    14460     call 091d5h                               ; e8 d8 f9
     14595    call 091d1h                               ; e8 d8 f9
    1446114596    dec byte [bp-00ch]                        ; fe 4e f4
    14462     je short 09845h                           ; 74 43
     14597    je short 09841h                           ; 74 43
    1446314598    inc byte [bp-00eh]                        ; fe 46 f2
    1446414599    cmp byte [bp-00eh], 020h                  ; 80 7e f2 20
    14465     jnc short 09845h                          ; 73 3a
     14600    jnc short 09841h                          ; 73 3a
    1446614601    mov cl, byte [bp-00eh]                    ; 8a 4e f2
    1446714602    xor ch, ch                                ; 30 ed
    1446814603    mov bx, strict word 00001h                ; bb 01 00
    1446914604    xor di, di                                ; 31 ff
    14470     jcxz 0981dh                               ; e3 06
     14605    jcxz 09819h                               ; e3 06
    1447114606    sal bx, 1                                 ; d1 e3
    1447214607    rcl di, 1                                 ; d1 d7
    14473     loop 09817h                               ; e2 fa
     14608    loop 09813h                               ; e2 fa
    1447414609    mov ax, strict word 0000ch                ; b8 0c 00
    1447514610    xor cx, cx                                ; 31 c9
     
    1448714622    xchg dx, ax                               ; 92
    1448814623    test dx, di                               ; 85 fa
    14489     jne short 09841h                          ; 75 04
     14624    jne short 0983dh                          ; 75 04
    1449014625    test ax, bx                               ; 85 d8
    14491     je short 097eah                           ; 74 a9
     14626    je short 097e6h                           ; 74 a9
    1449214627    mov AL, strict byte 001h                  ; b0 01
    14493     jmp short 097ech                          ; eb a7
     14628    jmp short 097e8h                          ; eb a7
    1449414629    xor ax, ax                                ; 31 c0
    1449514630    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1450114636    pop bp                                    ; 5d
    1450214637    retn                                      ; c3
    14503     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 050h, 099h, 02eh, 099h, 034h, 099h, 03ah, 099h, 040h
    14504     db  099h, 046h, 099h, 04ch, 099h, 050h, 099h
    14505 _ahci_init:                                  ; 0xf9868 LB 0x119
     14638    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 04ch, 099h, 02ah, 099h, 030h, 099h, 036h, 099h, 03ch
     14639    db  099h, 042h, 099h, 048h, 099h, 04ch, 099h
     14640_ahci_init:                                  ; 0xf9864 LB 0x119
    1450614641    push bp                                   ; 55
    1450714642    mov bp, sp                                ; 89 e5
     
    1451014645    mov ax, 00601h                            ; b8 01 06
    1451114646    mov dx, strict word 00001h                ; ba 01 00
    14512     call 09d9ch                               ; e8 24 05
     14647    call 09d98h                               ; e8 24 05
    1451314648    mov dx, ax                                ; 89 c2
    1451414649    cmp ax, strict word 0ffffh                ; 3d ff ff
    14515     je short 098cbh                           ; 74 4c
     14650    je short 098c7h                           ; 74 4c
    1451614651    xor al, al                                ; 30 c0
    1451714652    shr ax, 008h                              ; c1 e8 08
     
    1452114656    xor ah, ah                                ; 30 e4
    1452214657    mov bx, strict word 00034h                ; bb 34 00
    14523     call 09da4h                               ; e8 10 05
     14658    call 09da0h                               ; e8 10 05
    1452414659    mov cl, al                                ; 88 c1
    1452514660    test cl, cl                               ; 84 c9
    14526     je short 098ceh                           ; 74 34
     14661    je short 098cah                           ; 74 34
    1452714662    mov bl, cl                                ; 88 cb
    1452814663    xor bh, bh                                ; 30 ff
     
    1453514670    mov dx, word [bp-010h]                    ; 8b 56 f0
    1453614671    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14537     call 09da4h                               ; e8 eb 04
     14672    call 09da0h                               ; e8 eb 04
    1453814673    cmp AL, strict byte 012h                  ; 3c 12
    14539     je short 098ceh                           ; 74 11
     14674    je short 098cah                           ; 74 11
    1454014675    mov bl, cl                                ; 88 cb
    1454114676    db  0feh, 0c3h
     
    1454414679    mov dx, word [bp-010h]                    ; 8b 56 f0
    1454514680    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14546     jmp short 09891h                          ; eb c6
    14547     jmp near 0997bh                           ; e9 ad 00
     14681    jmp short 0988dh                          ; eb c6
     14682    jmp near 09977h                           ; e9 ad 00
    1454814683    test cl, cl                               ; 84 c9
    14549     je short 098cbh                           ; 74 f9
     14684    je short 098c7h                           ; 74 f9
    1455014685    add cl, 002h                              ; 80 c1 02
    1455114686    mov bl, cl                                ; 88 cb
     
    1455914694    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1456014695    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14561     call 09da4h                               ; e8 b0 04
     14696    call 09da0h                               ; e8 b0 04
    1456214697    cmp AL, strict byte 010h                  ; 3c 10
    14563     jne short 098cbh                          ; 75 d3
     14698    jne short 098c7h                          ; 75 d3
    1456414699    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1456514700    mov bl, cl                                ; 88 cb
     
    1456814703    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1456914704    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14570     call 09dd2h                               ; e8 c6 04
     14705    call 09dceh                               ; e8 c6 04
    1457114706    mov dx, ax                                ; 89 c2
    1457214707    and ax, strict word 0000fh                ; 25 0f 00
    1457314708    sub ax, strict word 00004h                ; 2d 04 00
    1457414709    cmp ax, strict word 0000bh                ; 3d 0b 00
    14575     jnbe short 09950h                         ; 77 37
     14710    jnbe short 0994ch                         ; 77 37
    1457614711    push CS                                   ; 0e
    1457714712    pop ES                                    ; 07
    1457814713    mov cx, strict word 00008h                ; b9 08 00
    14579     mov di, 09851h                            ; bf 51 98
     14714    mov di, 0984dh                            ; bf 4d 98
    1458014715    repne scasb                               ; f2 ae
    1458114716    sal cx, 1                                 ; d1 e1
    1458214717    mov di, cx                                ; 89 cf
    14583     mov ax, word [cs:di-067a8h]               ; 2e 8b 85 58 98
     14718    mov ax, word [cs:di-067ach]               ; 2e 8b 85 54 98
    1458414719    jmp ax                                    ; ff e0
    1458514720    mov byte [bp-004h], 010h                  ; c6 46 fc 10
    14586     jmp short 09950h                          ; eb 1c
     14721    jmp short 0994ch                          ; eb 1c
    1458714722    mov byte [bp-004h], 014h                  ; c6 46 fc 14
    14588     jmp short 09950h                          ; eb 16
     14723    jmp short 0994ch                          ; eb 16
    1458914724    mov byte [bp-004h], 018h                  ; c6 46 fc 18
    14590     jmp short 09950h                          ; eb 10
     14725    jmp short 0994ch                          ; eb 10
    1459114726    mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
    14592     jmp short 09950h                          ; eb 0a
     14727    jmp short 0994ch                          ; eb 0a
    1459314728    mov byte [bp-004h], 020h                  ; c6 46 fc 20
    14594     jmp short 09950h                          ; eb 04
     14729    jmp short 0994ch                          ; eb 04
    1459514730    mov byte [bp-004h], 024h                  ; c6 46 fc 24
    1459614731    mov cx, dx                                ; 89 d1
     
    1459914734    mov al, byte [bp-004h]                    ; 8a 46 fc
    1460014735    test al, al                               ; 84 c0
    14601     je short 0997bh                           ; 74 1c
     14736    je short 09977h                           ; 74 1c
    1460214737    mov bl, al                                ; 88 c3
    1460314738    xor bh, bh                                ; 30 ff
     
    1460614741    mov al, byte [bp-008h]                    ; 8a 46 f8
    1460714742    xor ah, ah                                ; 30 e4
    14608     call 09dfch                               ; e8 8c 04
     14743    call 09df8h                               ; e8 8c 04
    1460914744    test AL, strict byte 001h                 ; a8 01
    14610     je short 0997bh                           ; 74 07
     14745    je short 09977h                           ; 74 07
    1461114746    and AL, strict byte 0f0h                  ; 24 f0
    1461214747    add ax, cx                                ; 01 c8
    14613     call 096fbh                               ; e8 80 fd
     14748    call 096f7h                               ; e8 80 fd
    1461414749    lea sp, [bp-002h]                         ; 8d 66 fe
    1461514750    pop di                                    ; 5f
    1461614751    pop bp                                    ; 5d
    1461714752    retn                                      ; c3
    14618 apm_out_str_:                                ; 0xf9981 LB 0x39
     14753apm_out_str_:                                ; 0xf997d LB 0x39
    1461914754    push bp                                   ; 55
    1462014755    mov bp, sp                                ; 89 e5
     
    1462214757    mov bx, ax                                ; 89 c3
    1462314758    cmp byte [bx], 000h                       ; 80 3f 00
    14624     je short 09996h                           ; 74 0a
     14759    je short 09992h                           ; 74 0a
    1462514760    mov al, byte [bx]                         ; 8a 07
    1462614761    out DX, AL                                ; ee
     
    1462914764    db  00ah, 0c0h
    1463014765    ; or al, al                                 ; 0a c0
    14631     jne short 0998eh                          ; 75 f8
     14766    jne short 0998ah                          ; 75 f8
    1463214767    lea sp, [bp-002h]                         ; 8d 66 fe
    1463314768    pop bx                                    ; 5b
    1463414769    pop bp                                    ; 5d
    1463514770    retn                                      ; c3
    14636     fistp dword [bx+di-0659dh]                ; db 99 63 9a
    14637     in ax, DX                                 ; ed
     14771    xlatb                                     ; d7
    1463814772    cwd                                       ; 99
    14639     or byte [bp+si-0659dh], bl                ; 08 9a 63 9a
    14640     xor bx, word [bp+si-0659dh]               ; 33 9a 63 9a
    14641     imul bx, word [bp+si-065c8h], 09a38h      ; 69 9a 38 9a 38 9a
    14642     cmp byte [bp+si-06558h], bl               ; 38 9a a8 9a
    14643     cmp byte [bp+si-065c8h], bl               ; 38 9a 38 9a
    14644     db  0a1h
     14773    pop di                                    ; 5f
     14774    call far 09a04h:099e9h                    ; 9a e9 99 04 9a
     14775    pop di                                    ; 5f
     14776    call far 09a5fh:09a2fh                    ; 9a 2f 9a 5f 9a
     14777    db  065h, 09ah, 034h, 09ah, 034h, 09ah
     14778    ; gs call far gs:09a34h:09a34h              ; 65 9a 34 9a 34 9a
     14779    xor AL, strict byte 09ah                  ; 34 9a
     14780    movsb                                     ; a4
     14781    call far 09a34h:09a34h                    ; 9a 34 9a 34 9a
     14782    popfw                                     ; 9d
    1464514783    db  09ah
    14646 _apm_function:                               ; 0xf99ba LB 0xf3
     14784_apm_function:                               ; 0xf99b6 LB 0xf3
    1464714785    push bp                                   ; 55
    1464814786    mov bp, sp                                ; 89 e5
     
    1465214790    xor ah, ah                                ; 30 e4
    1465314791    cmp ax, strict word 0000eh                ; 3d 0e 00
    14654     jnbe short 09a38h                         ; 77 6c
     14792    jnbe short 09a34h                         ; 77 6c
    1465514793    mov bx, ax                                ; 89 c3
    1465614794    add bx, ax                                ; 01 c3
    1465714795    mov dx, word [bp+018h]                    ; 8b 56 18
    1465814796    or dl, 001h                               ; 80 ca 01
    14659     jmp word [cs:bx-06664h]                   ; 2e ff a7 9c 99
     14797    jmp word [cs:bx-06668h]                   ; 2e ff a7 98 99
    1466014798    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1466114799    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1466214800    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    14663     jmp near 09a63h                           ; e9 76 00
     14801    jmp near 09a5fh                           ; e9 76 00
    1466414802    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    14665     mov word [bp+00ch], 0a034h                ; c7 46 0c 34 a0
     14803    mov word [bp+00ch], 0a024h                ; c7 46 0c 24 a0
    1466614804    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1466714805    mov ax, strict word 0fff0h                ; b8 f0 ff
    1466814806    mov word [bp+006h], ax                    ; 89 46 06
    1466914807    mov word [bp+004h], ax                    ; 89 46 04
    14670     jmp near 09a63h                           ; e9 5b 00
     14808    jmp near 09a5fh                           ; e9 5b 00
    1467114809    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1467214810    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1468114819    mov si, ax                                ; 89 c6
    1468214820    sal esi, 010h                             ; 66 c1 e6 10
    14683     jmp near 09a63h                           ; e9 30 00
     14821    jmp near 09a5fh                           ; e9 30 00
    1468414822    sti                                       ; fb
    1468514823    hlt                                       ; f4
    14686     jmp near 09a63h                           ; e9 2b 00
     14824    jmp near 09a5fh                           ; e9 2b 00
    1468714825    mov bx, 00da0h                            ; bb a0 0d
    1468814826    mov cx, ds                                ; 8c d9
    1468914827    mov ax, strict word 00004h                ; b8 04 00
    14690     call 01923h                               ; e8 e0 7e
     14828    call 01923h                               ; e8 e4 7e
    1469114829    push word [bp+00ch]                       ; ff 76 0c
    1469214830    push word [bp+012h]                       ; ff 76 12
    1469314831    push 00d29h                               ; 68 29 0d
    1469414832    push strict byte 00004h                   ; 6a 04
    14695     call 01966h                               ; e8 15 7f
     14833    call 01966h                               ; e8 19 7f
    1469614834    add sp, strict byte 00008h                ; 83 c4 08
    1469714835    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1470514843    retn                                      ; c3
    1470614844    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    14707     je short 09a8eh                           ; 74 1f
     14845    je short 09a8ah                           ; 74 1f
    1470814846    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    14709     je short 09a86h                           ; 74 11
     14847    je short 09a82h                           ; 74 11
    1471014848    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    14711     jne short 09a96h                          ; 75 1b
     14849    jne short 09a92h                          ; 75 1b
    1471214850    mov dx, 08900h                            ; ba 00 89
    1471314851    mov ax, 00d10h                            ; b8 10 0d
    14714     call 09981h                               ; e8 fd fe
    14715     jmp short 09a63h                          ; eb dd
     14852    call 0997dh                               ; e8 fd fe
     14853    jmp short 09a5fh                          ; eb dd
    1471614854    mov dx, 08900h                            ; ba 00 89
    1471714855    mov ax, 00d18h                            ; b8 18 0d
    14718     jmp short 09a81h                          ; eb f3
     14856    jmp short 09a7dh                          ; eb f3
    1471914857    mov dx, 08900h                            ; ba 00 89
    1472014858    mov ax, 00d20h                            ; b8 20 0d
    14721     jmp short 09a81h                          ; eb eb
     14859    jmp short 09a7dh                          ; eb eb
    1472214860    or ah, 00ah                               ; 80 cc 0a
    1472314861    mov word [bp+012h], ax                    ; 89 46 12
    1472414862    mov word [bp+018h], dx                    ; 89 56 18
    14725     jmp short 09a63h                          ; eb c2
     14863    jmp short 09a5fh                          ; eb c2
    1472614864    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    14727     jmp short 09a63h                          ; eb bb
     14865    jmp short 09a5fh                          ; eb bb
    1472814866    or ah, 080h                               ; 80 cc 80
    14729     jmp short 09a99h                          ; eb ec
    14730 pci16_select_reg_:                           ; 0xf9aad LB 0x24
     14867    jmp short 09a95h                          ; eb ec
     14868pci16_select_reg_:                           ; 0xf9aa9 LB 0x24
    1473114869    push bp                                   ; 55
    1473214870    mov bp, sp                                ; 89 e5
     
    1474514883    pop bp                                    ; 5d
    1474614884    retn                                      ; c3
    14747 pci16_find_device_:                          ; 0xf9ad1 LB 0xf9
     14885pci16_find_device_:                          ; 0xf9acd LB 0xf9
    1474814886    push bp                                   ; 55
    1474914887    mov bp, sp                                ; 89 e5
     
    1475914897    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1476014898    test bl, 007h                             ; f6 c3 07
    14761     jne short 09b19h                          ; 75 2d
     14899    jne short 09b15h                          ; 75 2d
    1476214900    mov dx, strict word 0000eh                ; ba 0e 00
    1476314901    mov ax, bx                                ; 89 d8
    14764     call 09aadh                               ; e8 b9 ff
     14902    call 09aa9h                               ; e8 b9 ff
    1476514903    mov dx, 00cfeh                            ; ba fe 0c
    1476614904    in AL, DX                                 ; ec
     
    1476914907    mov byte [bp-006h], al                    ; 88 46 fa
    1477014908    cmp AL, strict byte 0ffh                  ; 3c ff
    14771     jne short 09b07h                          ; 75 06
     14909    jne short 09b03h                          ; 75 06
    1477214910    add bx, strict byte 00008h                ; 83 c3 08
    14773     jmp near 09b9ah                           ; e9 93 00
     14911    jmp near 09b96h                           ; e9 93 00
    1477414912    test byte [bp-006h], 080h                 ; f6 46 fa 80
    14775     je short 09b14h                           ; 74 07
     14913    je short 09b10h                           ; 74 07
    1477614914    mov word [bp-010h], strict word 00001h    ; c7 46 f0 01 00
    14777     jmp short 09b19h                          ; eb 05
     14915    jmp short 09b15h                          ; eb 05
    1477814916    mov word [bp-010h], strict word 00008h    ; c7 46 f0 08 00
    1477914917    mov al, byte [bp-006h]                    ; 8a 46 fa
    1478014918    and AL, strict byte 007h                  ; 24 07
    1478114919    cmp AL, strict byte 001h                  ; 3c 01
    14782     jne short 09b41h                          ; 75 1f
     14920    jne short 09b3dh                          ; 75 1f
    1478314921    mov ax, bx                                ; 89 d8
    1478414922    shr ax, 008h                              ; c1 e8 08
    1478514923    test ax, ax                               ; 85 c0
    14786     jne short 09b41h                          ; 75 16
     14924    jne short 09b3dh                          ; 75 16
    1478714925    mov dx, strict word 0001ah                ; ba 1a 00
    1478814926    mov ax, bx                                ; 89 d8
    14789     call 09aadh                               ; e8 7a ff
     14927    call 09aa9h                               ; e8 7a ff
    1479014928    mov dx, 00cfeh                            ; ba fe 0c
    1479114929    in AL, DX                                 ; ec
     
    1479314931    ; sub ah, ah                                ; 2a e4
    1479414932    cmp al, byte [bp-008h]                    ; 3a 46 f8
    14795     jbe short 09b41h                          ; 76 03
     14933    jbe short 09b3dh                          ; 76 03
    1479614934    mov byte [bp-008h], al                    ; 88 46 f8
    1479714935    test di, di                               ; 85 ff
    14798     je short 09b4ah                           ; 74 05
     14936    je short 09b46h                           ; 74 05
    1479914937    mov dx, strict word 00008h                ; ba 08 00
    14800     jmp short 09b4ch                          ; eb 02
     14938    jmp short 09b48h                          ; eb 02
    1480114939    xor dx, dx                                ; 31 d2
    1480214940    mov ax, bx                                ; 89 d8
    14803     call 09aadh                               ; e8 5c ff
     14941    call 09aa9h                               ; e8 5c ff
    1480414942    mov dx, 00cfch                            ; ba fc 0c
    1480514943    in eax, DX                                ; 66 ed
     
    1481214950    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    1481314951    test di, di                               ; 85 ff
    14814     je short 09b7bh                           ; 74 0f
     14952    je short 09b77h                           ; 74 0f
    1481514953    mov cx, strict word 00008h                ; b9 08 00
    1481614954    shr dx, 1                                 ; d1 ea
    1481714955    rcr ax, 1                                 ; d1 d8
    14818     loop 09b6fh                               ; e2 fa
     14956    loop 09b6bh                               ; e2 fa
    1481914957    mov word [bp-00ah], ax                    ; 89 46 f6
    1482014958    mov word [bp-00ch], dx                    ; 89 56 f4
    1482114959    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1482214960    cmp ax, word [bp-014h]                    ; 3b 46 ec
    14823     jne short 09b8bh                          ; 75 08
     14961    jne short 09b87h                          ; 75 08
    1482414962    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1482514963    cmp ax, word [bp-012h]                    ; 3b 46 ee
    14826     je short 09b91h                           ; 74 06
     14964    je short 09b8dh                           ; 74 06
    1482714965    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    14828     je short 09b97h                           ; 74 06
     14966    je short 09b93h                           ; 74 06
    1482914967    dec si                                    ; 4e
    1483014968    cmp si, strict byte 0ffffh                ; 83 fe ff
    14831     je short 09babh                           ; 74 14
     14969    je short 09ba7h                           ; 74 14
    1483214970    add bx, word [bp-010h]                    ; 03 5e f0
    1483314971    mov dx, bx                                ; 89 da
     
    1483614974    xor ah, ah                                ; 30 e4
    1483714975    cmp dx, ax                                ; 39 c2
    14838     jnbe short 09babh                         ; 77 03
    14839     jmp near 09ae7h                           ; e9 3c ff
     14976    jnbe short 09ba7h                         ; 77 03
     14977    jmp near 09ae3h                           ; e9 3c ff
    1484014978    cmp si, strict byte 0ffffh                ; 83 fe ff
    14841     jne short 09bb4h                          ; 75 04
     14979    jne short 09bb0h                          ; 75 04
    1484214980    mov ax, bx                                ; 89 d8
    14843     jmp short 09bb7h                          ; eb 03
     14981    jmp short 09bb3h                          ; eb 03
    1484414982    mov ax, strict word 0ffffh                ; b8 ff ff
    1484514983    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1484814986    pop bp                                    ; 5d
    1484914987    retn                                      ; c3
    14850     stosw                                     ; ab
     14988    cmpsw                                     ; a7
    1485114989    pushfw                                    ; 9c
    14852     les bx, [si-0632ah]                       ; c4 9c d6 9c
    14853     jmp far 00f9ch:0fc9ch                     ; ea 9c fc 9c 0f
     14990    rcr byte [si-0632eh], 0e6h                ; c0 9c d2 9c e6
     14991    pushfw                                    ; 9c
     14992    clc                                       ; f8
     14993    pushfw                                    ; 9c
     14994    db  00bh
    1485414995    popfw                                     ; 9d
    14855 _pci16_function:                             ; 0xf9bca LB 0x1d2
     14996_pci16_function:                             ; 0xf9bc6 LB 0x1d2
    1485614997    push bp                                   ; 55
    1485714998    mov bp, sp                                ; 89 e5
     
    1486715008    xor ah, ah                                ; 30 e4
    1486815009    cmp bx, strict byte 00003h                ; 83 fb 03
    14869     jc short 09bfch                           ; 72 13
    14870     jbe short 09c4fh                          ; 76 64
     15010    jc short 09bf8h                           ; 72 13
     15011    jbe short 09c4bh                          ; 76 64
    1487115012    cmp bx, strict byte 0000eh                ; 83 fb 0e
    14872     je short 09c57h                           ; 74 67
     15013    je short 09c53h                           ; 74 67
    1487315014    cmp bx, strict byte 00008h                ; 83 fb 08
    14874     jc short 09c06h                           ; 72 11
     15015    jc short 09c02h                           ; 72 11
    1487515016    cmp bx, strict byte 0000dh                ; 83 fb 0d
    14876     jbe short 09c5ah                          ; 76 60
    14877     jmp short 09c06h                          ; eb 0a
     15017    jbe short 09c56h                          ; 76 60
     15018    jmp short 09c02h                          ; eb 0a
    1487815019    cmp bx, strict byte 00002h                ; 83 fb 02
    14879     je short 09c25h                           ; 74 24
     15020    je short 09c21h                           ; 74 24
    1488015021    cmp bx, strict byte 00001h                ; 83 fb 01
    14881     je short 09c09h                           ; 74 03
    14882     jmp near 09d68h                           ; e9 5f 01
     15022    je short 09c05h                           ; 74 03
     15023    jmp near 09d64h                           ; e9 5f 01
    1488315024    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1488415025    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1488615027    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1488715028    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    14888     jmp near 09d95h                           ; e9 70 01
     15029    jmp near 09d91h                           ; e9 70 01
    1488915030    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    14890     jne short 09c31h                          ; 75 06
     15031    jne short 09c2dh                          ; 75 06
    1489115032    or ah, 083h                               ; 80 cc 83
    14892     jmp near 09d8eh                           ; e9 5d 01
     15033    jmp near 09d8ah                           ; e9 5d 01
    1489315034    mov bx, word [bp+008h]                    ; 8b 5e 08
    1489415035    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1489515036    mov ax, word [bp+018h]                    ; 8b 46 18
    1489615037    xor cx, cx                                ; 31 c9
    14897     call 09ad1h                               ; e8 92 fe
     15038    call 09acdh                               ; e8 92 fe
    1489815039    cmp ax, strict word 0ffffh                ; 3d ff ff
    14899     jne short 09c51h                          ; 75 0d
     15040    jne short 09c4dh                          ; 75 0d
    1490015041    mov ax, word [bp+020h]                    ; 8b 46 20
    1490115042    xor ah, ah                                ; 30 e4
    1490215043    or ah, 086h                               ; 80 cc 86
    14903     jmp near 09d8eh                           ; e9 3f 01
    14904     jmp short 09c5ch                          ; eb 0b
     15044    jmp near 09d8ah                           ; e9 3f 01
     15045    jmp short 09c58h                          ; eb 0b
    1490515046    mov word [bp+014h], ax                    ; 89 46 14
    14906     jmp near 09d95h                           ; e9 3e 01
    14907     jmp near 09d23h                           ; e9 c9 00
    14908     jmp short 09c81h                          ; eb 25
     15047    jmp near 09d91h                           ; e9 3e 01
     15048    jmp near 09d1fh                           ; e9 c9 00
     15049    jmp short 09c7dh                          ; eb 25
    1490915050    mov bx, word [bp+008h]                    ; 8b 5e 08
    1491015051    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1491115052    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1491215053    mov cx, strict word 00001h                ; b9 01 00
    14913     call 09ad1h                               ; e8 66 fe
     15054    call 09acdh                               ; e8 66 fe
    1491415055    cmp ax, strict word 0ffffh                ; 3d ff ff
    14915     jne short 09c7bh                          ; 75 0b
     15056    jne short 09c77h                          ; 75 0b
    1491615057    mov ax, word [bp+020h]                    ; 8b 46 20
    1491715058    xor ah, ah                                ; 30 e4
    1491815059    or ah, 086h                               ; 80 cc 86
    14919     jmp near 09d8eh                           ; e9 13 01
     15060    jmp near 09d8ah                           ; e9 13 01
    1492015061    mov word [bp+014h], ax                    ; 89 46 14
    14921     jmp near 09d95h                           ; e9 14 01
     15062    jmp near 09d91h                           ; e9 14 01
    1492215063    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    14923     jc short 09c8eh                           ; 72 06
     15064    jc short 09c8ah                           ; 72 06
    1492415065    or ah, 087h                               ; 80 cc 87
    14925     jmp near 09d8eh                           ; e9 00 01
     15066    jmp near 09d8ah                           ; e9 00 01
    1492615067    mov dx, word [bp+004h]                    ; 8b 56 04
    1492715068    mov ax, word [bp+014h]                    ; 8b 46 14
    14928     call 09aadh                               ; e8 16 fe
     15069    call 09aa9h                               ; e8 16 fe
    1492915070    mov bx, word [bp+020h]                    ; 8b 5e 20
    1493015071    xor bh, bh                                ; 30 ff
    1493115072    sub bx, strict byte 00008h                ; 83 eb 08
    1493215073    cmp bx, strict byte 00005h                ; 83 fb 05
    14933     jnbe short 09d0ch                         ; 77 68
     15074    jnbe short 09d08h                         ; 77 68
    1493415075    add bx, bx                                ; 01 db
    14935     jmp word [cs:bx-06442h]                   ; 2e ff a7 be 9b
     15076    jmp word [cs:bx-06446h]                   ; 2e ff a7 ba 9b
    1493615077    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1493715078    xor bl, bl                                ; 30 db
     
    1494415085    or bx, ax                                 ; 09 c3
    1494515086    mov word [bp+01ch], bx                    ; 89 5e 1c
    14946     jmp short 09d0ch                          ; eb 48
     15087    jmp short 09d08h                          ; eb 48
    1494715088    mov dx, word [bp+004h]                    ; 8b 56 04
    1494815089    xor dh, dh                                ; 30 f6
     
    1495115092    in ax, DX                                 ; ed
    1495215093    mov word [bp+01ch], ax                    ; 89 46 1c
    14953     jmp short 09d0ch                          ; eb 36
     15094    jmp short 09d08h                          ; eb 36
    1495415095    mov dx, 00cfch                            ; ba fc 0c
    1495515096    in eax, DX                                ; 66 ed
     
    1496015101    mov word [bp+01ch], ax                    ; 89 46 1c
    1496115102    mov word [bp+01eh], dx                    ; 89 56 1e
    14962     jmp short 09d0ch                          ; eb 22
     15103    jmp short 09d08h                          ; eb 22
    1496315104    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1496415105    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1496715108    add dx, 00cfch                            ; 81 c2 fc 0c
    1496815109    out DX, AL                                ; ee
    14969     jmp short 09d0ch                          ; eb 10
     15110    jmp short 09d08h                          ; eb 10
    1497015111    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1497115112    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1497415115    add dx, 00cfch                            ; 81 c2 fc 0c
    1497515116    out DX, ax                                ; ef
    14976     jmp near 09d95h                           ; e9 86 00
     15117    jmp near 09d91h                           ; e9 86 00
    1497715118    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1497815119    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1498315124    ; mov ax, cx                                ; 8b c1
    1498415125    out DX, eax                               ; 66 ef
    14985     jmp short 09d95h                          ; eb 72
     15126    jmp short 09d91h                          ; eb 72
    1498615127    mov bx, word [bp+004h]                    ; 8b 5e 04
    1498715128    mov es, [bp+026h]                         ; 8e 46 26
     
    1499015131    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1499115132    cmp cx, word [es:bx]                      ; 26 3b 0f
    14992     jbe short 09d49h                          ; 76 11
     15133    jbe short 09d45h                          ; 76 11
    1499315134    mov ax, word [bp+020h]                    ; 8b 46 20
    1499415135    xor ah, ah                                ; 30 e4
     
    1499615137    mov word [bp+020h], ax                    ; 89 46 20
    1499715138    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    14998     jmp short 09d5dh                          ; eb 14
     15139    jmp short 09d59h                          ; eb 14
    1499915140    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1500015141    mov si, 0f2c0h                            ; be c0 f2
     
    1500815149    les bx, [bp-008h]                         ; c4 5e f8
    1500915150    mov word [es:bx], ax                      ; 26 89 07
    15010     jmp short 09d95h                          ; eb 2d
     15151    jmp short 09d91h                          ; eb 2d
    1501115152    mov bx, 00da0h                            ; bb a0 0d
    1501215153    mov cx, ds                                ; 8c d9
    1501315154    mov ax, strict word 00004h                ; b8 04 00
    15014     call 01923h                               ; e8 b0 7b
     15155    call 01923h                               ; e8 b4 7b
    1501515156    mov ax, word [bp+014h]                    ; 8b 46 14
    1501615157    push ax                                   ; 50
     
    1501915160    push 00d5ch                               ; 68 5c 0d
    1502015161    push strict byte 00004h                   ; 6a 04
    15021     call 01966h                               ; e8 e3 7b
     15162    call 01966h                               ; e8 e7 7b
    1502215163    add sp, strict byte 00008h                ; 83 c4 08
    1502315164    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1503115172    pop bp                                    ; 5d
    1503215173    retn                                      ; c3
    15033 pci_find_classcode_:                         ; 0xf9d9c LB 0x8
     15174pci_find_classcode_:                         ; 0xf9d98 LB 0x8
    1503415175    push bp                                   ; 55
    1503515176    mov bp, sp                                ; 89 e5
     
    1503715178    pop bp                                    ; 5d
    1503815179    retn                                      ; c3
    15039 pci_read_config_byte_:                       ; 0xf9da4 LB 0x2e
     15180pci_read_config_byte_:                       ; 0xf9da0 LB 0x2e
    1504015181    push bp                                   ; 55
    1504115182    mov bp, sp                                ; 89 e5
     
    1506315204    pop bp                                    ; 5d
    1506415205    retn                                      ; c3
    15065 pci_read_config_word_:                       ; 0xf9dd2 LB 0x2a
     15206pci_read_config_word_:                       ; 0xf9dce LB 0x2a
    1506615207    push bp                                   ; 55
    1506715208    mov bp, sp                                ; 89 e5
     
    1508715228    pop bp                                    ; 5d
    1508815229    retn                                      ; c3
    15089 pci_read_config_dword_:                      ; 0xf9dfc LB 0x4e
     15230pci_read_config_dword_:                      ; 0xf9df8 LB 0x4e
    1509015231    push bp                                   ; 55
    1509115232    mov bp, sp                                ; 89 e5
     
    1510915250    int 01ah                                  ; cd 1a
    1511015251    test cx, cx                               ; 85 c9
    15111     jne short 09e3bh                          ; 75 14
     15252    jne short 09e37h                          ; 75 14
    1511215253    mov al, byte [bp-006h]                    ; 8a 46 fa
    1511315254    xor ah, ah                                ; 30 e4
     
    1511915260    int 01ah                                  ; cd 1a
    1512015261    test cx, cx                               ; 85 c9
    15121     je short 09e40h                           ; 74 05
     15262    je short 09e3ch                           ; 74 05
    1512215263    mov ax, strict word 00001h                ; b8 01 00
    15123     jmp short 09e42h                          ; eb 02
     15264    jmp short 09e3eh                          ; eb 02
    1512415265    xor ax, ax                                ; 31 c0
    1512515266    cwd                                       ; 99
     
    1512915270    pop bp                                    ; 5d
    1513015271    retn                                      ; c3
    15131 vds_is_present_:                             ; 0xf9e4a LB 0x1d
     15272vds_is_present_:                             ; 0xf9e46 LB 0x1d
    1513215273    push bx                                   ; 53
    1513315274    push bp                                   ; 55
     
    1513715278    mov es, ax                                ; 8e c0
    1513815279    test byte [es:bx], 020h                   ; 26 f6 07 20
    15139     je short 09e62h                           ; 74 06
     15280    je short 09e5eh                           ; 74 06
    1514015281    mov ax, strict word 00001h                ; b8 01 00
    1514115282    pop bp                                    ; 5d
     
    1514615287    pop bx                                    ; 5b
    1514715288    retn                                      ; c3
    15148 vds_real_to_lin_:                            ; 0xf9e67 LB 0x1e
     15289vds_real_to_lin_:                            ; 0xf9e63 LB 0x1e
    1514915290    push bx                                   ; 53
    1515015291    push cx                                   ; 51
     
    1515715298    sal ax, 1                                 ; d1 e0
    1515815299    rcl dx, 1                                 ; d1 d2
    15159     loop 09e75h                               ; e2 fa
     15300    loop 09e71h                               ; e2 fa
    1516015301    xor cx, cx                                ; 31 c9
    1516115302    add ax, bx                                ; 01 d8
     
    1516515306    pop bx                                    ; 5b
    1516615307    retn                                      ; c3
    15167 vds_build_sg_list_:                          ; 0xf9e85 LB 0x77
     15308vds_build_sg_list_:                          ; 0xf9e81 LB 0x77
    1516815309    push bp                                   ; 55
    1516915310    mov bp, sp                                ; 89 e5
     
    1517915320    mov bx, word [bp+006h]                    ; 8b 5e 06
    1518015321    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15181     call 09e67h                               ; e8 c3 ff
     15322    call 09e63h                               ; e8 c3 ff
    1518215323    mov es, si                                ; 8e c6
    1518315324    mov word [es:di+004h], ax                 ; 26 89 45 04
    1518415325    mov word [es:di+006h], dx                 ; 26 89 55 06
    1518515326    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15186     call 09e4ah                               ; e8 93 ff
     15327    call 09e46h                               ; e8 93 ff
    1518715328    test ax, ax                               ; 85 c0
    15188     je short 09ecch                           ; 74 11
     15329    je short 09ec8h                           ; 74 11
    1518915330    mov es, si                                ; 8e c6
    1519015331    mov ax, 08105h                            ; b8 05 81
    1519115332    mov dx, strict word 00000h                ; ba 00 00
    1519215333    int 04bh                                  ; cd 4b
    15193     jc short 09ec9h                           ; 72 02
     15334    jc short 09ec5h                           ; 72 02
    1519415335    db  032h, 0c0h
    1519515336    ; xor al, al                                ; 32 c0
    1519615337    cbw                                       ; 98
    15197     jmp short 09ef3h                          ; eb 27
     15338    jmp short 09eefh                          ; eb 27
    1519815339    mov es, si                                ; 8e c6
    1519915340    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1521215353    pop bp                                    ; 5d
    1521315354    retn 00004h                               ; c2 04 00
    15214 vds_free_sg_list_:                           ; 0xf9efc LB 0x34
     15355vds_free_sg_list_:                           ; 0xf9ef8 LB 0x38
    1521515356    push bp                                   ; 55
    1521615357    mov bp, sp                                ; 89 e5
     
    1521815359    push di                                   ; 57
    1521915360    mov bx, ax                                ; 89 c3
    15220     call 09e4ah                               ; e8 44 ff
     15361    call 09e46h                               ; e8 44 ff
    1522115362    test ax, ax                               ; 85 c0
    15222     je short 09f1bh                           ; 74 11
     15363    je short 09f17h                           ; 74 11
    1522315364    mov di, bx                                ; 89 df
    1522415365    mov es, dx                                ; 8e c2
     
    1522615367    mov dx, strict word 00000h                ; ba 00 00
    1522715368    int 04bh                                  ; cd 4b
    15228     jc short 09f1ah                           ; 72 02
     15369    jc short 09f16h                           ; 72 02
    1522915370    db  032h, 0c0h
    1523015371    ; xor al, al                                ; 32 c0
     
    1523715378    pop bp                                    ; 5d
    1523815379    retn                                      ; c3
    15239     times 0x6 db 0
    15240 __U4D:                                       ; 0xf9f30 LB 0x39
     15380    times 0xa db 0
     15381__U4M:                                       ; 0xf9f30 LB 0x20
    1524115382    pushfw                                    ; 9c
    15242     push eax                                  ; 66 50
    15243     push edx                                  ; 66 52
    15244     push ecx                                  ; 66 51
    15245     rol eax, 010h                             ; 66 c1 c0 10
    15246     db  08bh, 0c2h
    15247     ; mov ax, dx                                ; 8b c2
    15248     ror eax, 010h                             ; 66 c1 c8 10
    15249     db  066h, 033h, 0d2h
    15250     ; xor edx, edx                              ; 66 33 d2
    15251     shr ecx, 010h                             ; 66 c1 e9 10
    15252     db  08bh, 0cbh
    15253     ; mov cx, bx                                ; 8b cb
    15254     div ecx                                   ; 66 f7 f1
    15255     db  08bh, 0dah
    15256     ; mov bx, dx                                ; 8b da
    15257     pop ecx                                   ; 66 59
    15258     shr edx, 010h                             ; 66 c1 ea 10
    15259     db  08bh, 0cah
    15260     ; mov cx, dx                                ; 8b ca
    15261     pop edx                                   ; 66 5a
    15262     ror eax, 010h                             ; 66 c1 c8 10
    15263     db  08bh, 0d0h
    15264     ; mov dx, ax                                ; 8b d0
    15265     add sp, strict byte 00002h                ; 83 c4 02
     15383    push si                                   ; 56
     15384    push di                                   ; 57
     15385    push ax                                   ; 50
     15386    db  08bh, 0fah
     15387    ; mov di, dx                                ; 8b fa
     15388    mul bx                                    ; f7 e3
     15389    db  08bh, 0f2h
     15390    ; mov si, dx                                ; 8b f2
     15391    xchg di, ax                               ; 97
     15392    mul bx                                    ; f7 e3
     15393    db  003h, 0f0h
     15394    ; add si, ax                                ; 03 f0
    1526615395    pop ax                                    ; 58
    15267     rol eax, 010h                             ; 66 c1 c0 10
     15396    mul cx                                    ; f7 e1
     15397    db  003h, 0f0h
     15398    ; add si, ax                                ; 03 f0
     15399    db  08bh, 0d6h
     15400    ; mov dx, si                                ; 8b d6
     15401    db  08bh, 0c7h
     15402    ; mov ax, di                                ; 8b c7
     15403    pop di                                    ; 5f
     15404    pop si                                    ; 5e
    1526815405    popfw                                     ; 9d
    1526915406    retn                                      ; c3
    15270 __U4M:                                       ; 0xf9f69 LB 0x31
     15407    times 0x4 db 0
     15408__U4D:                                       ; 0xf9f50 LB 0x30
    1527115409    pushfw                                    ; 9c
    15272     push eax                                  ; 66 50
    15273     push edx                                  ; 66 52
    15274     push ecx                                  ; 66 51
    15275     rol eax, 010h                             ; 66 c1 c0 10
    15276     db  08bh, 0c2h
    15277     ; mov ax, dx                                ; 8b c2
    15278     ror eax, 010h                             ; 66 c1 c8 10
    15279     db  066h, 033h, 0d2h
    15280     ; xor edx, edx                              ; 66 33 d2
    15281     shr ecx, 010h                             ; 66 c1 e9 10
    15282     db  08bh, 0cbh
    15283     ; mov cx, bx                                ; 8b cb
    15284     mul ecx                                   ; 66 f7 e1
    15285     pop ecx                                   ; 66 59
    15286     pop edx                                   ; 66 5a
    15287     ror eax, 010h                             ; 66 c1 c8 10
    15288     db  08bh, 0d0h
    15289     ; mov dx, ax                                ; 8b d0
    15290     add sp, strict byte 00002h                ; 83 c4 02
    15291     pop ax                                    ; 58
    15292     rol eax, 010h                             ; 66 c1 c0 10
     15410    push DS                                   ; 1e
     15411    push ES                                   ; 06
     15412    push bp                                   ; 55
     15413    sub sp, strict byte 00004h                ; 83 ec 04
     15414    db  08bh, 0ech
     15415    ; mov bp, sp                                ; 8b ec
     15416    push SS                                   ; 16
     15417    push bp                                   ; 55
     15418    add bp, strict byte 00004h                ; 83 c5 04
     15419    push cx                                   ; 51
     15420    push bx                                   ; 53
     15421    push dx                                   ; 52
     15422    push ax                                   ; 50
     15423    call 0a035h                               ; e8 d0 00
     15424    mov cx, word [bp-002h]                    ; 8b 4e fe
     15425    mov bx, word [bp-004h]                    ; 8b 5e fc
     15426    db  08bh, 0e5h
     15427    ; mov sp, bp                                ; 8b e5
     15428    pop bp                                    ; 5d
     15429    pop ES                                    ; 07
     15430    pop DS                                    ; 1f
    1529315431    popfw                                     ; 9d
    1529415432    retn                                      ; c3
    15295 __U8LS:                                      ; 0xf9f9a LB 0x10
     15433    times 0xe db 0
     15434__U8RS:                                      ; 0xf9f80 LB 0x10
    1529615435    test si, si                               ; 85 f6
    15297     je short 09fa9h                           ; 74 0b
     15436    je short 09f8fh                           ; 74 0b
     15437    shr ax, 1                                 ; d1 e8
     15438    rcr bx, 1                                 ; d1 db
     15439    rcr cx, 1                                 ; d1 d9
     15440    rcr dx, 1                                 ; d1 da
     15441    dec si                                    ; 4e
     15442    jne short 09f84h                          ; 75 f5
     15443    retn                                      ; c3
     15444__U8LS:                                      ; 0xf9f90 LB 0x10
     15445    test si, si                               ; 85 f6
     15446    je short 09f9fh                           ; 74 0b
    1529815447    sal dx, 1                                 ; d1 e2
    1529915448    rcl cx, 1                                 ; d1 d1
     
    1530115450    rcl ax, 1                                 ; d1 d0
    1530215451    dec si                                    ; 4e
    15303     jne short 09f9eh                          ; 75 f5
     15452    jne short 09f94h                          ; 75 f5
    1530415453    retn                                      ; c3
    15305 __U8RS:                                      ; 0xf9faa LB 0x10
    15306     test si, si                               ; 85 f6
    15307     je short 09fb9h                           ; 74 0b
    15308     shr ax, 1                                 ; d1 e8
    15309     rcr bx, 1                                 ; d1 db
    15310     rcr cx, 1                                 ; d1 d9
    15311     rcr dx, 1                                 ; d1 da
    15312     dec si                                    ; 4e
    15313     jne short 09faeh                          ; 75 f5
    15314     retn                                      ; c3
    15315 _fmemset_:                                   ; 0xf9fba LB 0xd
     15454_fmemset_:                                   ; 0xf9fa0 LB 0x10
    1531615455    push di                                   ; 57
    1531715456    mov es, dx                                ; 8e c2
     
    1532315462    pop di                                    ; 5f
    1532415463    retn                                      ; c3
    15325 _fmemcpy_:                                   ; 0xf9fc7 LB 0x33
     15464    times 0x3 db 0
     15465_fmemcpy_:                                   ; 0xf9fb0 LB 0x3a
    1532615466    push bp                                   ; 55
    1532715467    db  08bh, 0ech
     
    1534115481    pop DS                                    ; 1f
    1534215482    pop di                                    ; 5f
    15343     leave                                     ; c9
     15483    db  08bh, 0e5h
     15484    ; mov sp, bp                                ; 8b e5
     15485    pop bp                                    ; 5d
    1534415486    retn                                      ; c3
    15345     add byte [bx+si], dl                      ; 00 10
    15346     mov AL, byte [0a012h]                     ; a0 12 a0
    15347     push SS                                   ; 16
    15348     mov AL, byte [0a016h]                     ; a0 16 a0
    15349     push SS                                   ; 16
    15350     mov AL, byte [0a018h]                     ; a0 18 a0
    15351     sbb byte [bx+si-05fe6h], ah               ; 18 a0 1a a0
    15352     push DS                                   ; 1e
    15353     mov AL, byte [0a01eh]                     ; a0 1e a0
    15354     and byte [bx+si-05fdbh], ah               ; 20 a0 25 a0
    15355     daa                                       ; 27
     15487    add byte [bx+si], al                      ; 00 00
     15488    add byte [bx+si], al                      ; 00 00
     15489    add byte [bx+si], al                      ; 00 00
     15490    add byte [bx+si-05ffeh], ah               ; 00 a0 02 a0
     15491    push ES                                   ; 06
     15492    mov AL, byte [0a006h]                     ; a0 06 a0
     15493    push ES                                   ; 06
     15494    mov AL, byte [0a008h]                     ; a0 08 a0
     15495    or byte [bx+si-05ff6h], ah                ; 08 a0 0a a0
     15496    push CS                                   ; 0e
     15497    mov AL, byte [0a00eh]                     ; a0 0e a0
     15498    adc byte [bx+si-05febh], ah               ; 10 a0 15 a0
     15499    pop SS                                    ; 17
    1535615500    db  0a0h
    15357 apm_worker:                                  ; 0xf9ffa LB 0x3a
     15501apm_worker:                                  ; 0xf9fea LB 0x3a
    1535815502    sti                                       ; fb
    1535915503    push ax                                   ; 50
     
    1536715511    pop ax                                    ; 58
    1536815512    mov AH, strict byte 053h                  ; b4 53
    15369     jnc short 0a030h                          ; 73 25
    15370     jmp word [cs:bp-06020h]                   ; 2e ff a6 e0 9f
    15371     jmp short 0a02eh                          ; eb 1c
     15513    jnc short 0a020h                          ; 73 25
     15514    jmp word [cs:bp-06030h]                   ; 2e ff a6 d0 9f
     15515    jmp short 0a01eh                          ; eb 1c
    1537215516    sti                                       ; fb
    1537315517    hlt                                       ; f4
    15374     jmp short 0a02eh                          ; eb 18
    15375     jmp short 0a02eh                          ; eb 16
    15376     jmp short 0a030h                          ; eb 16
     15518    jmp short 0a01eh                          ; eb 18
     15519    jmp short 0a01eh                          ; eb 16
     15520    jmp short 0a020h                          ; eb 16
    1537715521    mov AH, strict byte 080h                  ; b4 80
    15378     jmp short 0a032h                          ; eb 14
    15379     jmp short 0a030h                          ; eb 10
     15522    jmp short 0a022h                          ; eb 14
     15523    jmp short 0a020h                          ; eb 10
    1538015524    mov ax, 00102h                            ; b8 02 01
    15381     jmp short 0a02eh                          ; eb 09
    15382     jmp short 0a02eh                          ; eb 07
     15525    jmp short 0a01eh                          ; eb 09
     15526    jmp short 0a01eh                          ; eb 07
    1538315527    mov BL, strict byte 000h                  ; b3 00
    1538415528    mov cx, strict word 00000h                ; b9 00 00
    15385     jmp short 0a02eh                          ; eb 00
     15529    jmp short 0a01eh                          ; eb 00
    1538615530    clc                                       ; f8
    1538715531    retn                                      ; c3
     
    1538915533    stc                                       ; f9
    1539015534    retn                                      ; c3
    15391 apm_pm16_entry:                              ; 0xfa034 LB 0x11
     15535apm_pm16_entry:                              ; 0xfa024 LB 0x11
    1539215536    mov AH, strict byte 002h                  ; b4 02
    1539315537    push DS                                   ; 1e
     
    1539715541    add bp, strict byte 00008h                ; 83 c5 08
    1539815542    mov ds, bp                                ; 8e dd
    15399     call 09ffah                               ; e8 b8 ff
     15543    call 09feah                               ; e8 b8 ff
    1540015544    pop bp                                    ; 5d
    1540115545    pop DS                                    ; 1f
    1540215546    retf                                      ; cb
     15547_DoUInt32Div:                                ; 0xfa035 LB 0x26b
     15548    push bp                                   ; 55
     15549    mov bp, sp                                ; 89 e5
     15550    push si                                   ; 56
     15551    push di                                   ; 57
     15552    sub sp, strict byte 00018h                ; 83 ec 18
     15553    lds bx, [bp+00ch]                         ; c5 5e 0c
     15554    lea si, [bp+004h]                         ; 8d 76 04
     15555    mov word [bp-010h], si                    ; 89 76 f0
     15556    mov [bp-00eh], ss                         ; 8c 56 f2
     15557    lea di, [bp+008h]                         ; 8d 7e 08
     15558    mov [bp-008h], ss                         ; 8c 56 f8
     15559    lea si, [bp-01ch]                         ; 8d 76 e4
     15560    mov word [bp-00ch], si                    ; 89 76 f4
     15561    mov [bp-00ah], ss                         ; 8c 56 f6
     15562    mov si, bx                                ; 89 de
     15563    mov [bp-006h], ds                         ; 8c 5e fa
     15564    cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
     15565    jne short 0a085h                          ; 75 22
     15566    mov ax, word [bx]                         ; 8b 07
     15567    test ax, ax                               ; 85 c0
     15568    je short 0a082h                           ; 74 19
     15569    cmp ax, strict word 00001h                ; 3d 01 00
     15570    jne short 0a085h                          ; 75 17
     15571    xor ax, ax                                ; 31 c0
     15572    mov word [bp+00ah], ax                    ; 89 46 0a
     15573    mov word [bp+008h], ax                    ; 89 46 08
     15574    mov ax, word [bp-01ch]                    ; 8b 46 e4
     15575    mov word [bp+004h], ax                    ; 89 46 04
     15576    mov ax, word [bp-01ah]                    ; 8b 46 e6
     15577    mov word [bp+006h], ax                    ; 89 46 06
     15578    jmp near 0a28dh                           ; e9 08 02
     15579    lds bx, [bp-00ch]                         ; c5 5e f4
     15580    mov ax, word [bx+002h]                    ; 8b 47 02
     15581    mov ds, [bp-006h]                         ; 8e 5e fa
     15582    cmp ax, word [si+002h]                    ; 3b 44 02
     15583    je short 0a0abh                           ; 74 18
     15584    mov ds, [bp-00ah]                         ; 8e 5e f6
     15585    mov ax, word [bx+002h]                    ; 8b 47 02
     15586    mov ds, [bp-006h]                         ; 8e 5e fa
     15587    cmp ax, word [si+002h]                    ; 3b 44 02
     15588    jbe short 0a0a6h                          ; 76 05
     15589    mov ax, strict word 00001h                ; b8 01 00
     15590    jmp short 0a0cch                          ; eb 26
     15591    mov ax, strict word 0ffffh                ; b8 ff ff
     15592    jmp short 0a0cch                          ; eb 21
     15593    mov ds, [bp-00ah]                         ; 8e 5e f6
     15594    mov ax, word [bx]                         ; 8b 07
     15595    mov ds, [bp-006h]                         ; 8e 5e fa
     15596    cmp ax, word [si]                         ; 3b 04
     15597    je short 0a0cah                           ; 74 13
     15598    mov ds, [bp-00ah]                         ; 8e 5e f6
     15599    mov ax, word [bx]                         ; 8b 07
     15600    mov ds, [bp-006h]                         ; 8e 5e fa
     15601    cmp ax, word [si]                         ; 3b 04
     15602    jbe short 0a0c5h                          ; 76 02
     15603    jmp short 0a0a1h                          ; eb dc
     15604    mov ax, strict word 0ffffh                ; b8 ff ff
     15605    jmp short 0a0cch                          ; eb 02
     15606    xor ax, ax                                ; 31 c0
     15607    test ax, ax                               ; 85 c0
     15608    jnl short 0a0eeh                          ; 7d 1e
     15609    lds bx, [bp-00ch]                         ; c5 5e f4
     15610    mov ax, word [bx]                         ; 8b 07
     15611    mov dx, word [bx+002h]                    ; 8b 57 02
     15612    mov ds, [bp-008h]                         ; 8e 5e f8
     15613    mov word [di], ax                         ; 89 05
     15614    mov word [di+002h], dx                    ; 89 55 02
     15615    lds bx, [bp-010h]                         ; c5 5e f0
     15616    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
     15617    mov word [bx], strict word 00000h         ; c7 07 00 00
     15618    jmp short 0a082h                          ; eb 94
     15619    jne short 0a105h                          ; 75 15
     15620    mov ds, [bp-008h]                         ; 8e 5e f8
     15621    mov word [di+002h], ax                    ; 89 45 02
     15622    mov word [di], ax                         ; 89 05
     15623    lds bx, [bp-010h]                         ; c5 5e f0
     15624    mov word [bx], strict word 00001h         ; c7 07 01 00
     15625    mov word [bx+002h], ax                    ; 89 47 02
     15626    jmp near 0a28dh                           ; e9 88 01
     15627    lds bx, [bp-00ch]                         ; c5 5e f4
     15628    mov ax, word [bx+002h]                    ; 8b 47 02
     15629    test ax, ax                               ; 85 c0
     15630    je short 0a120h                           ; 74 11
     15631    push ax                                   ; 50
     15632    mov ax, 0f000h                            ; b8 00 f0
     15633    mov ds, ax                                ; 8e d8
     15634    call 0a2a0h                               ; e8 88 01
     15635    add sp, strict byte 00002h                ; 83 c4 02
     15636    add ax, strict word 00010h                ; 05 10 00
     15637    jmp short 0a12dh                          ; eb 0d
     15638    push word [bx]                            ; ff 37
     15639    mov ax, 0f000h                            ; b8 00 f0
     15640    mov ds, ax                                ; 8e d8
     15641    call 0a2a0h                               ; e8 76 01
     15642    add sp, strict byte 00002h                ; 83 c4 02
     15643    mov word [bp-014h], ax                    ; 89 46 ec
     15644    mov ds, [bp-006h]                         ; 8e 5e fa
     15645    mov ax, word [si+002h]                    ; 8b 44 02
     15646    test ax, ax                               ; 85 c0
     15647    je short 0a14bh                           ; 74 11
     15648    push ax                                   ; 50
     15649    mov ax, 0f000h                            ; b8 00 f0
     15650    mov ds, ax                                ; 8e d8
     15651    call 0a2a0h                               ; e8 5d 01
     15652    add sp, strict byte 00002h                ; 83 c4 02
     15653    add ax, strict word 00010h                ; 05 10 00
     15654    jmp short 0a158h                          ; eb 0d
     15655    push word [si]                            ; ff 34
     15656    mov ax, 0f000h                            ; b8 00 f0
     15657    mov ds, ax                                ; 8e d8
     15658    call 0a2a0h                               ; e8 4b 01
     15659    add sp, strict byte 00002h                ; 83 c4 02
     15660    mov dx, word [bp-014h]                    ; 8b 56 ec
     15661    sub dx, ax                                ; 29 c2
     15662    mov word [bp-012h], dx                    ; 89 56 ee
     15663    mov ds, [bp-006h]                         ; 8e 5e fa
     15664    mov ax, word [si]                         ; 8b 04
     15665    mov word [bp-018h], ax                    ; 89 46 e8
     15666    mov ax, word [si+002h]                    ; 8b 44 02
     15667    mov word [bp-016h], ax                    ; 89 46 ea
     15668    test dx, dx                               ; 85 d2
     15669    je short 0a1c8h                           ; 74 56
     15670    mov cx, dx                                ; 89 d1
     15671    xor ch, dh                                ; 30 f5
     15672    and cl, 01fh                              ; 80 e1 1f
     15673    mov ax, word [si]                         ; 8b 04
     15674    mov dx, word [si+002h]                    ; 8b 54 02
     15675    jcxz 0a186h                               ; e3 06
     15676    sal ax, 1                                 ; d1 e0
     15677    rcl dx, 1                                 ; d1 d2
     15678    loop 0a180h                               ; e2 fa
     15679    mov word [bp-018h], ax                    ; 89 46 e8
     15680    mov word [bp-016h], dx                    ; 89 56 ea
     15681    mov ax, word [bp-016h]                    ; 8b 46 ea
     15682    lds bx, [bp-00ch]                         ; c5 5e f4
     15683    cmp ax, word [bx+002h]                    ; 3b 47 02
     15684    jnbe short 0a1a6h                         ; 77 0f
     15685    mov ax, word [bp-016h]                    ; 8b 46 ea
     15686    cmp ax, word [bx+002h]                    ; 3b 47 02
     15687    jne short 0a1aah                          ; 75 0b
     15688    mov ax, word [bp-018h]                    ; 8b 46 e8
     15689    cmp ax, word [bx]                         ; 3b 07
     15690    jbe short 0a1aah                          ; 76 04
     15691    mov AL, strict byte 001h                  ; b0 01
     15692    jmp short 0a1ach                          ; eb 02
     15693    xor al, al                                ; 30 c0
     15694    test al, al                               ; 84 c0
     15695    je short 0a1d3h                           ; 74 23
     15696    shr word [bp-016h], 1                     ; d1 6e ea
     15697    rcr word [bp-018h], 1                     ; d1 5e e8
     15698    dec word [bp-012h]                        ; ff 4e ee
     15699    jmp short 0a1d3h                          ; eb 18
     15700    mov cx, strict word 0001fh                ; b9 1f 00
     15701    sal word [bp-018h], 1                     ; d1 66 e8
     15702    rcl word [bp-016h], 1                     ; d1 56 ea
     15703    loop 0a1beh                               ; e2 f8
     15704    jmp short 0a1b6h                          ; eb ee
     15705    mov ax, word [si]                         ; 8b 04
     15706    mov word [bp-018h], ax                    ; 89 46 e8
     15707    mov ax, word [si+002h]                    ; 8b 44 02
     15708    mov word [bp-016h], ax                    ; 89 46 ea
     15709    lds bx, [bp-010h]                         ; c5 5e f0
     15710    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
     15711    mov word [bx], strict word 00000h         ; c7 07 00 00
     15712    lds bx, [bp-00ch]                         ; c5 5e f4
     15713    mov dx, word [bx]                         ; 8b 17
     15714    mov ax, word [bx+002h]                    ; 8b 47 02
     15715    mov ds, [bp-008h]                         ; 8e 5e f8
     15716    mov word [di], dx                         ; 89 15
     15717    mov word [di+002h], ax                    ; 89 45 02
     15718    mov dx, word [di]                         ; 8b 15
     15719    mov ds, [bp-006h]                         ; 8e 5e fa
     15720    cmp ax, word [si+002h]                    ; 3b 44 02
     15721    jnbe short 0a1ffh                         ; 77 06
     15722    jne short 0a203h                          ; 75 08
     15723    cmp dx, word [si]                         ; 3b 14
     15724    jc short 0a203h                           ; 72 04
     15725    mov AL, strict byte 001h                  ; b0 01
     15726    jmp short 0a205h                          ; eb 02
     15727    xor al, al                                ; 30 c0
     15728    test al, al                               ; 84 c0
     15729    je short 0a26ah                           ; 74 61
     15730    mov ds, [bp-008h]                         ; 8e 5e f8
     15731    mov ax, word [di+002h]                    ; 8b 45 02
     15732    cmp ax, word [bp-016h]                    ; 3b 46 ea
     15733    jnbe short 0a220h                         ; 77 0c
     15734    cmp ax, word [bp-016h]                    ; 3b 46 ea
     15735    jne short 0a224h                          ; 75 0b
     15736    mov ax, word [di]                         ; 8b 05
     15737    cmp ax, word [bp-018h]                    ; 3b 46 e8
     15738    jc short 0a224h                           ; 72 04
     15739    mov AL, strict byte 001h                  ; b0 01
     15740    jmp short 0a226h                          ; eb 02
     15741    xor al, al                                ; 30 c0
     15742    test al, al                               ; 84 c0
     15743    je short 0a250h                           ; 74 26
     15744    mov ax, word [bp-018h]                    ; 8b 46 e8
     15745    mov ds, [bp-008h]                         ; 8e 5e f8
     15746    sub word [di], ax                         ; 29 05
     15747    mov ax, word [bp-016h]                    ; 8b 46 ea
     15748    sbb word [di+002h], ax                    ; 19 45 02
     15749    mov ax, strict word 00001h                ; b8 01 00
     15750    xor dx, dx                                ; 31 d2
     15751    mov cx, word [bp-012h]                    ; 8b 4e ee
     15752    jcxz 0a248h                               ; e3 06
     15753    sal ax, 1                                 ; d1 e0
     15754    rcl dx, 1                                 ; d1 d2
     15755    loop 0a242h                               ; e2 fa
     15756    lds bx, [bp-010h]                         ; c5 5e f0
     15757    or word [bx], ax                          ; 09 07
     15758    or word [bx+002h], dx                     ; 09 57 02
     15759    mov ds, [bp-008h]                         ; 8e 5e f8
     15760    mov dx, word [di]                         ; 8b 15
     15761    mov ax, word [di+002h]                    ; 8b 45 02
     15762    mov ds, [bp-006h]                         ; 8e 5e fa
     15763    cmp ax, word [si+002h]                    ; 3b 44 02
     15764    jc short 0a266h                           ; 72 06
     15765    jne short 0a26ch                          ; 75 0a
     15766    cmp dx, word [si]                         ; 3b 14
     15767    jnc short 0a26ch                          ; 73 06
     15768    mov AL, strict byte 001h                  ; b0 01
     15769    jmp short 0a26eh                          ; eb 04
     15770    jmp short 0a28dh                          ; eb 21
     15771    xor al, al                                ; 30 c0
     15772    test al, al                               ; 84 c0
     15773    je short 0a281h                           ; 74 0f
     15774    jmp short 0a28dh                          ; eb 19
     15775    mov cx, strict word 0001fh                ; b9 1f 00
     15776    sal word [bp-018h], 1                     ; d1 66 e8
     15777    rcl word [bp-016h], 1                     ; d1 56 ea
     15778    loop 0a277h                               ; e2 f8
     15779    jmp short 0a287h                          ; eb 06
     15780    shr word [bp-016h], 1                     ; d1 6e ea
     15781    rcr word [bp-018h], 1                     ; d1 5e e8
     15782    dec word [bp-012h]                        ; ff 4e ee
     15783    jmp near 0a209h                           ; e9 7c ff
     15784    mov ax, word [bp-01ch]                    ; 8b 46 e4
     15785    mov dx, word [bp-01ah]                    ; 8b 56 e6
     15786    lea sp, [bp-004h]                         ; 8d 66 fc
     15787    pop di                                    ; 5f
     15788    pop si                                    ; 5e
     15789    pop bp                                    ; 5d
     15790    retn                                      ; c3
     15791    times 0x6 db 0
     15792_ASMBitLastSetU16:                           ; 0xfa2a0 LB 0x18
     15793    push bp                                   ; 55
     15794    db  08bh, 0ech
     15795    ; mov bp, sp                                ; 8b ec
     15796    mov cx, word [bp+004h]                    ; 8b 4e 04
     15797    test cx, cx                               ; 85 c9
     15798    je short 0a2b4h                           ; 74 0a
     15799    mov ax, strict word 00010h                ; b8 10 00
     15800    sal cx, 1                                 ; d1 e1
     15801    jc short 0a2b6h                           ; 72 05
     15802    dec ax                                    ; 48
     15803    jmp short 0a2adh                          ; eb f9
     15804    db  033h, 0c0h
     15805    ; xor ax, ax                                ; 33 c0
     15806    pop bp                                    ; 5d
     15807    retn                                      ; c3
    1540315808
    15404   ; Padding 0x39bb bytes at 0xfa045
    15405   times 14779 db 0
     15809  ; Padding 0x3748 bytes at 0xfa2b8
     15810  times 14152 db 0
    1540615811
    1540715812section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1545015855    add bp, strict byte 00008h                ; 83 c5 08
    1545115856    push ebp                                  ; 66 55
    15452     mov bp, 0a036h                            ; bd 36 a0
     15857    mov bp, 0a026h                            ; bd 26 a0
    1545315858    add byte [bx+si], al                      ; 00 00
    1545415859    push ebp                                  ; 66 55
     
    1611416519    mov ax, 0f000h                            ; b8 00 f0
    1611516520    mov word [0012ah], ax                     ; a3 2a 01
    16116     mov ax, 0f8e4h                            ; b8 e4 f8
     16521    mov ax, 0f8f6h                            ; b8 f6 f8
    1611716522    mov word [001c0h], ax                     ; a3 c0 01
    1611816523    mov ax, 0f000h                            ; b8 00 f0
     
    1614916554    mov ax, 0f000h                            ; b8 00 f0
    1615016555    mov word [0004eh], ax                     ; a3 4e 00
    16151     mov ax, 0f8d2h                            ; b8 d2 f8
     16556    mov ax, 0f8e4h                            ; b8 e4 f8
    1615216557    mov word [001d8h], ax                     ; a3 d8 01
    1615316558    mov ax, 0f000h                            ; b8 00 f0
     
    1616216567    mov word [0011ah], ax                     ; a3 1a 01
    1616316568    retn                                      ; c3
    16164     mov ax, 0f8a7h                            ; b8 a7 f8
     16569    mov ax, 0f8b9h                            ; b8 b9 f8
    1616516570    mov word [001d0h], ax                     ; a3 d0 01
    1616616571    mov ax, 0f000h                            ; b8 00 f0
     
    1617616581    call 01c9fh                               ; e8 63 39
    1617716582    call 02118h                               ; e8 d9 3d
    16178     call 09868h                               ; e8 26 b5
    16179     call 086f3h                               ; e8 ae a3
     16583    call 09864h                               ; e8 22 b5
     16584    call 086efh                               ; e8 aa a3
    1618016585    call 0ed2fh                               ; e8 e7 09
    1618116586    call 0e2d2h                               ; e8 87 ff
     
    1644316848    pop DS                                    ; 1f
    1644416849    cld                                       ; fc
    16445     call 06e62h                               ; e8 83 84
     16850    call 06e5eh                               ; e8 7f 84
    1644616851    pop DS                                    ; 1f
    1644716852    pop ES                                    ; 07
     
    1676117166    pop DS                                    ; 1f
    1676217167    cld                                       ; fc
    16763     call 07800h                               ; e8 23 88
     17168    call 077fch                               ; e8 1f 88
    1676417169    popaw                                     ; 61
    1676517170    pop ES                                    ; 07
     
    1710817513    pop DS                                    ; 1f
    1710917514    iret                                      ; cf
    17110 int15_handler:                               ; 0xff859 LB 0x2e
     17515int15_handler:                               ; 0xff859 LB 0x40
     17516    cmp ah, 087h                              ; 80 fc 87
     17517    jne short 0f86bh                          ; 75 0d
     17518    pushaw                                    ; 60
     17519    push ES                                   ; 06
     17520    push DS                                   ; 1e
     17521    push CS                                   ; 0e
     17522    pop DS                                    ; 1f
     17523    cld                                       ; fc
     17524    call 06cd4h                               ; e8 6d 74
     17525    pop DS                                    ; 1f
     17526    pop ES                                    ; 07
     17527    popaw                                     ; 61
     17528    iret                                      ; cf
    1711117529    pushfw                                    ; 9c
    1711217530    push DS                                   ; 1e
     
    1711617534    cld                                       ; fc
    1711717535    cmp ah, 086h                              ; 80 fc 86
    17118     je short 0f88ch                           ; 74 28
     17536    je short 0f89eh                           ; 74 28
    1711917537    cmp ah, 0e8h                              ; 80 fc e8
    17120     je short 0f88ch                           ; 74 23
     17538    je short 0f89eh                           ; 74 23
    1712117539    cmp ah, 0d0h                              ; 80 fc d0
    17122     je short 0f88ch                           ; 74 1e
     17540    je short 0f89eh                           ; 74 1e
    1712317541    pushaw                                    ; 60
    1712417542    cmp ah, 053h                              ; 80 fc 53
    17125     je short 0f882h                           ; 74 0e
     17543    je short 0f894h                           ; 74 0e
    1712617544    cmp ah, 0c2h                              ; 80 fc c2
    17127     je short 0f887h                           ; 74 0e
    17128     call 065ceh                               ; e8 52 6d
     17545    je short 0f899h                           ; 74 0e
     17546    call 0660eh                               ; e8 80 6d
    1712917547    popaw                                     ; 61
    1713017548    pop ES                                    ; 07
    1713117549    pop DS                                    ; 1f
    1713217550    popfw                                     ; 9d
    17133     jmp short 0f893h                          ; eb 11
    17134     call 099bah                               ; e8 35 a1
    17135     jmp short 0f87ch                          ; eb f5
    17136 int15_handler_mouse:                         ; 0xff887 LB 0x5
    17137     call 07473h                               ; e8 e9 7b
    17138     jmp short 0f87ch                          ; eb f0
    17139 int15_handler32:                             ; 0xff88c LB 0x7
     17551    jmp short 0f8a5h                          ; eb 11
     17552    call 099b6h                               ; e8 1f a1
     17553    jmp short 0f88eh                          ; eb f5
     17554int15_handler_mouse:                         ; 0xff899 LB 0x5
     17555    call 0746fh                               ; e8 d3 7b
     17556    jmp short 0f88eh                          ; eb f0
     17557int15_handler32:                             ; 0xff89e LB 0x7
    1714017558    pushaw                                    ; 60
    17141     call 06aa6h                               ; e8 16 72
     17559    call 0694ah                               ; e8 a8 70
    1714217560    popaw                                     ; 61
    17143     jmp short 0f87dh                          ; eb ea
    17144 iret_modify_cf:                              ; 0xff893 LB 0x14
    17145     jc short 0f89eh                           ; 72 09
     17561    jmp short 0f88fh                          ; eb ea
     17562iret_modify_cf:                              ; 0xff8a5 LB 0x14
     17563    jc short 0f8b0h                           ; 72 09
    1714617564    push bp                                   ; 55
    1714717565    db  08bh, 0ech
     
    1715617574    pop bp                                    ; 5d
    1715717575    iret                                      ; cf
    17158 int74_handler:                               ; 0xff8a7 LB 0x2b
     17576int74_handler:                               ; 0xff8b9 LB 0x2b
    1715917577    sti                                       ; fb
    1716017578    pushaw                                    ; 60
     
    1717117589    pop DS                                    ; 1f
    1717217590    cld                                       ; fc
    17173     call 073a1h                               ; e8 e9 7a
     17591    call 0739dh                               ; e8 d3 7a
    1717417592    pop cx                                    ; 59
    17175     jcxz 0f8c7h                               ; e3 0c
     17593    jcxz 0f8d9h                               ; e3 0c
    1717617594    push strict byte 00000h                   ; 6a 00
    1717717595    pop DS                                    ; 1f
     
    1718017598    call far [word 00022h]                    ; ff 1e 22 00
    1718117599    cli                                       ; fa
    17182     call 0e030h                               ; e8 65 e7
     17600    call 0e030h                               ; e8 53 e7
    1718317601    add sp, strict byte 00008h                ; 83 c4 08
    1718417602    pop DS                                    ; 1f
     
    1718617604    popaw                                     ; 61
    1718717605    iret                                      ; cf
    17188 int76_handler:                               ; 0xff8d2 LB 0x12
     17606int76_handler:                               ; 0xff8e4 LB 0x12
    1718917607    push ax                                   ; 50
    1719017608    push DS                                   ; 1e
     
    1719217610    mov ds, ax                                ; 8e d8
    1719317611    mov byte [0008eh], 0ffh                   ; c6 06 8e 00 ff
    17194     call 0e030h                               ; e8 4f e7
     17612    call 0e030h                               ; e8 3d e7
    1719517613    pop DS                                    ; 1f
    1719617614    pop ax                                    ; 58
    1719717615    iret                                      ; cf
    17198 int70_handler:                               ; 0xff8e4 LB 0x1f
     17616int70_handler:                               ; 0xff8f6 LB 0x1f
    1719917617    push ES                                   ; 06
    1720017618    push DS                                   ; 1e
     
    1720317621    pop DS                                    ; 1f
    1720417622    cld                                       ; fc
    17205     call 07046h                               ; e8 59 77
     17623    call 07042h                               ; e8 43 77
    1720617624    popaw                                     ; 61
    1720717625    pop DS                                    ; 1f
    1720817626    pop ES                                    ; 07
    1720917627    iret                                      ; cf
    17210     jnbe short 0f8f8h                         ; 77 05
     17628    jnbe short 0f90ah                         ; 77 05
    1721117629    cmp ax, 000b0h                            ; 3d b0 00
    17212     jc short 0f900h                           ; 72 08
     17630    jc short 0f912h                           ; 72 08
    1721317631    db  033h, 0d2h
    1721417632    ; xor dx, dx                                ; 33 d2
     
    1721617634    ; xor ax, ax                                ; 33 c0
    1721717635    inc byte [word 00070h]                    ; fe 06 70 00
    17218     jmp near 0fec1h                           ; e9 be 05
    17219 biosorg_check_before_or_at_0FA6Ch:           ; 0xff903 LB 0x16b
    17220     times 0x169 db 0
     17636    jmp near 0fec1h                           ; e9 ac 05
     17637biosorg_check_before_or_at_0FA6Ch:           ; 0xff915 LB 0x159
     17638    times 0x157 db 0
    1722117639    db  'XM'
    1722217640font8x8:                                     ; 0xffa6e LB 0x400
     
    1729217710    pop DS                                    ; 1f
    1729317711    cld                                       ; fc
    17294     call 07105h                               ; e8 8e 72
     17712    call 07101h                               ; e8 8a 72
    1729517713    popaw                                     ; 61
    1729617714    pop DS                                    ; 1f
     
    1731417732    cmp dx, strict byte 00018h                ; 83 fa 18
    1731517733    jc short 0fec1h                           ; 72 03
    17316     jmp near 0f8f1h                           ; e9 30 fa
     17734    jmp near 0f903h                           ; e9 42 fa
    1731717735    mov word [0006ch], ax                     ; a3 6c 00
    1731817736    mov word [word 0006eh], dx                ; 89 16 6e 00
     
    1739717815cpu_reset:                                   ; 0xffff0 LB 0x10
    1739817816    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17399     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0ffh
     17817    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0c5h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum

    r60443 r61092  
    1 72bd720065b63f96ad5945490ffeef78 *VBoxPcBios286.rom
     1bd4b581d97fc0ab7f96208d4e848e2d3 *VBoxPcBios286.rom
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm

    r60443 r61092  
    728728
    729729;
    730 ; Source file: support.asm
     730; Source file: __U4M.asm
     731;
     732;  $Id$
     733;  Compiler support routines.
     734
     735
     736
     737;  Copyright (C) 2012-2015 Oracle Corporation
     738
     739;  This file is part of VirtualBox Open Source Edition (OSE), as
     740;  available from http://www.virtualbox.org. This file is free software;
     741;  you can redistribute it and/or modify it under the terms of the GNU
     742;  General Public License (GPL) as published by the Free Software
     743;  Foundation, in version 2 as it comes in the "COPYING" file of the
     744;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     745;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     746
     747
     748;
     749; Source file: __U4D.asm
     750;
     751;  $Id$
     752;  Compiler support routines.
     753
     754
     755
     756;  Copyright (C) 2012-2016 Oracle Corporation
     757
     758;  This file is part of VirtualBox Open Source Edition (OSE), as
     759;  available from http://www.virtualbox.org. This file is free software;
     760;  you can redistribute it and/or modify it under the terms of the GNU
     761;  General Public License (GPL) as published by the Free Software
     762;  Foundation, in version 2 as it comes in the "COPYING" file of the
     763;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     764;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     765
     766
     767;
     768; Source file: __U8RS.asm
     769;
     770;  $Id$
     771;  Compiler support routines.
     772
     773
     774
     775;  Copyright (C) 2012-2015 Oracle Corporation
     776
     777;  This file is part of VirtualBox Open Source Edition (OSE), as
     778;  available from http://www.virtualbox.org. This file is free software;
     779;  you can redistribute it and/or modify it under the terms of the GNU
     780;  General Public License (GPL) as published by the Free Software
     781;  Foundation, in version 2 as it comes in the "COPYING" file of the
     782;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     783;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     784
     785
     786;
     787; Source file: __U8LS.asm
     788;
     789;  $Id$
     790;  Compiler support routines.
     791
     792
     793
     794;  Copyright (C) 2012-2015 Oracle Corporation
     795
     796;  This file is part of VirtualBox Open Source Edition (OSE), as
     797;  available from http://www.virtualbox.org. This file is free software;
     798;  you can redistribute it and/or modify it under the terms of the GNU
     799;  General Public License (GPL) as published by the Free Software
     800;  Foundation, in version 2 as it comes in the "COPYING" file of the
     801;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     802;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     803
     804
     805;
     806; Source file: fmemset.asm
     807;
     808;  $Id$
     809;  Compiler support routines.
     810
     811
     812
     813;  Copyright (C) 2012-2015 Oracle Corporation
     814
     815;  This file is part of VirtualBox Open Source Edition (OSE), as
     816;  available from http://www.virtualbox.org. This file is free software;
     817;  you can redistribute it and/or modify it under the terms of the GNU
     818;  General Public License (GPL) as published by the Free Software
     819;  Foundation, in version 2 as it comes in the "COPYING" file of the
     820;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     821;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     822
     823
     824;
     825; Source file: fmemcpy.asm
    731826;
    732827;  $Id$
     
    856951    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    857952_pktacc:                                     ; 0xf006a LB 0xc
    858     db  000h, 000h, 000h, 000h, 000h, 000h, 064h, 02bh, 04eh, 080h, 075h, 08fh
     953    db  000h, 000h, 000h, 000h, 000h, 000h, 0cch, 02bh, 0dah, 080h, 001h, 090h
    859954_softrst:                                    ; 0xf0076 LB 0xc
    860     db  000h, 000h, 000h, 000h, 000h, 000h, 04ch, 02eh, 029h, 03bh, 029h, 03bh
     955    db  000h, 000h, 000h, 000h, 000h, 000h, 0b4h, 02eh, 091h, 03bh, 091h, 03bh
    861956_dskacc:                                     ; 0xf0082 LB 0x2e
    862     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 054h, 02ah, 009h, 02bh, 000h, 000h, 000h, 000h
    863     db  098h, 07eh, 073h, 07fh, 04bh, 08eh, 0f1h, 08eh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     957    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0bch, 02ah, 071h, 02bh, 000h, 000h, 000h, 000h
     958    db  024h, 07fh, 0ffh, 07fh, 0d7h, 08eh, 07dh, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    864959    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    865960
     
    10581153  times 1144 db 0
    10591154
    1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8905 class=CODE group=AUTO
     1155section _TEXT progbits vstart=0x1600 align=1 ; size=0x89b5 class=CODE group=AUTO
    10611156rom_scan_:                                   ; 0xf1600 LB 0x50
    10621157    push bp                                   ; 55
     
    11001195    pop bp                                    ; 5d
    11011196    retn                                      ; c3
    1102 read_byte_:                                  ; 0xf1650 LB 0xe
     1197_apic_setup:                                 ; 0xf1650 LB 0x68
     1198    push bp                                   ; 55
     1199    mov bp, sp                                ; 89 e5
     1200    push si                                   ; 56
     1201    push di                                   ; 57
     1202    mov ax, strict word 00078h                ; b8 78 00
     1203    call 01714h                               ; e8 b9 00
     1204    cmp AL, strict byte 002h                  ; 3c 02
     1205    jne short 01664h                          ; 75 05
     1206    mov si, 00400h                            ; be 00 04
     1207    jmp short 01673h                          ; eb 0f
     1208    test al, al                               ; 84 c0
     1209    jne short 0166dh                          ; 75 05
     1210    mov si, 00800h                            ; be 00 08
     1211    jmp short 0166fh                          ; eb 02
     1212    xor si, si                                ; 31 f6
     1213    test si, si                               ; 85 f6
     1214    je short 016b1h                           ; 74 3e
     1215    mov ax, strict word 0001bh                ; b8 1b 00
     1216    xor cx, cx                                ; 31 c9
     1217    sal ecx, 010h                             ; 66 c1 e1 10
     1218    db  08bh, 0c8h
     1219    ; mov cx, ax                                ; 8b c8
     1220    rdmsr                                     ; 0f 32
     1221    xchg edx, eax                             ; 66 92
     1222    db  08bh, 0d8h
     1223    ; mov bx, ax                                ; 8b d8
     1224    shr eax, 010h                             ; 66 c1 e8 10
     1225    db  08bh, 0cah
     1226    ; mov cx, dx                                ; 8b ca
     1227    shr edx, 010h                             ; 66 c1 ea 10
     1228    xchg dx, cx                               ; 87 ca
     1229    or dx, si                                 ; 09 f2
     1230    mov si, strict word 0001bh                ; be 1b 00
     1231    xor di, di                                ; 31 ff
     1232    sal eax, 010h                             ; 66 c1 e0 10
     1233    db  08bh, 0c3h
     1234    ; mov ax, bx                                ; 8b c3
     1235    xchg dx, cx                               ; 87 ca
     1236    sal edx, 010h                             ; 66 c1 e2 10
     1237    db  08bh, 0d1h
     1238    ; mov dx, cx                                ; 8b d1
     1239    xchg edx, eax                             ; 66 92
     1240    db  08bh, 0cfh
     1241    ; mov cx, di                                ; 8b cf
     1242    sal ecx, 010h                             ; 66 c1 e1 10
     1243    db  08bh, 0ceh
     1244    ; mov cx, si                                ; 8b ce
     1245    wrmsr                                     ; 0f 30
     1246    lea sp, [bp-004h]                         ; 8d 66 fc
     1247    pop di                                    ; 5f
     1248    pop si                                    ; 5e
     1249    pop bp                                    ; 5d
     1250    retn                                      ; c3
     1251read_byte_:                                  ; 0xf16b8 LB 0xe
    11031252    push bx                                   ; 53
    11041253    push bp                                   ; 55
     
    11101259    pop bx                                    ; 5b
    11111260    retn                                      ; c3
    1112 write_byte_:                                 ; 0xf165e LB 0xe
     1261write_byte_:                                 ; 0xf16c6 LB 0xe
    11131262    push si                                   ; 56
    11141263    push bp                                   ; 55
     
    11201269    pop si                                    ; 5e
    11211270    retn                                      ; c3
    1122 read_word_:                                  ; 0xf166c LB 0xe
     1271read_word_:                                  ; 0xf16d4 LB 0xe
    11231272    push bx                                   ; 53
    11241273    push bp                                   ; 55
     
    11301279    pop bx                                    ; 5b
    11311280    retn                                      ; c3
    1132 write_word_:                                 ; 0xf167a LB 0xe
     1281write_word_:                                 ; 0xf16e2 LB 0xe
    11331282    push si                                   ; 56
    11341283    push bp                                   ; 55
     
    11401289    pop si                                    ; 5e
    11411290    retn                                      ; c3
    1142 read_dword_:                                 ; 0xf1688 LB 0x12
     1291read_dword_:                                 ; 0xf16f0 LB 0x12
    11431292    push bx                                   ; 53
    11441293    push bp                                   ; 55
     
    11511300    pop bx                                    ; 5b
    11521301    retn                                      ; c3
    1153 write_dword_:                                ; 0xf169a LB 0x12
     1302write_dword_:                                ; 0xf1702 LB 0x12
    11541303    push si                                   ; 56
    11551304    push bp                                   ; 55
     
    11621311    pop si                                    ; 5e
    11631312    retn                                      ; c3
    1164 inb_cmos_:                                   ; 0xf16ac LB 0x1d
     1313inb_cmos_:                                   ; 0xf1714 LB 0x1d
    11651314    push bp                                   ; 55
    11661315    mov bp, sp                                ; 89 e5
     
    11681317    mov AH, strict byte 070h                  ; b4 70
    11691318    cmp AL, strict byte 080h                  ; 3c 80
    1170     jc short 016b8h                           ; 72 02
     1319    jc short 01720h                           ; 72 02
    11711320    mov AH, strict byte 072h                  ; b4 72
    11721321    movzx dx, ah                              ; 0f b6 d4
     
    11811330    pop bp                                    ; 5d
    11821331    retn                                      ; c3
    1183 outb_cmos_:                                  ; 0xf16c9 LB 0x1f
     1332outb_cmos_:                                  ; 0xf1731 LB 0x1f
    11841333    push bp                                   ; 55
    11851334    mov bp, sp                                ; 89 e5
     
    11881337    mov BL, strict byte 070h                  ; b3 70
    11891338    cmp AL, strict byte 080h                  ; 3c 80
    1190     jc short 016d7h                           ; 72 02
     1339    jc short 0173fh                           ; 72 02
    11911340    mov BL, strict byte 072h                  ; b3 72
    11921341    movzx dx, bl                              ; 0f b6 d3
     
    12001349    pop bp                                    ; 5d
    12011350    retn                                      ; c3
    1202 _dummy_isr_function:                         ; 0xf16e8 LB 0x6b
     1351_dummy_isr_function:                         ; 0xf1750 LB 0x6b
    12031352    push bp                                   ; 55
    12041353    mov bp, sp                                ; 89 e5
     
    12141363    mov byte [bp-002h], al                    ; 88 46 fe
    12151364    test al, al                               ; 84 c0
    1216     je short 01743h                           ; 74 43
     1365    je short 017abh                           ; 74 43
    12171366    mov AL, strict byte 00bh                  ; b0 0b
    12181367    mov dx, 000a0h                            ; ba a0 00
     
    12231372    mov cx, ax                                ; 89 c1
    12241373    test al, al                               ; 84 c0
    1225     je short 01725h                           ; 74 16
     1374    je short 0178dh                           ; 74 16
    12261375    mov dx, 000a1h                            ; ba a1 00
    12271376    in AL, DX                                 ; ec
     
    12351384    mov dx, 000a0h                            ; ba a0 00
    12361385    out DX, AL                                ; ee
    1237     jmp short 0173ah                          ; eb 15
     1386    jmp short 017a2h                          ; eb 15
    12381387    mov dx, strict word 00021h                ; ba 21 00
    12391388    in AL, DX                                 ; ec
     
    12531402    mov dx, strict word 0006bh                ; ba 6b 00
    12541403    mov ax, strict word 00040h                ; b8 40 00
    1255     call 0165eh                               ; e8 0f ff
     1404    call 016c6h                               ; e8 0f ff
    12561405    mov sp, bp                                ; 89 ec
    12571406    pop bp                                    ; 5d
    12581407    retn                                      ; c3
    1259 _nmi_handler_msg:                            ; 0xf1753 LB 0x12
     1408_nmi_handler_msg:                            ; 0xf17bb LB 0x12
    12601409    push bp                                   ; 55
    12611410    mov bp, sp                                ; 89 e5
    12621411    push 000b0h                               ; 68 b0 00
    12631412    push strict byte 00007h                   ; 6a 07
    1264     call 01972h                               ; e8 14 02
     1413    call 019dah                               ; e8 14 02
    12651414    add sp, strict byte 00004h                ; 83 c4 04
    12661415    mov sp, bp                                ; 89 ec
    12671416    pop bp                                    ; 5d
    12681417    retn                                      ; c3
    1269 _int18_panic_msg:                            ; 0xf1765 LB 0x12
     1418_int18_panic_msg:                            ; 0xf17cd LB 0x12
    12701419    push bp                                   ; 55
    12711420    mov bp, sp                                ; 89 e5
    12721421    push 000c4h                               ; 68 c4 00
    12731422    push strict byte 00007h                   ; 6a 07
    1274     call 01972h                               ; e8 02 02
     1423    call 019dah                               ; e8 02 02
    12751424    add sp, strict byte 00004h                ; 83 c4 04
    12761425    mov sp, bp                                ; 89 ec
    12771426    pop bp                                    ; 5d
    12781427    retn                                      ; c3
    1279 _log_bios_start:                             ; 0xf1777 LB 0x20
     1428_log_bios_start:                             ; 0xf17df LB 0x20
    12801429    push bp                                   ; 55
    12811430    mov bp, sp                                ; 89 e5
     
    12831432    mov cx, ds                                ; 8c d9
    12841433    mov ax, strict word 00004h                ; b8 04 00
    1285     call 01931h                               ; e8 ac 01
     1434    call 01999h                               ; e8 ac 01
    12861435    push 00d8eh                               ; 68 8e 0d
    12871436    push 000d9h                               ; 68 d9 00
    12881437    push strict byte 00004h                   ; 6a 04
    1289     call 01972h                               ; e8 e2 01
     1438    call 019dah                               ; e8 e2 01
    12901439    add sp, strict byte 00006h                ; 83 c4 06
    12911440    mov sp, bp                                ; 89 ec
    12921441    pop bp                                    ; 5d
    12931442    retn                                      ; c3
    1294 _print_bios_banner:                          ; 0xf1797 LB 0x2e
     1443_print_bios_banner:                          ; 0xf17ff LB 0x2e
    12951444    push bp                                   ; 55
    12961445    mov bp, sp                                ; 89 e5
    12971446    mov dx, strict word 00072h                ; ba 72 00
    12981447    mov ax, strict word 00040h                ; b8 40 00
    1299     call 0166ch                               ; e8 c9 fe
     1448    call 016d4h                               ; e8 c9 fe
    13001449    mov cx, ax                                ; 89 c1
    13011450    xor bx, bx                                ; 31 db
    13021451    mov dx, strict word 00072h                ; ba 72 00
    13031452    mov ax, strict word 00040h                ; b8 40 00
    1304     call 0167ah                               ; e8 ca fe
     1453    call 016e2h                               ; e8 ca fe
    13051454    cmp cx, 01234h                            ; 81 f9 34 12
    1306     jne short 017beh                          ; 75 08
     1455    jne short 01826h                          ; 75 08
    13071456    mov AL, strict byte 003h                  ; b0 03
    13081457    mov AH, strict byte 000h                  ; b4 00
    13091458    int 010h                                  ; cd 10
    1310     jmp short 017c1h                          ; eb 03
    1311     call 07a63h                               ; e8 a2 62
     1459    jmp short 01829h                          ; eb 03
     1460    call 07aefh                               ; e8 c6 62
    13121461    mov sp, bp                                ; 89 ec
    13131462    pop bp                                    ; 5d
    13141463    retn                                      ; c3
    1315 send_:                                       ; 0xf17c5 LB 0x3b
     1464send_:                                       ; 0xf182d LB 0x3b
    13161465    push bp                                   ; 55
    13171466    mov bp, sp                                ; 89 e5
     
    13211470    mov cl, dl                                ; 88 d1
    13221471    test AL, strict byte 008h                 ; a8 08
    1323     je short 017d8h                           ; 74 06
     1472    je short 01840h                           ; 74 06
    13241473    mov al, dl                                ; 88 d0
    13251474    mov dx, 00403h                            ; ba 03 04
    13261475    out DX, AL                                ; ee
    13271476    test bl, 004h                             ; f6 c3 04
    1328     je short 017e3h                           ; 74 06
     1477    je short 0184bh                           ; 74 06
    13291478    mov al, cl                                ; 88 c8
    13301479    mov dx, 00504h                            ; ba 04 05
    13311480    out DX, AL                                ; ee
    13321481    test bl, 002h                             ; f6 c3 02
    1333     je short 017f9h                           ; 74 11
     1482    je short 01861h                           ; 74 11
    13341483    cmp cl, 00ah                              ; 80 f9 0a
    1335     jne short 017f3h                          ; 75 06
     1484    jne short 0185bh                          ; 75 06
    13361485    mov AL, strict byte 00dh                  ; b0 0d
    13371486    mov AH, strict byte 00eh                  ; b4 0e
     
    13451494    pop bp                                    ; 5d
    13461495    retn                                      ; c3
    1347 put_int_:                                    ; 0xf1800 LB 0x5f
     1496put_int_:                                    ; 0xf1868 LB 0x5f
    13481497    push bp                                   ; 55
    13491498    mov bp, sp                                ; 89 e5
     
    13601509    mov word [bp-006h], ax                    ; 89 46 fa
    13611510    test ax, ax                               ; 85 c0
    1362     je short 01825h                           ; 74 0a
     1511    je short 0188dh                           ; 74 0a
    13631512    dec bx                                    ; 4b
    13641513    mov dx, ax                                ; 89 c2
    13651514    mov ax, si                                ; 89 f0
    1366     call 01800h                               ; e8 dd ff
    1367     jmp short 01840h                          ; eb 1b
     1515    call 01868h                               ; e8 dd ff
     1516    jmp short 018a8h                          ; eb 1b
    13681517    dec bx                                    ; 4b
    13691518    test bx, bx                               ; 85 db
    1370     jle short 01834h                          ; 7e 0a
     1519    jle short 0189ch                          ; 7e 0a
    13711520    mov dx, strict word 00020h                ; ba 20 00
    13721521    mov ax, si                                ; 89 f0
    1373     call 017c5h                               ; e8 93 ff
    1374     jmp short 01825h                          ; eb f1
     1522    call 0182dh                               ; e8 93 ff
     1523    jmp short 0188dh                          ; eb f1
    13751524    test cx, cx                               ; 85 c9
    1376     je short 01840h                           ; 74 08
     1525    je short 018a8h                           ; 74 08
    13771526    mov dx, strict word 0002dh                ; ba 2d 00
    13781527    mov ax, si                                ; 89 f0
    1379     call 017c5h                               ; e8 85 ff
     1528    call 0182dh                               ; e8 85 ff
    13801529    mov al, byte [bp-006h]                    ; 8a 46 fa
    13811530    mov DL, strict byte 00ah                  ; b2 0a
     
    13871536    movzx dx, al                              ; 0f b6 d0
    13881537    mov ax, si                                ; 89 f0
    1389     call 017c5h                               ; e8 6d ff
     1538    call 0182dh                               ; e8 6d ff
    13901539    lea sp, [bp-004h]                         ; 8d 66 fc
    13911540    pop di                                    ; 5f
     
    13931542    pop bp                                    ; 5d
    13941543    retn                                      ; c3
    1395 put_uint_:                                   ; 0xf185f LB 0x60
     1544put_uint_:                                   ; 0xf18c7 LB 0x60
    13961545    push bp                                   ; 55
    13971546    mov bp, sp                                ; 89 e5
     
    14081557    mov word [bp-006h], ax                    ; 89 46 fa
    14091558    test ax, ax                               ; 85 c0
    1410     je short 01885h                           ; 74 0a
     1559    je short 018edh                           ; 74 0a
    14111560    dec bx                                    ; 4b
    14121561    mov dx, ax                                ; 89 c2
    14131562    mov ax, si                                ; 89 f0
    1414     call 0185fh                               ; e8 dc ff
    1415     jmp short 018a0h                          ; eb 1b
     1563    call 018c7h                               ; e8 dc ff
     1564    jmp short 01908h                          ; eb 1b
    14161565    dec bx                                    ; 4b
    14171566    test bx, bx                               ; 85 db
    1418     jle short 01894h                          ; 7e 0a
     1567    jle short 018fch                          ; 7e 0a
    14191568    mov dx, strict word 00020h                ; ba 20 00
    14201569    mov ax, si                                ; 89 f0
    1421     call 017c5h                               ; e8 33 ff
    1422     jmp short 01885h                          ; eb f1
     1570    call 0182dh                               ; e8 33 ff
     1571    jmp short 018edh                          ; eb f1
    14231572    test cx, cx                               ; 85 c9
    1424     je short 018a0h                           ; 74 08
     1573    je short 01908h                           ; 74 08
    14251574    mov dx, strict word 0002dh                ; ba 2d 00
    14261575    mov ax, si                                ; 89 f0
    1427     call 017c5h                               ; e8 25 ff
     1576    call 0182dh                               ; e8 25 ff
    14281577    mov al, byte [bp-006h]                    ; 8a 46 fa
    14291578    mov DL, strict byte 00ah                  ; b2 0a
     
    14351584    movzx dx, al                              ; 0f b6 d0
    14361585    mov ax, si                                ; 89 f0
    1437     call 017c5h                               ; e8 0d ff
     1586    call 0182dh                               ; e8 0d ff
    14381587    lea sp, [bp-004h]                         ; 8d 66 fc
    14391588    pop di                                    ; 5f
     
    14411590    pop bp                                    ; 5d
    14421591    retn                                      ; c3
    1443 put_luint_:                                  ; 0xf18bf LB 0x72
     1592put_luint_:                                  ; 0xf1927 LB 0x72
    14441593    push bp                                   ; 55
    14451594    mov bp, sp                                ; 89 e5
     
    14551604    mov bx, strict word 0000ah                ; bb 0a 00
    14561605    xor cx, cx                                ; 31 c9
    1457     call 09df0h                               ; e8 17 85
     1606    call 09ec0h                               ; e8 7f 85
    14581607    mov word [bp-008h], ax                    ; 89 46 f8
    14591608    mov cx, dx                                ; 89 d1
    14601609    mov dx, ax                                ; 89 c2
    14611610    or dx, cx                                 ; 09 ca
    1462     je short 018f3h                           ; 74 0f
     1611    je short 0195bh                           ; 74 0f
    14631612    push word [bp+004h]                       ; ff 76 04
    14641613    lea dx, [di-001h]                         ; 8d 55 ff
    14651614    mov bx, ax                                ; 89 c3
    14661615    mov ax, si                                ; 89 f0
    1467     call 018bfh                               ; e8 ce ff
    1468     jmp short 01910h                          ; eb 1d
     1616    call 01927h                               ; e8 ce ff
     1617    jmp short 01978h                          ; eb 1d
    14691618    dec di                                    ; 4f
    14701619    test di, di                               ; 85 ff
    1471     jle short 01902h                          ; 7e 0a
     1620    jle short 0196ah                          ; 7e 0a
    14721621    mov dx, strict word 00020h                ; ba 20 00
    14731622    mov ax, si                                ; 89 f0
    1474     call 017c5h                               ; e8 c5 fe
    1475     jmp short 018f3h                          ; eb f1
     1623    call 0182dh                               ; e8 c5 fe
     1624    jmp short 0195bh                          ; eb f1
    14761625    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    1477     je short 01910h                           ; 74 08
     1626    je short 01978h                           ; 74 08
    14781627    mov dx, strict word 0002dh                ; ba 2d 00
    14791628    mov ax, si                                ; 89 f0
    1480     call 017c5h                               ; e8 b5 fe
     1629    call 0182dh                               ; e8 b5 fe
    14811630    mov al, byte [bp-008h]                    ; 8a 46 f8
    14821631    mov DL, strict byte 00ah                  ; b2 0a
     
    14881637    movzx dx, al                              ; 0f b6 d0
    14891638    mov ax, si                                ; 89 f0
    1490     call 017c5h                               ; e8 9d fe
     1639    call 0182dh                               ; e8 9d fe
    14911640    lea sp, [bp-004h]                         ; 8d 66 fc
    14921641    pop di                                    ; 5f
     
    14941643    pop bp                                    ; 5d
    14951644    retn 00002h                               ; c2 02 00
    1496 put_str_:                                    ; 0xf1931 LB 0x21
     1645put_str_:                                    ; 0xf1999 LB 0x21
    14971646    push bp                                   ; 55
    14981647    mov bp, sp                                ; 89 e5
     
    15031652    mov dl, byte [es:bx]                      ; 26 8a 17
    15041653    test dl, dl                               ; 84 d2
    1505     je short 0194bh                           ; 74 0a
     1654    je short 019b3h                           ; 74 0a
    15061655    xor dh, dh                                ; 30 f6
    15071656    mov ax, si                                ; 89 f0
    1508     call 017c5h                               ; e8 7d fe
     1657    call 0182dh                               ; e8 7d fe
    15091658    inc bx                                    ; 43
    1510     jmp short 01938h                          ; eb ed
     1659    jmp short 019a0h                          ; eb ed
    15111660    lea sp, [bp-004h]                         ; 8d 66 fc
    15121661    pop si                                    ; 5e
     
    15141663    pop bp                                    ; 5d
    15151664    retn                                      ; c3
    1516 put_str_near_:                               ; 0xf1952 LB 0x20
     1665put_str_near_:                               ; 0xf19ba LB 0x20
    15171666    push bp                                   ; 55
    15181667    mov bp, sp                                ; 89 e5
     
    15231672    mov dl, byte [bx]                         ; 8a 17
    15241673    test dl, dl                               ; 84 d2
    1525     je short 0196bh                           ; 74 0a
     1674    je short 019d3h                           ; 74 0a
    15261675    xor dh, dh                                ; 30 f6
    15271676    mov ax, cx                                ; 89 c8
    1528     call 017c5h                               ; e8 5d fe
     1677    call 0182dh                               ; e8 5d fe
    15291678    inc bx                                    ; 43
    1530     jmp short 0195bh                          ; eb f0
     1679    jmp short 019c3h                          ; eb f0
    15311680    lea sp, [bp-004h]                         ; 8d 66 fc
    15321681    pop cx                                    ; 59
     
    15341683    pop bp                                    ; 5d
    15351684    retn                                      ; c3
    1536 bios_printf_:                                ; 0xf1972 LB 0x33d
     1685bios_printf_:                                ; 0xf19da LB 0x33d
    15371686    push bp                                   ; 55
    15381687    mov bp, sp                                ; 89 e5
     
    15511700    and ax, strict word 00007h                ; 25 07 00
    15521701    cmp ax, strict word 00007h                ; 3d 07 00
    1553     jne short 019a0h                          ; 75 0b
     1702    jne short 01a08h                          ; 75 0b
    15541703    push 000deh                               ; 68 de 00
    15551704    push strict byte 00002h                   ; 6a 02
    1556     call 01972h                               ; e8 d5 ff
     1705    call 019dah                               ; e8 d5 ff
    15571706    add sp, strict byte 00004h                ; 83 c4 04
    15581707    mov si, word [bp+006h]                    ; 8b 76 06
    15591708    mov dl, byte [si]                         ; 8a 14
    15601709    test dl, dl                               ; 84 d2
    1561     je near 01c93h                            ; 0f 84 e8 02
     1710    je near 01cfbh                            ; 0f 84 e8 02
    15621711    cmp dl, 025h                              ; 80 fa 25
    1563     jne short 019b8h                          ; 75 08
     1712    jne short 01a20h                          ; 75 08
    15641713    mov bx, strict word 00001h                ; bb 01 00
    15651714    xor di, di                                ; 31 ff
    1566     jmp near 01c8dh                           ; e9 d5 02
     1715    jmp near 01cf5h                           ; e9 d5 02
    15671716    test bx, bx                               ; 85 db
    1568     je near 01c85h                            ; 0f 84 c7 02
     1717    je near 01cedh                            ; 0f 84 c7 02
    15691718    cmp dl, 030h                              ; 80 fa 30
    1570     jc short 019d6h                           ; 72 13
     1719    jc short 01a3eh                           ; 72 13
    15711720    cmp dl, 039h                              ; 80 fa 39
    1572     jnbe short 019d6h                         ; 77 0e
     1721    jnbe short 01a3eh                         ; 77 0e
    15731722    movzx ax, dl                              ; 0f b6 c2
    15741723    imul di, di, strict byte 0000ah           ; 6b ff 0a
    15751724    sub ax, strict word 00030h                ; 2d 30 00
    15761725    add di, ax                                ; 01 c7
    1577     jmp near 01c8dh                           ; e9 b7 02
     1726    jmp near 01cf5h                           ; e9 b7 02
    15781727    mov ax, word [bp-014h]                    ; 8b 46 ec
    15791728    mov word [bp-014h], ax                    ; 89 46 ec
     
    15831732    mov word [bp-012h], ax                    ; 89 46 ee
    15841733    cmp dl, 078h                              ; 80 fa 78
    1585     je short 019f4h                           ; 74 05
     1734    je short 01a5ch                           ; 74 05
    15861735    cmp dl, 058h                              ; 80 fa 58
    1587     jne short 01a4ah                          ; 75 56
     1736    jne short 01ab2h                          ; 75 56
    15881737    test di, di                               ; 85 ff
    1589     jne short 019fbh                          ; 75 03
     1738    jne short 01a63h                          ; 75 03
    15901739    mov di, strict word 00004h                ; bf 04 00
    15911740    cmp dl, 078h                              ; 80 fa 78
    1592     jne short 01a07h                          ; 75 07
     1741    jne short 01a6fh                          ; 75 07
    15931742    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
    1594     jmp short 01a0ch                          ; eb 05
     1743    jmp short 01a74h                          ; eb 05
    15951744    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
    15961745    lea ax, [di-001h]                         ; 8d 45 ff
     
    15981747    mov ax, word [bp-00ch]                    ; 8b 46 f4
    15991748    test ax, ax                               ; 85 c0
    1600     jl near 01c81h                            ; 0f 8c 66 02
     1749    jl near 01ce9h                            ; 0f 8c 66 02
    16011750    mov cx, ax                                ; 89 c1
    16021751    sal cx, 002h                              ; c1 e1 02
     
    16061755    and AL, strict byte 00fh                  ; 24 0f
    16071756    cmp ax, strict word 00009h                ; 3d 09 00
    1608     jnbe short 01a35h                         ; 77 07
     1757    jnbe short 01a9dh                         ; 77 07
    16091758    mov dx, ax                                ; 89 c2
    16101759    add dx, strict byte 00030h                ; 83 c2 30
    1611     jmp short 01a3dh                          ; eb 08
     1760    jmp short 01aa5h                          ; eb 08
    16121761    sub ax, strict word 0000ah                ; 2d 0a 00
    16131762    mov dx, word [bp-00eh]                    ; 8b 56 f2
     
    16151764    xor dh, dh                                ; 30 f6
    16161765    mov ax, word [bp+004h]                    ; 8b 46 04
    1617     call 017c5h                               ; e8 80 fd
     1766    call 0182dh                               ; e8 80 fd
    16181767    dec word [bp-00ch]                        ; ff 4e f4
    1619     jmp short 01a12h                          ; eb c8
     1768    jmp short 01a7ah                          ; eb c8
    16201769    cmp dl, 075h                              ; 80 fa 75
    1621     jne short 01a5eh                          ; 75 0f
     1770    jne short 01ac6h                          ; 75 0f
    16221771    xor cx, cx                                ; 31 c9
    16231772    mov bx, di                                ; 89 fb
    16241773    mov dx, ax                                ; 89 c2
    16251774    mov ax, word [bp+004h]                    ; 8b 46 04
    1626     call 0185fh                               ; e8 04 fe
    1627     jmp near 01c81h                           ; e9 23 02
     1775    call 018c7h                               ; e8 04 fe
     1776    jmp near 01ce9h                           ; e9 23 02
    16281777    cmp dl, 06ch                              ; 80 fa 6c
    1629     jne near 01b40h                           ; 0f 85 db 00
     1778    jne near 01ba8h                           ; 0f 85 db 00
    16301779    mov bx, word [bp+006h]                    ; 8b 5e 06
    16311780    cmp dl, byte [bx+001h]                    ; 3a 57 01
    1632     jne near 01b40h                           ; 0f 85 d1 00
     1781    jne near 01ba8h                           ; 0f 85 d1 00
    16331782    add word [bp+006h], strict byte 00002h    ; 83 46 06 02
    16341783    mov bx, word [bp+006h]                    ; 8b 5e 06
     
    16541803    mov word [bp-020h], ax                    ; 89 46 e0
    16551804    cmp dl, 078h                              ; 80 fa 78
    1656     je short 01ac1h                           ; 74 05
     1805    je short 01b29h                           ; 74 05
    16571806    cmp dl, 058h                              ; 80 fa 58
    1658     jne short 01b32h                          ; 75 71
     1807    jne short 01b9ah                          ; 75 71
    16591808    test di, di                               ; 85 ff
    1660     jne short 01ac8h                          ; 75 03
     1809    jne short 01b30h                          ; 75 03
    16611810    mov di, strict word 00010h                ; bf 10 00
    16621811    cmp dl, 078h                              ; 80 fa 78
    1663     jne short 01ad4h                          ; 75 07
     1812    jne short 01b3ch                          ; 75 07
    16641813    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
    1665     jmp short 01ad9h                          ; eb 05
     1814    jmp short 01b41h                          ; eb 05
    16661815    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
    16671816    lea ax, [di-001h]                         ; 8d 45 ff
     
    16691818    mov ax, word [bp-00ch]                    ; 8b 46 f4
    16701819    test ax, ax                               ; 85 c0
    1671     jl near 01c81h                            ; 0f 8c 99 01
     1820    jl near 01ce9h                            ; 0f 8c 99 01
    16721821    sal ax, 002h                              ; c1 e0 02
    16731822    mov word [bp-01eh], ax                    ; 89 46 e2
     
    16811830    mov dx, word [bp-026h]                    ; 8b 56 da
    16821831    mov si, word [bp-01eh]                    ; 8b 76 e2
    1683     call 09e6ah                               ; e8 5f 83
     1832    call 09f00h                               ; e8 8d 83
    16841833    mov ax, dx                                ; 89 d0
    16851834    xor ah, dh                                ; 30 f4
    16861835    and AL, strict byte 00fh                  ; 24 0f
    16871836    cmp ax, strict word 00009h                ; 3d 09 00
    1688     jnbe short 01b1dh                         ; 77 07
     1837    jnbe short 01b85h                         ; 77 07
    16891838    mov dx, ax                                ; 89 c2
    16901839    add dx, strict byte 00030h                ; 83 c2 30
    1691     jmp short 01b25h                          ; eb 08
     1840    jmp short 01b8dh                          ; eb 08
    16921841    sub ax, strict word 0000ah                ; 2d 0a 00
    16931842    mov dx, word [bp-00eh]                    ; 8b 56 f2
     
    16951844    xor dh, dh                                ; 30 f6
    16961845    mov ax, word [bp+004h]                    ; 8b 46 04
    1697     call 017c5h                               ; e8 98 fc
     1846    call 0182dh                               ; e8 98 fc
    16981847    dec word [bp-00ch]                        ; ff 4e f4
    1699     jmp short 01adfh                          ; eb ad
     1848    jmp short 01b47h                          ; eb ad
    17001849    push 000e6h                               ; 68 e6 00
    17011850    push strict byte 00007h                   ; 6a 07
    1702     call 01972h                               ; e8 38 fe
     1851    call 019dah                               ; e8 38 fe
    17031852    add sp, strict byte 00004h                ; 83 c4 04
    1704     jmp near 01c81h                           ; e9 41 01
     1853    jmp near 01ce9h                           ; e9 41 01
    17051854    lea bx, [di-001h]                         ; 8d 5d ff
    17061855    cmp dl, 06ch                              ; 80 fa 6c
    1707     jne near 01c09h                           ; 0f 85 bf 00
     1856    jne near 01c71h                           ; 0f 85 bf 00
    17081857    inc word [bp+006h]                        ; ff 46 06
    17091858    mov si, word [bp+006h]                    ; 8b 76 06
     
    17161865    mov word [bp-010h], ax                    ; 89 46 f0
    17171866    cmp dl, 064h                              ; 80 fa 64
    1718     jne short 01b98h                          ; 75 2d
     1867    jne short 01c00h                          ; 75 2d
    17191868    test byte [bp-00fh], 080h                 ; f6 46 f1 80
    1720     je short 01b86h                           ; 74 15
     1869    je short 01beeh                           ; 74 15
    17211870    push strict byte 00001h                   ; 6a 01
    17221871    mov ax, word [bp-012h]                    ; 8b 46 ee
     
    17271876    mov dx, bx                                ; 89 da
    17281877    mov bx, ax                                ; 89 c3
    1729     jmp short 01b8fh                          ; eb 09
     1878    jmp short 01bf7h                          ; eb 09
    17301879    push strict byte 00000h                   ; 6a 00
    17311880    mov bx, word [bp-012h]                    ; 8b 5e ee
     
    17331882    mov cx, ax                                ; 89 c1
    17341883    mov ax, word [bp+004h]                    ; 8b 46 04
    1735     call 018bfh                               ; e8 2a fd
    1736     jmp near 01c81h                           ; e9 e9 00
     1884    call 01927h                               ; e8 2a fd
     1885    jmp near 01ce9h                           ; e9 e9 00
    17371886    cmp dl, 075h                              ; 80 fa 75
    1738     jne short 01b9fh                          ; 75 02
    1739     jmp short 01b86h                          ; eb e7
     1887    jne short 01c07h                          ; 75 02
     1888    jmp short 01beeh                          ; eb e7
    17401889    cmp dl, 078h                              ; 80 fa 78
    1741     je short 01babh                           ; 74 07
     1890    je short 01c13h                           ; 74 07
    17421891    cmp dl, 058h                              ; 80 fa 58
    1743     jne near 01c81h                           ; 0f 85 d6 00
     1892    jne near 01ce9h                           ; 0f 85 d6 00
    17441893    test di, di                               ; 85 ff
    1745     jne short 01bb2h                          ; 75 03
     1894    jne short 01c1ah                          ; 75 03
    17461895    mov di, strict word 00008h                ; bf 08 00
    17471896    cmp dl, 078h                              ; 80 fa 78
    1748     jne short 01bbeh                          ; 75 07
     1897    jne short 01c26h                          ; 75 07
    17491898    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
    1750     jmp short 01bc3h                          ; eb 05
     1899    jmp short 01c2bh                          ; eb 05
    17511900    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
    17521901    lea ax, [di-001h]                         ; 8d 45 ff
    17531902    mov word [bp-00ch], ax                    ; 89 46 f4
    17541903    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    1755     jl near 01c81h                            ; 0f 8c b0 00
     1904    jl near 01ce9h                            ; 0f 8c b0 00
    17561905    mov ax, word [bp-012h]                    ; 8b 46 ee
    17571906    mov cx, word [bp-00ch]                    ; 8b 4e f4
    17581907    sal cx, 002h                              ; c1 e1 02
    17591908    mov dx, word [bp-010h]                    ; 8b 56 f0
    1760     jcxz 01be5h                               ; e3 06
     1909    jcxz 01c4dh                               ; e3 06
    17611910    shr dx, 1                                 ; d1 ea
    17621911    rcr ax, 1                                 ; d1 d8
    1763     loop 01bdfh                               ; e2 fa
     1912    loop 01c47h                               ; e2 fa
    17641913    and ax, strict word 0000fh                ; 25 0f 00
    17651914    cmp ax, strict word 00009h                ; 3d 09 00
    1766     jnbe short 01bf4h                         ; 77 07
     1915    jnbe short 01c5ch                         ; 77 07
    17671916    mov dx, ax                                ; 89 c2
    17681917    add dx, strict byte 00030h                ; 83 c2 30
    1769     jmp short 01bfch                          ; eb 08
     1918    jmp short 01c64h                          ; eb 08
    17701919    sub ax, strict word 0000ah                ; 2d 0a 00
    17711920    mov dx, word [bp-00eh]                    ; 8b 56 f2
     
    17731922    xor dh, dh                                ; 30 f6
    17741923    mov ax, word [bp+004h]                    ; 8b 46 04
    1775     call 017c5h                               ; e8 c1 fb
     1924    call 0182dh                               ; e8 c1 fb
    17761925    dec word [bp-00ch]                        ; ff 4e f4
    1777     jmp short 01bc9h                          ; eb c0
     1926    jmp short 01c31h                          ; eb c0
    17781927    cmp dl, 064h                              ; 80 fa 64
    1779     jne short 01c2dh                          ; 75 1f
     1928    jne short 01c95h                          ; 75 1f
    17801929    test byte [bp-011h], 080h                 ; f6 46 ef 80
    1781     je short 01c1eh                           ; 74 0a
     1930    je short 01c86h                           ; 74 0a
    17821931    mov dx, word [bp-012h]                    ; 8b 56 ee
    17831932    neg dx                                    ; f7 da
    17841933    mov cx, strict word 00001h                ; b9 01 00
    1785     jmp short 01c25h                          ; eb 07
     1934    jmp short 01c8dh                          ; eb 07
    17861935    xor cx, cx                                ; 31 c9
    17871936    mov bx, di                                ; 89 fb
    17881937    mov dx, word [bp-012h]                    ; 8b 56 ee
    17891938    mov ax, word [bp+004h]                    ; 8b 46 04
    1790     call 01800h                               ; e8 d5 fb
    1791     jmp short 01c81h                          ; eb 54
     1939    call 01868h                               ; e8 d5 fb
     1940    jmp short 01ce9h                          ; eb 54
    17921941    cmp dl, 073h                              ; 80 fa 73
    1793     jne short 01c3fh                          ; 75 0d
     1942    jne short 01ca7h                          ; 75 0d
    17941943    mov cx, ds                                ; 8c d9
    17951944    mov bx, word [bp-012h]                    ; 8b 5e ee
    17961945    mov ax, word [bp+004h]                    ; 8b 46 04
    1797     call 01931h                               ; e8 f4 fc
    1798     jmp short 01c81h                          ; eb 42
     1946    call 01999h                               ; e8 f4 fc
     1947    jmp short 01ce9h                          ; eb 42
    17991948    cmp dl, 053h                              ; 80 fa 53
    1800     jne short 01c65h                          ; 75 21
     1949    jne short 01ccdh                          ; 75 21
    18011950    mov ax, word [bp-012h]                    ; 8b 46 ee
    18021951    mov word [bp-010h], ax                    ; 89 46 f0
     
    18091958    mov bx, ax                                ; 89 c3
    18101959    mov cx, word [bp-010h]                    ; 8b 4e f0
    1811     jmp short 01c37h                          ; eb d2
     1960    jmp short 01c9fh                          ; eb d2
    18121961    cmp dl, 063h                              ; 80 fa 63
    1813     jne short 01c76h                          ; 75 0c
     1962    jne short 01cdeh                          ; 75 0c
    18141963    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
    18151964    mov ax, word [bp+004h]                    ; 8b 46 04
    1816     call 017c5h                               ; e8 51 fb
    1817     jmp short 01c81h                          ; eb 0b
     1965    call 0182dh                               ; e8 51 fb
     1966    jmp short 01ce9h                          ; eb 0b
    18181967    push 00107h                               ; 68 07 01
    18191968    push strict byte 00007h                   ; 6a 07
    1820     call 01972h                               ; e8 f4 fc
     1969    call 019dah                               ; e8 f4 fc
    18211970    add sp, strict byte 00004h                ; 83 c4 04
    18221971    xor bx, bx                                ; 31 db
    1823     jmp short 01c8dh                          ; eb 08
     1972    jmp short 01cf5h                          ; eb 08
    18241973    xor dh, dh                                ; 30 f6
    18251974    mov ax, word [bp+004h]                    ; 8b 46 04
    1826     call 017c5h                               ; e8 38 fb
     1975    call 0182dh                               ; e8 38 fb
    18271976    inc word [bp+006h]                        ; ff 46 06
    1828     jmp near 019a0h                           ; e9 0d fd
     1977    jmp near 01a08h                           ; e9 0d fd
    18291978    xor ax, ax                                ; 31 c0
    18301979    mov word [bp-016h], ax                    ; 89 46 ea
    18311980    mov word [bp-014h], ax                    ; 89 46 ec
    18321981    test byte [bp+004h], 001h                 ; f6 46 04 01
    1833     je short 01ca5h                           ; 74 04
     1982    je short 01d0dh                           ; 74 04
    18341983    cli                                       ; fa
    18351984    hlt                                       ; f4
    1836     jmp short 01ca2h                          ; eb fd
     1985    jmp short 01d0ah                          ; eb fd
    18371986    lea sp, [bp-00ah]                         ; 8d 66 f6
    18381987    pop di                                    ; 5f
     
    18431992    pop bp                                    ; 5d
    18441993    retn                                      ; c3
    1845 _ata_init:                                   ; 0xf1caf LB 0xcd
     1994_ata_init:                                   ; 0xf1d17 LB 0xcd
    18461995    push bp                                   ; 55
    18471996    mov bp, sp                                ; 89 e5
     
    18491998    mov dx, strict word 0000eh                ; ba 0e 00
    18501999    mov ax, strict word 00040h                ; b8 40 00
    1851     call 0166ch                               ; e8 b0 f9
     2000    call 016d4h                               ; e8 b0 f9
    18522001    mov si, 00122h                            ; be 22 01
    18532002    mov dx, ax                                ; 89 c2
    18542003    xor al, al                                ; 30 c0
    1855     jmp short 01cc9h                          ; eb 04
     2004    jmp short 01d31h                          ; eb 04
    18562005    cmp AL, strict byte 004h                  ; 3c 04
    1857     jnc short 01cedh                          ; 73 24
     2006    jnc short 01d55h                          ; 73 24
    18582007    movzx bx, al                              ; 0f b6 d8
    18592008    imul bx, bx, strict byte 00006h           ; 6b db 06
     
    18662015    db  0feh, 0c0h
    18672016    ; inc al                                    ; fe c0
    1868     jmp short 01cc5h                          ; eb d8
     2017    jmp short 01d2dh                          ; eb d8
    18692018    xor al, al                                ; 30 c0
    1870     jmp short 01cf5h                          ; eb 04
     2019    jmp short 01d5dh                          ; eb 04
    18712020    cmp AL, strict byte 008h                  ; 3c 08
    1872     jnc short 01d49h                          ; 73 54
     2021    jnc short 01db1h                          ; 73 54
    18732022    movzx bx, al                              ; 0f b6 d8
    18742023    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    18922041    db  0feh, 0c0h
    18932042    ; inc al                                    ; fe c0
    1894     jmp short 01cf1h                          ; eb a8
     2043    jmp short 01d59h                          ; eb a8
    18952044    xor al, al                                ; 30 c0
    1896     jmp short 01d51h                          ; eb 04
     2045    jmp short 01db9h                          ; eb 04
    18972046    cmp AL, strict byte 010h                  ; 3c 10
    1898     jnc short 01d68h                          ; 73 17
     2047    jnc short 01dd0h                          ; 73 17
    18992048    movzx bx, al                              ; 0f b6 d8
    19002049    mov es, dx                                ; 8e c2
     
    19042053    db  0feh, 0c0h
    19052054    ; inc al                                    ; fe c0
    1906     jmp short 01d4dh                          ; eb e5
     2055    jmp short 01db5h                          ; eb e5
    19072056    mov es, dx                                ; 8e c2
    19082057    mov byte [es:si+001e2h], 000h             ; 26 c6 84 e2 01 00
     
    19122061    pop bp                                    ; 5d
    19132062    retn                                      ; c3
    1914 ata_reset_:                                  ; 0xf1d7c LB 0xde
     2063ata_reset_:                                  ; 0xf1de4 LB 0xde
    19152064    push bp                                   ; 55
    19162065    mov bp, sp                                ; 89 e5
     
    19252074    mov dx, strict word 0000eh                ; ba 0e 00
    19262075    mov ax, strict word 00040h                ; b8 40 00
    1927     call 0166ch                               ; e8 dc f8
     2076    call 016d4h                               ; e8 dc f8
    19282077    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
    19292078    mov di, ax                                ; 89 c7
     
    19452094    dec bx                                    ; 4b
    19462095    test bx, bx                               ; 85 db
    1947     jbe short 01dd4h                          ; 76 0c
     2096    jbe short 01e3ch                          ; 76 0c
    19482097    mov dx, cx                                ; 89 ca
    19492098    add dx, strict byte 00007h                ; 83 c2 07
     
    19522101    ; sub ah, ah                                ; 2a e4
    19532102    test AL, strict byte 080h                 ; a8 80
    1954     je short 01dc3h                           ; 74 ef
     2103    je short 01e2bh                           ; 74 ef
    19552104    lea dx, [si+006h]                         ; 8d 54 06
    19562105    mov AL, strict byte 00ah                  ; b0 0a
     
    19602109    add bx, word [bp-00eh]                    ; 03 5e f2
    19612110    cmp byte [es:bx+022h], 000h               ; 26 80 7f 22 00
    1962     je short 01e36h                           ; 74 4c
     2111    je short 01e9eh                           ; 74 4c
    19632112    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    1964     je short 01df5h                           ; 74 05
     2113    je short 01e5dh                           ; 74 05
    19652114    mov ax, 000b0h                            ; b8 b0 00
    1966     jmp short 01df8h                          ; eb 03
     2115    jmp short 01e60h                          ; eb 03
    19672116    mov ax, 000a0h                            ; b8 a0 00
    19682117    mov dx, cx                                ; 89 ca
     
    19822131    ; sub ah, ah                                ; 2a e4
    19832132    cmp bl, 001h                              ; 80 fb 01
    1984     jne short 01e36h                          ; 75 22
     2133    jne short 01e9eh                          ; 75 22
    19852134    cmp al, bl                                ; 38 d8
    1986     jne short 01e36h                          ; 75 1e
     2135    jne short 01e9eh                          ; 75 1e
    19872136    mov bx, strict word 0ffffh                ; bb ff ff
    19882137    dec bx                                    ; 4b
    19892138    test bx, bx                               ; 85 db
    1990     jbe short 01e36h                          ; 76 16
     2139    jbe short 01e9eh                          ; 76 16
    19912140    mov dx, cx                                ; 89 ca
    19922141    add dx, strict byte 00007h                ; 83 c2 07
     
    19952144    ; sub ah, ah                                ; 2a e4
    19962145    test AL, strict byte 080h                 ; a8 80
    1997     je short 01e36h                           ; 74 0a
     2146    je short 01e9eh                           ; 74 0a
    19982147    mov ax, strict word 0ffffh                ; b8 ff ff
    19992148    dec ax                                    ; 48
    20002149    test ax, ax                               ; 85 c0
    2001     jnbe short 01e2fh                         ; 77 fb
    2002     jmp short 01e1bh                          ; eb e5
     2150    jnbe short 01e97h                         ; 77 fb
     2151    jmp short 01e83h                          ; eb e5
    20032152    mov bx, strict word 00010h                ; bb 10 00
    20042153    dec bx                                    ; 4b
    20052154    test bx, bx                               ; 85 db
    2006     jbe short 01e4ah                          ; 76 0c
     2155    jbe short 01eb2h                          ; 76 0c
    20072156    mov dx, cx                                ; 89 ca
    20082157    add dx, strict byte 00007h                ; 83 c2 07
     
    20112160    ; sub ah, ah                                ; 2a e4
    20122161    test AL, strict byte 040h                 ; a8 40
    2013     je short 01e39h                           ; 74 ef
     2162    je short 01ea1h                           ; 74 ef
    20142163    lea dx, [si+006h]                         ; 8d 54 06
    20152164    mov AL, strict byte 008h                  ; b0 08
     
    20232172    pop bp                                    ; 5d
    20242173    retn                                      ; c3
    2025 ata_cmd_data_in_:                            ; 0xf1e5a LB 0x2e2
     2174ata_cmd_data_in_:                            ; 0xf1ec2 LB 0x2e2
    20262175    push bp                                   ; 55
    20272176    mov bp, sp                                ; 89 e5
     
    20582207    mov word [bp-00eh], ax                    ; 89 46 f2
    20592208    test ax, ax                               ; 85 c0
    2060     jne short 01ec1h                          ; 75 14
     2209    jne short 01f29h                          ; 75 14
    20612210    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
    2062     jne short 01ebah                          ; 75 07
     2211    jne short 01f22h                          ; 75 07
    20632212    mov word [bp-00eh], 04000h                ; c7 46 f2 00 40
    2064     jmp short 01ed0h                          ; eb 16
     2213    jmp short 01f38h                          ; eb 16
    20652214    mov word [bp-00eh], 08000h                ; c7 46 f2 00 80
    2066     jmp short 01ed0h                          ; eb 0f
     2215    jmp short 01f38h                          ; eb 0f
    20672216    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
    2068     jne short 01ecdh                          ; 75 06
     2217    jne short 01f35h                          ; 75 06
    20692218    shr word [bp-00eh], 002h                  ; c1 6e f2 02
    2070     jmp short 01ed0h                          ; eb 03
     2219    jmp short 01f38h                          ; eb 03
    20712220    shr word [bp-00eh], 1                     ; d1 6e f2
    20722221    mov dx, word [bp-00ch]                    ; 8b 56 f4
     
    20762225    ; sub ah, ah                                ; 2a e4
    20772226    test AL, strict byte 080h                 ; a8 80
    2078     je short 01eech                           ; 74 0f
     2227    je short 01f54h                           ; 74 0f
    20792228    mov dx, word [bp-010h]                    ; 8b 56 f0
    20802229    add dx, strict byte 00006h                ; 83 c2 06
     
    20822231    out DX, AL                                ; ee
    20832232    mov dx, strict word 00001h                ; ba 01 00
    2084     jmp near 02133h                           ; e9 47 02
     2233    jmp near 0219bh                           ; e9 47 02
    20852234    mov es, [bp-01ah]                         ; 8e 46 e6
    20862235    mov di, word [bp-018h]                    ; 8b 7e e8
     
    20962245    mov al, byte [bp-006h]                    ; 8a 46 fa
    20972246    test al, al                               ; 84 c0
    2098     jne near 01ffeh                           ; 0f 85 e3 00
     2247    jne near 02066h                           ; 0f 85 e3 00
    20992248    xor bx, bx                                ; 31 db
    21002249    xor dx, dx                                ; 31 d2
     
    21092258    adc ax, word [bp-016h]                    ; 13 46 ea
    21102259    test ax, ax                               ; 85 c0
    2111     jnbe short 01f50h                         ; 77 10
    2112     jne short 01fb4h                          ; 75 72
     2260    jnbe short 01fb8h                         ; 77 10
     2261    jne short 0201ch                          ; 75 72
    21132262    test dx, dx                               ; 85 d2
    2114     jnbe short 01f50h                         ; 77 0a
    2115     jne short 01fb4h                          ; 75 6c
     2263    jnbe short 01fb8h                         ; 77 0a
     2264    jne short 0201ch                          ; 75 6c
    21162265    cmp bx, 01000h                            ; 81 fb 00 10
    2117     jnbe short 01f50h                         ; 77 02
    2118     jne short 01fb4h                          ; 75 64
     2266    jnbe short 01fb8h                         ; 77 02
     2267    jne short 0201ch                          ; 75 64
    21192268    mov bx, si                                ; 89 f3
    21202269    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     
    21232272    mov dx, word [es:si]                      ; 26 8b 14
    21242273    mov si, strict word 00018h                ; be 18 00
    2125     call 09e6ah                               ; e8 03 7f
     2274    call 09f00h                               ; e8 31 7f
    21262275    xor dh, dh                                ; 30 f6
    21272276    mov word [bp-016h], dx                    ; 89 56 ea
     
    21332282    mov dx, word [es:si]                      ; 26 8b 14
    21342283    mov si, strict word 00020h                ; be 20 00
    2135     call 09e6ah                               ; e8 e3 7e
     2284    call 09f00h                               ; e8 11 7f
    21362285    mov bx, dx                                ; 89 d3
    21372286    mov ax, word [bp-01eh]                    ; 8b 46 e2
     
    21642313    mov dx, word [es:si]                      ; 26 8b 14
    21652314    mov si, strict word 00008h                ; be 08 00
    2166     call 09e6ah                               ; e8 92 7e
     2315    call 09f00h                               ; e8 c0 7e
    21672316    mov word [bp-014h], dx                    ; 89 56 ec
    21682317    mov bx, word [bp-018h]                    ; 8b 5e e8
     
    21732322    mov dx, word [es:si]                      ; 26 8b 14
    21742323    mov si, strict word 00018h                ; be 18 00
    2175     call 09e6ah                               ; e8 74 7e
     2324    call 09f00h                               ; e8 a2 7e
    21762325    and dx, strict byte 0000fh                ; 83 e2 0f
    21772326    or dl, 040h                               ; 80 ca 40
     
    22032352    out DX, AL                                ; ee
    22042353    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    2205     je short 02040h                           ; 74 05
     2354    je short 020a8h                           ; 74 05
    22062355    mov ax, 000b0h                            ; b8 b0 00
    2207     jmp short 02043h                          ; eb 03
     2356    jmp short 020abh                          ; eb 03
    22082357    mov ax, 000a0h                            ; b8 a0 00
    22092358    movzx dx, bl                              ; 0f b6 d3
     
    22182367    mov ax, word [bp-01ch]                    ; 8b 46 e4
    22192368    cmp ax, 000c4h                            ; 3d c4 00
    2220     je short 02066h                           ; 74 05
     2369    je short 020ceh                           ; 74 05
    22212370    cmp ax, strict word 00029h                ; 3d 29 00
    2222     jne short 02070h                          ; 75 0a
     2371    jne short 020d8h                          ; 75 0a
    22232372    mov bx, word [bp-01eh]                    ; 8b 5e e2
    22242373    mov word [bp-01eh], strict word 00001h    ; c7 46 e2 01 00
    2225     jmp short 02073h                          ; eb 03
     2374    jmp short 020dbh                          ; eb 03
    22262375    mov bx, strict word 00001h                ; bb 01 00
    22272376    mov dx, word [bp-00ch]                    ; 8b 56 f4
     
    22322381    mov dl, al                                ; 88 c2
    22332382    test AL, strict byte 080h                 ; a8 80
    2234     jne short 02073h                          ; 75 f1
     2383    jne short 020dbh                          ; 75 f1
    22352384    test AL, strict byte 001h                 ; a8 01
    2236     je short 02095h                           ; 74 0f
     2385    je short 020fdh                           ; 74 0f
    22372386    mov dx, word [bp-010h]                    ; 8b 56 f0
    22382387    add dx, strict byte 00006h                ; 83 c2 06
     
    22402389    out DX, AL                                ; ee
    22412390    mov dx, strict word 00002h                ; ba 02 00
    2242     jmp near 02133h                           ; e9 9e 00
     2391    jmp near 0219bh                           ; e9 9e 00
    22432392    test dl, 008h                             ; f6 c2 08
    2244     jne short 020a9h                          ; 75 0f
     2393    jne short 02111h                          ; 75 0f
    22452394    mov dx, word [bp-010h]                    ; 8b 56 f0
    22462395    add dx, strict byte 00006h                ; 83 c2 06
     
    22482397    out DX, AL                                ; ee
    22492398    mov dx, strict word 00003h                ; ba 03 00
    2250     jmp near 02133h                           ; e9 8a 00
     2399    jmp near 0219bh                           ; e9 8a 00
    22512400    sti                                       ; fb
    22522401    cmp di, 0f800h                            ; 81 ff 00 f8
    2253     jc short 020bdh                           ; 72 0d
     2402    jc short 02125h                           ; 72 0d
    22542403    sub di, 00800h                            ; 81 ef 00 08
    22552404    mov ax, word [bp-012h]                    ; 8b 46 ee
     
    22572406    mov word [bp-012h], ax                    ; 89 46 ee
    22582407    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
    2259     jne short 020d1h                          ; 75 0e
     2408    jne short 02139h                          ; 75 0e
    22602409    mov dx, word [bp-00ch]                    ; 8b 56 f4
    22612410    mov cx, word [bp-00eh]                    ; 8b 4e f2
     
    22632412    db  0f3h, 066h, 06dh
    22642413    ; rep insd                                  ; f3 66 6d
    2265     jmp short 020dch                          ; eb 0b
     2414    jmp short 02144h                          ; eb 0b
    22662415    mov dx, word [bp-00ch]                    ; 8b 56 f4
    22672416    mov cx, word [bp-00eh]                    ; 8b 4e f2
     
    22792428    mov dl, al                                ; 88 c2
    22802429    test AL, strict byte 080h                 ; a8 80
    2281     jne short 020e9h                          ; 75 f1
     2430    jne short 02151h                          ; 75 f1
    22822431    cmp word [bp-01eh], strict byte 00000h    ; 83 7e e2 00
    2283     jne short 02112h                          ; 75 14
     2432    jne short 0217ah                          ; 75 14
    22842433    and AL, strict byte 0c9h                  ; 24 c9
    22852434    cmp AL, strict byte 040h                  ; 3c 40
    2286     je short 02128h                           ; 74 24
     2435    je short 02190h                           ; 74 24
    22872436    mov dx, word [bp-010h]                    ; 8b 56 f0
    22882437    add dx, strict byte 00006h                ; 83 c2 06
     
    22902439    out DX, AL                                ; ee
    22912440    mov dx, strict word 00004h                ; ba 04 00
    2292     jmp short 02133h                          ; eb 21
     2441    jmp short 0219bh                          ; eb 21
    22932442    mov al, dl                                ; 88 d0
    22942443    and AL, strict byte 0c9h                  ; 24 c9
    22952444    cmp AL, strict byte 048h                  ; 3c 48
    2296     je short 020aah                           ; 74 90
     2445    je short 02112h                           ; 74 90
    22972446    mov dx, word [bp-010h]                    ; 8b 56 f0
    22982447    add dx, strict byte 00006h                ; 83 c2 06
     
    23002449    out DX, AL                                ; ee
    23012450    mov dx, strict word 00005h                ; ba 05 00
    2302     jmp short 02133h                          ; eb 0b
     2451    jmp short 0219bh                          ; eb 0b
    23032452    mov dx, word [bp-010h]                    ; 8b 56 f0
    23042453    add dx, strict byte 00006h                ; 83 c2 06
     
    23122461    pop bp                                    ; 5d
    23132462    retn                                      ; c3
    2314 _ata_detect:                                 ; 0xf213c LB 0x65c
     2463_ata_detect:                                 ; 0xf21a4 LB 0x65c
    23152464    push bp                                   ; 55
    23162465    mov bp, sp                                ; 89 e5
     
    23202469    mov dx, strict word 0000eh                ; ba 0e 00
    23212470    mov ax, strict word 00040h                ; b8 40 00
    2322     call 0166ch                               ; e8 1e f5
     2471    call 016d4h                               ; e8 1e f5
    23232472    mov word [bp-020h], ax                    ; 89 46 e0
    23242473    mov di, 00122h                            ; bf 22 01
     
    23382487    mov byte [bp-010h], al                    ; 88 46 f0
    23392488    mov byte [bp-016h], al                    ; 88 46 ea
    2340     jmp near 0271ch                           ; e9 86 05
     2489    jmp near 02784h                           ; e9 86 05
    23412490    mov ax, 000a0h                            ; b8 a0 00
    23422491    lea dx, [si+006h]                         ; 8d 54 06
     
    23702519    ; sub ah, ah                                ; 2a e4
    23712520    cmp cl, 055h                              ; 80 f9 55
    2372     jne near 0229ah                           ; 0f 85 ca 00
     2521    jne near 02302h                           ; 0f 85 ca 00
    23732522    cmp AL, strict byte 0aah                  ; 3c aa
    2374     jne near 0229ah                           ; 0f 85 c4 00
     2523    jne near 02302h                           ; 0f 85 c4 00
    23752524    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    23762525    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    23802529    mov byte [es:bx+022h], 001h               ; 26 c6 47 22 01
    23812530    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    2382     call 01d7ch                               ; e8 8b fb
     2531    call 01de4h                               ; e8 8b fb
    23832532    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    2384     je short 021fch                           ; 74 05
     2533    je short 02264h                           ; 74 05
    23852534    mov ax, 000b0h                            ; b8 b0 00
    2386     jmp short 021ffh                          ; eb 03
     2535    jmp short 02267h                          ; eb 03
    23872536    mov ax, 000a0h                            ; b8 a0 00
    23882537    lea dx, [si+006h]                         ; 8d 54 06
     
    23982547    ; sub ah, ah                                ; 2a e4
    23992548    cmp bl, 001h                              ; 80 fb 01
    2400     jne near 0229ah                           ; 0f 85 82 00
     2549    jne near 02302h                           ; 0f 85 82 00
    24012550    cmp al, bl                                ; 38 d8
    2402     jne near 0229ah                           ; 0f 85 7c 00
     2551    jne near 02302h                           ; 0f 85 7c 00
    24032552    lea dx, [si+004h]                         ; 8d 54 04
    24042553    in AL, DX                                 ; ec
     
    24182567    ; sub ah, ah                                ; 2a e4
    24192568    cmp bl, 014h                              ; 80 fb 14
    2420     jne short 02259h                          ; 75 1b
     2569    jne short 022c1h                          ; 75 1b
    24212570    cmp cl, 0ebh                              ; 80 f9 eb
    2422     jne short 02259h                          ; 75 16
     2571    jne short 022c1h                          ; 75 16
    24232572    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    24242573    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    24272576    add bx, ax                                ; 01 c3
    24282577    mov byte [es:bx+022h], 003h               ; 26 c6 47 22 03
    2429     jmp short 0229ah                          ; eb 41
     2578    jmp short 02302h                          ; eb 41
    24302579    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
    2431     jne short 0227bh                          ; 75 1c
     2580    jne short 022e3h                          ; 75 1c
    24322581    test bh, bh                               ; 84 ff
    2433     jne short 0227bh                          ; 75 18
     2582    jne short 022e3h                          ; 75 18
    24342583    test al, al                               ; 84 c0
    2435     je short 0227bh                           ; 74 14
     2584    je short 022e3h                           ; 74 14
    24362585    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
    24372586    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    24392588    add bx, word [bp-022h]                    ; 03 5e de
    24402589    mov byte [es:bx+022h], 002h               ; 26 c6 47 22 02
    2441     jmp short 0229ah                          ; eb 1f
     2590    jmp short 02302h                          ; eb 1f
    24422591    mov al, byte [bp-018h]                    ; 8a 46 e8
    24432592    cmp AL, strict byte 0ffh                  ; 3c ff
    2444     jne short 0229ah                          ; 75 18
     2593    jne short 02302h                          ; 75 18
    24452594    cmp bh, al                                ; 38 c7
    2446     jne short 0229ah                          ; 75 14
     2595    jne short 02302h                          ; 75 14
    24472596    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    24482597    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    24622611    mov byte [bp-00ah], al                    ; 88 46 f6
    24632612    cmp AL, strict byte 002h                  ; 3c 02
    2464     jne near 024e9h                           ; 0f 85 2c 02
     2613    jne near 02551h                           ; 0f 85 2c 02
    24652614    mov byte [es:si+023h], 0ffh               ; 26 c6 44 23 ff
    24662615    mov byte [es:si+026h], 000h               ; 26 c6 44 26 00
     
    24752624    mov ax, word [bp-022h]                    ; 8b 46 de
    24762625    mov dx, es                                ; 8c c2
    2477     call 01e5ah                               ; e8 6f fb
     2626    call 01ec2h                               ; e8 6f fb
    24782627    test ax, ax                               ; 85 c0
    2479     je short 022fah                           ; 74 0b
     2628    je short 02362h                           ; 74 0b
    24802629    push 00124h                               ; 68 24 01
    24812630    push strict byte 00007h                   ; 6a 07
    2482     call 01972h                               ; e8 7b f6
     2631    call 019dah                               ; e8 7b f6
    24832632    add sp, strict byte 00004h                ; 83 c4 04
    24842633    test byte [bp-00264h], 080h               ; f6 86 9c fd 80
     
    25062655    mov word [bp-01eh], ax                    ; 89 46 e2
    25072656    cmp word [bp-02ch], 00fffh                ; 81 7e d4 ff 0f
    2508     jne short 02366h                          ; 75 1e
     2657    jne short 023ceh                          ; 75 1e
    25092658    cmp si, strict byte 0ffffh                ; 83 fe ff
    2510     jne short 02366h                          ; 75 19
     2659    jne short 023ceh                          ; 75 19
    25112660    mov ax, word [bp-00196h]                  ; 8b 86 6a fe
    25122661    mov word [bp-01eh], ax                    ; 89 46 e2
     
    25182667    mov al, byte [bp-016h]                    ; 8a 46 ea
    25192668    cmp AL, strict byte 001h                  ; 3c 01
    2520     jc short 02379h                           ; 72 0c
    2521     jbe short 02381h                          ; 76 12
     2669    jc short 023e1h                           ; 72 0c
     2670    jbe short 023e9h                          ; 76 12
    25222671    cmp AL, strict byte 003h                  ; 3c 03
    2523     je short 02389h                           ; 74 16
     2672    je short 023f1h                           ; 74 16
    25242673    cmp AL, strict byte 002h                  ; 3c 02
    2525     je short 02385h                           ; 74 0e
    2526     jmp short 023c6h                          ; eb 4d
     2674    je short 023edh                           ; 74 0e
     2675    jmp short 0242eh                          ; eb 4d
    25272676    test al, al                               ; 84 c0
    2528     jne short 023c6h                          ; 75 49
     2677    jne short 0242eh                          ; 75 49
    25292678    mov BL, strict byte 01eh                  ; b3 1e
    2530     jmp short 0238bh                          ; eb 0a
     2679    jmp short 023f3h                          ; eb 0a
    25312680    mov BL, strict byte 026h                  ; b3 26
    2532     jmp short 0238bh                          ; eb 06
     2681    jmp short 023f3h                          ; eb 06
    25332682    mov BL, strict byte 067h                  ; b3 67
    2534     jmp short 0238bh                          ; eb 02
     2683    jmp short 023f3h                          ; eb 02
    25352684    mov BL, strict byte 070h                  ; b3 70
    25362685    mov al, bl                                ; 88 d8
     
    25382687    ; inc al                                    ; fe c0
    25392688    xor ah, ah                                ; 30 e4
    2540     call 016ach                               ; e8 18 f3
     2689    call 01714h                               ; e8 18 f3
    25412690    xor ah, ah                                ; 30 e4
    25422691    mov dx, ax                                ; 89 c2
    25432692    sal dx, 008h                              ; c1 e2 08
    25442693    movzx ax, bl                              ; 0f b6 c3
    2545     call 016ach                               ; e8 0b f3
     2694    call 01714h                               ; e8 0b f3
    25462695    xor ah, ah                                ; 30 e4
    25472696    add ax, dx                                ; 01 d0
     
    25502699    add AL, strict byte 002h                  ; 04 02
    25512700    xor ah, ah                                ; 30 e4
    2552     call 016ach                               ; e8 fb f2
     2701    call 01714h                               ; e8 fb f2
    25532702    xor ah, ah                                ; 30 e4
    25542703    mov word [bp-03ah], ax                    ; 89 46 c6
     
    25562705    add AL, strict byte 007h                  ; 04 07
    25572706    xor ah, ah                                ; 30 e4
    2558     call 016ach                               ; e8 ed f2
     2707    call 01714h                               ; e8 ed f2
    25592708    xor ah, ah                                ; 30 e4
    25602709    mov word [bp-036h], ax                    ; 89 46 ca
    2561     jmp short 023d8h                          ; eb 12
     2710    jmp short 02440h                          ; eb 12
    25622711    push word [bp-01eh]                       ; ff 76 e2
    25632712    push word [bp-028h]                       ; ff 76 d8
     
    25662715    mov dx, ss                                ; 8c d2
    25672716    lea ax, [bp-03ah]                         ; 8d 46 c6
    2568     call 0593eh                               ; e8 66 35
     2717    call 059a6h                               ; e8 66 35
    25692718    mov bx, 00da0h                            ; bb a0 0d
    25702719    mov cx, ds                                ; 8c d9
    25712720    mov ax, strict word 00004h                ; b8 04 00
    2572     call 01931h                               ; e8 4e f5
     2721    call 01999h                               ; e8 4e f5
    25732722    mov ax, word [bp-036h]                    ; 8b 46 ca
    25742723    push ax                                   ; 50
     
    25852734    push 0014dh                               ; 68 4d 01
    25862735    push strict byte 00004h                   ; 6a 04
    2587     call 01972h                               ; e8 6a f5
     2736    call 019dah                               ; e8 6a f5
    25882737    add sp, strict byte 00014h                ; 83 c4 14
    25892738    movzx di, byte [bp-016h]                  ; 0f b6 7e ea
     
    26222771    mov al, byte [bp-016h]                    ; 8a 46 ea
    26232772    cmp AL, strict byte 002h                  ; 3c 02
    2624     jnc short 024d4h                          ; 73 60
     2773    jnc short 0253ch                          ; 73 60
    26252774    test al, al                               ; 84 c0
    2626     jne short 0247dh                          ; 75 05
     2775    jne short 024e5h                          ; 75 05
    26272776    mov di, strict word 0003dh                ; bf 3d 00
    2628     jmp short 02480h                          ; eb 03
     2777    jmp short 024e8h                          ; eb 03
    26292778    mov di, strict word 0004dh                ; bf 4d 00
    26302779    mov dx, word [bp-020h]                    ; 8b 56 e0
     
    26452794    xor al, al                                ; 30 c0
    26462795    xor ah, ah                                ; 30 e4
    2647     jmp short 024beh                          ; eb 05
     2796    jmp short 02526h                          ; eb 05
    26482797    cmp ah, 00fh                              ; 80 fc 0f
    2649     jnc short 024cch                          ; 73 0e
     2798    jnc short 02534h                          ; 73 0e
    26502799    movzx bx, ah                              ; 0f b6 dc
    26512800    mov es, dx                                ; 8e c2
     
    26542803    db  0feh, 0c4h
    26552804    ; inc ah                                    ; fe c4
    2656     jmp short 024b9h                          ; eb ed
     2805    jmp short 02521h                          ; eb ed
    26572806    neg al                                    ; f6 d8
    26582807    mov es, dx                                ; 8e c2
     
    26652814    inc byte [bp-010h]                        ; fe 46 f0
    26662815    cmp byte [bp-00ah], 003h                  ; 80 7e f6 03
    2667     jne near 0258ch                           ; 0f 85 9b 00
     2816    jne near 025f4h                           ; 0f 85 9b 00
    26682817    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    26692818    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    26832832    mov ax, word [bp-022h]                    ; 8b 46 de
    26842833    mov dx, es                                ; 8c c2
    2685     call 01e5ah                               ; e8 2c f9
     2834    call 01ec2h                               ; e8 2c f9
    26862835    test ax, ax                               ; 85 c0
    2687     je short 0253dh                           ; 74 0b
     2836    je short 025a5h                           ; 74 0b
    26882837    push 00174h                               ; 68 74 01
    26892838    push strict byte 00007h                   ; 6a 07
    2690     call 01972h                               ; e8 38 f4
     2839    call 019dah                               ; e8 38 f4
    26912840    add sp, strict byte 00004h                ; 83 c4 04
    26922841    mov dl, byte [bp-00263h]                  ; 8a 96 9d fd
     
    27162865    mov al, byte [bp-00ah]                    ; 8a 46 f6
    27172866    cmp AL, strict byte 003h                  ; 3c 03
    2718     je short 025c4h                           ; 74 31
     2867    je short 0262ch                           ; 74 31
    27192868    cmp AL, strict byte 002h                  ; 3c 02
    2720     jne near 02627h                           ; 0f 85 8e 00
     2869    jne near 0268fh                           ; 0f 85 8e 00
    27212870    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    27222871    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    27292878    mov dx, word [es:si+036h]                 ; 26 8b 54 36
    27302879    mov si, strict word 0000bh                ; be 0b 00
    2731     call 09e6ah                               ; e8 ac 78
     2880    call 09f00h                               ; e8 da 78
    27322881    mov word [bp-030h], dx                    ; 89 56 d0
    27332882    mov word [bp-02eh], cx                    ; 89 4e d2
     
    27372886    or dx, ax                                 ; 09 c2
    27382887    mov byte [bp-00ch], 00fh                  ; c6 46 f4 0f
    2739     jmp short 025e2h                          ; eb 09
     2888    jmp short 0264ah                          ; eb 09
    27402889    dec byte [bp-00ch]                        ; fe 4e f4
    27412890    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    2742     jbe short 025efh                          ; 76 0d
     2891    jbe short 02657h                          ; 76 0d
    27432892    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    27442893    mov ax, strict word 00001h                ; b8 01 00
    27452894    sal ax, CL                                ; d3 e0
    27462895    test dx, ax                               ; 85 c2
    2747     je short 025d9h                           ; 74 ea
     2896    je short 02641h                           ; 74 ea
    27482897    xor di, di                                ; 31 ff
    2749     jmp short 025f8h                          ; eb 05
     2898    jmp short 02660h                          ; eb 05
    27502899    cmp di, strict byte 00014h                ; 83 ff 14
    2751     jnl short 0260dh                          ; 7d 15
     2900    jnl short 02675h                          ; 7d 15
    27522901    mov si, di                                ; 89 fe
    27532902    add si, di                                ; 01 fe
     
    27572906    mov byte [bp+si-063h], al                 ; 88 42 9d
    27582907    inc di                                    ; 47
    2759     jmp short 025f3h                          ; eb e6
     2908    jmp short 0265bh                          ; eb e6
    27602909    mov byte [bp-03ch], 000h                  ; c6 46 c4 00
    27612910    mov di, strict word 00027h                ; bf 27 00
    2762     jmp short 0261bh                          ; eb 05
     2911    jmp short 02683h                          ; eb 05
    27632912    dec di                                    ; 4f
    27642913    test di, di                               ; 85 ff
    2765     jle short 02627h                          ; 7e 0c
     2914    jle short 0268fh                          ; 7e 0c
    27662915    cmp byte [bp+di-064h], 020h               ; 80 7b 9c 20
    2767     jne short 02627h                          ; 75 06
     2916    jne short 0268fh                          ; 75 06
    27682917    mov byte [bp+di-064h], 000h               ; c6 43 9c 00
    2769     jmp short 02616h                          ; eb ef
     2918    jmp short 0267eh                          ; eb ef
    27702919    mov al, byte [bp-00ah]                    ; 8a 46 f6
    27712920    cmp AL, strict byte 003h                  ; 3c 03
    2772     je short 0268ah                           ; 74 5c
     2921    je short 026f2h                           ; 74 5c
    27732922    cmp AL, strict byte 002h                  ; 3c 02
    2774     je short 0263bh                           ; 74 09
     2923    je short 026a3h                           ; 74 09
    27752924    cmp AL, strict byte 001h                  ; 3c 01
    2776     je near 026f4h                            ; 0f 84 bc 00
    2777     jmp near 02713h                           ; e9 d8 00
     2925    je near 0275ch                            ; 0f 84 bc 00
     2926    jmp near 0277bh                           ; e9 d8 00
    27782927    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    2779     je short 02646h                           ; 74 05
     2928    je short 026aeh                           ; 74 05
    27802929    mov ax, 0019fh                            ; b8 9f 01
    2781     jmp short 02649h                          ; eb 03
     2930    jmp short 026b1h                          ; eb 03
    27822931    mov ax, 001a6h                            ; b8 a6 01
    27832932    push ax                                   ; 50
     
    27862935    push 001adh                               ; 68 ad 01
    27872936    push strict byte 00002h                   ; 6a 02
    2788     call 01972h                               ; e8 1b f3
     2937    call 019dah                               ; e8 1b f3
    27892938    add sp, strict byte 00008h                ; 83 c4 08
    27902939    xor di, di                                ; 31 ff
     
    27922941    inc di                                    ; 47
    27932942    test ax, ax                               ; 85 c0
    2794     je short 02673h                           ; 74 0e
     2943    je short 026dbh                           ; 74 0e
    27952944    push ax                                   ; 50
    27962945    push 001b8h                               ; 68 b8 01
    27972946    push strict byte 00002h                   ; 6a 02
    2798     call 01972h                               ; e8 04 f3
     2947    call 019dah                               ; e8 04 f3
    27992948    add sp, strict byte 00006h                ; 83 c4 06
    2800     jmp short 0265ch                          ; eb e9
     2949    jmp short 026c4h                          ; eb e9
    28012950    push dword [bp-030h]                      ; 66 ff 76 d0
    28022951    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    28042953    push 001bbh                               ; 68 bb 01
    28052954    push strict byte 00002h                   ; 6a 02
    2806     call 01972h                               ; e8 ee f2
     2955    call 019dah                               ; e8 ee f2
    28072956    add sp, strict byte 0000ah                ; 83 c4 0a
    2808     jmp near 02713h                           ; e9 89 00
     2957    jmp near 0277bh                           ; e9 89 00
    28092958    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    2810     je short 02695h                           ; 74 05
     2959    je short 026fdh                           ; 74 05
    28112960    mov ax, 0019fh                            ; b8 9f 01
    2812     jmp short 02698h                          ; eb 03
     2961    jmp short 02700h                          ; eb 03
    28132962    mov ax, 001a6h                            ; b8 a6 01
    28142963    push ax                                   ; 50
     
    28172966    push 001adh                               ; 68 ad 01
    28182967    push strict byte 00002h                   ; 6a 02
    2819     call 01972h                               ; e8 cc f2
     2968    call 019dah                               ; e8 cc f2
    28202969    add sp, strict byte 00008h                ; 83 c4 08
    28212970    xor di, di                                ; 31 ff
     
    28232972    inc di                                    ; 47
    28242973    test ax, ax                               ; 85 c0
    2825     je short 026c2h                           ; 74 0e
     2974    je short 0272ah                           ; 74 0e
    28262975    push ax                                   ; 50
    28272976    push 001b8h                               ; 68 b8 01
    28282977    push strict byte 00002h                   ; 6a 02
    2829     call 01972h                               ; e8 b5 f2
     2978    call 019dah                               ; e8 b5 f2
    28302979    add sp, strict byte 00006h                ; 83 c4 06
    2831     jmp short 026abh                          ; eb e9
     2980    jmp short 02713h                          ; eb e9
    28322981    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    28332982    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    28362985    add bx, ax                                ; 01 c3
    28372986    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    2838     jne short 026e2h                          ; 75 0a
     2987    jne short 0274ah                          ; 75 0a
    28392988    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    28402989    push ax                                   ; 50
    28412990    push 001dbh                               ; 68 db 01
    2842     jmp short 026eah                          ; eb 08
     2991    jmp short 02752h                          ; eb 08
    28432992    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    28442993    push ax                                   ; 50
    28452994    push 001f5h                               ; 68 f5 01
    28462995    push strict byte 00002h                   ; 6a 02
    2847     call 01972h                               ; e8 83 f2
     2996    call 019dah                               ; e8 83 f2
    28482997    add sp, strict byte 00006h                ; 83 c4 06
    2849     jmp short 02713h                          ; eb 1f
     2998    jmp short 0277bh                          ; eb 1f
    28502999    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    2851     je short 026ffh                           ; 74 05
     3000    je short 02767h                           ; 74 05
    28523001    mov ax, 0019fh                            ; b8 9f 01
    2853     jmp short 02702h                          ; eb 03
     3002    jmp short 0276ah                          ; eb 03
    28543003    mov ax, 001a6h                            ; b8 a6 01
    28553004    push ax                                   ; 50
     
    28583007    push 00207h                               ; 68 07 02
    28593008    push strict byte 00002h                   ; 6a 02
    2860     call 01972h                               ; e8 62 f2
     3009    call 019dah                               ; e8 62 f2
    28613010    add sp, strict byte 00008h                ; 83 c4 08
    28623011    inc byte [bp-016h]                        ; fe 46 ea
    28633012    cmp byte [bp-016h], 008h                  ; 80 7e ea 08
    2864     jnc short 0276eh                          ; 73 52
     3013    jnc short 027d6h                          ; 73 52
    28653014    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
    28663015    mov ax, bx                                ; 89 d8
     
    28913040    out DX, AL                                ; ee
    28923041    cmp byte [bp-032h], 000h                  ; 80 7e ce 00
    2893     je near 02196h                            ; 0f 84 2e fa
     3042    je near 021feh                            ; 0f 84 2e fa
    28943043    mov ax, 000b0h                            ; b8 b0 00
    2895     jmp near 02199h                           ; e9 2b fa
     3044    jmp near 02201h                           ; e9 2b fa
    28963045    mov al, byte [bp-010h]                    ; 8a 46 f0
    28973046    mov es, [bp-034h]                         ; 8e 46 cc
     
    29033052    mov dx, strict word 00075h                ; ba 75 00
    29043053    mov ax, strict word 00040h                ; b8 40 00
    2905     call 0165eh                               ; e8 cd ee
     3054    call 016c6h                               ; e8 cd ee
    29063055    lea sp, [bp-004h]                         ; 8d 66 fc
    29073056    pop di                                    ; 5f
     
    29093058    pop bp                                    ; 5d
    29103059    retn                                      ; c3
    2911 ata_cmd_data_out_:                           ; 0xf2798 LB 0x2bc
     3060ata_cmd_data_out_:                           ; 0xf2800 LB 0x2bc
    29123061    push bp                                   ; 55
    29133062    mov bp, sp                                ; 89 e5
     
    29403089    mov byte [bp-008h], al                    ; 88 46 f8
    29413090    cmp AL, strict byte 001h                  ; 3c 01
    2942     jne short 027f0h                          ; 75 07
     3091    jne short 02858h                          ; 75 07
    29433092    mov word [bp-020h], 00080h                ; c7 46 e0 80 00
    2944     jmp short 027f5h                          ; eb 05
     3093    jmp short 0285dh                          ; eb 05
    29453094    mov word [bp-020h], 00100h                ; c7 46 e0 00 01
    29463095    mov dx, word [bp-00ah]                    ; 8b 56 f6
     
    29503099    ; sub ah, ah                                ; 2a e4
    29513100    test AL, strict byte 080h                 ; a8 80
    2952     je short 02811h                           ; 74 0f
     3101    je short 02879h                           ; 74 0f
    29533102    mov dx, word [bp-012h]                    ; 8b 56 ee
    29543103    add dx, strict byte 00006h                ; 83 c2 06
     
    29563105    out DX, AL                                ; ee
    29573106    mov dx, strict word 00001h                ; ba 01 00
    2958     jmp near 02a4bh                           ; e9 3a 02
     3107    jmp near 02ab3h                           ; e9 3a 02
    29593108    mov es, [bp-00ch]                         ; 8e 46 f4
    29603109    mov ax, word [es:di+006h]                 ; 26 8b 45 06
     
    29783127    mov ax, word [bp-01ch]                    ; 8b 46 e4
    29793128    test ax, ax                               ; 85 c0
    2980     jne near 02922h                           ; 0f 85 c7 00
     3129    jne near 0298ah                           ; 0f 85 c7 00
    29813130    xor dx, dx                                ; 31 d2
    29823131    xor bx, bx                                ; 31 db
     
    29873136    adc ax, word [bp-010h]                    ; 13 46 f0
    29883137    test ax, ax                               ; 85 c0
    2989     jnbe short 02882h                         ; 77 10
    2990     jne short 028e5h                          ; 75 71
     3138    jnbe short 028eah                         ; 77 10
     3139    jne short 0294dh                          ; 75 71
    29913140    test bx, bx                               ; 85 db
    2992     jnbe short 02882h                         ; 77 0a
    2993     jne short 028e5h                          ; 75 6b
     3141    jnbe short 028eah                         ; 77 0a
     3142    jne short 0294dh                          ; 75 6b
    29943143    cmp dx, 01000h                            ; 81 fa 00 10
    2995     jnbe short 02882h                         ; 77 02
    2996     jne short 028e5h                          ; 75 63
     3144    jnbe short 028eah                         ; 77 02
     3145    jne short 0294dh                          ; 75 63
    29973146    mov ax, word [bp-010h]                    ; 8b 46 f0
    29983147    mov bx, word [bp-014h]                    ; 8b 5e ec
     
    30003149    mov dx, word [bp-01eh]                    ; 8b 56 e2
    30013150    mov si, strict word 00018h                ; be 18 00
    3002     call 09e6ah                               ; e8 d6 75
     3151    call 09f00h                               ; e8 04 76
    30033152    xor dh, dh                                ; 30 f6
    30043153    mov word [bp-01ch], dx                    ; 89 56 e4
     
    30083157    mov dx, word [bp-01eh]                    ; 8b 56 e2
    30093158    mov si, strict word 00020h                ; be 20 00
    3010     call 09e6ah                               ; e8 bf 75
     3159    call 09f00h                               ; e8 ed 75
    30113160    mov bx, dx                                ; 89 d3
    30123161    mov ax, word [bp-01ah]                    ; 8b 46 e6
     
    30423191    mov dx, word [bp-01eh]                    ; 8b 56 e2
    30433192    mov si, strict word 00008h                ; be 08 00
    3044     call 09e6ah                               ; e8 6b 75
     3193    call 09f00h                               ; e8 99 75
    30453194    mov word [bp-010h], ax                    ; 89 46 f0
    30463195    mov word [bp-014h], bx                    ; 89 5e ec
     
    30493198    mov word [bp-026h], dx                    ; 89 56 da
    30503199    mov si, strict word 00010h                ; be 10 00
    3051     call 09e6ah                               ; e8 56 75
     3200    call 09f00h                               ; e8 84 75
    30523201    mov word [bp-01eh], dx                    ; 89 56 e2
    30533202    mov ax, dx                                ; 89 d0
     
    30823231    out DX, AL                                ; ee
    30833232    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3084     je short 02964h                           ; 74 05
     3233    je short 029cch                           ; 74 05
    30853234    mov ax, 000b0h                            ; b8 b0 00
    3086     jmp short 02967h                          ; eb 03
     3235    jmp short 029cfh                          ; eb 03
    30873236    mov ax, 000a0h                            ; b8 a0 00
    30883237    movzx dx, byte [bp-022h]                  ; 0f b6 56 de
     
    31023251    mov dl, al                                ; 88 c2
    31033252    test AL, strict byte 080h                 ; a8 80
    3104     jne short 0297eh                          ; 75 f1
     3253    jne short 029e6h                          ; 75 f1
    31053254    test AL, strict byte 001h                 ; a8 01
    3106     je short 029a0h                           ; 74 0f
     3255    je short 02a08h                           ; 74 0f
    31073256    mov dx, word [bp-012h]                    ; 8b 56 ee
    31083257    add dx, strict byte 00006h                ; 83 c2 06
     
    31103259    out DX, AL                                ; ee
    31113260    mov dx, strict word 00002h                ; ba 02 00
    3112     jmp near 02a4bh                           ; e9 ab 00
     3261    jmp near 02ab3h                           ; e9 ab 00
    31133262    test dl, 008h                             ; f6 c2 08
    3114     jne short 029b4h                          ; 75 0f
     3263    jne short 02a1ch                          ; 75 0f
    31153264    mov dx, word [bp-012h]                    ; 8b 56 ee
    31163265    add dx, strict byte 00006h                ; 83 c2 06
     
    31183267    out DX, AL                                ; ee
    31193268    mov dx, strict word 00003h                ; ba 03 00
    3120     jmp near 02a4bh                           ; e9 97 00
     3269    jmp near 02ab3h                           ; e9 97 00
    31213270    sti                                       ; fb
    31223271    mov ax, word [bp-00eh]                    ; 8b 46 f2
    31233272    cmp ax, 0f800h                            ; 3d 00 f8
    3124     jc short 029cdh                           ; 72 10
     3273    jc short 02a35h                           ; 72 10
    31253274    sub ax, 00800h                            ; 2d 00 08
    31263275    mov dx, word [bp-018h]                    ; 8b 56 e8
     
    31293278    mov word [bp-018h], dx                    ; 89 56 e8
    31303279    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
    3131     jne short 029e5h                          ; 75 12
     3280    jne short 02a4dh                          ; 75 12
    31323281    mov dx, word [bp-00ah]                    ; 8b 56 f6
    31333282    mov cx, word [bp-020h]                    ; 8b 4e e0
     
    31363285    db  0f3h, 066h, 026h, 06fh
    31373286    ; rep es outsd                              ; f3 66 26 6f
    3138     jmp short 029f4h                          ; eb 0f
     3287    jmp short 02a5ch                          ; eb 0f
    31393288    mov dx, word [bp-00ah]                    ; 8b 56 f6
    31403289    mov cx, word [bp-020h]                    ; 8b 4e e0
     
    31543303    mov dl, al                                ; 88 c2
    31553304    test AL, strict byte 080h                 ; a8 80
    3156     jne short 02a01h                          ; 75 f1
     3305    jne short 02a69h                          ; 75 f1
    31573306    cmp word [bp-01ah], strict byte 00000h    ; 83 7e e6 00
    3158     jne short 02a2ah                          ; 75 14
     3307    jne short 02a92h                          ; 75 14
    31593308    and AL, strict byte 0e9h                  ; 24 e9
    31603309    cmp AL, strict byte 040h                  ; 3c 40
    3161     je short 02a40h                           ; 74 24
     3310    je short 02aa8h                           ; 74 24
    31623311    mov dx, word [bp-012h]                    ; 8b 56 ee
    31633312    add dx, strict byte 00006h                ; 83 c2 06
     
    31653314    out DX, AL                                ; ee
    31663315    mov dx, strict word 00006h                ; ba 06 00
    3167     jmp short 02a4bh                          ; eb 21
     3316    jmp short 02ab3h                          ; eb 21
    31683317    mov al, dl                                ; 88 d0
    31693318    and AL, strict byte 0c9h                  ; 24 c9
    31703319    cmp AL, strict byte 048h                  ; 3c 48
    3171     je short 029b5h                           ; 74 83
     3320    je short 02a1dh                           ; 74 83
    31723321    mov dx, word [bp-012h]                    ; 8b 56 ee
    31733322    add dx, strict byte 00006h                ; 83 c2 06
     
    31753324    out DX, AL                                ; ee
    31763325    mov dx, strict word 00007h                ; ba 07 00
    3177     jmp short 02a4bh                          ; eb 0b
     3326    jmp short 02ab3h                          ; eb 0b
    31783327    mov dx, word [bp-012h]                    ; 8b 56 ee
    31793328    add dx, strict byte 00006h                ; 83 c2 06
     
    31873336    pop bp                                    ; 5d
    31883337    retn                                      ; c3
    3189 @ata_read_sectors:                           ; 0xf2a54 LB 0xb5
     3338@ata_read_sectors:                           ; 0xf2abc LB 0xb5
    31903339    push bp                                   ; 55
    31913340    mov bp, sp                                ; 89 e5
     
    32003349    sal dx, 009h                              ; c1 e2 09
    32013350    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
    3202     je short 02a95h                           ; 74 1f
     3351    je short 02afdh                           ; 74 1f
    32033352    xor ah, ah                                ; 30 e4
    32043353    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    32103359    mov ax, si                                ; 89 f0
    32113360    mov dx, es                                ; 8c c2
    3212     call 01e5ah                               ; e8 ca f3
     3361    call 01ec2h                               ; e8 ca f3
    32133362    mov es, [bp-00ah]                         ; 8e 46 f6
    3214     jmp short 02afah                          ; eb 65
     3363    jmp short 02b62h                          ; eb 65
    32153364    xor bx, bx                                ; 31 db
    32163365    mov word [bp-00ah], bx                    ; 89 5e f6
     
    32273376    adc di, word [bp-00ch]                    ; 13 7e f4
    32283377    test di, di                               ; 85 ff
    3229     jnbe short 02ad1h                         ; 77 11
    3230     jne short 02addh                          ; 75 1b
     3378    jnbe short 02b39h                         ; 77 11
     3379    jne short 02b45h                          ; 75 1b
    32313380    test bx, bx                               ; 85 db
    3232     jnbe short 02ad1h                         ; 77 0b
    3233     jne short 02addh                          ; 75 15
     3381    jnbe short 02b39h                         ; 77 0b
     3382    jne short 02b45h                          ; 75 15
    32343383    cmp word [bp-006h], 01000h                ; 81 7e fa 00 10
    3235     jnbe short 02ad1h                         ; 77 02
    3236     jne short 02addh                          ; 75 0c
     3384    jnbe short 02b39h                         ; 77 02
     3385    jne short 02b45h                          ; 75 0c
    32373386    mov bx, strict word 00024h                ; bb 24 00
    32383387    mov ax, si                                ; 89 f0
    32393388    mov dx, es                                ; 8c c2
    3240     call 01e5ah                               ; e8 7f f3
    3241     jmp short 02b00h                          ; eb 23
     3389    call 01ec2h                               ; e8 7f f3
     3390    jmp short 02b68h                          ; eb 23
    32423391    xor ah, ah                                ; 30 e4
    32433392    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    32493398    mov ax, si                                ; 89 f0
    32503399    mov dx, es                                ; 8c c2
    3251     call 01e5ah                               ; e8 63 f3
     3400    call 01ec2h                               ; e8 63 f3
    32523401    mov es, [bp-006h]                         ; 8e 46 fa
    32533402    mov word [es:di+028h], 00200h             ; 26 c7 45 28 00 02
     
    32573406    pop bp                                    ; 5d
    32583407    retn 00004h                               ; c2 04 00
    3259 @ata_write_sectors:                          ; 0xf2b09 LB 0x5b
     3408@ata_write_sectors:                          ; 0xf2b71 LB 0x5b
    32603409    push bp                                   ; 55
    32613410    mov bp, sp                                ; 89 e5
     
    32663415    mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
    32673416    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
    3268     je short 02b29h                           ; 74 0c
     3417    je short 02b91h                           ; 74 0c
    32693418    mov bx, strict word 00030h                ; bb 30 00
    32703419    mov ax, si                                ; 89 f0
    32713420    mov dx, es                                ; 8c c2
    3272     call 02798h                               ; e8 71 fc
    3273     jmp short 02b5bh                          ; eb 32
     3421    call 02800h                               ; e8 71 fc
     3422    jmp short 02bc3h                          ; eb 32
    32743423    xor ax, ax                                ; 31 c0
    32753424    xor bx, bx                                ; 31 db
     
    32823431    adc dx, word [es:si+006h]                 ; 26 13 54 06
    32833432    test dx, dx                               ; 85 d2
    3284     jnbe short 02b56h                         ; 77 0f
    3285     jne short 02b1dh                          ; 75 d4
     3433    jnbe short 02bbeh                         ; 77 0f
     3434    jne short 02b85h                          ; 75 d4
    32863435    test bx, bx                               ; 85 db
    3287     jnbe short 02b56h                         ; 77 09
    3288     jne short 02b1dh                          ; 75 ce
     3436    jnbe short 02bbeh                         ; 77 09
     3437    jne short 02b85h                          ; 75 ce
    32893438    cmp ax, 01000h                            ; 3d 00 10
    3290     jnbe short 02b56h                         ; 77 02
    3291     jne short 02b1dh                          ; 75 c7
     3439    jnbe short 02bbeh                         ; 77 02
     3440    jne short 02b85h                          ; 75 c7
    32923441    mov bx, strict word 00034h                ; bb 34 00
    3293     jmp short 02b20h                          ; eb c5
     3442    jmp short 02b88h                          ; eb c5
    32943443    lea sp, [bp-004h]                         ; 8d 66 fc
    32953444    pop di                                    ; 5f
     
    32973446    pop bp                                    ; 5d
    32983447    retn 00004h                               ; c2 04 00
    3299 ata_cmd_packet_:                             ; 0xf2b64 LB 0x2e8
     3448ata_cmd_packet_:                             ; 0xf2bcc LB 0x2e8
    33003449    push bp                                   ; 55
    33013450    mov bp, sp                                ; 89 e5
     
    33083457    mov dx, strict word 0000eh                ; ba 0e 00
    33093458    mov ax, strict word 00040h                ; b8 40 00
    3310     call 0166ch                               ; e8 f1 ea
     3459    call 016d4h                               ; e8 f1 ea
    33113460    mov word [bp-012h], 00122h                ; c7 46 ee 22 01
    33123461    mov word [bp-00eh], ax                    ; 89 46 f2
     
    33173466    mov byte [bp-006h], ah                    ; 88 66 fa
    33183467    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    3319     jne short 02bb6h                          ; 75 1f
     3468    jne short 02c1eh                          ; 75 1f
    33203469    mov bx, 00da0h                            ; bb a0 0d
    33213470    mov cx, ds                                ; 8c d9
    33223471    mov ax, strict word 00004h                ; b8 04 00
    3323     call 01931h                               ; e8 8f ed
     3472    call 01999h                               ; e8 8f ed
    33243473    push 00221h                               ; 68 21 02
    33253474    push 00230h                               ; 68 30 02
    33263475    push strict byte 00004h                   ; 6a 04
    3327     call 01972h                               ; e8 c5 ed
     3476    call 019dah                               ; e8 c5 ed
    33283477    add sp, strict byte 00006h                ; 83 c4 06
    33293478    mov dx, strict word 00001h                ; ba 01 00
    3330     jmp near 02e41h                           ; e9 8b 02
     3479    jmp near 02ea9h                           ; e9 8b 02
    33313480    test byte [bp+004h], 001h                 ; f6 46 04 01
    3332     jne short 02bb0h                          ; 75 f4
     3481    jne short 02c18h                          ; 75 f4
    33333482    xor ah, ah                                ; 30 e4
    33343483    imul ax, ax, strict byte 00006h           ; 6b c0 06
     
    33483497    mov al, byte [bp-008h]                    ; 8a 46 f8
    33493498    cmp AL, strict byte 00ch                  ; 3c 0c
    3350     jnc short 02bf9h                          ; 73 06
     3499    jnc short 02c61h                          ; 73 06
    33513500    mov byte [bp-008h], 00ch                  ; c6 46 f8 0c
    3352     jmp short 02bffh                          ; eb 06
    3353     jbe short 02bffh                          ; 76 04
     3501    jmp short 02c67h                          ; eb 06
     3502    jbe short 02c67h                          ; 76 04
    33543503    mov byte [bp-008h], 010h                  ; c6 46 f8 10
    33553504    shr byte [bp-008h], 1                     ; d0 6e f8
     
    33643513    ; sub ah, ah                                ; 2a e4
    33653514    test AL, strict byte 080h                 ; a8 80
    3366     je short 02c27h                           ; 74 06
     3515    je short 02c8fh                           ; 74 06
    33673516    mov dx, strict word 00002h                ; ba 02 00
    3368     jmp near 02e41h                           ; e9 1a 02
     3517    jmp near 02ea9h                           ; e9 1a 02
    33693518    mov dx, word [bp-010h]                    ; 8b 56 f0
    33703519    add dx, strict byte 00006h                ; 83 c2 06
     
    33783527    out DX, AL                                ; ee
    33793528    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3380     je short 02c47h                           ; 74 05
     3529    je short 02cafh                           ; 74 05
    33813530    mov ax, 000b0h                            ; b8 b0 00
    3382     jmp short 02c4ah                          ; eb 03
     3531    jmp short 02cb2h                          ; eb 03
    33833532    mov ax, 000a0h                            ; b8 a0 00
    33843533    lea dx, [bx+006h]                         ; 8d 57 06
     
    33933542    mov dl, al                                ; 88 c2
    33943543    test AL, strict byte 080h                 ; a8 80
    3395     jne short 02c54h                          ; 75 f4
     3544    jne short 02cbch                          ; 75 f4
    33963545    test AL, strict byte 001h                 ; a8 01
    3397     je short 02c73h                           ; 74 0f
     3546    je short 02cdbh                           ; 74 0f
    33983547    mov dx, word [bp-010h]                    ; 8b 56 f0
    33993548    add dx, strict byte 00006h                ; 83 c2 06
     
    34013550    out DX, AL                                ; ee
    34023551    mov dx, strict word 00003h                ; ba 03 00
    3403     jmp near 02e41h                           ; e9 ce 01
     3552    jmp near 02ea9h                           ; e9 ce 01
    34043553    test dl, 008h                             ; f6 c2 08
    3405     jne short 02c87h                          ; 75 0f
     3554    jne short 02cefh                          ; 75 0f
    34063555    mov dx, word [bp-010h]                    ; 8b 56 f0
    34073556    add dx, strict byte 00006h                ; 83 c2 06
     
    34093558    out DX, AL                                ; ee
    34103559    mov dx, strict word 00004h                ; ba 04 00
    3411     jmp near 02e41h                           ; e9 ba 01
     3560    jmp near 02ea9h                           ; e9 ba 01
    34123561    sti                                       ; fb
    34133562    mov ax, di                                ; 89 f8
     
    34223571    ; rep es outsw                              ; f3 26 6f
    34233572    cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
    3424     jne short 02cb0h                          ; 75 0b
     3573    jne short 02d18h                          ; 75 0b
    34253574    lea dx, [bx+007h]                         ; 8d 57 07
    34263575    in AL, DX                                 ; ec
     
    34283577    ; sub ah, ah                                ; 2a e4
    34293578    mov dl, al                                ; 88 c2
    3430     jmp near 02e22h                           ; e9 72 01
     3579    jmp near 02e8ah                           ; e9 72 01
    34313580    lea dx, [bx+007h]                         ; 8d 57 07
    34323581    in AL, DX                                 ; ec
     
    34353584    mov dl, al                                ; 88 c2
    34363585    test AL, strict byte 080h                 ; a8 80
    3437     jne short 02cb0h                          ; 75 f4
     3586    jne short 02d18h                          ; 75 f4
    34383587    test AL, strict byte 088h                 ; a8 88
    3439     je near 02e22h                            ; 0f 84 60 01
     3588    je near 02e8ah                            ; 0f 84 60 01
    34403589    test AL, strict byte 001h                 ; a8 01
    3441     je short 02cd1h                           ; 74 0b
     3590    je short 02d39h                           ; 74 0b
    34423591    mov dx, word [bp-010h]                    ; 8b 56 f0
    34433592    add dx, strict byte 00006h                ; 83 c2 06
    34443593    mov AL, strict byte 008h                  ; b0 08
    34453594    out DX, AL                                ; ee
    3446     jmp short 02c6dh                          ; eb 9c
     3595    jmp short 02cd5h                          ; eb 9c
    34473596    mov al, dl                                ; 88 d0
    34483597    and AL, strict byte 0c9h                  ; 24 c9
    34493598    cmp AL, strict byte 048h                  ; 3c 48
    3450     je short 02ce4h                           ; 74 0b
     3599    je short 02d4ch                           ; 74 0b
    34513600    mov dx, word [bp-010h]                    ; 8b 56 f0
    34523601    add dx, strict byte 00006h                ; 83 c2 06
    34533602    mov AL, strict byte 008h                  ; b0 08
    34543603    out DX, AL                                ; ee
    3455     jmp short 02c81h                          ; eb 9d
     3604    jmp short 02ce9h                          ; eb 9d
    34563605    mov ax, word [bp+00ch]                    ; 8b 46 0c
    34573606    shr ax, 004h                              ; c1 e8 04
     
    34763625    mov ax, word [bp+004h]                    ; 8b 46 04
    34773626    cmp ax, cx                                ; 39 c8
    3478     jbe short 02d24h                          ; 76 0c
     3627    jbe short 02d8ch                          ; 76 0c
    34793628    mov ax, cx                                ; 89 c8
    34803629    sub word [bp+004h], cx                    ; 29 4e 04
    34813630    xor ax, cx                                ; 31 c8
    34823631    mov word [bp-014h], ax                    ; 89 46 ec
    3483     jmp short 02d2eh                          ; eb 0a
     3632    jmp short 02d96h                          ; eb 0a
    34843633    mov cx, ax                                ; 89 c1
    34853634    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    34873636    xor ax, ax                                ; 31 c0
    34883637    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    3489     jne short 02d57h                          ; 75 21
     3638    jne short 02dbfh                          ; 75 21
    34903639    mov dx, word [bp-014h]                    ; 8b 56 ec
    34913640    cmp dx, word [bp+006h]                    ; 3b 56 06
    3492     jbe short 02d57h                          ; 76 19
     3641    jbe short 02dbfh                          ; 76 19
    34933642    mov ax, word [bp-014h]                    ; 8b 46 ec
    34943643    sub ax, word [bp+006h]                    ; 2b 46 06
     
    34993648    mov word [bp+006h], ax                    ; 89 46 06
    35003649    mov word [bp+008h], ax                    ; 89 46 08
    3501     jmp short 02d63h                          ; eb 0c
     3650    jmp short 02dcbh                          ; eb 0c
    35023651    mov word [bp-00ch], ax                    ; 89 46 f4
    35033652    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    35073656    mov al, byte [bp-00ah]                    ; 8a 46 f6
    35083657    test cl, 003h                             ; f6 c1 03
    3509     je short 02d70h                           ; 74 02
     3658    je short 02dd8h                           ; 74 02
    35103659    xor al, al                                ; 30 c0
    35113660    test byte [bp-014h], 003h                 ; f6 46 ec 03
    3512     je short 02d78h                           ; 74 02
     3661    je short 02de0h                           ; 74 02
    35133662    xor al, al                                ; 30 c0
    35143663    test byte [bp-00ch], 003h                 ; f6 46 f4 03
    3515     je short 02d80h                           ; 74 02
     3664    je short 02de8h                           ; 74 02
    35163665    xor al, al                                ; 30 c0
    35173666    test byte [bp-014h], 001h                 ; f6 46 ec 01
    3518     je short 02d98h                           ; 74 12
     3667    je short 02e00h                           ; 74 12
    35193668    inc word [bp-014h]                        ; ff 46 ec
    35203669    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    3521     jbe short 02d98h                          ; 76 09
     3670    jbe short 02e00h                          ; 76 09
    35223671    test byte [bp-00ch], 001h                 ; f6 46 f4 01
    3523     je short 02d98h                           ; 74 03
     3672    je short 02e00h                           ; 74 03
    35243673    dec word [bp-00ch]                        ; ff 4e f4
    35253674    cmp AL, strict byte 001h                  ; 3c 01
    3526     jne short 02da9h                          ; 75 0d
     3675    jne short 02e11h                          ; 75 0d
    35273676    shr word [bp-014h], 002h                  ; c1 6e ec 02
    35283677    shr cx, 002h                              ; c1 e9 02
    35293678    shr word [bp-00ch], 002h                  ; c1 6e f4 02
    3530     jmp short 02db1h                          ; eb 08
     3679    jmp short 02e19h                          ; eb 08
    35313680    shr word [bp-014h], 1                     ; d1 6e ec
    35323681    shr cx, 1                                 ; d1 e9
    35333682    shr word [bp-00ch], 1                     ; d1 6e f4
    35343683    cmp AL, strict byte 001h                  ; 3c 01
    3535     jne short 02de1h                          ; 75 2c
     3684    jne short 02e49h                          ; 75 2c
    35363685    test cx, cx                               ; 85 c9
    3537     je short 02dc3h                           ; 74 0a
     3686    je short 02e2bh                           ; 74 0a
    35383687    mov dx, bx                                ; 89 da
    35393688    push eax                                  ; 66 50
    35403689    in eax, DX                                ; 66 ed
    3541     loop 02dbdh                               ; e2 fc
     3690    loop 02e25h                               ; e2 fc
    35423691    pop eax                                   ; 66 58
    35433692    mov dx, bx                                ; 89 da
     
    35483697    mov ax, word [bp-00ch]                    ; 8b 46 f4
    35493698    test ax, ax                               ; 85 c0
    3550     je short 02e00h                           ; 74 2b
     3699    je short 02e68h                           ; 74 2b
    35513700    mov cx, ax                                ; 89 c1
    35523701    push eax                                  ; 66 50
    35533702    in eax, DX                                ; 66 ed
    3554     loop 02dd9h                               ; e2 fc
     3703    loop 02e41h                               ; e2 fc
    35553704    pop eax                                   ; 66 58
    3556     jmp short 02e00h                          ; eb 1f
     3705    jmp short 02e68h                          ; eb 1f
    35573706    test cx, cx                               ; 85 c9
    3558     je short 02deah                           ; 74 05
     3707    je short 02e52h                           ; 74 05
    35593708    mov dx, bx                                ; 89 da
    35603709    in ax, DX                                 ; ed
    3561     loop 02de7h                               ; e2 fd
     3710    loop 02e4fh                               ; e2 fd
    35623711    mov dx, bx                                ; 89 da
    35633712    mov cx, word [bp-014h]                    ; 8b 4e ec
     
    35663715    mov ax, word [bp-00ch]                    ; 8b 46 f4
    35673716    test ax, ax                               ; 85 c0
    3568     je short 02e00h                           ; 74 05
     3717    je short 02e68h                           ; 74 05
    35693718    mov cx, ax                                ; 89 c1
    35703719    in ax, DX                                 ; ed
    3571     loop 02dfdh                               ; e2 fd
     3720    loop 02e65h                               ; e2 fd
    35723721    add word [bp+00ch], si                    ; 01 76 0c
    35733722    xor ax, ax                                ; 31 c0
     
    35803729    mov ax, word [bp-016h]                    ; 8b 46 ea
    35813730    mov word [es:si+01ch], ax                 ; 26 89 44 1c
    3582     jmp near 02cb0h                           ; e9 8e fe
     3731    jmp near 02d18h                           ; e9 8e fe
    35833732    mov al, dl                                ; 88 d0
    35843733    and AL, strict byte 0e9h                  ; 24 e9
    35853734    cmp AL, strict byte 040h                  ; 3c 40
    3586     je short 02e36h                           ; 74 0c
     3735    je short 02e9eh                           ; 74 0c
    35873736    mov dx, word [bp-010h]                    ; 8b 56 f0
    35883737    add dx, strict byte 00006h                ; 83 c2 06
    35893738    mov AL, strict byte 008h                  ; b0 08
    35903739    out DX, AL                                ; ee
    3591     jmp near 02c81h                           ; e9 4b fe
     3740    jmp near 02ce9h                           ; e9 4b fe
    35923741    mov dx, word [bp-010h]                    ; 8b 56 f0
    35933742    add dx, strict byte 00006h                ; 83 c2 06
     
    36013750    pop bp                                    ; 5d
    36023751    retn 0000ch                               ; c2 0c 00
    3603 ata_soft_reset_:                             ; 0xf2e4c LB 0x80
     3752ata_soft_reset_:                             ; 0xf2eb4 LB 0x80
    36043753    push bp                                   ; 55
    36053754    mov bp, sp                                ; 89 e5
     
    36113760    mov dx, strict word 0000eh                ; ba 0e 00
    36123761    mov ax, strict word 00040h                ; b8 40 00
    3613     call 0166ch                               ; e8 0e e8
     3762    call 016d4h                               ; e8 0e e8
    36143763    mov dx, bx                                ; 89 da
    36153764    shr dx, 1                                 ; d1 ea
     
    36263775    out DX, AL                                ; ee
    36273776    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3628     je short 02e8eh                           ; 74 05
     3777    je short 02ef6h                           ; 74 05
    36293778    mov ax, 000b0h                            ; b8 b0 00
    3630     jmp short 02e91h                          ; eb 03
     3779    jmp short 02ef9h                          ; eb 03
    36313780    mov ax, 000a0h                            ; b8 a0 00
    36323781    mov dx, cx                                ; 89 ca
     
    36433792    ; sub ah, ah                                ; 2a e4
    36443793    test AL, strict byte 080h                 ; a8 80
    3645     jne short 02e9fh                          ; 75 f4
     3794    jne short 02f07h                          ; 75 f4
    36463795    and AL, strict byte 0e9h                  ; 24 e9
    36473796    cmp AL, strict byte 040h                  ; 3c 40
    3648     je short 02ebch                           ; 74 0b
     3797    je short 02f24h                           ; 74 0b
    36493798    lea dx, [bx+006h]                         ; 8d 57 06
    36503799    mov AL, strict byte 008h                  ; b0 08
    36513800    out DX, AL                                ; ee
    36523801    mov ax, strict word 00001h                ; b8 01 00
    3653     jmp short 02ec4h                          ; eb 08
     3802    jmp short 02f2ch                          ; eb 08
    36543803    lea dx, [bx+006h]                         ; 8d 57 06
    36553804    mov AL, strict byte 008h                  ; b0 08
     
    36623811    pop bp                                    ; 5d
    36633812    retn                                      ; c3
    3664 set_diskette_ret_status_:                    ; 0xf2ecc LB 0x18
     3813set_diskette_ret_status_:                    ; 0xf2f34 LB 0x18
    36653814    push bp                                   ; 55
    36663815    mov bp, sp                                ; 89 e5
     
    36703819    mov dx, strict word 00041h                ; ba 41 00
    36713820    mov ax, strict word 00040h                ; b8 40 00
    3672     call 0165eh                               ; e8 81 e7
     3821    call 016c6h                               ; e8 81 e7
    36733822    lea sp, [bp-004h]                         ; 8d 66 fc
    36743823    pop dx                                    ; 5a
     
    36763825    pop bp                                    ; 5d
    36773826    retn                                      ; c3
    3678 set_diskette_current_cyl_:                   ; 0xf2ee4 LB 0x2d
     3827set_diskette_current_cyl_:                   ; 0xf2f4c LB 0x2d
    36793828    push bp                                   ; 55
    36803829    mov bp, sp                                ; 89 e5
     
    36823831    mov bl, al                                ; 88 c3
    36833832    cmp AL, strict byte 001h                  ; 3c 01
    3684     jbe short 02ef9h                          ; 76 0b
     3833    jbe short 02f61h                          ; 76 0b
    36853834    push 00250h                               ; 68 50 02
    36863835    push strict byte 00007h                   ; 6a 07
    3687     call 01972h                               ; e8 7c ea
     3836    call 019dah                               ; e8 7c ea
    36883837    add sp, strict byte 00004h                ; 83 c4 04
    36893838    movzx ax, dl                              ; 0f b6 c2
     
    36923841    mov bx, ax                                ; 89 c3
    36933842    mov ax, strict word 00040h                ; b8 40 00
    3694     call 0165eh                               ; e8 53 e7
     3843    call 016c6h                               ; e8 53 e7
    36953844    lea sp, [bp-002h]                         ; 8d 66 fe
    36963845    pop bx                                    ; 5b
    36973846    pop bp                                    ; 5d
    36983847    retn                                      ; c3
    3699 floppy_wait_for_interrupt_:                  ; 0xf2f11 LB 0x21
     3848floppy_wait_for_interrupt_:                  ; 0xf2f79 LB 0x21
    37003849    push bp                                   ; 55
    37013850    mov bp, sp                                ; 89 e5
     
    37043853    mov dx, strict word 0003eh                ; ba 3e 00
    37053854    mov ax, strict word 00040h                ; b8 40 00
    3706     call 01650h                               ; e8 31 e7
     3855    call 016b8h                               ; e8 31 e7
    37073856    test AL, strict byte 080h                 ; a8 80
    3708     je short 02f27h                           ; 74 04
     3857    je short 02f8fh                           ; 74 04
    37093858    and AL, strict byte 080h                  ; 24 80
    3710     jmp short 02f2ch                          ; eb 05
     3859    jmp short 02f94h                          ; eb 05
    37113860    sti                                       ; fb
    37123861    hlt                                       ; f4
    37133862    cli                                       ; fa
    3714     jmp short 02f16h                          ; eb ea
     3863    jmp short 02f7eh                          ; eb ea
    37153864    lea sp, [bp-002h]                         ; 8d 66 fe
    37163865    pop dx                                    ; 5a
    37173866    pop bp                                    ; 5d
    37183867    retn                                      ; c3
    3719 floppy_wait_for_interrupt_or_timeout_:       ; 0xf2f32 LB 0x46
     3868floppy_wait_for_interrupt_or_timeout_:       ; 0xf2f9a LB 0x46
    37203869    push bp                                   ; 55
    37213870    mov bp, sp                                ; 89 e5
     
    37263875    mov dx, strict word 00040h                ; ba 40 00
    37273876    mov ax, dx                                ; 89 d0
    3728     call 01650h                               ; e8 0f e7
     3877    call 016b8h                               ; e8 0f e7
    37293878    test al, al                               ; 84 c0
    3730     jne short 02f4ah                          ; 75 05
     3879    jne short 02fb2h                          ; 75 05
    37313880    sti                                       ; fb
    37323881    xor cl, cl                                ; 30 c9
    3733     jmp short 02f6eh                          ; eb 24
     3882    jmp short 02fd6h                          ; eb 24
    37343883    mov dx, strict word 0003eh                ; ba 3e 00
    37353884    mov ax, strict word 00040h                ; b8 40 00
    3736     call 01650h                               ; e8 fd e6
     3885    call 016b8h                               ; e8 fd e6
    37373886    mov cl, al                                ; 88 c1
    37383887    test AL, strict byte 080h                 ; a8 80
    3739     je short 02f69h                           ; 74 10
     3888    je short 02fd1h                           ; 74 10
    37403889    and AL, strict byte 07fh                  ; 24 7f
    37413890    movzx bx, al                              ; 0f b6 d8
    37423891    mov dx, strict word 0003eh                ; ba 3e 00
    37433892    mov ax, strict word 00040h                ; b8 40 00
    3744     call 0165eh                               ; e8 f7 e6
    3745     jmp short 02f6eh                          ; eb 05
     3893    call 016c6h                               ; e8 f7 e6
     3894    jmp short 02fd6h                          ; eb 05
    37463895    sti                                       ; fb
    37473896    hlt                                       ; f4
    37483897    cli                                       ; fa
    3749     jmp short 02f39h                          ; eb cb
     3898    jmp short 02fa1h                          ; eb cb
    37503899    mov al, cl                                ; 88 c8
    37513900    lea sp, [bp-006h]                         ; 8d 66 fa
     
    37553904    pop bp                                    ; 5d
    37563905    retn                                      ; c3
    3757 floppy_reset_controller_:                    ; 0xf2f78 LB 0x2b
     3906floppy_reset_controller_:                    ; 0xf2fe0 LB 0x2b
    37583907    push bp                                   ; 55
    37593908    mov bp, sp                                ; 89 e5
     
    37773926    and AL, strict byte 0c0h                  ; 24 c0
    37783927    cmp AL, strict byte 080h                  ; 3c 80
    3779     jne short 02f90h                          ; 75 f4
     3928    jne short 02ff8h                          ; 75 f4
    37803929    lea sp, [bp-004h]                         ; 8d 66 fc
    37813930    pop dx                                    ; 5a
     
    37833932    pop bp                                    ; 5d
    37843933    retn                                      ; c3
    3785 floppy_prepare_controller_:                  ; 0xf2fa3 LB 0x81
     3934floppy_prepare_controller_:                  ; 0xf300b LB 0x81
    37863935    push bp                                   ; 55
    37873936    mov bp, sp                                ; 89 e5
     
    37933942    mov dx, strict word 0003eh                ; ba 3e 00
    37943943    mov ax, strict word 00040h                ; b8 40 00
    3795     call 01650h                               ; e8 9b e6
     3944    call 016b8h                               ; e8 9b e6
    37963945    and AL, strict byte 07fh                  ; 24 7f
    37973946    movzx bx, al                              ; 0f b6 d8
    37983947    mov dx, strict word 0003eh                ; ba 3e 00
    37993948    mov ax, strict word 00040h                ; b8 40 00
    3800     call 0165eh                               ; e8 9b e6
     3949    call 016c6h                               ; e8 9b e6
    38013950    mov dx, 003f2h                            ; ba f2 03
    38023951    in AL, DX                                 ; ec
     
    38063955    mov byte [bp-008h], al                    ; 88 46 f8
    38073956    test cx, cx                               ; 85 c9
    3808     je short 02fd6h                           ; 74 04
     3957    je short 0303eh                           ; 74 04
    38093958    mov AL, strict byte 020h                  ; b0 20
    3810     jmp short 02fd8h                          ; eb 02
     3959    jmp short 03040h                          ; eb 02
    38113960    mov AL, strict byte 010h                  ; b0 10
    38123961    or AL, strict byte 00ch                   ; 0c 0c
     
    38173966    mov dx, strict word 00040h                ; ba 40 00
    38183967    mov ax, dx                                ; 89 d0
    3819     call 0165eh                               ; e8 73 e6
     3968    call 016c6h                               ; e8 73 e6
    38203969    mov dx, 0008bh                            ; ba 8b 00
    38213970    mov ax, strict word 00040h                ; b8 40 00
    3822     call 01650h                               ; e8 5c e6
     3971    call 016b8h                               ; e8 5c e6
    38233972    shr al, 006h                              ; c0 e8 06
    38243973    mov dx, 003f7h                            ; ba f7 03
     
    38303979    and AL, strict byte 0c0h                  ; 24 c0
    38313980    cmp AL, strict byte 080h                  ; 3c 80
    3832     jne short 02ffbh                          ; 75 f4
     3981    jne short 03063h                          ; 75 f4
    38333982    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3834     jne short 0301ch                          ; 75 0f
    3835     call 02f11h                               ; e8 01 ff
     3983    jne short 03084h                          ; 75 0f
     3984    call 02f79h                               ; e8 01 ff
    38363985    movzx bx, al                              ; 0f b6 d8
    38373986    mov dx, strict word 0003eh                ; ba 3e 00
    38383987    mov ax, strict word 00040h                ; b8 40 00
    3839     call 0165eh                               ; e8 42 e6
     3988    call 016c6h                               ; e8 42 e6
    38403989    lea sp, [bp-006h]                         ; 8d 66 fa
    38413990    pop dx                                    ; 5a
     
    38443993    pop bp                                    ; 5d
    38453994    retn                                      ; c3
    3846 floppy_media_known_:                         ; 0xf3024 LB 0x43
     3995floppy_media_known_:                         ; 0xf308c LB 0x43
    38473996    push bp                                   ; 55
    38483997    mov bp, sp                                ; 89 e5
     
    38524001    mov dx, strict word 0003eh                ; ba 3e 00
    38534002    mov ax, strict word 00040h                ; b8 40 00
    3854     call 01650h                               ; e8 1c e6
     4003    call 016b8h                               ; e8 1c e6
    38554004    mov ah, al                                ; 88 c4
    38564005    test bx, bx                               ; 85 db
    3857     je short 0303ch                           ; 74 02
     4006    je short 030a4h                           ; 74 02
    38584007    shr al, 1                                 ; d0 e8
    38594008    and AL, strict byte 001h                  ; 24 01
    3860     jne short 03044h                          ; 75 04
     4009    jne short 030ach                          ; 75 04
    38614010    xor ah, ah                                ; 30 e4
    3862     jmp short 03060h                          ; eb 1c
     4011    jmp short 030c8h                          ; eb 1c
    38634012    mov dx, 00090h                            ; ba 90 00
    38644013    test bx, bx                               ; 85 db
    3865     je short 0304eh                           ; 74 03
     4014    je short 030b6h                           ; 74 03
    38664015    mov dx, 00091h                            ; ba 91 00
    38674016    mov ax, strict word 00040h                ; b8 40 00
    3868     call 01650h                               ; e8 fc e5
     4017    call 016b8h                               ; e8 fc e5
    38694018    xor ah, ah                                ; 30 e4
    38704019    sar ax, 004h                              ; c1 f8 04
    38714020    and AL, strict byte 001h                  ; 24 01
    3872     je short 03040h                           ; 74 e3
     4021    je short 030a8h                           ; 74 e3
    38734022    mov ax, strict word 00001h                ; b8 01 00
    38744023    lea sp, [bp-004h]                         ; 8d 66 fc
     
    38774026    pop bp                                    ; 5d
    38784027    retn                                      ; c3
    3879 floppy_read_id_:                             ; 0xf3067 LB 0x40
     4028floppy_read_id_:                             ; 0xf30cf LB 0x40
    38804029    push bp                                   ; 55
    38814030    mov bp, sp                                ; 89 e5
     
    38854034    sub sp, strict byte 00008h                ; 83 ec 08
    38864035    mov bx, ax                                ; 89 c3
    3887     call 02fa3h                               ; e8 2e ff
     4036    call 0300bh                               ; e8 2e ff
    38884037    mov AL, strict byte 04ah                  ; b0 4a
    38894038    mov dx, 003f5h                            ; ba f5 03
     
    38914040    mov al, bl                                ; 88 d8
    38924041    out DX, AL                                ; ee
    3893     call 02f11h                               ; e8 90 fe
     4042    call 02f79h                               ; e8 90 fe
    38944043    xor si, si                                ; 31 f6
    3895     jmp short 0308ah                          ; eb 05
     4044    jmp short 030f2h                          ; eb 05
    38964045    cmp si, strict byte 00007h                ; 83 fe 07
    3897     jnl short 03096h                          ; 7d 0c
     4046    jnl short 030feh                          ; 7d 0c
    38984047    mov dx, 003f5h                            ; ba f5 03
    38994048    in AL, DX                                 ; ec
     
    39024051    mov byte [bp+si-00eh], al                 ; 88 42 f2
    39034052    inc si                                    ; 46
    3904     jmp short 03085h                          ; eb ef
     4053    jmp short 030edh                          ; eb ef
    39054054    test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
    39064055    db  00fh, 094h, 0c0h
     
    39134062    pop bp                                    ; 5d
    39144063    retn                                      ; c3
    3915 floppy_drive_recal_:                         ; 0xf30a7 LB 0x48
     4064floppy_drive_recal_:                         ; 0xf310f LB 0x48
    39164065    push bp                                   ; 55
    39174066    mov bp, sp                                ; 89 e5
     
    39204069    push dx                                   ; 52
    39214070    mov bx, ax                                ; 89 c3
    3922     call 02fa3h                               ; e8 f1 fe
     4071    call 0300bh                               ; e8 f1 fe
    39234072    mov AL, strict byte 007h                  ; b0 07
    39244073    mov dx, 003f5h                            ; ba f5 03
     
    39264075    mov al, bl                                ; 88 d8
    39274076    out DX, AL                                ; ee
    3928     call 02f11h                               ; e8 53 fe
     4077    call 02f79h                               ; e8 53 fe
    39294078    test bx, bx                               ; 85 db
    3930     je short 030c9h                           ; 74 07
     4079    je short 03131h                           ; 74 07
    39314080    or AL, strict byte 002h                   ; 0c 02
    39324081    mov cx, 00095h                            ; b9 95 00
    3933     jmp short 030ceh                          ; eb 05
     4082    jmp short 03136h                          ; eb 05
    39344083    or AL, strict byte 001h                   ; 0c 01
    39354084    mov cx, 00094h                            ; b9 94 00
     
    39374086    mov dx, strict word 0003eh                ; ba 3e 00
    39384087    mov ax, strict word 00040h                ; b8 40 00
    3939     call 0165eh                               ; e8 84 e5
     4088    call 016c6h                               ; e8 84 e5
    39404089    xor bx, bx                                ; 31 db
    39414090    mov dx, cx                                ; 89 ca
    39424091    mov ax, strict word 00040h                ; b8 40 00
    3943     call 0165eh                               ; e8 7a e5
     4092    call 016c6h                               ; e8 7a e5
    39444093    mov ax, strict word 00001h                ; b8 01 00
    39454094    lea sp, [bp-006h]                         ; 8d 66 fa
     
    39494098    pop bp                                    ; 5d
    39504099    retn                                      ; c3
    3951 floppy_media_sense_:                         ; 0xf30ef LB 0xf0
     4100floppy_media_sense_:                         ; 0xf3157 LB 0xf0
    39524101    push bp                                   ; 55
    39534102    mov bp, sp                                ; 89 e5
     
    39584107    push di                                   ; 57
    39594108    mov di, ax                                ; 89 c7
    3960     call 030a7h                               ; e8 ab ff
     4109    call 0310fh                               ; e8 ab ff
    39614110    test ax, ax                               ; 85 c0
    3962     jne short 03105h                          ; 75 05
     4111    jne short 0316dh                          ; 75 05
    39634112    xor cx, cx                                ; 31 c9
    3964     jmp near 031d3h                           ; e9 ce 00
     4113    jmp near 0323bh                           ; e9 ce 00
    39654114    mov ax, strict word 00010h                ; b8 10 00
    3966     call 016ach                               ; e8 a1 e5
     4115    call 01714h                               ; e8 a1 e5
    39674116    test di, di                               ; 85 ff
    3968     jne short 03116h                          ; 75 07
     4117    jne short 0317eh                          ; 75 07
    39694118    mov cl, al                                ; 88 c1
    39704119    shr cl, 004h                              ; c0 e9 04
    3971     jmp short 0311bh                          ; eb 05
     4120    jmp short 03183h                          ; eb 05
    39724121    mov cl, al                                ; 88 c1
    39734122    and cl, 00fh                              ; 80 e1 0f
    39744123    cmp cl, 001h                              ; 80 f9 01
    3975     jne short 03129h                          ; 75 09
     4124    jne short 03191h                          ; 75 09
    39764125    xor cl, cl                                ; 30 c9
    39774126    mov CH, strict byte 015h                  ; b5 15
    39784127    mov si, strict word 00001h                ; be 01 00
    3979     jmp short 03167h                          ; eb 3e
     4128    jmp short 031cfh                          ; eb 3e
    39804129    cmp cl, 002h                              ; 80 f9 02
    3981     jne short 03134h                          ; 75 06
     4130    jne short 0319ch                          ; 75 06
    39824131    xor cl, cl                                ; 30 c9
    39834132    mov CH, strict byte 035h                  ; b5 35
    3984     jmp short 03124h                          ; eb f0
     4133    jmp short 0318ch                          ; eb f0
    39854134    cmp cl, 003h                              ; 80 f9 03
    3986     jne short 0313fh                          ; 75 06
     4135    jne short 031a7h                          ; 75 06
    39874136    xor cl, cl                                ; 30 c9
    39884137    mov CH, strict byte 017h                  ; b5 17
    3989     jmp short 03124h                          ; eb e5
     4138    jmp short 0318ch                          ; eb e5
    39904139    cmp cl, 004h                              ; 80 f9 04
    3991     jne short 0314ah                          ; 75 06
     4140    jne short 031b2h                          ; 75 06
    39924141    xor cl, cl                                ; 30 c9
    39934142    mov CH, strict byte 017h                  ; b5 17
    3994     jmp short 03124h                          ; eb da
     4143    jmp short 0318ch                          ; eb da
    39954144    cmp cl, 005h                              ; 80 f9 05
    3996     jne short 03155h                          ; 75 06
     4145    jne short 031bdh                          ; 75 06
    39974146    mov CL, strict byte 0cch                  ; b1 cc
    39984147    mov CH, strict byte 0d7h                  ; b5 d7
    3999     jmp short 03124h                          ; eb cf
     4148    jmp short 0318ch                          ; eb cf
    40004149    cmp cl, 00eh                              ; 80 f9 0e
    4001     je short 0315fh                           ; 74 05
     4150    je short 031c7h                           ; 74 05
    40024151    cmp cl, 00fh                              ; 80 f9 0f
    4003     jne short 03161h                          ; 75 02
    4004     jmp short 0314fh                          ; eb ee
     4152    jne short 031c9h                          ; 75 02
     4153    jmp short 031b7h                          ; eb ee
    40054154    xor cl, cl                                ; 30 c9
    40064155    xor ch, ch                                ; 30 ed
     
    40094158    mov dx, 0008bh                            ; ba 8b 00
    40104159    mov ax, strict word 00040h                ; b8 40 00
    4011     call 0165eh                               ; e8 eb e4
     4160    call 016c6h                               ; e8 eb e4
    40124161    mov ax, di                                ; 89 f8
    4013     call 03067h                               ; e8 ef fe
     4162    call 030cfh                               ; e8 ef fe
    40144163    test ax, ax                               ; 85 c0
    4015     jne short 031aeh                          ; 75 32
     4164    jne short 03216h                          ; 75 32
    40164165    mov al, cl                                ; 88 c8
    40174166    and AL, strict byte 0c0h                  ; 24 c0
    40184167    cmp AL, strict byte 080h                  ; 3c 80
    4019     je short 031aeh                           ; 74 2a
     4168    je short 03216h                           ; 74 2a
    40204169    mov al, cl                                ; 88 c8
    40214170    and AL, strict byte 0c0h                  ; 24 c0
    40224171    cmp AL, strict byte 0c0h                  ; 3c c0
    4023     je short 0319bh                           ; 74 0f
     4172    je short 03203h                           ; 74 0f
    40244173    mov ah, cl                                ; 88 cc
    40254174    and ah, 03fh                              ; 80 e4 3f
    40264175    cmp AL, strict byte 040h                  ; 3c 40
    4027     je short 031a7h                           ; 74 12
     4176    je short 0320fh                           ; 74 12
    40284177    test al, al                               ; 84 c0
    4029     je short 031a0h                           ; 74 07
    4030     jmp short 03167h                          ; eb cc
     4178    je short 03208h                           ; 74 07
     4179    jmp short 031cfh                          ; eb cc
    40314180    and cl, 03fh                              ; 80 e1 3f
    4032     jmp short 03167h                          ; eb c7
     4181    jmp short 031cfh                          ; eb c7
    40334182    mov cl, ah                                ; 88 e1
    40344183    or cl, 040h                               ; 80 c9 40
    4035     jmp short 03167h                          ; eb c0
     4184    jmp short 031cfh                          ; eb c0
    40364185    mov cl, ah                                ; 88 e1
    40374186    or cl, 080h                               ; 80 c9 80
    4038     jmp short 03167h                          ; eb b9
     4187    jmp short 031cfh                          ; eb b9
    40394188    test di, di                               ; 85 ff
    40404189    db  00fh, 095h, 0c0h
     
    40454194    mov dx, 0008bh                            ; ba 8b 00
    40464195    mov ax, strict word 00040h                ; b8 40 00
    4047     call 0165eh                               ; e8 98 e4
     4196    call 016c6h                               ; e8 98 e4
    40484197    movzx bx, ch                              ; 0f b6 dd
    40494198    mov dx, di                                ; 89 fa
    40504199    mov ax, strict word 00040h                ; b8 40 00
    4051     call 0165eh                               ; e8 8d e4
     4200    call 016c6h                               ; e8 8d e4
    40524201    mov cx, si                                ; 89 f1
    40534202    mov ax, cx                                ; 89 c8
     
    40604209    pop bp                                    ; 5d
    40614210    retn                                      ; c3
    4062 floppy_drive_exists_:                        ; 0xf31df LB 0x24
     4211floppy_drive_exists_:                        ; 0xf3247 LB 0x24
    40634212    push bp                                   ; 55
    40644213    mov bp, sp                                ; 89 e5
     
    40664215    mov dx, ax                                ; 89 c2
    40674216    mov ax, strict word 00010h                ; b8 10 00
    4068     call 016ach                               ; e8 c1 e4
     4217    call 01714h                               ; e8 c1 e4
    40694218    test dx, dx                               ; 85 d2
    4070     jne short 031f4h                          ; 75 05
     4219    jne short 0325ch                          ; 75 05
    40714220    shr al, 004h                              ; c0 e8 04
    4072     jmp short 031f6h                          ; eb 02
     4221    jmp short 0325eh                          ; eb 02
    40734222    and AL, strict byte 00fh                  ; 24 0f
    40744223    test al, al                               ; 84 c0
     
    40804229    pop bp                                    ; 5d
    40814230    retn                                      ; c3
    4082 _int13_diskette_function:                    ; 0xf3203 LB 0x8f7
     4231_int13_diskette_function:                    ; 0xf326b LB 0x8f7
    40834232    push bp                                   ; 55
    40844233    mov bp, sp                                ; 89 e5
     
    40984247    mov word [bp-010h], dx                    ; 89 56 f0
    40994248    cmp bl, 008h                              ; 80 fb 08
    4100     jc short 0326ah                           ; 72 38
     4249    jc short 032d2h                           ; 72 38
    41014250    mov dx, word [bp+01ch]                    ; 8b 56 1c
    41024251    or dl, 001h                               ; 80 ca 01
    41034252    cmp bl, 008h                              ; 80 fb 08
    4104     jbe near 037c0h                           ; 0f 86 81 05
     4253    jbe near 03828h                           ; 0f 86 81 05
    41054254    cmp bl, 016h                              ; 80 fb 16
    4106     jc short 03260h                           ; 72 1c
     4255    jc short 032c8h                           ; 72 1c
    41074256    or si, 00100h                             ; 81 ce 00 01
    41084257    cmp bl, 016h                              ; 80 fb 16
    4109     jbe near 038f4h                           ; 0f 86 a5 06
     4258    jbe near 0395ch                           ; 0f 86 a5 06
    41104259    cmp bl, 018h                              ; 80 fb 18
    4111     je near 0398ah                            ; 0f 84 34 07
     4260    je near 039f2h                            ; 0f 84 34 07
    41124261    cmp bl, 017h                              ; 80 fb 17
    4113     je near 03918h                            ; 0f 84 bb 06
    4114     jmp near 03ad7h                           ; e9 77 08
     4262    je near 03980h                            ; 0f 84 bb 06
     4263    jmp near 03b3fh                           ; e9 77 08
    41154264    cmp bl, 015h                              ; 80 fb 15
    4116     je near 038b0h                            ; 0f 84 49 06
    4117     jmp near 03ad7h                           ; e9 6d 08
     4265    je near 03918h                            ; 0f 84 49 06
     4266    jmp near 03b3fh                           ; e9 6d 08
    41184267    cmp bl, 001h                              ; 80 fb 01
    4119     jc short 03284h                           ; 72 15
    4120     jbe near 032fdh                           ; 0f 86 8a 00
     4268    jc short 032ech                           ; 72 15
     4269    jbe near 03365h                           ; 0f 86 8a 00
    41214270    cmp bl, 005h                              ; 80 fb 05
    4122     je near 0363ah                            ; 0f 84 c0 03
     4271    je near 036a2h                            ; 0f 84 c0 03
    41234272    cmp bl, 004h                              ; 80 fb 04
    4124     jbe near 0331bh                           ; 0f 86 9a 00
    4125     jmp near 03ad7h                           ; e9 53 08
     4273    jbe near 03383h                           ; 0f 86 9a 00
     4274    jmp near 03b3fh                           ; e9 53 08
    41264275    test bl, bl                               ; 84 db
    4127     jne near 03ad7h                           ; 0f 85 4d 08
     4276    jne near 03b3fh                           ; 0f 85 4d 08
    41284277    mov al, byte [bp+00eh]                    ; 8a 46 0e
    41294278    mov byte [bp-008h], al                    ; 88 46 f8
    41304279    cmp AL, strict byte 001h                  ; 3c 01
    4131     jbe short 032a8h                          ; 76 14
     4280    jbe short 03310h                          ; 76 14
    41324281    mov ax, word [bp+016h]                    ; 8b 46 16
    41334282    xor ah, ah                                ; 30 e4
     
    41354284    mov word [bp+016h], ax                    ; 89 46 16
    41364285    mov ax, strict word 00001h                ; b8 01 00
    4137     call 02ecch                               ; e8 27 fc
    4138     jmp near 03616h                           ; e9 6e 03
     4286    call 02f34h                               ; e8 27 fc
     4287    jmp near 0367eh                           ; e9 6e 03
    41394288    mov ax, strict word 00010h                ; b8 10 00
    4140     call 016ach                               ; e8 fe e3
     4289    call 01714h                               ; e8 fe e3
    41414290    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    4142     jne short 032bbh                          ; 75 07
     4291    jne short 03323h                          ; 75 07
    41434292    mov cl, al                                ; 88 c1
    41444293    shr cl, 004h                              ; c0 e9 04
    4145     jmp short 032c0h                          ; eb 05
     4294    jmp short 03328h                          ; eb 05
    41464295    mov cl, al                                ; 88 c1
    41474296    and cl, 00fh                              ; 80 e1 0f
    41484297    test cl, cl                               ; 84 c9
    4149     jne short 032d4h                          ; 75 10
     4298    jne short 0333ch                          ; 75 10
    41504299    mov ax, word [bp+016h]                    ; 8b 46 16
    41514300    xor ah, ah                                ; 30 e4
     
    41534302    mov word [bp+016h], ax                    ; 89 46 16
    41544303    mov ax, 00080h                            ; b8 80 00
    4155     jmp short 032a2h                          ; eb ce
     4304    jmp short 0330ah                          ; eb ce
    41564305    xor bx, bx                                ; 31 db
    41574306    mov dx, strict word 0003eh                ; ba 3e 00
    41584307    mov ax, strict word 00040h                ; b8 40 00
    4159     call 0165eh                               ; e8 7f e3
     4308    call 016c6h                               ; e8 7f e3
    41604309    xor al, al                                ; 30 c0
    41614310    mov byte [bp+017h], al                    ; 88 46 17
    41624311    xor ah, ah                                ; 30 e4
    4163     call 02ecch                               ; e8 e3 fb
     4312    call 02f34h                               ; e8 e3 fb
    41644313    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    41654314    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    41664315    xor dx, dx                                ; 31 d2
    4167     call 02ee4h                               ; e8 ee fb
     4316    call 02f4ch                               ; e8 ee fb
    41684317    lea sp, [bp-004h]                         ; 8d 66 fc
    41694318    pop di                                    ; 5f
     
    41744323    mov dx, 00441h                            ; ba 41 04
    41754324    xor ax, ax                                ; 31 c0
    4176     call 01650h                               ; e8 47 e3
     4325    call 016b8h                               ; e8 47 e3
    41774326    movzx dx, al                              ; 0f b6 d0
    41784327    sal dx, 008h                              ; c1 e2 08
     
    41804329    mov word [bp+016h], si                    ; 89 76 16
    41814330    test al, al                               ; 84 c0
    4182     je short 032f6h                           ; 74 de
    4183     jmp near 03616h                           ; e9 fb 02
     4331    je short 0335eh                           ; 74 de
     4332    jmp near 0367eh                           ; e9 fb 02
    41844333    mov ch, cl                                ; 88 cd
    41854334    mov dl, byte [bp-010h]                    ; 8a 56 f0
     
    41914340    mov byte [bp-008h], al                    ; 88 46 f8
    41924341    cmp AL, strict byte 001h                  ; 3c 01
    4193     jnbe short 03344h                         ; 77 0e
     4342    jnbe short 033ach                         ; 77 0e
    41944343    cmp dl, 001h                              ; 80 fa 01
    4195     jnbe short 03344h                         ; 77 09
     4344    jnbe short 033ach                         ; 77 09
    41964345    test cl, cl                               ; 84 c9
    4197     je short 03344h                           ; 74 05
     4346    je short 033ach                           ; 74 05
    41984347    cmp cl, 048h                              ; 80 f9 48
    4199     jbe short 0336eh                          ; 76 2a
     4348    jbe short 033d6h                          ; 76 2a
    42004349    mov bx, 00da0h                            ; bb a0 0d
    42014350    mov cx, ds                                ; 8c d9
    42024351    mov ax, strict word 00004h                ; b8 04 00
    4203     call 01931h                               ; e8 e2 e5
     4352    call 01999h                               ; e8 e2 e5
    42044353    push 00275h                               ; 68 75 02
    42054354    push 0028dh                               ; 68 8d 02
    42064355    push strict byte 00004h                   ; 6a 04
    4207     call 01972h                               ; e8 18 e6
     4356    call 019dah                               ; e8 18 e6
    42084357    add sp, strict byte 00006h                ; 83 c4 06
    42094358    mov ax, word [bp+016h]                    ; 8b 46 16
     
    42124361    mov word [bp+016h], ax                    ; 89 46 16
    42134362    mov ax, strict word 00001h                ; b8 01 00
    4214     jmp near 033e4h                           ; e9 76 00
     4363    jmp near 0344ch                           ; e9 76 00
    42154364    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4216     call 031dfh                               ; e8 6a fe
     4365    call 03247h                               ; e8 6a fe
    42174366    test ax, ax                               ; 85 c0
    4218     je near 03477h                            ; 0f 84 fc 00
     4367    je near 034dfh                            ; 0f 84 fc 00
    42194368    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    42204369    mov ax, dx                                ; 89 d0
    4221     call 03024h                               ; e8 a0 fc
     4370    call 0308ch                               ; e8 a0 fc
    42224371    test ax, ax                               ; 85 c0
    4223     jne short 033a1h                          ; 75 19
     4372    jne short 03409h                          ; 75 19
    42244373    mov ax, dx                                ; 89 d0
    4225     call 030efh                               ; e8 62 fd
     4374    call 03157h                               ; e8 62 fd
    42264375    test ax, ax                               ; 85 c0
    4227     jne short 033a1h                          ; 75 10
     4376    jne short 03409h                          ; 75 10
    42284377    mov ax, word [bp+016h]                    ; 8b 46 16
    42294378    xor ah, ah                                ; 30 e4
     
    42314380    mov word [bp+016h], ax                    ; 89 46 16
    42324381    mov ax, strict word 0000ch                ; b8 0c 00
    4233     jmp short 033e4h                          ; eb 43
     4382    jmp short 0344ch                          ; eb 43
    42344383    cmp byte [bp-006h], 002h                  ; 80 7e fa 02
    4235     jne near 03509h                           ; 0f 85 60 01
     4384    jne near 03571h                           ; 0f 85 60 01
    42364385    mov ax, word [bp+006h]                    ; 8b 46 06
    42374386    shr ax, 00ch                              ; c1 e8 0c
     
    42434392    mov word [bp-012h], bx                    ; 89 5e ee
    42444393    cmp dx, bx                                ; 39 da
    4245     jbe short 033c5h                          ; 76 02
     4394    jbe short 0342dh                          ; 76 02
    42464395    db  0feh, 0c1h
    42474396    ; inc cl                                    ; fe c1
     
    42524401    add ax, bx                                ; 01 d8
    42534402    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4254     jnc short 033eeh                          ; 73 18
     4403    jnc short 03456h                          ; 73 18
    42554404    mov ax, word [bp+016h]                    ; 8b 46 16
    42564405    xor ah, ah                                ; 30 e4
     
    42584407    mov word [bp+016h], ax                    ; 89 46 16
    42594408    mov ax, strict word 00009h                ; b8 09 00
    4260     call 02ecch                               ; e8 e5 fa
     4409    call 02f34h                               ; e8 e5 fa
    42614410    mov byte [bp+016h], 000h                  ; c6 46 16 00
    4262     jmp near 03616h                           ; e9 28 02
     4411    jmp near 0367eh                           ; e9 28 02
    42634412    mov AL, strict byte 006h                  ; b0 06
    42644413    mov dx, strict word 0000ah                ; ba 0a 00
     
    42924441    out DX, AL                                ; ee
    42934442    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4294     call 02fa3h                               ; e8 70 fb
     4443    call 0300bh                               ; e8 70 fb
    42954444    mov AL, strict byte 0e6h                  ; b0 e6
    42964445    mov dx, 003f5h                            ; ba f5 03
     
    43204469    mov AL, strict byte 0ffh                  ; b0 ff
    43214470    out DX, AL                                ; ee
    4322     call 02f32h                               ; e8 c2 fa
     4471    call 02f9ah                               ; e8 c2 fa
    43234472    test al, al                               ; 84 c0
    4324     jne short 03488h                          ; 75 14
    4325     call 02f78h                               ; e8 01 fb
     4473    jne short 034f0h                          ; 75 14
     4474    call 02fe0h                               ; e8 01 fb
    43264475    mov ax, word [bp+016h]                    ; 8b 46 16
    43274476    xor ah, ah                                ; 30 e4
     
    43294478    mov word [bp+016h], ax                    ; 89 46 16
    43304479    mov ax, 00080h                            ; b8 80 00
    4331     jmp near 033e4h                           ; e9 5c ff
     4480    jmp near 0344ch                           ; e9 5c ff
    43324481    mov dx, 003f4h                            ; ba f4 03
    43334482    in AL, DX                                 ; ec
     
    43364485    and AL, strict byte 0c0h                  ; 24 c0
    43374486    cmp AL, strict byte 0c0h                  ; 3c c0
    4338     je short 034a2h                           ; 74 0e
     4487    je short 0350ah                           ; 74 0e
    43394488    push 00275h                               ; 68 75 02
    43404489    push 002a8h                               ; 68 a8 02
    43414490    push strict byte 00007h                   ; 6a 07
    4342     call 01972h                               ; e8 d3 e4
     4491    call 019dah                               ; e8 d3 e4
    43434492    add sp, strict byte 00006h                ; 83 c4 06
    43444493    xor si, si                                ; 31 f6
    4345     jmp short 034abh                          ; eb 05
     4494    jmp short 03513h                          ; eb 05
    43464495    cmp si, strict byte 00007h                ; 83 fe 07
    4347     jnl short 034c3h                          ; 7d 18
     4496    jnl short 0352bh                          ; 7d 18
    43484497    mov dx, 003f5h                            ; ba f5 03
    43494498    in AL, DX                                 ; ec
     
    43544503    lea dx, [si+042h]                         ; 8d 54 42
    43554504    mov ax, strict word 00040h                ; b8 40 00
    4356     call 0165eh                               ; e8 9e e1
     4505    call 016c6h                               ; e8 9e e1
    43574506    inc si                                    ; 46
    4358     jmp short 034a6h                          ; eb e3
     4507    jmp short 0350eh                          ; eb e3
    43594508    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4360     je short 034dah                           ; 74 11
     4509    je short 03542h                           ; 74 11
    43614510    mov ax, word [bp+016h]                    ; 8b 46 16
    43624511    xor ah, ah                                ; 30 e4
     
    43644513    mov word [bp+016h], ax                    ; 89 46 16
    43654514    mov ax, strict word 00020h                ; b8 20 00
    4366     jmp near 033e4h                           ; e9 0a ff
     4515    jmp near 0344ch                           ; e9 0a ff
    43674516    movzx ax, ch                              ; 0f b6 c5
    43684517    sal ax, 009h                              ; c1 e0 09
     
    43824531    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    43834532    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4384     call 02ee4h                               ; e8 e2 f9
     4533    call 02f4ch                               ; e8 e2 f9
    43854534    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4386     jmp near 03983h                           ; e9 7a 04
     4535    jmp near 039ebh                           ; e9 7a 04
    43874536    cmp byte [bp-006h], 003h                  ; 80 7e fa 03
    4388     jne near 03624h                           ; 0f 85 13 01
     4537    jne near 0368ch                           ; 0f 85 13 01
    43894538    mov ax, word [bp+006h]                    ; 8b 46 06
    43904539    shr ax, 00ch                              ; c1 e8 0c
     
    43964545    mov word [bp-012h], bx                    ; 89 5e ee
    43974546    cmp dx, bx                                ; 39 da
    4398     jbe short 0352dh                          ; 76 02
     4547    jbe short 03595h                          ; 76 02
    43994548    db  0feh, 0c1h
    44004549    ; inc cl                                    ; fe c1
     
    44054554    add ax, bx                                ; 01 d8
    44064555    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4407     jc near 033d6h                            ; 0f 82 96 fe
     4556    jc near 0343eh                            ; 0f 82 96 fe
    44084557    mov AL, strict byte 006h                  ; b0 06
    44094558    mov dx, strict word 0000ah                ; ba 0a 00
     
    44374586    out DX, AL                                ; ee
    44384587    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4439     call 02fa3h                               ; e8 1e fa
     4588    call 0300bh                               ; e8 1e fa
    44404589    mov AL, strict byte 0c5h                  ; b0 c5
    44414590    mov dx, 003f5h                            ; ba f5 03
     
    44654614    mov AL, strict byte 0ffh                  ; b0 ff
    44664615    out DX, AL                                ; ee
    4467     call 02f32h                               ; e8 70 f9
     4616    call 02f9ah                               ; e8 70 f9
    44684617    test al, al                               ; 84 c0
    4469     je near 03474h                            ; 0f 84 ac fe
     4618    je near 034dch                            ; 0f 84 ac fe
    44704619    mov dx, 003f4h                            ; ba f4 03
    44714620    in AL, DX                                 ; ec
     
    44744623    and AL, strict byte 0c0h                  ; 24 c0
    44754624    cmp AL, strict byte 0c0h                  ; 3c c0
    4476     je short 035e2h                           ; 74 0e
     4625    je short 0364ah                           ; 74 0e
    44774626    push 00275h                               ; 68 75 02
    44784627    push 002a8h                               ; 68 a8 02
    44794628    push strict byte 00007h                   ; 6a 07
    4480     call 01972h                               ; e8 93 e3
     4629    call 019dah                               ; e8 93 e3
    44814630    add sp, strict byte 00006h                ; 83 c4 06
    44824631    xor si, si                                ; 31 f6
    4483     jmp short 035ebh                          ; eb 05
     4632    jmp short 03653h                          ; eb 05
    44844633    cmp si, strict byte 00007h                ; 83 fe 07
    4485     jnl short 03603h                          ; 7d 18
     4634    jnl short 0366bh                          ; 7d 18
    44864635    mov dx, 003f5h                            ; ba f5 03
    44874636    in AL, DX                                 ; ec
     
    44924641    lea dx, [si+042h]                         ; 8d 54 42
    44934642    mov ax, strict word 00040h                ; b8 40 00
    4494     call 0165eh                               ; e8 5e e0
     4643    call 016c6h                               ; e8 5e e0
    44954644    inc si                                    ; 46
    4496     jmp short 035e6h                          ; eb e3
     4645    jmp short 0364eh                          ; eb e3
    44974646    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4498     je near 034f7h                            ; 0f 84 ec fe
     4647    je near 0355fh                            ; 0f 84 ec fe
    44994648    test byte [bp-019h], 002h                 ; f6 46 e7 02
    4500     je short 0361dh                           ; 74 0c
     4649    je short 03685h                           ; 74 0c
    45014650    mov word [bp+016h], 00300h                ; c7 46 16 00 03
    45024651    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4503     jmp near 032f6h                           ; e9 d9 fc
     4652    jmp near 0335eh                           ; e9 d9 fc
    45044653    mov word [bp+016h], 00100h                ; c7 46 16 00 01
    4505     jmp short 03616h                          ; eb f2
     4654    jmp short 0367eh                          ; eb f2
    45064655    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    45074656    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4508     call 02ee4h                               ; e8 b5 f8
     4657    call 02f4ch                               ; e8 b5 f8
    45094658    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    45104659    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4511     jmp near 032f6h                           ; e9 bc fc
     4660    jmp near 0335eh                           ; e9 bc fc
    45124661    mov ch, byte [bp+016h]                    ; 8a 6e 16
    45134662    mov ax, word [bp+014h]                    ; 8b 46 14
     
    45204669    mov byte [bp-008h], bl                    ; 88 5e f8
    45214670    cmp bl, 001h                              ; 80 fb 01
    4522     jnbe short 0366ch                         ; 77 12
     4671    jnbe short 036d4h                         ; 77 12
    45234672    cmp dl, 001h                              ; 80 fa 01
    4524     jnbe short 0366ch                         ; 77 0d
     4673    jnbe short 036d4h                         ; 77 0d
    45254674    cmp AL, strict byte 04fh                  ; 3c 4f
    4526     jnbe short 0366ch                         ; 77 09
     4675    jnbe short 036d4h                         ; 77 09
    45274676    test ch, ch                               ; 84 ed
    4528     je short 0366ch                           ; 74 05
     4677    je short 036d4h                           ; 74 05
    45294678    cmp ch, 012h                              ; 80 fd 12
    4530     jbe short 03681h                          ; 76 15
     4679    jbe short 036e9h                          ; 76 15
    45314680    mov ax, word [bp+016h]                    ; 8b 46 16
    45324681    xor ah, ah                                ; 30 e4
     
    45344683    mov word [bp+016h], ax                    ; 89 46 16
    45354684    mov ax, strict word 00001h                ; b8 01 00
    4536     call 02ecch                               ; e8 4f f8
     4685    call 02f34h                               ; e8 4f f8
    45374686    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    45384687    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4539     call 031dfh                               ; e8 57 fb
     4688    call 03247h                               ; e8 57 fb
    45404689    test ax, ax                               ; 85 c0
    4541     je near 032c4h                            ; 0f 84 36 fc
     4690    je near 0332ch                            ; 0f 84 36 fc
    45424691    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    45434692    mov ax, dx                                ; 89 d0
    4544     call 03024h                               ; e8 8d f9
     4693    call 0308ch                               ; e8 8d f9
    45454694    test ax, ax                               ; 85 c0
    4546     jne short 036a6h                          ; 75 0b
     4695    jne short 0370eh                          ; 75 0b
    45474696    mov ax, dx                                ; 89 d0
    4548     call 030efh                               ; e8 4f fa
     4697    call 03157h                               ; e8 4f fa
    45494698    test ax, ax                               ; 85 c0
    4550     je near 03391h                            ; 0f 84 eb fc
     4699    je near 033f9h                            ; 0f 84 eb fc
    45514700    mov ax, word [bp+006h]                    ; 8b 46 06
    45524701    shr ax, 00ch                              ; c1 e8 0c
     
    45584707    mov word [bp-012h], bx                    ; 89 5e ee
    45594708    cmp dx, bx                                ; 39 da
    4560     jbe short 036c2h                          ; 76 02
     4709    jbe short 0372ah                          ; 76 02
    45614710    db  0feh, 0c1h
    45624711    ; inc cl                                    ; fe c1
     
    45674716    add ax, bx                                ; 01 d8
    45684717    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4569     jc near 033d6h                            ; 0f 82 01 fd
     4718    jc near 0343eh                            ; 0f 82 01 fd
    45704719    mov AL, strict byte 006h                  ; b0 06
    45714720    mov dx, strict word 0000ah                ; ba 0a 00
     
    45994748    out DX, AL                                ; ee
    46004749    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4601     call 02fa3h                               ; e8 89 f8
     4750    call 0300bh                               ; e8 89 f8
    46024751    mov AL, strict byte 00fh                  ; b0 0f
    46034752    mov dx, 003f5h                            ; ba f5 03
     
    46234772    mov AL, strict byte 0f6h                  ; b0 f6
    46244773    out DX, AL                                ; ee
    4625     call 02f32h                               ; e8 e9 f7
     4774    call 02f9ah                               ; e8 e9 f7
    46264775    test al, al                               ; 84 c0
    4627     jne short 03753h                          ; 75 06
    4628     call 02f78h                               ; e8 28 f8
    4629     jmp near 032c4h                           ; e9 71 fb
     4776    jne short 037bbh                          ; 75 06
     4777    call 02fe0h                               ; e8 28 f8
     4778    jmp near 0332ch                           ; e9 71 fb
    46304779    mov dx, 003f4h                            ; ba f4 03
    46314780    in AL, DX                                 ; ec
     
    46344783    and AL, strict byte 0c0h                  ; 24 c0
    46354784    cmp AL, strict byte 0c0h                  ; 3c c0
    4636     je short 0376dh                           ; 74 0e
     4785    je short 037d5h                           ; 74 0e
    46374786    push 00275h                               ; 68 75 02
    46384787    push 002a8h                               ; 68 a8 02
    46394788    push strict byte 00007h                   ; 6a 07
    4640     call 01972h                               ; e8 08 e2
     4789    call 019dah                               ; e8 08 e2
    46414790    add sp, strict byte 00006h                ; 83 c4 06
    46424791    xor si, si                                ; 31 f6
    4643     jmp short 03776h                          ; eb 05
     4792    jmp short 037deh                          ; eb 05
    46444793    cmp si, strict byte 00007h                ; 83 fe 07
    4645     jnl short 0378eh                          ; 7d 18
     4794    jnl short 037f6h                          ; 7d 18
    46464795    mov dx, 003f5h                            ; ba f5 03
    46474796    in AL, DX                                 ; ec
     
    46524801    lea dx, [si+042h]                         ; 8d 54 42
    46534802    mov ax, strict word 00040h                ; b8 40 00
    4654     call 0165eh                               ; e8 d3 de
     4803    call 016c6h                               ; e8 d3 de
    46554804    inc si                                    ; 46
    4656     jmp short 03771h                          ; eb e3
     4805    jmp short 037d9h                          ; eb e3
    46574806    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4658     je short 037aah                           ; 74 16
     4807    je short 03812h                           ; 74 16
    46594808    test byte [bp-019h], 002h                 ; f6 46 e7 02
    4660     jne near 03611h                           ; 0f 85 75 fe
     4809    jne near 03679h                           ; 0f 85 75 fe
    46614810    push 00275h                               ; 68 75 02
    46624811    push 002bch                               ; 68 bc 02
    46634812    push strict byte 00007h                   ; 6a 07
    4664     call 01972h                               ; e8 cb e1
     4813    call 019dah                               ; e8 cb e1
    46654814    add sp, strict byte 00006h                ; 83 c4 06
    46664815    xor al, al                                ; 30 c0
    46674816    mov byte [bp+017h], al                    ; 88 46 17
    46684817    xor ah, ah                                ; 30 e4
    4669     call 02ecch                               ; e8 18 f7
     4818    call 02f34h                               ; e8 18 f7
    46704819    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    46714820    xor dx, dx                                ; 31 d2
    4672     call 02ee4h                               ; e8 27 f7
    4673     jmp near 03983h                           ; e9 c3 01
     4821    call 02f4ch                               ; e8 27 f7
     4822    jmp near 039ebh                           ; e9 c3 01
    46744823    mov byte [bp-008h], al                    ; 88 46 f8
    46754824    cmp AL, strict byte 001h                  ; 3c 01
    4676     jbe short 037e4h                          ; 76 1d
     4825    jbe short 0384ch                          ; 76 1d
    46774826    xor ax, ax                                ; 31 c0
    46784827    mov word [bp+016h], ax                    ; 89 46 16
     
    46844833    movzx ax, ch                              ; 0f b6 c5
    46854834    mov word [bp+012h], ax                    ; 89 46 12
    4686     jmp near 03901h                           ; e9 1d 01
     4835    jmp near 03969h                           ; e9 1d 01
    46874836    mov ax, strict word 00010h                ; b8 10 00
    4688     call 016ach                               ; e8 c2 de
     4837    call 01714h                               ; e8 c2 de
    46894838    mov cl, al                                ; 88 c1
    46904839    xor ch, ch                                ; 30 ed
    46914840    test AL, strict byte 0f0h                 ; a8 f0
    4692     je short 037f4h                           ; 74 02
     4841    je short 0385ch                           ; 74 02
    46934842    mov CH, strict byte 001h                  ; b5 01
    46944843    test cl, 00fh                             ; f6 c1 0f
    4695     je short 037fbh                           ; 74 02
     4844    je short 03863h                           ; 74 02
    46964845    db  0feh, 0c5h
    46974846    ; inc ch                                    ; fe c5
    46984847    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    4699     jne short 03806h                          ; 75 05
     4848    jne short 0386eh                          ; 75 05
    47004849    shr cl, 004h                              ; c0 e9 04
    4701     jmp short 03809h                          ; eb 03
     4850    jmp short 03871h                          ; eb 03
    47024851    and cl, 00fh                              ; 80 e1 0f
    47034852    mov byte [bp+011h], 000h                  ; c6 46 11 00
     
    47144863    mov word [bp+012h], ax                    ; 89 46 12
    47154864    cmp cl, 003h                              ; 80 f9 03
    4716     jc short 03847h                           ; 72 15
    4717     jbe short 0386eh                          ; 76 3a
     4865    jc short 038afh                           ; 72 15
     4866    jbe short 038d6h                          ; 76 3a
    47184867    cmp cl, 005h                              ; 80 f9 05
    4719     jc short 03875h                           ; 72 3c
    4720     jbe short 0387ch                          ; 76 41
     4868    jc short 038ddh                           ; 72 3c
     4869    jbe short 038e4h                          ; 76 41
    47214870    cmp cl, 00fh                              ; 80 f9 0f
    4722     je short 0388ah                           ; 74 4a
     4871    je short 038f2h                           ; 74 4a
    47234872    cmp cl, 00eh                              ; 80 f9 0e
    4724     je short 03883h                           ; 74 3e
    4725     jmp short 03891h                          ; eb 4a
     4873    je short 038ebh                           ; 74 3e
     4874    jmp short 038f9h                          ; eb 4a
    47264875    cmp cl, 002h                              ; 80 f9 02
    4727     je short 03867h                           ; 74 1b
     4876    je short 038cfh                           ; 74 1b
    47284877    cmp cl, 001h                              ; 80 f9 01
    4729     je short 03860h                           ; 74 0f
     4878    je short 038c8h                           ; 74 0f
    47304879    test cl, cl                               ; 84 c9
    4731     jne short 03891h                          ; 75 3c
     4880    jne short 038f9h                          ; 75 3c
    47324881    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    47334882    mov byte [bp+013h], 000h                  ; c6 46 13 00
    4734     jmp short 0389fh                          ; eb 3f
     4883    jmp short 03907h                          ; eb 3f
    47354884    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    4736     jmp short 0389fh                          ; eb 38
     4885    jmp short 03907h                          ; eb 38
    47374886    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    4738     jmp short 0389fh                          ; eb 31
     4887    jmp short 03907h                          ; eb 31
    47394888    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    4740     jmp short 0389fh                          ; eb 2a
     4889    jmp short 03907h                          ; eb 2a
    47414890    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    4742     jmp short 0389fh                          ; eb 23
     4891    jmp short 03907h                          ; eb 23
    47434892    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
    4744     jmp short 0389fh                          ; eb 1c
     4893    jmp short 03907h                          ; eb 1c
    47454894    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    4746     jmp short 0389fh                          ; eb 15
     4895    jmp short 03907h                          ; eb 15
    47474896    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    4748     jmp short 0389fh                          ; eb 0e
     4897    jmp short 03907h                          ; eb 0e
    47494898    push 00275h                               ; 68 75 02
    47504899    push 002cdh                               ; 68 cd 02
    47514900    push strict byte 00007h                   ; 6a 07
    4752     call 01972h                               ; e8 d6 e0
     4901    call 019dah                               ; e8 d6 e0
    47534902    add sp, strict byte 00006h                ; 83 c4 06
    47544903    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    47554904    movzx ax, cl                              ; 0f b6 c1
    4756     call 03afah                               ; e8 50 02
     4905    call 03b62h                               ; e8 50 02
    47574906    mov word [bp+008h], ax                    ; 89 46 08
    4758     jmp near 03983h                           ; e9 d3 00
     4907    jmp near 039ebh                           ; e9 d3 00
    47594908    mov byte [bp-008h], al                    ; 88 46 f8
    47604909    cmp AL, strict byte 001h                  ; 3c 01
    4761     jbe short 038bch                          ; 76 05
     4910    jbe short 03924h                          ; 76 05
    47624911    mov word [bp+016h], si                    ; 89 76 16
    4763     jmp short 03901h                          ; eb 45
     4912    jmp short 03969h                          ; eb 45
    47644913    mov ax, strict word 00010h                ; b8 10 00
    4765     call 016ach                               ; e8 ea dd
     4914    call 01714h                               ; e8 ea dd
    47664915    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    4767     jne short 038cfh                          ; 75 07
     4916    jne short 03937h                          ; 75 07
    47684917    mov cl, al                                ; 88 c1
    47694918    shr cl, 004h                              ; c0 e9 04
    4770     jmp short 038d4h                          ; eb 05
     4919    jmp short 0393ch                          ; eb 05
    47714920    mov cl, al                                ; 88 c1
    47724921    and cl, 00fh                              ; 80 e1 0f
     
    47754924    xor dh, dh                                ; 30 f6
    47764925    test cl, cl                               ; 84 c9
    4777     je short 038eeh                           ; 74 0d
     4926    je short 03956h                           ; 74 0d
    47784927    cmp cl, 001h                              ; 80 f9 01
    4779     jbe short 038ebh                          ; 76 05
     4928    jbe short 03953h                          ; 76 05
    47804929    or dh, 002h                               ; 80 ce 02
    4781     jmp short 038eeh                          ; eb 03
     4930    jmp short 03956h                          ; eb 03
    47824931    or dh, 001h                               ; 80 ce 01
    47834932    mov word [bp+016h], dx                    ; 89 56 16
    4784     jmp near 032f6h                           ; e9 02 fa
     4933    jmp near 0335eh                           ; e9 02 fa
    47854934    cmp AL, strict byte 001h                  ; 3c 01
    4786     jbe short 03907h                          ; 76 0f
     4935    jbe short 0396fh                          ; 76 0f
    47874936    mov word [bp+016h], si                    ; 89 76 16
    47884937    mov ax, strict word 00001h                ; b8 01 00
    4789     call 02ecch                               ; e8 cb f5
     4938    call 02f34h                               ; e8 cb f5
    47904939    mov word [bp+01ch], dx                    ; 89 56 1c
    4791     jmp near 032f6h                           ; e9 ef f9
     4940    jmp near 0335eh                           ; e9 ef f9
    47924941    mov ax, word [bp+016h]                    ; 8b 46 16
    47934942    xor ah, ah                                ; 30 e4
     
    47954944    mov word [bp+016h], ax                    ; 89 46 16
    47964945    mov ax, strict word 00006h                ; b8 06 00
    4797     jmp near 032a2h                           ; e9 8a f9
     4946    jmp near 0330ah                           ; e9 8a f9
    47984947    mov byte [bp-008h], al                    ; 88 46 f8
    47994948    mov bl, cl                                ; 88 cb
    48004949    cmp AL, strict byte 001h                  ; 3c 01
    4801     jnbe short 038f8h                         ; 77 d7
     4950    jnbe short 03960h                         ; 77 d7
    48024951    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4803     call 031dfh                               ; e8 b7 f8
     4952    call 03247h                               ; e8 b7 f8
    48044953    test ax, ax                               ; 85 c0
    4805     je near 032c4h                            ; 0f 84 96 f9
     4954    je near 0332ch                            ; 0f 84 96 f9
    48064955    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    48074956    db  00fh, 095h, 0c0h
     
    48114960    mov word [bp-012h], dx                    ; 89 56 ee
    48124961    mov ax, strict word 00040h                ; b8 40 00
    4813     call 01650h                               ; e8 0b dd
     4962    call 016b8h                               ; e8 0b dd
    48144963    and AL, strict byte 00fh                  ; 24 0f
    48154964    cmp bl, 002h                              ; 80 fb 02
    4816     jc short 0395bh                           ; 72 0f
    4817     jbe short 03967h                          ; 76 19
     4965    jc short 039c3h                           ; 72 0f
     4966    jbe short 039cfh                          ; 76 19
    48184967    cmp bl, 004h                              ; 80 fb 04
    4819     je short 03963h                           ; 74 10
     4968    je short 039cbh                           ; 74 10
    48204969    cmp bl, 003h                              ; 80 fb 03
    4821     je short 0396bh                           ; 74 13
    4822     jmp near 03294h                           ; e9 39 f9
     4970    je short 039d3h                           ; 74 13
     4971    jmp near 032fch                           ; e9 39 f9
    48234972    cmp bl, 001h                              ; 80 fb 01
    4824     je short 03963h                           ; 74 03
    4825     jmp near 03294h                           ; e9 31 f9
     4973    je short 039cbh                           ; 74 03
     4974    jmp near 032fch                           ; e9 31 f9
    48264975    or AL, strict byte 090h                   ; 0c 90
    4827     jmp short 0396dh                          ; eb 06
     4976    jmp short 039d5h                          ; eb 06
    48284977    or AL, strict byte 070h                   ; 0c 70
    4829     jmp short 0396dh                          ; eb 02
     4978    jmp short 039d5h                          ; eb 02
    48304979    or AL, strict byte 010h                   ; 0c 10
    48314980    movzx bx, al                              ; 0f b6 d8
    48324981    mov dx, word [bp-012h]                    ; 8b 56 ee
    48334982    mov ax, strict word 00040h                ; b8 40 00
    4834     call 0165eh                               ; e8 e5 dc
     4983    call 016c6h                               ; e8 e5 dc
    48354984    xor al, al                                ; 30 c0
    48364985    mov byte [bp+017h], al                    ; 88 46 17
    48374986    xor ah, ah                                ; 30 e4
    4838     call 02ecch                               ; e8 49 f5
     4987    call 02f34h                               ; e8 49 f5
    48394988    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4840     jmp near 032f6h                           ; e9 6c f9
     4989    jmp near 0335eh                           ; e9 6c f9
    48414990    mov byte [bp-008h], al                    ; 88 46 f8
    48424991    mov ch, ah                                ; 88 e5
     
    48484997    mov byte [bp-00ch], bl                    ; 88 5e f4
    48494998    cmp AL, strict byte 001h                  ; 3c 01
    4850     jnbe near 038f8h                          ; 0f 87 51 ff
     4999    jnbe near 03960h                          ; 0f 87 51 ff
    48515000    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4852     call 031dfh                               ; e8 31 f8
     5001    call 03247h                               ; e8 31 f8
    48535002    test ax, ax                               ; 85 c0
    4854     je near 032c4h                            ; 0f 84 10 f9
     5003    je near 0332ch                            ; 0f 84 10 f9
    48555004    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    48565005    mov ax, dx                                ; 89 d0
    4857     call 03024h                               ; e8 67 f6
     5006    call 0308ch                               ; e8 67 f6
    48585007    test ax, ax                               ; 85 c0
    4859     jne short 039dbh                          ; 75 1a
     5008    jne short 03a43h                          ; 75 1a
    48605009    mov ax, dx                                ; 89 d0
    4861     call 030efh                               ; e8 29 f7
     5010    call 03157h                               ; e8 29 f7
    48625011    test ax, ax                               ; 85 c0
    4863     jne short 039dbh                          ; 75 11
     5012    jne short 03a43h                          ; 75 11
    48645013    mov ax, word [bp+016h]                    ; 8b 46 16
    48655014    xor ah, ah                                ; 30 e4
     
    48675016    mov word [bp+016h], ax                    ; 89 46 16
    48685017    mov ax, strict word 0000ch                ; b8 0c 00
    4869     jmp near 032a2h                           ; e9 c7 f8
     5018    jmp near 0330ah                           ; e9 c7 f8
    48705019    mov ax, strict word 00010h                ; b8 10 00
    4871     call 016ach                               ; e8 cb dc
     5020    call 01714h                               ; e8 cb dc
    48725021    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    4873     jne short 039eeh                          ; 75 07
     5022    jne short 03a56h                          ; 75 07
    48745023    mov cl, al                                ; 88 c1
    48755024    shr cl, 004h                              ; c0 e9 04
    4876     jmp short 039f3h                          ; eb 05
     5025    jmp short 03a5bh                          ; eb 05
    48775026    mov cl, al                                ; 88 c1
    48785027    and cl, 00fh                              ; 80 e1 0f
     
    48845033    mov word [bp-012h], dx                    ; 89 56 ee
    48855034    mov ax, strict word 00040h                ; b8 40 00
    4886     call 01650h                               ; e8 46 dc
     5035    call 016b8h                               ; e8 46 dc
    48875036    and AL, strict byte 00fh                  ; 24 0f
    48885037    cmp cl, 003h                              ; 80 f9 03
    4889     jc short 03a2fh                           ; 72 1e
     5038    jc short 03a97h                           ; 72 1e
    48905039    mov dl, al                                ; 88 c2
    48915040    or dl, 090h                               ; 80 ca 90
    48925041    cmp cl, 003h                              ; 80 f9 03
    4893     jbe short 03a6dh                          ; 76 52
     5042    jbe short 03ad5h                          ; 76 52
    48945043    mov ah, al                                ; 88 c4
    48955044    or ah, 010h                               ; 80 cc 10
    48965045    cmp cl, 005h                              ; 80 f9 05
    4897     je near 03a92h                            ; 0f 84 6b 00
     5046    je near 03afah                            ; 0f 84 6b 00
    48985047    cmp cl, 004h                              ; 80 f9 04
    4899     je short 03a7ch                           ; 74 50
    4900     jmp near 03aadh                           ; e9 7e 00
     5048    je short 03ae4h                           ; 74 50
     5049    jmp near 03b15h                           ; e9 7e 00
    49015050    cmp cl, 002h                              ; 80 f9 02
    4902     je short 03a4fh                           ; 74 1b
     5051    je short 03ab7h                           ; 74 1b
    49035052    cmp cl, 001h                              ; 80 f9 01
    4904     jne near 03aadh                           ; 0f 85 72 00
     5053    jne near 03b15h                           ; 0f 85 72 00
    49055054    cmp byte [bp-00ch], 027h                  ; 80 7e f4 27
    4906     jne near 03aadh                           ; 0f 85 6a 00
     5055    jne near 03b15h                           ; 0f 85 6a 00
    49075056    cmp ch, 009h                              ; 80 fd 09
    4908     jne near 03aadh                           ; 0f 85 63 00
     5057    jne near 03b15h                           ; 0f 85 63 00
    49095058    or AL, strict byte 090h                   ; 0c 90
    4910     jmp near 03aadh                           ; e9 5e 00
     5059    jmp near 03b15h                           ; e9 5e 00
    49115060    cmp byte [bp-00ch], 027h                  ; 80 7e f4 27
    4912     jne short 03a5eh                          ; 75 09
     5061    jne short 03ac6h                          ; 75 09
    49135062    cmp ch, 009h                              ; 80 fd 09
    4914     jne short 03a5eh                          ; 75 04
     5063    jne short 03ac6h                          ; 75 04
    49155064    or AL, strict byte 070h                   ; 0c 70
    4916     jmp short 03aadh                          ; eb 4f
     5065    jmp short 03b15h                          ; eb 4f
    49175066    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
    4918     jne short 03aadh                          ; 75 49
     5067    jne short 03b15h                          ; 75 49
    49195068    cmp ch, 00fh                              ; 80 fd 0f
    4920     jne short 03aadh                          ; 75 44
     5069    jne short 03b15h                          ; 75 44
    49215070    or AL, strict byte 010h                   ; 0c 10
    4922     jmp short 03aadh                          ; eb 40
     5071    jmp short 03b15h                          ; eb 40
    49235072    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
    4924     jne short 03aadh                          ; 75 3a
     5073    jne short 03b15h                          ; 75 3a
    49255074    cmp ch, 009h                              ; 80 fd 09
    4926     jne short 03aadh                          ; 75 35
     5075    jne short 03b15h                          ; 75 35
    49275076    mov al, dl                                ; 88 d0
    4928     jmp short 03aadh                          ; eb 31
     5077    jmp short 03b15h                          ; eb 31
    49295078    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
    4930     jne short 03aadh                          ; 75 2b
     5079    jne short 03b15h                          ; 75 2b
    49315080    cmp ch, 009h                              ; 80 fd 09
    4932     jne short 03a89h                          ; 75 02
    4933     jmp short 03a78h                          ; eb ef
     5081    jne short 03af1h                          ; 75 02
     5082    jmp short 03ae0h                          ; eb ef
    49345083    cmp ch, 012h                              ; 80 fd 12
    4935     jne short 03aadh                          ; 75 1f
     5084    jne short 03b15h                          ; 75 1f
    49365085    mov al, ah                                ; 88 e0
    4937     jmp short 03aadh                          ; eb 1b
     5086    jmp short 03b15h                          ; eb 1b
    49385087    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
    4939     jne short 03aadh                          ; 75 15
     5088    jne short 03b15h                          ; 75 15
    49405089    cmp ch, 009h                              ; 80 fd 09
    4941     jne short 03a9fh                          ; 75 02
    4942     jmp short 03a78h                          ; eb d9
     5090    jne short 03b07h                          ; 75 02
     5091    jmp short 03ae0h                          ; eb d9
    49435092    cmp ch, 012h                              ; 80 fd 12
    4944     jne short 03aa6h                          ; 75 02
    4945     jmp short 03a8eh                          ; eb e8
     5093    jne short 03b0eh                          ; 75 02
     5094    jmp short 03af6h                          ; eb e8
    49465095    cmp ch, 024h                              ; 80 fd 24
    4947     jne short 03aadh                          ; 75 02
     5096    jne short 03b15h                          ; 75 02
    49485097    or AL, strict byte 0d0h                   ; 0c d0
    49495098    movzx dx, al                              ; 0f b6 d0
    49505099    sar dx, 004h                              ; c1 fa 04
    49515100    test dl, 001h                             ; f6 c2 01
    4952     je near 039cah                            ; 0f 84 10 ff
     5101    je near 03a32h                            ; 0f 84 10 ff
    49535102    movzx bx, al                              ; 0f b6 d8
    49545103    mov dx, word [bp-012h]                    ; 8b 56 ee
    49555104    mov ax, strict word 00040h                ; b8 40 00
    4956     call 0165eh                               ; e8 98 db
     5105    call 016c6h                               ; e8 98 db
    49575106    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    49585107    movzx ax, cl                              ; 0f b6 c1
    4959     call 03afah                               ; e8 29 00
     5108    call 03b62h                               ; e8 29 00
    49605109    mov word [bp+008h], ax                    ; 89 46 08
    4961     jmp near 03979h                           ; e9 a2 fe
     5110    jmp near 039e1h                           ; e9 a2 fe
    49625111    mov bx, 00da0h                            ; bb a0 0d
    49635112    mov cx, ds                                ; 8c d9
    49645113    mov ax, strict word 00004h                ; b8 04 00
    4965     call 01931h                               ; e8 4f de
     5114    call 01999h                               ; e8 4f de
    49665115    mov ax, word [bp+016h]                    ; 8b 46 16
    49675116    shr ax, 008h                              ; c1 e8 08
     
    49705119    push 002e2h                               ; 68 e2 02
    49715120    push strict byte 00004h                   ; 6a 04
    4972     call 01972h                               ; e8 7e de
     5121    call 019dah                               ; e8 7e de
    49735122    add sp, strict byte 00008h                ; 83 c4 08
    4974     jmp near 03294h                           ; e9 9a f7
    4975 get_floppy_dpt_:                             ; 0xf3afa LB 0x2f
     5123    jmp near 032fch                           ; e9 9a f7
     5124get_floppy_dpt_:                             ; 0xf3b62 LB 0x2f
    49765125    push bx                                   ; 53
    49775126    push dx                                   ; 52
     
    49805129    mov dl, al                                ; 88 c2
    49815130    xor ax, ax                                ; 31 c0
    4982     jmp short 03b0bh                          ; eb 06
     5131    jmp short 03b73h                          ; eb 06
    49835132    inc ax                                    ; 40
    49845133    cmp ax, strict word 00007h                ; 3d 07 00
    4985     jnc short 03b22h                          ; 73 17
     5134    jnc short 03b8ah                          ; 73 17
    49865135    mov bx, ax                                ; 89 c3
    49875136    add bx, ax                                ; 01 c3
    49885137    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
    4989     jne short 03b05h                          ; 75 f0
     5138    jne short 03b6dh                          ; 75 f0
    49905139    movzx ax, byte [word bx+0005ch]           ; 0f b6 87 5c 00
    49915140    imul ax, ax, strict byte 0000dh           ; 6b c0 0d
    49925141    add ax, strict word 00000h                ; 05 00 00
    4993     jmp short 03b25h                          ; eb 03
     5142    jmp short 03b8dh                          ; eb 03
    49945143    mov ax, strict word 00041h                ; b8 41 00
    49955144    pop bp                                    ; 5d
     
    49975146    pop bx                                    ; 5b
    49985147    retn                                      ; c3
    4999 dummy_soft_reset_:                           ; 0xf3b29 LB 0x7
     5148dummy_soft_reset_:                           ; 0xf3b91 LB 0x7
    50005149    push bp                                   ; 55
    50015150    mov bp, sp                                ; 89 e5
     
    50035152    pop bp                                    ; 5d
    50045153    retn                                      ; c3
    5005 _cdemu_init:                                 ; 0xf3b30 LB 0x18
     5154_cdemu_init:                                 ; 0xf3b98 LB 0x18
    50065155    push bp                                   ; 55
    50075156    mov bp, sp                                ; 89 e5
    50085157    mov dx, strict word 0000eh                ; ba 0e 00
    50095158    mov ax, strict word 00040h                ; b8 40 00
    5010     call 0166ch                               ; e8 30 db
     5159    call 016d4h                               ; e8 30 db
    50115160    xor bx, bx                                ; 31 db
    50125161    mov dx, 00366h                            ; ba 66 03
    5013     call 0165eh                               ; e8 1a db
     5162    call 016c6h                               ; e8 1a db
    50145163    mov sp, bp                                ; 89 ec
    50155164    pop bp                                    ; 5d
    50165165    retn                                      ; c3
    5017 _cdemu_isactive:                             ; 0xf3b48 LB 0x16
     5166_cdemu_isactive:                             ; 0xf3bb0 LB 0x16
    50185167    push bp                                   ; 55
    50195168    mov bp, sp                                ; 89 e5
    50205169    mov dx, strict word 0000eh                ; ba 0e 00
    50215170    mov ax, strict word 00040h                ; b8 40 00
    5022     call 0166ch                               ; e8 18 db
     5171    call 016d4h                               ; e8 18 db
    50235172    mov dx, 00366h                            ; ba 66 03
    5024     call 01650h                               ; e8 f6 da
     5173    call 016b8h                               ; e8 f6 da
    50255174    mov sp, bp                                ; 89 ec
    50265175    pop bp                                    ; 5d
    50275176    retn                                      ; c3
    5028 _cdemu_emulated_drive:                       ; 0xf3b5e LB 0x16
     5177_cdemu_emulated_drive:                       ; 0xf3bc6 LB 0x16
    50295178    push bp                                   ; 55
    50305179    mov bp, sp                                ; 89 e5
    50315180    mov dx, strict word 0000eh                ; ba 0e 00
    50325181    mov ax, strict word 00040h                ; b8 40 00
    5033     call 0166ch                               ; e8 02 db
     5182    call 016d4h                               ; e8 02 db
    50345183    mov dx, 00368h                            ; ba 68 03
    5035     call 01650h                               ; e8 e0 da
     5184    call 016b8h                               ; e8 e0 da
    50365185    mov sp, bp                                ; 89 ec
    50375186    pop bp                                    ; 5d
    50385187    retn                                      ; c3
    5039 _int13_eltorito:                             ; 0xf3b74 LB 0x189
     5188_int13_eltorito:                             ; 0xf3bdc LB 0x189
    50405189    push bp                                   ; 55
    50415190    mov bp, sp                                ; 89 e5
     
    50445193    mov dx, strict word 0000eh                ; ba 0e 00
    50455194    mov ax, strict word 00040h                ; b8 40 00
    5046     call 0166ch                               ; e8 ea da
     5195    call 016d4h                               ; e8 ea da
    50475196    mov si, 00366h                            ; be 66 03
    50485197    mov di, ax                                ; 89 c7
     
    50505199    shr ax, 008h                              ; c1 e8 08
    50515200    cmp ax, strict word 0004bh                ; 3d 4b 00
    5052     jc short 03b9ch                           ; 72 0a
    5053     jbe short 03bc2h                          ; 76 2e
     5201    jc short 03c04h                           ; 72 0a
     5202    jbe short 03c2ah                          ; 76 2e
    50545203    cmp ax, strict word 0004dh                ; 3d 4d 00
    5055     jbe short 03ba3h                          ; 76 0a
    5056     jmp near 03cc1h                           ; e9 25 01
     5204    jbe short 03c0bh                          ; 76 0a
     5205    jmp near 03d29h                           ; e9 25 01
    50575206    cmp ax, strict word 0004ah                ; 3d 4a 00
    5058     jne near 03cc1h                           ; 0f 85 1e 01
     5207    jne near 03d29h                           ; 0f 85 1e 01
    50595208    mov bx, 00da0h                            ; bb a0 0d
    50605209    mov cx, ds                                ; 8c d9
    50615210    mov ax, strict word 00004h                ; b8 04 00
    5062     call 01931h                               ; e8 83 dd
     5211    call 01999h                               ; e8 83 dd
    50635212    push word [bp+016h]                       ; ff 76 16
    50645213    push 002fch                               ; 68 fc 02
    50655214    push 0030bh                               ; 68 0b 03
    50665215    push strict byte 00004h                   ; 6a 04
    5067     call 01972h                               ; e8 b6 dd
     5216    call 019dah                               ; e8 b6 dd
    50685217    add sp, strict byte 00008h                ; 83 c4 08
    5069     jmp near 03cdch                           ; e9 1a 01
     5218    jmp near 03d44h                           ; e9 1a 01
    50705219    mov dx, word [bp+00ah]                    ; 8b 56 0a
    50715220    mov ax, word [bp+004h]                    ; 8b 46 04
    50725221    mov bx, strict word 00013h                ; bb 13 00
    5073     call 0165eh                               ; e8 90 da
     5222    call 016c6h                               ; e8 90 da
    50745223    mov es, di                                ; 8e c7
    50755224    movzx bx, byte [es:si+001h]               ; 26 0f b6 5c 01
     
    50775226    inc dx                                    ; 42
    50785227    mov ax, word [bp+004h]                    ; 8b 46 04
    5079     call 0165eh                               ; e8 7f da
     5228    call 016c6h                               ; e8 7f da
    50805229    mov es, di                                ; 8e c7
    50815230    movzx bx, byte [es:si+002h]               ; 26 0f b6 5c 02
     
    50845233    inc dx                                    ; 42
    50855234    mov ax, word [bp+004h]                    ; 8b 46 04
    5086     call 0165eh                               ; e8 6d da
     5235    call 016c6h                               ; e8 6d da
    50875236    mov es, di                                ; 8e c7
    50885237    movzx bx, byte [es:si+003h]               ; 26 0f b6 5c 03
     
    50905239    add dx, strict byte 00003h                ; 83 c2 03
    50915240    mov ax, word [bp+004h]                    ; 8b 46 04
    5092     call 0165eh                               ; e8 5a da
     5241    call 016c6h                               ; e8 5a da
    50935242    mov es, di                                ; 8e c7
    50945243    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    50975246    add dx, strict byte 00004h                ; 83 c2 04
    50985247    mov ax, word [bp+004h]                    ; 8b 46 04
    5099     call 0169ah                               ; e8 80 da
     5248    call 01702h                               ; e8 80 da
    51005249    mov es, di                                ; 8e c7
    51015250    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    51035252    add dx, strict byte 00008h                ; 83 c2 08
    51045253    mov ax, word [bp+004h]                    ; 8b 46 04
    5105     call 0167ah                               ; e8 4e da
     5254    call 016e2h                               ; e8 4e da
    51065255    mov es, di                                ; 8e c7
    51075256    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    51095258    add dx, strict byte 0000ah                ; 83 c2 0a
    51105259    mov ax, word [bp+004h]                    ; 8b 46 04
    5111     call 0167ah                               ; e8 3c da
     5260    call 016e2h                               ; e8 3c da
    51125261    mov es, di                                ; 8e c7
    51135262    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    51155264    add dx, strict byte 0000ch                ; 83 c2 0c
    51165265    mov ax, word [bp+004h]                    ; 8b 46 04
    5117     call 0167ah                               ; e8 2a da
     5266    call 016e2h                               ; e8 2a da
    51185267    mov es, di                                ; 8e c7
    51195268    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    51215270    add dx, strict byte 0000eh                ; 83 c2 0e
    51225271    mov ax, word [bp+004h]                    ; 8b 46 04
    5123     call 0167ah                               ; e8 18 da
     5272    call 016e2h                               ; e8 18 da
    51245273    mov es, di                                ; 8e c7
    51255274    movzx bx, byte [es:si+012h]               ; 26 0f b6 5c 12
     
    51275276    add dx, strict byte 00010h                ; 83 c2 10
    51285277    mov ax, word [bp+004h]                    ; 8b 46 04
    5129     call 0165eh                               ; e8 e9 d9
     5278    call 016c6h                               ; e8 e9 d9
    51305279    mov es, di                                ; 8e c7
    51315280    movzx bx, byte [es:si+014h]               ; 26 0f b6 5c 14
     
    51335282    add dx, strict byte 00011h                ; 83 c2 11
    51345283    mov ax, word [bp+004h]                    ; 8b 46 04
    5135     call 0165eh                               ; e8 d6 d9
     5284    call 016c6h                               ; e8 d6 d9
    51365285    mov es, di                                ; 8e c7
    51375286    movzx bx, byte [es:si+010h]               ; 26 0f b6 5c 10
     
    51395288    add dx, strict byte 00012h                ; 83 c2 12
    51405289    mov ax, word [bp+004h]                    ; 8b 46 04
    5141     call 0165eh                               ; e8 c3 d9
     5290    call 016c6h                               ; e8 c3 d9
    51425291    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    5143     jne short 03ca7h                          ; 75 06
     5292    jne short 03d0fh                          ; 75 06
    51445293    mov es, di                                ; 8e c7
    51455294    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    51485297    mov dx, strict word 00074h                ; ba 74 00
    51495298    mov ax, strict word 00040h                ; b8 40 00
    5150     call 0165eh                               ; e8 a8 d9
     5299    call 016c6h                               ; e8 a8 d9
    51515300    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    51525301    lea sp, [bp-004h]                         ; 8d 66 fc
     
    51585307    mov cx, ds                                ; 8c d9
    51595308    mov ax, strict word 00004h                ; b8 04 00
    5160     call 01931h                               ; e8 65 dc
     5309    call 01999h                               ; e8 65 dc
    51615310    mov ax, word [bp+016h]                    ; 8b 46 16
    51625311    shr ax, 008h                              ; c1 e8 08
     
    51645313    push 002fch                               ; 68 fc 02
    51655314    push 00333h                               ; 68 33 03
    5166     jmp near 03bb7h                           ; e9 db fe
     5315    jmp near 03c1fh                           ; e9 db fe
    51675316    mov ax, word [bp+016h]                    ; 8b 46 16
    51685317    xor ah, ah                                ; 30 e4
     
    51745323    mov dx, strict word 00074h                ; ba 74 00
    51755324    mov ax, strict word 00040h                ; b8 40 00
    5176     call 0165eh                               ; e8 67 d9
     5325    call 016c6h                               ; e8 67 d9
    51775326    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5178     jmp short 03cbah                          ; eb bd
    5179 device_is_cdrom_:                            ; 0xf3cfd LB 0x35
     5327    jmp short 03d22h                          ; eb bd
     5328device_is_cdrom_:                            ; 0xf3d65 LB 0x35
    51805329    push bp                                   ; 55
    51815330    mov bp, sp                                ; 89 e5
     
    51855334    mov dx, strict word 0000eh                ; ba 0e 00
    51865335    mov ax, strict word 00040h                ; b8 40 00
    5187     call 0166ch                               ; e8 5f d9
     5336    call 016d4h                               ; e8 5f d9
    51885337    cmp bl, 010h                              ; 80 fb 10
    5189     jc short 03d16h                           ; 72 04
     5338    jc short 03d7eh                           ; 72 04
    51905339    xor ax, ax                                ; 31 c0
    5191     jmp short 03d2bh                          ; eb 15
     5340    jmp short 03d93h                          ; eb 15
    51925341    xor bh, bh                                ; 30 ff
    51935342    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    51955344    add bx, 00122h                            ; 81 c3 22 01
    51965345    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    5197     jne short 03d12h                          ; 75 ea
     5346    jne short 03d7ah                          ; 75 ea
    51985347    mov ax, strict word 00001h                ; b8 01 00
    51995348    lea sp, [bp-004h]                         ; 8d 66 fc
     
    52025351    pop bp                                    ; 5d
    52035352    retn                                      ; c3
    5204 cdrom_boot_:                                 ; 0xf3d32 LB 0x416
     5353cdrom_boot_:                                 ; 0xf3d9a LB 0x416
    52055354    push bp                                   ; 55
    52065355    mov bp, sp                                ; 89 e5
     
    52135362    mov dx, strict word 0000eh                ; ba 0e 00
    52145363    mov ax, strict word 00040h                ; b8 40 00
    5215     call 0166ch                               ; e8 25 d9
     5364    call 016d4h                               ; e8 25 d9
    52165365    mov word [bp-018h], ax                    ; 89 46 e8
    52175366    mov si, 00366h                            ; be 66 03
     
    52205369    mov word [bp-012h], ax                    ; 89 46 ee
    52215370    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    5222     jmp short 03d67h                          ; eb 09
     5371    jmp short 03dcfh                          ; eb 09
    52235372    inc byte [bp-00ch]                        ; fe 46 f4
    52245373    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5225     jnc short 03d72h                          ; 73 0b
     5374    jnc short 03ddah                          ; 73 0b
    52265375    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    5227     call 03cfdh                               ; e8 8f ff
     5376    call 03d65h                               ; e8 8f ff
    52285377    test ax, ax                               ; 85 c0
    5229     je short 03d5eh                           ; 74 ec
     5378    je short 03dc6h                           ; 74 ec
    52305379    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5231     jc short 03d7eh                           ; 72 06
     5380    jc short 03de6h                           ; 72 06
    52325381    mov ax, strict word 00002h                ; b8 02 00
    5233     jmp near 040e5h                           ; e9 67 03
     5382    jmp near 0414dh                           ; e9 67 03
    52345383    mov cx, strict word 0000ch                ; b9 0c 00
    52355384    xor bx, bx                                ; 31 db
    52365385    mov dx, ss                                ; 8c d2
    52375386    lea ax, [bp-026h]                         ; 8d 46 da
    5238     call 09e7ah                               ; e8 ef 60
     5387    call 09f20h                               ; e8 2d 61
    52395388    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    52405389    mov ax, strict word 00011h                ; b8 11 00
     
    52525401    ; mov dword [es:bx+00eh], strict dword 008000001h ; 66 26 c7 47 0e 01 00 00 08
    52535402    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    5254     jmp short 03dc3h                          ; eb 09
     5403    jmp short 03e2bh                          ; eb 09
    52555404    inc byte [bp-00eh]                        ; fe 46 f2
    52565405    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
    5257     jnbe short 03dfah                         ; 77 37
     5406    jnbe short 03e62h                         ; 77 37
    52585407    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
    52595408    imul di, di, strict byte 0001ch           ; 6b ff 1c
     
    52755424    call word [word di+0006ah]                ; ff 95 6a 00
    52765425    test ax, ax                               ; 85 c0
    5277     jne short 03dbah                          ; 75 c0
     5426    jne short 03e22h                          ; 75 c0
    52785427    test ax, ax                               ; 85 c0
    5279     je short 03e04h                           ; 74 06
     5428    je short 03e6ch                           ; 74 06
    52805429    mov ax, strict word 00003h                ; b8 03 00
    5281     jmp near 040e5h                           ; e9 e1 02
     5430    jmp near 0414dh                           ; e9 e1 02
    52825431    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    5283     je short 03e11h                           ; 74 06
     5432    je short 03e79h                           ; 74 06
    52845433    mov ax, strict word 00004h                ; b8 04 00
    5285     jmp near 040e5h                           ; e9 d4 02
     5434    jmp near 0414dh                           ; e9 d4 02
    52865435    xor di, di                                ; 31 ff
    5287     jmp short 03e1bh                          ; eb 06
     5436    jmp short 03e83h                          ; eb 06
    52885437    inc di                                    ; 47
    52895438    cmp di, strict byte 00005h                ; 83 ff 05
    5290     jnc short 03e2bh                          ; 73 10
     5439    jnc short 03e93h                          ; 73 10
    52915440    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    52925441    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
    5293     je short 03e15h                           ; 74 f0
     5442    je short 03e7dh                           ; 74 f0
    52945443    mov ax, strict word 00005h                ; b8 05 00
    5295     jmp near 040e5h                           ; e9 ba 02
     5444    jmp near 0414dh                           ; e9 ba 02
    52965445    xor di, di                                ; 31 ff
    5297     jmp short 03e35h                          ; eb 06
     5446    jmp short 03e9dh                          ; eb 06
    52985447    inc di                                    ; 47
    52995448    cmp di, strict byte 00017h                ; 83 ff 17
    5300     jnc short 03e45h                          ; 73 10
     5449    jnc short 03eadh                          ; 73 10
    53015450    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    53025451    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
    5303     je short 03e2fh                           ; 74 f0
     5452    je short 03e97h                           ; 74 f0
    53045453    mov ax, strict word 00006h                ; b8 06 00
    5305     jmp near 040e5h                           ; e9 a0 02
     5454    jmp near 0414dh                           ; e9 a0 02
    53065455    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    53075456    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    53345483    call word [word di+0006ah]                ; ff 95 6a 00
    53355484    test ax, ax                               ; 85 c0
    5336     je short 03ea2h                           ; 74 06
     5485    je short 03f0ah                           ; 74 06
    53375486    mov ax, strict word 00007h                ; b8 07 00
    5338     jmp near 040e5h                           ; e9 43 02
     5487    jmp near 0414dh                           ; e9 43 02
    53395488    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    5340     je short 03eafh                           ; 74 06
     5489    je short 03f17h                           ; 74 06
    53415490    mov ax, strict word 00008h                ; b8 08 00
    5342     jmp near 040e5h                           ; e9 36 02
     5491    jmp near 0414dh                           ; e9 36 02
    53435492    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    5344     je short 03ebch                           ; 74 06
     5493    je short 03f24h                           ; 74 06
    53455494    mov ax, strict word 00009h                ; b8 09 00
    5346     jmp near 040e5h                           ; e9 29 02
     5495    jmp near 0414dh                           ; e9 29 02
    53475496    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    5348     je short 03ec9h                           ; 74 06
     5497    je short 03f31h                           ; 74 06
    53495498    mov ax, strict word 0000ah                ; b8 0a 00
    5350     jmp near 040e5h                           ; e9 1c 02
     5499    jmp near 0414dh                           ; e9 1c 02
    53515500    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    5352     jne short 03ec3h                          ; 75 f3
     5501    jne short 03f2bh                          ; 75 f3
    53535502    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    5354     je short 03eddh                           ; 74 06
     5503    je short 03f45h                           ; 74 06
    53555504    mov ax, strict word 0000bh                ; b8 0b 00
    5356     jmp near 040e5h                           ; e9 08 02
     5505    jmp near 0414dh                           ; e9 08 02
    53575506    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    53585507    mov es, [bp-010h]                         ; 8e 46 f0
    53595508    mov byte [es:si+001h], al                 ; 26 88 44 01
    53605509    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    5361     jne short 03ef6h                          ; 75 07
     5510    jne short 03f5eh                          ; 75 07
    53625511    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    5363     jmp short 03f09h                          ; eb 13
     5512    jmp short 03f71h                          ; eb 13
    53645513    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    5365     jnc short 03f04h                          ; 73 07
     5514    jnc short 03f6ch                          ; 73 07
    53665515    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    5367     jmp short 03f09h                          ; eb 05
     5516    jmp short 03f71h                          ; eb 05
    53685517    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    53695518    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
     
    53835532    mov word [bp-016h], ax                    ; 89 46 ea
    53845533    test ax, ax                               ; 85 c0
    5385     jne short 03f37h                          ; 75 05
     5534    jne short 03f9fh                          ; 75 05
    53865535    mov word [bp-016h], 007c0h                ; c7 46 ea c0 07
    53875536    mov ax, word [bp-016h]                    ; 8b 46 ea
     
    53925541    mov word [es:si+00eh], di                 ; 26 89 7c 0e
    53935542    test di, di                               ; 85 ff
    5394     je short 03f59h                           ; 74 06
     5543    je short 03fc1h                           ; 74 06
    53955544    cmp di, 00400h                            ; 81 ff 00 04
    5396     jbe short 03f5fh                          ; 76 06
     5545    jbe short 03fc7h                          ; 76 06
    53975546    mov ax, strict word 0000ch                ; b8 0c 00
    5398     jmp near 040e5h                           ; e9 86 01
     5547    jmp near 0414dh                           ; e9 86 01
    53995548    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    54005549    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    54365585    sal ax, 1                                 ; d1 e0
    54375586    rcl di, 1                                 ; d1 d7
    5438     loop 03fcdh                               ; e2 fa
     5587    loop 04035h                               ; e2 fa
    54395588    push di                                   ; 57
    54405589    push ax                                   ; 50
     
    54495598    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    54505599    test ax, ax                               ; 85 c0
    5451     je short 03ffdh                           ; 74 06
     5600    je short 04065h                           ; 74 06
    54525601    mov ax, strict word 0000dh                ; b8 0d 00
    5453     jmp near 040e5h                           ; e9 e8 00
     5602    jmp near 0414dh                           ; e9 e8 00
    54545603    mov es, [bp-010h]                         ; 8e 46 f0
    54555604    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    54565605    cmp AL, strict byte 002h                  ; 3c 02
    5457     jc short 04015h                           ; 72 0d
    5458     jbe short 0402dh                          ; 76 23
     5606    jc short 0407dh                           ; 72 0d
     5607    jbe short 04095h                          ; 76 23
    54595608    cmp AL, strict byte 004h                  ; 3c 04
    5460     je short 04043h                           ; 74 35
     5609    je short 040abh                           ; 74 35
    54615610    cmp AL, strict byte 003h                  ; 3c 03
    5462     je short 04038h                           ; 74 26
    5463     jmp near 0408eh                           ; e9 79 00
     5611    je short 040a0h                           ; 74 26
     5612    jmp near 040f6h                           ; e9 79 00
    54645613    cmp AL, strict byte 001h                  ; 3c 01
    5465     jne short 0408eh                          ; 75 75
     5614    jne short 040f6h                          ; 75 75
    54665615    mov es, [bp-010h]                         ; 8e 46 f0
    54675616    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h
    54685617    ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00
    54695618    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    5470     jmp short 0408eh                          ; eb 61
     5619    jmp short 040f6h                          ; eb 61
    54715620    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h
    54725621    ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00
    5473     jmp short 04025h                          ; eb ed
     5622    jmp short 0408dh                          ; eb ed
    54745623    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h
    54755624    ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00
    5476     jmp short 04025h                          ; eb e2
     5625    jmp short 0408dh                          ; eb e2
    54775626    mov dx, 001c4h                            ; ba c4 01
    54785627    mov ax, word [bp-016h]                    ; 8b 46 ea
    5479     call 01650h                               ; e8 04 d6
     5628    call 016b8h                               ; e8 04 d6
    54805629    and AL, strict byte 03fh                  ; 24 3f
    54815630    xor ah, ah                                ; 30 e4
     
    54845633    mov dx, 001c4h                            ; ba c4 01
    54855634    mov ax, word [bp-016h]                    ; 8b 46 ea
    5486     call 01650h                               ; e8 f0 d5
     5635    call 016b8h                               ; e8 f0 d5
    54875636    movzx bx, al                              ; 0f b6 d8
    54885637    sal bx, 002h                              ; c1 e3 02
    54895638    mov dx, 001c5h                            ; ba c5 01
    54905639    mov ax, word [bp-016h]                    ; 8b 46 ea
    5491     call 01650h                               ; e8 e1 d5
     5640    call 016b8h                               ; e8 e1 d5
    54925641    xor ah, ah                                ; 30 e4
    54935642    add ax, bx                                ; 01 d8
     
    54975646    mov dx, 001c3h                            ; ba c3 01
    54985647    mov ax, word [bp-016h]                    ; 8b 46 ea
    5499     call 01650h                               ; e8 cc d5
     5648    call 016b8h                               ; e8 cc d5
    55005649    xor ah, ah                                ; 30 e4
    55015650    inc ax                                    ; 40
     
    55045653    mov es, [bp-010h]                         ; 8e 46 f0
    55055654    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5506     je short 040cch                           ; 74 34
     5655    je short 04134h                           ; 74 34
    55075656    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    5508     jne short 040b5h                          ; 75 16
     5657    jne short 0411dh                          ; 75 16
    55095658    mov dx, strict word 00010h                ; ba 10 00
    55105659    mov ax, strict word 00040h                ; b8 40 00
    5511     call 01650h                               ; e8 a8 d5
     5660    call 016b8h                               ; e8 a8 d5
    55125661    or AL, strict byte 041h                   ; 0c 41
    55135662    movzx bx, al                              ; 0f b6 d8
    55145663    mov dx, strict word 00010h                ; ba 10 00
    55155664    mov ax, strict word 00040h                ; b8 40 00
    5516     jmp short 040c9h                          ; eb 14
     5665    jmp short 04131h                          ; eb 14
    55175666    mov dx, 00304h                            ; ba 04 03
    55185667    mov ax, word [bp-018h]                    ; 8b 46 e8
    5519     call 01650h                               ; e8 92 d5
     5668    call 016b8h                               ; e8 92 d5
    55205669    db  0feh, 0c0h
    55215670    ; inc al                                    ; fe c0
     
    55235672    mov dx, 00304h                            ; ba 04 03
    55245673    mov ax, word [bp-018h]                    ; 8b 46 e8
    5525     call 0165eh                               ; e8 92 d5
     5674    call 016c6h                               ; e8 92 d5
    55265675    mov es, [bp-010h]                         ; 8e 46 f0
    55275676    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5528     je short 040dah                           ; 74 04
     5677    je short 04142h                           ; 74 04
    55295678    mov byte [es:si], 001h                    ; 26 c6 04 01
    55305679    mov es, [bp-010h]                         ; 8e 46 f0
     
    55405689    retn                                      ; c3
    55415690    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5542     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0e0h, 044h, 0eeh
    5543     db  041h, 038h, 042h, 060h, 042h, 02dh, 042h, 060h, 042h, 02dh, 042h, 036h, 044h, 013h, 042h, 0e0h
    5544     db  044h, 0e0h, 044h, 013h, 042h, 013h, 042h, 013h, 042h, 013h, 042h, 013h, 042h, 0d7h, 044h, 013h
    5545     db  042h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h
    5546     db  044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h
    5547 _int13_cdemu:                                ; 0xf4148 LB 0x434
     5691    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 048h, 045h, 056h
     5692    db  042h, 0a0h, 042h, 0c8h, 042h, 095h, 042h, 0c8h, 042h, 095h, 042h, 09eh, 044h, 07bh, 042h, 048h
     5693    db  045h, 048h, 045h, 07bh, 042h, 07bh, 042h, 07bh, 042h, 07bh, 042h, 07bh, 042h, 03fh, 045h, 07bh
     5694    db  042h, 048h, 045h, 048h, 045h, 048h, 045h, 048h, 045h, 048h, 045h, 048h, 045h, 048h, 045h, 048h
     5695    db  045h, 048h, 045h, 048h, 045h, 048h, 045h, 048h, 045h
     5696_int13_cdemu:                                ; 0xf41b0 LB 0x434
    55485697    push bp                                   ; 55
    55495698    mov bp, sp                                ; 89 e5
     
    55535702    mov dx, strict word 0000eh                ; ba 0e 00
    55545703    mov ax, strict word 00040h                ; b8 40 00
    5555     call 0166ch                               ; e8 13 d5
     5704    call 016d4h                               ; e8 13 d5
    55565705    mov di, 00366h                            ; bf 66 03
    55575706    mov cx, ax                                ; 89 c1
     
    55695718    mov dx, strict word 00074h                ; ba 74 00
    55705719    mov ax, strict word 00040h                ; b8 40 00
    5571     call 0165eh                               ; e8 d6 d4
     5720    call 016c6h                               ; e8 d6 d4
    55725721    mov es, cx                                ; 8e c1
    55735722    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5574     je short 0419eh                           ; 74 0e
     5723    je short 04206h                           ; 74 0e
    55755724    movzx dx, byte [es:di+002h]               ; 26 0f b6 55 02
    55765725    mov ax, word [bp+012h]                    ; 8b 46 12
    55775726    xor ah, ah                                ; 30 e4
    55785727    cmp dx, ax                                ; 39 c2
    5579     je short 041c7h                           ; 74 29
     5728    je short 0422fh                           ; 74 29
    55805729    mov bx, 00da0h                            ; bb a0 0d
    55815730    mov cx, ds                                ; 8c d9
    55825731    mov ax, strict word 00004h                ; b8 04 00
    5583     call 01931h                               ; e8 88 d7
     5732    call 01999h                               ; e8 88 d7
    55845733    mov ax, word [bp+012h]                    ; 8b 46 12
    55855734    xor ah, ah                                ; 30 e4
     
    55915740    push 00358h                               ; 68 58 03
    55925741    push strict byte 00004h                   ; 6a 04
    5593     call 01972h                               ; e8 b1 d7
     5742    call 019dah                               ; e8 b1 d7
    55945743    add sp, strict byte 0000ah                ; 83 c4 0a
    5595     jmp near 04500h                           ; e9 39 03
     5744    jmp near 04568h                           ; e9 39 03
    55965745    mov ax, word [bp+016h]                    ; 8b 46 16
    55975746    shr ax, 008h                              ; c1 e8 08
    55985747    cmp ax, strict word 00050h                ; 3d 50 00
    5599     jnbe near 044e0h                          ; 0f 87 0c 03
     5748    jnbe near 04548h                          ; 0f 87 0c 03
    56005749    push CS                                   ; 0e
    56015750    pop ES                                    ; 07
    56025751    mov cx, strict word 0001eh                ; b9 1e 00
    5603     mov di, 040efh                            ; bf ef 40
     5752    mov di, 04157h                            ; bf 57 41
    56045753    repne scasb                               ; f2 ae
    56055754    sal cx, 1                                 ; d1 e1
    56065755    mov di, cx                                ; 89 cf
    5607     mov ax, word [cs:di+0410ch]               ; 2e 8b 85 0c 41
     5756    mov ax, word [cs:di+04174h]               ; 2e 8b 85 74 41
    56085757    mov bx, word [bp+016h]                    ; 8b 5e 16
    56095758    xor bh, bh                                ; 30 ff
     
    56165765    add bx, bx                                ; 01 db
    56175766    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
    5618     je near 04213h                            ; 0f 84 08 00
     5767    je near 0427bh                            ; 0f 84 08 00
    56195768    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    56205769    call word [word bx+00076h]                ; ff 97 76 00
     
    56235772    mov dx, strict word 00074h                ; ba 74 00
    56245773    mov ax, strict word 00040h                ; b8 40 00
    5625     call 0165eh                               ; e8 3c d4
     5774    call 016c6h                               ; e8 3c d4
    56265775    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    56275776    lea sp, [bp-004h]                         ; 8d 66 fc
     
    56335782    xor ah, ah                                ; 30 e4
    56345783    or ah, 003h                               ; 80 cc 03
    5635     jmp near 04508h                           ; e9 d0 02
     5784    jmp near 04570h                           ; e9 d0 02
    56365785    mov dx, strict word 00074h                ; ba 74 00
    56375786    mov ax, strict word 00040h                ; b8 40 00
    5638     call 01650h                               ; e8 0f d4
     5787    call 016b8h                               ; e8 0f d4
    56395788    mov cl, al                                ; 88 c1
    56405789    movzx ax, cl                              ; 0f b6 c1
     
    56455794    mov dx, strict word 00074h                ; ba 74 00
    56465795    mov ax, strict word 00040h                ; b8 40 00
    5647     call 0165eh                               ; e8 05 d4
     5796    call 016c6h                               ; e8 05 d4
    56485797    test cl, cl                               ; 84 c9
    5649     je short 04217h                           ; 74 ba
    5650     jmp near 0451ch                           ; e9 bc 02
     5798    je short 0427fh                           ; 74 ba
     5799    jmp near 04584h                           ; e9 bc 02
    56515800    mov es, [bp-008h]                         ; 8e 46 f8
    56525801    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    56725821    mov word [bp-00ah], cx                    ; 89 4e f6
    56735822    test cx, cx                               ; 85 c9
    5674     jne short 042adh                          ; 75 03
    5675     jmp near 04213h                           ; e9 66 ff
     5823    jne short 04315h                          ; 75 03
     5824    jmp near 0427bh                           ; e9 66 ff
    56765825    cmp di, word [bp-010h]                    ; 3b 7e f0
    5677     jc near 04500h                            ; 0f 82 4c 02
     5826    jc near 04568h                            ; 0f 82 4c 02
    56785827    cmp ax, dx                                ; 39 d0
    5679     jnc near 04500h                           ; 0f 83 46 02
     5828    jnc near 04568h                           ; 0f 83 46 02
    56805829    cmp si, bx                                ; 39 de
    5681     jnc near 04500h                           ; 0f 83 40 02
     5830    jnc near 04568h                           ; 0f 83 40 02
    56825831    mov dx, word [bp+016h]                    ; 8b 56 16
    56835832    shr dx, 008h                              ; c1 ea 08
    56845833    cmp dx, strict byte 00004h                ; 83 fa 04
    5685     jne short 042ceh                          ; 75 03
    5686     jmp near 04213h                           ; e9 45 ff
     5834    jne short 04336h                          ; 75 03
     5835    jmp near 0427bh                           ; e9 45 ff
    56875836    mov dx, word [bp+010h]                    ; 8b 56 10
    56885837    shr dx, 004h                              ; c1 ea 04
     
    56955844    xor dl, dl                                ; 30 d2
    56965845    xor cx, cx                                ; 31 c9
    5697     call 09e29h                               ; e8 3d 5b
     5846    call 09e80h                               ; e8 2c 5b
    56985847    xor bx, bx                                ; 31 db
    56995848    add ax, si                                ; 01 f0
     
    57015850    mov bx, di                                ; 89 fb
    57025851    xor cx, cx                                ; 31 c9
    5703     call 09e29h                               ; e8 30 5b
     5852    call 09e80h                               ; e8 1f 5b
    57045853    mov bx, ax                                ; 89 c3
    57055854    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    57365885    mov dx, ss                                ; 8c d2
    57375886    lea ax, [bp-02eh]                         ; 8d 46 d2
    5738     call 09e7ah                               ; e8 2a 5b
     5887    call 09f20h                               ; e8 68 5b
    57395888    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    57405889    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    57845933    sal si, 1                                 ; d1 e6
    57855934    rcl di, 1                                 ; d1 d7
    5786     loop 043d0h                               ; e2 fa
     5935    loop 04438h                               ; e2 fa
    57875936    push di                                   ; 57
    57885937    push si                                   ; 56
     
    57995948    ; mov dword [es:bx+01eh], strict dword 000000000h ; 66 26 c7 47 1e 00 00 00 00
    58005949    test al, al                               ; 84 c0
    5801     je near 04213h                            ; 0f 84 13 fe
     5950    je near 0427bh                            ; 0f 84 13 fe
    58025951    mov bx, 00da0h                            ; bb a0 0d
    58035952    mov cx, ds                                ; 8c d9
    58045953    mov ax, strict word 00004h                ; b8 04 00
    5805     call 01931h                               ; e8 26 d5
     5954    call 01999h                               ; e8 26 d5
    58065955    movzx ax, dl                              ; 0f b6 c2
    58075956    push ax                                   ; 50
     
    58125961    push 0038eh                               ; 68 8e 03
    58135962    push strict byte 00004h                   ; 6a 04
    5814     call 01972h                               ; e8 51 d5
     5963    call 019dah                               ; e8 51 d5
    58155964    add sp, strict byte 0000ah                ; 83 c4 0a
    58165965    mov ax, word [bp+016h]                    ; 8b 46 16
     
    58195968    mov word [bp+016h], ax                    ; 89 46 16
    58205969    mov byte [bp+016h], 000h                  ; c6 46 16 00
    5821     jmp near 0450bh                           ; e9 d5 00
     5970    jmp near 04573h                           ; e9 d5 00
    58225971    mov es, [bp-008h]                         ; 8e 46 f8
    58235972    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    58586007    mov word [bp+010h], ax                    ; 89 46 10
    58596008    cmp dl, 003h                              ; 80 fa 03
    5860     je short 044bah                           ; 74 1a
     6009    je short 04522h                           ; 74 1a
    58616010    cmp dl, 002h                              ; 80 fa 02
    5862     je short 044b6h                           ; 74 11
     6011    je short 0451eh                           ; 74 11
    58636012    cmp dl, 001h                              ; 80 fa 01
    5864     jne short 044beh                          ; 75 14
     6013    jne short 04526h                          ; 75 14
    58656014    mov ax, word [bp+010h]                    ; 8b 46 10
    58666015    xor al, al                                ; 30 c0
    58676016    or AL, strict byte 002h                   ; 0c 02
    58686017    mov word [bp+010h], ax                    ; 89 46 10
    5869     jmp short 044beh                          ; eb 08
     6018    jmp short 04526h                          ; eb 08
    58706019    or AL, strict byte 004h                   ; 0c 04
    5871     jmp short 044b1h                          ; eb f7
     6020    jmp short 04519h                          ; eb f7
    58726021    or AL, strict byte 005h                   ; 0c 05
    5873     jmp short 044b1h                          ; eb f3
     6022    jmp short 04519h                          ; eb f3
    58746023    mov es, [bp-008h]                         ; 8e 46 f8
    58756024    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    5876     jnc near 04213h                           ; 0f 83 49 fd
     6025    jnc near 0427bh                           ; 0f 83 49 fd
    58776026    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    58786027    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    5879     jmp near 04213h                           ; e9 3c fd
     6028    jmp near 0427bh                           ; e9 3c fd
    58806029    or bh, 003h                               ; 80 cf 03
    58816030    mov word [bp+016h], bx                    ; 89 5e 16
    5882     jmp near 04217h                           ; e9 37 fd
     6031    jmp near 0427fh                           ; e9 37 fd
    58836032    mov bx, 00da0h                            ; bb a0 0d
    58846033    mov cx, ds                                ; 8c d9
    58856034    mov ax, strict word 00004h                ; b8 04 00
    5886     call 01931h                               ; e8 46 d4
     6035    call 01999h                               ; e8 46 d4
    58876036    mov ax, word [bp+016h]                    ; 8b 46 16
    58886037    shr ax, 008h                              ; c1 e8 08
     
    58916040    push 003afh                               ; 68 af 03
    58926041    push strict byte 00004h                   ; 6a 04
    5893     call 01972h                               ; e8 75 d4
     6042    call 019dah                               ; e8 75 d4
    58946043    add sp, strict byte 00008h                ; 83 c4 08
    58956044    mov ax, word [bp+016h]                    ; 8b 46 16
     
    59026051    mov dx, strict word 00074h                ; ba 74 00
    59036052    mov ax, strict word 00040h                ; b8 40 00
    5904     call 0165eh                               ; e8 42 d1
     6053    call 016c6h                               ; e8 42 d1
    59056054    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5906     jmp near 04226h                           ; e9 03 fd
     6055    jmp near 0428eh                           ; e9 03 fd
    59076056    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5908     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0c1h, 04ah, 03dh
    5909     db  048h, 029h, 046h, 0c1h, 04ah, 01eh, 046h, 0c1h, 04ah, 01eh, 046h, 0c1h, 04ah, 03dh, 048h, 0c1h
    5910     db  04ah, 0c1h, 04ah, 03dh, 048h, 03dh, 048h, 03dh, 048h, 03dh, 048h, 03dh, 048h, 053h, 046h, 03dh
    5911     db  048h, 0c1h, 04ah, 05ch, 046h, 06fh, 046h, 01eh, 046h, 06fh, 046h, 09dh, 047h, 057h, 048h, 06fh
    5912     db  046h, 07eh, 048h, 07ah, 04ah, 082h, 04ah, 0c1h, 04ah
    5913 _int13_cdrom:                                ; 0xf457c LB 0x562
     6057    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 029h, 04bh, 0a5h
     6058    db  048h, 091h, 046h, 029h, 04bh, 086h, 046h, 029h, 04bh, 086h, 046h, 029h, 04bh, 0a5h, 048h, 029h
     6059    db  04bh, 029h, 04bh, 0a5h, 048h, 0a5h, 048h, 0a5h, 048h, 0a5h, 048h, 0a5h, 048h, 0bbh, 046h, 0a5h
     6060    db  048h, 029h, 04bh, 0c4h, 046h, 0d7h, 046h, 086h, 046h, 0d7h, 046h, 005h, 048h, 0bfh, 048h, 0d7h
     6061    db  046h, 0e6h, 048h, 0e2h, 04ah, 0eah, 04ah, 029h, 04bh
     6062_int13_cdrom:                                ; 0xf45e4 LB 0x562
    59146063    push bp                                   ; 55
    59156064    mov bp, sp                                ; 89 e5
     
    59196068    mov dx, strict word 0000eh                ; ba 0e 00
    59206069    mov ax, strict word 00040h                ; b8 40 00
    5921     call 0166ch                               ; e8 df d0
     6070    call 016d4h                               ; e8 df d0
    59226071    mov word [bp-01ah], ax                    ; 89 46 e6
    59236072    mov si, 00122h                            ; be 22 01
     
    59266075    mov dx, strict word 00074h                ; ba 74 00
    59276076    mov ax, strict word 00040h                ; b8 40 00
    5928     call 0165eh                               ; e8 bd d0
     6077    call 016c6h                               ; e8 bd d0
    59296078    mov ax, word [bp+010h]                    ; 8b 46 10
    59306079    xor ah, ah                                ; 30 e4
    59316080    cmp ax, 000e0h                            ; 3d e0 00
    5932     jc short 045b0h                           ; 72 05
     6081    jc short 04618h                           ; 72 05
    59336082    cmp ax, 000f0h                            ; 3d f0 00
    5934     jc short 045ceh                           ; 72 1e
     6083    jc short 04636h                           ; 72 1e
    59356084    mov ax, word [bp+010h]                    ; 8b 46 10
    59366085    xor ah, ah                                ; 30 e4
     
    59426091    push 003ebh                               ; 68 eb 03
    59436092    push strict byte 00004h                   ; 6a 04
    5944     call 01972h                               ; e8 aa d3
     6093    call 019dah                               ; e8 aa d3
    59456094    add sp, strict byte 0000ah                ; 83 c4 0a
    5946     jmp near 04a9eh                           ; e9 d0 04
     6095    jmp near 04b06h                           ; e9 d0 04
    59476096    mov ax, word [bp+010h]                    ; 8b 46 10
    59486097    xor ah, ah                                ; 30 e4
     
    59536102    mov byte [bp-008h], dl                    ; 88 56 f8
    59546103    cmp dl, 010h                              ; 80 fa 10
    5955     jc short 045f7h                           ; 72 10
     6104    jc short 0465fh                           ; 72 10
    59566105    push ax                                   ; 50
    59576106    mov ax, word [bp+018h]                    ; 8b 46 18
     
    59606109    push 003dfh                               ; 68 df 03
    59616110    push 00416h                               ; 68 16 04
    5962     jmp short 045c3h                          ; eb cc
     6111    jmp short 0462bh                          ; eb cc
    59636112    mov ax, word [bp+018h]                    ; 8b 46 18
    59646113    shr ax, 008h                              ; c1 e8 08
    59656114    cmp ax, strict word 00050h                ; 3d 50 00
    5966     jnbe near 04ac1h                          ; 0f 87 bd 04
     6115    jnbe near 04b29h                          ; 0f 87 bd 04
    59676116    push CS                                   ; 0e
    59686117    pop ES                                    ; 07
    59696118    mov cx, strict word 0001eh                ; b9 1e 00
    5970     mov di, 04523h                            ; bf 23 45
     6119    mov di, 0458bh                            ; bf 8b 45
    59716120    repne scasb                               ; f2 ae
    59726121    sal cx, 1                                 ; d1 e1
    59736122    mov di, cx                                ; 89 cf
    5974     mov ax, word [cs:di+04540h]               ; 2e 8b 85 40 45
     6123    mov ax, word [cs:di+045a8h]               ; 2e 8b 85 a8 45
    59756124    mov bx, word [bp+018h]                    ; 8b 5e 18
    59766125    xor bh, bh                                ; 30 ff
     
    59796128    xor ah, ah                                ; 30 e4
    59806129    or ah, 003h                               ; 80 cc 03
    5981     jmp near 04aa6h                           ; e9 7d 04
     6130    jmp near 04b0eh                           ; e9 7d 04
    59826131    mov dx, strict word 00074h                ; ba 74 00
    59836132    mov ax, strict word 00040h                ; b8 40 00
    5984     call 01650h                               ; e8 1e d0
     6133    call 016b8h                               ; e8 1e d0
    59856134    mov cl, al                                ; 88 c1
    59866135    movzx ax, cl                              ; 0f b6 c1
     
    59916140    mov dx, strict word 00074h                ; ba 74 00
    59926141    mov ax, strict word 00040h                ; b8 40 00
    5993     call 0165eh                               ; e8 14 d0
     6142    call 016c6h                               ; e8 14 d0
    59946143    test cl, cl                               ; 84 c9
    5995     je near 04841h                            ; 0f 84 f1 01
    5996     jmp near 04abah                           ; e9 67 04
     6144    je near 048a9h                            ; 0f 84 f1 01
     6145    jmp near 04b22h                           ; e9 67 04
    59976146    or bh, 002h                               ; 80 cf 02
    59986147    mov word [bp+018h], bx                    ; 89 5e 18
    5999     jmp near 04aa9h                           ; e9 4d 04
     6148    jmp near 04b11h                           ; e9 4d 04
    60006149    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    60016150    or bh, 030h                               ; 80 cf 30
    60026151    mov word [bp+018h], bx                    ; 89 5e 18
    60036152    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    6004     jmp near 04841h                           ; e9 d2 01
     6153    jmp near 048a9h                           ; e9 d2 01
    60056154    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    60066155    mov es, [bp+006h]                         ; 8e 46 06
     
    60176166    mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
    60186167    or di, ax                                 ; 09 c7
    6019     je short 046b7h                           ; 74 18
     6168    je short 0471fh                           ; 74 18
    60206169    mov ax, word [bp+018h]                    ; 8b 46 18
    60216170    shr ax, 008h                              ; c1 e8 08
     
    60246173    push 00448h                               ; 68 48 04
    60256174    push strict byte 00007h                   ; 6a 07
    6026     call 01972h                               ; e8 c1 d2
     6175    call 019dah                               ; e8 c1 d2
    60276176    add sp, strict byte 00008h                ; 83 c4 08
    6028     jmp near 04a9eh                           ; e9 e7 03
     6177    jmp near 04b06h                           ; e9 e7 03
    60296178    les bx, [bp-014h]                         ; c4 5e ec
    60306179    mov ax, word [es:bx+008h]                 ; 26 8b 47 08
     
    60366185    mov word [bp-016h], ax                    ; 89 46 ea
    60376186    cmp ax, strict word 00044h                ; 3d 44 00
    6038     je near 0483dh                            ; 0f 84 66 01
     6187    je near 048a5h                            ; 0f 84 66 01
    60396188    cmp ax, strict word 00047h                ; 3d 47 00
    6040     je near 0483dh                            ; 0f 84 5f 01
     6189    je near 048a5h                            ; 0f 84 5f 01
    60416190    mov cx, strict word 0000ch                ; b9 0c 00
    60426191    xor bx, bx                                ; 31 db
    60436192    mov dx, ss                                ; 8c d2
    60446193    lea ax, [bp-02ch]                         ; 8d 46 d4
    6045     call 09e7ah                               ; e8 8f 57
     6194    call 09f20h                               ; e8 cd 57
    60466195    mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
    60476196    mov ax, word [bp-018h]                    ; 8b 46 e8
     
    60716220    sal ax, 1                                 ; d1 e0
    60726221    rcl bx, 1                                 ; d1 d3
    6073     loop 04735h                               ; e2 fa
     6222    loop 0479dh                               ; e2 fa
    60746223    push bx                                   ; 53
    60756224    push ax                                   ; 50
     
    60876236    shr di, 1                                 ; d1 ef
    60886237    rcr ax, 1                                 ; d1 d8
    6089     loop 0475fh                               ; e2 fa
     6238    loop 047c7h                               ; e2 fa
    60906239    les bx, [bp-014h]                         ; c4 5e ec
    60916240    mov word [es:bx+002h], ax                 ; 26 89 47 02
    60926241    test dl, dl                               ; 84 d2
    6093     je near 0483dh                            ; 0f 84 cb 00
     6242    je near 048a5h                            ; 0f 84 cb 00
    60946243    mov bx, 00da0h                            ; bb a0 0d
    60956244    mov cx, ds                                ; 8c d9
    60966245    mov ax, strict word 00004h                ; b8 04 00
    6097     call 01931h                               ; e8 b4 d1
     6246    call 01999h                               ; e8 b4 d1
    60986247    movzx ax, dl                              ; 0f b6 c2
    60996248    push ax                                   ; 50
     
    61026251    push 00471h                               ; 68 71 04
    61036252    push strict byte 00004h                   ; 6a 04
    6104     call 01972h                               ; e8 e3 d1
     6253    call 019dah                               ; e8 e3 d1
    61056254    add sp, strict byte 0000ah                ; 83 c4 0a
    61066255    mov ax, word [bp+018h]                    ; 8b 46 18
    61076256    xor ah, ah                                ; 30 e4
    61086257    or ah, 00ch                               ; 80 cc 0c
    6109     jmp near 04aa6h                           ; e9 09 03
     6258    jmp near 04b0eh                           ; e9 09 03
    61106259    cmp bx, strict byte 00002h                ; 83 fb 02
    6111     jnbe near 04a9eh                          ; 0f 87 fa 02
     6260    jnbe near 04b06h                          ; 0f 87 fa 02
    61126261    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    61136262    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    61176266    mov al, byte [es:di+025h]                 ; 26 8a 45 25
    61186267    cmp bx, strict byte 00002h                ; 83 fb 02
    6119     je short 0482eh                           ; 74 73
     6268    je short 04896h                           ; 74 73
    61206269    cmp bx, strict byte 00001h                ; 83 fb 01
    6121     je short 047fbh                           ; 74 3b
     6270    je short 04863h                           ; 74 3b
    61226271    test bx, bx                               ; 85 db
    6123     jne near 0483dh                           ; 0f 85 77 00
     6272    jne near 048a5h                           ; 0f 85 77 00
    61246273    cmp AL, strict byte 0ffh                  ; 3c ff
    6125     jne short 047dch                          ; 75 12
     6274    jne short 04844h                          ; 75 12
    61266275    mov ax, word [bp+018h]                    ; 8b 46 18
    61276276    xor ah, ah                                ; 30 e4
     
    61306279    xor al, al                                ; 30 c0
    61316280    or AL, strict byte 001h                   ; 0c 01
    6132     jmp near 04aa6h                           ; e9 ca 02
     6281    jmp near 04b0eh                           ; e9 ca 02
    61336282    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    61346283    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
     
    61426291    or AL, strict byte 001h                   ; 0c 01
    61436292    mov word [bp+018h], ax                    ; 89 46 18
    6144     jmp near 0483dh                           ; e9 42 00
     6293    jmp near 048a5h                           ; e9 42 00
    61456294    test al, al                               ; 84 c0
    6146     jne short 0480bh                          ; 75 0c
     6295    jne short 04873h                          ; 75 0c
    61476296    or bh, 0b0h                               ; 80 cf b0
    61486297    mov word [bp+018h], bx                    ; 89 5e 18
    61496298    mov byte [bp+018h], al                    ; 88 46 18
    6150     jmp near 04aa9h                           ; e9 9e 02
     6299    jmp near 04b11h                           ; e9 9e 02
    61516300    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    61526301    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
     
    61636312    xor al, al                                ; 30 c0
    61646313    or ax, dx                                 ; 09 d0
    6165     jmp short 047f5h                          ; eb c7
     6314    jmp short 0485dh                          ; eb c7
    61666315    test al, al                               ; 84 c0
    61676316    db  00fh, 095h, 0c0h
     
    61756324    mov dx, strict word 00074h                ; ba 74 00
    61766325    mov ax, strict word 00040h                ; b8 40 00
    6177     call 0165eh                               ; e8 12 ce
     6326    call 016c6h                               ; e8 12 ce
    61786327    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    61796328    lea sp, [bp-004h]                         ; 8d 66 fc
     
    61886337    mov al, byte [es:si+025h]                 ; 26 8a 44 25
    61896338    test al, al                               ; 84 c0
    6190     je short 04871h                           ; 74 06
     6339    je short 048d9h                           ; 74 06
    61916340    or bh, 0b1h                               ; 80 cf b1
    6192     jmp near 04656h                           ; e9 e5 fd
    6193     je short 0483dh                           ; 74 ca
     6341    jmp near 046beh                           ; e9 e5 fd
     6342    je short 048a5h                           ; 74 ca
    61946343    mov ax, word [bp+018h]                    ; 8b 46 18
    61956344    xor ah, ah                                ; 30 e4
    61966345    or ah, 0b1h                               ; 80 cc b1
    6197     jmp near 04aa6h                           ; e9 28 02
     6346    jmp near 04b0eh                           ; e9 28 02
    61986347    mov dx, word [bp+00ch]                    ; 8b 56 0c
    61996348    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    62056354    mov word [bp-00eh], ax                    ; 89 46 f2
    62066355    cmp ax, strict word 0001ah                ; 3d 1a 00
    6207     jc near 04a9eh                            ; 0f 82 04 02
    6208     jc short 048ebh                           ; 72 4f
     6356    jc near 04b06h                            ; 0f 82 04 02
     6357    jc short 04953h                           ; 72 4f
    62096358    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    62106359    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    62296378    ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff
    62306379    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    6231     jc near 049c2h                            ; 0f 82 cf 00
     6380    jc near 04a2ah                            ; 0f 82 cf 00
    62326381    mov es, [bp-00ah]                         ; 8e 46 f6
    62336382    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    62816430    xor cl, cl                                ; 30 c9
    62826431    xor ch, ch                                ; 30 ed
    6283     jmp short 049a5h                          ; eb 05
     6432    jmp short 04a0dh                          ; eb 05
    62846433    cmp ch, 00fh                              ; 80 fd 0f
    6285     jnc short 049b8h                          ; 73 13
     6434    jnc short 04a20h                          ; 73 13
    62866435    movzx dx, ch                              ; 0f b6 d5
    62876436    add dx, 00356h                            ; 81 c2 56 03
    62886437    mov ax, word [bp-01ah]                    ; 8b 46 e6
    6289     call 01650h                               ; e8 9e cc
     6438    call 016b8h                               ; e8 9e cc
    62906439    add cl, al                                ; 00 c1
    62916440    db  0feh, 0c5h
    62926441    ; inc ch                                    ; fe c5
    6293     jmp short 049a0h                          ; eb e8
     6442    jmp short 04a08h                          ; eb e8
    62946443    neg cl                                    ; f6 d9
    62956444    mov es, [bp-00ch]                         ; 8e 46 f4
    62966445    mov byte [es:si+00243h], cl               ; 26 88 8c 43 02
    62976446    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    6298     jc near 0483dh                            ; 0f 82 73 fe
     6447    jc near 048a5h                            ; 0f 82 73 fe
    62996448    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    63006449    cwd                                       ; 99
     
    63146463    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    63156464    test al, al                               ; 84 c0
    6316     jne short 04a0bh                          ; 75 09
     6465    jne short 04a73h                          ; 75 09
    63176466    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    63186467    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
     
    63236472    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    63246473    test al, al                               ; 84 c0
    6325     jne short 04a37h                          ; 75 13
     6474    jne short 04a9fh                          ; 75 13
    63266475    mov word [es:bx+030h], dx                 ; 26 89 57 30
    63276476    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     
    63386487    xor al, al                                ; 30 c0
    63396488    mov AH, strict byte 01eh                  ; b4 1e
    6340     jmp short 04a5fh                          ; eb 05
     6489    jmp short 04ac7h                          ; eb 05
    63416490    cmp ah, 040h                              ; 80 fc 40
    6342     jnc short 04a6eh                          ; 73 0f
     6491    jnc short 04ad6h                          ; 73 0f
    63436492    movzx si, ah                              ; 0f b6 f4
    63446493    mov es, [bp-00ah]                         ; 8e 46 f6
     
    63476496    db  0feh, 0c4h
    63486497    ; inc ah                                    ; fe c4
    6349     jmp short 04a5ah                          ; eb ec
     6498    jmp short 04ac2h                          ; eb ec
    63506499    neg al                                    ; f6 d8
    63516500    mov es, [bp-00ah]                         ; 8e 46 f6
    63526501    mov byte [es:bx+041h], al                 ; 26 88 47 41
    6353     jmp near 0483dh                           ; e9 c3 fd
     6502    jmp near 048a5h                           ; e9 c3 fd
    63546503    or bh, 006h                               ; 80 cf 06
    63556504    mov word [bp+018h], bx                    ; 89 5e 18
    6356     jmp short 04abah                          ; eb 38
     6505    jmp short 04b22h                          ; eb 38
    63576506    cmp bx, strict byte 00006h                ; 83 fb 06
    6358     je near 0483dh                            ; 0f 84 b4 fd
     6507    je near 048a5h                            ; 0f 84 b4 fd
    63596508    cmp bx, strict byte 00001h                ; 83 fb 01
    6360     jc short 04a9eh                           ; 72 10
    6361     jbe near 0483dh                           ; 0f 86 ab fd
     6509    jc short 04b06h                           ; 72 10
     6510    jbe near 048a5h                           ; 0f 86 ab fd
    63626511    cmp bx, strict byte 00003h                ; 83 fb 03
    6363     jc short 04a9eh                           ; 72 07
     6512    jc short 04b06h                           ; 72 07
    63646513    cmp bx, strict byte 00004h                ; 83 fb 04
    6365     jbe near 0483dh                           ; 0f 86 9f fd
     6514    jbe near 048a5h                           ; 0f 86 9f fd
    63666515    mov ax, word [bp+018h]                    ; 8b 46 18
    63676516    xor ah, ah                                ; 30 e4
     
    63736522    mov dx, strict word 00074h                ; ba 74 00
    63746523    mov ax, strict word 00040h                ; b8 40 00
    6375     call 0165eh                               ; e8 a4 cb
     6524    call 016c6h                               ; e8 a4 cb
    63766525    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    6377     jmp near 04850h                           ; e9 8f fd
     6526    jmp near 048b8h                           ; e9 8f fd
    63786527    mov bx, 00da0h                            ; bb a0 0d
    63796528    mov cx, ds                                ; 8c d9
    63806529    mov ax, strict word 00004h                ; b8 04 00
    6381     call 01931h                               ; e8 65 ce
     6530    call 01999h                               ; e8 65 ce
    63826531    mov ax, word [bp+018h]                    ; 8b 46 18
    63836532    shr ax, 008h                              ; c1 e8 08
     
    63866535    push 00333h                               ; 68 33 03
    63876536    push strict byte 00004h                   ; 6a 04
    6388     jmp near 046aeh                           ; e9 d0 fb
    6389 print_boot_device_:                          ; 0xf4ade LB 0x4b
     6537    jmp near 04716h                           ; e9 d0 fb
     6538print_boot_device_:                          ; 0xf4b46 LB 0x4b
    63906539    push bp                                   ; 55
    63916540    mov bp, sp                                ; 89 e5
    63926541    push cx                                   ; 51
    63936542    test al, al                               ; 84 c0
    6394     je short 04aebh                           ; 74 05
     6543    je short 04b53h                           ; 74 05
    63956544    mov dx, strict word 00002h                ; ba 02 00
    6396     jmp short 04b05h                          ; eb 1a
     6545    jmp short 04b6dh                          ; eb 1a
    63976546    test dl, dl                               ; 84 d2
    6398     je short 04af4h                           ; 74 05
     6547    je short 04b5ch                           ; 74 05
    63996548    mov dx, strict word 00003h                ; ba 03 00
    6400     jmp short 04b05h                          ; eb 11
     6549    jmp short 04b6dh                          ; eb 11
    64016550    test bl, 080h                             ; f6 c3 80
    6402     jne short 04afdh                          ; 75 04
     6551    jne short 04b65h                          ; 75 04
    64036552    xor dh, dh                                ; 30 f6
    6404     jmp short 04b05h                          ; eb 08
     6553    jmp short 04b6dh                          ; eb 08
    64056554    test bl, 080h                             ; f6 c3 80
    6406     je short 04b23h                           ; 74 21
     6555    je short 04b8bh                           ; 74 21
    64076556    mov dx, strict word 00001h                ; ba 01 00
    64086557    mov bx, 00da0h                            ; bb a0 0d
    64096558    mov cx, ds                                ; 8c d9
    64106559    mov ax, strict word 00004h                ; b8 04 00
    6411     call 01931h                               ; e8 21 ce
     6560    call 01999h                               ; e8 21 ce
    64126561    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    64136562    add dx, 00dc6h                            ; 81 c2 c6 0d
     
    64156564    push 00494h                               ; 68 94 04
    64166565    push strict byte 00004h                   ; 6a 04
    6417     call 01972h                               ; e8 52 ce
     6566    call 019dah                               ; e8 52 ce
    64186567    add sp, strict byte 00006h                ; 83 c4 06
    64196568    lea sp, [bp-002h]                         ; 8d 66 fe
     
    64216570    pop bp                                    ; 5d
    64226571    retn                                      ; c3
    6423 print_boot_failure_:                         ; 0xf4b29 LB 0x93
     6572print_boot_failure_:                         ; 0xf4b91 LB 0x93
    64246573    push bp                                   ; 55
    64256574    mov bp, sp                                ; 89 e5
     
    64306579    movzx si, ah                              ; 0f b6 f4
    64316580    test al, al                               ; 84 c0
    6432     je short 04b56h                           ; 74 1b
     6581    je short 04bbeh                           ; 74 1b
    64336582    mov bx, 00da0h                            ; bb a0 0d
    64346583    mov cx, ds                                ; 8c d9
    64356584    mov ax, strict word 00004h                ; b8 04 00
    6436     call 01931h                               ; e8 eb cd
     6585    call 01999h                               ; e8 eb cd
    64376586    push 00ddah                               ; 68 da 0d
    64386587    push 004a8h                               ; 68 a8 04
    64396588    push strict byte 00004h                   ; 6a 04
    6440     call 01972h                               ; e8 21 ce
     6589    call 019dah                               ; e8 21 ce
    64416590    add sp, strict byte 00006h                ; 83 c4 06
    6442     jmp short 04b9ah                          ; eb 44
     6591    jmp short 04c02h                          ; eb 44
    64436592    test dl, dl                               ; 84 d2
    6444     je short 04b6ah                           ; 74 10
     6593    je short 04bd2h                           ; 74 10
    64456594    mov bx, 00da0h                            ; bb a0 0d
    64466595    mov cx, ds                                ; 8c d9
    64476596    mov ax, strict word 00004h                ; b8 04 00
    6448     call 01931h                               ; e8 cc cd
     6597    call 01999h                               ; e8 cc cd
    64496598    push 00de4h                               ; 68 e4 0d
    6450     jmp short 04b49h                          ; eb df
     6599    jmp short 04bb1h                          ; eb df
    64516600    test bl, 080h                             ; f6 c3 80
    6452     je short 04b80h                           ; 74 11
     6601    je short 04be8h                           ; 74 11
    64536602    mov bx, 00da0h                            ; bb a0 0d
    64546603    mov cx, ds                                ; 8c d9
    64556604    mov ax, strict word 00004h                ; b8 04 00
    6456     call 01931h                               ; e8 b7 cd
     6605    call 01999h                               ; e8 b7 cd
    64576606    push si                                   ; 56
    64586607    push 00dd0h                               ; 68 d0 0d
    6459     jmp short 04b8fh                          ; eb 0f
     6608    jmp short 04bf7h                          ; eb 0f
    64606609    mov bx, 00da0h                            ; bb a0 0d
    64616610    mov cx, ds                                ; 8c d9
    64626611    mov ax, strict word 00004h                ; b8 04 00
    6463     call 01931h                               ; e8 a6 cd
     6612    call 01999h                               ; e8 a6 cd
    64646613    push si                                   ; 56
    64656614    push 00dc6h                               ; 68 c6 0d
    64666615    push 004bdh                               ; 68 bd 04
    64676616    push strict byte 00004h                   ; 6a 04
    6468     call 01972h                               ; e8 db cd
     6617    call 019dah                               ; e8 db cd
    64696618    add sp, strict byte 00008h                ; 83 c4 08
    64706619    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6471     jne short 04bb4h                          ; 75 14
     6620    jne short 04c1ch                          ; 75 14
    64726621    test dh, dh                               ; 84 f6
    6473     jne short 04ba9h                          ; 75 05
     6622    jne short 04c11h                          ; 75 05
    64746623    push 004d5h                               ; 68 d5 04
    6475     jmp short 04bach                          ; eb 03
     6624    jmp short 04c14h                          ; eb 03
    64766625    push 004ffh                               ; 68 ff 04
    64776626    push strict byte 00007h                   ; 6a 07
    6478     call 01972h                               ; e8 c1 cd
     6627    call 019dah                               ; e8 c1 cd
    64796628    add sp, strict byte 00004h                ; 83 c4 04
    64806629    lea sp, [bp-002h]                         ; 8d 66 fe
     
    64826631    pop bp                                    ; 5d
    64836632    retn 00002h                               ; c2 02 00
    6484 print_cdromboot_failure_:                    ; 0xf4bbc LB 0x27
     6633print_cdromboot_failure_:                    ; 0xf4c24 LB 0x27
    64856634    push bp                                   ; 55
    64866635    mov bp, sp                                ; 89 e5
     
    64926641    mov cx, ds                                ; 8c d9
    64936642    mov ax, strict word 00004h                ; b8 04 00
    6494     call 01931h                               ; e8 62 cd
     6643    call 01999h                               ; e8 62 cd
    64956644    push dx                                   ; 52
    64966645    push 00534h                               ; 68 34 05
    64976646    push strict byte 00004h                   ; 6a 04
    6498     call 01972h                               ; e8 9a cd
     6647    call 019dah                               ; e8 9a cd
    64996648    add sp, strict byte 00006h                ; 83 c4 06
    65006649    lea sp, [bp-006h]                         ; 8d 66 fa
     
    65046653    pop bp                                    ; 5d
    65056654    retn                                      ; c3
    6506 _int19_function:                             ; 0xf4be3 LB 0x256
     6655_int19_function:                             ; 0xf4c4b LB 0x256
    65076656    push bp                                   ; 55
    65086657    mov bp, sp                                ; 89 e5
     
    65126661    mov dx, strict word 0000eh                ; ba 0e 00
    65136662    mov ax, strict word 00040h                ; b8 40 00
    6514     call 0166ch                               ; e8 78 ca
     6663    call 016d4h                               ; e8 78 ca
    65156664    mov bx, ax                                ; 89 c3
    65166665    mov word [bp-00eh], ax                    ; 89 46 f2
    65176666    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    65186667    mov ax, strict word 0003dh                ; b8 3d 00
    6519     call 016ach                               ; e8 a9 ca
     6668    call 01714h                               ; e8 a9 ca
    65206669    movzx si, al                              ; 0f b6 f0
    65216670    mov ax, strict word 00038h                ; b8 38 00
    6522     call 016ach                               ; e8 a0 ca
     6671    call 01714h                               ; e8 a0 ca
    65236672    and AL, strict byte 0f0h                  ; 24 f0
    65246673    xor ah, ah                                ; 30 e4
     
    65266675    or si, ax                                 ; 09 c6
    65276676    mov ax, strict word 0003ch                ; b8 3c 00
    6528     call 016ach                               ; e8 91 ca
     6677    call 01714h                               ; e8 91 ca
    65296678    and AL, strict byte 00fh                  ; 24 0f
    65306679    xor ah, ah                                ; 30 e4
     
    65336682    mov dx, 0037dh                            ; ba 7d 03
    65346683    mov ax, bx                                ; 89 d8
    6535     call 01650h                               ; e8 24 ca
     6684    call 016b8h                               ; e8 24 ca
    65366685    test al, al                               ; 84 c0
    6537     je short 04c3bh                           ; 74 0b
     6686    je short 04ca3h                           ; 74 0b
    65386687    mov dx, 0037dh                            ; ba 7d 03
    65396688    mov ax, bx                                ; 89 d8
    6540     call 01650h                               ; e8 18 ca
     6689    call 016b8h                               ; e8 18 ca
    65416690    movzx si, al                              ; 0f b6 f0
    65426691    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6543     jne short 04c51h                          ; 75 10
     6692    jne short 04cb9h                          ; 75 10
    65446693    mov ax, strict word 0003ch                ; b8 3c 00
    6545     call 016ach                               ; e8 65 ca
     6694    call 01714h                               ; e8 65 ca
    65466695    and AL, strict byte 0f0h                  ; 24 f0
    65476696    xor ah, ah                                ; 30 e4
    65486697    sar ax, 004h                              ; c1 f8 04
    6549     call 07c87h                               ; e8 36 30
     6698    call 07d13h                               ; e8 5a 30
    65506699    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    6551     jne short 04c5ah                          ; 75 03
     6700    jne short 04cc2h                          ; 75 03
    65526701    shr si, 004h                              ; c1 ee 04
    65536702    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    6554     jne short 04c63h                          ; 75 03
     6703    jne short 04ccbh                          ; 75 03
    65556704    shr si, 008h                              ; c1 ee 08
    65566705    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    6557     jne short 04c6ch                          ; 75 03
     6706    jne short 04cd4h                          ; 75 03
    65586707    shr si, 00ch                              ; c1 ee 0c
    65596708    cmp si, strict byte 00010h                ; 83 fe 10
    6560     jnc short 04c75h                          ; 73 04
     6709    jnc short 04cddh                          ; 73 04
    65616710    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    65626711    xor al, al                                ; 30 c0
     
    65676716    mov cx, ds                                ; 8c d9
    65686717    mov ax, strict word 00004h                ; b8 04 00
    6569     call 01931h                               ; e8 a6 cc
     6718    call 01999h                               ; e8 a6 cc
    65706719    push si                                   ; 56
    65716720    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     
    65736722    push 00554h                               ; 68 54 05
    65746723    push strict byte 00004h                   ; 6a 04
    6575     call 01972h                               ; e8 d9 cc
     6724    call 019dah                               ; e8 d9 cc
    65766725    add sp, strict byte 00008h                ; 83 c4 08
    65776726    and si, strict byte 0000fh                ; 83 e6 0f
    65786727    cmp si, strict byte 00002h                ; 83 fe 02
    6579     jc short 04cb2h                           ; 72 0e
    6580     jbe short 04cc1h                          ; 76 1b
     6728    jc short 04d1ah                           ; 72 0e
     6729    jbe short 04d29h                          ; 76 1b
    65816730    cmp si, strict byte 00004h                ; 83 fe 04
    6582     je short 04cdfh                           ; 74 34
     6731    je short 04d47h                           ; 74 34
    65836732    cmp si, strict byte 00003h                ; 83 fe 03
    6584     je short 04cd5h                           ; 74 25
    6585     jmp short 04d0ch                          ; eb 5a
     6733    je short 04d3dh                           ; 74 25
     6734    jmp short 04d74h                          ; eb 5a
    65866735    cmp si, strict byte 00001h                ; 83 fe 01
    6587     jne short 04d0ch                          ; 75 55
     6736    jne short 04d74h                          ; 75 55
    65886737    xor al, al                                ; 30 c0
    65896738    mov byte [bp-006h], al                    ; 88 46 fa
    65906739    mov byte [bp-00ah], al                    ; 88 46 f6
    6591     jmp short 04d24h                          ; eb 63
     6740    jmp short 04d8ch                          ; eb 63
    65926741    mov dx, 0037ch                            ; ba 7c 03
    65936742    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6594     call 01650h                               ; e8 86 c9
     6743    call 016b8h                               ; e8 86 c9
    65956744    add AL, strict byte 080h                  ; 04 80
    65966745    mov byte [bp-006h], al                    ; 88 46 fa
    65976746    mov byte [bp-00ah], 000h                  ; c6 46 f6 00
    6598     jmp short 04d24h                          ; eb 4f
     6747    jmp short 04d8ch                          ; eb 4f
    65996748    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    66006749    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    6601     jmp short 04ce9h                          ; eb 0a
     6750    jmp short 04d51h                          ; eb 0a
    66026751    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    66036752    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6604     je short 04d24h                           ; 74 3b
    6605     call 03d32h                               ; e8 46 f0
     6753    je short 04d8ch                           ; 74 3b
     6754    call 03d9ah                               ; e8 46 f0
    66066755    mov bx, ax                                ; 89 c3
    66076756    test AL, strict byte 0ffh                 ; a8 ff
    6608     je short 04d13h                           ; 74 21
    6609     call 04bbch                               ; e8 c7 fe
     6757    je short 04d7bh                           ; 74 21
     6758    call 04c24h                               ; e8 c7 fe
    66106759    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    66116760    push ax                                   ; 50
     
    66146763    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    66156764    mov cx, strict word 00001h                ; b9 01 00
    6616     call 04b29h                               ; e8 1d fe
     6765    call 04b91h                               ; e8 1d fe
    66176766    xor ax, ax                                ; 31 c0
    66186767    xor dx, dx                                ; 31 d2
    6619     jmp near 04e32h                           ; e9 1f 01
     6768    jmp near 04e9ah                           ; e9 1f 01
    66206769    mov dx, 00372h                            ; ba 72 03
    66216770    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6622     call 0166ch                               ; e8 50 c9
     6771    call 016d4h                               ; e8 50 c9
    66236772    mov di, ax                                ; 89 c7
    66246773    shr bx, 008h                              ; c1 eb 08
    66256774    mov byte [bp-006h], bl                    ; 88 5e fa
    66266775    cmp byte [bp-00ch], 001h                  ; 80 7e f4 01
    6627     jne near 04da0h                           ; 0f 85 74 00
     6776    jne near 04e08h                           ; 0f 85 74 00
    66286777    xor si, si                                ; 31 f6
    66296778    mov ax, 0e200h                            ; b8 00 e2
    66306779    mov es, ax                                ; 8e c0
    66316780    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    6632     jne short 04cf5h                          ; 75 bb
     6781    jne short 04d5dh                          ; 75 bb
    66336782    mov cx, ax                                ; 89 c1
    66346783    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    66356784    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    6636     jne short 04cf5h                          ; 75 ad
     6785    jne short 04d5dh                          ; 75 ad
    66376786    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    6638     jne short 04cf5h                          ; 75 a6
     6787    jne short 04d5dh                          ; 75 a6
    66396788    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
    66406789    mov dx, word [es:di]                      ; 26 8b 15
    66416790    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    66426791    cmp ax, 06568h                            ; 3d 68 65
    6643     jne short 04d7eh                          ; 75 1f
     6792    jne short 04de6h                          ; 75 1f
    66446793    cmp dx, 07445h                            ; 81 fa 45 74
    6645     jne short 04d7eh                          ; 75 19
     6794    jne short 04de6h                          ; 75 19
    66466795    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    66476796    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    66486797    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6649     call 04adeh                               ; e8 6a fd
     6798    call 04b46h                               ; e8 6a fd
    66506799    mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
    66516800    mov word [bp-010h], cx                    ; 89 4e f0
    6652     jmp short 04d9ah                          ; eb 1c
     6801    jmp short 04e02h                          ; eb 1c
    66536802    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    66546803    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    66556804    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6656     call 04adeh                               ; e8 51 fd
     6805    call 04b46h                               ; e8 51 fd
    66576806    sti                                       ; fb
    66586807    mov word [bp-010h], cx                    ; 89 4e f0
     
    66616810    mov word [bp-012h], ax                    ; 89 46 ee
    66626811    call far [bp-012h]                        ; ff 5e ee
    6663     jmp near 04cf5h                           ; e9 55 ff
     6812    jmp near 04d5dh                           ; e9 55 ff
    66646813    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6665     jne short 04dcch                          ; 75 26
     6814    jne short 04e34h                          ; 75 26
    66666815    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    6667     jne short 04dcch                          ; 75 20
     6816    jne short 04e34h                          ; 75 20
    66686817    mov di, 007c0h                            ; bf c0 07
    66696818    mov es, di                                ; 8e c7
     
    66786827    sbb ax, strict byte 00000h                ; 83 d8 00
    66796828    test ax, ax                               ; 85 c0
    6680     jne near 04cf5h                           ; 0f 85 29 ff
     6829    jne near 04d5dh                           ; 0f 85 29 ff
    66816830    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    66826831    db  00fh, 094h, 0c1h
    66836832    ; sete cl                                   ; 0f 94 c1
    66846833    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6685     je short 04ddbh                           ; 74 02
     6834    je short 04e43h                           ; 74 02
    66866835    mov CL, strict byte 001h                  ; b1 01
    66876836    xor dx, dx                                ; 31 d2
    66886837    mov ax, di                                ; 89 f8
    6689     call 0166ch                               ; e8 8a c8
     6838    call 016d4h                               ; e8 8a c8
    66906839    mov bx, ax                                ; 89 c3
    66916840    mov dx, strict word 00002h                ; ba 02 00
    66926841    mov ax, di                                ; 89 f8
    6693     call 0166ch                               ; e8 80 c8
     6842    call 016d4h                               ; e8 80 c8
    66946843    cmp bx, ax                                ; 39 c3
    6695     je short 04e01h                           ; 74 11
     6844    je short 04e69h                           ; 74 11
    66966845    test cl, cl                               ; 84 c9
    6697     jne short 04e17h                          ; 75 23
     6846    jne short 04e7fh                          ; 75 23
    66986847    mov dx, 001feh                            ; ba fe 01
    66996848    mov ax, di                                ; 89 f8
    6700     call 0166ch                               ; e8 70 c8
     6849    call 016d4h                               ; e8 70 c8
    67016850    cmp ax, 0aa55h                            ; 3d 55 aa
    6702     je short 04e17h                           ; 74 16
     6851    je short 04e7fh                           ; 74 16
    67036852    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    67046853    push ax                                   ; 50
     
    67076856    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    67086857    xor cx, cx                                ; 31 c9
    6709     jmp near 04d09h                           ; e9 f2 fe
     6858    jmp near 04d71h                           ; e9 f2 fe
    67106859    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    67116860    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    67126861    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6713     call 04adeh                               ; e8 b8 fc
     6862    call 04b46h                               ; e8 b8 fc
    67146863    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    67156864    xor dx, dx                                ; 31 d2
     
    67226871    pop bp                                    ; 5d
    67236872    retn                                      ; c3
    6724 keyboard_panic_:                             ; 0xf4e39 LB 0x13
     6873keyboard_panic_:                             ; 0xf4ea1 LB 0x13
    67256874    push bp                                   ; 55
    67266875    mov bp, sp                                ; 89 e5
     
    67286877    push 00574h                               ; 68 74 05
    67296878    push strict byte 00007h                   ; 6a 07
    6730     call 01972h                               ; e8 2d cb
     6879    call 019dah                               ; e8 2d cb
    67316880    add sp, strict byte 00006h                ; 83 c4 06
    67326881    mov sp, bp                                ; 89 ec
    67336882    pop bp                                    ; 5d
    67346883    retn                                      ; c3
    6735 _keyboard_init:                              ; 0xf4e4c LB 0x26a
     6884_keyboard_init:                              ; 0xf4eb4 LB 0x26a
    67366885    push bp                                   ; 55
    67376886    mov bp, sp                                ; 89 e5
     
    67456894    ; sub ah, ah                                ; 2a e4
    67466895    test AL, strict byte 002h                 ; a8 02
    6747     je short 04e6fh                           ; 74 0d
     6896    je short 04ed7h                           ; 74 0d
    67486897    dec bx                                    ; 4b
    67496898    test bx, bx                               ; 85 db
    6750     jbe short 04e6fh                          ; 76 08
     6899    jbe short 04ed7h                          ; 76 08
    67516900    xor al, al                                ; 30 c0
    67526901    mov dx, 00080h                            ; ba 80 00
    67536902    out DX, AL                                ; ee
    6754     jmp short 04e58h                          ; eb e9
     6903    jmp short 04ec0h                          ; eb e9
    67556904    test bx, bx                               ; 85 db
    6756     jne short 04e78h                          ; 75 05
     6905    jne short 04ee0h                          ; 75 05
    67576906    xor ax, ax                                ; 31 c0
    6758     call 04e39h                               ; e8 c1 ff
     6907    call 04ea1h                               ; e8 c1 ff
    67596908    mov bx, strict word 0ffffh                ; bb ff ff
    67606909    mov dx, strict word 00064h                ; ba 64 00
     
    67636912    ; sub ah, ah                                ; 2a e4
    67646913    test AL, strict byte 001h                 ; a8 01
    6765     jne short 04e92h                          ; 75 0d
     6914    jne short 04efah                          ; 75 0d
    67666915    dec bx                                    ; 4b
    67676916    test bx, bx                               ; 85 db
    6768     jbe short 04e92h                          ; 76 08
     6917    jbe short 04efah                          ; 76 08
    67696918    mov AL, strict byte 001h                  ; b0 01
    67706919    mov dx, 00080h                            ; ba 80 00
    67716920    out DX, AL                                ; ee
    6772     jmp short 04e7bh                          ; eb e9
     6921    jmp short 04ee3h                          ; eb e9
    67736922    test bx, bx                               ; 85 db
    6774     jne short 04e9ch                          ; 75 06
     6923    jne short 04f04h                          ; 75 06
    67756924    mov ax, strict word 00001h                ; b8 01 00
    6776     call 04e39h                               ; e8 9d ff
     6925    call 04ea1h                               ; e8 9d ff
    67776926    mov dx, strict word 00060h                ; ba 60 00
    67786927    in AL, DX                                 ; ec
     
    67806929    ; sub ah, ah                                ; 2a e4
    67816930    cmp ax, strict word 00055h                ; 3d 55 00
    6782     je short 04eadh                           ; 74 06
     6931    je short 04f15h                           ; 74 06
    67836932    mov ax, 003dfh                            ; b8 df 03
    6784     call 04e39h                               ; e8 8c ff
     6933    call 04ea1h                               ; e8 8c ff
    67856934    mov AL, strict byte 0abh                  ; b0 ab
    67866935    mov dx, strict word 00064h                ; ba 64 00
     
    67926941    ; sub ah, ah                                ; 2a e4
    67936942    test AL, strict byte 002h                 ; a8 02
    6794     je short 04ecdh                           ; 74 0d
     6943    je short 04f35h                           ; 74 0d
    67956944    dec bx                                    ; 4b
    67966945    test bx, bx                               ; 85 db
    6797     jbe short 04ecdh                          ; 76 08
     6946    jbe short 04f35h                          ; 76 08
    67986947    mov AL, strict byte 010h                  ; b0 10
    67996948    mov dx, 00080h                            ; ba 80 00
    68006949    out DX, AL                                ; ee
    6801     jmp short 04eb6h                          ; eb e9
     6950    jmp short 04f1eh                          ; eb e9
    68026951    test bx, bx                               ; 85 db
    6803     jne short 04ed7h                          ; 75 06
     6952    jne short 04f3fh                          ; 75 06
    68046953    mov ax, strict word 0000ah                ; b8 0a 00
    6805     call 04e39h                               ; e8 62 ff
     6954    call 04ea1h                               ; e8 62 ff
    68066955    mov bx, strict word 0ffffh                ; bb ff ff
    68076956    mov dx, strict word 00064h                ; ba 64 00
     
    68106959    ; sub ah, ah                                ; 2a e4
    68116960    test AL, strict byte 001h                 ; a8 01
    6812     jne short 04ef1h                          ; 75 0d
     6961    jne short 04f59h                          ; 75 0d
    68136962    dec bx                                    ; 4b
    68146963    test bx, bx                               ; 85 db
    6815     jbe short 04ef1h                          ; 76 08
     6964    jbe short 04f59h                          ; 76 08
    68166965    mov AL, strict byte 011h                  ; b0 11
    68176966    mov dx, 00080h                            ; ba 80 00
    68186967    out DX, AL                                ; ee
    6819     jmp short 04edah                          ; eb e9
     6968    jmp short 04f42h                          ; eb e9
    68206969    test bx, bx                               ; 85 db
    6821     jne short 04efbh                          ; 75 06
     6970    jne short 04f63h                          ; 75 06
    68226971    mov ax, strict word 0000bh                ; b8 0b 00
    6823     call 04e39h                               ; e8 3e ff
     6972    call 04ea1h                               ; e8 3e ff
    68246973    mov dx, strict word 00060h                ; ba 60 00
    68256974    in AL, DX                                 ; ec
     
    68276976    ; sub ah, ah                                ; 2a e4
    68286977    test ax, ax                               ; 85 c0
    6829     je short 04f0bh                           ; 74 06
     6978    je short 04f73h                           ; 74 06
    68306979    mov ax, 003e0h                            ; b8 e0 03
    6831     call 04e39h                               ; e8 2e ff
     6980    call 04ea1h                               ; e8 2e ff
    68326981    mov AL, strict byte 0ffh                  ; b0 ff
    68336982    mov dx, strict word 00060h                ; ba 60 00
     
    68396988    ; sub ah, ah                                ; 2a e4
    68406989    test AL, strict byte 002h                 ; a8 02
    6841     je short 04f2bh                           ; 74 0d
     6990    je short 04f93h                           ; 74 0d
    68426991    dec bx                                    ; 4b
    68436992    test bx, bx                               ; 85 db
    6844     jbe short 04f2bh                          ; 76 08
     6993    jbe short 04f93h                          ; 76 08
    68456994    mov AL, strict byte 020h                  ; b0 20
    68466995    mov dx, 00080h                            ; ba 80 00
    68476996    out DX, AL                                ; ee
    6848     jmp short 04f14h                          ; eb e9
     6997    jmp short 04f7ch                          ; eb e9
    68496998    test bx, bx                               ; 85 db
    6850     jne short 04f35h                          ; 75 06
     6999    jne short 04f9dh                          ; 75 06
    68517000    mov ax, strict word 00014h                ; b8 14 00
    6852     call 04e39h                               ; e8 04 ff
     7001    call 04ea1h                               ; e8 04 ff
    68537002    mov bx, strict word 0ffffh                ; bb ff ff
    68547003    mov dx, strict word 00064h                ; ba 64 00
     
    68577006    ; sub ah, ah                                ; 2a e4
    68587007    test AL, strict byte 001h                 ; a8 01
    6859     jne short 04f4fh                          ; 75 0d
     7008    jne short 04fb7h                          ; 75 0d
    68607009    dec bx                                    ; 4b
    68617010    test bx, bx                               ; 85 db
    6862     jbe short 04f4fh                          ; 76 08
     7011    jbe short 04fb7h                          ; 76 08
    68637012    mov AL, strict byte 021h                  ; b0 21
    68647013    mov dx, 00080h                            ; ba 80 00
    68657014    out DX, AL                                ; ee
    6866     jmp short 04f38h                          ; eb e9
     7015    jmp short 04fa0h                          ; eb e9
    68677016    test bx, bx                               ; 85 db
    6868     jne short 04f59h                          ; 75 06
     7017    jne short 04fc1h                          ; 75 06
    68697018    mov ax, strict word 00015h                ; b8 15 00
    6870     call 04e39h                               ; e8 e0 fe
     7019    call 04ea1h                               ; e8 e0 fe
    68717020    mov dx, strict word 00060h                ; ba 60 00
    68727021    in AL, DX                                 ; ec
     
    68747023    ; sub ah, ah                                ; 2a e4
    68757024    cmp ax, 000fah                            ; 3d fa 00
    6876     je short 04f6ah                           ; 74 06
     7025    je short 04fd2h                           ; 74 06
    68777026    mov ax, 003e1h                            ; b8 e1 03
    6878     call 04e39h                               ; e8 cf fe
     7027    call 04ea1h                               ; e8 cf fe
    68797028    mov dx, strict word 00064h                ; ba 64 00
    68807029    in AL, DX                                 ; ec
     
    68827031    ; sub ah, ah                                ; 2a e4
    68837032    test AL, strict byte 001h                 ; a8 01
    6884     jne short 04f7ch                          ; 75 08
     7033    jne short 04fe4h                          ; 75 08
    68857034    mov AL, strict byte 031h                  ; b0 31
    68867035    mov dx, 00080h                            ; ba 80 00
    68877036    out DX, AL                                ; ee
    6888     jmp short 04f6ah                          ; eb ee
     7037    jmp short 04fd2h                          ; eb ee
    68897038    mov dx, strict word 00060h                ; ba 60 00
    68907039    in AL, DX                                 ; ec
     
    68927041    ; sub ah, ah                                ; 2a e4
    68937042    cmp ax, 000aah                            ; 3d aa 00
    6894     je short 04f95h                           ; 74 0e
     7043    je short 04ffdh                           ; 74 0e
    68957044    in AL, DX                                 ; ec
    68967045    db  02ah, 0e4h
    68977046    ; sub ah, ah                                ; 2a e4
    68987047    cmp ax, 000aah                            ; 3d aa 00
    6899     je short 04f95h                           ; 74 06
     7048    je short 04ffdh                           ; 74 06
    69007049    mov ax, 003e2h                            ; b8 e2 03
    6901     call 04e39h                               ; e8 a4 fe
     7050    call 04ea1h                               ; e8 a4 fe
    69027051    mov AL, strict byte 0f5h                  ; b0 f5
    69037052    mov dx, strict word 00060h                ; ba 60 00
     
    69097058    ; sub ah, ah                                ; 2a e4
    69107059    test AL, strict byte 002h                 ; a8 02
    6911     je short 04fb5h                           ; 74 0d
     7060    je short 0501dh                           ; 74 0d
    69127061    dec bx                                    ; 4b
    69137062    test bx, bx                               ; 85 db
    6914     jbe short 04fb5h                          ; 76 08
     7063    jbe short 0501dh                          ; 76 08
    69157064    mov AL, strict byte 040h                  ; b0 40
    69167065    mov dx, 00080h                            ; ba 80 00
    69177066    out DX, AL                                ; ee
    6918     jmp short 04f9eh                          ; eb e9
     7067    jmp short 05006h                          ; eb e9
    69197068    test bx, bx                               ; 85 db
    6920     jne short 04fbfh                          ; 75 06
     7069    jne short 05027h                          ; 75 06
    69217070    mov ax, strict word 00028h                ; b8 28 00
    6922     call 04e39h                               ; e8 7a fe
     7071    call 04ea1h                               ; e8 7a fe
    69237072    mov bx, strict word 0ffffh                ; bb ff ff
    69247073    mov dx, strict word 00064h                ; ba 64 00
     
    69277076    ; sub ah, ah                                ; 2a e4
    69287077    test AL, strict byte 001h                 ; a8 01
    6929     jne short 04fd9h                          ; 75 0d
     7078    jne short 05041h                          ; 75 0d
    69307079    dec bx                                    ; 4b
    69317080    test bx, bx                               ; 85 db
    6932     jbe short 04fd9h                          ; 76 08
     7081    jbe short 05041h                          ; 76 08
    69337082    mov AL, strict byte 041h                  ; b0 41
    69347083    mov dx, 00080h                            ; ba 80 00
    69357084    out DX, AL                                ; ee
    6936     jmp short 04fc2h                          ; eb e9
     7085    jmp short 0502ah                          ; eb e9
    69377086    test bx, bx                               ; 85 db
    6938     jne short 04fe3h                          ; 75 06
     7087    jne short 0504bh                          ; 75 06
    69397088    mov ax, strict word 00029h                ; b8 29 00
    6940     call 04e39h                               ; e8 56 fe
     7089    call 04ea1h                               ; e8 56 fe
    69417090    mov dx, strict word 00060h                ; ba 60 00
    69427091    in AL, DX                                 ; ec
     
    69447093    ; sub ah, ah                                ; 2a e4
    69457094    cmp ax, 000fah                            ; 3d fa 00
    6946     je short 04ff4h                           ; 74 06
     7095    je short 0505ch                           ; 74 06
    69477096    mov ax, 003e3h                            ; b8 e3 03
    6948     call 04e39h                               ; e8 45 fe
     7097    call 04ea1h                               ; e8 45 fe
    69497098    mov AL, strict byte 060h                  ; b0 60
    69507099    mov dx, strict word 00064h                ; ba 64 00
     
    69567105    ; sub ah, ah                                ; 2a e4
    69577106    test AL, strict byte 002h                 ; a8 02
    6958     je short 05014h                           ; 74 0d
     7107    je short 0507ch                           ; 74 0d
    69597108    dec bx                                    ; 4b
    69607109    test bx, bx                               ; 85 db
    6961     jbe short 05014h                          ; 76 08
     7110    jbe short 0507ch                          ; 76 08
    69627111    mov AL, strict byte 050h                  ; b0 50
    69637112    mov dx, 00080h                            ; ba 80 00
    69647113    out DX, AL                                ; ee
    6965     jmp short 04ffdh                          ; eb e9
     7114    jmp short 05065h                          ; eb e9
    69667115    test bx, bx                               ; 85 db
    6967     jne short 0501eh                          ; 75 06
     7116    jne short 05086h                          ; 75 06
    69687117    mov ax, strict word 00032h                ; b8 32 00
    6969     call 04e39h                               ; e8 1b fe
     7118    call 04ea1h                               ; e8 1b fe
    69707119    mov AL, strict byte 065h                  ; b0 65
    69717120    mov dx, strict word 00060h                ; ba 60 00
     
    69777126    ; sub ah, ah                                ; 2a e4
    69787127    test AL, strict byte 002h                 ; a8 02
    6979     je short 0503eh                           ; 74 0d
     7128    je short 050a6h                           ; 74 0d
    69807129    dec bx                                    ; 4b
    69817130    test bx, bx                               ; 85 db
    6982     jbe short 0503eh                          ; 76 08
     7131    jbe short 050a6h                          ; 76 08
    69837132    mov AL, strict byte 060h                  ; b0 60
    69847133    mov dx, 00080h                            ; ba 80 00
    69857134    out DX, AL                                ; ee
    6986     jmp short 05027h                          ; eb e9
     7135    jmp short 0508fh                          ; eb e9
    69877136    test bx, bx                               ; 85 db
    6988     jne short 05048h                          ; 75 06
     7137    jne short 050b0h                          ; 75 06
    69897138    mov ax, strict word 0003ch                ; b8 3c 00
    6990     call 04e39h                               ; e8 f1 fd
     7139    call 04ea1h                               ; e8 f1 fd
    69917140    mov AL, strict byte 0f4h                  ; b0 f4
    69927141    mov dx, strict word 00060h                ; ba 60 00
     
    69987147    ; sub ah, ah                                ; 2a e4
    69997148    test AL, strict byte 002h                 ; a8 02
    7000     je short 05068h                           ; 74 0d
     7149    je short 050d0h                           ; 74 0d
    70017150    dec bx                                    ; 4b
    70027151    test bx, bx                               ; 85 db
    7003     jbe short 05068h                          ; 76 08
     7152    jbe short 050d0h                          ; 76 08
    70047153    mov AL, strict byte 070h                  ; b0 70
    70057154    mov dx, 00080h                            ; ba 80 00
    70067155    out DX, AL                                ; ee
    7007     jmp short 05051h                          ; eb e9
     7156    jmp short 050b9h                          ; eb e9
    70087157    test bx, bx                               ; 85 db
    7009     jne short 05072h                          ; 75 06
     7158    jne short 050dah                          ; 75 06
    70107159    mov ax, strict word 00046h                ; b8 46 00
    7011     call 04e39h                               ; e8 c7 fd
     7160    call 04ea1h                               ; e8 c7 fd
    70127161    mov bx, strict word 0ffffh                ; bb ff ff
    70137162    mov dx, strict word 00064h                ; ba 64 00
     
    70167165    ; sub ah, ah                                ; 2a e4
    70177166    test AL, strict byte 001h                 ; a8 01
    7018     jne short 0508ch                          ; 75 0d
     7167    jne short 050f4h                          ; 75 0d
    70197168    dec bx                                    ; 4b
    70207169    test bx, bx                               ; 85 db
    7021     jbe short 0508ch                          ; 76 08
     7170    jbe short 050f4h                          ; 76 08
    70227171    mov AL, strict byte 071h                  ; b0 71
    70237172    mov dx, 00080h                            ; ba 80 00
    70247173    out DX, AL                                ; ee
    7025     jmp short 05075h                          ; eb e9
     7174    jmp short 050ddh                          ; eb e9
    70267175    test bx, bx                               ; 85 db
    7027     jne short 05096h                          ; 75 06
     7176    jne short 050feh                          ; 75 06
    70287177    mov ax, strict word 00046h                ; b8 46 00
    7029     call 04e39h                               ; e8 a3 fd
     7178    call 04ea1h                               ; e8 a3 fd
    70307179    mov dx, strict word 00060h                ; ba 60 00
    70317180    in AL, DX                                 ; ec
     
    70337182    ; sub ah, ah                                ; 2a e4
    70347183    cmp ax, 000fah                            ; 3d fa 00
    7035     je short 050a7h                           ; 74 06
     7184    je short 0510fh                           ; 74 06
    70367185    mov ax, 003e4h                            ; b8 e4 03
    7037     call 04e39h                               ; e8 92 fd
     7186    call 04ea1h                               ; e8 92 fd
    70387187    mov AL, strict byte 0a8h                  ; b0 a8
    70397188    mov dx, strict word 00064h                ; ba 64 00
    70407189    out DX, AL                                ; ee
    70417190    xor ax, ax                                ; 31 c0
    7042     call 064b6h                               ; e8 04 14
     7191    call 06561h                               ; e8 47 14
    70437192    mov sp, bp                                ; 89 ec
    70447193    pop bp                                    ; 5d
    70457194    retn                                      ; c3
    7046 enqueue_key_:                                ; 0xf50b6 LB 0x99
     7195enqueue_key_:                                ; 0xf511e LB 0x99
    70477196    push bp                                   ; 55
    70487197    mov bp, sp                                ; 89 e5
     
    70567205    mov dx, strict word 0001ah                ; ba 1a 00
    70577206    mov ax, strict word 00040h                ; b8 40 00
    7058     call 0166ch                               ; e8 a0 c5
     7207    call 016d4h                               ; e8 a0 c5
    70597208    mov di, ax                                ; 89 c7
    70607209    mov dx, strict word 0001ch                ; ba 1c 00
    70617210    mov ax, strict word 00040h                ; b8 40 00
    7062     call 0166ch                               ; e8 95 c5
     7211    call 016d4h                               ; e8 95 c5
    70637212    mov si, ax                                ; 89 c6
    70647213    lea cx, [si+002h]                         ; 8d 4c 02
    70657214    cmp cx, strict byte 0003eh                ; 83 f9 3e
    7066     jc short 050e4h                           ; 72 03
     7215    jc short 0514ch                           ; 72 03
    70677216    mov cx, strict word 0001eh                ; b9 1e 00
    70687217    cmp cx, di                                ; 39 f9
    7069     jne short 050ech                          ; 75 04
     7218    jne short 05154h                          ; 75 04
    70707219    xor ax, ax                                ; 31 c0
    7071     jmp short 05111h                          ; eb 25
     7220    jmp short 05179h                          ; eb 25
    70727221    xor bh, bh                                ; 30 ff
    70737222    mov dx, si                                ; 89 f2
    70747223    mov ax, strict word 00040h                ; b8 40 00
    7075     call 0165eh                               ; e8 68 c5
     7224    call 016c6h                               ; e8 68 c5
    70767225    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    70777226    lea dx, [si+001h]                         ; 8d 54 01
    70787227    mov ax, strict word 00040h                ; b8 40 00
    7079     call 0165eh                               ; e8 5b c5
     7228    call 016c6h                               ; e8 5b c5
    70807229    mov bx, cx                                ; 89 cb
    70817230    mov dx, strict word 0001ch                ; ba 1c 00
    70827231    mov ax, strict word 00040h                ; b8 40 00
    7083     call 0167ah                               ; e8 6c c5
     7232    call 016e2h                               ; e8 6c c5
    70847233    mov ax, strict word 00001h                ; b8 01 00
    70857234    lea sp, [bp-008h]                         ; 8d 66 f8
     
    71007249    cmp bh, byte [bx+si]                      ; 3a 38
    71017250    sub bl, byte [ss:di]                      ; 36 2a 1d
    7102     jnbe short 05181h                         ; 77 54
    7103     inc ax                                    ; 40
     7251    fist word [si-058h]                       ; df 54 a8
    71047252    push dx                                   ; 52
    7105     call 03983h                               ; e8 51 e8
    7106     push cx                                   ; 51
    7107     leave                                     ; c9
     7253    push ax                                   ; 50
    71087254    push dx                                   ; 52
    7109     mov si, 04751h                            ; be 51 47
     7255    push ax                                   ; 50
     7256    push dx                                   ; 52
     7257    xor word [bp+di+026h], dx                 ; 31 53 26
     7258    push dx                                   ; 52
     7259    scasw                                     ; af
    71107260    push bx                                   ; 53
    7111     mov CH, strict byte 053h                  ; b5 53
    7112     pop bp                                    ; 5d
     7261    sbb ax, 0c554h                            ; 1d 54 c5
    71137262    push sp                                   ; 54
    7114     cmp word [si-07ch], dx                    ; 39 54 84
     7263    mov ax, word [0ec54h]                     ; a1 54 ec
    71157264    push dx                                   ; 52
    7116     call 03995h                               ; e8 51 e8
    7117     push cx                                   ; 51
    7118     or byte [bp+di-026h], dl                  ; 08 53 da
    7119     push cx                                   ; 51
    7120     xchg si, ax                               ; 96
     7265    push ax                                   ; 50
     7266    push dx                                   ; 52
     7267    push ax                                   ; 50
     7268    push dx                                   ; 52
     7269    jo short 05202h                           ; 70 53
     7270    inc dx                                    ; 42
     7271    push dx                                   ; 52
     7272    db  0feh
    71217273    push bx                                   ; 53
    7122     sbb dl, byte [si+056h]                    ; 1a 54 56
    7123     push sp                                   ; 54
    7124 _int09_function:                             ; 0xf514f LB 0x474
     7274    db  082h, 054h, 0beh, 054h
     7275    ; adc byte [si-042h], 054h                  ; 82 54 be 54
     7276_int09_function:                             ; 0xf51b7 LB 0x474
    71257277    push bp                                   ; 55
    71267278    mov bp, sp                                ; 89 e5
     
    71307282    mov byte [bp-00ch], al                    ; 88 46 f4
    71317283    test al, al                               ; 84 c0
    7132     jne short 05179h                          ; 75 19
     7284    jne short 051e1h                          ; 75 19
    71337285    mov bx, 00da0h                            ; bb a0 0d
    71347286    mov cx, ds                                ; 8c d9
    71357287    mov ax, strict word 00004h                ; b8 04 00
    7136     call 01931h                               ; e8 c6 c7
     7288    call 01999h                               ; e8 c6 c7
    71377289    push 00587h                               ; 68 87 05
    71387290    push strict byte 00004h                   ; 6a 04
    7139     call 01972h                               ; e8 ff c7
     7291    call 019dah                               ; e8 ff c7
    71407292    add sp, strict byte 00004h                ; 83 c4 04
    7141     jmp near 0523ah                           ; e9 c1 00
     7293    jmp near 052a2h                           ; e9 c1 00
    71427294    mov dx, strict word 00018h                ; ba 18 00
    71437295    mov ax, strict word 00040h                ; b8 40 00
    7144     call 01650h                               ; e8 ce c4
     7296    call 016b8h                               ; e8 ce c4
    71457297    mov byte [bp-006h], al                    ; 88 46 fa
    71467298    mov byte [bp-00ah], al                    ; 88 46 f6
    71477299    mov dx, 00096h                            ; ba 96 00
    71487300    mov ax, strict word 00040h                ; b8 40 00
    7149     call 01650h                               ; e8 bf c4
     7301    call 016b8h                               ; e8 bf c4
    71507302    mov byte [bp-00eh], al                    ; 88 46 f2
    71517303    mov byte [bp-004h], al                    ; 88 46 fc
    71527304    mov dx, strict word 00017h                ; ba 17 00
    71537305    mov ax, strict word 00040h                ; b8 40 00
    7154     call 01650h                               ; e8 b0 c4
     7306    call 016b8h                               ; e8 b0 c4
    71557307    mov byte [bp-010h], al                    ; 88 46 f0
    71567308    mov byte [bp-008h], al                    ; 88 46 f8
     
    71597311    pop ES                                    ; 07
    71607312    mov cx, strict word 00012h                ; b9 12 00
    7161     mov di, 0511ah                            ; bf 1a 51
     7313    mov di, 05182h                            ; bf 82 51
    71627314    repne scasb                               ; f2 ae
    71637315    sal cx, 1                                 ; d1 e1
    71647316    mov di, cx                                ; 89 cf
    7165     mov ax, word [cs:di+0512bh]               ; 2e 8b 85 2b 51
     7317    mov ax, word [cs:di+05193h]               ; 2e 8b 85 93 51
    71667318    jmp ax                                    ; ff e0
    71677319    xor byte [bp-008h], 040h                  ; 80 76 f8 40
     
    71697321    mov dx, strict word 00017h                ; ba 17 00
    71707322    mov ax, strict word 00040h                ; b8 40 00
    7171     call 0165eh                               ; e8 8f c4
     7323    call 016c6h                               ; e8 8f c4
    71727324    or byte [bp-00ah], 040h                   ; 80 4e f6 40
    71737325    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    7174     jmp near 0544ah                           ; e9 70 02
     7326    jmp near 054b2h                           ; e9 70 02
    71757327    mov al, byte [bp-006h]                    ; 8a 46 fa
    71767328    and AL, strict byte 0bfh                  ; 24 bf
    71777329    mov byte [bp-00ah], al                    ; 88 46 f6
    71787330    movzx bx, al                              ; 0f b6 d8
    7179     jmp near 0544ah                           ; e9 62 02
     7331    jmp near 054b2h                           ; e9 62 02
    71807332    test byte [bp-004h], 002h                 ; f6 46 fc 02
    7181     jne near 0521ch                           ; 0f 85 2c 00
     7333    jne near 05284h                           ; 0f 85 2c 00
    71827334    mov al, byte [bp-00ch]                    ; 8a 46 f4
    71837335    and AL, strict byte 07fh                  ; 24 7f
     
    71897341    mov dl, al                                ; 88 c2
    71907342    test byte [bp-00ch], 080h                 ; f6 46 f4 80
    7191     je short 0520ch                           ; 74 07
     7343    je short 05274h                           ; 74 07
    71927344    not al                                    ; f6 d0
    71937345    and byte [bp-008h], al                    ; 20 46 f8
    7194     jmp short 0520fh                          ; eb 03
     7346    jmp short 05277h                          ; eb 03
    71957347    or byte [bp-008h], al                     ; 08 46 f8
    71967348    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    71977349    mov dx, strict word 00017h                ; ba 17 00
    71987350    mov ax, strict word 00040h                ; b8 40 00
    7199     call 0165eh                               ; e8 42 c4
     7351    call 016c6h                               ; e8 42 c4
    72007352    mov al, byte [bp-00ch]                    ; 8a 46 f4
    72017353    and AL, strict byte 07fh                  ; 24 7f
    72027354    cmp AL, strict byte 01dh                  ; 3c 1d
    7203     je short 05229h                           ; 74 04
     7355    je short 05291h                           ; 74 04
    72047356    and byte [bp-004h], 0feh                  ; 80 66 fc fe
    72057357    and byte [bp-004h], 0fdh                  ; 80 66 fc fd
     
    72077359    mov dx, 00096h                            ; ba 96 00
    72087360    mov ax, strict word 00040h                ; b8 40 00
    7209     call 0165eh                               ; e8 24 c4
     7361    call 016c6h                               ; e8 24 c4
    72107362    lea sp, [bp-002h]                         ; 8d 66 fe
    72117363    pop di                                    ; 5f
     
    72137365    retn                                      ; c3
    72147366    test byte [bp-00eh], 001h                 ; f6 46 f2 01
    7215     jne short 0521ch                          ; 75 d6
     7367    jne short 05284h                          ; 75 d6
    72167368    mov al, byte [bp-010h]                    ; 8a 46 f0
    72177369    or AL, strict byte 004h                   ; 0c 04
     
    72207372    mov dx, strict word 00017h                ; ba 17 00
    72217373    mov ax, strict word 00040h                ; b8 40 00
    7222     call 0165eh                               ; e8 04 c4
     7374    call 016c6h                               ; e8 04 c4
    72237375    mov al, byte [bp-00eh]                    ; 8a 46 f2
    72247376    test AL, strict byte 002h                 ; a8 02
    7225     je short 0526eh                           ; 74 0d
     7377    je short 052d6h                           ; 74 0d
    72267378    or AL, strict byte 004h                   ; 0c 04
    72277379    mov byte [bp-004h], al                    ; 88 46 fc
    72287380    movzx bx, al                              ; 0f b6 d8
    72297381    mov dx, 00096h                            ; ba 96 00
    7230     jmp short 0527ch                          ; eb 0e
     7382    jmp short 052e4h                          ; eb 0e
    72317383    mov al, byte [bp-006h]                    ; 8a 46 fa
    72327384    or AL, strict byte 001h                   ; 0c 01
     
    72357387    mov dx, strict word 00018h                ; ba 18 00
    72367388    mov ax, strict word 00040h                ; b8 40 00
    7237     call 0165eh                               ; e8 dc c3
    7238     jmp short 0521ch                          ; eb 98
     7389    call 016c6h                               ; e8 dc c3
     7390    jmp short 05284h                          ; eb 98
    72397391    test byte [bp-00eh], 001h                 ; f6 46 f2 01
    7240     jne short 0521ch                          ; 75 92
     7392    jne short 05284h                          ; 75 92
    72417393    mov al, byte [bp-010h]                    ; 8a 46 f0
    72427394    and AL, strict byte 0fbh                  ; 24 fb
     
    72457397    mov dx, strict word 00017h                ; ba 17 00
    72467398    mov ax, strict word 00040h                ; b8 40 00
    7247     call 0165eh                               ; e8 c0 c3
     7399    call 016c6h                               ; e8 c0 c3
    72487400    mov al, byte [bp-00eh]                    ; 8a 46 f2
    72497401    test AL, strict byte 002h                 ; a8 02
    7250     je short 052b2h                           ; 74 0d
     7402    je short 0531ah                           ; 74 0d
    72517403    and AL, strict byte 0fbh                  ; 24 fb
    72527404    mov byte [bp-004h], al                    ; 88 46 fc
    72537405    movzx bx, al                              ; 0f b6 d8
    72547406    mov dx, 00096h                            ; ba 96 00
    7255     jmp short 052c0h                          ; eb 0e
     7407    jmp short 05328h                          ; eb 0e
    72567408    mov al, byte [bp-006h]                    ; 8a 46 fa
    72577409    and AL, strict byte 0feh                  ; 24 fe
     
    72607412    mov dx, strict word 00018h                ; ba 18 00
    72617413    mov ax, strict word 00040h                ; b8 40 00
    7262     call 0165eh                               ; e8 98 c3
    7263     jmp near 0521ch                           ; e9 53 ff
     7414    call 016c6h                               ; e8 98 c3
     7415    jmp near 05284h                           ; e9 53 ff
    72647416    mov al, byte [bp-010h]                    ; 8a 46 f0
    72657417    or AL, strict byte 008h                   ; 0c 08
     
    72687420    mov dx, strict word 00017h                ; ba 17 00
    72697421    mov ax, strict word 00040h                ; b8 40 00
    7270     call 0165eh                               ; e8 81 c3
     7422    call 016c6h                               ; e8 81 c3
    72717423    mov al, byte [bp-00eh]                    ; 8a 46 f2
    72727424    test AL, strict byte 002h                 ; a8 02
    7273     je short 052f1h                           ; 74 0d
     7425    je short 05359h                           ; 74 0d
    72747426    or AL, strict byte 008h                   ; 0c 08
    72757427    mov byte [bp-004h], al                    ; 88 46 fc
    72767428    movzx bx, al                              ; 0f b6 d8
    72777429    mov dx, 00096h                            ; ba 96 00
    7278     jmp short 052ffh                          ; eb 0e
     7430    jmp short 05367h                          ; eb 0e
    72797431    mov al, byte [bp-006h]                    ; 8a 46 fa
    72807432    or AL, strict byte 002h                   ; 0c 02
     
    72837435    mov dx, strict word 00018h                ; ba 18 00
    72847436    mov ax, strict word 00040h                ; b8 40 00
    7285     call 0165eh                               ; e8 59 c3
    7286     jmp near 0521ch                           ; e9 14 ff
     7437    call 016c6h                               ; e8 59 c3
     7438    jmp near 05284h                           ; e9 14 ff
    72877439    mov al, byte [bp-010h]                    ; 8a 46 f0
    72887440    and AL, strict byte 0f7h                  ; 24 f7
     
    72917443    mov dx, strict word 00017h                ; ba 17 00
    72927444    mov ax, strict word 00040h                ; b8 40 00
    7293     call 0165eh                               ; e8 42 c3
     7445    call 016c6h                               ; e8 42 c3
    72947446    mov al, byte [bp-00eh]                    ; 8a 46 f2
    72957447    test AL, strict byte 002h                 ; a8 02
    7296     je short 05330h                           ; 74 0d
     7448    je short 05398h                           ; 74 0d
    72977449    and AL, strict byte 0f7h                  ; 24 f7
    72987450    mov byte [bp-004h], al                    ; 88 46 fc
    72997451    movzx bx, al                              ; 0f b6 d8
    73007452    mov dx, 00096h                            ; ba 96 00
    7301     jmp short 0533eh                          ; eb 0e
     7453    jmp short 053a6h                          ; eb 0e
    73027454    mov al, byte [bp-006h]                    ; 8a 46 fa
    73037455    and AL, strict byte 0fdh                  ; 24 fd
     
    73067458    mov dx, strict word 00018h                ; ba 18 00
    73077459    mov ax, strict word 00040h                ; b8 40 00
    7308     call 0165eh                               ; e8 1a c3
    7309     jmp near 0521ch                           ; e9 d5 fe
     7460    call 016c6h                               ; e8 1a c3
     7461    jmp near 05284h                           ; e9 d5 fe
    73107462    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    7311     jne short 05369h                          ; 75 1c
     7463    jne short 053d1h                          ; 75 1c
    73127464    mov al, byte [bp-006h]                    ; 8a 46 fa
    73137465    or AL, strict byte 020h                   ; 0c 20
     
    73167468    mov dx, strict word 00018h                ; ba 18 00
    73177469    mov ax, strict word 00040h                ; b8 40 00
    7318     call 0165eh                               ; e8 fd c2
     7470    call 016c6h                               ; e8 fd c2
    73197471    mov al, byte [bp-010h]                    ; 8a 46 f0
    73207472    xor AL, strict byte 020h                  ; 34 20
    7321     jmp near 05408h                           ; e9 9f 00
     7473    jmp near 05470h                           ; e9 9f 00
    73227474    mov al, byte [bp-006h]                    ; 8a 46 fa
    73237475    or AL, strict byte 008h                   ; 0c 08
     
    73267478    mov dx, strict word 00018h                ; ba 18 00
    73277479    mov ax, strict word 00040h                ; b8 40 00
    7328     call 0165eh                               ; e8 e1 c2
     7480    call 016c6h                               ; e8 e1 c2
    73297481    mov AL, strict byte 0aeh                  ; b0 ae
    73307482    mov dx, strict word 00064h                ; ba 64 00
    73317483    out DX, AL                                ; ee
    7332     call 0e034h                               ; e8 ae 8c
     7484    call 0e034h                               ; e8 46 8c
    73337485    mov dx, strict word 00018h                ; ba 18 00
    73347486    mov ax, strict word 00040h                ; b8 40 00
    7335     call 01650h                               ; e8 c1 c2
     7487    call 016b8h                               ; e8 c1 c2
    73367488    test AL, strict byte 008h                 ; a8 08
    7337     jne short 05386h                          ; 75 f3
    7338     jmp near 0521ch                           ; e9 86 fe
     7489    jne short 053eeh                          ; 75 f3
     7490    jmp near 05284h                           ; e9 86 fe
    73397491    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    7340     jne near 0521ch                           ; 0f 85 7e fe
     7492    jne near 05284h                           ; 0f 85 7e fe
    73417493    mov al, byte [bp-006h]                    ; 8a 46 fa
    73427494    and AL, strict byte 0dfh                  ; 24 df
     
    73457497    mov dx, strict word 00018h                ; ba 18 00
    73467498    mov ax, strict word 00040h                ; b8 40 00
    7347     call 0165eh                               ; e8 ac c2
    7348     jmp near 0521ch                           ; e9 67 fe
     7499    call 016c6h                               ; e8 ac c2
     7500    jmp near 05284h                           ; e9 67 fe
    73497501    test byte [bp-00eh], 002h                 ; f6 46 f2 02
    7350     je short 053efh                           ; 74 34
     7502    je short 05457h                           ; 74 34
    73517503    mov dx, strict word 0001ah                ; ba 1a 00
    73527504    mov ax, strict word 00040h                ; b8 40 00
    7353     call 0166ch                               ; e8 a8 c2
     7505    call 016d4h                               ; e8 a8 c2
    73547506    mov bx, ax                                ; 89 c3
    73557507    mov dx, strict word 0001ch                ; ba 1c 00
    73567508    mov ax, strict word 00040h                ; b8 40 00
    7357     call 0167ah                               ; e8 ab c2
     7509    call 016e2h                               ; e8 ab c2
    73587510    mov bx, 00080h                            ; bb 80 00
    73597511    mov dx, strict word 00071h                ; ba 71 00
    73607512    mov ax, strict word 00040h                ; b8 40 00
    7361     call 0165eh                               ; e8 83 c2
     7513    call 016c6h                               ; e8 83 c2
    73627514    mov AL, strict byte 0aeh                  ; b0 ae
    73637515    mov dx, strict word 00064h                ; ba 64 00
     
    73687520    xor dx, dx                                ; 31 d2
    73697521    xor ax, ax                                ; 31 c0
    7370     call 050b6h                               ; e8 ca fc
    7371     jmp near 0521ch                           ; e9 2d fe
     7522    call 0511eh                               ; e8 ca fc
     7523    jmp near 05284h                           ; e9 2d fe
    73727524    mov al, byte [bp-006h]                    ; 8a 46 fa
    73737525    or AL, strict byte 010h                   ; 0c 10
     
    73767528    mov dx, strict word 00018h                ; ba 18 00
    73777529    mov ax, strict word 00040h                ; b8 40 00
    7378     call 0165eh                               ; e8 5b c2
     7530    call 016c6h                               ; e8 5b c2
    73797531    mov al, byte [bp-010h]                    ; 8a 46 f0
    73807532    xor AL, strict byte 010h                  ; 34 10
     
    73837535    mov dx, strict word 00017h                ; ba 17 00
    73847536    mov ax, strict word 00040h                ; b8 40 00
    7385     call 0165eh                               ; e8 47 c2
    7386     jmp near 0521ch                           ; e9 02 fe
     7537    call 016c6h                               ; e8 47 c2
     7538    jmp near 05284h                           ; e9 02 fe
    73877539    test byte [bp-00eh], 002h                 ; f6 46 f2 02
    7388     jne near 0521ch                           ; 0f 85 fa fd
     7540    jne near 05284h                           ; 0f 85 fa fd
    73897541    mov al, byte [bp-006h]                    ; 8a 46 fa
    73907542    and AL, strict byte 0efh                  ; 24 ef
     
    73937545    mov dx, strict word 00018h                ; ba 18 00
    73947546    mov ax, strict word 00040h                ; b8 40 00
    7395     call 0165eh                               ; e8 28 c2
    7396     jmp near 0521ch                           ; e9 e3 fd
     7547    call 016c6h                               ; e8 28 c2
     7548    jmp near 05284h                           ; e9 e3 fd
    73977549    mov al, byte [bp-006h]                    ; 8a 46 fa
    73987550    test AL, strict byte 004h                 ; a8 04
    7399     jne near 0521ch                           ; 0f 85 da fd
     7551    jne near 05284h                           ; 0f 85 da fd
    74007552    or AL, strict byte 004h                   ; 0c 04
    74017553    mov byte [bp-00ah], al                    ; 88 46 f6
     
    74037555    mov dx, strict word 00018h                ; ba 18 00
    74047556    mov ax, strict word 00040h                ; b8 40 00
    7405     call 0165eh                               ; e8 0b c2
    7406     jmp near 0521ch                           ; e9 c6 fd
     7557    call 016c6h                               ; e8 0b c2
     7558    jmp near 05284h                           ; e9 c6 fd
    74077559    mov al, byte [bp-006h]                    ; 8a 46 fa
    74087560    and AL, strict byte 0fbh                  ; 24 fb
    7409     jmp short 05444h                          ; eb e7
     7561    jmp short 054ach                          ; eb e7
    74107562    mov al, byte [bp-010h]                    ; 8a 46 f0
    74117563    and AL, strict byte 00ch                  ; 24 0c
    74127564    cmp AL, strict byte 00ch                  ; 3c 0c
    7413     jne short 05477h                          ; 75 11
     7565    jne short 054dfh                          ; 75 11
    74147566    mov bx, 01234h                            ; bb 34 12
    74157567    mov dx, strict word 00072h                ; ba 72 00
    74167568    mov ax, strict word 00040h                ; b8 40 00
    7417     call 0167ah                               ; e8 08 c2
     7569    call 016e2h                               ; e8 08 c2
    74187570    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    74197571    test byte [bp-00ah], 008h                 ; f6 46 f6 08
    7420     je short 0548bh                           ; 74 0e
     7572    je short 054f3h                           ; 74 0e
    74217573    and byte [bp-00ah], 0f7h                  ; 80 66 f6 f7
    74227574    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    74237575    mov dx, strict word 00018h                ; ba 18 00
    7424     jmp near 05234h                           ; e9 a9 fd
     7576    jmp near 0529ch                           ; e9 a9 fd
    74257577    mov al, byte [bp-00ch]                    ; 8a 46 f4
    74267578    test AL, strict byte 080h                 ; a8 80
    7427     je short 054c9h                           ; 74 37
     7579    je short 05531h                           ; 74 37
    74287580    cmp AL, strict byte 0fah                  ; 3c fa
    7429     jne short 054a6h                          ; 75 10
     7581    jne short 0550eh                          ; 75 10
    74307582    mov dx, 00097h                            ; ba 97 00
    74317583    mov ax, strict word 00040h                ; b8 40 00
    7432     call 01650h                               ; e8 b1 c1
     7584    call 016b8h                               ; e8 b1 c1
    74337585    mov dl, al                                ; 88 c2
    74347586    or dl, 010h                               ; 80 ca 10
    7435     jmp short 054bah                          ; eb 14
     7587    jmp short 05522h                          ; eb 14
    74367588    cmp AL, strict byte 0feh                  ; 3c fe
    7437     jne near 0521ch                           ; 0f 85 70 fd
     7589    jne near 05284h                           ; 0f 85 70 fd
    74387590    mov dx, 00097h                            ; ba 97 00
    74397591    mov ax, strict word 00040h                ; b8 40 00
    7440     call 01650h                               ; e8 9b c1
     7592    call 016b8h                               ; e8 9b c1
    74417593    mov dl, al                                ; 88 c2
    74427594    or dl, 020h                               ; 80 ca 20
     
    74447596    mov dx, 00097h                            ; ba 97 00
    74457597    mov ax, strict word 00040h                ; b8 40 00
    7446     call 0165eh                               ; e8 98 c1
    7447     jmp near 0521ch                           ; e9 53 fd
     7598    call 016c6h                               ; e8 98 c1
     7599    jmp near 05284h                           ; e9 53 fd
    74487600    cmp byte [bp-00ch], 058h                  ; 80 7e f4 58
    7449     jbe short 054edh                          ; 76 1e
     7601    jbe short 05555h                          ; 76 1e
    74507602    mov bx, 00da0h                            ; bb a0 0d
    74517603    mov cx, ds                                ; 8c d9
    74527604    mov ax, strict word 00004h                ; b8 04 00
    7453     call 01931h                               ; e8 57 c4
     7605    call 01999h                               ; e8 57 c4
    74547606    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    74557607    push ax                                   ; 50
    74567608    push 005a1h                               ; 68 a1 05
    74577609    push strict byte 00004h                   ; 6a 04
    7458     call 01972h                               ; e8 8b c4
     7610    call 019dah                               ; e8 8b c4
    74597611    add sp, strict byte 00006h                ; 83 c4 06
    7460     jmp near 0523ah                           ; e9 4d fd
     7612    jmp near 052a2h                           ; e9 4d fd
    74617613    mov al, byte [bp-008h]                    ; 8a 46 f8
    74627614    test AL, strict byte 008h                 ; a8 08
    7463     je short 05506h                           ; 74 12
     7615    je short 0556eh                           ; 74 12
    74647616    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    74657617    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    74667618    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
    74677619    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
    7468     jmp near 05594h                           ; e9 8e 00
     7620    jmp near 055fch                           ; e9 8e 00
    74697621    test AL, strict byte 004h                 ; a8 04
    7470     je short 0551ch                           ; 74 12
     7622    je short 05584h                           ; 74 12
    74717623    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    74727624    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    74737625    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
    74747626    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
    7475     jmp near 05594h                           ; e9 78 00
     7627    jmp near 055fch                           ; e9 78 00
    74767628    mov al, byte [bp-004h]                    ; 8a 46 fc
    74777629    and AL, strict byte 002h                  ; 24 02
    74787630    test al, al                               ; 84 c0
    7479     jbe short 0553ah                          ; 76 15
     7631    jbe short 055a2h                          ; 76 15
    74807632    mov al, byte [bp-00ch]                    ; 8a 46 f4
    74817633    cmp AL, strict byte 047h                  ; 3c 47
    7482     jc short 0553ah                           ; 72 0e
     7634    jc short 055a2h                           ; 72 0e
    74837635    cmp AL, strict byte 053h                  ; 3c 53
    7484     jnbe short 0553ah                         ; 77 0a
     7636    jnbe short 055a2h                         ; 77 0a
    74857637    mov DL, strict byte 0e0h                  ; b2 e0
    74867638    movzx bx, al                              ; 0f b6 d8
    74877639    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7488     jmp short 05590h                          ; eb 56
     7640    jmp short 055f8h                          ; eb 56
    74897641    test byte [bp-008h], 003h                 ; f6 46 f8 03
    7490     je short 0556eh                           ; 74 2e
     7642    je short 055d6h                           ; 74 2e
    74917643    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    74927644    imul bx, bx, strict byte 0000ah           ; 6b db 0a
     
    74947646    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    74957647    test dx, ax                               ; 85 c2
    7496     je short 0555eh                           ; 74 0a
     7648    je short 055c6h                           ; 74 0a
    74977649    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
    74987650    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
    7499     jmp short 05566h                          ; eb 08
     7651    jmp short 055ceh                          ; eb 08
    75007652    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
    75017653    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
    75027654    shr ax, 008h                              ; c1 e8 08
    75037655    mov byte [bp-00ch], al                    ; 88 46 f4
    7504     jmp short 0559ah                          ; eb 2c
     7656    jmp short 05602h                          ; eb 2c
    75057657    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    75067658    imul bx, bx, strict byte 0000ah           ; 6b db 0a
     
    75087660    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    75097661    test dx, ax                               ; 85 c2
    7510     je short 0558ch                           ; 74 0a
     7662    je short 055f4h                           ; 74 0a
    75117663    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
    75127664    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
    7513     jmp short 05594h                          ; eb 08
     7665    jmp short 055fch                          ; eb 08
    75147666    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
    75157667    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
     
    75177669    mov byte [bp-00ch], al                    ; 88 46 f4
    75187670    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    7519     jne short 055bah                          ; 75 1a
     7671    jne short 05622h                          ; 75 1a
    75207672    test dl, dl                               ; 84 d2
    7521     jne short 055bah                          ; 75 16
     7673    jne short 05622h                          ; 75 16
    75227674    mov bx, 00da0h                            ; bb a0 0d
    75237675    mov cx, ds                                ; 8c d9
    75247676    mov ax, strict word 00004h                ; b8 04 00
    7525     call 01931h                               ; e8 82 c3
     7677    call 01999h                               ; e8 82 c3
    75267678    push 005d8h                               ; 68 d8 05
    75277679    push strict byte 00004h                   ; 6a 04
    7528     call 01972h                               ; e8 bb c3
     7680    call 019dah                               ; e8 bb c3
    75297681    add sp, strict byte 00004h                ; 83 c4 04
    75307682    xor dh, dh                                ; 30 f6
    75317683    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    7532     jmp near 053e9h                           ; e9 26 fe
    7533 dequeue_key_:                                ; 0xf55c3 LB 0x94
     7684    jmp near 05451h                           ; e9 26 fe
     7685dequeue_key_:                                ; 0xf562b LB 0x94
    75347686    push bp                                   ; 55
    75357687    mov bp, sp                                ; 89 e5
     
    75447696    mov dx, strict word 0001ah                ; ba 1a 00
    75457697    mov ax, strict word 00040h                ; b8 40 00
    7546     call 0166ch                               ; e8 8f c0
     7698    call 016d4h                               ; e8 8f c0
    75477699    mov bx, ax                                ; 89 c3
    75487700    mov dx, strict word 0001ch                ; ba 1c 00
    75497701    mov ax, strict word 00040h                ; b8 40 00
    7550     call 0166ch                               ; e8 84 c0
     7702    call 016d4h                               ; e8 84 c0
    75517703    cmp bx, ax                                ; 39 c3
    7552     je short 05629h                           ; 74 3d
     7704    je short 05691h                           ; 74 3d
    75537705    mov dx, bx                                ; 89 da
    75547706    mov ax, strict word 00040h                ; b8 40 00
    7555     call 01650h                               ; e8 5c c0
     7707    call 016b8h                               ; e8 5c c0
    75567708    mov cl, al                                ; 88 c1
    75577709    lea dx, [bx+001h]                         ; 8d 57 01
    75587710    mov ax, strict word 00040h                ; b8 40 00
    7559     call 01650h                               ; e8 51 c0
     7711    call 016b8h                               ; e8 51 c0
    75607712    mov es, [bp-008h]                         ; 8e 46 f8
    75617713    mov byte [es:si], cl                      ; 26 88 0c
     
    75637715    mov byte [es:di], al                      ; 26 88 05
    75647716    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    7565     je short 05624h                           ; 74 13
     7717    je short 0568ch                           ; 74 13
    75667718    inc bx                                    ; 43
    75677719    inc bx                                    ; 43
    75687720    cmp bx, strict byte 0003eh                ; 83 fb 3e
    7569     jc short 0561bh                           ; 72 03
     7721    jc short 05683h                           ; 72 03
    75707722    mov bx, strict word 0001eh                ; bb 1e 00
    75717723    mov dx, strict word 0001ah                ; ba 1a 00
    75727724    mov ax, strict word 00040h                ; b8 40 00
    7573     call 0167ah                               ; e8 56 c0
     7725    call 016e2h                               ; e8 56 c0
    75747726    mov ax, strict word 00001h                ; b8 01 00
    7575     jmp short 0562bh                          ; eb 02
     7727    jmp short 05693h                          ; eb 02
    75767728    xor ax, ax                                ; 31 c0
    75777729    lea sp, [bp-004h]                         ; 8d 66 fc
     
    75847736    or cl, byte [bx+di]                       ; 0a 09
    75857737    add ax, 00102h                            ; 05 02 01
    7586     add ch, dh                                ; 00 f5
     7738    add byte [di+059h], bl                    ; 00 5d 59
     7739    jnc short 05702h                          ; 73 57
     7740    mov dx, 00657h                            ; ba 57 06
    75877741    pop ax                                    ; 58
    7588     or dx, word [bx+052h]                     ; 0b 57 52
    7589     push di                                   ; 57
    7590     sahf                                      ; 9e
    7591     push di                                   ; 57
    7592     scasb                                     ; ae
    7593     push di                                   ; 57
    7594     fcom dword [bx-01fh]                      ; d8 57 e1
    7595     push di                                   ; 57
    7596     push dx                                   ; 52
     7742    push SS                                   ; 16
    75977743    pop ax                                    ; 58
    7598     sbb word [bx+si-050h], strict byte 00058h ; 83 58 b0 58
    7599     db  0eah
     7744    inc ax                                    ; 40
    76007745    pop ax                                    ; 58
    7601     db  038h
     7746    dec cx                                    ; 49
     7747    pop ax                                    ; 58
     7748    mov dx, 0eb58h                            ; ba 58 eb
     7749    pop ax                                    ; 58
     7750    sbb byte [bx+di+052h], bl                 ; 18 59 52
    76027751    pop cx                                    ; 59
    7603 _int16_function:                             ; 0xf5657 LB 0x2e7
     7752    db  0a0h
     7753    pop cx                                    ; 59
     7754_int16_function:                             ; 0xf56bf LB 0x2e7
    76047755    push bp                                   ; 55
    76057756    mov bp, sp                                ; 89 e5
     
    76087759    mov dx, strict word 00017h                ; ba 17 00
    76097760    mov ax, strict word 00040h                ; b8 40 00
    7610     call 01650h                               ; e8 e9 bf
     7761    call 016b8h                               ; e8 e9 bf
    76117762    mov cl, al                                ; 88 c1
    76127763    mov bh, al                                ; 88 c7
    76137764    mov dx, 00097h                            ; ba 97 00
    76147765    mov ax, strict word 00040h                ; b8 40 00
    7615     call 01650h                               ; e8 dc bf
     7766    call 016b8h                               ; e8 dc bf
    76167767    mov bl, al                                ; 88 c3
    76177768    movzx dx, cl                              ; 0f b6 d1
     
    76227773    xor al, dl                                ; 30 d0
    76237774    test ax, ax                               ; 85 c0
    7624     je short 056e9h                           ; 74 60
     7775    je short 05751h                           ; 74 60
    76257776    cli                                       ; fa
    76267777    mov AL, strict byte 0edh                  ; b0 ed
     
    76327783    ; sub ah, ah                                ; 2a e4
    76337784    test AL, strict byte 001h                 ; a8 01
    7634     jne short 056a2h                          ; 75 08
     7785    jne short 0570ah                          ; 75 08
    76357786    mov AL, strict byte 021h                  ; b0 21
    76367787    mov dx, 00080h                            ; ba 80 00
    76377788    out DX, AL                                ; ee
    7638     jmp short 05690h                          ; eb ee
     7789    jmp short 056f8h                          ; eb ee
    76397790    mov dx, strict word 00060h                ; ba 60 00
    76407791    in AL, DX                                 ; ec
     
    76427793    ; sub ah, ah                                ; 2a e4
    76437794    cmp ax, 000fah                            ; 3d fa 00
    7644     jne short 056e8h                          ; 75 3b
     7795    jne short 05750h                          ; 75 3b
    76457796    and bl, 0c8h                              ; 80 e3 c8
    76467797    movzx ax, bh                              ; 0f b6 c7
     
    76587809    ; sub ah, ah                                ; 2a e4
    76597810    test AL, strict byte 001h                 ; a8 01
    7660     jne short 056d7h                          ; 75 08
     7811    jne short 0573fh                          ; 75 08
    76617812    mov AL, strict byte 021h                  ; b0 21
    76627813    mov dx, 00080h                            ; ba 80 00
    76637814    out DX, AL                                ; ee
    7664     jmp short 056c5h                          ; eb ee
     7815    jmp short 0572dh                          ; eb ee
    76657816    mov dx, strict word 00060h                ; ba 60 00
    76667817    in AL, DX                                 ; ec
     
    76707821    mov dx, 00097h                            ; ba 97 00
    76717822    mov ax, strict word 00040h                ; b8 40 00
    7672     call 0165eh                               ; e8 76 bf
     7823    call 016c6h                               ; e8 76 bf
    76737824    sti                                       ; fb
    76747825    mov ax, word [bp+012h]                    ; 8b 46 12
    76757826    shr ax, 008h                              ; c1 e8 08
    76767827    cmp ax, 000a2h                            ; 3d a2 00
    7677     jnbe near 058f5h                          ; 0f 87 ff 01
     7828    jnbe near 0595dh                          ; 0f 87 ff 01
    76787829    push CS                                   ; 0e
    76797830    pop ES                                    ; 07
    76807831    mov cx, strict word 0000ch                ; b9 0c 00
    7681     mov di, 05634h                            ; bf 34 56
     7832    mov di, 0569ch                            ; bf 9c 56
    76827833    repne scasb                               ; f2 ae
    76837834    sal cx, 1                                 ; d1 e1
    76847835    mov di, cx                                ; 89 cf
    7685     mov ax, word [cs:di+0563fh]               ; 2e 8b 85 3f 56
     7836    mov ax, word [cs:di+056a7h]               ; 2e 8b 85 a7 56
    76867837    jmp ax                                    ; ff e0
    76877838    push strict byte 00001h                   ; 6a 01
     
    76907841    mov dx, ss                                ; 8c d2
    76917842    lea ax, [bp-006h]                         ; 8d 46 fa
    7692     call 055c3h                               ; e8 a9 fe
     7843    call 0562bh                               ; e8 a9 fe
    76937844    test ax, ax                               ; 85 c0
    7694     jne short 05729h                          ; 75 0b
     7845    jne short 05791h                          ; 75 0b
    76957846    push 0060fh                               ; 68 0f 06
    76967847    push strict byte 00007h                   ; 6a 07
    7697     call 01972h                               ; e8 4c c2
     7848    call 019dah                               ; e8 4c c2
    76987849    add sp, strict byte 00004h                ; 83 c4 04
    76997850    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7700     je short 05735h                           ; 74 06
     7851    je short 0579dh                           ; 74 06
    77017852    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7702     je short 0573bh                           ; 74 06
     7853    je short 057a3h                           ; 74 06
    77037854    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7704     jne short 0573fh                          ; 75 04
     7855    jne short 057a7h                          ; 75 04
    77057856    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    77067857    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    77097860    or dx, ax                                 ; 09 c2
    77107861    mov word [bp+012h], dx                    ; 89 56 12
    7711     jmp near 05938h                           ; e9 e6 01
     7862    jmp near 059a0h                           ; e9 e6 01
    77127863    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    77137864    push strict byte 00000h                   ; 6a 00
     
    77167867    mov dx, ss                                ; 8c d2
    77177868    lea ax, [bp-006h]                         ; 8d 46 fa
    7718     call 055c3h                               ; e8 5d fe
     7869    call 0562bh                               ; e8 5d fe
    77197870    test ax, ax                               ; 85 c0
    7720     jne short 05771h                          ; 75 07
     7871    jne short 057d9h                          ; 75 07
    77217872    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
    7722     jmp near 05938h                           ; e9 c7 01
     7873    jmp near 059a0h                           ; e9 c7 01
    77237874    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7724     je short 0577dh                           ; 74 06
     7875    je short 057e5h                           ; 74 06
    77257876    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7726     je short 05783h                           ; 74 06
     7877    je short 057ebh                           ; 74 06
    77277878    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7728     jne short 05787h                          ; 75 04
     7879    jne short 057efh                          ; 75 04
    77297880    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    77307881    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    77347885    mov word [bp+012h], dx                    ; 89 56 12
    77357886    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
    7736     jmp near 05938h                           ; e9 9a 01
     7887    jmp near 059a0h                           ; e9 9a 01
    77377888    mov dx, strict word 00017h                ; ba 17 00
    77387889    mov ax, strict word 00040h                ; b8 40 00
    7739     call 01650h                               ; e8 a9 be
     7890    call 016b8h                               ; e8 a9 be
    77407891    mov dx, word [bp+012h]                    ; 8b 56 12
    77417892    mov dl, al                                ; 88 c2
    7742     jmp short 0574ch                          ; eb 9e
     7893    jmp short 057b4h                          ; eb 9e
    77437894    mov al, byte [bp+010h]                    ; 8a 46 10
    77447895    movzx dx, al                              ; 0f b6 d0
     
    77467897    shr ax, 008h                              ; c1 e8 08
    77477898    xor ah, ah                                ; 30 e4
    7748     call 050b6h                               ; e8 f7 f8
     7899    call 0511eh                               ; e8 f7 f8
    77497900    test ax, ax                               ; 85 c0
    7750     jne short 057d0h                          ; 75 0d
     7901    jne short 05838h                          ; 75 0d
    77517902    mov ax, word [bp+012h]                    ; 8b 46 12
    77527903    xor al, al                                ; 30 c0
    77537904    or AL, strict byte 001h                   ; 0c 01
    77547905    mov word [bp+012h], ax                    ; 89 46 12
    7755     jmp near 05938h                           ; e9 68 01
     7906    jmp near 059a0h                           ; e9 68 01
    77567907    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    7757     jmp near 05938h                           ; e9 60 01
     7908    jmp near 059a0h                           ; e9 60 01
    77587909    mov ax, word [bp+012h]                    ; 8b 46 12
    77597910    xor al, al                                ; 30 c0
    77607911    or AL, strict byte 030h                   ; 0c 30
    7761     jmp short 057cah                          ; eb e9
     7912    jmp short 05832h                          ; eb e9
    77627913    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    77637914    xor cx, cx                                ; 31 c9
     
    77727923    ; sub ah, ah                                ; 2a e4
    77737924    test AL, strict byte 001h                 ; a8 01
    7774     jne short 05808h                          ; 75 0d
     7925    jne short 05870h                          ; 75 0d
    77757926    dec bx                                    ; 4b
    77767927    test bx, bx                               ; 85 db
    7777     jbe short 05808h                          ; 76 08
     7928    jbe short 05870h                          ; 76 08
    77787929    mov dx, 00080h                            ; ba 80 00
    77797930    in AL, DX                                 ; ec
    77807931    db  02ah, 0e4h
    77817932    ; sub ah, ah                                ; 2a e4
    7782     jmp short 057f1h                          ; eb e9
     7933    jmp short 05859h                          ; eb e9
    77837934    test bx, bx                               ; 85 db
    7784     jbe short 0584ch                          ; 76 40
     7935    jbe short 058b4h                          ; 76 40
    77857936    mov dx, strict word 00060h                ; ba 60 00
    77867937    in AL, DX                                 ; ec
     
    77887939    ; sub ah, ah                                ; 2a e4
    77897940    cmp ax, 000fah                            ; 3d fa 00
    7790     jne short 0584ch                          ; 75 35
     7941    jne short 058b4h                          ; 75 35
    77917942    mov bx, strict word 0ffffh                ; bb ff ff
    77927943    mov dx, strict word 00064h                ; ba 64 00
     
    77957946    ; sub ah, ah                                ; 2a e4
    77967947    test AL, strict byte 001h                 ; a8 01
    7797     jne short 05831h                          ; 75 0d
     7948    jne short 05899h                          ; 75 0d
    77987949    dec bx                                    ; 4b
    77997950    test bx, bx                               ; 85 db
    7800     jbe short 05831h                          ; 76 08
     7951    jbe short 05899h                          ; 76 08
    78017952    mov dx, 00080h                            ; ba 80 00
    78027953    in AL, DX                                 ; ec
    78037954    db  02ah, 0e4h
    78047955    ; sub ah, ah                                ; 2a e4
    7805     jmp short 0581ah                          ; eb e9
     7956    jmp short 05882h                          ; eb e9
    78067957    test bx, bx                               ; 85 db
    7807     jbe short 05843h                          ; 76 0e
     7958    jbe short 058abh                          ; 76 0e
    78087959    shr cx, 008h                              ; c1 e9 08
    78097960    mov dx, strict word 00060h                ; ba 60 00
     
    78157966    dec byte [bp-004h]                        ; fe 4e fc
    78167967    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7817     jnbe short 05817h                         ; 77 cb
     7968    jnbe short 0587fh                         ; 77 cb
    78187969    mov word [bp+00ch], cx                    ; 89 4e 0c
    7819     jmp near 05938h                           ; e9 e6 00
     7970    jmp near 059a0h                           ; e9 e6 00
    78207971    push strict byte 00001h                   ; 6a 01
    78217972    mov cx, ss                                ; 8c d1
     
    78237974    mov dx, ss                                ; 8c d2
    78247975    lea ax, [bp-006h]                         ; 8d 46 fa
    7825     call 055c3h                               ; e8 62 fd
     7976    call 0562bh                               ; e8 62 fd
    78267977    test ax, ax                               ; 85 c0
    7827     jne short 05870h                          ; 75 0b
     7978    jne short 058d8h                          ; 75 0b
    78287979    push 0060fh                               ; 68 0f 06
    78297980    push strict byte 00007h                   ; 6a 07
    7830     call 01972h                               ; e8 05 c1
     7981    call 019dah                               ; e8 05 c1
    78317982    add sp, strict byte 00004h                ; 83 c4 04
    78327983    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7833     je near 0573fh                            ; 0f 84 c7 fe
     7984    je near 057a7h                            ; 0f 84 c7 fe
    78347985    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7835     je near 0573bh                            ; 0f 84 bb fe
    7836     jmp near 0573fh                           ; e9 bc fe
     7986    je near 057a3h                            ; 0f 84 bb fe
     7987    jmp near 057a7h                           ; e9 bc fe
    78377988    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    78387989    push strict byte 00000h                   ; 6a 00
     
    78417992    mov dx, ss                                ; 8c d2
    78427993    lea ax, [bp-006h]                         ; 8d 46 fa
    7843     call 055c3h                               ; e8 2c fd
     7994    call 0562bh                               ; e8 2c fd
    78447995    test ax, ax                               ; 85 c0
    7845     je near 0576ah                            ; 0f 84 cd fe
     7996    je near 057d2h                            ; 0f 84 cd fe
    78467997    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7847     je near 05787h                            ; 0f 84 e2 fe
     7998    je near 057efh                            ; 0f 84 e2 fe
    78487999    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7849     je near 05783h                            ; 0f 84 d6 fe
    7850     jmp near 05787h                           ; e9 d7 fe
     8000    je near 057ebh                            ; 0f 84 d6 fe
     8001    jmp near 057efh                           ; e9 d7 fe
    78518002    mov dx, strict word 00017h                ; ba 17 00
    78528003    mov ax, strict word 00040h                ; b8 40 00
    7853     call 01650h                               ; e8 97 bd
     8004    call 016b8h                               ; e8 97 bd
    78548005    mov dx, word [bp+012h]                    ; 8b 56 12
    78558006    mov dl, al                                ; 88 c2
     
    78578008    mov dx, strict word 00018h                ; ba 18 00
    78588009    mov ax, strict word 00040h                ; b8 40 00
    7859     call 01650h                               ; e8 86 bd
     8010    call 016b8h                               ; e8 86 bd
    78608011    mov bh, al                                ; 88 c7
    78618012    and bh, 073h                              ; 80 e7 73
    78628013    mov dx, 00096h                            ; ba 96 00
    78638014    mov ax, strict word 00040h                ; b8 40 00
    7864     call 01650h                               ; e8 78 bd
     8015    call 016b8h                               ; e8 78 bd
    78658016    and AL, strict byte 00ch                  ; 24 0c
    78668017    or bh, al                                 ; 08 c7
     
    78698020    movzx ax, bh                              ; 0f b6 c7
    78708021    sal ax, 008h                              ; c1 e0 08
    7871     jmp near 0574ah                           ; e9 60 fe
     8022    jmp near 057b2h                           ; e9 60 fe
    78728023    mov ax, word [bp+012h]                    ; 8b 46 12
    78738024    xor ah, ah                                ; 30 e4
    78748025    or ah, 080h                               ; 80 cc 80
    7875     jmp near 057cah                           ; e9 d5 fe
     8026    jmp near 05832h                           ; e9 d5 fe
    78768027    mov bx, 00da0h                            ; bb a0 0d
    78778028    mov cx, ds                                ; 8c d9
    78788029    mov ax, strict word 00004h                ; b8 04 00
    7879     call 01931h                               ; e8 31 c0
     8030    call 01999h                               ; e8 31 c0
    78808031    mov ax, word [bp+012h]                    ; 8b 46 12
    78818032    shr ax, 008h                              ; c1 e8 08
     
    78838034    push 00633h                               ; 68 33 06
    78848035    push strict byte 00004h                   ; 6a 04
    7885     call 01972h                               ; e8 63 c0
     8036    call 019dah                               ; e8 63 c0
    78868037    add sp, strict byte 00006h                ; 83 c4 06
    78878038    mov bx, 00da0h                            ; bb a0 0d
    78888039    mov cx, ds                                ; 8c d9
    78898040    mov ax, strict word 00004h                ; b8 04 00
    7890     call 01931h                               ; e8 14 c0
     8041    call 01999h                               ; e8 14 c0
    78918042    mov ax, word [bp+00eh]                    ; 8b 46 0e
    78928043    push ax                                   ; 50
     
    78998050    push 0065bh                               ; 68 5b 06
    79008051    push strict byte 00004h                   ; 6a 04
    7901     call 01972h                               ; e8 3d c0
     8052    call 019dah                               ; e8 3d c0
    79028053    add sp, strict byte 0000ch                ; 83 c4 0c
    79038054    lea sp, [bp-002h]                         ; 8d 66 fe
     
    79058056    pop bp                                    ; 5d
    79068057    retn                                      ; c3
    7907 set_geom_lba_:                               ; 0xf593e LB 0xe5
     8058set_geom_lba_:                               ; 0xf59a6 LB 0xe5
    79088059    push bx                                   ; 53
    79098060    push cx                                   ; 51
     
    79208071    mov dx, word [bp+00ch]                    ; 8b 56 0c
    79218072    mov si, strict word 00020h                ; be 20 00
    7922     call 09e6ah                               ; e8 01 45
     8073    call 09f00h                               ; e8 2f 45
    79238074    test ax, ax                               ; 85 c0
    7924     jne short 05979h                          ; 75 0c
     8075    jne short 059e1h                          ; 75 0c
    79258076    test bx, bx                               ; 85 db
    7926     jne short 05979h                          ; 75 08
     8077    jne short 059e1h                          ; 75 08
    79278078    test cx, cx                               ; 85 c9
    7928     jne short 05979h                          ; 75 04
     8079    jne short 059e1h                          ; 75 04
    79298080    test dx, dx                               ; 85 d2
    7930     je short 05980h                           ; 74 07
     8081    je short 059e8h                           ; 74 07
    79318082    mov bx, strict word 0ffffh                ; bb ff ff
    79328083    mov si, bx                                ; 89 de
    7933     jmp short 05986h                          ; eb 06
     8084    jmp short 059eeh                          ; eb 06
    79348085    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    79358086    mov si, word [bp+00eh]                    ; 8b 76 0e
    79368087    mov word [bp-004h], bx                    ; 89 5e fc
    79378088    xor bx, bx                                ; 31 db
    7938     jmp short 05992h                          ; eb 05
     8089    jmp short 059fah                          ; eb 05
    79398090    cmp bx, strict byte 00004h                ; 83 fb 04
    7940     jnl short 059b5h                          ; 7d 23
     8091    jnl short 05a1dh                          ; 7d 23
    79418092    mov ax, word [bp-006h]                    ; 8b 46 fa
    79428093    cmp si, ax                                ; 39 c6
    7943     jc short 059a3h                           ; 72 0a
    7944     jne short 059ach                          ; 75 11
     8094    jc short 05a0bh                           ; 72 0a
     8095    jne short 05a14h                          ; 75 11
    79458096    mov ax, word [bp-004h]                    ; 8b 46 fc
    79468097    cmp ax, word [bp-008h]                    ; 3b 46 f8
    7947     jnbe short 059ach                         ; 77 09
     8098    jnbe short 05a14h                         ; 77 09
    79488099    mov ax, word [bp-002h]                    ; 8b 46 fe
    79498100    inc ax                                    ; 40
     
    79538104    rcr word [bp-008h], 1                     ; d1 5e f8
    79548105    inc bx                                    ; 43
    7955     jmp short 0598dh                          ; eb d8
     8106    jmp short 059f5h                          ; eb d8
    79568107    mov ax, word [bp-002h]                    ; 8b 46 fe
    79578108    xor dx, dx                                ; 31 d2
    79588109    mov bx, strict word 0003fh                ; bb 3f 00
    79598110    xor cx, cx                                ; 31 c9
    7960     call 09e29h                               ; e8 67 44
     8111    call 09e80h                               ; e8 56 44
    79618112    mov bx, ax                                ; 89 c3
    79628113    mov cx, dx                                ; 89 d1
    79638114    mov ax, word [bp-004h]                    ; 8b 46 fc
    79648115    mov dx, si                                ; 89 f2
    7965     call 09df0h                               ; e8 22 44
     8116    call 09ec0h                               ; e8 8a 44
    79668117    mov word [es:di+002h], ax                 ; 26 89 45 02
    79678118    cmp ax, 00400h                            ; 3d 00 04
    7968     jbe short 059ddh                          ; 76 06
     8119    jbe short 05a45h                          ; 76 06
    79698120    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
    79708121    mov ax, word [bp-002h]                    ; 8b 46 fe
     
    79778128    pop bx                                    ; 5b
    79788129    retn 00008h                               ; c2 08 00
    7979     lodsw                                     ; ad
    7980     pop dx                                    ; 5a
    7981     rcr word [byte bp+si+000h], CL            ; d3 5a 00
     8130    adc ax, 03b5bh                            ; 15 5b 3b
    79828131    pop bx                                    ; 5b
    7983     add byte [byte bp+di+000h], bl            ; 00 5b 00
     8132    push 0685bh                               ; 68 5b 68
    79848133    pop bx                                    ; 5b
    7985     loope 05a59h                              ; e1 5c
    7986     divps xmm1, oword [bx]                    ; 0f 5e 0f
     8134    push 0495bh                               ; 68 5b 49
     8135    pop bp                                    ; 5d
     8136    jnbe short 05ac5h                         ; 77 5e
     8137    jnbe short 05ac7h                         ; 77 5e
     8138    bound bx, [di+054h]                       ; 62 5d 54
    79878139    pop si                                    ; 5e
    7988     cli                                       ; fa
    7989     pop sp                                    ; 5c
    7990     in AL, DX                                 ; ec
    7991     pop bp                                    ; 5d
    7992     divps xmm1, oword [bx]                    ; 0f 5e 0f
     8140    jnbe short 05acdh                         ; 77 5e
     8141    jnbe short 05acfh                         ; 77 5e
     8142    push sp                                   ; 54
    79938143    pop si                                    ; 5e
    7994     in AL, DX                                 ; ec
    7995     pop bp                                    ; 5d
    7996     in AL, DX                                 ; ec
    7997     pop bp                                    ; 5d
    7998     divps xmm1, oword [bx]                    ; 0f 5e 0f
     8144    push sp                                   ; 54
    79998145    pop si                                    ; 5e
    8000     jo short 05a70h                           ; 70 5d
    8001     in AL, DX                                 ; ec
    8002     pop bp                                    ; 5d
    8003     divps xmm1, oword [bx]                    ; 0f 5e 0f
     8146    jnbe short 05ad5h                         ; 77 5e
     8147    jnbe short 05ad7h                         ; 77 5e
     8148    fcomp dword [di+054h]                     ; d8 5d 54
    80048149    pop si                                    ; 5e
    8005     in AL, DX                                 ; ec
    8006     pop bp                                    ; 5d
    8007     mov AL, byte [00f5dh]                     ; a0 5d 0f
     8150    jnbe short 05addh                         ; 77 5e
     8151    jnbe short 05adfh                         ; 77 5e
     8152    push sp                                   ; 54
    80088153    pop si                                    ; 5e
    8009     divps xmm1, oword [bx]                    ; 0f 5e 0f
     8154    or byte [bp+077h], bl                     ; 08 5e 77
    80108155    pop si                                    ; 5e
    8011 _int13_harddisk:                             ; 0xf5a23 LB 0x44a
     8156    jnbe short 05ae7h                         ; 77 5e
     8157    jnbe short 05ae9h                         ; 77 5e
     8158_int13_harddisk:                             ; 0xf5a8b LB 0x44a
    80128159    push bp                                   ; 55
    80138160    mov bp, sp                                ; 89 e5
     
    80158162    mov dx, strict word 0000eh                ; ba 0e 00
    80168163    mov ax, strict word 00040h                ; b8 40 00
    8017     call 0166ch                               ; e8 3a bc
     8164    call 016d4h                               ; e8 3a bc
    80188165    mov si, 00122h                            ; be 22 01
    80198166    mov word [bp-004h], ax                    ; 89 46 fc
     
    80218168    mov dx, 0008eh                            ; ba 8e 00
    80228169    mov ax, strict word 00040h                ; b8 40 00
    8023     call 0165eh                               ; e8 1b bc
     8170    call 016c6h                               ; e8 1b bc
    80248171    mov ax, word [bp+00eh]                    ; 8b 46 0e
    80258172    xor ah, ah                                ; 30 e4
    80268173    cmp ax, 00080h                            ; 3d 80 00
    8027     jc short 05a52h                           ; 72 05
     8174    jc short 05abah                           ; 72 05
    80288175    cmp ax, 00090h                            ; 3d 90 00
    8029     jc short 05a70h                           ; 72 1e
     8176    jc short 05ad8h                           ; 72 1e
    80308177    mov ax, word [bp+00eh]                    ; 8b 46 0e
    80318178    xor ah, ah                                ; 30 e4
     
    80378184    push 0068dh                               ; 68 8d 06
    80388185    push strict byte 00004h                   ; 6a 04
    8039     call 01972h                               ; e8 08 bf
     8186    call 019dah                               ; e8 08 bf
    80408187    add sp, strict byte 0000ah                ; 83 c4 0a
    8041     jmp near 05e2ah                           ; e9 ba 03
     8188    jmp near 05e92h                           ; e9 ba 03
    80428189    mov ax, word [bp+00eh]                    ; 8b 46 0e
    80438190    xor ah, ah                                ; 30 e4
     
    80488195    mov byte [bp-002h], dl                    ; 88 56 fe
    80498196    cmp dl, 010h                              ; 80 fa 10
    8050     jc short 05a99h                           ; 72 10
     8197    jc short 05b01h                           ; 72 10
    80518198    push ax                                   ; 50
    80528199    mov ax, word [bp+016h]                    ; 8b 46 16
     
    80558202    push 0067eh                               ; 68 7e 06
    80568203    push 006b8h                               ; 68 b8 06
    8057     jmp short 05a65h                          ; eb cc
     8204    jmp short 05acdh                          ; eb cc
    80588205    mov bx, word [bp+016h]                    ; 8b 5e 16
    80598206    shr bx, 008h                              ; c1 eb 08
    80608207    cmp bx, strict byte 00018h                ; 83 fb 18
    8061     jnbe near 05e0fh                          ; 0f 87 69 03
     8208    jnbe near 05e77h                          ; 0f 87 69 03
    80628209    add bx, bx                                ; 01 db
    8063     jmp word [cs:bx+059f1h]                   ; 2e ff a7 f1 59
     8210    jmp word [cs:bx+05a59h]                   ; 2e ff a7 59 5a
    80648211    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8065     jnc near 05abch                           ; 0f 83 07 00
     8212    jnc near 05b24h                           ; 0f 83 07 00
    80668213    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    8067     call 01d7ch                               ; e8 c0 c2
     8214    call 01de4h                               ; e8 c0 c2
    80688215    mov byte [bp+017h], 000h                  ; c6 46 17 00
    80698216    xor bx, bx                                ; 31 db
    80708217    mov dx, strict word 00074h                ; ba 74 00
    80718218    mov ax, strict word 00040h                ; b8 40 00
    8072     call 0165eh                               ; e8 93 bb
     8219    call 016c6h                               ; e8 93 bb
    80738220    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    80748221    mov sp, bp                                ; 89 ec
     
    80778224    mov dx, strict word 00074h                ; ba 74 00
    80788225    mov ax, strict word 00040h                ; b8 40 00
    8079     call 01650h                               ; e8 74 bb
     8226    call 016b8h                               ; e8 74 bb
    80808227    mov cl, al                                ; 88 c1
    80818228    mov dx, word [bp+016h]                    ; 8b 56 16
     
    80888235    mov dx, strict word 00074h                ; ba 74 00
    80898236    mov ax, strict word 00040h                ; b8 40 00
    8090     call 0165eh                               ; e8 65 bb
     8237    call 016c6h                               ; e8 65 bb
    80918238    test cl, cl                               ; 84 c9
    8092     je short 05ac0h                           ; 74 c3
    8093     jmp near 05e46h                           ; e9 46 03
     8239    je short 05b28h                           ; 74 c3
     8240    jmp near 05eaeh                           ; e9 46 03
    80948241    mov ax, word [bp+016h]                    ; 8b 46 16
    80958242    xor ah, ah                                ; 30 e4
     
    81118258    mov ax, word [bp-00ch]                    ; 8b 46 f4
    81128259    cmp ax, 00080h                            ; 3d 80 00
    8113     jnbe short 05b3bh                         ; 77 04
     8260    jnbe short 05ba3h                         ; 77 04
    81148261    test ax, ax                               ; 85 c0
    8115     jne short 05b5eh                          ; 75 23
     8262    jne short 05bc6h                          ; 75 23
    81168263    mov bx, 00da0h                            ; bb a0 0d
    81178264    mov cx, ds                                ; 8c d9
    81188265    mov ax, strict word 00004h                ; b8 04 00
    8119     call 01931h                               ; e8 eb bd
     8266    call 01999h                               ; e8 eb bd
    81208267    mov ax, word [bp+016h]                    ; 8b 46 16
    81218268    shr ax, 008h                              ; c1 e8 08
     
    81248271    push 006eah                               ; 68 ea 06
    81258272    push strict byte 00004h                   ; 6a 04
    8126     call 01972h                               ; e8 1a be
     8273    call 019dah                               ; e8 1a be
    81278274    add sp, strict byte 00008h                ; 83 c4 08
    8128     jmp near 05e2ah                           ; e9 cc 02
     8275    jmp near 05e92h                           ; e9 cc 02
    81298276    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    81308277    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    81378284    mov word [bp-00ah], dx                    ; 89 56 f6
    81388285    cmp di, ax                                ; 39 c7
    8139     jnc short 05b8bh                          ; 73 0c
     8286    jnc short 05bf3h                          ; 73 0c
    81408287    cmp cx, word [bp-008h]                    ; 3b 4e f8
    8141     jbe short 05b8bh                          ; 76 07
     8288    jbe short 05bf3h                          ; 76 07
    81428289    mov ax, word [bp-006h]                    ; 8b 46 fa
    81438290    cmp ax, dx                                ; 39 d0
    8144     jbe short 05bb9h                          ; 76 2e
     8291    jbe short 05c21h                          ; 76 2e
    81458292    mov bx, 00da0h                            ; bb a0 0d
    81468293    mov cx, ds                                ; 8c d9
    81478294    mov ax, strict word 00004h                ; b8 04 00
    8148     call 01931h                               ; e8 9b bd
     8295    call 01999h                               ; e8 9b bd
    81498296    push dword [bp-008h]                      ; 66 ff 76 f8
    81508297    push di                                   ; 57
     
    81588305    push 00712h                               ; 68 12 07
    81598306    push strict byte 00004h                   ; 6a 04
    8160     call 01972h                               ; e8 bf bd
     8307    call 019dah                               ; e8 bf bd
    81618308    add sp, strict byte 00010h                ; 83 c4 10
    8162     jmp near 05e2ah                           ; e9 71 02
     8309    jmp near 05e92h                           ; e9 71 02
    81638310    mov ax, word [bp+016h]                    ; 8b 46 16
    81648311    shr ax, 008h                              ; c1 e8 08
    81658312    cmp ax, strict word 00004h                ; 3d 04 00
    8166     jne short 05bc7h                          ; 75 03
    8167     jmp near 05abch                           ; e9 f5 fe
     8313    jne short 05c2fh                          ; 75 03
     8314    jmp near 05b24h                           ; e9 f5 fe
    81688315    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    81698316    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    81718318    add bx, si                                ; 01 f3
    81728319    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
    8173     jne short 05be8h                          ; 75 0f
     8320    jne short 05c50h                          ; 75 0f
    81748321    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    81758322    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    8176     jne short 05be8h                          ; 75 06
     8323    jne short 05c50h                          ; 75 06
    81778324    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8178     jc short 05c18h                           ; 72 30
     8325    jc short 05c80h                           ; 72 30
    81798326    mov ax, di                                ; 89 f8
    81808327    xor dx, dx                                ; 31 d2
    81818328    mov bx, cx                                ; 89 cb
    81828329    xor cx, cx                                ; 31 c9
    8183     call 09e29h                               ; e8 36 42
     8330    call 09e80h                               ; e8 25 42
    81848331    xor bx, bx                                ; 31 db
    81858332    add ax, word [bp-008h]                    ; 03 46 f8
     
    81878334    mov bx, word [bp-00ah]                    ; 8b 5e f6
    81888335    xor cx, cx                                ; 31 c9
    8189     call 09e29h                               ; e8 27 42
     8336    call 09e80h                               ; e8 16 42
    81908337    xor bx, bx                                ; 31 db
    81918338    add ax, word [bp-006h]                    ; 03 46 fa
     
    82428389    mov word [bp+016h], bx                    ; 89 5e 16
    82438390    test dl, dl                               ; 84 d2
    8244     je near 05abch                            ; 0f 84 0a fe
     8391    je near 05b24h                            ; 0f 84 0a fe
    82458392    mov bx, 00da0h                            ; bb a0 0d
    82468393    mov cx, ds                                ; 8c d9
    82478394    mov ax, strict word 00004h                ; b8 04 00
    8248     call 01931h                               ; e8 74 bc
     8395    call 01999h                               ; e8 74 bc
    82498396    movzx ax, dl                              ; 0f b6 c2
    82508397    push ax                                   ; 50
     
    82558402    push 00759h                               ; 68 59 07
    82568403    push strict byte 00004h                   ; 6a 04
    8257     call 01972h                               ; e8 9f bc
     8404    call 019dah                               ; e8 9f bc
    82588405    add sp, strict byte 0000ah                ; 83 c4 0a
    82598406    mov ax, word [bp+016h]                    ; 8b 46 16
    82608407    xor ah, ah                                ; 30 e4
    82618408    or ah, 00ch                               ; 80 cc 0c
    8262     jmp near 05e32h                           ; e9 51 01
     8409    jmp near 05e9ah                           ; e9 51 01
    82638410    mov bx, 00da0h                            ; bb a0 0d
    82648411    mov cx, ds                                ; 8c d9
    82658412    mov ax, strict word 00004h                ; b8 04 00
    8266     call 01931h                               ; e8 45 bc
     8413    call 01999h                               ; e8 45 bc
    82678414    push 0077ah                               ; 68 7a 07
    82688415    push strict byte 00004h                   ; 6a 04
    8269     call 01972h                               ; e8 7e bc
     8416    call 019dah                               ; e8 7e bc
    82708417    add sp, strict byte 00004h                ; 83 c4 04
    8271     jmp near 05abch                           ; e9 c2 fd
     8418    jmp near 05b24h                           ; e9 c2 fd
    82728419    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    82738420    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    83128459    or dx, ax                                 ; 09 c2
    83138460    mov word [bp+012h], dx                    ; 89 56 12
    8314     jmp near 05abch                           ; e9 4c fd
     8461    jmp near 05b24h                           ; e9 4c fd
    83158462    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    83168463    cwd                                       ; 99
     
    83288475    and AL, strict byte 0c0h                  ; 24 c0
    83298476    cmp AL, strict byte 040h                  ; 3c 40
    8330     jne short 05d95h                          ; 75 03
    8331     jmp near 05abch                           ; e9 27 fd
     8477    jne short 05dfdh                          ; 75 03
     8478    jmp near 05b24h                           ; e9 27 fd
    83328479    mov ax, word [bp+016h]                    ; 8b 46 16
    83338480    xor ah, ah                                ; 30 e4
    83348481    or ah, 0aah                               ; 80 cc aa
    8335     jmp near 05e32h                           ; e9 92 00
     8482    jmp near 05e9ah                           ; e9 92 00
    83368483    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    83378484    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    83478494    mov bx, word [bp-008h]                    ; 8b 5e f8
    83488495    xor cx, cx                                ; 31 c9
    8349     call 09e29h                               ; e8 5f 40
     8496    call 09e80h                               ; e8 4e 40
    83508497    mov bx, word [bp-006h]                    ; 8b 5e fa
    83518498    xor cx, cx                                ; 31 c9
    8352     call 09e29h                               ; e8 57 40
     8499    call 09e80h                               ; e8 46 40
    83538500    mov word [bp-010h], ax                    ; 89 46 f0
    83548501    mov word [bp-00eh], dx                    ; 89 56 f2
     
    83598506    or ah, 003h                               ; 80 cc 03
    83608507    mov word [bp+016h], ax                    ; 89 46 16
    8361     jmp near 05ac0h                           ; e9 d4 fc
     8508    jmp near 05b28h                           ; e9 d4 fc
    83628509    mov bx, 00da0h                            ; bb a0 0d
    83638510    mov cx, ds                                ; 8c d9
    83648511    mov ax, strict word 00004h                ; b8 04 00
    8365     call 01931h                               ; e8 3a bb
     8512    call 01999h                               ; e8 3a bb
    83668513    mov ax, word [bp+016h]                    ; 8b 46 16
    83678514    shr ax, 008h                              ; c1 e8 08
     
    83708517    push 00794h                               ; 68 94 07
    83718518    push strict byte 00004h                   ; 6a 04
    8372     call 01972h                               ; e8 69 bb
     8519    call 019dah                               ; e8 69 bb
    83738520    add sp, strict byte 00008h                ; 83 c4 08
    8374     jmp near 05abch                           ; e9 ad fc
     8521    jmp near 05b24h                           ; e9 ad fc
    83758522    mov bx, 00da0h                            ; bb a0 0d
    83768523    mov cx, ds                                ; 8c d9
    83778524    mov ax, strict word 00004h                ; b8 04 00
    8378     call 01931h                               ; e8 17 bb
     8525    call 01999h                               ; e8 17 bb
    83798526    mov ax, word [bp+016h]                    ; 8b 46 16
    83808527    shr ax, 008h                              ; c1 e8 08
     
    83828529    push 0067eh                               ; 68 7e 06
    83838530    push 007c7h                               ; 68 c7 07
    8384     jmp near 05b53h                           ; e9 29 fd
     8531    jmp near 05bbbh                           ; e9 29 fd
    83858532    mov ax, word [bp+016h]                    ; 8b 46 16
    83868533    xor ah, ah                                ; 30 e4
     
    83928539    mov dx, strict word 00074h                ; ba 74 00
    83938540    mov ax, strict word 00040h                ; b8 40 00
    8394     call 0165eh                               ; e8 18 b8
     8541    call 016c6h                               ; e8 18 b8
    83958542    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8396     jmp near 05acfh                           ; e9 82 fc
    8397     or bx, word [bx+023h]                     ; 0b 5f 23
     8543    jmp near 05b37h                           ; e9 82 fc
     8544    jnc short 05f16h                          ; 73 5f
     8545    mov bx, word [bx-075h]                    ; 8b 5f 8b
    83988546    pop di                                    ; 5f
    8399     and bx, word [bx+023h]                    ; 23 5f 23
     8547    mov bx, word [bx+05fh]                    ; 8b 5f 5f
     8548    arpl ax, sp                               ; 63 e0
     8549    pushaw                                    ; 60
     8550    mov bx, word [bx-01ah]                    ; 8b 5f e6
     8551    pushaw                                    ; 60
    84008552    pop di                                    ; 5f
    8401     mul word [bp+si+078h]                     ; f7 62 78
    8402     pushaw                                    ; 60
    8403     and bx, word [bx+07eh]                    ; 23 5f 7e
    8404     pushaw                                    ; 60
    8405     mul word [bp+si+046h]                     ; f7 62 46
    8406     arpl [bp+063h], ax                        ; 63 46 63
    8407     inc si                                    ; 46
    8408     arpl [bp+063h], ax                        ; 63 46 63
    8409     push CS                                   ; 0e
    8410     arpl [bp+063h], ax                        ; 63 46 63
    8411     inc si                                    ; 46
     8553    arpl [bp-0519dh], bp                      ; 63 ae 63 ae
     8554    arpl [bp-0519dh], bp                      ; 63 ae 63 ae
     8555    arpl [bp+063h], si                        ; 63 76 63
     8556    scasb                                     ; ae
    84128557    db  063h
    8413 _int13_harddisk_ext:                         ; 0xf5e6d LB 0x4f4
     8558    scasb                                     ; ae
     8559    db  063h
     8560_int13_harddisk_ext:                         ; 0xf5ed5 LB 0x4f4
    84148561    push bp                                   ; 55
    84158562    mov bp, sp                                ; 89 e5
     
    84178564    mov dx, strict word 0000eh                ; ba 0e 00
    84188565    mov ax, strict word 00040h                ; b8 40 00
    8419     call 0166ch                               ; e8 f0 b7
     8566    call 016d4h                               ; e8 f0 b7
    84208567    mov word [bp-014h], ax                    ; 89 46 ec
    84218568    mov dx, strict word 0000eh                ; ba 0e 00
    84228569    mov ax, strict word 00040h                ; b8 40 00
    8423     call 0166ch                               ; e8 e4 b7
     8570    call 016d4h                               ; e8 e4 b7
    84248571    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
    84258572    mov word [bp-006h], ax                    ; 89 46 fa
     
    84278574    mov dx, 0008eh                            ; ba 8e 00
    84288575    mov ax, strict word 00040h                ; b8 40 00
    8429     call 0165eh                               ; e8 c3 b7
     8576    call 016c6h                               ; e8 c3 b7
    84308577    mov ax, word [bp+00eh]                    ; 8b 46 0e
    84318578    xor ah, ah                                ; 30 e4
    84328579    cmp ax, 00080h                            ; 3d 80 00
    8433     jc short 05eaah                           ; 72 05
     8580    jc short 05f12h                           ; 72 05
    84348581    cmp ax, 00090h                            ; 3d 90 00
    8435     jc short 05ec8h                           ; 72 1e
     8582    jc short 05f30h                           ; 72 1e
    84368583    mov ax, word [bp+00eh]                    ; 8b 46 0e
    84378584    xor ah, ah                                ; 30 e4
     
    84438590    push 0068dh                               ; 68 8d 06
    84448591    push strict byte 00004h                   ; 6a 04
    8445     call 01972h                               ; e8 b0 ba
     8592    call 019dah                               ; e8 b0 ba
    84468593    add sp, strict byte 0000ah                ; 83 c4 0a
    8447     jmp near 06324h                           ; e9 5c 04
     8594    jmp near 0638ch                           ; e9 5c 04
    84488595    mov ax, word [bp+00eh]                    ; 8b 46 0e
    84498596    xor ah, ah                                ; 30 e4
     
    84538600    mov byte [bp-004h], dl                    ; 88 56 fc
    84548601    cmp dl, 010h                              ; 80 fa 10
    8455     jc short 05eefh                           ; 72 10
     8602    jc short 05f57h                           ; 72 10
    84568603    push ax                                   ; 50
    84578604    mov ax, word [bp+016h]                    ; 8b 46 16
     
    84608607    push 007f5h                               ; 68 f5 07
    84618608    push 006b8h                               ; 68 b8 06
    8462     jmp short 05ebdh                          ; eb ce
     8609    jmp short 05f25h                          ; eb ce
    84638610    mov bx, word [bp+016h]                    ; 8b 5e 16
    84648611    shr bx, 008h                              ; c1 eb 08
    84658612    sub bx, strict byte 00041h                ; 83 eb 41
    84668613    cmp bx, strict byte 0000fh                ; 83 fb 0f
    8467     jnbe near 06346h                          ; 0f 87 47 04
     8614    jnbe near 063aeh                          ; 0f 87 47 04
    84688615    add bx, bx                                ; 01 db
    84698616    mov ax, word [bp+016h]                    ; 8b 46 16
    84708617    xor ah, ah                                ; 30 e4
    8471     jmp word [cs:bx+05e4dh]                   ; 2e ff a7 4d 5e
     8618    jmp word [cs:bx+05eb5h]                   ; 2e ff a7 b5 5e
    84728619    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    84738620    mov ax, word [bp+016h]                    ; 8b 46 16
     
    84768623    mov word [bp+016h], ax                    ; 89 46 16
    84778624    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    8478     jmp near 062fbh                           ; e9 d8 03
     8625    jmp near 06363h                           ; e9 d8 03
    84798626    mov di, word [bp+00ah]                    ; 8b 7e 0a
    84808627    mov es, [bp+004h]                         ; 8e 46 04
     
    84928639    xor bx, bx                                ; 31 db
    84938640    mov si, strict word 00020h                ; be 20 00
    8494     call 09e5ah                               ; e8 04 3f
     8641    call 09f10h                               ; e8 52 3f
    84958642    mov word [bp-00eh], bx                    ; 89 5e f2
    84968643    mov bx, word [es:di+008h]                 ; 26 8b 5d 08
     
    85048651    mov bl, byte [es:di+022h]                 ; 26 8a 5d 22
    85058652    cmp ax, word [es:di+03ch]                 ; 26 3b 45 3c
    8506     jnbe short 05f9dh                         ; 77 22
    8507     jne short 05fc0h                          ; 75 43
     8653    jnbe short 06005h                         ; 77 22
     8654    jne short 06028h                          ; 75 43
    85088655    mov si, word [bp-00eh]                    ; 8b 76 f2
    85098656    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
    8510     jnbe short 05f9dh                         ; 77 17
     8657    jnbe short 06005h                         ; 77 17
    85118658    mov si, word [bp-00eh]                    ; 8b 76 f2
    85128659    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
    8513     jne short 05fc0h                          ; 75 31
     8660    jne short 06028h                          ; 75 31
    85148661    cmp cx, word [es:di+038h]                 ; 26 3b 4d 38
    8515     jnbe short 05f9dh                         ; 77 08
    8516     jne short 05fc0h                          ; 75 29
     8662    jnbe short 06005h                         ; 77 08
     8663    jne short 06028h                          ; 75 29
    85178664    cmp dx, word [es:di+036h]                 ; 26 3b 55 36
    8518     jc short 05fc0h                           ; 72 23
     8665    jc short 06028h                           ; 72 23
    85198666    mov bx, 00da0h                            ; bb a0 0d
    85208667    mov cx, ds                                ; 8c d9
    85218668    mov ax, strict word 00004h                ; b8 04 00
    8522     call 01931h                               ; e8 89 b9
     8669    call 01999h                               ; e8 89 b9
    85238670    mov ax, word [bp+016h]                    ; 8b 46 16
    85248671    shr ax, 008h                              ; c1 e8 08
     
    85278674    push 00808h                               ; 68 08 08
    85288675    push strict byte 00004h                   ; 6a 04
    8529     call 01972h                               ; e8 b8 b9
     8676    call 019dah                               ; e8 b8 b9
    85308677    add sp, strict byte 00008h                ; 83 c4 08
    8531     jmp near 06324h                           ; e9 64 03
     8678    jmp near 0638ch                           ; e9 64 03
    85328679    mov di, word [bp+016h]                    ; 8b 7e 16
    85338680    shr di, 008h                              ; c1 ef 08
    85348681    cmp di, strict byte 00044h                ; 83 ff 44
    8535     je near 062f7h                            ; 0f 84 2a 03
     8682    je near 0635fh                            ; 0f 84 2a 03
    85368683    cmp di, strict byte 00047h                ; 83 ff 47
    8537     je near 062f7h                            ; 0f 84 23 03
     8684    je near 0635fh                            ; 0f 84 23 03
    85388685    les si, [bp-008h]                         ; c4 76 f8
    85398686    db  066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h
     
    85728719    mov word [es:bx+002h], ax                 ; 26 89 47 02
    85738720    test dl, dl                               ; 84 d2
    8574     je near 062f7h                            ; 0f 84 a8 02
     8721    je near 0635fh                            ; 0f 84 a8 02
    85758722    mov bx, 00da0h                            ; bb a0 0d
    85768723    mov cx, ds                                ; 8c d9
    85778724    mov ax, strict word 00004h                ; b8 04 00
    8578     call 01931h                               ; e8 d7 b8
     8725    call 01999h                               ; e8 d7 b8
    85798726    movzx ax, dl                              ; 0f b6 c2
    85808727    push ax                                   ; 50
     
    85838730    push 00759h                               ; 68 59 07
    85848731    push strict byte 00004h                   ; 6a 04
    8585     call 01972h                               ; e8 08 b9
     8732    call 019dah                               ; e8 08 b9
    85868733    add sp, strict byte 0000ah                ; 83 c4 0a
    85878734    mov ax, word [bp+016h]                    ; 8b 46 16
    85888735    xor ah, ah                                ; 30 e4
    85898736    or ah, 00ch                               ; 80 cc 0c
    8590     jmp near 0632ch                           ; e9 b4 02
     8737    jmp near 06394h                           ; e9 b4 02
    85918738    or ah, 0b2h                               ; 80 cc b2
    8592     jmp near 0632ch                           ; e9 ae 02
     8739    jmp near 06394h                           ; e9 ae 02
    85938740    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    85948741    mov ax, word [bp+004h]                    ; 8b 46 04
     
    86008747    mov word [bp-010h], ax                    ; 89 46 f0
    86018748    cmp ax, strict word 0001ah                ; 3d 1a 00
    8602     jc near 06324h                            ; 0f 82 89 02
    8603     jc near 0613ah                            ; 0f 82 9b 00
     8749    jc near 0638ch                            ; 0f 82 89 02
     8750    jc near 061a2h                            ; 0f 82 9b 00
    86048751    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    86058752    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    86438790    mov bx, word [bp-00eh]                    ; 8b 5e f2
    86448791    mov si, strict word 00020h                ; be 20 00
    8645     call 09e6ah                               ; e8 3a 3d
     8792    call 09f00h                               ; e8 68 3d
    86468793    mov bx, di                                ; 89 fb
    86478794    mov word [es:bx+014h], dx                 ; 26 89 57 14
    86488795    mov word [es:bx+016h], cx                 ; 26 89 4f 16
    86498796    cmp word [bp-010h], strict byte 0001eh    ; 83 7e f0 1e
    8650     jc near 0623fh                            ; 0f 82 fd 00
     8797    jc near 062a7h                            ; 0f 82 fd 00
    86518798    mov es, [bp-00ah]                         ; 8e 46 f6
    86528799    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
     
    86748821    mov al, byte [es:bx+027h]                 ; 26 8a 47 27
    86758822    test al, al                               ; 84 c0
    8676     jne short 06199h                          ; 75 04
     8823    jne short 06201h                          ; 75 04
    86778824    xor bx, bx                                ; 31 db
    8678     jmp short 0619ch                          ; eb 03
     8825    jmp short 06204h                          ; eb 03
    86798826    mov bx, strict word 00008h                ; bb 08 00
    86808827    or bl, 010h                               ; 80 cb 10
     
    86908837    or bx, cx                                 ; 09 cb
    86918838    cmp AL, strict byte 003h                  ; 3c 03
    8692     jne short 061bdh                          ; 75 05
     8839    jne short 06225h                          ; 75 05
    86938840    mov ax, strict word 00003h                ; b8 03 00
    8694     jmp short 061bfh                          ; eb 02
     8841    jmp short 06227h                          ; eb 02
    86958842    xor ax, ax                                ; 31 c0
    86968843    or bx, ax                                 ; 09 c3
     
    87188865    xor bl, bl                                ; 30 db
    87198866    xor bh, bh                                ; 30 ff
    8720     jmp short 06222h                          ; eb 05
     8867    jmp short 0628ah                          ; eb 05
    87218868    cmp bh, 00fh                              ; 80 ff 0f
    8722     jnc short 06235h                          ; 73 13
     8869    jnc short 0629dh                          ; 73 13
    87238870    movzx dx, bh                              ; 0f b6 d7
    87248871    add dx, 00356h                            ; 81 c2 56 03
    87258872    mov ax, word [bp-014h]                    ; 8b 46 ec
    8726     call 01650h                               ; e8 21 b4
     8873    call 016b8h                               ; e8 21 b4
    87278874    add bl, al                                ; 00 c3
    87288875    db  0feh, 0c7h
    87298876    ; inc bh                                    ; fe c7
    8730     jmp short 0621dh                          ; eb e8
     8877    jmp short 06285h                          ; eb e8
    87318878    neg bl                                    ; f6 db
    87328879    les si, [bp-008h]                         ; c4 76 f8
    87338880    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
    87348881    cmp word [bp-010h], strict byte 00042h    ; 83 7e f0 42
    8735     jc near 062f7h                            ; 0f 82 b0 00
     8882    jc near 0635fh                            ; 0f 82 b0 00
    87368883    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    87378884    cwd                                       ; 99
     
    87518898    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
    87528899    test al, al                               ; 84 c0
    8753     jne short 06288h                          ; 75 09
     8900    jne short 062f0h                          ; 75 09
    87548901    db  066h, 026h, 0c7h, 045h, 024h, 049h, 053h, 041h, 020h
    87558902    ; mov dword [es:di+024h], strict dword 020415349h ; 66 26 c7 45 24 49 53 41 20
     
    87608907    ; mov dword [es:di+02ch], strict dword 020202020h ; 66 26 c7 45 2c 20 20 20 20
    87618908    test al, al                               ; 84 c0
    8762     jne short 062b4h                          ; 75 13
     8909    jne short 0631ch                          ; 75 13
    87638910    mov word [es:di+030h], dx                 ; 26 89 55 30
    87648911    db  066h, 026h, 0c7h, 045h, 032h, 000h, 000h, 000h, 000h
     
    87758922    xor bl, bl                                ; 30 db
    87768923    mov BH, strict byte 01eh                  ; b7 1e
    8777     jmp short 062dch                          ; eb 05
     8924    jmp short 06344h                          ; eb 05
    87788925    cmp bh, 040h                              ; 80 ff 40
    8779     jnc short 062eeh                          ; 73 12
     8926    jnc short 06356h                          ; 73 12
    87808927    movzx dx, bh                              ; 0f b6 d7
    87818928    add dx, word [bp+00ah]                    ; 03 56 0a
    87828929    mov ax, word [bp+004h]                    ; 8b 46 04
    8783     call 01650h                               ; e8 68 b3
     8930    call 016b8h                               ; e8 68 b3
    87848931    add bl, al                                ; 00 c3
    87858932    db  0feh, 0c7h
    87868933    ; inc bh                                    ; fe c7
    8787     jmp short 062d7h                          ; eb e9
     8934    jmp short 0633fh                          ; eb e9
    87888935    neg bl                                    ; f6 db
    87898936    mov es, [bp-00ah]                         ; 8e 46 f6
     
    87938940    mov dx, strict word 00074h                ; ba 74 00
    87948941    mov ax, strict word 00040h                ; b8 40 00
    8795     call 0165eh                               ; e8 58 b3
     8942    call 016c6h                               ; e8 58 b3
    87968943    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    87978944    mov sp, bp                                ; 89 ec
     
    87998946    retn                                      ; c3
    88008947    cmp ax, strict word 00006h                ; 3d 06 00
    8801     je short 062f7h                           ; 74 e4
     8948    je short 0635fh                           ; 74 e4
    88028949    cmp ax, strict word 00001h                ; 3d 01 00
    8803     jc short 06324h                           ; 72 0c
    8804     jbe short 062f7h                          ; 76 dd
     8950    jc short 0638ch                           ; 72 0c
     8951    jbe short 0635fh                          ; 76 dd
    88058952    cmp ax, strict word 00003h                ; 3d 03 00
    8806     jc short 06324h                           ; 72 05
     8953    jc short 0638ch                           ; 72 05
    88078954    cmp ax, strict word 00004h                ; 3d 04 00
    8808     jbe short 062f7h                          ; 76 d3
     8955    jbe short 0635fh                          ; 76 d3
    88098956    mov ax, word [bp+016h]                    ; 8b 46 16
    88108957    xor ah, ah                                ; 30 e4
     
    88168963    mov dx, strict word 00074h                ; ba 74 00
    88178964    mov ax, strict word 00040h                ; b8 40 00
    8818     call 0165eh                               ; e8 1e b3
     8965    call 016c6h                               ; e8 1e b3
    88198966    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8820     jmp short 0630ah                          ; eb c4
     8967    jmp short 06372h                          ; eb c4
    88218968    mov bx, 00da0h                            ; bb a0 0d
    88228969    mov cx, ds                                ; 8c d9
    88238970    mov ax, strict word 00004h                ; b8 04 00
    8824     call 01931h                               ; e8 e0 b5
     8971    call 01999h                               ; e8 e0 b5
    88258972    mov ax, word [bp+016h]                    ; 8b 46 16
    88268973    shr ax, 008h                              ; c1 e8 08
     
    88288975    push 007f5h                               ; 68 f5 07
    88298976    push 007c7h                               ; 68 c7 07
    8830     jmp near 05fb5h                           ; e9 54 fc
    8831 _int14_function:                             ; 0xf6361 LB 0x155
     8977    jmp near 0601dh                           ; e9 54 fc
     8978_int14_function:                             ; 0xf63c9 LB 0x155
    88328979    push bp                                   ; 55
    88338980    mov bp, sp                                ; 89 e5
     
    88378984    add dx, dx                                ; 01 d2
    88388985    mov ax, strict word 00040h                ; b8 40 00
    8839     call 0166ch                               ; e8 fb b2
     8986    call 016d4h                               ; e8 fb b2
    88408987    mov si, ax                                ; 89 c6
    88418988    mov bx, ax                                ; 89 c3
     
    88438990    add dx, strict byte 0007ch                ; 83 c2 7c
    88448991    mov ax, strict word 00040h                ; b8 40 00
    8845     call 01650h                               ; e8 cf b2
     8992    call 016b8h                               ; e8 cf b2
    88468993    mov cl, al                                ; 88 c1
    88478994    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    8848     jnc near 064ach                           ; 0f 83 21 01
     8995    jnc near 06514h                           ; 0f 83 21 01
    88498996    test si, si                               ; 85 f6
    8850     jbe near 064ach                           ; 0f 86 1b 01
     8997    jbe near 06514h                           ; 0f 86 1b 01
    88518998    mov al, byte [bp+013h]                    ; 8a 46 13
    88528999    cmp AL, strict byte 001h                  ; 3c 01
    8853     jc short 063a9h                           ; 72 11
    8854     jbe short 063fdh                          ; 76 63
     9000    jc short 06411h                           ; 72 11
     9001    jbe short 06465h                          ; 76 63
    88559002    cmp AL, strict byte 003h                  ; 3c 03
    8856     je near 06495h                            ; 0f 84 f5 00
     9003    je near 064fdh                            ; 0f 84 f5 00
    88579004    cmp AL, strict byte 002h                  ; 3c 02
    8858     je near 0644bh                            ; 0f 84 a5 00
    8859     jmp near 064a6h                           ; e9 fd 00
     9005    je near 064b3h                            ; 0f 84 a5 00
     9006    jmp near 0650eh                           ; e9 fd 00
    88609007    test al, al                               ; 84 c0
    8861     jne near 064a6h                           ; 0f 85 f7 00
     9008    jne near 0650eh                           ; 0f 85 f7 00
    88629009    lea dx, [bx+003h]                         ; 8d 57 03
    88639010    in AL, DX                                 ; ec
     
    88919038    ; sub ah, ah                                ; 2a e4
    88929039    mov byte [bp+012h], al                    ; 88 46 12
    8893     jmp near 06487h                           ; e9 97 00
     9040    jmp near 064efh                           ; e9 97 00
    88949041    mov AL, strict byte 017h                  ; b0 17
    88959042    mov dx, bx                                ; 89 da
     
    88989045    mov AL, strict byte 004h                  ; b0 04
    88999046    out DX, AL                                ; ee
    8900     jmp short 063d2h                          ; eb d5
     9047    jmp short 0643ah                          ; eb d5
    89019048    mov dx, strict word 0006ch                ; ba 6c 00
    89029049    mov ax, strict word 00040h                ; b8 40 00
    8903     call 0166ch                               ; e8 66 b2
     9050    call 016d4h                               ; e8 66 b2
    89049051    mov si, ax                                ; 89 c6
    89059052    lea dx, [bx+005h]                         ; 8d 57 05
     
    89099056    and ax, strict word 00060h                ; 25 60 00
    89109057    cmp ax, strict word 00060h                ; 3d 60 00
    8911     je short 0642dh                           ; 74 17
     9058    je short 06495h                           ; 74 17
    89129059    test cl, cl                               ; 84 c9
    8913     je short 0642dh                           ; 74 13
     9060    je short 06495h                           ; 74 13
    89149061    mov dx, strict word 0006ch                ; ba 6c 00
    89159062    mov ax, strict word 00040h                ; b8 40 00
    8916     call 0166ch                               ; e8 49 b2
     9063    call 016d4h                               ; e8 49 b2
    89179064    cmp ax, si                                ; 39 f0
    8918     je short 06408h                           ; 74 e1
     9065    je short 06470h                           ; 74 e1
    89199066    mov si, ax                                ; 89 c6
    89209067    db  0feh, 0c9h
    89219068    ; dec cl                                    ; fe c9
    8922     jmp short 06408h                          ; eb db
     9069    jmp short 06470h                          ; eb db
    89239070    test cl, cl                               ; 84 c9
    8924     je short 06437h                           ; 74 06
     9071    je short 0649fh                           ; 74 06
    89259072    mov al, byte [bp+012h]                    ; 8a 46 12
    89269073    mov dx, bx                                ; 89 da
     
    89329079    mov byte [bp+013h], al                    ; 88 46 13
    89339080    test cl, cl                               ; 84 c9
    8934     jne short 06487h                          ; 75 43
     9081    jne short 064efh                          ; 75 43
    89359082    or AL, strict byte 080h                   ; 0c 80
    89369083    mov byte [bp+013h], al                    ; 88 46 13
    8937     jmp short 06487h                          ; eb 3c
     9084    jmp short 064efh                          ; eb 3c
    89389085    mov dx, strict word 0006ch                ; ba 6c 00
    89399086    mov ax, strict word 00040h                ; b8 40 00
    8940     call 0166ch                               ; e8 18 b2
     9087    call 016d4h                               ; e8 18 b2
    89419088    mov si, ax                                ; 89 c6
    89429089    lea dx, [bx+005h]                         ; 8d 57 05
     
    89459092    ; sub ah, ah                                ; 2a e4
    89469093    test AL, strict byte 001h                 ; a8 01
    8947     jne short 06477h                          ; 75 17
     9094    jne short 064dfh                          ; 75 17
    89489095    test cl, cl                               ; 84 c9
    8949     je short 06477h                           ; 74 13
     9096    je short 064dfh                           ; 74 13
    89509097    mov dx, strict word 0006ch                ; ba 6c 00
    89519098    mov ax, strict word 00040h                ; b8 40 00
    8952     call 0166ch                               ; e8 ff b1
     9099    call 016d4h                               ; e8 ff b1
    89539100    cmp ax, si                                ; 39 f0
    8954     je short 06456h                           ; 74 e5
     9101    je short 064beh                           ; 74 e5
    89559102    mov si, ax                                ; 89 c6
    89569103    db  0feh, 0c9h
    89579104    ; dec cl                                    ; fe c9
    8958     jmp short 06456h                          ; eb df
     9105    jmp short 064beh                          ; eb df
    89599106    test cl, cl                               ; 84 c9
    8960     je short 0648dh                           ; 74 12
     9107    je short 064f5h                           ; 74 12
    89619108    mov byte [bp+013h], 000h                  ; c6 46 13 00
    89629109    mov dx, bx                                ; 89 da
     
    89669113    mov byte [bp+012h], al                    ; 88 46 12
    89679114    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    8968     jmp short 064b0h                          ; eb 23
     9115    jmp short 06518h                          ; eb 23
    89699116    lea dx, [bx+005h]                         ; 8d 57 05
    89709117    in AL, DX                                 ; ec
    89719118    db  02ah, 0e4h
    89729119    ; sub ah, ah                                ; 2a e4
    8973     jmp short 06446h                          ; eb b1
     9120    jmp short 064aeh                          ; eb b1
    89749121    lea dx, [si+005h]                         ; 8d 54 05
    89759122    in AL, DX                                 ; ec
     
    89819128    db  02ah, 0e4h
    89829129    ; sub ah, ah                                ; 2a e4
    8983     jmp short 06484h                          ; eb de
     9130    jmp short 064ech                          ; eb de
    89849131    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8985     jmp short 064b0h                          ; eb 04
     9132    jmp short 06518h                          ; eb 04
    89869133    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    89879134    lea sp, [bp-002h]                         ; 8d 66 fe
     
    89899136    pop bp                                    ; 5d
    89909137    retn                                      ; c3
    8991 set_enable_a20_:                             ; 0xf64b6 LB 0x2c
     9138timer_wait_:                                 ; 0xf651e LB 0x43
     9139    push bp                                   ; 55
     9140    mov bp, sp                                ; 89 e5
     9141    push bx                                   ; 53
     9142    push cx                                   ; 51
     9143    push ax                                   ; 50
     9144    mov bx, strict word 0000fh                ; bb 0f 00
     9145    xor cx, cx                                ; 31 c9
     9146    call 09ec0h                               ; e8 94 39
     9147    mov cx, ax                                ; 89 c1
     9148    mov bx, dx                                ; 89 d3
     9149    mov dx, strict word 00061h                ; ba 61 00
     9150    in AL, DX                                 ; ec
     9151    db  02ah, 0e4h
     9152    ; sub ah, ah                                ; 2a e4
     9153    and AL, strict byte 010h                  ; 24 10
     9154    mov byte [bp-006h], al                    ; 88 46 fa
     9155    add cx, strict byte 0ffffh                ; 83 c1 ff
     9156    adc bx, strict byte 0ffffh                ; 83 d3 ff
     9157    cmp bx, strict byte 0ffffh                ; 83 fb ff
     9158    jne short 0654bh                          ; 75 05
     9159    cmp cx, strict byte 0ffffh                ; 83 f9 ff
     9160    je short 0655ah                           ; 74 0f
     9161    mov dx, strict word 00061h                ; ba 61 00
     9162    in AL, DX                                 ; ec
     9163    db  02ah, 0e4h
     9164    ; sub ah, ah                                ; 2a e4
     9165    and AL, strict byte 010h                  ; 24 10
     9166    cmp al, byte [bp-006h]                    ; 3a 46 fa
     9167    jne short 0654bh                          ; 75 f3
     9168    jmp short 0653bh                          ; eb e1
     9169    lea sp, [bp-004h]                         ; 8d 66 fc
     9170    pop cx                                    ; 59
     9171    pop bx                                    ; 5b
     9172    pop bp                                    ; 5d
     9173    retn                                      ; c3
     9174set_enable_a20_:                             ; 0xf6561 LB 0x2c
    89929175    push bp                                   ; 55
    89939176    mov bp, sp                                ; 89 e5
     
    90029185    mov cl, al                                ; 88 c1
    90039186    test bx, bx                               ; 85 db
    9004     je short 064cfh                           ; 74 05
     9187    je short 0657ah                           ; 74 05
    90059188    or AL, strict byte 002h                   ; 0c 02
    90069189    out DX, AL                                ; ee
    9007     jmp short 064d2h                          ; eb 03
     9190    jmp short 0657dh                          ; eb 03
    90089191    and AL, strict byte 0fdh                  ; 24 fd
    90099192    out DX, AL                                ; ee
     
    90189201    pop bp                                    ; 5d
    90199202    retn                                      ; c3
    9020 set_e820_range_:                             ; 0xf64e2 LB 0x8c
     9203set_e820_range_:                             ; 0xf658d LB 0x89
    90219204    push si                                   ; 56
    90229205    push bp                                   ; 55
     
    90469229    pop si                                    ; 5e
    90479230    retn 0000ah                               ; c2 0a 00
    9048     db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 087h, 083h, 052h, 04fh, 041h, 024h
    9049     db  000h, 00dh, 06ah, 0adh, 065h, 0c0h, 065h, 055h, 066h, 05bh, 066h, 060h, 066h, 065h, 066h, 007h
    9050     db  067h, 0a4h, 068h, 0cah, 068h, 04eh, 066h, 04eh, 066h, 097h, 069h, 0bfh, 069h, 0d2h, 069h, 0e1h
    9051     db  069h, 055h, 066h, 0e8h, 069h
    9052 _int15_function:                             ; 0xf656e LB 0x4d1
     9231    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
     9232    db  01ah, 069h, 053h, 066h, 066h, 066h, 0fbh, 066h, 001h, 067h, 006h, 067h, 00bh, 067h, 0adh, 067h
     9233    db  0d7h, 067h, 0f4h, 066h, 0f4h, 066h, 0a4h, 068h, 0cch, 068h, 0dfh, 068h, 0eeh, 068h, 0fbh, 066h
     9234    db  0f5h, 068h
     9235_int15_function:                             ; 0xf6616 LB 0x336
    90539236    push bp                                   ; 55
    90549237    mov bp, sp                                ; 89 e5
    90559238    push si                                   ; 56
    90569239    push di                                   ; 57
    9057     push ax                                   ; 50
    9058     push ax                                   ; 50
    90599240    mov ax, word [bp+012h]                    ; 8b 46 12
    90609241    shr ax, 008h                              ; c1 e8 08
    90619242    cmp ax, 000ech                            ; 3d ec 00
    9062     jnbe near 06a0dh                          ; 0f 87 8b 04
     9243    jnbe near 0691ah                          ; 0f 87 f2 02
    90639244    push CS                                   ; 0e
    90649245    pop ES                                    ; 07
    9065     mov cx, strict word 00012h                ; b9 12 00
    9066     mov di, 06539h                            ; bf 39 65
     9246    mov cx, strict word 00011h                ; b9 11 00
     9247    mov di, 065e4h                            ; bf e4 65
    90679248    repne scasb                               ; f2 ae
    90689249    sal cx, 1                                 ; d1 e1
    90699250    mov di, cx                                ; 89 cf
    9070     mov si, word [cs:di+0654ah]               ; 2e 8b b5 4a 65
     9251    mov si, word [cs:di+065f4h]               ; 2e 8b b5 f4 65
    90719252    mov ax, word [bp+012h]                    ; 8b 46 12
    90729253    xor ah, ah                                ; 30 e4
     
    90819262    xor ah, ah                                ; 30 e4
    90829263    cmp ax, 000c0h                            ; 3d c0 00
    9083     jne near 06a0dh                           ; 0f 85 54 04
     9264    jne near 0691ah                           ; 0f 85 bb 02
    90849265    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9085     jmp near 069b6h                           ; e9 f6 03
     9266    jmp near 068c3h                           ; e9 5d 02
    90869267    mov dx, ax                                ; 89 c2
    90879268    cmp ax, strict word 00001h                ; 3d 01 00
    9088     jc short 065d5h                           ; 72 0e
    9089     jbe short 065e9h                          ; 76 20
     9269    jc short 0667bh                           ; 72 0e
     9270    jbe short 0668fh                          ; 76 20
    90909271    cmp ax, strict word 00003h                ; 3d 03 00
    9091     je short 06616h                           ; 74 48
     9272    je short 066bch                           ; 74 48
    90929273    cmp ax, strict word 00002h                ; 3d 02 00
    9093     je short 065f9h                           ; 74 26
    9094     jmp short 06623h                          ; eb 4e
     9274    je short 0669fh                           ; 74 26
     9275    jmp short 066c9h                          ; eb 4e
    90959276    test ax, ax                               ; 85 c0
    9096     jne short 06623h                          ; 75 4a
     9277    jne short 066c9h                          ; 75 4a
    90979278    xor ax, ax                                ; 31 c0
    9098     call 064b6h                               ; e8 d8 fe
     9279    call 06561h                               ; e8 dd fe
    90999280    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    91009281    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9101     jmp near 0664eh                           ; e9 65 00
     9282    jmp near 066f4h                           ; e9 65 00
    91029283    mov ax, strict word 00001h                ; b8 01 00
    9103     call 064b6h                               ; e8 c7 fe
     9284    call 06561h                               ; e8 cc fe
    91049285    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    91059286    mov byte [bp+013h], dh                    ; 88 76 13
    9106     jmp near 0664eh                           ; e9 55 00
     9287    jmp near 066f4h                           ; e9 55 00
    91079288    mov dx, 00092h                            ; ba 92 00
    91089289    in AL, DX                                 ; ec
     
    91169297    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    91179298    mov byte [bp+013h], ah                    ; 88 66 13
    9118     jmp near 0664eh                           ; e9 38 00
     9299    jmp near 066f4h                           ; e9 38 00
    91199300    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    91209301    mov byte [bp+013h], ah                    ; 88 66 13
    91219302    mov word [bp+00ch], ax                    ; 89 46 0c
    9122     jmp near 0664eh                           ; e9 2b 00
     9303    jmp near 066f4h                           ; e9 2b 00
    91239304    mov bx, 00da0h                            ; bb a0 0d
    91249305    mov cx, ds                                ; 8c d9
    91259306    mov ax, strict word 00004h                ; b8 04 00
    9126     call 01931h                               ; e8 03 b3
     9307    call 01999h                               ; e8 c5 b2
    91279308    mov ax, word [bp+012h]                    ; 8b 46 12
    91289309    xor ah, ah                                ; 30 e4
     
    91309311    push 0082eh                               ; 68 2e 08
    91319312    push strict byte 00004h                   ; 6a 04
    9132     call 01972h                               ; e8 36 b3
     9313    call 019dah                               ; e8 f8 b2
    91339314    add sp, strict byte 00006h                ; 83 c4 06
    91349315    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    91439324    retn                                      ; c3
    91449325    mov word [bp+018h], bx                    ; 89 5e 18
    9145     jmp near 06701h                           ; e9 a6 00
     9326    jmp near 067a7h                           ; e9 a6 00
    91469327    mov word [bp+018h], bx                    ; 89 5e 18
    9147     jmp short 0664eh                          ; eb ee
     9328    jmp short 066f4h                          ; eb ee
    91489329    mov word [bp+018h], cx                    ; 89 4e 18
    9149     jmp short 0664bh                          ; eb e6
     9330    jmp short 066f1h                          ; eb e6
    91509331    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9151     jne short 066d7h                          ; 75 6c
     9332    jne short 0677dh                          ; 75 6c
    91529333    mov dx, 000a0h                            ; ba a0 00
    91539334    mov ax, strict word 00040h                ; b8 40 00
    9154     call 01650h                               ; e8 dc af
     9335    call 016b8h                               ; e8 9e af
    91559336    test AL, strict byte 001h                 ; a8 01
    9156     jne near 069adh                           ; 0f 85 33 03
     9337    jne near 068bah                           ; 0f 85 9a 01
    91579338    mov bx, strict word 00001h                ; bb 01 00
    91589339    mov dx, 000a0h                            ; ba a0 00
    91599340    mov ax, strict word 00040h                ; b8 40 00
    9160     call 0165eh                               ; e8 d8 af
     9341    call 016c6h                               ; e8 9a af
    91619342    mov bx, word [bp+014h]                    ; 8b 5e 14
    91629343    mov dx, 00098h                            ; ba 98 00
    91639344    mov ax, strict word 00040h                ; b8 40 00
    9164     call 0167ah                               ; e8 e8 af
     9345    call 016e2h                               ; e8 aa af
    91659346    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    91669347    mov dx, 0009ah                            ; ba 9a 00
    91679348    mov ax, strict word 00040h                ; b8 40 00
    9168     call 0167ah                               ; e8 dc af
     9349    call 016e2h                               ; e8 9e af
    91699350    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    91709351    mov dx, 0009ch                            ; ba 9c 00
    91719352    mov ax, strict word 00040h                ; b8 40 00
    9172     call 0167ah                               ; e8 d0 af
     9353    call 016e2h                               ; e8 92 af
    91739354    mov bx, word [bp+010h]                    ; 8b 5e 10
    91749355    mov dx, 0009eh                            ; ba 9e 00
    91759356    mov ax, strict word 00040h                ; b8 40 00
    9176     call 0167ah                               ; e8 c4 af
     9357    call 016e2h                               ; e8 86 af
    91779358    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    91789359    mov dx, 000a1h                            ; ba a1 00
     
    91839364    out DX, AL                                ; ee
    91849365    mov ax, strict word 0000bh                ; b8 0b 00
    9185     call 016ach                               ; e8 e3 af
     9366    call 01714h                               ; e8 a5 af
    91869367    or AL, strict byte 040h                   ; 0c 40
    91879368    movzx dx, al                              ; 0f b6 d0
    91889369    mov ax, strict word 0000bh                ; b8 0b 00
    9189     call 016c9h                               ; e8 f5 af
    9190     jmp near 0664eh                           ; e9 77 ff
     9370    call 01731h                               ; e8 b7 af
     9371    jmp near 066f4h                           ; e9 77 ff
    91919372    cmp ax, strict word 00001h                ; 3d 01 00
    9192     jne short 066f5h                          ; 75 19
     9373    jne short 0679bh                          ; 75 19
    91939374    xor bx, bx                                ; 31 db
    91949375    mov dx, 000a0h                            ; ba a0 00
    91959376    mov ax, strict word 00040h                ; b8 40 00
    9196     call 0165eh                               ; e8 77 af
     9377    call 016c6h                               ; e8 39 af
    91979378    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    91989379    mov ax, strict word 0000bh                ; b8 0b 00
    9199     call 016ach                               ; e8 bb af
     9380    call 01714h                               ; e8 7d af
    92009381    and AL, strict byte 0bfh                  ; 24 bf
    9201     jmp short 066cbh                          ; eb d6
     9382    jmp short 06771h                          ; eb d6
    92029383    mov word [bp+018h], bx                    ; 89 5e 18
    92039384    mov ax, dx                                ; 89 d0
     
    92079388    or dx, ax                                 ; 09 c2
    92089389    mov word [bp+012h], dx                    ; 89 56 12
    9209     jmp near 0664eh                           ; e9 47 ff
    9210     cli                                       ; fa
    9211     mov ax, strict word 00001h                ; b8 01 00
    9212     call 064b6h                               ; e8 a8 fd
    9213     mov di, ax                                ; 89 c7
    9214     mov ax, word [bp+014h]                    ; 8b 46 14
    9215     sal ax, 004h                              ; c1 e0 04
    9216     mov cx, word [bp+006h]                    ; 8b 4e 06
    9217     add cx, ax                                ; 01 c1
    9218     mov dx, word [bp+014h]                    ; 8b 56 14
    9219     shr dx, 00ch                              ; c1 ea 0c
    9220     mov byte [bp-006h], dl                    ; 88 56 fa
    9221     cmp cx, ax                                ; 39 c1
    9222     jnc short 0672dh                          ; 73 05
    9223     db  0feh, 0c2h
    9224     ; inc dl                                    ; fe c2
    9225     mov byte [bp-006h], dl                    ; 88 56 fa
    9226     mov dx, word [bp+006h]                    ; 8b 56 06
    9227     add dx, strict byte 00008h                ; 83 c2 08
    9228     mov ax, word [bp+014h]                    ; 8b 46 14
    9229     mov bx, strict word 0002fh                ; bb 2f 00
    9230     call 0167ah                               ; e8 3e af
    9231     mov dx, word [bp+006h]                    ; 8b 56 06
    9232     add dx, strict byte 0000ah                ; 83 c2 0a
    9233     mov ax, word [bp+014h]                    ; 8b 46 14
    9234     mov bx, cx                                ; 89 cb
    9235     call 0167ah                               ; e8 30 af
    9236     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    9237     mov dx, word [bp+006h]                    ; 8b 56 06
    9238     add dx, strict byte 0000ch                ; 83 c2 0c
    9239     mov ax, word [bp+014h]                    ; 8b 46 14
    9240     call 0165eh                               ; e8 04 af
    9241     mov dx, word [bp+006h]                    ; 8b 56 06
    9242     add dx, strict byte 0000dh                ; 83 c2 0d
    9243     mov ax, word [bp+014h]                    ; 8b 46 14
    9244     mov bx, 00093h                            ; bb 93 00
    9245     call 0165eh                               ; e8 f5 ae
    9246     mov dx, word [bp+006h]                    ; 8b 56 06
    9247     add dx, strict byte 0000eh                ; 83 c2 0e
    9248     mov ax, word [bp+014h]                    ; 8b 46 14
    9249     xor bx, bx                                ; 31 db
    9250     call 0167ah                               ; e8 03 af
    9251     mov dx, word [bp+006h]                    ; 8b 56 06
    9252     add dx, strict byte 00020h                ; 83 c2 20
    9253     mov ax, word [bp+014h]                    ; 8b 46 14
    9254     mov bx, strict word 0ffffh                ; bb ff ff
    9255     call 0167ah                               ; e8 f4 ae
    9256     mov dx, word [bp+006h]                    ; 8b 56 06
    9257     add dx, strict byte 00022h                ; 83 c2 22
    9258     mov ax, word [bp+014h]                    ; 8b 46 14
    9259     xor bx, bx                                ; 31 db
    9260     call 0167ah                               ; e8 e6 ae
    9261     mov dx, word [bp+006h]                    ; 8b 56 06
    9262     add dx, strict byte 00024h                ; 83 c2 24
    9263     mov ax, word [bp+014h]                    ; 8b 46 14
    9264     mov bx, strict word 0000fh                ; bb 0f 00
    9265     call 0165eh                               ; e8 bb ae
    9266     mov dx, word [bp+006h]                    ; 8b 56 06
    9267     add dx, strict byte 00025h                ; 83 c2 25
    9268     mov ax, word [bp+014h]                    ; 8b 46 14
    9269     mov bx, 0009bh                            ; bb 9b 00
    9270     call 0165eh                               ; e8 ac ae
    9271     mov dx, word [bp+006h]                    ; 8b 56 06
    9272     add dx, strict byte 00026h                ; 83 c2 26
    9273     mov ax, word [bp+014h]                    ; 8b 46 14
    9274     xor bx, bx                                ; 31 db
    9275     call 0167ah                               ; e8 ba ae
    9276     mov ax, ss                                ; 8c d0
    9277     mov cx, ax                                ; 89 c1
    9278     sal cx, 004h                              ; c1 e1 04
    9279     shr ax, 00ch                              ; c1 e8 0c
    9280     mov word [bp-008h], ax                    ; 89 46 f8
    9281     mov dx, word [bp+006h]                    ; 8b 56 06
    9282     add dx, strict byte 00028h                ; 83 c2 28
    9283     mov ax, word [bp+014h]                    ; 8b 46 14
    9284     mov bx, strict word 0ffffh                ; bb ff ff
    9285     call 0167ah                               ; e8 9e ae
    9286     mov dx, word [bp+006h]                    ; 8b 56 06
    9287     add dx, strict byte 0002ah                ; 83 c2 2a
    9288     mov ax, word [bp+014h]                    ; 8b 46 14
    9289     mov bx, cx                                ; 89 cb
    9290     call 0167ah                               ; e8 90 ae
    9291     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    9292     mov dx, word [bp+006h]                    ; 8b 56 06
    9293     add dx, strict byte 0002ch                ; 83 c2 2c
    9294     mov ax, word [bp+014h]                    ; 8b 46 14
    9295     call 0165eh                               ; e8 64 ae
    9296     mov dx, word [bp+006h]                    ; 8b 56 06
    9297     add dx, strict byte 0002dh                ; 83 c2 2d
    9298     mov ax, word [bp+014h]                    ; 8b 46 14
    9299     mov bx, 00093h                            ; bb 93 00
    9300     call 0165eh                               ; e8 55 ae
    9301     mov dx, word [bp+006h]                    ; 8b 56 06
    9302     add dx, strict byte 0002eh                ; 83 c2 2e
    9303     mov ax, word [bp+014h]                    ; 8b 46 14
    9304     xor bx, bx                                ; 31 db
    9305     call 0167ah                               ; e8 63 ae
    9306     mov si, word [bp+006h]                    ; 8b 76 06
    9307     mov es, [bp+014h]                         ; 8e 46 14
    9308     mov cx, word [bp+010h]                    ; 8b 4e 10
    9309     push DS                                   ; 1e
    9310     push eax                                  ; 66 50
    9311     db  066h, 033h, 0c0h
    9312     ; xor eax, eax                              ; 66 33 c0
    9313     mov ds, ax                                ; 8e d8
    9314     mov word [00467h], sp                     ; 89 26 67 04
    9315     mov [00469h], ss                          ; 8c 16 69 04
    9316     call 06833h                               ; e8 00 00
    9317     pop di                                    ; 5f
    9318     add di, strict byte 0001bh                ; 83 c7 1b
    9319     push strict byte 00020h                   ; 6a 20
    9320     push di                                   ; 57
    9321     lgdt [es:si+008h]                         ; 26 0f 01 54 08
    9322     lidt [cs:0efe1h]                          ; 2e 0f 01 1e e1 ef
    9323     mov eax, cr0                              ; 0f 20 c0
    9324     or AL, strict byte 001h                   ; 0c 01
    9325     mov cr0, eax                              ; 0f 22 c0
    9326     retf                                      ; cb
    9327     mov ax, strict word 00028h                ; b8 28 00
    9328     mov ss, ax                                ; 8e d0
    9329     mov ax, strict word 00010h                ; b8 10 00
    9330     mov ds, ax                                ; 8e d8
    9331     mov ax, strict word 00018h                ; b8 18 00
    9332     mov es, ax                                ; 8e c0
    9333     db  033h, 0f6h
    9334     ; xor si, si                                ; 33 f6
    9335     db  033h, 0ffh
    9336     ; xor di, di                                ; 33 ff
    9337     cld                                       ; fc
    9338     rep movsw                                 ; f3 a5
    9339     call 06867h                               ; e8 00 00
    9340     pop ax                                    ; 58
    9341     push 0f000h                               ; 68 00 f0
    9342     add ax, strict byte 00018h                ; 83 c0 18
    9343     push ax                                   ; 50
    9344     mov ax, strict word 00028h                ; b8 28 00
    9345     mov ds, ax                                ; 8e d8
    9346     mov es, ax                                ; 8e c0
    9347     mov eax, cr0                              ; 0f 20 c0
    9348     and AL, strict byte 0feh                  ; 24 fe
    9349     mov cr0, eax                              ; 0f 22 c0
    9350     retf                                      ; cb
    9351     lidt [cs:0efe7h]                          ; 2e 0f 01 1e e7 ef
    9352     db  033h, 0c0h
    9353     ; xor ax, ax                                ; 33 c0
    9354     mov ds, ax                                ; 8e d8
    9355     mov es, ax                                ; 8e c0
    9356     lss sp, [00467h]                          ; 0f b2 26 67 04
    9357     pop eax                                   ; 66 58
    9358     pop DS                                    ; 1f
    9359     mov ax, di                                ; 89 f8
    9360     call 064b6h                               ; e8 1e fc
    9361     sti                                       ; fb
    9362     mov byte [bp+013h], 000h                  ; c6 46 13 00
    9363     and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9364     jmp near 0664eh                           ; e9 aa fd
     9390    jmp near 066f4h                           ; e9 47 ff
    93659391    mov ax, strict word 00031h                ; b8 31 00
    9366     call 016ach                               ; e8 02 ae
    9367     xor ah, ah                                ; 30 e4
    9368     mov dx, ax                                ; 89 c2
     9392    call 01714h                               ; e8 61 af
     9393    movzx dx, al                              ; 0f b6 d0
    93699394    sal dx, 008h                              ; c1 e2 08
    93709395    mov ax, strict word 00030h                ; b8 30 00
    9371     call 016ach                               ; e8 f5 ad
     9396    call 01714h                               ; e8 55 af
    93729397    xor ah, ah                                ; 30 e4
    93739398    or dx, ax                                 ; 09 c2
    93749399    mov word [bp+012h], dx                    ; 89 56 12
    93759400    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9376     jbe short 0689dh                          ; 76 da
     9401    jbe short 067d0h                          ; 76 05
    93779402    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    9378     jmp short 0689dh                          ; eb d3
     9403    and byte [bp+018h], 0feh                  ; 80 66 18 fe
     9404    jmp near 066f4h                           ; e9 1d ff
    93799405    cli                                       ; fa
    93809406    mov ax, strict word 00001h                ; b8 01 00
    9381     call 064b6h                               ; e8 e5 fb
     9407    call 06561h                               ; e8 83 fd
    93829408    mov dx, word [bp+006h]                    ; 8b 56 06
    93839409    add dx, strict byte 00038h                ; 83 c2 38
    93849410    mov ax, word [bp+014h]                    ; 8b 46 14
    93859411    mov bx, strict word 0ffffh                ; bb ff ff
    9386     call 0167ah                               ; e8 9a ad
     9412    call 016e2h                               ; e8 f5 ae
    93879413    mov dx, word [bp+006h]                    ; 8b 56 06
    93889414    add dx, strict byte 0003ah                ; 83 c2 3a
    93899415    mov ax, word [bp+014h]                    ; 8b 46 14
    93909416    xor bx, bx                                ; 31 db
    9391     call 0167ah                               ; e8 8c ad
     9417    call 016e2h                               ; e8 e7 ae
    93929418    mov dx, word [bp+006h]                    ; 8b 56 06
    93939419    add dx, strict byte 0003ch                ; 83 c2 3c
    93949420    mov ax, word [bp+014h]                    ; 8b 46 14
    93959421    mov bx, strict word 0000fh                ; bb 0f 00
    9396     call 0165eh                               ; e8 61 ad
     9422    call 016c6h                               ; e8 bc ae
    93979423    mov dx, word [bp+006h]                    ; 8b 56 06
    93989424    add dx, strict byte 0003dh                ; 83 c2 3d
    93999425    mov ax, word [bp+014h]                    ; 8b 46 14
    94009426    mov bx, 0009bh                            ; bb 9b 00
    9401     call 0165eh                               ; e8 52 ad
     9427    call 016c6h                               ; e8 ad ae
    94029428    mov dx, word [bp+006h]                    ; 8b 56 06
    94039429    add dx, strict byte 0003eh                ; 83 c2 3e
    94049430    mov ax, word [bp+014h]                    ; 8b 46 14
    94059431    xor bx, bx                                ; 31 db
    9406     call 0167ah                               ; e8 60 ad
     9432    call 016e2h                               ; e8 bb ae
    94079433    mov AL, strict byte 011h                  ; b0 11
    94089434    mov dx, strict word 00020h                ; ba 20 00
     
    94349460    out DX, AL                                ; ee
    94359461    mov si, word [bp+006h]                    ; 8b 76 06
    9436     call 0695bh                               ; e8 00 00
     9462    call 06868h                               ; e8 00 00
    94379463    pop di                                    ; 5f
    94389464    add di, strict byte 00018h                ; 83 c7 18
     
    94629488    push cx                                   ; 51
    94639489    retf                                      ; cb
    9464     jmp near 0664eh                           ; e9 b7 fc
     9490    jmp near 066f4h                           ; e9 50 fe
    94659491    mov bx, 00da0h                            ; bb a0 0d
    94669492    mov cx, ds                                ; 8c d9
    94679493    mov ax, strict word 00004h                ; b8 04 00
    9468     call 01931h                               ; e8 8f af
     9494    call 01999h                               ; e8 ea b0
    94699495    push 0086eh                               ; 68 6e 08
    94709496    push strict byte 00004h                   ; 6a 04
    9471     call 01972h                               ; e8 c8 af
     9497    call 019dah                               ; e8 23 b1
    94729498    add sp, strict byte 00004h                ; 83 c4 04
    94739499    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    94769502    or ah, 086h                               ; 80 cc 86
    94779503    mov word [bp+012h], ax                    ; 89 46 12
    9478     jmp near 0664eh                           ; e9 8f fc
     9504    jmp near 066f4h                           ; e9 28 fe
    94799505    mov word [bp+018h], cx                    ; 89 4e 18
    94809506    mov word [bp+012h], ax                    ; 89 46 12
    94819507    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    94829508    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    9483     jmp near 0664eh                           ; e9 7c fc
     9509    jmp near 066f4h                           ; e9 15 fe
    94849510    mov dx, strict word 0000eh                ; ba 0e 00
    94859511    mov ax, strict word 00040h                ; b8 40 00
    9486     call 0166ch                               ; e8 91 ac
     9512    call 016d4h                               ; e8 ec ad
    94879513    mov word [bp+014h], ax                    ; 89 46 14
    9488     jmp near 0689dh                           ; e9 bc fe
     9514    jmp near 067d0h                           ; e9 e2 fe
    94899515    push 0089dh                               ; 68 9d 08
    94909516    push strict byte 00008h                   ; 6a 08
    9491     jmp short 069a7h                          ; eb bf
     9517    jmp short 068b4h                          ; eb bf
    94929518    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9493     jne short 06a0dh                          ; 75 1f
     9519    jne short 0691ah                          ; 75 1f
    94949520    mov word [bp+012h], ax                    ; 89 46 12
    94959521    mov ax, word [bp+00ch]                    ; 8b 46 0c
    94969522    xor ah, ah                                ; 30 e4
    94979523    cmp ax, strict word 00001h                ; 3d 01 00
    9498     jc short 06a06h                           ; 72 0b
     9524    jc short 06913h                           ; 72 0b
    94999525    cmp ax, strict word 00003h                ; 3d 03 00
    9500     jnbe short 06a06h                         ; 77 06
     9526    jnbe short 06913h                         ; 77 06
    95019527    mov word [bp+018h], cx                    ; 89 4e 18
    9502     jmp near 0664eh                           ; e9 48 fc
     9528    jmp near 066f4h                           ; e9 e1 fd
    95039529    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9504     jmp near 0664eh                           ; e9 41 fc
     9530    jmp near 066f4h                           ; e9 da fd
    95059531    mov bx, 00da0h                            ; bb a0 0d
    95069532    mov cx, ds                                ; 8c d9
    95079533    mov ax, strict word 00004h                ; b8 04 00
    9508     call 01931h                               ; e8 19 af
     9534    call 01999h                               ; e8 74 b0
    95099535    push word [bp+00ch]                       ; ff 76 0c
    95109536    push word [bp+012h]                       ; ff 76 12
    95119537    push 008b4h                               ; 68 b4 08
    95129538    push strict byte 00004h                   ; 6a 04
    9513     call 01972h                               ; e8 4c af
     9539    call 019dah                               ; e8 a7 b0
    95149540    add sp, strict byte 00008h                ; 83 c4 08
    9515     jmp short 069adh                          ; eb 82
    9516     in ax, 06bh                               ; e5 6b
    9517     pop ES                                    ; 07
     9541    jmp short 068bah                          ; eb 82
     9542    lds bp, [bp+si-019h]                      ; c5 6a e7
     9543    push strict byte 0000ah                   ; 6a 0a
     9544    imul bp, word [si], strict byte 0006bh    ; 6b 2c 6b
     9545    dec sp                                    ; 4c
     9546    imul bp, word [bp+di+06bh], strict byte 0ff8fh ; 6b 6b 6b 8f
     9547    imul si, word [bp+di-00d95h], strict byte 0006bh ; 6b b3 6b f2 6b
     9548    push DS                                   ; 1e
    95189549    insb                                      ; 6c
    9519     sub ch, byte [si+04ch]                    ; 2a 6c 4c
    9520     insb                                      ; 6c
    9521     insb                                      ; 6c
    9522     insb                                      ; 6c
    9523     mov bp, word [si-051h]                    ; 8b 6c af
    9524     insb                                      ; 6c
    9525     shr word [si+012h], CL                    ; d3 6c 12
    9526     insw                                      ; 6d
    9527     db  03eh, 06dh
    9528     ; ds insw                                   ; 3e 6d
    9529 _int15_function32:                           ; 0xf6a3f LB 0x3c2
     9550_int15_function32:                           ; 0xf694c LB 0x396
    95309551    push bp                                   ; 55
    95319552    mov bp, sp                                ; 89 e5
     
    95399560    xor dh, dh                                ; 30 f6
    95409561    cmp ax, 000e8h                            ; 3d e8 00
    9541     je near 06b09h                            ; 0f 84 ab 00
     9562    je near 069e9h                            ; 0f 84 7e 00
    95429563    cmp ax, 000d0h                            ; 3d d0 00
    9543     je short 06aa4h                           ; 74 41
     9564    je short 06984h                           ; 74 14
    95449565    cmp ax, 00086h                            ; 3d 86 00
    9545     jne near 06dd1h                           ; 0f 85 67 03
     9566    jne near 06cb2h                           ; 0f 85 3b 03
    95469567    sti                                       ; fb
    9547     mov ax, word [bp+01ch]                    ; 8b 46 1c
    9548     mov dx, word [bp+018h]                    ; 8b 56 18
    9549     sal eax, 010h                             ; 66 c1 e0 10
    9550     db  08bh, 0c2h
    9551     ; mov ax, dx                                ; 8b c2
    9552     mov ebx, strict dword 00000000fh          ; 66 bb 0f 00 00 00
    9553     db  066h, 033h, 0d2h
    9554     ; xor edx, edx                              ; 66 33 d2
    9555     div ebx                                   ; 66 f7 f3
    9556     db  066h, 08bh, 0c8h
    9557     ; mov ecx, eax                              ; 66 8b c8
    9558     in AL, strict byte 061h                   ; e4 61
    9559     and AL, strict byte 010h                  ; 24 10
    9560     db  08ah, 0e0h
    9561     ; mov ah, al                                ; 8a e0
    9562     db  066h, 00bh, 0c9h
    9563     ; or ecx, ecx                               ; 66 0b c9
    9564     je near 06aa1h                            ; 0f 84 0e 00
    9565     in AL, strict byte 061h                   ; e4 61
    9566     and AL, strict byte 010h                  ; 24 10
    9567     db  03ah, 0c4h
    9568     ; cmp al, ah                                ; 3a c4
    9569     je short 06a93h                           ; 74 f8
    9570     db  08ah, 0e0h
    9571     ; mov ah, al                                ; 8a e0
    9572     dec ecx                                   ; 66 49
    9573     jne short 06a93h                          ; 75 f2
    9574     jmp near 06dfbh                           ; e9 57 03
     9568    mov dx, word [bp+01ch]                    ; 8b 56 1c
     9569    mov ax, word [bp+018h]                    ; 8b 46 18
     9570    call 0651eh                               ; e8 9d fb
     9571    jmp near 06cdch                           ; e9 58 03
    95759572    cmp dx, strict byte 0004fh                ; 83 fa 4f
    9576     jne near 06dd1h                           ; 0f 85 26 03
     9573    jne near 06cb2h                           ; 0f 85 27 03
    95779574    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    9578     jne near 06dd1h                           ; 0f 85 1d 03
     9575    jne near 06cb2h                           ; 0f 85 1e 03
    95799576    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    9580     jne near 06dd1h                           ; 0f 85 14 03
     9577    jne near 06cb2h                           ; 0f 85 15 03
    95819578    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    9582     jne near 06dd1h                           ; 0f 85 0b 03
     9579    jne near 06cb2h                           ; 0f 85 0c 03
    95839580    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    9584     jne near 06dd1h                           ; 0f 85 02 03
     9581    jne near 06cb2h                           ; 0f 85 03 03
    95859582    mov ax, word [bp+00ah]                    ; 8b 46 0a
    95869583    or ax, word [bp+008h]                     ; 0b 46 08
    9587     jne near 06dd1h                           ; 0f 85 f8 02
     9584    jne near 06cb2h                           ; 0f 85 f9 02
    95889585    mov ax, word [bp+006h]                    ; 8b 46 06
    95899586    or ax, word [bp+004h]                     ; 0b 46 04
    9590     jne near 06dd1h                           ; 0f 85 ee 02
     9587    jne near 06cb2h                           ; 0f 85 ef 02
    95919588    mov word [bp+028h], bx                    ; 89 5e 28
    95929589    mov ax, word [bp+014h]                    ; 8b 46 14
     
    95999596    mov word [bp+006h], ax                    ; 89 46 06
    96009597    mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49
    9601     jmp near 06dfbh                           ; e9 f2 02
     9598    jmp near 06cdch                           ; e9 f3 02
    96029599    cmp dx, strict byte 00020h                ; 83 fa 20
    9603     je short 06b18h                           ; 74 0a
     9600    je short 069f8h                           ; 74 0a
    96049601    cmp dx, strict byte 00001h                ; 83 fa 01
    9605     je near 06d85h                            ; 0f 84 70 02
    9606     jmp near 06dd1h                           ; e9 b9 02
     9602    je near 06c65h                            ; 0f 84 70 02
     9603    jmp near 06cb2h                           ; e9 ba 02
    96079604    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    9608     jne near 06dd1h                           ; 0f 85 b0 02
     9605    jne near 06cb2h                           ; 0f 85 b1 02
    96099606    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    9610     jne near 06dd1h                           ; 0f 85 a7 02
     9607    jne near 06cb2h                           ; 0f 85 a8 02
    96119608    mov ax, strict word 00035h                ; b8 35 00
    9612     call 016ach                               ; e8 7c ab
     9609    call 01714h                               ; e8 04 ad
    96139610    movzx bx, al                              ; 0f b6 d8
    96149611    xor dx, dx                                ; 31 d2
     
    96169613    sal bx, 1                                 ; d1 e3
    96179614    rcl dx, 1                                 ; d1 d2
    9618     loop 06b38h                               ; e2 fa
     9615    loop 06a18h                               ; e2 fa
    96199616    mov ax, strict word 00034h                ; b8 34 00
    9620     call 016ach                               ; e8 68 ab
     9617    call 01714h                               ; e8 f0 ac
    96219618    xor ah, ah                                ; 30 e4
    96229619    mov dx, bx                                ; 89 da
     
    96269623    adc dx, 00100h                            ; 81 d2 00 01
    96279624    cmp dx, 00100h                            ; 81 fa 00 01
    9628     jc short 06b5eh                           ; 72 06
    9629     jne short 06b8bh                          ; 75 31
     9625    jc short 06a3eh                           ; 72 06
     9626    jne short 06a6bh                          ; 75 31
    96309627    test bx, bx                               ; 85 db
    9631     jnbe short 06b8bh                         ; 77 2d
     9628    jnbe short 06a6bh                         ; 77 2d
    96329629    mov ax, strict word 00031h                ; b8 31 00
    9633     call 016ach                               ; e8 48 ab
     9630    call 01714h                               ; e8 d0 ac
    96349631    movzx bx, al                              ; 0f b6 d8
    96359632    xor dx, dx                                ; 31 d2
     
    96379634    sal bx, 1                                 ; d1 e3
    96389635    rcl dx, 1                                 ; d1 d2
    9639     loop 06b6ch                               ; e2 fa
     9636    loop 06a4ch                               ; e2 fa
    96409637    mov ax, strict word 00030h                ; b8 30 00
    9641     call 016ach                               ; e8 34 ab
     9638    call 01714h                               ; e8 bc ac
    96429639    xor ah, ah                                ; 30 e4
    96439640    or bx, ax                                 ; 09 c3
     
    96459642    sal bx, 1                                 ; d1 e3
    96469643    rcl dx, 1                                 ; d1 d2
    9647     loop 06b7fh                               ; e2 fa
     9644    loop 06a5fh                               ; e2 fa
    96489645    add bx, strict byte 00000h                ; 83 c3 00
    96499646    adc dx, strict byte 00010h                ; 83 d2 10
    96509647    mov ax, strict word 00062h                ; b8 62 00
    9651     call 016ach                               ; e8 1b ab
     9648    call 01714h                               ; e8 a3 ac
    96529649    xor ah, ah                                ; 30 e4
    96539650    mov word [bp-00ah], ax                    ; 89 46 f6
     
    96579654    sal word [bp-00ah], 1                     ; d1 66 f6
    96589655    rcl word [bp-008h], 1                     ; d1 56 f8
    9659     loop 06b9eh                               ; e2 f8
     9656    loop 06a7eh                               ; e2 f8
    96609657    mov ax, strict word 00061h                ; b8 61 00
    9661     call 016ach                               ; e8 00 ab
     9658    call 01714h                               ; e8 88 ac
    96629659    xor ah, ah                                ; 30 e4
    96639660    or word [bp-00ah], ax                     ; 09 46 f6
     
    96669663    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    96679664    mov ax, strict word 00063h                ; b8 63 00
    9668     call 016ach                               ; e8 ea aa
     9665    call 01714h                               ; e8 72 ac
    96699666    mov byte [bp-004h], al                    ; 88 46 fc
    96709667    mov byte [bp-006h], al                    ; 88 46 fa
    96719668    mov ax, word [bp+014h]                    ; 8b 46 14
    96729669    cmp ax, strict word 00009h                ; 3d 09 00
    9673     jnbe near 06dd1h                          ; 0f 87 ff 01
     9670    jnbe near 06cb2h                          ; 0f 87 00 02
    96749671    mov si, ax                                ; 89 c6
    96759672    add si, ax                                ; 01 c6
     
    96789675    mov cx, dx                                ; 89 d1
    96799676    adc cx, strict byte 0ffffh                ; 83 d1 ff
    9680     jmp word [cs:si+06a2bh]                   ; 2e ff a4 2b 6a
     9677    jmp word [cs:si+06938h]                   ; 2e ff a4 38 69
    96819678    push strict byte 00001h                   ; 6a 01
    96829679    push dword 000000000h                     ; 66 6a 00
     
    96879684    xor bx, bx                                ; 31 db
    96889685    xor cx, cx                                ; 31 c9
    9689     call 064e2h                               ; e8 e6 f8
     9686    call 0658dh                               ; e8 b1 fa
    96909687    mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00
    9691     jmp near 06d6fh                           ; e9 68 01
     9688    jmp near 06c4fh                           ; e9 68 01
    96929689    push strict byte 00002h                   ; 6a 02
    96939690    push dword 000000000h                     ; 66 6a 00
     
    96989695    mov bx, 0fc00h                            ; bb 00 fc
    96999696    mov cx, strict word 00009h                ; b9 09 00
    9700     call 064e2h                               ; e8 c3 f8
     9697    call 0658dh                               ; e8 8e fa
    97019698    mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00
    9702     jmp near 06d6fh                           ; e9 45 01
     9699    jmp near 06c4fh                           ; e9 45 01
    97039700    push strict byte 00002h                   ; 6a 02
    97049701    push dword 000000000h                     ; 66 6a 00
     
    97099706    xor bx, bx                                ; 31 db
    97109707    mov cx, strict word 0000fh                ; b9 0f 00
    9711     call 064e2h                               ; e8 a1 f8
     9708    call 0658dh                               ; e8 6c fa
    97129709    mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00
    9713     jmp near 06d6fh                           ; e9 23 01
     9710    jmp near 06c4fh                           ; e9 23 01
    97149711    push strict byte 00001h                   ; 6a 01
    97159712    push dword 000000000h                     ; 66 6a 00
     
    97209717    xor bx, bx                                ; 31 db
    97219718    mov cx, strict word 00010h                ; b9 10 00
    9722     call 064e2h                               ; e8 81 f8
     9719    call 0658dh                               ; e8 4c fa
    97239720    mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00
    9724     jmp near 06d6fh                           ; e9 03 01
     9721    jmp near 06c4fh                           ; e9 03 01
    97259722    push strict byte 00003h                   ; 6a 03
    97269723    push dword 000000000h                     ; 66 6a 00
     
    97319728    mov bx, ax                                ; 89 c3
    97329729    mov ax, si                                ; 89 f0
    9733     call 064e2h                               ; e8 62 f8
     9730    call 0658dh                               ; e8 2d fa
    97349731    mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00
    9735     jmp near 06d6fh                           ; e9 e4 00
     9732    jmp near 06c4fh                           ; e9 e4 00
    97369733    push strict byte 00002h                   ; 6a 02
    97379734    push dword 000000000h                     ; 66 6a 00
     
    97429739    xor bx, bx                                ; 31 db
    97439740    mov cx, 0fec0h                            ; b9 c0 fe
    9744     call 064e2h                               ; e8 3e f8
     9741    call 0658dh                               ; e8 09 fa
    97459742    mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00
    9746     jmp near 06d6fh                           ; e9 c0 00
     9743    jmp near 06c4fh                           ; e9 c0 00
    97479744    push strict byte 00002h                   ; 6a 02
    97489745    push dword 000000000h                     ; 66 6a 00
     
    97539750    xor bx, bx                                ; 31 db
    97549751    mov cx, 0fee0h                            ; b9 e0 fe
    9755     call 064e2h                               ; e8 1a f8
     9752    call 0658dh                               ; e8 e5 f9
    97569753    mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00
    9757     jmp near 06d6fh                           ; e9 9c 00
     9754    jmp near 06c4fh                           ; e9 9c 00
    97589755    push strict byte 00002h                   ; 6a 02
    97599756    push dword 000000000h                     ; 66 6a 00
     
    97639760    xor bx, bx                                ; 31 db
    97649761    mov cx, strict word 0fffch                ; b9 fc ff
    9765     call 064e2h                               ; e8 f9 f7
     9762    call 0658dh                               ; e8 c4 f9
    97669763    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9767     jne short 06cf6h                          ; 75 07
     9764    jne short 06bd6h                          ; 75 07
    97689765    mov ax, word [bp-008h]                    ; 8b 46 f8
    97699766    test ax, ax                               ; 85 c0
    9770     je short 06d0ah                           ; 74 14
     9767    je short 06beah                           ; 74 14
    97719768    mov dword [bp+014h], strict dword 000000009h ; 66 c7 46 14 09 00 00 00
    9772     jmp short 06d6fh                          ; eb 6f
     9769    jmp short 06c4fh                          ; eb 6f
    97739770    mov dword [bp+014h], strict dword 000000008h ; 66 c7 46 14 08 00 00 00
    9774     jmp short 06d6fh                          ; eb 65
     9771    jmp short 06c4fh                          ; eb 65
    97759772    mov word [bp+014h], ax                    ; 89 46 14
    97769773    mov word [bp+016h], ax                    ; 89 46 16
    9777     jmp short 06d6fh                          ; eb 5d
     9774    jmp short 06c4fh                          ; eb 5d
    97789775    push strict byte 00002h                   ; 6a 02
    97799776    push dword 000000000h                     ; 66 6a 00
     
    97839780    xor bx, bx                                ; 31 db
    97849781    xor cx, cx                                ; 31 c9
    9785     call 064e2h                               ; e8 bb f7
     9782    call 0658dh                               ; e8 86 f9
    97869783    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9787     jne short 06d34h                          ; 75 07
     9784    jne short 06c14h                          ; 75 07
    97889785    mov ax, word [bp-008h]                    ; 8b 46 f8
    97899786    test ax, ax                               ; 85 c0
    9790     je short 06d36h                           ; 74 02
    9791     jmp short 06cf6h                          ; eb c0
     9787    je short 06c16h                           ; 74 02
     9788    jmp short 06bd6h                          ; eb c0
    97929789    mov word [bp+014h], ax                    ; 89 46 14
    97939790    mov word [bp+016h], ax                    ; 89 46 16
    9794     jmp short 06d6fh                          ; eb 31
     9791    jmp short 06c4fh                          ; eb 31
    97959792    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9796     jne short 06d4ah                          ; 75 06
     9793    jne short 06c2ah                          ; 75 06
    97979794    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    9798     je short 06d6fh                           ; 74 25
     9795    je short 06c4fh                           ; 74 25
    97999796    push strict byte 00001h                   ; 6a 01
    98009797    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    98099806    xor bx, bx                                ; 31 db
    98109807    xor cx, cx                                ; 31 c9
    9811     call 064e2h                               ; e8 7b f7
     9808    call 0658dh                               ; e8 46 f9
    98129809    xor ax, ax                                ; 31 c0
    98139810    mov word [bp+014h], ax                    ; 89 46 14
     
    98169813    mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00
    98179814    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    9818     jmp short 06dfbh                          ; eb 76
     9815    jmp short 06cdch                          ; eb 77
    98199816    mov word [bp+028h], bx                    ; 89 5e 28
    98209817    mov ax, strict word 00031h                ; b8 31 00
    9821     call 016ach                               ; e8 1e a9
    9822     movzx dx, al                              ; 0f b6 d0
     9818    call 01714h                               ; e8 a6 aa
     9819    xor ah, ah                                ; 30 e4
     9820    mov dx, ax                                ; 89 c2
    98239821    sal dx, 008h                              ; c1 e2 08
    98249822    mov ax, strict word 00030h                ; b8 30 00
    9825     call 016ach                               ; e8 12 a9
     9823    call 01714h                               ; e8 99 aa
    98269824    xor ah, ah                                ; 30 e4
    98279825    or dx, ax                                 ; 09 c2
    98289826    mov word [bp+01ch], dx                    ; 89 56 1c
    98299827    cmp dx, 03c00h                            ; 81 fa 00 3c
    9830     jbe short 06dach                          ; 76 05
     9828    jbe short 06c8dh                          ; 76 05
    98319829    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    98329830    mov ax, strict word 00035h                ; b8 35 00
    9833     call 016ach                               ; e8 fa a8
     9831    call 01714h                               ; e8 81 aa
    98349832    xor ah, ah                                ; 30 e4
    98359833    mov dx, ax                                ; 89 c2
    98369834    sal dx, 008h                              ; c1 e2 08
    98379835    mov ax, strict word 00034h                ; b8 34 00
    9838     call 016ach                               ; e8 ed a8
     9836    call 01714h                               ; e8 74 aa
    98399837    xor ah, ah                                ; 30 e4
    98409838    or dx, ax                                 ; 09 c2
     
    98439841    mov word [bp+020h], ax                    ; 89 46 20
    98449842    mov word [bp+014h], dx                    ; 89 56 14
    9845     jmp short 06dfbh                          ; eb 2a
     9843    jmp short 06cdch                          ; eb 2a
    98469844    mov bx, 00da0h                            ; bb a0 0d
    98479845    mov cx, ds                                ; 8c d9
    98489846    mov ax, strict word 00004h                ; b8 04 00
    9849     call 01931h                               ; e8 55 ab
     9847    call 01999h                               ; e8 dc ac
    98509848    push word [bp+014h]                       ; ff 76 14
    98519849    push word [bp+020h]                       ; ff 76 20
    98529850    push 008b4h                               ; 68 b4 08
    98539851    push strict byte 00004h                   ; 6a 04
    9854     call 01972h                               ; e8 88 ab
     9852    call 019dah                               ; e8 0f ad
    98559853    add sp, strict byte 00008h                ; 83 c4 08
    98569854    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    98639861    pop bp                                    ; 5d
    98649862    retn                                      ; c3
    9865 _inv_op_handler:                             ; 0xf6e01 LB 0x195
     9863_int15_blkmove:                              ; 0xf6ce2 LB 0x1ab
     9864    push bp                                   ; 55
     9865    mov bp, sp                                ; 89 e5
     9866    push si                                   ; 56
     9867    push di                                   ; 57
     9868    push ax                                   ; 50
     9869    push ax                                   ; 50
     9870    cli                                       ; fa
     9871    mov ax, strict word 00001h                ; b8 01 00
     9872    call 06561h                               ; e8 71 f8
     9873    mov di, ax                                ; 89 c7
     9874    mov ax, word [bp+006h]                    ; 8b 46 06
     9875    sal ax, 004h                              ; c1 e0 04
     9876    mov cx, word [bp+00ah]                    ; 8b 4e 0a
     9877    add cx, ax                                ; 01 c1
     9878    mov dx, word [bp+006h]                    ; 8b 56 06
     9879    shr dx, 00ch                              ; c1 ea 0c
     9880    mov byte [bp-006h], dl                    ; 88 56 fa
     9881    cmp cx, ax                                ; 39 c1
     9882    jnc short 06d0fh                          ; 73 05
     9883    db  0feh, 0c2h
     9884    ; inc dl                                    ; fe c2
     9885    mov byte [bp-006h], dl                    ; 88 56 fa
     9886    mov dx, word [bp+00ah]                    ; 8b 56 0a
     9887    add dx, strict byte 00008h                ; 83 c2 08
     9888    mov ax, word [bp+006h]                    ; 8b 46 06
     9889    mov bx, strict word 0002fh                ; bb 2f 00
     9890    call 016e2h                               ; e8 c4 a9
     9891    mov dx, word [bp+00ah]                    ; 8b 56 0a
     9892    add dx, strict byte 0000ah                ; 83 c2 0a
     9893    mov ax, word [bp+006h]                    ; 8b 46 06
     9894    mov bx, cx                                ; 89 cb
     9895    call 016e2h                               ; e8 b6 a9
     9896    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     9897    mov dx, word [bp+00ah]                    ; 8b 56 0a
     9898    add dx, strict byte 0000ch                ; 83 c2 0c
     9899    mov ax, word [bp+006h]                    ; 8b 46 06
     9900    call 016c6h                               ; e8 8a a9
     9901    mov dx, word [bp+00ah]                    ; 8b 56 0a
     9902    add dx, strict byte 0000dh                ; 83 c2 0d
     9903    mov ax, word [bp+006h]                    ; 8b 46 06
     9904    mov bx, 00093h                            ; bb 93 00
     9905    call 016c6h                               ; e8 7b a9
     9906    mov dx, word [bp+00ah]                    ; 8b 56 0a
     9907    add dx, strict byte 0000eh                ; 83 c2 0e
     9908    mov ax, word [bp+006h]                    ; 8b 46 06
     9909    xor bx, bx                                ; 31 db
     9910    call 016e2h                               ; e8 89 a9
     9911    mov dx, word [bp+00ah]                    ; 8b 56 0a
     9912    add dx, strict byte 00020h                ; 83 c2 20
     9913    mov ax, word [bp+006h]                    ; 8b 46 06
     9914    mov bx, strict word 0ffffh                ; bb ff ff
     9915    call 016e2h                               ; e8 7a a9
     9916    mov dx, word [bp+00ah]                    ; 8b 56 0a
     9917    add dx, strict byte 00022h                ; 83 c2 22
     9918    mov ax, word [bp+006h]                    ; 8b 46 06
     9919    xor bx, bx                                ; 31 db
     9920    call 016e2h                               ; e8 6c a9
     9921    mov dx, word [bp+00ah]                    ; 8b 56 0a
     9922    add dx, strict byte 00024h                ; 83 c2 24
     9923    mov ax, word [bp+006h]                    ; 8b 46 06
     9924    mov bx, strict word 0000fh                ; bb 0f 00
     9925    call 016c6h                               ; e8 41 a9
     9926    mov dx, word [bp+00ah]                    ; 8b 56 0a
     9927    add dx, strict byte 00025h                ; 83 c2 25
     9928    mov ax, word [bp+006h]                    ; 8b 46 06
     9929    mov bx, 0009bh                            ; bb 9b 00
     9930    call 016c6h                               ; e8 32 a9
     9931    mov dx, word [bp+00ah]                    ; 8b 56 0a
     9932    add dx, strict byte 00026h                ; 83 c2 26
     9933    mov ax, word [bp+006h]                    ; 8b 46 06
     9934    xor bx, bx                                ; 31 db
     9935    call 016e2h                               ; e8 40 a9
     9936    mov ax, ss                                ; 8c d0
     9937    mov cx, ax                                ; 89 c1
     9938    sal cx, 004h                              ; c1 e1 04
     9939    shr ax, 00ch                              ; c1 e8 0c
     9940    mov word [bp-008h], ax                    ; 89 46 f8
     9941    mov dx, word [bp+00ah]                    ; 8b 56 0a
     9942    add dx, strict byte 00028h                ; 83 c2 28
     9943    mov ax, word [bp+006h]                    ; 8b 46 06
     9944    mov bx, strict word 0ffffh                ; bb ff ff
     9945    call 016e2h                               ; e8 24 a9
     9946    mov dx, word [bp+00ah]                    ; 8b 56 0a
     9947    add dx, strict byte 0002ah                ; 83 c2 2a
     9948    mov ax, word [bp+006h]                    ; 8b 46 06
     9949    mov bx, cx                                ; 89 cb
     9950    call 016e2h                               ; e8 16 a9
     9951    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     9952    mov dx, word [bp+00ah]                    ; 8b 56 0a
     9953    add dx, strict byte 0002ch                ; 83 c2 2c
     9954    mov ax, word [bp+006h]                    ; 8b 46 06
     9955    call 016c6h                               ; e8 ea a8
     9956    mov dx, word [bp+00ah]                    ; 8b 56 0a
     9957    add dx, strict byte 0002dh                ; 83 c2 2d
     9958    mov ax, word [bp+006h]                    ; 8b 46 06
     9959    mov bx, 00093h                            ; bb 93 00
     9960    call 016c6h                               ; e8 db a8
     9961    mov dx, word [bp+00ah]                    ; 8b 56 0a
     9962    add dx, strict byte 0002eh                ; 83 c2 2e
     9963    mov ax, word [bp+006h]                    ; 8b 46 06
     9964    xor bx, bx                                ; 31 db
     9965    call 016e2h                               ; e8 e9 a8
     9966    lea ax, [bp+004h]                         ; 8d 46 04
     9967    mov si, word [bp+00ah]                    ; 8b 76 0a
     9968    mov es, [bp+006h]                         ; 8e 46 06
     9969    mov cx, word [bp+014h]                    ; 8b 4e 14
     9970    push DS                                   ; 1e
     9971    push eax                                  ; 66 50
     9972    db  066h, 033h, 0c0h
     9973    ; xor eax, eax                              ; 66 33 c0
     9974    mov ds, ax                                ; 8e d8
     9975    mov word [00467h], sp                     ; 89 26 67 04
     9976    mov [00469h], ss                          ; 8c 16 69 04
     9977    call 06e18h                               ; e8 00 00
     9978    pop di                                    ; 5f
     9979    add di, strict byte 0001bh                ; 83 c7 1b
     9980    push strict byte 00020h                   ; 6a 20
     9981    push di                                   ; 57
     9982    lgdt [es:si+008h]                         ; 26 0f 01 54 08
     9983    lidt [cs:0efe1h]                          ; 2e 0f 01 1e e1 ef
     9984    mov eax, cr0                              ; 0f 20 c0
     9985    or AL, strict byte 001h                   ; 0c 01
     9986    mov cr0, eax                              ; 0f 22 c0
     9987    retf                                      ; cb
     9988    mov ax, strict word 00028h                ; b8 28 00
     9989    mov ss, ax                                ; 8e d0
     9990    mov ax, strict word 00010h                ; b8 10 00
     9991    mov ds, ax                                ; 8e d8
     9992    mov ax, strict word 00018h                ; b8 18 00
     9993    mov es, ax                                ; 8e c0
     9994    db  033h, 0f6h
     9995    ; xor si, si                                ; 33 f6
     9996    db  033h, 0ffh
     9997    ; xor di, di                                ; 33 ff
     9998    cld                                       ; fc
     9999    rep movsw                                 ; f3 a5
     10000    call 06e4ch                               ; e8 00 00
     10001    pop ax                                    ; 58
     10002    push 0f000h                               ; 68 00 f0
     10003    add ax, strict byte 00018h                ; 83 c0 18
     10004    push ax                                   ; 50
     10005    mov ax, strict word 00028h                ; b8 28 00
     10006    mov ds, ax                                ; 8e d8
     10007    mov es, ax                                ; 8e c0
     10008    mov eax, cr0                              ; 0f 20 c0
     10009    and AL, strict byte 0feh                  ; 24 fe
     10010    mov cr0, eax                              ; 0f 22 c0
     10011    retf                                      ; cb
     10012    lidt [cs:0efe7h]                          ; 2e 0f 01 1e e7 ef
     10013    db  033h, 0c0h
     10014    ; xor ax, ax                                ; 33 c0
     10015    mov ds, ax                                ; 8e d8
     10016    mov es, ax                                ; 8e c0
     10017    lss sp, [00467h]                          ; 0f b2 26 67 04
     10018    pop eax                                   ; 66 58
     10019    pop DS                                    ; 1f
     10020    mov ax, di                                ; 89 f8
     10021    call 06561h                               ; e8 e4 f6
     10022    sti                                       ; fb
     10023    mov byte [bp+017h], 000h                  ; c6 46 17 00
     10024    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     10025    lea sp, [bp-004h]                         ; 8d 66 fc
     10026    pop di                                    ; 5f
     10027    pop si                                    ; 5e
     10028    pop bp                                    ; 5d
     10029    retn                                      ; c3
     10030_inv_op_handler:                             ; 0xf6e8d LB 0x195
    986610031    push bp                                   ; 55
    986710032    mov bp, sp                                ; 89 e5
     
    987210037    les bx, [bp+018h]                         ; c4 5e 18
    987310038    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    9874     jne short 06e17h                          ; 75 06
     10039    jne short 06ea3h                          ; 75 06
    987510040    inc word [bp+018h]                        ; ff 46 18
    9876     jmp near 06f8fh                           ; e9 78 01
     10041    jmp near 0701bh                           ; e9 78 01
    987710042    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    9878     jne near 06f8bh                           ; 0f 85 6b 01
     10043    jne near 07017h                           ; 0f 85 6b 01
    987910044    mov si, 00800h                            ; be 00 08
    988010045    xor ax, ax                                ; 31 c0
     
    990410069    sal ax, 1                                 ; d1 e0
    990510070    rcl dx, 1                                 ; d1 d2
    9906     loop 06e70h                               ; e2 fa
     10071    loop 06efch                               ; e2 fa
    990710072    cmp bx, dx                                ; 39 d3
    9908     jne short 06e7eh                          ; 75 04
     10073    jne short 06f0ah                          ; 75 04
    990910074    cmp di, ax                                ; 39 c7
    9910     je short 06e83h                           ; 74 05
     10075    je short 06f0fh                           ; 74 05
    991110076    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    991210077    mov es, [bp-006h]                         ; 8e 46 fa
     
    991810083    sal ax, 1                                 ; d1 e0
    991910084    rcl dx, 1                                 ; d1 d2
    9920     loop 06e98h                               ; e2 fa
     10085    loop 06f24h                               ; e2 fa
    992110086    cmp di, dx                                ; 39 d7
    9922     jne short 06ea6h                          ; 75 04
     10087    jne short 06f32h                          ; 75 04
    992310088    cmp bx, ax                                ; 39 c3
    9924     je short 06eaah                           ; 74 04
     10089    je short 06f36h                           ; 74 04
    992510090    or byte [bp-008h], 002h                   ; 80 4e f8 02
    992610091    push strict byte 00000h                   ; 6a 00
     
    997210137    mov ax, strict word 00008h                ; b8 08 00
    997310138    test cx, strict word 00001h               ; f7 c1 01 00
    9974     je near 06f48h                            ; 0f 84 02 00
     10139    je near 06fd4h                            ; 0f 84 02 00
    997510140    mov es, ax                                ; 8e c0
    997610141    test cx, strict word 00002h               ; f7 c1 02 00
    9977     je near 06f70h                            ; 0f 84 20 00
     10142    je near 06ffch                            ; 0f 84 20 00
    997810143    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    997910144    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    999210157    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    999310158    iret                                      ; cf
    9994     jmp short 06f8fh                          ; eb 04
     10159    jmp short 0701bh                          ; eb 04
    999510160    sti                                       ; fb
    999610161    hlt                                       ; f4
    9997     jmp short 06f8ch                          ; eb fd
     10162    jmp short 07018h                          ; eb fd
    999810163    lea sp, [bp-004h]                         ; 8d 66 fc
    999910164    pop di                                    ; 5f
     
    1000110166    pop bp                                    ; 5d
    1000210167    retn                                      ; c3
    10003 init_rtc_:                                   ; 0xf6f96 LB 0x28
     10168init_rtc_:                                   ; 0xf7022 LB 0x28
    1000410169    push bp                                   ; 55
    1000510170    mov bp, sp                                ; 89 e5
     
    1000710172    mov dx, strict word 00026h                ; ba 26 00
    1000810173    mov ax, strict word 0000ah                ; b8 0a 00
    10009     call 016c9h                               ; e8 26 a7
     10174    call 01731h                               ; e8 02 a7
    1001010175    mov dx, strict word 00002h                ; ba 02 00
    1001110176    mov ax, strict word 0000bh                ; b8 0b 00
    10012     call 016c9h                               ; e8 1d a7
     10177    call 01731h                               ; e8 f9 a6
    1001310178    mov ax, strict word 0000ch                ; b8 0c 00
    10014     call 016ach                               ; e8 fa a6
     10179    call 01714h                               ; e8 d6 a6
    1001510180    mov ax, strict word 0000dh                ; b8 0d 00
    10016     call 016ach                               ; e8 f4 a6
     10181    call 01714h                               ; e8 d0 a6
    1001710182    lea sp, [bp-002h]                         ; 8d 66 fe
    1001810183    pop dx                                    ; 5a
    1001910184    pop bp                                    ; 5d
    1002010185    retn                                      ; c3
    10021 rtc_updating_:                               ; 0xf6fbe LB 0x21
     10186rtc_updating_:                               ; 0xf704a LB 0x21
    1002210187    push bp                                   ; 55
    1002310188    mov bp, sp                                ; 89 e5
     
    1002510190    mov dx, 061a8h                            ; ba a8 61
    1002610191    dec dx                                    ; 4a
    10027     je short 06fd6h                           ; 74 0e
     10192    je short 07062h                           ; 74 0e
    1002810193    mov ax, strict word 0000ah                ; b8 0a 00
    10029     call 016ach                               ; e8 de a6
     10194    call 01714h                               ; e8 ba a6
    1003010195    test AL, strict byte 080h                 ; a8 80
    10031     jne short 06fc5h                          ; 75 f3
     10196    jne short 07051h                          ; 75 f3
    1003210197    xor ax, ax                                ; 31 c0
    10033     jmp short 06fd9h                          ; eb 03
     10198    jmp short 07065h                          ; eb 03
    1003410199    mov ax, strict word 00001h                ; b8 01 00
    1003510200    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1003710202    pop bp                                    ; 5d
    1003810203    retn                                      ; c3
    10039 _int70_function:                             ; 0xf6fdf LB 0xbe
     10204_int70_function:                             ; 0xf706b LB 0xbe
    1004010205    push bp                                   ; 55
    1004110206    mov bp, sp                                ; 89 e5
     
    1004310208    push ax                                   ; 50
    1004410209    mov ax, strict word 0000bh                ; b8 0b 00
    10045     call 016ach                               ; e8 c2 a6
     10210    call 01714h                               ; e8 9e a6
    1004610211    mov dl, al                                ; 88 c2
    1004710212    mov byte [bp-004h], al                    ; 88 46 fc
    1004810213    mov ax, strict word 0000ch                ; b8 0c 00
    10049     call 016ach                               ; e8 b7 a6
     10214    call 01714h                               ; e8 93 a6
    1005010215    mov dh, al                                ; 88 c6
    1005110216    test dl, 060h                             ; f6 c2 60
    10052     je near 07084h                            ; 0f 84 86 00
     10217    je near 07110h                            ; 0f 84 86 00
    1005310218    test AL, strict byte 020h                 ; a8 20
    10054     je short 07006h                           ; 74 04
     10219    je short 07092h                           ; 74 04
    1005510220    sti                                       ; fb
    1005610221    int 04ah                                  ; cd 4a
    1005710222    cli                                       ; fa
    1005810223    test dh, 040h                             ; f6 c6 40
    10059     je near 07084h                            ; 0f 84 77 00
     10224    je near 07110h                            ; 0f 84 77 00
    1006010225    mov dx, 000a0h                            ; ba a0 00
    1006110226    mov ax, strict word 00040h                ; b8 40 00
    10062     call 01650h                               ; e8 3a a6
     10227    call 016b8h                               ; e8 16 a6
    1006310228    test al, al                               ; 84 c0
    10064     je short 07084h                           ; 74 6a
     10229    je short 07110h                           ; 74 6a
    1006510230    mov dx, 0009ch                            ; ba 9c 00
    1006610231    mov ax, strict word 00040h                ; b8 40 00
    10067     call 01688h                               ; e8 65 a6
     10232    call 016f0h                               ; e8 41 a6
    1006810233    test dx, dx                               ; 85 d2
    10069     jne short 07070h                          ; 75 49
     10234    jne short 070fch                          ; 75 49
    1007010235    cmp ax, 003d1h                            ; 3d d1 03
    10071     jnc short 07070h                          ; 73 44
     10236    jnc short 070fch                          ; 73 44
    1007210237    mov dx, 00098h                            ; ba 98 00
    1007310238    mov ax, strict word 00040h                ; b8 40 00
    10074     call 0166ch                               ; e8 37 a6
     10239    call 016d4h                               ; e8 13 a6
    1007510240    mov si, ax                                ; 89 c6
    1007610241    mov dx, 0009ah                            ; ba 9a 00
    1007710242    mov ax, strict word 00040h                ; b8 40 00
    10078     call 0166ch                               ; e8 2c a6
     10243    call 016d4h                               ; e8 08 a6
    1007910244    mov cx, ax                                ; 89 c1
    1008010245    xor bx, bx                                ; 31 db
    1008110246    mov dx, 000a0h                            ; ba a0 00
    1008210247    mov ax, strict word 00040h                ; b8 40 00
    10083     call 0165eh                               ; e8 11 a6
     10248    call 016c6h                               ; e8 ed a5
    1008410249    mov al, byte [bp-004h]                    ; 8a 46 fc
    1008510250    and AL, strict byte 037h                  ; 24 37
    1008610251    movzx dx, al                              ; 0f b6 d0
    1008710252    mov ax, strict word 0000bh                ; b8 0b 00
    10088     call 016c9h                               ; e8 6e a6
     10253    call 01731h                               ; e8 4a a6
    1008910254    mov dx, cx                                ; 89 ca
    1009010255    mov ax, si                                ; 89 f0
    10091     call 01650h                               ; e8 ee a5
     10256    call 016b8h                               ; e8 ca a5
    1009210257    or AL, strict byte 080h                   ; 0c 80
    1009310258    movzx bx, al                              ; 0f b6 d8
    1009410259    mov dx, cx                                ; 89 ca
    1009510260    mov ax, si                                ; 89 f0
    10096     call 0165eh                               ; e8 f0 a5
    10097     jmp short 07084h                          ; eb 14
     10261    call 016c6h                               ; e8 cc a5
     10262    jmp short 07110h                          ; eb 14
    1009810263    mov bx, ax                                ; 89 c3
    1009910264    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1010210267    mov dx, 0009ch                            ; ba 9c 00
    1010310268    mov ax, strict word 00040h                ; b8 40 00
    10104     call 0169ah                               ; e8 16 a6
    10105     call 0e030h                               ; e8 a9 6f
     10269    call 01702h                               ; e8 f2 a5
     10270    call 0e030h                               ; e8 1d 6f
    1010610271    lea sp, [bp-002h]                         ; 8d 66 fe
    1010710272    pop si                                    ; 5e
    1010810273    pop bp                                    ; 5d
    1010910274    retn                                      ; c3
    10110     mov AH, strict byte 070h                  ; b4 70
    10111     fnsave [bx+si+002h]                       ; dd 70 02
    10112     jno short 070c8h                          ; 71 34
    10113     jno short 07019h                          ; 71 83
    10114     jno short 07053h                          ; 71 bb
    10115     jno short 07098h                          ; 71 fe
    10116     jno short 070f1h                          ; 71 55
     10275    inc ax                                    ; 40
     10276    jno short 07185h                          ; 71 69
     10277    jno short 070ach                          ; 71 8e
     10278    jno short 070e0h                          ; 71 c0
     10279    jno short 07131h                          ; 71 0f
     10280    jc short 0716bh                           ; 72 47
     10281    jc short 070b0h                           ; 72 8a
     10282    jc short 07109h                           ; 72 e1
    1011710283    db  072h
    10118 _int1a_function:                             ; 0xf709d LB 0x1c8
     10284_int1a_function:                             ; 0xf7129 LB 0x1c8
    1011910285    push bp                                   ; 55
    1012010286    mov bp, sp                                ; 89 e5
     
    1012210288    mov al, byte [bp+013h]                    ; 8a 46 13
    1012310289    cmp AL, strict byte 007h                  ; 3c 07
    10124     jnbe near 070d9h                          ; 0f 87 2f 00
     10290    jnbe near 07165h                          ; 0f 87 2f 00
    1012510291    movzx bx, al                              ; 0f b6 d8
    1012610292    add bx, bx                                ; 01 db
    10127     jmp word [cs:bx+0708dh]                   ; 2e ff a7 8d 70
     10293    jmp word [cs:bx+07119h]                   ; 2e ff a7 19 71
    1012810294    cli                                       ; fa
    1012910295    mov bx, 0046eh                            ; bb 6e 04
     
    1015610322    sti                                       ; fb
    1015710323    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10158     jmp short 070d9h                          ; eb d7
    10159     call 06fbeh                               ; e8 b9 fe
     10324    jmp short 07165h                          ; eb d7
     10325    call 0704ah                               ; e8 b9 fe
    1016010326    test ax, ax                               ; 85 c0
    10161     je short 0710bh                           ; 74 02
    10162     jmp short 070d9h                          ; eb ce
     10327    je short 07197h                           ; 74 02
     10328    jmp short 07165h                          ; eb ce
    1016310329    xor ax, ax                                ; 31 c0
    10164     call 016ach                               ; e8 9c a5
     10330    call 01714h                               ; e8 78 a5
    1016510331    mov byte [bp+00fh], al                    ; 88 46 0f
    1016610332    mov ax, strict word 00002h                ; b8 02 00
    10167     call 016ach                               ; e8 93 a5
     10333    call 01714h                               ; e8 6f a5
    1016810334    mov byte [bp+010h], al                    ; 88 46 10
    1016910335    mov ax, strict word 00004h                ; b8 04 00
    10170     call 016ach                               ; e8 8a a5
     10336    call 01714h                               ; e8 66 a5
    1017110337    mov bl, al                                ; 88 c3
    1017210338    mov byte [bp+011h], al                    ; 88 46 11
    1017310339    mov ax, strict word 0000bh                ; b8 0b 00
    10174     call 016ach                               ; e8 7f a5
     10340    call 01714h                               ; e8 5b a5
    1017510341    and AL, strict byte 001h                  ; 24 01
    1017610342    mov byte [bp+00eh], al                    ; 88 46 0e
    10177     jmp short 07179h                          ; eb 45
    10178     call 06fbeh                               ; e8 87 fe
     10343    jmp short 07205h                          ; eb 45
     10344    call 0704ah                               ; e8 87 fe
    1017910345    test ax, ax                               ; 85 c0
    10180     je short 0713eh                           ; 74 03
    10181     call 06f96h                               ; e8 58 fe
     10346    je short 071cah                           ; 74 03
     10347    call 07022h                               ; e8 58 fe
    1018210348    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1018310349    xor ax, ax                                ; 31 c0
    10184     call 016c9h                               ; e8 82 a5
     10350    call 01731h                               ; e8 5e a5
    1018510351    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1018610352    mov ax, strict word 00002h                ; b8 02 00
    10187     call 016c9h                               ; e8 78 a5
     10353    call 01731h                               ; e8 54 a5
    1018810354    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1018910355    mov ax, strict word 00004h                ; b8 04 00
    10190     call 016c9h                               ; e8 6e a5
     10356    call 01731h                               ; e8 4a a5
    1019110357    mov ax, strict word 0000bh                ; b8 0b 00
    10192     call 016ach                               ; e8 4b a5
     10358    call 01714h                               ; e8 27 a5
    1019310359    mov bl, al                                ; 88 c3
    1019410360    and bl, 060h                              ; 80 e3 60
     
    1019910365    movzx dx, bl                              ; 0f b6 d3
    1020010366    mov ax, strict word 0000bh                ; b8 0b 00
    10201     call 016c9h                               ; e8 50 a5
     10367    call 01731h                               ; e8 2c a5
    1020210368    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1020310369    mov byte [bp+012h], bl                    ; 88 5e 12
    10204     jmp near 070d9h                           ; e9 56 ff
     10370    jmp near 07165h                           ; e9 56 ff
    1020510371    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10206     call 06fbeh                               ; e8 34 fe
     10372    call 0704ah                               ; e8 34 fe
    1020710373    test ax, ax                               ; 85 c0
    10208     je short 07191h                           ; 74 03
    10209     jmp near 070d9h                           ; e9 48 ff
     10374    je short 0721dh                           ; 74 03
     10375    jmp near 07165h                           ; e9 48 ff
    1021010376    mov ax, strict word 00009h                ; b8 09 00
    10211     call 016ach                               ; e8 15 a5
     10377    call 01714h                               ; e8 f1 a4
    1021210378    mov byte [bp+010h], al                    ; 88 46 10
    1021310379    mov ax, strict word 00008h                ; b8 08 00
    10214     call 016ach                               ; e8 0c a5
     10380    call 01714h                               ; e8 e8 a4
    1021510381    mov byte [bp+00fh], al                    ; 88 46 0f
    1021610382    mov ax, strict word 00007h                ; b8 07 00
    10217     call 016ach                               ; e8 03 a5
     10383    call 01714h                               ; e8 df a4
    1021810384    mov byte [bp+00eh], al                    ; 88 46 0e
    1021910385    mov ax, strict word 00032h                ; b8 32 00
    10220     call 016ach                               ; e8 fa a4
     10386    call 01714h                               ; e8 d6 a4
    1022110387    mov byte [bp+011h], al                    ; 88 46 11
    1022210388    mov byte [bp+012h], al                    ; 88 46 12
    10223     jmp near 070d9h                           ; e9 1e ff
    10224     call 06fbeh                               ; e8 00 fe
     10389    jmp near 07165h                           ; e9 1e ff
     10390    call 0704ah                               ; e8 00 fe
    1022510391    test ax, ax                               ; 85 c0
    10226     je short 071c8h                           ; 74 06
    10227     call 06f96h                               ; e8 d1 fd
    10228     jmp near 070d9h                           ; e9 11 ff
     10392    je short 07254h                           ; 74 06
     10393    call 07022h                               ; e8 d1 fd
     10394    jmp near 07165h                           ; e9 11 ff
    1022910395    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1023010396    mov ax, strict word 00009h                ; b8 09 00
    10231     call 016c9h                               ; e8 f7 a4
     10397    call 01731h                               ; e8 d3 a4
    1023210398    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1023310399    mov ax, strict word 00008h                ; b8 08 00
    10234     call 016c9h                               ; e8 ed a4
     10400    call 01731h                               ; e8 c9 a4
    1023510401    movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
    1023610402    mov ax, strict word 00007h                ; b8 07 00
    10237     call 016c9h                               ; e8 e3 a4
     10403    call 01731h                               ; e8 bf a4
    1023810404    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1023910405    mov ax, strict word 00032h                ; b8 32 00
    10240     call 016c9h                               ; e8 d9 a4
     10406    call 01731h                               ; e8 b5 a4
    1024110407    mov ax, strict word 0000bh                ; b8 0b 00
    10242     call 016ach                               ; e8 b6 a4
     10408    call 01714h                               ; e8 92 a4
    1024310409    mov bl, al                                ; 88 c3
    1024410410    and bl, 07fh                              ; 80 e3 7f
    10245     jmp near 07170h                           ; e9 72 ff
     10411    jmp near 071fch                           ; e9 72 ff
    1024610412    mov ax, strict word 0000bh                ; b8 0b 00
    10247     call 016ach                               ; e8 a8 a4
     10413    call 01714h                               ; e8 84 a4
    1024810414    mov bl, al                                ; 88 c3
    1024910415    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1025010416    test AL, strict byte 020h                 ; a8 20
    10251     je short 07212h                           ; 74 03
    10252     jmp near 070d9h                           ; e9 c7 fe
    10253     call 06fbeh                               ; e8 a9 fd
     10417    je short 0729eh                           ; 74 03
     10418    jmp near 07165h                           ; e9 c7 fe
     10419    call 0704ah                               ; e8 a9 fd
    1025410420    test ax, ax                               ; 85 c0
    10255     je short 0721ch                           ; 74 03
    10256     call 06f96h                               ; e8 7a fd
     10421    je short 072a8h                           ; 74 03
     10422    call 07022h                               ; e8 7a fd
    1025710423    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1025810424    mov ax, strict word 00001h                ; b8 01 00
    10259     call 016c9h                               ; e8 a3 a4
     10425    call 01731h                               ; e8 7f a4
    1026010426    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1026110427    mov ax, strict word 00003h                ; b8 03 00
    10262     call 016c9h                               ; e8 99 a4
     10428    call 01731h                               ; e8 75 a4
    1026310429    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1026410430    mov ax, strict word 00005h                ; b8 05 00
    10265     call 016c9h                               ; e8 8f a4
     10431    call 01731h                               ; e8 6b a4
    1026610432    mov dx, 000a1h                            ; ba a1 00
    1026710433    in AL, DX                                 ; ec
     
    1027510441    movzx dx, al                              ; 0f b6 d0
    1027610442    mov ax, strict word 0000bh                ; b8 0b 00
    10277     call 016c9h                               ; e8 77 a4
    10278     jmp near 070d9h                           ; e9 84 fe
     10443    call 01731h                               ; e8 53 a4
     10444    jmp near 07165h                           ; e9 84 fe
    1027910445    mov ax, strict word 0000bh                ; b8 0b 00
    10280     call 016ach                               ; e8 51 a4
     10446    call 01714h                               ; e8 2d a4
    1028110447    mov bl, al                                ; 88 c3
    1028210448    and AL, strict byte 057h                  ; 24 57
    1028310449    movzx dx, al                              ; 0f b6 d0
    10284     jmp near 07173h                           ; e9 0e ff
    10285 send_to_mouse_ctrl_:                         ; 0xf7265 LB 0x34
     10450    jmp near 071ffh                           ; e9 0e ff
     10451send_to_mouse_ctrl_:                         ; 0xf72f1 LB 0x34
    1028610452    push bp                                   ; 55
    1028710453    mov bp, sp                                ; 89 e5
     
    1029410460    ; sub ah, ah                                ; 2a e4
    1029510461    test AL, strict byte 002h                 ; a8 02
    10296     je short 07284h                           ; 74 0e
     10462    je short 07310h                           ; 74 0e
    1029710463    push 008eeh                               ; 68 ee 08
    1029810464    push 01168h                               ; 68 68 11
    1029910465    push strict byte 00007h                   ; 6a 07
    10300     call 01972h                               ; e8 f1 a6
     10466    call 019dah                               ; e8 cd a6
    1030110467    add sp, strict byte 00006h                ; 83 c4 06
    1030210468    mov AL, strict byte 0d4h                  ; b0 d4
     
    1031210478    pop bp                                    ; 5d
    1031310479    retn                                      ; c3
    10314 get_mouse_data_:                             ; 0xf7299 LB 0x5c
     10480get_mouse_data_:                             ; 0xf7325 LB 0x5c
    1031510481    push bp                                   ; 55
    1031610482    mov bp, sp                                ; 89 e5
     
    1032710493    and ax, strict word 00021h                ; 25 21 00
    1032810494    cmp ax, strict word 00021h                ; 3d 21 00
    10329     je short 072dbh                           ; 74 27
     10495    je short 07367h                           ; 74 27
    1033010496    test cx, cx                               ; 85 c9
    10331     je short 072dbh                           ; 74 23
     10497    je short 07367h                           ; 74 23
    1033210498    mov dx, strict word 00061h                ; ba 61 00
    1033310499    in AL, DX                                 ; ec
     
    1034510511    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1034610512    cmp dx, ax                                ; 39 c2
    10347     je short 072c3h                           ; 74 eb
     10513    je short 0734fh                           ; 74 eb
    1034810514    dec cx                                    ; 49
    10349     jmp short 072a6h                          ; eb cb
     10515    jmp short 07332h                          ; eb cb
    1035010516    test cx, cx                               ; 85 c9
    10351     jne short 072e3h                          ; 75 04
     10517    jne short 0736fh                          ; 75 04
    1035210518    mov AL, strict byte 001h                  ; b0 01
    10353     jmp short 072eeh                          ; eb 0b
     10519    jmp short 0737ah                          ; eb 0b
    1035410520    mov dx, strict word 00060h                ; ba 60 00
    1035510521    in AL, DX                                 ; ec
     
    1036310529    pop bp                                    ; 5d
    1036410530    retn                                      ; c3
    10365 set_kbd_command_byte_:                       ; 0xf72f5 LB 0x32
     10531set_kbd_command_byte_:                       ; 0xf7381 LB 0x32
    1036610532    push bp                                   ; 55
    1036710533    mov bp, sp                                ; 89 e5
     
    1037410540    ; sub ah, ah                                ; 2a e4
    1037510541    test AL, strict byte 002h                 ; a8 02
    10376     je short 07314h                           ; 74 0e
     10542    je short 073a0h                           ; 74 0e
    1037710543    push 008f8h                               ; 68 f8 08
    1037810544    push 01168h                               ; 68 68 11
    1037910545    push strict byte 00007h                   ; 6a 07
    10380     call 01972h                               ; e8 61 a6
     10546    call 019dah                               ; e8 3d a6
    1038110547    add sp, strict byte 00006h                ; 83 c4 06
    1038210548    mov AL, strict byte 060h                  ; b0 60
     
    1039110557    pop bp                                    ; 5d
    1039210558    retn                                      ; c3
    10393 _int74_function:                             ; 0xf7327 LB 0xca
     10559_int74_function:                             ; 0xf73b3 LB 0xca
    1039410560    push bp                                   ; 55
    1039510561    mov bp, sp                                ; 89 e5
     
    1039710563    mov dx, strict word 0000eh                ; ba 0e 00
    1039810564    mov ax, strict word 00040h                ; b8 40 00
    10399     call 0166ch                               ; e8 36 a3
     10565    call 016d4h                               ; e8 12 a3
    1040010566    mov cx, ax                                ; 89 c1
    1040110567    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1040610572    and AL, strict byte 021h                  ; 24 21
    1040710573    cmp AL, strict byte 021h                  ; 3c 21
    10408     jne near 073ddh                           ; 0f 85 92 00
     10574    jne near 07469h                           ; 0f 85 92 00
    1040910575    mov dx, strict word 00060h                ; ba 60 00
    1041010576    in AL, DX                                 ; ec
     
    1041410580    mov dx, strict word 00026h                ; ba 26 00
    1041510581    mov ax, cx                                ; 89 c8
    10416     call 01650h                               ; e8 f5 a2
     10582    call 016b8h                               ; e8 d1 a2
    1041710583    mov byte [bp-006h], al                    ; 88 46 fa
    1041810584    mov dx, strict word 00027h                ; ba 27 00
    1041910585    mov ax, cx                                ; 89 c8
    10420     call 01650h                               ; e8 ea a2
     10586    call 016b8h                               ; e8 c6 a2
    1042110587    mov byte [bp-008h], al                    ; 88 46 f8
    1042210588    test AL, strict byte 080h                 ; a8 80
    10423     je short 073ddh                           ; 74 70
     10589    je short 07469h                           ; 74 70
    1042410590    mov al, byte [bp-008h]                    ; 8a 46 f8
    1042510591    and AL, strict byte 007h                  ; 24 07
     
    1043210598    add dx, strict byte 00028h                ; 83 c2 28
    1043310599    mov ax, cx                                ; 89 c8
    10434     call 0165eh                               ; e8 d4 a2
     10600    call 016c6h                               ; e8 b0 a2
    1043510601    mov al, byte [bp-004h]                    ; 8a 46 fc
    1043610602    cmp al, byte [bp-002h]                    ; 3a 46 fe
    10437     jc short 073ceh                           ; 72 3c
     10603    jc short 0745ah                           ; 72 3c
    1043810604    mov dx, strict word 00028h                ; ba 28 00
    1043910605    mov ax, cx                                ; 89 c8
    10440     call 01650h                               ; e8 b6 a2
     10606    call 016b8h                               ; e8 92 a2
    1044110607    xor ah, ah                                ; 30 e4
    1044210608    mov word [bp+00ch], ax                    ; 89 46 0c
    1044310609    mov dx, strict word 00029h                ; ba 29 00
    1044410610    mov ax, cx                                ; 89 c8
    10445     call 01650h                               ; e8 a9 a2
     10611    call 016b8h                               ; e8 85 a2
    1044610612    xor ah, ah                                ; 30 e4
    1044710613    mov word [bp+00ah], ax                    ; 89 46 0a
    1044810614    mov dx, strict word 0002ah                ; ba 2a 00
    1044910615    mov ax, cx                                ; 89 c8
    10450     call 01650h                               ; e8 9c a2
     10616    call 016b8h                               ; e8 78 a2
    1045110617    xor ah, ah                                ; 30 e4
    1045210618    mov word [bp+008h], ax                    ; 89 46 08
     
    1045510621    mov byte [bp-006h], ah                    ; 88 66 fa
    1045610622    test byte [bp-008h], 080h                 ; f6 46 f8 80
    10457     je short 073d1h                           ; 74 0a
     10623    je short 0745dh                           ; 74 0a
    1045810624    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    10459     jmp short 073d1h                          ; eb 03
     10625    jmp short 0745dh                          ; eb 03
    1046010626    inc byte [bp-006h]                        ; fe 46 fa
    1046110627    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    1046210628    mov dx, strict word 00026h                ; ba 26 00
    1046310629    mov ax, cx                                ; 89 c8
    10464     call 0165eh                               ; e8 81 a2
     10630    call 016c6h                               ; e8 5d a2
    1046510631    mov sp, bp                                ; 89 ec
    1046610632    pop bp                                    ; 5d
    1046710633    retn                                      ; c3
    10468     xor ax, 0ab74h                            ; 35 74 ab
    10469     je short 07414h                           ; 74 2e
    10470     jne short 073a7h                          ; 75 bf
    10471     jne short 07417h                          ; 75 2d
    10472     jbe short 0736dh                          ; 76 81
    10473     je short 07443h                           ; 74 55
    10474     jbe short 0740ah                          ; 76 1a
     10634    db  0c1h, 074h, 037h, 075h
     10635    ; sal word [si+037h], 075h                  ; c1 74 37 75
     10636    mov dx, 04b75h                            ; ba 75 4b
     10637    jbe short 0742fh                          ; 76 b9
     10638    jbe short 07485h                          ; 76 0d
     10639    jne short 0745bh                          ; 75 e1
     10640    jbe short 07422h                          ; 76 a6
    1047510641    db  077h
    10476 _int15_function_mouse:                       ; 0xf73f1 LB 0x38b
     10642_int15_function_mouse:                       ; 0xf747d LB 0x38b
    1047710643    push bp                                   ; 55
    1047810644    mov bp, sp                                ; 89 e5
     
    1048110647    mov dx, strict word 0000eh                ; ba 0e 00
    1048210648    mov ax, strict word 00040h                ; b8 40 00
    10483     call 0166ch                               ; e8 6b a2
     10649    call 016d4h                               ; e8 47 a2
    1048410650    mov cx, ax                                ; 89 c1
    1048510651    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    10486     jbe short 07414h                          ; 76 0b
     10652    jbe short 074a0h                          ; 76 0b
    1048710653    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1048810654    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10489     jmp near 07776h                           ; e9 62 03
     10655    jmp near 07802h                           ; e9 62 03
    1049010656    mov ax, strict word 00065h                ; b8 65 00
    10491     call 072f5h                               ; e8 db fe
     10657    call 07381h                               ; e8 db fe
    1049210658    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1049310659    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1049410660    mov al, byte [bp+012h]                    ; 8a 46 12
    1049510661    cmp AL, strict byte 007h                  ; 3c 07
    10496     jnbe near 0775dh                          ; 0f 87 32 03
     10662    jnbe near 077e9h                          ; 0f 87 32 03
    1049710663    movzx si, al                              ; 0f b6 f0
    1049810664    add si, si                                ; 01 f6
    10499     jmp word [cs:si+073e1h]                   ; 2e ff a4 e1 73
     10665    jmp word [cs:si+0746dh]                   ; 2e ff a4 6d 74
    1050010666    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    10501     jnbe near 07768h                          ; 0f 87 2b 03
     10667    jnbe near 077f4h                          ; 0f 87 2b 03
    1050210668    mov dx, strict word 00027h                ; ba 27 00
    1050310669    mov ax, cx                                ; 89 c8
    10504     call 01650h                               ; e8 0b a2
     10670    call 016b8h                               ; e8 e7 a1
    1050510671    test AL, strict byte 080h                 ; a8 80
    10506     jne short 07454h                          ; 75 0b
     10672    jne short 074e0h                          ; 75 0b
    1050710673    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1050810674    mov byte [bp+013h], 005h                  ; c6 46 13 05
    10509     jmp near 07770h                           ; e9 1c 03
     10675    jmp near 077fch                           ; e9 1c 03
    1051010676    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    1051110677    db  00fh, 094h, 0c0h
     
    1051310679    add AL, strict byte 0f4h                  ; 04 f4
    1051410680    xor ah, ah                                ; 30 e4
    10515     call 07265h                               ; e8 03 fe
     10681    call 072f1h                               ; e8 03 fe
    1051610682    test al, al                               ; 84 c0
    10517     jne near 076f6h                           ; 0f 85 8e 02
     10683    jne near 07782h                           ; 0f 85 8e 02
    1051810684    mov dx, ss                                ; 8c d2
    1051910685    lea ax, [bp-008h]                         ; 8d 46 f8
    10520     call 07299h                               ; e8 29 fe
     10686    call 07325h                               ; e8 29 fe
    1052110687    test al, al                               ; 84 c0
    10522     je near 07770h                            ; 0f 84 fa 02
     10688    je near 077fch                            ; 0f 84 fa 02
    1052310689    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10524     jne near 076f6h                           ; 0f 85 78 02
    10525     jmp near 07770h                           ; e9 ef 02
     10690    jne near 07782h                           ; 0f 85 78 02
     10691    jmp near 077fch                           ; e9 ef 02
    1052610692    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1052710693    cmp AL, strict byte 001h                  ; 3c 01
    10528     jc short 0748ch                           ; 72 04
     10694    jc short 07518h                           ; 72 04
    1052910695    cmp AL, strict byte 008h                  ; 3c 08
    10530     jbe short 0748fh                          ; 76 03
    10531     jmp near 07622h                           ; e9 93 01
     10696    jbe short 0751bh                          ; 76 03
     10697    jmp near 076aeh                           ; e9 93 01
    1053210698    mov dx, strict word 00027h                ; ba 27 00
    1053310699    mov ax, cx                                ; 89 c8
    10534     call 01650h                               ; e8 b9 a1
     10700    call 016b8h                               ; e8 95 a1
    1053510701    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1053610702    db  0feh, 0cch
     
    1054110707    mov dx, strict word 00027h                ; ba 27 00
    1054210708    mov ax, cx                                ; 89 c8
    10543     call 0165eh                               ; e8 b3 a1
     10709    call 016c6h                               ; e8 8f a1
    1054410710    mov dx, strict word 00026h                ; ba 26 00
    1054510711    mov ax, cx                                ; 89 c8
    10546     call 01650h                               ; e8 9d a1
     10712    call 016b8h                               ; e8 79 a1
    1054710713    and AL, strict byte 0f8h                  ; 24 f8
    1054810714    movzx bx, al                              ; 0f b6 d8
    1054910715    mov dx, strict word 00026h                ; ba 26 00
    1055010716    mov ax, cx                                ; 89 c8
    10551     call 0165eh                               ; e8 9e a1
     10717    call 016c6h                               ; e8 7a a1
    1055210718    mov ax, 000ffh                            ; b8 ff 00
    10553     call 07265h                               ; e8 9f fd
     10719    call 072f1h                               ; e8 9f fd
    1055410720    test al, al                               ; 84 c0
    10555     jne near 076f6h                           ; 0f 85 2a 02
     10721    jne near 07782h                           ; 0f 85 2a 02
    1055610722    mov dx, ss                                ; 8c d2
    1055710723    lea ax, [bp-004h]                         ; 8d 46 fc
    10558     call 07299h                               ; e8 c5 fd
     10724    call 07325h                               ; e8 c5 fd
    1055910725    mov cl, al                                ; 88 c1
    1056010726    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
    10561     jne short 074e7h                          ; 75 0b
     10727    jne short 07573h                          ; 75 0b
    1056210728    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1056310729    mov byte [bp+013h], 004h                  ; c6 46 13 04
    10564     jmp near 07770h                           ; e9 89 02
     10730    jmp near 077fch                           ; e9 89 02
    1056510731    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    10566     je short 074fdh                           ; 74 10
     10732    je short 07589h                           ; 74 10
    1056710733    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    1056810734    push ax                                   ; 50
    1056910735    push 00903h                               ; 68 03 09
    1057010736    push strict byte 00007h                   ; 6a 07
    10571     call 01972h                               ; e8 78 a4
     10737    call 019dah                               ; e8 54 a4
    1057210738    add sp, strict byte 00006h                ; 83 c4 06
    1057310739    test cl, cl                               ; 84 c9
    10574     jne near 076f6h                           ; 0f 85 f3 01
     10740    jne near 07782h                           ; 0f 85 f3 01
    1057510741    mov dx, ss                                ; 8c d2
    1057610742    lea ax, [bp-008h]                         ; 8d 46 f8
    10577     call 07299h                               ; e8 8e fd
     10743    call 07325h                               ; e8 8e fd
    1057810744    test al, al                               ; 84 c0
    10579     jne near 076f6h                           ; 0f 85 e5 01
     10745    jne near 07782h                           ; 0f 85 e5 01
    1058010746    mov dx, ss                                ; 8c d2
    1058110747    lea ax, [bp-006h]                         ; 8d 46 fa
    10582     call 07299h                               ; e8 80 fd
     10748    call 07325h                               ; e8 80 fd
    1058310749    test al, al                               ; 84 c0
    10584     jne near 076f6h                           ; 0f 85 d7 01
     10750    jne near 07782h                           ; 0f 85 d7 01
    1058510751    mov al, byte [bp-008h]                    ; 8a 46 f8
    1058610752    mov byte [bp+00ch], al                    ; 88 46 0c
    1058710753    mov al, byte [bp-006h]                    ; 8a 46 fa
    1058810754    mov byte [bp+00dh], al                    ; 88 46 0d
    10589     jmp near 07770h                           ; e9 42 02
     10755    jmp near 077fch                           ; e9 42 02
    1059010756    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1059110757    cmp AL, strict byte 003h                  ; 3c 03
    10592     jc short 07545h                           ; 72 10
    10593     jbe short 07563h                          ; 76 2c
     10758    jc short 075d1h                           ; 72 10
     10759    jbe short 075efh                          ; 76 2c
    1059410760    cmp AL, strict byte 006h                  ; 3c 06
    10595     je short 07575h                           ; 74 3a
     10761    je short 07601h                           ; 74 3a
    1059610762    cmp AL, strict byte 005h                  ; 3c 05
    10597     je short 0756fh                           ; 74 30
     10763    je short 075fbh                           ; 74 30
    1059810764    cmp AL, strict byte 004h                  ; 3c 04
    10599     je short 07569h                           ; 74 26
    10600     jmp short 0757bh                          ; eb 36
     10765    je short 075f5h                           ; 74 26
     10766    jmp short 07607h                          ; eb 36
    1060110767    cmp AL, strict byte 002h                  ; 3c 02
    10602     je short 0755dh                           ; 74 14
     10768    je short 075e9h                           ; 74 14
    1060310769    cmp AL, strict byte 001h                  ; 3c 01
    10604     je short 07557h                           ; 74 0a
     10770    je short 075e3h                           ; 74 0a
    1060510771    test al, al                               ; 84 c0
    10606     jne short 0757bh                          ; 75 2a
     10772    jne short 07607h                          ; 75 2a
    1060710773    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
    10608     jmp short 0757fh                          ; eb 28
     10774    jmp short 0760bh                          ; eb 28
    1060910775    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    10610     jmp short 0757fh                          ; eb 22
     10776    jmp short 0760bh                          ; eb 22
    1061110777    mov byte [bp-008h], 028h                  ; c6 46 f8 28
    10612     jmp short 0757fh                          ; eb 1c
     10778    jmp short 0760bh                          ; eb 1c
    1061310779    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
    10614     jmp short 0757fh                          ; eb 16
     10780    jmp short 0760bh                          ; eb 16
    1061510781    mov byte [bp-008h], 050h                  ; c6 46 f8 50
    10616     jmp short 0757fh                          ; eb 10
     10782    jmp short 0760bh                          ; eb 10
    1061710783    mov byte [bp-008h], 064h                  ; c6 46 f8 64
    10618     jmp short 0757fh                          ; eb 0a
     10784    jmp short 0760bh                          ; eb 0a
    1061910785    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
    10620     jmp short 0757fh                          ; eb 04
     10786    jmp short 0760bh                          ; eb 04
    1062110787    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1062210788    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    10623     jbe short 075b4h                          ; 76 2f
     10789    jbe short 07640h                          ; 76 2f
    1062410790    mov ax, 000f3h                            ; b8 f3 00
    10625     call 07265h                               ; e8 da fc
     10791    call 072f1h                               ; e8 da fc
    1062610792    test al, al                               ; 84 c0
    10627     jne short 075a9h                          ; 75 1a
     10793    jne short 07635h                          ; 75 1a
    1062810794    mov dx, ss                                ; 8c d2
    1062910795    lea ax, [bp-006h]                         ; 8d 46 fa
    10630     call 07299h                               ; e8 02 fd
     10796    call 07325h                               ; e8 02 fd
    1063110797    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    10632     call 07265h                               ; e8 c7 fc
     10798    call 072f1h                               ; e8 c7 fc
    1063310799    mov dx, ss                                ; 8c d2
    1063410800    lea ax, [bp-006h]                         ; 8d 46 fa
    10635     call 07299h                               ; e8 f3 fc
    10636     jmp near 07770h                           ; e9 c7 01
     10801    call 07325h                               ; e8 f3 fc
     10802    jmp near 077fch                           ; e9 c7 01
    1063710803    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1063810804    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10639     jmp near 07770h                           ; e9 bc 01
     10805    jmp near 077fch                           ; e9 bc 01
    1064010806    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1064110807    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10642     jmp near 07770h                           ; e9 b1 01
     10808    jmp near 077fch                           ; e9 b1 01
    1064310809    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    10644     jnc short 07622h                          ; 73 5d
     10810    jnc short 076aeh                          ; 73 5d
    1064510811    mov ax, 000e8h                            ; b8 e8 00
    10646     call 07265h                               ; e8 9a fc
     10812    call 072f1h                               ; e8 9a fc
    1064710813    test al, al                               ; 84 c0
    10648     jne short 07617h                          ; 75 48
     10814    jne short 076a3h                          ; 75 48
    1064910815    mov dx, ss                                ; 8c d2
    1065010816    lea ax, [bp-008h]                         ; 8d 46 f8
    10651     call 07299h                               ; e8 c2 fc
     10817    call 07325h                               ; e8 c2 fc
    1065210818    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10653     je short 075edh                           ; 74 10
     10819    je short 07679h                           ; 74 10
    1065410820    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1065510821    push ax                                   ; 50
    1065610822    push 0092eh                               ; 68 2e 09
    1065710823    push strict byte 00007h                   ; 6a 07
    10658     call 01972h                               ; e8 88 a3
     10824    call 019dah                               ; e8 64 a3
    1065910825    add sp, strict byte 00006h                ; 83 c4 06
    1066010826    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    10661     call 07265h                               ; e8 71 fc
     10827    call 072f1h                               ; e8 71 fc
    1066210828    mov dx, ss                                ; 8c d2
    1066310829    lea ax, [bp-008h]                         ; 8d 46 f8
    10664     call 07299h                               ; e8 9d fc
     10830    call 07325h                               ; e8 9d fc
    1066510831    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10666     je near 07770h                            ; 0f 84 6c 01
     10832    je near 077fch                            ; 0f 84 6c 01
    1066710833    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1066810834    push ax                                   ; 50
    1066910835    push 0092eh                               ; 68 2e 09
    1067010836    push strict byte 00007h                   ; 6a 07
    10671     call 01972h                               ; e8 61 a3
     10837    call 019dah                               ; e8 3d a3
    1067210838    add sp, strict byte 00006h                ; 83 c4 06
    10673     jmp near 07770h                           ; e9 59 01
     10839    jmp near 077fch                           ; e9 59 01
    1067410840    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1067510841    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10676     jmp near 07770h                           ; e9 4e 01
     10842    jmp near 077fch                           ; e9 4e 01
    1067710843    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1067810844    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10679     jmp near 07770h                           ; e9 43 01
     10845    jmp near 077fch                           ; e9 43 01
    1068010846    mov ax, 000f2h                            ; b8 f2 00
    10681     call 07265h                               ; e8 32 fc
     10847    call 072f1h                               ; e8 32 fc
    1068210848    test al, al                               ; 84 c0
    10683     jne short 0764ah                          ; 75 13
     10849    jne short 076d6h                          ; 75 13
    1068410850    mov dx, ss                                ; 8c d2
    1068510851    lea ax, [bp-008h]                         ; 8d 46 f8
    10686     call 07299h                               ; e8 5a fc
     10852    call 07325h                               ; e8 5a fc
    1068710853    mov dx, ss                                ; 8c d2
    1068810854    lea ax, [bp-006h]                         ; 8d 46 fa
    10689     call 07299h                               ; e8 52 fc
    10690     jmp near 07525h                           ; e9 db fe
     10855    call 07325h                               ; e8 52 fc
     10856    jmp near 075b1h                           ; e9 db fe
    1069110857    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1069210858    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10693     jmp near 07770h                           ; e9 1b 01
     10859    jmp near 077fch                           ; e9 1b 01
    1069410860    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1069510861    test al, al                               ; 84 c0
    10696     jbe short 07663h                          ; 76 07
     10862    jbe short 076efh                          ; 76 07
    1069710863    cmp AL, strict byte 002h                  ; 3c 02
    10698     jbe short 076cch                          ; 76 6c
    10699     jmp near 07700h                           ; e9 9d 00
     10864    jbe short 07758h                          ; 76 6c
     10865    jmp near 0778ch                           ; e9 9d 00
    1070010866    mov ax, 000e9h                            ; b8 e9 00
    10701     call 07265h                               ; e8 fc fb
     10867    call 072f1h                               ; e8 fc fb
    1070210868    test al, al                               ; 84 c0
    10703     jne near 076f6h                           ; 0f 85 87 00
     10869    jne near 07782h                           ; 0f 85 87 00
    1070410870    mov dx, ss                                ; 8c d2
    1070510871    lea ax, [bp-008h]                         ; 8d 46 f8
    10706     call 07299h                               ; e8 22 fc
     10872    call 07325h                               ; e8 22 fc
    1070710873    mov cl, al                                ; 88 c1
    1070810874    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10709     je short 0768fh                           ; 74 10
     10875    je short 0771bh                           ; 74 10
    1071010876    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1071110877    push ax                                   ; 50
    1071210878    push 0092eh                               ; 68 2e 09
    1071310879    push strict byte 00007h                   ; 6a 07
    10714     call 01972h                               ; e8 e6 a2
     10880    call 019dah                               ; e8 c2 a2
    1071510881    add sp, strict byte 00006h                ; 83 c4 06
    1071610882    test cl, cl                               ; 84 c9
    10717     jne short 076f6h                          ; 75 63
     10883    jne short 07782h                          ; 75 63
    1071810884    mov dx, ss                                ; 8c d2
    1071910885    lea ax, [bp-008h]                         ; 8d 46 f8
    10720     call 07299h                               ; e8 fe fb
     10886    call 07325h                               ; e8 fe fb
    1072110887    test al, al                               ; 84 c0
    10722     jne short 076f6h                          ; 75 57
     10888    jne short 07782h                          ; 75 57
    1072310889    mov dx, ss                                ; 8c d2
    1072410890    lea ax, [bp-006h]                         ; 8d 46 fa
    10725     call 07299h                               ; e8 f2 fb
     10891    call 07325h                               ; e8 f2 fb
    1072610892    test al, al                               ; 84 c0
    10727     jne short 076f6h                          ; 75 4b
     10893    jne short 07782h                          ; 75 4b
    1072810894    mov dx, ss                                ; 8c d2
    1072910895    lea ax, [bp-004h]                         ; 8d 46 fc
    10730     call 07299h                               ; e8 e6 fb
     10896    call 07325h                               ; e8 e6 fb
    1073110897    test al, al                               ; 84 c0
    10732     jne short 076f6h                          ; 75 3f
     10898    jne short 07782h                          ; 75 3f
    1073310899    mov al, byte [bp-008h]                    ; 8a 46 f8
    1073410900    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1073710903    mov al, byte [bp-004h]                    ; 8a 46 fc
    1073810904    mov byte [bp+00eh], al                    ; 88 46 0e
    10739     jmp near 07770h                           ; e9 a4 00
     10905    jmp near 077fch                           ; e9 a4 00
    1074010906    cmp AL, strict byte 001h                  ; 3c 01
    10741     jne short 076d5h                          ; 75 05
     10907    jne short 07761h                          ; 75 05
    1074210908    mov ax, 000e6h                            ; b8 e6 00
    10743     jmp short 076d8h                          ; eb 03
     10909    jmp short 07764h                          ; eb 03
    1074410910    mov ax, 000e7h                            ; b8 e7 00
    10745     call 07265h                               ; e8 8a fb
     10911    call 072f1h                               ; e8 8a fb
    1074610912    mov cl, al                                ; 88 c1
    1074710913    test cl, cl                               ; 84 c9
    10748     jne short 076f0h                          ; 75 0f
     10914    jne short 0777ch                          ; 75 0f
    1074910915    mov dx, ss                                ; 8c d2
    1075010916    lea ax, [bp-008h]                         ; 8d 46 f8
    10751     call 07299h                               ; e8 b0 fb
     10917    call 07325h                               ; e8 b0 fb
    1075210918    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    1075310919    db  00fh, 095h, 0c1h
    1075410920    ; setne cl                                  ; 0f 95 c1
    1075510921    test cl, cl                               ; 84 c9
    10756     je near 07770h                            ; 0f 84 7a 00
     10922    je near 077fch                            ; 0f 84 7a 00
    1075710923    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1075810924    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10759     jmp short 07770h                          ; eb 70
     10925    jmp short 077fch                          ; eb 70
    1076010926    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    1076110927    push ax                                   ; 50
    1076210928    push 0095ah                               ; 68 5a 09
    1076310929    push strict byte 00007h                   ; 6a 07
    10764     call 01972h                               ; e8 65 a2
     10930    call 019dah                               ; e8 41 a2
    1076510931    add sp, strict byte 00006h                ; 83 c4 06
    1076610932    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1076710933    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10768     jmp short 07770h                          ; eb 56
     10934    jmp short 077fch                          ; eb 56
    1076910935    mov si, word [bp+00ch]                    ; 8b 76 0c
    1077010936    mov bx, si                                ; 89 f3
    1077110937    mov dx, strict word 00022h                ; ba 22 00
    1077210938    mov ax, cx                                ; 89 c8
    10773     call 0167ah                               ; e8 53 9f
     10939    call 016e2h                               ; e8 2f 9f
    1077410940    mov bx, word [bp+014h]                    ; 8b 5e 14
    1077510941    mov dx, strict word 00024h                ; ba 24 00
    1077610942    mov ax, cx                                ; 89 c8
    10777     call 0167ah                               ; e8 48 9f
     10943    call 016e2h                               ; e8 24 9f
    1077810944    mov dx, strict word 00027h                ; ba 27 00
    1077910945    mov ax, cx                                ; 89 c8
    10780     call 01650h                               ; e8 16 9f
     10946    call 016b8h                               ; e8 f2 9e
    1078110947    mov ah, al                                ; 88 c4
    1078210948    test si, si                               ; 85 f6
    10783     jne short 0774eh                          ; 75 0e
     10949    jne short 077dah                          ; 75 0e
    1078410950    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    10785     jne short 0774eh                          ; 75 08
     10951    jne short 077dah                          ; 75 08
    1078610952    test AL, strict byte 080h                 ; a8 80
    10787     je short 07750h                           ; 74 06
     10953    je short 077dch                           ; 74 06
    1078810954    and AL, strict byte 07fh                  ; 24 7f
    10789     jmp short 07750h                          ; eb 02
     10955    jmp short 077dch                          ; eb 02
    1079010956    or AL, strict byte 080h                   ; 0c 80
    1079110957    movzx bx, al                              ; 0f b6 d8
    1079210958    mov dx, strict word 00027h                ; ba 27 00
    1079310959    mov ax, cx                                ; 89 c8
    10794     call 0165eh                               ; e8 03 9f
    10795     jmp short 07770h                          ; eb 13
     10960    call 016c6h                               ; e8 df 9e
     10961    jmp short 077fch                          ; eb 13
    1079610962    push 00974h                               ; 68 74 09
    1079710963    push strict byte 00007h                   ; 6a 07
    10798     call 01972h                               ; e8 0d a2
     10964    call 019dah                               ; e8 e9 a1
    1079910965    add sp, strict byte 00004h                ; 83 c4 04
    1080010966    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1080110967    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1080210968    mov ax, strict word 00047h                ; b8 47 00
    10803     call 072f5h                               ; e8 7f fb
     10969    call 07381h                               ; e8 7f fb
    1080410970    lea sp, [bp-002h]                         ; 8d 66 fe
    1080510971    pop si                                    ; 5e
    1080610972    pop bp                                    ; 5d
    1080710973    retn                                      ; c3
    10808 _int17_function:                             ; 0xf777c LB 0xb3
     10974_int17_function:                             ; 0xf7808 LB 0xb3
    1080910975    push bp                                   ; 55
    1081010976    mov bp, sp                                ; 89 e5
     
    1081610982    add dx, strict byte 00008h                ; 83 c2 08
    1081710983    mov ax, strict word 00040h                ; b8 40 00
    10818     call 0166ch                               ; e8 dc 9e
     10984    call 016d4h                               ; e8 b8 9e
    1081910985    mov bx, ax                                ; 89 c3
    1082010986    mov si, ax                                ; 89 c6
    1082110987    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    10822     jnc near 07825h                           ; 0f 83 89 00
     10988    jnc near 078b1h                           ; 0f 83 89 00
    1082310989    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1082410990    cmp ax, strict word 00003h                ; 3d 03 00
    10825     jnc near 07825h                           ; 0f 83 7f 00
     10991    jnc near 078b1h                           ; 0f 83 7f 00
    1082610992    test bx, bx                               ; 85 db
    10827     jbe near 07825h                           ; 0f 86 79 00
     10993    jbe near 078b1h                           ; 0f 86 79 00
    1082810994    mov dx, ax                                ; 89 c2
    1082910995    add dx, strict byte 00078h                ; 83 c2 78
    1083010996    mov ax, strict word 00040h                ; b8 40 00
    10831     call 01650h                               ; e8 99 9e
     10997    call 016b8h                               ; e8 75 9e
    1083210998    movzx cx, al                              ; 0f b6 c8
    1083310999    sal cx, 008h                              ; c1 e1 08
    1083411000    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    10835     jne short 077f0h                          ; 75 2d
     11001    jne short 0787ch                          ; 75 2d
    1083611002    mov al, byte [bp+012h]                    ; 8a 46 12
    1083711003    mov dx, bx                                ; 89 da
     
    1085311019    ; sub ah, ah                                ; 2a e4
    1085411020    test AL, strict byte 040h                 ; a8 40
    10855     je short 077f0h                           ; 74 07
     11021    je short 0787ch                           ; 74 07
    1085611022    test cx, cx                               ; 85 c9
    10857     je short 077f0h                           ; 74 03
     11023    je short 0787ch                           ; 74 03
    1085811024    dec cx                                    ; 49
    10859     jmp short 077dfh                          ; eb ef
     11025    jmp short 0786bh                          ; eb ef
    1086011026    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    10861     jne short 0780ch                          ; 75 16
     11027    jne short 07898h                          ; 75 16
    1086211028    lea dx, [si+002h]                         ; 8d 54 02
    1086311029    in AL, DX                                 ; ec
     
    1087811044    mov byte [bp+013h], al                    ; 88 46 13
    1087911045    test cx, cx                               ; 85 c9
    10880     jne short 0781fh                          ; 75 04
     11046    jne short 078abh                          ; 75 04
    1088111047    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1088211048    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    10883     jmp short 07829h                          ; eb 04
     11049    jmp short 078b5h                          ; eb 04
    1088411050    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1088511051    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1088711053    pop bp                                    ; 5d
    1088811054    retn                                      ; c3
    10889 wait_:                                       ; 0xf782f LB 0xb2
     11055wait_:                                       ; 0xf78bb LB 0xb2
    1089011056    push bp                                   ; 55
    1089111057    mov bp, sp                                ; 89 e5
     
    1090511071    mov dx, 0046ch                            ; ba 6c 04
    1090611072    xor ax, ax                                ; 31 c0
    10907     call 01688h                               ; e8 36 9e
     11073    call 016f0h                               ; e8 12 9e
    1090811074    mov word [bp-00eh], ax                    ; 89 46 f2
    1090911075    mov bx, dx                                ; 89 d3
     
    1091111077    mov dx, 0046ch                            ; ba 6c 04
    1091211078    xor ax, ax                                ; 31 c0
    10913     call 01688h                               ; e8 28 9e
     11079    call 016f0h                               ; e8 04 9e
    1091411080    mov word [bp-012h], ax                    ; 89 46 ee
    1091511081    mov di, dx                                ; 89 d7
    1091611082    cmp dx, bx                                ; 39 da
    10917     jnbe short 07870h                         ; 77 07
    10918     jne short 07877h                          ; 75 0c
     11083    jnbe short 078fch                         ; 77 07
     11084    jne short 07903h                          ; 75 0c
    1091911085    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    10920     jbe short 07877h                          ; 76 07
     11086    jbe short 07903h                          ; 76 07
    1092111087    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1092211088    sbb dx, bx                                ; 19 da
    10923     jmp short 07882h                          ; eb 0b
     11089    jmp short 0790eh                          ; eb 0b
    1092411090    cmp dx, bx                                ; 39 da
    10925     jc short 07882h                           ; 72 07
    10926     jne short 07886h                          ; 75 09
     11091    jc short 0790eh                           ; 72 07
     11092    jne short 07912h                          ; 75 09
    1092711093    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    10928     jnc short 07886h                          ; 73 04
     11094    jnc short 07912h                          ; 73 04
    1092911095    sub si, ax                                ; 29 c6
    1093011096    sbb cx, dx                                ; 19 d1
     
    1093411100    mov ax, 00100h                            ; b8 00 01
    1093511101    int 016h                                  ; cd 16
    10936     je near 0789ch                            ; 0f 84 05 00
     11102    je near 07928h                            ; 0f 84 05 00
    1093711103    mov AL, strict byte 001h                  ; b0 01
    10938     jmp near 0789eh                           ; e9 02 00
     11104    jmp near 0792ah                           ; e9 02 00
    1093911105    db  032h, 0c0h
    1094011106    ; xor al, al                                ; 32 c0
    1094111107    test al, al                               ; 84 c0
    10942     je short 078c6h                           ; 74 24
     11108    je short 07952h                           ; 74 24
    1094311109    db  033h, 0c0h
    1094411110    ; xor ax, ax                                ; 33 c0
     
    1095111117    push 00996h                               ; 68 96 09
    1095211118    push strict byte 00004h                   ; 6a 04
    10953     call 01972h                               ; e8 b9 a0
     11119    call 019dah                               ; e8 95 a0
    1095411120    add sp, strict byte 00006h                ; 83 c4 06
    1095511121    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10956     je short 078c6h                           ; 74 04
     11122    je short 07952h                           ; 74 04
    1095711123    mov al, dl                                ; 88 d0
    10958     jmp short 078d8h                          ; eb 12
     11124    jmp short 07964h                          ; eb 12
    1095911125    test cx, cx                               ; 85 c9
    10960     jnle short 07857h                         ; 7f 8d
    10961     jne short 078d0h                          ; 75 04
     11126    jnle short 078e3h                         ; 7f 8d
     11127    jne short 0795ch                          ; 75 04
    1096211128    test si, si                               ; 85 f6
    10963     jnbe short 07857h                         ; 77 87
     11129    jnbe short 078e3h                         ; 77 87
    1096411130    mov ax, word [bp-010h]                    ; 8b 46 f0
    1096511131    push ax                                   ; 50
     
    1097311139    pop bp                                    ; 5d
    1097411140    retn                                      ; c3
    10975 read_logo_byte_:                             ; 0xf78e1 LB 0x16
     11141read_logo_byte_:                             ; 0xf796d LB 0x16
    1097611142    push bp                                   ; 55
    1097711143    mov bp, sp                                ; 89 e5
     
    1098811154    pop bp                                    ; 5d
    1098911155    retn                                      ; c3
    10990 read_logo_word_:                             ; 0xf78f7 LB 0x14
     11156read_logo_word_:                             ; 0xf7983 LB 0x14
    1099111157    push bp                                   ; 55
    1099211158    mov bp, sp                                ; 89 e5
     
    1100111167    pop bp                                    ; 5d
    1100211168    retn                                      ; c3
    11003 print_detected_harddisks_:                   ; 0xf790b LB 0x130
     11169print_detected_harddisks_:                   ; 0xf7997 LB 0x130
    1100411170    push bp                                   ; 55
    1100511171    mov bp, sp                                ; 89 e5
     
    1101311179    mov dx, strict word 0000eh                ; ba 0e 00
    1101411180    mov ax, strict word 00040h                ; b8 40 00
    11015     call 0166ch                               ; e8 4e 9d
     11181    call 016d4h                               ; e8 2a 9d
    1101611182    mov si, ax                                ; 89 c6
    1101711183    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     
    1101911185    xor ch, ch                                ; 30 ed
    1102011186    mov dx, 00304h                            ; ba 04 03
    11021     call 01650h                               ; e8 22 9d
     11187    call 016b8h                               ; e8 fe 9c
    1102211188    mov byte [bp-00eh], al                    ; 88 46 f2
    1102311189    xor bl, bl                                ; 30 db
    1102411190    cmp bl, byte [bp-00eh]                    ; 3a 5e f2
    11025     jnc near 07a0dh                           ; 0f 83 d3 00
     11191    jnc near 07a99h                           ; 0f 83 d3 00
    1102611192    movzx dx, bl                              ; 0f b6 d3
    1102711193    add dx, 00305h                            ; 81 c2 05 03
    1102811194    mov ax, si                                ; 89 f0
    11029     call 01650h                               ; e8 0a 9d
     11195    call 016b8h                               ; e8 e6 9c
    1103011196    mov bh, al                                ; 88 c7
    1103111197    cmp AL, strict byte 00ch                  ; 3c 0c
    11032     jc short 07970h                           ; 72 24
     11198    jc short 079fch                           ; 72 24
    1103311199    test cl, cl                               ; 84 c9
    11034     jne short 0795dh                          ; 75 0d
     11200    jne short 079e9h                          ; 75 0d
    1103511201    push 009a7h                               ; 68 a7 09
    1103611202    push strict byte 00002h                   ; 6a 02
    11037     call 01972h                               ; e8 1a a0
     11203    call 019dah                               ; e8 f6 9f
    1103811204    add sp, strict byte 00004h                ; 83 c4 04
    1103911205    mov CL, strict byte 001h                  ; b1 01
     
    1104311209    push 009bch                               ; 68 bc 09
    1104411210    push strict byte 00002h                   ; 6a 02
    11045     call 01972h                               ; e8 08 a0
     11211    call 019dah                               ; e8 e4 9f
    1104611212    add sp, strict byte 00006h                ; 83 c4 06
    11047     jmp near 07a08h                           ; e9 98 00
     11213    jmp near 07a94h                           ; e9 98 00
    1104811214    cmp AL, strict byte 008h                  ; 3c 08
    11049     jc short 07987h                           ; 72 13
     11215    jc short 07a13h                           ; 72 13
    1105011216    test ch, ch                               ; 84 ed
    11051     jne short 07985h                          ; 75 0d
     11217    jne short 07a11h                          ; 75 0d
    1105211218    push 009cfh                               ; 68 cf 09
    1105311219    push strict byte 00002h                   ; 6a 02
    11054     call 01972h                               ; e8 f2 9f
     11220    call 019dah                               ; e8 ce 9f
    1105511221    add sp, strict byte 00004h                ; 83 c4 04
    1105611222    mov CH, strict byte 001h                  ; b5 01
    11057     jmp short 0795dh                          ; eb d6
     11223    jmp short 079e9h                          ; eb d6
    1105811224    cmp AL, strict byte 004h                  ; 3c 04
    11059     jnc short 079a2h                          ; 73 17
     11225    jnc short 07a2eh                          ; 73 17
    1106011226    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11061     jne short 079a2h                          ; 75 11
     11227    jne short 07a2eh                          ; 75 11
    1106211228    push 009e4h                               ; 68 e4 09
    1106311229    push strict byte 00002h                   ; 6a 02
    11064     call 01972h                               ; e8 d9 9f
     11230    call 019dah                               ; e8 b5 9f
    1106511231    add sp, strict byte 00004h                ; 83 c4 04
    1106611232    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11067     jmp short 079b8h                          ; eb 16
     11233    jmp short 07a44h                          ; eb 16
    1106811234    cmp bh, 004h                              ; 80 ff 04
    11069     jc short 079b8h                           ; 72 11
     11235    jc short 07a44h                           ; 72 11
    1107011236    test cl, cl                               ; 84 c9
    11071     jne short 079b8h                          ; 75 0d
     11237    jne short 07a44h                          ; 75 0d
    1107211238    push 009f6h                               ; 68 f6 09
    1107311239    push strict byte 00002h                   ; 6a 02
    11074     call 01972h                               ; e8 bf 9f
     11240    call 019dah                               ; e8 9b 9f
    1107511241    add sp, strict byte 00004h                ; 83 c4 04
    1107611242    mov CL, strict byte 001h                  ; b1 01
     
    1108011246    push 00a0ah                               ; 68 0a 0a
    1108111247    push strict byte 00002h                   ; 6a 02
    11082     call 01972h                               ; e8 ad 9f
     11248    call 019dah                               ; e8 89 9f
    1108311249    add sp, strict byte 00006h                ; 83 c4 06
    1108411250    cmp bh, 004h                              ; 80 ff 04
    11085     jc short 079d0h                           ; 72 03
     11251    jc short 07a5ch                           ; 72 03
    1108611252    sub bh, 004h                              ; 80 ef 04
    1108711253    movzx ax, bh                              ; 0f b6 c7
     
    1109111257    sar ax, 1                                 ; d1 f8
    1109211258    test ax, ax                               ; 85 c0
    11093     je short 079e1h                           ; 74 05
     11259    je short 07a6dh                           ; 74 05
    1109411260    push 00a14h                               ; 68 14 0a
    11095     jmp short 079e4h                          ; eb 03
     11261    jmp short 07a70h                          ; eb 03
    1109611262    push 00a1fh                               ; 68 1f 0a
    1109711263    push strict byte 00002h                   ; 6a 02
    11098     call 01972h                               ; e8 89 9f
     11264    call 019dah                               ; e8 65 9f
    1109911265    add sp, strict byte 00004h                ; 83 c4 04
    1110011266    movzx ax, bh                              ; 0f b6 c7
     
    1110311269    idiv di                                   ; f7 ff
    1110411270    test dx, dx                               ; 85 d2
    11105     je short 079feh                           ; 74 05
     11271    je short 07a8ah                           ; 74 05
    1110611272    push 00a28h                               ; 68 28 0a
    11107     jmp short 07a01h                          ; eb 03
     11273    jmp short 07a8dh                          ; eb 03
    1110811274    push 00a2eh                               ; 68 2e 0a
    1110911275    push di                                   ; 57
    11110     call 01972h                               ; e8 6d 9f
     11276    call 019dah                               ; e8 49 9f
    1111111277    add sp, strict byte 00004h                ; 83 c4 04
    1111211278    db  0feh, 0c3h
    1111311279    ; inc bl                                    ; fe c3
    11114     jmp near 07933h                           ; e9 26 ff
     11280    jmp near 079bfh                           ; e9 26 ff
    1111511281    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11116     jne short 07a26h                          ; 75 13
     11282    jne short 07ab2h                          ; 75 13
    1111711283    test cl, cl                               ; 84 c9
    11118     jne short 07a26h                          ; 75 0f
     11284    jne short 07ab2h                          ; 75 0f
    1111911285    test ch, ch                               ; 84 ed
    11120     jne short 07a26h                          ; 75 0b
     11286    jne short 07ab2h                          ; 75 0b
    1112111287    push 00a35h                               ; 68 35 0a
    1112211288    push strict byte 00002h                   ; 6a 02
    11123     call 01972h                               ; e8 4f 9f
     11289    call 019dah                               ; e8 2b 9f
    1112411290    add sp, strict byte 00004h                ; 83 c4 04
    1112511291    push 00a49h                               ; 68 49 0a
    1112611292    push strict byte 00002h                   ; 6a 02
    11127     call 01972h                               ; e8 44 9f
     11293    call 019dah                               ; e8 20 9f
    1112811294    add sp, strict byte 00004h                ; 83 c4 04
    1112911295    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1113511301    pop bp                                    ; 5d
    1113611302    retn                                      ; c3
    11137 get_boot_drive_:                             ; 0xf7a3b LB 0x28
     11303get_boot_drive_:                             ; 0xf7ac7 LB 0x28
    1113811304    push bp                                   ; 55
    1113911305    mov bp, sp                                ; 89 e5
     
    1114311309    mov dx, strict word 0000eh                ; ba 0e 00
    1114411310    mov ax, strict word 00040h                ; b8 40 00
    11145     call 0166ch                               ; e8 21 9c
     11311    call 016d4h                               ; e8 fd 9b
    1114611312    mov dx, 00304h                            ; ba 04 03
    11147     call 01650h                               ; e8 ff 9b
     11313    call 016b8h                               ; e8 db 9b
    1114811314    sub bl, 002h                              ; 80 eb 02
    1114911315    cmp bl, al                                ; 38 c3
    11150     jc short 07a5ah                           ; 72 02
     11316    jc short 07ae6h                           ; 72 02
    1115111317    mov BL, strict byte 0ffh                  ; b3 ff
    1115211318    mov al, bl                                ; 88 d8
     
    1115611322    pop bp                                    ; 5d
    1115711323    retn                                      ; c3
    11158 show_logo_:                                  ; 0xf7a63 LB 0x224
     11324show_logo_:                                  ; 0xf7aef LB 0x224
    1115911325    push bp                                   ; 55
    1116011326    mov bp, sp                                ; 89 e5
     
    1116711333    mov dx, strict word 0000eh                ; ba 0e 00
    1116811334    mov ax, strict word 00040h                ; b8 40 00
    11169     call 0166ch                               ; e8 f5 9b
     11335    call 016d4h                               ; e8 d1 9b
    1117011336    mov si, ax                                ; 89 c6
    1117111337    xor cl, cl                                ; 30 c9
     
    1117811344    out strict byte 040h, AL                  ; e6 40
    1117911345    movzx ax, dl                              ; 0f b6 c2
    11180     call 078f7h                               ; e8 68 fe
     11346    call 07983h                               ; e8 68 fe
    1118111347    cmp ax, 066bbh                            ; 3d bb 66
    11182     jne near 07b67h                           ; 0f 85 d1 00
     11348    jne near 07bf3h                           ; 0f 85 d1 00
    1118311349    push SS                                   ; 16
    1118411350    pop ES                                    ; 07
     
    1118811354    mov word [es:di], bx                      ; 26 89 1d
    1118911355    cmp ax, strict word 0004fh                ; 3d 4f 00
    11190     jne near 07b67h                           ; 0f 85 bd 00
     11356    jne near 07bf3h                           ; 0f 85 bd 00
    1119111357    mov al, dl                                ; 88 d0
    1119211358    add AL, strict byte 004h                  ; 04 04
    1119311359    xor ah, ah                                ; 30 e4
    11194     call 078e1h                               ; e8 2e fe
     11360    call 0796dh                               ; e8 2e fe
    1119511361    mov ch, al                                ; 88 c5
    1119611362    mov byte [bp-00ch], al                    ; 88 46 f4
     
    1119811364    add AL, strict byte 005h                  ; 04 05
    1119911365    xor ah, ah                                ; 30 e4
    11200     call 078e1h                               ; e8 20 fe
     11366    call 0796dh                               ; e8 20 fe
    1120111367    mov dh, al                                ; 88 c6
    1120211368    mov byte [bp-010h], al                    ; 88 46 f0
     
    1120411370    add AL, strict byte 002h                  ; 04 02
    1120511371    xor ah, ah                                ; 30 e4
    11206     call 078f7h                               ; e8 28 fe
     11372    call 07983h                               ; e8 28 fe
    1120711373    mov bx, ax                                ; 89 c3
    1120811374    mov word [bp-014h], ax                    ; 89 46 ec
     
    1121011376    add AL, strict byte 006h                  ; 04 06
    1121111377    xor ah, ah                                ; 30 e4
    11212     call 078e1h                               ; e8 04 fe
     11378    call 0796dh                               ; e8 04 fe
    1121311379    mov byte [bp-012h], al                    ; 88 46 ee
    1121411380    test ch, ch                               ; 84 ed
    11215     jne short 07aeeh                          ; 75 0a
     11381    jne short 07b7ah                          ; 75 0a
    1121611382    test dh, dh                               ; 84 f6
    11217     jne short 07aeeh                          ; 75 06
     11383    jne short 07b7ah                          ; 75 06
    1121811384    test bx, bx                               ; 85 db
    11219     je near 07b67h                            ; 0f 84 79 00
     11385    je near 07bf3h                            ; 0f 84 79 00
    1122011386    mov bx, 00142h                            ; bb 42 01
    1122111387    mov ax, 04f02h                            ; b8 02 4f
    1122211388    int 010h                                  ; cd 10
    1122311389    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11224     je short 07b1fh                           ; 74 23
     11390    je short 07babh                           ; 74 23
    1122511391    xor bx, bx                                ; 31 db
    11226     jmp short 07b06h                          ; eb 06
     11392    jmp short 07b92h                          ; eb 06
    1122711393    inc bx                                    ; 43
    1122811394    cmp bx, strict byte 00010h                ; 83 fb 10
    11229     jnbe short 07b26h                         ; 77 20
     11395    jnbe short 07bb2h                         ; 77 20
    1123011396    mov ax, bx                                ; 89 d8
    1123111397    or ah, 002h                               ; 80 cc 02
     
    1123411400    xor dx, dx                                ; 31 d2
    1123511401    mov ax, strict word 00001h                ; b8 01 00
    11236     call 0782fh                               ; e8 18 fd
     11402    call 078bbh                               ; e8 18 fd
    1123711403    cmp AL, strict byte 086h                  ; 3c 86
    11238     jne short 07b00h                          ; 75 e5
     11404    jne short 07b8ch                          ; 75 e5
    1123911405    mov CL, strict byte 001h                  ; b1 01
    11240     jmp short 07b26h                          ; eb 07
     11406    jmp short 07bb2h                          ; eb 07
    1124111407    mov ax, 00210h                            ; b8 10 02
    1124211408    mov dx, 003b8h                            ; ba b8 03
    1124311409    out DX, ax                                ; ef
    1124411410    test cl, cl                               ; 84 c9
    11245     jne short 07b3ch                          ; 75 12
     11411    jne short 07bc8h                          ; 75 12
    1124611412    mov ax, word [bp-014h]                    ; 8b 46 ec
    1124711413    shr ax, 004h                              ; c1 e8 04
    1124811414    mov dx, strict word 00001h                ; ba 01 00
    11249     call 0782fh                               ; e8 f9 fc
     11415    call 078bbh                               ; e8 f9 fc
    1125011416    cmp AL, strict byte 086h                  ; 3c 86
    11251     jne short 07b3ch                          ; 75 02
     11417    jne short 07bc8h                          ; 75 02
    1125211418    mov CL, strict byte 001h                  ; b1 01
    1125311419    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11254     je short 07b67h                           ; 74 25
     11420    je short 07bf3h                           ; 74 25
    1125511421    test cl, cl                               ; 84 c9
    11256     jne short 07b67h                          ; 75 21
     11422    jne short 07bf3h                          ; 75 21
    1125711423    mov bx, strict word 00010h                ; bb 10 00
    11258     jmp short 07b50h                          ; eb 05
     11424    jmp short 07bdch                          ; eb 05
    1125911425    dec bx                                    ; 4b
    1126011426    test bx, bx                               ; 85 db
    11261     jbe short 07b67h                          ; 76 17
     11427    jbe short 07bf3h                          ; 76 17
    1126211428    mov ax, bx                                ; 89 d8
    1126311429    or ah, 002h                               ; 80 cc 02
     
    1126611432    xor dx, dx                                ; 31 d2
    1126711433    mov ax, strict word 00001h                ; b8 01 00
    11268     call 0782fh                               ; e8 ce fc
     11434    call 078bbh                               ; e8 ce fc
    1126911435    cmp AL, strict byte 086h                  ; 3c 86
    11270     jne short 07b4bh                          ; 75 e6
     11436    jne short 07bd7h                          ; 75 e6
    1127111437    mov CL, strict byte 001h                  ; b1 01
    1127211438    xor bx, bx                                ; 31 db
    1127311439    mov dx, 0037dh                            ; ba 7d 03
    1127411440    mov ax, si                                ; 89 f0
    11275     call 0165eh                               ; e8 ed 9a
     11441    call 016c6h                               ; e8 c9 9a
    1127611442    mov AL, strict byte 003h                  ; b0 03
    1127711443    mov AH, strict byte 000h                  ; b4 00
    1127811444    int 010h                                  ; cd 10
    1127911445    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11280     je near 07c68h                            ; 0f 84 e9 00
     11446    je near 07cf4h                            ; 0f 84 e9 00
    1128111447    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11282     jne short 07bb5h                          ; 75 30
     11448    jne short 07c41h                          ; 75 30
    1128311449    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11284     jne short 07bb5h                          ; 75 2a
     11450    jne short 07c41h                          ; 75 2a
    1128511451    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    11286     jne short 07bb5h                          ; 75 24
     11452    jne short 07c41h                          ; 75 24
    1128711453    cmp byte [bp-012h], 002h                  ; 80 7e ee 02
    11288     jne short 07ba2h                          ; 75 0b
     11454    jne short 07c2eh                          ; 75 0b
    1128911455    push 00a4bh                               ; 68 4b 0a
    1129011456    push strict byte 00002h                   ; 6a 02
    11291     call 01972h                               ; e8 d3 9d
     11457    call 019dah                               ; e8 af 9d
    1129211458    add sp, strict byte 00004h                ; 83 c4 04
    1129311459    test cl, cl                               ; 84 c9
    11294     jne short 07bb5h                          ; 75 0f
     11460    jne short 07c41h                          ; 75 0f
    1129511461    mov dx, strict word 00001h                ; ba 01 00
    1129611462    mov ax, 000c0h                            ; b8 c0 00
    11297     call 0782fh                               ; e8 80 fc
     11463    call 078bbh                               ; e8 80 fc
    1129811464    cmp AL, strict byte 086h                  ; 3c 86
    11299     jne short 07bb5h                          ; 75 02
     11465    jne short 07c41h                          ; 75 02
    1130011466    mov CL, strict byte 001h                  ; b1 01
    1130111467    test cl, cl                               ; 84 c9
    11302     je near 07c68h                            ; 0f 84 ad 00
     11468    je near 07cf4h                            ; 0f 84 ad 00
    1130311469    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1130411470    mov ax, 00100h                            ; b8 00 01
     
    1131911485    push 00a6dh                               ; 68 6d 0a
    1132011486    push strict byte 00002h                   ; 6a 02
    11321     call 01972h                               ; e8 8e 9d
     11487    call 019dah                               ; e8 6a 9d
    1132211488    add sp, strict byte 00004h                ; 83 c4 04
    11323     call 0790bh                               ; e8 21 fd
     11489    call 07997h                               ; e8 21 fd
    1132411490    push 00ab1h                               ; 68 b1 0a
    1132511491    push strict byte 00002h                   ; 6a 02
    11326     call 01972h                               ; e8 80 9d
     11492    call 019dah                               ; e8 5c 9d
    1132711493    add sp, strict byte 00004h                ; 83 c4 04
    1132811494    mov dx, strict word 00001h                ; ba 01 00
    1132911495    mov ax, strict word 00040h                ; b8 40 00
    11330     call 0782fh                               ; e8 31 fc
     11496    call 078bbh                               ; e8 31 fc
    1133111497    mov bl, al                                ; 88 c3
    1133211498    test al, al                               ; 84 c0
    11333     je short 07bf5h                           ; 74 f1
     11499    je short 07c81h                           ; 74 f1
    1133411500    cmp AL, strict byte 030h                  ; 3c 30
    11335     je short 07c56h                           ; 74 4e
     11501    je short 07ce2h                           ; 74 4e
    1133611502    cmp bl, 002h                              ; 80 fb 02
    11337     jc short 07c2fh                           ; 72 22
     11503    jc short 07cbbh                           ; 72 22
    1133811504    cmp bl, 009h                              ; 80 fb 09
    11339     jnbe short 07c2fh                         ; 77 1d
     11505    jnbe short 07cbbh                         ; 77 1d
    1134011506    movzx ax, bl                              ; 0f b6 c3
    11341     call 07a3bh                               ; e8 23 fe
     11507    call 07ac7h                               ; e8 23 fe
    1134211508    cmp AL, strict byte 0ffh                  ; 3c ff
    11343     jne short 07c1eh                          ; 75 02
    11344     jmp short 07bf5h                          ; eb d7
     11509    jne short 07caah                          ; 75 02
     11510    jmp short 07c81h                          ; eb d7
    1134511511    movzx bx, al                              ; 0f b6 d8
    1134611512    mov dx, 0037ch                            ; ba 7c 03
    1134711513    mov ax, si                                ; 89 f0
    11348     call 0165eh                               ; e8 35 9a
     11514    call 016c6h                               ; e8 11 9a
    1134911515    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    11350     jmp short 07c56h                          ; eb 27
     11516    jmp short 07ce2h                          ; eb 27
    1135111517    cmp bl, 02eh                              ; 80 fb 2e
    11352     je short 07c44h                           ; 74 10
     11518    je short 07cd0h                           ; 74 10
    1135311519    cmp bl, 026h                              ; 80 fb 26
    11354     je short 07c4ah                           ; 74 11
     11520    je short 07cd6h                           ; 74 11
    1135511521    cmp bl, 021h                              ; 80 fb 21
    11356     jne short 07c50h                          ; 75 12
     11522    jne short 07cdch                          ; 75 12
    1135711523    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11358     jmp short 07c56h                          ; eb 12
     11524    jmp short 07ce2h                          ; eb 12
    1135911525    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    11360     jmp short 07c56h                          ; eb 0c
     11526    jmp short 07ce2h                          ; eb 0c
    1136111527    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    11362     jmp short 07c56h                          ; eb 06
     11528    jmp short 07ce2h                          ; eb 06
    1136311529    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11364     je short 07bf5h                           ; 74 9f
     11530    je short 07c81h                           ; 74 9f
    1136511531    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    1136611532    mov dx, 0037dh                            ; ba 7d 03
    1136711533    mov ax, si                                ; 89 f0
    11368     call 0165eh                               ; e8 fc 99
     11534    call 016c6h                               ; e8 d8 99
    1136911535    mov AL, strict byte 003h                  ; b0 03
    1137011536    mov AH, strict byte 000h                  ; b4 00
     
    1137911545    push DS                                   ; 1e
    1138011546    mov ds, ax                                ; 8e d8
    11381     call 0edbfh                               ; e8 45 71
     11547    call 0edbfh                               ; e8 b9 70
    1138211548    pop DS                                    ; 1f
    1138311549    popad                                     ; 66 61
     
    1139011556    pop bp                                    ; 5d
    1139111557    retn                                      ; c3
    11392 delay_boot_:                                 ; 0xf7c87 LB 0x67
     11558delay_boot_:                                 ; 0xf7d13 LB 0x67
    1139311559    push bp                                   ; 55
    1139411560    mov bp, sp                                ; 89 e5
     
    1139711563    mov dx, ax                                ; 89 c2
    1139811564    test ax, ax                               ; 85 c0
    11399     je short 07ce7h                           ; 74 55
     11565    je short 07d73h                           ; 74 55
    1140011566    mov AL, strict byte 034h                  ; b0 34
    1140111567    out strict byte 043h, AL                  ; e6 43
     
    1140711573    push 00afbh                               ; 68 fb 0a
    1140811574    push strict byte 00002h                   ; 6a 02
    11409     call 01972h                               ; e8 cb 9c
     11575    call 019dah                               ; e8 a7 9c
    1141011576    add sp, strict byte 00006h                ; 83 c4 06
    1141111577    mov bx, dx                                ; 89 d3
    1141211578    test bx, bx                               ; 85 db
    11413     jbe short 07cc7h                          ; 76 17
     11579    jbe short 07d53h                          ; 76 17
    1141411580    push bx                                   ; 53
    1141511581    push 00b19h                               ; 68 19 0b
    1141611582    push strict byte 00002h                   ; 6a 02
    11417     call 01972h                               ; e8 b9 9c
     11583    call 019dah                               ; e8 95 9c
    1141811584    add sp, strict byte 00006h                ; 83 c4 06
    1141911585    xor dx, dx                                ; 31 d2
    1142011586    mov ax, strict word 00040h                ; b8 40 00
    11421     call 0782fh                               ; e8 6b fb
     11587    call 078bbh                               ; e8 6b fb
    1142211588    dec bx                                    ; 4b
    11423     jmp short 07cach                          ; eb e5
     11589    jmp short 07d38h                          ; eb e5
    1142411590    push 00a49h                               ; 68 49 0a
    1142511591    push strict byte 00002h                   ; 6a 02
    11426     call 01972h                               ; e8 a3 9c
     11592    call 019dah                               ; e8 7f 9c
    1142711593    add sp, strict byte 00004h                ; 83 c4 04
    1142811594    mov AL, strict byte 034h                  ; b0 34
     
    1143511601    push DS                                   ; 1e
    1143611602    mov ds, ax                                ; 8e d8
    11437     call 0edbfh                               ; e8 db 70
     11603    call 0edbfh                               ; e8 4f 70
    1143811604    pop DS                                    ; 1f
    1143911605    popad                                     ; 66 61
     
    1144311609    pop bp                                    ; 5d
    1144411610    retn                                      ; c3
    11445 scsi_cmd_data_in_:                           ; 0xf7cee LB 0xd5
     11611scsi_cmd_data_in_:                           ; 0xf7d7a LB 0xd5
    1144611612    push bp                                   ; 55
    1144711613    mov bp, sp                                ; 89 e5
     
    1145911625    ; sub ah, ah                                ; 2a e4
    1146011626    test AL, strict byte 001h                 ; a8 01
    11461     jne short 07d04h                          ; 75 f7
     11627    jne short 07d90h                          ; 75 f7
    1146211628    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
    11463     jne short 07d17h                          ; 75 04
     11629    jne short 07da3h                          ; 75 04
    1146411630    xor ax, ax                                ; 31 c0
    11465     jmp short 07d1bh                          ; eb 04
     11631    jmp short 07da7h                          ; eb 04
    1146611632    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1146711633    mov di, ax                                ; 89 c7
     
    1147111637    shr dx, 1                                 ; d1 ea
    1147211638    rcr ax, 1                                 ; d1 d8
    11473     loop 07d25h                               ; e2 fa
     11639    loop 07db1h                               ; e2 fa
    1147411640    mov cx, ax                                ; 89 c1
    1147511641    and cx, 000f0h                            ; 81 e1 f0 00
     
    1148911655    shr dx, 1                                 ; d1 ea
    1149011656    rcr ax, 1                                 ; d1 d8
    11491     loop 07d4ah                               ; e2 fa
     11657    loop 07dd6h                               ; e2 fa
    1149211658    mov dx, si                                ; 89 f2
    1149311659    out DX, AL                                ; ee
     
    1149511661    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1149611662    cmp cx, ax                                ; 39 c1
    11497     jnc short 07d6bh                          ; 73 0e
     11663    jnc short 07df7h                          ; 73 0e
    1149811664    les di, [bp-00ah]                         ; c4 7e f6
    1149911665    add di, cx                                ; 01 cf
     
    1150211668    out DX, AL                                ; ee
    1150311669    inc cx                                    ; 41
    11504     jmp short 07d55h                          ; eb ea
     11670    jmp short 07de1h                          ; eb ea
    1150511671    mov dx, si                                ; 89 f2
    1150611672    in AL, DX                                 ; ec
     
    1150811674    ; sub ah, ah                                ; 2a e4
    1150911675    test AL, strict byte 001h                 ; a8 01
    11510     jne short 07d6bh                          ; 75 f7
     11676    jne short 07df7h                          ; 75 f7
    1151111677    test AL, strict byte 002h                 ; a8 02
    11512     je short 07d86h                           ; 74 0e
     11678    je short 07e12h                           ; 74 0e
    1151311679    lea dx, [si+003h]                         ; 8d 54 03
    1151411680    xor al, al                                ; 30 c0
     
    1151811684    ; sub ah, ah                                ; 2a e4
    1151911685    mov di, strict word 00004h                ; bf 04 00
    11520     jmp short 07db8h                          ; eb 32
     11686    jmp short 07e44h                          ; eb 32
    1152111687    lea dx, [si+001h]                         ; 8d 54 01
    1152211688    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11523     jne short 07d95h                          ; 75 06
     11689    jne short 07e21h                          ; 75 06
    1152411690    cmp bx, 08000h                            ; 81 fb 00 80
    11525     jbe short 07dafh                          ; 76 1a
     11691    jbe short 07e3bh                          ; 76 1a
    1152611692    mov cx, 08000h                            ; b9 00 80
    1152711693    les di, [bp+006h]                         ; c4 7e 06
     
    1153211698    add ax, 00800h                            ; 05 00 08
    1153311699    mov word [bp+008h], ax                    ; 89 46 08
    11534     jmp short 07d86h                          ; eb d7
     11700    jmp short 07e12h                          ; eb d7
    1153511701    mov cx, bx                                ; 89 d9
    1153611702    les di, [bp+006h]                         ; c4 7e 06
     
    1154311709    pop bp                                    ; 5d
    1154411710    retn 0000ah                               ; c2 0a 00
    11545 scsi_cmd_data_out_:                          ; 0xf7dc3 LB 0xd5
     11711scsi_cmd_data_out_:                          ; 0xf7e4f LB 0xd5
    1154611712    push bp                                   ; 55
    1154711713    mov bp, sp                                ; 89 e5
     
    1155911725    ; sub ah, ah                                ; 2a e4
    1156011726    test AL, strict byte 001h                 ; a8 01
    11561     jne short 07dd9h                          ; 75 f7
     11727    jne short 07e65h                          ; 75 f7
    1156211728    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
    11563     jne short 07dech                          ; 75 04
     11729    jne short 07e78h                          ; 75 04
    1156411730    xor ax, ax                                ; 31 c0
    11565     jmp short 07df0h                          ; eb 04
     11731    jmp short 07e7ch                          ; eb 04
    1156611732    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1156711733    mov si, ax                                ; 89 c6
     
    1157111737    shr dx, 1                                 ; d1 ea
    1157211738    rcr ax, 1                                 ; d1 d8
    11573     loop 07dfah                               ; e2 fa
     11739    loop 07e86h                               ; e2 fa
    1157411740    mov cx, ax                                ; 89 c1
    1157511741    and cx, 000f0h                            ; 81 e1 f0 00
     
    1158911755    shr dx, 1                                 ; d1 ea
    1159011756    rcr ax, 1                                 ; d1 d8
    11591     loop 07e1fh                               ; e2 fa
     11757    loop 07eabh                               ; e2 fa
    1159211758    mov dx, di                                ; 89 fa
    1159311759    out DX, AL                                ; ee
     
    1159511761    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1159611762    cmp cx, ax                                ; 39 c1
    11597     jnc short 07e40h                          ; 73 0e
     11763    jnc short 07ecch                          ; 73 0e
    1159811764    les si, [bp-00ah]                         ; c4 76 f6
    1159911765    add si, cx                                ; 01 ce
     
    1160211768    out DX, AL                                ; ee
    1160311769    inc cx                                    ; 41
    11604     jmp short 07e2ah                          ; eb ea
     11770    jmp short 07eb6h                          ; eb ea
    1160511771    lea dx, [di+001h]                         ; 8d 55 01
    1160611772    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11607     jne short 07e4fh                          ; 75 06
     11773    jne short 07edbh                          ; 75 06
    1160811774    cmp bx, 08000h                            ; 81 fb 00 80
    11609     jbe short 07e6ah                          ; 76 1b
     11775    jbe short 07ef6h                          ; 76 1b
    1161011776    mov cx, 08000h                            ; b9 00 80
    1161111777    les si, [bp+006h]                         ; c4 76 06
     
    1161711783    add ax, 00800h                            ; 05 00 08
    1161811784    mov word [bp+008h], ax                    ; 89 46 08
    11619     jmp short 07e40h                          ; eb d6
     11785    jmp short 07ecch                          ; eb d6
    1162011786    mov cx, bx                                ; 89 d9
    1162111787    les si, [bp+006h]                         ; c4 76 06
     
    1162711793    ; sub ah, ah                                ; 2a e4
    1162811794    test AL, strict byte 001h                 ; a8 01
    11629     jne short 07e72h                          ; 75 f7
     11795    jne short 07efeh                          ; 75 f7
    1163011796    test AL, strict byte 002h                 ; a8 02
    11631     je short 07e8dh                           ; 74 0e
     11797    je short 07f19h                           ; 74 0e
    1163211798    lea dx, [di+003h]                         ; 8d 55 03
    1163311799    xor al, al                                ; 30 c0
     
    1163711803    ; sub ah, ah                                ; 2a e4
    1163811804    mov ax, strict word 00004h                ; b8 04 00
    11639     jmp short 07e8fh                          ; eb 02
     11805    jmp short 07f1bh                          ; eb 02
    1164011806    xor ax, ax                                ; 31 c0
    1164111807    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1164411810    pop bp                                    ; 5d
    1164511811    retn 0000ah                               ; c2 0a 00
    11646 @scsi_read_sectors:                          ; 0xf7e98 LB 0xdb
     11812@scsi_read_sectors:                          ; 0xf7f24 LB 0xdb
    1164711813    push bp                                   ; 55
    1164811814    mov bp, sp                                ; 89 e5
     
    1165611822    mov byte [bp-006h], al                    ; 88 46 fa
    1165711823    cmp AL, strict byte 004h                  ; 3c 04
    11658     jbe short 07ec6h                          ; 76 13
     11824    jbe short 07f52h                          ; 76 13
    1165911825    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1166011826    push ax                                   ; 50
     
    1166211828    push 00b30h                               ; 68 30 0b
    1166311829    push strict byte 00007h                   ; 6a 07
    11664     call 01972h                               ; e8 af 9a
     11830    call 019dah                               ; e8 8b 9a
    1166511831    add sp, strict byte 00008h                ; 83 c4 08
    1166611832    mov es, [bp+006h]                         ; 8e 46 06
     
    1170111867    sal word [bp-00ah], 1                     ; d1 66 f6
    1170211868    rcl word [bp-008h], 1                     ; d1 56 f8
    11703     loop 07f2fh                               ; e2 f8
     11869    loop 07fbbh                               ; e2 f8
    1170411870    push dword [bp-00ah]                      ; 66 ff 76 f6
    1170511871    db  066h, 026h, 0ffh, 074h, 008h
     
    1170911875    mov cx, ss                                ; 8c d1
    1171011876    lea bx, [bp-01ah]                         ; 8d 5e e6
    11711     call 07ceeh                               ; e8 a2 fd
     11877    call 07d7ah                               ; e8 a2 fd
    1171211878    mov ah, al                                ; 88 c4
    1171311879    test al, al                               ; 84 c0
    11714     jne short 07f67h                          ; 75 15
     11880    jne short 07ff3h                          ; 75 15
    1171511881    mov es, [bp+006h]                         ; 8e 46 06
    1171611882    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1172511891    pop bp                                    ; 5d
    1172611892    retn 00004h                               ; c2 04 00
    11727 @scsi_write_sectors:                         ; 0xf7f73 LB 0xdb
     11893@scsi_write_sectors:                         ; 0xf7fff LB 0xdb
    1172811894    push bp                                   ; 55
    1172911895    mov bp, sp                                ; 89 e5
     
    1173711903    mov byte [bp-006h], al                    ; 88 46 fa
    1173811904    cmp AL, strict byte 004h                  ; 3c 04
    11739     jbe short 07fa1h                          ; 76 13
     11905    jbe short 0802dh                          ; 76 13
    1174011906    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1174111907    push ax                                   ; 50
     
    1174311909    push 00b30h                               ; 68 30 0b
    1174411910    push strict byte 00007h                   ; 6a 07
    11745     call 01972h                               ; e8 d4 99
     11911    call 019dah                               ; e8 b0 99
    1174611912    add sp, strict byte 00008h                ; 83 c4 08
    1174711913    mov es, [bp+006h]                         ; 8e 46 06
     
    1178211948    sal word [bp-00ah], 1                     ; d1 66 f6
    1178311949    rcl word [bp-008h], 1                     ; d1 56 f8
    11784     loop 0800ah                               ; e2 f8
     11950    loop 08096h                               ; e2 f8
    1178511951    push dword [bp-00ah]                      ; 66 ff 76 f6
    1178611952    db  066h, 026h, 0ffh, 074h, 008h
     
    1179011956    mov cx, ss                                ; 8c d1
    1179111957    lea bx, [bp-01ah]                         ; 8d 5e e6
    11792     call 07dc3h                               ; e8 9c fd
     11958    call 07e4fh                               ; e8 9c fd
    1179311959    mov ah, al                                ; 88 c4
    1179411960    test al, al                               ; 84 c0
    11795     jne short 08042h                          ; 75 15
     11961    jne short 080ceh                          ; 75 15
    1179611962    mov es, [bp+006h]                         ; 8e 46 06
    1179711963    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1180611972    pop bp                                    ; 5d
    1180711973    retn 00004h                               ; c2 04 00
    11808 scsi_cmd_packet_:                            ; 0xf804e LB 0x166
     11974scsi_cmd_packet_:                            ; 0xf80da LB 0x166
    1180911975    push bp                                   ; 55
    1181011976    mov bp, sp                                ; 89 e5
     
    1181811984    mov dx, strict word 0000eh                ; ba 0e 00
    1181911985    mov ax, strict word 00040h                ; b8 40 00
    11820     call 0166ch                               ; e8 02 96
     11986    call 016d4h                               ; e8 de 95
    1182111987    mov si, 00122h                            ; be 22 01
    1182211988    mov word [bp-00eh], ax                    ; 89 46 f2
    1182311989    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    11824     jne short 08095h                          ; 75 1f
     11990    jne short 08121h                          ; 75 1f
    1182511991    mov bx, 00da0h                            ; bb a0 0d
    1182611992    mov cx, ds                                ; 8c d9
    1182711993    mov ax, strict word 00004h                ; b8 04 00
    11828     call 01931h                               ; e8 b0 98
     11994    call 01999h                               ; e8 8c 98
    1182911995    push 00b62h                               ; 68 62 0b
    1183011996    push 00b72h                               ; 68 72 0b
    1183111997    push strict byte 00004h                   ; 6a 04
    11832     call 01972h                               ; e8 e6 98
     11998    call 019dah                               ; e8 c2 98
    1183311999    add sp, strict byte 00006h                ; 83 c4 06
    1183412000    mov dx, strict word 00001h                ; ba 01 00
    11835     jmp near 081a9h                           ; e9 14 01
     12001    jmp near 08235h                           ; e9 14 01
    1183612002    sub di, strict byte 00008h                ; 83 ef 08
    1183712003    sal di, 002h                              ; c1 e7 02
     
    1184712013    ; sub ah, ah                                ; 2a e4
    1184812014    test AL, strict byte 001h                 ; a8 01
    11849     jne short 080b1h                          ; 75 f7
     12015    jne short 0813dh                          ; 75 f7
    1185012016    xor ax, ax                                ; 31 c0
    1185112017    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1186312029    shr dx, 1                                 ; d1 ea
    1186412030    rcr ax, 1                                 ; d1 d8
    11865     loop 080dch                               ; e2 fa
     12031    loop 08168h                               ; e2 fa
    1186612032    and ax, 000f0h                            ; 25 f0 00
    1186712033    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     
    1188112047    shr dx, 1                                 ; d1 ea
    1188212048    rcr ax, 1                                 ; d1 d8
    11883     loop 08103h                               ; e2 fa
     12049    loop 0818fh                               ; e2 fa
    1188412050    mov dx, bx                                ; 89 da
    1188512051    out DX, AL                                ; ee
     
    1188712053    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1188812054    cmp cx, ax                                ; 39 c1
    11889     jnc short 08124h                          ; 73 0e
     12055    jnc short 081b0h                          ; 73 0e
    1189012056    les di, [bp-00ch]                         ; c4 7e f4
    1189112057    add di, cx                                ; 01 cf
     
    1189412060    out DX, AL                                ; ee
    1189512061    inc cx                                    ; 41
    11896     jmp short 0810eh                          ; eb ea
     12062    jmp short 0819ah                          ; eb ea
    1189712063    mov dx, bx                                ; 89 da
    1189812064    in AL, DX                                 ; ec
     
    1190012066    ; sub ah, ah                                ; 2a e4
    1190112067    test AL, strict byte 001h                 ; a8 01
    11902     jne short 08124h                          ; 75 f7
     12068    jne short 081b0h                          ; 75 f7
    1190312069    test AL, strict byte 002h                 ; a8 02
    11904     je short 0813fh                           ; 74 0e
     12070    je short 081cbh                           ; 74 0e
    1190512071    lea dx, [bx+003h]                         ; 8d 57 03
    1190612072    xor al, al                                ; 30 c0
     
    1191012076    ; sub ah, ah                                ; 2a e4
    1191112077    mov dx, strict word 00003h                ; ba 03 00
    11912     jmp short 081a9h                          ; eb 6a
     12078    jmp short 08235h                          ; eb 6a
    1191312079    mov ax, word [bp+004h]                    ; 8b 46 04
    1191412080    test ax, ax                               ; 85 c0
    11915     je short 0814eh                           ; 74 08
     12081    je short 081dah                           ; 74 08
    1191612082    lea dx, [bx+001h]                         ; 8d 57 01
    1191712083    mov cx, ax                                ; 89 c1
    1191812084    in AL, DX                                 ; ec
    11919     loop 0814bh                               ; e2 fd
     12085    loop 081d7h                               ; e2 fd
    1192012086    mov ax, word [bp+006h]                    ; 8b 46 06
    1192112087    mov es, [bp-00eh]                         ; 8e 46 f2
     
    1192512091    lea ax, [bx+001h]                         ; 8d 47 01
    1192612092    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    11927     jne short 0816fh                          ; 75 07
     12093    jne short 081fbh                          ; 75 07
    1192812094    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    11929     jbe short 0818ch                          ; 76 1d
     12095    jbe short 08218h                          ; 76 1d
    1193012096    mov dx, ax                                ; 89 c2
    1193112097    mov cx, 08000h                            ; b9 00 80
     
    1193712103    add ax, 00800h                            ; 05 00 08
    1193812104    mov word [bp+00eh], ax                    ; 89 46 0e
    11939     jmp short 0815fh                          ; eb d3
     12105    jmp short 081ebh                          ; eb d3
    1194012106    mov dx, ax                                ; 89 c2
    1194112107    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1194412110    mov es, [bp-00eh]                         ; 8e 46 f2
    1194512111    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    11946     je short 081a7h                           ; 74 07
     12112    je short 08233h                           ; 74 07
    1194712113    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1194812114    in AL, DX                                 ; ec
    11949     loop 081a4h                               ; e2 fd
     12115    loop 08230h                               ; e2 fd
    1195012116    xor dx, dx                                ; 31 d2
    1195112117    mov ax, dx                                ; 89 d0
     
    1195512121    pop bp                                    ; 5d
    1195612122    retn 0000ch                               ; c2 0c 00
    11957 scsi_enumerate_attached_devices_:            ; 0xf81b4 LB 0x482
     12123scsi_enumerate_attached_devices_:            ; 0xf8240 LB 0x482
    1195812124    push bp                                   ; 55
    1195912125    mov bp, sp                                ; 89 e5
     
    1196712133    mov dx, strict word 0000eh                ; ba 0e 00
    1196812134    mov ax, strict word 00040h                ; b8 40 00
    11969     call 0166ch                               ; e8 a2 94
     12135    call 016d4h                               ; e8 7e 94
    1197012136    mov di, 00122h                            ; bf 22 01
    1197112137    mov word [bp-02eh], ax                    ; 89 46 d2
    1197212138    mov word [bp-01eh], strict word 00000h    ; c7 46 e2 00 00
    11973     jmp near 085b8h                           ; e9 e0 03
     12139    jmp near 08644h                           ; e9 e0 03
    1197412140    cmp AL, strict byte 004h                  ; 3c 04
    11975     jnc near 0862ch                           ; 0f 83 4e 04
     12141    jnc near 086b8h                           ; 0f 83 4e 04
    1197612142    mov cx, strict word 00010h                ; b9 10 00
    1197712143    xor bx, bx                                ; 31 db
    1197812144    mov dx, ss                                ; 8c d2
    1197912145    lea ax, [bp-046h]                         ; 8d 46 ba
    11980     call 09e7ah                               ; e8 8f 1c
     12146    call 09f20h                               ; e8 a9 1c
    1198112147    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
    1198212148    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     
    1199112157    lea bx, [bp-046h]                         ; 8d 5e ba
    1199212158    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    11993     call 07ceeh                               ; e8 dc fa
     12159    call 07d7ah                               ; e8 dc fa
    1199412160    test al, al                               ; 84 c0
    11995     je short 08224h                           ; 74 0e
     12161    je short 082b0h                           ; 74 0e
    1199612162    push 00b92h                               ; 68 92 0b
    1199712163    push 00bcbh                               ; 68 cb 0b
    1199812164    push strict byte 00007h                   ; 6a 07
    11999     call 01972h                               ; e8 51 97
     12165    call 019dah                               ; e8 2d 97
    1200012166    add sp, strict byte 00006h                ; 83 c4 06
    1200112167    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
     
    1202712193    sal ax, 1                                 ; d1 e0
    1202812194    rcl dx, 1                                 ; d1 d2
    12029     loop 08272h                               ; e2 fa
     12195    loop 082feh                               ; e2 fa
    1203012196    or bx, ax                                 ; 09 c3
    1203112197    or dx, si                                 ; 09 f2
     
    1203412200    mov word [bp-024h], bx                    ; 89 5e dc
    1203512201    test dx, dx                               ; 85 d2
    12036     jne short 08290h                          ; 75 06
     12202    jne short 0831ch                          ; 75 06
    1203712203    cmp bx, 00200h                            ; 81 fb 00 02
    12038     je short 082b0h                           ; 74 20
     12204    je short 0833ch                           ; 74 20
    1203912205    mov bx, 00da0h                            ; bb a0 0d
    1204012206    mov cx, ds                                ; 8c d9
    1204112207    mov ax, strict word 00004h                ; b8 04 00
    12042     call 01931h                               ; e8 96 96
     12208    call 01999h                               ; e8 72 96
    1204312209    push dx                                   ; 52
    1204412210    push word [bp-024h]                       ; ff 76 dc
     
    1204612212    push 00beah                               ; 68 ea 0b
    1204712213    push strict byte 00004h                   ; 6a 04
    12048     call 01972h                               ; e8 c8 96
     12214    call 019dah                               ; e8 a4 96
    1204912215    add sp, strict byte 0000ah                ; 83 c4 0a
    12050     jmp near 085afh                           ; e9 ff 02
     12216    jmp near 0863bh                           ; e9 ff 02
    1205112217    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1205212218    cmp AL, strict byte 001h                  ; 3c 01
    12053     jc short 082c3h                           ; 72 0c
    12054     jbe short 082cbh                          ; 76 12
     12219    jc short 0834fh                           ; 72 0c
     12220    jbe short 08357h                          ; 76 12
    1205512221    cmp AL, strict byte 003h                  ; 3c 03
    12056     je short 082d3h                           ; 74 16
     12222    je short 0835fh                           ; 74 16
    1205712223    cmp AL, strict byte 002h                  ; 3c 02
    12058     je short 082cfh                           ; 74 0e
    12059     jmp short 0831ch                          ; eb 59
     12224    je short 0835bh                           ; 74 0e
     12225    jmp short 083a8h                          ; eb 59
    1206012226    test al, al                               ; 84 c0
    12061     jne short 0831ch                          ; 75 55
     12227    jne short 083a8h                          ; 75 55
    1206212228    mov BL, strict byte 090h                  ; b3 90
    12063     jmp short 082d5h                          ; eb 0a
     12229    jmp short 08361h                          ; eb 0a
    1206412230    mov BL, strict byte 098h                  ; b3 98
    12065     jmp short 082d5h                          ; eb 06
     12231    jmp short 08361h                          ; eb 06
    1206612232    mov BL, strict byte 0a0h                  ; b3 a0
    12067     jmp short 082d5h                          ; eb 02
     12233    jmp short 08361h                          ; eb 02
    1206812234    mov BL, strict byte 0a8h                  ; b3 a8
    1206912235    mov al, bl                                ; 88 d8
     
    1207112237    movzx cx, al                              ; 0f b6 c8
    1207212238    mov ax, cx                                ; 89 c8
    12073     call 016ach                               ; e8 cb 93
     12239    call 01714h                               ; e8 a7 93
    1207412240    test al, al                               ; 84 c0
    12075     je short 0831ch                           ; 74 37
     12241    je short 083a8h                           ; 74 37
    1207612242    mov al, bl                                ; 88 d8
    1207712243    db  0feh, 0c0h
    1207812244    ; inc al                                    ; fe c0
    1207912245    xor ah, ah                                ; 30 e4
    12080     call 016ach                               ; e8 be 93
     12246    call 01714h                               ; e8 9a 93
    1208112247    movzx dx, al                              ; 0f b6 d0
    1208212248    sal dx, 008h                              ; c1 e2 08
    1208312249    movzx ax, bl                              ; 0f b6 c3
    12084     call 016ach                               ; e8 b2 93
     12250    call 01714h                               ; e8 8e 93
    1208512251    xor ah, ah                                ; 30 e4
    1208612252    add ax, dx                                ; 01 d0
     
    1209012256    add AL, strict byte 002h                  ; 04 02
    1209112257    xor ah, ah                                ; 30 e4
    12092     call 016ach                               ; e8 a2 93
     12258    call 01714h                               ; e8 7e 93
    1209312259    xor ah, ah                                ; 30 e4
    1209412260    mov word [bp-034h], ax                    ; 89 46 cc
    1209512261    mov ax, cx                                ; 89 c8
    12096     call 016ach                               ; e8 98 93
     12262    call 01714h                               ; e8 74 93
    1209712263    xor ah, ah                                ; 30 e4
    1209812264    mov word [bp-032h], ax                    ; 89 46 ce
    12099     jmp near 08405h                           ; e9 e9 00
     12265    jmp near 08491h                           ; e9 e9 00
    1210012266    mov ax, word [bp-010h]                    ; 8b 46 f0
    1210112267    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1210312269    mov dx, word [bp-016h]                    ; 8b 56 ea
    1210412270    mov si, strict word 0000ch                ; be 0c 00
    12105     call 09e6ah                               ; e8 3c 1b
     12271    call 09f00h                               ; e8 46 1b
    1210612272    mov word [bp-018h], ax                    ; 89 46 e8
    1210712273    mov word [bp-014h], bx                    ; 89 5e ec
     
    1211012276    mov ax, word [bp-010h]                    ; 8b 46 f0
    1211112277    test ax, ax                               ; 85 c0
    12112     jnbe short 08357h                         ; 77 16
    12113     jne near 083cah                           ; 0f 85 85 00
     12278    jnbe short 083e3h                         ; 77 16
     12279    jne near 08456h                           ; 0f 85 85 00
    1211412280    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
    12115     jnbe short 08357h                         ; 77 0c
    12116     jne near 083cah                           ; 0f 85 7b 00
     12281    jnbe short 083e3h                         ; 77 0c
     12282    jne near 08456h                           ; 0f 85 7b 00
    1211712283    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
    12118     jnbe short 08357h                         ; 77 02
    12119     jne short 083cah                          ; 75 73
     12284    jnbe short 083e3h                         ; 77 02
     12285    jne short 08456h                          ; 75 73
    1212012286    mov dword [bp-034h], strict dword 0003f00ffh ; 66 c7 46 cc ff 00 3f 00
    1212112287    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1212312289    mov dx, word [bp-016h]                    ; 8b 56 ea
    1212412290    mov si, strict word 00006h                ; be 06 00
    12125     call 09e6ah                               ; e8 fc 1a
     12291    call 09f00h                               ; e8 06 1b
    1212612292    mov si, word [bp-020h]                    ; 8b 76 e0
    1212712293    add si, dx                                ; 01 d6
     
    1214112307    mov dx, si                                ; 89 f2
    1214212308    mov si, strict word 00008h                ; be 08 00
    12143     call 09e6ah                               ; e8 cc 1a
     12309    call 09f00h                               ; e8 d6 1a
    1214412310    mov word [bp-022h], bx                    ; 89 5e de
    1214512311    mov word [bp-02ch], cx                    ; 89 4e d4
     
    1215012316    mov dx, word [bp-02ah]                    ; 8b 56 d6
    1215112317    mov si, strict word 00010h                ; be 10 00
    12152     call 09e6ah                               ; e8 b1 1a
     12318    call 09f00h                               ; e8 bb 1a
    1215312319    mov si, word [bp-01ah]                    ; 8b 76 e6
    1215412320    add si, dx                                ; 01 d6
     
    1215712323    mov ax, word [bp-022h]                    ; 8b 46 de
    1215812324    adc ax, bx                                ; 11 d8
    12159     jmp short 08405h                          ; eb 3b
     12325    jmp short 08491h                          ; eb 3b
    1216012326    test ax, ax                               ; 85 c0
    12161     jnbe short 083e0h                         ; 77 12
    12162     jne short 083eah                          ; 75 1a
     12327    jnbe short 0846ch                         ; 77 12
     12328    jne short 08476h                          ; 75 1a
    1216312329    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
    12164     jnbe short 083e0h                         ; 77 0a
    12165     jne short 083eah                          ; 75 12
     12330    jnbe short 0846ch                         ; 77 0a
     12331    jne short 08476h                          ; 75 12
    1216612332    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
    12167     jnbe short 083e0h                         ; 77 02
    12168     jne short 083eah                          ; 75 0a
     12333    jnbe short 0846ch                         ; 77 02
     12334    jne short 08476h                          ; 75 0a
    1216912335    mov dword [bp-034h], strict dword 000200080h ; 66 c7 46 cc 80 00 20 00
    12170     jmp short 08401h                          ; eb 17
     12336    jmp short 0848dh                          ; eb 17
    1217112337    mov dword [bp-034h], strict dword 000200040h ; 66 c7 46 cc 40 00 20 00
    1217212338    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1217412340    mov dx, word [bp-016h]                    ; 8b 56 ea
    1217512341    mov si, strict word 0000bh                ; be 0b 00
    12176     call 09e6ah                               ; e8 69 1a
     12342    call 09f00h                               ; e8 73 1a
    1217712343    mov si, dx                                ; 89 d6
    1217812344    mov dx, cx                                ; 89 ca
     
    1220712373    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1220812374    test dx, dx                               ; 85 d2
    12209     jne short 08472h                          ; 75 06
     12375    jne short 084feh                          ; 75 06
    1221012376    cmp si, 00400h                            ; 81 fe 00 04
    12211     jbe short 08480h                          ; 76 0e
     12377    jbe short 0850ch                          ; 76 0e
    1221212378    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1221312379    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12214     jmp short 08488h                          ; eb 08
     12380    jmp short 08514h                          ; eb 08
    1221512381    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1221612382    mov word [es:bx+032h], si                 ; 26 89 77 32
     
    1221812384    mov cx, ds                                ; 8c d9
    1221912385    mov ax, strict word 00004h                ; b8 04 00
    12220     call 01931h                               ; e8 9e 94
     12386    call 01999h                               ; e8 7a 94
    1222112387    push word [bp-010h]                       ; ff 76 f0
    1222212388    push word [bp-030h]                       ; ff 76 d0
     
    1223112397    push 00c18h                               ; 68 18 0c
    1223212398    push strict byte 00004h                   ; 6a 04
    12233     call 01972h                               ; e8 bd 94
     12399    call 019dah                               ; e8 99 94
    1223412400    add sp, strict byte 00018h                ; 83 c4 18
    1223512401    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
     
    1225612422    mov dx, strict word 00075h                ; ba 75 00
    1225712423    mov ax, strict word 00040h                ; b8 40 00
    12258     call 01650h                               ; e8 4b 91
     12424    call 016b8h                               ; e8 27 91
    1225912425    db  0feh, 0c0h
    1226012426    ; inc al                                    ; fe c0
     
    1226212428    mov dx, strict word 00075h                ; ba 75 00
    1226312429    mov ax, strict word 00040h                ; b8 40 00
    12264     call 0165eh                               ; e8 4b 91
     12430    call 016c6h                               ; e8 27 91
    1226512431    inc byte [bp-00ch]                        ; fe 46 f4
    12266     jmp near 085a4h                           ; e9 8b 00
     12432    jmp near 08630h                           ; e9 8b 00
    1226712433    mov bx, 00da0h                            ; bb a0 0d
    1226812434    mov cx, ds                                ; 8c d9
    1226912435    mov ax, strict word 00004h                ; b8 04 00
    12270     call 01931h                               ; e8 0d 94
     12436    call 01999h                               ; e8 e9 93
    1227112437    push word [bp-01eh]                       ; ff 76 e2
    1227212438    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    1227412440    push 00c46h                               ; 68 46 0c
    1227512441    push strict byte 00004h                   ; 6a 04
    12276     call 01972h                               ; e8 3e 94
     12442    call 019dah                               ; e8 1a 94
    1227712443    add sp, strict byte 00008h                ; 83 c4 08
    1227812444    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1231512481    inc word [bp-01eh]                        ; ff 46 e2
    1231612482    cmp word [bp-01eh], strict byte 00010h    ; 83 7e e2 10
    12317     jnl short 0862ch                          ; 7d 74
     12483    jnl short 086b8h                          ; 7d 74
    1231812484    mov byte [bp-046h], 012h                  ; c6 46 ba 12
    1231912485    xor al, al                                ; 30 c0
     
    1233212498    lea bx, [bp-046h]                         ; 8d 5e ba
    1233312499    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12334     call 07ceeh                               ; e8 05 f7
     12500    call 07d7ah                               ; e8 05 f7
    1233512501    test al, al                               ; 84 c0
    12336     je short 085fbh                           ; 74 0e
     12502    je short 08687h                           ; 74 0e
    1233712503    push 00b92h                               ; 68 92 0b
    1233812504    push 00bb2h                               ; 68 b2 0b
    1233912505    push strict byte 00007h                   ; 6a 07
    12340     call 01972h                               ; e8 7a 93
     12506    call 019dah                               ; e8 56 93
    1234112507    add sp, strict byte 00006h                ; 83 c4 06
    1234212508    mov es, [bp-02eh]                         ; 8e 46 d2
     
    1234412510    mov byte [bp-00ch], al                    ; 88 46 f4
    1234512511    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12346     jne short 08616h                          ; 75 09
     12512    jne short 086a2h                          ; 75 09
    1234712513    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
    12348     je near 081d8h                            ; 0f 84 c2 fb
     12514    je near 08264h                            ; 0f 84 c2 fb
    1234912515    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12350     jne short 085a4h                          ; 75 87
     12516    jne short 08630h                          ; 75 87
    1235112517    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
    1235212518    and AL, strict byte 01fh                  ; 24 1f
    1235312519    cmp AL, strict byte 005h                  ; 3c 05
    12354     je near 08519h                            ; 0f 84 f0 fe
    12355     jmp near 085a4h                           ; e9 78 ff
     12520    je near 085a5h                            ; 0f 84 f0 fe
     12521    jmp near 08630h                           ; e9 78 ff
    1235612522    lea sp, [bp-00ah]                         ; 8d 66 f6
    1235712523    pop di                                    ; 5f
     
    1236212528    pop bp                                    ; 5d
    1236312529    retn                                      ; c3
    12364 _scsi_init:                                  ; 0xf8636 LB 0x66
     12530_scsi_init:                                  ; 0xf86c2 LB 0x66
    1236512531    push bp                                   ; 55
    1236612532    mov bp, sp                                ; 89 e5
    1236712533    mov dx, strict word 0000eh                ; ba 0e 00
    1236812534    mov ax, strict word 00040h                ; b8 40 00
    12369     call 0166ch                               ; e8 2a 90
     12535    call 016d4h                               ; e8 06 90
    1237012536    mov bx, 00122h                            ; bb 22 01
    1237112537    mov es, ax                                ; 8e c0
     
    1237812544    ; sub ah, ah                                ; 2a e4
    1237912545    cmp AL, strict byte 055h                  ; 3c 55
    12380     jne short 08666h                          ; 75 0c
     12546    jne short 086f2h                          ; 75 0c
    1238112547    xor al, al                                ; 30 c0
    1238212548    mov dx, 00433h                            ; ba 33 04
    1238312549    out DX, AL                                ; ee
    1238412550    mov ax, 00430h                            ; b8 30 04
    12385     call 081b4h                               ; e8 4e fb
     12551    call 08240h                               ; e8 4e fb
    1238612552    mov AL, strict byte 055h                  ; b0 55
    1238712553    mov dx, 00436h                            ; ba 36 04
     
    1239112557    ; sub ah, ah                                ; 2a e4
    1239212558    cmp AL, strict byte 055h                  ; 3c 55
    12393     jne short 0867fh                          ; 75 0c
     12559    jne short 0870bh                          ; 75 0c
    1239412560    xor al, al                                ; 30 c0
    1239512561    mov dx, 00437h                            ; ba 37 04
    1239612562    out DX, AL                                ; ee
    1239712563    mov ax, 00434h                            ; b8 34 04
    12398     call 081b4h                               ; e8 35 fb
     12564    call 08240h                               ; e8 35 fb
    1239912565    mov AL, strict byte 055h                  ; b0 55
    1240012566    mov dx, 0043ah                            ; ba 3a 04
     
    1240412570    ; sub ah, ah                                ; 2a e4
    1240512571    cmp AL, strict byte 055h                  ; 3c 55
    12406     jne short 08698h                          ; 75 0c
     12572    jne short 08724h                          ; 75 0c
    1240712573    xor al, al                                ; 30 c0
    1240812574    mov dx, 0043bh                            ; ba 3b 04
    1240912575    out DX, AL                                ; ee
    1241012576    mov ax, 00438h                            ; b8 38 04
    12411     call 081b4h                               ; e8 1c fb
     12577    call 08240h                               ; e8 1c fb
    1241212578    mov sp, bp                                ; 89 ec
    1241312579    pop bp                                    ; 5d
    1241412580    retn                                      ; c3
    12415 ahci_ctrl_extract_bits_:                     ; 0xf869c LB 0x1b
     12581ahci_ctrl_extract_bits_:                     ; 0xf8728 LB 0x1b
    1241612582    push si                                   ; 56
    1241712583    push bp                                   ; 55
     
    1242112587    and dx, cx                                ; 21 ca
    1242212588    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    12423     jcxz 086b2h                               ; e3 06
     12589    jcxz 0873eh                               ; e3 06
    1242412590    shr dx, 1                                 ; d1 ea
    1242512591    rcr ax, 1                                 ; d1 d8
    12426     loop 086ach                               ; e2 fa
     12592    loop 08738h                               ; e2 fa
    1242712593    pop bp                                    ; 5d
    1242812594    pop si                                    ; 5e
    1242912595    retn 00002h                               ; c2 02 00
    12430 ahci_addr_to_phys_:                          ; 0xf86b7 LB 0x1e
     12596ahci_addr_to_phys_:                          ; 0xf8743 LB 0x1e
    1243112597    push bx                                   ; 53
    1243212598    push cx                                   ; 51
     
    1243912605    sal ax, 1                                 ; d1 e0
    1244012606    rcl dx, 1                                 ; d1 d2
    12441     loop 086c5h                               ; e2 fa
     12607    loop 08751h                               ; e2 fa
    1244212608    xor cx, cx                                ; 31 c9
    1244312609    add ax, bx                                ; 01 d8
     
    1244712613    pop bx                                    ; 5b
    1244812614    retn                                      ; c3
    12449 ahci_port_cmd_sync_:                         ; 0xf86d5 LB 0x14b
     12615ahci_port_cmd_sync_:                         ; 0xf8761 LB 0x14b
    1245012616    push bp                                   ; 55
    1245112617    mov bp, sp                                ; 89 e5
     
    1246212628    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1246312629    cmp ah, 0ffh                              ; 80 fc ff
    12464     je near 08818h                            ; 0f 84 20 01
     12630    je near 088a4h                            ; 0f 84 20 01
    1246512631    movzx dx, byte [es:si+00263h]             ; 26 0f b6 94 63 02
    1246612632    xor di, di                                ; 31 ff
     
    1247412640    lea ax, [si+00080h]                       ; 8d 84 80 00
    1247512641    mov dx, cx                                ; 89 ca
    12476     call 086b7h                               ; e8 96 ff
     12642    call 08743h                               ; e8 96 ff
    1247712643    mov es, cx                                ; 8e c1
    1247812644    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1253712703    xchg dx, ax                               ; 92
    1253812704    test dh, 040h                             ; f6 c6 40
    12539     jne short 087aeh                          ; 75 04
     12705    jne short 0883ah                          ; 75 04
    1254012706    test AL, strict byte 001h                 ; a8 01
    12541     je short 087b2h                           ; 74 04
     12707    je short 0883eh                           ; 74 04
    1254212708    mov AL, strict byte 001h                  ; b0 01
    12543     jmp short 087b4h                          ; eb 02
     12709    jmp short 08840h                          ; eb 02
    1254412710    xor al, al                                ; 30 c0
    1254512711    test al, al                               ; 84 c0
    12546     je short 08782h                           ; 74 ca
     12712    je short 0880eh                           ; 74 ca
    1254712713    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
    1254812714    sal di, 007h                              ; c1 e7 07
     
    1259812764    pop bp                                    ; 5d
    1259912765    retn                                      ; c3
    12600 ahci_cmd_data_:                              ; 0xf8820 LB 0x262
     12766ahci_cmd_data_:                              ; 0xf88ac LB 0x262
    1260112767    push bp                                   ; 55
    1260212768    mov bp, sp                                ; 89 e5
     
    1262312789    mov ax, 00080h                            ; b8 80 00
    1262412790    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12625     call 09e7ah                               ; e8 1c 16
     12791    call 09f20h                               ; e8 36 16
    1262612792    mov es, [bp-00ah]                         ; 8e 46 f6
    1262712793    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1264112807    mov dx, word [es:si]                      ; 26 8b 14
    1264212808    mov si, strict word 00008h                ; be 08 00
    12643     call 09e6ah                               ; e8 c8 15
     12809    call 09f00h                               ; e8 d2 15
    1264412810    mov es, [bp-00ah]                         ; 8e 46 f6
    1264512811    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1265212818    mov dx, word [es:si]                      ; 26 8b 14
    1265312819    mov si, strict word 00010h                ; be 10 00
    12654     call 09e6ah                               ; e8 a2 15
     12820    call 09f00h                               ; e8 ac 15
    1265512821    mov es, [bp-00ah]                         ; 8e 46 f6
    1265612822    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1266412830    mov dx, word [es:si]                      ; 26 8b 14
    1266512831    mov si, strict word 00018h                ; be 18 00
    12666     call 09e6ah                               ; e8 76 15
     12832    call 09f00h                               ; e8 80 15
    1266712833    mov es, [bp-00ah]                         ; 8e 46 f6
    1266812834    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1267512841    mov dx, word [es:si]                      ; 26 8b 14
    1267612842    mov si, strict word 00020h                ; be 20 00
    12677     call 09e6ah                               ; e8 50 15
     12843    call 09f00h                               ; e8 5a 15
    1267812844    mov es, [bp-00ah]                         ; 8e 46 f6
    1267912845    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1268612852    mov dx, word [es:si]                      ; 26 8b 14
    1268712853    mov si, strict word 00028h                ; be 28 00
    12688     call 09e6ah                               ; e8 2a 15
     12854    call 09f00h                               ; e8 34 15
    1268912855    mov es, [bp-00ah]                         ; 8e 46 f6
    1269012856    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1270012866    mov bx, word [bp-010h]                    ; 8b 5e f0
    1270112867    xor cx, cx                                ; 31 c9
    12702     call 09e29h                               ; e8 b4 14
     12868    call 09e80h                               ; e8 7f 14
    1270312869    push dx                                   ; 52
    1270412870    push ax                                   ; 50
     
    1271012876    mov ax, 0026ah                            ; b8 6a 02
    1271112877    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12712     call 09d43h                               ; e8 b2 13
     12878    call 09dcfh                               ; e8 b2 13
    1271312879    mov es, [bp-00ah]                         ; 8e 46 f6
    1271412880    mov ax, word [es:di+0027eh]               ; 26 8b 85 7e 02
     
    1273112897    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1273212898    test ax, ax                               ; 85 c0
    12733     je short 08a1fh                           ; 74 39
     12899    je short 08aabh                           ; 74 39
    1273412900    dec ax                                    ; 48
    1273512901    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1274712913    mov al, byte [bp-008h]                    ; 8a 46 f8
    1274812914    cmp AL, strict byte 035h                  ; 3c 35
    12749     jne short 08a2ch                          ; 75 06
     12915    jne short 08ab8h                          ; 75 06
    1275012916    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    12751     jmp short 08a43h                          ; eb 17
     12917    jmp short 08acfh                          ; eb 17
    1275212918    cmp AL, strict byte 0a0h                  ; 3c a0
    12753     jne short 08a3fh                          ; 75 0f
     12919    jne short 08acbh                          ; 75 0f
    1275412920    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1275512921    les bx, [bp-00eh]                         ; c4 5e f2
    1275612922    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    12757     jmp short 08a43h                          ; eb 04
     12923    jmp short 08acfh                          ; eb 04
    1275812924    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1275912925    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1276112927    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1276212928    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12763     call 086d5h                               ; e8 81 fc
     12929    call 08761h                               ; e8 81 fc
    1276412930    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1276512931    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1276812934    add ax, 0026ah                            ; 05 6a 02
    1276912935    mov dx, cx                                ; 89 ca
    12770     call 09dbch                               ; e8 53 13
     12936    call 09e48h                               ; e8 53 13
    1277112937    mov es, cx                                ; 8e c1
    1277212938    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1277312939    test al, al                               ; 84 c0
    12774     je short 08a78h                           ; 74 05
     12940    je short 08b04h                           ; 74 05
    1277512941    mov ax, strict word 00004h                ; b8 04 00
    12776     jmp short 08a7ah                          ; eb 02
     12942    jmp short 08b06h                          ; eb 02
    1277712943    xor ah, ah                                ; 30 e4
    1277812944    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1278212948    pop bp                                    ; 5d
    1278312949    retn                                      ; c3
    12784 ahci_port_deinit_current_:                   ; 0xf8a82 LB 0x17f
     12950ahci_port_deinit_current_:                   ; 0xf8b0e LB 0x17f
    1278512951    push bp                                   ; 55
    1278612952    mov bp, sp                                ; 89 e5
     
    1279712963    mov byte [bp-00ah], al                    ; 88 46 f6
    1279812964    cmp AL, strict byte 0ffh                  ; 3c ff
    12799     je near 08bf8h                            ; 0f 84 52 01
     12965    je near 08c84h                            ; 0f 84 52 01
    1280012966    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1280112967    sal ax, 007h                              ; c1 e0 07
     
    1284013006    xchg dx, ax                               ; 92
    1284113007    test ax, 0c011h                           ; a9 11 c0
    12842     je short 08b06h                           ; 74 04
     13008    je short 08b92h                           ; 74 04
    1284313009    mov AL, strict byte 001h                  ; b0 01
    12844     jmp short 08b08h                          ; eb 02
     13010    jmp short 08b94h                          ; eb 02
    1284513011    xor al, al                                ; 30 c0
    1284613012    cmp AL, strict byte 001h                  ; 3c 01
    12847     je short 08adah                           ; 74 ce
     13013    je short 08b66h                           ; 74 ce
    1284813014    mov cx, strict word 00020h                ; b9 20 00
    1284913015    xor bx, bx                                ; 31 db
    1285013016    mov ax, di                                ; 89 f8
    1285113017    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12852     call 09e7ah                               ; e8 61 13
     13018    call 09f20h                               ; e8 7b 13
    1285313019    lea ax, [di+00080h]                       ; 8d 85 80 00
    1285413020    mov cx, strict word 00040h                ; b9 40 00
    1285513021    xor bx, bx                                ; 31 db
    1285613022    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12857     call 09e7ah                               ; e8 52 13
     13023    call 09f20h                               ; e8 6c 13
    1285813024    lea ax, [di+00200h]                       ; 8d 85 00 02
    1285913025    mov cx, strict word 00060h                ; b9 60 00
    1286013026    xor bx, bx                                ; 31 db
    1286113027    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12862     call 09e7ah                               ; e8 43 13
     13028    call 09f20h                               ; e8 5d 13
    1286313029    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1286413030    sal ax, 007h                              ; c1 e0 07
     
    1296413130    pop bp                                    ; 5d
    1296513131    retn                                      ; c3
    12966 ahci_port_init_:                             ; 0xf8c01 LB 0x24a
     13132ahci_port_init_:                             ; 0xf8c8d LB 0x24a
    1296713133    push bp                                   ; 55
    1296813134    mov bp, sp                                ; 89 e5
     
    1297413140    mov word [bp-00ah], dx                    ; 89 56 f6
    1297513141    mov byte [bp-008h], bl                    ; 88 5e f8
    12976     call 08a82h                               ; e8 6d fe
     13142    call 08b0eh                               ; e8 6d fe
    1297713143    movzx ax, bl                              ; 0f b6 c3
    1297813144    sal ax, 007h                              ; c1 e0 07
     
    1302113187    xchg dx, ax                               ; 92
    1302213188    test ax, 0c011h                           ; a9 11 c0
    13023     je short 08c84h                           ; 74 04
     13189    je short 08d10h                           ; 74 04
    1302413190    mov AL, strict byte 001h                  ; b0 01
    13025     jmp short 08c86h                          ; eb 02
     13191    jmp short 08d12h                          ; eb 02
    1302613192    xor al, al                                ; 30 c0
    1302713193    cmp AL, strict byte 001h                  ; 3c 01
    13028     je short 08c50h                           ; 74 c6
     13194    je short 08cdch                           ; 74 c6
    1302913195    mov cx, strict word 00020h                ; b9 20 00
    1303013196    xor bx, bx                                ; 31 db
    1303113197    mov ax, si                                ; 89 f0
    1303213198    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13033     call 09e7ah                               ; e8 e3 11
     13199    call 09f20h                               ; e8 fd 11
    1303413200    lea ax, [si+00080h]                       ; 8d 84 80 00
    1303513201    mov cx, strict word 00040h                ; b9 40 00
    1303613202    xor bx, bx                                ; 31 db
    1303713203    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13038     call 09e7ah                               ; e8 d4 11
     13204    call 09f20h                               ; e8 ee 11
    1303913205    lea di, [si+00200h]                       ; 8d bc 00 02
    1304013206    mov cx, strict word 00060h                ; b9 60 00
     
    1304213208    mov ax, di                                ; 89 f8
    1304313209    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13044     call 09e7ah                               ; e8 c3 11
     13210    call 09f20h                               ; e8 dd 11
    1304513211    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    1304613212    sal bx, 007h                              ; c1 e3 07
     
    1305913225    mov ax, di                                ; 89 f8
    1306013226    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13061     call 086b7h                               ; e8 d3 f9
     13227    call 08743h                               ; e8 d3 f9
    1306213228    mov es, [bp-00ah]                         ; 8e 46 f6
    1306313229    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1310413270    mov ax, si                                ; 89 f0
    1310513271    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13106     call 086b7h                               ; e8 67 f9
     13272    call 08743h                               ; e8 67 f9
    1310713273    mov es, [bp-00ah]                         ; 8e 46 f6
    1310813274    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1320913375    pop bp                                    ; 5d
    1321013376    retn                                      ; c3
    13211 @ahci_read_sectors:                          ; 0xf8e4b LB 0xa6
     13377@ahci_read_sectors:                          ; 0xf8ed7 LB 0xa6
    1321213378    push bp                                   ; 55
    1321313379    mov bp, sp                                ; 89 e5
     
    1321913385    sub di, strict byte 0000ch                ; 83 ef 0c
    1322013386    cmp di, strict byte 00004h                ; 83 ff 04
    13221     jbe short 08e70h                          ; 76 0f
     13387    jbe short 08efch                          ; 76 0f
    1322213388    push di                                   ; 57
    1322313389    push 00c62h                               ; 68 62 0c
    1322413390    push 00c74h                               ; 68 74 0c
    1322513391    push strict byte 00007h                   ; 6a 07
    13226     call 01972h                               ; e8 05 8b
     13392    call 019dah                               ; e8 e1 8a
    1322713393    add sp, strict byte 00008h                ; 83 c4 08
    1322813394    xor bx, bx                                ; 31 db
     
    1323813404    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
    1323913405    xor ax, ax                                ; 31 c0
    13240     call 08c01h                               ; e8 65 fd
     13406    call 08c8dh                               ; e8 65 fd
    1324113407    mov bx, strict word 00025h                ; bb 25 00
    1324213408    mov ax, si                                ; 89 f0
    1324313409    mov dx, word [bp+006h]                    ; 8b 56 06
    13244     call 08820h                               ; e8 79 f9
     13410    call 088ach                               ; e8 79 f9
    1324513411    mov word [bp-006h], ax                    ; 89 46 fa
    1324613412    mov es, [bp+006h]                         ; 8e 46 06
     
    1327113437    pop bp                                    ; 5d
    1327213438    retn 00004h                               ; c2 04 00
    13273 @ahci_write_sectors:                         ; 0xf8ef1 LB 0x84
     13439@ahci_write_sectors:                         ; 0xf8f7d LB 0x84
    1327413440    push bp                                   ; 55
    1327513441    mov bp, sp                                ; 89 e5
     
    1328213448    sub dx, strict byte 0000ch                ; 83 ea 0c
    1328313449    cmp dx, strict byte 00004h                ; 83 fa 04
    13284     jbe short 08f1ah                          ; 76 0f
     13450    jbe short 08fa6h                          ; 76 0f
    1328513451    push dx                                   ; 52
    1328613452    push 00c93h                               ; 68 93 0c
    1328713453    push 00c74h                               ; 68 74 0c
    1328813454    push strict byte 00007h                   ; 6a 07
    13289     call 01972h                               ; e8 5b 8a
     13455    call 019dah                               ; e8 37 8a
    1329013456    add sp, strict byte 00008h                ; 83 c4 08
    1329113457    xor bx, bx                                ; 31 db
     
    1330113467    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1330213468    xor ax, ax                                ; 31 c0
    13303     call 08c01h                               ; e8 bd fc
     13469    call 08c8dh                               ; e8 bd fc
    1330413470    mov bx, strict word 00035h                ; bb 35 00
    1330513471    mov ax, si                                ; 89 f0
    1330613472    mov dx, cx                                ; 89 ca
    13307     call 08820h                               ; e8 d2 f8
     13473    call 088ach                               ; e8 d2 f8
    1330813474    mov dx, ax                                ; 89 c2
    1330913475    mov es, cx                                ; 8e c1
     
    1332013486    pop bp                                    ; 5d
    1332113487    retn 00004h                               ; c2 04 00
    13322 ahci_cmd_packet_:                            ; 0xf8f75 LB 0x183
     13488ahci_cmd_packet_:                            ; 0xf9001 LB 0x183
    1332313489    push bp                                   ; 55
    1332413490    mov bp, sp                                ; 89 e5
     
    1333213498    mov dx, strict word 0000eh                ; ba 0e 00
    1333313499    mov ax, strict word 00040h                ; b8 40 00
    13334     call 0166ch                               ; e8 dc 86
     13500    call 016d4h                               ; e8 b8 86
    1333513501    mov si, 00122h                            ; be 22 01
    1333613502    mov word [bp-008h], ax                    ; 89 46 f8
    1333713503    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    13338     jne short 08fbbh                          ; 75 1f
     13504    jne short 09047h                          ; 75 1f
    1333913505    mov bx, 00da0h                            ; bb a0 0d
    1334013506    mov cx, ds                                ; 8c d9
    1334113507    mov ax, strict word 00004h                ; b8 04 00
    13342     call 01931h                               ; e8 8a 89
     13508    call 01999h                               ; e8 66 89
    1334313509    push 00ca6h                               ; 68 a6 0c
    1334413510    push 00cb6h                               ; 68 b6 0c
    1334513511    push strict byte 00004h                   ; 6a 04
    13346     call 01972h                               ; e8 c0 89
     13512    call 019dah                               ; e8 9c 89
    1334713513    add sp, strict byte 00006h                ; 83 c4 06
    1334813514    mov ax, strict word 00001h                ; b8 01 00
    13349     jmp near 090efh                           ; e9 34 01
     13515    jmp near 0917bh                           ; e9 34 01
    1335013516    test byte [bp+004h], 001h                 ; f6 46 04 01
    13351     jne short 08fb5h                          ; 75 f4
     13517    jne short 09041h                          ; 75 f4
    1335213518    mov ax, word [bp+006h]                    ; 8b 46 06
    1335313519    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1335513521    sal ax, 1                                 ; d1 e0
    1335613522    rcl dx, 1                                 ; d1 d2
    13357     loop 08fcah                               ; e2 fa
     13523    loop 09056h                               ; e2 fa
    1335813524    mov es, [bp-008h]                         ; 8e 46 f8
    1335913525    mov word [es:si], ax                      ; 26 89 04
     
    1336913535    mov dx, word [bp+008h]                    ; 8b 56 08
    1337013536    xor cx, cx                                ; 31 c9
    13371     call 09df0h                               ; e8 f0 0d
     13537    call 09ec0h                               ; e8 34 0e
    1337213538    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1337313539    xor di, di                                ; 31 ff
     
    1338613552    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1338713553    xor ax, ax                                ; 31 c0
    13388     call 08c01h                               ; e8 c5 fb
     13554    call 08c8dh                               ; e8 c5 fb
    1338913555    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1339013556    push ax                                   ; 50
     
    1339313559    mov ax, 000c0h                            ; b8 c0 00
    1339413560    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13395     call 09e87h                               ; e8 37 0e
     13561    call 09f30h                               ; e8 54 0e
    1339613562    mov es, [bp-008h]                         ; 8e 46 f8
    1339713563    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1340013566    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1340113567    test ax, ax                               ; 85 c0
    13402     je short 0908eh                           ; 74 27
     13568    je short 0911ah                           ; 74 27
    1340313569    dec ax                                    ; 48
    1340413570    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1341313579    mov ax, si                                ; 89 f0
    1341413580    mov dx, word [bp-008h]                    ; 8b 56 f8
    13415     call 08820h                               ; e8 87 f7
     13581    call 088ach                               ; e8 87 f7
    1341613582    les bx, [bp-00eh]                         ; c4 5e f2
    1341713583    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     
    1344013606    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1344113607    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    13442     jne short 090edh                          ; 75 05
     13608    jne short 09179h                          ; 75 05
    1344313609    mov ax, strict word 00004h                ; b8 04 00
    13444     jmp short 090efh                          ; eb 02
     13610    jmp short 0917bh                          ; eb 02
    1344513611    xor ax, ax                                ; 31 c0
    1344613612    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1344913615    pop bp                                    ; 5d
    1345013616    retn 0000ch                               ; c2 0c 00
    13451 ahci_port_detect_device_:                    ; 0xf90f8 LB 0x4b1
     13617ahci_port_detect_device_:                    ; 0xf9184 LB 0x4b1
    1345213618    push bp                                   ; 55
    1345313619    mov bp, sp                                ; 89 e5
     
    1346113627    movzx di, bl                              ; 0f b6 fb
    1346213628    mov bx, di                                ; 89 fb
    13463     call 08c01h                               ; e8 ef fa
     13629    call 08c8dh                               ; e8 ef fa
    1346413630    mov dx, strict word 0000eh                ; ba 0e 00
    1346513631    mov ax, strict word 00040h                ; b8 40 00
    13466     call 0166ch                               ; e8 51 85
     13632    call 016d4h                               ; e8 2d 85
    1346713633    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
    1346813634    mov word [bp-00eh], ax                    ; 89 46 f2
     
    1353313699    mov bx, strict word 0000fh                ; bb 0f 00
    1353413700    xor cx, cx                                ; 31 c9
    13535     call 0869ch                               ; e8 d7 f4
     13701    call 08728h                               ; e8 d7 f4
    1353613702    test ax, ax                               ; 85 c0
    13537     je near 095a1h                            ; 0f 84 d6 03
     13703    je near 0962dh                            ; 0f 84 d6 03
    1353813704    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1353913705    sal ax, 007h                              ; c1 e0 07
     
    1356313729    mov bx, strict word 0000fh                ; bb 0f 00
    1356413730    xor cx, cx                                ; 31 c9
    13565     call 0869ch                               ; e8 8b f4
     13731    call 08728h                               ; e8 8b f4
    1356613732    cmp ax, strict word 00001h                ; 3d 01 00
    13567     je short 091cbh                           ; 74 b5
     13733    je short 09257h                           ; 74 b5
    1356813734    push strict byte 00000h                   ; 6a 00
    1356913735    mov bx, strict word 0000fh                ; bb 0f 00
     
    1357113737    mov ax, di                                ; 89 f8
    1357213738    mov dx, word [bp-022h]                    ; 8b 56 de
    13573     call 0869ch                               ; e8 77 f4
     13739    call 08728h                               ; e8 77 f4
    1357413740    cmp ax, strict word 00003h                ; 3d 03 00
    13575     jne near 095a1h                           ; 0f 85 75 03
     13741    jne near 0962dh                           ; 0f 85 75 03
    1357613742    mov ax, word [bp-018h]                    ; 8b 46 e8
    1357713743    add ax, 00130h                            ; 05 30 01
     
    1360013766    mov byte [bp-008h], al                    ; 88 46 f8
    1360113767    cmp AL, strict byte 004h                  ; 3c 04
    13602     jnc near 095a1h                           ; 0f 83 2f 03
     13768    jnc near 0962dh                           ; 0f 83 2f 03
    1360313769    mov ax, word [bp-018h]                    ; 8b 46 e8
    1360413770    add ax, 00118h                            ; 05 18 01
     
    1365213818    add cl, 00ch                              ; 80 c1 0c
    1365313819    test dx, dx                               ; 85 d2
    13654     jne near 094f7h                           ; 0f 85 0d 02
     13820    jne near 09583h                           ; 0f 85 0d 02
    1365513821    cmp di, 00101h                            ; 81 ff 01 01
    13656     jne near 094f7h                           ; 0f 85 05 02
     13822    jne near 09583h                           ; 0f 85 05 02
    1365713823    les bx, [bp-010h]                         ; c4 5e f0
    1365813824    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     
    1366813834    mov ax, word [bp-010h]                    ; 8b 46 f0
    1366913835    mov dx, es                                ; 8c c2
    13670     call 08820h                               ; e8 fa f4
     13836    call 088ach                               ; e8 fa f4
    1367113837    mov byte [bp-00ch], cl                    ; 88 4e f4
    1367213838    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
     
    1368513851    mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00
    1368613852    cmp di, 00fffh                            ; 81 ff ff 0f
    13687     jne short 0937fh                          ; 75 1e
     13853    jne short 0940bh                          ; 75 1e
    1368813854    cmp dx, strict byte 0ffffh                ; 83 fa ff
    13689     jne short 0937fh                          ; 75 19
     13855    jne short 0940bh                          ; 75 19
    1369013856    mov dx, word [bp-0015ch]                  ; 8b 96 a4 fe
    1369113857    mov word [bp-014h], dx                    ; 89 56 ec
     
    1372413890    mov al, byte [bp-008h]                    ; 8a 46 f8
    1372513891    cmp AL, strict byte 001h                  ; 3c 01
    13726     jc short 093f8h                           ; 72 0c
    13727     jbe short 09400h                          ; 76 12
     13892    jc short 09484h                           ; 72 0c
     13893    jbe short 0948ch                          ; 76 12
    1372813894    cmp AL, strict byte 003h                  ; 3c 03
    13729     je short 09408h                           ; 74 16
     13895    je short 09494h                           ; 74 16
    1373013896    cmp AL, strict byte 002h                  ; 3c 02
    13731     je short 09404h                           ; 74 0e
    13732     jmp short 09451h                          ; eb 59
     13897    je short 09490h                           ; 74 0e
     13898    jmp short 094ddh                          ; eb 59
    1373313899    test al, al                               ; 84 c0
    13734     jne short 09451h                          ; 75 55
     13900    jne short 094ddh                          ; 75 55
    1373513901    mov DL, strict byte 040h                  ; b2 40
    13736     jmp short 0940ah                          ; eb 0a
     13902    jmp short 09496h                          ; eb 0a
    1373713903    mov DL, strict byte 048h                  ; b2 48
    13738     jmp short 0940ah                          ; eb 06
     13904    jmp short 09496h                          ; eb 06
    1373913905    mov DL, strict byte 050h                  ; b2 50
    13740     jmp short 0940ah                          ; eb 02
     13906    jmp short 09496h                          ; eb 02
    1374113907    mov DL, strict byte 058h                  ; b2 58
    1374213908    mov al, dl                                ; 88 d0
     
    1374413910    movzx bx, al                              ; 0f b6 d8
    1374513911    mov ax, bx                                ; 89 d8
    13746     call 016ach                               ; e8 96 82
     13912    call 01714h                               ; e8 72 82
    1374713913    test al, al                               ; 84 c0
    13748     je short 09451h                           ; 74 37
     13914    je short 094ddh                           ; 74 37
    1374913915    mov al, dl                                ; 88 d0
    1375013916    db  0feh, 0c0h
    1375113917    ; inc al                                    ; fe c0
    1375213918    xor ah, ah                                ; 30 e4
    13753     call 016ach                               ; e8 89 82
     13919    call 01714h                               ; e8 65 82
    1375413920    xor ah, ah                                ; 30 e4
    1375513921    mov si, ax                                ; 89 c6
    1375613922    sal si, 008h                              ; c1 e6 08
    1375713923    movzx ax, dl                              ; 0f b6 c2
    13758     call 016ach                               ; e8 7c 82
     13924    call 01714h                               ; e8 58 82
    1375913925    xor ah, ah                                ; 30 e4
    1376013926    add ax, si                                ; 01 f0
     
    1376313929    add AL, strict byte 002h                  ; 04 02
    1376413930    xor ah, ah                                ; 30 e4
    13765     call 016ach                               ; e8 6c 82
     13931    call 01714h                               ; e8 48 82
    1376613932    xor ah, ah                                ; 30 e4
    1376713933    mov word [bp-02ah], ax                    ; 89 46 d6
    1376813934    mov ax, bx                                ; 89 d8
    13769     call 016ach                               ; e8 62 82
     13935    call 01714h                               ; e8 3e 82
    1377013936    xor ah, ah                                ; 30 e4
    1377113937    mov word [bp-026h], ax                    ; 89 46 da
    13772     jmp short 09461h                          ; eb 10
     13938    jmp short 094edh                          ; eb 10
    1377313939    push dword [bp-016h]                      ; 66 ff 76 ea
    1377413940    push di                                   ; 57
     
    1377613942    mov dx, ss                                ; 8c d2
    1377713943    lea ax, [bp-02ah]                         ; 8d 46 d6
    13778     call 0593eh                               ; e8 dd c4
     13944    call 059a6h                               ; e8 b9 c4
    1377913945    mov bx, 00da0h                            ; bb a0 0d
    1378013946    mov cx, ds                                ; 8c d9
    1378113947    mov ax, strict word 00004h                ; b8 04 00
    13782     call 01931h                               ; e8 c5 84
     13948    call 01999h                               ; e8 a1 84
    1378313949    push dword [bp-016h]                      ; 66 ff 76 ea
    1378413950    push di                                   ; 57
     
    1379913965    push 00cd6h                               ; 68 d6 0c
    1380013966    push strict byte 00004h                   ; 6a 04
    13801     call 01972h                               ; e8 d7 84
     13967    call 019dah                               ; e8 b3 84
    1380213968    add sp, strict byte 0001ch                ; 83 c4 1c
    1380313969    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    1382813994    mov dx, strict word 00075h                ; ba 75 00
    1382913995    mov ax, strict word 00040h                ; b8 40 00
    13830     call 01650h                               ; e8 6a 81
     13996    call 016b8h                               ; e8 46 81
    1383113997    db  0feh, 0c0h
    1383213998    ; inc al                                    ; fe c0
     
    1383414000    mov dx, strict word 00075h                ; ba 75 00
    1383514001    mov ax, strict word 00040h                ; b8 40 00
    13836     call 0165eh                               ; e8 6a 81
    13837     jmp near 09593h                           ; e9 9c 00
     14002    call 016c6h                               ; e8 46 81
     14003    jmp near 0961fh                           ; e9 9c 00
    1383814004    cmp dx, 0eb14h                            ; 81 fa 14 eb
    13839     jne near 09593h                           ; 0f 85 94 00
     14005    jne near 0961fh                           ; 0f 85 94 00
    1384014006    cmp di, 00101h                            ; 81 ff 01 01
    13841     jne near 09593h                           ; 0f 85 8c 00
     14007    jne near 0961fh                           ; 0f 85 8c 00
    1384214008    les bx, [bp-010h]                         ; c4 5e f0
    1384314009    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     
    1385314019    mov ax, word [bp-010h]                    ; 8b 46 f0
    1385414020    mov dx, es                                ; 8c c2
    13855     call 08820h                               ; e8 e5 f2
     14021    call 088ach                               ; e8 e5 f2
    1385614022    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    1385714023    db  00fh, 095h, 0c0h
     
    1389014056    pop bp                                    ; 5d
    1389114057    retn                                      ; c3
    13892 ahci_mem_alloc_:                             ; 0xf95a9 LB 0x43
     14058ahci_mem_alloc_:                             ; 0xf9635 LB 0x43
    1389314059    push bp                                   ; 55
    1389414060    mov bp, sp                                ; 89 e5
     
    1390014066    mov dx, 00413h                            ; ba 13 04
    1390114067    xor ax, ax                                ; 31 c0
    13902     call 0166ch                               ; e8 b3 80
     14068    call 016d4h                               ; e8 8f 80
    1390314069    test ax, ax                               ; 85 c0
    13904     je short 095e2h                           ; 74 25
     14070    je short 0966eh                           ; 74 25
    1390514071    dec ax                                    ; 48
    1390614072    mov bx, ax                                ; 89 c3
     
    1390914075    sal ax, 1                                 ; d1 e0
    1391014076    rcl dx, 1                                 ; d1 d2
    13911     loop 095c5h                               ; e2 fa
     14077    loop 09651h                               ; e2 fa
    1391214078    mov si, ax                                ; 89 c6
    1391314079    mov di, dx                                ; 89 d7
     
    1391514081    shr di, 1                                 ; d1 ef
    1391614082    rcr si, 1                                 ; d1 de
    13917     loop 095d2h                               ; e2 fa
     14083    loop 0965eh                               ; e2 fa
    1391814084    mov dx, 00413h                            ; ba 13 04
    1391914085    xor ax, ax                                ; 31 c0
    13920     call 0167ah                               ; e8 9a 80
     14086    call 016e2h                               ; e8 76 80
    1392114087    mov ax, si                                ; 89 f0
    1392214088    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1392814094    pop bp                                    ; 5d
    1392914095    retn                                      ; c3
    13930 ahci_hba_init_:                              ; 0xf95ec LB 0x166
     14096ahci_hba_init_:                              ; 0xf9678 LB 0x166
    1393114097    push bp                                   ; 55
    1393214098    mov bp, sp                                ; 89 e5
     
    1394014106    mov dx, strict word 0000eh                ; ba 0e 00
    1394114107    mov ax, strict word 00040h                ; b8 40 00
    13942     call 0166ch                               ; e8 6a 80
     14108    call 016d4h                               ; e8 46 80
    1394314109    mov bx, 00122h                            ; bb 22 01
    1394414110    mov di, ax                                ; 89 c7
     
    1395714123    shr eax, 010h                             ; 66 c1 e8 10
    1395814124    xchg dx, ax                               ; 92
    13959     call 095a9h                               ; e8 83 ff
     14125    call 09635h                               ; e8 83 ff
    1396014126    mov word [bp-010h], ax                    ; 89 46 f0
    1396114127    test ax, ax                               ; 85 c0
    13962     je near 09731h                            ; 0f 84 02 01
     14128    je near 097bdh                            ; 0f 84 02 01
    1396314129    mov ax, word [bp-010h]                    ; 8b 46 f0
    1396414130    mov es, di                                ; 8e c7
     
    1401014176    xchg dx, ax                               ; 92
    1401114177    test AL, strict byte 001h                 ; a8 01
    14012     jne short 09685h                          ; 75 de
     14178    jne short 09711h                          ; 75 de
    1401314179    xor ax, ax                                ; 31 c0
    1401414180    xor cx, cx                                ; 31 c9
     
    1402814194    mov bx, strict word 0001fh                ; bb 1f 00
    1402914195    xor cx, cx                                ; 31 c9
    14030     call 0869ch                               ; e8 d1 ef
     14196    call 08728h                               ; e8 d1 ef
    1403114197    db  0feh, 0c0h
    1403214198    ; inc al                                    ; fe c0
    1403314199    mov byte [bp-00eh], al                    ; 88 46 f2
    1403414200    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    14035     jmp short 096f6h                          ; eb 20
     14201    jmp short 09782h                          ; eb 20
    1403614202    xor al, al                                ; 30 c0
    1403714203    test al, al                               ; 84 c0
    14038     je short 096edh                           ; 74 11
     14204    je short 09779h                           ; 74 11
    1403914205    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    1404014206    xor ax, ax                                ; 31 c0
    1404114207    mov dx, word [bp-010h]                    ; 8b 56 f0
    14042     call 090f8h                               ; e8 10 fa
     14208    call 09184h                               ; e8 10 fa
    1404314209    dec byte [bp-00eh]                        ; fe 4e f2
    14044     je short 0972fh                           ; 74 42
     14210    je short 097bbh                           ; 74 42
    1404514211    inc byte [bp-00ch]                        ; fe 46 f4
    1404614212    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    14047     jnc short 0972fh                          ; 73 39
     14213    jnc short 097bbh                          ; 73 39
    1404814214    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    1404914215    mov bx, strict word 00001h                ; bb 01 00
    1405014216    xor di, di                                ; 31 ff
    14051     jcxz 09707h                               ; e3 06
     14217    jcxz 09793h                               ; e3 06
    1405214218    sal bx, 1                                 ; d1 e3
    1405314219    rcl di, 1                                 ; d1 d7
    14054     loop 09701h                               ; e2 fa
     14220    loop 0978dh                               ; e2 fa
    1405514221    mov ax, strict word 0000ch                ; b8 0c 00
    1405614222    xor cx, cx                                ; 31 c9
     
    1406814234    xchg dx, ax                               ; 92
    1406914235    test dx, di                               ; 85 fa
    14070     jne short 0972bh                          ; 75 04
     14236    jne short 097b7h                          ; 75 04
    1407114237    test ax, bx                               ; 85 d8
    14072     je short 096d6h                           ; 74 ab
     14238    je short 09762h                           ; 74 ab
    1407314239    mov AL, strict byte 001h                  ; b0 01
    14074     jmp short 096d8h                          ; eb a9
     14240    jmp short 09764h                          ; eb a9
    1407514241    xor ax, ax                                ; 31 c0
    1407614242    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1408214248    pop bp                                    ; 5d
    1408314249    retn                                      ; c3
    14084     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 021h, 098h, 0ffh, 097h, 005h, 098h, 00bh, 098h, 011h
    14085     db  098h, 017h, 098h, 01dh, 098h, 021h, 098h
    14086 _ahci_init:                                  ; 0xf9752 LB 0xfe
     14250    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0adh, 098h, 08bh, 098h, 091h, 098h, 097h, 098h, 09dh
     14251    db  098h, 0a3h, 098h, 0a9h, 098h, 0adh, 098h
     14252_ahci_init:                                  ; 0xf97de LB 0xfe
    1408714253    push bp                                   ; 55
    1408814254    mov bp, sp                                ; 89 e5
     
    1409214258    mov ax, 00601h                            ; b8 01 06
    1409314259    mov dx, strict word 00001h                ; ba 01 00
    14094     call 09c70h                               ; e8 0d 05
     14260    call 09cfch                               ; e8 0d 05
    1409514261    mov dx, ax                                ; 89 c2
    1409614262    cmp ax, strict word 0ffffh                ; 3d ff ff
    14097     je near 09849h                            ; 0f 84 dd 00
     14263    je near 098d5h                            ; 0f 84 dd 00
    1409814264    xor al, al                                ; 30 c0
    1409914265    shr ax, 008h                              ; c1 e8 08
     
    1410314269    xor ah, ah                                ; 30 e4
    1410414270    mov bx, strict word 00034h                ; bb 34 00
    14105     call 09c9bh                               ; e8 1a 05
     14271    call 09d27h                               ; e8 1a 05
    1410614272    mov cl, al                                ; 88 c1
    1410714273    test cl, cl                               ; 84 c9
    14108     je short 097aah                           ; 74 23
     14274    je short 09836h                           ; 74 23
    1410914275    movzx bx, cl                              ; 0f b6 d9
    1411014276    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1411214278    mov dx, di                                ; 89 fa
    1411314279    mov ax, si                                ; 89 f0
    14114     call 09c9bh                               ; e8 02 05
     14280    call 09d27h                               ; e8 02 05
    1411514281    cmp AL, strict byte 012h                  ; 3c 12
    14116     je short 097aah                           ; 74 0d
     14282    je short 09836h                           ; 74 0d
    1411714283    mov al, cl                                ; 88 c8
    1411814284    db  0feh, 0c0h
     
    1412114287    mov dx, di                                ; 89 fa
    1412214288    mov ax, si                                ; 89 f0
    14123     jmp short 0977eh                          ; eb d4
     14289    jmp short 0980ah                          ; eb d4
    1412414290    test cl, cl                               ; 84 c9
    14125     je near 09849h                            ; 0f 84 99 00
     14291    je near 098d5h                            ; 0f 84 99 00
    1412614292    add cl, 002h                              ; 80 c1 02
    1412714293    movzx bx, cl                              ; 0f b6 d9
     
    1413014296    mov dx, di                                ; 89 fa
    1413114297    mov ax, si                                ; 89 f0
    14132     call 09c9bh                               ; e8 d6 04
     14298    call 09d27h                               ; e8 d6 04
    1413314299    cmp AL, strict byte 010h                  ; 3c 10
    14134     jne near 09849h                           ; 0f 85 7e 00
     14300    jne near 098d5h                           ; 0f 85 7e 00
    1413514301    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1413614302    mov al, cl                                ; 88 c8
     
    1413914305    mov dx, di                                ; 89 fa
    1414014306    mov ax, si                                ; 89 f0
    14141     call 09cbfh                               ; e8 e2 04
     14307    call 09d4bh                               ; e8 e2 04
    1414214308    mov dx, ax                                ; 89 c2
    1414314309    and ax, strict word 0000fh                ; 25 0f 00
    1414414310    sub ax, strict word 00004h                ; 2d 04 00
    1414514311    cmp ax, strict word 0000bh                ; 3d 0b 00
    14146     jnbe short 09821h                         ; 77 37
     14312    jnbe short 098adh                         ; 77 37
    1414714313    push CS                                   ; 0e
    1414814314    pop ES                                    ; 07
    1414914315    mov cx, strict word 00008h                ; b9 08 00
    14150     mov di, 0973bh                            ; bf 3b 97
     14316    mov di, 097c7h                            ; bf c7 97
    1415114317    repne scasb                               ; f2 ae
    1415214318    sal cx, 1                                 ; d1 e1
    1415314319    mov di, cx                                ; 89 cf
    14154     mov ax, word [cs:di-068beh]               ; 2e 8b 85 42 97
     14320    mov ax, word [cs:di-06832h]               ; 2e 8b 85 ce 97
    1415514321    jmp ax                                    ; ff e0
    1415614322    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    14157     jmp short 09821h                          ; eb 1c
     14323    jmp short 098adh                          ; eb 1c
    1415814324    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    14159     jmp short 09821h                          ; eb 16
     14325    jmp short 098adh                          ; eb 16
    1416014326    mov byte [bp-006h], 018h                  ; c6 46 fa 18
    14161     jmp short 09821h                          ; eb 10
     14327    jmp short 098adh                          ; eb 10
    1416214328    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
    14163     jmp short 09821h                          ; eb 0a
     14329    jmp short 098adh                          ; eb 0a
    1416414330    mov byte [bp-006h], 020h                  ; c6 46 fa 20
    14165     jmp short 09821h                          ; eb 04
     14331    jmp short 098adh                          ; eb 04
    1416614332    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1416714333    mov si, dx                                ; 89 d6
     
    1417014336    mov al, byte [bp-006h]                    ; 8a 46 fa
    1417114337    test al, al                               ; 84 c0
    14172     je short 09849h                           ; 74 19
     14338    je short 098d5h                           ; 74 19
    1417314339    movzx bx, al                              ; 0f b6 d8
    1417414340    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    1417514341    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    14176     call 09ce1h                               ; e8 a3 04
     14342    call 09d6dh                               ; e8 a3 04
    1417714343    test AL, strict byte 001h                 ; a8 01
    14178     je short 09849h                           ; 74 07
     14344    je short 098d5h                           ; 74 07
    1417914345    and AL, strict byte 0f0h                  ; 24 f0
    1418014346    add ax, si                                ; 01 f0
    14181     call 095ech                               ; e8 a3 fd
     14347    call 09678h                               ; e8 a3 fd
    1418214348    lea sp, [bp-004h]                         ; 8d 66 fc
    1418314349    pop di                                    ; 5f
     
    1418514351    pop bp                                    ; 5d
    1418614352    retn                                      ; c3
    14187 apm_out_str_:                                ; 0xf9850 LB 0x39
     14353apm_out_str_:                                ; 0xf98dc LB 0x39
    1418814354    push bp                                   ; 55
    1418914355    mov bp, sp                                ; 89 e5
     
    1419114357    mov bx, ax                                ; 89 c3
    1419214358    cmp byte [bx], 000h                       ; 80 3f 00
    14193     je short 09865h                           ; 74 0a
     14359    je short 098f1h                           ; 74 0a
    1419414360    mov al, byte [bx]                         ; 8a 07
    1419514361    out DX, AL                                ; ee
     
    1419814364    db  00ah, 0c0h
    1419914365    ; or al, al                                 ; 0a c0
    14200     jne short 0985dh                          ; 75 f8
     14366    jne short 098e9h                          ; 75 f8
    1420114367    lea sp, [bp-002h]                         ; 8d 66 fe
    1420214368    pop bx                                    ; 5b
    1420314369    pop bp                                    ; 5d
    1420414370    retn                                      ; c3
    14205     lodsb                                     ; ac
    14206     cbw                                       ; 98
    14207     js short 09808h                           ; 78 99
    14208     mov si, 0d998h                            ; be 98 d9
    14209     cbw                                       ; 98
    14210     js short 0980eh                           ; 78 99
    14211     add AL, strict byte 099h                  ; 04 99
    14212     js short 09812h                           ; 78 99
    14213     or word [bx+di-066b3h], bx                ; 09 99 4d 99
    14214     dec bp                                    ; 4d
     14371    cmp byte [bx+di-065fch], bl               ; 38 99 04 9a
     14372    dec dx                                    ; 4a
    1421514373    cwd                                       ; 99
    14216     dec bp                                    ; 4d
     14374    db  065h, 099h
     14375    ; gs cwd                                    ; 65 99
     14376    add AL, strict byte 09ah                  ; 04 9a
     14377    nop                                       ; 90
    1421714378    cwd                                       ; 99
    14218     dec ax                                    ; 48
     14379    add AL, strict byte 09ah                  ; 04 9a
     14380    xchg bp, ax                               ; 95
    1421914381    cwd                                       ; 99
    14220     dec bp                                    ; 4d
    14221     cwd                                       ; 99
    14222     dec bp                                    ; 4d
    14223     cwd                                       ; 99
    14224     inc cx                                    ; 41
    14225     cwd                                       ; 99
    14226 _apm_function:                               ; 0xf9889 LB 0xf5
     14382    fstp dword [bx+di-06627h]                 ; d9 99 d9 99
     14383    fstp dword [bx+di-0662ch]                 ; d9 99 d4 99
     14384    fstp dword [bx+di-06627h]                 ; d9 99 d9 99
     14385    int 099h                                  ; cd 99
     14386_apm_function:                               ; 0xf9915 LB 0xf5
    1422714387    push bp                                   ; 55
    1422814388    mov bp, sp                                ; 89 e5
     
    1423214392    xor ah, ah                                ; 30 e4
    1423314393    cmp ax, strict word 0000eh                ; 3d 0e 00
    14234     jnbe near 0994dh                          ; 0f 87 b0 00
     14394    jnbe near 099d9h                          ; 0f 87 b0 00
    1423514395    mov bx, ax                                ; 89 c3
    1423614396    add bx, ax                                ; 01 c3
    1423714397    mov dx, word [bp+018h]                    ; 8b 56 18
    1423814398    or dl, 001h                               ; 80 ca 01
    14239     jmp word [cs:bx-06795h]                   ; 2e ff a7 6b 98
     14399    jmp word [cs:bx-06709h]                   ; 2e ff a7 f7 98
    1424014400    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1424114401    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1424214402    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    14243     jmp near 09978h                           ; e9 ba 00
     14403    jmp near 09a04h                           ; e9 ba 00
    1424414404    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    14245     mov word [bp+00ch], 09ef4h                ; c7 46 0c f4 9e
     14405    mov word [bp+00ch], 09fa4h                ; c7 46 0c a4 9f
    1424614406    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1424714407    mov ax, strict word 0fff0h                ; b8 f0 ff
    1424814408    mov word [bp+006h], ax                    ; 89 46 06
    1424914409    mov word [bp+004h], ax                    ; 89 46 04
    14250     jmp near 09978h                           ; e9 9f 00
     14410    jmp near 09a04h                           ; e9 9f 00
    1425114411    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1425214412    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1426114421    mov si, ax                                ; 89 c6
    1426214422    sal esi, 010h                             ; 66 c1 e6 10
    14263     jmp near 09978h                           ; e9 74 00
     14423    jmp near 09a04h                           ; e9 74 00
    1426414424    sti                                       ; fb
    1426514425    hlt                                       ; f4
    14266     jmp near 09978h                           ; e9 6f 00
     14426    jmp near 09a04h                           ; e9 6f 00
    1426714427    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    14268     je short 0992eh                           ; 74 1f
     14428    je short 099bah                           ; 74 1f
    1426914429    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    14270     je short 09926h                           ; 74 11
     14430    je short 099b2h                           ; 74 11
    1427114431    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    14272     jne short 09936h                          ; 75 1b
     14432    jne short 099c2h                          ; 75 1b
    1427314433    mov dx, 08900h                            ; ba 00 89
    1427414434    mov ax, 00d10h                            ; b8 10 0d
    14275     call 09850h                               ; e8 2c ff
    14276     jmp short 09978h                          ; eb 52
     14435    call 098dch                               ; e8 2c ff
     14436    jmp short 09a04h                          ; eb 52
    1427714437    mov dx, 08900h                            ; ba 00 89
    1427814438    mov ax, 00d18h                            ; b8 18 0d
    14279     jmp short 09921h                          ; eb f3
     14439    jmp short 099adh                          ; eb f3
    1428014440    mov dx, 08900h                            ; ba 00 89
    1428114441    mov ax, 00d20h                            ; b8 20 0d
    14282     jmp short 09921h                          ; eb eb
     14442    jmp short 099adh                          ; eb eb
    1428314443    or ah, 00ah                               ; 80 cc 0a
    1428414444    mov word [bp+012h], ax                    ; 89 46 12
    1428514445    mov word [bp+018h], dx                    ; 89 56 18
    14286     jmp short 09978h                          ; eb 37
     14446    jmp short 09a04h                          ; eb 37
    1428714447    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    14288     jmp short 09978h                          ; eb 30
     14448    jmp short 09a04h                          ; eb 30
    1428914449    or ah, 080h                               ; 80 cc 80
    14290     jmp short 09939h                          ; eb ec
     14450    jmp short 099c5h                          ; eb ec
    1429114451    mov bx, 00da0h                            ; bb a0 0d
    1429214452    mov cx, ds                                ; 8c d9
    1429314453    mov ax, strict word 00004h                ; b8 04 00
    14294     call 01931h                               ; e8 d9 7f
     14454    call 01999h                               ; e8 b5 7f
    1429514455    push word [bp+00ch]                       ; ff 76 0c
    1429614456    push word [bp+012h]                       ; ff 76 12
    1429714457    push 00d29h                               ; 68 29 0d
    1429814458    push strict byte 00004h                   ; 6a 04
    14299     call 01972h                               ; e8 0c 80
     14459    call 019dah                               ; e8 e8 7f
    1430014460    add sp, strict byte 00008h                ; 83 c4 08
    1430114461    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1430814468    pop bp                                    ; 5d
    1430914469    retn                                      ; c3
    14310 pci16_select_reg_:                           ; 0xf997e LB 0x24
     14470pci16_select_reg_:                           ; 0xf9a0a LB 0x24
    1431114471    push bp                                   ; 55
    1431214472    mov bp, sp                                ; 89 e5
     
    1432514485    pop bp                                    ; 5d
    1432614486    retn                                      ; c3
    14327 pci16_find_device_:                          ; 0xf99a2 LB 0xf7
     14487pci16_find_device_:                          ; 0xf9a2e LB 0xf7
    1432814488    push bp                                   ; 55
    1432914489    mov bp, sp                                ; 89 e5
     
    1433914499    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1434014500    test bl, 007h                             ; f6 c3 07
    14341     jne short 099eah                          ; 75 2d
     14501    jne short 09a76h                          ; 75 2d
    1434214502    mov dx, strict word 0000eh                ; ba 0e 00
    1434314503    mov ax, bx                                ; 89 d8
    14344     call 0997eh                               ; e8 b9 ff
     14504    call 09a0ah                               ; e8 b9 ff
    1434514505    mov dx, 00cfeh                            ; ba fe 0c
    1434614506    in AL, DX                                 ; ec
     
    1434914509    mov byte [bp-006h], al                    ; 88 46 fa
    1435014510    cmp AL, strict byte 0ffh                  ; 3c ff
    14351     jne short 099d8h                          ; 75 06
     14511    jne short 09a64h                          ; 75 06
    1435214512    add bx, strict byte 00008h                ; 83 c3 08
    14353     jmp near 09a6bh                           ; e9 93 00
     14513    jmp near 09af7h                           ; e9 93 00
    1435414514    test byte [bp-006h], 080h                 ; f6 46 fa 80
    14355     je short 099e5h                           ; 74 07
     14515    je short 09a71h                           ; 74 07
    1435614516    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    14357     jmp short 099eah                          ; eb 05
     14517    jmp short 09a76h                          ; eb 05
    1435814518    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
    1435914519    mov al, byte [bp-006h]                    ; 8a 46 fa
    1436014520    and AL, strict byte 007h                  ; 24 07
    1436114521    cmp AL, strict byte 001h                  ; 3c 01
    14362     jne short 09a12h                          ; 75 1f
     14522    jne short 09a9eh                          ; 75 1f
    1436314523    mov ax, bx                                ; 89 d8
    1436414524    shr ax, 008h                              ; c1 e8 08
    1436514525    test ax, ax                               ; 85 c0
    14366     jne short 09a12h                          ; 75 16
     14526    jne short 09a9eh                          ; 75 16
    1436714527    mov dx, strict word 0001ah                ; ba 1a 00
    1436814528    mov ax, bx                                ; 89 d8
    14369     call 0997eh                               ; e8 7a ff
     14529    call 09a0ah                               ; e8 7a ff
    1437014530    mov dx, 00cfeh                            ; ba fe 0c
    1437114531    in AL, DX                                 ; ec
     
    1437314533    ; sub ah, ah                                ; 2a e4
    1437414534    cmp al, byte [bp-008h]                    ; 3a 46 f8
    14375     jbe short 09a12h                          ; 76 03
     14535    jbe short 09a9eh                          ; 76 03
    1437614536    mov byte [bp-008h], al                    ; 88 46 f8
    1437714537    test di, di                               ; 85 ff
    14378     je short 09a1bh                           ; 74 05
     14538    je short 09aa7h                           ; 74 05
    1437914539    mov dx, strict word 00008h                ; ba 08 00
    14380     jmp short 09a1dh                          ; eb 02
     14540    jmp short 09aa9h                          ; eb 02
    1438114541    xor dx, dx                                ; 31 d2
    1438214542    mov ax, bx                                ; 89 d8
    14383     call 0997eh                               ; e8 5c ff
     14543    call 09a0ah                               ; e8 5c ff
    1438414544    mov dx, 00cfch                            ; ba fc 0c
    1438514545    in eax, DX                                ; 66 ed
     
    1439214552    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    1439314553    test di, di                               ; 85 ff
    14394     je short 09a4ch                           ; 74 0f
     14554    je short 09ad8h                           ; 74 0f
    1439514555    mov cx, strict word 00008h                ; b9 08 00
    1439614556    shr dx, 1                                 ; d1 ea
    1439714557    rcr ax, 1                                 ; d1 d8
    14398     loop 09a40h                               ; e2 fa
     14558    loop 09acch                               ; e2 fa
    1439914559    mov word [bp-00eh], ax                    ; 89 46 f2
    1440014560    mov word [bp-00ch], dx                    ; 89 56 f4
    1440114561    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1440214562    cmp ax, word [bp-014h]                    ; 3b 46 ec
    14403     jne short 09a5ch                          ; 75 08
     14563    jne short 09ae8h                          ; 75 08
    1440414564    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1440514565    cmp ax, word [bp-012h]                    ; 3b 46 ee
    14406     je short 09a62h                           ; 74 06
     14566    je short 09aeeh                           ; 74 06
    1440714567    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    14408     je short 09a68h                           ; 74 06
     14568    je short 09af4h                           ; 74 06
    1440914569    dec si                                    ; 4e
    1441014570    cmp si, strict byte 0ffffh                ; 83 fe ff
    14411     je short 09a7ah                           ; 74 12
     14571    je short 09b06h                           ; 74 12
    1441214572    add bx, word [bp-00ah]                    ; 03 5e f6
    1441314573    mov dx, bx                                ; 89 da
     
    1441514575    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1441614576    cmp dx, ax                                ; 39 c2
    14417     jbe near 099b8h                           ; 0f 86 3e ff
     14577    jbe near 09a44h                           ; 0f 86 3e ff
    1441814578    cmp si, strict byte 0ffffh                ; 83 fe ff
    14419     jne short 09a83h                          ; 75 04
     14579    jne short 09b0fh                          ; 75 04
    1442014580    mov ax, bx                                ; 89 d8
    14421     jmp short 09a86h                          ; eb 03
     14581    jmp short 09b12h                          ; eb 03
    1442214582    mov ax, strict word 0ffffh                ; b8 ff ff
    1442314583    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1442614586    pop bp                                    ; 5d
    1442714587    retn                                      ; c3
    14428     jnp short 09a2ah                          ; 7b 9b
    14429     xchg bp, ax                               ; 95
    14430     wait                                      ; 9b
    14431     test AL, strict byte 09bh                 ; a8 9b
    14432     mov bp, 0d09bh                            ; bd 9b d0
    14433     wait                                      ; 9b
    14434     jcxz 09a34h                               ; e3 9b
    14435 _pci16_function:                             ; 0xf9a99 LB 0x1d7
     14588    pop ES                                    ; 07
     14589    pushfw                                    ; 9c
     14590    and word [si-063cch], bx                  ; 21 9c 34 9c
     14591    dec cx                                    ; 49
     14592    pushfw                                    ; 9c
     14593    pop sp                                    ; 5c
     14594    pushfw                                    ; 9c
     14595    outsw                                     ; 6f
     14596    pushfw                                    ; 9c
     14597_pci16_function:                             ; 0xf9b25 LB 0x1d7
    1443614598    push bp                                   ; 55
    1443714599    mov bp, sp                                ; 89 e5
     
    1444714609    xor ah, ah                                ; 30 e4
    1444814610    cmp bx, strict byte 00003h                ; 83 fb 03
    14449     jc short 09ad2h                           ; 72 1a
    14450     jbe short 09b2ah                          ; 76 70
     14611    jc short 09b5eh                           ; 72 1a
     14612    jbe short 09bb6h                          ; 76 70
    1445114613    cmp bx, strict byte 0000eh                ; 83 fb 0e
    14452     je near 09bf7h                            ; 0f 84 36 01
     14614    je near 09c83h                            ; 0f 84 36 01
    1445314615    cmp bx, strict byte 00008h                ; 83 fb 08
    14454     jc near 09c3ch                            ; 0f 82 74 01
     14616    jc near 09cc8h                            ; 0f 82 74 01
    1445514617    cmp bx, strict byte 0000dh                ; 83 fb 0d
    14456     jbe near 09b4fh                           ; 0f 86 80 00
    14457     jmp near 09c3ch                           ; e9 6a 01
     14618    jbe near 09bdbh                           ; 0f 86 80 00
     14619    jmp near 09cc8h                           ; e9 6a 01
    1445814620    cmp bx, strict byte 00002h                ; 83 fb 02
    14459     je short 09afah                           ; 74 23
     14621    je short 09b86h                           ; 74 23
    1446014622    cmp bx, strict byte 00001h                ; 83 fb 01
    14461     jne near 09c3ch                           ; 0f 85 5e 01
     14623    jne near 09cc8h                           ; 0f 85 5e 01
    1446214624    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1446314625    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1446514627    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1446614628    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    14467     jmp near 09c69h                           ; e9 6f 01
     14629    jmp near 09cf5h                           ; e9 6f 01
    1446814630    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    14469     jne short 09b06h                          ; 75 06
     14631    jne short 09b92h                          ; 75 06
    1447014632    or ah, 083h                               ; 80 cc 83
    14471     jmp near 09c62h                           ; e9 5c 01
     14633    jmp near 09ceeh                           ; e9 5c 01
    1447214634    mov bx, word [bp+008h]                    ; 8b 5e 08
    1447314635    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1447414636    mov ax, word [bp+018h]                    ; 8b 46 18
    1447514637    xor cx, cx                                ; 31 c9
    14476     call 099a2h                               ; e8 8e fe
     14638    call 09a2eh                               ; e8 8e fe
    1447714639    cmp ax, strict word 0ffffh                ; 3d ff ff
    14478     jne short 09b24h                          ; 75 0b
     14640    jne short 09bb0h                          ; 75 0b
    1447914641    mov ax, word [bp+020h]                    ; 8b 46 20
    1448014642    xor ah, ah                                ; 30 e4
    1448114643    or ah, 086h                               ; 80 cc 86
    14482     jmp near 09c62h                           ; e9 3e 01
     14644    jmp near 09ceeh                           ; e9 3e 01
    1448314645    mov word [bp+014h], ax                    ; 89 46 14
    14484     jmp near 09c69h                           ; e9 3f 01
     14646    jmp near 09cf5h                           ; e9 3f 01
    1448514647    mov bx, word [bp+008h]                    ; 8b 5e 08
    1448614648    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1448714649    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1448814650    mov cx, strict word 00001h                ; b9 01 00
    14489     call 099a2h                               ; e8 69 fe
     14651    call 09a2eh                               ; e8 69 fe
    1449014652    cmp ax, strict word 0ffffh                ; 3d ff ff
    14491     jne short 09b49h                          ; 75 0b
     14653    jne short 09bd5h                          ; 75 0b
    1449214654    mov ax, word [bp+020h]                    ; 8b 46 20
    1449314655    xor ah, ah                                ; 30 e4
    1449414656    or ah, 086h                               ; 80 cc 86
    14495     jmp near 09c62h                           ; e9 19 01
     14657    jmp near 09ceeh                           ; e9 19 01
    1449614658    mov word [bp+014h], ax                    ; 89 46 14
    14497     jmp near 09c69h                           ; e9 1a 01
     14659    jmp near 09cf5h                           ; e9 1a 01
    1449814660    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    14499     jc short 09b5ch                           ; 72 06
     14661    jc short 09be8h                           ; 72 06
    1450014662    or ah, 087h                               ; 80 cc 87
    14501     jmp near 09c62h                           ; e9 06 01
     14663    jmp near 09ceeh                           ; e9 06 01
    1450214664    mov dx, word [bp+004h]                    ; 8b 56 04
    1450314665    mov ax, word [bp+014h]                    ; 8b 46 14
    14504     call 0997eh                               ; e8 19 fe
     14666    call 09a0ah                               ; e8 19 fe
    1450514667    mov bx, word [bp+020h]                    ; 8b 5e 20
    1450614668    xor bh, bh                                ; 30 ff
    1450714669    sub bx, strict byte 00008h                ; 83 eb 08
    1450814670    cmp bx, strict byte 00005h                ; 83 fb 05
    14509     jnbe near 09c69h                          ; 0f 87 f5 00
     14671    jnbe near 09cf5h                          ; 0f 87 f5 00
    1451014672    add bx, bx                                ; 01 db
    14511     jmp word [cs:bx-06573h]                   ; 2e ff a7 8d 9a
     14673    jmp word [cs:bx-064e7h]                   ; 2e ff a7 19 9b
    1451214674    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1451314675    xor bl, bl                                ; 30 db
     
    1452014682    or bx, ax                                 ; 09 c3
    1452114683    mov word [bp+01ch], bx                    ; 89 5e 1c
    14522     jmp near 09c69h                           ; e9 d4 00
     14684    jmp near 09cf5h                           ; e9 d4 00
    1452314685    mov dx, word [bp+004h]                    ; 8b 56 04
    1452414686    xor dh, dh                                ; 30 f6
     
    1452714689    in ax, DX                                 ; ed
    1452814690    mov word [bp+01ch], ax                    ; 89 46 1c
    14529     jmp near 09c69h                           ; e9 c1 00
     14691    jmp near 09cf5h                           ; e9 c1 00
    1453014692    mov dx, 00cfch                            ; ba fc 0c
    1453114693    in eax, DX                                ; 66 ed
     
    1453614698    mov word [bp+01ch], ax                    ; 89 46 1c
    1453714699    mov word [bp+01eh], dx                    ; 89 56 1e
    14538     jmp near 09c69h                           ; e9 ac 00
     14700    jmp near 09cf5h                           ; e9 ac 00
    1453914701    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1454014702    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1454314705    add dx, 00cfch                            ; 81 c2 fc 0c
    1454414706    out DX, AL                                ; ee
    14545     jmp near 09c69h                           ; e9 99 00
     14707    jmp near 09cf5h                           ; e9 99 00
    1454614708    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1454714709    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1455014712    add dx, 00cfch                            ; 81 c2 fc 0c
    1455114713    out DX, ax                                ; ef
    14552     jmp near 09c69h                           ; e9 86 00
     14714    jmp near 09cf5h                           ; e9 86 00
    1455314715    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1455414716    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1455914721    ; mov ax, cx                                ; 8b c1
    1456014722    out DX, eax                               ; 66 ef
    14561     jmp short 09c69h                          ; eb 72
     14723    jmp short 09cf5h                          ; eb 72
    1456214724    mov bx, word [bp+004h]                    ; 8b 5e 04
    1456314725    mov es, [bp+026h]                         ; 8e 46 26
     
    1456614728    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1456714729    cmp cx, word [es:bx]                      ; 26 3b 0f
    14568     jbe short 09c1dh                          ; 76 11
     14730    jbe short 09ca9h                          ; 76 11
    1456914731    mov ax, word [bp+020h]                    ; 8b 46 20
    1457014732    xor ah, ah                                ; 30 e4
     
    1457214734    mov word [bp+020h], ax                    ; 89 46 20
    1457314735    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    14574     jmp short 09c31h                          ; eb 14
     14736    jmp short 09cbdh                          ; eb 14
    1457514737    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1457614738    mov si, 0f2c0h                            ; be c0 f2
     
    1458414746    les bx, [bp-008h]                         ; c4 5e f8
    1458514747    mov word [es:bx], ax                      ; 26 89 07
    14586     jmp short 09c69h                          ; eb 2d
     14748    jmp short 09cf5h                          ; eb 2d
    1458714749    mov bx, 00da0h                            ; bb a0 0d
    1458814750    mov cx, ds                                ; 8c d9
    1458914751    mov ax, strict word 00004h                ; b8 04 00
    14590     call 01931h                               ; e8 ea 7c
     14752    call 01999h                               ; e8 c6 7c
    1459114753    mov ax, word [bp+014h]                    ; 8b 46 14
    1459214754    push ax                                   ; 50
     
    1459514757    push 00d5ch                               ; 68 5c 0d
    1459614758    push strict byte 00004h                   ; 6a 04
    14597     call 01972h                               ; e8 1b 7d
     14759    call 019dah                               ; e8 f7 7c
    1459814760    add sp, strict byte 00008h                ; 83 c4 08
    1459914761    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1460714769    pop bp                                    ; 5d
    1460814770    retn                                      ; c3
    14609 pci_find_classcode_:                         ; 0xf9c70 LB 0x2b
     14771pci_find_classcode_:                         ; 0xf9cfc LB 0x2b
    1461014772    push bp                                   ; 55
    1461114773    mov bp, sp                                ; 89 e5
     
    1462214784    int 01ah                                  ; cd 1a
    1462314785    cmp ah, 000h                              ; 80 fc 00
    14624     je near 09c91h                            ; 0f 84 03 00
     14786    je near 09d1dh                            ; 0f 84 03 00
    1462514787    mov bx, strict word 0ffffh                ; bb ff ff
    1462614788    mov ax, bx                                ; 89 d8
     
    1463114793    pop bp                                    ; 5d
    1463214794    retn                                      ; c3
    14633 pci_read_config_byte_:                       ; 0xf9c9b LB 0x24
     14795pci_read_config_byte_:                       ; 0xf9d27 LB 0x24
    1463414796    push bp                                   ; 55
    1463514797    mov bp, sp                                ; 89 e5
     
    1465014812    pop bp                                    ; 5d
    1465114813    retn                                      ; c3
    14652 pci_read_config_word_:                       ; 0xf9cbf LB 0x22
     14814pci_read_config_word_:                       ; 0xf9d4b LB 0x22
    1465314815    push bp                                   ; 55
    1465414816    mov bp, sp                                ; 89 e5
     
    1466914831    pop bp                                    ; 5d
    1467014832    retn                                      ; c3
    14671 pci_read_config_dword_:                      ; 0xf9ce1 LB 0x27
     14833pci_read_config_dword_:                      ; 0xf9d6d LB 0x27
    1467214834    push bp                                   ; 55
    1467314835    mov bp, sp                                ; 89 e5
     
    1469014852    pop bp                                    ; 5d
    1469114853    retn                                      ; c3
    14692 vds_is_present_:                             ; 0xf9d08 LB 0x1d
     14854vds_is_present_:                             ; 0xf9d94 LB 0x1d
    1469314855    push bx                                   ; 53
    1469414856    push bp                                   ; 55
     
    1469814860    mov es, ax                                ; 8e c0
    1469914861    test byte [es:bx], 020h                   ; 26 f6 07 20
    14700     je short 09d20h                           ; 74 06
     14862    je short 09dach                           ; 74 06
    1470114863    mov ax, strict word 00001h                ; b8 01 00
    1470214864    pop bp                                    ; 5d
     
    1470714869    pop bx                                    ; 5b
    1470814870    retn                                      ; c3
    14709 vds_real_to_lin_:                            ; 0xf9d25 LB 0x1e
     14871vds_real_to_lin_:                            ; 0xf9db1 LB 0x1e
    1471014872    push bx                                   ; 53
    1471114873    push cx                                   ; 51
     
    1471814880    sal ax, 1                                 ; d1 e0
    1471914881    rcl dx, 1                                 ; d1 d2
    14720     loop 09d33h                               ; e2 fa
     14882    loop 09dbfh                               ; e2 fa
    1472114883    xor cx, cx                                ; 31 c9
    1472214884    add ax, bx                                ; 01 d8
     
    1472614888    pop bx                                    ; 5b
    1472714889    retn                                      ; c3
    14728 vds_build_sg_list_:                          ; 0xf9d43 LB 0x79
     14890vds_build_sg_list_:                          ; 0xf9dcf LB 0x79
    1472914891    push bp                                   ; 55
    1473014892    mov bp, sp                                ; 89 e5
     
    1474014902    mov bx, word [bp+006h]                    ; 8b 5e 06
    1474114903    mov word [es:di+002h], bx                 ; 26 89 5d 02
    14742     call 09d25h                               ; e8 c3 ff
     14904    call 09db1h                               ; e8 c3 ff
    1474314905    mov es, si                                ; 8e c6
    1474414906    mov word [es:di+004h], ax                 ; 26 89 45 04
    1474514907    mov word [es:di+006h], dx                 ; 26 89 55 06
    1474614908    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    14747     call 09d08h                               ; e8 93 ff
     14909    call 09d94h                               ; e8 93 ff
    1474814910    test ax, ax                               ; 85 c0
    14749     je short 09d8ch                           ; 74 13
     14911    je short 09e18h                           ; 74 13
    1475014912    mov es, si                                ; 8e c6
    1475114913    mov ax, 08105h                            ; b8 05 81
    1475214914    mov dx, strict word 00000h                ; ba 00 00
    1475314915    int 04bh                                  ; cd 4b
    14754     jc near 09d89h                            ; 0f 82 02 00
     14916    jc near 09e15h                            ; 0f 82 02 00
    1475514917    db  032h, 0c0h
    1475614918    ; xor al, al                                ; 32 c0
    1475714919    cbw                                       ; 98
    14758     jmp short 09db3h                          ; eb 27
     14920    jmp short 09e3fh                          ; eb 27
    1475914921    mov es, si                                ; 8e c6
    1476014922    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1477314935    pop bp                                    ; 5d
    1477414936    retn 00004h                               ; c2 04 00
    14775 vds_free_sg_list_:                           ; 0xf9dbc LB 0x34
     14937vds_free_sg_list_:                           ; 0xf9e48 LB 0x38
    1477614938    push bp                                   ; 55
    1477714939    mov bp, sp                                ; 89 e5
     
    1477914941    push di                                   ; 57
    1478014942    mov bx, ax                                ; 89 c3
    14781     call 09d08h                               ; e8 42 ff
     14943    call 09d94h                               ; e8 42 ff
    1478214944    test ax, ax                               ; 85 c0
    14783     je short 09dddh                           ; 74 13
     14945    je short 09e69h                           ; 74 13
    1478414946    mov di, bx                                ; 89 df
    1478514947    mov es, dx                                ; 8e c2
     
    1478714949    mov dx, strict word 00000h                ; ba 00 00
    1478814950    int 04bh                                  ; cd 4b
    14789     jc near 09ddch                            ; 0f 82 02 00
     14951    jc near 09e68h                            ; 0f 82 02 00
    1479014952    db  032h, 0c0h
    1479114953    ; xor al, al                                ; 32 c0
     
    1479814960    pop bp                                    ; 5d
    1479914961    retn                                      ; c3
    14800     times 0x4 db 0
    14801 __U4D:                                       ; 0xf9df0 LB 0x39
     14962    times 0x8 db 0
     14963__U4M:                                       ; 0xf9e80 LB 0x40
     14964    pushfw                                    ; 9c
     14965    push eax                                  ; 66 50
     14966    push edx                                  ; 66 52
     14967    push ecx                                  ; 66 51
     14968    rol eax, 010h                             ; 66 c1 c0 10
     14969    db  08bh, 0c2h
     14970    ; mov ax, dx                                ; 8b c2
     14971    ror eax, 010h                             ; 66 c1 c8 10
     14972    db  066h, 033h, 0d2h
     14973    ; xor edx, edx                              ; 66 33 d2
     14974    shr ecx, 010h                             ; 66 c1 e9 10
     14975    db  08bh, 0cbh
     14976    ; mov cx, bx                                ; 8b cb
     14977    mul ecx                                   ; 66 f7 e1
     14978    pop ecx                                   ; 66 59
     14979    pop edx                                   ; 66 5a
     14980    ror eax, 010h                             ; 66 c1 c8 10
     14981    db  08bh, 0d0h
     14982    ; mov dx, ax                                ; 8b d0
     14983    add sp, strict byte 00002h                ; 83 c4 02
     14984    pop ax                                    ; 58
     14985    rol eax, 010h                             ; 66 c1 c0 10
     14986    popfw                                     ; 9d
     14987    retn                                      ; c3
     14988    times 0xf db 0
     14989__U4D:                                       ; 0xf9ec0 LB 0x40
    1480214990    pushfw                                    ; 9c
    1480314991    push eax                                  ; 66 50
     
    1482915017    popfw                                     ; 9d
    1483015018    retn                                      ; c3
    14831 __U4M:                                       ; 0xf9e29 LB 0x31
    14832     pushfw                                    ; 9c
    14833     push eax                                  ; 66 50
    14834     push edx                                  ; 66 52
    14835     push ecx                                  ; 66 51
    14836     rol eax, 010h                             ; 66 c1 c0 10
    14837     db  08bh, 0c2h
    14838     ; mov ax, dx                                ; 8b c2
    14839     ror eax, 010h                             ; 66 c1 c8 10
    14840     db  066h, 033h, 0d2h
    14841     ; xor edx, edx                              ; 66 33 d2
    14842     shr ecx, 010h                             ; 66 c1 e9 10
    14843     db  08bh, 0cbh
    14844     ; mov cx, bx                                ; 8b cb
    14845     mul ecx                                   ; 66 f7 e1
    14846     pop ecx                                   ; 66 59
    14847     pop edx                                   ; 66 5a
    14848     ror eax, 010h                             ; 66 c1 c8 10
    14849     db  08bh, 0d0h
    14850     ; mov dx, ax                                ; 8b d0
    14851     add sp, strict byte 00002h                ; 83 c4 02
    14852     pop ax                                    ; 58
    14853     rol eax, 010h                             ; 66 c1 c0 10
    14854     popfw                                     ; 9d
     15019    times 0x7 db 0
     15020__U8RS:                                      ; 0xf9f00 LB 0x10
     15021    test si, si                               ; 85 f6
     15022    je short 09f0fh                           ; 74 0b
     15023    shr ax, 1                                 ; d1 e8
     15024    rcr bx, 1                                 ; d1 db
     15025    rcr cx, 1                                 ; d1 d9
     15026    rcr dx, 1                                 ; d1 da
     15027    dec si                                    ; 4e
     15028    jne short 09f04h                          ; 75 f5
    1485515029    retn                                      ; c3
    14856 __U8LS:                                      ; 0xf9e5a LB 0x10
     15030__U8LS:                                      ; 0xf9f10 LB 0x10
    1485715031    test si, si                               ; 85 f6
    14858     je short 09e69h                           ; 74 0b
     15032    je short 09f1fh                           ; 74 0b
    1485915033    sal dx, 1                                 ; d1 e2
    1486015034    rcl cx, 1                                 ; d1 d1
     
    1486215036    rcl ax, 1                                 ; d1 d0
    1486315037    dec si                                    ; 4e
    14864     jne short 09e5eh                          ; 75 f5
     15038    jne short 09f14h                          ; 75 f5
    1486515039    retn                                      ; c3
    14866 __U8RS:                                      ; 0xf9e6a LB 0x10
    14867     test si, si                               ; 85 f6
    14868     je short 09e79h                           ; 74 0b
    14869     shr ax, 1                                 ; d1 e8
    14870     rcr bx, 1                                 ; d1 db
    14871     rcr cx, 1                                 ; d1 d9
    14872     rcr dx, 1                                 ; d1 da
    14873     dec si                                    ; 4e
    14874     jne short 09e6eh                          ; 75 f5
    14875     retn                                      ; c3
    14876 _fmemset_:                                   ; 0xf9e7a LB 0xd
     15040_fmemset_:                                   ; 0xf9f20 LB 0x10
    1487715041    push di                                   ; 57
    1487815042    mov es, dx                                ; 8e c2
     
    1488415048    pop di                                    ; 5f
    1488515049    retn                                      ; c3
    14886 _fmemcpy_:                                   ; 0xf9e87 LB 0x33
     15050    times 0x3 db 0
     15051_fmemcpy_:                                   ; 0xf9f30 LB 0x3a
    1488715052    push bp                                   ; 55
    1488815053    db  08bh, 0ech
     
    1490215067    pop DS                                    ; 1f
    1490315068    pop di                                    ; 5f
    14904     leave                                     ; c9
     15069    db  08bh, 0e5h
     15070    ; mov sp, bp                                ; 8b e5
     15071    pop bp                                    ; 5d
    1490515072    retn                                      ; c3
    14906     add al, dl                                ; 00 d0
    14907     sahf                                      ; 9e
    14908     rcr byte [bp-0612ah], CL                  ; d2 9e d6 9e
    14909     db  0d6h
    14910     sahf                                      ; 9e
    14911     db  0d6h
    14912     sahf                                      ; 9e
    14913     fcomp dword [bp-06128h]                   ; d8 9e d8 9e
    14914     ficomp dword [bp-06122h]                  ; da 9e de 9e
    14915     ficomp word [bp-06120h]                   ; de 9e e0 9e
    14916     in ax, 09eh                               ; e5 9e
    14917     out 09eh, ax                              ; e7 9e
    14918 apm_worker:                                  ; 0xf9eba LB 0x3a
     15073    add byte [bx+si], al                      ; 00 00
     15074    add byte [bx+si], al                      ; 00 00
     15075    add byte [bx+si], al                      ; 00 00
     15076    sbb byte [bx-0607eh], 086h                ; 80 9f 82 9f 86
     15077    lahf                                      ; 9f
     15078    xchg byte [bx-0607ah], bl                 ; 86 9f 86 9f
     15079    mov byte [bx-06078h], bl                  ; 88 9f 88 9f
     15080    mov bl, byte [bx-06072h]                  ; 8a 9f 8e 9f
     15081    mov ds, [bx-06070h]                       ; 8e 9f 90 9f
     15082    xchg bp, ax                               ; 95
     15083    lahf                                      ; 9f
     15084    xchg di, ax                               ; 97
     15085    lahf                                      ; 9f
     15086apm_worker:                                  ; 0xf9f6a LB 0x3a
    1491915087    sti                                       ; fb
    1492015088    push ax                                   ; 50
     
    1492815096    pop ax                                    ; 58
    1492915097    mov AH, strict byte 053h                  ; b4 53
    14930     jnc short 09ef0h                          ; 73 25
    14931     jmp word [cs:bp-06160h]                   ; 2e ff a6 a0 9e
    14932     jmp short 09eeeh                          ; eb 1c
     15098    jnc short 09fa0h                          ; 73 25
     15099    jmp word [cs:bp-060b0h]                   ; 2e ff a6 50 9f
     15100    jmp short 09f9eh                          ; eb 1c
    1493315101    sti                                       ; fb
    1493415102    hlt                                       ; f4
    14935     jmp short 09eeeh                          ; eb 18
    14936     jmp short 09eeeh                          ; eb 16
    14937     jmp short 09ef0h                          ; eb 16
     15103    jmp short 09f9eh                          ; eb 18
     15104    jmp short 09f9eh                          ; eb 16
     15105    jmp short 09fa0h                          ; eb 16
    1493815106    mov AH, strict byte 080h                  ; b4 80
    14939     jmp short 09ef2h                          ; eb 14
    14940     jmp short 09ef0h                          ; eb 10
     15107    jmp short 09fa2h                          ; eb 14
     15108    jmp short 09fa0h                          ; eb 10
    1494115109    mov ax, 00102h                            ; b8 02 01
    14942     jmp short 09eeeh                          ; eb 09
    14943     jmp short 09eeeh                          ; eb 07
     15110    jmp short 09f9eh                          ; eb 09
     15111    jmp short 09f9eh                          ; eb 07
    1494415112    mov BL, strict byte 000h                  ; b3 00
    1494515113    mov cx, strict word 00000h                ; b9 00 00
    14946     jmp short 09eeeh                          ; eb 00
     15114    jmp short 09f9eh                          ; eb 00
    1494715115    clc                                       ; f8
    1494815116    retn                                      ; c3
     
    1495015118    stc                                       ; f9
    1495115119    retn                                      ; c3
    14952 apm_pm16_entry:                              ; 0xf9ef4 LB 0x11
     15120apm_pm16_entry:                              ; 0xf9fa4 LB 0x11
    1495315121    mov AH, strict byte 002h                  ; b4 02
    1495415122    push DS                                   ; 1e
     
    1495815126    add bp, strict byte 00008h                ; 83 c5 08
    1495915127    mov ds, bp                                ; 8e dd
    14960     call 09ebah                               ; e8 b8 ff
     15128    call 09f6ah                               ; e8 b8 ff
    1496115129    pop bp                                    ; 5d
    1496215130    pop DS                                    ; 1f
    1496315131    retf                                      ; cb
    1496415132
    14965   ; Padding 0x3afb bytes at 0xf9f05
    14966   times 15099 db 0
     15133  ; Padding 0x3a4b bytes at 0xf9fb5
     15134  times 14923 db 0
    1496715135
    1496815136section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1501115179    add bp, strict byte 00008h                ; 83 c5 08
    1501215180    push ebp                                  ; 66 55
    15013     mov bp, 09ef6h                            ; bd f6 9e
     15181    mov bp, 09fa6h                            ; bd a6 9f
    1501415182    add byte [bx+si], al                      ; 00 00
    1501515183    push ebp                                  ; 66 55
     
    1547715645    cmp AL, strict byte 009h                  ; 3c 09
    1547815646    jne short 0e0bch                          ; 75 03
    15479     jmp near 0e366h                           ; e9 aa 02
     15647    jmp near 0e36dh                           ; e9 b1 02
    1548015648    cmp AL, strict byte 005h                  ; 3c 05
    1548115649    je short 0e044h                           ; 74 84
     
    1552215690    pop DS                                    ; 1f
    1552315691    cld                                       ; fc
    15524     call 01777h                               ; e8 6d 36
     15692    call 017dfh                               ; e8 d5 36
    1552515693    call 0e8e0h                               ; e8 d3 07
    1552615694    db  033h, 0dbh
     
    1562315791    mov dx, 0c800h                            ; ba 00 c8
    1562415792    call 01600h                               ; e8 e1 33
    15625     call 04e4ch                               ; e8 2a 6c
     15793    call 04eb4h                               ; e8 92 6c
    1562615794    pop DS                                    ; 1f
    1562715795    mov ax, 0ff53h                            ; b8 53 ff
     
    1567815846    mov ax, 0f000h                            ; b8 00 f0
    1567915847    mov word [0012ah], ax                     ; a3 2a 01
    15680     mov ax, 0f8e6h                            ; b8 e6 f8
     15848    mov ax, 0f8f8h                            ; b8 f8 f8
    1568115849    mov word [001c0h], ax                     ; a3 c0 01
    1568215850    mov ax, 0f000h                            ; b8 00 f0
     
    1569215860    pop DS                                    ; 1f
    1569315861    cld                                       ; fc
    15694     call 01753h                               ; e8 8a 34
     15862    call 017bbh                               ; e8 f2 34
    1569515863    iret                                      ; cf
    1569615864int75_handler:                               ; 0xfe2ca LB 0x8
     
    1569915867    int 002h                                  ; cd 02
    1570015868    iret                                      ; cf
    15701 hard_drive_post:                             ; 0xfe2d2 LB 0xbd
     15869hard_drive_post:                             ; 0xfe2d2 LB 0xc4
    1570215870    db  033h, 0c0h
    1570315871    ; xor ax, ax                                ; 33 c0
     
    1571415882    mov ax, 0f000h                            ; b8 00 f0
    1571515883    mov word [0004eh], ax                     ; a3 4e 00
    15716     mov ax, 0f8d4h                            ; b8 d4 f8
     15884    mov ax, 0f8e6h                            ; b8 e6 f8
    1571715885    mov word [001d8h], ax                     ; a3 d8 01
    1571815886    mov ax, 0f000h                            ; b8 00 f0
     
    1572715895    mov word [0011ah], ax                     ; a3 1a 01
    1572815896    retn                                      ; c3
    15729     mov ax, 0f8a9h                            ; b8 a9 f8
     15897    mov ax, 0f8bbh                            ; b8 bb f8
    1573015898    mov word [001d0h], ax                     ; a3 d0 01
    1573115899    mov ax, 0f000h                            ; b8 00 f0
     
    1573915907    pop DS                                    ; 1f
    1574015908    cld                                       ; fc
    15741     call 01cafh                               ; e8 73 39
    15742     call 0213ch                               ; e8 fd 3d
    15743     call 09752h                               ; e8 10 b4
    15744     call 08636h                               ; e8 f1 a2
    15745     call 0ed2fh                               ; e8 e7 09
    15746     call 0e2d2h                               ; e8 87 ff
     15909    pushad                                    ; 66 60
     15910    call 01650h                               ; e8 12 33
     15911    popad                                     ; 66 61
     15912    call 01d17h                               ; e8 d4 39
     15913    call 021a4h                               ; e8 5e 3e
     15914    call 097deh                               ; e8 95 b4
     15915    call 086c2h                               ; e8 76 a3
     15916    call 0ed2fh                               ; e8 e0 09
     15917    call 0e2d2h                               ; e8 80 ff
    1574715918    push CS                                   ; 0e
    1574815919    pop DS                                    ; 1f
     
    1575015921    mov ax, 0c800h                            ; b8 00 c8
    1575115922    mov dx, 0f000h                            ; ba 00 f0
    15752     call 01600h                               ; e8 a9 32
    15753     call 01797h                               ; e8 3d 34
    15754     call 03b30h                               ; e8 d3 57
     15923    call 01600h                               ; e8 a2 32
     15924    call 017ffh                               ; e8 9e 34
     15925    call 03b98h                               ; e8 34 58
    1575515926    sti                                       ; fb
    1575615927    int 019h                                  ; cd 19
    1575715928    sti                                       ; fb
    1575815929    hlt                                       ; f4
    15759     jmp short 0e361h                          ; eb fd
     15930    jmp short 0e368h                          ; eb fd
    1576015931    cli                                       ; fa
    1576115932    hlt                                       ; f4
     
    1577915950    sti                                       ; fb
    1578015951    retf 00002h                               ; ca 02 00
    15781 biosorg_check_before_or_at_0E3FCh:           ; 0xfe38f LB 0x6f
    15782     times 0x6d db 0
     15952biosorg_check_before_or_at_0E3FCh:           ; 0xfe396 LB 0x68
     15953    times 0x66 db 0
    1578315954    db  'XM'
    1578415955int13_handler:                               ; 0xfe3fe LB 0x3
     
    1585416025    pop DS                                    ; 1f
    1585516026    cld                                       ; fc
    15856     call 06361h                               ; e8 1f 7c
     16027    call 063c9h                               ; e8 87 7c
    1585716028    popaw                                     ; 61
    1585816029    pop ES                                    ; 07
     
    1586516036    pop DS                                    ; 1f
    1586616037    cld                                       ; fc
    15867     call 016e8h                               ; e8 99 2f
     16038    call 01750h                               ; e8 01 30
    1586816039    popaw                                     ; 61
    1586916040    pop ES                                    ; 07
     
    1593016101    pop DS                                    ; 1f
    1593116102    cld                                       ; fc
    15932     call 05657h                               ; e8 15 6e
     16103    call 056bfh                               ; e8 7d 6e
    1593316104    popaw                                     ; 61
    1593416105    pop DS                                    ; 1f
     
    1594716118    pop DS                                    ; 1f
    1594816119    cld                                       ; fc
    15949     call 05657h                               ; e8 f7 6d
     16120    call 056bfh                               ; e8 5f 6e
    1595016121    popaw                                     ; 61
    1595116122    pop DS                                    ; 1f
     
    1604616217    pop DS                                    ; 1f
    1604716218    cld                                       ; fc
    16048     call 0514fh                               ; e8 86 67
     16219    call 051b7h                               ; e8 ee 67
    1604916220    pop ES                                    ; 07
    1605016221    popaw                                     ; 61
     
    1606216233    pop DS                                    ; 1f
    1606316234    cld                                       ; fc
    16064     call 06e01h                               ; e8 22 84
     16235    call 06e8dh                               ; e8 ae 84
    1606516236    pop DS                                    ; 1f
    1606616237    pop ES                                    ; 07
     
    1608416255    cld                                       ; fc
    1608516256    push 0ece9h                               ; 68 e9 ec
    16086     jmp near 03b74h                           ; e9 03 4f
     16257    jmp near 03bdch                           ; e9 6b 4f
    1608716258    push ES                                   ; 06
    1608816259    push ax                                   ; 50
     
    1609016261    push cx                                   ; 51
    1609116262    push dx                                   ; 52
    16092     call 03b48h                               ; e8 cf 4e
     16263    call 03bb0h                               ; e8 37 4f
    1609316264    cmp AL, strict byte 000h                  ; 3c 00
    1609416265    je short 0ecabh                           ; 74 2e
    16095     call 03b5eh                               ; e8 de 4e
     16266    call 03bc6h                               ; e8 46 4f
    1609616267    pop dx                                    ; 5a
    1609716268    push dx                                   ; 52
     
    1611116282    cld                                       ; fc
    1611216283    push 0ece9h                               ; 68 e9 ec
    16113     jmp near 04148h                           ; e9 b1 54
     16284    jmp near 041b0h                           ; e9 19 55
    1611416285    and dl, 0e0h                              ; 80 e2 e0
    1611516286    db  03ah, 0c2h
     
    1615116322    jne short 0ecc8h                          ; 75 06
    1615216323    push 0ece9h                               ; 68 e9 ec
    16153     jmp near 03203h                           ; e9 3b 45
     16324    jmp near 0326bh                           ; e9 a3 45
    1615416325int13_notfloppy:                             ; 0xfecc8 LB 0x14
    1615516326    cmp dl, 0e0h                              ; 80 fa e0
     
    1615716328    shr ebx, 010h                             ; 66 c1 eb 10
    1615816329    push bx                                   ; 53
    16159     call 0457ch                               ; e8 a7 58
     16330    call 045e4h                               ; e8 0f 59
    1616016331    pop bx                                    ; 5b
    1616116332    sal ebx, 010h                             ; 66 c1 e3 10
     
    1616416335    cmp ah, 040h                              ; 80 fc 40
    1616516336    jnbe short 0ece6h                         ; 77 05
    16166     call 05a23h                               ; e8 3f 6d
     16337    call 05a8bh                               ; e8 a7 6d
    1616716338    jmp short 0ece9h                          ; eb 03
    16168     call 05e6dh                               ; e8 84 71
     16339    call 05ed5h                               ; e8 ec 71
    1616916340int13_out:                                   ; 0xfece9 LB 0x4
    1617016341    pop DS                                    ; 1f
     
    1638216553    pop DS                                    ; 1f
    1638316554    cld                                       ; fc
    16384     call 0777ch                               ; e8 9f 87
     16555    call 07808h                               ; e8 2b 88
    1638516556    popaw                                     ; 61
    1638616557    pop ES                                    ; 07
     
    1641016581    pop DS                                    ; 1f
    1641116582    cld                                       ; fc
    16412     call 01765h                               ; e8 bb 26
     16583    call 017cdh                               ; e8 23 27
    1641316584    hlt                                       ; f4
    1641416585    iret                                      ; cf
     
    1643316604    mov ax, strict word 00001h                ; b8 01 00
    1643416605    push ax                                   ; 50
    16435     call 04be3h                               ; e8 13 5b
     16606    call 04c4bh                               ; e8 7b 5b
    1643616607    inc sp                                    ; 44
    1643716608    inc sp                                    ; 44
     
    1644016611    mov ax, strict word 00002h                ; b8 02 00
    1644116612    push ax                                   ; 50
    16442     call 04be3h                               ; e8 06 5b
     16613    call 04c4bh                               ; e8 6e 5b
    1644316614    inc sp                                    ; 44
    1644416615    inc sp                                    ; 44
     
    1644716618    mov ax, strict word 00003h                ; b8 03 00
    1644816619    push ax                                   ; 50
    16449     call 04be3h                               ; e8 f9 5a
     16620    call 04c4bh                               ; e8 61 5b
    1645016621    inc sp                                    ; 44
    1645116622    inc sp                                    ; 44
     
    1645416625    mov ax, strict word 00004h                ; b8 04 00
    1645516626    push ax                                   ; 50
    16456     call 04be3h                               ; e8 ec 5a
     16627    call 04c4bh                               ; e8 54 5b
    1645716628    inc sp                                    ; 44
    1645816629    inc sp                                    ; 44
     
    1672816899    pop DS                                    ; 1f
    1672916900    iret                                      ; cf
    16730 int15_handler:                               ; 0xff859 LB 0x2e
     16901int15_handler:                               ; 0xff859 LB 0x40
     16902    cmp ah, 087h                              ; 80 fc 87
     16903    jne short 0f86bh                          ; 75 0d
     16904    pushaw                                    ; 60
     16905    push ES                                   ; 06
     16906    push DS                                   ; 1e
     16907    push CS                                   ; 0e
     16908    pop DS                                    ; 1f
     16909    cld                                       ; fc
     16910    call 06ce2h                               ; e8 7b 74
     16911    pop DS                                    ; 1f
     16912    pop ES                                    ; 07
     16913    popaw                                     ; 61
     16914    iret                                      ; cf
    1673116915    pushfw                                    ; 9c
    1673216916    push DS                                   ; 1e
     
    1673616920    cld                                       ; fc
    1673716921    cmp ah, 086h                              ; 80 fc 86
    16738     je short 0f88ch                           ; 74 28
     16922    je short 0f89eh                           ; 74 28
    1673916923    cmp ah, 0e8h                              ; 80 fc e8
    16740     je short 0f88ch                           ; 74 23
     16924    je short 0f89eh                           ; 74 23
    1674116925    cmp ah, 0d0h                              ; 80 fc d0
    16742     je short 0f88ch                           ; 74 1e
     16926    je short 0f89eh                           ; 74 1e
    1674316927    pushaw                                    ; 60
    1674416928    cmp ah, 053h                              ; 80 fc 53
    16745     je short 0f882h                           ; 74 0e
     16929    je short 0f894h                           ; 74 0e
    1674616930    cmp ah, 0c2h                              ; 80 fc c2
    16747     je short 0f887h                           ; 74 0e
    16748     call 0656eh                               ; e8 f2 6c
     16931    je short 0f899h                           ; 74 0e
     16932    call 06616h                               ; e8 88 6d
    1674916933    popaw                                     ; 61
    1675016934    pop ES                                    ; 07
    1675116935    pop DS                                    ; 1f
    1675216936    popfw                                     ; 9d
    16753     jmp short 0f895h                          ; eb 13
    16754     call 09889h                               ; e8 04 a0
    16755     jmp short 0f87ch                          ; eb f5
    16756 int15_handler_mouse:                         ; 0xff887 LB 0x5
    16757     call 073f1h                               ; e8 67 7b
    16758     jmp short 0f87ch                          ; eb f0
    16759 int15_handler32:                             ; 0xff88c LB 0x9
     16937    jmp short 0f8a7h                          ; eb 13
     16938    call 09915h                               ; e8 7e a0
     16939    jmp short 0f88eh                          ; eb f5
     16940int15_handler_mouse:                         ; 0xff899 LB 0x5
     16941    call 0747dh                               ; e8 e1 7b
     16942    jmp short 0f88eh                          ; eb f0
     16943int15_handler32:                             ; 0xff89e LB 0x9
    1676016944    pushad                                    ; 66 60
    16761     call 06a3fh                               ; e8 ae 71
     16945    call 0694ch                               ; e8 a9 70
    1676216946    popad                                     ; 66 61
    16763     jmp short 0f87dh                          ; eb e8
    16764 iret_modify_cf:                              ; 0xff895 LB 0x14
    16765     jc short 0f8a0h                           ; 72 09
     16947    jmp short 0f88fh                          ; eb e8
     16948iret_modify_cf:                              ; 0xff8a7 LB 0x14
     16949    jc short 0f8b2h                           ; 72 09
    1676616950    push bp                                   ; 55
    1676716951    db  08bh, 0ech
     
    1677616960    pop bp                                    ; 5d
    1677716961    iret                                      ; cf
    16778 int74_handler:                               ; 0xff8a9 LB 0x2b
     16962int74_handler:                               ; 0xff8bb LB 0x2b
    1677916963    sti                                       ; fb
    1678016964    pushaw                                    ; 60
     
    1679116975    pop DS                                    ; 1f
    1679216976    cld                                       ; fc
    16793     call 07327h                               ; e8 6d 7a
     16977    call 073b3h                               ; e8 e7 7a
    1679416978    pop cx                                    ; 59
    16795     jcxz 0f8c9h                               ; e3 0c
     16979    jcxz 0f8dbh                               ; e3 0c
    1679616980    push strict byte 00000h                   ; 6a 00
    1679716981    pop DS                                    ; 1f
     
    1680016984    call far [word 00022h]                    ; ff 1e 22 00
    1680116985    cli                                       ; fa
    16802     call 0e030h                               ; e8 63 e7
     16986    call 0e030h                               ; e8 51 e7
    1680316987    add sp, strict byte 00008h                ; 83 c4 08
    1680416988    pop DS                                    ; 1f
     
    1680616990    popaw                                     ; 61
    1680716991    iret                                      ; cf
    16808 int76_handler:                               ; 0xff8d4 LB 0x12
     16992int76_handler:                               ; 0xff8e6 LB 0x12
    1680916993    push ax                                   ; 50
    1681016994    push DS                                   ; 1e
     
    1681216996    mov ds, ax                                ; 8e d8
    1681316997    mov byte [0008eh], 0ffh                   ; c6 06 8e 00 ff
    16814     call 0e030h                               ; e8 4d e7
     16998    call 0e030h                               ; e8 3b e7
    1681516999    pop DS                                    ; 1f
    1681617000    pop ax                                    ; 58
    1681717001    iret                                      ; cf
    16818 int70_handler:                               ; 0xff8e6 LB 0xd
     17002int70_handler:                               ; 0xff8f8 LB 0xd
    1681917003    push ES                                   ; 06
    1682017004    push DS                                   ; 1e
     
    1682317007    pop DS                                    ; 1f
    1682417008    cld                                       ; fc
    16825     call 06fdfh                               ; e8 f0 76
     17009    call 0706bh                               ; e8 6a 77
    1682617010    popaw                                     ; 61
    1682717011    pop DS                                    ; 1f
    1682817012    pop ES                                    ; 07
    1682917013    iret                                      ; cf
    16830 biosorg_check_before_or_at_0FA6Ch:           ; 0xff8f3 LB 0x17b
    16831     times 0x179 db 0
     17014biosorg_check_before_or_at_0FA6Ch:           ; 0xff905 LB 0x169
     17015    times 0x167 db 0
    1683217016    db  'XM'
    1683317017font8x8:                                     ; 0xffa6e LB 0x400
     
    1690517089    cld                                       ; fc
    1690617090    pushad                                    ; 66 60
    16907     call 09a99h                               ; e8 1c 9c
     17091    call 09b25h                               ; e8 a8 9c
    1690817092    popad                                     ; 66 61
    1690917093    pop DS                                    ; 1f
     
    1691617100    pop DS                                    ; 1f
    1691717101    cld                                       ; fc
    16918     call 0709dh                               ; e8 12 72
     17102    call 07129h                               ; e8 9e 72
    1691917103    popaw                                     ; 61
    1692017104    pop DS                                    ; 1f
     
    1701917203cpu_reset:                                   ; 0xffff0 LB 0x10
    1702017204    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17021     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0a1h
     17205    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 032h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum

    r60443 r61092  
    1 a2f3015e93a5e62e47b783abd626ce9b *VBoxPcBios386.rom
     13e8bbb1e27adc9a37ae1a2ce74342f9d *VBoxPcBios386.rom
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm

    r60443 r61092  
    728728
    729729;
    730 ; Source file: support.asm
     730; Source file: __U4M.asm
     731;
     732;  $Id$
     733;  Compiler support routines.
     734
     735
     736
     737;  Copyright (C) 2012-2015 Oracle Corporation
     738
     739;  This file is part of VirtualBox Open Source Edition (OSE), as
     740;  available from http://www.virtualbox.org. This file is free software;
     741;  you can redistribute it and/or modify it under the terms of the GNU
     742;  General Public License (GPL) as published by the Free Software
     743;  Foundation, in version 2 as it comes in the "COPYING" file of the
     744;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     745;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     746
     747
     748;
     749; Source file: __U4D.asm
     750;
     751;  $Id$
     752;  Compiler support routines.
     753
     754
     755
     756;  Copyright (C) 2012-2016 Oracle Corporation
     757
     758;  This file is part of VirtualBox Open Source Edition (OSE), as
     759;  available from http://www.virtualbox.org. This file is free software;
     760;  you can redistribute it and/or modify it under the terms of the GNU
     761;  General Public License (GPL) as published by the Free Software
     762;  Foundation, in version 2 as it comes in the "COPYING" file of the
     763;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     764;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     765
     766
     767;
     768; Source file: __U8RS.asm
     769;
     770;  $Id$
     771;  Compiler support routines.
     772
     773
     774
     775;  Copyright (C) 2012-2015 Oracle Corporation
     776
     777;  This file is part of VirtualBox Open Source Edition (OSE), as
     778;  available from http://www.virtualbox.org. This file is free software;
     779;  you can redistribute it and/or modify it under the terms of the GNU
     780;  General Public License (GPL) as published by the Free Software
     781;  Foundation, in version 2 as it comes in the "COPYING" file of the
     782;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     783;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     784
     785
     786;
     787; Source file: __U8LS.asm
     788;
     789;  $Id$
     790;  Compiler support routines.
     791
     792
     793
     794;  Copyright (C) 2012-2015 Oracle Corporation
     795
     796;  This file is part of VirtualBox Open Source Edition (OSE), as
     797;  available from http://www.virtualbox.org. This file is free software;
     798;  you can redistribute it and/or modify it under the terms of the GNU
     799;  General Public License (GPL) as published by the Free Software
     800;  Foundation, in version 2 as it comes in the "COPYING" file of the
     801;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     802;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     803
     804
     805;
     806; Source file: fmemset.asm
     807;
     808;  $Id$
     809;  Compiler support routines.
     810
     811
     812
     813;  Copyright (C) 2012-2015 Oracle Corporation
     814
     815;  This file is part of VirtualBox Open Source Edition (OSE), as
     816;  available from http://www.virtualbox.org. This file is free software;
     817;  you can redistribute it and/or modify it under the terms of the GNU
     818;  General Public License (GPL) as published by the Free Software
     819;  Foundation, in version 2 as it comes in the "COPYING" file of the
     820;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     821;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     822
     823
     824;
     825; Source file: fmemcpy.asm
    731826;
    732827;  $Id$
     
    822917;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
    823918
     919
     920
     921;
     922; Source file: DoUInt32Div.c
     923;
     924;  $Id$
     925;  AHCI host adapter driver to boot from SATA disks.
     926
     927
     928
     929;  Copyright (C) 2011-2015 Oracle Corporation
     930
     931;  This file is part of VirtualBox Open Source Edition (OSE), as
     932;  available from http://www.virtualbox.org. This file is free software;
     933;  you can redistribute it and/or modify it under the terms of the GNU
     934;  General Public License (GPL) as published by the Free Software
     935;  Foundation, in version 2 as it comes in the "COPYING" file of the
     936;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     937;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     938
     939;
     940; Source file: ASMBitLastSetU16.asm
     941;
     942;  $Id$
     943;  BiosCommonCode - ASMBitLastSetU16() - borrowed from IPRT.
     944
     945
     946
     947;  Copyright (C) 2006-2016 Oracle Corporation
     948
     949;  This file is part of VirtualBox Open Source Edition (OSE), as
     950;  available from http://www.virtualbox.org. This file is free software;
     951;  you can redistribute it and/or modify it under the terms of the GNU
     952;  General Public License (GPL) as published by the Free Software
     953;  Foundation, in version 2 as it comes in the "COPYING" file of the
     954;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     955;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
    824956
    825957
     
    856988    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    857989_pktacc:                                     ; 0xf006a LB 0xc
    858     db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 001h, 083h, 09ch, 092h
     990    db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 07dh, 081h, 018h, 091h
    859991_softrst:                                    ; 0xf0076 LB 0xc
    860992    db  000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 0bdh, 03bh, 0bdh, 03bh
    861993_dskacc:                                     ; 0xf0082 LB 0x2e
    862994    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 02ah, 046h, 02bh, 000h, 000h, 000h, 000h
    863     db  02fh, 081h, 018h, 082h, 06ah, 091h, 014h, 092h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     995    db  0abh, 07fh, 094h, 080h, 0e6h, 08fh, 090h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    864996    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    865997
     
    10581190  times 1144 db 0
    10591191
    1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8ca5 class=CODE group=AUTO
     1192section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d88 class=CODE group=AUTO
    10611193rom_scan_:                                   ; 0xf1600 LB 0x52
    10621194    push bp                                   ; 55
     
    13181450    int 010h                                  ; cd 10
    13191451    jmp short 017c3h                          ; eb 03
    1320     call 07cd3h                               ; e8 10 65
     1452    call 07b4fh                               ; e8 8c 63
    13211453    mov sp, bp                                ; 89 ec
    13221454    pop bp                                    ; 5d
     
    14641596    mov bx, strict word 0000ah                ; bb 0a 00
    14651597    xor cx, cx                                ; 31 c9
    1466     call 0a190h                               ; e8 b3 88
     1598    call 0a020h                               ; e8 43 87
    14671599    mov word [bp-008h], ax                    ; 89 46 f8
    14681600    mov cx, dx                                ; 89 d1
     
    17011833    mov dx, word [bp-026h]                    ; 8b 56 da
    17021834    mov si, word [bp-01eh]                    ; 8b 76 e2
    1703     call 0a20ah                               ; e8 f2 86
     1835    call 0a050h                               ; e8 38 85
    17041836    mov ax, dx                                ; 89 d0
    17051837    xor ah, dh                                ; 30 f4
     
    21622294    mov dx, word [es:si]                      ; 26 8b 14
    21632295    mov si, strict word 00018h                ; be 18 00
    2164     call 0a20ah                               ; e8 78 82
     2296    call 0a050h                               ; e8 be 80
    21652297    xor dh, dh                                ; 30 f6
    21662298    mov word [bp-014h], dx                    ; 89 56 ec
     
    21722304    mov dx, word [es:si]                      ; 26 8b 14
    21732305    mov si, strict word 00020h                ; be 20 00
    2174     call 0a20ah                               ; e8 58 82
     2306    call 0a050h                               ; e8 9e 80
    21752307    mov bx, dx                                ; 89 d3
    21762308    mov word [bp-010h], dx                    ; 89 56 f0
     
    22042336    mov dx, word [es:si]                      ; 26 8b 14
    22052337    mov si, strict word 00008h                ; be 08 00
    2206     call 0a20ah                               ; e8 05 82
     2338    call 0a050h                               ; e8 4b 80
    22072339    mov word [bp-010h], dx                    ; 89 56 f0
    22082340    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    22132345    mov dx, word [es:si]                      ; 26 8b 14
    22142346    mov si, strict word 00018h                ; be 18 00
    2215     call 0a20ah                               ; e8 e7 81
     2347    call 0a050h                               ; e8 2d 80
    22162348    mov bl, dl                                ; 88 d3
    22172349    and bl, 00fh                              ; 80 e3 0f
     
    27912923    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    27922924    mov si, strict word 0000bh                ; be 0b 00
    2793     call 0a20ah                               ; e8 0b 7c
     2925    call 0a050h                               ; e8 51 7a
    27942926    mov word [bp-02ah], dx                    ; 89 56 d6
    27952927    mov word [bp-026h], cx                    ; 89 4e da
     
    30833215    mov dx, word [bp-022h]                    ; 8b 56 de
    30843216    mov si, strict word 00018h                ; be 18 00
    3085     call 0a20ah                               ; e8 2e 79
     3217    call 0a050h                               ; e8 74 77
    30863218    xor dh, dh                                ; 30 f6
    30873219    mov word [bp-014h], dx                    ; 89 56 ec
     
    30913223    mov dx, word [bp-022h]                    ; 8b 56 de
    30923224    mov si, strict word 00020h                ; be 20 00
    3093     call 0a20ah                               ; e8 17 79
     3225    call 0a050h                               ; e8 5d 77
    30943226    mov bx, dx                                ; 89 d3
    30953227    mov word [bp-024h], dx                    ; 89 56 dc
     
    31253257    mov dx, word [bp-022h]                    ; 8b 56 de
    31263258    mov si, strict word 00008h                ; be 08 00
    3127     call 0a20ah                               ; e8 c3 78
     3259    call 0a050h                               ; e8 09 77
    31283260    mov word [bp-00ch], ax                    ; 89 46 f4
    31293261    mov word [bp-020h], bx                    ; 89 5e e0
     
    31323264    mov word [bp-024h], dx                    ; 89 56 dc
    31333265    mov si, strict word 00010h                ; be 10 00
    3134     call 0a20ah                               ; e8 ae 78
     3266    call 0a050h                               ; e8 f4 76
    31353267    mov word [bp-022h], dx                    ; 89 56 de
    31363268    mov ax, dx                                ; 89 d0
     
    54425574    mov dx, ss                                ; 8c d2
    54435575    lea ax, [bp-026h]                         ; 8d 46 da
    5444     call 0a21ah                               ; e8 e8 63
     5576    call 0a070h                               ; e8 3e 62
    54455577    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    54465578    mov ax, strict word 00011h                ; b8 11 00
     
    59346066    xor dl, dl                                ; 30 d2
    59356067    xor cx, cx                                ; 31 c9
    5936     call 0a1c9h                               ; e8 23 5e
     6068    call 0a000h                               ; e8 5a 5c
    59376069    xor bx, bx                                ; 31 db
    59386070    add ax, si                                ; 01 f0
     
    59406072    mov bx, di                                ; 89 fb
    59416073    xor cx, cx                                ; 31 c9
    5942     call 0a1c9h                               ; e8 16 5e
     6074    call 0a000h                               ; e8 4d 5c
    59436075    mov bx, ax                                ; 89 c3
    59446076    mov ax, word [bp-00ah]                    ; 8b 46 f6
     
    59756107    mov dx, ss                                ; 8c d2
    59766108    lea ax, [bp-030h]                         ; 8d 46 d0
    5977     call 0a21ah                               ; e8 10 5e
     6109    call 0a070h                               ; e8 66 5c
    59786110    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    59796111    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    63296461    mov dx, ss                                ; 8c d2
    63306462    lea ax, [bp-02eh]                         ; 8d 46 d2
    6331     call 0a21ah                               ; e8 28 5a
     6463    call 0a070h                               ; e8 7e 58
    63326464    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    63336465    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    68616993    mov CL, strict byte 004h                  ; b1 04
    68626994    sar ax, CL                                ; d3 f8
    6863     call 07f13h                               ; e8 8b 31
     6995    call 07d8fh                               ; e8 07 30
    68646996    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    68656997    jne short 04d93h                          ; 75 05
     
    73847516    out DX, AL                                ; ee
    73857517    xor ax, ax                                ; 31 c0
    7386     call 066bch                               ; e8 ac 14
     7518    call 066ffh                               ; e8 ef 14
    73877519    mov sp, bp                                ; 89 ec
    73887520    pop bp                                    ; 5d
     
    83638495    mov dx, word [bp+00ch]                    ; 8b 56 0c
    83648496    mov si, strict word 00020h                ; be 20 00
    8365     call 0a20ah                               ; e8 d2 46
     8497    call 0a050h                               ; e8 18 45
    83668498    test ax, ax                               ; 85 c0
    83678499    jne short 05b48h                          ; 75 0c
     
    84018533    mov bx, strict word 0003fh                ; bb 3f 00
    84028534    xor cx, cx                                ; 31 c9
    8403     call 0a1c9h                               ; e8 38 46
     8535    call 0a000h                               ; e8 6f 44
    84048536    mov bx, ax                                ; 89 c3
    84058537    mov cx, dx                                ; 89 d1
    84068538    mov ax, word [bp-004h]                    ; 8b 46 fc
    84078539    mov dx, si                                ; 89 f2
    8408     call 0a190h                               ; e8 f3 45
     8540    call 0a020h                               ; e8 83 44
    84098541    mov word [es:di+002h], ax                 ; 26 89 45 02
    84108542    cmp ax, 00400h                            ; 3d 00 04
     
    86238755    mov bx, cx                                ; 89 cb
    86248756    xor cx, cx                                ; 31 c9
    8625     call 0a1c9h                               ; e8 17 44
     8757    call 0a000h                               ; e8 4e 42
    86268758    xor bx, bx                                ; 31 db
    86278759    add ax, word [bp-00ch]                    ; 03 46 f4
     
    86298761    mov bx, word [bp-010h]                    ; 8b 5e f0
    86308762    xor cx, cx                                ; 31 c9
    8631     call 0a1c9h                               ; e8 08 44
     8763    call 0a000h                               ; e8 3f 42
    86328764    xor bx, bx                                ; 31 db
    86338765    add ax, di                                ; 01 f8
     
    88038935    mov bx, word [bp-00ch]                    ; 8b 5e f4
    88048936    xor cx, cx                                ; 31 c9
    8805     call 0a1c9h                               ; e8 31 42
     8937    call 0a000h                               ; e8 68 40
    88068938    mov bx, di                                ; 89 fb
    88078939    xor cx, cx                                ; 31 c9
    8808     call 0a1c9h                               ; e8 2a 42
     8940    call 0a000h                               ; e8 61 40
    88098941    mov word [bp-008h], ax                    ; 89 46 f8
    88108942    mov word [bp-006h], dx                    ; 89 56 fa
     
    89729104    xor bx, bx                                ; 31 db
    89739105    mov si, strict word 00020h                ; be 20 00
    8974     call 0a1fah                               ; e8 c0 40
     9106    call 0a060h                               ; e8 26 3f
    89759107    mov word [bp-00eh], ax                    ; 89 46 f2
    89769108    mov word [bp-010h], bx                    ; 89 5e f0
     
    91379269    mov dx, si                                ; 89 f2
    91389270    mov si, strict word 00020h                ; be 20 00
    9139     call 0a20ah                               ; e8 d9 3e
     9271    call 0a050h                               ; e8 1f 3d
    91409272    mov bx, di                                ; 89 fb
    91419273    mov word [es:bx+014h], dx                 ; 26 89 57 14
     
    94909622    pop bp                                    ; 5d
    94919623    retn                                      ; c3
    9492 set_enable_a20_:                             ; 0xf66bc LB 0x30
     9624timer_wait_:                                 ; 0xf66bc LB 0x43
     9625    push bp                                   ; 55
     9626    mov bp, sp                                ; 89 e5
     9627    push bx                                   ; 53
     9628    push cx                                   ; 51
     9629    push ax                                   ; 50
     9630    mov bx, strict word 0000fh                ; bb 0f 00
     9631    xor cx, cx                                ; 31 c9
     9632    call 0a020h                               ; e8 56 39
     9633    mov cx, ax                                ; 89 c1
     9634    mov bx, dx                                ; 89 d3
     9635    mov dx, strict word 00061h                ; ba 61 00
     9636    in AL, DX                                 ; ec
     9637    db  02ah, 0e4h
     9638    ; sub ah, ah                                ; 2a e4
     9639    and AL, strict byte 010h                  ; 24 10
     9640    mov byte [bp-006h], al                    ; 88 46 fa
     9641    add cx, strict byte 0ffffh                ; 83 c1 ff
     9642    adc bx, strict byte 0ffffh                ; 83 d3 ff
     9643    cmp bx, strict byte 0ffffh                ; 83 fb ff
     9644    jne short 066e9h                          ; 75 05
     9645    cmp cx, strict byte 0ffffh                ; 83 f9 ff
     9646    je short 066f8h                           ; 74 0f
     9647    mov dx, strict word 00061h                ; ba 61 00
     9648    in AL, DX                                 ; ec
     9649    db  02ah, 0e4h
     9650    ; sub ah, ah                                ; 2a e4
     9651    and AL, strict byte 010h                  ; 24 10
     9652    cmp al, byte [bp-006h]                    ; 3a 46 fa
     9653    jne short 066e9h                          ; 75 f3
     9654    jmp short 066d9h                          ; eb e1
     9655    lea sp, [bp-004h]                         ; 8d 66 fc
     9656    pop cx                                    ; 59
     9657    pop bx                                    ; 5b
     9658    pop bp                                    ; 5d
     9659    retn                                      ; c3
     9660set_enable_a20_:                             ; 0xf66ff LB 0x30
    94939661    push bp                                   ; 55
    94949662    mov bp, sp                                ; 89 e5
     
    95039671    mov cl, al                                ; 88 c1
    95049672    test bx, bx                               ; 85 db
    9505     je short 066d5h                           ; 74 05
     9673    je short 06718h                           ; 74 05
    95069674    or AL, strict byte 002h                   ; 0c 02
    95079675    out DX, AL                                ; ee
    9508     jmp short 066d8h                          ; eb 03
     9676    jmp short 0671bh                          ; eb 03
    95099677    and AL, strict byte 0fdh                  ; 24 fd
    95109678    out DX, AL                                ; ee
    95119679    test cl, 002h                             ; f6 c1 02
    9512     je short 066e2h                           ; 74 05
     9680    je short 06725h                           ; 74 05
    95139681    mov ax, strict word 00001h                ; b8 01 00
    9514     jmp short 066e4h                          ; eb 02
     9682    jmp short 06727h                          ; eb 02
    95159683    xor ax, ax                                ; 31 c0
    95169684    lea sp, [bp-006h]                         ; 8d 66 fa
     
    95209688    pop bp                                    ; 5d
    95219689    retn                                      ; c3
    9522 set_e820_range_:                             ; 0xf66ec LB 0x8b
     9690set_e820_range_:                             ; 0xf672f LB 0x88
    95239691    push si                                   ; 56
    95249692    push bp                                   ; 55
     
    95499717    pop si                                    ; 5e
    95509718    retn 0000ah                               ; c2 0a 00
    9551     db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 087h, 083h, 052h, 04fh, 041h, 024h
    9552     db  000h, 017h, 06ch, 0b3h, 067h, 0c7h, 067h, 05fh, 068h, 065h, 068h, 06ah, 068h, 06fh, 068h, 017h
    9553     db  069h, 0b3h, 06ah, 0d2h, 06ah, 058h, 068h, 058h, 068h, 09ch, 06bh, 0c7h, 06bh, 0dah, 06bh, 0e9h
    9554     db  06bh, 05fh, 068h, 0f2h, 06bh
    9555 _int15_function:                             ; 0xf6777 LB 0x4d6
     9719    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
     9720    db  0c4h, 06ah, 0f3h, 067h, 007h, 068h, 0a3h, 068h, 0a9h, 068h, 0aeh, 068h, 0b3h, 068h, 05bh, 069h
     9721    db  07fh, 069h, 09ch, 068h, 09ch, 068h, 049h, 06ah, 074h, 06ah, 087h, 06ah, 096h, 06ah, 0a3h, 068h
     9722    db  09fh, 06ah
     9723_int15_function:                             ; 0xf67b7 LB 0x343
    95569724    push bp                                   ; 55
    95579725    mov bp, sp                                ; 89 e5
     
    95629730    mov dx, ax                                ; 89 c2
    95639731    cmp ax, 000ech                            ; 3d ec 00
    9564     jnbe short 067bdh                         ; 77 35
     9732    jnbe short 067fdh                         ; 77 35
    95659733    push CS                                   ; 0e
    95669734    pop ES                                    ; 07
    9567     mov cx, strict word 00012h                ; b9 12 00
    9568     mov di, 06742h                            ; bf 42 67
     9735    mov cx, strict word 00011h                ; b9 11 00
     9736    mov di, 06785h                            ; bf 85 67
    95699737    repne scasb                               ; f2 ae
    95709738    sal cx, 1                                 ; d1 e1
    95719739    mov di, cx                                ; 89 cf
    9572     mov si, word [cs:di+06753h]               ; 2e 8b b5 53 67
     9740    mov si, word [cs:di+06795h]               ; 2e 8b b5 95 67
    95739741    mov ax, word [bp+012h]                    ; 8b 46 12
    95749742    xor ah, ah                                ; 30 e4
    95759743    mov cx, word [bp+018h]                    ; 8b 4e 18
    95769744    and cl, 0feh                              ; 80 e1 fe
    9577     mov bx, word [bp+018h]                    ; 8b 5e 18
    9578     or bl, 001h                               ; 80 cb 01
    9579     mov dx, ax                                ; 89 c2
    9580     or dh, 086h                               ; 80 ce 86
     9745    mov dx, word [bp+018h]                    ; 8b 56 18
     9746    or dl, 001h                               ; 80 ca 01
     9747    mov bx, ax                                ; 89 c3
     9748    or bh, 086h                               ; 80 cf 86
    95819749    jmp si                                    ; ff e6
    95829750    mov ax, word [bp+012h]                    ; 8b 46 12
    95839751    xor ah, ah                                ; 30 e4
    95849752    cmp ax, 000c0h                            ; 3d c0 00
    9585     je short 067c0h                           ; 74 03
    9586     jmp near 06c17h                           ; e9 57 04
     9753    je short 06800h                           ; 74 03
     9754    jmp near 06ac4h                           ; e9 c4 02
    95879755    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9588     jmp near 06bbeh                           ; e9 f7 03
     9756    jmp near 06a6bh                           ; e9 64 02
    95899757    mov dx, ax                                ; 89 c2
    95909758    cmp ax, strict word 00001h                ; 3d 01 00
    9591     jc short 067dch                           ; 72 0e
    9592     jbe short 067f0h                          ; 76 20
     9759    jc short 0681ch                           ; 72 0e
     9760    jbe short 06830h                          ; 76 20
    95939761    cmp ax, strict word 00003h                ; 3d 03 00
    9594     je short 0681dh                           ; 74 48
     9762    je short 06861h                           ; 74 4c
    95959763    cmp ax, strict word 00002h                ; 3d 02 00
    9596     je short 06800h                           ; 74 26
    9597     jmp short 0682ah                          ; eb 4e
     9764    je short 06840h                           ; 74 26
     9765    jmp short 0686eh                          ; eb 52
    95989766    test ax, ax                               ; 85 c0
    9599     jne short 0682ah                          ; 75 4a
     9767    jne short 0686eh                          ; 75 4e
    96009768    xor ax, ax                                ; 31 c0
    9601     call 066bch                               ; e8 d7 fe
     9769    call 066ffh                               ; e8 da fe
    96029770    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    96039771    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9604     jmp near 06858h                           ; e9 68 00
     9772    jmp near 0689ch                           ; e9 6c 00
    96059773    mov ax, strict word 00001h                ; b8 01 00
    9606     call 066bch                               ; e8 c6 fe
     9774    call 066ffh                               ; e8 c9 fe
    96079775    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    96089776    mov byte [bp+013h], dh                    ; 88 76 13
    9609     jmp near 06858h                           ; e9 58 00
     9777    jmp near 0689ch                           ; e9 5c 00
    96109778    mov dx, 00092h                            ; ba 92 00
    96119779    in AL, DX                                 ; ec
    96129780    db  02ah, 0e4h
    96139781    ; sub ah, ah                                ; 2a e4
    9614     shr ax, 1                                 ; d1 e8
    9615     and ax, strict word 00001h                ; 25 01 00
    9616     mov dx, word [bp+012h]                    ; 8b 56 12
    9617     mov dl, al                                ; 88 c2
    9618     mov word [bp+012h], dx                    ; 89 56 12
     9782    mov dx, ax                                ; 89 c2
     9783    shr dx, 1                                 ; d1 ea
     9784    and dl, 001h                              ; 80 e2 01
     9785    mov ax, word [bp+012h]                    ; 8b 46 12
     9786    mov al, dl                                ; 88 d0
     9787    mov word [bp+012h], ax                    ; 89 46 12
    96199788    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9620     mov byte [bp+013h], ah                    ; 88 66 13
    9621     jmp near 06858h                           ; e9 3b 00
     9789    xor al, dl                                ; 30 d0
     9790    mov byte [bp+013h], al                    ; 88 46 13
     9791    jmp near 0689ch                           ; e9 3b 00
    96229792    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    96239793    mov byte [bp+013h], ah                    ; 88 66 13
    96249794    mov word [bp+00ch], ax                    ; 89 46 0c
    9625     jmp near 06858h                           ; e9 2e 00
     9795    jmp near 0689ch                           ; e9 2e 00
    96269796    mov bx, 00da0h                            ; bb a0 0d
    96279797    mov cx, ds                                ; 8c d9
    96289798    mov ax, strict word 00004h                ; b8 04 00
    9629     call 01933h                               ; e8 fe b0
     9799    call 01933h                               ; e8 ba b0
    96309800    mov ax, word [bp+012h]                    ; 8b 46 12
    96319801    xor ah, ah                                ; 30 e4
     
    96359805    mov ax, strict word 00004h                ; b8 04 00
    96369806    push ax                                   ; 50
    9637     call 01976h                               ; e8 30 b1
     9807    call 01976h                               ; e8 ec b0
    96389808    add sp, strict byte 00006h                ; 83 c4 06
    96399809    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    96479817    pop bp                                    ; 5d
    96489818    retn                                      ; c3
    9649     mov word [bp+018h], bx                    ; 89 5e 18
    9650     jmp near 06911h                           ; e9 ac 00
    9651     mov word [bp+018h], bx                    ; 89 5e 18
    9652     jmp short 06858h                          ; eb ee
     9819    mov word [bp+018h], dx                    ; 89 56 18
     9820    jmp near 06955h                           ; e9 ac 00
     9821    mov word [bp+018h], dx                    ; 89 56 18
     9822    jmp short 0689ch                          ; eb ee
    96539823    mov word [bp+018h], cx                    ; 89 4e 18
    9654     jmp short 06855h                          ; eb e6
     9824    jmp short 06899h                          ; eb e6
    96559825    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9656     jne short 068e4h                          ; 75 6f
     9826    jne short 06928h                          ; 75 6f
    96579827    mov dx, 000a0h                            ; ba a0 00
    96589828    mov ax, strict word 00040h                ; b8 40 00
    9659     call 01652h                               ; e8 d4 ad
     9829    call 01652h                               ; e8 90 ad
    96609830    test AL, strict byte 001h                 ; a8 01
    9661     jne short 068e1h                          ; 75 5f
     9831    jne short 06925h                          ; 75 5f
    96629832    mov bx, strict word 00001h                ; bb 01 00
    96639833    mov dx, 000a0h                            ; ba a0 00
    96649834    mov ax, strict word 00040h                ; b8 40 00
    9665     call 01660h                               ; e8 d2 ad
     9835    call 01660h                               ; e8 8e ad
    96669836    mov bx, word [bp+014h]                    ; 8b 5e 14
    96679837    mov dx, 00098h                            ; ba 98 00
    96689838    mov ax, strict word 00040h                ; b8 40 00
    9669     call 0167ch                               ; e8 e2 ad
     9839    call 0167ch                               ; e8 9e ad
    96709840    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    96719841    mov dx, 0009ah                            ; ba 9a 00
    96729842    mov ax, strict word 00040h                ; b8 40 00
    9673     call 0167ch                               ; e8 d6 ad
     9843    call 0167ch                               ; e8 92 ad
    96749844    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    96759845    mov dx, 0009ch                            ; ba 9c 00
    96769846    mov ax, strict word 00040h                ; b8 40 00
    9677     call 0167ch                               ; e8 ca ad
     9847    call 0167ch                               ; e8 86 ad
    96789848    mov bx, word [bp+010h]                    ; 8b 5e 10
    96799849    mov dx, 0009eh                            ; ba 9e 00
    96809850    mov ax, strict word 00040h                ; b8 40 00
    9681     call 0167ch                               ; e8 be ad
     9851    call 0167ch                               ; e8 7a ad
    96829852    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    96839853    mov dx, 000a1h                            ; ba a1 00
     
    96889858    out DX, AL                                ; ee
    96899859    mov ax, strict word 0000bh                ; b8 0b 00
    9690     call 016aeh                               ; e8 dd ad
     9860    call 016aeh                               ; e8 99 ad
    96919861    mov dl, al                                ; 88 c2
    96929862    or dl, 040h                               ; 80 ca 40
    96939863    xor dh, dh                                ; 30 f6
    96949864    mov ax, strict word 0000bh                ; b8 0b 00
    9695     call 016c9h                               ; e8 eb ad
    9696     jmp near 06858h                           ; e9 77 ff
    9697     jmp near 06bb5h                           ; e9 d1 02
     9865    call 016c9h                               ; e8 a7 ad
     9866    jmp near 0689ch                           ; e9 77 ff
     9867    jmp near 06a62h                           ; e9 3a 01
    96989868    cmp ax, strict word 00001h                ; 3d 01 00
    9699     jne short 06905h                          ; 75 1c
     9869    jne short 06949h                          ; 75 1c
    97009870    xor bx, bx                                ; 31 db
    97019871    mov dx, 000a0h                            ; ba a0 00
    97029872    mov ax, strict word 00040h                ; b8 40 00
    9703     call 01660h                               ; e8 6c ad
     9873    call 01660h                               ; e8 28 ad
    97049874    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    97059875    mov ax, strict word 0000bh                ; b8 0b 00
    9706     call 016aeh                               ; e8 b0 ad
     9876    call 016aeh                               ; e8 6c ad
    97079877    mov dl, al                                ; 88 c2
    97089878    and dl, 0bfh                              ; 80 e2 bf
    9709     jmp short 068d6h                          ; eb d1
    9710     mov word [bp+018h], bx                    ; 89 5e 18
    9711     mov ax, dx                                ; 89 d0
    9712     xor ah, dh                                ; 30 f4
    9713     xor dl, dl                                ; 30 d2
     9879    jmp short 0691ah                          ; eb d1
     9880    mov word [bp+018h], dx                    ; 89 56 18
     9881    mov ax, bx                                ; 89 d8
     9882    xor ah, bh                                ; 30 fc
     9883    xor bl, bl                                ; 30 db
    97149884    dec ax                                    ; 48
    9715     or dx, ax                                 ; 09 c2
    9716     mov word [bp+012h], dx                    ; 89 56 12
    9717     jmp near 06858h                           ; e9 41 ff
    9718     cli                                       ; fa
    9719     mov ax, strict word 00001h                ; b8 01 00
    9720     call 066bch                               ; e8 9e fd
    9721     mov di, ax                                ; 89 c7
    9722     mov CL, strict byte 004h                  ; b1 04
    9723     mov dx, word [bp+014h]                    ; 8b 56 14
    9724     sal dx, CL                                ; d3 e2
    9725     mov si, word [bp+006h]                    ; 8b 76 06
    9726     add si, dx                                ; 01 d6
    9727     mov CL, strict byte 00ch                  ; b1 0c
    9728     mov ax, word [bp+014h]                    ; 8b 46 14
    9729     shr ax, CL                                ; d3 e8
    9730     mov cl, al                                ; 88 c1
    9731     cmp si, dx                                ; 39 d6
    9732     jnc short 0693bh                          ; 73 02
    9733     db  0feh, 0c1h
    9734     ; inc cl                                    ; fe c1
    9735     mov dx, word [bp+006h]                    ; 8b 56 06
    9736     add dx, strict byte 00008h                ; 83 c2 08
    9737     mov ax, word [bp+014h]                    ; 8b 46 14
    9738     mov bx, strict word 0002fh                ; bb 2f 00
    9739     call 0167ch                               ; e8 32 ad
    9740     mov dx, word [bp+006h]                    ; 8b 56 06
    9741     add dx, strict byte 0000ah                ; 83 c2 0a
    9742     mov ax, word [bp+014h]                    ; 8b 46 14
    9743     mov bx, si                                ; 89 f3
    9744     call 0167ch                               ; e8 24 ad
    9745     mov bl, cl                                ; 88 cb
    9746     xor bh, bh                                ; 30 ff
    9747     mov dx, word [bp+006h]                    ; 8b 56 06
    9748     add dx, strict byte 0000ch                ; 83 c2 0c
    9749     mov ax, word [bp+014h]                    ; 8b 46 14
    9750     call 01660h                               ; e8 f8 ac
    9751     mov dx, word [bp+006h]                    ; 8b 56 06
    9752     add dx, strict byte 0000dh                ; 83 c2 0d
    9753     mov ax, word [bp+014h]                    ; 8b 46 14
    9754     mov bx, 00093h                            ; bb 93 00
    9755     call 01660h                               ; e8 e9 ac
    9756     mov dx, word [bp+006h]                    ; 8b 56 06
    9757     add dx, strict byte 0000eh                ; 83 c2 0e
    9758     mov ax, word [bp+014h]                    ; 8b 46 14
    9759     xor bx, bx                                ; 31 db
    9760     call 0167ch                               ; e8 f7 ac
    9761     mov dx, word [bp+006h]                    ; 8b 56 06
    9762     add dx, strict byte 00020h                ; 83 c2 20
    9763     mov ax, word [bp+014h]                    ; 8b 46 14
    9764     mov bx, strict word 0ffffh                ; bb ff ff
    9765     call 0167ch                               ; e8 e8 ac
    9766     mov dx, word [bp+006h]                    ; 8b 56 06
    9767     add dx, strict byte 00022h                ; 83 c2 22
    9768     mov ax, word [bp+014h]                    ; 8b 46 14
    9769     xor bx, bx                                ; 31 db
    9770     call 0167ch                               ; e8 da ac
    9771     mov dx, word [bp+006h]                    ; 8b 56 06
    9772     add dx, strict byte 00024h                ; 83 c2 24
    9773     mov ax, word [bp+014h]                    ; 8b 46 14
    9774     mov bx, strict word 0000fh                ; bb 0f 00
    9775     call 01660h                               ; e8 af ac
    9776     mov dx, word [bp+006h]                    ; 8b 56 06
    9777     add dx, strict byte 00025h                ; 83 c2 25
    9778     mov ax, word [bp+014h]                    ; 8b 46 14
    9779     mov bx, 0009bh                            ; bb 9b 00
    9780     call 01660h                               ; e8 a0 ac
    9781     mov dx, word [bp+006h]                    ; 8b 56 06
    9782     add dx, strict byte 00026h                ; 83 c2 26
    9783     mov ax, word [bp+014h]                    ; 8b 46 14
    9784     xor bx, bx                                ; 31 db
    9785     call 0167ch                               ; e8 ae ac
    9786     mov ax, ss                                ; 8c d0
    9787     mov CL, strict byte 004h                  ; b1 04
    9788     mov si, ax                                ; 89 c6
    9789     sal si, CL                                ; d3 e6
    9790     mov CL, strict byte 00ch                  ; b1 0c
    9791     shr ax, CL                                ; d3 e8
    9792     mov cx, ax                                ; 89 c1
    9793     mov dx, word [bp+006h]                    ; 8b 56 06
    9794     add dx, strict byte 00028h                ; 83 c2 28
    9795     mov ax, word [bp+014h]                    ; 8b 46 14
    9796     mov bx, strict word 0ffffh                ; bb ff ff
    9797     call 0167ch                               ; e8 91 ac
    9798     mov dx, word [bp+006h]                    ; 8b 56 06
    9799     add dx, strict byte 0002ah                ; 83 c2 2a
    9800     mov ax, word [bp+014h]                    ; 8b 46 14
    9801     mov bx, si                                ; 89 f3
    9802     call 0167ch                               ; e8 83 ac
    9803     mov bl, cl                                ; 88 cb
    9804     xor bh, bh                                ; 30 ff
    9805     mov dx, word [bp+006h]                    ; 8b 56 06
    9806     add dx, strict byte 0002ch                ; 83 c2 2c
    9807     mov ax, word [bp+014h]                    ; 8b 46 14
    9808     call 01660h                               ; e8 57 ac
    9809     mov dx, word [bp+006h]                    ; 8b 56 06
    9810     add dx, strict byte 0002dh                ; 83 c2 2d
    9811     mov ax, word [bp+014h]                    ; 8b 46 14
    9812     mov bx, 00093h                            ; bb 93 00
    9813     call 01660h                               ; e8 48 ac
    9814     mov dx, word [bp+006h]                    ; 8b 56 06
    9815     add dx, strict byte 0002eh                ; 83 c2 2e
    9816     mov ax, word [bp+014h]                    ; 8b 46 14
    9817     xor bx, bx                                ; 31 db
    9818     call 0167ch                               ; e8 56 ac
    9819     mov si, word [bp+006h]                    ; 8b 76 06
    9820     mov es, [bp+014h]                         ; 8e 46 14
    9821     mov cx, word [bp+010h]                    ; 8b 4e 10
    9822     push DS                                   ; 1e
    9823     push eax                                  ; 66 50
    9824     db  066h, 033h, 0c0h
    9825     ; xor eax, eax                              ; 66 33 c0
    9826     mov ds, ax                                ; 8e d8
    9827     mov word [00467h], sp                     ; 89 26 67 04
    9828     mov [00469h], ss                          ; 8c 16 69 04
    9829     call 06a42h                               ; e8 00 00
    9830     pop di                                    ; 5f
    9831     add di, strict byte 0001bh                ; 83 c7 1b
    9832     push strict byte 00020h                   ; 6a 20
    9833     push di                                   ; 57
    9834     lgdt [es:si+008h]                         ; 26 0f 01 54 08
    9835     lidt [cs:0efefh]                          ; 2e 0f 01 1e ef ef
    9836     mov eax, cr0                              ; 0f 20 c0
    9837     or AL, strict byte 001h                   ; 0c 01
    9838     mov cr0, eax                              ; 0f 22 c0
    9839     retf                                      ; cb
    9840     mov ax, strict word 00028h                ; b8 28 00
    9841     mov ss, ax                                ; 8e d0
    9842     mov ax, strict word 00010h                ; b8 10 00
    9843     mov ds, ax                                ; 8e d8
    9844     mov ax, strict word 00018h                ; b8 18 00
    9845     mov es, ax                                ; 8e c0
    9846     db  033h, 0f6h
    9847     ; xor si, si                                ; 33 f6
    9848     db  033h, 0ffh
    9849     ; xor di, di                                ; 33 ff
    9850     cld                                       ; fc
    9851     rep movsw                                 ; f3 a5
    9852     call 06a76h                               ; e8 00 00
    9853     pop ax                                    ; 58
    9854     push 0f000h                               ; 68 00 f0
    9855     add ax, strict byte 00018h                ; 83 c0 18
    9856     push ax                                   ; 50
    9857     mov ax, strict word 00028h                ; b8 28 00
    9858     mov ds, ax                                ; 8e d8
    9859     mov es, ax                                ; 8e c0
    9860     mov eax, cr0                              ; 0f 20 c0
    9861     and AL, strict byte 0feh                  ; 24 fe
    9862     mov cr0, eax                              ; 0f 22 c0
    9863     retf                                      ; cb
    9864     lidt [cs:0eff5h]                          ; 2e 0f 01 1e f5 ef
    9865     db  033h, 0c0h
    9866     ; xor ax, ax                                ; 33 c0
    9867     mov ds, ax                                ; 8e d8
    9868     mov es, ax                                ; 8e c0
    9869     lss sp, [00467h]                          ; 0f b2 26 67 04
    9870     pop eax                                   ; 66 58
    9871     pop DS                                    ; 1f
    9872     mov ax, di                                ; 89 f8
    9873     call 066bch                               ; e8 15 fc
    9874     sti                                       ; fb
    9875     mov byte [bp+013h], 000h                  ; c6 46 13 00
    9876     and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9877     jmp near 06858h                           ; e9 a5 fd
     9885    or bx, ax                                 ; 09 c3
     9886    mov word [bp+012h], bx                    ; 89 5e 12
     9887    jmp near 0689ch                           ; e9 41 ff
    98789888    mov ax, strict word 00031h                ; b8 31 00
    9879     call 016aeh                               ; e8 f5 ab
     9889    call 016aeh                               ; e8 4d ad
    98809890    mov dh, al                                ; 88 c6
    98819891    mov ax, strict word 00030h                ; b8 30 00
    9882     call 016aeh                               ; e8 ed ab
     9892    call 016aeh                               ; e8 45 ad
    98839893    mov dl, al                                ; 88 c2
    98849894    mov word [bp+012h], dx                    ; 89 56 12
    98859895    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9886     jbe short 06aach                          ; 76 e1
     9896    jbe short 06978h                          ; 76 05
    98879897    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    9888     jmp short 06aach                          ; eb da
     9898    and byte [bp+018h], 0feh                  ; 80 66 18 fe
     9899    jmp near 0689ch                           ; e9 1d ff
    98899900    cli                                       ; fa
    98909901    mov ax, strict word 00001h                ; b8 01 00
    9891     call 066bch                               ; e8 e3 fb
     9902    call 066ffh                               ; e8 79 fd
    98929903    mov dx, word [bp+006h]                    ; 8b 56 06
    98939904    add dx, strict byte 00038h                ; 83 c2 38
    98949905    mov ax, word [bp+014h]                    ; 8b 46 14
    98959906    mov bx, strict word 0ffffh                ; bb ff ff
    9896     call 0167ch                               ; e8 94 ab
     9907    call 0167ch                               ; e8 e7 ac
    98979908    mov dx, word [bp+006h]                    ; 8b 56 06
    98989909    add dx, strict byte 0003ah                ; 83 c2 3a
    98999910    mov ax, word [bp+014h]                    ; 8b 46 14
    99009911    xor bx, bx                                ; 31 db
    9901     call 0167ch                               ; e8 86 ab
     9912    call 0167ch                               ; e8 d9 ac
    99029913    mov dx, word [bp+006h]                    ; 8b 56 06
    99039914    add dx, strict byte 0003ch                ; 83 c2 3c
    99049915    mov ax, word [bp+014h]                    ; 8b 46 14
    99059916    mov bx, strict word 0000fh                ; bb 0f 00
    9906     call 01660h                               ; e8 5b ab
     9917    call 01660h                               ; e8 ae ac
    99079918    mov dx, word [bp+006h]                    ; 8b 56 06
    99089919    add dx, strict byte 0003dh                ; 83 c2 3d
    99099920    mov ax, word [bp+014h]                    ; 8b 46 14
    99109921    mov bx, 0009bh                            ; bb 9b 00
    9911     call 01660h                               ; e8 4c ab
     9922    call 01660h                               ; e8 9f ac
    99129923    mov dx, word [bp+006h]                    ; 8b 56 06
    99139924    add dx, strict byte 0003eh                ; 83 c2 3e
    99149925    mov ax, word [bp+014h]                    ; 8b 46 14
    99159926    xor bx, bx                                ; 31 db
    9916     call 0167ch                               ; e8 5a ab
     9927    call 0167ch                               ; e8 ad ac
    99179928    mov AL, strict byte 011h                  ; b0 11
    99189929    mov dx, strict word 00020h                ; ba 20 00
     
    99439954    out DX, AL                                ; ee
    99449955    mov si, word [bp+006h]                    ; 8b 76 06
    9945     call 06b60h                               ; e8 00 00
     9956    call 06a0dh                               ; e8 00 00
    99469957    pop di                                    ; 5f
    99479958    add di, strict byte 00018h                ; 83 c7 18
     
    99719982    push cx                                   ; 51
    99729983    retf                                      ; cb
    9973     jmp near 06858h                           ; e9 bc fc
     9984    jmp near 0689ch                           ; e9 53 fe
    99749985    mov bx, 00da0h                            ; bb a0 0d
    99759986    mov cx, ds                                ; 8c d9
    99769987    mov ax, strict word 00004h                ; b8 04 00
    9977     call 01933h                               ; e8 8c ad
     9988    call 01933h                               ; e8 df ae
    99789989    mov ax, 0086eh                            ; b8 6e 08
    99799990    push ax                                   ; 50
    99809991    mov ax, strict word 00004h                ; b8 04 00
    99819992    push ax                                   ; 50
    9982     call 01976h                               ; e8 c4 ad
     9993    call 01976h                               ; e8 17 af
    99839994    add sp, strict byte 00004h                ; 83 c4 04
    99849995    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    99879998    or ah, 086h                               ; 80 cc 86
    99889999    mov word [bp+012h], ax                    ; 89 46 12
    9989     jmp near 06858h                           ; e9 91 fc
     10000    jmp near 0689ch                           ; e9 28 fe
    999010001    mov word [bp+018h], cx                    ; 89 4e 18
    999110002    mov word [bp+012h], ax                    ; 89 46 12
    999210003    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    999310004    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    9994     jmp near 06858h                           ; e9 7e fc
     10005    jmp near 0689ch                           ; e9 15 fe
    999510006    mov dx, strict word 0000eh                ; ba 0e 00
    999610007    mov ax, strict word 00040h                ; b8 40 00
    9997     call 0166eh                               ; e8 8b aa
     10008    call 0166eh                               ; e8 de ab
    999810009    mov word [bp+014h], ax                    ; 89 46 14
    9999     jmp near 06aach                           ; e9 c3 fe
     10010    jmp near 06978h                           ; e9 e2 fe
    1000010011    mov ax, 0089dh                            ; b8 9d 08
    1000110012    push ax                                   ; 50
    1000210013    mov ax, strict word 00008h                ; b8 08 00
    10003     jmp short 06baeh                          ; eb bc
     10014    jmp short 06a5bh                          ; eb bc
    1000410015    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    10005     jne short 06c17h                          ; 75 1f
     10016    jne short 06ac4h                          ; 75 1f
    1000610017    mov word [bp+012h], ax                    ; 89 46 12
    1000710018    mov ax, word [bp+00ch]                    ; 8b 46 0c
    1000810019    xor ah, ah                                ; 30 e4
    1000910020    cmp ax, strict word 00001h                ; 3d 01 00
    10010     jc short 06c10h                           ; 72 0b
     10021    jc short 06abdh                           ; 72 0b
    1001110022    cmp ax, strict word 00003h                ; 3d 03 00
    10012     jnbe short 06c10h                         ; 77 06
     10023    jnbe short 06abdh                         ; 77 06
    1001310024    mov word [bp+018h], cx                    ; 89 4e 18
    10014     jmp near 06858h                           ; e9 48 fc
     10025    jmp near 0689ch                           ; e9 df fd
    1001510026    or byte [bp+018h], 001h                   ; 80 4e 18 01
    10016     jmp near 06858h                           ; e9 41 fc
     10027    jmp near 0689ch                           ; e9 d8 fd
    1001710028    mov bx, 00da0h                            ; bb a0 0d
    1001810029    mov cx, ds                                ; 8c d9
    1001910030    mov ax, strict word 00004h                ; b8 04 00
    10020     call 01933h                               ; e8 11 ad
     10031    call 01933h                               ; e8 64 ae
    1002110032    push word [bp+00ch]                       ; ff 76 0c
    1002210033    push word [bp+012h]                       ; ff 76 12
     
    1002510036    mov ax, strict word 00004h                ; b8 04 00
    1002610037    push ax                                   ; 50
    10027     call 01976h                               ; e8 43 ad
     10038    call 01976h                               ; e8 96 ae
    1002810039    add sp, strict byte 00008h                ; 83 c4 08
    10029     jmp near 06bb5h                           ; e9 7c ff
    10030     in ax, 06dh                               ; e5 6d
    10031     movd mm4, [bx+06eh]                       ; 0f 6e 67 6e
    10032     mov [bp-054h], gs                         ; 8c 6e ac
     10040    jmp near 06a62h                           ; e9 7c ff
     10041    arpl [si-073h], bp                        ; 63 6c 8d
     10042    insb                                      ; 6c
     10043    in ax, 06ch                               ; e5 6c
     10044    or ch, byte [di+02ah]                     ; 0a 6d 2a
     10045    insw                                      ; 6d
     10046    dec cx                                    ; 49
     10047    insw                                      ; 6d
     10048    outsw                                     ; 6f
     10049    insw                                      ; 6d
     10050    xchg bp, ax                               ; 95
     10051    insw                                      ; 6d
     10052    shr byte [di+006h], CL                    ; d2 6d 06
    1003310053    outsb                                     ; 6e
    10034     int 06eh                                  ; cd 6e
    10035     rep outsb                                 ; f3 6e
    10036     sbb word [bx+056h], bp                    ; 19 6f 56
    10037     outsw                                     ; 6f
    10038     db  08ah
    10039     outsw                                     ; 6f
    10040 _int15_function32:                           ; 0xf6c4d LB 0x3cf
     10054_int15_function32:                           ; 0xf6afa LB 0x39e
    1004110055    push bp                                   ; 55
    1004210056    mov bp, sp                                ; 89 e5
     
    1005010064    xor dh, dh                                ; 30 f6
    1005110065    cmp ax, 000e8h                            ; 3d e8 00
    10052     je short 06cb4h                           ; 74 4b
     10066    je short 06b60h                           ; 74 4a
    1005310067    cmp ax, 000d0h                            ; 3d d0 00
    10054     je short 06cadh                           ; 74 3f
     10068    je short 06b2dh                           ; 74 12
    1005510069    cmp ax, 00086h                            ; 3d 86 00
    10056     jne short 06cd2h                          ; 75 5f
     10070    jne short 06b5eh                          ; 75 3e
    1005710071    sti                                       ; fb
    10058     mov ax, word [bp+01ch]                    ; 8b 46 1c
    10059     mov dx, word [bp+018h]                    ; 8b 56 18
    10060     sal eax, 010h                             ; 66 c1 e0 10
    10061     db  08bh, 0c2h
    10062     ; mov ax, dx                                ; 8b c2
    10063     mov ebx, strict dword 00000000fh          ; 66 bb 0f 00 00 00
    10064     db  066h, 033h, 0d2h
    10065     ; xor edx, edx                              ; 66 33 d2
    10066     div ebx                                   ; 66 f7 f3
    10067     db  066h, 08bh, 0c8h
    10068     ; mov ecx, eax                              ; 66 8b c8
    10069     in AL, strict byte 061h                   ; e4 61
    10070     and AL, strict byte 010h                  ; 24 10
    10071     db  08ah, 0e0h
    10072     ; mov ah, al                                ; 8a e0
    10073     db  066h, 00bh, 0c9h
    10074     ; or ecx, ecx                               ; 66 0b c9
    10075     je near 06caah                            ; 0f 84 0e 00
    10076     in AL, strict byte 061h                   ; e4 61
    10077     and AL, strict byte 010h                  ; 24 10
    10078     db  03ah, 0c4h
    10079     ; cmp al, ah                                ; 3a c4
    10080     je short 06c9ch                           ; 74 f8
    10081     db  08ah, 0e0h
    10082     ; mov ah, al                                ; 8a e0
    10083     dec ecx                                   ; 66 49
    10084     jne short 06c9ch                          ; 75 f2
    10085     jmp near 06e61h                           ; e9 b4 01
     10072    mov dx, word [bp+01ch]                    ; 8b 56 1c
     10073    mov ax, word [bp+018h]                    ; 8b 46 18
     10074    call 066bch                               ; e8 92 fb
     10075    jmp near 06cdfh                           ; e9 b2 01
    1008610076    cmp dx, strict byte 0004fh                ; 83 fa 4f
    10087     je short 06cb6h                           ; 74 04
    10088     jmp short 06cd2h                          ; eb 1e
    10089     jmp short 06d0ch                          ; eb 56
     10077    jne short 06b5eh                          ; 75 2c
    1009010078    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    10091     jne short 06d16h                          ; 75 59
     10079    jne short 06b94h                          ; 75 5b
    1009210080    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    10093     jne short 06d16h                          ; 75 52
     10081    jne short 06b94h                          ; 75 54
    1009410082    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    10095     jne short 06d16h                          ; 75 4b
     10083    jne short 06b94h                          ; 75 4d
    1009610084    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    10097     je short 06cd4h                           ; 74 02
    10098     jmp short 06d16h                          ; eb 42
     10085    jne short 06b94h                          ; 75 46
    1009910086    mov ax, word [bp+00ah]                    ; 8b 46 0a
    1010010087    or ax, word [bp+008h]                     ; 0b 46 08
    10101     jne short 06d16h                          ; 75 3a
     10088    jne short 06b94h                          ; 75 3e
    1010210089    mov ax, word [bp+006h]                    ; 8b 46 06
    1010310090    or ax, word [bp+004h]                     ; 0b 46 04
    10104     jne short 06d16h                          ; 75 32
     10091    je short 06b62h                           ; 74 04
     10092    jmp short 06b94h                          ; eb 34
     10093    jmp short 06b8ah                          ; eb 28
    1010510094    mov word [bp+028h], bx                    ; 89 5e 28
    1010610095    mov ax, word [bp+014h]                    ; 8b 46 14
     
    1011410103    mov word [bp+020h], 03332h                ; c7 46 20 32 33
    1011510104    mov word [bp+022h], 04941h                ; c7 46 22 41 49
    10116     jmp near 06e61h                           ; e9 55 01
     10105    jmp near 06cdfh                           ; e9 55 01
    1011710106    cmp dx, strict byte 00020h                ; 83 fa 20
    10118     je short 06d1ch                           ; 74 0b
     10107    je short 06b9ah                           ; 74 0b
    1011910108    cmp dx, strict byte 00001h                ; 83 fa 01
    10120     je short 06d19h                           ; 74 03
    10121     jmp near 06e34h                           ; e9 1b 01
    10122     jmp near 06fdch                           ; e9 c0 02
     10109    je short 06b97h                           ; 74 03
     10110    jmp near 06cb2h                           ; e9 1b 01
     10111    jmp near 06e58h                           ; e9 be 02
    1012310112    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    10124     jne short 06d16h                          ; 75 f3
     10113    jne short 06b94h                          ; 75 f3
    1012510114    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    10126     jne short 06d16h                          ; 75 ec
     10115    jne short 06b94h                          ; 75 ec
    1012710116    mov ax, strict word 00035h                ; b8 35 00
    10128     call 016aeh                               ; e8 7e a9
     10117    call 016aeh                               ; e8 00 ab
    1012910118    mov bl, al                                ; 88 c3
    1013010119    xor bh, bh                                ; 30 ff
     
    1013310122    sal bx, 1                                 ; d1 e3
    1013410123    rcl dx, 1                                 ; d1 d2
    10135     loop 06d39h                               ; e2 fa
     10124    loop 06bb7h                               ; e2 fa
    1013610125    mov ax, strict word 00034h                ; b8 34 00
    10137     call 016aeh                               ; e8 69 a9
     10126    call 016aeh                               ; e8 eb aa
    1013810127    xor ah, ah                                ; 30 e4
    1013910128    mov dx, bx                                ; 89 da
     
    1014310132    adc dx, 00100h                            ; 81 d2 00 01
    1014410133    cmp dx, 00100h                            ; 81 fa 00 01
    10145     jc short 06d5fh                           ; 72 06
    10146     jne short 06d8dh                          ; 75 32
     10134    jc short 06bddh                           ; 72 06
     10135    jne short 06c0bh                          ; 75 32
    1014710136    test bx, bx                               ; 85 db
    10148     jnbe short 06d8dh                         ; 77 2e
     10137    jnbe short 06c0bh                         ; 77 2e
    1014910138    mov ax, strict word 00031h                ; b8 31 00
    10150     call 016aeh                               ; e8 49 a9
     10139    call 016aeh                               ; e8 cb aa
    1015110140    mov bl, al                                ; 88 c3
    1015210141    xor bh, bh                                ; 30 ff
     
    1015510144    sal bx, 1                                 ; d1 e3
    1015610145    rcl dx, 1                                 ; d1 d2
    10157     loop 06d6eh                               ; e2 fa
     10146    loop 06bech                               ; e2 fa
    1015810147    mov ax, strict word 00030h                ; b8 30 00
    10159     call 016aeh                               ; e8 34 a9
     10148    call 016aeh                               ; e8 b6 aa
    1016010149    xor ah, ah                                ; 30 e4
    1016110150    or bx, ax                                 ; 09 c3
     
    1016310152    sal bx, 1                                 ; d1 e3
    1016410153    rcl dx, 1                                 ; d1 d2
    10165     loop 06d81h                               ; e2 fa
     10154    loop 06bffh                               ; e2 fa
    1016610155    add bx, strict byte 00000h                ; 83 c3 00
    1016710156    adc dx, strict byte 00010h                ; 83 d2 10
    1016810157    mov ax, strict word 00062h                ; b8 62 00
    10169     call 016aeh                               ; e8 1b a9
     10158    call 016aeh                               ; e8 9d aa
    1017010159    xor ah, ah                                ; 30 e4
    1017110160    mov word [bp-00ah], ax                    ; 89 46 f6
     
    1017510164    sal word [bp-00ah], 1                     ; d1 66 f6
    1017610165    rcl word [bp-008h], 1                     ; d1 56 f8
    10177     loop 06da0h                               ; e2 f8
     10166    loop 06c1eh                               ; e2 f8
    1017810167    mov ax, strict word 00061h                ; b8 61 00
    10179     call 016aeh                               ; e8 00 a9
     10168    call 016aeh                               ; e8 82 aa
    1018010169    xor ah, ah                                ; 30 e4
    1018110170    or word [bp-00ah], ax                     ; 09 46 f6
     
    1018410173    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    1018510174    mov ax, strict word 00063h                ; b8 63 00
    10186     call 016aeh                               ; e8 ea a8
     10175    call 016aeh                               ; e8 6c aa
     10176    mov byte [bp-004h], al                    ; 88 46 fc
    1018710177    mov byte [bp-006h], al                    ; 88 46 fa
    10188     mov byte [bp-004h], al                    ; 88 46 fc
    1018910178    mov ax, word [bp+014h]                    ; 8b 46 14
    1019010179    cmp ax, strict word 00009h                ; 3d 09 00
    10191     jnbe short 06e34h                         ; 77 62
     10180    jnbe short 06cb2h                         ; 77 62
    1019210181    mov si, ax                                ; 89 c6
    1019310182    sal si, 1                                 ; d1 e6
    10194     mov cx, bx                                ; 89 d9
    10195     add cx, strict byte 00000h                ; 83 c1 00
    10196     mov ax, dx                                ; 89 d0
    10197     adc ax, strict word 0ffffh                ; 15 ff ff
    10198     jmp word [cs:si+06c39h]                   ; 2e ff a4 39 6c
     10183    mov ax, bx                                ; 89 d8
     10184    add ax, strict word 00000h                ; 05 00 00
     10185    mov cx, dx                                ; 89 d1
     10186    adc cx, strict byte 0ffffh                ; 83 d1 ff
     10187    jmp word [cs:si+06ae6h]                   ; 2e ff a4 e6 6a
    1019910188    mov ax, strict word 00001h                ; b8 01 00
    1020010189    push ax                                   ; 50
     
    1021010199    xor bx, bx                                ; 31 db
    1021110200    xor cx, cx                                ; 31 c9
    10212     call 066ech                               ; e8 ea f8
     10201    call 0672fh                               ; e8 af fa
    1021310202    mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
    1021410203    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    10215     jmp near 06fc1h                           ; e9 b2 01
     10204    jmp near 06e3dh                           ; e9 b0 01
    1021610205    mov ax, strict word 00002h                ; b8 02 00
    1021710206    push ax                                   ; 50
     
    1022710216    mov bx, 0fc00h                            ; bb 00 fc
    1022810217    mov cx, strict word 00009h                ; b9 09 00
    10229     call 066ech                               ; e8 bf f8
     10218    call 0672fh                               ; e8 84 fa
    1023010219    mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
    10231     jmp short 06e07h                          ; eb d3
     10220    jmp short 06c85h                          ; eb d3
    1023210221    mov bx, 00da0h                            ; bb a0 0d
    1023310222    mov cx, ds                                ; 8c d9
    1023410223    mov ax, strict word 00004h                ; b8 04 00
    10235     call 01933h                               ; e8 f4 aa
     10224    call 01933h                               ; e8 76 ac
    1023610225    push word [bp+014h]                       ; ff 76 14
    1023710226    push word [bp+020h]                       ; ff 76 20
     
    1024010229    mov ax, strict word 00004h                ; b8 04 00
    1024110230    push ax                                   ; 50
    10242     call 01976h                               ; e8 26 ab
     10231    call 01976h                               ; e8 a8 ac
    1024310232    add sp, strict byte 00008h                ; 83 c4 08
    1024410233    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    1026410253    xor bx, bx                                ; 31 db
    1026510254    mov cx, strict word 0000fh                ; b9 0f 00
    10266     call 066ech                               ; e8 68 f8
     10255    call 0672fh                               ; e8 2d fa
    1026710256    mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
    10268     jmp near 06e07h                           ; e9 7b ff
     10257    jmp near 06c85h                           ; e9 7b ff
    1026910258    mov dx, strict word 00001h                ; ba 01 00
    1027010259    push dx                                   ; 52
     
    1027210261    push dx                                   ; 52
    1027310262    push dx                                   ; 52
    10274     push ax                                   ; 50
    1027510263    push cx                                   ; 51
     10264    push ax                                   ; 50
    1027610265    mov dx, word [bp+004h]                    ; 8b 56 04
    1027710266    mov ax, word [bp+024h]                    ; 8b 46 24
    1027810267    xor bx, bx                                ; 31 db
    1027910268    mov cx, strict word 00010h                ; b9 10 00
    10280     call 066ech                               ; e8 48 f8
     10269    call 0672fh                               ; e8 0d fa
    1028110270    mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
    10282     jmp near 06e07h                           ; e9 5b ff
     10271    jmp near 06c85h                           ; e9 5b ff
    1028310272    mov si, strict word 00003h                ; be 03 00
    1028410273    push si                                   ; 56
     
    1029010279    mov dx, word [bp+004h]                    ; 8b 56 04
    1029110280    mov si, word [bp+024h]                    ; 8b 76 24
    10292     mov bx, cx                                ; 89 cb
    10293     mov cx, ax                                ; 89 c1
     10281    mov bx, ax                                ; 89 c3
    1029410282    mov ax, si                                ; 89 f0
    10295     call 066ech                               ; e8 27 f8
     10283    call 0672fh                               ; e8 ee f9
    1029610284    mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
    10297     jmp near 06e07h                           ; e9 3a ff
     10285    jmp near 06c85h                           ; e9 3c ff
    1029810286    mov ax, strict word 00002h                ; b8 02 00
    1029910287    push ax                                   ; 50
     
    1030910297    xor bx, bx                                ; 31 db
    1031010298    mov cx, 0fec0h                            ; b9 c0 fe
    10311     call 066ech                               ; e8 01 f8
     10299    call 0672fh                               ; e8 c8 f9
    1031210300    mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
    10313     jmp near 06e07h                           ; e9 14 ff
     10301    jmp near 06c85h                           ; e9 16 ff
    1031410302    mov ax, strict word 00002h                ; b8 02 00
    1031510303    push ax                                   ; 50
     
    1032510313    xor bx, bx                                ; 31 db
    1032610314    mov cx, 0fee0h                            ; b9 e0 fe
    10327     call 066ech                               ; e8 db f7
     10315    call 0672fh                               ; e8 a2 f9
    1032810316    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    10329     jmp near 06e07h                           ; e9 ee fe
     10317    jmp near 06c85h                           ; e9 f0 fe
    1033010318    mov ax, strict word 00002h                ; b8 02 00
    1033110319    push ax                                   ; 50
     
    1033910327    xor bx, bx                                ; 31 db
    1034010328    mov cx, strict word 0fffch                ; b9 fc ff
    10341     call 066ech                               ; e8 bb f7
    10342     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10343     jne short 06f3eh                          ; 75 07
     10329    call 0672fh                               ; e8 82 f9
     10330    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     10331    jne short 06dbah                          ; 75 07
    1034410332    mov ax, word [bp-008h]                    ; 8b 46 f8
    1034510333    test ax, ax                               ; 85 c0
    10346     je short 06f4eh                           ; 74 10
     10334    je short 06dcah                           ; 74 10
    1034710335    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10348     jmp near 06e07h                           ; e9 c1 fe
     10336    jmp near 06c85h                           ; e9 c3 fe
    1034910337    mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
    10350     jmp near 06e07h                           ; e9 b9 fe
     10338    jmp near 06c85h                           ; e9 bb fe
    1035110339    mov word [bp+014h], ax                    ; 89 46 14
    1035210340    mov word [bp+016h], ax                    ; 89 46 16
    10353     jmp short 06fc1h                          ; eb 6b
     10341    jmp short 06e3dh                          ; eb 6b
    1035410342    mov ax, strict word 00002h                ; b8 02 00
    1035510343    push ax                                   ; 50
     
    1036310351    xor bx, bx                                ; 31 db
    1036410352    xor cx, cx                                ; 31 c9
    10365     call 066ech                               ; e8 7f f7
    10366     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10367     jne short 06f7ah                          ; 75 07
     10353    call 0672fh                               ; e8 46 f9
     10354    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     10355    jne short 06df6h                          ; 75 07
    1036810356    mov ax, word [bp-008h]                    ; 8b 46 f8
    1036910357    test ax, ax                               ; 85 c0
    10370     je short 06f82h                           ; 74 08
     10358    je short 06dfeh                           ; 74 08
    1037110359    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10372     jmp near 06e07h                           ; e9 85 fe
     10360    jmp near 06c85h                           ; e9 87 fe
    1037310361    mov word [bp+014h], ax                    ; 89 46 14
    1037410362    mov word [bp+016h], ax                    ; 89 46 16
    10375     jmp short 06fc1h                          ; eb 37
    10376     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10377     jne short 06f96h                          ; 75 06
     10363    jmp short 06e3dh                          ; eb 37
     10364    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     10365    jne short 06e12h                          ; 75 06
    1037810366    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    10379     je short 06fc1h                           ; 74 2b
     10367    je short 06e3dh                           ; 74 2b
    1038010368    mov ax, strict word 00001h                ; b8 01 00
    1038110369    push ax                                   ; 50
    10382     mov al, byte [bp-004h]                    ; 8a 46 fc
     10370    mov al, byte [bp-006h]                    ; 8a 46 fa
    1038310371    db  0feh, 0c0h
    1038410372    ; inc al                                    ; fe c0
     
    1039310381    xor bx, bx                                ; 31 db
    1039410382    xor cx, cx                                ; 31 c9
    10395     call 066ech                               ; e8 33 f7
     10383    call 0672fh                               ; e8 fa f8
    1039610384    xor ax, ax                                ; 31 c0
    1039710385    mov word [bp+014h], ax                    ; 89 46 14
     
    1040210390    mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
    1040310391    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    10404     jmp near 06e61h                           ; e9 85 fe
     10392    jmp near 06cdfh                           ; e9 87 fe
    1040510393    mov word [bp+028h], bx                    ; 89 5e 28
    1040610394    mov ax, strict word 00031h                ; b8 31 00
    10407     call 016aeh                               ; e8 c9 a6
     10395    call 016aeh                               ; e8 4d a8
    1040810396    mov dh, al                                ; 88 c6
    1040910397    mov ax, strict word 00030h                ; b8 30 00
    10410     call 016aeh                               ; e8 c1 a6
     10398    call 016aeh                               ; e8 45 a8
    1041110399    mov dl, al                                ; 88 c2
    1041210400    mov word [bp+01ch], dx                    ; 89 56 1c
    1041310401    cmp dx, 03c00h                            ; 81 fa 00 3c
    10414     jbe short 06ffdh                          ; 76 05
     10402    jbe short 06e79h                          ; 76 05
    1041510403    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    1041610404    mov ax, strict word 00035h                ; b8 35 00
    10417     call 016aeh                               ; e8 ab a6
     10405    call 016aeh                               ; e8 2f a8
    1041810406    mov dh, al                                ; 88 c6
    1041910407    mov ax, strict word 00034h                ; b8 34 00
    10420     call 016aeh                               ; e8 a3 a6
     10408    call 016aeh                               ; e8 27 a8
    1042110409    mov dl, al                                ; 88 c2
    1042210410    mov word [bp+018h], dx                    ; 89 56 18
     
    1042410412    mov word [bp+020h], ax                    ; 89 46 20
    1042510413    mov word [bp+014h], dx                    ; 89 56 14
    10426     jmp near 06e61h                           ; e9 45 fe
    10427 _inv_op_handler:                             ; 0xf701c LB 0x18f
     10414    jmp near 06cdfh                           ; e9 47 fe
     10415_inv_op_handler:                             ; 0xf6e98 LB 0x18f
    1042810416    push bp                                   ; 55
    1042910417    mov bp, sp                                ; 89 e5
     
    1043410422    les bx, [bp+018h]                         ; c4 5e 18
    1043510423    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10436     jne short 07032h                          ; 75 06
     10424    jne short 06eaeh                          ; 75 06
    1043710425    inc word [bp+018h]                        ; ff 46 18
    10438     jmp near 071a4h                           ; e9 72 01
     10426    jmp near 07020h                           ; e9 72 01
    1043910427    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10440     je short 0703ch                           ; 74 03
    10441     jmp near 071a0h                           ; e9 64 01
     10428    je short 06eb8h                           ; 74 03
     10429    jmp near 0701ch                           ; e9 64 01
    1044210430    mov si, 00800h                            ; be 00 08
    1044310431    xor ax, ax                                ; 31 c0
     
    1046810456    sal ax, 1                                 ; d1 e0
    1046910457    rcl dx, 1                                 ; d1 d2
    10470     loop 0708dh                               ; e2 fa
     10458    loop 06f09h                               ; e2 fa
    1047110459    cmp bx, dx                                ; 39 d3
    10472     jne short 0709bh                          ; 75 04
     10460    jne short 06f17h                          ; 75 04
    1047310461    cmp di, ax                                ; 39 c7
    10474     je short 070a0h                           ; 74 05
     10462    je short 06f1ch                           ; 74 05
    1047510463    mov word [bp-006h], strict word 00001h    ; c7 46 fa 01 00
    1047610464    mov es, [bp-008h]                         ; 8e 46 f8
     
    1048310471    sal ax, 1                                 ; d1 e0
    1048410472    rcl dx, 1                                 ; d1 d2
    10485     loop 070b6h                               ; e2 fa
     10473    loop 06f32h                               ; e2 fa
    1048610474    cmp bx, dx                                ; 39 d3
    10487     jne short 070c4h                          ; 75 04
     10475    jne short 06f40h                          ; 75 04
    1048810476    cmp di, ax                                ; 39 c7
    10489     je short 070c8h                           ; 74 04
     10477    je short 06f44h                           ; 74 04
    1049010478    or byte [bp-006h], 002h                   ; 80 4e fa 02
    1049110479    xor ax, ax                                ; 31 c0
     
    1053710525    mov ax, strict word 00008h                ; b8 08 00
    1053810526    test cx, strict word 00001h               ; f7 c1 01 00
    10539     je near 0715dh                            ; 0f 84 02 00
     10527    je near 06fd9h                            ; 0f 84 02 00
    1054010528    mov es, ax                                ; 8e c0
    1054110529    test cx, strict word 00002h               ; f7 c1 02 00
    10542     je near 07185h                            ; 0f 84 20 00
     10530    je near 07001h                            ; 0f 84 20 00
    1054310531    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1054410532    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1055710545    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1055810546    iret                                      ; cf
    10559     jmp short 071a4h                          ; eb 04
     10547    jmp short 07020h                          ; eb 04
    1056010548    sti                                       ; fb
    1056110549    hlt                                       ; f4
    10562     jmp short 071a1h                          ; eb fd
     10550    jmp short 0701dh                          ; eb fd
    1056310551    lea sp, [bp-004h]                         ; 8d 66 fc
    1056410552    pop di                                    ; 5f
     
    1056610554    pop bp                                    ; 5d
    1056710555    retn                                      ; c3
    10568 init_rtc_:                                   ; 0xf71ab LB 0x28
     10556init_rtc_:                                   ; 0xf7027 LB 0x28
    1056910557    push bp                                   ; 55
    1057010558    mov bp, sp                                ; 89 e5
     
    1057210560    mov dx, strict word 00026h                ; ba 26 00
    1057310561    mov ax, strict word 0000ah                ; b8 0a 00
    10574     call 016c9h                               ; e8 11 a5
     10562    call 016c9h                               ; e8 95 a6
    1057510563    mov dx, strict word 00002h                ; ba 02 00
    1057610564    mov ax, strict word 0000bh                ; b8 0b 00
    10577     call 016c9h                               ; e8 08 a5
     10565    call 016c9h                               ; e8 8c a6
    1057810566    mov ax, strict word 0000ch                ; b8 0c 00
    10579     call 016aeh                               ; e8 e7 a4
     10567    call 016aeh                               ; e8 6b a6
    1058010568    mov ax, strict word 0000dh                ; b8 0d 00
    10581     call 016aeh                               ; e8 e1 a4
     10569    call 016aeh                               ; e8 65 a6
    1058210570    lea sp, [bp-002h]                         ; 8d 66 fe
    1058310571    pop dx                                    ; 5a
    1058410572    pop bp                                    ; 5d
    1058510573    retn                                      ; c3
    10586 rtc_updating_:                               ; 0xf71d3 LB 0x21
     10574rtc_updating_:                               ; 0xf704f LB 0x21
    1058710575    push bp                                   ; 55
    1058810576    mov bp, sp                                ; 89 e5
     
    1059010578    mov dx, 061a8h                            ; ba a8 61
    1059110579    dec dx                                    ; 4a
    10592     je short 071ebh                           ; 74 0e
     10580    je short 07067h                           ; 74 0e
    1059310581    mov ax, strict word 0000ah                ; b8 0a 00
    10594     call 016aeh                               ; e8 cb a4
     10582    call 016aeh                               ; e8 4f a6
    1059510583    test AL, strict byte 080h                 ; a8 80
    10596     jne short 071dah                          ; 75 f3
     10584    jne short 07056h                          ; 75 f3
    1059710585    xor ax, ax                                ; 31 c0
    10598     jmp short 071eeh                          ; eb 03
     10586    jmp short 0706ah                          ; eb 03
    1059910587    mov ax, strict word 00001h                ; b8 01 00
    1060010588    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1060210590    pop bp                                    ; 5d
    1060310591    retn                                      ; c3
    10604 _int70_function:                             ; 0xf71f4 LB 0xbf
     10592_int70_function:                             ; 0xf7070 LB 0xbf
    1060510593    push bp                                   ; 55
    1060610594    mov bp, sp                                ; 89 e5
     
    1060810596    push ax                                   ; 50
    1060910597    mov ax, strict word 0000bh                ; b8 0b 00
    10610     call 016aeh                               ; e8 af a4
     10598    call 016aeh                               ; e8 33 a6
    1061110599    mov bl, al                                ; 88 c3
    1061210600    mov byte [bp-004h], al                    ; 88 46 fc
    1061310601    mov ax, strict word 0000ch                ; b8 0c 00
    10614     call 016aeh                               ; e8 a4 a4
     10602    call 016aeh                               ; e8 28 a6
    1061510603    mov dl, al                                ; 88 c2
    1061610604    test bl, 060h                             ; f6 c3 60
    10617     jne short 07214h                          ; 75 03
    10618     jmp near 0729ah                           ; e9 86 00
     10605    jne short 07090h                          ; 75 03
     10606    jmp near 07116h                           ; e9 86 00
    1061910607    test AL, strict byte 020h                 ; a8 20
    10620     je short 0721ch                           ; 74 04
     10608    je short 07098h                           ; 74 04
    1062110609    sti                                       ; fb
    1062210610    int 04ah                                  ; cd 4a
    1062310611    cli                                       ; fa
    1062410612    test dl, 040h                             ; f6 c2 40
    10625     je short 07284h                           ; 74 63
     10613    je short 07100h                           ; 74 63
    1062610614    mov dx, 000a0h                            ; ba a0 00
    1062710615    mov ax, strict word 00040h                ; b8 40 00
    10628     call 01652h                               ; e8 28 a4
     10616    call 01652h                               ; e8 ac a5
    1062910617    test al, al                               ; 84 c0
    10630     je short 0729ah                           ; 74 6c
     10618    je short 07116h                           ; 74 6c
    1063110619    mov dx, 0009ch                            ; ba 9c 00
    1063210620    mov ax, strict word 00040h                ; b8 40 00
    10633     call 0168ah                               ; e8 53 a4
     10621    call 0168ah                               ; e8 d7 a5
    1063410622    test dx, dx                               ; 85 d2
    10635     jne short 07286h                          ; 75 4b
     10623    jne short 07102h                          ; 75 4b
    1063610624    cmp ax, 003d1h                            ; 3d d1 03
    10637     jnc short 07286h                          ; 73 46
     10625    jnc short 07102h                          ; 73 46
    1063810626    mov dx, 00098h                            ; ba 98 00
    1063910627    mov ax, strict word 00040h                ; b8 40 00
    10640     call 0166eh                               ; e8 25 a4
     10628    call 0166eh                               ; e8 a9 a5
    1064110629    mov si, ax                                ; 89 c6
    1064210630    mov dx, 0009ah                            ; ba 9a 00
    1064310631    mov ax, strict word 00040h                ; b8 40 00
    10644     call 0166eh                               ; e8 1a a4
     10632    call 0166eh                               ; e8 9e a5
    1064510633    mov cx, ax                                ; 89 c1
    1064610634    xor bx, bx                                ; 31 db
    1064710635    mov dx, 000a0h                            ; ba a0 00
    1064810636    mov ax, strict word 00040h                ; b8 40 00
    10649     call 01660h                               ; e8 ff a3
     10637    call 01660h                               ; e8 83 a5
    1065010638    mov dl, byte [bp-004h]                    ; 8a 56 fc
    1065110639    and dl, 037h                              ; 80 e2 37
    1065210640    xor dh, dh                                ; 30 f6
    1065310641    mov ax, strict word 0000bh                ; b8 0b 00
    10654     call 016c9h                               ; e8 5a a4
     10642    call 016c9h                               ; e8 de a5
    1065510643    mov dx, cx                                ; 89 ca
    1065610644    mov ax, si                                ; 89 f0
    10657     call 01652h                               ; e8 dc a3
     10645    call 01652h                               ; e8 60 a5
    1065810646    mov bl, al                                ; 88 c3
    1065910647    or bl, 080h                               ; 80 cb 80
     
    1066110649    mov dx, cx                                ; 89 ca
    1066210650    mov ax, si                                ; 89 f0
    10663     call 01660h                               ; e8 dc a3
    10664     jmp short 0729ah                          ; eb 14
     10651    call 01660h                               ; e8 60 a5
     10652    jmp short 07116h                          ; eb 14
    1066510653    mov bx, ax                                ; 89 c3
    1066610654    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1066910657    mov dx, 0009ch                            ; ba 9c 00
    1067010658    mov ax, strict word 00040h                ; b8 40 00
    10671     call 0169ch                               ; e8 02 a4
    10672     call 0e030h                               ; e8 93 6d
     10659    call 0169ch                               ; e8 86 a5
     10660    call 0e030h                               ; e8 17 6f
    1067310661    lea sp, [bp-002h]                         ; 8d 66 fe
    1067410662    pop si                                    ; 5e
    1067510663    pop bp                                    ; 5d
    1067610664    retn                                      ; c3
    10677     leave                                     ; c9
    10678     jc short 07296h                           ; 72 f0
    10679     jc short 072bdh                           ; 72 15
    10680     jnc short 072fbh                          ; 73 51
    10681     jnc short 0724fh                          ; 73 a3
    10682     jnc short 07288h                          ; 73 da
    10683     jnc short 072d1h                          ; 73 21
    10684     je short 0732eh                           ; 74 7c
    10685     db  074h
    10686 _int1a_function:                             ; 0xf72b3 LB 0x1d9
     10665    inc bp                                    ; 45
     10666    jno short 0718eh                          ; 71 6c
     10667    jno short 070b5h                          ; 71 91
     10668    jno short 070f3h                          ; 71 cd
     10669    jno short 07147h                          ; 71 1f
     10670    jc short 07180h                           ; 72 56
     10671    jc short 070c9h                           ; 72 9d
     10672    jc short 07126h                           ; 72 f8
     10673    db  072h
     10674_int1a_function:                             ; 0xf712f LB 0x1d9
    1068710675    push bp                                   ; 55
    1068810676    mov bp, sp                                ; 89 e5
     
    1069010678    mov al, byte [bp+013h]                    ; 8a 46 13
    1069110679    cmp AL, strict byte 007h                  ; 3c 07
    10692     jnbe short 0731ch                         ; 77 5e
     10680    jnbe short 07198h                         ; 77 5e
    1069310681    mov bl, al                                ; 88 c3
    1069410682    xor bh, bh                                ; 30 ff
    1069510683    sal bx, 1                                 ; d1 e3
    10696     jmp word [cs:bx+072a3h]                   ; 2e ff a7 a3 72
     10684    jmp word [cs:bx+0711fh]                   ; 2e ff a7 1f 71
    1069710685    cli                                       ; fa
    1069810686    mov bx, 0046eh                            ; bb 6e 04
     
    1070910697    mov byte [es:bx], 000h                    ; 26 c6 07 00
    1071010698    sti                                       ; fb
    10711     jmp short 0731ch                          ; eb 2c
     10699    jmp short 07198h                          ; eb 2c
    1071210700    cli                                       ; fa
    1071310701    mov bx, 0046eh                            ; bb 6e 04
     
    1072310711    sti                                       ; fb
    1072410712    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10725     jmp short 0731ch                          ; eb 07
    10726     call 071d3h                               ; e8 bb fe
     10713    jmp short 07198h                          ; eb 07
     10714    call 0704fh                               ; e8 bb fe
    1072710715    test ax, ax                               ; 85 c0
    10728     je short 0731fh                           ; 74 03
    10729     jmp near 0734dh                           ; e9 2e 00
     10716    je short 0719bh                           ; 74 03
     10717    jmp near 071c9h                           ; e9 2e 00
    1073010718    xor ax, ax                                ; 31 c0
    10731     call 016aeh                               ; e8 8a a3
     10719    call 016aeh                               ; e8 0e a5
    1073210720    mov byte [bp+00fh], al                    ; 88 46 0f
    1073310721    mov ax, strict word 00002h                ; b8 02 00
    10734     call 016aeh                               ; e8 81 a3
     10722    call 016aeh                               ; e8 05 a5
    1073510723    mov byte [bp+010h], al                    ; 88 46 10
    1073610724    mov ax, strict word 00004h                ; b8 04 00
    10737     call 016aeh                               ; e8 78 a3
     10725    call 016aeh                               ; e8 fc a4
    1073810726    mov dl, al                                ; 88 c2
    1073910727    mov byte [bp+011h], al                    ; 88 46 11
    1074010728    mov ax, strict word 0000bh                ; b8 0b 00
    10741     call 016aeh                               ; e8 6d a3
     10729    call 016aeh                               ; e8 f1 a4
    1074210730    and AL, strict byte 001h                  ; 24 01
    1074310731    mov byte [bp+00eh], al                    ; 88 46 0e
     
    1074710735    pop bp                                    ; 5d
    1074810736    retn                                      ; c3
    10749     call 071d3h                               ; e8 7f fe
     10737    call 0704fh                               ; e8 7f fe
    1075010738    test ax, ax                               ; 85 c0
    10751     je short 0735bh                           ; 74 03
    10752     call 071abh                               ; e8 50 fe
     10739    je short 071d7h                           ; 74 03
     10740    call 07027h                               ; e8 50 fe
    1075310741    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1075410742    xor dh, dh                                ; 30 f6
    1075510743    xor ax, ax                                ; 31 c0
    10756     call 016c9h                               ; e8 64 a3
     10744    call 016c9h                               ; e8 e8 a4
    1075710745    mov dl, byte [bp+010h]                    ; 8a 56 10
    1075810746    xor dh, dh                                ; 30 f6
    1075910747    mov ax, strict word 00002h                ; b8 02 00
    10760     call 016c9h                               ; e8 59 a3
     10748    call 016c9h                               ; e8 dd a4
    1076110749    mov dl, byte [bp+011h]                    ; 8a 56 11
    1076210750    xor dh, dh                                ; 30 f6
    1076310751    mov ax, strict word 00004h                ; b8 04 00
    10764     call 016c9h                               ; e8 4e a3
     10752    call 016c9h                               ; e8 d2 a4
    1076510753    mov ax, strict word 0000bh                ; b8 0b 00
    10766     call 016aeh                               ; e8 2d a3
     10754    call 016aeh                               ; e8 b1 a4
    1076710755    mov bl, al                                ; 88 c3
    1076810756    and bl, 060h                              ; 80 e3 60
     
    1077410762    xor dh, dh                                ; 30 f6
    1077510763    mov ax, strict word 0000bh                ; b8 0b 00
    10776     call 016c9h                               ; e8 2f a3
     10764    call 016c9h                               ; e8 b3 a4
    1077710765    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1077810766    mov byte [bp+012h], bl                    ; 88 5e 12
    10779     jmp short 0734dh                          ; eb aa
     10767    jmp short 071c9h                          ; eb aa
    1078010768    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10781     call 071d3h                               ; e8 29 fe
     10769    call 0704fh                               ; e8 29 fe
    1078210770    test ax, ax                               ; 85 c0
    10783     je short 073b0h                           ; 74 02
    10784     jmp short 0734dh                          ; eb 9d
     10771    je short 0722ch                           ; 74 02
     10772    jmp short 071c9h                          ; eb 9d
    1078510773    mov ax, strict word 00009h                ; b8 09 00
    10786     call 016aeh                               ; e8 f8 a2
     10774    call 016aeh                               ; e8 7c a4
    1078710775    mov byte [bp+010h], al                    ; 88 46 10
    1078810776    mov ax, strict word 00008h                ; b8 08 00
    10789     call 016aeh                               ; e8 ef a2
     10777    call 016aeh                               ; e8 73 a4
    1079010778    mov byte [bp+00fh], al                    ; 88 46 0f
    1079110779    mov ax, strict word 00007h                ; b8 07 00
    10792     call 016aeh                               ; e8 e6 a2
     10780    call 016aeh                               ; e8 6a a4
    1079310781    mov byte [bp+00eh], al                    ; 88 46 0e
    1079410782    mov ax, strict word 00032h                ; b8 32 00
    10795     call 016aeh                               ; e8 dd a2
     10783    call 016aeh                               ; e8 61 a4
    1079610784    mov byte [bp+011h], al                    ; 88 46 11
    1079710785    mov byte [bp+012h], al                    ; 88 46 12
    10798     jmp near 0734dh                           ; e9 73 ff
    10799     call 071d3h                               ; e8 f6 fd
     10786    jmp near 071c9h                           ; e9 73 ff
     10787    call 0704fh                               ; e8 f6 fd
    1080010788    test ax, ax                               ; 85 c0
    10801     je short 073e7h                           ; 74 06
    10802     call 071abh                               ; e8 c7 fd
    10803     jmp near 0734dh                           ; e9 66 ff
     10789    je short 07263h                           ; 74 06
     10790    call 07027h                               ; e8 c7 fd
     10791    jmp near 071c9h                           ; e9 66 ff
    1080410792    mov dl, byte [bp+010h]                    ; 8a 56 10
    1080510793    xor dh, dh                                ; 30 f6
    1080610794    mov ax, strict word 00009h                ; b8 09 00
    10807     call 016c9h                               ; e8 d7 a2
     10795    call 016c9h                               ; e8 5b a4
    1080810796    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1080910797    xor dh, dh                                ; 30 f6
    1081010798    mov ax, strict word 00008h                ; b8 08 00
    10811     call 016c9h                               ; e8 cc a2
     10799    call 016c9h                               ; e8 50 a4
    1081210800    mov dl, byte [bp+00eh]                    ; 8a 56 0e
    1081310801    xor dh, dh                                ; 30 f6
    1081410802    mov ax, strict word 00007h                ; b8 07 00
    10815     call 016c9h                               ; e8 c1 a2
     10803    call 016c9h                               ; e8 45 a4
    1081610804    mov dl, byte [bp+011h]                    ; 8a 56 11
    1081710805    xor dh, dh                                ; 30 f6
    1081810806    mov ax, strict word 00032h                ; b8 32 00
    10819     call 016c9h                               ; e8 b6 a2
     10807    call 016c9h                               ; e8 3a a4
    1082010808    mov ax, strict word 0000bh                ; b8 0b 00
    10821     call 016aeh                               ; e8 95 a2
     10809    call 016aeh                               ; e8 19 a4
    1082210810    mov bl, al                                ; 88 c3
    1082310811    and bl, 07fh                              ; 80 e3 7f
    10824     jmp near 07390h                           ; e9 6f ff
     10812    jmp near 0720ch                           ; e9 6f ff
    1082510813    mov ax, strict word 0000bh                ; b8 0b 00
    10826     call 016aeh                               ; e8 87 a2
     10814    call 016aeh                               ; e8 0b a4
    1082710815    mov bl, al                                ; 88 c3
    1082810816    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1082910817    test AL, strict byte 020h                 ; a8 20
    10830     je short 07435h                           ; 74 03
    10831     jmp near 0734dh                           ; e9 18 ff
    10832     call 071d3h                               ; e8 9b fd
     10818    je short 072b1h                           ; 74 03
     10819    jmp near 071c9h                           ; e9 18 ff
     10820    call 0704fh                               ; e8 9b fd
    1083310821    test ax, ax                               ; 85 c0
    10834     je short 0743fh                           ; 74 03
    10835     call 071abh                               ; e8 6c fd
     10822    je short 072bbh                           ; 74 03
     10823    call 07027h                               ; e8 6c fd
    1083610824    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1083710825    xor dh, dh                                ; 30 f6
    1083810826    mov ax, strict word 00001h                ; b8 01 00
    10839     call 016c9h                               ; e8 7f a2
     10827    call 016c9h                               ; e8 03 a4
    1084010828    mov dl, byte [bp+010h]                    ; 8a 56 10
    1084110829    xor dh, dh                                ; 30 f6
    1084210830    mov ax, strict word 00003h                ; b8 03 00
    10843     call 016c9h                               ; e8 74 a2
     10831    call 016c9h                               ; e8 f8 a3
    1084410832    mov dl, byte [bp+011h]                    ; 8a 56 11
    1084510833    xor dh, dh                                ; 30 f6
    1084610834    mov ax, strict word 00005h                ; b8 05 00
    10847     call 016c9h                               ; e8 69 a2
     10835    call 016c9h                               ; e8 ed a3
    1084810836    mov dx, 000a1h                            ; ba a1 00
    1084910837    in AL, DX                                 ; ec
     
    1085710845    xor dh, dh                                ; 30 f6
    1085810846    mov ax, strict word 0000bh                ; b8 0b 00
    10859     call 016c9h                               ; e8 50 a2
    10860     jmp near 0734dh                           ; e9 d1 fe
     10847    call 016c9h                               ; e8 d4 a3
     10848    jmp near 071c9h                           ; e9 d1 fe
    1086110849    mov ax, strict word 0000bh                ; b8 0b 00
    10862     call 016aeh                               ; e8 2c a2
     10850    call 016aeh                               ; e8 b0 a3
    1086310851    mov bl, al                                ; 88 c3
    1086410852    mov dl, al                                ; 88 c2
    1086510853    and dl, 057h                              ; 80 e2 57
    10866     jmp near 07392h                           ; e9 06 ff
    10867 send_to_mouse_ctrl_:                         ; 0xf748c LB 0x38
     10854    jmp near 0720eh                           ; e9 06 ff
     10855send_to_mouse_ctrl_:                         ; 0xf7308 LB 0x38
    1086810856    push bp                                   ; 55
    1086910857    mov bp, sp                                ; 89 e5
     
    1087610864    ; sub ah, ah                                ; 2a e4
    1087710865    test AL, strict byte 002h                 ; a8 02
    10878     je short 074afh                           ; 74 12
     10866    je short 0732bh                           ; 74 12
    1087910867    mov ax, 008eeh                            ; b8 ee 08
    1088010868    push ax                                   ; 50
     
    1088310871    mov ax, strict word 00007h                ; b8 07 00
    1088410872    push ax                                   ; 50
    10885     call 01976h                               ; e8 ca a4
     10873    call 01976h                               ; e8 4e a6
    1088610874    add sp, strict byte 00006h                ; 83 c4 06
    1088710875    mov AL, strict byte 0d4h                  ; b0 d4
     
    1089710885    pop bp                                    ; 5d
    1089810886    retn                                      ; c3
    10899 get_mouse_data_:                             ; 0xf74c4 LB 0x5d
     10887get_mouse_data_:                             ; 0xf7340 LB 0x5d
    1090010888    push bp                                   ; 55
    1090110889    mov bp, sp                                ; 89 e5
     
    1091210900    and ax, strict word 00021h                ; 25 21 00
    1091310901    cmp ax, strict word 00021h                ; 3d 21 00
    10914     je short 07507h                           ; 74 28
     10902    je short 07383h                           ; 74 28
    1091510903    test cx, cx                               ; 85 c9
    10916     je short 07507h                           ; 74 24
     10904    je short 07383h                           ; 74 24
    1091710905    mov dx, strict word 00061h                ; ba 61 00
    1091810906    in AL, DX                                 ; ec
     
    1093110919    xor ah, ah                                ; 30 e4
    1093210920    cmp dx, ax                                ; 39 c2
    10933     je short 074eeh                           ; 74 ea
     10921    je short 0736ah                           ; 74 ea
    1093410922    dec cx                                    ; 49
    10935     jmp short 074d1h                          ; eb ca
     10923    jmp short 0734dh                          ; eb ca
    1093610924    test cx, cx                               ; 85 c9
    10937     jne short 0750fh                          ; 75 04
     10925    jne short 0738bh                          ; 75 04
    1093810926    mov AL, strict byte 001h                  ; b0 01
    10939     jmp short 0751ah                          ; eb 0b
     10927    jmp short 07396h                          ; eb 0b
    1094010928    mov dx, strict word 00060h                ; ba 60 00
    1094110929    in AL, DX                                 ; ec
     
    1094910937    pop bp                                    ; 5d
    1095010938    retn                                      ; c3
    10951 set_kbd_command_byte_:                       ; 0xf7521 LB 0x36
     10939set_kbd_command_byte_:                       ; 0xf739d LB 0x36
    1095210940    push bp                                   ; 55
    1095310941    mov bp, sp                                ; 89 e5
     
    1096010948    ; sub ah, ah                                ; 2a e4
    1096110949    test AL, strict byte 002h                 ; a8 02
    10962     je short 07544h                           ; 74 12
     10950    je short 073c0h                           ; 74 12
    1096310951    mov ax, 008f8h                            ; b8 f8 08
    1096410952    push ax                                   ; 50
     
    1096710955    mov ax, strict word 00007h                ; b8 07 00
    1096810956    push ax                                   ; 50
    10969     call 01976h                               ; e8 35 a4
     10957    call 01976h                               ; e8 b9 a5
    1097010958    add sp, strict byte 00006h                ; 83 c4 06
    1097110959    mov AL, strict byte 060h                  ; b0 60
     
    1098010968    pop bp                                    ; 5d
    1098110969    retn                                      ; c3
    10982 _int74_function:                             ; 0xf7557 LB 0xd2
     10970_int74_function:                             ; 0xf73d3 LB 0xd2
    1098310971    push bp                                   ; 55
    1098410972    mov bp, sp                                ; 89 e5
     
    1098610974    mov dx, strict word 0000eh                ; ba 0e 00
    1098710975    mov ax, strict word 00040h                ; b8 40 00
    10988     call 0166eh                               ; e8 08 a1
     10976    call 0166eh                               ; e8 8c a2
    1098910977    mov cx, ax                                ; 89 c1
    1099010978    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1099510983    and AL, strict byte 021h                  ; 24 21
    1099610984    cmp AL, strict byte 021h                  ; 3c 21
    10997     jne short 0759bh                          ; 75 22
     10985    jne short 07417h                          ; 75 22
    1099810986    mov dx, strict word 00060h                ; ba 60 00
    1099910987    in AL, DX                                 ; ec
     
    1100310991    mov dx, strict word 00026h                ; ba 26 00
    1100410992    mov ax, cx                                ; 89 c8
    11005     call 01652h                               ; e8 c9 a0
     10993    call 01652h                               ; e8 4d a2
    1100610994    mov byte [bp-002h], al                    ; 88 46 fe
    1100710995    mov dx, strict word 00027h                ; ba 27 00
    1100810996    mov ax, cx                                ; 89 c8
    11009     call 01652h                               ; e8 be a0
     10997    call 01652h                               ; e8 42 a2
    1101010998    mov byte [bp-006h], al                    ; 88 46 fa
    1101110999    test AL, strict byte 080h                 ; a8 80
    11012     jne short 0759eh                          ; 75 03
    11013     jmp near 07615h                           ; e9 77 00
     11000    jne short 0741ah                          ; 75 03
     11001    jmp near 07491h                           ; e9 77 00
    1101411002    mov al, byte [bp-006h]                    ; 8a 46 fa
    1101511003    and AL, strict byte 007h                  ; 24 07
     
    1102511013    add dx, strict byte 00028h                ; 83 c2 28
    1102611014    mov ax, cx                                ; 89 c8
    11027     call 01660h                               ; e8 9f a0
     11015    call 01660h                               ; e8 23 a2
    1102811016    mov al, byte [bp-008h]                    ; 8a 46 f8
    1102911017    cmp al, byte [bp-004h]                    ; 3a 46 fc
    11030     jc short 07605h                           ; 72 3c
     11018    jc short 07481h                           ; 72 3c
    1103111019    mov dx, strict word 00028h                ; ba 28 00
    1103211020    mov ax, cx                                ; 89 c8
    11033     call 01652h                               ; e8 81 a0
     11021    call 01652h                               ; e8 05 a2
    1103411022    xor ah, ah                                ; 30 e4
    1103511023    mov word [bp+00ch], ax                    ; 89 46 0c
    1103611024    mov dx, strict word 00029h                ; ba 29 00
    1103711025    mov ax, cx                                ; 89 c8
    11038     call 01652h                               ; e8 74 a0
     11026    call 01652h                               ; e8 f8 a1
    1103911027    xor ah, ah                                ; 30 e4
    1104011028    mov word [bp+00ah], ax                    ; 89 46 0a
    1104111029    mov dx, strict word 0002ah                ; ba 2a 00
    1104211030    mov ax, cx                                ; 89 c8
    11043     call 01652h                               ; e8 67 a0
     11031    call 01652h                               ; e8 eb a1
    1104411032    xor ah, ah                                ; 30 e4
    1104511033    mov word [bp+008h], ax                    ; 89 46 08
     
    1104811036    mov byte [bp-002h], ah                    ; 88 66 fe
    1104911037    test byte [bp-006h], 080h                 ; f6 46 fa 80
    11050     je short 07608h                           ; 74 0a
     11038    je short 07484h                           ; 74 0a
    1105111039    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    11052     jmp short 07608h                          ; eb 03
     11040    jmp short 07484h                          ; eb 03
    1105311041    inc byte [bp-002h]                        ; fe 46 fe
    1105411042    mov bl, byte [bp-002h]                    ; 8a 5e fe
     
    1105611044    mov dx, strict word 00026h                ; ba 26 00
    1105711045    mov ax, cx                                ; 89 c8
    11058     call 01660h                               ; e8 4b a0
     11046    call 01660h                               ; e8 cf a1
    1105911047    mov sp, bp                                ; 89 ec
    1106011048    pop bp                                    ; 5d
    1106111049    retn                                      ; c3
    11062     imul si, word [bp-019h], strict byte 00076h ; 6b 76 e7 76
    11063     db  067h, 077h, 0fch
    11064     ; jnbe short 0761ch                         ; 67 77 fc
    11065     jnbe short 07690h                         ; 77 6e
    11066     js short 075d6h                           ; 78 b2
    11067     jbe short 075bch                          ; 76 96
    11068     js short 0768bh                           ; 78 63
    11069     db  079h
    11070 _int15_function_mouse:                       ; 0xf7629 LB 0x3a0
     11050    out 074h, ax                              ; e7 74
     11051    arpl [di-01dh], si                        ; 63 75 e3
     11052    jne short 07514h                          ; 75 78
     11053    jbe short 07488h                          ; 76 ea
     11054    jbe short 074ceh                          ; 76 2e
     11055    jne short 074b4h                          ; 75 12
     11056    jnbe short 07483h                         ; 77 df
     11057    db  077h
     11058_int15_function_mouse:                       ; 0xf74a5 LB 0x3a0
    1107111059    push bp                                   ; 55
    1107211060    mov bp, sp                                ; 89 e5
     
    1107511063    mov dx, strict word 0000eh                ; ba 0e 00
    1107611064    mov ax, strict word 00040h                ; b8 40 00
    11077     call 0166eh                               ; e8 35 a0
     11065    call 0166eh                               ; e8 b9 a1
    1107811066    mov cx, ax                                ; 89 c1
    1107911067    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    11080     jbe short 0764ch                          ; 76 0b
     11068    jbe short 074c8h                          ; 76 0b
    1108111069    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1108211070    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11083     jmp near 079c3h                           ; e9 77 03
     11071    jmp near 0783fh                           ; e9 77 03
    1108411072    mov ax, strict word 00065h                ; b8 65 00
    11085     call 07521h                               ; e8 cf fe
     11073    call 0739dh                               ; e8 cf fe
    1108611074    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1108711075    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1108811076    mov bl, byte [bp+012h]                    ; 8a 5e 12
    1108911077    cmp bl, 007h                              ; 80 fb 07
    11090     jnbe short 076c0h                         ; 77 5e
     11078    jnbe short 0753ch                         ; 77 5e
    1109111079    xor bh, bh                                ; 30 ff
    1109211080    sal bx, 1                                 ; d1 e3
    11093     jmp word [cs:bx+07619h]                   ; 2e ff a7 19 76
     11081    jmp word [cs:bx+07495h]                   ; 2e ff a7 95 74
    1109411082    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    11095     jnbe short 076c3h                         ; 77 52
     11083    jnbe short 0753fh                         ; 77 52
    1109611084    mov dx, strict word 00027h                ; ba 27 00
    1109711085    mov ax, cx                                ; 89 c8
    11098     call 01652h                               ; e8 d9 9f
     11086    call 01652h                               ; e8 5d a1
    1109911087    test AL, strict byte 080h                 ; a8 80
    11100     jne short 07688h                          ; 75 0b
     11088    jne short 07504h                          ; 75 0b
    1110111089    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1110211090    mov byte [bp+013h], 005h                  ; c6 46 13 05
    11103     jmp near 079bdh                           ; e9 35 03
     11091    jmp near 07839h                           ; e9 35 03
    1110411092    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    11105     jne short 07692h                          ; 75 04
     11093    jne short 0750eh                          ; 75 04
    1110611094    mov AL, strict byte 0f5h                  ; b0 f5
    11107     jmp short 07694h                          ; eb 02
     11095    jmp short 07510h                          ; eb 02
    1110811096    mov AL, strict byte 0f4h                  ; b0 f4
    1110911097    xor ah, ah                                ; 30 e4
    11110     call 0748ch                               ; e8 f3 fd
     11098    call 07308h                               ; e8 f3 fd
    1111111099    test al, al                               ; 84 c0
    11112     jne short 076c6h                          ; 75 29
     11100    jne short 07542h                          ; 75 29
    1111311101    mov dx, ss                                ; 8c d2
    1111411102    lea ax, [bp-006h]                         ; 8d 46 fa
    11115     call 074c4h                               ; e8 1f fe
     11103    call 07340h                               ; e8 1f fe
    1111611104    test al, al                               ; 84 c0
    11117     je short 076afh                           ; 74 06
     11105    je short 0752bh                           ; 74 06
    1111811106    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11119     jne short 076c6h                          ; 75 17
    11120     jmp near 079bdh                           ; e9 0b 03
     11107    jne short 07542h                          ; 75 17
     11108    jmp near 07839h                           ; e9 0b 03
    1112111109    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1112211110    cmp AL, strict byte 001h                  ; 3c 01
    11123     jc short 076bdh                           ; 72 04
     11111    jc short 07539h                           ; 72 04
    1112411112    cmp AL, strict byte 008h                  ; 3c 08
    11125     jbe short 076c9h                          ; 76 0c
    11126     jmp near 07864h                           ; e9 a4 01
    11127     jmp near 079a7h                           ; e9 e4 02
    11128     jmp near 079b5h                           ; e9 ef 02
    11129     jmp near 0793bh                           ; e9 72 02
     11113    jbe short 07545h                          ; 76 0c
     11114    jmp near 076e0h                           ; e9 a4 01
     11115    jmp near 07823h                           ; e9 e4 02
     11116    jmp near 07831h                           ; e9 ef 02
     11117    jmp near 077b7h                           ; e9 72 02
    1113011118    mov dx, strict word 00027h                ; ba 27 00
    1113111119    mov ax, cx                                ; 89 c8
    11132     call 01652h                               ; e8 81 9f
     11120    call 01652h                               ; e8 05 a1
    1113311121    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1113411122    db  0feh, 0cch
     
    1114011128    mov dx, strict word 00027h                ; ba 27 00
    1114111129    mov ax, cx                                ; 89 c8
    11142     call 01660h                               ; e8 79 9f
     11130    call 01660h                               ; e8 fd a0
    1114311131    mov dx, strict word 00026h                ; ba 26 00
    1114411132    mov ax, cx                                ; 89 c8
    11145     call 01652h                               ; e8 63 9f
     11133    call 01652h                               ; e8 e7 a0
    1114611134    mov bl, al                                ; 88 c3
    1114711135    and bl, 0f8h                              ; 80 e3 f8
     
    1114911137    mov dx, strict word 00026h                ; ba 26 00
    1115011138    mov ax, cx                                ; 89 c8
    11151     call 01660h                               ; e8 62 9f
     11139    call 01660h                               ; e8 e6 a0
    1115211140    mov ax, 000ffh                            ; b8 ff 00
    11153     call 0748ch                               ; e8 88 fd
     11141    call 07308h                               ; e8 88 fd
    1115411142    test al, al                               ; 84 c0
    11155     jne short 076c6h                          ; 75 be
     11143    jne short 07542h                          ; 75 be
    1115611144    mov dx, ss                                ; 8c d2
    1115711145    lea ax, [bp-008h]                         ; 8d 46 f8
    11158     call 074c4h                               ; e8 b4 fd
     11146    call 07340h                               ; e8 b4 fd
    1115911147    mov cl, al                                ; 88 c1
    1116011148    cmp byte [bp-008h], 0feh                  ; 80 7e f8 fe
    11161     jne short 07722h                          ; 75 0a
     11149    jne short 0759eh                          ; 75 0a
    1116211150    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1116311151    mov byte [bp+013h], 004h                  ; c6 46 13 04
    11164     jmp short 076afh                          ; eb 8d
     11152    jmp short 0752bh                          ; eb 8d
    1116511153    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11166     je short 0773ch                           ; 74 14
     11154    je short 075b8h                           ; 74 14
    1116711155    mov al, byte [bp-008h]                    ; 8a 46 f8
    1116811156    xor ah, ah                                ; 30 e4
     
    1117211160    mov ax, strict word 00007h                ; b8 07 00
    1117311161    push ax                                   ; 50
    11174     call 01976h                               ; e8 3d a2
     11162    call 01976h                               ; e8 c1 a3
    1117511163    add sp, strict byte 00006h                ; 83 c4 06
    1117611164    test cl, cl                               ; 84 c9
    11177     jne short 076c6h                          ; 75 86
     11165    jne short 07542h                          ; 75 86
    1117811166    mov dx, ss                                ; 8c d2
    1117911167    lea ax, [bp-006h]                         ; 8d 46 fa
    11180     call 074c4h                               ; e8 7c fd
     11168    call 07340h                               ; e8 7c fd
    1118111169    test al, al                               ; 84 c0
    11182     jne short 077a2h                          ; 75 56
     11170    jne short 0761eh                          ; 75 56
    1118311171    mov dx, ss                                ; 8c d2
    1118411172    lea ax, [bp-004h]                         ; 8d 46 fc
    11185     call 074c4h                               ; e8 70 fd
     11173    call 07340h                               ; e8 70 fd
    1118611174    test al, al                               ; 84 c0
    11187     jne short 077a2h                          ; 75 4a
     11175    jne short 0761eh                          ; 75 4a
    1118811176    mov al, byte [bp-006h]                    ; 8a 46 fa
    1118911177    mov byte [bp+00ch], al                    ; 88 46 0c
    1119011178    mov al, byte [bp-004h]                    ; 8a 46 fc
    1119111179    mov byte [bp+00dh], al                    ; 88 46 0d
    11192     jmp near 079bdh                           ; e9 56 02
     11180    jmp near 07839h                           ; e9 56 02
    1119311181    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1119411182    cmp AL, strict byte 003h                  ; 3c 03
    11195     jc short 0777eh                           ; 72 10
    11196     jbe short 0779ch                          ; 76 2c
     11183    jc short 075fah                           ; 72 10
     11184    jbe short 07618h                          ; 76 2c
    1119711185    cmp AL, strict byte 006h                  ; 3c 06
    11198     je short 077b1h                           ; 74 3d
     11186    je short 0762dh                           ; 74 3d
    1119911187    cmp AL, strict byte 005h                  ; 3c 05
    11200     je short 077abh                           ; 74 33
     11188    je short 07627h                           ; 74 33
    1120111189    cmp AL, strict byte 004h                  ; 3c 04
    11202     je short 077a5h                           ; 74 29
    11203     jmp short 077b7h                          ; eb 39
     11190    je short 07621h                           ; 74 29
     11191    jmp short 07633h                          ; eb 39
    1120411192    cmp AL, strict byte 002h                  ; 3c 02
    11205     je short 07796h                           ; 74 14
     11193    je short 07612h                           ; 74 14
    1120611194    cmp AL, strict byte 001h                  ; 3c 01
    11207     je short 07790h                           ; 74 0a
     11195    je short 0760ch                           ; 74 0a
    1120811196    test al, al                               ; 84 c0
    11209     jne short 077b7h                          ; 75 2d
     11197    jne short 07633h                          ; 75 2d
    1121011198    mov byte [bp-006h], 00ah                  ; c6 46 fa 0a
    11211     jmp short 077bbh                          ; eb 2b
     11199    jmp short 07637h                          ; eb 2b
    1121211200    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    11213     jmp short 077bbh                          ; eb 25
     11201    jmp short 07637h                          ; eb 25
    1121411202    mov byte [bp-006h], 028h                  ; c6 46 fa 28
    11215     jmp short 077bbh                          ; eb 1f
     11203    jmp short 07637h                          ; eb 1f
    1121611204    mov byte [bp-006h], 03ch                  ; c6 46 fa 3c
    11217     jmp short 077bbh                          ; eb 19
    11218     jmp near 0793bh                           ; e9 96 01
     11205    jmp short 07637h                          ; eb 19
     11206    jmp near 077b7h                           ; e9 96 01
    1121911207    mov byte [bp-006h], 050h                  ; c6 46 fa 50
    11220     jmp short 077bbh                          ; eb 10
     11208    jmp short 07637h                          ; eb 10
    1122111209    mov byte [bp-006h], 064h                  ; c6 46 fa 64
    11222     jmp short 077bbh                          ; eb 0a
     11210    jmp short 07637h                          ; eb 0a
    1122311211    mov byte [bp-006h], 0c8h                  ; c6 46 fa c8
    11224     jmp short 077bbh                          ; eb 04
     11212    jmp short 07637h                          ; eb 04
    1122511213    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1122611214    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    11227     jbe short 077f1h                          ; 76 30
     11215    jbe short 0766dh                          ; 76 30
    1122811216    mov ax, 000f3h                            ; b8 f3 00
    11229     call 0748ch                               ; e8 c5 fc
     11217    call 07308h                               ; e8 c5 fc
    1123011218    test al, al                               ; 84 c0
    11231     jne short 077e6h                          ; 75 1b
     11219    jne short 07662h                          ; 75 1b
    1123211220    mov dx, ss                                ; 8c d2
    1123311221    lea ax, [bp-004h]                         ; 8d 46 fc
    11234     call 074c4h                               ; e8 f1 fc
     11222    call 07340h                               ; e8 f1 fc
    1123511223    mov al, byte [bp-006h]                    ; 8a 46 fa
    1123611224    xor ah, ah                                ; 30 e4
    11237     call 0748ch                               ; e8 b1 fc
     11225    call 07308h                               ; e8 b1 fc
    1123811226    mov dx, ss                                ; 8c d2
    1123911227    lea ax, [bp-004h]                         ; 8d 46 fc
    11240     call 074c4h                               ; e8 e1 fc
    11241     jmp near 079bdh                           ; e9 d7 01
     11228    call 07340h                               ; e8 e1 fc
     11229    jmp near 07839h                           ; e9 d7 01
    1124211230    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1124311231    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11244     jmp near 079bdh                           ; e9 cc 01
     11232    jmp near 07839h                           ; e9 cc 01
    1124511233    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1124611234    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11247     jmp near 079bdh                           ; e9 c1 01
     11235    jmp near 07839h                           ; e9 c1 01
    1124811236    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    11249     jnc short 07864h                          ; 73 62
     11237    jnc short 076e0h                          ; 73 62
    1125011238    mov ax, 000e8h                            ; b8 e8 00
    11251     call 0748ch                               ; e8 84 fc
     11239    call 07308h                               ; e8 84 fc
    1125211240    test al, al                               ; 84 c0
    11253     jne short 0785ah                          ; 75 4e
     11241    jne short 076d6h                          ; 75 4e
    1125411242    mov dx, ss                                ; 8c d2
    1125511243    lea ax, [bp-006h]                         ; 8d 46 fa
    11256     call 074c4h                               ; e8 b0 fc
     11244    call 07340h                               ; e8 b0 fc
    1125711245    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11258     je short 0782eh                           ; 74 14
     11246    je short 076aah                           ; 74 14
    1125911247    mov al, byte [bp-006h]                    ; 8a 46 fa
    1126011248    xor ah, ah                                ; 30 e4
     
    1126411252    mov ax, strict word 00007h                ; b8 07 00
    1126511253    push ax                                   ; 50
    11266     call 01976h                               ; e8 4b a1
     11254    call 01976h                               ; e8 cf a2
    1126711255    add sp, strict byte 00006h                ; 83 c4 06
    1126811256    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1126911257    xor ah, ah                                ; 30 e4
    11270     call 0748ch                               ; e8 56 fc
     11258    call 07308h                               ; e8 56 fc
    1127111259    mov dx, ss                                ; 8c d2
    1127211260    lea ax, [bp-006h]                         ; 8d 46 fa
    11273     call 074c4h                               ; e8 86 fc
     11261    call 07340h                               ; e8 86 fc
    1127411262    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11275     je short 07893h                           ; 74 4f
     11263    je short 0770fh                           ; 74 4f
    1127611264    mov al, byte [bp-006h]                    ; 8a 46 fa
    1127711265    xor ah, ah                                ; 30 e4
     
    1128111269    mov ax, strict word 00007h                ; b8 07 00
    1128211270    push ax                                   ; 50
    11283     call 01976h                               ; e8 21 a1
     11271    call 01976h                               ; e8 a5 a2
    1128411272    add sp, strict byte 00006h                ; 83 c4 06
    11285     jmp short 07893h                          ; eb 39
     11273    jmp short 0770fh                          ; eb 39
    1128611274    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1128711275    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11288     jmp short 07893h                          ; eb 2f
     11276    jmp short 0770fh                          ; eb 2f
    1128911277    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1129011278    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11291     jmp short 07893h                          ; eb 25
     11279    jmp short 0770fh                          ; eb 25
    1129211280    mov ax, 000f2h                            ; b8 f2 00
    11293     call 0748ch                               ; e8 18 fc
     11281    call 07308h                               ; e8 18 fc
    1129411282    test al, al                               ; 84 c0
    11295     jne short 0788bh                          ; 75 13
     11283    jne short 07707h                          ; 75 13
    1129611284    mov dx, ss                                ; 8c d2
    1129711285    lea ax, [bp-006h]                         ; 8d 46 fa
    11298     call 074c4h                               ; e8 44 fc
     11286    call 07340h                               ; e8 44 fc
    1129911287    mov dx, ss                                ; 8c d2
    1130011288    lea ax, [bp-004h]                         ; 8d 46 fc
    11301     call 074c4h                               ; e8 3c fc
    11302     jmp near 0775eh                           ; e9 d3 fe
     11289    call 07340h                               ; e8 3c fc
     11290    jmp near 075dah                           ; e9 d3 fe
    1130311291    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1130411292    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11305     jmp near 079bdh                           ; e9 27 01
     11293    jmp near 07839h                           ; e9 27 01
    1130611294    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1130711295    test al, al                               ; 84 c0
    11308     jbe short 078a6h                          ; 76 09
     11296    jbe short 07722h                          ; 76 09
    1130911297    cmp AL, strict byte 002h                  ; 3c 02
    11310     jbe short 078a4h                          ; 76 03
    11311     jmp near 07945h                           ; e9 a1 00
    11312     jmp short 07910h                          ; eb 6a
     11298    jbe short 07720h                          ; 76 03
     11299    jmp near 077c1h                           ; e9 a1 00
     11300    jmp short 0778ch                          ; eb 6a
    1131311301    mov ax, 000e9h                            ; b8 e9 00
    11314     call 0748ch                               ; e8 e0 fb
     11302    call 07308h                               ; e8 e0 fb
    1131511303    test al, al                               ; 84 c0
    11316     jne short 07919h                          ; 75 69
     11304    jne short 07795h                          ; 75 69
    1131711305    mov dx, ss                                ; 8c d2
    1131811306    lea ax, [bp-006h]                         ; 8d 46 fa
    11319     call 074c4h                               ; e8 0c fc
     11307    call 07340h                               ; e8 0c fc
    1132011308    mov cl, al                                ; 88 c1
    1132111309    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11322     je short 078d4h                           ; 74 14
     11310    je short 07750h                           ; 74 14
    1132311311    mov al, byte [bp-006h]                    ; 8a 46 fa
    1132411312    xor ah, ah                                ; 30 e4
     
    1132811316    mov ax, strict word 00007h                ; b8 07 00
    1132911317    push ax                                   ; 50
    11330     call 01976h                               ; e8 a5 a0
     11318    call 01976h                               ; e8 29 a2
    1133111319    add sp, strict byte 00006h                ; 83 c4 06
    1133211320    test cl, cl                               ; 84 c9
    11333     jne short 0793bh                          ; 75 63
     11321    jne short 077b7h                          ; 75 63
    1133411322    mov dx, ss                                ; 8c d2
    1133511323    lea ax, [bp-006h]                         ; 8d 46 fa
    11336     call 074c4h                               ; e8 e4 fb
     11324    call 07340h                               ; e8 e4 fb
    1133711325    test al, al                               ; 84 c0
    11338     jne short 0793bh                          ; 75 57
     11326    jne short 077b7h                          ; 75 57
    1133911327    mov dx, ss                                ; 8c d2
    1134011328    lea ax, [bp-004h]                         ; 8d 46 fc
    11341     call 074c4h                               ; e8 d8 fb
     11329    call 07340h                               ; e8 d8 fb
    1134211330    test al, al                               ; 84 c0
    11343     jne short 0793bh                          ; 75 4b
     11331    jne short 077b7h                          ; 75 4b
    1134411332    mov dx, ss                                ; 8c d2
    1134511333    lea ax, [bp-008h]                         ; 8d 46 f8
    11346     call 074c4h                               ; e8 cc fb
     11334    call 07340h                               ; e8 cc fb
    1134711335    test al, al                               ; 84 c0
    11348     jne short 0793bh                          ; 75 3f
     11336    jne short 077b7h                          ; 75 3f
    1134911337    mov al, byte [bp-006h]                    ; 8a 46 fa
    1135011338    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1135311341    mov al, byte [bp-008h]                    ; 8a 46 f8
    1135411342    mov byte [bp+00eh], al                    ; 88 46 0e
    11355     jmp short 07893h                          ; eb 83
     11343    jmp short 0770fh                          ; eb 83
    1135611344    cmp AL, strict byte 001h                  ; 3c 01
    11357     jne short 0791bh                          ; 75 07
     11345    jne short 07797h                          ; 75 07
    1135811346    mov ax, 000e6h                            ; b8 e6 00
    11359     jmp short 0791eh                          ; eb 05
    11360     jmp short 0793bh                          ; eb 20
     11347    jmp short 0779ah                          ; eb 05
     11348    jmp short 077b7h                          ; eb 20
    1136111349    mov ax, 000e7h                            ; b8 e7 00
    11362     call 0748ch                               ; e8 6b fb
     11350    call 07308h                               ; e8 6b fb
    1136311351    mov cl, al                                ; 88 c1
    1136411352    test cl, cl                               ; 84 c9
    11365     jne short 07937h                          ; 75 10
     11353    jne short 077b3h                          ; 75 10
    1136611354    mov dx, ss                                ; 8c d2
    1136711355    lea ax, [bp-006h]                         ; 8d 46 fa
    11368     call 074c4h                               ; e8 95 fb
     11356    call 07340h                               ; e8 95 fb
    1136911357    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11370     je short 07937h                           ; 74 02
     11358    je short 077b3h                           ; 74 02
    1137111359    mov CL, strict byte 001h                  ; b1 01
    1137211360    test cl, cl                               ; 84 c9
    11373     je short 079a5h                           ; 74 6a
     11361    je short 07821h                           ; 74 6a
    1137411362    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1137511363    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11376     jmp short 079a5h                          ; eb 60
     11364    jmp short 07821h                          ; eb 60
    1137711365    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1137811366    xor ah, ah                                ; 30 e4
     
    1138211370    mov ax, strict word 00007h                ; b8 07 00
    1138311371    push ax                                   ; 50
    11384     call 01976h                               ; e8 20 a0
     11372    call 01976h                               ; e8 a4 a1
    1138511373    add sp, strict byte 00006h                ; 83 c4 06
    1138611374    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1138711375    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11388     jmp short 079bdh                          ; eb 5a
     11376    jmp short 07839h                          ; eb 5a
    1138911377    mov si, word [bp+00ch]                    ; 8b 76 0c
    1139011378    mov bx, si                                ; 89 f3
    1139111379    mov dx, strict word 00022h                ; ba 22 00
    1139211380    mov ax, cx                                ; 89 c8
    11393     call 0167ch                               ; e8 0c 9d
     11381    call 0167ch                               ; e8 90 9e
    1139411382    mov bx, word [bp+014h]                    ; 8b 5e 14
    1139511383    mov dx, strict word 00024h                ; ba 24 00
    1139611384    mov ax, cx                                ; 89 c8
    11397     call 0167ch                               ; e8 01 9d
     11385    call 0167ch                               ; e8 85 9e
    1139811386    mov dx, strict word 00027h                ; ba 27 00
    1139911387    mov ax, cx                                ; 89 c8
    11400     call 01652h                               ; e8 cf 9c
     11388    call 01652h                               ; e8 53 9e
    1140111389    mov ah, al                                ; 88 c4
    1140211390    test si, si                               ; 85 f6
    11403     jne short 07997h                          ; 75 0e
     11391    jne short 07813h                          ; 75 0e
    1140411392    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    11405     jne short 07997h                          ; 75 08
     11393    jne short 07813h                          ; 75 08
    1140611394    test AL, strict byte 080h                 ; a8 80
    11407     je short 07999h                           ; 74 06
     11395    je short 07815h                           ; 74 06
    1140811396    and AL, strict byte 07fh                  ; 24 7f
    11409     jmp short 07999h                          ; eb 02
     11397    jmp short 07815h                          ; eb 02
    1141011398    or AL, strict byte 080h                   ; 0c 80
    1141111399    mov bl, al                                ; 88 c3
     
    1141311401    mov dx, strict word 00027h                ; ba 27 00
    1141411402    mov ax, cx                                ; 89 c8
    11415     call 01660h                               ; e8 bb 9c
    11416     jmp short 079bdh                          ; eb 16
     11403    call 01660h                               ; e8 3f 9e
     11404    jmp short 07839h                          ; eb 16
    1141711405    mov ax, 00974h                            ; b8 74 09
    1141811406    push ax                                   ; 50
    1141911407    mov ax, strict word 00007h                ; b8 07 00
    1142011408    push ax                                   ; 50
    11421     call 01976h                               ; e8 c4 9f
     11409    call 01976h                               ; e8 48 a1
    1142211410    add sp, strict byte 00004h                ; 83 c4 04
    1142311411    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1142411412    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1142511413    mov ax, strict word 00047h                ; b8 47 00
    11426     call 07521h                               ; e8 5e fb
     11414    call 0739dh                               ; e8 5e fb
    1142711415    lea sp, [bp-002h]                         ; 8d 66 fe
    1142811416    pop si                                    ; 5e
    1142911417    pop bp                                    ; 5d
    1143011418    retn                                      ; c3
    11431 _int17_function:                             ; 0xf79c9 LB 0xac
     11419_int17_function:                             ; 0xf7845 LB 0xac
    1143211420    push bp                                   ; 55
    1143311421    mov bp, sp                                ; 89 e5
     
    1143911427    add dx, strict byte 00008h                ; 83 c2 08
    1144011428    mov ax, strict word 00040h                ; b8 40 00
    11441     call 0166eh                               ; e8 91 9c
     11429    call 0166eh                               ; e8 15 9e
    1144211430    mov bx, ax                                ; 89 c3
    1144311431    mov si, ax                                ; 89 c6
    1144411432    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    11445     jnc short 079f3h                          ; 73 0c
     11433    jnc short 0786fh                          ; 73 0c
    1144611434    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1144711435    cmp ax, strict word 00003h                ; 3d 03 00
    11448     jnc short 079f3h                          ; 73 04
     11436    jnc short 0786fh                          ; 73 04
    1144911437    test bx, bx                               ; 85 db
    11450     jnbe short 079f6h                         ; 77 03
    11451     jmp near 07a6bh                           ; e9 75 00
     11438    jnbe short 07872h                         ; 77 03
     11439    jmp near 078e7h                           ; e9 75 00
    1145211440    mov dx, ax                                ; 89 c2
    1145311441    add dx, strict byte 00078h                ; 83 c2 78
    1145411442    mov ax, strict word 00040h                ; b8 40 00
    11455     call 01652h                               ; e8 51 9c
     11443    call 01652h                               ; e8 d5 9d
    1145611444    mov ch, al                                ; 88 c5
    1145711445    xor cl, cl                                ; 30 c9
    1145811446    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    11459     jne short 07a37h                          ; 75 2c
     11447    jne short 078b3h                          ; 75 2c
    1146011448    mov al, byte [bp+012h]                    ; 8a 46 12
    1146111449    mov dx, bx                                ; 89 da
     
    1147711465    ; sub ah, ah                                ; 2a e4
    1147811466    test AL, strict byte 040h                 ; a8 40
    11479     je short 07a37h                           ; 74 07
     11467    je short 078b3h                           ; 74 07
    1148011468    test cx, cx                               ; 85 c9
    11481     je short 07a37h                           ; 74 03
     11469    je short 078b3h                           ; 74 03
    1148211470    dec cx                                    ; 49
    11483     jmp short 07a26h                          ; eb ef
     11471    jmp short 078a2h                          ; eb ef
    1148411472    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11485     jne short 07a52h                          ; 75 15
     11473    jne short 078ceh                          ; 75 15
    1148611474    lea dx, [si+002h]                         ; 8d 54 02
    1148711475    in AL, DX                                 ; ec
     
    1150211490    mov byte [bp+013h], al                    ; 88 46 13
    1150311491    test cx, cx                               ; 85 c9
    11504     jne short 07a65h                          ; 75 04
     11492    jne short 078e1h                          ; 75 04
    1150511493    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1150611494    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11507     jmp short 07a6fh                          ; eb 04
     11495    jmp short 078ebh                          ; eb 04
    1150811496    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1150911497    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1151111499    pop bp                                    ; 5d
    1151211500    retn                                      ; c3
    11513 wait_:                                       ; 0xf7a75 LB 0xb2
     11501wait_:                                       ; 0xf78f1 LB 0xb2
    1151411502    push bp                                   ; 55
    1151511503    mov bp, sp                                ; 89 e5
     
    1152911517    mov dx, 0046ch                            ; ba 6c 04
    1153011518    xor ax, ax                                ; 31 c0
    11531     call 0168ah                               ; e8 f2 9b
     11519    call 0168ah                               ; e8 76 9d
    1153211520    mov word [bp-00eh], ax                    ; 89 46 f2
    1153311521    mov bx, dx                                ; 89 d3
     
    1153511523    mov dx, 0046ch                            ; ba 6c 04
    1153611524    xor ax, ax                                ; 31 c0
    11537     call 0168ah                               ; e8 e4 9b
     11525    call 0168ah                               ; e8 68 9d
    1153811526    mov word [bp-012h], ax                    ; 89 46 ee
    1153911527    mov di, dx                                ; 89 d7
    1154011528    cmp dx, bx                                ; 39 da
    11541     jnbe short 07ab6h                         ; 77 07
    11542     jne short 07abdh                          ; 75 0c
     11529    jnbe short 07932h                         ; 77 07
     11530    jne short 07939h                          ; 75 0c
    1154311531    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11544     jbe short 07abdh                          ; 76 07
     11532    jbe short 07939h                          ; 76 07
    1154511533    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1154611534    sbb dx, bx                                ; 19 da
    11547     jmp short 07ac8h                          ; eb 0b
     11535    jmp short 07944h                          ; eb 0b
    1154811536    cmp dx, bx                                ; 39 da
    11549     jc short 07ac8h                           ; 72 07
    11550     jne short 07acch                          ; 75 09
     11537    jc short 07944h                           ; 72 07
     11538    jne short 07948h                          ; 75 09
    1155111539    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11552     jnc short 07acch                          ; 73 04
     11540    jnc short 07948h                          ; 73 04
    1155311541    sub si, ax                                ; 29 c6
    1155411542    sbb cx, dx                                ; 19 d1
     
    1155811546    mov ax, 00100h                            ; b8 00 01
    1155911547    int 016h                                  ; cd 16
    11560     je short 07ae0h                           ; 74 05
     11548    je short 0795ch                           ; 74 05
    1156111549    mov AL, strict byte 001h                  ; b0 01
    11562     jmp near 07ae2h                           ; e9 02 00
     11550    jmp near 0795eh                           ; e9 02 00
    1156311551    db  032h, 0c0h
    1156411552    ; xor al, al                                ; 32 c0
    1156511553    test al, al                               ; 84 c0
    11566     je short 07b0ch                           ; 74 26
     11554    je short 07988h                           ; 74 26
    1156711555    db  033h, 0c0h
    1156811556    ; xor ax, ax                                ; 33 c0
     
    1157711565    mov ax, strict word 00004h                ; b8 04 00
    1157811566    push ax                                   ; 50
    11579     call 01976h                               ; e8 77 9e
     11567    call 01976h                               ; e8 fb 9f
    1158011568    add sp, strict byte 00006h                ; 83 c4 06
    1158111569    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    11582     je short 07b0ch                           ; 74 04
     11570    je short 07988h                           ; 74 04
    1158311571    mov al, dl                                ; 88 d0
    11584     jmp short 07b1eh                          ; eb 12
     11572    jmp short 0799ah                          ; eb 12
    1158511573    test cx, cx                               ; 85 c9
    11586     jnle short 07a9dh                         ; 7f 8d
    11587     jne short 07b16h                          ; 75 04
     11574    jnle short 07919h                         ; 7f 8d
     11575    jne short 07992h                          ; 75 04
    1158811576    test si, si                               ; 85 f6
    11589     jnbe short 07a9dh                         ; 77 87
     11577    jnbe short 07919h                         ; 77 87
    1159011578    mov ax, word [bp-010h]                    ; 8b 46 f0
    1159111579    push ax                                   ; 50
     
    1159911587    pop bp                                    ; 5d
    1160011588    retn                                      ; c3
    11601 read_logo_byte_:                             ; 0xf7b27 LB 0x16
     11589read_logo_byte_:                             ; 0xf79a3 LB 0x16
    1160211590    push bp                                   ; 55
    1160311591    mov bp, sp                                ; 89 e5
     
    1161411602    pop bp                                    ; 5d
    1161511603    retn                                      ; c3
    11616 read_logo_word_:                             ; 0xf7b3d LB 0x14
     11604read_logo_word_:                             ; 0xf79b9 LB 0x14
    1161711605    push bp                                   ; 55
    1161811606    mov bp, sp                                ; 89 e5
     
    1162711615    pop bp                                    ; 5d
    1162811616    retn                                      ; c3
    11629 print_detected_harddisks_:                   ; 0xf7b51 LB 0x15a
     11617print_detected_harddisks_:                   ; 0xf79cd LB 0x15a
    1163011618    push bp                                   ; 55
    1163111619    mov bp, sp                                ; 89 e5
     
    1163711625    mov dx, strict word 0000eh                ; ba 0e 00
    1163811626    mov ax, strict word 00040h                ; b8 40 00
    11639     call 0166eh                               ; e8 0a 9b
     11627    call 0166eh                               ; e8 8e 9c
    1164011628    mov si, ax                                ; 89 c6
    1164111629    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     
    1164311631    mov byte [bp-00ch], ch                    ; 88 6e f4
    1164411632    mov dx, 00304h                            ; ba 04 03
    11645     call 01652h                               ; e8 dd 9a
     11633    call 01652h                               ; e8 61 9c
    1164611634    mov byte [bp-00ah], al                    ; 88 46 f6
    1164711635    xor cl, cl                                ; 30 c9
    1164811636    cmp cl, byte [bp-00ah]                    ; 3a 4e f6
    11649     jnc short 07bddh                          ; 73 5e
     11637    jnc short 07a59h                          ; 73 5e
    1165011638    mov al, cl                                ; 88 c8
    1165111639    xor ah, ah                                ; 30 e4
     
    1165311641    add dx, 00305h                            ; 81 c2 05 03
    1165411642    mov ax, si                                ; 89 f0
    11655     call 01652h                               ; e8 c4 9a
     11643    call 01652h                               ; e8 48 9c
    1165611644    mov bl, al                                ; 88 c3
    1165711645    cmp AL, strict byte 00ch                  ; 3c 0c
    11658     jc short 07bbfh                           ; 72 2b
     11646    jc short 07a3bh                           ; 72 2b
    1165911647    test ch, ch                               ; 84 ed
    11660     jne short 07ba8h                          ; 75 10
     11648    jne short 07a24h                          ; 75 10
    1166111649    mov ax, 009a7h                            ; b8 a7 09
    1166211650    push ax                                   ; 50
    1166311651    mov ax, strict word 00002h                ; b8 02 00
    1166411652    push ax                                   ; 50
    11665     call 01976h                               ; e8 d3 9d
     11653    call 01976h                               ; e8 57 9f
    1166611654    add sp, strict byte 00004h                ; 83 c4 04
    1166711655    mov CH, strict byte 001h                  ; b5 01
     
    1167411662    mov ax, strict word 00002h                ; b8 02 00
    1167511663    push ax                                   ; 50
    11676     call 01976h                               ; e8 bd 9d
     11664    call 01976h                               ; e8 41 9f
    1167711665    add sp, strict byte 00006h                ; 83 c4 06
    11678     jmp near 07c71h                           ; e9 b2 00
     11666    jmp near 07aedh                           ; e9 b2 00
    1167911667    cmp AL, strict byte 008h                  ; 3c 08
    11680     jc short 07be0h                           ; 72 1d
     11668    jc short 07a5ch                           ; 72 1d
    1168111669    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11682     jne short 07bdbh                          ; 75 12
     11670    jne short 07a57h                          ; 75 12
    1168311671    mov ax, 009cfh                            ; b8 cf 09
    1168411672    push ax                                   ; 50
    1168511673    mov ax, strict word 00002h                ; b8 02 00
    1168611674    push ax                                   ; 50
    11687     call 01976h                               ; e8 a2 9d
     11675    call 01976h                               ; e8 26 9f
    1168811676    add sp, strict byte 00004h                ; 83 c4 04
    1168911677    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11690     jmp short 07ba8h                          ; eb cb
    11691     jmp near 07c76h                           ; e9 96 00
     11678    jmp short 07a24h                          ; eb cb
     11679    jmp near 07af2h                           ; e9 96 00
    1169211680    cmp AL, strict byte 004h                  ; 3c 04
    11693     jnc short 07bfeh                          ; 73 1a
     11681    jnc short 07a7ah                          ; 73 1a
    1169411682    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11695     jne short 07bfeh                          ; 75 14
     11683    jne short 07a7ah                          ; 75 14
    1169611684    mov ax, 009e4h                            ; b8 e4 09
    1169711685    push ax                                   ; 50
    1169811686    mov ax, strict word 00002h                ; b8 02 00
    1169911687    push ax                                   ; 50
    11700     call 01976h                               ; e8 81 9d
     11688    call 01976h                               ; e8 05 9f
    1170111689    add sp, strict byte 00004h                ; 83 c4 04
    1170211690    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11703     jmp short 07c17h                          ; eb 19
     11691    jmp short 07a93h                          ; eb 19
    1170411692    cmp bl, 004h                              ; 80 fb 04
    11705     jc short 07c17h                           ; 72 14
     11693    jc short 07a93h                           ; 72 14
    1170611694    test ch, ch                               ; 84 ed
    11707     jne short 07c17h                          ; 75 10
     11695    jne short 07a93h                          ; 75 10
    1170811696    mov ax, 009f6h                            ; b8 f6 09
    1170911697    push ax                                   ; 50
    1171011698    mov ax, strict word 00002h                ; b8 02 00
    1171111699    push ax                                   ; 50
    11712     call 01976h                               ; e8 64 9d
     11700    call 01976h                               ; e8 e8 9e
    1171311701    add sp, strict byte 00004h                ; 83 c4 04
    1171411702    mov CH, strict byte 001h                  ; b5 01
     
    1172111709    mov ax, strict word 00002h                ; b8 02 00
    1172211710    push ax                                   ; 50
    11723     call 01976h                               ; e8 4e 9d
     11711    call 01976h                               ; e8 d2 9e
    1172411712    add sp, strict byte 00006h                ; 83 c4 06
    1172511713    cmp bl, 004h                              ; 80 fb 04
    11726     jc short 07c33h                           ; 72 03
     11714    jc short 07aafh                           ; 72 03
    1172711715    sub bl, 004h                              ; 80 eb 04
    1172811716    mov al, bl                                ; 88 d8
     
    1173311721    sar ax, 1                                 ; d1 f8
    1173411722    test ax, ax                               ; 85 c0
    11735     je short 07c45h                           ; 74 05
     11723    je short 07ac1h                           ; 74 05
    1173611724    mov ax, 00a14h                            ; b8 14 0a
    11737     jmp short 07c48h                          ; eb 03
     11725    jmp short 07ac4h                          ; eb 03
    1173811726    mov ax, 00a1fh                            ; b8 1f 0a
    1173911727    push ax                                   ; 50
    1174011728    mov ax, strict word 00002h                ; b8 02 00
    1174111729    push ax                                   ; 50
    11742     call 01976h                               ; e8 26 9d
     11730    call 01976h                               ; e8 aa 9e
    1174311731    add sp, strict byte 00004h                ; 83 c4 04
    1174411732    mov al, bl                                ; 88 d8
     
    1174811736    idiv bx                                   ; f7 fb
    1174911737    test dx, dx                               ; 85 d2
    11750     je short 07c66h                           ; 74 05
     11738    je short 07ae2h                           ; 74 05
    1175111739    mov ax, 00a28h                            ; b8 28 0a
    11752     jmp short 07c69h                          ; eb 03
     11740    jmp short 07ae5h                          ; eb 03
    1175311741    mov ax, 00a2eh                            ; b8 2e 0a
    1175411742    push ax                                   ; 50
    1175511743    push bx                                   ; 53
    11756     call 01976h                               ; e8 08 9d
     11744    call 01976h                               ; e8 8c 9e
    1175711745    add sp, strict byte 00004h                ; 83 c4 04
    1175811746    db  0feh, 0c1h
    1175911747    ; inc cl                                    ; fe c1
    11760     jmp near 07b7ah                           ; e9 04 ff
     11748    jmp near 079f6h                           ; e9 04 ff
    1176111749    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11762     jne short 07c94h                          ; 75 18
     11750    jne short 07b10h                          ; 75 18
    1176311751    test ch, ch                               ; 84 ed
    11764     jne short 07c94h                          ; 75 14
     11752    jne short 07b10h                          ; 75 14
    1176511753    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11766     jne short 07c94h                          ; 75 0e
     11754    jne short 07b10h                          ; 75 0e
    1176711755    mov ax, 00a35h                            ; b8 35 0a
    1176811756    push ax                                   ; 50
    1176911757    mov ax, strict word 00002h                ; b8 02 00
    1177011758    push ax                                   ; 50
    11771     call 01976h                               ; e8 e5 9c
     11759    call 01976h                               ; e8 69 9e
    1177211760    add sp, strict byte 00004h                ; 83 c4 04
    1177311761    mov ax, 00a49h                            ; b8 49 0a
     
    1177511763    mov ax, strict word 00002h                ; b8 02 00
    1177611764    push ax                                   ; 50
    11777     call 01976h                               ; e8 d7 9c
     11765    call 01976h                               ; e8 5b 9e
    1177811766    add sp, strict byte 00004h                ; 83 c4 04
    1177911767    lea sp, [bp-008h]                         ; 8d 66 f8
     
    1178411772    pop bp                                    ; 5d
    1178511773    retn                                      ; c3
    11786 get_boot_drive_:                             ; 0xf7cab LB 0x28
     11774get_boot_drive_:                             ; 0xf7b27 LB 0x28
    1178711775    push bp                                   ; 55
    1178811776    mov bp, sp                                ; 89 e5
     
    1179211780    mov dx, strict word 0000eh                ; ba 0e 00
    1179311781    mov ax, strict word 00040h                ; b8 40 00
    11794     call 0166eh                               ; e8 b3 99
     11782    call 0166eh                               ; e8 37 9b
    1179511783    mov dx, 00304h                            ; ba 04 03
    11796     call 01652h                               ; e8 91 99
     11784    call 01652h                               ; e8 15 9b
    1179711785    sub bl, 002h                              ; 80 eb 02
    1179811786    cmp bl, al                                ; 38 c3
    11799     jc short 07ccah                           ; 72 02
     11787    jc short 07b46h                           ; 72 02
    1180011788    mov BL, strict byte 0ffh                  ; b3 ff
    1180111789    mov al, bl                                ; 88 d8
     
    1180511793    pop bp                                    ; 5d
    1180611794    retn                                      ; c3
    11807 show_logo_:                                  ; 0xf7cd3 LB 0x240
     11795show_logo_:                                  ; 0xf7b4f LB 0x240
    1180811796    push bp                                   ; 55
    1180911797    mov bp, sp                                ; 89 e5
     
    1181611804    mov dx, strict word 0000eh                ; ba 0e 00
    1181711805    mov ax, strict word 00040h                ; b8 40 00
    11818     call 0166eh                               ; e8 87 99
     11806    call 0166eh                               ; e8 0b 9b
    1181911807    mov si, ax                                ; 89 c6
    1182011808    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     
    1182811816    mov al, cl                                ; 88 c8
    1182911817    xor ah, ah                                ; 30 e4
    11830     call 07b3dh                               ; e8 3b fe
     11818    call 079b9h                               ; e8 3b fe
    1183111819    cmp ax, 066bbh                            ; 3d bb 66
    11832     jne short 07d19h                          ; 75 12
     11820    jne short 07b95h                          ; 75 12
    1183311821    push SS                                   ; 16
    1183411822    pop ES                                    ; 07
     
    1183811826    mov word [es:di], bx                      ; 26 89 1d
    1183911827    cmp ax, strict word 0004fh                ; 3d 4f 00
    11840     je short 07d1ch                           ; 74 03
    11841     jmp near 07de2h                           ; e9 c6 00
     11828    je short 07b98h                           ; 74 03
     11829    jmp near 07c5eh                           ; e9 c6 00
    1184211830    mov al, cl                                ; 88 c8
    1184311831    add AL, strict byte 004h                  ; 04 04
    1184411832    xor ah, ah                                ; 30 e4
    11845     call 07b27h                               ; e8 02 fe
     11833    call 079a3h                               ; e8 02 fe
    1184611834    mov bl, al                                ; 88 c3
    1184711835    mov byte [bp-014h], al                    ; 88 46 ec
     
    1184911837    add AL, strict byte 005h                  ; 04 05
    1185011838    xor ah, ah                                ; 30 e4
    11851     call 07b27h                               ; e8 f4 fd
     11839    call 079a3h                               ; e8 f4 fd
    1185211840    mov bh, al                                ; 88 c7
    1185311841    mov byte [bp-012h], al                    ; 88 46 ee
     
    1185511843    add AL, strict byte 002h                  ; 04 02
    1185611844    xor ah, ah                                ; 30 e4
    11857     call 07b3dh                               ; e8 fc fd
     11845    call 079b9h                               ; e8 fc fd
    1185811846    mov dx, ax                                ; 89 c2
    1185911847    mov word [bp-016h], ax                    ; 89 46 ea
     
    1186111849    add AL, strict byte 006h                  ; 04 06
    1186211850    xor ah, ah                                ; 30 e4
    11863     call 07b27h                               ; e8 d8 fd
     11851    call 079a3h                               ; e8 d8 fd
    1186411852    mov byte [bp-010h], al                    ; 88 46 f0
    1186511853    test bl, bl                               ; 84 db
    11866     jne short 07d5eh                          ; 75 08
     11854    jne short 07bdah                          ; 75 08
    1186711855    test bh, bh                               ; 84 ff
    11868     jne short 07d5eh                          ; 75 04
     11856    jne short 07bdah                          ; 75 04
    1186911857    test dx, dx                               ; 85 d2
    11870     je short 07d19h                           ; 74 bb
     11858    je short 07b95h                           ; 74 bb
    1187111859    mov bx, 00142h                            ; bb 42 01
    1187211860    mov ax, 04f02h                            ; b8 02 4f
    1187311861    int 010h                                  ; cd 10
    1187411862    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    11875     je short 07d91h                           ; 74 25
     11863    je short 07c0dh                           ; 74 25
    1187611864    xor cx, cx                                ; 31 c9
    11877     jmp short 07d76h                          ; eb 06
     11865    jmp short 07bf2h                          ; eb 06
    1187811866    inc cx                                    ; 41
    1187911867    cmp cx, strict byte 00010h                ; 83 f9 10
    11880     jnbe short 07d98h                         ; 77 22
     11868    jnbe short 07c14h                         ; 77 22
    1188111869    mov ax, cx                                ; 89 c8
    1188211870    or ah, 002h                               ; 80 cc 02
     
    1188511873    xor dx, dx                                ; 31 d2
    1188611874    mov ax, strict word 00001h                ; b8 01 00
    11887     call 07a75h                               ; e8 ee fc
     11875    call 078f1h                               ; e8 ee fc
    1188811876    cmp AL, strict byte 086h                  ; 3c 86
    11889     jne short 07d70h                          ; 75 e5
     11877    jne short 07bech                          ; 75 e5
    1189011878    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11891     jmp short 07d98h                          ; eb 07
     11879    jmp short 07c14h                          ; eb 07
    1189211880    mov ax, 00210h                            ; b8 10 02
    1189311881    mov dx, 003b8h                            ; ba b8 03
    1189411882    out DX, ax                                ; ef
    1189511883    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11896     jne short 07db3h                          ; 75 15
     11884    jne short 07c2fh                          ; 75 15
    1189711885    mov CL, strict byte 004h                  ; b1 04
    1189811886    mov ax, word [bp-016h]                    ; 8b 46 ea
    1189911887    shr ax, CL                                ; d3 e8
    1190011888    mov dx, strict word 00001h                ; ba 01 00
    11901     call 07a75h                               ; e8 ca fc
     11889    call 078f1h                               ; e8 ca fc
    1190211890    cmp AL, strict byte 086h                  ; 3c 86
    11903     jne short 07db3h                          ; 75 04
     11891    jne short 07c2fh                          ; 75 04
    1190411892    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1190511893    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11906     je short 07de2h                           ; 74 29
     11894    je short 07c5eh                           ; 74 29
    1190711895    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11908     jne short 07de2h                          ; 75 23
     11896    jne short 07c5eh                          ; 75 23
    1190911897    mov cx, strict word 00010h                ; b9 10 00
    11910     jmp short 07dc9h                          ; eb 05
     11898    jmp short 07c45h                          ; eb 05
    1191111899    dec cx                                    ; 49
    1191211900    test cx, cx                               ; 85 c9
    11913     jbe short 07de2h                          ; 76 19
     11901    jbe short 07c5eh                          ; 76 19
    1191411902    mov ax, cx                                ; 89 c8
    1191511903    or ah, 002h                               ; 80 cc 02
     
    1191811906    xor dx, dx                                ; 31 d2
    1191911907    mov ax, strict word 00001h                ; b8 01 00
    11920     call 07a75h                               ; e8 9b fc
     11908    call 078f1h                               ; e8 9b fc
    1192111909    cmp AL, strict byte 086h                  ; 3c 86
    11922     jne short 07dc4h                          ; 75 e6
     11910    jne short 07c40h                          ; 75 e6
    1192311911    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1192411912    xor bx, bx                                ; 31 db
    1192511913    mov dx, 0037dh                            ; ba 7d 03
    1192611914    mov ax, si                                ; 89 f0
    11927     call 01660h                               ; e8 74 98
     11915    call 01660h                               ; e8 f8 99
    1192811916    mov AL, strict byte 003h                  ; b0 03
    1192911917    mov AH, strict byte 000h                  ; b4 00
    1193011918    int 010h                                  ; cd 10
    1193111919    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11932     je short 07e0ch                           ; 74 14
     11920    je short 07c88h                           ; 74 14
    1193311921    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    11934     jne short 07e3ah                          ; 75 3c
     11922    jne short 07cb6h                          ; 75 3c
    1193511923    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11936     jne short 07e3ah                          ; 75 36
     11924    jne short 07cb6h                          ; 75 36
    1193711925    cmp word [bp-016h], strict byte 00000h    ; 83 7e ea 00
    11938     je short 07e0fh                           ; 74 05
    11939     jmp short 07e3ah                          ; eb 2e
    11940     jmp near 07ef6h                           ; e9 e7 00
     11926    je short 07c8bh                           ; 74 05
     11927    jmp short 07cb6h                          ; eb 2e
     11928    jmp near 07d72h                           ; e9 e7 00
    1194111929    cmp byte [bp-010h], 002h                  ; 80 7e f0 02
    11942     jne short 07e23h                          ; 75 0e
     11930    jne short 07c9fh                          ; 75 0e
    1194311931    mov ax, 00a4bh                            ; b8 4b 0a
    1194411932    push ax                                   ; 50
    1194511933    mov ax, strict word 00002h                ; b8 02 00
    1194611934    push ax                                   ; 50
    11947     call 01976h                               ; e8 56 9b
     11935    call 01976h                               ; e8 da 9c
    1194811936    add sp, strict byte 00004h                ; 83 c4 04
    1194911937    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11950     jne short 07e3ah                          ; 75 11
     11938    jne short 07cb6h                          ; 75 11
    1195111939    mov dx, strict word 00001h                ; ba 01 00
    1195211940    mov ax, 000c0h                            ; b8 c0 00
    11953     call 07a75h                               ; e8 43 fc
     11941    call 078f1h                               ; e8 43 fc
    1195411942    cmp AL, strict byte 086h                  ; 3c 86
    11955     jne short 07e3ah                          ; 75 04
     11943    jne short 07cb6h                          ; 75 04
    1195611944    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1195711945    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11958     je short 07e0ch                           ; 74 cc
     11946    je short 07c88h                           ; 74 cc
    1195911947    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1196011948    mov ax, 00100h                            ; b8 00 01
     
    1197711965    mov ax, strict word 00002h                ; b8 02 00
    1197811966    push ax                                   ; 50
    11979     call 01976h                               ; e8 0a 9b
     11967    call 01976h                               ; e8 8e 9c
    1198011968    add sp, strict byte 00004h                ; 83 c4 04
    11981     call 07b51h                               ; e8 df fc
     11969    call 079cdh                               ; e8 df fc
    1198211970    mov ax, 00ab1h                            ; b8 b1 0a
    1198311971    push ax                                   ; 50
    1198411972    mov ax, strict word 00002h                ; b8 02 00
    1198511973    push ax                                   ; 50
    11986     call 01976h                               ; e8 f9 9a
     11974    call 01976h                               ; e8 7d 9c
    1198711975    add sp, strict byte 00004h                ; 83 c4 04
    1198811976    mov dx, strict word 00001h                ; ba 01 00
    1198911977    mov ax, strict word 00040h                ; b8 40 00
    11990     call 07a75h                               ; e8 ec fb
     11978    call 078f1h                               ; e8 ec fb
    1199111979    mov cl, al                                ; 88 c1
    1199211980    test al, al                               ; 84 c0
    11993     je short 07e80h                           ; 74 f1
     11981    je short 07cfch                           ; 74 f1
    1199411982    cmp AL, strict byte 030h                  ; 3c 30
    11995     je short 07ee3h                           ; 74 50
     11983    je short 07d5fh                           ; 74 50
    1199611984    cmp cl, 002h                              ; 80 f9 02
    11997     jc short 07ebch                           ; 72 24
     11985    jc short 07d38h                           ; 72 24
    1199811986    cmp cl, 009h                              ; 80 f9 09
    11999     jnbe short 07ebch                         ; 77 1f
     11987    jnbe short 07d38h                         ; 77 1f
    1200011988    mov al, cl                                ; 88 c8
    1200111989    xor ah, ah                                ; 30 e4
    12002     call 07cabh                               ; e8 07 fe
     11990    call 07b27h                               ; e8 07 fe
    1200311991    cmp AL, strict byte 0ffh                  ; 3c ff
    12004     jne short 07eaah                          ; 75 02
    12005     jmp short 07e80h                          ; eb d6
     11992    jne short 07d26h                          ; 75 02
     11993    jmp short 07cfch                          ; eb d6
    1200611994    mov bl, al                                ; 88 c3
    1200711995    xor bh, bh                                ; 30 ff
    1200811996    mov dx, 0037ch                            ; ba 7c 03
    1200911997    mov ax, si                                ; 89 f0
    12010     call 01660h                               ; e8 aa 97
     11998    call 01660h                               ; e8 2e 99
    1201111999    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    12012     jmp short 07ee3h                          ; eb 27
     12000    jmp short 07d5fh                          ; eb 27
    1201312001    cmp cl, 02eh                              ; 80 f9 2e
    12014     je short 07ed1h                           ; 74 10
     12002    je short 07d4dh                           ; 74 10
    1201512003    cmp cl, 026h                              ; 80 f9 26
    12016     je short 07ed7h                           ; 74 11
     12004    je short 07d53h                           ; 74 11
    1201712005    cmp cl, 021h                              ; 80 f9 21
    12018     jne short 07eddh                          ; 75 12
     12006    jne short 07d59h                          ; 75 12
    1201912007    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    12020     jmp short 07ee3h                          ; eb 12
     12008    jmp short 07d5fh                          ; eb 12
    1202112009    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    12022     jmp short 07ee3h                          ; eb 0c
     12010    jmp short 07d5fh                          ; eb 0c
    1202312011    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    12024     jmp short 07ee3h                          ; eb 06
     12012    jmp short 07d5fh                          ; eb 06
    1202512013    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    12026     je short 07e80h                           ; 74 9d
     12014    je short 07cfch                           ; 74 9d
    1202712015    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    1202812016    xor bh, bh                                ; 30 ff
    1202912017    mov dx, 0037dh                            ; ba 7d 03
    1203012018    mov ax, si                                ; 89 f0
    12031     call 01660h                               ; e8 70 97
     12019    call 01660h                               ; e8 f4 98
    1203212020    mov AL, strict byte 003h                  ; b0 03
    1203312021    mov AH, strict byte 000h                  ; b4 00
     
    1204212030    push DS                                   ; 1e
    1204312031    mov ds, ax                                ; 8e d8
    12044     call 0ede3h                               ; e8 dc 6e
     12032    call 0ede3h                               ; e8 60 70
    1204512033    pop DS                                    ; 1f
    1204612034    pop bp                                    ; 5d
     
    1205312041    pop bp                                    ; 5d
    1205412042    retn                                      ; c3
    12055 delay_boot_:                                 ; 0xf7f13 LB 0x72
     12043delay_boot_:                                 ; 0xf7d8f LB 0x72
    1205612044    push bp                                   ; 55
    1205712045    mov bp, sp                                ; 89 e5
     
    1206312051    mov bx, ax                                ; 89 c3
    1206412052    test ax, ax                               ; 85 c0
    12065     je short 07f7bh                           ; 74 5a
     12053    je short 07df7h                           ; 74 5a
    1206612054    mov AL, strict byte 034h                  ; b0 34
    1206712055    out strict byte 043h, AL                  ; e6 43
     
    1207512063    mov ax, strict word 00002h                ; b8 02 00
    1207612064    push ax                                   ; 50
    12077     call 01976h                               ; e8 3d 9a
     12065    call 01976h                               ; e8 c1 9b
    1207812066    add sp, strict byte 00006h                ; 83 c4 06
    1207912067    test bx, bx                               ; 85 db
    12080     jbe short 07f5ah                          ; 76 1a
     12068    jbe short 07dd6h                          ; 76 1a
    1208112069    push bx                                   ; 53
    1208212070    mov ax, 00b19h                            ; b8 19 0b
     
    1208412072    mov ax, strict word 00002h                ; b8 02 00
    1208512073    push ax                                   ; 50
    12086     call 01976h                               ; e8 2a 9a
     12074    call 01976h                               ; e8 ae 9b
    1208712075    add sp, strict byte 00006h                ; 83 c4 06
    1208812076    xor dx, dx                                ; 31 d2
    1208912077    mov ax, strict word 00040h                ; b8 40 00
    12090     call 07a75h                               ; e8 1e fb
     12078    call 078f1h                               ; e8 1e fb
    1209112079    dec bx                                    ; 4b
    12092     jmp short 07f3ch                          ; eb e2
     12080    jmp short 07db8h                          ; eb e2
    1209312081    mov bx, 00a49h                            ; bb 49 0a
    1209412082    push bx                                   ; 53
    1209512083    mov bx, strict word 00002h                ; bb 02 00
    1209612084    push bx                                   ; 53
    12097     call 01976h                               ; e8 11 9a
     12085    call 01976h                               ; e8 95 9b
    1209812086    add sp, strict byte 00004h                ; 83 c4 04
    1209912087    mov AL, strict byte 034h                  ; b0 34
     
    1210612094    push DS                                   ; 1e
    1210712095    mov ds, ax                                ; 8e d8
    12108     call 0ede3h                               ; e8 6a 6e
     12096    call 0ede3h                               ; e8 ee 6f
    1210912097    pop DS                                    ; 1f
    1211012098    pop bp                                    ; 5d
     
    1211712105    pop bp                                    ; 5d
    1211812106    retn                                      ; c3
    12119 scsi_cmd_data_in_:                           ; 0xf7f85 LB 0xd5
     12107scsi_cmd_data_in_:                           ; 0xf7e01 LB 0xd5
    1212012108    push bp                                   ; 55
    1212112109    mov bp, sp                                ; 89 e5
     
    1213312121    ; sub ah, ah                                ; 2a e4
    1213412122    test AL, strict byte 001h                 ; a8 01
    12135     jne short 07f9bh                          ; 75 f7
     12123    jne short 07e17h                          ; 75 f7
    1213612124    mov al, byte [bp+004h]                    ; 8a 46 04
    1213712125    cmp AL, strict byte 010h                  ; 3c 10
    12138     jne short 07fafh                          ; 75 04
     12126    jne short 07e2bh                          ; 75 04
    1213912127    xor ax, ax                                ; 31 c0
    12140     jmp short 07fb1h                          ; eb 02
     12128    jmp short 07e2dh                          ; eb 02
    1214112129    xor ah, ah                                ; 30 e4
    1214212130    mov di, ax                                ; 89 c7
     
    1214612134    shr dx, 1                                 ; d1 ea
    1214712135    rcr ax, 1                                 ; d1 d8
    12148     loop 07fbbh                               ; e2 fa
     12136    loop 07e37h                               ; e2 fa
    1214912137    mov cx, ax                                ; 89 c1
    1215012138    and cx, 000f0h                            ; 81 e1 f0 00
     
    1216412152    shr dx, 1                                 ; d1 ea
    1216512153    rcr ax, 1                                 ; d1 d8
    12166     loop 07fe0h                               ; e2 fa
     12154    loop 07e5ch                               ; e2 fa
    1216712155    mov dx, si                                ; 89 f2
    1216812156    out DX, AL                                ; ee
     
    1217112159    xor ah, ah                                ; 30 e4
    1217212160    cmp cx, ax                                ; 39 c1
    12173     jnc short 08002h                          ; 73 0e
     12161    jnc short 07e7eh                          ; 73 0e
    1217412162    les di, [bp-00ah]                         ; c4 7e f6
    1217512163    add di, cx                                ; 01 cf
     
    1217812166    out DX, AL                                ; ee
    1217912167    inc cx                                    ; 41
    12180     jmp short 07febh                          ; eb e9
     12168    jmp short 07e67h                          ; eb e9
    1218112169    mov dx, si                                ; 89 f2
    1218212170    in AL, DX                                 ; ec
     
    1218412172    ; sub ah, ah                                ; 2a e4
    1218512173    test AL, strict byte 001h                 ; a8 01
    12186     jne short 08002h                          ; 75 f7
     12174    jne short 07e7eh                          ; 75 f7
    1218712175    test AL, strict byte 002h                 ; a8 02
    12188     je short 0801dh                           ; 74 0e
     12176    je short 07e99h                           ; 74 0e
    1218912177    lea dx, [si+003h]                         ; 8d 54 03
    1219012178    xor al, al                                ; 30 c0
     
    1219412182    ; sub ah, ah                                ; 2a e4
    1219512183    mov di, strict word 00004h                ; bf 04 00
    12196     jmp short 0804fh                          ; eb 32
     12184    jmp short 07ecbh                          ; eb 32
    1219712185    lea dx, [si+001h]                         ; 8d 54 01
    1219812186    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12199     jne short 0802ch                          ; 75 06
     12187    jne short 07ea8h                          ; 75 06
    1220012188    cmp bx, 08000h                            ; 81 fb 00 80
    12201     jbe short 08046h                          ; 76 1a
     12189    jbe short 07ec2h                          ; 76 1a
    1220212190    mov cx, 08000h                            ; b9 00 80
    1220312191    les di, [bp+006h]                         ; c4 7e 06
     
    1220812196    add ax, 00800h                            ; 05 00 08
    1220912197    mov word [bp+008h], ax                    ; 89 46 08
    12210     jmp short 0801dh                          ; eb d7
     12198    jmp short 07e99h                          ; eb d7
    1221112199    mov cx, bx                                ; 89 d9
    1221212200    les di, [bp+006h]                         ; c4 7e 06
     
    1221912207    pop bp                                    ; 5d
    1222012208    retn 0000ah                               ; c2 0a 00
    12221 scsi_cmd_data_out_:                          ; 0xf805a LB 0xd5
     12209scsi_cmd_data_out_:                          ; 0xf7ed6 LB 0xd5
    1222212210    push bp                                   ; 55
    1222312211    mov bp, sp                                ; 89 e5
     
    1223512223    ; sub ah, ah                                ; 2a e4
    1223612224    test AL, strict byte 001h                 ; a8 01
    12237     jne short 08070h                          ; 75 f7
     12225    jne short 07eech                          ; 75 f7
    1223812226    mov al, byte [bp+004h]                    ; 8a 46 04
    1223912227    cmp AL, strict byte 010h                  ; 3c 10
    12240     jne short 08084h                          ; 75 04
     12228    jne short 07f00h                          ; 75 04
    1224112229    xor ax, ax                                ; 31 c0
    12242     jmp short 08086h                          ; eb 02
     12230    jmp short 07f02h                          ; eb 02
    1224312231    xor ah, ah                                ; 30 e4
    1224412232    mov si, ax                                ; 89 c6
     
    1224812236    shr dx, 1                                 ; d1 ea
    1224912237    rcr ax, 1                                 ; d1 d8
    12250     loop 08090h                               ; e2 fa
     12238    loop 07f0ch                               ; e2 fa
    1225112239    mov cx, ax                                ; 89 c1
    1225212240    and cx, 000f0h                            ; 81 e1 f0 00
     
    1226612254    shr dx, 1                                 ; d1 ea
    1226712255    rcr ax, 1                                 ; d1 d8
    12268     loop 080b5h                               ; e2 fa
     12256    loop 07f31h                               ; e2 fa
    1226912257    mov dx, di                                ; 89 fa
    1227012258    out DX, AL                                ; ee
     
    1227312261    xor ah, ah                                ; 30 e4
    1227412262    cmp cx, ax                                ; 39 c1
    12275     jnc short 080d7h                          ; 73 0e
     12263    jnc short 07f53h                          ; 73 0e
    1227612264    les si, [bp-00ah]                         ; c4 76 f6
    1227712265    add si, cx                                ; 01 ce
     
    1228012268    out DX, AL                                ; ee
    1228112269    inc cx                                    ; 41
    12282     jmp short 080c0h                          ; eb e9
     12270    jmp short 07f3ch                          ; eb e9
    1228312271    lea dx, [di+001h]                         ; 8d 55 01
    1228412272    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12285     jne short 080e6h                          ; 75 06
     12273    jne short 07f62h                          ; 75 06
    1228612274    cmp bx, 08000h                            ; 81 fb 00 80
    12287     jbe short 08101h                          ; 76 1b
     12275    jbe short 07f7dh                          ; 76 1b
    1228812276    mov cx, 08000h                            ; b9 00 80
    1228912277    les si, [bp+006h]                         ; c4 76 06
     
    1229512283    add ax, 00800h                            ; 05 00 08
    1229612284    mov word [bp+008h], ax                    ; 89 46 08
    12297     jmp short 080d7h                          ; eb d6
     12285    jmp short 07f53h                          ; eb d6
    1229812286    mov cx, bx                                ; 89 d9
    1229912287    les si, [bp+006h]                         ; c4 76 06
     
    1230512293    ; sub ah, ah                                ; 2a e4
    1230612294    test AL, strict byte 001h                 ; a8 01
    12307     jne short 08109h                          ; 75 f7
     12295    jne short 07f85h                          ; 75 f7
    1230812296    test AL, strict byte 002h                 ; a8 02
    12309     je short 08124h                           ; 74 0e
     12297    je short 07fa0h                           ; 74 0e
    1231012298    lea dx, [di+003h]                         ; 8d 55 03
    1231112299    xor al, al                                ; 30 c0
     
    1231512303    ; sub ah, ah                                ; 2a e4
    1231612304    mov ax, strict word 00004h                ; b8 04 00
    12317     jmp short 08126h                          ; eb 02
     12305    jmp short 07fa2h                          ; eb 02
    1231812306    xor ax, ax                                ; 31 c0
    1231912307    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1232212310    pop bp                                    ; 5d
    1232312311    retn 0000ah                               ; c2 0a 00
    12324 @scsi_read_sectors:                          ; 0xf812f LB 0xe9
     12312@scsi_read_sectors:                          ; 0xf7fab LB 0xe9
    1232512313    push bp                                   ; 55
    1232612314    mov bp, sp                                ; 89 e5
     
    1233412322    mov byte [bp-006h], al                    ; 88 46 fa
    1233512323    cmp AL, strict byte 004h                  ; 3c 04
    12336     jbe short 0815fh                          ; 76 15
     12324    jbe short 07fdbh                          ; 76 15
    1233712325    xor ah, ah                                ; 30 e4
    1233812326    push ax                                   ; 50
     
    1234312331    mov ax, strict word 00007h                ; b8 07 00
    1234412332    push ax                                   ; 50
    12345     call 01976h                               ; e8 1a 98
     12333    call 01976h                               ; e8 9e 99
    1234612334    add sp, strict byte 00008h                ; 83 c4 08
    1234712335    mov es, [bp+006h]                         ; 8e 46 06
     
    1238412372    sal word [bp-00ah], 1                     ; d1 66 f6
    1238512373    rcl word [bp-008h], 1                     ; d1 56 f8
    12386     loop 081cah                               ; e2 f8
     12374    loop 08046h                               ; e2 f8
    1238712375    push word [bp-008h]                       ; ff 76 f8
    1238812376    push word [bp-00ah]                       ; ff 76 f6
     
    1239512383    mov cx, ss                                ; 8c d1
    1239612384    lea bx, [bp-01ah]                         ; 8d 5e e6
    12397     call 07f85h                               ; e8 95 fd
     12385    call 07e01h                               ; e8 95 fd
    1239812386    mov ah, al                                ; 88 c4
    1239912387    test al, al                               ; 84 c0
    12400     jne short 0820bh                          ; 75 15
     12388    jne short 08087h                          ; 75 15
    1240112389    mov es, [bp+006h]                         ; 8e 46 06
    1240212390    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1241212400    pop bp                                    ; 5d
    1241312401    retn 00004h                               ; c2 04 00
    12414 @scsi_write_sectors:                         ; 0xf8218 LB 0xe9
     12402@scsi_write_sectors:                         ; 0xf8094 LB 0xe9
    1241512403    push bp                                   ; 55
    1241612404    mov bp, sp                                ; 89 e5
     
    1242412412    mov byte [bp-006h], al                    ; 88 46 fa
    1242512413    cmp AL, strict byte 004h                  ; 3c 04
    12426     jbe short 08248h                          ; 76 15
     12414    jbe short 080c4h                          ; 76 15
    1242712415    xor ah, ah                                ; 30 e4
    1242812416    push ax                                   ; 50
     
    1243312421    mov ax, strict word 00007h                ; b8 07 00
    1243412422    push ax                                   ; 50
    12435     call 01976h                               ; e8 31 97
     12423    call 01976h                               ; e8 b5 98
    1243612424    add sp, strict byte 00008h                ; 83 c4 08
    1243712425    mov es, [bp+006h]                         ; 8e 46 06
     
    1247412462    sal word [bp-00ah], 1                     ; d1 66 f6
    1247512463    rcl word [bp-008h], 1                     ; d1 56 f8
    12476     loop 082b3h                               ; e2 f8
     12464    loop 0812fh                               ; e2 f8
    1247712465    push word [bp-008h]                       ; ff 76 f8
    1247812466    push word [bp-00ah]                       ; ff 76 f6
     
    1248512473    mov cx, ss                                ; 8c d1
    1248612474    lea bx, [bp-01ah]                         ; 8d 5e e6
    12487     call 0805ah                               ; e8 81 fd
     12475    call 07ed6h                               ; e8 81 fd
    1248812476    mov ah, al                                ; 88 c4
    1248912477    test al, al                               ; 84 c0
    12490     jne short 082f4h                          ; 75 15
     12478    jne short 08170h                          ; 75 15
    1249112479    mov es, [bp+006h]                         ; 8e 46 06
    1249212480    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1250212490    pop bp                                    ; 5d
    1250312491    retn 00004h                               ; c2 04 00
    12504 scsi_cmd_packet_:                            ; 0xf8301 LB 0x170
     12492scsi_cmd_packet_:                            ; 0xf817d LB 0x170
    1250512493    push bp                                   ; 55
    1250612494    mov bp, sp                                ; 89 e5
     
    1251412502    mov dx, strict word 0000eh                ; ba 0e 00
    1251512503    mov ax, strict word 00040h                ; b8 40 00
    12516     call 0166eh                               ; e8 51 93
     12504    call 0166eh                               ; e8 d5 94
    1251712505    mov si, 00122h                            ; be 22 01
    1251812506    mov word [bp-00ch], ax                    ; 89 46 f4
    1251912507    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12520     jne short 0834ch                          ; 75 23
     12508    jne short 081c8h                          ; 75 23
    1252112509    mov bx, 00da0h                            ; bb a0 0d
    1252212510    mov cx, ds                                ; 8c d9
    1252312511    mov ax, strict word 00004h                ; b8 04 00
    12524     call 01933h                               ; e8 ff 95
     12512    call 01933h                               ; e8 83 97
    1252512513    mov ax, 00b62h                            ; b8 62 0b
    1252612514    push ax                                   ; 50
     
    1252912517    mov ax, strict word 00004h                ; b8 04 00
    1253012518    push ax                                   ; 50
    12531     call 01976h                               ; e8 33 96
     12519    call 01976h                               ; e8 b7 97
    1253212520    add sp, strict byte 00006h                ; 83 c4 06
    1253312521    mov dx, strict word 00001h                ; ba 01 00
    12534     jmp near 08466h                           ; e9 1a 01
     12522    jmp near 082e2h                           ; e9 1a 01
    1253512523    sub di, strict byte 00008h                ; 83 ef 08
    1253612524    sal di, 1                                 ; d1 e7
     
    1254712535    ; sub ah, ah                                ; 2a e4
    1254812536    test AL, strict byte 001h                 ; a8 01
    12549     jne short 08369h                          ; 75 f7
     12537    jne short 081e5h                          ; 75 f7
    1255012538    xor dx, bx                                ; 31 da
    1255112539    mov ax, word [bp+006h]                    ; 8b 46 06
     
    1256312551    shr dx, 1                                 ; d1 ea
    1256412552    rcr ax, 1                                 ; d1 d8
    12565     loop 08394h                               ; e2 fa
     12553    loop 08210h                               ; e2 fa
    1256612554    and ax, 000f0h                            ; 25 f0 00
    1256712555    mov cl, byte [bp-006h]                    ; 8a 4e fa
     
    1258212570    shr dx, 1                                 ; d1 ea
    1258312571    rcr ax, 1                                 ; d1 d8
    12584     loop 083bch                               ; e2 fa
     12572    loop 08238h                               ; e2 fa
    1258512573    mov dx, bx                                ; 89 da
    1258612574    out DX, AL                                ; ee
     
    1258912577    xor ah, ah                                ; 30 e4
    1259012578    cmp cx, ax                                ; 39 c1
    12591     jnc short 083e1h                          ; 73 11
     12579    jnc short 0825dh                          ; 73 11
    1259212580    mov es, [bp-00ah]                         ; 8e 46 f6
    1259312581    mov di, word [bp-00eh]                    ; 8b 7e f2
     
    1259712585    out DX, AL                                ; ee
    1259812586    inc cx                                    ; 41
    12599     jmp short 083c7h                          ; eb e6
     12587    jmp short 08243h                          ; eb e6
    1260012588    mov dx, bx                                ; 89 da
    1260112589    in AL, DX                                 ; ec
     
    1260312591    ; sub ah, ah                                ; 2a e4
    1260412592    test AL, strict byte 001h                 ; a8 01
    12605     jne short 083e1h                          ; 75 f7
     12593    jne short 0825dh                          ; 75 f7
    1260612594    test AL, strict byte 002h                 ; a8 02
    12607     je short 083fch                           ; 74 0e
     12595    je short 08278h                           ; 74 0e
    1260812596    lea dx, [bx+003h]                         ; 8d 57 03
    1260912597    xor al, al                                ; 30 c0
     
    1261312601    ; sub ah, ah                                ; 2a e4
    1261412602    mov dx, strict word 00003h                ; ba 03 00
    12615     jmp short 08466h                          ; eb 6a
     12603    jmp short 082e2h                          ; eb 6a
    1261612604    mov ax, word [bp+004h]                    ; 8b 46 04
    1261712605    test ax, ax                               ; 85 c0
    12618     je short 0840bh                           ; 74 08
     12606    je short 08287h                           ; 74 08
    1261912607    lea dx, [bx+001h]                         ; 8d 57 01
    1262012608    mov cx, ax                                ; 89 c1
    1262112609    in AL, DX                                 ; ec
    12622     loop 08408h                               ; e2 fd
     12610    loop 08284h                               ; e2 fd
    1262312611    mov ax, word [bp+006h]                    ; 8b 46 06
    1262412612    mov es, [bp-00ch]                         ; 8e 46 f4
     
    1262812616    lea ax, [bx+001h]                         ; 8d 47 01
    1262912617    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12630     jne short 0842ch                          ; 75 07
     12618    jne short 082a8h                          ; 75 07
    1263112619    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12632     jbe short 08449h                          ; 76 1d
     12620    jbe short 082c5h                          ; 76 1d
    1263312621    mov dx, ax                                ; 89 c2
    1263412622    mov cx, 08000h                            ; b9 00 80
     
    1264012628    add ax, 00800h                            ; 05 00 08
    1264112629    mov word [bp+00eh], ax                    ; 89 46 0e
    12642     jmp short 0841ch                          ; eb d3
     12630    jmp short 08298h                          ; eb d3
    1264312631    mov dx, ax                                ; 89 c2
    1264412632    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1264712635    mov es, [bp-00ch]                         ; 8e 46 f4
    1264812636    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12649     je short 08464h                           ; 74 07
     12637    je short 082e0h                           ; 74 07
    1265012638    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1265112639    in AL, DX                                 ; ec
    12652     loop 08461h                               ; e2 fd
     12640    loop 082ddh                               ; e2 fd
    1265312641    xor dx, dx                                ; 31 d2
    1265412642    mov ax, dx                                ; 89 d0
     
    1265812646    pop bp                                    ; 5d
    1265912647    retn 0000ch                               ; c2 0c 00
    12660 scsi_enumerate_attached_devices_:            ; 0xf8471 LB 0x4cb
     12648scsi_enumerate_attached_devices_:            ; 0xf82ed LB 0x4cb
    1266112649    push bp                                   ; 55
    1266212650    mov bp, sp                                ; 89 e5
     
    1267012658    mov dx, strict word 0000eh                ; ba 0e 00
    1267112659    mov ax, strict word 00040h                ; b8 40 00
    12672     call 0166eh                               ; e8 e7 91
     12660    call 0166eh                               ; e8 6b 93
    1267312661    mov di, 00122h                            ; bf 22 01
    1267412662    mov word [bp-016h], ax                    ; 89 46 ea
    1267512663    mov word [bp-014h], strict word 00000h    ; c7 46 ec 00 00
    12676     jmp near 088afh                           ; e9 1a 04
     12664    jmp near 0872bh                           ; e9 1a 04
    1267712665    cmp AL, strict byte 004h                  ; 3c 04
    12678     jc short 0849ch                           ; 72 03
    12679     jmp near 08932h                           ; e9 96 04
     12666    jc short 08318h                           ; 72 03
     12667    jmp near 087aeh                           ; e9 96 04
    1268012668    mov cx, strict word 00010h                ; b9 10 00
    1268112669    xor bx, bx                                ; 31 db
    1268212670    mov dx, ss                                ; 8c d2
    1268312671    lea ax, [bp-048h]                         ; 8d 46 b8
    12684     call 0a21ah                               ; e8 71 1d
     12672    call 0a070h                               ; e8 4b 1d
    1268512673    mov byte [bp-048h], 09eh                  ; c6 46 b8 9e
    1268612674    mov byte [bp-047h], 010h                  ; c6 46 b9 10
     
    1270012688    lea bx, [bp-048h]                         ; 8d 5e b8
    1270112689    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
    12702     call 07f85h                               ; e8 ae fa
     12690    call 07e01h                               ; e8 ae fa
    1270312691    test al, al                               ; 84 c0
    12704     je short 084edh                           ; 74 12
     12692    je short 08369h                           ; 74 12
    1270512693    mov ax, 00b92h                            ; b8 92 0b
    1270612694    push ax                                   ; 50
     
    1270912697    mov ax, strict word 00007h                ; b8 07 00
    1271012698    push ax                                   ; 50
    12711     call 01976h                               ; e8 8c 94
     12699    call 01976h                               ; e8 10 96
    1271212700    add sp, strict byte 00006h                ; 83 c4 06
    1271312701    mov ax, word [bp-00242h]                  ; 8b 86 be fd
     
    1274112729    sal ax, 1                                 ; d1 e0
    1274212730    rcl dx, 1                                 ; d1 d2
    12743     loop 0853bh                               ; e2 fa
     12731    loop 083b7h                               ; e2 fa
    1274412732    or bx, ax                                 ; 09 c3
    1274512733    or dx, si                                 ; 09 f2
     
    1274912737    mov word [bp-01ch], bx                    ; 89 5e e4
    1275012738    test dx, dx                               ; 85 d2
    12751     jne short 0855ah                          ; 75 06
     12739    jne short 083d6h                          ; 75 06
    1275212740    cmp bx, 00200h                            ; 81 fb 00 02
    12753     je short 0857dh                           ; 74 23
     12741    je short 083f9h                           ; 74 23
    1275412742    mov bx, 00da0h                            ; bb a0 0d
    1275512743    mov cx, ds                                ; 8c d9
    1275612744    mov ax, strict word 00004h                ; b8 04 00
    12757     call 01933h                               ; e8 ce 93
     12745    call 01933h                               ; e8 52 95
    1275812746    push dx                                   ; 52
    1275912747    push word [bp-01ch]                       ; ff 76 e4
     
    1276312751    mov ax, strict word 00004h                ; b8 04 00
    1276412752    push ax                                   ; 50
    12765     call 01976h                               ; e8 ff 93
     12753    call 01976h                               ; e8 83 95
    1276612754    add sp, strict byte 0000ah                ; 83 c4 0a
    12767     jmp near 088a3h                           ; e9 26 03
     12755    jmp near 0871fh                           ; e9 26 03
    1276812756    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1276912757    cmp AL, strict byte 001h                  ; 3c 01
    12770     jc short 08590h                           ; 72 0c
    12771     jbe short 08598h                          ; 76 12
     12758    jc short 0840ch                           ; 72 0c
     12759    jbe short 08414h                          ; 76 12
    1277212760    cmp AL, strict byte 003h                  ; 3c 03
    12773     je short 085a0h                           ; 74 16
     12761    je short 0841ch                           ; 74 16
    1277412762    cmp AL, strict byte 002h                  ; 3c 02
    12775     je short 0859ch                           ; 74 0e
    12776     jmp short 085e7h                          ; eb 57
     12763    je short 08418h                           ; 74 0e
     12764    jmp short 08463h                          ; eb 57
    1277712765    test al, al                               ; 84 c0
    12778     jne short 085e7h                          ; 75 53
     12766    jne short 08463h                          ; 75 53
    1277912767    mov BL, strict byte 090h                  ; b3 90
    12780     jmp short 085a2h                          ; eb 0a
     12768    jmp short 0841eh                          ; eb 0a
    1278112769    mov BL, strict byte 098h                  ; b3 98
    12782     jmp short 085a2h                          ; eb 06
     12770    jmp short 0841eh                          ; eb 06
    1278312771    mov BL, strict byte 0a0h                  ; b3 a0
    12784     jmp short 085a2h                          ; eb 02
     12772    jmp short 0841eh                          ; eb 02
    1278512773    mov BL, strict byte 0a8h                  ; b3 a8
    1278612774    mov cl, bl                                ; 88 d9
     
    1278812776    xor ch, ch                                ; 30 ed
    1278912777    mov ax, cx                                ; 89 c8
    12790     call 016aeh                               ; e8 00 91
     12778    call 016aeh                               ; e8 84 92
    1279112779    test al, al                               ; 84 c0
    12792     je short 085e7h                           ; 74 35
     12780    je short 08463h                           ; 74 35
    1279312781    mov al, bl                                ; 88 d8
    1279412782    db  0feh, 0c0h
    1279512783    ; inc al                                    ; fe c0
    1279612784    xor ah, ah                                ; 30 e4
    12797     call 016aeh                               ; e8 f3 90
     12785    call 016aeh                               ; e8 77 92
    1279812786    mov dh, al                                ; 88 c6
    1279912787    mov al, bl                                ; 88 d8
    1280012788    xor ah, ah                                ; 30 e4
    12801     call 016aeh                               ; e8 ea 90
     12789    call 016aeh                               ; e8 6e 92
    1280212790    mov ah, dh                                ; 88 f4
    1280312791    cwd                                       ; 99
     
    1280712795    add AL, strict byte 002h                  ; 04 02
    1280812796    xor ah, ah                                ; 30 e4
    12809     call 016aeh                               ; e8 d9 90
     12797    call 016aeh                               ; e8 5d 92
    1281012798    xor ah, ah                                ; 30 e4
    1281112799    mov word [bp-028h], ax                    ; 89 46 d8
    1281212800    mov ax, cx                                ; 89 c8
    12813     call 016aeh                               ; e8 cf 90
     12801    call 016aeh                               ; e8 53 92
    1281412802    xor ah, ah                                ; 30 e4
    1281512803    mov word [bp-01ah], ax                    ; 89 46 e6
    12816     jmp near 086d4h                           ; e9 ed 00
     12804    jmp near 08550h                           ; e9 ed 00
    1281712805    mov ax, word [bp-020h]                    ; 8b 46 e0
    1281812806    mov bx, word [bp-022h]                    ; 8b 5e de
     
    1282012808    mov dx, word [bp-024h]                    ; 8b 56 dc
    1282112809    mov si, strict word 0000ch                ; be 0c 00
    12822     call 0a20ah                               ; e8 11 1c
     12810    call 0a050h                               ; e8 db 1b
    1282312811    mov word [bp-02ah], ax                    ; 89 46 d6
    1282412812    mov word [bp-02ch], bx                    ; 89 5e d4
     
    1282712815    mov ax, word [bp-020h]                    ; 8b 46 e0
    1282812816    test ax, ax                               ; 85 c0
    12829     jnbe short 08621h                         ; 77 15
    12830     je short 08611h                           ; 74 03
    12831     jmp near 08694h                           ; e9 83 00
     12817    jnbe short 0849dh                         ; 77 15
     12818    je short 0848dh                           ; 74 03
     12819    jmp near 08510h                           ; e9 83 00
    1283212820    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    12833     jnbe short 08621h                         ; 77 0a
    12834     jne short 0860eh                          ; 75 f5
     12821    jnbe short 0849dh                         ; 77 0a
     12822    jne short 0848ah                          ; 75 f5
    1283512823    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
    12836     jnbe short 08621h                         ; 77 02
    12837     jne short 08694h                          ; 75 73
     12824    jnbe short 0849dh                         ; 77 02
     12825    jne short 08510h                          ; 75 73
    1283812826    mov word [bp-028h], 000ffh                ; c7 46 d8 ff 00
    1283912827    mov word [bp-01ah], strict word 0003fh    ; c7 46 e6 3f 00
     
    1284212830    mov dx, word [bp-024h]                    ; 8b 56 dc
    1284312831    mov si, strict word 00006h                ; be 06 00
    12844     call 0a20ah                               ; e8 d0 1b
     12832    call 0a050h                               ; e8 9a 1b
    1284512833    mov si, word [bp-018h]                    ; 8b 76 e8
    1284612834    add si, dx                                ; 01 d6
     
    1286012848    mov dx, si                                ; 89 f2
    1286112849    mov si, strict word 00008h                ; be 08 00
    12862     call 0a20ah                               ; e8 a0 1b
     12850    call 0a050h                               ; e8 6a 1b
    1286312851    mov word [bp-02eh], bx                    ; 89 5e d2
    1286412852    mov word [bp-030h], cx                    ; 89 4e d0
     
    1286912857    mov dx, word [bp-01eh]                    ; 8b 56 e2
    1287012858    mov si, strict word 00010h                ; be 10 00
    12871     call 0a20ah                               ; e8 85 1b
     12859    call 0a050h                               ; e8 4f 1b
    1287212860    mov si, word [bp-032h]                    ; 8b 76 ce
    1287312861    add si, dx                                ; 01 d6
     
    1287512863    mov ax, word [bp-02eh]                    ; 8b 46 d2
    1287612864    adc ax, bx                                ; 11 d8
    12877     jmp short 086d1h                          ; eb 3d
     12865    jmp short 0854dh                          ; eb 3d
    1287812866    test ax, ax                               ; 85 c0
    12879     jnbe short 086aah                         ; 77 12
    12880     jne short 086b6h                          ; 75 1c
     12867    jnbe short 08526h                         ; 77 12
     12868    jne short 08532h                          ; 75 1c
    1288112869    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    12882     jnbe short 086aah                         ; 77 0a
    12883     jne short 086b6h                          ; 75 14
     12870    jnbe short 08526h                         ; 77 0a
     12871    jne short 08532h                          ; 75 14
    1288412872    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
    12885     jnbe short 086aah                         ; 77 02
    12886     jne short 086b6h                          ; 75 0c
     12873    jnbe short 08526h                         ; 77 02
     12874    jne short 08532h                          ; 75 0c
    1288712875    mov word [bp-028h], 00080h                ; c7 46 d8 80 00
    1288812876    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
    12889     jmp short 086cfh                          ; eb 19
     12877    jmp short 0854bh                          ; eb 19
    1289012878    mov word [bp-028h], strict word 00040h    ; c7 46 d8 40 00
    1289112879    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
     
    1289412882    mov dx, word [bp-024h]                    ; 8b 56 dc
    1289512883    mov si, strict word 0000bh                ; be 0b 00
    12896     call 0a20ah                               ; e8 3b 1b
     12884    call 0a050h                               ; e8 05 1b
    1289712885    mov si, dx                                ; 89 d6
    1289812886    mov word [bp-026h], cx                    ; 89 4e da
     
    1293112919    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1293212920    cmp word [bp-026h], strict byte 00000h    ; 83 7e da 00
    12933     jne short 0874bh                          ; 75 06
     12921    jne short 085c7h                          ; 75 06
    1293412922    cmp si, 00400h                            ; 81 fe 00 04
    12935     jbe short 08759h                          ; 76 0e
     12923    jbe short 085d5h                          ; 76 0e
    1293612924    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1293712925    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12938     jmp short 08761h                          ; eb 08
     12926    jmp short 085ddh                          ; eb 08
    1293912927    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1294012928    mov word [es:bx+032h], si                 ; 26 89 77 32
     
    1294212930    mov cx, ds                                ; 8c d9
    1294312931    mov ax, strict word 00004h                ; b8 04 00
    12944     call 01933h                               ; e8 c7 91
     12932    call 01933h                               ; e8 4b 93
    1294512933    push word [bp-020h]                       ; ff 76 e0
    1294612934    push word [bp-022h]                       ; ff 76 de
     
    1295912947    mov ax, strict word 00004h                ; b8 04 00
    1296012948    push ax                                   ; 50
    12961     call 01976h                               ; e8 e0 91
     12949    call 01976h                               ; e8 64 93
    1296212950    add sp, strict byte 00018h                ; 83 c4 18
    1296312951    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    1298812976    mov dx, strict word 00075h                ; ba 75 00
    1298912977    mov ax, strict word 00040h                ; b8 40 00
    12990     call 01652h                               ; e8 66 8e
     12978    call 01652h                               ; e8 ea 8f
    1299112979    mov bl, al                                ; 88 c3
    1299212980    db  0feh, 0c3h
     
    1299512983    mov dx, strict word 00075h                ; ba 75 00
    1299612984    mov ax, strict word 00040h                ; b8 40 00
    12997     call 01660h                               ; e8 65 8e
     12985    call 01660h                               ; e8 e9 8f
    1299812986    inc byte [bp-00ch]                        ; fe 46 f4
    12999     jmp near 08898h                           ; e9 97 00
     12987    jmp near 08714h                           ; e9 97 00
    1300012988    mov bx, 00da0h                            ; bb a0 0d
    1300112989    mov cx, ds                                ; 8c d9
    1300212990    mov ax, strict word 00004h                ; b8 04 00
    13003     call 01933h                               ; e8 27 91
     12991    call 01933h                               ; e8 ab 92
    1300412992    push word [bp-014h]                       ; ff 76 ec
    1300512993    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1301012998    mov ax, strict word 00004h                ; b8 04 00
    1301112999    push ax                                   ; 50
    13012     call 01976h                               ; e8 56 91
     13000    call 01976h                               ; e8 da 92
    1301313001    add sp, strict byte 00008h                ; 83 c4 08
    1301413002    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1301613004    mov byte [bp-00eh], al                    ; 88 46 f2
    1301713005    test byte [bp-00247h], 080h               ; f6 86 b9 fd 80
    13018     je short 08837h                           ; 74 05
     13006    je short 086b3h                           ; 74 05
    1301913007    mov cx, strict word 00001h                ; b9 01 00
    13020     jmp short 08839h                          ; eb 02
     13008    jmp short 086b5h                          ; eb 02
    1302113009    xor cx, cx                                ; 31 c9
    1302213010    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1305613044    inc word [bp-014h]                        ; ff 46 ec
    1305713045    cmp word [bp-014h], strict byte 00010h    ; 83 7e ec 10
    13058     jl short 088afh                           ; 7c 03
    13059     jmp near 08932h                           ; e9 83 00
     13046    jl short 0872bh                           ; 7c 03
     13047    jmp near 087aeh                           ; e9 83 00
    1306013048    mov byte [bp-048h], 012h                  ; c6 46 b8 12
    1306113049    xor al, al                                ; 30 c0
     
    1307913067    lea bx, [bp-048h]                         ; 8d 5e b8
    1308013068    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
    13081     call 07f85h                               ; e8 9e f6
     13069    call 07e01h                               ; e8 9e f6
    1308213070    test al, al                               ; 84 c0
    13083     je short 088fdh                           ; 74 12
     13071    je short 08779h                           ; 74 12
    1308413072    mov ax, 00b92h                            ; b8 92 0b
    1308513073    push ax                                   ; 50
     
    1308813076    mov ax, strict word 00007h                ; b8 07 00
    1308913077    push ax                                   ; 50
    13090     call 01976h                               ; e8 7c 90
     13078    call 01976h                               ; e8 00 92
    1309113079    add sp, strict byte 00006h                ; 83 c4 06
    1309213080    mov es, [bp-016h]                         ; 8e 46 ea
     
    1309413082    mov byte [bp-00ch], al                    ; 88 46 f4
    1309513083    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
    13096     jne short 08919h                          ; 75 0a
     13084    jne short 08795h                          ; 75 0a
    1309713085    test byte [bp-00248h], 01fh               ; f6 86 b8 fd 1f
    13098     jne short 08919h                          ; 75 03
    13099     jmp near 08495h                           ; e9 7c fb
     13086    jne short 08795h                          ; 75 03
     13087    jmp near 08311h                           ; e9 7c fb
    1310013088    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
    13101     je short 08923h                           ; 74 03
    13102     jmp near 08898h                           ; e9 75 ff
     13089    je short 0879fh                           ; 74 03
     13090    jmp near 08714h                           ; e9 75 ff
    1310313091    mov al, byte [bp-00248h]                  ; 8a 86 b8 fd
    1310413092    and AL, strict byte 01fh                  ; 24 1f
    1310513093    cmp AL, strict byte 005h                  ; 3c 05
    13106     jne short 08930h                          ; 75 03
    13107     jmp near 08801h                           ; e9 d1 fe
    13108     jmp short 08920h                          ; eb ee
     13094    jne short 087ach                          ; 75 03
     13095    jmp near 0867dh                           ; e9 d1 fe
     13096    jmp short 0879ch                          ; eb ee
    1310913097    lea sp, [bp-00ah]                         ; 8d 66 f6
    1311013098    pop di                                    ; 5f
     
    1311513103    pop bp                                    ; 5d
    1311613104    retn                                      ; c3
    13117 _scsi_init:                                  ; 0xf893c LB 0x66
     13105_scsi_init:                                  ; 0xf87b8 LB 0x66
    1311813106    push bp                                   ; 55
    1311913107    mov bp, sp                                ; 89 e5
    1312013108    mov dx, strict word 0000eh                ; ba 0e 00
    1312113109    mov ax, strict word 00040h                ; b8 40 00
    13122     call 0166eh                               ; e8 26 8d
     13110    call 0166eh                               ; e8 aa 8e
    1312313111    mov bx, 00122h                            ; bb 22 01
    1312413112    mov es, ax                                ; 8e c0
     
    1313113119    ; sub ah, ah                                ; 2a e4
    1313213120    cmp AL, strict byte 055h                  ; 3c 55
    13133     jne short 0896ch                          ; 75 0c
     13121    jne short 087e8h                          ; 75 0c
    1313413122    xor al, al                                ; 30 c0
    1313513123    mov dx, 00433h                            ; ba 33 04
    1313613124    out DX, AL                                ; ee
    1313713125    mov ax, 00430h                            ; b8 30 04
    13138     call 08471h                               ; e8 05 fb
     13126    call 082edh                               ; e8 05 fb
    1313913127    mov AL, strict byte 055h                  ; b0 55
    1314013128    mov dx, 00436h                            ; ba 36 04
     
    1314413132    ; sub ah, ah                                ; 2a e4
    1314513133    cmp AL, strict byte 055h                  ; 3c 55
    13146     jne short 08985h                          ; 75 0c
     13134    jne short 08801h                          ; 75 0c
    1314713135    xor al, al                                ; 30 c0
    1314813136    mov dx, 00437h                            ; ba 37 04
    1314913137    out DX, AL                                ; ee
    1315013138    mov ax, 00434h                            ; b8 34 04
    13151     call 08471h                               ; e8 ec fa
     13139    call 082edh                               ; e8 ec fa
    1315213140    mov AL, strict byte 055h                  ; b0 55
    1315313141    mov dx, 0043ah                            ; ba 3a 04
     
    1315713145    ; sub ah, ah                                ; 2a e4
    1315813146    cmp AL, strict byte 055h                  ; 3c 55
    13159     jne short 0899eh                          ; 75 0c
     13147    jne short 0881ah                          ; 75 0c
    1316013148    xor al, al                                ; 30 c0
    1316113149    mov dx, 0043bh                            ; ba 3b 04
    1316213150    out DX, AL                                ; ee
    1316313151    mov ax, 00438h                            ; b8 38 04
    13164     call 08471h                               ; e8 d3 fa
     13152    call 082edh                               ; e8 d3 fa
    1316513153    mov sp, bp                                ; 89 ec
    1316613154    pop bp                                    ; 5d
    1316713155    retn                                      ; c3
    13168 ahci_ctrl_extract_bits_:                     ; 0xf89a2 LB 0x1c
     13156ahci_ctrl_extract_bits_:                     ; 0xf881e LB 0x1c
    1316913157    push si                                   ; 56
    1317013158    push bp                                   ; 55
     
    1317513163    mov cl, byte [bp+006h]                    ; 8a 4e 06
    1317613164    xor ch, ch                                ; 30 ed
    13177     jcxz 089b9h                               ; e3 06
     13165    jcxz 08835h                               ; e3 06
    1317813166    shr dx, 1                                 ; d1 ea
    1317913167    rcr ax, 1                                 ; d1 d8
    13180     loop 089b3h                               ; e2 fa
     13168    loop 0882fh                               ; e2 fa
    1318113169    pop bp                                    ; 5d
    1318213170    pop si                                    ; 5e
    1318313171    retn 00002h                               ; c2 02 00
    13184 ahci_addr_to_phys_:                          ; 0xf89be LB 0x1e
     13172ahci_addr_to_phys_:                          ; 0xf883a LB 0x1e
    1318513173    push bx                                   ; 53
    1318613174    push cx                                   ; 51
     
    1319313181    sal ax, 1                                 ; d1 e0
    1319413182    rcl dx, 1                                 ; d1 d2
    13195     loop 089cch                               ; e2 fa
     13183    loop 08848h                               ; e2 fa
    1319613184    xor cx, cx                                ; 31 c9
    1319713185    add ax, bx                                ; 01 d8
     
    1320113189    pop bx                                    ; 5b
    1320213190    retn                                      ; c3
    13203 ahci_port_cmd_sync_:                         ; 0xf89dc LB 0x159
     13191ahci_port_cmd_sync_:                         ; 0xf8858 LB 0x159
    1320413192    push bp                                   ; 55
    1320513193    mov bp, sp                                ; 89 e5
     
    1321613204    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1321713205    cmp AL, strict byte 0ffh                  ; 3c ff
    13218     jne short 089ffh                          ; 75 03
    13219     jmp near 08b2dh                           ; e9 2e 01
     13206    jne short 0887bh                          ; 75 03
     13207    jmp near 089a9h                           ; e9 2e 01
    1322013208    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    1322113209    xor ah, ah                                ; 30 e4
     
    1323013218    lea ax, [si+00080h]                       ; 8d 84 80 00
    1323113219    mov dx, cx                                ; 89 ca
    13232     call 089beh                               ; e8 92 ff
     13220    call 0883ah                               ; e8 92 ff
    1323313221    mov es, cx                                ; 8e c1
    1323413222    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1329813286    xchg dx, ax                               ; 92
    1329913287    test dh, 040h                             ; f6 c6 40
    13300     jne short 08abfh                          ; 75 04
     13288    jne short 0893bh                          ; 75 04
    1330113289    test AL, strict byte 001h                 ; a8 01
    13302     je short 08ac3h                           ; 74 04
     13290    je short 0893fh                           ; 74 04
    1330313291    mov AL, strict byte 001h                  ; b0 01
    13304     jmp short 08ac5h                          ; eb 02
     13292    jmp short 08941h                          ; eb 02
    1330513293    xor al, al                                ; 30 c0
    1330613294    test al, al                               ; 84 c0
    13307     je short 08a91h                           ; 74 c8
     13295    je short 0890dh                           ; 74 c8
    1330813296    mov al, byte [bp-008h]                    ; 8a 46 f8
    1330913297    xor ah, ah                                ; 30 e4
     
    1336213350    pop bp                                    ; 5d
    1336313351    retn                                      ; c3
    13364 ahci_cmd_data_:                              ; 0xf8b35 LB 0x262
     13352ahci_cmd_data_:                              ; 0xf89b1 LB 0x262
    1336513353    push bp                                   ; 55
    1336613354    mov bp, sp                                ; 89 e5
     
    1338713375    mov ax, 00080h                            ; b8 80 00
    1338813376    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13389     call 0a21ah                               ; e8 a7 16
     13377    call 0a070h                               ; e8 81 16
    1339013378    mov es, [bp-00ah]                         ; 8e 46 f6
    1339113379    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1340513393    mov dx, word [es:si]                      ; 26 8b 14
    1340613394    mov si, strict word 00008h                ; be 08 00
    13407     call 0a20ah                               ; e8 53 16
     13395    call 0a050h                               ; e8 1d 16
    1340813396    mov es, [bp-00ah]                         ; 8e 46 f6
    1340913397    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1341613404    mov dx, word [es:si]                      ; 26 8b 14
    1341713405    mov si, strict word 00010h                ; be 10 00
    13418     call 0a20ah                               ; e8 2d 16
     13406    call 0a050h                               ; e8 f7 15
    1341913407    mov es, [bp-00ah]                         ; 8e 46 f6
    1342013408    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1342813416    mov dx, word [es:si]                      ; 26 8b 14
    1342913417    mov si, strict word 00018h                ; be 18 00
    13430     call 0a20ah                               ; e8 01 16
     13418    call 0a050h                               ; e8 cb 15
    1343113419    mov es, [bp-00ah]                         ; 8e 46 f6
    1343213420    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1343913427    mov dx, word [es:si]                      ; 26 8b 14
    1344013428    mov si, strict word 00020h                ; be 20 00
    13441     call 0a20ah                               ; e8 db 15
     13429    call 0a050h                               ; e8 a5 15
    1344213430    mov es, [bp-00ah]                         ; 8e 46 f6
    1344313431    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1345013438    mov dx, word [es:si]                      ; 26 8b 14
    1345113439    mov si, strict word 00028h                ; be 28 00
    13452     call 0a20ah                               ; e8 b5 15
     13440    call 0a050h                               ; e8 7f 15
    1345313441    mov es, [bp-00ah]                         ; 8e 46 f6
    1345413442    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1346313451    mov bx, word [bp-012h]                    ; 8b 5e ee
    1346413452    xor cx, cx                                ; 31 c9
    13465     call 0a1c9h                               ; e8 42 15
     13453    call 0a000h                               ; e8 fd 14
    1346613454    push dx                                   ; 52
    1346713455    push ax                                   ; 50
     
    1347313461    mov ax, 0026ah                            ; b8 6a 02
    1347413462    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13475     call 0a0deh                               ; e8 3b 14
     13463    call 09f5ah                               ; e8 3b 14
    1347613464    mov es, [bp-00ah]                         ; 8e 46 f6
    1347713465    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1349713485    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1349813486    test ax, ax                               ; 85 c0
    13499     je short 08d33h                           ; 74 39
     13487    je short 08bafh                           ; 74 39
    1350013488    dec ax                                    ; 48
    1350113489    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1351513503    mov al, byte [bp-008h]                    ; 8a 46 f8
    1351613504    cmp AL, strict byte 035h                  ; 3c 35
    13517     jne short 08d40h                          ; 75 06
     13505    jne short 08bbch                          ; 75 06
    1351813506    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13519     jmp short 08d57h                          ; eb 17
     13507    jmp short 08bd3h                          ; eb 17
    1352013508    cmp AL, strict byte 0a0h                  ; 3c a0
    13521     jne short 08d53h                          ; 75 0f
     13509    jne short 08bcfh                          ; 75 0f
    1352213510    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1352313511    les bx, [bp-00eh]                         ; c4 5e f2
    1352413512    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13525     jmp short 08d57h                          ; eb 04
     13513    jmp short 08bd3h                          ; eb 04
    1352613514    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1352713515    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1353013518    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1353113519    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13532     call 089dch                               ; e8 73 fc
     13520    call 08858h                               ; e8 73 fc
    1353313521    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1353413522    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1353713525    add ax, 0026ah                            ; 05 6a 02
    1353813526    mov dx, cx                                ; 89 ca
    13539     call 0a155h                               ; e8 d7 13
     13527    call 09fd1h                               ; e8 d7 13
    1354013528    mov es, cx                                ; 8e c1
    1354113529    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1354213530    test al, al                               ; 84 c0
    13543     je short 08d8dh                           ; 74 05
     13531    je short 08c09h                           ; 74 05
    1354413532    mov ax, strict word 00004h                ; b8 04 00
    13545     jmp short 08d8fh                          ; eb 02
     13533    jmp short 08c0bh                          ; eb 02
    1354613534    xor ah, ah                                ; 30 e4
    1354713535    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1355113539    pop bp                                    ; 5d
    1355213540    retn                                      ; c3
    13553 ahci_port_deinit_current_:                   ; 0xf8d97 LB 0x183
     13541ahci_port_deinit_current_:                   ; 0xf8c13 LB 0x183
    1355413542    push bp                                   ; 55
    1355513543    mov bp, sp                                ; 89 e5
     
    1356613554    mov byte [bp-00ah], al                    ; 88 46 f6
    1356713555    cmp AL, strict byte 0ffh                  ; 3c ff
    13568     je short 08e1ah                           ; 74 61
     13556    je short 08c96h                           ; 74 61
    1356913557    xor ah, ah                                ; 30 e4
    1357013558    mov CL, strict byte 007h                  ; b1 07
     
    1361213600    xchg dx, ax                               ; 92
    1361313601    test ax, 0c011h                           ; a9 11 c0
    13614     je short 08e1dh                           ; 74 07
     13602    je short 08c99h                           ; 74 07
    1361513603    mov AL, strict byte 001h                  ; b0 01
    13616     jmp short 08e1fh                          ; eb 05
    13617     jmp near 08f11h                           ; e9 f4 00
     13604    jmp short 08c9bh                          ; eb 05
     13605    jmp near 08d8dh                           ; e9 f4 00
    1361813606    xor al, al                                ; 30 c0
    1361913607    cmp AL, strict byte 001h                  ; 3c 01
    13620     je short 08dech                           ; 74 c9
     13608    je short 08c68h                           ; 74 c9
    1362113609    mov cx, strict word 00020h                ; b9 20 00
    1362213610    xor bx, bx                                ; 31 db
    1362313611    mov ax, di                                ; 89 f8
    1362413612    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13625     call 0a21ah                               ; e8 ea 13
     13613    call 0a070h                               ; e8 c4 13
    1362613614    lea ax, [di+00080h]                       ; 8d 85 80 00
    1362713615    mov cx, strict word 00040h                ; b9 40 00
    1362813616    xor bx, bx                                ; 31 db
    1362913617    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13630     call 0a21ah                               ; e8 db 13
     13618    call 0a070h                               ; e8 b5 13
    1363113619    lea ax, [di+00200h]                       ; 8d 85 00 02
    1363213620    mov cx, strict word 00060h                ; b9 60 00
    1363313621    xor bx, bx                                ; 31 db
    1363413622    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13635     call 0a21ah                               ; e8 cc 13
     13623    call 0a070h                               ; e8 a6 13
    1363613624    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1363713625    xor ah, ah                                ; 30 e4
     
    1373913727    pop bp                                    ; 5d
    1374013728    retn                                      ; c3
    13741 ahci_port_init_:                             ; 0xf8f1a LB 0x250
     13729ahci_port_init_:                             ; 0xf8d96 LB 0x250
    1374213730    push bp                                   ; 55
    1374313731    mov bp, sp                                ; 89 e5
     
    1374913737    mov word [bp-00ah], dx                    ; 89 56 f6
    1375013738    mov byte [bp-008h], bl                    ; 88 5e f8
    13751     call 08d97h                               ; e8 69 fe
     13739    call 08c13h                               ; e8 69 fe
    1375213740    mov al, bl                                ; 88 d8
    1375313741    xor ah, ah                                ; 30 e4
     
    1380013788    xchg dx, ax                               ; 92
    1380113789    test ax, 0c011h                           ; a9 11 c0
    13802     je short 08fa1h                           ; 74 04
     13790    je short 08e1dh                           ; 74 04
    1380313791    mov AL, strict byte 001h                  ; b0 01
    13804     jmp short 08fa3h                          ; eb 02
     13792    jmp short 08e1fh                          ; eb 02
    1380513793    xor al, al                                ; 30 c0
    1380613794    cmp AL, strict byte 001h                  ; 3c 01
    13807     je short 08f6bh                           ; 74 c4
     13795    je short 08de7h                           ; 74 c4
    1380813796    mov cx, strict word 00020h                ; b9 20 00
    1380913797    xor bx, bx                                ; 31 db
    1381013798    mov ax, si                                ; 89 f0
    1381113799    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13812     call 0a21ah                               ; e8 66 12
     13800    call 0a070h                               ; e8 40 12
    1381313801    lea ax, [si+00080h]                       ; 8d 84 80 00
    1381413802    mov cx, strict word 00040h                ; b9 40 00
    1381513803    xor bx, bx                                ; 31 db
    1381613804    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13817     call 0a21ah                               ; e8 57 12
     13805    call 0a070h                               ; e8 31 12
    1381813806    lea di, [si+00200h]                       ; 8d bc 00 02
    1381913807    mov cx, strict word 00060h                ; b9 60 00
     
    1382113809    mov ax, di                                ; 89 f8
    1382213810    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13823     call 0a21ah                               ; e8 46 12
     13811    call 0a070h                               ; e8 20 12
    1382413812    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1382513813    xor bh, bh                                ; 30 ff
     
    1384013828    mov ax, di                                ; 89 f8
    1384113829    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13842     call 089beh                               ; e8 bb f9
     13830    call 0883ah                               ; e8 bb f9
    1384313831    mov es, [bp-00ah]                         ; 8e 46 f6
    1384413832    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1388513873    mov ax, si                                ; 89 f0
    1388613874    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13887     call 089beh                               ; e8 4f f9
     13875    call 0883ah                               ; e8 4f f9
    1388813876    mov es, [bp-00ah]                         ; 8e 46 f6
    1388913877    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1399013978    pop bp                                    ; 5d
    1399113979    retn                                      ; c3
    13992 @ahci_read_sectors:                          ; 0xf916a LB 0xaa
     13980@ahci_read_sectors:                          ; 0xf8fe6 LB 0xaa
    1399313981    push bp                                   ; 55
    1399413982    mov bp, sp                                ; 89 e5
     
    1400113989    sub di, strict byte 0000ch                ; 83 ef 0c
    1400213990    cmp di, strict byte 00004h                ; 83 ff 04
    14003     jbe short 09195h                          ; 76 13
     13991    jbe short 09011h                          ; 76 13
    1400413992    push di                                   ; 57
    1400513993    mov ax, 00c62h                            ; b8 62 0c
     
    1400913997    mov ax, strict word 00007h                ; b8 07 00
    1401013998    push ax                                   ; 50
    14011     call 01976h                               ; e8 e4 87
     13999    call 01976h                               ; e8 68 89
    1401214000    add sp, strict byte 00008h                ; 83 c4 08
    1401314001    xor bx, bx                                ; 31 db
     
    1402314011    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1402414012    xor ax, ax                                ; 31 c0
    14025     call 08f1ah                               ; e8 5a fd
     14013    call 08d96h                               ; e8 5a fd
    1402614014    mov bx, strict word 00025h                ; bb 25 00
    1402714015    mov ax, si                                ; 89 f0
    1402814016    mov dx, word [bp+006h]                    ; 8b 56 06
    14029     call 08b35h                               ; e8 6a f9
     14017    call 089b1h                               ; e8 6a f9
    1403014018    mov bx, ax                                ; 89 c3
    1403114019    mov es, [bp+006h]                         ; 8e 46 06
     
    1405714045    pop bp                                    ; 5d
    1405814046    retn 00004h                               ; c2 04 00
    14059 @ahci_write_sectors:                         ; 0xf9214 LB 0x88
     14047@ahci_write_sectors:                         ; 0xf9090 LB 0x88
    1406014048    push bp                                   ; 55
    1406114049    mov bp, sp                                ; 89 e5
     
    1406914057    sub bx, strict byte 0000ch                ; 83 eb 0c
    1407014058    cmp bx, strict byte 00004h                ; 83 fb 04
    14071     jbe short 09242h                          ; 76 13
     14059    jbe short 090beh                          ; 76 13
    1407214060    push bx                                   ; 53
    1407314061    mov ax, 00c93h                            ; b8 93 0c
     
    1407714065    mov ax, strict word 00007h                ; b8 07 00
    1407814066    push ax                                   ; 50
    14079     call 01976h                               ; e8 37 87
     14067    call 01976h                               ; e8 bb 88
    1408014068    add sp, strict byte 00008h                ; 83 c4 08
    1408114069    xor di, di                                ; 31 ff
     
    1409114079    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1409214080    xor ax, ax                                ; 31 c0
    14093     call 08f1ah                               ; e8 af fc
     14081    call 08d96h                               ; e8 af fc
    1409414082    mov bx, strict word 00035h                ; bb 35 00
    1409514083    mov ax, si                                ; 89 f0
    1409614084    mov dx, cx                                ; 89 ca
    14097     call 08b35h                               ; e8 c0 f8
     14085    call 089b1h                               ; e8 c0 f8
    1409814086    mov dx, ax                                ; 89 c2
    1409914087    mov es, cx                                ; 8e c1
     
    1411014098    pop bp                                    ; 5d
    1411114099    retn 00004h                               ; c2 04 00
    14112 ahci_cmd_packet_:                            ; 0xf929c LB 0x18c
     14100ahci_cmd_packet_:                            ; 0xf9118 LB 0x18c
    1411314101    push bp                                   ; 55
    1411414102    mov bp, sp                                ; 89 e5
     
    1412214110    mov dx, strict word 0000eh                ; ba 0e 00
    1412314111    mov ax, strict word 00040h                ; b8 40 00
    14124     call 0166eh                               ; e8 b7 83
     14112    call 0166eh                               ; e8 3b 85
    1412514113    mov si, 00122h                            ; be 22 01
    1412614114    mov word [bp-008h], ax                    ; 89 46 f8
    1412714115    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    14128     jne short 092e6h                          ; 75 23
     14116    jne short 09162h                          ; 75 23
    1412914117    mov bx, 00da0h                            ; bb a0 0d
    1413014118    mov cx, ds                                ; 8c d9
    1413114119    mov ax, strict word 00004h                ; b8 04 00
    14132     call 01933h                               ; e8 65 86
     14120    call 01933h                               ; e8 e9 87
    1413314121    mov ax, 00ca6h                            ; b8 a6 0c
    1413414122    push ax                                   ; 50
     
    1413714125    mov ax, strict word 00004h                ; b8 04 00
    1413814126    push ax                                   ; 50
    14139     call 01976h                               ; e8 99 86
     14127    call 01976h                               ; e8 1d 88
    1414014128    add sp, strict byte 00006h                ; 83 c4 06
    1414114129    mov ax, strict word 00001h                ; b8 01 00
    14142     jmp near 0941fh                           ; e9 39 01
     14130    jmp near 0929bh                           ; e9 39 01
    1414314131    test byte [bp+004h], 001h                 ; f6 46 04 01
    14144     jne short 092e0h                          ; 75 f4
     14132    jne short 0915ch                          ; 75 f4
    1414514133    mov bx, word [bp+006h]                    ; 8b 5e 06
    1414614134    mov di, word [bp+008h]                    ; 8b 7e 08
     
    1414814136    sal bx, 1                                 ; d1 e3
    1414914137    rcl di, 1                                 ; d1 d7
    14150     loop 092f5h                               ; e2 fa
     14138    loop 09171h                               ; e2 fa
    1415114139    mov es, [bp-008h]                         ; 8e 46 f8
    1415214140    mov word [es:si], bx                      ; 26 89 1c
     
    1416214150    mov dx, word [bp+008h]                    ; 8b 56 08
    1416314151    xor cx, cx                                ; 31 c9
    14164     call 0a190h                               ; e8 62 0e
     14152    call 0a020h                               ; e8 76 0e
    1416514153    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1416614154    xor di, di                                ; 31 ff
     
    1418014168    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1418114169    xor ax, ax                                ; 31 c0
    14182     call 08f1ah                               ; e8 af fb
     14170    call 08d96h                               ; e8 af fb
    1418314171    mov al, byte [bp-006h]                    ; 8a 46 fa
    1418414172    xor ah, ah                                ; 30 e4
     
    1418814176    mov ax, 000c0h                            ; b8 c0 00
    1418914177    mov dx, word [bp-00ah]                    ; 8b 56 f6
    14190     call 0a227h                               ; e8 a7 0e
     14178    call 0a080h                               ; e8 84 0e
    1419114179    mov es, [bp-008h]                         ; 8e 46 f8
    1419214180    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1419514183    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1419614184    test ax, ax                               ; 85 c0
    14197     je short 093beh                           ; 74 27
     14185    je short 0923ah                           ; 74 27
    1419814186    dec ax                                    ; 48
    1419914187    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1420814196    mov ax, si                                ; 89 f0
    1420914197    mov dx, word [bp-008h]                    ; 8b 56 f8
    14210     call 08b35h                               ; e8 6c f7
     14198    call 089b1h                               ; e8 6c f7
    1421114199    les bx, [bp-00eh]                         ; c4 5e f2
    1421214200    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
     
    1423514223    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1423614224    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    14237     jne short 0941dh                          ; 75 05
     14225    jne short 09299h                          ; 75 05
    1423814226    mov ax, strict word 00004h                ; b8 04 00
    14239     jmp short 0941fh                          ; eb 02
     14227    jmp short 0929bh                          ; eb 02
    1424014228    xor ax, ax                                ; 31 c0
    1424114229    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1424414232    pop bp                                    ; 5d
    1424514233    retn 0000ch                               ; c2 0c 00
    14246 ahci_port_detect_device_:                    ; 0xf9428 LB 0x4fe
     14234ahci_port_detect_device_:                    ; 0xf92a4 LB 0x4fe
    1424714235    push bp                                   ; 55
    1424814236    mov bp, sp                                ; 89 e5
     
    1426014248    mov bx, word [bp-020h]                    ; 8b 5e e0
    1426114249    mov ax, si                                ; 89 f0
    14262     call 08f1ah                               ; e8 ce fa
     14250    call 08d96h                               ; e8 ce fa
    1426314251    mov dx, strict word 0000eh                ; ba 0e 00
    1426414252    mov ax, strict word 00040h                ; b8 40 00
    14265     call 0166eh                               ; e8 19 82
     14253    call 0166eh                               ; e8 9d 83
    1426614254    mov word [bp-01ah], 00122h                ; c7 46 e6 22 01
    1426714255    mov word [bp-00eh], ax                    ; 89 46 f2
     
    1433514323    mov bx, strict word 0000fh                ; bb 0f 00
    1433614324    xor cx, cx                                ; 31 c9
    14337     call 089a2h                               ; e8 9f f4
     14325    call 0881eh                               ; e8 9f f4
    1433814326    test ax, ax                               ; 85 c0
    14339     jne short 0950ah                          ; 75 03
    14340     jmp near 0991eh                           ; e9 14 04
     14327    jne short 09386h                          ; 75 03
     14328    jmp near 0979ah                           ; e9 14 04
    1434114329    mov al, byte [bp-008h]                    ; 8a 46 f8
    1434214330    xor ah, ah                                ; 30 e4
     
    1437014358    xor cx, cx                                ; 31 c9
    1437114359    mov ax, di                                ; 89 f8
    14372     call 089a2h                               ; e8 4d f4
     14360    call 0881eh                               ; e8 4d f4
    1437314361    cmp ax, strict word 00001h                ; 3d 01 00
    14374     je short 0950ah                           ; 74 b0
     14362    je short 09386h                           ; 74 b0
    1437514363    xor ax, ax                                ; 31 c0
    1437614364    push ax                                   ; 50
     
    1437914367    mov ax, di                                ; 89 f8
    1438014368    mov dx, word [bp-01ch]                    ; 8b 56 e4
    14381     call 089a2h                               ; e8 38 f4
     14369    call 0881eh                               ; e8 38 f4
    1438214370    cmp ax, strict word 00003h                ; 3d 03 00
    14383     jne short 09507h                          ; 75 98
     14371    jne short 09383h                          ; 75 98
    1438414372    mov ax, word [bp-016h]                    ; 8b 46 ea
    1438514373    add ax, 00130h                            ; 05 30 01
     
    1440914397    mov byte [bp-00ch], al                    ; 88 46 f4
    1441014398    cmp AL, strict byte 004h                  ; 3c 04
    14411     jc short 095b9h                           ; 72 03
    14412     jmp near 0991eh                           ; e9 65 03
     14399    jc short 09435h                           ; 72 03
     14400    jmp near 0979ah                           ; e9 65 03
    1441314401    mov ax, word [bp-016h]                    ; 8b 46 ea
    1441414402    add ax, 00118h                            ; 05 18 01
     
    1446214450    add cl, 00ch                              ; 80 c1 0c
    1446314451    test dx, dx                               ; 85 d2
    14464     jne short 09684h                          ; 75 55
     14452    jne short 09500h                          ; 75 55
    1446514453    cmp bx, 00101h                            ; 81 fb 01 01
    14466     jne short 09684h                          ; 75 4f
     14454    jne short 09500h                          ; 75 4f
    1446714455    mov es, [bp-00eh]                         ; 8e 46 f2
    1446814456    mov bx, word [bp-01ah]                    ; 8b 5e e6
     
    1447914467    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1448014468    mov dx, es                                ; 8c c2
    14481     call 08b35h                               ; e8 c0 f4
     14469    call 089b1h                               ; e8 c0 f4
    1448214470    mov byte [bp-00ah], cl                    ; 88 4e f6
    1448314471    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14484     je short 09687h                           ; 74 08
     14472    je short 09503h                           ; 74 08
    1448514473    mov ax, strict word 00001h                ; b8 01 00
    14486     jmp short 09689h                          ; eb 05
    14487     jmp near 09859h                           ; e9 d2 01
     14474    jmp short 09505h                          ; eb 05
     14475    jmp near 096d5h                           ; e9 d2 01
    1448814476    xor ax, ax                                ; 31 c0
    1448914477    mov cl, al                                ; 88 c1
     
    1450114489    mov word [bp-012h], ax                    ; 89 46 ee
    1450214490    cmp di, 00fffh                            ; 81 ff ff 0f
    14503     jne short 096d8h                          ; 75 1f
     14491    jne short 09554h                          ; 75 1f
    1450414492    cmp word [bp-014h], strict byte 0ffffh    ; 83 7e ec ff
    14505     jne short 096d8h                          ; 75 19
     14493    jne short 09554h                          ; 75 19
    1450614494    mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
    1450714495    mov word [bp-012h], ax                    ; 89 46 ee
     
    1454314531    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1454414532    cmp AL, strict byte 001h                  ; 3c 01
    14545     jc short 09755h                           ; 72 0c
    14546     jbe short 0975dh                          ; 76 12
     14533    jc short 095d1h                           ; 72 0c
     14534    jbe short 095d9h                          ; 76 12
    1454714535    cmp AL, strict byte 003h                  ; 3c 03
    14548     je short 09765h                           ; 74 16
     14536    je short 095e1h                           ; 74 16
    1454914537    cmp AL, strict byte 002h                  ; 3c 02
    14550     je short 09761h                           ; 74 0e
    14551     jmp short 097a8h                          ; eb 53
     14538    je short 095ddh                           ; 74 0e
     14539    jmp short 09624h                          ; eb 53
    1455214540    test al, al                               ; 84 c0
    14553     jne short 097a8h                          ; 75 4f
     14541    jne short 09624h                          ; 75 4f
    1455414542    mov DL, strict byte 040h                  ; b2 40
    14555     jmp short 09767h                          ; eb 0a
     14543    jmp short 095e3h                          ; eb 0a
    1455614544    mov DL, strict byte 048h                  ; b2 48
    14557     jmp short 09767h                          ; eb 06
     14545    jmp short 095e3h                          ; eb 06
    1455814546    mov DL, strict byte 050h                  ; b2 50
    14559     jmp short 09767h                          ; eb 02
     14547    jmp short 095e3h                          ; eb 02
    1456014548    mov DL, strict byte 058h                  ; b2 58
    1456114549    mov bl, dl                                ; 88 d3
     
    1456314551    xor bh, bh                                ; 30 ff
    1456414552    mov ax, bx                                ; 89 d8
    14565     call 016aeh                               ; e8 3b 7f
     14553    call 016aeh                               ; e8 bf 80
    1456614554    test al, al                               ; 84 c0
    14567     je short 097a8h                           ; 74 31
     14555    je short 09624h                           ; 74 31
    1456814556    mov al, dl                                ; 88 d0
    1456914557    db  0feh, 0c0h
    1457014558    ; inc al                                    ; fe c0
    1457114559    xor ah, ah                                ; 30 e4
    14572     call 016aeh                               ; e8 2e 7f
     14560    call 016aeh                               ; e8 b2 80
    1457314561    mov ch, al                                ; 88 c5
    1457414562    mov al, dl                                ; 88 d0
    1457514563    xor ah, ah                                ; 30 e4
    14576     call 016aeh                               ; e8 25 7f
     14564    call 016aeh                               ; e8 a9 80
    1457714565    mov ah, ch                                ; 88 ec
    1457814566    mov word [bp-028h], ax                    ; 89 46 d8
     
    1458014568    add AL, strict byte 002h                  ; 04 02
    1458114569    xor ah, ah                                ; 30 e4
    14582     call 016aeh                               ; e8 17 7f
     14570    call 016aeh                               ; e8 9b 80
    1458314571    xor ah, ah                                ; 30 e4
    1458414572    mov word [bp-02ah], ax                    ; 89 46 d6
    1458514573    mov ax, bx                                ; 89 d8
    14586     call 016aeh                               ; e8 0d 7f
     14574    call 016aeh                               ; e8 91 80
    1458714575    xor ah, ah                                ; 30 e4
    1458814576    mov word [bp-026h], ax                    ; 89 46 da
    14589     jmp short 097bah                          ; eb 12
     14577    jmp short 09636h                          ; eb 12
    1459014578    push word [bp-012h]                       ; ff 76 ee
    1459114579    push word [bp-01eh]                       ; ff 76 e2
     
    1459414582    mov dx, ss                                ; 8c d2
    1459514583    lea ax, [bp-02ah]                         ; 8d 46 d6
    14596     call 05b09h                               ; e8 4f c3
     14584    call 05b09h                               ; e8 d3 c4
    1459714585    mov bx, 00da0h                            ; bb a0 0d
    1459814586    mov cx, ds                                ; 8c d9
    1459914587    mov ax, strict word 00004h                ; b8 04 00
    14600     call 01933h                               ; e8 6e 81
     14588    call 01933h                               ; e8 f2 82
    1460114589    push word [bp-012h]                       ; ff 76 ee
    1460214590    push word [bp-01eh]                       ; ff 76 e2
     
    1462114609    mov ax, strict word 00004h                ; b8 04 00
    1462214610    push ax                                   ; 50
    14623     call 01976h                               ; e8 7d 81
     14611    call 01976h                               ; e8 01 83
    1462414612    add sp, strict byte 0001ch                ; 83 c4 1c
    1462514613    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    1465314641    mov dx, strict word 00075h                ; ba 75 00
    1465414642    mov ax, strict word 00040h                ; b8 40 00
    14655     call 01652h                               ; e8 0b 7e
     14643    call 01652h                               ; e8 8f 7f
    1465614644    mov bl, al                                ; 88 c3
    1465714645    db  0feh, 0c3h
     
    1466014648    mov dx, strict word 00075h                ; ba 75 00
    1466114649    mov ax, strict word 00040h                ; b8 40 00
    14662     call 01660h                               ; e8 0a 7e
    14663     jmp near 0990dh                           ; e9 b4 00
     14650    call 01660h                               ; e8 8e 7f
     14651    jmp near 09789h                           ; e9 b4 00
    1466414652    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14665     jne short 098b4h                          ; 75 55
     14653    jne short 09730h                          ; 75 55
    1466614654    cmp bx, 00101h                            ; 81 fb 01 01
    14667     jne short 098b4h                          ; 75 4f
     14655    jne short 09730h                          ; 75 4f
    1466814656    mov es, [bp-00eh]                         ; 8e 46 f2
    1466914657    mov bx, word [bp-01ah]                    ; 8b 5e e6
     
    1468014668    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1468114669    mov dx, es                                ; 8c c2
    14682     call 08b35h                               ; e8 90 f2
     14670    call 089b1h                               ; e8 90 f2
    1468314671    mov byte [bp-00ah], cl                    ; 88 4e f6
    1468414672    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14685     je short 098b6h                           ; 74 07
     14673    je short 09732h                           ; 74 07
    1468614674    mov cx, strict word 00001h                ; b9 01 00
    14687     jmp short 098b8h                          ; eb 04
    14688     jmp short 0990dh                          ; eb 57
     14675    jmp short 09734h                          ; eb 04
     14676    jmp short 09789h                          ; eb 57
    1468914677    xor cx, cx                                ; 31 c9
    1469014678    mov bl, byte [bp-00ch]                    ; 8a 5e f4
     
    1472614714    pop bp                                    ; 5d
    1472714715    retn                                      ; c3
    14728 ahci_mem_alloc_:                             ; 0xf9926 LB 0x43
     14716ahci_mem_alloc_:                             ; 0xf97a2 LB 0x43
    1472914717    push bp                                   ; 55
    1473014718    mov bp, sp                                ; 89 e5
     
    1473614724    mov dx, 00413h                            ; ba 13 04
    1473714725    xor ax, ax                                ; 31 c0
    14738     call 0166eh                               ; e8 38 7d
     14726    call 0166eh                               ; e8 bc 7e
    1473914727    test ax, ax                               ; 85 c0
    14740     je short 0995fh                           ; 74 25
     14728    je short 097dbh                           ; 74 25
    1474114729    dec ax                                    ; 48
    1474214730    mov bx, ax                                ; 89 c3
     
    1474514733    sal ax, 1                                 ; d1 e0
    1474614734    rcl dx, 1                                 ; d1 d2
    14747     loop 09942h                               ; e2 fa
     14735    loop 097beh                               ; e2 fa
    1474814736    mov si, ax                                ; 89 c6
    1474914737    mov di, dx                                ; 89 d7
     
    1475114739    shr di, 1                                 ; d1 ef
    1475214740    rcr si, 1                                 ; d1 de
    14753     loop 0994fh                               ; e2 fa
     14741    loop 097cbh                               ; e2 fa
    1475414742    mov dx, 00413h                            ; ba 13 04
    1475514743    xor ax, ax                                ; 31 c0
    14756     call 0167ch                               ; e8 1f 7d
     14744    call 0167ch                               ; e8 a3 7e
    1475714745    mov ax, si                                ; 89 f0
    1475814746    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1476414752    pop bp                                    ; 5d
    1476514753    retn                                      ; c3
    14766 ahci_hba_init_:                              ; 0xf9969 LB 0x16e
     14754ahci_hba_init_:                              ; 0xf97e5 LB 0x16e
    1476714755    push bp                                   ; 55
    1476814756    mov bp, sp                                ; 89 e5
     
    1477614764    mov dx, strict word 0000eh                ; ba 0e 00
    1477714765    mov ax, strict word 00040h                ; b8 40 00
    14778     call 0166eh                               ; e8 ef 7c
     14766    call 0166eh                               ; e8 73 7e
    1477914767    mov bx, 00122h                            ; bb 22 01
    1478014768    mov di, ax                                ; 89 c7
     
    1479314781    shr eax, 010h                             ; 66 c1 e8 10
    1479414782    xchg dx, ax                               ; 92
    14795     call 09926h                               ; e8 83 ff
     14783    call 097a2h                               ; e8 83 ff
    1479614784    mov word [bp-010h], ax                    ; 89 46 f0
    1479714785    test ax, ax                               ; 85 c0
    14798     jne short 099adh                          ; 75 03
    14799     jmp near 09ab6h                           ; e9 09 01
     14786    jne short 09829h                          ; 75 03
     14787    jmp near 09932h                           ; e9 09 01
    1480014788    mov ax, word [bp-010h]                    ; 8b 46 f0
    1480114789    mov es, di                                ; 8e c7
     
    1484714835    xchg dx, ax                               ; 92
    1484814836    test AL, strict byte 001h                 ; a8 01
    14849     jne short 09a07h                          ; 75 de
     14837    jne short 09883h                          ; 75 de
    1485014838    xor ax, ax                                ; 31 c0
    1485114839    xor cx, cx                                ; 31 c9
     
    1486614854    mov bx, strict word 0001fh                ; bb 1f 00
    1486714855    xor cx, cx                                ; 31 c9
    14868     call 089a2h                               ; e8 54 ef
     14856    call 0881eh                               ; e8 54 ef
    1486914857    db  0feh, 0c0h
    1487014858    ; inc al                                    ; fe c0
    1487114859    mov byte [bp-00eh], al                    ; 88 46 f2
    1487214860    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    14873     jmp short 09a7ah                          ; eb 21
     14861    jmp short 098f6h                          ; eb 21
    1487414862    xor al, al                                ; 30 c0
    1487514863    test al, al                               ; 84 c0
    14876     je short 09a71h                           ; 74 12
     14864    je short 098edh                           ; 74 12
    1487714865    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    1487814866    xor bh, bh                                ; 30 ff
    1487914867    xor ax, ax                                ; 31 c0
    1488014868    mov dx, word [bp-010h]                    ; 8b 56 f0
    14881     call 09428h                               ; e8 bc f9
     14869    call 092a4h                               ; e8 bc f9
    1488214870    dec byte [bp-00eh]                        ; fe 4e f2
    14883     je short 09ab4h                           ; 74 43
     14871    je short 09930h                           ; 74 43
    1488414872    inc byte [bp-00ch]                        ; fe 46 f4
    1488514873    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    14886     jnc short 09ab4h                          ; 73 3a
     14874    jnc short 09930h                          ; 73 3a
    1488714875    mov cl, byte [bp-00ch]                    ; 8a 4e f4
    1488814876    xor ch, ch                                ; 30 ed
    1488914877    mov bx, strict word 00001h                ; bb 01 00
    1489014878    xor di, di                                ; 31 ff
    14891     jcxz 09a8ch                               ; e3 06
     14879    jcxz 09908h                               ; e3 06
    1489214880    sal bx, 1                                 ; d1 e3
    1489314881    rcl di, 1                                 ; d1 d7
    14894     loop 09a86h                               ; e2 fa
     14882    loop 09902h                               ; e2 fa
    1489514883    mov ax, strict word 0000ch                ; b8 0c 00
    1489614884    xor cx, cx                                ; 31 c9
     
    1490814896    xchg dx, ax                               ; 92
    1490914897    test dx, di                               ; 85 fa
    14910     jne short 09ab0h                          ; 75 04
     14898    jne short 0992ch                          ; 75 04
    1491114899    test ax, bx                               ; 85 d8
    14912     je short 09a59h                           ; 74 a9
     14900    je short 098d5h                           ; 74 a9
    1491314901    mov AL, strict byte 001h                  ; b0 01
    14914     jmp short 09a5bh                          ; eb a7
     14902    jmp short 098d7h                          ; eb a7
    1491514903    xor ax, ax                                ; 31 c0
    1491614904    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1492214910    pop bp                                    ; 5d
    1492314911    retn                                      ; c3
    14924     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0bch, 09bh, 09ah, 09bh, 0a0h, 09bh, 0a6h, 09bh, 0ach
    14925     db  09bh, 0b2h, 09bh, 0b8h, 09bh, 0bch, 09bh
    14926 _ahci_init:                                  ; 0xf9ad7 LB 0x11a
     14912    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 038h, 09ah, 016h, 09ah, 01ch, 09ah, 022h, 09ah, 028h
     14913    db  09ah, 02eh, 09ah, 034h, 09ah, 038h, 09ah
     14914_ahci_init:                                  ; 0xf9953 LB 0x11a
    1492714915    push bp                                   ; 55
    1492814916    mov bp, sp                                ; 89 e5
     
    1493114919    mov ax, 00601h                            ; b8 01 06
    1493214920    mov dx, strict word 00001h                ; ba 01 00
    14933     call 0a010h                               ; e8 29 05
     14921    call 09e8ch                               ; e8 29 05
    1493414922    mov dx, ax                                ; 89 c2
    1493514923    cmp ax, strict word 0ffffh                ; 3d ff ff
    14936     je short 09b37h                           ; 74 49
     14924    je short 099b3h                           ; 74 49
    1493714925    mov al, ah                                ; 88 e0
    1493814926    mov byte [bp-006h], ah                    ; 88 66 fa
     
    1494114929    xor ah, ah                                ; 30 e4
    1494214930    mov bx, strict word 00034h                ; bb 34 00
    14943     call 0a018h                               ; e8 18 05
     14931    call 09e94h                               ; e8 18 05
    1494414932    mov cl, al                                ; 88 c1
    1494514933    test cl, cl                               ; 84 c9
    14946     je short 09b3ah                           ; 74 34
     14934    je short 099b6h                           ; 74 34
    1494714935    mov bl, cl                                ; 88 cb
    1494814936    xor bh, bh                                ; 30 ff
     
    1495514943    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1495614944    mov ax, word [bp-010h]                    ; 8b 46 f0
    14957     call 0a018h                               ; e8 f3 04
     14945    call 09e94h                               ; e8 f3 04
    1495814946    cmp AL, strict byte 012h                  ; 3c 12
    14959     je short 09b3ah                           ; 74 11
     14947    je short 099b6h                           ; 74 11
    1496014948    mov bl, cl                                ; 88 cb
    1496114949    db  0feh, 0c3h
     
    1496414952    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1496514953    mov ax, word [bp-010h]                    ; 8b 46 f0
    14966     jmp short 09afdh                          ; eb c6
    14967     jmp near 09bebh                           ; e9 b1 00
     14954    jmp short 09979h                          ; eb c6
     14955    jmp near 09a67h                           ; e9 b1 00
    1496814956    test cl, cl                               ; 84 c9
    14969     je short 09b37h                           ; 74 f9
     14957    je short 099b3h                           ; 74 f9
    1497014958    add cl, 002h                              ; 80 c1 02
    1497114959    mov bl, cl                                ; 88 cb
     
    1497914967    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1498014968    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14981     call 0a018h                               ; e8 b8 04
     14969    call 09e94h                               ; e8 b8 04
    1498214970    cmp AL, strict byte 010h                  ; 3c 10
    14983     jne short 09b37h                          ; 75 d3
     14971    jne short 099b3h                          ; 75 d3
    1498414972    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1498514973    mov bl, cl                                ; 88 cb
     
    1498814976    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1498914977    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14990     call 0a03fh                               ; e8 c7 04
     14978    call 09ebbh                               ; e8 c7 04
    1499114979    mov dx, ax                                ; 89 c2
    1499214980    and ax, strict word 0000fh                ; 25 0f 00
    1499314981    sub ax, strict word 00004h                ; 2d 04 00
    1499414982    cmp ax, strict word 0000bh                ; 3d 0b 00
    14995     jnbe short 09bbch                         ; 77 37
     14983    jnbe short 09a38h                         ; 77 37
    1499614984    push CS                                   ; 0e
    1499714985    pop ES                                    ; 07
    1499814986    mov cx, strict word 00008h                ; b9 08 00
    14999     mov di, 09ac0h                            ; bf c0 9a
     14987    mov di, 0993ch                            ; bf 3c 99
    1500014988    repne scasb                               ; f2 ae
    1500114989    sal cx, 1                                 ; d1 e1
    1500214990    mov di, cx                                ; 89 cf
    15003     mov ax, word [cs:di-06539h]               ; 2e 8b 85 c7 9a
     14991    mov ax, word [cs:di-066bdh]               ; 2e 8b 85 43 99
    1500414992    jmp ax                                    ; ff e0
    1500514993    mov byte [bp-004h], 010h                  ; c6 46 fc 10
    15006     jmp short 09bbch                          ; eb 1c
     14994    jmp short 09a38h                          ; eb 1c
    1500714995    mov byte [bp-004h], 014h                  ; c6 46 fc 14
    15008     jmp short 09bbch                          ; eb 16
     14996    jmp short 09a38h                          ; eb 16
    1500914997    mov byte [bp-004h], 018h                  ; c6 46 fc 18
    15010     jmp short 09bbch                          ; eb 10
     14998    jmp short 09a38h                          ; eb 10
    1501114999    mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
    15012     jmp short 09bbch                          ; eb 0a
     15000    jmp short 09a38h                          ; eb 0a
    1501315001    mov byte [bp-004h], 020h                  ; c6 46 fc 20
    15014     jmp short 09bbch                          ; eb 04
     15002    jmp short 09a38h                          ; eb 04
    1501515003    mov byte [bp-004h], 024h                  ; c6 46 fc 24
    1501615004    mov CL, strict byte 004h                  ; b1 04
     
    1502215010    mov al, byte [bp-004h]                    ; 8a 46 fc
    1502315011    test al, al                               ; 84 c0
    15024     je short 09bebh                           ; 74 1c
     15012    je short 09a67h                           ; 74 1c
    1502515013    mov bl, al                                ; 88 c3
    1502615014    xor bh, bh                                ; 30 ff
     
    1502915017    mov al, byte [bp-006h]                    ; 8a 46 fa
    1503015018    xor ah, ah                                ; 30 e4
    15031     call 0a064h                               ; e8 84 04
     15019    call 09ee0h                               ; e8 84 04
    1503215020    test AL, strict byte 001h                 ; a8 01
    15033     je short 09bebh                           ; 74 07
     15021    je short 09a67h                           ; 74 07
    1503415022    and AL, strict byte 0f0h                  ; 24 f0
    1503515023    add ax, cx                                ; 01 c8
    15036     call 09969h                               ; e8 7e fd
     15024    call 097e5h                               ; e8 7e fd
    1503715025    lea sp, [bp-002h]                         ; 8d 66 fe
    1503815026    pop di                                    ; 5f
    1503915027    pop bp                                    ; 5d
    1504015028    retn                                      ; c3
    15041 apm_out_str_:                                ; 0xf9bf1 LB 0x39
     15029apm_out_str_:                                ; 0xf9a6d LB 0x39
    1504215030    push bp                                   ; 55
    1504315031    mov bp, sp                                ; 89 e5
     
    1504515033    mov bx, ax                                ; 89 c3
    1504615034    cmp byte [bx], 000h                       ; 80 3f 00
    15047     je short 09c06h                           ; 74 0a
     15035    je short 09a82h                           ; 74 0a
    1504815036    mov al, byte [bx]                         ; 8a 07
    1504915037    out DX, AL                                ; ee
     
    1505215040    db  00ah, 0c0h
    1505315041    ; or al, al                                 ; 0a c0
    15054     jne short 09bfeh                          ; 75 f8
     15042    jne short 09a7ah                          ; 75 f8
    1505515043    lea sp, [bp-002h]                         ; 8d 66 fe
    1505615044    pop bx                                    ; 5b
    1505715045    pop bp                                    ; 5d
    1505815046    retn                                      ; c3
    15059     dec bx                                    ; 4b
    15060     pushfw                                    ; 9c
    15061     db  0d6h
    15062     pushfw                                    ; 9c
    15063     pop bp                                    ; 5d
    15064     pushfw                                    ; 9c
    15065     js short 09bb0h                           ; 78 9c
    15066     db  0d6h
    15067     pushfw                                    ; 9c
    15068     mov word [0d69ch], ax                     ; a3 9c d6
    15069     pushfw                                    ; 9c
    15070     fcomp qword [si-06358h]                   ; dc 9c a8 9c
    15071     test AL, strict byte 09ch                 ; a8 9c
    15072     test AL, strict byte 09ch                 ; a8 9c
    15073     sbb bx, word [di-06358h]                  ; 1b 9d a8 9c
    15074     test AL, strict byte 09ch                 ; a8 9c
    15075     adc AL, strict byte 09dh                  ; 14 9d
    15076 _apm_function:                               ; 0xf9c2a LB 0xf6
     15047    db  0c7h, 09ah, 052h, 09bh, 0d9h, 09ah
     15048    ; mov word [bp+si-064aeh], 09ad9h           ; c7 9a 52 9b d9 9a
     15049    hlt                                       ; f4
     15050    call far 09b1fh:09b52h                    ; 9a 52 9b 1f 9b
     15051    push dx                                   ; 52
     15052    wait                                      ; 9b
     15053    pop ax                                    ; 58
     15054    wait                                      ; 9b
     15055    and AL, strict byte 09bh                  ; 24 9b
     15056    and AL, strict byte 09bh                  ; 24 9b
     15057    and AL, strict byte 09bh                  ; 24 9b
     15058    xchg di, ax                               ; 97
     15059    wait                                      ; 9b
     15060    and AL, strict byte 09bh                  ; 24 9b
     15061    and AL, strict byte 09bh                  ; 24 9b
     15062    nop                                       ; 90
     15063    wait                                      ; 9b
     15064_apm_function:                               ; 0xf9aa6 LB 0xf6
    1507715065    push bp                                   ; 55
    1507815066    mov bp, sp                                ; 89 e5
     
    1508215070    xor ah, ah                                ; 30 e4
    1508315071    cmp ax, strict word 0000eh                ; 3d 0e 00
    15084     jnbe short 09ca8h                         ; 77 6c
     15072    jnbe short 09b24h                         ; 77 6c
    1508515073    mov bx, ax                                ; 89 c3
    1508615074    sal bx, 1                                 ; d1 e3
    1508715075    mov dx, word [bp+018h]                    ; 8b 56 18
    1508815076    or dl, 001h                               ; 80 ca 01
    15089     jmp word [cs:bx-063f4h]                   ; 2e ff a7 0c 9c
     15077    jmp word [cs:bx-06578h]                   ; 2e ff a7 88 9a
    1509015078    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1509115079    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1509215080    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    15093     jmp near 09cd6h                           ; e9 79 00
     15081    jmp near 09b52h                           ; e9 79 00
    1509415082    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    15095     mov word [bp+00ch], 0a294h                ; c7 46 0c 94 a2
     15083    mov word [bp+00ch], 0a0f4h                ; c7 46 0c f4 a0
    1509615084    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1509715085    mov ax, strict word 0fff0h                ; b8 f0 ff
    1509815086    mov word [bp+006h], ax                    ; 89 46 06
    1509915087    mov word [bp+004h], ax                    ; 89 46 04
    15100     jmp near 09cd6h                           ; e9 5e 00
     15088    jmp near 09b52h                           ; e9 5e 00
    1510115089    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1510215090    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1511115099    mov si, ax                                ; 89 c6
    1511215100    sal esi, 010h                             ; 66 c1 e6 10
    15113     jmp near 09cd6h                           ; e9 33 00
     15101    jmp near 09b52h                           ; e9 33 00
    1511415102    sti                                       ; fb
    1511515103    hlt                                       ; f4
    15116     jmp near 09cd6h                           ; e9 2e 00
     15104    jmp near 09b52h                           ; e9 2e 00
    1511715105    mov bx, 00da0h                            ; bb a0 0d
    1511815106    mov cx, ds                                ; 8c d9
    1511915107    mov ax, strict word 00004h                ; b8 04 00
    15120     call 01933h                               ; e8 80 7c
     15108    call 01933h                               ; e8 04 7e
    1512115109    push word [bp+00ch]                       ; ff 76 0c
    1512215110    push word [bp+012h]                       ; ff 76 12
     
    1512515113    mov ax, strict word 00004h                ; b8 04 00
    1512615114    push ax                                   ; 50
    15127     call 01976h                               ; e8 b2 7c
     15115    call 01976h                               ; e8 36 7e
    1512815116    add sp, strict byte 00008h                ; 83 c4 08
    1512915117    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1513715125    retn                                      ; c3
    1513815126    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    15139     je short 09d01h                           ; 74 1f
     15127    je short 09b7dh                           ; 74 1f
    1514015128    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    15141     je short 09cf9h                           ; 74 11
     15129    je short 09b75h                           ; 74 11
    1514215130    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    15143     jne short 09d09h                          ; 75 1b
     15131    jne short 09b85h                          ; 75 1b
    1514415132    mov dx, 08900h                            ; ba 00 89
    1514515133    mov ax, 00d10h                            ; b8 10 0d
    15146     call 09bf1h                               ; e8 fa fe
    15147     jmp short 09cd6h                          ; eb dd
     15134    call 09a6dh                               ; e8 fa fe
     15135    jmp short 09b52h                          ; eb dd
    1514815136    mov dx, 08900h                            ; ba 00 89
    1514915137    mov ax, 00d18h                            ; b8 18 0d
    15150     jmp short 09cf4h                          ; eb f3
     15138    jmp short 09b70h                          ; eb f3
    1515115139    mov dx, 08900h                            ; ba 00 89
    1515215140    mov ax, 00d20h                            ; b8 20 0d
    15153     jmp short 09cf4h                          ; eb eb
     15141    jmp short 09b70h                          ; eb eb
    1515415142    or ah, 00ah                               ; 80 cc 0a
    1515515143    mov word [bp+012h], ax                    ; 89 46 12
    1515615144    mov word [bp+018h], dx                    ; 89 56 18
    15157     jmp short 09cd6h                          ; eb c2
     15145    jmp short 09b52h                          ; eb c2
    1515815146    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    15159     jmp short 09cd6h                          ; eb bb
     15147    jmp short 09b52h                          ; eb bb
    1516015148    or ah, 080h                               ; 80 cc 80
    15161     jmp short 09d0ch                          ; eb ec
    15162 pci16_select_reg_:                           ; 0xf9d20 LB 0x24
     15149    jmp short 09b88h                          ; eb ec
     15150pci16_select_reg_:                           ; 0xf9b9c LB 0x24
    1516315151    push bp                                   ; 55
    1516415152    mov bp, sp                                ; 89 e5
     
    1517715165    pop bp                                    ; 5d
    1517815166    retn                                      ; c3
    15179 pci16_find_device_:                          ; 0xf9d44 LB 0xf7
     15167pci16_find_device_:                          ; 0xf9bc0 LB 0xf7
    1518015168    push bp                                   ; 55
    1518115169    mov bp, sp                                ; 89 e5
     
    1519115179    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1519215180    test bl, 007h                             ; f6 c3 07
    15193     jne short 09d8ch                          ; 75 2d
     15181    jne short 09c08h                          ; 75 2d
    1519415182    mov dx, strict word 0000eh                ; ba 0e 00
    1519515183    mov ax, bx                                ; 89 d8
    15196     call 09d20h                               ; e8 b9 ff
     15184    call 09b9ch                               ; e8 b9 ff
    1519715185    mov dx, 00cfeh                            ; ba fe 0c
    1519815186    in AL, DX                                 ; ec
     
    1520115189    mov byte [bp-008h], al                    ; 88 46 f8
    1520215190    cmp AL, strict byte 0ffh                  ; 3c ff
    15203     jne short 09d7ah                          ; 75 06
     15191    jne short 09bf6h                          ; 75 06
    1520415192    add bx, strict byte 00008h                ; 83 c3 08
    15205     jmp near 09e0ch                           ; e9 92 00
     15193    jmp near 09c88h                           ; e9 92 00
    1520615194    test byte [bp-008h], 080h                 ; f6 46 f8 80
    15207     je short 09d87h                           ; 74 07
     15195    je short 09c03h                           ; 74 07
    1520815196    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    15209     jmp short 09d8ch                          ; eb 05
     15197    jmp short 09c08h                          ; eb 05
    1521015198    mov word [bp-00eh], strict word 00008h    ; c7 46 f2 08 00
    1521115199    mov al, byte [bp-008h]                    ; 8a 46 f8
    1521215200    and AL, strict byte 007h                  ; 24 07
    1521315201    cmp AL, strict byte 001h                  ; 3c 01
    15214     jne short 09db3h                          ; 75 1e
     15202    jne short 09c2fh                          ; 75 1e
    1521515203    mov al, bh                                ; 88 f8
    1521615204    xor ah, ah                                ; 30 e4
    1521715205    test ax, ax                               ; 85 c0
    15218     jne short 09db3h                          ; 75 16
     15206    jne short 09c2fh                          ; 75 16
    1521915207    mov dx, strict word 0001ah                ; ba 1a 00
    1522015208    mov ax, bx                                ; 89 d8
    15221     call 09d20h                               ; e8 7b ff
     15209    call 09b9ch                               ; e8 7b ff
    1522215210    mov dx, 00cfeh                            ; ba fe 0c
    1522315211    in AL, DX                                 ; ec
     
    1522515213    ; sub ah, ah                                ; 2a e4
    1522615214    cmp al, byte [bp-006h]                    ; 3a 46 fa
    15227     jbe short 09db3h                          ; 76 03
     15215    jbe short 09c2fh                          ; 76 03
    1522815216    mov byte [bp-006h], al                    ; 88 46 fa
    1522915217    test di, di                               ; 85 ff
    15230     je short 09dbch                           ; 74 05
     15218    je short 09c38h                           ; 74 05
    1523115219    mov dx, strict word 00008h                ; ba 08 00
    15232     jmp short 09dbeh                          ; eb 02
     15220    jmp short 09c3ah                          ; eb 02
    1523315221    xor dx, dx                                ; 31 d2
    1523415222    mov ax, bx                                ; 89 d8
    15235     call 09d20h                               ; e8 5d ff
     15223    call 09b9ch                               ; e8 5d ff
    1523615224    mov dx, 00cfch                            ; ba fc 0c
    1523715225    in eax, DX                                ; 66 ed
     
    1524415232    mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
    1524515233    test di, di                               ; 85 ff
    15246     je short 09dedh                           ; 74 0f
     15234    je short 09c69h                           ; 74 0f
    1524715235    mov cx, strict word 00008h                ; b9 08 00
    1524815236    shr dx, 1                                 ; d1 ea
    1524915237    rcr ax, 1                                 ; d1 d8
    15250     loop 09de1h                               ; e2 fa
     15238    loop 09c5dh                               ; e2 fa
    1525115239    mov word [bp-00ah], ax                    ; 89 46 f6
    1525215240    mov word [bp-010h], dx                    ; 89 56 f0
    1525315241    mov ax, word [bp-010h]                    ; 8b 46 f0
    1525415242    cmp ax, word [bp-014h]                    ; 3b 46 ec
    15255     jne short 09dfdh                          ; 75 08
     15243    jne short 09c79h                          ; 75 08
    1525615244    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1525715245    cmp ax, word [bp-012h]                    ; 3b 46 ee
    15258     je short 09e03h                           ; 74 06
     15246    je short 09c7fh                           ; 74 06
    1525915247    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    15260     je short 09e09h                           ; 74 06
     15248    je short 09c85h                           ; 74 06
    1526115249    dec si                                    ; 4e
    1526215250    cmp si, strict byte 0ffffh                ; 83 fe ff
    15263     je short 09e1ch                           ; 74 13
     15251    je short 09c98h                           ; 74 13
    1526415252    add bx, word [bp-00eh]                    ; 03 5e f2
    1526515253    mov al, bh                                ; 88 f8
     
    1526815256    xor dh, dh                                ; 30 f6
    1526915257    cmp ax, dx                                ; 39 d0
    15270     jnbe short 09e1ch                         ; 77 03
    15271     jmp near 09d5ah                           ; e9 3e ff
     15258    jnbe short 09c98h                         ; 77 03
     15259    jmp near 09bd6h                           ; e9 3e ff
    1527215260    cmp si, strict byte 0ffffh                ; 83 fe ff
    15273     jne short 09e25h                          ; 75 04
     15261    jne short 09ca1h                          ; 75 04
    1527415262    mov ax, bx                                ; 89 d8
    15275     jmp short 09e28h                          ; eb 03
     15263    jmp short 09ca4h                          ; eb 03
    1527615264    mov ax, strict word 0ffffh                ; b8 ff ff
    1527715265    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1528015268    pop bp                                    ; 5d
    1528115269    retn                                      ; c3
    15282     sbb AL, strict byte 09fh                  ; 1c 9f
    15283     xor ax, 0479fh                            ; 35 9f 47
    15284     lahf                                      ; 9f
    15285     pop bx                                    ; 5b
    15286     lahf                                      ; 9f
    15287     insw                                      ; 6d
    15288     lahf                                      ; 9f
    15289     db  080h
    15290     lahf                                      ; 9f
    15291 _pci16_function:                             ; 0xf9e3b LB 0x1d5
     15270    cbw                                       ; 98
     15271    popfw                                     ; 9d
     15272    mov CL, strict byte 09dh                  ; b1 9d
     15273    retn                                      ; c3
     15274    popfw                                     ; 9d
     15275    xlatb                                     ; d7
     15276    popfw                                     ; 9d
     15277    jmp near 09953h                           ; e9 9d fc
     15278    popfw                                     ; 9d
     15279_pci16_function:                             ; 0xf9cb7 LB 0x1d5
    1529215280    push bp                                   ; 55
    1529315281    mov bp, sp                                ; 89 e5
     
    1530315291    xor ah, ah                                ; 30 e4
    1530415292    cmp bx, strict byte 00003h                ; 83 fb 03
    15305     jc short 09e6dh                           ; 72 13
    15306     jbe short 09ec0h                          ; 76 64
     15293    jc short 09ce9h                           ; 72 13
     15294    jbe short 09d3ch                          ; 76 64
    1530715295    cmp bx, strict byte 0000eh                ; 83 fb 0e
    15308     je short 09ec8h                           ; 74 67
     15296    je short 09d44h                           ; 74 67
    1530915297    cmp bx, strict byte 00008h                ; 83 fb 08
    15310     jc short 09e77h                           ; 72 11
     15298    jc short 09cf3h                           ; 72 11
    1531115299    cmp bx, strict byte 0000dh                ; 83 fb 0d
    15312     jbe short 09ecbh                          ; 76 60
    15313     jmp short 09e77h                          ; eb 0a
     15300    jbe short 09d47h                          ; 76 60
     15301    jmp short 09cf3h                          ; eb 0a
    1531415302    cmp bx, strict byte 00002h                ; 83 fb 02
    15315     je short 09e96h                           ; 74 24
     15303    je short 09d12h                           ; 74 24
    1531615304    cmp bx, strict byte 00001h                ; 83 fb 01
    15317     je short 09e7ah                           ; 74 03
    15318     jmp near 09fd9h                           ; e9 5f 01
     15305    je short 09cf6h                           ; 74 03
     15306    jmp near 09e55h                           ; e9 5f 01
    1531915307    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1532015308    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1532215310    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1532315311    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    15324     jmp near 0a009h                           ; e9 73 01
     15312    jmp near 09e85h                           ; e9 73 01
    1532515313    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    15326     jne short 09ea2h                          ; 75 06
     15314    jne short 09d1eh                          ; 75 06
    1532715315    or ah, 083h                               ; 80 cc 83
    15328     jmp near 0a002h                           ; e9 60 01
     15316    jmp near 09e7eh                           ; e9 60 01
    1532915317    mov bx, word [bp+008h]                    ; 8b 5e 08
    1533015318    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1533115319    mov ax, word [bp+018h]                    ; 8b 46 18
    1533215320    xor cx, cx                                ; 31 c9
    15333     call 09d44h                               ; e8 94 fe
     15321    call 09bc0h                               ; e8 94 fe
    1533415322    cmp ax, strict word 0ffffh                ; 3d ff ff
    15335     jne short 09ec2h                          ; 75 0d
     15323    jne short 09d3eh                          ; 75 0d
    1533615324    mov ax, word [bp+020h]                    ; 8b 46 20
    1533715325    xor ah, ah                                ; 30 e4
    1533815326    or ah, 086h                               ; 80 cc 86
    15339     jmp near 0a002h                           ; e9 42 01
    15340     jmp short 09ecdh                          ; eb 0b
     15327    jmp near 09e7eh                           ; e9 42 01
     15328    jmp short 09d49h                          ; eb 0b
    1534115329    mov word [bp+014h], ax                    ; 89 46 14
    15342     jmp near 0a009h                           ; e9 41 01
    15343     jmp near 09f94h                           ; e9 c9 00
    15344     jmp short 09ef2h                          ; eb 25
     15330    jmp near 09e85h                           ; e9 41 01
     15331    jmp near 09e10h                           ; e9 c9 00
     15332    jmp short 09d6eh                          ; eb 25
    1534515333    mov bx, word [bp+008h]                    ; 8b 5e 08
    1534615334    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1534715335    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1534815336    mov cx, strict word 00001h                ; b9 01 00
    15349     call 09d44h                               ; e8 68 fe
     15337    call 09bc0h                               ; e8 68 fe
    1535015338    cmp ax, strict word 0ffffh                ; 3d ff ff
    15351     jne short 09eech                          ; 75 0b
     15339    jne short 09d68h                          ; 75 0b
    1535215340    mov ax, word [bp+020h]                    ; 8b 46 20
    1535315341    xor ah, ah                                ; 30 e4
    1535415342    or ah, 086h                               ; 80 cc 86
    15355     jmp near 0a002h                           ; e9 16 01
     15343    jmp near 09e7eh                           ; e9 16 01
    1535615344    mov word [bp+014h], ax                    ; 89 46 14
    15357     jmp near 0a009h                           ; e9 17 01
     15345    jmp near 09e85h                           ; e9 17 01
    1535815346    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    15359     jc short 09effh                           ; 72 06
     15347    jc short 09d7bh                           ; 72 06
    1536015348    or ah, 087h                               ; 80 cc 87
    15361     jmp near 0a002h                           ; e9 03 01
     15349    jmp near 09e7eh                           ; e9 03 01
    1536215350    mov dx, word [bp+004h]                    ; 8b 56 04
    1536315351    mov ax, word [bp+014h]                    ; 8b 46 14
    15364     call 09d20h                               ; e8 18 fe
     15352    call 09b9ch                               ; e8 18 fe
    1536515353    mov bx, word [bp+020h]                    ; 8b 5e 20
    1536615354    xor bh, bh                                ; 30 ff
    1536715355    sub bx, strict byte 00008h                ; 83 eb 08
    1536815356    cmp bx, strict byte 00005h                ; 83 fb 05
    15369     jnbe short 09f7dh                         ; 77 68
     15357    jnbe short 09df9h                         ; 77 68
    1537015358    sal bx, 1                                 ; d1 e3
    15371     jmp word [cs:bx-061d1h]                   ; 2e ff a7 2f 9e
     15359    jmp word [cs:bx-06355h]                   ; 2e ff a7 ab 9c
    1537215360    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1537315361    xor bl, bl                                ; 30 db
     
    1538015368    or bx, ax                                 ; 09 c3
    1538115369    mov word [bp+01ch], bx                    ; 89 5e 1c
    15382     jmp short 09f7dh                          ; eb 48
     15370    jmp short 09df9h                          ; eb 48
    1538315371    mov dx, word [bp+004h]                    ; 8b 56 04
    1538415372    xor dh, dh                                ; 30 f6
     
    1538715375    in ax, DX                                 ; ed
    1538815376    mov word [bp+01ch], ax                    ; 89 46 1c
    15389     jmp short 09f7dh                          ; eb 36
     15377    jmp short 09df9h                          ; eb 36
    1539015378    mov dx, 00cfch                            ; ba fc 0c
    1539115379    in eax, DX                                ; 66 ed
     
    1539615384    mov word [bp+01ch], ax                    ; 89 46 1c
    1539715385    mov word [bp+01eh], dx                    ; 89 56 1e
    15398     jmp short 09f7dh                          ; eb 22
     15386    jmp short 09df9h                          ; eb 22
    1539915387    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1540015388    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1540315391    add dx, 00cfch                            ; 81 c2 fc 0c
    1540415392    out DX, AL                                ; ee
    15405     jmp short 09f7dh                          ; eb 10
     15393    jmp short 09df9h                          ; eb 10
    1540615394    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1540715395    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1541015398    add dx, 00cfch                            ; 81 c2 fc 0c
    1541115399    out DX, ax                                ; ef
    15412     jmp near 0a009h                           ; e9 89 00
     15400    jmp near 09e85h                           ; e9 89 00
    1541315401    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1541415402    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1541915407    ; mov ax, cx                                ; 8b c1
    1542015408    out DX, eax                               ; 66 ef
    15421     jmp short 0a009h                          ; eb 75
     15409    jmp short 09e85h                          ; eb 75
    1542215410    mov bx, word [bp+004h]                    ; 8b 5e 04
    1542315411    mov es, [bp+026h]                         ; 8e 46 26
     
    1542615414    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1542715415    cmp cx, word [es:bx]                      ; 26 3b 0f
    15428     jbe short 09fbah                          ; 76 11
     15416    jbe short 09e36h                          ; 76 11
    1542915417    mov ax, word [bp+020h]                    ; 8b 46 20
    1543015418    xor ah, ah                                ; 30 e4
     
    1543215420    mov word [bp+020h], ax                    ; 89 46 20
    1543315421    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15434     jmp short 09fceh                          ; eb 14
     15422    jmp short 09e4ah                          ; eb 14
    1543515423    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1543615424    mov si, 0f2c0h                            ; be c0 f2
     
    1544415432    les bx, [bp-008h]                         ; c4 5e f8
    1544515433    mov word [es:bx], ax                      ; 26 89 07
    15446     jmp short 0a009h                          ; eb 30
     15434    jmp short 09e85h                          ; eb 30
    1544715435    mov bx, 00da0h                            ; bb a0 0d
    1544815436    mov cx, ds                                ; 8c d9
    1544915437    mov ax, strict word 00004h                ; b8 04 00
    15450     call 01933h                               ; e8 4f 79
     15438    call 01933h                               ; e8 d3 7a
    1545115439    mov ax, word [bp+014h]                    ; 8b 46 14
    1545215440    push ax                                   ; 50
     
    1545715445    mov ax, strict word 00004h                ; b8 04 00
    1545815446    push ax                                   ; 50
    15459     call 01976h                               ; e8 7f 79
     15447    call 01976h                               ; e8 03 7b
    1546015448    add sp, strict byte 00008h                ; 83 c4 08
    1546115449    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1546915457    pop bp                                    ; 5d
    1547015458    retn                                      ; c3
    15471 pci_find_classcode_:                         ; 0xfa010 LB 0x8
     15459pci_find_classcode_:                         ; 0xf9e8c LB 0x8
    1547215460    push bp                                   ; 55
    1547315461    mov bp, sp                                ; 89 e5
     
    1547515463    pop bp                                    ; 5d
    1547615464    retn                                      ; c3
    15477 pci_read_config_byte_:                       ; 0xfa018 LB 0x27
     15465pci_read_config_byte_:                       ; 0xf9e94 LB 0x27
    1547815466    push bp                                   ; 55
    1547915467    mov bp, sp                                ; 89 e5
     
    1549815486    pop bp                                    ; 5d
    1549915487    retn                                      ; c3
    15500 pci_read_config_word_:                       ; 0xfa03f LB 0x25
     15488pci_read_config_word_:                       ; 0xf9ebb LB 0x25
    1550115489    push bp                                   ; 55
    1550215490    mov bp, sp                                ; 89 e5
     
    1552015508    pop bp                                    ; 5d
    1552115509    retn                                      ; c3
    15522 pci_read_config_dword_:                      ; 0xfa064 LB 0x3f
     15510pci_read_config_dword_:                      ; 0xf9ee0 LB 0x3f
    1552315511    push bp                                   ; 55
    1552415512    mov bp, sp                                ; 89 e5
     
    1553515523    int 01ah                                  ; cd 1a
    1553615524    test cx, cx                               ; 85 c9
    15537     jne short 0a094h                          ; 75 14
     15525    jne short 09f10h                          ; 75 14
    1553815526    mov al, byte [bp-006h]                    ; 8a 46 fa
    1553915527    xor ah, ah                                ; 30 e4
     
    1554515533    int 01ah                                  ; cd 1a
    1554615534    test cx, cx                               ; 85 c9
    15547     je short 0a099h                           ; 74 05
     15535    je short 09f15h                           ; 74 05
    1554815536    mov ax, strict word 00001h                ; b8 01 00
    15549     jmp short 0a09bh                          ; eb 02
     15537    jmp short 09f17h                          ; eb 02
    1555015538    xor ax, ax                                ; 31 c0
    1555115539    cwd                                       ; 99
     
    1555515543    pop bp                                    ; 5d
    1555615544    retn                                      ; c3
    15557 vds_is_present_:                             ; 0xfa0a3 LB 0x1d
     15545vds_is_present_:                             ; 0xf9f1f LB 0x1d
    1555815546    push bx                                   ; 53
    1555915547    push bp                                   ; 55
     
    1556315551    mov es, ax                                ; 8e c0
    1556415552    test byte [es:bx], 020h                   ; 26 f6 07 20
    15565     je short 0a0bbh                           ; 74 06
     15553    je short 09f37h                           ; 74 06
    1556615554    mov ax, strict word 00001h                ; b8 01 00
    1556715555    pop bp                                    ; 5d
     
    1557215560    pop bx                                    ; 5b
    1557315561    retn                                      ; c3
    15574 vds_real_to_lin_:                            ; 0xfa0c0 LB 0x1e
     15562vds_real_to_lin_:                            ; 0xf9f3c LB 0x1e
    1557515563    push bx                                   ; 53
    1557615564    push cx                                   ; 51
     
    1558315571    sal ax, 1                                 ; d1 e0
    1558415572    rcl dx, 1                                 ; d1 d2
    15585     loop 0a0ceh                               ; e2 fa
     15573    loop 09f4ah                               ; e2 fa
    1558615574    xor cx, cx                                ; 31 c9
    1558715575    add ax, bx                                ; 01 d8
     
    1559115579    pop bx                                    ; 5b
    1559215580    retn                                      ; c3
    15593 vds_build_sg_list_:                          ; 0xfa0de LB 0x77
     15581vds_build_sg_list_:                          ; 0xf9f5a LB 0x77
    1559415582    push bp                                   ; 55
    1559515583    mov bp, sp                                ; 89 e5
     
    1560515593    mov bx, word [bp+006h]                    ; 8b 5e 06
    1560615594    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15607     call 0a0c0h                               ; e8 c3 ff
     15595    call 09f3ch                               ; e8 c3 ff
    1560815596    mov es, si                                ; 8e c6
    1560915597    mov word [es:di+004h], ax                 ; 26 89 45 04
    1561015598    mov word [es:di+006h], dx                 ; 26 89 55 06
    1561115599    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15612     call 0a0a3h                               ; e8 93 ff
     15600    call 09f1fh                               ; e8 93 ff
    1561315601    test ax, ax                               ; 85 c0
    15614     je short 0a125h                           ; 74 11
     15602    je short 09fa1h                           ; 74 11
    1561515603    mov es, si                                ; 8e c6
    1561615604    mov ax, 08105h                            ; b8 05 81
    1561715605    mov dx, strict word 00000h                ; ba 00 00
    1561815606    int 04bh                                  ; cd 4b
    15619     jc short 0a122h                           ; 72 02
     15607    jc short 09f9eh                           ; 72 02
    1562015608    db  032h, 0c0h
    1562115609    ; xor al, al                                ; 32 c0
    1562215610    cbw                                       ; 98
    15623     jmp short 0a14ch                          ; eb 27
     15611    jmp short 09fc8h                          ; eb 27
    1562415612    mov es, si                                ; 8e c6
    1562515613    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1563815626    pop bp                                    ; 5d
    1563915627    retn 00004h                               ; c2 04 00
    15640 vds_free_sg_list_:                           ; 0xfa155 LB 0x3b
     15628vds_free_sg_list_:                           ; 0xf9fd1 LB 0x2f
    1564115629    push bp                                   ; 55
    1564215630    mov bp, sp                                ; 89 e5
     
    1564415632    push di                                   ; 57
    1564515633    mov bx, ax                                ; 89 c3
    15646     call 0a0a3h                               ; e8 44 ff
     15634    call 09f1fh                               ; e8 44 ff
    1564715635    test ax, ax                               ; 85 c0
    15648     je short 0a174h                           ; 74 11
     15636    je short 09ff0h                           ; 74 11
    1564915637    mov di, bx                                ; 89 df
    1565015638    mov es, dx                                ; 8e c2
     
    1565215640    mov dx, strict word 00000h                ; ba 00 00
    1565315641    int 04bh                                  ; cd 4b
    15654     jc short 0a173h                           ; 72 02
     15642    jc short 09fefh                           ; 72 02
    1565515643    db  032h, 0c0h
    1565615644    ; xor al, al                                ; 32 c0
     
    1566315651    pop bp                                    ; 5d
    1566415652    retn                                      ; c3
    15665     times 0xd db 0
    15666 __U4D:                                       ; 0xfa190 LB 0x39
     15653    times 0x1 db 0
     15654__U4M:                                       ; 0xfa000 LB 0x20
    1566715655    pushfw                                    ; 9c
    15668     push eax                                  ; 66 50
    15669     push edx                                  ; 66 52
    15670     push ecx                                  ; 66 51
    15671     rol eax, 010h                             ; 66 c1 c0 10
    15672     db  08bh, 0c2h
    15673     ; mov ax, dx                                ; 8b c2
    15674     ror eax, 010h                             ; 66 c1 c8 10
    15675     db  066h, 033h, 0d2h
    15676     ; xor edx, edx                              ; 66 33 d2
    15677     shr ecx, 010h                             ; 66 c1 e9 10
    15678     db  08bh, 0cbh
    15679     ; mov cx, bx                                ; 8b cb
    15680     div ecx                                   ; 66 f7 f1
    15681     db  08bh, 0dah
    15682     ; mov bx, dx                                ; 8b da
    15683     pop ecx                                   ; 66 59
    15684     shr edx, 010h                             ; 66 c1 ea 10
    15685     db  08bh, 0cah
    15686     ; mov cx, dx                                ; 8b ca
    15687     pop edx                                   ; 66 5a
    15688     ror eax, 010h                             ; 66 c1 c8 10
    15689     db  08bh, 0d0h
    15690     ; mov dx, ax                                ; 8b d0
    15691     add sp, strict byte 00002h                ; 83 c4 02
     15656    push si                                   ; 56
     15657    push di                                   ; 57
     15658    push ax                                   ; 50
     15659    db  08bh, 0fah
     15660    ; mov di, dx                                ; 8b fa
     15661    mul bx                                    ; f7 e3
     15662    db  08bh, 0f2h
     15663    ; mov si, dx                                ; 8b f2
     15664    xchg di, ax                               ; 97
     15665    mul bx                                    ; f7 e3
     15666    db  003h, 0f0h
     15667    ; add si, ax                                ; 03 f0
    1569215668    pop ax                                    ; 58
    15693     rol eax, 010h                             ; 66 c1 c0 10
     15669    mul cx                                    ; f7 e1
     15670    db  003h, 0f0h
     15671    ; add si, ax                                ; 03 f0
     15672    db  08bh, 0d6h
     15673    ; mov dx, si                                ; 8b d6
     15674    db  08bh, 0c7h
     15675    ; mov ax, di                                ; 8b c7
     15676    pop di                                    ; 5f
     15677    pop si                                    ; 5e
    1569415678    popfw                                     ; 9d
    1569515679    retn                                      ; c3
    15696 __U4M:                                       ; 0xfa1c9 LB 0x31
     15680    times 0x4 db 0
     15681__U4D:                                       ; 0xfa020 LB 0x30
    1569715682    pushfw                                    ; 9c
    15698     push eax                                  ; 66 50
    15699     push edx                                  ; 66 52
    15700     push ecx                                  ; 66 51
    15701     rol eax, 010h                             ; 66 c1 c0 10
    15702     db  08bh, 0c2h
    15703     ; mov ax, dx                                ; 8b c2
    15704     ror eax, 010h                             ; 66 c1 c8 10
    15705     db  066h, 033h, 0d2h
    15706     ; xor edx, edx                              ; 66 33 d2
    15707     shr ecx, 010h                             ; 66 c1 e9 10
    15708     db  08bh, 0cbh
    15709     ; mov cx, bx                                ; 8b cb
    15710     mul ecx                                   ; 66 f7 e1
    15711     pop ecx                                   ; 66 59
    15712     pop edx                                   ; 66 5a
    15713     ror eax, 010h                             ; 66 c1 c8 10
    15714     db  08bh, 0d0h
    15715     ; mov dx, ax                                ; 8b d0
    15716     add sp, strict byte 00002h                ; 83 c4 02
    15717     pop ax                                    ; 58
    15718     rol eax, 010h                             ; 66 c1 c0 10
     15683    push DS                                   ; 1e
     15684    push ES                                   ; 06
     15685    push bp                                   ; 55
     15686    sub sp, strict byte 00004h                ; 83 ec 04
     15687    db  08bh, 0ech
     15688    ; mov bp, sp                                ; 8b ec
     15689    push SS                                   ; 16
     15690    push bp                                   ; 55
     15691    add bp, strict byte 00004h                ; 83 c5 04
     15692    push cx                                   ; 51
     15693    push bx                                   ; 53
     15694    push dx                                   ; 52
     15695    push ax                                   ; 50
     15696    call 0a105h                               ; e8 d0 00
     15697    mov cx, word [bp-002h]                    ; 8b 4e fe
     15698    mov bx, word [bp-004h]                    ; 8b 5e fc
     15699    db  08bh, 0e5h
     15700    ; mov sp, bp                                ; 8b e5
     15701    pop bp                                    ; 5d
     15702    pop ES                                    ; 07
     15703    pop DS                                    ; 1f
    1571915704    popfw                                     ; 9d
    1572015705    retn                                      ; c3
    15721 __U8LS:                                      ; 0xfa1fa LB 0x10
     15706    times 0xe db 0
     15707__U8RS:                                      ; 0xfa050 LB 0x10
    1572215708    test si, si                               ; 85 f6
    15723     je short 0a209h                           ; 74 0b
     15709    je short 0a05fh                           ; 74 0b
     15710    shr ax, 1                                 ; d1 e8
     15711    rcr bx, 1                                 ; d1 db
     15712    rcr cx, 1                                 ; d1 d9
     15713    rcr dx, 1                                 ; d1 da
     15714    dec si                                    ; 4e
     15715    jne short 0a054h                          ; 75 f5
     15716    retn                                      ; c3
     15717__U8LS:                                      ; 0xfa060 LB 0x10
     15718    test si, si                               ; 85 f6
     15719    je short 0a06fh                           ; 74 0b
    1572415720    sal dx, 1                                 ; d1 e2
    1572515721    rcl cx, 1                                 ; d1 d1
     
    1572715723    rcl ax, 1                                 ; d1 d0
    1572815724    dec si                                    ; 4e
    15729     jne short 0a1feh                          ; 75 f5
     15725    jne short 0a064h                          ; 75 f5
    1573015726    retn                                      ; c3
    15731 __U8RS:                                      ; 0xfa20a LB 0x10
    15732     test si, si                               ; 85 f6
    15733     je short 0a219h                           ; 74 0b
    15734     shr ax, 1                                 ; d1 e8
    15735     rcr bx, 1                                 ; d1 db
    15736     rcr cx, 1                                 ; d1 d9
    15737     rcr dx, 1                                 ; d1 da
    15738     dec si                                    ; 4e
    15739     jne short 0a20eh                          ; 75 f5
    15740     retn                                      ; c3
    15741 _fmemset_:                                   ; 0xfa21a LB 0xd
     15727_fmemset_:                                   ; 0xfa070 LB 0x10
    1574215728    push di                                   ; 57
    1574315729    mov es, dx                                ; 8e c2
     
    1574915735    pop di                                    ; 5f
    1575015736    retn                                      ; c3
    15751 _fmemcpy_:                                   ; 0xfa227 LB 0x33
     15737    times 0x3 db 0
     15738_fmemcpy_:                                   ; 0xfa080 LB 0x3a
    1575215739    push bp                                   ; 55
    1575315740    db  08bh, 0ech
     
    1576715754    pop DS                                    ; 1f
    1576815755    pop di                                    ; 5f
    15769     leave                                     ; c9
     15756    db  08bh, 0e5h
     15757    ; mov sp, bp                                ; 8b e5
     15758    pop bp                                    ; 5d
    1577015759    retn                                      ; c3
    15771     add byte [bx+si-05eh], dh                 ; 00 70 a2
    15772     jc short 0a1e6h                           ; 72 a2
    15773     jbe short 0a1e8h                          ; 76 a2
    15774     jbe short 0a1eah                          ; 76 a2
    15775     jbe short 0a1ech                          ; 76 a2
    15776     js short 0a1eeh                           ; 78 a2
    15777     js short 0a1f0h                           ; 78 a2
    15778     jp short 0a1f2h                           ; 7a a2
    15779     jle short 0a1f4h                          ; 7e a2
    15780     jle short 0a1f6h                          ; 7e a2
    15781     and byte [bp+si-05d7bh], 087h             ; 80 a2 85 a2 87
    15782     db  0a2h
    15783 apm_worker:                                  ; 0xfa25a LB 0x3a
     15760    add byte [bx+si], al                      ; 00 00
     15761    add byte [bx+si], al                      ; 00 00
     15762    add byte [bx+si], al                      ; 00 00
     15763    sal byte [bx+si-05f2eh], 1                ; d0 a0 d2 a0
     15764    db  0d6h
     15765    mov AL, byte [0a0d6h]                     ; a0 d6 a0
     15766    db  0d6h
     15767    mov AL, byte [0a0d8h]                     ; a0 d8 a0
     15768    fsub dword [bx+si-05f26h]                 ; d8 a0 da a0
     15769    fisub word [bx+si-05f22h]                 ; de a0 de a0
     15770    loopne 0a056h                             ; e0 a0
     15771    in ax, 0a0h                               ; e5 a0
     15772    out 0a0h, ax                              ; e7 a0
     15773apm_worker:                                  ; 0xfa0ba LB 0x3a
    1578415774    sti                                       ; fb
    1578515775    push ax                                   ; 50
     
    1579315783    pop ax                                    ; 58
    1579415784    mov AH, strict byte 053h                  ; b4 53
    15795     jnc short 0a290h                          ; 73 25
    15796     jmp word [cs:bp-05dc0h]                   ; 2e ff a6 40 a2
    15797     jmp short 0a28eh                          ; eb 1c
     15785    jnc short 0a0f0h                          ; 73 25
     15786    jmp word [cs:bp-05f60h]                   ; 2e ff a6 a0 a0
     15787    jmp short 0a0eeh                          ; eb 1c
    1579815788    sti                                       ; fb
    1579915789    hlt                                       ; f4
    15800     jmp short 0a28eh                          ; eb 18
    15801     jmp short 0a28eh                          ; eb 16
    15802     jmp short 0a290h                          ; eb 16
     15790    jmp short 0a0eeh                          ; eb 18
     15791    jmp short 0a0eeh                          ; eb 16
     15792    jmp short 0a0f0h                          ; eb 16
    1580315793    mov AH, strict byte 080h                  ; b4 80
    15804     jmp short 0a292h                          ; eb 14
    15805     jmp short 0a290h                          ; eb 10
     15794    jmp short 0a0f2h                          ; eb 14
     15795    jmp short 0a0f0h                          ; eb 10
    1580615796    mov ax, 00102h                            ; b8 02 01
    15807     jmp short 0a28eh                          ; eb 09
    15808     jmp short 0a28eh                          ; eb 07
     15797    jmp short 0a0eeh                          ; eb 09
     15798    jmp short 0a0eeh                          ; eb 07
    1580915799    mov BL, strict byte 000h                  ; b3 00
    1581015800    mov cx, strict word 00000h                ; b9 00 00
    15811     jmp short 0a28eh                          ; eb 00
     15801    jmp short 0a0eeh                          ; eb 00
    1581215802    clc                                       ; f8
    1581315803    retn                                      ; c3
     
    1581515805    stc                                       ; f9
    1581615806    retn                                      ; c3
    15817 apm_pm16_entry:                              ; 0xfa294 LB 0x11
     15807apm_pm16_entry:                              ; 0xfa0f4 LB 0x11
    1581815808    mov AH, strict byte 002h                  ; b4 02
    1581915809    push DS                                   ; 1e
     
    1582315813    add bp, strict byte 00008h                ; 83 c5 08
    1582415814    mov ds, bp                                ; 8e dd
    15825     call 0a25ah                               ; e8 b8 ff
     15815    call 0a0bah                               ; e8 b8 ff
    1582615816    pop bp                                    ; 5d
    1582715817    pop DS                                    ; 1f
    1582815818    retf                                      ; cb
     15819_DoUInt32Div:                                ; 0xfa105 LB 0x26b
     15820    push bp                                   ; 55
     15821    mov bp, sp                                ; 89 e5
     15822    push si                                   ; 56
     15823    push di                                   ; 57
     15824    sub sp, strict byte 00018h                ; 83 ec 18
     15825    lds bx, [bp+00ch]                         ; c5 5e 0c
     15826    lea si, [bp+004h]                         ; 8d 76 04
     15827    mov word [bp-010h], si                    ; 89 76 f0
     15828    mov [bp-00eh], ss                         ; 8c 56 f2
     15829    lea di, [bp+008h]                         ; 8d 7e 08
     15830    mov [bp-008h], ss                         ; 8c 56 f8
     15831    lea si, [bp-01ch]                         ; 8d 76 e4
     15832    mov word [bp-00ch], si                    ; 89 76 f4
     15833    mov [bp-00ah], ss                         ; 8c 56 f6
     15834    mov si, bx                                ; 89 de
     15835    mov [bp-006h], ds                         ; 8c 5e fa
     15836    cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
     15837    jne short 0a155h                          ; 75 22
     15838    mov ax, word [bx]                         ; 8b 07
     15839    test ax, ax                               ; 85 c0
     15840    je short 0a152h                           ; 74 19
     15841    cmp ax, strict word 00001h                ; 3d 01 00
     15842    jne short 0a155h                          ; 75 17
     15843    xor ax, ax                                ; 31 c0
     15844    mov word [bp+00ah], ax                    ; 89 46 0a
     15845    mov word [bp+008h], ax                    ; 89 46 08
     15846    mov ax, word [bp-01ch]                    ; 8b 46 e4
     15847    mov word [bp+004h], ax                    ; 89 46 04
     15848    mov ax, word [bp-01ah]                    ; 8b 46 e6
     15849    mov word [bp+006h], ax                    ; 89 46 06
     15850    jmp near 0a35dh                           ; e9 08 02
     15851    lds bx, [bp-00ch]                         ; c5 5e f4
     15852    mov ax, word [bx+002h]                    ; 8b 47 02
     15853    mov ds, [bp-006h]                         ; 8e 5e fa
     15854    cmp ax, word [si+002h]                    ; 3b 44 02
     15855    je short 0a17bh                           ; 74 18
     15856    mov ds, [bp-00ah]                         ; 8e 5e f6
     15857    mov ax, word [bx+002h]                    ; 8b 47 02
     15858    mov ds, [bp-006h]                         ; 8e 5e fa
     15859    cmp ax, word [si+002h]                    ; 3b 44 02
     15860    jbe short 0a176h                          ; 76 05
     15861    mov ax, strict word 00001h                ; b8 01 00
     15862    jmp short 0a19ch                          ; eb 26
     15863    mov ax, strict word 0ffffh                ; b8 ff ff
     15864    jmp short 0a19ch                          ; eb 21
     15865    mov ds, [bp-00ah]                         ; 8e 5e f6
     15866    mov ax, word [bx]                         ; 8b 07
     15867    mov ds, [bp-006h]                         ; 8e 5e fa
     15868    cmp ax, word [si]                         ; 3b 04
     15869    je short 0a19ah                           ; 74 13
     15870    mov ds, [bp-00ah]                         ; 8e 5e f6
     15871    mov ax, word [bx]                         ; 8b 07
     15872    mov ds, [bp-006h]                         ; 8e 5e fa
     15873    cmp ax, word [si]                         ; 3b 04
     15874    jbe short 0a195h                          ; 76 02
     15875    jmp short 0a171h                          ; eb dc
     15876    mov ax, strict word 0ffffh                ; b8 ff ff
     15877    jmp short 0a19ch                          ; eb 02
     15878    xor ax, ax                                ; 31 c0
     15879    test ax, ax                               ; 85 c0
     15880    jnl short 0a1beh                          ; 7d 1e
     15881    lds bx, [bp-00ch]                         ; c5 5e f4
     15882    mov ax, word [bx]                         ; 8b 07
     15883    mov dx, word [bx+002h]                    ; 8b 57 02
     15884    mov ds, [bp-008h]                         ; 8e 5e f8
     15885    mov word [di], ax                         ; 89 05
     15886    mov word [di+002h], dx                    ; 89 55 02
     15887    lds bx, [bp-010h]                         ; c5 5e f0
     15888    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
     15889    mov word [bx], strict word 00000h         ; c7 07 00 00
     15890    jmp short 0a152h                          ; eb 94
     15891    jne short 0a1d5h                          ; 75 15
     15892    mov ds, [bp-008h]                         ; 8e 5e f8
     15893    mov word [di+002h], ax                    ; 89 45 02
     15894    mov word [di], ax                         ; 89 05
     15895    lds bx, [bp-010h]                         ; c5 5e f0
     15896    mov word [bx], strict word 00001h         ; c7 07 01 00
     15897    mov word [bx+002h], ax                    ; 89 47 02
     15898    jmp near 0a35dh                           ; e9 88 01
     15899    lds bx, [bp-00ch]                         ; c5 5e f4
     15900    mov ax, word [bx+002h]                    ; 8b 47 02
     15901    test ax, ax                               ; 85 c0
     15902    je short 0a1f0h                           ; 74 11
     15903    push ax                                   ; 50
     15904    mov ax, 0f000h                            ; b8 00 f0
     15905    mov ds, ax                                ; 8e d8
     15906    call 0a370h                               ; e8 88 01
     15907    add sp, strict byte 00002h                ; 83 c4 02
     15908    add ax, strict word 00010h                ; 05 10 00
     15909    jmp short 0a1fdh                          ; eb 0d
     15910    push word [bx]                            ; ff 37
     15911    mov ax, 0f000h                            ; b8 00 f0
     15912    mov ds, ax                                ; 8e d8
     15913    call 0a370h                               ; e8 76 01
     15914    add sp, strict byte 00002h                ; 83 c4 02
     15915    mov word [bp-014h], ax                    ; 89 46 ec
     15916    mov ds, [bp-006h]                         ; 8e 5e fa
     15917    mov ax, word [si+002h]                    ; 8b 44 02
     15918    test ax, ax                               ; 85 c0
     15919    je short 0a21bh                           ; 74 11
     15920    push ax                                   ; 50
     15921    mov ax, 0f000h                            ; b8 00 f0
     15922    mov ds, ax                                ; 8e d8
     15923    call 0a370h                               ; e8 5d 01
     15924    add sp, strict byte 00002h                ; 83 c4 02
     15925    add ax, strict word 00010h                ; 05 10 00
     15926    jmp short 0a228h                          ; eb 0d
     15927    push word [si]                            ; ff 34
     15928    mov ax, 0f000h                            ; b8 00 f0
     15929    mov ds, ax                                ; 8e d8
     15930    call 0a370h                               ; e8 4b 01
     15931    add sp, strict byte 00002h                ; 83 c4 02
     15932    mov dx, word [bp-014h]                    ; 8b 56 ec
     15933    sub dx, ax                                ; 29 c2
     15934    mov word [bp-012h], dx                    ; 89 56 ee
     15935    mov ds, [bp-006h]                         ; 8e 5e fa
     15936    mov ax, word [si]                         ; 8b 04
     15937    mov word [bp-018h], ax                    ; 89 46 e8
     15938    mov ax, word [si+002h]                    ; 8b 44 02
     15939    mov word [bp-016h], ax                    ; 89 46 ea
     15940    test dx, dx                               ; 85 d2
     15941    je short 0a298h                           ; 74 56
     15942    mov cx, dx                                ; 89 d1
     15943    xor ch, dh                                ; 30 f5
     15944    and cl, 01fh                              ; 80 e1 1f
     15945    mov ax, word [si]                         ; 8b 04
     15946    mov dx, word [si+002h]                    ; 8b 54 02
     15947    jcxz 0a256h                               ; e3 06
     15948    sal ax, 1                                 ; d1 e0
     15949    rcl dx, 1                                 ; d1 d2
     15950    loop 0a250h                               ; e2 fa
     15951    mov word [bp-018h], ax                    ; 89 46 e8
     15952    mov word [bp-016h], dx                    ; 89 56 ea
     15953    mov ax, word [bp-016h]                    ; 8b 46 ea
     15954    lds bx, [bp-00ch]                         ; c5 5e f4
     15955    cmp ax, word [bx+002h]                    ; 3b 47 02
     15956    jnbe short 0a276h                         ; 77 0f
     15957    mov ax, word [bp-016h]                    ; 8b 46 ea
     15958    cmp ax, word [bx+002h]                    ; 3b 47 02
     15959    jne short 0a27ah                          ; 75 0b
     15960    mov ax, word [bp-018h]                    ; 8b 46 e8
     15961    cmp ax, word [bx]                         ; 3b 07
     15962    jbe short 0a27ah                          ; 76 04
     15963    mov AL, strict byte 001h                  ; b0 01
     15964    jmp short 0a27ch                          ; eb 02
     15965    xor al, al                                ; 30 c0
     15966    test al, al                               ; 84 c0
     15967    je short 0a2a3h                           ; 74 23
     15968    shr word [bp-016h], 1                     ; d1 6e ea
     15969    rcr word [bp-018h], 1                     ; d1 5e e8
     15970    dec word [bp-012h]                        ; ff 4e ee
     15971    jmp short 0a2a3h                          ; eb 18
     15972    mov cx, strict word 0001fh                ; b9 1f 00
     15973    sal word [bp-018h], 1                     ; d1 66 e8
     15974    rcl word [bp-016h], 1                     ; d1 56 ea
     15975    loop 0a28eh                               ; e2 f8
     15976    jmp short 0a286h                          ; eb ee
     15977    mov ax, word [si]                         ; 8b 04
     15978    mov word [bp-018h], ax                    ; 89 46 e8
     15979    mov ax, word [si+002h]                    ; 8b 44 02
     15980    mov word [bp-016h], ax                    ; 89 46 ea
     15981    lds bx, [bp-010h]                         ; c5 5e f0
     15982    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
     15983    mov word [bx], strict word 00000h         ; c7 07 00 00
     15984    lds bx, [bp-00ch]                         ; c5 5e f4
     15985    mov dx, word [bx]                         ; 8b 17
     15986    mov ax, word [bx+002h]                    ; 8b 47 02
     15987    mov ds, [bp-008h]                         ; 8e 5e f8
     15988    mov word [di], dx                         ; 89 15
     15989    mov word [di+002h], ax                    ; 89 45 02
     15990    mov dx, word [di]                         ; 8b 15
     15991    mov ds, [bp-006h]                         ; 8e 5e fa
     15992    cmp ax, word [si+002h]                    ; 3b 44 02
     15993    jnbe short 0a2cfh                         ; 77 06
     15994    jne short 0a2d3h                          ; 75 08
     15995    cmp dx, word [si]                         ; 3b 14
     15996    jc short 0a2d3h                           ; 72 04
     15997    mov AL, strict byte 001h                  ; b0 01
     15998    jmp short 0a2d5h                          ; eb 02
     15999    xor al, al                                ; 30 c0
     16000    test al, al                               ; 84 c0
     16001    je short 0a33ah                           ; 74 61
     16002    mov ds, [bp-008h]                         ; 8e 5e f8
     16003    mov ax, word [di+002h]                    ; 8b 45 02
     16004    cmp ax, word [bp-016h]                    ; 3b 46 ea
     16005    jnbe short 0a2f0h                         ; 77 0c
     16006    cmp ax, word [bp-016h]                    ; 3b 46 ea
     16007    jne short 0a2f4h                          ; 75 0b
     16008    mov ax, word [di]                         ; 8b 05
     16009    cmp ax, word [bp-018h]                    ; 3b 46 e8
     16010    jc short 0a2f4h                           ; 72 04
     16011    mov AL, strict byte 001h                  ; b0 01
     16012    jmp short 0a2f6h                          ; eb 02
     16013    xor al, al                                ; 30 c0
     16014    test al, al                               ; 84 c0
     16015    je short 0a320h                           ; 74 26
     16016    mov ax, word [bp-018h]                    ; 8b 46 e8
     16017    mov ds, [bp-008h]                         ; 8e 5e f8
     16018    sub word [di], ax                         ; 29 05
     16019    mov ax, word [bp-016h]                    ; 8b 46 ea
     16020    sbb word [di+002h], ax                    ; 19 45 02
     16021    mov ax, strict word 00001h                ; b8 01 00
     16022    xor dx, dx                                ; 31 d2
     16023    mov cx, word [bp-012h]                    ; 8b 4e ee
     16024    jcxz 0a318h                               ; e3 06
     16025    sal ax, 1                                 ; d1 e0
     16026    rcl dx, 1                                 ; d1 d2
     16027    loop 0a312h                               ; e2 fa
     16028    lds bx, [bp-010h]                         ; c5 5e f0
     16029    or word [bx], ax                          ; 09 07
     16030    or word [bx+002h], dx                     ; 09 57 02
     16031    mov ds, [bp-008h]                         ; 8e 5e f8
     16032    mov dx, word [di]                         ; 8b 15
     16033    mov ax, word [di+002h]                    ; 8b 45 02
     16034    mov ds, [bp-006h]                         ; 8e 5e fa
     16035    cmp ax, word [si+002h]                    ; 3b 44 02
     16036    jc short 0a336h                           ; 72 06
     16037    jne short 0a33ch                          ; 75 0a
     16038    cmp dx, word [si]                         ; 3b 14
     16039    jnc short 0a33ch                          ; 73 06
     16040    mov AL, strict byte 001h                  ; b0 01
     16041    jmp short 0a33eh                          ; eb 04
     16042    jmp short 0a35dh                          ; eb 21
     16043    xor al, al                                ; 30 c0
     16044    test al, al                               ; 84 c0
     16045    je short 0a351h                           ; 74 0f
     16046    jmp short 0a35dh                          ; eb 19
     16047    mov cx, strict word 0001fh                ; b9 1f 00
     16048    sal word [bp-018h], 1                     ; d1 66 e8
     16049    rcl word [bp-016h], 1                     ; d1 56 ea
     16050    loop 0a347h                               ; e2 f8
     16051    jmp short 0a357h                          ; eb 06
     16052    shr word [bp-016h], 1                     ; d1 6e ea
     16053    rcr word [bp-018h], 1                     ; d1 5e e8
     16054    dec word [bp-012h]                        ; ff 4e ee
     16055    jmp near 0a2d9h                           ; e9 7c ff
     16056    mov ax, word [bp-01ch]                    ; 8b 46 e4
     16057    mov dx, word [bp-01ah]                    ; 8b 56 e6
     16058    lea sp, [bp-004h]                         ; 8d 66 fc
     16059    pop di                                    ; 5f
     16060    pop si                                    ; 5e
     16061    pop bp                                    ; 5d
     16062    retn                                      ; c3
     16063    times 0x6 db 0
     16064_ASMBitLastSetU16:                           ; 0xfa370 LB 0x18
     16065    push bp                                   ; 55
     16066    db  08bh, 0ech
     16067    ; mov bp, sp                                ; 8b ec
     16068    mov cx, word [bp+004h]                    ; 8b 4e 04
     16069    test cx, cx                               ; 85 c9
     16070    je short 0a384h                           ; 74 0a
     16071    mov ax, strict word 00010h                ; b8 10 00
     16072    sal cx, 1                                 ; d1 e1
     16073    jc short 0a386h                           ; 72 05
     16074    dec ax                                    ; 48
     16075    jmp short 0a37dh                          ; eb f9
     16076    db  033h, 0c0h
     16077    ; xor ax, ax                                ; 33 c0
     16078    pop bp                                    ; 5d
     16079    retn                                      ; c3
    1582916080
    15830   ; Padding 0x375b bytes at 0xfa2a5
    15831   times 14171 db 0
     16081  ; Padding 0x3678 bytes at 0xfa388
     16082  times 13944 db 0
    1583216083
    1583316084section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1587616127    add bp, strict byte 00008h                ; 83 c5 08
    1587716128    push ebp                                  ; 66 55
    15878     mov bp, 0a296h                            ; bd 96 a2
     16129    mov bp, 0a0f6h                            ; bd f6 a0
    1587916130    add byte [bx+si], al                      ; 00 00
    1588016131    push ebp                                  ; 66 55
     
    1660616857    call 01cc5h                               ; e8 89 39
    1660716858    call 02154h                               ; e8 15 3e
    16608     call 09ad7h                               ; e8 95 b7
    16609     call 0893ch                               ; e8 f7 a5
     16859    call 09953h                               ; e8 11 b6
     16860    call 087b8h                               ; e8 73 a4
    1661016861    call 0ed4ch                               ; e8 04 0a
    1661116862    call 0e2d2h                               ; e8 87 ff
     
    1694317194    pop DS                                    ; 1f
    1694417195    cld                                       ; fc
    16945     call 0701ch                               ; e8 28 86
     17196    call 06e98h                               ; e8 a4 84
    1694617197    pop DS                                    ; 1f
    1694717198    pop ES                                    ; 07
     
    1730517556    pop DS                                    ; 1f
    1730617557    cld                                       ; fc
    17307     call 079c9h                               ; e8 e5 89
     17558    call 07845h                               ; e8 61 88
    1730817559    pop di                                    ; 5f
    1730917560    pop si                                    ; 5e
     
    1768717938    cmp ah, 0c2h                              ; 80 fc c2
    1768817939    je short 0f895h                           ; 74 15
    17689     call 06777h                               ; e8 f4 6e
     17940    call 067b7h                               ; e8 34 6f
    1769017941    pop di                                    ; 5f
    1769117942    pop si                                    ; 5e
     
    1770017951    popfw                                     ; 9d
    1770117952    jmp short 0f8afh                          ; eb 1f
    17702     call 09c2ah                               ; e8 97 a3
     17953    call 09aa6h                               ; e8 13 a2
    1770317954    jmp short 0f883h                          ; eb ee
    1770417955int15_handler_mouse:                         ; 0xff895 LB 0x5
    17705     call 07629h                               ; e8 91 7d
     17956    call 074a5h                               ; e8 0d 7c
    1770617957    jmp short 0f883h                          ; eb e9
    1770717958int15_handler32:                             ; 0xff89a LB 0x15
     
    1771417965    push si                                   ; 56
    1771517966    push di                                   ; 57
    17716     call 06c4dh                               ; e8 a8 73
     17967    call 06afah                               ; e8 55 72
    1771717968    pop di                                    ; 5f
    1771817969    pop si                                    ; 5e
     
    1776018011    pop DS                                    ; 1f
    1776118012    cld                                       ; fc
    17762     call 07557h                               ; e8 7c 7c
     18013    call 073d3h                               ; e8 f8 7a
    1776318014    pop cx                                    ; 59
    1776418015    jcxz 0f8ebh                               ; e3 0d
     
    1780818059    pop DS                                    ; 1f
    1780918060    cld                                       ; fc
    17810     call 071f4h                               ; e8 d5 78
     18061    call 07070h                               ; e8 51 77
    1781118062    pop di                                    ; 5f
    1781218063    pop si                                    ; 5e
     
    1791118162    pop DS                                    ; 1f
    1791218163    cld                                       ; fc
    17913     call 072b3h                               ; e8 35 74
     18164    call 0712fh                               ; e8 b1 72
    1791418165    pop di                                    ; 5f
    1791518166    pop si                                    ; 5e
     
    1802318274cpu_reset:                                   ; 0xffff0 LB 0x10
    1802418275    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    18025     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 096h
     18276    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 081h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum

    r60443 r61092  
    1 2d2a8ffc155d7c59ca2ef255d33488c0 *VBoxPcBios8086.rom
     1b2a7d5bff6cb3b0795f67a7c9eea2545 *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