VirtualBox

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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
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