VirtualBox

Changeset 66146 in vbox


Ignore:
Timestamp:
Mar 16, 2017 9:14:29 PM (8 years ago)
Author:
vboxsync
Message:

Devices/BIOS: update alternative code

Location:
trunk/src/VBox/Devices
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/BiosCommonCode/MakeAlternativeSource.cpp

    r62594 r66146  
    10331033                     && pb[4] == 0x66
    10341034                     && pb[5] == 0x66)
     1035                 || (   pb[0] == 0x60
     1036                     && pb[1] == 0xa0
     1037                     && pb[2] == 0x62
     1038                     && pb[3] == 0xa0
     1039                     && pb[4] == 0x66
     1040                     && pb[5] == 0xa0)
    10351041                 || 0
    10361042                 )
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm

    r63625 r66146  
    988988    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    989989_pktacc:                                     ; 0xf006a LB 0xc
    990     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 03ah, 081h, 0a0h, 090h
     990    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 045h, 081h, 0abh, 090h
    991991_softrst:                                    ; 0xf0076 LB 0xc
    992992    db  000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 01ch, 03bh, 01ch, 03bh
    993993_dskacc:                                     ; 0xf0082 LB 0x2e
    994994    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f0h, 029h, 0a5h, 02ah, 000h, 000h, 000h, 000h
    995     db  07ah, 07fh, 05ah, 080h, 072h, 08fh, 01ah, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     995    db  085h, 07fh, 065h, 080h, 07dh, 08fh, 025h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    996996    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    997997
     
    11901190  times 1144 db 0
    11911191
    1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d08 class=CODE group=AUTO
     1192section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d18 class=CODE group=AUTO
    11931193rom_scan_:                                   ; 0xf1600 LB 0x50
    11941194    push bp                                   ; 55
     
    15851585    mov bx, strict word 0000ah                ; bb 0a 00
    15861586    xor cx, cx                                ; 31 c9
    1587     call 09fa0h                               ; e8 d3 86
     1587    call 09fb0h                               ; e8 e3 86
    15881588    mov word [bp-008h], ax                    ; 89 46 f8
    15891589    mov cx, dx                                ; 89 d1
     
    18151815    mov dx, word [bp-026h]                    ; 8b 56 da
    18161816    mov si, word [bp-01eh]                    ; 8b 76 e2
    1817     call 09fd0h                               ; e8 d3 84
     1817    call 09fe0h                               ; e8 e3 84
    18181818    mov ax, dx                                ; 89 d0
    18191819    xor ah, dh                                ; 30 f4
     
    22542254    mov dx, word [es:si]                      ; 26 8b 14
    22552255    mov si, strict word 00018h                ; be 18 00
    2256     call 09fd0h                               ; e8 80 80
     2256    call 09fe0h                               ; e8 90 80
    22572257    xor dh, dh                                ; 30 f6
    22582258    mov word [bp-014h], dx                    ; 89 56 ec
     
    22642264    mov dx, word [es:si]                      ; 26 8b 14
    22652265    mov si, strict word 00020h                ; be 20 00
    2266     call 09fd0h                               ; e8 60 80
     2266    call 09fe0h                               ; e8 70 80
    22672267    mov bx, dx                                ; 89 d3
    22682268    mov ax, word [bp-01ch]                    ; 8b 46 e4
     
    22952295    mov dx, word [es:si]                      ; 26 8b 14
    22962296    mov si, strict word 00008h                ; be 08 00
    2297     call 09fd0h                               ; e8 0f 80
     2297    call 09fe0h                               ; e8 1f 80
    22982298    mov word [bp-012h], dx                    ; 89 56 ee
    22992299    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    23042304    mov dx, word [es:si]                      ; 26 8b 14
    23052305    mov si, strict word 00018h                ; be 18 00
    2306     call 09fd0h                               ; e8 f1 7f
     2306    call 09fe0h                               ; e8 01 80
    23072307    mov ah, dl                                ; 88 d4
    23082308    and ah, 00fh                              ; 80 e4 0f
     
    28612861    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    28622862    mov si, strict word 0000bh                ; be 0b 00
    2863     call 09fd0h                               ; e8 49 7a
     2863    call 09fe0h                               ; e8 59 7a
    28642864    mov word [bp-024h], dx                    ; 89 56 dc
    28652865    mov word [bp-032h], cx                    ; 89 4e ce
     
    31373137    mov dx, word [bp-024h]                    ; 8b 56 dc
    31383138    mov si, strict word 00018h                ; be 18 00
    3139     call 09fd0h                               ; e8 87 77
     3139    call 09fe0h                               ; e8 97 77
    31403140    xor dh, dh                                ; 30 f6
    31413141    mov word [bp-014h], dx                    ; 89 56 ec
     
    31453145    mov dx, word [bp-024h]                    ; 8b 56 dc
    31463146    mov si, strict word 00020h                ; be 20 00
    3147     call 09fd0h                               ; e8 70 77
     3147    call 09fe0h                               ; e8 80 77
    31483148    mov bx, dx                                ; 89 d3
    31493149    mov ax, word [bp-022h]                    ; 8b 46 de
     
    31793179    mov dx, word [bp-024h]                    ; 8b 56 dc
    31803180    mov si, strict word 00008h                ; be 08 00
    3181     call 09fd0h                               ; e8 1c 77
     3181    call 09fe0h                               ; e8 2c 77
    31823182    mov word [bp-00ch], ax                    ; 89 46 f4
    31833183    mov word [bp-00eh], bx                    ; 89 5e f2
     
    31863186    mov word [bp-018h], dx                    ; 89 56 e8
    31873187    mov si, strict word 00010h                ; be 10 00
    3188     call 09fd0h                               ; e8 07 77
     3188    call 09fe0h                               ; e8 17 77
    31893189    mov word [bp-024h], dx                    ; 89 56 dc
    31903190    mov ax, dx                                ; 89 d0
     
    54565456    mov dx, ss                                ; 8c d2
    54575457    lea ax, [bp-026h]                         ; 8d 46 da
    5458     call 09ff0h                               ; e8 6a 62
     5458    call 0a000h                               ; e8 7a 62
    54595459    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    54605460    mov ax, strict word 00011h                ; b8 11 00
     
    59295929    xor dl, dl                                ; 30 d2
    59305930    xor cx, cx                                ; 31 c9
    5931     call 09f80h                               ; e8 95 5c
     5931    call 09f90h                               ; e8 a5 5c
    59325932    xor bx, bx                                ; 31 db
    59335933    add ax, si                                ; 01 f0
     
    59355935    mov bx, di                                ; 89 fb
    59365936    xor cx, cx                                ; 31 c9
    5937     call 09f80h                               ; e8 88 5c
     5937    call 09f90h                               ; e8 98 5c
    59385938    mov bx, ax                                ; 89 c3
    59395939    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    59705970    mov dx, ss                                ; 8c d2
    59715971    lea ax, [bp-02eh]                         ; 8d 46 d2
    5972     call 09ff0h                               ; e8 a1 5c
     5972    call 0a000h                               ; e8 b1 5c
    59735973    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    59745974    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    63096309    mov dx, ss                                ; 8c d2
    63106310    lea ax, [bp-030h]                         ; 8d 46 d0
    6311     call 09ff0h                               ; e8 c4 58
     6311    call 0a000h                               ; e8 d4 58
    63126312    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    63136313    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    68166816    xor ah, ah                                ; 30 e4
    68176817    sar ax, 004h                              ; c1 f8 04
    6818     call 07d65h                               ; e8 cc 30
     6818    call 07d70h                               ; e8 d7 30
    68196819    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    68206820    jne short 04ca2h                          ; 75 03
     
    82408240    mov dx, word [bp+00ch]                    ; 8b 56 0c
    82418241    mov si, strict word 00020h                ; be 20 00
    8242     call 09fd0h                               ; e8 d8 45
     8242    call 09fe0h                               ; e8 e8 45
    82438243    test ax, ax                               ; 85 c0
    82448244    jne short 05a08h                          ; 75 0c
     
    82788278    mov bx, strict word 0003fh                ; bb 3f 00
    82798279    xor cx, cx                                ; 31 c9
    8280     call 09f80h                               ; e8 2f 45
     8280    call 09f90h                               ; e8 3f 45
    82818281    mov bx, ax                                ; 89 c3
    82828282    mov cx, dx                                ; 89 d1
    82838283    mov ax, word [bp-004h]                    ; 8b 46 fc
    82848284    mov dx, si                                ; 89 f2
    8285     call 09fa0h                               ; e8 43 45
     8285    call 09fb0h                               ; e8 53 45
    82868286    mov word [es:di+002h], ax                 ; 26 89 45 02
    82878287    cmp ax, 00400h                            ; 3d 00 04
     
    84928492    mov bx, cx                                ; 89 cb
    84938493    xor cx, cx                                ; 31 c9
    8494     call 09f80h                               ; e8 08 43
     8494    call 09f90h                               ; e8 18 43
    84958495    xor bx, bx                                ; 31 db
    84968496    add ax, word [bp-008h]                    ; 03 46 f8
     
    84988498    mov bx, word [bp-00ah]                    ; 8b 5e f6
    84998499    xor cx, cx                                ; 31 c9
    8500     call 09f80h                               ; e8 f9 42
     8500    call 09f90h                               ; e8 09 43
    85018501    xor bx, bx                                ; 31 db
    85028502    add ax, word [bp-006h]                    ; 03 46 fa
     
    86668666    mov bx, word [bp-008h]                    ; 8b 5e f8
    86678667    xor cx, cx                                ; 31 c9
    8668     call 09f80h                               ; e8 22 41
     8668    call 09f90h                               ; e8 32 41
    86698669    mov bx, word [bp-006h]                    ; 8b 5e fa
    86708670    xor cx, cx                                ; 31 c9
    8671     call 09f80h                               ; e8 1a 41
     8671    call 09f90h                               ; e8 2a 41
    86728672    mov word [bp-010h], ax                    ; 89 46 f0
    86738673    mov word [bp-00ch], dx                    ; 89 56 f4
     
    88218821    xor bx, bx                                ; 31 db
    88228822    mov si, strict word 00020h                ; be 20 00
    8823     call 09fe0h                               ; e8 dd 3f
     8823    call 09ff0h                               ; e8 ed 3f
    88248824    mov si, ax                                ; 89 c6
    88258825    mov word [bp-00ch], bx                    ; 89 5e f4
     
    89788978    mov bx, word [bp-00ch]                    ; 8b 5e f4
    89798979    mov si, strict word 00020h                ; be 20 00
    8980     call 09fd0h                               ; e8 e9 3d
     8980    call 09fe0h                               ; e8 f9 3d
    89818981    mov bx, di                                ; 89 fb
    89828982    mov word [es:bx+014h], dx                 ; 26 89 57 14
     
    93349334    mov bx, strict word 0000fh                ; bb 0f 00
    93359335    xor cx, cx                                ; 31 c9
    9336     call 09fa0h                               ; e8 26 3a
     9336    call 09fb0h                               ; e8 36 3a
    93379337    mov cx, ax                                ; 89 c1
    93389338    mov bx, dx                                ; 89 d3
     
    1158611586    pop bp                                    ; 5d
    1158711587    retn                                      ; c3
    11588 show_logo_:                                  ; 0xf7b3f LB 0x226
     11588show_logo_:                                  ; 0xf7b3f LB 0x231
    1158911589    push bp                                   ; 55
    1159011590    mov bp, sp                                ; 89 e5
     
    1162011620    cmp ax, strict word 0004fh                ; 3d 4f 00
    1162111621    je short 07b86h                           ; 74 03
    11622     jmp near 07c43h                           ; e9 bd 00
     11622    jmp near 07c4eh                           ; e9 c8 00
    1162311623    mov al, dl                                ; 88 d0
    1162411624    add AL, strict byte 004h                  ; 04 04
     
    1164911649    jne short 07bc8h                          ; 75 04
    1165011650    test bx, bx                               ; 85 db
    11651     je short 07c20h                           ; 74 58
     11651    je short 07b83h                           ; 74 bb
    1165211652    mov bx, 00142h                            ; bb 42 01
    1165311653    mov ax, 04f02h                            ; b8 02 4f
     
    1168611686    je short 07c43h                           ; 74 27
    1168711687    test cl, cl                               ; 84 c9
    11688     je short 07c22h                           ; 74 02
    11689     jmp short 07c43h                          ; eb 21
     11688    jne short 07c43h                          ; 75 23
    1169011689    mov bx, strict word 00010h                ; bb 10 00
    11691     jmp short 07c2ch                          ; eb 05
     11690    jmp short 07c2ah                          ; eb 05
    1169211691    dec bx                                    ; 4b
    1169311692    test bx, bx                               ; 85 db
    11694     jbe short 07c43h                          ; 76 17
     11693    jbe short 07c4eh                          ; 76 24
    1169511694    mov ax, bx                                ; 89 d8
    1169611695    or ah, 002h                               ; 80 cc 02
     
    1169911698    xor dx, dx                                ; 31 d2
    1170011699    mov ax, strict word 00001h                ; b8 01 00
    11701     call 07904h                               ; e8 c7 fc
     11700    call 07904h                               ; e8 c9 fc
    1170211701    cmp AL, strict byte 086h                  ; 3c 86
    11703     jne short 07c27h                          ; 75 e6
     11702    jne short 07c25h                          ; 75 e6
    1170411703    mov CL, strict byte 001h                  ; b1 01
     11704    jmp short 07c4eh                          ; eb 0b
     11705    test cl, cl                               ; 84 c9
     11706    jne short 07c4eh                          ; 75 07
     11707    mov ax, 00200h                            ; b8 00 02
     11708    mov dx, 003b8h                            ; ba b8 03
     11709    out DX, ax                                ; ef
    1170511710    xor bx, bx                                ; 31 db
    1170611711    mov dx, 0037dh                            ; ba 7d 03
    1170711712    mov ax, si                                ; 89 f0
    11708     call 0165eh                               ; e8 11 9a
     11713    call 0165eh                               ; e8 06 9a
    1170911714    mov AL, strict byte 003h                  ; b0 03
    1171011715    mov AH, strict byte 000h                  ; b4 00
    1171111716    int 010h                                  ; cd 10
    1171211717    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11713     je short 07c6dh                           ; 74 14
     11718    je short 07c78h                           ; 74 14
    1171411719    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11715     jne short 07c94h                          ; 75 35
     11720    jne short 07c9fh                          ; 75 35
    1171611721    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11717     jne short 07c94h                          ; 75 2f
     11722    jne short 07c9fh                          ; 75 2f
    1171811723    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    11719     je short 07c70h                           ; 74 05
    11720     jmp short 07c94h                          ; eb 27
    11721     jmp near 07d48h                           ; e9 d8 00
     11724    je short 07c7bh                           ; 74 05
     11725    jmp short 07c9fh                          ; eb 27
     11726    jmp near 07d53h                           ; e9 d8 00
    1172211727    cmp byte [bp-00eh], 002h                  ; 80 7e f2 02
    11723     jne short 07c81h                          ; 75 0b
     11728    jne short 07c8ch                          ; 75 0b
    1172411729    push 00a4bh                               ; 68 4b 0a
    1172511730    push strict byte 00002h                   ; 6a 02
    11726     call 01966h                               ; e8 e8 9c
     11731    call 01966h                               ; e8 dd 9c
    1172711732    add sp, strict byte 00004h                ; 83 c4 04
    1172811733    test cl, cl                               ; 84 c9
    11729     jne short 07c94h                          ; 75 0f
     11734    jne short 07c9fh                          ; 75 0f
    1173011735    mov dx, strict word 00001h                ; ba 01 00
    1173111736    mov ax, 000c0h                            ; b8 c0 00
    11732     call 07904h                               ; e8 76 fc
     11737    call 07904h                               ; e8 6b fc
    1173311738    cmp AL, strict byte 086h                  ; 3c 86
    11734     jne short 07c94h                          ; 75 02
     11739    jne short 07c9fh                          ; 75 02
    1173511740    mov CL, strict byte 001h                  ; b1 01
    1173611741    test cl, cl                               ; 84 c9
    11737     je short 07c6dh                           ; 74 d5
     11742    je short 07c78h                           ; 74 d5
    1173811743    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    1173911744    mov ax, 00100h                            ; b8 00 01
     
    1175411759    push 00a6dh                               ; 68 6d 0a
    1175511760    push strict byte 00002h                   ; 6a 02
    11756     call 01966h                               ; e8 a5 9c
     11761    call 01966h                               ; e8 9a 9c
    1175711762    add sp, strict byte 00004h                ; 83 c4 04
    11758     call 079ddh                               ; e8 16 fd
     11763    call 079ddh                               ; e8 0b fd
    1175911764    push 00ab1h                               ; 68 b1 0a
    1176011765    push strict byte 00002h                   ; 6a 02
    11761     call 01966h                               ; e8 97 9c
     11766    call 01966h                               ; e8 8c 9c
    1176211767    add sp, strict byte 00004h                ; 83 c4 04
    1176311768    mov dx, strict word 00001h                ; ba 01 00
    1176411769    mov ax, strict word 00040h                ; b8 40 00
    11765     call 07904h                               ; e8 29 fc
     11770    call 07904h                               ; e8 1e fc
    1176611771    mov bl, al                                ; 88 c3
    1176711772    test al, al                               ; 84 c0
    11768     je short 07cd2h                           ; 74 f1
     11773    je short 07cddh                           ; 74 f1
    1176911774    cmp AL, strict byte 030h                  ; 3c 30
    11770     je short 07d35h                           ; 74 50
     11775    je short 07d40h                           ; 74 50
    1177111776    cmp bl, 002h                              ; 80 fb 02
    11772     jc short 07d0eh                           ; 72 24
     11777    jc short 07d19h                           ; 72 24
    1177311778    cmp bl, 009h                              ; 80 fb 09
    11774     jnbe short 07d0eh                         ; 77 1f
     11779    jnbe short 07d19h                         ; 77 1f
    1177511780    mov al, bl                                ; 88 d8
    1177611781    xor ah, ah                                ; 30 e4
    11777     call 07b17h                               ; e8 21 fe
     11782    call 07b17h                               ; e8 16 fe
    1177811783    cmp AL, strict byte 0ffh                  ; 3c ff
    11779     jne short 07cfch                          ; 75 02
    11780     jmp short 07cd2h                          ; eb d6
     11784    jne short 07d07h                          ; 75 02
     11785    jmp short 07cddh                          ; eb d6
    1178111786    mov bl, al                                ; 88 c3
    1178211787    xor bh, bh                                ; 30 ff
    1178311788    mov dx, 0037ch                            ; ba 7c 03
    1178411789    mov ax, si                                ; 89 f0
    11785     call 0165eh                               ; e8 56 99
     11790    call 0165eh                               ; e8 4b 99
    1178611791    mov byte [bp-00ch], 002h                  ; c6 46 f4 02
    11787     jmp short 07d35h                          ; eb 27
     11792    jmp short 07d40h                          ; eb 27
    1178811793    cmp bl, 02eh                              ; 80 fb 2e
    11789     je short 07d23h                           ; 74 10
     11794    je short 07d2eh                           ; 74 10
    1179011795    cmp bl, 026h                              ; 80 fb 26
    11791     je short 07d29h                           ; 74 11
     11796    je short 07d34h                           ; 74 11
    1179211797    cmp bl, 021h                              ; 80 fb 21
    11793     jne short 07d2fh                          ; 75 12
     11798    jne short 07d3ah                          ; 75 12
    1179411799    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11795     jmp short 07d35h                          ; eb 12
     11800    jmp short 07d40h                          ; eb 12
    1179611801    mov byte [bp-00ch], 003h                  ; c6 46 f4 03
    11797     jmp short 07d35h                          ; eb 0c
     11802    jmp short 07d40h                          ; eb 0c
    1179811803    mov byte [bp-00ch], 004h                  ; c6 46 f4 04
    11799     jmp short 07d35h                          ; eb 06
     11804    jmp short 07d40h                          ; eb 06
    1180011805    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11801     je short 07cd2h                           ; 74 9d
     11806    je short 07cddh                           ; 74 9d
    1180211807    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    1180311808    xor bh, bh                                ; 30 ff
    1180411809    mov dx, 0037dh                            ; ba 7d 03
    1180511810    mov ax, si                                ; 89 f0
    11806     call 0165eh                               ; e8 1c 99
     11811    call 0165eh                               ; e8 11 99
    1180711812    mov AL, strict byte 003h                  ; b0 03
    1180811813    mov AH, strict byte 000h                  ; b4 00
     
    1181711822    push DS                                   ; 1e
    1181811823    mov ds, ax                                ; 8e d8
    11819     call 0edbfh                               ; e8 66 70
     11824    call 0edbfh                               ; e8 5b 70
    1182011825    pop DS                                    ; 1f
    1182111826    pop bp                                    ; 5d
     
    1182811833    pop bp                                    ; 5d
    1182911834    retn                                      ; c3
    11830 delay_boot_:                                 ; 0xf7d65 LB 0x6b
     11835delay_boot_:                                 ; 0xf7d70 LB 0x6b
    1183111836    push bp                                   ; 55
    1183211837    mov bp, sp                                ; 89 e5
     
    1183811843    mov dx, ax                                ; 89 c2
    1183911844    test ax, ax                               ; 85 c0
    11840     je short 07dc6h                           ; 74 53
     11845    je short 07dd1h                           ; 74 53
    1184111846    mov AL, strict byte 034h                  ; b0 34
    1184211847    out strict byte 043h, AL                  ; e6 43
     
    1184811853    push 00afbh                               ; 68 fb 0a
    1184911854    push strict byte 00002h                   ; 6a 02
    11850     call 01966h                               ; e8 de 9b
     11855    call 01966h                               ; e8 d3 9b
    1185111856    add sp, strict byte 00006h                ; 83 c4 06
    1185211857    mov bx, dx                                ; 89 d3
    1185311858    test bx, bx                               ; 85 db
    11854     jbe short 07da8h                          ; 76 17
     11859    jbe short 07db3h                          ; 76 17
    1185511860    push bx                                   ; 53
    1185611861    push 00b19h                               ; 68 19 0b
    1185711862    push strict byte 00002h                   ; 6a 02
    11858     call 01966h                               ; e8 cc 9b
     11863    call 01966h                               ; e8 c1 9b
    1185911864    add sp, strict byte 00006h                ; 83 c4 06
    1186011865    xor dx, dx                                ; 31 d2
    1186111866    mov ax, strict word 00040h                ; b8 40 00
    11862     call 07904h                               ; e8 5f fb
     11867    call 07904h                               ; e8 54 fb
    1186311868    dec bx                                    ; 4b
    11864     jmp short 07d8dh                          ; eb e5
     11869    jmp short 07d98h                          ; eb e5
    1186511870    push 00a49h                               ; 68 49 0a
    1186611871    push strict byte 00002h                   ; 6a 02
    11867     call 01966h                               ; e8 b6 9b
     11872    call 01966h                               ; e8 ab 9b
    1186811873    add sp, strict byte 00004h                ; 83 c4 04
    1186911874    mov AL, strict byte 034h                  ; b0 34
     
    1187611881    push DS                                   ; 1e
    1187711882    mov ds, ax                                ; 8e d8
    11878     call 0edbfh                               ; e8 fb 6f
     11883    call 0edbfh                               ; e8 f0 6f
    1187911884    pop DS                                    ; 1f
    1188011885    pop bp                                    ; 5d
     
    1188711892    pop bp                                    ; 5d
    1188811893    retn                                      ; c3
    11889 scsi_cmd_data_in_:                           ; 0xf7dd0 LB 0xd5
     11894scsi_cmd_data_in_:                           ; 0xf7ddb LB 0xd5
    1189011895    push bp                                   ; 55
    1189111896    mov bp, sp                                ; 89 e5
     
    1190311908    ; sub ah, ah                                ; 2a e4
    1190411909    test AL, strict byte 001h                 ; a8 01
    11905     jne short 07de6h                          ; 75 f7
     11910    jne short 07df1h                          ; 75 f7
    1190611911    mov al, byte [bp+004h]                    ; 8a 46 04
    1190711912    cmp AL, strict byte 010h                  ; 3c 10
    11908     jne short 07dfah                          ; 75 04
     11913    jne short 07e05h                          ; 75 04
    1190911914    xor ax, ax                                ; 31 c0
    11910     jmp short 07dfch                          ; eb 02
     11915    jmp short 07e07h                          ; eb 02
    1191111916    xor ah, ah                                ; 30 e4
    1191211917    mov di, ax                                ; 89 c7
     
    1191611921    shr dx, 1                                 ; d1 ea
    1191711922    rcr ax, 1                                 ; d1 d8
    11918     loop 07e06h                               ; e2 fa
     11923    loop 07e11h                               ; e2 fa
    1191911924    mov cx, ax                                ; 89 c1
    1192011925    and cx, 000f0h                            ; 81 e1 f0 00
     
    1193411939    shr dx, 1                                 ; d1 ea
    1193511940    rcr ax, 1                                 ; d1 d8
    11936     loop 07e2bh                               ; e2 fa
     11941    loop 07e36h                               ; e2 fa
    1193711942    mov dx, si                                ; 89 f2
    1193811943    out DX, AL                                ; ee
     
    1194111946    xor ah, ah                                ; 30 e4
    1194211947    cmp cx, ax                                ; 39 c1
    11943     jnc short 07e4dh                          ; 73 0e
     11948    jnc short 07e58h                          ; 73 0e
    1194411949    les di, [bp-00ah]                         ; c4 7e f6
    1194511950    add di, cx                                ; 01 cf
     
    1194811953    out DX, AL                                ; ee
    1194911954    inc cx                                    ; 41
    11950     jmp short 07e36h                          ; eb e9
     11955    jmp short 07e41h                          ; eb e9
    1195111956    mov dx, si                                ; 89 f2
    1195211957    in AL, DX                                 ; ec
     
    1195411959    ; sub ah, ah                                ; 2a e4
    1195511960    test AL, strict byte 001h                 ; a8 01
    11956     jne short 07e4dh                          ; 75 f7
     11961    jne short 07e58h                          ; 75 f7
    1195711962    test AL, strict byte 002h                 ; a8 02
    11958     je short 07e68h                           ; 74 0e
     11963    je short 07e73h                           ; 74 0e
    1195911964    lea dx, [si+003h]                         ; 8d 54 03
    1196011965    xor al, al                                ; 30 c0
     
    1196411969    ; sub ah, ah                                ; 2a e4
    1196511970    mov di, strict word 00004h                ; bf 04 00
    11966     jmp short 07e9ah                          ; eb 32
     11971    jmp short 07ea5h                          ; eb 32
    1196711972    lea dx, [si+001h]                         ; 8d 54 01
    1196811973    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11969     jne short 07e77h                          ; 75 06
     11974    jne short 07e82h                          ; 75 06
    1197011975    cmp bx, 08000h                            ; 81 fb 00 80
    11971     jbe short 07e91h                          ; 76 1a
     11976    jbe short 07e9ch                          ; 76 1a
    1197211977    mov cx, 08000h                            ; b9 00 80
    1197311978    les di, [bp+006h]                         ; c4 7e 06
     
    1197811983    add ax, 00800h                            ; 05 00 08
    1197911984    mov word [bp+008h], ax                    ; 89 46 08
    11980     jmp short 07e68h                          ; eb d7
     11985    jmp short 07e73h                          ; eb d7
    1198111986    mov cx, bx                                ; 89 d9
    1198211987    les di, [bp+006h]                         ; c4 7e 06
     
    1198911994    pop bp                                    ; 5d
    1199011995    retn 0000ah                               ; c2 0a 00
    11991 scsi_cmd_data_out_:                          ; 0xf7ea5 LB 0xd5
     11996scsi_cmd_data_out_:                          ; 0xf7eb0 LB 0xd5
    1199211997    push bp                                   ; 55
    1199311998    mov bp, sp                                ; 89 e5
     
    1200512010    ; sub ah, ah                                ; 2a e4
    1200612011    test AL, strict byte 001h                 ; a8 01
    12007     jne short 07ebbh                          ; 75 f7
     12012    jne short 07ec6h                          ; 75 f7
    1200812013    mov al, byte [bp+004h]                    ; 8a 46 04
    1200912014    cmp AL, strict byte 010h                  ; 3c 10
    12010     jne short 07ecfh                          ; 75 04
     12015    jne short 07edah                          ; 75 04
    1201112016    xor ax, ax                                ; 31 c0
    12012     jmp short 07ed1h                          ; eb 02
     12017    jmp short 07edch                          ; eb 02
    1201312018    xor ah, ah                                ; 30 e4
    1201412019    mov si, ax                                ; 89 c6
     
    1201812023    shr dx, 1                                 ; d1 ea
    1201912024    rcr ax, 1                                 ; d1 d8
    12020     loop 07edbh                               ; e2 fa
     12025    loop 07ee6h                               ; e2 fa
    1202112026    mov cx, ax                                ; 89 c1
    1202212027    and cx, 000f0h                            ; 81 e1 f0 00
     
    1203612041    shr dx, 1                                 ; d1 ea
    1203712042    rcr ax, 1                                 ; d1 d8
    12038     loop 07f00h                               ; e2 fa
     12043    loop 07f0bh                               ; e2 fa
    1203912044    mov dx, di                                ; 89 fa
    1204012045    out DX, AL                                ; ee
     
    1204312048    xor ah, ah                                ; 30 e4
    1204412049    cmp cx, ax                                ; 39 c1
    12045     jnc short 07f22h                          ; 73 0e
     12050    jnc short 07f2dh                          ; 73 0e
    1204612051    les si, [bp-00ah]                         ; c4 76 f6
    1204712052    add si, cx                                ; 01 ce
     
    1205012055    out DX, AL                                ; ee
    1205112056    inc cx                                    ; 41
    12052     jmp short 07f0bh                          ; eb e9
     12057    jmp short 07f16h                          ; eb e9
    1205312058    lea dx, [di+001h]                         ; 8d 55 01
    1205412059    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12055     jne short 07f31h                          ; 75 06
     12060    jne short 07f3ch                          ; 75 06
    1205612061    cmp bx, 08000h                            ; 81 fb 00 80
    12057     jbe short 07f4ch                          ; 76 1b
     12062    jbe short 07f57h                          ; 76 1b
    1205812063    mov cx, 08000h                            ; b9 00 80
    1205912064    les si, [bp+006h]                         ; c4 76 06
     
    1206512070    add ax, 00800h                            ; 05 00 08
    1206612071    mov word [bp+008h], ax                    ; 89 46 08
    12067     jmp short 07f22h                          ; eb d6
     12072    jmp short 07f2dh                          ; eb d6
    1206812073    mov cx, bx                                ; 89 d9
    1206912074    les si, [bp+006h]                         ; c4 76 06
     
    1207512080    ; sub ah, ah                                ; 2a e4
    1207612081    test AL, strict byte 001h                 ; a8 01
    12077     jne short 07f54h                          ; 75 f7
     12082    jne short 07f5fh                          ; 75 f7
    1207812083    test AL, strict byte 002h                 ; a8 02
    12079     je short 07f6fh                           ; 74 0e
     12084    je short 07f7ah                           ; 74 0e
    1208012085    lea dx, [di+003h]                         ; 8d 55 03
    1208112086    xor al, al                                ; 30 c0
     
    1208512090    ; sub ah, ah                                ; 2a e4
    1208612091    mov ax, strict word 00004h                ; b8 04 00
    12087     jmp short 07f71h                          ; eb 02
     12092    jmp short 07f7ch                          ; eb 02
    1208812093    xor ax, ax                                ; 31 c0
    1208912094    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1209212097    pop bp                                    ; 5d
    1209312098    retn 0000ah                               ; c2 0a 00
    12094 @scsi_read_sectors:                          ; 0xf7f7a LB 0xe0
     12099@scsi_read_sectors:                          ; 0xf7f85 LB 0xe0
    1209512100    push bp                                   ; 55
    1209612101    mov bp, sp                                ; 89 e5
     
    1210412109    mov byte [bp-006h], al                    ; 88 46 fa
    1210512110    cmp AL, strict byte 004h                  ; 3c 04
    12106     jbe short 07fa6h                          ; 76 11
     12111    jbe short 07fb1h                          ; 76 11
    1210712112    xor ah, ah                                ; 30 e4
    1210812113    push ax                                   ; 50
     
    1211012115    push 00b30h                               ; 68 30 0b
    1211112116    push strict byte 00007h                   ; 6a 07
    12112     call 01966h                               ; e8 c3 99
     12117    call 01966h                               ; e8 b8 99
    1211312118    add sp, strict byte 00008h                ; 83 c4 08
    1211412119    mov es, [bp+006h]                         ; 8e 46 06
     
    1215012155    sal word [bp-00ah], 1                     ; d1 66 f6
    1215112156    rcl word [bp-008h], 1                     ; d1 56 f8
    12152     loop 08010h                               ; e2 f8
     12157    loop 0801bh                               ; e2 f8
    1215312158    push word [bp-008h]                       ; ff 76 f8
    1215412159    push word [bp-00ah]                       ; ff 76 f6
     
    1215912164    mov cx, ss                                ; 8c d1
    1216012165    lea bx, [bp-01ah]                         ; 8d 5e e6
    12161     call 07dd0h                               ; e8 9e fd
     12166    call 07ddbh                               ; e8 9e fd
    1216212167    mov ah, al                                ; 88 c4
    1216312168    test al, al                               ; 84 c0
    12164     jne short 0804dh                          ; 75 15
     12169    jne short 08058h                          ; 75 15
    1216512170    mov es, [bp+006h]                         ; 8e 46 06
    1216612171    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1217612181    pop bp                                    ; 5d
    1217712182    retn 00004h                               ; c2 04 00
    12178 @scsi_write_sectors:                         ; 0xf805a LB 0xe0
     12183@scsi_write_sectors:                         ; 0xf8065 LB 0xe0
    1217912184    push bp                                   ; 55
    1218012185    mov bp, sp                                ; 89 e5
     
    1218812193    mov byte [bp-006h], al                    ; 88 46 fa
    1218912194    cmp AL, strict byte 004h                  ; 3c 04
    12190     jbe short 08086h                          ; 76 11
     12195    jbe short 08091h                          ; 76 11
    1219112196    xor ah, ah                                ; 30 e4
    1219212197    push ax                                   ; 50
     
    1219412199    push 00b30h                               ; 68 30 0b
    1219512200    push strict byte 00007h                   ; 6a 07
    12196     call 01966h                               ; e8 e3 98
     12201    call 01966h                               ; e8 d8 98
    1219712202    add sp, strict byte 00008h                ; 83 c4 08
    1219812203    mov es, [bp+006h]                         ; 8e 46 06
     
    1223412239    sal word [bp-00ah], 1                     ; d1 66 f6
    1223512240    rcl word [bp-008h], 1                     ; d1 56 f8
    12236     loop 080f0h                               ; e2 f8
     12241    loop 080fbh                               ; e2 f8
    1223712242    push word [bp-008h]                       ; ff 76 f8
    1223812243    push word [bp-00ah]                       ; ff 76 f6
     
    1224312248    mov cx, ss                                ; 8c d1
    1224412249    lea bx, [bp-01ah]                         ; 8d 5e e6
    12245     call 07ea5h                               ; e8 93 fd
     12250    call 07eb0h                               ; e8 93 fd
    1224612251    mov ah, al                                ; 88 c4
    1224712252    test al, al                               ; 84 c0
    12248     jne short 0812dh                          ; 75 15
     12253    jne short 08138h                          ; 75 15
    1224912254    mov es, [bp+006h]                         ; 8e 46 06
    1225012255    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1226012265    pop bp                                    ; 5d
    1226112266    retn 00004h                               ; c2 04 00
    12262 scsi_cmd_packet_:                            ; 0xf813a LB 0x168
     12267scsi_cmd_packet_:                            ; 0xf8145 LB 0x168
    1226312268    push bp                                   ; 55
    1226412269    mov bp, sp                                ; 89 e5
     
    1227212277    mov dx, strict word 0000eh                ; ba 0e 00
    1227312278    mov ax, strict word 00040h                ; b8 40 00
    12274     call 0166ch                               ; e8 16 95
     12279    call 0166ch                               ; e8 0b 95
    1227512280    mov si, 00122h                            ; be 22 01
    1227612281    mov word [bp-00ah], ax                    ; 89 46 f6
    1227712282    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12278     jne short 08181h                          ; 75 1f
     12283    jne short 0818ch                          ; 75 1f
    1227912284    mov bx, 00da0h                            ; bb a0 0d
    1228012285    mov cx, ds                                ; 8c d9
    1228112286    mov ax, strict word 00004h                ; b8 04 00
    12282     call 01923h                               ; e8 b6 97
     12287    call 01923h                               ; e8 ab 97
    1228312288    push 00b62h                               ; 68 62 0b
    1228412289    push 00b72h                               ; 68 72 0b
    1228512290    push strict byte 00004h                   ; 6a 04
    12286     call 01966h                               ; e8 ee 97
     12291    call 01966h                               ; e8 e3 97
    1228712292    add sp, strict byte 00006h                ; 83 c4 06
    1228812293    mov dx, strict word 00001h                ; ba 01 00
    12289     jmp near 08297h                           ; e9 16 01
     12294    jmp near 082a2h                           ; e9 16 01
    1229012295    sub di, strict byte 00008h                ; 83 ef 08
    1229112296    sal di, 002h                              ; c1 e7 02
     
    1230112306    ; sub ah, ah                                ; 2a e4
    1230212307    test AL, strict byte 001h                 ; a8 01
    12303     jne short 0819dh                          ; 75 f7
     12308    jne short 081a8h                          ; 75 f7
    1230412309    xor ax, ax                                ; 31 c0
    1230512310    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1231712322    shr dx, 1                                 ; d1 ea
    1231812323    rcr ax, 1                                 ; d1 d8
    12319     loop 081c8h                               ; e2 fa
     12324    loop 081d3h                               ; e2 fa
    1232012325    and ax, 000f0h                            ; 25 f0 00
    1232112326    mov cl, byte [bp-006h]                    ; 8a 4e fa
     
    1233612341    shr dx, 1                                 ; d1 ea
    1233712342    rcr ax, 1                                 ; d1 d8
    12338     loop 081f0h                               ; e2 fa
     12343    loop 081fbh                               ; e2 fa
    1233912344    mov dx, bx                                ; 89 da
    1234012345    out DX, AL                                ; ee
     
    1234312348    xor ah, ah                                ; 30 e4
    1234412349    cmp cx, ax                                ; 39 c1
    12345     jnc short 08212h                          ; 73 0e
     12350    jnc short 0821dh                          ; 73 0e
    1234612351    les di, [bp-00eh]                         ; c4 7e f2
    1234712352    add di, cx                                ; 01 cf
     
    1235012355    out DX, AL                                ; ee
    1235112356    inc cx                                    ; 41
    12352     jmp short 081fbh                          ; eb e9
     12357    jmp short 08206h                          ; eb e9
    1235312358    mov dx, bx                                ; 89 da
    1235412359    in AL, DX                                 ; ec
     
    1235612361    ; sub ah, ah                                ; 2a e4
    1235712362    test AL, strict byte 001h                 ; a8 01
    12358     jne short 08212h                          ; 75 f7
     12363    jne short 0821dh                          ; 75 f7
    1235912364    test AL, strict byte 002h                 ; a8 02
    12360     je short 0822dh                           ; 74 0e
     12365    je short 08238h                           ; 74 0e
    1236112366    lea dx, [bx+003h]                         ; 8d 57 03
    1236212367    xor al, al                                ; 30 c0
     
    1236612371    ; sub ah, ah                                ; 2a e4
    1236712372    mov dx, strict word 00003h                ; ba 03 00
    12368     jmp short 08297h                          ; eb 6a
     12373    jmp short 082a2h                          ; eb 6a
    1236912374    mov ax, word [bp+004h]                    ; 8b 46 04
    1237012375    test ax, ax                               ; 85 c0
    12371     je short 0823ch                           ; 74 08
     12376    je short 08247h                           ; 74 08
    1237212377    lea dx, [bx+001h]                         ; 8d 57 01
    1237312378    mov cx, ax                                ; 89 c1
    1237412379    in AL, DX                                 ; ec
    12375     loop 08239h                               ; e2 fd
     12380    loop 08244h                               ; e2 fd
    1237612381    mov ax, word [bp+006h]                    ; 8b 46 06
    1237712382    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1238112386    lea ax, [bx+001h]                         ; 8d 47 01
    1238212387    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12383     jne short 0825dh                          ; 75 07
     12388    jne short 08268h                          ; 75 07
    1238412389    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12385     jbe short 0827ah                          ; 76 1d
     12390    jbe short 08285h                          ; 76 1d
    1238612391    mov dx, ax                                ; 89 c2
    1238712392    mov cx, 08000h                            ; b9 00 80
     
    1239312398    add ax, 00800h                            ; 05 00 08
    1239412399    mov word [bp+00eh], ax                    ; 89 46 0e
    12395     jmp short 0824dh                          ; eb d3
     12400    jmp short 08258h                          ; eb d3
    1239612401    mov dx, ax                                ; 89 c2
    1239712402    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1240012405    mov es, [bp-00ah]                         ; 8e 46 f6
    1240112406    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12402     je short 08295h                           ; 74 07
     12407    je short 082a0h                           ; 74 07
    1240312408    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1240412409    in AL, DX                                 ; ec
    12405     loop 08292h                               ; e2 fd
     12410    loop 0829dh                               ; e2 fd
    1240612411    xor dx, dx                                ; 31 d2
    1240712412    mov ax, dx                                ; 89 d0
     
    1241112416    pop bp                                    ; 5d
    1241212417    retn 0000ch                               ; c2 0c 00
    12413 scsi_enumerate_attached_devices_:            ; 0xf82a2 LB 0x4a6
     12418scsi_enumerate_attached_devices_:            ; 0xf82ad LB 0x4a6
    1241412419    push bp                                   ; 55
    1241512420    mov bp, sp                                ; 89 e5
     
    1242312428    mov dx, strict word 0000eh                ; ba 0e 00
    1242412429    mov ax, strict word 00040h                ; b8 40 00
    12425     call 0166ch                               ; e8 b4 93
     12430    call 0166ch                               ; e8 a9 93
    1242612431    mov di, 00122h                            ; bf 22 01
    1242712432    mov word [bp-020h], ax                    ; 89 46 e0
    1242812433    mov word [bp-022h], strict word 00000h    ; c7 46 de 00 00
    12429     jmp near 086c6h                           ; e9 00 04
     12434    jmp near 086d1h                           ; e9 00 04
    1243012435    cmp AL, strict byte 004h                  ; 3c 04
    12431     jc short 082cdh                           ; 72 03
    12432     jmp near 0873eh                           ; e9 71 04
     12436    jc short 082d8h                           ; 72 03
     12437    jmp near 08749h                           ; e9 71 04
    1243312438    mov cx, strict word 00010h                ; b9 10 00
    1243412439    xor bx, bx                                ; 31 db
    1243512440    mov dx, ss                                ; 8c d2
    1243612441    lea ax, [bp-046h]                         ; 8d 46 ba
    12437     call 09ff0h                               ; e8 16 1d
     12442    call 0a000h                               ; e8 1b 1d
    1243812443    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
    1243912444    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     
    1245012455    lea bx, [bp-046h]                         ; 8d 5e ba
    1245112456    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12452     call 07dd0h                               ; e8 cd fa
     12457    call 07ddbh                               ; e8 cd fa
    1245312458    test al, al                               ; 84 c0
    12454     je short 08315h                           ; 74 0e
     12459    je short 08320h                           ; 74 0e
    1245512460    push 00b92h                               ; 68 92 0b
    1245612461    push 00bcbh                               ; 68 cb 0b
    1245712462    push strict byte 00007h                   ; 6a 07
    12458     call 01966h                               ; e8 54 96
     12463    call 01966h                               ; e8 49 96
    1245912464    add sp, strict byte 00006h                ; 83 c4 06
    1246012465    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
     
    1248812493    sal ax, 1                                 ; d1 e0
    1248912494    rcl dx, 1                                 ; d1 d2
    12490     loop 08364h                               ; e2 fa
     12495    loop 0836fh                               ; e2 fa
    1249112496    or bx, ax                                 ; 09 c3
    1249212497    or dx, si                                 ; 09 f2
     
    1249612501    mov word [bp-028h], bx                    ; 89 5e d8
    1249712502    test dx, dx                               ; 85 d2
    12498     jne short 08383h                          ; 75 06
     12503    jne short 0838eh                          ; 75 06
    1249912504    cmp bx, 00200h                            ; 81 fb 00 02
    12500     je short 083a3h                           ; 74 20
     12505    je short 083aeh                           ; 74 20
    1250112506    mov bx, 00da0h                            ; bb a0 0d
    1250212507    mov cx, ds                                ; 8c d9
    1250312508    mov ax, strict word 00004h                ; b8 04 00
    12504     call 01923h                               ; e8 95 95
     12509    call 01923h                               ; e8 8a 95
    1250512510    push dx                                   ; 52
    1250612511    push word [bp-028h]                       ; ff 76 d8
     
    1250812513    push 00beah                               ; 68 ea 0b
    1250912514    push strict byte 00004h                   ; 6a 04
    12510     call 01966h                               ; e8 c9 95
     12515    call 01966h                               ; e8 be 95
    1251112516    add sp, strict byte 0000ah                ; 83 c4 0a
    12512     jmp near 086bah                           ; e9 17 03
     12517    jmp near 086c5h                           ; e9 17 03
    1251312518    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1251412519    cmp AL, strict byte 001h                  ; 3c 01
    12515     jc short 083b6h                           ; 72 0c
    12516     jbe short 083beh                          ; 76 12
     12520    jc short 083c1h                           ; 72 0c
     12521    jbe short 083c9h                          ; 76 12
    1251712522    cmp AL, strict byte 003h                  ; 3c 03
    12518     je short 083c6h                           ; 74 16
     12523    je short 083d1h                           ; 74 16
    1251912524    cmp AL, strict byte 002h                  ; 3c 02
    12520     je short 083c2h                           ; 74 0e
    12521     jmp short 0840fh                          ; eb 59
     12525    je short 083cdh                           ; 74 0e
     12526    jmp short 0841ah                          ; eb 59
    1252212527    test al, al                               ; 84 c0
    12523     jne short 0840fh                          ; 75 55
     12528    jne short 0841ah                          ; 75 55
    1252412529    mov BL, strict byte 090h                  ; b3 90
    12525     jmp short 083c8h                          ; eb 0a
     12530    jmp short 083d3h                          ; eb 0a
    1252612531    mov BL, strict byte 098h                  ; b3 98
    12527     jmp short 083c8h                          ; eb 06
     12532    jmp short 083d3h                          ; eb 06
    1252812533    mov BL, strict byte 0a0h                  ; b3 a0
    12529     jmp short 083c8h                          ; eb 02
     12534    jmp short 083d3h                          ; eb 02
    1253012535    mov BL, strict byte 0a8h                  ; b3 a8
    1253112536    mov cl, bl                                ; 88 d9
     
    1253312538    xor ch, ch                                ; 30 ed
    1253412539    mov ax, cx                                ; 89 c8
    12535     call 016ach                               ; e8 d8 92
     12540    call 016ach                               ; e8 cd 92
    1253612541    test al, al                               ; 84 c0
    12537     je short 0840fh                           ; 74 37
     12542    je short 0841ah                           ; 74 37
    1253812543    mov al, bl                                ; 88 d8
    1253912544    db  0feh, 0c0h
    1254012545    ; inc al                                    ; fe c0
    1254112546    xor ah, ah                                ; 30 e4
    12542     call 016ach                               ; e8 cb 92
     12547    call 016ach                               ; e8 c0 92
    1254312548    xor ah, ah                                ; 30 e4
    1254412549    mov dx, ax                                ; 89 c2
    1254512550    sal dx, 008h                              ; c1 e2 08
    1254612551    mov al, bl                                ; 88 d8
    12547     call 016ach                               ; e8 bf 92
     12552    call 016ach                               ; e8 b4 92
    1254812553    xor ah, ah                                ; 30 e4
    1254912554    add ax, dx                                ; 01 d0
     
    1255312558    add AL, strict byte 002h                  ; 04 02
    1255412559    xor ah, ah                                ; 30 e4
    12555     call 016ach                               ; e8 af 92
     12560    call 016ach                               ; e8 a4 92
    1255612561    xor ah, ah                                ; 30 e4
    1255712562    mov word [bp-018h], ax                    ; 89 46 e8
    1255812563    mov ax, cx                                ; 89 c8
    12559     call 016ach                               ; e8 a5 92
     12564    call 016ach                               ; e8 9a 92
    1256012565    xor ah, ah                                ; 30 e4
    1256112566    mov word [bp-026h], ax                    ; 89 46 da
    12562     jmp near 084fdh                           ; e9 ee 00
     12567    jmp near 08508h                           ; e9 ee 00
    1256312568    mov ax, word [bp-012h]                    ; 8b 46 ee
    1256412569    mov bx, word [bp-010h]                    ; 8b 5e f0
     
    1256612571    mov dx, word [bp-014h]                    ; 8b 56 ec
    1256712572    mov si, strict word 0000ch                ; be 0c 00
    12568     call 09fd0h                               ; e8 af 1b
     12573    call 09fe0h                               ; e8 b4 1b
    1256912574    mov word [bp-02ah], ax                    ; 89 46 d6
    1257012575    mov word [bp-016h], bx                    ; 89 5e ea
     
    1257312578    mov ax, word [bp-012h]                    ; 8b 46 ee
    1257412579    test ax, ax                               ; 85 c0
    12575     jnbe short 08449h                         ; 77 15
    12576     je short 08439h                           ; 74 03
    12577     jmp near 084beh                           ; e9 85 00
     12580    jnbe short 08454h                         ; 77 15
     12581    je short 08444h                           ; 74 03
     12582    jmp near 084c9h                           ; e9 85 00
    1257812583    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    12579     jnbe short 08449h                         ; 77 0a
    12580     jne short 08436h                          ; 75 f5
     12584    jnbe short 08454h                         ; 77 0a
     12585    jne short 08441h                          ; 75 f5
    1258112586    cmp word [bp-01ch], strict byte 00040h    ; 83 7e e4 40
    12582     jnbe short 08449h                         ; 77 02
    12583     jne short 084beh                          ; 75 75
     12587    jnbe short 08454h                         ; 77 02
     12588    jne short 084c9h                          ; 75 75
    1258412589    mov word [bp-018h], 000ffh                ; c7 46 e8 ff 00
    1258512590    mov word [bp-026h], strict word 0003fh    ; c7 46 da 3f 00
     
    1258812593    mov dx, word [bp-014h]                    ; 8b 56 ec
    1258912594    mov si, strict word 00006h                ; be 06 00
    12590     call 09fd0h                               ; e8 6e 1b
     12595    call 09fe0h                               ; e8 73 1b
    1259112596    mov si, word [bp-01eh]                    ; 8b 76 e2
    1259212597    add si, dx                                ; 01 d6
     
    1260612611    mov dx, si                                ; 89 f2
    1260712612    mov si, strict word 00008h                ; be 08 00
    12608     call 09fd0h                               ; e8 3e 1b
     12613    call 09fe0h                               ; e8 43 1b
    1260912614    mov word [bp-02eh], bx                    ; 89 5e d2
    1261012615    mov word [bp-030h], cx                    ; 89 4e d0
     
    1261512620    mov dx, word [bp-036h]                    ; 8b 56 ca
    1261612621    mov si, strict word 00010h                ; be 10 00
    12617     call 09fd0h                               ; e8 23 1b
     12622    call 09fe0h                               ; e8 28 1b
    1261812623    mov si, word [bp-032h]                    ; 8b 76 ce
    1261912624    add si, dx                                ; 01 d6
     
    1262212627    mov ax, word [bp-02eh]                    ; 8b 46 d2
    1262312628    adc ax, bx                                ; 11 d8
    12624     jmp short 084fdh                          ; eb 3f
     12629    jmp short 08508h                          ; eb 3f
    1262512630    test ax, ax                               ; 85 c0
    12626     jnbe short 084d4h                         ; 77 12
    12627     jne short 084e0h                          ; 75 1c
     12631    jnbe short 084dfh                         ; 77 12
     12632    jne short 084ebh                          ; 75 1c
    1262812633    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    12629     jnbe short 084d4h                         ; 77 0a
    12630     jne short 084e0h                          ; 75 14
     12634    jnbe short 084dfh                         ; 77 0a
     12635    jne short 084ebh                          ; 75 14
    1263112636    cmp word [bp-01ch], strict byte 00020h    ; 83 7e e4 20
    12632     jnbe short 084d4h                         ; 77 02
    12633     jne short 084e0h                          ; 75 0c
     12637    jnbe short 084dfh                         ; 77 02
     12638    jne short 084ebh                          ; 75 0c
    1263412639    mov word [bp-018h], 00080h                ; c7 46 e8 80 00
    1263512640    mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
    12636     jmp short 084f9h                          ; eb 19
     12641    jmp short 08504h                          ; eb 19
    1263712642    mov word [bp-018h], strict word 00040h    ; c7 46 e8 40 00
    1263812643    mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
     
    1264112646    mov dx, word [bp-014h]                    ; 8b 56 ec
    1264212647    mov si, strict word 0000bh                ; be 0b 00
    12643     call 09fd0h                               ; e8 d7 1a
     12648    call 09fe0h                               ; e8 dc 1a
    1264412649    mov si, dx                                ; 89 d6
    1264512650    mov dx, cx                                ; 89 ca
     
    1267612681    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1267712682    test dx, dx                               ; 85 d2
    12678     jne short 0856fh                          ; 75 06
     12683    jne short 0857ah                          ; 75 06
    1267912684    cmp si, 00400h                            ; 81 fe 00 04
    12680     jbe short 0857dh                          ; 76 0e
     12685    jbe short 08588h                          ; 76 0e
    1268112686    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1268212687    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12683     jmp short 08585h                          ; eb 08
     12688    jmp short 08590h                          ; eb 08
    1268412689    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1268512690    mov word [es:bx+032h], si                 ; 26 89 77 32
     
    1268712692    mov cx, ds                                ; 8c d9
    1268812693    mov ax, strict word 00004h                ; b8 04 00
    12689     call 01923h                               ; e8 93 93
     12694    call 01923h                               ; e8 88 93
    1269012695    push word [bp-012h]                       ; ff 76 ee
    1269112696    push word [bp-010h]                       ; ff 76 f0
     
    1270212707    push 00c18h                               ; 68 18 0c
    1270312708    push strict byte 00004h                   ; 6a 04
    12704     call 01966h                               ; e8 b1 93
     12709    call 01966h                               ; e8 a6 93
    1270512710    add sp, strict byte 00018h                ; 83 c4 18
    1270612711    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    1273012735    mov dx, strict word 00075h                ; ba 75 00
    1273112736    mov ax, strict word 00040h                ; b8 40 00
    12732     call 01650h                               ; e8 47 90
     12737    call 01650h                               ; e8 3c 90
    1273312738    mov bl, al                                ; 88 c3
    1273412739    db  0feh, 0c3h
     
    1273712742    mov dx, strict word 00075h                ; ba 75 00
    1273812743    mov ax, strict word 00040h                ; b8 40 00
    12739     call 0165eh                               ; e8 46 90
     12744    call 0165eh                               ; e8 3b 90
    1274012745    inc byte [bp-00ch]                        ; fe 46 f4
    12741     jmp near 086afh                           ; e9 91 00
     12746    jmp near 086bah                           ; e9 91 00
    1274212747    mov bx, 00da0h                            ; bb a0 0d
    1274312748    mov cx, ds                                ; 8c d9
    1274412749    mov ax, strict word 00004h                ; b8 04 00
    12745     call 01923h                               ; e8 fa 92
     12750    call 01923h                               ; e8 ef 92
    1274612751    push word [bp-022h]                       ; ff 76 de
    1274712752    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1275012755    push 00c46h                               ; 68 46 0c
    1275112756    push strict byte 00004h                   ; 6a 04
    12752     call 01966h                               ; e8 2c 93
     12757    call 01966h                               ; e8 21 93
    1275312758    add sp, strict byte 00008h                ; 83 c4 08
    1275412759    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1275612761    mov byte [bp-00eh], al                    ; 88 46 f2
    1275712762    test byte [bp-00245h], 080h               ; f6 86 bb fd 80
    12758     je short 08651h                           ; 74 05
     12763    je short 0865ch                           ; 74 05
    1275912764    mov dx, strict word 00001h                ; ba 01 00
    12760     jmp short 08653h                          ; eb 02
     12765    jmp short 0865eh                          ; eb 02
    1276112766    xor dx, dx                                ; 31 d2
    1276212767    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1279412799    inc word [bp-022h]                        ; ff 46 de
    1279512800    cmp word [bp-022h], strict byte 00010h    ; 83 7e de 10
    12796     jl short 086c6h                           ; 7c 03
    12797     jmp near 0873eh                           ; e9 78 00
     12801    jl short 086d1h                           ; 7c 03
     12802    jmp near 08749h                           ; e9 78 00
    1279812803    mov byte [bp-046h], 012h                  ; c6 46 ba 12
    1279912804    xor al, al                                ; 30 c0
     
    1281412819    lea bx, [bp-046h]                         ; 8d 5e ba
    1281512820    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12816     call 07dd0h                               ; e8 d7 f6
     12821    call 07ddbh                               ; e8 d7 f6
    1281712822    test al, al                               ; 84 c0
    12818     je short 0870bh                           ; 74 0e
     12823    je short 08716h                           ; 74 0e
    1281912824    push 00b92h                               ; 68 92 0b
    1282012825    push 00bb2h                               ; 68 b2 0b
    1282112826    push strict byte 00007h                   ; 6a 07
    12822     call 01966h                               ; e8 5e 92
     12827    call 01966h                               ; e8 53 92
    1282312828    add sp, strict byte 00006h                ; 83 c4 06
    1282412829    mov es, [bp-020h]                         ; 8e 46 e0
     
    1282612831    mov byte [bp-00ch], al                    ; 88 46 f4
    1282712832    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12828     jne short 08727h                          ; 75 0a
     12833    jne short 08732h                          ; 75 0a
    1282912834    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
    12830     jne short 08727h                          ; 75 03
    12831     jmp near 082c6h                           ; e9 9f fb
     12835    jne short 08732h                          ; 75 03
     12836    jmp near 082d1h                           ; e9 9f fb
    1283212837    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12833     jne short 086afh                          ; 75 81
     12838    jne short 086bah                          ; 75 81
    1283412839    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
    1283512840    and AL, strict byte 01fh                  ; 24 1f
    1283612841    cmp AL, strict byte 005h                  ; 3c 05
    12837     jne short 0873bh                          ; 75 03
    12838     jmp near 0861eh                           ; e9 e3 fe
    12839     jmp near 086afh                           ; e9 71 ff
     12842    jne short 08746h                          ; 75 03
     12843    jmp near 08629h                           ; e9 e3 fe
     12844    jmp near 086bah                           ; e9 71 ff
    1284012845    lea sp, [bp-00ah]                         ; 8d 66 f6
    1284112846    pop di                                    ; 5f
     
    1284612851    pop bp                                    ; 5d
    1284712852    retn                                      ; c3
    12848 _scsi_init:                                  ; 0xf8748 LB 0x66
     12853_scsi_init:                                  ; 0xf8753 LB 0x66
    1284912854    push bp                                   ; 55
    1285012855    mov bp, sp                                ; 89 e5
    1285112856    mov dx, strict word 0000eh                ; ba 0e 00
    1285212857    mov ax, strict word 00040h                ; b8 40 00
    12853     call 0166ch                               ; e8 18 8f
     12858    call 0166ch                               ; e8 0d 8f
    1285412859    mov bx, 00122h                            ; bb 22 01
    1285512860    mov es, ax                                ; 8e c0
     
    1286212867    ; sub ah, ah                                ; 2a e4
    1286312868    cmp AL, strict byte 055h                  ; 3c 55
    12864     jne short 08778h                          ; 75 0c
     12869    jne short 08783h                          ; 75 0c
    1286512870    xor al, al                                ; 30 c0
    1286612871    mov dx, 00433h                            ; ba 33 04
    1286712872    out DX, AL                                ; ee
    1286812873    mov ax, 00430h                            ; b8 30 04
    12869     call 082a2h                               ; e8 2a fb
     12874    call 082adh                               ; e8 2a fb
    1287012875    mov AL, strict byte 055h                  ; b0 55
    1287112876    mov dx, 00436h                            ; ba 36 04
     
    1287512880    ; sub ah, ah                                ; 2a e4
    1287612881    cmp AL, strict byte 055h                  ; 3c 55
    12877     jne short 08791h                          ; 75 0c
     12882    jne short 0879ch                          ; 75 0c
    1287812883    xor al, al                                ; 30 c0
    1287912884    mov dx, 00437h                            ; ba 37 04
    1288012885    out DX, AL                                ; ee
    1288112886    mov ax, 00434h                            ; b8 34 04
    12882     call 082a2h                               ; e8 11 fb
     12887    call 082adh                               ; e8 11 fb
    1288312888    mov AL, strict byte 055h                  ; b0 55
    1288412889    mov dx, 0043ah                            ; ba 3a 04
     
    1288812893    ; sub ah, ah                                ; 2a e4
    1288912894    cmp AL, strict byte 055h                  ; 3c 55
    12890     jne short 087aah                          ; 75 0c
     12895    jne short 087b5h                          ; 75 0c
    1289112896    xor al, al                                ; 30 c0
    1289212897    mov dx, 0043bh                            ; ba 3b 04
    1289312898    out DX, AL                                ; ee
    1289412899    mov ax, 00438h                            ; b8 38 04
    12895     call 082a2h                               ; e8 f8 fa
     12900    call 082adh                               ; e8 f8 fa
    1289612901    mov sp, bp                                ; 89 ec
    1289712902    pop bp                                    ; 5d
    1289812903    retn                                      ; c3
    12899 ahci_ctrl_extract_bits_:                     ; 0xf87ae LB 0x1c
     12904ahci_ctrl_extract_bits_:                     ; 0xf87b9 LB 0x1c
    1290012905    push si                                   ; 56
    1290112906    push bp                                   ; 55
     
    1290612911    mov cl, byte [bp+006h]                    ; 8a 4e 06
    1290712912    xor ch, ch                                ; 30 ed
    12908     jcxz 087c5h                               ; e3 06
     12913    jcxz 087d0h                               ; e3 06
    1290912914    shr dx, 1                                 ; d1 ea
    1291012915    rcr ax, 1                                 ; d1 d8
    12911     loop 087bfh                               ; e2 fa
     12916    loop 087cah                               ; e2 fa
    1291212917    pop bp                                    ; 5d
    1291312918    pop si                                    ; 5e
    1291412919    retn 00002h                               ; c2 02 00
    12915 ahci_addr_to_phys_:                          ; 0xf87ca LB 0x1e
     12920ahci_addr_to_phys_:                          ; 0xf87d5 LB 0x1e
    1291612921    push bx                                   ; 53
    1291712922    push cx                                   ; 51
     
    1292412929    sal ax, 1                                 ; d1 e0
    1292512930    rcl dx, 1                                 ; d1 d2
    12926     loop 087d8h                               ; e2 fa
     12931    loop 087e3h                               ; e2 fa
    1292712932    xor cx, cx                                ; 31 c9
    1292812933    add ax, bx                                ; 01 d8
     
    1293212937    pop bx                                    ; 5b
    1293312938    retn                                      ; c3
    12934 ahci_port_cmd_sync_:                         ; 0xf87e8 LB 0x156
     12939ahci_port_cmd_sync_:                         ; 0xf87f3 LB 0x156
    1293512940    push bp                                   ; 55
    1293612941    mov bp, sp                                ; 89 e5
     
    1294712952    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1294812953    cmp AL, strict byte 0ffh                  ; 3c ff
    12949     jne short 0880bh                          ; 75 03
    12950     jmp near 08936h                           ; e9 2b 01
     12954    jne short 08816h                          ; 75 03
     12955    jmp near 08941h                           ; e9 2b 01
    1295112956    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    1295212957    xor ah, ah                                ; 30 e4
     
    1296112966    lea ax, [si+00080h]                       ; 8d 84 80 00
    1296212967    mov dx, cx                                ; 89 ca
    12963     call 087cah                               ; e8 92 ff
     12968    call 087d5h                               ; e8 92 ff
    1296412969    mov es, cx                                ; 8e c1
    1296512970    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1302713032    xchg dx, ax                               ; 92
    1302813033    test dh, 040h                             ; f6 c6 40
    13029     jne short 088c9h                          ; 75 04
     13034    jne short 088d4h                          ; 75 04
    1303013035    test AL, strict byte 001h                 ; a8 01
    13031     je short 088cdh                           ; 74 04
     13036    je short 088d8h                           ; 74 04
    1303213037    mov AL, strict byte 001h                  ; b0 01
    13033     jmp short 088cfh                          ; eb 02
     13038    jmp short 088dah                          ; eb 02
    1303413039    xor al, al                                ; 30 c0
    1303513040    test al, al                               ; 84 c0
    13036     je short 0889ch                           ; 74 c9
     13041    je short 088a7h                           ; 74 c9
    1303713042    mov al, byte [bp-008h]                    ; 8a 46 f8
    1303813043    xor ah, ah                                ; 30 e4
     
    1309013095    pop bp                                    ; 5d
    1309113096    retn                                      ; c3
    13092 ahci_cmd_data_:                              ; 0xf893e LB 0x267
     13097ahci_cmd_data_:                              ; 0xf8949 LB 0x267
    1309313098    push bp                                   ; 55
    1309413099    mov bp, sp                                ; 89 e5
     
    1311513120    mov ax, 00080h                            ; b8 80 00
    1311613121    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13117     call 09ff0h                               ; e8 74 16
     13122    call 0a000h                               ; e8 79 16
    1311813123    mov es, [bp-00ah]                         ; 8e 46 f6
    1311913124    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1313313138    mov dx, word [es:si]                      ; 26 8b 14
    1313413139    mov si, strict word 00008h                ; be 08 00
    13135     call 09fd0h                               ; e8 10 16
     13140    call 09fe0h                               ; e8 15 16
    1313613141    mov es, [bp-00ah]                         ; 8e 46 f6
    1313713142    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1314413149    mov dx, word [es:si]                      ; 26 8b 14
    1314513150    mov si, strict word 00010h                ; be 10 00
    13146     call 09fd0h                               ; e8 ea 15
     13151    call 09fe0h                               ; e8 ef 15
    1314713152    mov es, [bp-00ah]                         ; 8e 46 f6
    1314813153    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1315613161    mov dx, word [es:si]                      ; 26 8b 14
    1315713162    mov si, strict word 00018h                ; be 18 00
    13158     call 09fd0h                               ; e8 be 15
     13163    call 09fe0h                               ; e8 c3 15
    1315913164    mov es, [bp-00ah]                         ; 8e 46 f6
    1316013165    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1316713172    mov dx, word [es:si]                      ; 26 8b 14
    1316813173    mov si, strict word 00020h                ; be 20 00
    13169     call 09fd0h                               ; e8 98 15
     13174    call 09fe0h                               ; e8 9d 15
    1317013175    mov es, [bp-00ah]                         ; 8e 46 f6
    1317113176    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1317813183    mov dx, word [es:si]                      ; 26 8b 14
    1317913184    mov si, strict word 00028h                ; be 28 00
    13180     call 09fd0h                               ; e8 72 15
     13185    call 09fe0h                               ; e8 77 15
    1318113186    mov es, [bp-00ah]                         ; 8e 46 f6
    1318213187    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1319213197    mov bx, word [bp-010h]                    ; 8b 5e f0
    1319313198    xor cx, cx                                ; 31 c9
    13194     call 09f80h                               ; e8 ed 14
     13199    call 09f90h                               ; e8 f2 14
    1319513200    push dx                                   ; 52
    1319613201    push ax                                   ; 50
     
    1320213207    mov ax, 0026ah                            ; b8 6a 02
    1320313208    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13204     call 09edah                               ; e8 2b 14
     13209    call 09ee5h                               ; e8 2b 14
    1320513210    mov es, [bp-00ah]                         ; 8e 46 f6
    1320613211    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1322513230    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1322613231    test ax, ax                               ; 85 c0
    13227     je short 08b41h                           ; 74 3b
     13232    je short 08b4ch                           ; 74 3b
    1322813233    dec ax                                    ; 48
    1322913234    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1324313248    mov al, byte [bp-008h]                    ; 8a 46 f8
    1324413249    cmp AL, strict byte 035h                  ; 3c 35
    13245     jne short 08b4eh                          ; 75 06
     13250    jne short 08b59h                          ; 75 06
    1324613251    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13247     jmp short 08b65h                          ; eb 17
     13252    jmp short 08b70h                          ; eb 17
    1324813253    cmp AL, strict byte 0a0h                  ; 3c a0
    13249     jne short 08b61h                          ; 75 0f
     13254    jne short 08b6ch                          ; 75 0f
    1325013255    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1325113256    les bx, [bp-00eh]                         ; c4 5e f2
    1325213257    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13253     jmp short 08b65h                          ; eb 04
     13258    jmp short 08b70h                          ; eb 04
    1325413259    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1325513260    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1325813263    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1325913264    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13260     call 087e8h                               ; e8 71 fc
     13265    call 087f3h                               ; e8 71 fc
    1326113266    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1326213267    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1326513270    add ax, 0026ah                            ; 05 6a 02
    1326613271    mov dx, cx                                ; 89 ca
    13267     call 09f51h                               ; e8 c5 13
     13272    call 09f5ch                               ; e8 c5 13
    1326813273    mov es, cx                                ; 8e c1
    1326913274    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1327013275    test al, al                               ; 84 c0
    13271     je short 08b9bh                           ; 74 05
     13276    je short 08ba6h                           ; 74 05
    1327213277    mov ax, strict word 00004h                ; b8 04 00
    13273     jmp short 08b9dh                          ; eb 02
     13278    jmp short 08ba8h                          ; eb 02
    1327413279    xor ah, ah                                ; 30 e4
    1327513280    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1327913284    pop bp                                    ; 5d
    1328013285    retn                                      ; c3
    13281 ahci_port_deinit_current_:                   ; 0xf8ba5 LB 0x180
     13286ahci_port_deinit_current_:                   ; 0xf8bb0 LB 0x180
    1328213287    push bp                                   ; 55
    1328313288    mov bp, sp                                ; 89 e5
     
    1329413299    mov byte [bp-00ah], al                    ; 88 46 f6
    1329513300    cmp AL, strict byte 0ffh                  ; 3c ff
    13296     je short 08c26h                           ; 74 5f
     13301    je short 08c31h                           ; 74 5f
    1329713302    xor ah, ah                                ; 30 e4
    1329813303    sal ax, 007h                              ; c1 e0 07
     
    1333813343    xchg dx, ax                               ; 92
    1333913344    test ax, 0c011h                           ; a9 11 c0
    13340     je short 08c29h                           ; 74 07
     13345    je short 08c34h                           ; 74 07
    1334113346    mov AL, strict byte 001h                  ; b0 01
    13342     jmp short 08c2bh                          ; eb 05
    13343     jmp near 08d1ch                           ; e9 f3 00
     13347    jmp short 08c36h                          ; eb 05
     13348    jmp near 08d27h                           ; e9 f3 00
    1334413349    xor al, al                                ; 30 c0
    1334513350    cmp AL, strict byte 001h                  ; 3c 01
    13346     je short 08bf9h                           ; 74 ca
     13351    je short 08c04h                           ; 74 ca
    1334713352    mov cx, strict word 00020h                ; b9 20 00
    1334813353    xor bx, bx                                ; 31 db
    1334913354    mov ax, di                                ; 89 f8
    1335013355    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13351     call 09ff0h                               ; e8 b4 13
     13356    call 0a000h                               ; e8 b9 13
    1335213357    lea ax, [di+00080h]                       ; 8d 85 80 00
    1335313358    mov cx, strict word 00040h                ; b9 40 00
    1335413359    xor bx, bx                                ; 31 db
    1335513360    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13356     call 09ff0h                               ; e8 a5 13
     13361    call 0a000h                               ; e8 aa 13
    1335713362    lea ax, [di+00200h]                       ; 8d 85 00 02
    1335813363    mov cx, strict word 00060h                ; b9 60 00
    1335913364    xor bx, bx                                ; 31 db
    1336013365    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13361     call 09ff0h                               ; e8 96 13
     13366    call 0a000h                               ; e8 9b 13
    1336213367    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1336313368    xor ah, ah                                ; 30 e4
     
    1346413469    pop bp                                    ; 5d
    1346513470    retn                                      ; c3
    13466 ahci_port_init_:                             ; 0xf8d25 LB 0x24d
     13471ahci_port_init_:                             ; 0xf8d30 LB 0x24d
    1346713472    push bp                                   ; 55
    1346813473    mov bp, sp                                ; 89 e5
     
    1347413479    mov word [bp-00ah], dx                    ; 89 56 f6
    1347513480    mov byte [bp-008h], bl                    ; 88 5e f8
    13476     call 08ba5h                               ; e8 6c fe
     13481    call 08bb0h                               ; e8 6c fe
    1347713482    mov al, bl                                ; 88 d8
    1347813483    xor ah, ah                                ; 30 e4
     
    1352313528    xchg dx, ax                               ; 92
    1352413529    test ax, 0c011h                           ; a9 11 c0
    13525     je short 08daah                           ; 74 04
     13530    je short 08db5h                           ; 74 04
    1352613531    mov AL, strict byte 001h                  ; b0 01
    13527     jmp short 08dach                          ; eb 02
     13532    jmp short 08db7h                          ; eb 02
    1352813533    xor al, al                                ; 30 c0
    1352913534    cmp AL, strict byte 001h                  ; 3c 01
    13530     je short 08d75h                           ; 74 c5
     13535    je short 08d80h                           ; 74 c5
    1353113536    mov cx, strict word 00020h                ; b9 20 00
    1353213537    xor bx, bx                                ; 31 db
    1353313538    mov ax, si                                ; 89 f0
    1353413539    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13535     call 09ff0h                               ; e8 33 12
     13540    call 0a000h                               ; e8 38 12
    1353613541    lea ax, [si+00080h]                       ; 8d 84 80 00
    1353713542    mov cx, strict word 00040h                ; b9 40 00
    1353813543    xor bx, bx                                ; 31 db
    1353913544    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13540     call 09ff0h                               ; e8 24 12
     13545    call 0a000h                               ; e8 29 12
    1354113546    lea di, [si+00200h]                       ; 8d bc 00 02
    1354213547    mov cx, strict word 00060h                ; b9 60 00
     
    1354413549    mov ax, di                                ; 89 f8
    1354513550    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13546     call 09ff0h                               ; e8 13 12
     13551    call 0a000h                               ; e8 18 12
    1354713552    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1354813553    xor bh, bh                                ; 30 ff
     
    1356213567    mov ax, di                                ; 89 f8
    1356313568    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13564     call 087cah                               ; e8 bf f9
     13569    call 087d5h                               ; e8 bf f9
    1356513570    mov es, [bp-00ah]                         ; 8e 46 f6
    1356613571    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1360713612    mov ax, si                                ; 89 f0
    1360813613    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13609     call 087cah                               ; e8 53 f9
     13614    call 087d5h                               ; e8 53 f9
    1361013615    mov es, [bp-00ah]                         ; 8e 46 f6
    1361113616    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1371213717    pop bp                                    ; 5d
    1371313718    retn                                      ; c3
    13714 @ahci_read_sectors:                          ; 0xf8f72 LB 0xa8
     13719@ahci_read_sectors:                          ; 0xf8f7d LB 0xa8
    1371513720    push bp                                   ; 55
    1371613721    mov bp, sp                                ; 89 e5
     
    1372313728    sub bx, strict byte 0000ch                ; 83 eb 0c
    1372413729    cmp bx, strict byte 00004h                ; 83 fb 04
    13725     jbe short 08f98h                          ; 76 0f
     13730    jbe short 08fa3h                          ; 76 0f
    1372613731    push bx                                   ; 53
    1372713732    push 00c62h                               ; 68 62 0c
    1372813733    push 00c74h                               ; 68 74 0c
    1372913734    push strict byte 00007h                   ; 6a 07
    13730     call 01966h                               ; e8 d1 89
     13735    call 01966h                               ; e8 c6 89
    1373113736    add sp, strict byte 00008h                ; 83 c4 08
    1373213737    xor di, di                                ; 31 ff
     
    1374313748    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
    1374413749    xor ax, ax                                ; 31 c0
    13745     call 08d25h                               ; e8 60 fd
     13750    call 08d30h                               ; e8 60 fd
    1374613751    mov bx, strict word 00025h                ; bb 25 00
    1374713752    mov ax, si                                ; 89 f0
    1374813753    mov dx, word [bp+006h]                    ; 8b 56 06
    13749     call 0893eh                               ; e8 6e f9
     13754    call 08949h                               ; e8 6e f9
    1375013755    mov word [bp-006h], ax                    ; 89 46 fa
    1375113756    mov es, [bp+006h]                         ; 8e 46 06
     
    1377613781    pop bp                                    ; 5d
    1377713782    retn 00004h                               ; c2 04 00
    13778 @ahci_write_sectors:                         ; 0xf901a LB 0x86
     13783@ahci_write_sectors:                         ; 0xf9025 LB 0x86
    1377913784    push bp                                   ; 55
    1378013785    mov bp, sp                                ; 89 e5
     
    1378813793    sub dx, strict byte 0000ch                ; 83 ea 0c
    1378913794    cmp dx, strict byte 00004h                ; 83 fa 04
    13790     jbe short 09044h                          ; 76 0f
     13795    jbe short 0904fh                          ; 76 0f
    1379113796    push dx                                   ; 52
    1379213797    push 00c93h                               ; 68 93 0c
    1379313798    push 00c74h                               ; 68 74 0c
    1379413799    push strict byte 00007h                   ; 6a 07
    13795     call 01966h                               ; e8 25 89
     13800    call 01966h                               ; e8 1a 89
    1379613801    add sp, strict byte 00008h                ; 83 c4 08
    1379713802    xor bx, bx                                ; 31 db
     
    1380813813    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1380913814    xor ax, ax                                ; 31 c0
    13810     call 08d25h                               ; e8 b6 fc
     13815    call 08d30h                               ; e8 b6 fc
    1381113816    mov bx, strict word 00035h                ; bb 35 00
    1381213817    mov ax, si                                ; 89 f0
    1381313818    mov dx, cx                                ; 89 ca
    13814     call 0893eh                               ; e8 c5 f8
     13819    call 08949h                               ; e8 c5 f8
    1381513820    mov dx, ax                                ; 89 c2
    1381613821    mov es, cx                                ; 8e c1
     
    1382713832    pop bp                                    ; 5d
    1382813833    retn 00004h                               ; c2 04 00
    13829 ahci_cmd_packet_:                            ; 0xf90a0 LB 0x18a
     13834ahci_cmd_packet_:                            ; 0xf90ab LB 0x18a
    1383013835    push bp                                   ; 55
    1383113836    mov bp, sp                                ; 89 e5
     
    1383913844    mov dx, strict word 0000eh                ; ba 0e 00
    1384013845    mov ax, strict word 00040h                ; b8 40 00
    13841     call 0166ch                               ; e8 b1 85
     13846    call 0166ch                               ; e8 a6 85
    1384213847    mov si, 00122h                            ; be 22 01
    1384313848    mov word [bp-008h], ax                    ; 89 46 f8
    1384413849    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    13845     jne short 090e6h                          ; 75 1f
     13850    jne short 090f1h                          ; 75 1f
    1384613851    mov bx, 00da0h                            ; bb a0 0d
    1384713852    mov cx, ds                                ; 8c d9
    1384813853    mov ax, strict word 00004h                ; b8 04 00
    13849     call 01923h                               ; e8 51 88
     13854    call 01923h                               ; e8 46 88
    1385013855    push 00ca6h                               ; 68 a6 0c
    1385113856    push 00cb6h                               ; 68 b6 0c
    1385213857    push strict byte 00004h                   ; 6a 04
    13853     call 01966h                               ; e8 89 88
     13858    call 01966h                               ; e8 7e 88
    1385413859    add sp, strict byte 00006h                ; 83 c4 06
    1385513860    mov ax, strict word 00001h                ; b8 01 00
    13856     jmp near 09221h                           ; e9 3b 01
     13861    jmp near 0922ch                           ; e9 3b 01
    1385713862    test byte [bp+004h], 001h                 ; f6 46 04 01
    13858     jne short 090e0h                          ; 75 f4
     13863    jne short 090ebh                          ; 75 f4
    1385913864    mov ax, word [bp+006h]                    ; 8b 46 06
    1386013865    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1386213867    sal ax, 1                                 ; d1 e0
    1386313868    rcl dx, 1                                 ; d1 d2
    13864     loop 090f5h                               ; e2 fa
     13869    loop 09100h                               ; e2 fa
    1386513870    mov es, [bp-008h]                         ; 8e 46 f8
    1386613871    mov word [es:si], ax                      ; 26 89 04
     
    1387613881    mov dx, word [bp+008h]                    ; 8b 56 08
    1387713882    xor cx, cx                                ; 31 c9
    13878     call 09fa0h                               ; e8 72 0e
     13883    call 09fb0h                               ; e8 77 0e
    1387913884    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1388013885    xor di, di                                ; 31 ff
     
    1389513900    mov bx, ax                                ; 89 c3
    1389613901    xor al, al                                ; 30 c0
    13897     call 08d25h                               ; e8 b8 fb
     13902    call 08d30h                               ; e8 b8 fb
    1389813903    mov al, byte [bp-006h]                    ; 8a 46 fa
    1389913904    xor ah, ah                                ; 30 e4
     
    1390313908    mov ax, 000c0h                            ; b8 c0 00
    1390413909    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13905     call 0a000h                               ; e8 7e 0e
     13910    call 0a010h                               ; e8 83 0e
    1390613911    mov es, [bp-008h]                         ; 8e 46 f8
    1390713912    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1391013915    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1391113916    test ax, ax                               ; 85 c0
    13912     je short 091c0h                           ; 74 27
     13917    je short 091cbh                           ; 74 27
    1391313918    dec ax                                    ; 48
    1391413919    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1392313928    mov ax, si                                ; 89 f0
    1392413929    mov dx, word [bp-008h]                    ; 8b 56 f8
    13925     call 0893eh                               ; e8 73 f7
     13930    call 08949h                               ; e8 73 f7
    1392613931    les bx, [bp-00eh]                         ; c4 5e f2
    1392713932    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
     
    1395013955    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1395113956    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    13952     jne short 0921fh                          ; 75 05
     13957    jne short 0922ah                          ; 75 05
    1395313958    mov ax, strict word 00004h                ; b8 04 00
    13954     jmp short 09221h                          ; eb 02
     13959    jmp short 0922ch                          ; eb 02
    1395513960    xor ax, ax                                ; 31 c0
    1395613961    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1395913964    pop bp                                    ; 5d
    1396013965    retn 0000ch                               ; c2 0c 00
    13961 ahci_port_detect_device_:                    ; 0xf922a LB 0x4e3
     13966ahci_port_detect_device_:                    ; 0xf9235 LB 0x4e3
    1396213967    push bp                                   ; 55
    1396313968    mov bp, sp                                ; 89 e5
     
    1397213977    xor ch, ch                                ; 30 ed
    1397313978    mov bx, cx                                ; 89 cb
    13974     call 08d25h                               ; e8 e0 fa
     13979    call 08d30h                               ; e8 e0 fa
    1397513980    mov dx, strict word 0000eh                ; ba 0e 00
    1397613981    mov ax, strict word 00040h                ; b8 40 00
    13977     call 0166ch                               ; e8 1e 84
     13982    call 0166ch                               ; e8 13 84
    1397813983    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
    1397913984    mov word [bp-016h], ax                    ; 89 46 ea
     
    1404514050    mov bx, strict word 0000fh                ; bb 0f 00
    1404614051    xor cx, cx                                ; 31 c9
    14047     call 087aeh                               ; e8 b5 f4
     14052    call 087b9h                               ; e8 b5 f4
    1404814053    test ax, ax                               ; 85 c0
    14049     jne short 09300h                          ; 75 03
    14050     jmp near 09705h                           ; e9 05 04
     14054    jne short 0930bh                          ; 75 03
     14055    jmp near 09710h                           ; e9 05 04
    1405114056    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1405214057    xor ah, ah                                ; 30 e4
     
    1407714082    mov bx, strict word 0000fh                ; bb 0f 00
    1407814083    xor cx, cx                                ; 31 c9
    14079     call 087aeh                               ; e8 67 f4
     14084    call 087b9h                               ; e8 67 f4
    1408014085    cmp ax, strict word 00001h                ; 3d 01 00
    14081     je short 09300h                           ; 74 b4
     14086    je short 0930bh                           ; 74 b4
    1408214087    push strict byte 00000h                   ; 6a 00
    1408314088    mov bx, strict word 0000fh                ; bb 0f 00
     
    1408514090    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1408614091    mov dx, di                                ; 89 fa
    14087     call 087aeh                               ; e8 53 f4
     14092    call 087b9h                               ; e8 53 f4
    1408814093    cmp ax, strict word 00003h                ; 3d 03 00
    14089     jne short 092fdh                          ; 75 9d
     14094    jne short 09308h                          ; 75 9d
    1409014095    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1409114096    add ax, 00130h                            ; 05 30 01
     
    1411514120    mov byte [bp-008h], al                    ; 88 46 f8
    1411614121    cmp AL, strict byte 004h                  ; 3c 04
    14117     jc short 093aah                           ; 72 03
    14118     jmp near 09705h                           ; e9 5b 03
     14122    jc short 093b5h                           ; 72 03
     14123    jmp near 09710h                           ; e9 5b 03
    1411914124    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1412014125    add ax, 00118h                            ; 05 18 01
     
    1416614171    add cl, 00ch                              ; 80 c1 0c
    1416714172    test dx, dx                               ; 85 d2
    14168     jne short 09470h                          ; 75 54
     14173    jne short 0947bh                          ; 75 54
    1416914174    cmp ax, 00101h                            ; 3d 01 01
    14170     jne short 09470h                          ; 75 4f
     14175    jne short 0947bh                          ; 75 4f
    1417114176    mov es, [bp-016h]                         ; 8e 46 ea
    1417214177    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1418314188    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1418414189    mov dx, es                                ; 8c c2
    14185     call 0893eh                               ; e8 dd f4
     14190    call 08949h                               ; e8 dd f4
    1418614191    mov byte [bp-00ah], cl                    ; 88 4e f6
    1418714192    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14188     je short 09473h                           ; 74 08
     14193    je short 0947eh                           ; 74 08
    1418914194    mov ax, strict word 00001h                ; b8 01 00
    14190     jmp short 09475h                          ; eb 05
    14191     jmp near 09643h                           ; e9 d0 01
     14195    jmp short 09480h                          ; eb 05
     14196    jmp near 0964eh                           ; e9 d0 01
    1419214197    xor ax, ax                                ; 31 c0
    1419314198    mov dl, al                                ; 88 c2
     
    1420514210    mov word [bp-01eh], ax                    ; 89 46 e2
    1420614211    cmp word [bp-014h], 00fffh                ; 81 7e ec ff 0f
    14207     jne short 094c4h                          ; 75 1e
     14212    jne short 094cfh                          ; 75 1e
    1420814213    cmp di, strict byte 0ffffh                ; 83 ff ff
    14209     jne short 094c4h                          ; 75 19
     14214    jne short 094cfh                          ; 75 19
    1421014215    mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
    1421114216    mov word [bp-01eh], ax                    ; 89 46 e2
     
    1424614251    mov al, byte [bp-008h]                    ; 8a 46 f8
    1424714252    cmp AL, strict byte 001h                  ; 3c 01
    14248     jc short 0953fh                           ; 72 0c
    14249     jbe short 09547h                          ; 76 12
     14253    jc short 0954ah                           ; 72 0c
     14254    jbe short 09552h                          ; 76 12
    1425014255    cmp AL, strict byte 003h                  ; 3c 03
    14251     je short 0954fh                           ; 74 16
     14256    je short 0955ah                           ; 74 16
    1425214257    cmp AL, strict byte 002h                  ; 3c 02
    14253     je short 0954bh                           ; 74 0e
    14254     jmp short 09597h                          ; eb 58
     14258    je short 09556h                           ; 74 0e
     14259    jmp short 095a2h                          ; eb 58
    1425514260    test al, al                               ; 84 c0
    14256     jne short 09597h                          ; 75 54
     14261    jne short 095a2h                          ; 75 54
    1425714262    mov DL, strict byte 040h                  ; b2 40
    14258     jmp short 09551h                          ; eb 0a
     14263    jmp short 0955ch                          ; eb 0a
    1425914264    mov DL, strict byte 048h                  ; b2 48
    14260     jmp short 09551h                          ; eb 06
     14265    jmp short 0955ch                          ; eb 06
    1426114266    mov DL, strict byte 050h                  ; b2 50
    14262     jmp short 09551h                          ; eb 02
     14267    jmp short 0955ch                          ; eb 02
    1426314268    mov DL, strict byte 058h                  ; b2 58
    1426414269    mov bl, dl                                ; 88 d3
     
    1426614271    xor bh, bh                                ; 30 ff
    1426714272    mov ax, bx                                ; 89 d8
    14268     call 016ach                               ; e8 4f 81
     14273    call 016ach                               ; e8 44 81
    1426914274    test al, al                               ; 84 c0
    14270     je short 09597h                           ; 74 36
     14275    je short 095a2h                           ; 74 36
    1427114276    mov al, dl                                ; 88 d0
    1427214277    db  0feh, 0c0h
    1427314278    ; inc al                                    ; fe c0
    1427414279    xor ah, ah                                ; 30 e4
    14275     call 016ach                               ; e8 42 81
     14280    call 016ach                               ; e8 37 81
    1427614281    xor ah, ah                                ; 30 e4
    1427714282    mov cx, ax                                ; 89 c1
    1427814283    sal cx, 008h                              ; c1 e1 08
    1427914284    mov al, dl                                ; 88 d0
    14280     call 016ach                               ; e8 36 81
     14285    call 016ach                               ; e8 2b 81
    1428114286    xor ah, ah                                ; 30 e4
    1428214287    add ax, cx                                ; 01 c8
     
    1428514290    add AL, strict byte 002h                  ; 04 02
    1428614291    xor ah, ah                                ; 30 e4
    14287     call 016ach                               ; e8 26 81
     14292    call 016ach                               ; e8 1b 81
    1428814293    xor ah, ah                                ; 30 e4
    1428914294    mov word [bp-02ah], ax                    ; 89 46 d6
    1429014295    mov ax, bx                                ; 89 d8
    14291     call 016ach                               ; e8 1c 81
     14296    call 016ach                               ; e8 11 81
    1429214297    xor ah, ah                                ; 30 e4
    1429314298    mov word [bp-026h], ax                    ; 89 46 da
    14294     jmp short 095a9h                          ; eb 12
     14299    jmp short 095b4h                          ; eb 12
    1429514300    push word [bp-01eh]                       ; ff 76 e2
    1429614301    push word [bp-012h]                       ; ff 76 ee
     
    1429914304    mov dx, ss                                ; 8c d2
    1430014305    lea ax, [bp-02ah]                         ; 8d 46 d6
    14301     call 059cbh                               ; e8 22 c4
     14306    call 059cbh                               ; e8 17 c4
    1430214307    mov bx, 00da0h                            ; bb a0 0d
    1430314308    mov cx, ds                                ; 8c d9
    1430414309    mov ax, strict word 00004h                ; b8 04 00
    14305     call 01923h                               ; e8 6f 83
     14310    call 01923h                               ; e8 64 83
    1430614311    push word [bp-01eh]                       ; ff 76 e2
    1430714312    push word [bp-012h]                       ; ff 76 ee
     
    1432414329    push 00cd6h                               ; 68 d6 0c
    1432514330    push strict byte 00004h                   ; 6a 04
    14326     call 01966h                               ; e8 81 83
     14331    call 01966h                               ; e8 76 83
    1432714332    add sp, strict byte 0001ch                ; 83 c4 1c
    1432814333    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    1435514360    mov dx, strict word 00075h                ; ba 75 00
    1435614361    mov ax, strict word 00040h                ; b8 40 00
    14357     call 01650h                               ; e8 1f 80
     14362    call 01650h                               ; e8 14 80
    1435814363    mov bl, al                                ; 88 c3
    1435914364    db  0feh, 0c3h
     
    1436214367    mov dx, strict word 00075h                ; ba 75 00
    1436314368    mov ax, strict word 00040h                ; b8 40 00
    14364     call 0165eh                               ; e8 1e 80
    14365     jmp near 096f4h                           ; e9 b1 00
     14369    call 0165eh                               ; e8 13 80
     14370    jmp near 096ffh                           ; e9 b1 00
    1436614371    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14367     jne short 0969dh                          ; 75 54
     14372    jne short 096a8h                          ; 75 54
    1436814373    cmp ax, 00101h                            ; 3d 01 01
    14369     jne short 0969dh                          ; 75 4f
     14374    jne short 096a8h                          ; 75 4f
    1437014375    mov es, [bp-016h]                         ; 8e 46 ea
    1437114376    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1438214387    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1438314388    mov dx, es                                ; 8c c2
    14384     call 0893eh                               ; e8 b0 f2
     14389    call 08949h                               ; e8 b0 f2
    1438514390    mov byte [bp-00ah], cl                    ; 88 4e f6
    1438614391    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14387     je short 0969fh                           ; 74 07
     14392    je short 096aah                           ; 74 07
    1438814393    mov dx, strict word 00001h                ; ba 01 00
    14389     jmp short 096a1h                          ; eb 04
    14390     jmp short 096f4h                          ; eb 55
     14394    jmp short 096ach                          ; eb 04
     14395    jmp short 096ffh                          ; eb 55
    1439114396    xor dx, dx                                ; 31 d2
    1439214397    mov bl, byte [bp-008h]                    ; 8a 5e f8
     
    1442714432    pop bp                                    ; 5d
    1442814433    retn                                      ; c3
    14429 ahci_mem_alloc_:                             ; 0xf970d LB 0x43
     14434ahci_mem_alloc_:                             ; 0xf9718 LB 0x43
    1443014435    push bp                                   ; 55
    1443114436    mov bp, sp                                ; 89 e5
     
    1443714442    mov dx, 00413h                            ; ba 13 04
    1443814443    xor ax, ax                                ; 31 c0
    14439     call 0166ch                               ; e8 4f 7f
     14444    call 0166ch                               ; e8 44 7f
    1444014445    test ax, ax                               ; 85 c0
    14441     je short 09746h                           ; 74 25
     14446    je short 09751h                           ; 74 25
    1444214447    dec ax                                    ; 48
    1444314448    mov bx, ax                                ; 89 c3
     
    1444614451    sal ax, 1                                 ; d1 e0
    1444714452    rcl dx, 1                                 ; d1 d2
    14448     loop 09729h                               ; e2 fa
     14453    loop 09734h                               ; e2 fa
    1444914454    mov si, ax                                ; 89 c6
    1445014455    mov di, dx                                ; 89 d7
     
    1445214457    shr di, 1                                 ; d1 ef
    1445314458    rcr si, 1                                 ; d1 de
    14454     loop 09736h                               ; e2 fa
     14459    loop 09741h                               ; e2 fa
    1445514460    mov dx, 00413h                            ; ba 13 04
    1445614461    xor ax, ax                                ; 31 c0
    14457     call 0167ah                               ; e8 36 7f
     14462    call 0167ah                               ; e8 2b 7f
    1445814463    mov ax, si                                ; 89 f0
    1445914464    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1446514470    pop bp                                    ; 5d
    1446614471    retn                                      ; c3
    14467 ahci_hba_init_:                              ; 0xf9750 LB 0x16d
     14472ahci_hba_init_:                              ; 0xf975b LB 0x16d
    1446814473    push bp                                   ; 55
    1446914474    mov bp, sp                                ; 89 e5
     
    1447714482    mov dx, strict word 0000eh                ; ba 0e 00
    1447814483    mov ax, strict word 00040h                ; b8 40 00
    14479     call 0166ch                               ; e8 06 7f
     14484    call 0166ch                               ; e8 fb 7e
    1448014485    mov bx, 00122h                            ; bb 22 01
    1448114486    mov di, ax                                ; 89 c7
     
    1449414499    shr eax, 010h                             ; 66 c1 e8 10
    1449514500    xchg dx, ax                               ; 92
    14496     call 0970dh                               ; e8 83 ff
     14501    call 09718h                               ; e8 83 ff
    1449714502    mov word [bp-010h], ax                    ; 89 46 f0
    1449814503    test ax, ax                               ; 85 c0
    14499     jne short 09794h                          ; 75 03
    14500     jmp near 0989ch                           ; e9 08 01
     14504    jne short 0979fh                          ; 75 03
     14505    jmp near 098a7h                           ; e9 08 01
    1450114506    mov ax, word [bp-010h]                    ; 8b 46 f0
    1450214507    mov es, di                                ; 8e c7
     
    1454814553    xchg dx, ax                               ; 92
    1454914554    test AL, strict byte 001h                 ; a8 01
    14550     jne short 097eeh                          ; 75 de
     14555    jne short 097f9h                          ; 75 de
    1455114556    xor ax, ax                                ; 31 c0
    1455214557    xor cx, cx                                ; 31 c9
     
    1456614571    mov bx, strict word 0001fh                ; bb 1f 00
    1456714572    xor cx, cx                                ; 31 c9
    14568     call 087aeh                               ; e8 7a ef
     14573    call 087b9h                               ; e8 7a ef
    1456914574    db  0feh, 0c0h
    1457014575    ; inc al                                    ; fe c0
    1457114576    mov byte [bp-00ch], al                    ; 88 46 f4
    1457214577    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    14573     jmp short 09860h                          ; eb 21
     14578    jmp short 0986bh                          ; eb 21
    1457414579    xor al, al                                ; 30 c0
    1457514580    test al, al                               ; 84 c0
    14576     je short 09857h                           ; 74 12
     14581    je short 09862h                           ; 74 12
    1457714582    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    1457814583    xor bh, bh                                ; 30 ff
    1457914584    xor ax, ax                                ; 31 c0
    1458014585    mov dx, word [bp-010h]                    ; 8b 56 f0
    14581     call 0922ah                               ; e8 d8 f9
     14586    call 09235h                               ; e8 d8 f9
    1458214587    dec byte [bp-00ch]                        ; fe 4e f4
    14583     je short 0989ah                           ; 74 43
     14588    je short 098a5h                           ; 74 43
    1458414589    inc byte [bp-00eh]                        ; fe 46 f2
    1458514590    cmp byte [bp-00eh], 020h                  ; 80 7e f2 20
    14586     jnc short 0989ah                          ; 73 3a
     14591    jnc short 098a5h                          ; 73 3a
    1458714592    mov cl, byte [bp-00eh]                    ; 8a 4e f2
    1458814593    xor ch, ch                                ; 30 ed
    1458914594    mov bx, strict word 00001h                ; bb 01 00
    1459014595    xor di, di                                ; 31 ff
    14591     jcxz 09872h                               ; e3 06
     14596    jcxz 0987dh                               ; e3 06
    1459214597    sal bx, 1                                 ; d1 e3
    1459314598    rcl di, 1                                 ; d1 d7
    14594     loop 0986ch                               ; e2 fa
     14599    loop 09877h                               ; e2 fa
    1459514600    mov ax, strict word 0000ch                ; b8 0c 00
    1459614601    xor cx, cx                                ; 31 c9
     
    1460814613    xchg dx, ax                               ; 92
    1460914614    test dx, di                               ; 85 fa
    14610     jne short 09896h                          ; 75 04
     14615    jne short 098a1h                          ; 75 04
    1461114616    test ax, bx                               ; 85 d8
    14612     je short 0983fh                           ; 74 a9
     14617    je short 0984ah                           ; 74 a9
    1461314618    mov AL, strict byte 001h                  ; b0 01
    14614     jmp short 09841h                          ; eb a7
     14619    jmp short 0984ch                          ; eb a7
    1461514620    xor ax, ax                                ; 31 c0
    1461614621    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1462214627    pop bp                                    ; 5d
    1462314628    retn                                      ; c3
    14624     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0a5h, 099h, 083h, 099h, 089h, 099h, 08fh, 099h, 095h
    14625     db  099h, 09bh, 099h, 0a1h, 099h, 0a5h, 099h
    14626 _ahci_init:                                  ; 0xf98bd LB 0x119
     14629    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0b0h, 099h, 08eh, 099h, 094h, 099h, 09ah, 099h, 0a0h
     14630    db  099h, 0a6h, 099h, 0ach, 099h, 0b0h, 099h
     14631_ahci_init:                                  ; 0xf98c8 LB 0x119
    1462714632    push bp                                   ; 55
    1462814633    mov bp, sp                                ; 89 e5
     
    1463114636    mov ax, 00601h                            ; b8 01 06
    1463214637    mov dx, strict word 00001h                ; ba 01 00
    14633     call 09df1h                               ; e8 24 05
     14638    call 09dfch                               ; e8 24 05
    1463414639    mov dx, ax                                ; 89 c2
    1463514640    cmp ax, strict word 0ffffh                ; 3d ff ff
    14636     je short 09920h                           ; 74 4c
     14641    je short 0992bh                           ; 74 4c
    1463714642    xor al, al                                ; 30 c0
    1463814643    shr ax, 008h                              ; c1 e8 08
     
    1464214647    xor ah, ah                                ; 30 e4
    1464314648    mov bx, strict word 00034h                ; bb 34 00
    14644     call 09df9h                               ; e8 10 05
     14649    call 09e04h                               ; e8 10 05
    1464514650    mov cl, al                                ; 88 c1
    1464614651    test cl, cl                               ; 84 c9
    14647     je short 09923h                           ; 74 34
     14652    je short 0992eh                           ; 74 34
    1464814653    mov bl, cl                                ; 88 cb
    1464914654    xor bh, bh                                ; 30 ff
     
    1465614661    mov dx, word [bp-010h]                    ; 8b 56 f0
    1465714662    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14658     call 09df9h                               ; e8 eb 04
     14663    call 09e04h                               ; e8 eb 04
    1465914664    cmp AL, strict byte 012h                  ; 3c 12
    14660     je short 09923h                           ; 74 11
     14665    je short 0992eh                           ; 74 11
    1466114666    mov bl, cl                                ; 88 cb
    1466214667    db  0feh, 0c3h
     
    1466514670    mov dx, word [bp-010h]                    ; 8b 56 f0
    1466614671    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14667     jmp short 098e6h                          ; eb c6
    14668     jmp near 099d0h                           ; e9 ad 00
     14672    jmp short 098f1h                          ; eb c6
     14673    jmp near 099dbh                           ; e9 ad 00
    1466914674    test cl, cl                               ; 84 c9
    14670     je short 09920h                           ; 74 f9
     14675    je short 0992bh                           ; 74 f9
    1467114676    add cl, 002h                              ; 80 c1 02
    1467214677    mov bl, cl                                ; 88 cb
     
    1468014685    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1468114686    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14682     call 09df9h                               ; e8 b0 04
     14687    call 09e04h                               ; e8 b0 04
    1468314688    cmp AL, strict byte 010h                  ; 3c 10
    14684     jne short 09920h                          ; 75 d3
     14689    jne short 0992bh                          ; 75 d3
    1468514690    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1468614691    mov bl, cl                                ; 88 cb
     
    1468914694    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1469014695    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14691     call 09e27h                               ; e8 c6 04
     14696    call 09e32h                               ; e8 c6 04
    1469214697    mov dx, ax                                ; 89 c2
    1469314698    and ax, strict word 0000fh                ; 25 0f 00
    1469414699    sub ax, strict word 00004h                ; 2d 04 00
    1469514700    cmp ax, strict word 0000bh                ; 3d 0b 00
    14696     jnbe short 099a5h                         ; 77 37
     14701    jnbe short 099b0h                         ; 77 37
    1469714702    push CS                                   ; 0e
    1469814703    pop ES                                    ; 07
    1469914704    mov cx, strict word 00008h                ; b9 08 00
    14700     mov di, 098a6h                            ; bf a6 98
     14705    mov di, 098b1h                            ; bf b1 98
    1470114706    repne scasb                               ; f2 ae
    1470214707    sal cx, 1                                 ; d1 e1
    1470314708    mov di, cx                                ; 89 cf
    14704     mov ax, word [cs:di-06753h]               ; 2e 8b 85 ad 98
     14709    mov ax, word [cs:di-06748h]               ; 2e 8b 85 b8 98
    1470514710    jmp ax                                    ; ff e0
    1470614711    mov byte [bp-004h], 010h                  ; c6 46 fc 10
    14707     jmp short 099a5h                          ; eb 1c
     14712    jmp short 099b0h                          ; eb 1c
    1470814713    mov byte [bp-004h], 014h                  ; c6 46 fc 14
    14709     jmp short 099a5h                          ; eb 16
     14714    jmp short 099b0h                          ; eb 16
    1471014715    mov byte [bp-004h], 018h                  ; c6 46 fc 18
    14711     jmp short 099a5h                          ; eb 10
     14716    jmp short 099b0h                          ; eb 10
    1471214717    mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
    14713     jmp short 099a5h                          ; eb 0a
     14718    jmp short 099b0h                          ; eb 0a
    1471414719    mov byte [bp-004h], 020h                  ; c6 46 fc 20
    14715     jmp short 099a5h                          ; eb 04
     14720    jmp short 099b0h                          ; eb 04
    1471614721    mov byte [bp-004h], 024h                  ; c6 46 fc 24
    1471714722    mov cx, dx                                ; 89 d1
     
    1472014725    mov al, byte [bp-004h]                    ; 8a 46 fc
    1472114726    test al, al                               ; 84 c0
    14722     je short 099d0h                           ; 74 1c
     14727    je short 099dbh                           ; 74 1c
    1472314728    mov bl, al                                ; 88 c3
    1472414729    xor bh, bh                                ; 30 ff
     
    1472714732    mov al, byte [bp-008h]                    ; 8a 46 f8
    1472814733    xor ah, ah                                ; 30 e4
    14729     call 09e51h                               ; e8 8c 04
     14734    call 09e5ch                               ; e8 8c 04
    1473014735    test AL, strict byte 001h                 ; a8 01
    14731     je short 099d0h                           ; 74 07
     14736    je short 099dbh                           ; 74 07
    1473214737    and AL, strict byte 0f0h                  ; 24 f0
    1473314738    add ax, cx                                ; 01 c8
    14734     call 09750h                               ; e8 80 fd
     14739    call 0975bh                               ; e8 80 fd
    1473514740    lea sp, [bp-002h]                         ; 8d 66 fe
    1473614741    pop di                                    ; 5f
    1473714742    pop bp                                    ; 5d
    1473814743    retn                                      ; c3
    14739 apm_out_str_:                                ; 0xf99d6 LB 0x39
     14744apm_out_str_:                                ; 0xf99e1 LB 0x39
    1474014745    push bp                                   ; 55
    1474114746    mov bp, sp                                ; 89 e5
     
    1474314748    mov bx, ax                                ; 89 c3
    1474414749    cmp byte [bx], 000h                       ; 80 3f 00
    14745     je short 099ebh                           ; 74 0a
     14750    je short 099f6h                           ; 74 0a
    1474614751    mov al, byte [bx]                         ; 8a 07
    1474714752    out DX, AL                                ; ee
     
    1475014755    db  00ah, 0c0h
    1475114756    ; or al, al                                 ; 0a c0
    14752     jne short 099e3h                          ; 75 f8
     14757    jne short 099eeh                          ; 75 f8
    1475314758    lea sp, [bp-002h]                         ; 8d 66 fe
    1475414759    pop bx                                    ; 5b
    1475514760    pop bp                                    ; 5d
    1475614761    retn                                      ; c3
    14757     xor byte [bp+si-06548h], bl               ; 30 9a b8 9a
    14758     inc dx                                    ; 42
    14759     call far 09ab8h:09a5dh                    ; 9a 5d 9a b8 9a
    14760     mov byte [bp+si-06548h], bl               ; 88 9a b8 9a
    14761     mov si, 08d9ah                            ; be 9a 8d
    14762     call far 09a8dh:09a8dh                    ; 9a 8d 9a 8d 9a
    14763     std                                       ; fd
    14764     call far 09a8dh:09a8dh                    ; 9a 8d 9a 8d 9a
    14765     db  0f6h
     14762    cmp bx, word [bp+si-0653dh]               ; 3b 9a c3 9a
     14763    dec bp                                    ; 4d
     14764    call far 09ac3h:09a68h                    ; 9a 68 9a c3 9a
     14765    xchg bx, ax                               ; 93
     14766    call far 09ac9h:09ac3h                    ; 9a c3 9a c9 9a
     14767    cbw                                       ; 98
     14768    call far 09a98h:09a98h                    ; 9a 98 9a 98 9a
     14769    or byte [bp+di-06568h], bl                ; 08 9b 98 9a
     14770    cbw                                       ; 98
    1476614771    db  09ah
    14767 _apm_function:                               ; 0xf9a0f LB 0xf3
     14772    db  001h
     14773    wait                                      ; 9b
     14774_apm_function:                               ; 0xf9a1a LB 0xf3
    1476814775    push bp                                   ; 55
    1476914776    mov bp, sp                                ; 89 e5
     
    1477314780    xor ah, ah                                ; 30 e4
    1477414781    cmp ax, strict word 0000eh                ; 3d 0e 00
    14775     jnbe short 09a8dh                         ; 77 6c
     14782    jnbe short 09a98h                         ; 77 6c
    1477614783    mov bx, ax                                ; 89 c3
    1477714784    add bx, ax                                ; 01 c3
    1477814785    mov dx, word [bp+018h]                    ; 8b 56 18
    1477914786    or dl, 001h                               ; 80 ca 01
    14780     jmp word [cs:bx-0660fh]                   ; 2e ff a7 f1 99
     14787    jmp word [cs:bx-06604h]                   ; 2e ff a7 fc 99
    1478114788    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1478214789    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1478314790    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    14784     jmp near 09ab8h                           ; e9 76 00
     14791    jmp near 09ac3h                           ; e9 76 00
    1478514792    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    14786     mov word [bp+00ch], 0a074h                ; c7 46 0c 74 a0
     14793    mov word [bp+00ch], 0a084h                ; c7 46 0c 84 a0
    1478714794    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1478814795    mov ax, strict word 0fff0h                ; b8 f0 ff
    1478914796    mov word [bp+006h], ax                    ; 89 46 06
    1479014797    mov word [bp+004h], ax                    ; 89 46 04
    14791     jmp near 09ab8h                           ; e9 5b 00
     14798    jmp near 09ac3h                           ; e9 5b 00
    1479214799    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1479314800    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1480214809    mov si, ax                                ; 89 c6
    1480314810    sal esi, 010h                             ; 66 c1 e6 10
    14804     jmp near 09ab8h                           ; e9 30 00
     14811    jmp near 09ac3h                           ; e9 30 00
    1480514812    sti                                       ; fb
    1480614813    hlt                                       ; f4
    14807     jmp near 09ab8h                           ; e9 2b 00
     14814    jmp near 09ac3h                           ; e9 2b 00
    1480814815    mov bx, 00da0h                            ; bb a0 0d
    1480914816    mov cx, ds                                ; 8c d9
    1481014817    mov ax, strict word 00004h                ; b8 04 00
    14811     call 01923h                               ; e8 8b 7e
     14818    call 01923h                               ; e8 80 7e
    1481214819    push word [bp+00ch]                       ; ff 76 0c
    1481314820    push word [bp+012h]                       ; ff 76 12
    1481414821    push 00d29h                               ; 68 29 0d
    1481514822    push strict byte 00004h                   ; 6a 04
    14816     call 01966h                               ; e8 c0 7e
     14823    call 01966h                               ; e8 b5 7e
    1481714824    add sp, strict byte 00008h                ; 83 c4 08
    1481814825    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1482614833    retn                                      ; c3
    1482714834    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    14828     je short 09ae3h                           ; 74 1f
     14835    je short 09aeeh                           ; 74 1f
    1482914836    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    14830     je short 09adbh                           ; 74 11
     14837    je short 09ae6h                           ; 74 11
    1483114838    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    14832     jne short 09aebh                          ; 75 1b
    14833     mov dx, 08900h                            ; ba 00 89
     14839    jne short 09af6h                          ; 75 1b
     14840    mov dx, 0040fh                            ; ba 0f 04
    1483414841    mov ax, 00d10h                            ; b8 10 0d
    14835     call 099d6h                               ; e8 fd fe
    14836     jmp short 09ab8h                          ; eb dd
    14837     mov dx, 08900h                            ; ba 00 89
     14842    call 099e1h                               ; e8 fd fe
     14843    jmp short 09ac3h                          ; eb dd
     14844    mov dx, 0040fh                            ; ba 0f 04
    1483814845    mov ax, 00d18h                            ; b8 18 0d
    14839     jmp short 09ad6h                          ; eb f3
    14840     mov dx, 08900h                            ; ba 00 89
     14846    jmp short 09ae1h                          ; eb f3
     14847    mov dx, 0040fh                            ; ba 0f 04
    1484114848    mov ax, 00d20h                            ; b8 20 0d
    14842     jmp short 09ad6h                          ; eb eb
     14849    jmp short 09ae1h                          ; eb eb
    1484314850    or ah, 00ah                               ; 80 cc 0a
    1484414851    mov word [bp+012h], ax                    ; 89 46 12
    1484514852    mov word [bp+018h], dx                    ; 89 56 18
    14846     jmp short 09ab8h                          ; eb c2
     14853    jmp short 09ac3h                          ; eb c2
    1484714854    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    14848     jmp short 09ab8h                          ; eb bb
     14855    jmp short 09ac3h                          ; eb bb
    1484914856    or ah, 080h                               ; 80 cc 80
    14850     jmp short 09aeeh                          ; eb ec
    14851 pci16_select_reg_:                           ; 0xf9b02 LB 0x24
     14857    jmp short 09af9h                          ; eb ec
     14858pci16_select_reg_:                           ; 0xf9b0d LB 0x24
    1485214859    push bp                                   ; 55
    1485314860    mov bp, sp                                ; 89 e5
     
    1486614873    pop bp                                    ; 5d
    1486714874    retn                                      ; c3
    14868 pci16_find_device_:                          ; 0xf9b26 LB 0xf9
     14875pci16_find_device_:                          ; 0xf9b31 LB 0xf9
    1486914876    push bp                                   ; 55
    1487014877    mov bp, sp                                ; 89 e5
     
    1488014887    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1488114888    test bl, 007h                             ; f6 c3 07
    14882     jne short 09b6eh                          ; 75 2d
     14889    jne short 09b79h                          ; 75 2d
    1488314890    mov dx, strict word 0000eh                ; ba 0e 00
    1488414891    mov ax, bx                                ; 89 d8
    14885     call 09b02h                               ; e8 b9 ff
     14892    call 09b0dh                               ; e8 b9 ff
    1488614893    mov dx, 00cfeh                            ; ba fe 0c
    1488714894    in AL, DX                                 ; ec
     
    1489014897    mov byte [bp-006h], al                    ; 88 46 fa
    1489114898    cmp AL, strict byte 0ffh                  ; 3c ff
    14892     jne short 09b5ch                          ; 75 06
     14899    jne short 09b67h                          ; 75 06
    1489314900    add bx, strict byte 00008h                ; 83 c3 08
    14894     jmp near 09befh                           ; e9 93 00
     14901    jmp near 09bfah                           ; e9 93 00
    1489514902    test byte [bp-006h], 080h                 ; f6 46 fa 80
    14896     je short 09b69h                           ; 74 07
     14903    je short 09b74h                           ; 74 07
    1489714904    mov word [bp-010h], strict word 00001h    ; c7 46 f0 01 00
    14898     jmp short 09b6eh                          ; eb 05
     14905    jmp short 09b79h                          ; eb 05
    1489914906    mov word [bp-010h], strict word 00008h    ; c7 46 f0 08 00
    1490014907    mov al, byte [bp-006h]                    ; 8a 46 fa
    1490114908    and AL, strict byte 007h                  ; 24 07
    1490214909    cmp AL, strict byte 001h                  ; 3c 01
    14903     jne short 09b96h                          ; 75 1f
     14910    jne short 09ba1h                          ; 75 1f
    1490414911    mov ax, bx                                ; 89 d8
    1490514912    shr ax, 008h                              ; c1 e8 08
    1490614913    test ax, ax                               ; 85 c0
    14907     jne short 09b96h                          ; 75 16
     14914    jne short 09ba1h                          ; 75 16
    1490814915    mov dx, strict word 0001ah                ; ba 1a 00
    1490914916    mov ax, bx                                ; 89 d8
    14910     call 09b02h                               ; e8 7a ff
     14917    call 09b0dh                               ; e8 7a ff
    1491114918    mov dx, 00cfeh                            ; ba fe 0c
    1491214919    in AL, DX                                 ; ec
     
    1491414921    ; sub ah, ah                                ; 2a e4
    1491514922    cmp al, byte [bp-008h]                    ; 3a 46 f8
    14916     jbe short 09b96h                          ; 76 03
     14923    jbe short 09ba1h                          ; 76 03
    1491714924    mov byte [bp-008h], al                    ; 88 46 f8
    1491814925    test di, di                               ; 85 ff
    14919     je short 09b9fh                           ; 74 05
     14926    je short 09baah                           ; 74 05
    1492014927    mov dx, strict word 00008h                ; ba 08 00
    14921     jmp short 09ba1h                          ; eb 02
     14928    jmp short 09bach                          ; eb 02
    1492214929    xor dx, dx                                ; 31 d2
    1492314930    mov ax, bx                                ; 89 d8
    14924     call 09b02h                               ; e8 5c ff
     14931    call 09b0dh                               ; e8 5c ff
    1492514932    mov dx, 00cfch                            ; ba fc 0c
    1492614933    in eax, DX                                ; 66 ed
     
    1493314940    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    1493414941    test di, di                               ; 85 ff
    14935     je short 09bd0h                           ; 74 0f
     14942    je short 09bdbh                           ; 74 0f
    1493614943    mov cx, strict word 00008h                ; b9 08 00
    1493714944    shr dx, 1                                 ; d1 ea
    1493814945    rcr ax, 1                                 ; d1 d8
    14939     loop 09bc4h                               ; e2 fa
     14946    loop 09bcfh                               ; e2 fa
    1494014947    mov word [bp-00ah], ax                    ; 89 46 f6
    1494114948    mov word [bp-00ch], dx                    ; 89 56 f4
    1494214949    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1494314950    cmp ax, word [bp-014h]                    ; 3b 46 ec
    14944     jne short 09be0h                          ; 75 08
     14951    jne short 09bebh                          ; 75 08
    1494514952    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1494614953    cmp ax, word [bp-012h]                    ; 3b 46 ee
    14947     je short 09be6h                           ; 74 06
     14954    je short 09bf1h                           ; 74 06
    1494814955    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    14949     je short 09bech                           ; 74 06
     14956    je short 09bf7h                           ; 74 06
    1495014957    dec si                                    ; 4e
    1495114958    cmp si, strict byte 0ffffh                ; 83 fe ff
    14952     je short 09c00h                           ; 74 14
     14959    je short 09c0bh                           ; 74 14
    1495314960    add bx, word [bp-010h]                    ; 03 5e f0
    1495414961    mov dx, bx                                ; 89 da
     
    1495714964    xor ah, ah                                ; 30 e4
    1495814965    cmp dx, ax                                ; 39 c2
    14959     jnbe short 09c00h                         ; 77 03
    14960     jmp near 09b3ch                           ; e9 3c ff
     14966    jnbe short 09c0bh                         ; 77 03
     14967    jmp near 09b47h                           ; e9 3c ff
    1496114968    cmp si, strict byte 0ffffh                ; 83 fe ff
    14962     jne short 09c09h                          ; 75 04
     14969    jne short 09c14h                          ; 75 04
    1496314970    mov ax, bx                                ; 89 d8
    14964     jmp short 09c0ch                          ; eb 03
     14971    jmp short 09c17h                          ; eb 03
    1496514972    mov ax, strict word 0ffffh                ; b8 ff ff
    1496614973    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1496914976    pop bp                                    ; 5d
    1497014977    retn                                      ; c3
    14971     add byte [di-062e7h], bl                  ; 00 9d 19 9d
    14972     sub bx, word [di-062c1h]                  ; 2b 9d 3f 9d
    14973     push cx                                   ; 51
     14978    or bx, word [di-062dch]                   ; 0b 9d 24 9d
     14979    db  036h, 09dh
     14980    ; ss popfw                                  ; 36 9d
     14981    dec dx                                    ; 4a
    1497414982    popfw                                     ; 9d
    14975     db  064h, 09dh
    14976     ; fs popfw                                  ; 64 9d
    14977 _pci16_function:                             ; 0xf9c1f LB 0x1d2
     14983    pop sp                                    ; 5c
     14984    popfw                                     ; 9d
     14985    outsw                                     ; 6f
     14986    popfw                                     ; 9d
     14987_pci16_function:                             ; 0xf9c2a LB 0x1d2
    1497814988    push bp                                   ; 55
    1497914989    mov bp, sp                                ; 89 e5
     
    1498914999    xor ah, ah                                ; 30 e4
    1499015000    cmp bx, strict byte 00003h                ; 83 fb 03
    14991     jc short 09c51h                           ; 72 13
    14992     jbe short 09ca4h                          ; 76 64
     15001    jc short 09c5ch                           ; 72 13
     15002    jbe short 09cafh                          ; 76 64
    1499315003    cmp bx, strict byte 0000eh                ; 83 fb 0e
    14994     je short 09cach                           ; 74 67
     15004    je short 09cb7h                           ; 74 67
    1499515005    cmp bx, strict byte 00008h                ; 83 fb 08
    14996     jc short 09c5bh                           ; 72 11
     15006    jc short 09c66h                           ; 72 11
    1499715007    cmp bx, strict byte 0000dh                ; 83 fb 0d
    14998     jbe short 09cafh                          ; 76 60
    14999     jmp short 09c5bh                          ; eb 0a
     15008    jbe short 09cbah                          ; 76 60
     15009    jmp short 09c66h                          ; eb 0a
    1500015010    cmp bx, strict byte 00002h                ; 83 fb 02
    15001     je short 09c7ah                           ; 74 24
     15011    je short 09c85h                           ; 74 24
    1500215012    cmp bx, strict byte 00001h                ; 83 fb 01
    15003     je short 09c5eh                           ; 74 03
    15004     jmp near 09dbdh                           ; e9 5f 01
     15013    je short 09c69h                           ; 74 03
     15014    jmp near 09dc8h                           ; e9 5f 01
    1500515015    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1500615016    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1500815018    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1500915019    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    15010     jmp near 09deah                           ; e9 70 01
     15020    jmp near 09df5h                           ; e9 70 01
    1501115021    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    15012     jne short 09c86h                          ; 75 06
     15022    jne short 09c91h                          ; 75 06
    1501315023    or ah, 083h                               ; 80 cc 83
    15014     jmp near 09de3h                           ; e9 5d 01
     15024    jmp near 09deeh                           ; e9 5d 01
    1501515025    mov bx, word [bp+008h]                    ; 8b 5e 08
    1501615026    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1501715027    mov ax, word [bp+018h]                    ; 8b 46 18
    1501815028    xor cx, cx                                ; 31 c9
    15019     call 09b26h                               ; e8 92 fe
     15029    call 09b31h                               ; e8 92 fe
    1502015030    cmp ax, strict word 0ffffh                ; 3d ff ff
    15021     jne short 09ca6h                          ; 75 0d
     15031    jne short 09cb1h                          ; 75 0d
    1502215032    mov ax, word [bp+020h]                    ; 8b 46 20
    1502315033    xor ah, ah                                ; 30 e4
    1502415034    or ah, 086h                               ; 80 cc 86
    15025     jmp near 09de3h                           ; e9 3f 01
    15026     jmp short 09cb1h                          ; eb 0b
     15035    jmp near 09deeh                           ; e9 3f 01
     15036    jmp short 09cbch                          ; eb 0b
    1502715037    mov word [bp+014h], ax                    ; 89 46 14
    15028     jmp near 09deah                           ; e9 3e 01
    15029     jmp near 09d78h                           ; e9 c9 00
    15030     jmp short 09cd6h                          ; eb 25
     15038    jmp near 09df5h                           ; e9 3e 01
     15039    jmp near 09d83h                           ; e9 c9 00
     15040    jmp short 09ce1h                          ; eb 25
    1503115041    mov bx, word [bp+008h]                    ; 8b 5e 08
    1503215042    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1503315043    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1503415044    mov cx, strict word 00001h                ; b9 01 00
    15035     call 09b26h                               ; e8 66 fe
     15045    call 09b31h                               ; e8 66 fe
    1503615046    cmp ax, strict word 0ffffh                ; 3d ff ff
    15037     jne short 09cd0h                          ; 75 0b
     15047    jne short 09cdbh                          ; 75 0b
    1503815048    mov ax, word [bp+020h]                    ; 8b 46 20
    1503915049    xor ah, ah                                ; 30 e4
    1504015050    or ah, 086h                               ; 80 cc 86
    15041     jmp near 09de3h                           ; e9 13 01
     15051    jmp near 09deeh                           ; e9 13 01
    1504215052    mov word [bp+014h], ax                    ; 89 46 14
    15043     jmp near 09deah                           ; e9 14 01
     15053    jmp near 09df5h                           ; e9 14 01
    1504415054    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    15045     jc short 09ce3h                           ; 72 06
     15055    jc short 09ceeh                           ; 72 06
    1504615056    or ah, 087h                               ; 80 cc 87
    15047     jmp near 09de3h                           ; e9 00 01
     15057    jmp near 09deeh                           ; e9 00 01
    1504815058    mov dx, word [bp+004h]                    ; 8b 56 04
    1504915059    mov ax, word [bp+014h]                    ; 8b 46 14
    15050     call 09b02h                               ; e8 16 fe
     15060    call 09b0dh                               ; e8 16 fe
    1505115061    mov bx, word [bp+020h]                    ; 8b 5e 20
    1505215062    xor bh, bh                                ; 30 ff
    1505315063    sub bx, strict byte 00008h                ; 83 eb 08
    1505415064    cmp bx, strict byte 00005h                ; 83 fb 05
    15055     jnbe short 09d61h                         ; 77 68
     15065    jnbe short 09d6ch                         ; 77 68
    1505615066    add bx, bx                                ; 01 db
    15057     jmp word [cs:bx-063edh]                   ; 2e ff a7 13 9c
     15067    jmp word [cs:bx-063e2h]                   ; 2e ff a7 1e 9c
    1505815068    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1505915069    xor bl, bl                                ; 30 db
     
    1506615076    or bx, ax                                 ; 09 c3
    1506715077    mov word [bp+01ch], bx                    ; 89 5e 1c
    15068     jmp short 09d61h                          ; eb 48
     15078    jmp short 09d6ch                          ; eb 48
    1506915079    mov dx, word [bp+004h]                    ; 8b 56 04
    1507015080    xor dh, dh                                ; 30 f6
     
    1507315083    in ax, DX                                 ; ed
    1507415084    mov word [bp+01ch], ax                    ; 89 46 1c
    15075     jmp short 09d61h                          ; eb 36
     15085    jmp short 09d6ch                          ; eb 36
    1507615086    mov dx, 00cfch                            ; ba fc 0c
    1507715087    in eax, DX                                ; 66 ed
     
    1508215092    mov word [bp+01ch], ax                    ; 89 46 1c
    1508315093    mov word [bp+01eh], dx                    ; 89 56 1e
    15084     jmp short 09d61h                          ; eb 22
     15094    jmp short 09d6ch                          ; eb 22
    1508515095    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1508615096    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1508915099    add dx, 00cfch                            ; 81 c2 fc 0c
    1509015100    out DX, AL                                ; ee
    15091     jmp short 09d61h                          ; eb 10
     15101    jmp short 09d6ch                          ; eb 10
    1509215102    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1509315103    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1509615106    add dx, 00cfch                            ; 81 c2 fc 0c
    1509715107    out DX, ax                                ; ef
    15098     jmp near 09deah                           ; e9 86 00
     15108    jmp near 09df5h                           ; e9 86 00
    1509915109    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1510015110    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1510515115    ; mov ax, cx                                ; 8b c1
    1510615116    out DX, eax                               ; 66 ef
    15107     jmp short 09deah                          ; eb 72
     15117    jmp short 09df5h                          ; eb 72
    1510815118    mov bx, word [bp+004h]                    ; 8b 5e 04
    1510915119    mov es, [bp+026h]                         ; 8e 46 26
     
    1511215122    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1511315123    cmp cx, word [es:bx]                      ; 26 3b 0f
    15114     jbe short 09d9eh                          ; 76 11
     15124    jbe short 09da9h                          ; 76 11
    1511515125    mov ax, word [bp+020h]                    ; 8b 46 20
    1511615126    xor ah, ah                                ; 30 e4
     
    1511815128    mov word [bp+020h], ax                    ; 89 46 20
    1511915129    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15120     jmp short 09db2h                          ; eb 14
     15130    jmp short 09dbdh                          ; eb 14
    1512115131    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1512215132    mov si, 0f2c0h                            ; be c0 f2
     
    1513015140    les bx, [bp-008h]                         ; c4 5e f8
    1513115141    mov word [es:bx], ax                      ; 26 89 07
    15132     jmp short 09deah                          ; eb 2d
     15142    jmp short 09df5h                          ; eb 2d
    1513315143    mov bx, 00da0h                            ; bb a0 0d
    1513415144    mov cx, ds                                ; 8c d9
    1513515145    mov ax, strict word 00004h                ; b8 04 00
    15136     call 01923h                               ; e8 5b 7b
     15146    call 01923h                               ; e8 50 7b
    1513715147    mov ax, word [bp+014h]                    ; 8b 46 14
    1513815148    push ax                                   ; 50
     
    1514115151    push 00d5ch                               ; 68 5c 0d
    1514215152    push strict byte 00004h                   ; 6a 04
    15143     call 01966h                               ; e8 8e 7b
     15153    call 01966h                               ; e8 83 7b
    1514415154    add sp, strict byte 00008h                ; 83 c4 08
    1514515155    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1515315163    pop bp                                    ; 5d
    1515415164    retn                                      ; c3
    15155 pci_find_classcode_:                         ; 0xf9df1 LB 0x8
     15165pci_find_classcode_:                         ; 0xf9dfc LB 0x8
    1515615166    push bp                                   ; 55
    1515715167    mov bp, sp                                ; 89 e5
     
    1515915169    pop bp                                    ; 5d
    1516015170    retn                                      ; c3
    15161 pci_read_config_byte_:                       ; 0xf9df9 LB 0x2e
     15171pci_read_config_byte_:                       ; 0xf9e04 LB 0x2e
    1516215172    push bp                                   ; 55
    1516315173    mov bp, sp                                ; 89 e5
     
    1518515195    pop bp                                    ; 5d
    1518615196    retn                                      ; c3
    15187 pci_read_config_word_:                       ; 0xf9e27 LB 0x2a
     15197pci_read_config_word_:                       ; 0xf9e32 LB 0x2a
    1518815198    push bp                                   ; 55
    1518915199    mov bp, sp                                ; 89 e5
     
    1520915219    pop bp                                    ; 5d
    1521015220    retn                                      ; c3
    15211 pci_read_config_dword_:                      ; 0xf9e51 LB 0x4e
     15221pci_read_config_dword_:                      ; 0xf9e5c LB 0x4e
    1521215222    push bp                                   ; 55
    1521315223    mov bp, sp                                ; 89 e5
     
    1523115241    int 01ah                                  ; cd 1a
    1523215242    test cx, cx                               ; 85 c9
    15233     jne short 09e90h                          ; 75 14
     15243    jne short 09e9bh                          ; 75 14
    1523415244    mov al, byte [bp-006h]                    ; 8a 46 fa
    1523515245    xor ah, ah                                ; 30 e4
     
    1524115251    int 01ah                                  ; cd 1a
    1524215252    test cx, cx                               ; 85 c9
    15243     je short 09e95h                           ; 74 05
     15253    je short 09ea0h                           ; 74 05
    1524415254    mov ax, strict word 00001h                ; b8 01 00
    15245     jmp short 09e97h                          ; eb 02
     15255    jmp short 09ea2h                          ; eb 02
    1524615256    xor ax, ax                                ; 31 c0
    1524715257    cwd                                       ; 99
     
    1525115261    pop bp                                    ; 5d
    1525215262    retn                                      ; c3
    15253 vds_is_present_:                             ; 0xf9e9f LB 0x1d
     15263vds_is_present_:                             ; 0xf9eaa LB 0x1d
    1525415264    push bx                                   ; 53
    1525515265    push bp                                   ; 55
     
    1525915269    mov es, ax                                ; 8e c0
    1526015270    test byte [es:bx], 020h                   ; 26 f6 07 20
    15261     je short 09eb7h                           ; 74 06
     15271    je short 09ec2h                           ; 74 06
    1526215272    mov ax, strict word 00001h                ; b8 01 00
    1526315273    pop bp                                    ; 5d
     
    1526815278    pop bx                                    ; 5b
    1526915279    retn                                      ; c3
    15270 vds_real_to_lin_:                            ; 0xf9ebc LB 0x1e
     15280vds_real_to_lin_:                            ; 0xf9ec7 LB 0x1e
    1527115281    push bx                                   ; 53
    1527215282    push cx                                   ; 51
     
    1527915289    sal ax, 1                                 ; d1 e0
    1528015290    rcl dx, 1                                 ; d1 d2
    15281     loop 09ecah                               ; e2 fa
     15291    loop 09ed5h                               ; e2 fa
    1528215292    xor cx, cx                                ; 31 c9
    1528315293    add ax, bx                                ; 01 d8
     
    1528715297    pop bx                                    ; 5b
    1528815298    retn                                      ; c3
    15289 vds_build_sg_list_:                          ; 0xf9eda LB 0x77
     15299vds_build_sg_list_:                          ; 0xf9ee5 LB 0x77
    1529015300    push bp                                   ; 55
    1529115301    mov bp, sp                                ; 89 e5
     
    1530115311    mov bx, word [bp+006h]                    ; 8b 5e 06
    1530215312    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15303     call 09ebch                               ; e8 c3 ff
     15313    call 09ec7h                               ; e8 c3 ff
    1530415314    mov es, si                                ; 8e c6
    1530515315    mov word [es:di+004h], ax                 ; 26 89 45 04
    1530615316    mov word [es:di+006h], dx                 ; 26 89 55 06
    1530715317    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15308     call 09e9fh                               ; e8 93 ff
     15318    call 09eaah                               ; e8 93 ff
    1530915319    test ax, ax                               ; 85 c0
    15310     je short 09f21h                           ; 74 11
     15320    je short 09f2ch                           ; 74 11
    1531115321    mov es, si                                ; 8e c6
    1531215322    mov ax, 08105h                            ; b8 05 81
    1531315323    mov dx, strict word 00000h                ; ba 00 00
    1531415324    int 04bh                                  ; cd 4b
    15315     jc short 09f1eh                           ; 72 02
     15325    jc short 09f29h                           ; 72 02
    1531615326    db  032h, 0c0h
    1531715327    ; xor al, al                                ; 32 c0
    1531815328    cbw                                       ; 98
    15319     jmp short 09f48h                          ; eb 27
     15329    jmp short 09f53h                          ; eb 27
    1532015330    mov es, si                                ; 8e c6
    1532115331    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1533415344    pop bp                                    ; 5d
    1533515345    retn 00004h                               ; c2 04 00
    15336 vds_free_sg_list_:                           ; 0xf9f51 LB 0x2f
     15346vds_free_sg_list_:                           ; 0xf9f5c LB 0x34
    1533715347    push bp                                   ; 55
    1533815348    mov bp, sp                                ; 89 e5
     
    1534015350    push di                                   ; 57
    1534115351    mov bx, ax                                ; 89 c3
    15342     call 09e9fh                               ; e8 44 ff
     15352    call 09eaah                               ; e8 44 ff
    1534315353    test ax, ax                               ; 85 c0
    15344     je short 09f70h                           ; 74 11
     15354    je short 09f7bh                           ; 74 11
    1534515355    mov di, bx                                ; 89 df
    1534615356    mov es, dx                                ; 8e c2
     
    1534815358    mov dx, strict word 00000h                ; ba 00 00
    1534915359    int 04bh                                  ; cd 4b
    15350     jc short 09f6fh                           ; 72 02
     15360    jc short 09f7ah                           ; 72 02
    1535115361    db  032h, 0c0h
    1535215362    ; xor al, al                                ; 32 c0
     
    1535915369    pop bp                                    ; 5d
    1536015370    retn                                      ; c3
    15361     times 0x1 db 0
    15362 __U4M:                                       ; 0xf9f80 LB 0x20
     15371    times 0x6 db 0
     15372__U4M:                                       ; 0xf9f90 LB 0x20
    1536315373    pushfw                                    ; 9c
    1536415374    push si                                   ; 56
     
    1538715397    retn                                      ; c3
    1538815398    times 0x4 db 0
    15389 __U4D:                                       ; 0xf9fa0 LB 0x30
     15399__U4D:                                       ; 0xf9fb0 LB 0x30
    1539015400    pushfw                                    ; 9c
    1539115401    push DS                                   ; 1e
     
    1540215412    push dx                                   ; 52
    1540315413    push ax                                   ; 50
    15404     call 0a085h                               ; e8 d0 00
     15414    call 0a095h                               ; e8 d0 00
    1540515415    mov cx, word [bp-002h]                    ; 8b 4e fe
    1540615416    mov bx, word [bp-004h]                    ; 8b 5e fc
     
    1541315423    retn                                      ; c3
    1541415424    times 0xe db 0
    15415 __U8RS:                                      ; 0xf9fd0 LB 0x10
     15425__U8RS:                                      ; 0xf9fe0 LB 0x10
    1541615426    test si, si                               ; 85 f6
    15417     je short 09fdfh                           ; 74 0b
     15427    je short 09fefh                           ; 74 0b
    1541815428    shr ax, 1                                 ; d1 e8
    1541915429    rcr bx, 1                                 ; d1 db
     
    1542115431    rcr dx, 1                                 ; d1 da
    1542215432    dec si                                    ; 4e
    15423     jne short 09fd4h                          ; 75 f5
     15433    jne short 09fe4h                          ; 75 f5
    1542415434    retn                                      ; c3
    15425 __U8LS:                                      ; 0xf9fe0 LB 0x10
     15435__U8LS:                                      ; 0xf9ff0 LB 0x10
    1542615436    test si, si                               ; 85 f6
    15427     je short 09fefh                           ; 74 0b
     15437    je short 09fffh                           ; 74 0b
    1542815438    sal dx, 1                                 ; d1 e2
    1542915439    rcl cx, 1                                 ; d1 d1
     
    1543115441    rcl ax, 1                                 ; d1 d0
    1543215442    dec si                                    ; 4e
    15433     jne short 09fe4h                          ; 75 f5
     15443    jne short 09ff4h                          ; 75 f5
    1543415444    retn                                      ; c3
    15435 _fmemset_:                                   ; 0xf9ff0 LB 0x10
     15445_fmemset_:                                   ; 0xfa000 LB 0x10
    1543615446    push di                                   ; 57
    1543715447    mov es, dx                                ; 8e c2
     
    1544415454    retn                                      ; c3
    1544515455    times 0x3 db 0
    15446 _fmemcpy_:                                   ; 0xfa000 LB 0x3a
     15456_fmemcpy_:                                   ; 0xfa010 LB 0x3a
    1544715457    push bp                                   ; 55
    1544815458    db  08bh, 0ech
     
    1546915479    add byte [bx+si], al                      ; 00 00
    1547015480    add byte [bx+si], al                      ; 00 00
    15471     push ax                                   ; 50
    15472     mov AL, byte [0a052h]                     ; a0 52 a0
    15473     push si                                   ; 56
    15474     mov AL, byte [0a056h]                     ; a0 56 a0
    15475     push si                                   ; 56
    15476     mov AL, byte [0a058h]                     ; a0 58 a0
    15477     pop ax                                    ; 58
    15478     mov AL, byte [0a05ah]                     ; a0 5a a0
    15479     pop si                                    ; 5e
    15480     mov AL, byte [0a05eh]                     ; a0 5e a0
    15481     pushaw                                    ; 60
    15482     mov AL, byte [0a065h]                     ; a0 65 a0
    15483     db  067h
    15484     db  0a0h
    15485 apm_worker:                                  ; 0xfa03a LB 0x3a
     15481    db  060h, 0a0h, 062h, 0a0h, 066h, 0a0h, 066h, 0a0h, 066h, 0a0h, 068h, 0a0h, 068h, 0a0h, 06ah, 0a0h
     15482    db  06eh, 0a0h, 06eh, 0a0h, 070h, 0a0h, 075h, 0a0h, 077h, 0a0h
     15483apm_worker:                                  ; 0xfa04a LB 0x3a
    1548615484    sti                                       ; fb
    1548715485    push ax                                   ; 50
     
    1549515493    pop ax                                    ; 58
    1549615494    mov AH, strict byte 053h                  ; b4 53
    15497     jnc short 0a070h                          ; 73 25
    15498     jmp word [cs:bp-05fe0h]                   ; 2e ff a6 20 a0
    15499     jmp short 0a06eh                          ; eb 1c
     15495    jnc short 0a080h                          ; 73 25
     15496    jmp word [cs:bp-05fd0h]                   ; 2e ff a6 30 a0
     15497    jmp short 0a07eh                          ; eb 1c
    1550015498    sti                                       ; fb
    1550115499    hlt                                       ; f4
    15502     jmp short 0a06eh                          ; eb 18
    15503     jmp short 0a06eh                          ; eb 16
    15504     jmp short 0a070h                          ; eb 16
     15500    jmp short 0a07eh                          ; eb 18
     15501    jmp short 0a07eh                          ; eb 16
     15502    jmp short 0a080h                          ; eb 16
    1550515503    mov AH, strict byte 080h                  ; b4 80
    15506     jmp short 0a072h                          ; eb 14
    15507     jmp short 0a070h                          ; eb 10
     15504    jmp short 0a082h                          ; eb 14
     15505    jmp short 0a080h                          ; eb 10
    1550815506    mov ax, 00102h                            ; b8 02 01
    15509     jmp short 0a06eh                          ; eb 09
    15510     jmp short 0a06eh                          ; eb 07
     15507    jmp short 0a07eh                          ; eb 09
     15508    jmp short 0a07eh                          ; eb 07
    1551115509    mov BL, strict byte 000h                  ; b3 00
    1551215510    mov cx, strict word 00000h                ; b9 00 00
    15513     jmp short 0a06eh                          ; eb 00
     15511    jmp short 0a07eh                          ; eb 00
    1551415512    clc                                       ; f8
    1551515513    retn                                      ; c3
     
    1551715515    stc                                       ; f9
    1551815516    retn                                      ; c3
    15519 apm_pm16_entry:                              ; 0xfa074 LB 0x11
     15517apm_pm16_entry:                              ; 0xfa084 LB 0x11
    1552015518    mov AH, strict byte 002h                  ; b4 02
    1552115519    push DS                                   ; 1e
     
    1552515523    add bp, strict byte 00008h                ; 83 c5 08
    1552615524    mov ds, bp                                ; 8e dd
    15527     call 0a03ah                               ; e8 b8 ff
     15525    call 0a04ah                               ; e8 b8 ff
    1552815526    pop bp                                    ; 5d
    1552915527    pop DS                                    ; 1f
    1553015528    retf                                      ; cb
    15531 _DoUInt32Div:                                ; 0xfa085 LB 0x26b
     15529_DoUInt32Div:                                ; 0xfa095 LB 0x26b
    1553215530    push bp                                   ; 55
    1553315531    mov bp, sp                                ; 89 e5
     
    1554715545    mov [bp-006h], ds                         ; 8c 5e fa
    1554815546    cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
    15549     jne short 0a0d5h                          ; 75 22
     15547    jne short 0a0e5h                          ; 75 22
    1555015548    mov ax, word [bx]                         ; 8b 07
    1555115549    test ax, ax                               ; 85 c0
    15552     je short 0a0d2h                           ; 74 19
     15550    je short 0a0e2h                           ; 74 19
    1555315551    cmp ax, strict word 00001h                ; 3d 01 00
    15554     jne short 0a0d5h                          ; 75 17
     15552    jne short 0a0e5h                          ; 75 17
    1555515553    xor ax, ax                                ; 31 c0
    1555615554    mov word [bp+00ah], ax                    ; 89 46 0a
     
    1556015558    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1556115559    mov word [bp+006h], ax                    ; 89 46 06
    15562     jmp near 0a2ddh                           ; e9 08 02
     15560    jmp near 0a2edh                           ; e9 08 02
    1556315561    lds bx, [bp-00ch]                         ; c5 5e f4
    1556415562    mov ax, word [bx+002h]                    ; 8b 47 02
    1556515563    mov ds, [bp-006h]                         ; 8e 5e fa
    1556615564    cmp ax, word [si+002h]                    ; 3b 44 02
    15567     je short 0a0fbh                           ; 74 18
     15565    je short 0a10bh                           ; 74 18
    1556815566    mov ds, [bp-00ah]                         ; 8e 5e f6
    1556915567    mov ax, word [bx+002h]                    ; 8b 47 02
    1557015568    mov ds, [bp-006h]                         ; 8e 5e fa
    1557115569    cmp ax, word [si+002h]                    ; 3b 44 02
    15572     jbe short 0a0f6h                          ; 76 05
     15570    jbe short 0a106h                          ; 76 05
    1557315571    mov ax, strict word 00001h                ; b8 01 00
    15574     jmp short 0a11ch                          ; eb 26
     15572    jmp short 0a12ch                          ; eb 26
    1557515573    mov ax, strict word 0ffffh                ; b8 ff ff
    15576     jmp short 0a11ch                          ; eb 21
     15574    jmp short 0a12ch                          ; eb 21
    1557715575    mov ds, [bp-00ah]                         ; 8e 5e f6
    1557815576    mov ax, word [bx]                         ; 8b 07
    1557915577    mov ds, [bp-006h]                         ; 8e 5e fa
    1558015578    cmp ax, word [si]                         ; 3b 04
    15581     je short 0a11ah                           ; 74 13
     15579    je short 0a12ah                           ; 74 13
    1558215580    mov ds, [bp-00ah]                         ; 8e 5e f6
    1558315581    mov ax, word [bx]                         ; 8b 07
    1558415582    mov ds, [bp-006h]                         ; 8e 5e fa
    1558515583    cmp ax, word [si]                         ; 3b 04
    15586     jbe short 0a115h                          ; 76 02
    15587     jmp short 0a0f1h                          ; eb dc
     15584    jbe short 0a125h                          ; 76 02
     15585    jmp short 0a101h                          ; eb dc
    1558815586    mov ax, strict word 0ffffh                ; b8 ff ff
    15589     jmp short 0a11ch                          ; eb 02
     15587    jmp short 0a12ch                          ; eb 02
    1559015588    xor ax, ax                                ; 31 c0
    1559115589    test ax, ax                               ; 85 c0
    15592     jnl short 0a13eh                          ; 7d 1e
     15590    jnl short 0a14eh                          ; 7d 1e
    1559315591    lds bx, [bp-00ch]                         ; c5 5e f4
    1559415592    mov ax, word [bx]                         ; 8b 07
     
    1560015598    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
    1560115599    mov word [bx], strict word 00000h         ; c7 07 00 00
    15602     jmp short 0a0d2h                          ; eb 94
    15603     jne short 0a155h                          ; 75 15
     15600    jmp short 0a0e2h                          ; eb 94
     15601    jne short 0a165h                          ; 75 15
    1560415602    mov ds, [bp-008h]                         ; 8e 5e f8
    1560515603    mov word [di+002h], ax                    ; 89 45 02
     
    1560815606    mov word [bx], strict word 00001h         ; c7 07 01 00
    1560915607    mov word [bx+002h], ax                    ; 89 47 02
    15610     jmp near 0a2ddh                           ; e9 88 01
     15608    jmp near 0a2edh                           ; e9 88 01
    1561115609    lds bx, [bp-00ch]                         ; c5 5e f4
    1561215610    mov ax, word [bx+002h]                    ; 8b 47 02
    1561315611    test ax, ax                               ; 85 c0
    15614     je short 0a170h                           ; 74 11
     15612    je short 0a180h                           ; 74 11
    1561515613    push ax                                   ; 50
    1561615614    mov ax, 0f000h                            ; b8 00 f0
    1561715615    mov ds, ax                                ; 8e d8
    15618     call 0a2f0h                               ; e8 88 01
     15616    call 0a300h                               ; e8 88 01
    1561915617    add sp, strict byte 00002h                ; 83 c4 02
    1562015618    add ax, strict word 00010h                ; 05 10 00
    15621     jmp short 0a17dh                          ; eb 0d
     15619    jmp short 0a18dh                          ; eb 0d
    1562215620    push word [bx]                            ; ff 37
    1562315621    mov ax, 0f000h                            ; b8 00 f0
    1562415622    mov ds, ax                                ; 8e d8
    15625     call 0a2f0h                               ; e8 76 01
     15623    call 0a300h                               ; e8 76 01
    1562615624    add sp, strict byte 00002h                ; 83 c4 02
    1562715625    mov word [bp-014h], ax                    ; 89 46 ec
     
    1562915627    mov ax, word [si+002h]                    ; 8b 44 02
    1563015628    test ax, ax                               ; 85 c0
    15631     je short 0a19bh                           ; 74 11
     15629    je short 0a1abh                           ; 74 11
    1563215630    push ax                                   ; 50
    1563315631    mov ax, 0f000h                            ; b8 00 f0
    1563415632    mov ds, ax                                ; 8e d8
    15635     call 0a2f0h                               ; e8 5d 01
     15633    call 0a300h                               ; e8 5d 01
    1563615634    add sp, strict byte 00002h                ; 83 c4 02
    1563715635    add ax, strict word 00010h                ; 05 10 00
    15638     jmp short 0a1a8h                          ; eb 0d
     15636    jmp short 0a1b8h                          ; eb 0d
    1563915637    push word [si]                            ; ff 34
    1564015638    mov ax, 0f000h                            ; b8 00 f0
    1564115639    mov ds, ax                                ; 8e d8
    15642     call 0a2f0h                               ; e8 4b 01
     15640    call 0a300h                               ; e8 4b 01
    1564315641    add sp, strict byte 00002h                ; 83 c4 02
    1564415642    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    1565115649    mov word [bp-016h], ax                    ; 89 46 ea
    1565215650    test dx, dx                               ; 85 d2
    15653     je short 0a218h                           ; 74 56
     15651    je short 0a228h                           ; 74 56
    1565415652    mov cx, dx                                ; 89 d1
    1565515653    xor ch, dh                                ; 30 f5
     
    1565715655    mov ax, word [si]                         ; 8b 04
    1565815656    mov dx, word [si+002h]                    ; 8b 54 02
    15659     jcxz 0a1d6h                               ; e3 06
     15657    jcxz 0a1e6h                               ; e3 06
    1566015658    sal ax, 1                                 ; d1 e0
    1566115659    rcl dx, 1                                 ; d1 d2
    15662     loop 0a1d0h                               ; e2 fa
     15660    loop 0a1e0h                               ; e2 fa
    1566315661    mov word [bp-018h], ax                    ; 89 46 e8
    1566415662    mov word [bp-016h], dx                    ; 89 56 ea
     
    1566615664    lds bx, [bp-00ch]                         ; c5 5e f4
    1566715665    cmp ax, word [bx+002h]                    ; 3b 47 02
    15668     jnbe short 0a1f6h                         ; 77 0f
     15666    jnbe short 0a206h                         ; 77 0f
    1566915667    mov ax, word [bp-016h]                    ; 8b 46 ea
    1567015668    cmp ax, word [bx+002h]                    ; 3b 47 02
    15671     jne short 0a1fah                          ; 75 0b
     15669    jne short 0a20ah                          ; 75 0b
    1567215670    mov ax, word [bp-018h]                    ; 8b 46 e8
    1567315671    cmp ax, word [bx]                         ; 3b 07
    15674     jbe short 0a1fah                          ; 76 04
     15672    jbe short 0a20ah                          ; 76 04
    1567515673    mov AL, strict byte 001h                  ; b0 01
    15676     jmp short 0a1fch                          ; eb 02
     15674    jmp short 0a20ch                          ; eb 02
    1567715675    xor al, al                                ; 30 c0
    1567815676    test al, al                               ; 84 c0
    15679     je short 0a223h                           ; 74 23
     15677    je short 0a233h                           ; 74 23
    1568015678    shr word [bp-016h], 1                     ; d1 6e ea
    1568115679    rcr word [bp-018h], 1                     ; d1 5e e8
    1568215680    dec word [bp-012h]                        ; ff 4e ee
    15683     jmp short 0a223h                          ; eb 18
     15681    jmp short 0a233h                          ; eb 18
    1568415682    mov cx, strict word 0001fh                ; b9 1f 00
    1568515683    sal word [bp-018h], 1                     ; d1 66 e8
    1568615684    rcl word [bp-016h], 1                     ; d1 56 ea
    15687     loop 0a20eh                               ; e2 f8
    15688     jmp short 0a206h                          ; eb ee
     15685    loop 0a21eh                               ; e2 f8
     15686    jmp short 0a216h                          ; eb ee
    1568915687    mov ax, word [si]                         ; 8b 04
    1569015688    mov word [bp-018h], ax                    ; 89 46 e8
     
    1570315701    mov ds, [bp-006h]                         ; 8e 5e fa
    1570415702    cmp ax, word [si+002h]                    ; 3b 44 02
    15705     jnbe short 0a24fh                         ; 77 06
    15706     jne short 0a253h                          ; 75 08
     15703    jnbe short 0a25fh                         ; 77 06
     15704    jne short 0a263h                          ; 75 08
    1570715705    cmp dx, word [si]                         ; 3b 14
    15708     jc short 0a253h                           ; 72 04
     15706    jc short 0a263h                           ; 72 04
    1570915707    mov AL, strict byte 001h                  ; b0 01
    15710     jmp short 0a255h                          ; eb 02
     15708    jmp short 0a265h                          ; eb 02
    1571115709    xor al, al                                ; 30 c0
    1571215710    test al, al                               ; 84 c0
    15713     je short 0a2bah                           ; 74 61
     15711    je short 0a2cah                           ; 74 61
    1571415712    mov ds, [bp-008h]                         ; 8e 5e f8
    1571515713    mov ax, word [di+002h]                    ; 8b 45 02
    1571615714    cmp ax, word [bp-016h]                    ; 3b 46 ea
    15717     jnbe short 0a270h                         ; 77 0c
     15715    jnbe short 0a280h                         ; 77 0c
    1571815716    cmp ax, word [bp-016h]                    ; 3b 46 ea
    15719     jne short 0a274h                          ; 75 0b
     15717    jne short 0a284h                          ; 75 0b
    1572015718    mov ax, word [di]                         ; 8b 05
    1572115719    cmp ax, word [bp-018h]                    ; 3b 46 e8
    15722     jc short 0a274h                           ; 72 04
     15720    jc short 0a284h                           ; 72 04
    1572315721    mov AL, strict byte 001h                  ; b0 01
    15724     jmp short 0a276h                          ; eb 02
     15722    jmp short 0a286h                          ; eb 02
    1572515723    xor al, al                                ; 30 c0
    1572615724    test al, al                               ; 84 c0
    15727     je short 0a2a0h                           ; 74 26
     15725    je short 0a2b0h                           ; 74 26
    1572815726    mov ax, word [bp-018h]                    ; 8b 46 e8
    1572915727    mov ds, [bp-008h]                         ; 8e 5e f8
     
    1573415732    xor dx, dx                                ; 31 d2
    1573515733    mov cx, word [bp-012h]                    ; 8b 4e ee
    15736     jcxz 0a298h                               ; e3 06
     15734    jcxz 0a2a8h                               ; e3 06
    1573715735    sal ax, 1                                 ; d1 e0
    1573815736    rcl dx, 1                                 ; d1 d2
    15739     loop 0a292h                               ; e2 fa
     15737    loop 0a2a2h                               ; e2 fa
    1574015738    lds bx, [bp-010h]                         ; c5 5e f0
    1574115739    or word [bx], ax                          ; 09 07
     
    1574615744    mov ds, [bp-006h]                         ; 8e 5e fa
    1574715745    cmp ax, word [si+002h]                    ; 3b 44 02
    15748     jc short 0a2b6h                           ; 72 06
    15749     jne short 0a2bch                          ; 75 0a
     15746    jc short 0a2c6h                           ; 72 06
     15747    jne short 0a2cch                          ; 75 0a
    1575015748    cmp dx, word [si]                         ; 3b 14
    15751     jnc short 0a2bch                          ; 73 06
     15749    jnc short 0a2cch                          ; 73 06
    1575215750    mov AL, strict byte 001h                  ; b0 01
    15753     jmp short 0a2beh                          ; eb 04
    15754     jmp short 0a2ddh                          ; eb 21
     15751    jmp short 0a2ceh                          ; eb 04
     15752    jmp short 0a2edh                          ; eb 21
    1575515753    xor al, al                                ; 30 c0
    1575615754    test al, al                               ; 84 c0
    15757     je short 0a2d1h                           ; 74 0f
    15758     jmp short 0a2ddh                          ; eb 19
     15755    je short 0a2e1h                           ; 74 0f
     15756    jmp short 0a2edh                          ; eb 19
    1575915757    mov cx, strict word 0001fh                ; b9 1f 00
    1576015758    sal word [bp-018h], 1                     ; d1 66 e8
    1576115759    rcl word [bp-016h], 1                     ; d1 56 ea
    15762     loop 0a2c7h                               ; e2 f8
    15763     jmp short 0a2d7h                          ; eb 06
     15760    loop 0a2d7h                               ; e2 f8
     15761    jmp short 0a2e7h                          ; eb 06
    1576415762    shr word [bp-016h], 1                     ; d1 6e ea
    1576515763    rcr word [bp-018h], 1                     ; d1 5e e8
    1576615764    dec word [bp-012h]                        ; ff 4e ee
    15767     jmp near 0a259h                           ; e9 7c ff
     15765    jmp near 0a269h                           ; e9 7c ff
    1576815766    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1576915767    mov dx, word [bp-01ah]                    ; 8b 56 e6
     
    1577415772    retn                                      ; c3
    1577515773    times 0x6 db 0
    15776 _ASMBitLastSetU16:                           ; 0xfa2f0 LB 0x18
     15774_ASMBitLastSetU16:                           ; 0xfa300 LB 0x18
    1577715775    push bp                                   ; 55
    1577815776    db  08bh, 0ech
     
    1578015778    mov cx, word [bp+004h]                    ; 8b 4e 04
    1578115779    test cx, cx                               ; 85 c9
    15782     je short 0a304h                           ; 74 0a
     15780    je short 0a314h                           ; 74 0a
    1578315781    mov ax, strict word 00010h                ; b8 10 00
    1578415782    sal cx, 1                                 ; d1 e1
    15785     jc short 0a306h                           ; 72 05
     15783    jc short 0a316h                           ; 72 05
    1578615784    dec ax                                    ; 48
    15787     jmp short 0a2fdh                          ; eb f9
     15785    jmp short 0a30dh                          ; eb f9
    1578815786    db  033h, 0c0h
    1578915787    ; xor ax, ax                                ; 33 c0
     
    1579115789    retn                                      ; c3
    1579215790
    15793   ; Padding 0x36f8 bytes at 0xfa308
    15794   times 14072 db 0
     15791  ; Padding 0x36e8 bytes at 0xfa318
     15792  times 14056 db 0
    1579515793
    1579615794section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1583915837    add bp, strict byte 00008h                ; 83 c5 08
    1584015838    push ebp                                  ; 66 55
    15841     mov bp, 0a076h                            ; bd 76 a0
     15839    mov bp, 0a086h                            ; bd 86 a0
    1584215840    add byte [bx+si], al                      ; 00 00
    1584315841    push ebp                                  ; 66 55
     
    1656516563    call 01c9fh                               ; e8 63 39
    1656616564    call 02118h                               ; e8 d9 3d
    16567     call 098bdh                               ; e8 7b b5
    16568     call 08748h                               ; e8 03 a4
     16565    call 098c8h                               ; e8 86 b5
     16566    call 08753h                               ; e8 0e a4
    1656916567    call 0ed2fh                               ; e8 e7 09
    1657016568    call 0e2d2h                               ; e8 87 ff
     
    1753417532    popfw                                     ; 9d
    1753517533    jmp short 0f8a5h                          ; eb 11
    17536     call 09a0fh                               ; e8 78 a1
     17534    call 09a1ah                               ; e8 83 a1
    1753717535    jmp short 0f88eh                          ; eb f5
    1753817536int15_handler_mouse:                         ; 0xff899 LB 0x5
     
    1779917797cpu_reset:                                   ; 0xffff0 LB 0x10
    1780017798    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17801     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 055h
     17799    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 001h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum

    r63625 r66146  
    1 28fbed16795ac17ce3351e5e8a6e7223 *VBoxPcBios286.rom
     13b558b13e9e59388473cb5453a4db1d3 *VBoxPcBios286.rom
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm

    r63625 r66146  
    951951    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    952952_pktacc:                                     ; 0xf006a LB 0xc
    953     db  000h, 000h, 000h, 000h, 000h, 000h, 0cch, 02bh, 00fh, 081h, 036h, 090h
     953    db  000h, 000h, 000h, 000h, 000h, 000h, 0cch, 02bh, 01ch, 081h, 043h, 090h
    954954_softrst:                                    ; 0xf0076 LB 0xc
    955955    db  000h, 000h, 000h, 000h, 000h, 000h, 0b4h, 02eh, 0c1h, 03bh, 0c1h, 03bh
    956956_dskacc:                                     ; 0xf0082 LB 0x2e
    957957    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0bch, 02ah, 071h, 02bh, 000h, 000h, 000h, 000h
    958     db  059h, 07fh, 034h, 080h, 00ch, 08fh, 0b2h, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     958    db  066h, 07fh, 041h, 080h, 019h, 08fh, 0bfh, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    959959    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    960960
     
    11531153  times 1144 db 0
    11541154
    1155 section _TEXT progbits vstart=0x1600 align=1 ; size=0x89e5 class=CODE group=AUTO
     1155section _TEXT progbits vstart=0x1600 align=1 ; size=0x89f5 class=CODE group=AUTO
    11561156rom_scan_:                                   ; 0xf1600 LB 0x50
    11571157    push bp                                   ; 55
     
    16041604    mov bx, strict word 0000ah                ; bb 0a 00
    16051605    xor cx, cx                                ; 31 c9
    1606     call 09ef0h                               ; e8 af 85
     1606    call 09f00h                               ; e8 bf 85
    16071607    mov word [bp-008h], ax                    ; 89 46 f8
    16081608    mov cx, dx                                ; 89 d1
     
    18301830    mov dx, word [bp-026h]                    ; 8b 56 da
    18311831    mov si, word [bp-01eh]                    ; 8b 76 e2
    1832     call 09f30h                               ; e8 bd 83
     1832    call 09f40h                               ; e8 cd 83
    18331833    mov ax, dx                                ; 89 d0
    18341834    xor ah, dh                                ; 30 f4
     
    22722272    mov dx, word [es:si]                      ; 26 8b 14
    22732273    mov si, strict word 00018h                ; be 18 00
    2274     call 09f30h                               ; e8 61 7f
     2274    call 09f40h                               ; e8 71 7f
    22752275    xor dh, dh                                ; 30 f6
    22762276    mov word [bp-016h], dx                    ; 89 56 ea
     
    22822282    mov dx, word [es:si]                      ; 26 8b 14
    22832283    mov si, strict word 00020h                ; be 20 00
    2284     call 09f30h                               ; e8 41 7f
     2284    call 09f40h                               ; e8 51 7f
    22852285    mov bx, dx                                ; 89 d3
    22862286    mov ax, word [bp-01eh]                    ; 8b 46 e2
     
    23132313    mov dx, word [es:si]                      ; 26 8b 14
    23142314    mov si, strict word 00008h                ; be 08 00
    2315     call 09f30h                               ; e8 f0 7e
     2315    call 09f40h                               ; e8 00 7f
    23162316    mov word [bp-014h], dx                    ; 89 56 ec
    23172317    mov bx, word [bp-018h]                    ; 8b 5e e8
     
    23222322    mov dx, word [es:si]                      ; 26 8b 14
    23232323    mov si, strict word 00018h                ; be 18 00
    2324     call 09f30h                               ; e8 d2 7e
     2324    call 09f40h                               ; e8 e2 7e
    23252325    and dx, strict byte 0000fh                ; 83 e2 0f
    23262326    or dl, 040h                               ; 80 ca 40
     
    28782878    mov dx, word [es:si+036h]                 ; 26 8b 54 36
    28792879    mov si, strict word 0000bh                ; be 0b 00
    2880     call 09f30h                               ; e8 0a 79
     2880    call 09f40h                               ; e8 1a 79
    28812881    mov word [bp-030h], dx                    ; 89 56 d0
    28822882    mov word [bp-02eh], cx                    ; 89 4e d2
     
    31493149    mov dx, word [bp-01eh]                    ; 8b 56 e2
    31503150    mov si, strict word 00018h                ; be 18 00
    3151     call 09f30h                               ; e8 34 76
     3151    call 09f40h                               ; e8 44 76
    31523152    xor dh, dh                                ; 30 f6
    31533153    mov word [bp-01ch], dx                    ; 89 56 e4
     
    31573157    mov dx, word [bp-01eh]                    ; 8b 56 e2
    31583158    mov si, strict word 00020h                ; be 20 00
    3159     call 09f30h                               ; e8 1d 76
     3159    call 09f40h                               ; e8 2d 76
    31603160    mov bx, dx                                ; 89 d3
    31613161    mov ax, word [bp-01ah]                    ; 8b 46 e6
     
    31913191    mov dx, word [bp-01eh]                    ; 8b 56 e2
    31923192    mov si, strict word 00008h                ; be 08 00
    3193     call 09f30h                               ; e8 c9 75
     3193    call 09f40h                               ; e8 d9 75
    31943194    mov word [bp-010h], ax                    ; 89 46 f0
    31953195    mov word [bp-014h], bx                    ; 89 5e ec
     
    31983198    mov word [bp-026h], dx                    ; 89 56 da
    31993199    mov si, strict word 00010h                ; be 10 00
    3200     call 09f30h                               ; e8 b4 75
     3200    call 09f40h                               ; e8 c4 75
    32013201    mov word [bp-01eh], dx                    ; 89 56 e2
    32023202    mov ax, dx                                ; 89 d0
     
    54055405    mov dx, ss                                ; 8c d2
    54065406    lea ax, [bp-026h]                         ; 8d 46 da
    5407     call 09f50h                               ; e8 2d 61
     5407    call 09f60h                               ; e8 3d 61
    54085408    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    54095409    mov ax, strict word 00011h                ; b8 11 00
     
    58645864    xor dl, dl                                ; 30 d2
    58655865    xor cx, cx                                ; 31 c9
    5866     call 09eb0h                               ; e8 2c 5b
     5866    call 09ec0h                               ; e8 3c 5b
    58675867    xor bx, bx                                ; 31 db
    58685868    add ax, si                                ; 01 f0
     
    58705870    mov bx, di                                ; 89 fb
    58715871    xor cx, cx                                ; 31 c9
    5872     call 09eb0h                               ; e8 1f 5b
     5872    call 09ec0h                               ; e8 2f 5b
    58735873    mov bx, ax                                ; 89 c3
    58745874    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    59055905    mov dx, ss                                ; 8c d2
    59065906    lea ax, [bp-02eh]                         ; 8d 46 d2
    5907     call 09f50h                               ; e8 68 5b
     5907    call 09f60h                               ; e8 78 5b
    59085908    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    59095909    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    62126212    mov dx, ss                                ; 8c d2
    62136213    lea ax, [bp-02ch]                         ; 8d 46 d4
    6214     call 09f50h                               ; e8 cd 57
     6214    call 09f60h                               ; e8 dd 57
    62156215    mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
    62166216    mov ax, word [bp-018h]                    ; 8b 46 e8
     
    67166716    xor ah, ah                                ; 30 e4
    67176717    sar ax, 004h                              ; c1 f8 04
    6718     call 07d48h                               ; e8 5f 30
     6718    call 07d55h                               ; e8 6c 30
    67196719    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    67206720    jne short 04cf2h                          ; 75 03
     
    80548054    mov dx, word [bp+00ch]                    ; 8b 56 0c
    80558055    mov si, strict word 00020h                ; be 20 00
    8056     call 09f30h                               ; e8 2f 45
     8056    call 09f40h                               ; e8 3f 45
    80578057    test ax, ax                               ; 85 c0
    80588058    jne short 05a11h                          ; 75 0c
     
    80928092    mov bx, strict word 0003fh                ; bb 3f 00
    80938093    xor cx, cx                                ; 31 c9
    8094     call 09eb0h                               ; e8 56 44
     8094    call 09ec0h                               ; e8 66 44
    80958095    mov bx, ax                                ; 89 c3
    80968096    mov cx, dx                                ; 89 d1
    80978097    mov ax, word [bp-004h]                    ; 8b 46 fc
    80988098    mov dx, si                                ; 89 f2
    8099     call 09ef0h                               ; e8 8a 44
     8099    call 09f00h                               ; e8 9a 44
    81008100    mov word [es:di+002h], ax                 ; 26 89 45 02
    81018101    cmp ax, 00400h                            ; 3d 00 04
     
    83218321    mov bx, cx                                ; 89 cb
    83228322    xor cx, cx                                ; 31 c9
    8323     call 09eb0h                               ; e8 25 42
     8323    call 09ec0h                               ; e8 35 42
    83248324    xor bx, bx                                ; 31 db
    83258325    add ax, word [bp-008h]                    ; 03 46 f8
     
    83278327    mov bx, word [bp-00ah]                    ; 8b 5e f6
    83288328    xor cx, cx                                ; 31 c9
    8329     call 09eb0h                               ; e8 16 42
     8329    call 09ec0h                               ; e8 26 42
    83308330    xor bx, bx                                ; 31 db
    83318331    add ax, word [bp-006h]                    ; 03 46 fa
     
    84878487    mov bx, word [bp-008h]                    ; 8b 5e f8
    84888488    xor cx, cx                                ; 31 c9
    8489     call 09eb0h                               ; e8 4e 40
     8489    call 09ec0h                               ; e8 5e 40
    84908490    mov bx, word [bp-006h]                    ; 8b 5e fa
    84918491    xor cx, cx                                ; 31 c9
    8492     call 09eb0h                               ; e8 46 40
     8492    call 09ec0h                               ; e8 56 40
    84938493    mov word [bp-010h], ax                    ; 89 46 f0
    84948494    mov word [bp-00eh], dx                    ; 89 56 f2
     
    86338633    xor bx, bx                                ; 31 db
    86348634    mov si, strict word 00020h                ; be 20 00
    8635     call 09f40h                               ; e8 52 3f
     8635    call 09f50h                               ; e8 62 3f
    86368636    mov word [bp-00eh], bx                    ; 89 5e f2
    86378637    mov bx, word [es:di+008h]                 ; 26 8b 5d 08
     
    87848784    mov bx, word [bp-00eh]                    ; 8b 5e f2
    87858785    mov si, strict word 00020h                ; be 20 00
    8786     call 09f30h                               ; e8 68 3d
     8786    call 09f40h                               ; e8 78 3d
    87878787    mov bx, di                                ; 89 fb
    87888788    mov word [es:bx+014h], dx                 ; 26 89 57 14
     
    91419141    mov bx, strict word 0000fh                ; bb 0f 00
    91429142    xor cx, cx                                ; 31 c9
    9143     call 09ef0h                               ; e8 8f 39
     9143    call 09f00h                               ; e8 9f 39
    91449144    mov cx, ax                                ; 89 c1
    91459145    mov bx, dx                                ; 89 d3
     
    1132011320    pop bp                                    ; 5d
    1132111321    retn                                      ; c3
    11322 show_logo_:                                  ; 0xf7b24 LB 0x224
     11322show_logo_:                                  ; 0xf7b24 LB 0x231
    1132311323    push bp                                   ; 55
    1132411324    mov bp, sp                                ; 89 e5
     
    1134411344    call 079b8h                               ; e8 68 fe
    1134511345    cmp ax, 066bbh                            ; 3d bb 66
    11346     jne near 07c28h                           ; 0f 85 d1 00
     11346    jne near 07c35h                           ; 0f 85 de 00
    1134711347    push SS                                   ; 16
    1134811348    pop ES                                    ; 07
     
    1135211352    mov word [es:di], bx                      ; 26 89 1d
    1135311353    cmp ax, strict word 0004fh                ; 3d 4f 00
    11354     jne near 07c28h                           ; 0f 85 bd 00
     11354    jne near 07c35h                           ; 0f 85 ca 00
    1135511355    mov al, dl                                ; 88 d0
    1135611356    add AL, strict byte 004h                  ; 04 04
     
    1138111381    jne short 07bafh                          ; 75 06
    1138211382    test bx, bx                               ; 85 db
    11383     je near 07c28h                            ; 0f 84 79 00
     11383    je near 07c35h                            ; 0f 84 86 00
    1138411384    mov bx, 00142h                            ; bb 42 01
    1138511385    mov ax, 04f02h                            ; b8 02 4f
     
    1141611416    mov CL, strict byte 001h                  ; b1 01
    1141711417    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11418     je short 07c28h                           ; 74 25
     11418    je short 07c2ah                           ; 74 27
    1141911419    test cl, cl                               ; 84 c9
    11420     jne short 07c28h                          ; 75 21
     11420    jne short 07c2ah                          ; 75 23
    1142111421    mov bx, strict word 00010h                ; bb 10 00
    1142211422    jmp short 07c11h                          ; eb 05
    1142311423    dec bx                                    ; 4b
    1142411424    test bx, bx                               ; 85 db
    11425     jbe short 07c28h                          ; 76 17
     11425    jbe short 07c35h                          ; 76 24
    1142611426    mov ax, bx                                ; 89 d8
    1142711427    or ah, 002h                               ; 80 cc 02
     
    1143411434    jne short 07c0ch                          ; 75 e6
    1143511435    mov CL, strict byte 001h                  ; b1 01
     11436    jmp short 07c35h                          ; eb 0b
     11437    test cl, cl                               ; 84 c9
     11438    jne short 07c35h                          ; 75 07
     11439    mov ax, 00200h                            ; b8 00 02
     11440    mov dx, 003b8h                            ; ba b8 03
     11441    out DX, ax                                ; ef
    1143611442    xor bx, bx                                ; 31 db
    1143711443    mov dx, 0037dh                            ; ba 7d 03
    1143811444    mov ax, si                                ; 89 f0
    11439     call 016c6h                               ; e8 94 9a
     11445    call 016c6h                               ; e8 87 9a
    1144011446    mov AL, strict byte 003h                  ; b0 03
    1144111447    mov AH, strict byte 000h                  ; b4 00
    1144211448    int 010h                                  ; cd 10
    1144311449    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11444     je near 07d29h                            ; 0f 84 e9 00
     11450    je near 07d36h                            ; 0f 84 e9 00
    1144511451    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11446     jne short 07c76h                          ; 75 30
     11452    jne short 07c83h                          ; 75 30
    1144711453    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11448     jne short 07c76h                          ; 75 2a
     11454    jne short 07c83h                          ; 75 2a
    1144911455    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    11450     jne short 07c76h                          ; 75 24
     11456    jne short 07c83h                          ; 75 24
    1145111457    cmp byte [bp-012h], 002h                  ; 80 7e ee 02
    11452     jne short 07c63h                          ; 75 0b
     11458    jne short 07c70h                          ; 75 0b
    1145311459    push 00a4bh                               ; 68 4b 0a
    1145411460    push strict byte 00002h                   ; 6a 02
    11455     call 019dah                               ; e8 7a 9d
     11461    call 019dah                               ; e8 6d 9d
    1145611462    add sp, strict byte 00004h                ; 83 c4 04
    1145711463    test cl, cl                               ; 84 c9
    11458     jne short 07c76h                          ; 75 0f
     11464    jne short 07c83h                          ; 75 0f
    1145911465    mov dx, strict word 00001h                ; ba 01 00
    1146011466    mov ax, 000c0h                            ; b8 c0 00
    11461     call 078f0h                               ; e8 80 fc
     11467    call 078f0h                               ; e8 73 fc
    1146211468    cmp AL, strict byte 086h                  ; 3c 86
    11463     jne short 07c76h                          ; 75 02
     11469    jne short 07c83h                          ; 75 02
    1146411470    mov CL, strict byte 001h                  ; b1 01
    1146511471    test cl, cl                               ; 84 c9
    11466     je near 07d29h                            ; 0f 84 ad 00
     11472    je near 07d36h                            ; 0f 84 ad 00
    1146711473    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1146811474    mov ax, 00100h                            ; b8 00 01
     
    1148311489    push 00a6dh                               ; 68 6d 0a
    1148411490    push strict byte 00002h                   ; 6a 02
    11485     call 019dah                               ; e8 35 9d
     11491    call 019dah                               ; e8 28 9d
    1148611492    add sp, strict byte 00004h                ; 83 c4 04
    11487     call 079cch                               ; e8 21 fd
     11493    call 079cch                               ; e8 14 fd
    1148811494    push 00ab1h                               ; 68 b1 0a
    1148911495    push strict byte 00002h                   ; 6a 02
    11490     call 019dah                               ; e8 27 9d
     11496    call 019dah                               ; e8 1a 9d
    1149111497    add sp, strict byte 00004h                ; 83 c4 04
    1149211498    mov dx, strict word 00001h                ; ba 01 00
    1149311499    mov ax, strict word 00040h                ; b8 40 00
    11494     call 078f0h                               ; e8 31 fc
     11500    call 078f0h                               ; e8 24 fc
    1149511501    mov bl, al                                ; 88 c3
    1149611502    test al, al                               ; 84 c0
    11497     je short 07cb6h                           ; 74 f1
     11503    je short 07cc3h                           ; 74 f1
    1149811504    cmp AL, strict byte 030h                  ; 3c 30
    11499     je short 07d17h                           ; 74 4e
     11505    je short 07d24h                           ; 74 4e
    1150011506    cmp bl, 002h                              ; 80 fb 02
    11501     jc short 07cf0h                           ; 72 22
     11507    jc short 07cfdh                           ; 72 22
    1150211508    cmp bl, 009h                              ; 80 fb 09
    11503     jnbe short 07cf0h                         ; 77 1d
     11509    jnbe short 07cfdh                         ; 77 1d
    1150411510    movzx ax, bl                              ; 0f b6 c3
    11505     call 07afch                               ; e8 23 fe
     11511    call 07afch                               ; e8 16 fe
    1150611512    cmp AL, strict byte 0ffh                  ; 3c ff
    11507     jne short 07cdfh                          ; 75 02
    11508     jmp short 07cb6h                          ; eb d7
     11513    jne short 07cech                          ; 75 02
     11514    jmp short 07cc3h                          ; eb d7
    1150911515    movzx bx, al                              ; 0f b6 d8
    1151011516    mov dx, 0037ch                            ; ba 7c 03
    1151111517    mov ax, si                                ; 89 f0
    11512     call 016c6h                               ; e8 dc 99
     11518    call 016c6h                               ; e8 cf 99
    1151311519    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    11514     jmp short 07d17h                          ; eb 27
     11520    jmp short 07d24h                          ; eb 27
    1151511521    cmp bl, 02eh                              ; 80 fb 2e
    11516     je short 07d05h                           ; 74 10
     11522    je short 07d12h                           ; 74 10
    1151711523    cmp bl, 026h                              ; 80 fb 26
    11518     je short 07d0bh                           ; 74 11
     11524    je short 07d18h                           ; 74 11
    1151911525    cmp bl, 021h                              ; 80 fb 21
    11520     jne short 07d11h                          ; 75 12
     11526    jne short 07d1eh                          ; 75 12
    1152111527    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11522     jmp short 07d17h                          ; eb 12
     11528    jmp short 07d24h                          ; eb 12
    1152311529    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    11524     jmp short 07d17h                          ; eb 0c
     11530    jmp short 07d24h                          ; eb 0c
    1152511531    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    11526     jmp short 07d17h                          ; eb 06
     11532    jmp short 07d24h                          ; eb 06
    1152711533    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11528     je short 07cb6h                           ; 74 9f
     11534    je short 07cc3h                           ; 74 9f
    1152911535    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    1153011536    mov dx, 0037dh                            ; ba 7d 03
    1153111537    mov ax, si                                ; 89 f0
    11532     call 016c6h                               ; e8 a3 99
     11538    call 016c6h                               ; e8 96 99
    1153311539    mov AL, strict byte 003h                  ; b0 03
    1153411540    mov AH, strict byte 000h                  ; b4 00
     
    1154311549    push DS                                   ; 1e
    1154411550    mov ds, ax                                ; 8e d8
    11545     call 0edbfh                               ; e8 84 70
     11551    call 0edbfh                               ; e8 77 70
    1154611552    pop DS                                    ; 1f
    1154711553    popad                                     ; 66 61
     
    1155411560    pop bp                                    ; 5d
    1155511561    retn                                      ; c3
    11556 delay_boot_:                                 ; 0xf7d48 LB 0x67
     11562delay_boot_:                                 ; 0xf7d55 LB 0x67
    1155711563    push bp                                   ; 55
    1155811564    mov bp, sp                                ; 89 e5
     
    1156111567    mov dx, ax                                ; 89 c2
    1156211568    test ax, ax                               ; 85 c0
    11563     je short 07da8h                           ; 74 55
     11569    je short 07db5h                           ; 74 55
    1156411570    mov AL, strict byte 034h                  ; b0 34
    1156511571    out strict byte 043h, AL                  ; e6 43
     
    1157111577    push 00afbh                               ; 68 fb 0a
    1157211578    push strict byte 00002h                   ; 6a 02
    11573     call 019dah                               ; e8 72 9c
     11579    call 019dah                               ; e8 65 9c
    1157411580    add sp, strict byte 00006h                ; 83 c4 06
    1157511581    mov bx, dx                                ; 89 d3
    1157611582    test bx, bx                               ; 85 db
    11577     jbe short 07d88h                          ; 76 17
     11583    jbe short 07d95h                          ; 76 17
    1157811584    push bx                                   ; 53
    1157911585    push 00b19h                               ; 68 19 0b
    1158011586    push strict byte 00002h                   ; 6a 02
    11581     call 019dah                               ; e8 60 9c
     11587    call 019dah                               ; e8 53 9c
    1158211588    add sp, strict byte 00006h                ; 83 c4 06
    1158311589    xor dx, dx                                ; 31 d2
    1158411590    mov ax, strict word 00040h                ; b8 40 00
    11585     call 078f0h                               ; e8 6b fb
     11591    call 078f0h                               ; e8 5e fb
    1158611592    dec bx                                    ; 4b
    11587     jmp short 07d6dh                          ; eb e5
     11593    jmp short 07d7ah                          ; eb e5
    1158811594    push 00a49h                               ; 68 49 0a
    1158911595    push strict byte 00002h                   ; 6a 02
    11590     call 019dah                               ; e8 4a 9c
     11596    call 019dah                               ; e8 3d 9c
    1159111597    add sp, strict byte 00004h                ; 83 c4 04
    1159211598    mov AL, strict byte 034h                  ; b0 34
     
    1159911605    push DS                                   ; 1e
    1160011606    mov ds, ax                                ; 8e d8
    11601     call 0edbfh                               ; e8 1a 70
     11607    call 0edbfh                               ; e8 0d 70
    1160211608    pop DS                                    ; 1f
    1160311609    popad                                     ; 66 61
     
    1160711613    pop bp                                    ; 5d
    1160811614    retn                                      ; c3
    11609 scsi_cmd_data_in_:                           ; 0xf7daf LB 0xd5
     11615scsi_cmd_data_in_:                           ; 0xf7dbc LB 0xd5
    1161011616    push bp                                   ; 55
    1161111617    mov bp, sp                                ; 89 e5
     
    1162311629    ; sub ah, ah                                ; 2a e4
    1162411630    test AL, strict byte 001h                 ; a8 01
    11625     jne short 07dc5h                          ; 75 f7
     11631    jne short 07dd2h                          ; 75 f7
    1162611632    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
    11627     jne short 07dd8h                          ; 75 04
     11633    jne short 07de5h                          ; 75 04
    1162811634    xor ax, ax                                ; 31 c0
    11629     jmp short 07ddch                          ; eb 04
     11635    jmp short 07de9h                          ; eb 04
    1163011636    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1163111637    mov di, ax                                ; 89 c7
     
    1163511641    shr dx, 1                                 ; d1 ea
    1163611642    rcr ax, 1                                 ; d1 d8
    11637     loop 07de6h                               ; e2 fa
     11643    loop 07df3h                               ; e2 fa
    1163811644    mov cx, ax                                ; 89 c1
    1163911645    and cx, 000f0h                            ; 81 e1 f0 00
     
    1165311659    shr dx, 1                                 ; d1 ea
    1165411660    rcr ax, 1                                 ; d1 d8
    11655     loop 07e0bh                               ; e2 fa
     11661    loop 07e18h                               ; e2 fa
    1165611662    mov dx, si                                ; 89 f2
    1165711663    out DX, AL                                ; ee
     
    1165911665    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1166011666    cmp cx, ax                                ; 39 c1
    11661     jnc short 07e2ch                          ; 73 0e
     11667    jnc short 07e39h                          ; 73 0e
    1166211668    les di, [bp-00ah]                         ; c4 7e f6
    1166311669    add di, cx                                ; 01 cf
     
    1166611672    out DX, AL                                ; ee
    1166711673    inc cx                                    ; 41
    11668     jmp short 07e16h                          ; eb ea
     11674    jmp short 07e23h                          ; eb ea
    1166911675    mov dx, si                                ; 89 f2
    1167011676    in AL, DX                                 ; ec
     
    1167211678    ; sub ah, ah                                ; 2a e4
    1167311679    test AL, strict byte 001h                 ; a8 01
    11674     jne short 07e2ch                          ; 75 f7
     11680    jne short 07e39h                          ; 75 f7
    1167511681    test AL, strict byte 002h                 ; a8 02
    11676     je short 07e47h                           ; 74 0e
     11682    je short 07e54h                           ; 74 0e
    1167711683    lea dx, [si+003h]                         ; 8d 54 03
    1167811684    xor al, al                                ; 30 c0
     
    1168211688    ; sub ah, ah                                ; 2a e4
    1168311689    mov di, strict word 00004h                ; bf 04 00
    11684     jmp short 07e79h                          ; eb 32
     11690    jmp short 07e86h                          ; eb 32
    1168511691    lea dx, [si+001h]                         ; 8d 54 01
    1168611692    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11687     jne short 07e56h                          ; 75 06
     11693    jne short 07e63h                          ; 75 06
    1168811694    cmp bx, 08000h                            ; 81 fb 00 80
    11689     jbe short 07e70h                          ; 76 1a
     11695    jbe short 07e7dh                          ; 76 1a
    1169011696    mov cx, 08000h                            ; b9 00 80
    1169111697    les di, [bp+006h]                         ; c4 7e 06
     
    1169611702    add ax, 00800h                            ; 05 00 08
    1169711703    mov word [bp+008h], ax                    ; 89 46 08
    11698     jmp short 07e47h                          ; eb d7
     11704    jmp short 07e54h                          ; eb d7
    1169911705    mov cx, bx                                ; 89 d9
    1170011706    les di, [bp+006h]                         ; c4 7e 06
     
    1170711713    pop bp                                    ; 5d
    1170811714    retn 0000ah                               ; c2 0a 00
    11709 scsi_cmd_data_out_:                          ; 0xf7e84 LB 0xd5
     11715scsi_cmd_data_out_:                          ; 0xf7e91 LB 0xd5
    1171011716    push bp                                   ; 55
    1171111717    mov bp, sp                                ; 89 e5
     
    1172311729    ; sub ah, ah                                ; 2a e4
    1172411730    test AL, strict byte 001h                 ; a8 01
    11725     jne short 07e9ah                          ; 75 f7
     11731    jne short 07ea7h                          ; 75 f7
    1172611732    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
    11727     jne short 07eadh                          ; 75 04
     11733    jne short 07ebah                          ; 75 04
    1172811734    xor ax, ax                                ; 31 c0
    11729     jmp short 07eb1h                          ; eb 04
     11735    jmp short 07ebeh                          ; eb 04
    1173011736    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1173111737    mov si, ax                                ; 89 c6
     
    1173511741    shr dx, 1                                 ; d1 ea
    1173611742    rcr ax, 1                                 ; d1 d8
    11737     loop 07ebbh                               ; e2 fa
     11743    loop 07ec8h                               ; e2 fa
    1173811744    mov cx, ax                                ; 89 c1
    1173911745    and cx, 000f0h                            ; 81 e1 f0 00
     
    1175311759    shr dx, 1                                 ; d1 ea
    1175411760    rcr ax, 1                                 ; d1 d8
    11755     loop 07ee0h                               ; e2 fa
     11761    loop 07eedh                               ; e2 fa
    1175611762    mov dx, di                                ; 89 fa
    1175711763    out DX, AL                                ; ee
     
    1175911765    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1176011766    cmp cx, ax                                ; 39 c1
    11761     jnc short 07f01h                          ; 73 0e
     11767    jnc short 07f0eh                          ; 73 0e
    1176211768    les si, [bp-00ah]                         ; c4 76 f6
    1176311769    add si, cx                                ; 01 ce
     
    1176611772    out DX, AL                                ; ee
    1176711773    inc cx                                    ; 41
    11768     jmp short 07eebh                          ; eb ea
     11774    jmp short 07ef8h                          ; eb ea
    1176911775    lea dx, [di+001h]                         ; 8d 55 01
    1177011776    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11771     jne short 07f10h                          ; 75 06
     11777    jne short 07f1dh                          ; 75 06
    1177211778    cmp bx, 08000h                            ; 81 fb 00 80
    11773     jbe short 07f2bh                          ; 76 1b
     11779    jbe short 07f38h                          ; 76 1b
    1177411780    mov cx, 08000h                            ; b9 00 80
    1177511781    les si, [bp+006h]                         ; c4 76 06
     
    1178111787    add ax, 00800h                            ; 05 00 08
    1178211788    mov word [bp+008h], ax                    ; 89 46 08
    11783     jmp short 07f01h                          ; eb d6
     11789    jmp short 07f0eh                          ; eb d6
    1178411790    mov cx, bx                                ; 89 d9
    1178511791    les si, [bp+006h]                         ; c4 76 06
     
    1179111797    ; sub ah, ah                                ; 2a e4
    1179211798    test AL, strict byte 001h                 ; a8 01
    11793     jne short 07f33h                          ; 75 f7
     11799    jne short 07f40h                          ; 75 f7
    1179411800    test AL, strict byte 002h                 ; a8 02
    11795     je short 07f4eh                           ; 74 0e
     11801    je short 07f5bh                           ; 74 0e
    1179611802    lea dx, [di+003h]                         ; 8d 55 03
    1179711803    xor al, al                                ; 30 c0
     
    1180111807    ; sub ah, ah                                ; 2a e4
    1180211808    mov ax, strict word 00004h                ; b8 04 00
    11803     jmp short 07f50h                          ; eb 02
     11809    jmp short 07f5dh                          ; eb 02
    1180411810    xor ax, ax                                ; 31 c0
    1180511811    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1180811814    pop bp                                    ; 5d
    1180911815    retn 0000ah                               ; c2 0a 00
    11810 @scsi_read_sectors:                          ; 0xf7f59 LB 0xdb
     11816@scsi_read_sectors:                          ; 0xf7f66 LB 0xdb
    1181111817    push bp                                   ; 55
    1181211818    mov bp, sp                                ; 89 e5
     
    1182011826    mov byte [bp-006h], al                    ; 88 46 fa
    1182111827    cmp AL, strict byte 004h                  ; 3c 04
    11822     jbe short 07f87h                          ; 76 13
     11828    jbe short 07f94h                          ; 76 13
    1182311829    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1182411830    push ax                                   ; 50
     
    1182611832    push 00b30h                               ; 68 30 0b
    1182711833    push strict byte 00007h                   ; 6a 07
    11828     call 019dah                               ; e8 56 9a
     11834    call 019dah                               ; e8 49 9a
    1182911835    add sp, strict byte 00008h                ; 83 c4 08
    1183011836    mov es, [bp+006h]                         ; 8e 46 06
     
    1186511871    sal word [bp-00ah], 1                     ; d1 66 f6
    1186611872    rcl word [bp-008h], 1                     ; d1 56 f8
    11867     loop 07ff0h                               ; e2 f8
     11873    loop 07ffdh                               ; e2 f8
    1186811874    push dword [bp-00ah]                      ; 66 ff 76 f6
    1186911875    db  066h, 026h, 0ffh, 074h, 008h
     
    1187311879    mov cx, ss                                ; 8c d1
    1187411880    lea bx, [bp-01ah]                         ; 8d 5e e6
    11875     call 07dafh                               ; e8 a2 fd
     11881    call 07dbch                               ; e8 a2 fd
    1187611882    mov ah, al                                ; 88 c4
    1187711883    test al, al                               ; 84 c0
    11878     jne short 08028h                          ; 75 15
     11884    jne short 08035h                          ; 75 15
    1187911885    mov es, [bp+006h]                         ; 8e 46 06
    1188011886    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1188911895    pop bp                                    ; 5d
    1189011896    retn 00004h                               ; c2 04 00
    11891 @scsi_write_sectors:                         ; 0xf8034 LB 0xdb
     11897@scsi_write_sectors:                         ; 0xf8041 LB 0xdb
    1189211898    push bp                                   ; 55
    1189311899    mov bp, sp                                ; 89 e5
     
    1190111907    mov byte [bp-006h], al                    ; 88 46 fa
    1190211908    cmp AL, strict byte 004h                  ; 3c 04
    11903     jbe short 08062h                          ; 76 13
     11909    jbe short 0806fh                          ; 76 13
    1190411910    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1190511911    push ax                                   ; 50
     
    1190711913    push 00b30h                               ; 68 30 0b
    1190811914    push strict byte 00007h                   ; 6a 07
    11909     call 019dah                               ; e8 7b 99
     11915    call 019dah                               ; e8 6e 99
    1191011916    add sp, strict byte 00008h                ; 83 c4 08
    1191111917    mov es, [bp+006h]                         ; 8e 46 06
     
    1194611952    sal word [bp-00ah], 1                     ; d1 66 f6
    1194711953    rcl word [bp-008h], 1                     ; d1 56 f8
    11948     loop 080cbh                               ; e2 f8
     11954    loop 080d8h                               ; e2 f8
    1194911955    push dword [bp-00ah]                      ; 66 ff 76 f6
    1195011956    db  066h, 026h, 0ffh, 074h, 008h
     
    1195411960    mov cx, ss                                ; 8c d1
    1195511961    lea bx, [bp-01ah]                         ; 8d 5e e6
    11956     call 07e84h                               ; e8 9c fd
     11962    call 07e91h                               ; e8 9c fd
    1195711963    mov ah, al                                ; 88 c4
    1195811964    test al, al                               ; 84 c0
    11959     jne short 08103h                          ; 75 15
     11965    jne short 08110h                          ; 75 15
    1196011966    mov es, [bp+006h]                         ; 8e 46 06
    1196111967    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1197011976    pop bp                                    ; 5d
    1197111977    retn 00004h                               ; c2 04 00
    11972 scsi_cmd_packet_:                            ; 0xf810f LB 0x166
     11978scsi_cmd_packet_:                            ; 0xf811c LB 0x166
    1197311979    push bp                                   ; 55
    1197411980    mov bp, sp                                ; 89 e5
     
    1198211988    mov dx, strict word 0000eh                ; ba 0e 00
    1198311989    mov ax, strict word 00040h                ; b8 40 00
    11984     call 016d4h                               ; e8 a9 95
     11990    call 016d4h                               ; e8 9c 95
    1198511991    mov si, 00122h                            ; be 22 01
    1198611992    mov word [bp-00eh], ax                    ; 89 46 f2
    1198711993    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    11988     jne short 08156h                          ; 75 1f
     11994    jne short 08163h                          ; 75 1f
    1198911995    mov bx, 00da0h                            ; bb a0 0d
    1199011996    mov cx, ds                                ; 8c d9
    1199111997    mov ax, strict word 00004h                ; b8 04 00
    11992     call 01999h                               ; e8 57 98
     11998    call 01999h                               ; e8 4a 98
    1199311999    push 00b62h                               ; 68 62 0b
    1199412000    push 00b72h                               ; 68 72 0b
    1199512001    push strict byte 00004h                   ; 6a 04
    11996     call 019dah                               ; e8 8d 98
     12002    call 019dah                               ; e8 80 98
    1199712003    add sp, strict byte 00006h                ; 83 c4 06
    1199812004    mov dx, strict word 00001h                ; ba 01 00
    11999     jmp near 0826ah                           ; e9 14 01
     12005    jmp near 08277h                           ; e9 14 01
    1200012006    sub di, strict byte 00008h                ; 83 ef 08
    1200112007    sal di, 002h                              ; c1 e7 02
     
    1201112017    ; sub ah, ah                                ; 2a e4
    1201212018    test AL, strict byte 001h                 ; a8 01
    12013     jne short 08172h                          ; 75 f7
     12019    jne short 0817fh                          ; 75 f7
    1201412020    xor ax, ax                                ; 31 c0
    1201512021    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1202712033    shr dx, 1                                 ; d1 ea
    1202812034    rcr ax, 1                                 ; d1 d8
    12029     loop 0819dh                               ; e2 fa
     12035    loop 081aah                               ; e2 fa
    1203012036    and ax, 000f0h                            ; 25 f0 00
    1203112037    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     
    1204512051    shr dx, 1                                 ; d1 ea
    1204612052    rcr ax, 1                                 ; d1 d8
    12047     loop 081c4h                               ; e2 fa
     12053    loop 081d1h                               ; e2 fa
    1204812054    mov dx, bx                                ; 89 da
    1204912055    out DX, AL                                ; ee
     
    1205112057    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1205212058    cmp cx, ax                                ; 39 c1
    12053     jnc short 081e5h                          ; 73 0e
     12059    jnc short 081f2h                          ; 73 0e
    1205412060    les di, [bp-00ch]                         ; c4 7e f4
    1205512061    add di, cx                                ; 01 cf
     
    1205812064    out DX, AL                                ; ee
    1205912065    inc cx                                    ; 41
    12060     jmp short 081cfh                          ; eb ea
     12066    jmp short 081dch                          ; eb ea
    1206112067    mov dx, bx                                ; 89 da
    1206212068    in AL, DX                                 ; ec
     
    1206412070    ; sub ah, ah                                ; 2a e4
    1206512071    test AL, strict byte 001h                 ; a8 01
    12066     jne short 081e5h                          ; 75 f7
     12072    jne short 081f2h                          ; 75 f7
    1206712073    test AL, strict byte 002h                 ; a8 02
    12068     je short 08200h                           ; 74 0e
     12074    je short 0820dh                           ; 74 0e
    1206912075    lea dx, [bx+003h]                         ; 8d 57 03
    1207012076    xor al, al                                ; 30 c0
     
    1207412080    ; sub ah, ah                                ; 2a e4
    1207512081    mov dx, strict word 00003h                ; ba 03 00
    12076     jmp short 0826ah                          ; eb 6a
     12082    jmp short 08277h                          ; eb 6a
    1207712083    mov ax, word [bp+004h]                    ; 8b 46 04
    1207812084    test ax, ax                               ; 85 c0
    12079     je short 0820fh                           ; 74 08
     12085    je short 0821ch                           ; 74 08
    1208012086    lea dx, [bx+001h]                         ; 8d 57 01
    1208112087    mov cx, ax                                ; 89 c1
    1208212088    in AL, DX                                 ; ec
    12083     loop 0820ch                               ; e2 fd
     12089    loop 08219h                               ; e2 fd
    1208412090    mov ax, word [bp+006h]                    ; 8b 46 06
    1208512091    mov es, [bp-00eh]                         ; 8e 46 f2
     
    1208912095    lea ax, [bx+001h]                         ; 8d 47 01
    1209012096    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12091     jne short 08230h                          ; 75 07
     12097    jne short 0823dh                          ; 75 07
    1209212098    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12093     jbe short 0824dh                          ; 76 1d
     12099    jbe short 0825ah                          ; 76 1d
    1209412100    mov dx, ax                                ; 89 c2
    1209512101    mov cx, 08000h                            ; b9 00 80
     
    1210112107    add ax, 00800h                            ; 05 00 08
    1210212108    mov word [bp+00eh], ax                    ; 89 46 0e
    12103     jmp short 08220h                          ; eb d3
     12109    jmp short 0822dh                          ; eb d3
    1210412110    mov dx, ax                                ; 89 c2
    1210512111    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1210812114    mov es, [bp-00eh]                         ; 8e 46 f2
    1210912115    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12110     je short 08268h                           ; 74 07
     12116    je short 08275h                           ; 74 07
    1211112117    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1211212118    in AL, DX                                 ; ec
    12113     loop 08265h                               ; e2 fd
     12119    loop 08272h                               ; e2 fd
    1211412120    xor dx, dx                                ; 31 d2
    1211512121    mov ax, dx                                ; 89 d0
     
    1211912125    pop bp                                    ; 5d
    1212012126    retn 0000ch                               ; c2 0c 00
    12121 scsi_enumerate_attached_devices_:            ; 0xf8275 LB 0x482
     12127scsi_enumerate_attached_devices_:            ; 0xf8282 LB 0x482
    1212212128    push bp                                   ; 55
    1212312129    mov bp, sp                                ; 89 e5
     
    1213112137    mov dx, strict word 0000eh                ; ba 0e 00
    1213212138    mov ax, strict word 00040h                ; b8 40 00
    12133     call 016d4h                               ; e8 49 94
     12139    call 016d4h                               ; e8 3c 94
    1213412140    mov di, 00122h                            ; bf 22 01
    1213512141    mov word [bp-02eh], ax                    ; 89 46 d2
    1213612142    mov word [bp-01eh], strict word 00000h    ; c7 46 e2 00 00
    12137     jmp near 08679h                           ; e9 e0 03
     12143    jmp near 08686h                           ; e9 e0 03
    1213812144    cmp AL, strict byte 004h                  ; 3c 04
    12139     jnc near 086edh                           ; 0f 83 4e 04
     12145    jnc near 086fah                           ; 0f 83 4e 04
    1214012146    mov cx, strict word 00010h                ; b9 10 00
    1214112147    xor bx, bx                                ; 31 db
    1214212148    mov dx, ss                                ; 8c d2
    1214312149    lea ax, [bp-046h]                         ; 8d 46 ba
    12144     call 09f50h                               ; e8 a4 1c
     12150    call 09f60h                               ; e8 a7 1c
    1214512151    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
    1214612152    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     
    1215512161    lea bx, [bp-046h]                         ; 8d 5e ba
    1215612162    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12157     call 07dafh                               ; e8 dc fa
     12163    call 07dbch                               ; e8 dc fa
    1215812164    test al, al                               ; 84 c0
    12159     je short 082e5h                           ; 74 0e
     12165    je short 082f2h                           ; 74 0e
    1216012166    push 00b92h                               ; 68 92 0b
    1216112167    push 00bcbh                               ; 68 cb 0b
    1216212168    push strict byte 00007h                   ; 6a 07
    12163     call 019dah                               ; e8 f8 96
     12169    call 019dah                               ; e8 eb 96
    1216412170    add sp, strict byte 00006h                ; 83 c4 06
    1216512171    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
     
    1219112197    sal ax, 1                                 ; d1 e0
    1219212198    rcl dx, 1                                 ; d1 d2
    12193     loop 08333h                               ; e2 fa
     12199    loop 08340h                               ; e2 fa
    1219412200    or bx, ax                                 ; 09 c3
    1219512201    or dx, si                                 ; 09 f2
     
    1219812204    mov word [bp-024h], bx                    ; 89 5e dc
    1219912205    test dx, dx                               ; 85 d2
    12200     jne short 08351h                          ; 75 06
     12206    jne short 0835eh                          ; 75 06
    1220112207    cmp bx, 00200h                            ; 81 fb 00 02
    12202     je short 08371h                           ; 74 20
     12208    je short 0837eh                           ; 74 20
    1220312209    mov bx, 00da0h                            ; bb a0 0d
    1220412210    mov cx, ds                                ; 8c d9
    1220512211    mov ax, strict word 00004h                ; b8 04 00
    12206     call 01999h                               ; e8 3d 96
     12212    call 01999h                               ; e8 30 96
    1220712213    push dx                                   ; 52
    1220812214    push word [bp-024h]                       ; ff 76 dc
     
    1221012216    push 00beah                               ; 68 ea 0b
    1221112217    push strict byte 00004h                   ; 6a 04
    12212     call 019dah                               ; e8 6f 96
     12218    call 019dah                               ; e8 62 96
    1221312219    add sp, strict byte 0000ah                ; 83 c4 0a
    12214     jmp near 08670h                           ; e9 ff 02
     12220    jmp near 0867dh                           ; e9 ff 02
    1221512221    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1221612222    cmp AL, strict byte 001h                  ; 3c 01
    12217     jc short 08384h                           ; 72 0c
    12218     jbe short 0838ch                          ; 76 12
     12223    jc short 08391h                           ; 72 0c
     12224    jbe short 08399h                          ; 76 12
    1221912225    cmp AL, strict byte 003h                  ; 3c 03
    12220     je short 08394h                           ; 74 16
     12226    je short 083a1h                           ; 74 16
    1222112227    cmp AL, strict byte 002h                  ; 3c 02
    12222     je short 08390h                           ; 74 0e
    12223     jmp short 083ddh                          ; eb 59
     12228    je short 0839dh                           ; 74 0e
     12229    jmp short 083eah                          ; eb 59
    1222412230    test al, al                               ; 84 c0
    12225     jne short 083ddh                          ; 75 55
     12231    jne short 083eah                          ; 75 55
    1222612232    mov BL, strict byte 090h                  ; b3 90
    12227     jmp short 08396h                          ; eb 0a
     12233    jmp short 083a3h                          ; eb 0a
    1222812234    mov BL, strict byte 098h                  ; b3 98
    12229     jmp short 08396h                          ; eb 06
     12235    jmp short 083a3h                          ; eb 06
    1223012236    mov BL, strict byte 0a0h                  ; b3 a0
    12231     jmp short 08396h                          ; eb 02
     12237    jmp short 083a3h                          ; eb 02
    1223212238    mov BL, strict byte 0a8h                  ; b3 a8
    1223312239    mov al, bl                                ; 88 d8
     
    1223512241    movzx cx, al                              ; 0f b6 c8
    1223612242    mov ax, cx                                ; 89 c8
    12237     call 01714h                               ; e8 72 93
     12243    call 01714h                               ; e8 65 93
    1223812244    test al, al                               ; 84 c0
    12239     je short 083ddh                           ; 74 37
     12245    je short 083eah                           ; 74 37
    1224012246    mov al, bl                                ; 88 d8
    1224112247    db  0feh, 0c0h
    1224212248    ; inc al                                    ; fe c0
    1224312249    xor ah, ah                                ; 30 e4
    12244     call 01714h                               ; e8 65 93
     12250    call 01714h                               ; e8 58 93
    1224512251    movzx dx, al                              ; 0f b6 d0
    1224612252    sal dx, 008h                              ; c1 e2 08
    1224712253    movzx ax, bl                              ; 0f b6 c3
    12248     call 01714h                               ; e8 59 93
     12254    call 01714h                               ; e8 4c 93
    1224912255    xor ah, ah                                ; 30 e4
    1225012256    add ax, dx                                ; 01 d0
     
    1225412260    add AL, strict byte 002h                  ; 04 02
    1225512261    xor ah, ah                                ; 30 e4
    12256     call 01714h                               ; e8 49 93
     12262    call 01714h                               ; e8 3c 93
    1225712263    xor ah, ah                                ; 30 e4
    1225812264    mov word [bp-034h], ax                    ; 89 46 cc
    1225912265    mov ax, cx                                ; 89 c8
    12260     call 01714h                               ; e8 3f 93
     12266    call 01714h                               ; e8 32 93
    1226112267    xor ah, ah                                ; 30 e4
    1226212268    mov word [bp-032h], ax                    ; 89 46 ce
    12263     jmp near 084c6h                           ; e9 e9 00
     12269    jmp near 084d3h                           ; e9 e9 00
    1226412270    mov ax, word [bp-010h]                    ; 8b 46 f0
    1226512271    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1226712273    mov dx, word [bp-016h]                    ; 8b 56 ea
    1226812274    mov si, strict word 0000ch                ; be 0c 00
    12269     call 09f30h                               ; e8 41 1b
     12275    call 09f40h                               ; e8 44 1b
    1227012276    mov word [bp-018h], ax                    ; 89 46 e8
    1227112277    mov word [bp-014h], bx                    ; 89 5e ec
     
    1227412280    mov ax, word [bp-010h]                    ; 8b 46 f0
    1227512281    test ax, ax                               ; 85 c0
    12276     jnbe short 08418h                         ; 77 16
    12277     jne near 0848bh                           ; 0f 85 85 00
     12282    jnbe short 08425h                         ; 77 16
     12283    jne near 08498h                           ; 0f 85 85 00
    1227812284    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
    12279     jnbe short 08418h                         ; 77 0c
    12280     jne near 0848bh                           ; 0f 85 7b 00
     12285    jnbe short 08425h                         ; 77 0c
     12286    jne near 08498h                           ; 0f 85 7b 00
    1228112287    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
    12282     jnbe short 08418h                         ; 77 02
    12283     jne short 0848bh                          ; 75 73
     12288    jnbe short 08425h                         ; 77 02
     12289    jne short 08498h                          ; 75 73
    1228412290    mov dword [bp-034h], strict dword 0003f00ffh ; 66 c7 46 cc ff 00 3f 00
    1228512291    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1228712293    mov dx, word [bp-016h]                    ; 8b 56 ea
    1228812294    mov si, strict word 00006h                ; be 06 00
    12289     call 09f30h                               ; e8 01 1b
     12295    call 09f40h                               ; e8 04 1b
    1229012296    mov si, word [bp-020h]                    ; 8b 76 e0
    1229112297    add si, dx                                ; 01 d6
     
    1230512311    mov dx, si                                ; 89 f2
    1230612312    mov si, strict word 00008h                ; be 08 00
    12307     call 09f30h                               ; e8 d1 1a
     12313    call 09f40h                               ; e8 d4 1a
    1230812314    mov word [bp-022h], bx                    ; 89 5e de
    1230912315    mov word [bp-02ch], cx                    ; 89 4e d4
     
    1231412320    mov dx, word [bp-02ah]                    ; 8b 56 d6
    1231512321    mov si, strict word 00010h                ; be 10 00
    12316     call 09f30h                               ; e8 b6 1a
     12322    call 09f40h                               ; e8 b9 1a
    1231712323    mov si, word [bp-01ah]                    ; 8b 76 e6
    1231812324    add si, dx                                ; 01 d6
     
    1232112327    mov ax, word [bp-022h]                    ; 8b 46 de
    1232212328    adc ax, bx                                ; 11 d8
    12323     jmp short 084c6h                          ; eb 3b
     12329    jmp short 084d3h                          ; eb 3b
    1232412330    test ax, ax                               ; 85 c0
    12325     jnbe short 084a1h                         ; 77 12
    12326     jne short 084abh                          ; 75 1a
     12331    jnbe short 084aeh                         ; 77 12
     12332    jne short 084b8h                          ; 75 1a
    1232712333    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
    12328     jnbe short 084a1h                         ; 77 0a
    12329     jne short 084abh                          ; 75 12
     12334    jnbe short 084aeh                         ; 77 0a
     12335    jne short 084b8h                          ; 75 12
    1233012336    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
    12331     jnbe short 084a1h                         ; 77 02
    12332     jne short 084abh                          ; 75 0a
     12337    jnbe short 084aeh                         ; 77 02
     12338    jne short 084b8h                          ; 75 0a
    1233312339    mov dword [bp-034h], strict dword 000200080h ; 66 c7 46 cc 80 00 20 00
    12334     jmp short 084c2h                          ; eb 17
     12340    jmp short 084cfh                          ; eb 17
    1233512341    mov dword [bp-034h], strict dword 000200040h ; 66 c7 46 cc 40 00 20 00
    1233612342    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1233812344    mov dx, word [bp-016h]                    ; 8b 56 ea
    1233912345    mov si, strict word 0000bh                ; be 0b 00
    12340     call 09f30h                               ; e8 6e 1a
     12346    call 09f40h                               ; e8 71 1a
    1234112347    mov si, dx                                ; 89 d6
    1234212348    mov dx, cx                                ; 89 ca
     
    1237112377    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1237212378    test dx, dx                               ; 85 d2
    12373     jne short 08533h                          ; 75 06
     12379    jne short 08540h                          ; 75 06
    1237412380    cmp si, 00400h                            ; 81 fe 00 04
    12375     jbe short 08541h                          ; 76 0e
     12381    jbe short 0854eh                          ; 76 0e
    1237612382    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1237712383    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12378     jmp short 08549h                          ; eb 08
     12384    jmp short 08556h                          ; eb 08
    1237912385    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1238012386    mov word [es:bx+032h], si                 ; 26 89 77 32
     
    1238212388    mov cx, ds                                ; 8c d9
    1238312389    mov ax, strict word 00004h                ; b8 04 00
    12384     call 01999h                               ; e8 45 94
     12390    call 01999h                               ; e8 38 94
    1238512391    push word [bp-010h]                       ; ff 76 f0
    1238612392    push word [bp-030h]                       ; ff 76 d0
     
    1239512401    push 00c18h                               ; 68 18 0c
    1239612402    push strict byte 00004h                   ; 6a 04
    12397     call 019dah                               ; e8 64 94
     12403    call 019dah                               ; e8 57 94
    1239812404    add sp, strict byte 00018h                ; 83 c4 18
    1239912405    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
     
    1242012426    mov dx, strict word 00075h                ; ba 75 00
    1242112427    mov ax, strict word 00040h                ; b8 40 00
    12422     call 016b8h                               ; e8 f2 90
     12428    call 016b8h                               ; e8 e5 90
    1242312429    db  0feh, 0c0h
    1242412430    ; inc al                                    ; fe c0
     
    1242612432    mov dx, strict word 00075h                ; ba 75 00
    1242712433    mov ax, strict word 00040h                ; b8 40 00
    12428     call 016c6h                               ; e8 f2 90
     12434    call 016c6h                               ; e8 e5 90
    1242912435    inc byte [bp-00ch]                        ; fe 46 f4
    12430     jmp near 08665h                           ; e9 8b 00
     12436    jmp near 08672h                           ; e9 8b 00
    1243112437    mov bx, 00da0h                            ; bb a0 0d
    1243212438    mov cx, ds                                ; 8c d9
    1243312439    mov ax, strict word 00004h                ; b8 04 00
    12434     call 01999h                               ; e8 b4 93
     12440    call 01999h                               ; e8 a7 93
    1243512441    push word [bp-01eh]                       ; ff 76 e2
    1243612442    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    1243812444    push 00c46h                               ; 68 46 0c
    1243912445    push strict byte 00004h                   ; 6a 04
    12440     call 019dah                               ; e8 e5 93
     12446    call 019dah                               ; e8 d8 93
    1244112447    add sp, strict byte 00008h                ; 83 c4 08
    1244212448    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1247912485    inc word [bp-01eh]                        ; ff 46 e2
    1248012486    cmp word [bp-01eh], strict byte 00010h    ; 83 7e e2 10
    12481     jnl short 086edh                          ; 7d 74
     12487    jnl short 086fah                          ; 7d 74
    1248212488    mov byte [bp-046h], 012h                  ; c6 46 ba 12
    1248312489    xor al, al                                ; 30 c0
     
    1249612502    lea bx, [bp-046h]                         ; 8d 5e ba
    1249712503    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12498     call 07dafh                               ; e8 05 f7
     12504    call 07dbch                               ; e8 05 f7
    1249912505    test al, al                               ; 84 c0
    12500     je short 086bch                           ; 74 0e
     12506    je short 086c9h                           ; 74 0e
    1250112507    push 00b92h                               ; 68 92 0b
    1250212508    push 00bb2h                               ; 68 b2 0b
    1250312509    push strict byte 00007h                   ; 6a 07
    12504     call 019dah                               ; e8 21 93
     12510    call 019dah                               ; e8 14 93
    1250512511    add sp, strict byte 00006h                ; 83 c4 06
    1250612512    mov es, [bp-02eh]                         ; 8e 46 d2
     
    1250812514    mov byte [bp-00ch], al                    ; 88 46 f4
    1250912515    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12510     jne short 086d7h                          ; 75 09
     12516    jne short 086e4h                          ; 75 09
    1251112517    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
    12512     je near 08299h                            ; 0f 84 c2 fb
     12518    je near 082a6h                            ; 0f 84 c2 fb
    1251312519    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12514     jne short 08665h                          ; 75 87
     12520    jne short 08672h                          ; 75 87
    1251512521    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
    1251612522    and AL, strict byte 01fh                  ; 24 1f
    1251712523    cmp AL, strict byte 005h                  ; 3c 05
    12518     je near 085dah                            ; 0f 84 f0 fe
    12519     jmp near 08665h                           ; e9 78 ff
     12524    je near 085e7h                            ; 0f 84 f0 fe
     12525    jmp near 08672h                           ; e9 78 ff
    1252012526    lea sp, [bp-00ah]                         ; 8d 66 f6
    1252112527    pop di                                    ; 5f
     
    1252612532    pop bp                                    ; 5d
    1252712533    retn                                      ; c3
    12528 _scsi_init:                                  ; 0xf86f7 LB 0x66
     12534_scsi_init:                                  ; 0xf8704 LB 0x66
    1252912535    push bp                                   ; 55
    1253012536    mov bp, sp                                ; 89 e5
    1253112537    mov dx, strict word 0000eh                ; ba 0e 00
    1253212538    mov ax, strict word 00040h                ; b8 40 00
    12533     call 016d4h                               ; e8 d1 8f
     12539    call 016d4h                               ; e8 c4 8f
    1253412540    mov bx, 00122h                            ; bb 22 01
    1253512541    mov es, ax                                ; 8e c0
     
    1254212548    ; sub ah, ah                                ; 2a e4
    1254312549    cmp AL, strict byte 055h                  ; 3c 55
    12544     jne short 08727h                          ; 75 0c
     12550    jne short 08734h                          ; 75 0c
    1254512551    xor al, al                                ; 30 c0
    1254612552    mov dx, 00433h                            ; ba 33 04
    1254712553    out DX, AL                                ; ee
    1254812554    mov ax, 00430h                            ; b8 30 04
    12549     call 08275h                               ; e8 4e fb
     12555    call 08282h                               ; e8 4e fb
    1255012556    mov AL, strict byte 055h                  ; b0 55
    1255112557    mov dx, 00436h                            ; ba 36 04
     
    1255512561    ; sub ah, ah                                ; 2a e4
    1255612562    cmp AL, strict byte 055h                  ; 3c 55
    12557     jne short 08740h                          ; 75 0c
     12563    jne short 0874dh                          ; 75 0c
    1255812564    xor al, al                                ; 30 c0
    1255912565    mov dx, 00437h                            ; ba 37 04
    1256012566    out DX, AL                                ; ee
    1256112567    mov ax, 00434h                            ; b8 34 04
    12562     call 08275h                               ; e8 35 fb
     12568    call 08282h                               ; e8 35 fb
    1256312569    mov AL, strict byte 055h                  ; b0 55
    1256412570    mov dx, 0043ah                            ; ba 3a 04
     
    1256812574    ; sub ah, ah                                ; 2a e4
    1256912575    cmp AL, strict byte 055h                  ; 3c 55
    12570     jne short 08759h                          ; 75 0c
     12576    jne short 08766h                          ; 75 0c
    1257112577    xor al, al                                ; 30 c0
    1257212578    mov dx, 0043bh                            ; ba 3b 04
    1257312579    out DX, AL                                ; ee
    1257412580    mov ax, 00438h                            ; b8 38 04
    12575     call 08275h                               ; e8 1c fb
     12581    call 08282h                               ; e8 1c fb
    1257612582    mov sp, bp                                ; 89 ec
    1257712583    pop bp                                    ; 5d
    1257812584    retn                                      ; c3
    12579 ahci_ctrl_extract_bits_:                     ; 0xf875d LB 0x1b
     12585ahci_ctrl_extract_bits_:                     ; 0xf876a LB 0x1b
    1258012586    push si                                   ; 56
    1258112587    push bp                                   ; 55
     
    1258512591    and dx, cx                                ; 21 ca
    1258612592    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    12587     jcxz 08773h                               ; e3 06
     12593    jcxz 08780h                               ; e3 06
    1258812594    shr dx, 1                                 ; d1 ea
    1258912595    rcr ax, 1                                 ; d1 d8
    12590     loop 0876dh                               ; e2 fa
     12596    loop 0877ah                               ; e2 fa
    1259112597    pop bp                                    ; 5d
    1259212598    pop si                                    ; 5e
    1259312599    retn 00002h                               ; c2 02 00
    12594 ahci_addr_to_phys_:                          ; 0xf8778 LB 0x1e
     12600ahci_addr_to_phys_:                          ; 0xf8785 LB 0x1e
    1259512601    push bx                                   ; 53
    1259612602    push cx                                   ; 51
     
    1260312609    sal ax, 1                                 ; d1 e0
    1260412610    rcl dx, 1                                 ; d1 d2
    12605     loop 08786h                               ; e2 fa
     12611    loop 08793h                               ; e2 fa
    1260612612    xor cx, cx                                ; 31 c9
    1260712613    add ax, bx                                ; 01 d8
     
    1261112617    pop bx                                    ; 5b
    1261212618    retn                                      ; c3
    12613 ahci_port_cmd_sync_:                         ; 0xf8796 LB 0x14b
     12619ahci_port_cmd_sync_:                         ; 0xf87a3 LB 0x14b
    1261412620    push bp                                   ; 55
    1261512621    mov bp, sp                                ; 89 e5
     
    1262612632    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1262712633    cmp ah, 0ffh                              ; 80 fc ff
    12628     je near 088d9h                            ; 0f 84 20 01
     12634    je near 088e6h                            ; 0f 84 20 01
    1262912635    movzx dx, byte [es:si+00263h]             ; 26 0f b6 94 63 02
    1263012636    xor di, di                                ; 31 ff
     
    1263812644    lea ax, [si+00080h]                       ; 8d 84 80 00
    1263912645    mov dx, cx                                ; 89 ca
    12640     call 08778h                               ; e8 96 ff
     12646    call 08785h                               ; e8 96 ff
    1264112647    mov es, cx                                ; 8e c1
    1264212648    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1270112707    xchg dx, ax                               ; 92
    1270212708    test dh, 040h                             ; f6 c6 40
    12703     jne short 0886fh                          ; 75 04
     12709    jne short 0887ch                          ; 75 04
    1270412710    test AL, strict byte 001h                 ; a8 01
    12705     je short 08873h                           ; 74 04
     12711    je short 08880h                           ; 74 04
    1270612712    mov AL, strict byte 001h                  ; b0 01
    12707     jmp short 08875h                          ; eb 02
     12713    jmp short 08882h                          ; eb 02
    1270812714    xor al, al                                ; 30 c0
    1270912715    test al, al                               ; 84 c0
    12710     je short 08843h                           ; 74 ca
     12716    je short 08850h                           ; 74 ca
    1271112717    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
    1271212718    sal di, 007h                              ; c1 e7 07
     
    1276212768    pop bp                                    ; 5d
    1276312769    retn                                      ; c3
    12764 ahci_cmd_data_:                              ; 0xf88e1 LB 0x262
     12770ahci_cmd_data_:                              ; 0xf88ee LB 0x262
    1276512771    push bp                                   ; 55
    1276612772    mov bp, sp                                ; 89 e5
     
    1278712793    mov ax, 00080h                            ; b8 80 00
    1278812794    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12789     call 09f50h                               ; e8 31 16
     12795    call 09f60h                               ; e8 34 16
    1279012796    mov es, [bp-00ah]                         ; 8e 46 f6
    1279112797    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1280512811    mov dx, word [es:si]                      ; 26 8b 14
    1280612812    mov si, strict word 00008h                ; be 08 00
    12807     call 09f30h                               ; e8 cd 15
     12813    call 09f40h                               ; e8 d0 15
    1280812814    mov es, [bp-00ah]                         ; 8e 46 f6
    1280912815    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1281612822    mov dx, word [es:si]                      ; 26 8b 14
    1281712823    mov si, strict word 00010h                ; be 10 00
    12818     call 09f30h                               ; e8 a7 15
     12824    call 09f40h                               ; e8 aa 15
    1281912825    mov es, [bp-00ah]                         ; 8e 46 f6
    1282012826    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1282812834    mov dx, word [es:si]                      ; 26 8b 14
    1282912835    mov si, strict word 00018h                ; be 18 00
    12830     call 09f30h                               ; e8 7b 15
     12836    call 09f40h                               ; e8 7e 15
    1283112837    mov es, [bp-00ah]                         ; 8e 46 f6
    1283212838    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1283912845    mov dx, word [es:si]                      ; 26 8b 14
    1284012846    mov si, strict word 00020h                ; be 20 00
    12841     call 09f30h                               ; e8 55 15
     12847    call 09f40h                               ; e8 58 15
    1284212848    mov es, [bp-00ah]                         ; 8e 46 f6
    1284312849    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1285012856    mov dx, word [es:si]                      ; 26 8b 14
    1285112857    mov si, strict word 00028h                ; be 28 00
    12852     call 09f30h                               ; e8 2f 15
     12858    call 09f40h                               ; e8 32 15
    1285312859    mov es, [bp-00ah]                         ; 8e 46 f6
    1285412860    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1286412870    mov bx, word [bp-010h]                    ; 8b 5e f0
    1286512871    xor cx, cx                                ; 31 c9
    12866     call 09eb0h                               ; e8 7a 14
     12872    call 09ec0h                               ; e8 7d 14
    1286712873    push dx                                   ; 52
    1286812874    push ax                                   ; 50
     
    1287412880    mov ax, 0026ah                            ; b8 6a 02
    1287512881    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12876     call 09e04h                               ; e8 b2 13
     12882    call 09e11h                               ; e8 b2 13
    1287712883    mov es, [bp-00ah]                         ; 8e 46 f6
    1287812884    mov ax, word [es:di+0027eh]               ; 26 8b 85 7e 02
     
    1289512901    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1289612902    test ax, ax                               ; 85 c0
    12897     je short 08ae0h                           ; 74 39
     12903    je short 08aedh                           ; 74 39
    1289812904    dec ax                                    ; 48
    1289912905    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1291112917    mov al, byte [bp-008h]                    ; 8a 46 f8
    1291212918    cmp AL, strict byte 035h                  ; 3c 35
    12913     jne short 08aedh                          ; 75 06
     12919    jne short 08afah                          ; 75 06
    1291412920    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    12915     jmp short 08b04h                          ; eb 17
     12921    jmp short 08b11h                          ; eb 17
    1291612922    cmp AL, strict byte 0a0h                  ; 3c a0
    12917     jne short 08b00h                          ; 75 0f
     12923    jne short 08b0dh                          ; 75 0f
    1291812924    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1291912925    les bx, [bp-00eh]                         ; c4 5e f2
    1292012926    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    12921     jmp short 08b04h                          ; eb 04
     12927    jmp short 08b11h                          ; eb 04
    1292212928    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1292312929    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1292512931    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1292612932    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12927     call 08796h                               ; e8 81 fc
     12933    call 087a3h                               ; e8 81 fc
    1292812934    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1292912935    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1293212938    add ax, 0026ah                            ; 05 6a 02
    1293312939    mov dx, cx                                ; 89 ca
    12934     call 09e7dh                               ; e8 53 13
     12940    call 09e8ah                               ; e8 53 13
    1293512941    mov es, cx                                ; 8e c1
    1293612942    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1293712943    test al, al                               ; 84 c0
    12938     je short 08b39h                           ; 74 05
     12944    je short 08b46h                           ; 74 05
    1293912945    mov ax, strict word 00004h                ; b8 04 00
    12940     jmp short 08b3bh                          ; eb 02
     12946    jmp short 08b48h                          ; eb 02
    1294112947    xor ah, ah                                ; 30 e4
    1294212948    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1294612952    pop bp                                    ; 5d
    1294712953    retn                                      ; c3
    12948 ahci_port_deinit_current_:                   ; 0xf8b43 LB 0x17f
     12954ahci_port_deinit_current_:                   ; 0xf8b50 LB 0x17f
    1294912955    push bp                                   ; 55
    1295012956    mov bp, sp                                ; 89 e5
     
    1296112967    mov byte [bp-00ah], al                    ; 88 46 f6
    1296212968    cmp AL, strict byte 0ffh                  ; 3c ff
    12963     je near 08cb9h                            ; 0f 84 52 01
     12969    je near 08cc6h                            ; 0f 84 52 01
    1296412970    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1296512971    sal ax, 007h                              ; c1 e0 07
     
    1300413010    xchg dx, ax                               ; 92
    1300513011    test ax, 0c011h                           ; a9 11 c0
    13006     je short 08bc7h                           ; 74 04
     13012    je short 08bd4h                           ; 74 04
    1300713013    mov AL, strict byte 001h                  ; b0 01
    13008     jmp short 08bc9h                          ; eb 02
     13014    jmp short 08bd6h                          ; eb 02
    1300913015    xor al, al                                ; 30 c0
    1301013016    cmp AL, strict byte 001h                  ; 3c 01
    13011     je short 08b9bh                           ; 74 ce
     13017    je short 08ba8h                           ; 74 ce
    1301213018    mov cx, strict word 00020h                ; b9 20 00
    1301313019    xor bx, bx                                ; 31 db
    1301413020    mov ax, di                                ; 89 f8
    1301513021    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13016     call 09f50h                               ; e8 76 13
     13022    call 09f60h                               ; e8 79 13
    1301713023    lea ax, [di+00080h]                       ; 8d 85 80 00
    1301813024    mov cx, strict word 00040h                ; b9 40 00
    1301913025    xor bx, bx                                ; 31 db
    1302013026    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13021     call 09f50h                               ; e8 67 13
     13027    call 09f60h                               ; e8 6a 13
    1302213028    lea ax, [di+00200h]                       ; 8d 85 00 02
    1302313029    mov cx, strict word 00060h                ; b9 60 00
    1302413030    xor bx, bx                                ; 31 db
    1302513031    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13026     call 09f50h                               ; e8 58 13
     13032    call 09f60h                               ; e8 5b 13
    1302713033    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1302813034    sal ax, 007h                              ; c1 e0 07
     
    1312813134    pop bp                                    ; 5d
    1312913135    retn                                      ; c3
    13130 ahci_port_init_:                             ; 0xf8cc2 LB 0x24a
     13136ahci_port_init_:                             ; 0xf8ccf LB 0x24a
    1313113137    push bp                                   ; 55
    1313213138    mov bp, sp                                ; 89 e5
     
    1313813144    mov word [bp-00ah], dx                    ; 89 56 f6
    1313913145    mov byte [bp-008h], bl                    ; 88 5e f8
    13140     call 08b43h                               ; e8 6d fe
     13146    call 08b50h                               ; e8 6d fe
    1314113147    movzx ax, bl                              ; 0f b6 c3
    1314213148    sal ax, 007h                              ; c1 e0 07
     
    1318513191    xchg dx, ax                               ; 92
    1318613192    test ax, 0c011h                           ; a9 11 c0
    13187     je short 08d45h                           ; 74 04
     13193    je short 08d52h                           ; 74 04
    1318813194    mov AL, strict byte 001h                  ; b0 01
    13189     jmp short 08d47h                          ; eb 02
     13195    jmp short 08d54h                          ; eb 02
    1319013196    xor al, al                                ; 30 c0
    1319113197    cmp AL, strict byte 001h                  ; 3c 01
    13192     je short 08d11h                           ; 74 c6
     13198    je short 08d1eh                           ; 74 c6
    1319313199    mov cx, strict word 00020h                ; b9 20 00
    1319413200    xor bx, bx                                ; 31 db
    1319513201    mov ax, si                                ; 89 f0
    1319613202    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13197     call 09f50h                               ; e8 f8 11
     13203    call 09f60h                               ; e8 fb 11
    1319813204    lea ax, [si+00080h]                       ; 8d 84 80 00
    1319913205    mov cx, strict word 00040h                ; b9 40 00
    1320013206    xor bx, bx                                ; 31 db
    1320113207    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13202     call 09f50h                               ; e8 e9 11
     13208    call 09f60h                               ; e8 ec 11
    1320313209    lea di, [si+00200h]                       ; 8d bc 00 02
    1320413210    mov cx, strict word 00060h                ; b9 60 00
     
    1320613212    mov ax, di                                ; 89 f8
    1320713213    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13208     call 09f50h                               ; e8 d8 11
     13214    call 09f60h                               ; e8 db 11
    1320913215    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    1321013216    sal bx, 007h                              ; c1 e3 07
     
    1322313229    mov ax, di                                ; 89 f8
    1322413230    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13225     call 08778h                               ; e8 d3 f9
     13231    call 08785h                               ; e8 d3 f9
    1322613232    mov es, [bp-00ah]                         ; 8e 46 f6
    1322713233    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1326813274    mov ax, si                                ; 89 f0
    1326913275    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13270     call 08778h                               ; e8 67 f9
     13276    call 08785h                               ; e8 67 f9
    1327113277    mov es, [bp-00ah]                         ; 8e 46 f6
    1327213278    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1337313379    pop bp                                    ; 5d
    1337413380    retn                                      ; c3
    13375 @ahci_read_sectors:                          ; 0xf8f0c LB 0xa6
     13381@ahci_read_sectors:                          ; 0xf8f19 LB 0xa6
    1337613382    push bp                                   ; 55
    1337713383    mov bp, sp                                ; 89 e5
     
    1338313389    sub di, strict byte 0000ch                ; 83 ef 0c
    1338413390    cmp di, strict byte 00004h                ; 83 ff 04
    13385     jbe short 08f31h                          ; 76 0f
     13391    jbe short 08f3eh                          ; 76 0f
    1338613392    push di                                   ; 57
    1338713393    push 00c62h                               ; 68 62 0c
    1338813394    push 00c74h                               ; 68 74 0c
    1338913395    push strict byte 00007h                   ; 6a 07
    13390     call 019dah                               ; e8 ac 8a
     13396    call 019dah                               ; e8 9f 8a
    1339113397    add sp, strict byte 00008h                ; 83 c4 08
    1339213398    xor bx, bx                                ; 31 db
     
    1340213408    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
    1340313409    xor ax, ax                                ; 31 c0
    13404     call 08cc2h                               ; e8 65 fd
     13410    call 08ccfh                               ; e8 65 fd
    1340513411    mov bx, strict word 00025h                ; bb 25 00
    1340613412    mov ax, si                                ; 89 f0
    1340713413    mov dx, word [bp+006h]                    ; 8b 56 06
    13408     call 088e1h                               ; e8 79 f9
     13414    call 088eeh                               ; e8 79 f9
    1340913415    mov word [bp-006h], ax                    ; 89 46 fa
    1341013416    mov es, [bp+006h]                         ; 8e 46 06
     
    1343513441    pop bp                                    ; 5d
    1343613442    retn 00004h                               ; c2 04 00
    13437 @ahci_write_sectors:                         ; 0xf8fb2 LB 0x84
     13443@ahci_write_sectors:                         ; 0xf8fbf LB 0x84
    1343813444    push bp                                   ; 55
    1343913445    mov bp, sp                                ; 89 e5
     
    1344613452    sub dx, strict byte 0000ch                ; 83 ea 0c
    1344713453    cmp dx, strict byte 00004h                ; 83 fa 04
    13448     jbe short 08fdbh                          ; 76 0f
     13454    jbe short 08fe8h                          ; 76 0f
    1344913455    push dx                                   ; 52
    1345013456    push 00c93h                               ; 68 93 0c
    1345113457    push 00c74h                               ; 68 74 0c
    1345213458    push strict byte 00007h                   ; 6a 07
    13453     call 019dah                               ; e8 02 8a
     13459    call 019dah                               ; e8 f5 89
    1345413460    add sp, strict byte 00008h                ; 83 c4 08
    1345513461    xor bx, bx                                ; 31 db
     
    1346513471    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1346613472    xor ax, ax                                ; 31 c0
    13467     call 08cc2h                               ; e8 bd fc
     13473    call 08ccfh                               ; e8 bd fc
    1346813474    mov bx, strict word 00035h                ; bb 35 00
    1346913475    mov ax, si                                ; 89 f0
    1347013476    mov dx, cx                                ; 89 ca
    13471     call 088e1h                               ; e8 d2 f8
     13477    call 088eeh                               ; e8 d2 f8
    1347213478    mov dx, ax                                ; 89 c2
    1347313479    mov es, cx                                ; 8e c1
     
    1348413490    pop bp                                    ; 5d
    1348513491    retn 00004h                               ; c2 04 00
    13486 ahci_cmd_packet_:                            ; 0xf9036 LB 0x183
     13492ahci_cmd_packet_:                            ; 0xf9043 LB 0x183
    1348713493    push bp                                   ; 55
    1348813494    mov bp, sp                                ; 89 e5
     
    1349613502    mov dx, strict word 0000eh                ; ba 0e 00
    1349713503    mov ax, strict word 00040h                ; b8 40 00
    13498     call 016d4h                               ; e8 83 86
     13504    call 016d4h                               ; e8 76 86
    1349913505    mov si, 00122h                            ; be 22 01
    1350013506    mov word [bp-008h], ax                    ; 89 46 f8
    1350113507    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    13502     jne short 0907ch                          ; 75 1f
     13508    jne short 09089h                          ; 75 1f
    1350313509    mov bx, 00da0h                            ; bb a0 0d
    1350413510    mov cx, ds                                ; 8c d9
    1350513511    mov ax, strict word 00004h                ; b8 04 00
    13506     call 01999h                               ; e8 31 89
     13512    call 01999h                               ; e8 24 89
    1350713513    push 00ca6h                               ; 68 a6 0c
    1350813514    push 00cb6h                               ; 68 b6 0c
    1350913515    push strict byte 00004h                   ; 6a 04
    13510     call 019dah                               ; e8 67 89
     13516    call 019dah                               ; e8 5a 89
    1351113517    add sp, strict byte 00006h                ; 83 c4 06
    1351213518    mov ax, strict word 00001h                ; b8 01 00
    13513     jmp near 091b0h                           ; e9 34 01
     13519    jmp near 091bdh                           ; e9 34 01
    1351413520    test byte [bp+004h], 001h                 ; f6 46 04 01
    13515     jne short 09076h                          ; 75 f4
     13521    jne short 09083h                          ; 75 f4
    1351613522    mov ax, word [bp+006h]                    ; 8b 46 06
    1351713523    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1351913525    sal ax, 1                                 ; d1 e0
    1352013526    rcl dx, 1                                 ; d1 d2
    13521     loop 0908bh                               ; e2 fa
     13527    loop 09098h                               ; e2 fa
    1352213528    mov es, [bp-008h]                         ; 8e 46 f8
    1352313529    mov word [es:si], ax                      ; 26 89 04
     
    1353313539    mov dx, word [bp+008h]                    ; 8b 56 08
    1353413540    xor cx, cx                                ; 31 c9
    13535     call 09ef0h                               ; e8 2f 0e
     13541    call 09f00h                               ; e8 32 0e
    1353613542    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1353713543    xor di, di                                ; 31 ff
     
    1355013556    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1355113557    xor ax, ax                                ; 31 c0
    13552     call 08cc2h                               ; e8 c5 fb
     13558    call 08ccfh                               ; e8 c5 fb
    1355313559    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1355413560    push ax                                   ; 50
     
    1355713563    mov ax, 000c0h                            ; b8 c0 00
    1355813564    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13559     call 09f60h                               ; e8 4f 0e
     13565    call 09f70h                               ; e8 52 0e
    1356013566    mov es, [bp-008h]                         ; 8e 46 f8
    1356113567    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1356413570    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1356513571    test ax, ax                               ; 85 c0
    13566     je short 0914fh                           ; 74 27
     13572    je short 0915ch                           ; 74 27
    1356713573    dec ax                                    ; 48
    1356813574    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1357713583    mov ax, si                                ; 89 f0
    1357813584    mov dx, word [bp-008h]                    ; 8b 56 f8
    13579     call 088e1h                               ; e8 87 f7
     13585    call 088eeh                               ; e8 87 f7
    1358013586    les bx, [bp-00eh]                         ; c4 5e f2
    1358113587    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     
    1360413610    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1360513611    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    13606     jne short 091aeh                          ; 75 05
     13612    jne short 091bbh                          ; 75 05
    1360713613    mov ax, strict word 00004h                ; b8 04 00
    13608     jmp short 091b0h                          ; eb 02
     13614    jmp short 091bdh                          ; eb 02
    1360913615    xor ax, ax                                ; 31 c0
    1361013616    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1361313619    pop bp                                    ; 5d
    1361413620    retn 0000ch                               ; c2 0c 00
    13615 ahci_port_detect_device_:                    ; 0xf91b9 LB 0x4b1
     13621ahci_port_detect_device_:                    ; 0xf91c6 LB 0x4b1
    1361613622    push bp                                   ; 55
    1361713623    mov bp, sp                                ; 89 e5
     
    1362513631    movzx di, bl                              ; 0f b6 fb
    1362613632    mov bx, di                                ; 89 fb
    13627     call 08cc2h                               ; e8 ef fa
     13633    call 08ccfh                               ; e8 ef fa
    1362813634    mov dx, strict word 0000eh                ; ba 0e 00
    1362913635    mov ax, strict word 00040h                ; b8 40 00
    13630     call 016d4h                               ; e8 f8 84
     13636    call 016d4h                               ; e8 eb 84
    1363113637    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
    1363213638    mov word [bp-00eh], ax                    ; 89 46 f2
     
    1369713703    mov bx, strict word 0000fh                ; bb 0f 00
    1369813704    xor cx, cx                                ; 31 c9
    13699     call 0875dh                               ; e8 d7 f4
     13705    call 0876ah                               ; e8 d7 f4
    1370013706    test ax, ax                               ; 85 c0
    13701     je near 09662h                            ; 0f 84 d6 03
     13707    je near 0966fh                            ; 0f 84 d6 03
    1370213708    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1370313709    sal ax, 007h                              ; c1 e0 07
     
    1372713733    mov bx, strict word 0000fh                ; bb 0f 00
    1372813734    xor cx, cx                                ; 31 c9
    13729     call 0875dh                               ; e8 8b f4
     13735    call 0876ah                               ; e8 8b f4
    1373013736    cmp ax, strict word 00001h                ; 3d 01 00
    13731     je short 0928ch                           ; 74 b5
     13737    je short 09299h                           ; 74 b5
    1373213738    push strict byte 00000h                   ; 6a 00
    1373313739    mov bx, strict word 0000fh                ; bb 0f 00
     
    1373513741    mov ax, di                                ; 89 f8
    1373613742    mov dx, word [bp-022h]                    ; 8b 56 de
    13737     call 0875dh                               ; e8 77 f4
     13743    call 0876ah                               ; e8 77 f4
    1373813744    cmp ax, strict word 00003h                ; 3d 03 00
    13739     jne near 09662h                           ; 0f 85 75 03
     13745    jne near 0966fh                           ; 0f 85 75 03
    1374013746    mov ax, word [bp-018h]                    ; 8b 46 e8
    1374113747    add ax, 00130h                            ; 05 30 01
     
    1376413770    mov byte [bp-008h], al                    ; 88 46 f8
    1376513771    cmp AL, strict byte 004h                  ; 3c 04
    13766     jnc near 09662h                           ; 0f 83 2f 03
     13772    jnc near 0966fh                           ; 0f 83 2f 03
    1376713773    mov ax, word [bp-018h]                    ; 8b 46 e8
    1376813774    add ax, 00118h                            ; 05 18 01
     
    1381613822    add cl, 00ch                              ; 80 c1 0c
    1381713823    test dx, dx                               ; 85 d2
    13818     jne near 095b8h                           ; 0f 85 0d 02
     13824    jne near 095c5h                           ; 0f 85 0d 02
    1381913825    cmp di, 00101h                            ; 81 ff 01 01
    13820     jne near 095b8h                           ; 0f 85 05 02
     13826    jne near 095c5h                           ; 0f 85 05 02
    1382113827    les bx, [bp-010h]                         ; c4 5e f0
    1382213828    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     
    1383213838    mov ax, word [bp-010h]                    ; 8b 46 f0
    1383313839    mov dx, es                                ; 8c c2
    13834     call 088e1h                               ; e8 fa f4
     13840    call 088eeh                               ; e8 fa f4
    1383513841    mov byte [bp-00ch], cl                    ; 88 4e f4
    1383613842    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
     
    1384913855    mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00
    1385013856    cmp di, 00fffh                            ; 81 ff ff 0f
    13851     jne short 09440h                          ; 75 1e
     13857    jne short 0944dh                          ; 75 1e
    1385213858    cmp dx, strict byte 0ffffh                ; 83 fa ff
    13853     jne short 09440h                          ; 75 19
     13859    jne short 0944dh                          ; 75 19
    1385413860    mov dx, word [bp-0015ch]                  ; 8b 96 a4 fe
    1385513861    mov word [bp-014h], dx                    ; 89 56 ec
     
    1388813894    mov al, byte [bp-008h]                    ; 8a 46 f8
    1388913895    cmp AL, strict byte 001h                  ; 3c 01
    13890     jc short 094b9h                           ; 72 0c
    13891     jbe short 094c1h                          ; 76 12
     13896    jc short 094c6h                           ; 72 0c
     13897    jbe short 094ceh                          ; 76 12
    1389213898    cmp AL, strict byte 003h                  ; 3c 03
    13893     je short 094c9h                           ; 74 16
     13899    je short 094d6h                           ; 74 16
    1389413900    cmp AL, strict byte 002h                  ; 3c 02
    13895     je short 094c5h                           ; 74 0e
    13896     jmp short 09512h                          ; eb 59
     13901    je short 094d2h                           ; 74 0e
     13902    jmp short 0951fh                          ; eb 59
    1389713903    test al, al                               ; 84 c0
    13898     jne short 09512h                          ; 75 55
     13904    jne short 0951fh                          ; 75 55
    1389913905    mov DL, strict byte 040h                  ; b2 40
    13900     jmp short 094cbh                          ; eb 0a
     13906    jmp short 094d8h                          ; eb 0a
    1390113907    mov DL, strict byte 048h                  ; b2 48
    13902     jmp short 094cbh                          ; eb 06
     13908    jmp short 094d8h                          ; eb 06
    1390313909    mov DL, strict byte 050h                  ; b2 50
    13904     jmp short 094cbh                          ; eb 02
     13910    jmp short 094d8h                          ; eb 02
    1390513911    mov DL, strict byte 058h                  ; b2 58
    1390613912    mov al, dl                                ; 88 d0
     
    1390813914    movzx bx, al                              ; 0f b6 d8
    1390913915    mov ax, bx                                ; 89 d8
    13910     call 01714h                               ; e8 3d 82
     13916    call 01714h                               ; e8 30 82
    1391113917    test al, al                               ; 84 c0
    13912     je short 09512h                           ; 74 37
     13918    je short 0951fh                           ; 74 37
    1391313919    mov al, dl                                ; 88 d0
    1391413920    db  0feh, 0c0h
    1391513921    ; inc al                                    ; fe c0
    1391613922    xor ah, ah                                ; 30 e4
    13917     call 01714h                               ; e8 30 82
     13923    call 01714h                               ; e8 23 82
    1391813924    xor ah, ah                                ; 30 e4
    1391913925    mov si, ax                                ; 89 c6
    1392013926    sal si, 008h                              ; c1 e6 08
    1392113927    movzx ax, dl                              ; 0f b6 c2
    13922     call 01714h                               ; e8 23 82
     13928    call 01714h                               ; e8 16 82
    1392313929    xor ah, ah                                ; 30 e4
    1392413930    add ax, si                                ; 01 f0
     
    1392713933    add AL, strict byte 002h                  ; 04 02
    1392813934    xor ah, ah                                ; 30 e4
    13929     call 01714h                               ; e8 13 82
     13935    call 01714h                               ; e8 06 82
    1393013936    xor ah, ah                                ; 30 e4
    1393113937    mov word [bp-02ah], ax                    ; 89 46 d6
    1393213938    mov ax, bx                                ; 89 d8
    13933     call 01714h                               ; e8 09 82
     13939    call 01714h                               ; e8 fc 81
    1393413940    xor ah, ah                                ; 30 e4
    1393513941    mov word [bp-026h], ax                    ; 89 46 da
    13936     jmp short 09522h                          ; eb 10
     13942    jmp short 0952fh                          ; eb 10
    1393713943    push dword [bp-016h]                      ; 66 ff 76 ea
    1393813944    push di                                   ; 57
     
    1394013946    mov dx, ss                                ; 8c d2
    1394113947    lea ax, [bp-02ah]                         ; 8d 46 d6
    13942     call 059d6h                               ; e8 b4 c4
     13948    call 059d6h                               ; e8 a7 c4
    1394313949    mov bx, 00da0h                            ; bb a0 0d
    1394413950    mov cx, ds                                ; 8c d9
    1394513951    mov ax, strict word 00004h                ; b8 04 00
    13946     call 01999h                               ; e8 6c 84
     13952    call 01999h                               ; e8 5f 84
    1394713953    push dword [bp-016h]                      ; 66 ff 76 ea
    1394813954    push di                                   ; 57
     
    1396313969    push 00cd6h                               ; 68 d6 0c
    1396413970    push strict byte 00004h                   ; 6a 04
    13965     call 019dah                               ; e8 7e 84
     13971    call 019dah                               ; e8 71 84
    1396613972    add sp, strict byte 0001ch                ; 83 c4 1c
    1396713973    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    1399213998    mov dx, strict word 00075h                ; ba 75 00
    1399313999    mov ax, strict word 00040h                ; b8 40 00
    13994     call 016b8h                               ; e8 11 81
     14000    call 016b8h                               ; e8 04 81
    1399514001    db  0feh, 0c0h
    1399614002    ; inc al                                    ; fe c0
     
    1399814004    mov dx, strict word 00075h                ; ba 75 00
    1399914005    mov ax, strict word 00040h                ; b8 40 00
    14000     call 016c6h                               ; e8 11 81
    14001     jmp near 09654h                           ; e9 9c 00
     14006    call 016c6h                               ; e8 04 81
     14007    jmp near 09661h                           ; e9 9c 00
    1400214008    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14003     jne near 09654h                           ; 0f 85 94 00
     14009    jne near 09661h                           ; 0f 85 94 00
    1400414010    cmp di, 00101h                            ; 81 ff 01 01
    14005     jne near 09654h                           ; 0f 85 8c 00
     14011    jne near 09661h                           ; 0f 85 8c 00
    1400614012    les bx, [bp-010h]                         ; c4 5e f0
    1400714013    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     
    1401714023    mov ax, word [bp-010h]                    ; 8b 46 f0
    1401814024    mov dx, es                                ; 8c c2
    14019     call 088e1h                               ; e8 e5 f2
     14025    call 088eeh                               ; e8 e5 f2
    1402014026    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    1402114027    db  00fh, 095h, 0c0h
     
    1405414060    pop bp                                    ; 5d
    1405514061    retn                                      ; c3
    14056 ahci_mem_alloc_:                             ; 0xf966a LB 0x43
     14062ahci_mem_alloc_:                             ; 0xf9677 LB 0x43
    1405714063    push bp                                   ; 55
    1405814064    mov bp, sp                                ; 89 e5
     
    1406414070    mov dx, 00413h                            ; ba 13 04
    1406514071    xor ax, ax                                ; 31 c0
    14066     call 016d4h                               ; e8 5a 80
     14072    call 016d4h                               ; e8 4d 80
    1406714073    test ax, ax                               ; 85 c0
    14068     je short 096a3h                           ; 74 25
     14074    je short 096b0h                           ; 74 25
    1406914075    dec ax                                    ; 48
    1407014076    mov bx, ax                                ; 89 c3
     
    1407314079    sal ax, 1                                 ; d1 e0
    1407414080    rcl dx, 1                                 ; d1 d2
    14075     loop 09686h                               ; e2 fa
     14081    loop 09693h                               ; e2 fa
    1407614082    mov si, ax                                ; 89 c6
    1407714083    mov di, dx                                ; 89 d7
     
    1407914085    shr di, 1                                 ; d1 ef
    1408014086    rcr si, 1                                 ; d1 de
    14081     loop 09693h                               ; e2 fa
     14087    loop 096a0h                               ; e2 fa
    1408214088    mov dx, 00413h                            ; ba 13 04
    1408314089    xor ax, ax                                ; 31 c0
    14084     call 016e2h                               ; e8 41 80
     14090    call 016e2h                               ; e8 34 80
    1408514091    mov ax, si                                ; 89 f0
    1408614092    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1409214098    pop bp                                    ; 5d
    1409314099    retn                                      ; c3
    14094 ahci_hba_init_:                              ; 0xf96ad LB 0x166
     14100ahci_hba_init_:                              ; 0xf96ba LB 0x166
    1409514101    push bp                                   ; 55
    1409614102    mov bp, sp                                ; 89 e5
     
    1410414110    mov dx, strict word 0000eh                ; ba 0e 00
    1410514111    mov ax, strict word 00040h                ; b8 40 00
    14106     call 016d4h                               ; e8 11 80
     14112    call 016d4h                               ; e8 04 80
    1410714113    mov bx, 00122h                            ; bb 22 01
    1410814114    mov di, ax                                ; 89 c7
     
    1412114127    shr eax, 010h                             ; 66 c1 e8 10
    1412214128    xchg dx, ax                               ; 92
    14123     call 0966ah                               ; e8 83 ff
     14129    call 09677h                               ; e8 83 ff
    1412414130    mov word [bp-010h], ax                    ; 89 46 f0
    1412514131    test ax, ax                               ; 85 c0
    14126     je near 097f2h                            ; 0f 84 02 01
     14132    je near 097ffh                            ; 0f 84 02 01
    1412714133    mov ax, word [bp-010h]                    ; 8b 46 f0
    1412814134    mov es, di                                ; 8e c7
     
    1417414180    xchg dx, ax                               ; 92
    1417514181    test AL, strict byte 001h                 ; a8 01
    14176     jne short 09746h                          ; 75 de
     14182    jne short 09753h                          ; 75 de
    1417714183    xor ax, ax                                ; 31 c0
    1417814184    xor cx, cx                                ; 31 c9
     
    1419214198    mov bx, strict word 0001fh                ; bb 1f 00
    1419314199    xor cx, cx                                ; 31 c9
    14194     call 0875dh                               ; e8 d1 ef
     14200    call 0876ah                               ; e8 d1 ef
    1419514201    db  0feh, 0c0h
    1419614202    ; inc al                                    ; fe c0
    1419714203    mov byte [bp-00eh], al                    ; 88 46 f2
    1419814204    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    14199     jmp short 097b7h                          ; eb 20
     14205    jmp short 097c4h                          ; eb 20
    1420014206    xor al, al                                ; 30 c0
    1420114207    test al, al                               ; 84 c0
    14202     je short 097aeh                           ; 74 11
     14208    je short 097bbh                           ; 74 11
    1420314209    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    1420414210    xor ax, ax                                ; 31 c0
    1420514211    mov dx, word [bp-010h]                    ; 8b 56 f0
    14206     call 091b9h                               ; e8 10 fa
     14212    call 091c6h                               ; e8 10 fa
    1420714213    dec byte [bp-00eh]                        ; fe 4e f2
    14208     je short 097f0h                           ; 74 42
     14214    je short 097fdh                           ; 74 42
    1420914215    inc byte [bp-00ch]                        ; fe 46 f4
    1421014216    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    14211     jnc short 097f0h                          ; 73 39
     14217    jnc short 097fdh                          ; 73 39
    1421214218    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    1421314219    mov bx, strict word 00001h                ; bb 01 00
    1421414220    xor di, di                                ; 31 ff
    14215     jcxz 097c8h                               ; e3 06
     14221    jcxz 097d5h                               ; e3 06
    1421614222    sal bx, 1                                 ; d1 e3
    1421714223    rcl di, 1                                 ; d1 d7
    14218     loop 097c2h                               ; e2 fa
     14224    loop 097cfh                               ; e2 fa
    1421914225    mov ax, strict word 0000ch                ; b8 0c 00
    1422014226    xor cx, cx                                ; 31 c9
     
    1423214238    xchg dx, ax                               ; 92
    1423314239    test dx, di                               ; 85 fa
    14234     jne short 097ech                          ; 75 04
     14240    jne short 097f9h                          ; 75 04
    1423514241    test ax, bx                               ; 85 d8
    14236     je short 09797h                           ; 74 ab
     14242    je short 097a4h                           ; 74 ab
    1423714243    mov AL, strict byte 001h                  ; b0 01
    14238     jmp short 09799h                          ; eb a9
     14244    jmp short 097a6h                          ; eb a9
    1423914245    xor ax, ax                                ; 31 c0
    1424014246    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1424614252    pop bp                                    ; 5d
    1424714253    retn                                      ; c3
    14248     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0e2h, 098h, 0c0h, 098h, 0c6h, 098h, 0cch, 098h, 0d2h
    14249     db  098h, 0d8h, 098h, 0deh, 098h, 0e2h, 098h
    14250 _ahci_init:                                  ; 0xf9813 LB 0xfe
     14254    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0efh, 098h, 0cdh, 098h, 0d3h, 098h, 0d9h, 098h, 0dfh
     14255    db  098h, 0e5h, 098h, 0ebh, 098h, 0efh, 098h
     14256_ahci_init:                                  ; 0xf9820 LB 0xfe
    1425114257    push bp                                   ; 55
    1425214258    mov bp, sp                                ; 89 e5
     
    1425614262    mov ax, 00601h                            ; b8 01 06
    1425714263    mov dx, strict word 00001h                ; ba 01 00
    14258     call 09d31h                               ; e8 0d 05
     14264    call 09d3eh                               ; e8 0d 05
    1425914265    mov dx, ax                                ; 89 c2
    1426014266    cmp ax, strict word 0ffffh                ; 3d ff ff
    14261     je near 0990ah                            ; 0f 84 dd 00
     14267    je near 09917h                            ; 0f 84 dd 00
    1426214268    xor al, al                                ; 30 c0
    1426314269    shr ax, 008h                              ; c1 e8 08
     
    1426714273    xor ah, ah                                ; 30 e4
    1426814274    mov bx, strict word 00034h                ; bb 34 00
    14269     call 09d5ch                               ; e8 1a 05
     14275    call 09d69h                               ; e8 1a 05
    1427014276    mov cl, al                                ; 88 c1
    1427114277    test cl, cl                               ; 84 c9
    14272     je short 0986bh                           ; 74 23
     14278    je short 09878h                           ; 74 23
    1427314279    movzx bx, cl                              ; 0f b6 d9
    1427414280    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1427614282    mov dx, di                                ; 89 fa
    1427714283    mov ax, si                                ; 89 f0
    14278     call 09d5ch                               ; e8 02 05
     14284    call 09d69h                               ; e8 02 05
    1427914285    cmp AL, strict byte 012h                  ; 3c 12
    14280     je short 0986bh                           ; 74 0d
     14286    je short 09878h                           ; 74 0d
    1428114287    mov al, cl                                ; 88 c8
    1428214288    db  0feh, 0c0h
     
    1428514291    mov dx, di                                ; 89 fa
    1428614292    mov ax, si                                ; 89 f0
    14287     jmp short 0983fh                          ; eb d4
     14293    jmp short 0984ch                          ; eb d4
    1428814294    test cl, cl                               ; 84 c9
    14289     je near 0990ah                            ; 0f 84 99 00
     14295    je near 09917h                            ; 0f 84 99 00
    1429014296    add cl, 002h                              ; 80 c1 02
    1429114297    movzx bx, cl                              ; 0f b6 d9
     
    1429414300    mov dx, di                                ; 89 fa
    1429514301    mov ax, si                                ; 89 f0
    14296     call 09d5ch                               ; e8 d6 04
     14302    call 09d69h                               ; e8 d6 04
    1429714303    cmp AL, strict byte 010h                  ; 3c 10
    14298     jne near 0990ah                           ; 0f 85 7e 00
     14304    jne near 09917h                           ; 0f 85 7e 00
    1429914305    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1430014306    mov al, cl                                ; 88 c8
     
    1430314309    mov dx, di                                ; 89 fa
    1430414310    mov ax, si                                ; 89 f0
    14305     call 09d80h                               ; e8 e2 04
     14311    call 09d8dh                               ; e8 e2 04
    1430614312    mov dx, ax                                ; 89 c2
    1430714313    and ax, strict word 0000fh                ; 25 0f 00
    1430814314    sub ax, strict word 00004h                ; 2d 04 00
    1430914315    cmp ax, strict word 0000bh                ; 3d 0b 00
    14310     jnbe short 098e2h                         ; 77 37
     14316    jnbe short 098efh                         ; 77 37
    1431114317    push CS                                   ; 0e
    1431214318    pop ES                                    ; 07
    1431314319    mov cx, strict word 00008h                ; b9 08 00
    14314     mov di, 097fch                            ; bf fc 97
     14320    mov di, 09809h                            ; bf 09 98
    1431514321    repne scasb                               ; f2 ae
    1431614322    sal cx, 1                                 ; d1 e1
    1431714323    mov di, cx                                ; 89 cf
    14318     mov ax, word [cs:di-067fdh]               ; 2e 8b 85 03 98
     14324    mov ax, word [cs:di-067f0h]               ; 2e 8b 85 10 98
    1431914325    jmp ax                                    ; ff e0
    1432014326    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    14321     jmp short 098e2h                          ; eb 1c
     14327    jmp short 098efh                          ; eb 1c
    1432214328    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    14323     jmp short 098e2h                          ; eb 16
     14329    jmp short 098efh                          ; eb 16
    1432414330    mov byte [bp-006h], 018h                  ; c6 46 fa 18
    14325     jmp short 098e2h                          ; eb 10
     14331    jmp short 098efh                          ; eb 10
    1432614332    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
    14327     jmp short 098e2h                          ; eb 0a
     14333    jmp short 098efh                          ; eb 0a
    1432814334    mov byte [bp-006h], 020h                  ; c6 46 fa 20
    14329     jmp short 098e2h                          ; eb 04
     14335    jmp short 098efh                          ; eb 04
    1433014336    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1433114337    mov si, dx                                ; 89 d6
     
    1433414340    mov al, byte [bp-006h]                    ; 8a 46 fa
    1433514341    test al, al                               ; 84 c0
    14336     je short 0990ah                           ; 74 19
     14342    je short 09917h                           ; 74 19
    1433714343    movzx bx, al                              ; 0f b6 d8
    1433814344    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    1433914345    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    14340     call 09da2h                               ; e8 a3 04
     14346    call 09dafh                               ; e8 a3 04
    1434114347    test AL, strict byte 001h                 ; a8 01
    14342     je short 0990ah                           ; 74 07
     14348    je short 09917h                           ; 74 07
    1434314349    and AL, strict byte 0f0h                  ; 24 f0
    1434414350    add ax, si                                ; 01 f0
    14345     call 096adh                               ; e8 a3 fd
     14351    call 096bah                               ; e8 a3 fd
    1434614352    lea sp, [bp-004h]                         ; 8d 66 fc
    1434714353    pop di                                    ; 5f
     
    1434914355    pop bp                                    ; 5d
    1435014356    retn                                      ; c3
    14351 apm_out_str_:                                ; 0xf9911 LB 0x39
     14357apm_out_str_:                                ; 0xf991e LB 0x39
    1435214358    push bp                                   ; 55
    1435314359    mov bp, sp                                ; 89 e5
     
    1435514361    mov bx, ax                                ; 89 c3
    1435614362    cmp byte [bx], 000h                       ; 80 3f 00
    14357     je short 09926h                           ; 74 0a
     14363    je short 09933h                           ; 74 0a
    1435814364    mov al, byte [bx]                         ; 8a 07
    1435914365    out DX, AL                                ; ee
     
    1436214368    db  00ah, 0c0h
    1436314369    ; or al, al                                 ; 0a c0
    14364     jne short 0991eh                          ; 75 f8
     14370    jne short 0992bh                          ; 75 f8
    1436514371    lea sp, [bp-002h]                         ; 8d 66 fe
    1436614372    pop bx                                    ; 5b
    1436714373    pop bp                                    ; 5d
    1436814374    retn                                      ; c3
    14369     insw                                      ; 6d
     14375    jp short 098d4h                           ; 7a 99
     14376    inc si                                    ; 46
     14377    call far 099a7h:0998ch                    ; 9a 8c 99 a7 99
     14378    inc si                                    ; 46
     14379    call far 09a46h:099d2h                    ; 9a d2 99 46 9a
     14380    xlatb                                     ; d7
    1437014381    cwd                                       ; 99
    14371     cmp word [bp+si-06681h], bx               ; 39 9a 7f 99
    14372     call far 0c59ah:03999h                    ; 9a 99 39 9a c5
    14373     cwd                                       ; 99
    14374     cmp word [bp+si-06636h], bx               ; 39 9a ca 99
    14375     push CS                                   ; 0e
    14376     call far 09a0eh:09a0eh                    ; 9a 0e 9a 0e 9a
    14377     or word [bp+si-065f2h], bx                ; 09 9a 0e 9a
    14378     push CS                                   ; 0e
     14382    sbb bx, word [bp+si-065e5h]               ; 1b 9a 1b 9a
     14383    sbb bx, word [bp+si-065eah]               ; 1b 9a 16 9a
     14384    sbb bx, word [bp+si-065e5h]               ; 1b 9a 1b 9a
     14385    db  00fh
    1437914386    db  09ah
    14380     db  002h
    14381     db  09ah
    14382 _apm_function:                               ; 0xf994a LB 0xf5
     14387_apm_function:                               ; 0xf9957 LB 0xf5
    1438314388    push bp                                   ; 55
    1438414389    mov bp, sp                                ; 89 e5
     
    1438814393    xor ah, ah                                ; 30 e4
    1438914394    cmp ax, strict word 0000eh                ; 3d 0e 00
    14390     jnbe near 09a0eh                          ; 0f 87 b0 00
     14395    jnbe near 09a1bh                          ; 0f 87 b0 00
    1439114396    mov bx, ax                                ; 89 c3
    1439214397    add bx, ax                                ; 01 c3
    1439314398    mov dx, word [bp+018h]                    ; 8b 56 18
    1439414399    or dl, 001h                               ; 80 ca 01
    14395     jmp word [cs:bx-066d4h]                   ; 2e ff a7 2c 99
     14400    jmp word [cs:bx-066c7h]                   ; 2e ff a7 39 99
    1439614401    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1439714402    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1439814403    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    14399     jmp near 09a39h                           ; e9 ba 00
     14404    jmp near 09a46h                           ; e9 ba 00
    1440014405    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    14401     mov word [bp+00ch], 09fd4h                ; c7 46 0c d4 9f
     14406    mov word [bp+00ch], 09fe4h                ; c7 46 0c e4 9f
    1440214407    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1440314408    mov ax, strict word 0fff0h                ; b8 f0 ff
    1440414409    mov word [bp+006h], ax                    ; 89 46 06
    1440514410    mov word [bp+004h], ax                    ; 89 46 04
    14406     jmp near 09a39h                           ; e9 9f 00
     14411    jmp near 09a46h                           ; e9 9f 00
    1440714412    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1440814413    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1441714422    mov si, ax                                ; 89 c6
    1441814423    sal esi, 010h                             ; 66 c1 e6 10
    14419     jmp near 09a39h                           ; e9 74 00
     14424    jmp near 09a46h                           ; e9 74 00
    1442014425    sti                                       ; fb
    1442114426    hlt                                       ; f4
    14422     jmp near 09a39h                           ; e9 6f 00
     14427    jmp near 09a46h                           ; e9 6f 00
    1442314428    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    14424     je short 099efh                           ; 74 1f
     14429    je short 099fch                           ; 74 1f
    1442514430    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    14426     je short 099e7h                           ; 74 11
     14431    je short 099f4h                           ; 74 11
    1442714432    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    14428     jne short 099f7h                          ; 75 1b
    14429     mov dx, 08900h                            ; ba 00 89
     14433    jne short 09a04h                          ; 75 1b
     14434    mov dx, 0040fh                            ; ba 0f 04
    1443014435    mov ax, 00d10h                            ; b8 10 0d
    14431     call 09911h                               ; e8 2c ff
    14432     jmp short 09a39h                          ; eb 52
    14433     mov dx, 08900h                            ; ba 00 89
     14436    call 0991eh                               ; e8 2c ff
     14437    jmp short 09a46h                          ; eb 52
     14438    mov dx, 0040fh                            ; ba 0f 04
    1443414439    mov ax, 00d18h                            ; b8 18 0d
    14435     jmp short 099e2h                          ; eb f3
    14436     mov dx, 08900h                            ; ba 00 89
     14440    jmp short 099efh                          ; eb f3
     14441    mov dx, 0040fh                            ; ba 0f 04
    1443714442    mov ax, 00d20h                            ; b8 20 0d
    14438     jmp short 099e2h                          ; eb eb
     14443    jmp short 099efh                          ; eb eb
    1443914444    or ah, 00ah                               ; 80 cc 0a
    1444014445    mov word [bp+012h], ax                    ; 89 46 12
    1444114446    mov word [bp+018h], dx                    ; 89 56 18
    14442     jmp short 09a39h                          ; eb 37
     14447    jmp short 09a46h                          ; eb 37
    1444314448    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    14444     jmp short 09a39h                          ; eb 30
     14449    jmp short 09a46h                          ; eb 30
    1444514450    or ah, 080h                               ; 80 cc 80
    14446     jmp short 099fah                          ; eb ec
     14451    jmp short 09a07h                          ; eb ec
    1444714452    mov bx, 00da0h                            ; bb a0 0d
    1444814453    mov cx, ds                                ; 8c d9
    1444914454    mov ax, strict word 00004h                ; b8 04 00
    14450     call 01999h                               ; e8 80 7f
     14455    call 01999h                               ; e8 73 7f
    1445114456    push word [bp+00ch]                       ; ff 76 0c
    1445214457    push word [bp+012h]                       ; ff 76 12
    1445314458    push 00d29h                               ; 68 29 0d
    1445414459    push strict byte 00004h                   ; 6a 04
    14455     call 019dah                               ; e8 b3 7f
     14460    call 019dah                               ; e8 a6 7f
    1445614461    add sp, strict byte 00008h                ; 83 c4 08
    1445714462    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1446414469    pop bp                                    ; 5d
    1446514470    retn                                      ; c3
    14466 pci16_select_reg_:                           ; 0xf9a3f LB 0x24
     14471pci16_select_reg_:                           ; 0xf9a4c LB 0x24
    1446714472    push bp                                   ; 55
    1446814473    mov bp, sp                                ; 89 e5
     
    1448114486    pop bp                                    ; 5d
    1448214487    retn                                      ; c3
    14483 pci16_find_device_:                          ; 0xf9a63 LB 0xf7
     14488pci16_find_device_:                          ; 0xf9a70 LB 0xf7
    1448414489    push bp                                   ; 55
    1448514490    mov bp, sp                                ; 89 e5
     
    1449514500    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1449614501    test bl, 007h                             ; f6 c3 07
    14497     jne short 09aabh                          ; 75 2d
     14502    jne short 09ab8h                          ; 75 2d
    1449814503    mov dx, strict word 0000eh                ; ba 0e 00
    1449914504    mov ax, bx                                ; 89 d8
    14500     call 09a3fh                               ; e8 b9 ff
     14505    call 09a4ch                               ; e8 b9 ff
    1450114506    mov dx, 00cfeh                            ; ba fe 0c
    1450214507    in AL, DX                                 ; ec
     
    1450514510    mov byte [bp-006h], al                    ; 88 46 fa
    1450614511    cmp AL, strict byte 0ffh                  ; 3c ff
    14507     jne short 09a99h                          ; 75 06
     14512    jne short 09aa6h                          ; 75 06
    1450814513    add bx, strict byte 00008h                ; 83 c3 08
    14509     jmp near 09b2ch                           ; e9 93 00
     14514    jmp near 09b39h                           ; e9 93 00
    1451014515    test byte [bp-006h], 080h                 ; f6 46 fa 80
    14511     je short 09aa6h                           ; 74 07
     14516    je short 09ab3h                           ; 74 07
    1451214517    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    14513     jmp short 09aabh                          ; eb 05
     14518    jmp short 09ab8h                          ; eb 05
    1451414519    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
    1451514520    mov al, byte [bp-006h]                    ; 8a 46 fa
    1451614521    and AL, strict byte 007h                  ; 24 07
    1451714522    cmp AL, strict byte 001h                  ; 3c 01
    14518     jne short 09ad3h                          ; 75 1f
     14523    jne short 09ae0h                          ; 75 1f
    1451914524    mov ax, bx                                ; 89 d8
    1452014525    shr ax, 008h                              ; c1 e8 08
    1452114526    test ax, ax                               ; 85 c0
    14522     jne short 09ad3h                          ; 75 16
     14527    jne short 09ae0h                          ; 75 16
    1452314528    mov dx, strict word 0001ah                ; ba 1a 00
    1452414529    mov ax, bx                                ; 89 d8
    14525     call 09a3fh                               ; e8 7a ff
     14530    call 09a4ch                               ; e8 7a ff
    1452614531    mov dx, 00cfeh                            ; ba fe 0c
    1452714532    in AL, DX                                 ; ec
     
    1452914534    ; sub ah, ah                                ; 2a e4
    1453014535    cmp al, byte [bp-008h]                    ; 3a 46 f8
    14531     jbe short 09ad3h                          ; 76 03
     14536    jbe short 09ae0h                          ; 76 03
    1453214537    mov byte [bp-008h], al                    ; 88 46 f8
    1453314538    test di, di                               ; 85 ff
    14534     je short 09adch                           ; 74 05
     14539    je short 09ae9h                           ; 74 05
    1453514540    mov dx, strict word 00008h                ; ba 08 00
    14536     jmp short 09adeh                          ; eb 02
     14541    jmp short 09aebh                          ; eb 02
    1453714542    xor dx, dx                                ; 31 d2
    1453814543    mov ax, bx                                ; 89 d8
    14539     call 09a3fh                               ; e8 5c ff
     14544    call 09a4ch                               ; e8 5c ff
    1454014545    mov dx, 00cfch                            ; ba fc 0c
    1454114546    in eax, DX                                ; 66 ed
     
    1454814553    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    1454914554    test di, di                               ; 85 ff
    14550     je short 09b0dh                           ; 74 0f
     14555    je short 09b1ah                           ; 74 0f
    1455114556    mov cx, strict word 00008h                ; b9 08 00
    1455214557    shr dx, 1                                 ; d1 ea
    1455314558    rcr ax, 1                                 ; d1 d8
    14554     loop 09b01h                               ; e2 fa
     14559    loop 09b0eh                               ; e2 fa
    1455514560    mov word [bp-00eh], ax                    ; 89 46 f2
    1455614561    mov word [bp-00ch], dx                    ; 89 56 f4
    1455714562    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1455814563    cmp ax, word [bp-014h]                    ; 3b 46 ec
    14559     jne short 09b1dh                          ; 75 08
     14564    jne short 09b2ah                          ; 75 08
    1456014565    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1456114566    cmp ax, word [bp-012h]                    ; 3b 46 ee
    14562     je short 09b23h                           ; 74 06
     14567    je short 09b30h                           ; 74 06
    1456314568    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    14564     je short 09b29h                           ; 74 06
     14569    je short 09b36h                           ; 74 06
    1456514570    dec si                                    ; 4e
    1456614571    cmp si, strict byte 0ffffh                ; 83 fe ff
    14567     je short 09b3bh                           ; 74 12
     14572    je short 09b48h                           ; 74 12
    1456814573    add bx, word [bp-00ah]                    ; 03 5e f6
    1456914574    mov dx, bx                                ; 89 da
     
    1457114576    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1457214577    cmp dx, ax                                ; 39 c2
    14573     jbe near 09a79h                           ; 0f 86 3e ff
     14578    jbe near 09a86h                           ; 0f 86 3e ff
    1457414579    cmp si, strict byte 0ffffh                ; 83 fe ff
    14575     jne short 09b44h                          ; 75 04
     14580    jne short 09b51h                          ; 75 04
    1457614581    mov ax, bx                                ; 89 d8
    14577     jmp short 09b47h                          ; eb 03
     14582    jmp short 09b54h                          ; eb 03
    1457814583    mov ax, strict word 0ffffh                ; b8 ff ff
    1457914584    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1458214587    pop bp                                    ; 5d
    1458314588    retn                                      ; c3
    14584     cmp AL, strict byte 09ch                  ; 3c 9c
    14585     push si                                   ; 56
     14589    dec cx                                    ; 49
    1458614590    pushfw                                    ; 9c
    14587     imul bx, word [si-06382h], 09c91h         ; 69 9c 7e 9c 91 9c
    14588     movsb                                     ; a4
    14589     pushfw                                    ; 9c
    14590 _pci16_function:                             ; 0xf9b5a LB 0x1d7
     14591    arpl [si-0638ah], bx                      ; 63 9c 76 9c
     14592    mov bx, word [si-06362h]                  ; 8b 9c 9e 9c
     14593    mov CL, strict byte 09ch                  ; b1 9c
     14594_pci16_function:                             ; 0xf9b67 LB 0x1d7
    1459114595    push bp                                   ; 55
    1459214596    mov bp, sp                                ; 89 e5
     
    1460214606    xor ah, ah                                ; 30 e4
    1460314607    cmp bx, strict byte 00003h                ; 83 fb 03
    14604     jc short 09b93h                           ; 72 1a
    14605     jbe short 09bebh                          ; 76 70
     14608    jc short 09ba0h                           ; 72 1a
     14609    jbe short 09bf8h                          ; 76 70
    1460614610    cmp bx, strict byte 0000eh                ; 83 fb 0e
    14607     je near 09cb8h                            ; 0f 84 36 01
     14611    je near 09cc5h                            ; 0f 84 36 01
    1460814612    cmp bx, strict byte 00008h                ; 83 fb 08
    14609     jc near 09cfdh                            ; 0f 82 74 01
     14613    jc near 09d0ah                            ; 0f 82 74 01
    1461014614    cmp bx, strict byte 0000dh                ; 83 fb 0d
    14611     jbe near 09c10h                           ; 0f 86 80 00
    14612     jmp near 09cfdh                           ; e9 6a 01
     14615    jbe near 09c1dh                           ; 0f 86 80 00
     14616    jmp near 09d0ah                           ; e9 6a 01
    1461314617    cmp bx, strict byte 00002h                ; 83 fb 02
    14614     je short 09bbbh                           ; 74 23
     14618    je short 09bc8h                           ; 74 23
    1461514619    cmp bx, strict byte 00001h                ; 83 fb 01
    14616     jne near 09cfdh                           ; 0f 85 5e 01
     14620    jne near 09d0ah                           ; 0f 85 5e 01
    1461714621    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1461814622    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1462014624    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1462114625    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    14622     jmp near 09d2ah                           ; e9 6f 01
     14626    jmp near 09d37h                           ; e9 6f 01
    1462314627    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    14624     jne short 09bc7h                          ; 75 06
     14628    jne short 09bd4h                          ; 75 06
    1462514629    or ah, 083h                               ; 80 cc 83
    14626     jmp near 09d23h                           ; e9 5c 01
     14630    jmp near 09d30h                           ; e9 5c 01
    1462714631    mov bx, word [bp+008h]                    ; 8b 5e 08
    1462814632    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1462914633    mov ax, word [bp+018h]                    ; 8b 46 18
    1463014634    xor cx, cx                                ; 31 c9
    14631     call 09a63h                               ; e8 8e fe
     14635    call 09a70h                               ; e8 8e fe
    1463214636    cmp ax, strict word 0ffffh                ; 3d ff ff
    14633     jne short 09be5h                          ; 75 0b
     14637    jne short 09bf2h                          ; 75 0b
    1463414638    mov ax, word [bp+020h]                    ; 8b 46 20
    1463514639    xor ah, ah                                ; 30 e4
    1463614640    or ah, 086h                               ; 80 cc 86
    14637     jmp near 09d23h                           ; e9 3e 01
     14641    jmp near 09d30h                           ; e9 3e 01
    1463814642    mov word [bp+014h], ax                    ; 89 46 14
    14639     jmp near 09d2ah                           ; e9 3f 01
     14643    jmp near 09d37h                           ; e9 3f 01
    1464014644    mov bx, word [bp+008h]                    ; 8b 5e 08
    1464114645    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1464214646    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1464314647    mov cx, strict word 00001h                ; b9 01 00
    14644     call 09a63h                               ; e8 69 fe
     14648    call 09a70h                               ; e8 69 fe
    1464514649    cmp ax, strict word 0ffffh                ; 3d ff ff
    14646     jne short 09c0ah                          ; 75 0b
     14650    jne short 09c17h                          ; 75 0b
    1464714651    mov ax, word [bp+020h]                    ; 8b 46 20
    1464814652    xor ah, ah                                ; 30 e4
    1464914653    or ah, 086h                               ; 80 cc 86
    14650     jmp near 09d23h                           ; e9 19 01
     14654    jmp near 09d30h                           ; e9 19 01
    1465114655    mov word [bp+014h], ax                    ; 89 46 14
    14652     jmp near 09d2ah                           ; e9 1a 01
     14656    jmp near 09d37h                           ; e9 1a 01
    1465314657    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    14654     jc short 09c1dh                           ; 72 06
     14658    jc short 09c2ah                           ; 72 06
    1465514659    or ah, 087h                               ; 80 cc 87
    14656     jmp near 09d23h                           ; e9 06 01
     14660    jmp near 09d30h                           ; e9 06 01
    1465714661    mov dx, word [bp+004h]                    ; 8b 56 04
    1465814662    mov ax, word [bp+014h]                    ; 8b 46 14
    14659     call 09a3fh                               ; e8 19 fe
     14663    call 09a4ch                               ; e8 19 fe
    1466014664    mov bx, word [bp+020h]                    ; 8b 5e 20
    1466114665    xor bh, bh                                ; 30 ff
    1466214666    sub bx, strict byte 00008h                ; 83 eb 08
    1466314667    cmp bx, strict byte 00005h                ; 83 fb 05
    14664     jnbe near 09d2ah                          ; 0f 87 f5 00
     14668    jnbe near 09d37h                          ; 0f 87 f5 00
    1466514669    add bx, bx                                ; 01 db
    14666     jmp word [cs:bx-064b2h]                   ; 2e ff a7 4e 9b
     14670    jmp word [cs:bx-064a5h]                   ; 2e ff a7 5b 9b
    1466714671    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1466814672    xor bl, bl                                ; 30 db
     
    1467514679    or bx, ax                                 ; 09 c3
    1467614680    mov word [bp+01ch], bx                    ; 89 5e 1c
    14677     jmp near 09d2ah                           ; e9 d4 00
     14681    jmp near 09d37h                           ; e9 d4 00
    1467814682    mov dx, word [bp+004h]                    ; 8b 56 04
    1467914683    xor dh, dh                                ; 30 f6
     
    1468214686    in ax, DX                                 ; ed
    1468314687    mov word [bp+01ch], ax                    ; 89 46 1c
    14684     jmp near 09d2ah                           ; e9 c1 00
     14688    jmp near 09d37h                           ; e9 c1 00
    1468514689    mov dx, 00cfch                            ; ba fc 0c
    1468614690    in eax, DX                                ; 66 ed
     
    1469114695    mov word [bp+01ch], ax                    ; 89 46 1c
    1469214696    mov word [bp+01eh], dx                    ; 89 56 1e
    14693     jmp near 09d2ah                           ; e9 ac 00
     14697    jmp near 09d37h                           ; e9 ac 00
    1469414698    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1469514699    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1469814702    add dx, 00cfch                            ; 81 c2 fc 0c
    1469914703    out DX, AL                                ; ee
    14700     jmp near 09d2ah                           ; e9 99 00
     14704    jmp near 09d37h                           ; e9 99 00
    1470114705    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1470214706    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1470514709    add dx, 00cfch                            ; 81 c2 fc 0c
    1470614710    out DX, ax                                ; ef
    14707     jmp near 09d2ah                           ; e9 86 00
     14711    jmp near 09d37h                           ; e9 86 00
    1470814712    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1470914713    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1471414718    ; mov ax, cx                                ; 8b c1
    1471514719    out DX, eax                               ; 66 ef
    14716     jmp short 09d2ah                          ; eb 72
     14720    jmp short 09d37h                          ; eb 72
    1471714721    mov bx, word [bp+004h]                    ; 8b 5e 04
    1471814722    mov es, [bp+026h]                         ; 8e 46 26
     
    1472114725    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1472214726    cmp cx, word [es:bx]                      ; 26 3b 0f
    14723     jbe short 09cdeh                          ; 76 11
     14727    jbe short 09cebh                          ; 76 11
    1472414728    mov ax, word [bp+020h]                    ; 8b 46 20
    1472514729    xor ah, ah                                ; 30 e4
     
    1472714731    mov word [bp+020h], ax                    ; 89 46 20
    1472814732    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    14729     jmp short 09cf2h                          ; eb 14
     14733    jmp short 09cffh                          ; eb 14
    1473014734    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1473114735    mov si, 0f2c0h                            ; be c0 f2
     
    1473914743    les bx, [bp-008h]                         ; c4 5e f8
    1474014744    mov word [es:bx], ax                      ; 26 89 07
    14741     jmp short 09d2ah                          ; eb 2d
     14745    jmp short 09d37h                          ; eb 2d
    1474214746    mov bx, 00da0h                            ; bb a0 0d
    1474314747    mov cx, ds                                ; 8c d9
    1474414748    mov ax, strict word 00004h                ; b8 04 00
    14745     call 01999h                               ; e8 91 7c
     14749    call 01999h                               ; e8 84 7c
    1474614750    mov ax, word [bp+014h]                    ; 8b 46 14
    1474714751    push ax                                   ; 50
     
    1475014754    push 00d5ch                               ; 68 5c 0d
    1475114755    push strict byte 00004h                   ; 6a 04
    14752     call 019dah                               ; e8 c2 7c
     14756    call 019dah                               ; e8 b5 7c
    1475314757    add sp, strict byte 00008h                ; 83 c4 08
    1475414758    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1476214766    pop bp                                    ; 5d
    1476314767    retn                                      ; c3
    14764 pci_find_classcode_:                         ; 0xf9d31 LB 0x2b
     14768pci_find_classcode_:                         ; 0xf9d3e LB 0x2b
    1476514769    push bp                                   ; 55
    1476614770    mov bp, sp                                ; 89 e5
     
    1477714781    int 01ah                                  ; cd 1a
    1477814782    cmp ah, 000h                              ; 80 fc 00
    14779     je near 09d52h                            ; 0f 84 03 00
     14783    je near 09d5fh                            ; 0f 84 03 00
    1478014784    mov bx, strict word 0ffffh                ; bb ff ff
    1478114785    mov ax, bx                                ; 89 d8
     
    1478614790    pop bp                                    ; 5d
    1478714791    retn                                      ; c3
    14788 pci_read_config_byte_:                       ; 0xf9d5c LB 0x24
     14792pci_read_config_byte_:                       ; 0xf9d69 LB 0x24
    1478914793    push bp                                   ; 55
    1479014794    mov bp, sp                                ; 89 e5
     
    1480514809    pop bp                                    ; 5d
    1480614810    retn                                      ; c3
    14807 pci_read_config_word_:                       ; 0xf9d80 LB 0x22
     14811pci_read_config_word_:                       ; 0xf9d8d LB 0x22
    1480814812    push bp                                   ; 55
    1480914813    mov bp, sp                                ; 89 e5
     
    1482414828    pop bp                                    ; 5d
    1482514829    retn                                      ; c3
    14826 pci_read_config_dword_:                      ; 0xf9da2 LB 0x27
     14830pci_read_config_dword_:                      ; 0xf9daf LB 0x27
    1482714831    push bp                                   ; 55
    1482814832    mov bp, sp                                ; 89 e5
     
    1484514849    pop bp                                    ; 5d
    1484614850    retn                                      ; c3
    14847 vds_is_present_:                             ; 0xf9dc9 LB 0x1d
     14851vds_is_present_:                             ; 0xf9dd6 LB 0x1d
    1484814852    push bx                                   ; 53
    1484914853    push bp                                   ; 55
     
    1485314857    mov es, ax                                ; 8e c0
    1485414858    test byte [es:bx], 020h                   ; 26 f6 07 20
    14855     je short 09de1h                           ; 74 06
     14859    je short 09deeh                           ; 74 06
    1485614860    mov ax, strict word 00001h                ; b8 01 00
    1485714861    pop bp                                    ; 5d
     
    1486214866    pop bx                                    ; 5b
    1486314867    retn                                      ; c3
    14864 vds_real_to_lin_:                            ; 0xf9de6 LB 0x1e
     14868vds_real_to_lin_:                            ; 0xf9df3 LB 0x1e
    1486514869    push bx                                   ; 53
    1486614870    push cx                                   ; 51
     
    1487314877    sal ax, 1                                 ; d1 e0
    1487414878    rcl dx, 1                                 ; d1 d2
    14875     loop 09df4h                               ; e2 fa
     14879    loop 09e01h                               ; e2 fa
    1487614880    xor cx, cx                                ; 31 c9
    1487714881    add ax, bx                                ; 01 d8
     
    1488114885    pop bx                                    ; 5b
    1488214886    retn                                      ; c3
    14883 vds_build_sg_list_:                          ; 0xf9e04 LB 0x79
     14887vds_build_sg_list_:                          ; 0xf9e11 LB 0x79
    1488414888    push bp                                   ; 55
    1488514889    mov bp, sp                                ; 89 e5
     
    1489514899    mov bx, word [bp+006h]                    ; 8b 5e 06
    1489614900    mov word [es:di+002h], bx                 ; 26 89 5d 02
    14897     call 09de6h                               ; e8 c3 ff
     14901    call 09df3h                               ; e8 c3 ff
    1489814902    mov es, si                                ; 8e c6
    1489914903    mov word [es:di+004h], ax                 ; 26 89 45 04
    1490014904    mov word [es:di+006h], dx                 ; 26 89 55 06
    1490114905    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    14902     call 09dc9h                               ; e8 93 ff
     14906    call 09dd6h                               ; e8 93 ff
    1490314907    test ax, ax                               ; 85 c0
    14904     je short 09e4dh                           ; 74 13
     14908    je short 09e5ah                           ; 74 13
    1490514909    mov es, si                                ; 8e c6
    1490614910    mov ax, 08105h                            ; b8 05 81
    1490714911    mov dx, strict word 00000h                ; ba 00 00
    1490814912    int 04bh                                  ; cd 4b
    14909     jc near 09e4ah                            ; 0f 82 02 00
     14913    jc near 09e57h                            ; 0f 82 02 00
    1491014914    db  032h, 0c0h
    1491114915    ; xor al, al                                ; 32 c0
    1491214916    cbw                                       ; 98
    14913     jmp short 09e74h                          ; eb 27
     14917    jmp short 09e81h                          ; eb 27
    1491414918    mov es, si                                ; 8e c6
    1491514919    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1492814932    pop bp                                    ; 5d
    1492914933    retn 00004h                               ; c2 04 00
    14930 vds_free_sg_list_:                           ; 0xf9e7d LB 0x33
     14934vds_free_sg_list_:                           ; 0xf9e8a LB 0x36
    1493114935    push bp                                   ; 55
    1493214936    mov bp, sp                                ; 89 e5
     
    1493414938    push di                                   ; 57
    1493514939    mov bx, ax                                ; 89 c3
    14936     call 09dc9h                               ; e8 42 ff
     14940    call 09dd6h                               ; e8 42 ff
    1493714941    test ax, ax                               ; 85 c0
    14938     je short 09e9eh                           ; 74 13
     14942    je short 09eabh                           ; 74 13
    1493914943    mov di, bx                                ; 89 df
    1494014944    mov es, dx                                ; 8e c2
     
    1494214946    mov dx, strict word 00000h                ; ba 00 00
    1494314947    int 04bh                                  ; cd 4b
    14944     jc near 09e9dh                            ; 0f 82 02 00
     14948    jc near 09eaah                            ; 0f 82 02 00
    1494514949    db  032h, 0c0h
    1494614950    ; xor al, al                                ; 32 c0
     
    1495314957    pop bp                                    ; 5d
    1495414958    retn                                      ; c3
    14955     times 0x3 db 0
    14956 __U4M:                                       ; 0xf9eb0 LB 0x40
     14959    times 0x6 db 0
     14960__U4M:                                       ; 0xf9ec0 LB 0x40
    1495714961    pushfw                                    ; 9c
    1495814962    push eax                                  ; 66 50
     
    1498014984    retn                                      ; c3
    1498114985    times 0xf db 0
    14982 __U4D:                                       ; 0xf9ef0 LB 0x40
     14986__U4D:                                       ; 0xf9f00 LB 0x40
    1498314987    pushfw                                    ; 9c
    1498414988    push eax                                  ; 66 50
     
    1501115015    retn                                      ; c3
    1501215016    times 0x7 db 0
    15013 __U8RS:                                      ; 0xf9f30 LB 0x10
     15017__U8RS:                                      ; 0xf9f40 LB 0x10
    1501415018    test si, si                               ; 85 f6
    15015     je short 09f3fh                           ; 74 0b
     15019    je short 09f4fh                           ; 74 0b
    1501615020    shr ax, 1                                 ; d1 e8
    1501715021    rcr bx, 1                                 ; d1 db
     
    1501915023    rcr dx, 1                                 ; d1 da
    1502015024    dec si                                    ; 4e
    15021     jne short 09f34h                          ; 75 f5
     15025    jne short 09f44h                          ; 75 f5
    1502215026    retn                                      ; c3
    15023 __U8LS:                                      ; 0xf9f40 LB 0x10
     15027__U8LS:                                      ; 0xf9f50 LB 0x10
    1502415028    test si, si                               ; 85 f6
    15025     je short 09f4fh                           ; 74 0b
     15029    je short 09f5fh                           ; 74 0b
    1502615030    sal dx, 1                                 ; d1 e2
    1502715031    rcl cx, 1                                 ; d1 d1
     
    1502915033    rcl ax, 1                                 ; d1 d0
    1503015034    dec si                                    ; 4e
    15031     jne short 09f44h                          ; 75 f5
     15035    jne short 09f54h                          ; 75 f5
    1503215036    retn                                      ; c3
    15033 _fmemset_:                                   ; 0xf9f50 LB 0x10
     15037_fmemset_:                                   ; 0xf9f60 LB 0x10
    1503415038    push di                                   ; 57
    1503515039    mov es, dx                                ; 8e c2
     
    1504215046    retn                                      ; c3
    1504315047    times 0x3 db 0
    15044 _fmemcpy_:                                   ; 0xf9f60 LB 0x3a
     15048_fmemcpy_:                                   ; 0xf9f70 LB 0x3a
    1504515049    push bp                                   ; 55
    1504615050    db  08bh, 0ech
     
    1506715071    add byte [bx+si], al                      ; 00 00
    1506815072    add byte [bx+si], al                      ; 00 00
    15069     mov AL, strict byte 09fh                  ; b0 9f
    15070     mov DL, strict byte 09fh                  ; b2 9f
    15071     mov DH, strict byte 09fh                  ; b6 9f
    15072     mov DH, strict byte 09fh                  ; b6 9f
    15073     mov DH, strict byte 09fh                  ; b6 9f
    15074     mov ax, 0b89fh                            ; b8 9f b8
     15073    rcr byte [bx-0603eh], 0c6h                ; c0 9f c2 9f c6
    1507515074    lahf                                      ; 9f
    15076     mov dx, 0be9fh                            ; ba 9f be
     15075    db  0c6h, 09fh, 0c6h, 09fh, 0c8h
     15076    ; mov byte [bx-0603ah], 0c8h                ; c6 9f c6 9f c8
    1507715077    lahf                                      ; 9f
    15078     mov si, 0c09fh                            ; be 9f c0
     15078    enter 0ca9fh, 09fh                        ; c8 9f ca 9f
     15079    into                                      ; ce
    1507915080    lahf                                      ; 9f
    15080     lds bx, [bx-06039h]                       ; c5 9f c7 9f
    15081 apm_worker:                                  ; 0xf9f9a LB 0x3a
     15081    into                                      ; ce
     15082    lahf                                      ; 9f
     15083    rcr byte [bx-0602bh], 1                   ; d0 9f d5 9f
     15084    xlatb                                     ; d7
     15085    lahf                                      ; 9f
     15086apm_worker:                                  ; 0xf9faa LB 0x3a
    1508215087    sti                                       ; fb
    1508315088    push ax                                   ; 50
     
    1509115096    pop ax                                    ; 58
    1509215097    mov AH, strict byte 053h                  ; b4 53
    15093     jnc short 09fd0h                          ; 73 25
    15094     jmp word [cs:bp-06080h]                   ; 2e ff a6 80 9f
    15095     jmp short 09fceh                          ; eb 1c
     15098    jnc short 09fe0h                          ; 73 25
     15099    jmp word [cs:bp-06070h]                   ; 2e ff a6 90 9f
     15100    jmp short 09fdeh                          ; eb 1c
    1509615101    sti                                       ; fb
    1509715102    hlt                                       ; f4
    15098     jmp short 09fceh                          ; eb 18
    15099     jmp short 09fceh                          ; eb 16
    15100     jmp short 09fd0h                          ; eb 16
     15103    jmp short 09fdeh                          ; eb 18
     15104    jmp short 09fdeh                          ; eb 16
     15105    jmp short 09fe0h                          ; eb 16
    1510115106    mov AH, strict byte 080h                  ; b4 80
    15102     jmp short 09fd2h                          ; eb 14
    15103     jmp short 09fd0h                          ; eb 10
     15107    jmp short 09fe2h                          ; eb 14
     15108    jmp short 09fe0h                          ; eb 10
    1510415109    mov ax, 00102h                            ; b8 02 01
    15105     jmp short 09fceh                          ; eb 09
    15106     jmp short 09fceh                          ; eb 07
     15110    jmp short 09fdeh                          ; eb 09
     15111    jmp short 09fdeh                          ; eb 07
    1510715112    mov BL, strict byte 000h                  ; b3 00
    1510815113    mov cx, strict word 00000h                ; b9 00 00
    15109     jmp short 09fceh                          ; eb 00
     15114    jmp short 09fdeh                          ; eb 00
    1511015115    clc                                       ; f8
    1511115116    retn                                      ; c3
     
    1511315118    stc                                       ; f9
    1511415119    retn                                      ; c3
    15115 apm_pm16_entry:                              ; 0xf9fd4 LB 0x11
     15120apm_pm16_entry:                              ; 0xf9fe4 LB 0x11
    1511615121    mov AH, strict byte 002h                  ; b4 02
    1511715122    push DS                                   ; 1e
     
    1512115126    add bp, strict byte 00008h                ; 83 c5 08
    1512215127    mov ds, bp                                ; 8e dd
    15123     call 09f9ah                               ; e8 b8 ff
     15128    call 09faah                               ; e8 b8 ff
    1512415129    pop bp                                    ; 5d
    1512515130    pop DS                                    ; 1f
    1512615131    retf                                      ; cb
    1512715132
    15128   ; Padding 0x3a1b bytes at 0xf9fe5
    15129   times 14875 db 0
     15133  ; Padding 0x3a0b bytes at 0xf9ff5
     15134  times 14859 db 0
    1513015135
    1513115136section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1517415179    add bp, strict byte 00008h                ; 83 c5 08
    1517515180    push ebp                                  ; 66 55
    15176     mov bp, 09fd6h                            ; bd d6 9f
     15181    mov bp, 09fe6h                            ; bd e6 9f
    1517715182    add byte [bx+si], al                      ; 00 00
    1517815183    push ebp                                  ; 66 55
     
    1590715912    call 01d17h                               ; e8 d4 39
    1590815913    call 021a4h                               ; e8 5e 3e
    15909     call 09813h                               ; e8 ca b4
    15910     call 086f7h                               ; e8 ab a3
     15914    call 09820h                               ; e8 d7 b4
     15915    call 08704h                               ; e8 b8 a3
    1591115916    call 0ed2fh                               ; e8 e0 09
    1591215917    call 0e2d2h                               ; e8 80 ff
     
    1693116936    popfw                                     ; 9d
    1693216937    jmp short 0f8a7h                          ; eb 13
    16933     call 0994ah                               ; e8 b3 a0
     16938    call 09957h                               ; e8 c0 a0
    1693416939    jmp short 0f88eh                          ; eb f5
    1693516940int15_handler_mouse:                         ; 0xff899 LB 0x5
     
    1708417089    cld                                       ; fc
    1708517090    pushad                                    ; 66 60
    17086     call 09b5ah                               ; e8 dd 9c
     17091    call 09b67h                               ; e8 ea 9c
    1708717092    popad                                     ; 66 61
    1708817093    pop DS                                    ; 1f
     
    1719817203cpu_reset:                                   ; 0xffff0 LB 0x10
    1719917204    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17200     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0e6h
     17205    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 031h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum

    r63625 r66146  
    1 b20f88cf3304197b045e412b3dfcf0e0 *VBoxPcBios386.rom
     10d999d86f4e7faf14b247137b10e2926 *VBoxPcBios386.rom
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm

    r63625 r66146  
    988988    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    989989_pktacc:                                     ; 0xf006a LB 0xc
    990     db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 0c8h, 081h, 063h, 091h
     990    db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 0d7h, 081h, 072h, 091h
    991991_softrst:                                    ; 0xf0076 LB 0xc
    992992    db  000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 003h, 03ch, 003h, 03ch
    993993_dskacc:                                     ; 0xf0082 LB 0x2e
    994994    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 02ah, 046h, 02bh, 000h, 000h, 000h, 000h
    995     db  0f6h, 07fh, 0dfh, 080h, 031h, 090h, 0dbh, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     995    db  005h, 080h, 0eeh, 080h, 040h, 090h, 0eah, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    996996    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    997997
     
    11901190  times 1144 db 0
    11911191
    1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8dd8 class=CODE group=AUTO
     1192section _TEXT progbits vstart=0x1600 align=1 ; size=0x8de8 class=CODE group=AUTO
    11931193rom_scan_:                                   ; 0xf1600 LB 0x52
    11941194    push bp                                   ; 55
     
    15961596    mov bx, strict word 0000ah                ; bb 0a 00
    15971597    xor cx, cx                                ; 31 c9
    1598     call 0a070h                               ; e8 93 87
     1598    call 0a080h                               ; e8 a3 87
    15991599    mov word [bp-008h], ax                    ; 89 46 f8
    16001600    mov cx, dx                                ; 89 d1
     
    18331833    mov dx, word [bp-026h]                    ; 8b 56 da
    18341834    mov si, word [bp-01eh]                    ; 8b 76 e2
    1835     call 0a0a0h                               ; e8 88 85
     1835    call 0a0b0h                               ; e8 98 85
    18361836    mov ax, dx                                ; 89 d0
    18371837    xor ah, dh                                ; 30 f4
     
    22942294    mov dx, word [es:si]                      ; 26 8b 14
    22952295    mov si, strict word 00018h                ; be 18 00
    2296     call 0a0a0h                               ; e8 0e 81
     2296    call 0a0b0h                               ; e8 1e 81
    22972297    xor dh, dh                                ; 30 f6
    22982298    mov word [bp-014h], dx                    ; 89 56 ec
     
    23042304    mov dx, word [es:si]                      ; 26 8b 14
    23052305    mov si, strict word 00020h                ; be 20 00
    2306     call 0a0a0h                               ; e8 ee 80
     2306    call 0a0b0h                               ; e8 fe 80
    23072307    mov bx, dx                                ; 89 d3
    23082308    mov word [bp-010h], dx                    ; 89 56 f0
     
    23362336    mov dx, word [es:si]                      ; 26 8b 14
    23372337    mov si, strict word 00008h                ; be 08 00
    2338     call 0a0a0h                               ; e8 9b 80
     2338    call 0a0b0h                               ; e8 ab 80
    23392339    mov word [bp-010h], dx                    ; 89 56 f0
    23402340    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    23452345    mov dx, word [es:si]                      ; 26 8b 14
    23462346    mov si, strict word 00018h                ; be 18 00
    2347     call 0a0a0h                               ; e8 7d 80
     2347    call 0a0b0h                               ; e8 8d 80
    23482348    mov bl, dl                                ; 88 d3
    23492349    and bl, 00fh                              ; 80 e3 0f
     
    29232923    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    29242924    mov si, strict word 0000bh                ; be 0b 00
    2925     call 0a0a0h                               ; e8 a1 7a
     2925    call 0a0b0h                               ; e8 b1 7a
    29262926    mov word [bp-02ah], dx                    ; 89 56 d6
    29272927    mov word [bp-026h], cx                    ; 89 4e da
     
    32153215    mov dx, word [bp-022h]                    ; 8b 56 de
    32163216    mov si, strict word 00018h                ; be 18 00
    3217     call 0a0a0h                               ; e8 c4 77
     3217    call 0a0b0h                               ; e8 d4 77
    32183218    xor dh, dh                                ; 30 f6
    32193219    mov word [bp-014h], dx                    ; 89 56 ec
     
    32233223    mov dx, word [bp-022h]                    ; 8b 56 de
    32243224    mov si, strict word 00020h                ; be 20 00
    3225     call 0a0a0h                               ; e8 ad 77
     3225    call 0a0b0h                               ; e8 bd 77
    32263226    mov bx, dx                                ; 89 d3
    32273227    mov word [bp-024h], dx                    ; 89 56 dc
     
    32573257    mov dx, word [bp-022h]                    ; 8b 56 de
    32583258    mov si, strict word 00008h                ; be 08 00
    3259     call 0a0a0h                               ; e8 59 77
     3259    call 0a0b0h                               ; e8 69 77
    32603260    mov word [bp-00ch], ax                    ; 89 46 f4
    32613261    mov word [bp-020h], bx                    ; 89 5e e0
     
    32643264    mov word [bp-024h], dx                    ; 89 56 dc
    32653265    mov si, strict word 00010h                ; be 10 00
    3266     call 0a0a0h                               ; e8 44 77
     3266    call 0a0b0h                               ; e8 54 77
    32673267    mov word [bp-022h], dx                    ; 89 56 de
    32683268    mov ax, dx                                ; 89 d0
     
    56045604    mov dx, ss                                ; 8c d2
    56055605    lea ax, [bp-026h]                         ; 8d 46 da
    5606     call 0a0c0h                               ; e8 48 62
     5606    call 0a0d0h                               ; e8 58 62
    56075607    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    56085608    mov ax, strict word 00011h                ; b8 11 00
     
    60966096    xor dl, dl                                ; 30 d2
    60976097    xor cx, cx                                ; 31 c9
    6098     call 0a050h                               ; e8 64 5c
     6098    call 0a060h                               ; e8 74 5c
    60996099    xor bx, bx                                ; 31 db
    61006100    add ax, si                                ; 01 f0
     
    61026102    mov bx, di                                ; 89 fb
    61036103    xor cx, cx                                ; 31 c9
    6104     call 0a050h                               ; e8 57 5c
     6104    call 0a060h                               ; e8 67 5c
    61056105    mov bx, ax                                ; 89 c3
    61066106    mov ax, word [bp-00ah]                    ; 8b 46 f6
     
    61376137    mov dx, ss                                ; 8c d2
    61386138    lea ax, [bp-030h]                         ; 8d 46 d0
    6139     call 0a0c0h                               ; e8 70 5c
     6139    call 0a0d0h                               ; e8 80 5c
    61406140    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    61416141    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    64916491    mov dx, ss                                ; 8c d2
    64926492    lea ax, [bp-02eh]                         ; 8d 46 d2
    6493     call 0a0c0h                               ; e8 88 58
     6493    call 0a0d0h                               ; e8 98 58
    64946494    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    64956495    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    70237023    mov CL, strict byte 004h                  ; b1 04
    70247024    sar ax, CL                                ; d3 f8
    7025     call 07ddah                               ; e8 0c 30
     7025    call 07de9h                               ; e8 1b 30
    70267026    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    70277027    jne short 04dd9h                          ; 75 05
     
    84938493    mov dx, word [bp+00ch]                    ; 8b 56 0c
    84948494    mov si, strict word 00020h                ; be 20 00
    8495     call 0a0a0h                               ; e8 22 45
     8495    call 0a0b0h                               ; e8 32 45
    84968496    test ax, ax                               ; 85 c0
    84978497    jne short 05b8eh                          ; 75 0c
     
    85318531    mov bx, strict word 0003fh                ; bb 3f 00
    85328532    xor cx, cx                                ; 31 c9
    8533     call 0a050h                               ; e8 79 44
     8533    call 0a060h                               ; e8 89 44
    85348534    mov bx, ax                                ; 89 c3
    85358535    mov cx, dx                                ; 89 d1
    85368536    mov ax, word [bp-004h]                    ; 8b 46 fc
    85378537    mov dx, si                                ; 89 f2
    8538     call 0a070h                               ; e8 8d 44
     8538    call 0a080h                               ; e8 9d 44
    85398539    mov word [es:di+002h], ax                 ; 26 89 45 02
    85408540    cmp ax, 00400h                            ; 3d 00 04
     
    87568756    mov bx, cx                                ; 89 cb
    87578757    xor cx, cx                                ; 31 c9
    8758     call 0a050h                               ; e8 58 42
     8758    call 0a060h                               ; e8 68 42
    87598759    xor bx, bx                                ; 31 db
    87608760    add ax, word [bp-00ch]                    ; 03 46 f4
     
    87628762    mov bx, word [bp-010h]                    ; 8b 5e f0
    87638763    xor cx, cx                                ; 31 c9
    8764     call 0a050h                               ; e8 49 42
     8764    call 0a060h                               ; e8 59 42
    87658765    xor bx, bx                                ; 31 db
    87668766    add ax, di                                ; 01 f8
     
    89368936    mov bx, word [bp-00ch]                    ; 8b 5e f4
    89378937    xor cx, cx                                ; 31 c9
    8938     call 0a050h                               ; e8 72 40
     8938    call 0a060h                               ; e8 82 40
    89398939    mov bx, di                                ; 89 fb
    89408940    xor cx, cx                                ; 31 c9
    8941     call 0a050h                               ; e8 6b 40
     8941    call 0a060h                               ; e8 7b 40
    89428942    mov word [bp-008h], ax                    ; 89 46 f8
    89438943    mov word [bp-006h], dx                    ; 89 56 fa
     
    90999099    xor bx, bx                                ; 31 db
    91009100    mov si, strict word 00020h                ; be 20 00
    9101     call 0a0b0h                               ; e8 30 3f
     9101    call 0a0c0h                               ; e8 40 3f
    91029102    mov word [bp-00eh], ax                    ; 89 46 f2
    91039103    mov word [bp-010h], bx                    ; 89 5e f0
     
    92649264    mov dx, si                                ; 89 f2
    92659265    mov si, strict word 00020h                ; be 20 00
    9266     call 0a0a0h                               ; e8 29 3d
     9266    call 0a0b0h                               ; e8 39 3d
    92679267    mov bx, di                                ; 89 fb
    92689268    mov word [es:bx+014h], dx                 ; 26 89 57 14
     
    96289628    mov bx, strict word 0000fh                ; bb 0f 00
    96299629    xor cx, cx                                ; 31 c9
    9630     call 0a070h                               ; e8 5b 39
     9630    call 0a080h                               ; e8 6b 39
    96319631    mov cx, ax                                ; 89 c1
    96329632    mov bx, dx                                ; 89 d3
     
    1179111791    pop bp                                    ; 5d
    1179211792    retn                                      ; c3
    11793 show_logo_:                                  ; 0xf7b9a LB 0x240
     11793show_logo_:                                  ; 0xf7b9a LB 0x24f
    1179411794    push bp                                   ; 55
    1179511795    mov bp, sp                                ; 89 e5
     
    1182511825    cmp ax, strict word 0004fh                ; 3d 4f 00
    1182611826    je short 07be3h                           ; 74 03
    11827     jmp near 07ca9h                           ; e9 c6 00
     11827    jmp near 07cb8h                           ; e9 d5 00
    1182811828    mov al, cl                                ; 88 c8
    1182911829    add AL, strict byte 004h                  ; 04 04
     
    1189011890    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1189111891    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11892     je short 07ca9h                           ; 74 29
     11892    je short 07cabh                           ; 74 2b
    1189311893    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11894     jne short 07ca9h                          ; 75 23
     11894    jne short 07cabh                          ; 75 25
    1189511895    mov cx, strict word 00010h                ; b9 10 00
    1189611896    jmp short 07c90h                          ; eb 05
    1189711897    dec cx                                    ; 49
    1189811898    test cx, cx                               ; 85 c9
    11899     jbe short 07ca9h                          ; 76 19
     11899    jbe short 07cb8h                          ; 76 28
    1190011900    mov ax, cx                                ; 89 c8
    1190111901    or ah, 002h                               ; 80 cc 02
     
    1190811908    jne short 07c8bh                          ; 75 e6
    1190911909    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
     11910    jmp short 07cb8h                          ; eb 0d
     11911    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     11912    jne short 07cb8h                          ; 75 07
     11913    mov ax, 00200h                            ; b8 00 02
     11914    mov dx, 003b8h                            ; ba b8 03
     11915    out DX, ax                                ; ef
    1191011916    xor bx, bx                                ; 31 db
    1191111917    mov dx, 0037dh                            ; ba 7d 03
    1191211918    mov ax, si                                ; 89 f0
    11913     call 01660h                               ; e8 ad 99
     11919    call 01660h                               ; e8 9e 99
    1191411920    mov AL, strict byte 003h                  ; b0 03
    1191511921    mov AH, strict byte 000h                  ; b4 00
    1191611922    int 010h                                  ; cd 10
    1191711923    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11918     je short 07cd3h                           ; 74 14
     11924    je short 07ce2h                           ; 74 14
    1191911925    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    11920     jne short 07d01h                          ; 75 3c
     11926    jne short 07d10h                          ; 75 3c
    1192111927    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11922     jne short 07d01h                          ; 75 36
     11928    jne short 07d10h                          ; 75 36
    1192311929    cmp word [bp-016h], strict byte 00000h    ; 83 7e ea 00
    11924     je short 07cd6h                           ; 74 05
    11925     jmp short 07d01h                          ; eb 2e
    11926     jmp near 07dbdh                           ; e9 e7 00
     11930    je short 07ce5h                           ; 74 05
     11931    jmp short 07d10h                          ; eb 2e
     11932    jmp near 07dcch                           ; e9 e7 00
    1192711933    cmp byte [bp-010h], 002h                  ; 80 7e f0 02
    11928     jne short 07ceah                          ; 75 0e
     11934    jne short 07cf9h                          ; 75 0e
    1192911935    mov ax, 00a4bh                            ; b8 4b 0a
    1193011936    push ax                                   ; 50
    1193111937    mov ax, strict word 00002h                ; b8 02 00
    1193211938    push ax                                   ; 50
    11933     call 01976h                               ; e8 8f 9c
     11939    call 01976h                               ; e8 80 9c
    1193411940    add sp, strict byte 00004h                ; 83 c4 04
    1193511941    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11936     jne short 07d01h                          ; 75 11
     11942    jne short 07d10h                          ; 75 11
    1193711943    mov dx, strict word 00001h                ; ba 01 00
    1193811944    mov ax, 000c0h                            ; b8 c0 00
    11939     call 0793ch                               ; e8 43 fc
     11945    call 0793ch                               ; e8 34 fc
    1194011946    cmp AL, strict byte 086h                  ; 3c 86
    11941     jne short 07d01h                          ; 75 04
     11947    jne short 07d10h                          ; 75 04
    1194211948    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1194311949    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11944     je short 07cd3h                           ; 74 cc
     11950    je short 07ce2h                           ; 74 cc
    1194511951    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1194611952    mov ax, 00100h                            ; b8 00 01
     
    1196311969    mov ax, strict word 00002h                ; b8 02 00
    1196411970    push ax                                   ; 50
    11965     call 01976h                               ; e8 43 9c
     11971    call 01976h                               ; e8 34 9c
    1196611972    add sp, strict byte 00004h                ; 83 c4 04
    11967     call 07a18h                               ; e8 df fc
     11973    call 07a18h                               ; e8 d0 fc
    1196811974    mov ax, 00ab1h                            ; b8 b1 0a
    1196911975    push ax                                   ; 50
    1197011976    mov ax, strict word 00002h                ; b8 02 00
    1197111977    push ax                                   ; 50
    11972     call 01976h                               ; e8 32 9c
     11978    call 01976h                               ; e8 23 9c
    1197311979    add sp, strict byte 00004h                ; 83 c4 04
    1197411980    mov dx, strict word 00001h                ; ba 01 00
    1197511981    mov ax, strict word 00040h                ; b8 40 00
    11976     call 0793ch                               ; e8 ec fb
     11982    call 0793ch                               ; e8 dd fb
    1197711983    mov cl, al                                ; 88 c1
    1197811984    test al, al                               ; 84 c0
    11979     je short 07d47h                           ; 74 f1
     11985    je short 07d56h                           ; 74 f1
    1198011986    cmp AL, strict byte 030h                  ; 3c 30
    11981     je short 07daah                           ; 74 50
     11987    je short 07db9h                           ; 74 50
    1198211988    cmp cl, 002h                              ; 80 f9 02
    11983     jc short 07d83h                           ; 72 24
     11989    jc short 07d92h                           ; 72 24
    1198411990    cmp cl, 009h                              ; 80 f9 09
    11985     jnbe short 07d83h                         ; 77 1f
     11991    jnbe short 07d92h                         ; 77 1f
    1198611992    mov al, cl                                ; 88 c8
    1198711993    xor ah, ah                                ; 30 e4
    11988     call 07b72h                               ; e8 07 fe
     11994    call 07b72h                               ; e8 f8 fd
    1198911995    cmp AL, strict byte 0ffh                  ; 3c ff
    11990     jne short 07d71h                          ; 75 02
    11991     jmp short 07d47h                          ; eb d6
     11996    jne short 07d80h                          ; 75 02
     11997    jmp short 07d56h                          ; eb d6
    1199211998    mov bl, al                                ; 88 c3
    1199311999    xor bh, bh                                ; 30 ff
    1199412000    mov dx, 0037ch                            ; ba 7c 03
    1199512001    mov ax, si                                ; 89 f0
    11996     call 01660h                               ; e8 e3 98
     12002    call 01660h                               ; e8 d4 98
    1199712003    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    11998     jmp short 07daah                          ; eb 27
     12004    jmp short 07db9h                          ; eb 27
    1199912005    cmp cl, 02eh                              ; 80 f9 2e
    12000     je short 07d98h                           ; 74 10
     12006    je short 07da7h                           ; 74 10
    1200112007    cmp cl, 026h                              ; 80 f9 26
    12002     je short 07d9eh                           ; 74 11
     12008    je short 07dadh                           ; 74 11
    1200312009    cmp cl, 021h                              ; 80 f9 21
    12004     jne short 07da4h                          ; 75 12
     12010    jne short 07db3h                          ; 75 12
    1200512011    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    12006     jmp short 07daah                          ; eb 12
     12012    jmp short 07db9h                          ; eb 12
    1200712013    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    12008     jmp short 07daah                          ; eb 0c
     12014    jmp short 07db9h                          ; eb 0c
    1200912015    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    12010     jmp short 07daah                          ; eb 06
     12016    jmp short 07db9h                          ; eb 06
    1201112017    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    12012     je short 07d47h                           ; 74 9d
     12018    je short 07d56h                           ; 74 9d
    1201312019    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    1201412020    xor bh, bh                                ; 30 ff
    1201512021    mov dx, 0037dh                            ; ba 7d 03
    1201612022    mov ax, si                                ; 89 f0
    12017     call 01660h                               ; e8 a9 98
     12023    call 01660h                               ; e8 9a 98
    1201812024    mov AL, strict byte 003h                  ; b0 03
    1201912025    mov AH, strict byte 000h                  ; b4 00
     
    1202812034    push DS                                   ; 1e
    1202912035    mov ds, ax                                ; 8e d8
    12030     call 0ede3h                               ; e8 15 70
     12036    call 0ede3h                               ; e8 06 70
    1203112037    pop DS                                    ; 1f
    1203212038    pop bp                                    ; 5d
     
    1203912045    pop bp                                    ; 5d
    1204012046    retn                                      ; c3
    12041 delay_boot_:                                 ; 0xf7dda LB 0x72
     12047delay_boot_:                                 ; 0xf7de9 LB 0x72
    1204212048    push bp                                   ; 55
    1204312049    mov bp, sp                                ; 89 e5
     
    1204912055    mov bx, ax                                ; 89 c3
    1205012056    test ax, ax                               ; 85 c0
    12051     je short 07e42h                           ; 74 5a
     12057    je short 07e51h                           ; 74 5a
    1205212058    mov AL, strict byte 034h                  ; b0 34
    1205312059    out strict byte 043h, AL                  ; e6 43
     
    1206112067    mov ax, strict word 00002h                ; b8 02 00
    1206212068    push ax                                   ; 50
    12063     call 01976h                               ; e8 76 9b
     12069    call 01976h                               ; e8 67 9b
    1206412070    add sp, strict byte 00006h                ; 83 c4 06
    1206512071    test bx, bx                               ; 85 db
    12066     jbe short 07e21h                          ; 76 1a
     12072    jbe short 07e30h                          ; 76 1a
    1206712073    push bx                                   ; 53
    1206812074    mov ax, 00b19h                            ; b8 19 0b
     
    1207012076    mov ax, strict word 00002h                ; b8 02 00
    1207112077    push ax                                   ; 50
    12072     call 01976h                               ; e8 63 9b
     12078    call 01976h                               ; e8 54 9b
    1207312079    add sp, strict byte 00006h                ; 83 c4 06
    1207412080    xor dx, dx                                ; 31 d2
    1207512081    mov ax, strict word 00040h                ; b8 40 00
    12076     call 0793ch                               ; e8 1e fb
     12082    call 0793ch                               ; e8 0f fb
    1207712083    dec bx                                    ; 4b
    12078     jmp short 07e03h                          ; eb e2
     12084    jmp short 07e12h                          ; eb e2
    1207912085    mov bx, 00a49h                            ; bb 49 0a
    1208012086    push bx                                   ; 53
    1208112087    mov bx, strict word 00002h                ; bb 02 00
    1208212088    push bx                                   ; 53
    12083     call 01976h                               ; e8 4a 9b
     12089    call 01976h                               ; e8 3b 9b
    1208412090    add sp, strict byte 00004h                ; 83 c4 04
    1208512091    mov AL, strict byte 034h                  ; b0 34
     
    1209212098    push DS                                   ; 1e
    1209312099    mov ds, ax                                ; 8e d8
    12094     call 0ede3h                               ; e8 a3 6f
     12100    call 0ede3h                               ; e8 94 6f
    1209512101    pop DS                                    ; 1f
    1209612102    pop bp                                    ; 5d
     
    1210312109    pop bp                                    ; 5d
    1210412110    retn                                      ; c3
    12105 scsi_cmd_data_in_:                           ; 0xf7e4c LB 0xd5
     12111scsi_cmd_data_in_:                           ; 0xf7e5b LB 0xd5
    1210612112    push bp                                   ; 55
    1210712113    mov bp, sp                                ; 89 e5
     
    1211912125    ; sub ah, ah                                ; 2a e4
    1212012126    test AL, strict byte 001h                 ; a8 01
    12121     jne short 07e62h                          ; 75 f7
     12127    jne short 07e71h                          ; 75 f7
    1212212128    mov al, byte [bp+004h]                    ; 8a 46 04
    1212312129    cmp AL, strict byte 010h                  ; 3c 10
    12124     jne short 07e76h                          ; 75 04
     12130    jne short 07e85h                          ; 75 04
    1212512131    xor ax, ax                                ; 31 c0
    12126     jmp short 07e78h                          ; eb 02
     12132    jmp short 07e87h                          ; eb 02
    1212712133    xor ah, ah                                ; 30 e4
    1212812134    mov di, ax                                ; 89 c7
     
    1213212138    shr dx, 1                                 ; d1 ea
    1213312139    rcr ax, 1                                 ; d1 d8
    12134     loop 07e82h                               ; e2 fa
     12140    loop 07e91h                               ; e2 fa
    1213512141    mov cx, ax                                ; 89 c1
    1213612142    and cx, 000f0h                            ; 81 e1 f0 00
     
    1215012156    shr dx, 1                                 ; d1 ea
    1215112157    rcr ax, 1                                 ; d1 d8
    12152     loop 07ea7h                               ; e2 fa
     12158    loop 07eb6h                               ; e2 fa
    1215312159    mov dx, si                                ; 89 f2
    1215412160    out DX, AL                                ; ee
     
    1215712163    xor ah, ah                                ; 30 e4
    1215812164    cmp cx, ax                                ; 39 c1
    12159     jnc short 07ec9h                          ; 73 0e
     12165    jnc short 07ed8h                          ; 73 0e
    1216012166    les di, [bp-00ah]                         ; c4 7e f6
    1216112167    add di, cx                                ; 01 cf
     
    1216412170    out DX, AL                                ; ee
    1216512171    inc cx                                    ; 41
    12166     jmp short 07eb2h                          ; eb e9
     12172    jmp short 07ec1h                          ; eb e9
    1216712173    mov dx, si                                ; 89 f2
    1216812174    in AL, DX                                 ; ec
     
    1217012176    ; sub ah, ah                                ; 2a e4
    1217112177    test AL, strict byte 001h                 ; a8 01
    12172     jne short 07ec9h                          ; 75 f7
     12178    jne short 07ed8h                          ; 75 f7
    1217312179    test AL, strict byte 002h                 ; a8 02
    12174     je short 07ee4h                           ; 74 0e
     12180    je short 07ef3h                           ; 74 0e
    1217512181    lea dx, [si+003h]                         ; 8d 54 03
    1217612182    xor al, al                                ; 30 c0
     
    1218012186    ; sub ah, ah                                ; 2a e4
    1218112187    mov di, strict word 00004h                ; bf 04 00
    12182     jmp short 07f16h                          ; eb 32
     12188    jmp short 07f25h                          ; eb 32
    1218312189    lea dx, [si+001h]                         ; 8d 54 01
    1218412190    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12185     jne short 07ef3h                          ; 75 06
     12191    jne short 07f02h                          ; 75 06
    1218612192    cmp bx, 08000h                            ; 81 fb 00 80
    12187     jbe short 07f0dh                          ; 76 1a
     12193    jbe short 07f1ch                          ; 76 1a
    1218812194    mov cx, 08000h                            ; b9 00 80
    1218912195    les di, [bp+006h]                         ; c4 7e 06
     
    1219412200    add ax, 00800h                            ; 05 00 08
    1219512201    mov word [bp+008h], ax                    ; 89 46 08
    12196     jmp short 07ee4h                          ; eb d7
     12202    jmp short 07ef3h                          ; eb d7
    1219712203    mov cx, bx                                ; 89 d9
    1219812204    les di, [bp+006h]                         ; c4 7e 06
     
    1220512211    pop bp                                    ; 5d
    1220612212    retn 0000ah                               ; c2 0a 00
    12207 scsi_cmd_data_out_:                          ; 0xf7f21 LB 0xd5
     12213scsi_cmd_data_out_:                          ; 0xf7f30 LB 0xd5
    1220812214    push bp                                   ; 55
    1220912215    mov bp, sp                                ; 89 e5
     
    1222112227    ; sub ah, ah                                ; 2a e4
    1222212228    test AL, strict byte 001h                 ; a8 01
    12223     jne short 07f37h                          ; 75 f7
     12229    jne short 07f46h                          ; 75 f7
    1222412230    mov al, byte [bp+004h]                    ; 8a 46 04
    1222512231    cmp AL, strict byte 010h                  ; 3c 10
    12226     jne short 07f4bh                          ; 75 04
     12232    jne short 07f5ah                          ; 75 04
    1222712233    xor ax, ax                                ; 31 c0
    12228     jmp short 07f4dh                          ; eb 02
     12234    jmp short 07f5ch                          ; eb 02
    1222912235    xor ah, ah                                ; 30 e4
    1223012236    mov si, ax                                ; 89 c6
     
    1223412240    shr dx, 1                                 ; d1 ea
    1223512241    rcr ax, 1                                 ; d1 d8
    12236     loop 07f57h                               ; e2 fa
     12242    loop 07f66h                               ; e2 fa
    1223712243    mov cx, ax                                ; 89 c1
    1223812244    and cx, 000f0h                            ; 81 e1 f0 00
     
    1225212258    shr dx, 1                                 ; d1 ea
    1225312259    rcr ax, 1                                 ; d1 d8
    12254     loop 07f7ch                               ; e2 fa
     12260    loop 07f8bh                               ; e2 fa
    1225512261    mov dx, di                                ; 89 fa
    1225612262    out DX, AL                                ; ee
     
    1225912265    xor ah, ah                                ; 30 e4
    1226012266    cmp cx, ax                                ; 39 c1
    12261     jnc short 07f9eh                          ; 73 0e
     12267    jnc short 07fadh                          ; 73 0e
    1226212268    les si, [bp-00ah]                         ; c4 76 f6
    1226312269    add si, cx                                ; 01 ce
     
    1226612272    out DX, AL                                ; ee
    1226712273    inc cx                                    ; 41
    12268     jmp short 07f87h                          ; eb e9
     12274    jmp short 07f96h                          ; eb e9
    1226912275    lea dx, [di+001h]                         ; 8d 55 01
    1227012276    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12271     jne short 07fadh                          ; 75 06
     12277    jne short 07fbch                          ; 75 06
    1227212278    cmp bx, 08000h                            ; 81 fb 00 80
    12273     jbe short 07fc8h                          ; 76 1b
     12279    jbe short 07fd7h                          ; 76 1b
    1227412280    mov cx, 08000h                            ; b9 00 80
    1227512281    les si, [bp+006h]                         ; c4 76 06
     
    1228112287    add ax, 00800h                            ; 05 00 08
    1228212288    mov word [bp+008h], ax                    ; 89 46 08
    12283     jmp short 07f9eh                          ; eb d6
     12289    jmp short 07fadh                          ; eb d6
    1228412290    mov cx, bx                                ; 89 d9
    1228512291    les si, [bp+006h]                         ; c4 76 06
     
    1229112297    ; sub ah, ah                                ; 2a e4
    1229212298    test AL, strict byte 001h                 ; a8 01
    12293     jne short 07fd0h                          ; 75 f7
     12299    jne short 07fdfh                          ; 75 f7
    1229412300    test AL, strict byte 002h                 ; a8 02
    12295     je short 07febh                           ; 74 0e
     12301    je short 07ffah                           ; 74 0e
    1229612302    lea dx, [di+003h]                         ; 8d 55 03
    1229712303    xor al, al                                ; 30 c0
     
    1230112307    ; sub ah, ah                                ; 2a e4
    1230212308    mov ax, strict word 00004h                ; b8 04 00
    12303     jmp short 07fedh                          ; eb 02
     12309    jmp short 07ffch                          ; eb 02
    1230412310    xor ax, ax                                ; 31 c0
    1230512311    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1230812314    pop bp                                    ; 5d
    1230912315    retn 0000ah                               ; c2 0a 00
    12310 @scsi_read_sectors:                          ; 0xf7ff6 LB 0xe9
     12316@scsi_read_sectors:                          ; 0xf8005 LB 0xe9
    1231112317    push bp                                   ; 55
    1231212318    mov bp, sp                                ; 89 e5
     
    1232012326    mov byte [bp-006h], al                    ; 88 46 fa
    1232112327    cmp AL, strict byte 004h                  ; 3c 04
    12322     jbe short 08026h                          ; 76 15
     12328    jbe short 08035h                          ; 76 15
    1232312329    xor ah, ah                                ; 30 e4
    1232412330    push ax                                   ; 50
     
    1232912335    mov ax, strict word 00007h                ; b8 07 00
    1233012336    push ax                                   ; 50
    12331     call 01976h                               ; e8 53 99
     12337    call 01976h                               ; e8 44 99
    1233212338    add sp, strict byte 00008h                ; 83 c4 08
    1233312339    mov es, [bp+006h]                         ; 8e 46 06
     
    1237012376    sal word [bp-00ah], 1                     ; d1 66 f6
    1237112377    rcl word [bp-008h], 1                     ; d1 56 f8
    12372     loop 08091h                               ; e2 f8
     12378    loop 080a0h                               ; e2 f8
    1237312379    push word [bp-008h]                       ; ff 76 f8
    1237412380    push word [bp-00ah]                       ; ff 76 f6
     
    1238112387    mov cx, ss                                ; 8c d1
    1238212388    lea bx, [bp-01ah]                         ; 8d 5e e6
    12383     call 07e4ch                               ; e8 95 fd
     12389    call 07e5bh                               ; e8 95 fd
    1238412390    mov ah, al                                ; 88 c4
    1238512391    test al, al                               ; 84 c0
    12386     jne short 080d2h                          ; 75 15
     12392    jne short 080e1h                          ; 75 15
    1238712393    mov es, [bp+006h]                         ; 8e 46 06
    1238812394    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1239812404    pop bp                                    ; 5d
    1239912405    retn 00004h                               ; c2 04 00
    12400 @scsi_write_sectors:                         ; 0xf80df LB 0xe9
     12406@scsi_write_sectors:                         ; 0xf80ee LB 0xe9
    1240112407    push bp                                   ; 55
    1240212408    mov bp, sp                                ; 89 e5
     
    1241012416    mov byte [bp-006h], al                    ; 88 46 fa
    1241112417    cmp AL, strict byte 004h                  ; 3c 04
    12412     jbe short 0810fh                          ; 76 15
     12418    jbe short 0811eh                          ; 76 15
    1241312419    xor ah, ah                                ; 30 e4
    1241412420    push ax                                   ; 50
     
    1241912425    mov ax, strict word 00007h                ; b8 07 00
    1242012426    push ax                                   ; 50
    12421     call 01976h                               ; e8 6a 98
     12427    call 01976h                               ; e8 5b 98
    1242212428    add sp, strict byte 00008h                ; 83 c4 08
    1242312429    mov es, [bp+006h]                         ; 8e 46 06
     
    1246012466    sal word [bp-00ah], 1                     ; d1 66 f6
    1246112467    rcl word [bp-008h], 1                     ; d1 56 f8
    12462     loop 0817ah                               ; e2 f8
     12468    loop 08189h                               ; e2 f8
    1246312469    push word [bp-008h]                       ; ff 76 f8
    1246412470    push word [bp-00ah]                       ; ff 76 f6
     
    1247112477    mov cx, ss                                ; 8c d1
    1247212478    lea bx, [bp-01ah]                         ; 8d 5e e6
    12473     call 07f21h                               ; e8 81 fd
     12479    call 07f30h                               ; e8 81 fd
    1247412480    mov ah, al                                ; 88 c4
    1247512481    test al, al                               ; 84 c0
    12476     jne short 081bbh                          ; 75 15
     12482    jne short 081cah                          ; 75 15
    1247712483    mov es, [bp+006h]                         ; 8e 46 06
    1247812484    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1248812494    pop bp                                    ; 5d
    1248912495    retn 00004h                               ; c2 04 00
    12490 scsi_cmd_packet_:                            ; 0xf81c8 LB 0x170
     12496scsi_cmd_packet_:                            ; 0xf81d7 LB 0x170
    1249112497    push bp                                   ; 55
    1249212498    mov bp, sp                                ; 89 e5
     
    1250012506    mov dx, strict word 0000eh                ; ba 0e 00
    1250112507    mov ax, strict word 00040h                ; b8 40 00
    12502     call 0166eh                               ; e8 8a 94
     12508    call 0166eh                               ; e8 7b 94
    1250312509    mov si, 00122h                            ; be 22 01
    1250412510    mov word [bp-00ch], ax                    ; 89 46 f4
    1250512511    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12506     jne short 08213h                          ; 75 23
     12512    jne short 08222h                          ; 75 23
    1250712513    mov bx, 00da0h                            ; bb a0 0d
    1250812514    mov cx, ds                                ; 8c d9
    1250912515    mov ax, strict word 00004h                ; b8 04 00
    12510     call 01933h                               ; e8 38 97
     12516    call 01933h                               ; e8 29 97
    1251112517    mov ax, 00b62h                            ; b8 62 0b
    1251212518    push ax                                   ; 50
     
    1251512521    mov ax, strict word 00004h                ; b8 04 00
    1251612522    push ax                                   ; 50
    12517     call 01976h                               ; e8 6c 97
     12523    call 01976h                               ; e8 5d 97
    1251812524    add sp, strict byte 00006h                ; 83 c4 06
    1251912525    mov dx, strict word 00001h                ; ba 01 00
    12520     jmp near 0832dh                           ; e9 1a 01
     12526    jmp near 0833ch                           ; e9 1a 01
    1252112527    sub di, strict byte 00008h                ; 83 ef 08
    1252212528    sal di, 1                                 ; d1 e7
     
    1253312539    ; sub ah, ah                                ; 2a e4
    1253412540    test AL, strict byte 001h                 ; a8 01
    12535     jne short 08230h                          ; 75 f7
     12541    jne short 0823fh                          ; 75 f7
    1253612542    xor dx, bx                                ; 31 da
    1253712543    mov ax, word [bp+006h]                    ; 8b 46 06
     
    1254912555    shr dx, 1                                 ; d1 ea
    1255012556    rcr ax, 1                                 ; d1 d8
    12551     loop 0825bh                               ; e2 fa
     12557    loop 0826ah                               ; e2 fa
    1255212558    and ax, 000f0h                            ; 25 f0 00
    1255312559    mov cl, byte [bp-006h]                    ; 8a 4e fa
     
    1256812574    shr dx, 1                                 ; d1 ea
    1256912575    rcr ax, 1                                 ; d1 d8
    12570     loop 08283h                               ; e2 fa
     12576    loop 08292h                               ; e2 fa
    1257112577    mov dx, bx                                ; 89 da
    1257212578    out DX, AL                                ; ee
     
    1257512581    xor ah, ah                                ; 30 e4
    1257612582    cmp cx, ax                                ; 39 c1
    12577     jnc short 082a8h                          ; 73 11
     12583    jnc short 082b7h                          ; 73 11
    1257812584    mov es, [bp-00ah]                         ; 8e 46 f6
    1257912585    mov di, word [bp-00eh]                    ; 8b 7e f2
     
    1258312589    out DX, AL                                ; ee
    1258412590    inc cx                                    ; 41
    12585     jmp short 0828eh                          ; eb e6
     12591    jmp short 0829dh                          ; eb e6
    1258612592    mov dx, bx                                ; 89 da
    1258712593    in AL, DX                                 ; ec
     
    1258912595    ; sub ah, ah                                ; 2a e4
    1259012596    test AL, strict byte 001h                 ; a8 01
    12591     jne short 082a8h                          ; 75 f7
     12597    jne short 082b7h                          ; 75 f7
    1259212598    test AL, strict byte 002h                 ; a8 02
    12593     je short 082c3h                           ; 74 0e
     12599    je short 082d2h                           ; 74 0e
    1259412600    lea dx, [bx+003h]                         ; 8d 57 03
    1259512601    xor al, al                                ; 30 c0
     
    1259912605    ; sub ah, ah                                ; 2a e4
    1260012606    mov dx, strict word 00003h                ; ba 03 00
    12601     jmp short 0832dh                          ; eb 6a
     12607    jmp short 0833ch                          ; eb 6a
    1260212608    mov ax, word [bp+004h]                    ; 8b 46 04
    1260312609    test ax, ax                               ; 85 c0
    12604     je short 082d2h                           ; 74 08
     12610    je short 082e1h                           ; 74 08
    1260512611    lea dx, [bx+001h]                         ; 8d 57 01
    1260612612    mov cx, ax                                ; 89 c1
    1260712613    in AL, DX                                 ; ec
    12608     loop 082cfh                               ; e2 fd
     12614    loop 082deh                               ; e2 fd
    1260912615    mov ax, word [bp+006h]                    ; 8b 46 06
    1261012616    mov es, [bp-00ch]                         ; 8e 46 f4
     
    1261412620    lea ax, [bx+001h]                         ; 8d 47 01
    1261512621    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12616     jne short 082f3h                          ; 75 07
     12622    jne short 08302h                          ; 75 07
    1261712623    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12618     jbe short 08310h                          ; 76 1d
     12624    jbe short 0831fh                          ; 76 1d
    1261912625    mov dx, ax                                ; 89 c2
    1262012626    mov cx, 08000h                            ; b9 00 80
     
    1262612632    add ax, 00800h                            ; 05 00 08
    1262712633    mov word [bp+00eh], ax                    ; 89 46 0e
    12628     jmp short 082e3h                          ; eb d3
     12634    jmp short 082f2h                          ; eb d3
    1262912635    mov dx, ax                                ; 89 c2
    1263012636    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1263312639    mov es, [bp-00ch]                         ; 8e 46 f4
    1263412640    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12635     je short 0832bh                           ; 74 07
     12641    je short 0833ah                           ; 74 07
    1263612642    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1263712643    in AL, DX                                 ; ec
    12638     loop 08328h                               ; e2 fd
     12644    loop 08337h                               ; e2 fd
    1263912645    xor dx, dx                                ; 31 d2
    1264012646    mov ax, dx                                ; 89 d0
     
    1264412650    pop bp                                    ; 5d
    1264512651    retn 0000ch                               ; c2 0c 00
    12646 scsi_enumerate_attached_devices_:            ; 0xf8338 LB 0x4cb
     12652scsi_enumerate_attached_devices_:            ; 0xf8347 LB 0x4cb
    1264712653    push bp                                   ; 55
    1264812654    mov bp, sp                                ; 89 e5
     
    1265612662    mov dx, strict word 0000eh                ; ba 0e 00
    1265712663    mov ax, strict word 00040h                ; b8 40 00
    12658     call 0166eh                               ; e8 20 93
     12664    call 0166eh                               ; e8 11 93
    1265912665    mov di, 00122h                            ; bf 22 01
    1266012666    mov word [bp-016h], ax                    ; 89 46 ea
    1266112667    mov word [bp-014h], strict word 00000h    ; c7 46 ec 00 00
    12662     jmp near 08776h                           ; e9 1a 04
     12668    jmp near 08785h                           ; e9 1a 04
    1266312669    cmp AL, strict byte 004h                  ; 3c 04
    12664     jc short 08363h                           ; 72 03
    12665     jmp near 087f9h                           ; e9 96 04
     12670    jc short 08372h                           ; 72 03
     12671    jmp near 08808h                           ; e9 96 04
    1266612672    mov cx, strict word 00010h                ; b9 10 00
    1266712673    xor bx, bx                                ; 31 db
    1266812674    mov dx, ss                                ; 8c d2
    1266912675    lea ax, [bp-048h]                         ; 8d 46 b8
    12670     call 0a0c0h                               ; e8 50 1d
     12676    call 0a0d0h                               ; e8 51 1d
    1267112677    mov byte [bp-048h], 09eh                  ; c6 46 b8 9e
    1267212678    mov byte [bp-047h], 010h                  ; c6 46 b9 10
     
    1268612692    lea bx, [bp-048h]                         ; 8d 5e b8
    1268712693    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
    12688     call 07e4ch                               ; e8 ae fa
     12694    call 07e5bh                               ; e8 ae fa
    1268912695    test al, al                               ; 84 c0
    12690     je short 083b4h                           ; 74 12
     12696    je short 083c3h                           ; 74 12
    1269112697    mov ax, 00b92h                            ; b8 92 0b
    1269212698    push ax                                   ; 50
     
    1269512701    mov ax, strict word 00007h                ; b8 07 00
    1269612702    push ax                                   ; 50
    12697     call 01976h                               ; e8 c5 95
     12703    call 01976h                               ; e8 b6 95
    1269812704    add sp, strict byte 00006h                ; 83 c4 06
    1269912705    mov ax, word [bp-00242h]                  ; 8b 86 be fd
     
    1272712733    sal ax, 1                                 ; d1 e0
    1272812734    rcl dx, 1                                 ; d1 d2
    12729     loop 08402h                               ; e2 fa
     12735    loop 08411h                               ; e2 fa
    1273012736    or bx, ax                                 ; 09 c3
    1273112737    or dx, si                                 ; 09 f2
     
    1273512741    mov word [bp-01ch], bx                    ; 89 5e e4
    1273612742    test dx, dx                               ; 85 d2
    12737     jne short 08421h                          ; 75 06
     12743    jne short 08430h                          ; 75 06
    1273812744    cmp bx, 00200h                            ; 81 fb 00 02
    12739     je short 08444h                           ; 74 23
     12745    je short 08453h                           ; 74 23
    1274012746    mov bx, 00da0h                            ; bb a0 0d
    1274112747    mov cx, ds                                ; 8c d9
    1274212748    mov ax, strict word 00004h                ; b8 04 00
    12743     call 01933h                               ; e8 07 95
     12749    call 01933h                               ; e8 f8 94
    1274412750    push dx                                   ; 52
    1274512751    push word [bp-01ch]                       ; ff 76 e4
     
    1274912755    mov ax, strict word 00004h                ; b8 04 00
    1275012756    push ax                                   ; 50
    12751     call 01976h                               ; e8 38 95
     12757    call 01976h                               ; e8 29 95
    1275212758    add sp, strict byte 0000ah                ; 83 c4 0a
    12753     jmp near 0876ah                           ; e9 26 03
     12759    jmp near 08779h                           ; e9 26 03
    1275412760    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1275512761    cmp AL, strict byte 001h                  ; 3c 01
    12756     jc short 08457h                           ; 72 0c
    12757     jbe short 0845fh                          ; 76 12
     12762    jc short 08466h                           ; 72 0c
     12763    jbe short 0846eh                          ; 76 12
    1275812764    cmp AL, strict byte 003h                  ; 3c 03
    12759     je short 08467h                           ; 74 16
     12765    je short 08476h                           ; 74 16
    1276012766    cmp AL, strict byte 002h                  ; 3c 02
    12761     je short 08463h                           ; 74 0e
    12762     jmp short 084aeh                          ; eb 57
     12767    je short 08472h                           ; 74 0e
     12768    jmp short 084bdh                          ; eb 57
    1276312769    test al, al                               ; 84 c0
    12764     jne short 084aeh                          ; 75 53
     12770    jne short 084bdh                          ; 75 53
    1276512771    mov BL, strict byte 090h                  ; b3 90
    12766     jmp short 08469h                          ; eb 0a
     12772    jmp short 08478h                          ; eb 0a
    1276712773    mov BL, strict byte 098h                  ; b3 98
    12768     jmp short 08469h                          ; eb 06
     12774    jmp short 08478h                          ; eb 06
    1276912775    mov BL, strict byte 0a0h                  ; b3 a0
    12770     jmp short 08469h                          ; eb 02
     12776    jmp short 08478h                          ; eb 02
    1277112777    mov BL, strict byte 0a8h                  ; b3 a8
    1277212778    mov cl, bl                                ; 88 d9
     
    1277412780    xor ch, ch                                ; 30 ed
    1277512781    mov ax, cx                                ; 89 c8
    12776     call 016aeh                               ; e8 39 92
     12782    call 016aeh                               ; e8 2a 92
    1277712783    test al, al                               ; 84 c0
    12778     je short 084aeh                           ; 74 35
     12784    je short 084bdh                           ; 74 35
    1277912785    mov al, bl                                ; 88 d8
    1278012786    db  0feh, 0c0h
    1278112787    ; inc al                                    ; fe c0
    1278212788    xor ah, ah                                ; 30 e4
    12783     call 016aeh                               ; e8 2c 92
     12789    call 016aeh                               ; e8 1d 92
    1278412790    mov dh, al                                ; 88 c6
    1278512791    mov al, bl                                ; 88 d8
    1278612792    xor ah, ah                                ; 30 e4
    12787     call 016aeh                               ; e8 23 92
     12793    call 016aeh                               ; e8 14 92
    1278812794    mov ah, dh                                ; 88 f4
    1278912795    cwd                                       ; 99
     
    1279312799    add AL, strict byte 002h                  ; 04 02
    1279412800    xor ah, ah                                ; 30 e4
    12795     call 016aeh                               ; e8 12 92
     12801    call 016aeh                               ; e8 03 92
    1279612802    xor ah, ah                                ; 30 e4
    1279712803    mov word [bp-028h], ax                    ; 89 46 d8
    1279812804    mov ax, cx                                ; 89 c8
    12799     call 016aeh                               ; e8 08 92
     12805    call 016aeh                               ; e8 f9 91
    1280012806    xor ah, ah                                ; 30 e4
    1280112807    mov word [bp-01ah], ax                    ; 89 46 e6
    12802     jmp near 0859bh                           ; e9 ed 00
     12808    jmp near 085aah                           ; e9 ed 00
    1280312809    mov ax, word [bp-020h]                    ; 8b 46 e0
    1280412810    mov bx, word [bp-022h]                    ; 8b 5e de
     
    1280612812    mov dx, word [bp-024h]                    ; 8b 56 dc
    1280712813    mov si, strict word 0000ch                ; be 0c 00
    12808     call 0a0a0h                               ; e8 e0 1b
     12814    call 0a0b0h                               ; e8 e1 1b
    1280912815    mov word [bp-02ah], ax                    ; 89 46 d6
    1281012816    mov word [bp-02ch], bx                    ; 89 5e d4
     
    1281312819    mov ax, word [bp-020h]                    ; 8b 46 e0
    1281412820    test ax, ax                               ; 85 c0
    12815     jnbe short 084e8h                         ; 77 15
    12816     je short 084d8h                           ; 74 03
    12817     jmp near 0855bh                           ; e9 83 00
     12821    jnbe short 084f7h                         ; 77 15
     12822    je short 084e7h                           ; 74 03
     12823    jmp near 0856ah                           ; e9 83 00
    1281812824    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    12819     jnbe short 084e8h                         ; 77 0a
    12820     jne short 084d5h                          ; 75 f5
     12825    jnbe short 084f7h                         ; 77 0a
     12826    jne short 084e4h                          ; 75 f5
    1282112827    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
    12822     jnbe short 084e8h                         ; 77 02
    12823     jne short 0855bh                          ; 75 73
     12828    jnbe short 084f7h                         ; 77 02
     12829    jne short 0856ah                          ; 75 73
    1282412830    mov word [bp-028h], 000ffh                ; c7 46 d8 ff 00
    1282512831    mov word [bp-01ah], strict word 0003fh    ; c7 46 e6 3f 00
     
    1282812834    mov dx, word [bp-024h]                    ; 8b 56 dc
    1282912835    mov si, strict word 00006h                ; be 06 00
    12830     call 0a0a0h                               ; e8 9f 1b
     12836    call 0a0b0h                               ; e8 a0 1b
    1283112837    mov si, word [bp-018h]                    ; 8b 76 e8
    1283212838    add si, dx                                ; 01 d6
     
    1284612852    mov dx, si                                ; 89 f2
    1284712853    mov si, strict word 00008h                ; be 08 00
    12848     call 0a0a0h                               ; e8 6f 1b
     12854    call 0a0b0h                               ; e8 70 1b
    1284912855    mov word [bp-02eh], bx                    ; 89 5e d2
    1285012856    mov word [bp-030h], cx                    ; 89 4e d0
     
    1285512861    mov dx, word [bp-01eh]                    ; 8b 56 e2
    1285612862    mov si, strict word 00010h                ; be 10 00
    12857     call 0a0a0h                               ; e8 54 1b
     12863    call 0a0b0h                               ; e8 55 1b
    1285812864    mov si, word [bp-032h]                    ; 8b 76 ce
    1285912865    add si, dx                                ; 01 d6
     
    1286112867    mov ax, word [bp-02eh]                    ; 8b 46 d2
    1286212868    adc ax, bx                                ; 11 d8
    12863     jmp short 08598h                          ; eb 3d
     12869    jmp short 085a7h                          ; eb 3d
    1286412870    test ax, ax                               ; 85 c0
    12865     jnbe short 08571h                         ; 77 12
    12866     jne short 0857dh                          ; 75 1c
     12871    jnbe short 08580h                         ; 77 12
     12872    jne short 0858ch                          ; 75 1c
    1286712873    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    12868     jnbe short 08571h                         ; 77 0a
    12869     jne short 0857dh                          ; 75 14
     12874    jnbe short 08580h                         ; 77 0a
     12875    jne short 0858ch                          ; 75 14
    1287012876    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
    12871     jnbe short 08571h                         ; 77 02
    12872     jne short 0857dh                          ; 75 0c
     12877    jnbe short 08580h                         ; 77 02
     12878    jne short 0858ch                          ; 75 0c
    1287312879    mov word [bp-028h], 00080h                ; c7 46 d8 80 00
    1287412880    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
    12875     jmp short 08596h                          ; eb 19
     12881    jmp short 085a5h                          ; eb 19
    1287612882    mov word [bp-028h], strict word 00040h    ; c7 46 d8 40 00
    1287712883    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
     
    1288012886    mov dx, word [bp-024h]                    ; 8b 56 dc
    1288112887    mov si, strict word 0000bh                ; be 0b 00
    12882     call 0a0a0h                               ; e8 0a 1b
     12888    call 0a0b0h                               ; e8 0b 1b
    1288312889    mov si, dx                                ; 89 d6
    1288412890    mov word [bp-026h], cx                    ; 89 4e da
     
    1291712923    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1291812924    cmp word [bp-026h], strict byte 00000h    ; 83 7e da 00
    12919     jne short 08612h                          ; 75 06
     12925    jne short 08621h                          ; 75 06
    1292012926    cmp si, 00400h                            ; 81 fe 00 04
    12921     jbe short 08620h                          ; 76 0e
     12927    jbe short 0862fh                          ; 76 0e
    1292212928    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1292312929    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12924     jmp short 08628h                          ; eb 08
     12930    jmp short 08637h                          ; eb 08
    1292512931    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1292612932    mov word [es:bx+032h], si                 ; 26 89 77 32
     
    1292812934    mov cx, ds                                ; 8c d9
    1292912935    mov ax, strict word 00004h                ; b8 04 00
    12930     call 01933h                               ; e8 00 93
     12936    call 01933h                               ; e8 f1 92
    1293112937    push word [bp-020h]                       ; ff 76 e0
    1293212938    push word [bp-022h]                       ; ff 76 de
     
    1294512951    mov ax, strict word 00004h                ; b8 04 00
    1294612952    push ax                                   ; 50
    12947     call 01976h                               ; e8 19 93
     12953    call 01976h                               ; e8 0a 93
    1294812954    add sp, strict byte 00018h                ; 83 c4 18
    1294912955    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    1297412980    mov dx, strict word 00075h                ; ba 75 00
    1297512981    mov ax, strict word 00040h                ; b8 40 00
    12976     call 01652h                               ; e8 9f 8f
     12982    call 01652h                               ; e8 90 8f
    1297712983    mov bl, al                                ; 88 c3
    1297812984    db  0feh, 0c3h
     
    1298112987    mov dx, strict word 00075h                ; ba 75 00
    1298212988    mov ax, strict word 00040h                ; b8 40 00
    12983     call 01660h                               ; e8 9e 8f
     12989    call 01660h                               ; e8 8f 8f
    1298412990    inc byte [bp-00ch]                        ; fe 46 f4
    12985     jmp near 0875fh                           ; e9 97 00
     12991    jmp near 0876eh                           ; e9 97 00
    1298612992    mov bx, 00da0h                            ; bb a0 0d
    1298712993    mov cx, ds                                ; 8c d9
    1298812994    mov ax, strict word 00004h                ; b8 04 00
    12989     call 01933h                               ; e8 60 92
     12995    call 01933h                               ; e8 51 92
    1299012996    push word [bp-014h]                       ; ff 76 ec
    1299112997    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1299613002    mov ax, strict word 00004h                ; b8 04 00
    1299713003    push ax                                   ; 50
    12998     call 01976h                               ; e8 8f 92
     13004    call 01976h                               ; e8 80 92
    1299913005    add sp, strict byte 00008h                ; 83 c4 08
    1300013006    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1300213008    mov byte [bp-00eh], al                    ; 88 46 f2
    1300313009    test byte [bp-00247h], 080h               ; f6 86 b9 fd 80
    13004     je short 086feh                           ; 74 05
     13010    je short 0870dh                           ; 74 05
    1300513011    mov cx, strict word 00001h                ; b9 01 00
    13006     jmp short 08700h                          ; eb 02
     13012    jmp short 0870fh                          ; eb 02
    1300713013    xor cx, cx                                ; 31 c9
    1300813014    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1304213048    inc word [bp-014h]                        ; ff 46 ec
    1304313049    cmp word [bp-014h], strict byte 00010h    ; 83 7e ec 10
    13044     jl short 08776h                           ; 7c 03
    13045     jmp near 087f9h                           ; e9 83 00
     13050    jl short 08785h                           ; 7c 03
     13051    jmp near 08808h                           ; e9 83 00
    1304613052    mov byte [bp-048h], 012h                  ; c6 46 b8 12
    1304713053    xor al, al                                ; 30 c0
     
    1306513071    lea bx, [bp-048h]                         ; 8d 5e b8
    1306613072    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
    13067     call 07e4ch                               ; e8 9e f6
     13073    call 07e5bh                               ; e8 9e f6
    1306813074    test al, al                               ; 84 c0
    13069     je short 087c4h                           ; 74 12
     13075    je short 087d3h                           ; 74 12
    1307013076    mov ax, 00b92h                            ; b8 92 0b
    1307113077    push ax                                   ; 50
     
    1307413080    mov ax, strict word 00007h                ; b8 07 00
    1307513081    push ax                                   ; 50
    13076     call 01976h                               ; e8 b5 91
     13082    call 01976h                               ; e8 a6 91
    1307713083    add sp, strict byte 00006h                ; 83 c4 06
    1307813084    mov es, [bp-016h]                         ; 8e 46 ea
     
    1308013086    mov byte [bp-00ch], al                    ; 88 46 f4
    1308113087    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
    13082     jne short 087e0h                          ; 75 0a
     13088    jne short 087efh                          ; 75 0a
    1308313089    test byte [bp-00248h], 01fh               ; f6 86 b8 fd 1f
    13084     jne short 087e0h                          ; 75 03
    13085     jmp near 0835ch                           ; e9 7c fb
     13090    jne short 087efh                          ; 75 03
     13091    jmp near 0836bh                           ; e9 7c fb
    1308613092    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
    13087     je short 087eah                           ; 74 03
    13088     jmp near 0875fh                           ; e9 75 ff
     13093    je short 087f9h                           ; 74 03
     13094    jmp near 0876eh                           ; e9 75 ff
    1308913095    mov al, byte [bp-00248h]                  ; 8a 86 b8 fd
    1309013096    and AL, strict byte 01fh                  ; 24 1f
    1309113097    cmp AL, strict byte 005h                  ; 3c 05
    13092     jne short 087f7h                          ; 75 03
    13093     jmp near 086c8h                           ; e9 d1 fe
    13094     jmp short 087e7h                          ; eb ee
     13098    jne short 08806h                          ; 75 03
     13099    jmp near 086d7h                           ; e9 d1 fe
     13100    jmp short 087f6h                          ; eb ee
    1309513101    lea sp, [bp-00ah]                         ; 8d 66 f6
    1309613102    pop di                                    ; 5f
     
    1310113107    pop bp                                    ; 5d
    1310213108    retn                                      ; c3
    13103 _scsi_init:                                  ; 0xf8803 LB 0x66
     13109_scsi_init:                                  ; 0xf8812 LB 0x66
    1310413110    push bp                                   ; 55
    1310513111    mov bp, sp                                ; 89 e5
    1310613112    mov dx, strict word 0000eh                ; ba 0e 00
    1310713113    mov ax, strict word 00040h                ; b8 40 00
    13108     call 0166eh                               ; e8 5f 8e
     13114    call 0166eh                               ; e8 50 8e
    1310913115    mov bx, 00122h                            ; bb 22 01
    1311013116    mov es, ax                                ; 8e c0
     
    1311713123    ; sub ah, ah                                ; 2a e4
    1311813124    cmp AL, strict byte 055h                  ; 3c 55
    13119     jne short 08833h                          ; 75 0c
     13125    jne short 08842h                          ; 75 0c
    1312013126    xor al, al                                ; 30 c0
    1312113127    mov dx, 00433h                            ; ba 33 04
    1312213128    out DX, AL                                ; ee
    1312313129    mov ax, 00430h                            ; b8 30 04
    13124     call 08338h                               ; e8 05 fb
     13130    call 08347h                               ; e8 05 fb
    1312513131    mov AL, strict byte 055h                  ; b0 55
    1312613132    mov dx, 00436h                            ; ba 36 04
     
    1313013136    ; sub ah, ah                                ; 2a e4
    1313113137    cmp AL, strict byte 055h                  ; 3c 55
    13132     jne short 0884ch                          ; 75 0c
     13138    jne short 0885bh                          ; 75 0c
    1313313139    xor al, al                                ; 30 c0
    1313413140    mov dx, 00437h                            ; ba 37 04
    1313513141    out DX, AL                                ; ee
    1313613142    mov ax, 00434h                            ; b8 34 04
    13137     call 08338h                               ; e8 ec fa
     13143    call 08347h                               ; e8 ec fa
    1313813144    mov AL, strict byte 055h                  ; b0 55
    1313913145    mov dx, 0043ah                            ; ba 3a 04
     
    1314313149    ; sub ah, ah                                ; 2a e4
    1314413150    cmp AL, strict byte 055h                  ; 3c 55
    13145     jne short 08865h                          ; 75 0c
     13151    jne short 08874h                          ; 75 0c
    1314613152    xor al, al                                ; 30 c0
    1314713153    mov dx, 0043bh                            ; ba 3b 04
    1314813154    out DX, AL                                ; ee
    1314913155    mov ax, 00438h                            ; b8 38 04
    13150     call 08338h                               ; e8 d3 fa
     13156    call 08347h                               ; e8 d3 fa
    1315113157    mov sp, bp                                ; 89 ec
    1315213158    pop bp                                    ; 5d
    1315313159    retn                                      ; c3
    13154 ahci_ctrl_extract_bits_:                     ; 0xf8869 LB 0x1c
     13160ahci_ctrl_extract_bits_:                     ; 0xf8878 LB 0x1c
    1315513161    push si                                   ; 56
    1315613162    push bp                                   ; 55
     
    1316113167    mov cl, byte [bp+006h]                    ; 8a 4e 06
    1316213168    xor ch, ch                                ; 30 ed
    13163     jcxz 08880h                               ; e3 06
     13169    jcxz 0888fh                               ; e3 06
    1316413170    shr dx, 1                                 ; d1 ea
    1316513171    rcr ax, 1                                 ; d1 d8
    13166     loop 0887ah                               ; e2 fa
     13172    loop 08889h                               ; e2 fa
    1316713173    pop bp                                    ; 5d
    1316813174    pop si                                    ; 5e
    1316913175    retn 00002h                               ; c2 02 00
    13170 ahci_addr_to_phys_:                          ; 0xf8885 LB 0x1e
     13176ahci_addr_to_phys_:                          ; 0xf8894 LB 0x1e
    1317113177    push bx                                   ; 53
    1317213178    push cx                                   ; 51
     
    1317913185    sal ax, 1                                 ; d1 e0
    1318013186    rcl dx, 1                                 ; d1 d2
    13181     loop 08893h                               ; e2 fa
     13187    loop 088a2h                               ; e2 fa
    1318213188    xor cx, cx                                ; 31 c9
    1318313189    add ax, bx                                ; 01 d8
     
    1318713193    pop bx                                    ; 5b
    1318813194    retn                                      ; c3
    13189 ahci_port_cmd_sync_:                         ; 0xf88a3 LB 0x159
     13195ahci_port_cmd_sync_:                         ; 0xf88b2 LB 0x159
    1319013196    push bp                                   ; 55
    1319113197    mov bp, sp                                ; 89 e5
     
    1320213208    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1320313209    cmp AL, strict byte 0ffh                  ; 3c ff
    13204     jne short 088c6h                          ; 75 03
    13205     jmp near 089f4h                           ; e9 2e 01
     13210    jne short 088d5h                          ; 75 03
     13211    jmp near 08a03h                           ; e9 2e 01
    1320613212    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    1320713213    xor ah, ah                                ; 30 e4
     
    1321613222    lea ax, [si+00080h]                       ; 8d 84 80 00
    1321713223    mov dx, cx                                ; 89 ca
    13218     call 08885h                               ; e8 92 ff
     13224    call 08894h                               ; e8 92 ff
    1321913225    mov es, cx                                ; 8e c1
    1322013226    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1328413290    xchg dx, ax                               ; 92
    1328513291    test dh, 040h                             ; f6 c6 40
    13286     jne short 08986h                          ; 75 04
     13292    jne short 08995h                          ; 75 04
    1328713293    test AL, strict byte 001h                 ; a8 01
    13288     je short 0898ah                           ; 74 04
     13294    je short 08999h                           ; 74 04
    1328913295    mov AL, strict byte 001h                  ; b0 01
    13290     jmp short 0898ch                          ; eb 02
     13296    jmp short 0899bh                          ; eb 02
    1329113297    xor al, al                                ; 30 c0
    1329213298    test al, al                               ; 84 c0
    13293     je short 08958h                           ; 74 c8
     13299    je short 08967h                           ; 74 c8
    1329413300    mov al, byte [bp-008h]                    ; 8a 46 f8
    1329513301    xor ah, ah                                ; 30 e4
     
    1334813354    pop bp                                    ; 5d
    1334913355    retn                                      ; c3
    13350 ahci_cmd_data_:                              ; 0xf89fc LB 0x262
     13356ahci_cmd_data_:                              ; 0xf8a0b LB 0x262
    1335113357    push bp                                   ; 55
    1335213358    mov bp, sp                                ; 89 e5
     
    1337313379    mov ax, 00080h                            ; b8 80 00
    1337413380    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13375     call 0a0c0h                               ; e8 86 16
     13381    call 0a0d0h                               ; e8 87 16
    1337613382    mov es, [bp-00ah]                         ; 8e 46 f6
    1337713383    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1339113397    mov dx, word [es:si]                      ; 26 8b 14
    1339213398    mov si, strict word 00008h                ; be 08 00
    13393     call 0a0a0h                               ; e8 22 16
     13399    call 0a0b0h                               ; e8 23 16
    1339413400    mov es, [bp-00ah]                         ; 8e 46 f6
    1339513401    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1340213408    mov dx, word [es:si]                      ; 26 8b 14
    1340313409    mov si, strict word 00010h                ; be 10 00
    13404     call 0a0a0h                               ; e8 fc 15
     13410    call 0a0b0h                               ; e8 fd 15
    1340513411    mov es, [bp-00ah]                         ; 8e 46 f6
    1340613412    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1341413420    mov dx, word [es:si]                      ; 26 8b 14
    1341513421    mov si, strict word 00018h                ; be 18 00
    13416     call 0a0a0h                               ; e8 d0 15
     13422    call 0a0b0h                               ; e8 d1 15
    1341713423    mov es, [bp-00ah]                         ; 8e 46 f6
    1341813424    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1342513431    mov dx, word [es:si]                      ; 26 8b 14
    1342613432    mov si, strict word 00020h                ; be 20 00
    13427     call 0a0a0h                               ; e8 aa 15
     13433    call 0a0b0h                               ; e8 ab 15
    1342813434    mov es, [bp-00ah]                         ; 8e 46 f6
    1342913435    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1343613442    mov dx, word [es:si]                      ; 26 8b 14
    1343713443    mov si, strict word 00028h                ; be 28 00
    13438     call 0a0a0h                               ; e8 84 15
     13444    call 0a0b0h                               ; e8 85 15
    1343913445    mov es, [bp-00ah]                         ; 8e 46 f6
    1344013446    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1344913455    mov bx, word [bp-012h]                    ; 8b 5e ee
    1345013456    xor cx, cx                                ; 31 c9
    13451     call 0a050h                               ; e8 02 15
     13457    call 0a060h                               ; e8 03 15
    1345213458    push dx                                   ; 52
    1345313459    push ax                                   ; 50
     
    1345913465    mov ax, 0026ah                            ; b8 6a 02
    1346013466    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13461     call 09fa5h                               ; e8 3b 14
     13467    call 09fb4h                               ; e8 3b 14
    1346213468    mov es, [bp-00ah]                         ; 8e 46 f6
    1346313469    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1348313489    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1348413490    test ax, ax                               ; 85 c0
    13485     je short 08bfah                           ; 74 39
     13491    je short 08c09h                           ; 74 39
    1348613492    dec ax                                    ; 48
    1348713493    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1350113507    mov al, byte [bp-008h]                    ; 8a 46 f8
    1350213508    cmp AL, strict byte 035h                  ; 3c 35
    13503     jne short 08c07h                          ; 75 06
     13509    jne short 08c16h                          ; 75 06
    1350413510    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13505     jmp short 08c1eh                          ; eb 17
     13511    jmp short 08c2dh                          ; eb 17
    1350613512    cmp AL, strict byte 0a0h                  ; 3c a0
    13507     jne short 08c1ah                          ; 75 0f
     13513    jne short 08c29h                          ; 75 0f
    1350813514    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1350913515    les bx, [bp-00eh]                         ; c4 5e f2
    1351013516    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13511     jmp short 08c1eh                          ; eb 04
     13517    jmp short 08c2dh                          ; eb 04
    1351213518    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1351313519    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1351613522    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1351713523    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13518     call 088a3h                               ; e8 73 fc
     13524    call 088b2h                               ; e8 73 fc
    1351913525    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1352013526    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1352313529    add ax, 0026ah                            ; 05 6a 02
    1352413530    mov dx, cx                                ; 89 ca
    13525     call 0a01ch                               ; e8 d7 13
     13531    call 0a02bh                               ; e8 d7 13
    1352613532    mov es, cx                                ; 8e c1
    1352713533    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1352813534    test al, al                               ; 84 c0
    13529     je short 08c54h                           ; 74 05
     13535    je short 08c63h                           ; 74 05
    1353013536    mov ax, strict word 00004h                ; b8 04 00
    13531     jmp short 08c56h                          ; eb 02
     13537    jmp short 08c65h                          ; eb 02
    1353213538    xor ah, ah                                ; 30 e4
    1353313539    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1353713543    pop bp                                    ; 5d
    1353813544    retn                                      ; c3
    13539 ahci_port_deinit_current_:                   ; 0xf8c5e LB 0x183
     13545ahci_port_deinit_current_:                   ; 0xf8c6d LB 0x183
    1354013546    push bp                                   ; 55
    1354113547    mov bp, sp                                ; 89 e5
     
    1355213558    mov byte [bp-00ah], al                    ; 88 46 f6
    1355313559    cmp AL, strict byte 0ffh                  ; 3c ff
    13554     je short 08ce1h                           ; 74 61
     13560    je short 08cf0h                           ; 74 61
    1355513561    xor ah, ah                                ; 30 e4
    1355613562    mov CL, strict byte 007h                  ; b1 07
     
    1359813604    xchg dx, ax                               ; 92
    1359913605    test ax, 0c011h                           ; a9 11 c0
    13600     je short 08ce4h                           ; 74 07
     13606    je short 08cf3h                           ; 74 07
    1360113607    mov AL, strict byte 001h                  ; b0 01
    13602     jmp short 08ce6h                          ; eb 05
    13603     jmp near 08dd8h                           ; e9 f4 00
     13608    jmp short 08cf5h                          ; eb 05
     13609    jmp near 08de7h                           ; e9 f4 00
    1360413610    xor al, al                                ; 30 c0
    1360513611    cmp AL, strict byte 001h                  ; 3c 01
    13606     je short 08cb3h                           ; 74 c9
     13612    je short 08cc2h                           ; 74 c9
    1360713613    mov cx, strict word 00020h                ; b9 20 00
    1360813614    xor bx, bx                                ; 31 db
    1360913615    mov ax, di                                ; 89 f8
    1361013616    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13611     call 0a0c0h                               ; e8 c9 13
     13617    call 0a0d0h                               ; e8 ca 13
    1361213618    lea ax, [di+00080h]                       ; 8d 85 80 00
    1361313619    mov cx, strict word 00040h                ; b9 40 00
    1361413620    xor bx, bx                                ; 31 db
    1361513621    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13616     call 0a0c0h                               ; e8 ba 13
     13622    call 0a0d0h                               ; e8 bb 13
    1361713623    lea ax, [di+00200h]                       ; 8d 85 00 02
    1361813624    mov cx, strict word 00060h                ; b9 60 00
    1361913625    xor bx, bx                                ; 31 db
    1362013626    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13621     call 0a0c0h                               ; e8 ab 13
     13627    call 0a0d0h                               ; e8 ac 13
    1362213628    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1362313629    xor ah, ah                                ; 30 e4
     
    1372513731    pop bp                                    ; 5d
    1372613732    retn                                      ; c3
    13727 ahci_port_init_:                             ; 0xf8de1 LB 0x250
     13733ahci_port_init_:                             ; 0xf8df0 LB 0x250
    1372813734    push bp                                   ; 55
    1372913735    mov bp, sp                                ; 89 e5
     
    1373513741    mov word [bp-00ah], dx                    ; 89 56 f6
    1373613742    mov byte [bp-008h], bl                    ; 88 5e f8
    13737     call 08c5eh                               ; e8 69 fe
     13743    call 08c6dh                               ; e8 69 fe
    1373813744    mov al, bl                                ; 88 d8
    1373913745    xor ah, ah                                ; 30 e4
     
    1378613792    xchg dx, ax                               ; 92
    1378713793    test ax, 0c011h                           ; a9 11 c0
    13788     je short 08e68h                           ; 74 04
     13794    je short 08e77h                           ; 74 04
    1378913795    mov AL, strict byte 001h                  ; b0 01
    13790     jmp short 08e6ah                          ; eb 02
     13796    jmp short 08e79h                          ; eb 02
    1379113797    xor al, al                                ; 30 c0
    1379213798    cmp AL, strict byte 001h                  ; 3c 01
    13793     je short 08e32h                           ; 74 c4
     13799    je short 08e41h                           ; 74 c4
    1379413800    mov cx, strict word 00020h                ; b9 20 00
    1379513801    xor bx, bx                                ; 31 db
    1379613802    mov ax, si                                ; 89 f0
    1379713803    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13798     call 0a0c0h                               ; e8 45 12
     13804    call 0a0d0h                               ; e8 46 12
    1379913805    lea ax, [si+00080h]                       ; 8d 84 80 00
    1380013806    mov cx, strict word 00040h                ; b9 40 00
    1380113807    xor bx, bx                                ; 31 db
    1380213808    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13803     call 0a0c0h                               ; e8 36 12
     13809    call 0a0d0h                               ; e8 37 12
    1380413810    lea di, [si+00200h]                       ; 8d bc 00 02
    1380513811    mov cx, strict word 00060h                ; b9 60 00
     
    1380713813    mov ax, di                                ; 89 f8
    1380813814    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13809     call 0a0c0h                               ; e8 25 12
     13815    call 0a0d0h                               ; e8 26 12
    1381013816    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1381113817    xor bh, bh                                ; 30 ff
     
    1382613832    mov ax, di                                ; 89 f8
    1382713833    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13828     call 08885h                               ; e8 bb f9
     13834    call 08894h                               ; e8 bb f9
    1382913835    mov es, [bp-00ah]                         ; 8e 46 f6
    1383013836    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1387113877    mov ax, si                                ; 89 f0
    1387213878    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13873     call 08885h                               ; e8 4f f9
     13879    call 08894h                               ; e8 4f f9
    1387413880    mov es, [bp-00ah]                         ; 8e 46 f6
    1387513881    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1397613982    pop bp                                    ; 5d
    1397713983    retn                                      ; c3
    13978 @ahci_read_sectors:                          ; 0xf9031 LB 0xaa
     13984@ahci_read_sectors:                          ; 0xf9040 LB 0xaa
    1397913985    push bp                                   ; 55
    1398013986    mov bp, sp                                ; 89 e5
     
    1398713993    sub di, strict byte 0000ch                ; 83 ef 0c
    1398813994    cmp di, strict byte 00004h                ; 83 ff 04
    13989     jbe short 0905ch                          ; 76 13
     13995    jbe short 0906bh                          ; 76 13
    1399013996    push di                                   ; 57
    1399113997    mov ax, 00c62h                            ; b8 62 0c
     
    1399514001    mov ax, strict word 00007h                ; b8 07 00
    1399614002    push ax                                   ; 50
    13997     call 01976h                               ; e8 1d 89
     14003    call 01976h                               ; e8 0e 89
    1399814004    add sp, strict byte 00008h                ; 83 c4 08
    1399914005    xor bx, bx                                ; 31 db
     
    1400914015    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1401014016    xor ax, ax                                ; 31 c0
    14011     call 08de1h                               ; e8 5a fd
     14017    call 08df0h                               ; e8 5a fd
    1401214018    mov bx, strict word 00025h                ; bb 25 00
    1401314019    mov ax, si                                ; 89 f0
    1401414020    mov dx, word [bp+006h]                    ; 8b 56 06
    14015     call 089fch                               ; e8 6a f9
     14021    call 08a0bh                               ; e8 6a f9
    1401614022    mov bx, ax                                ; 89 c3
    1401714023    mov es, [bp+006h]                         ; 8e 46 06
     
    1404314049    pop bp                                    ; 5d
    1404414050    retn 00004h                               ; c2 04 00
    14045 @ahci_write_sectors:                         ; 0xf90db LB 0x88
     14051@ahci_write_sectors:                         ; 0xf90ea LB 0x88
    1404614052    push bp                                   ; 55
    1404714053    mov bp, sp                                ; 89 e5
     
    1405514061    sub bx, strict byte 0000ch                ; 83 eb 0c
    1405614062    cmp bx, strict byte 00004h                ; 83 fb 04
    14057     jbe short 09109h                          ; 76 13
     14063    jbe short 09118h                          ; 76 13
    1405814064    push bx                                   ; 53
    1405914065    mov ax, 00c93h                            ; b8 93 0c
     
    1406314069    mov ax, strict word 00007h                ; b8 07 00
    1406414070    push ax                                   ; 50
    14065     call 01976h                               ; e8 70 88
     14071    call 01976h                               ; e8 61 88
    1406614072    add sp, strict byte 00008h                ; 83 c4 08
    1406714073    xor di, di                                ; 31 ff
     
    1407714083    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1407814084    xor ax, ax                                ; 31 c0
    14079     call 08de1h                               ; e8 af fc
     14085    call 08df0h                               ; e8 af fc
    1408014086    mov bx, strict word 00035h                ; bb 35 00
    1408114087    mov ax, si                                ; 89 f0
    1408214088    mov dx, cx                                ; 89 ca
    14083     call 089fch                               ; e8 c0 f8
     14089    call 08a0bh                               ; e8 c0 f8
    1408414090    mov dx, ax                                ; 89 c2
    1408514091    mov es, cx                                ; 8e c1
     
    1409614102    pop bp                                    ; 5d
    1409714103    retn 00004h                               ; c2 04 00
    14098 ahci_cmd_packet_:                            ; 0xf9163 LB 0x18c
     14104ahci_cmd_packet_:                            ; 0xf9172 LB 0x18c
    1409914105    push bp                                   ; 55
    1410014106    mov bp, sp                                ; 89 e5
     
    1410814114    mov dx, strict word 0000eh                ; ba 0e 00
    1410914115    mov ax, strict word 00040h                ; b8 40 00
    14110     call 0166eh                               ; e8 f0 84
     14116    call 0166eh                               ; e8 e1 84
    1411114117    mov si, 00122h                            ; be 22 01
    1411214118    mov word [bp-008h], ax                    ; 89 46 f8
    1411314119    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    14114     jne short 091adh                          ; 75 23
     14120    jne short 091bch                          ; 75 23
    1411514121    mov bx, 00da0h                            ; bb a0 0d
    1411614122    mov cx, ds                                ; 8c d9
    1411714123    mov ax, strict word 00004h                ; b8 04 00
    14118     call 01933h                               ; e8 9e 87
     14124    call 01933h                               ; e8 8f 87
    1411914125    mov ax, 00ca6h                            ; b8 a6 0c
    1412014126    push ax                                   ; 50
     
    1412314129    mov ax, strict word 00004h                ; b8 04 00
    1412414130    push ax                                   ; 50
    14125     call 01976h                               ; e8 d2 87
     14131    call 01976h                               ; e8 c3 87
    1412614132    add sp, strict byte 00006h                ; 83 c4 06
    1412714133    mov ax, strict word 00001h                ; b8 01 00
    14128     jmp near 092e6h                           ; e9 39 01
     14134    jmp near 092f5h                           ; e9 39 01
    1412914135    test byte [bp+004h], 001h                 ; f6 46 04 01
    14130     jne short 091a7h                          ; 75 f4
     14136    jne short 091b6h                          ; 75 f4
    1413114137    mov bx, word [bp+006h]                    ; 8b 5e 06
    1413214138    mov di, word [bp+008h]                    ; 8b 7e 08
     
    1413414140    sal bx, 1                                 ; d1 e3
    1413514141    rcl di, 1                                 ; d1 d7
    14136     loop 091bch                               ; e2 fa
     14142    loop 091cbh                               ; e2 fa
    1413714143    mov es, [bp-008h]                         ; 8e 46 f8
    1413814144    mov word [es:si], bx                      ; 26 89 1c
     
    1414814154    mov dx, word [bp+008h]                    ; 8b 56 08
    1414914155    xor cx, cx                                ; 31 c9
    14150     call 0a070h                               ; e8 7b 0e
     14156    call 0a080h                               ; e8 7c 0e
    1415114157    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1415214158    xor di, di                                ; 31 ff
     
    1416614172    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1416714173    xor ax, ax                                ; 31 c0
    14168     call 08de1h                               ; e8 af fb
     14174    call 08df0h                               ; e8 af fb
    1416914175    mov al, byte [bp-006h]                    ; 8a 46 fa
    1417014176    xor ah, ah                                ; 30 e4
     
    1417414180    mov ax, 000c0h                            ; b8 c0 00
    1417514181    mov dx, word [bp-00ah]                    ; 8b 56 f6
    14176     call 0a0d0h                               ; e8 89 0e
     14182    call 0a0e0h                               ; e8 8a 0e
    1417714183    mov es, [bp-008h]                         ; 8e 46 f8
    1417814184    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1418114187    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1418214188    test ax, ax                               ; 85 c0
    14183     je short 09285h                           ; 74 27
     14189    je short 09294h                           ; 74 27
    1418414190    dec ax                                    ; 48
    1418514191    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1419414200    mov ax, si                                ; 89 f0
    1419514201    mov dx, word [bp-008h]                    ; 8b 56 f8
    14196     call 089fch                               ; e8 6c f7
     14202    call 08a0bh                               ; e8 6c f7
    1419714203    les bx, [bp-00eh]                         ; c4 5e f2
    1419814204    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
     
    1422114227    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1422214228    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    14223     jne short 092e4h                          ; 75 05
     14229    jne short 092f3h                          ; 75 05
    1422414230    mov ax, strict word 00004h                ; b8 04 00
    14225     jmp short 092e6h                          ; eb 02
     14231    jmp short 092f5h                          ; eb 02
    1422614232    xor ax, ax                                ; 31 c0
    1422714233    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1423014236    pop bp                                    ; 5d
    1423114237    retn 0000ch                               ; c2 0c 00
    14232 ahci_port_detect_device_:                    ; 0xf92ef LB 0x4fe
     14238ahci_port_detect_device_:                    ; 0xf92fe LB 0x4fe
    1423314239    push bp                                   ; 55
    1423414240    mov bp, sp                                ; 89 e5
     
    1424614252    mov bx, word [bp-020h]                    ; 8b 5e e0
    1424714253    mov ax, si                                ; 89 f0
    14248     call 08de1h                               ; e8 ce fa
     14254    call 08df0h                               ; e8 ce fa
    1424914255    mov dx, strict word 0000eh                ; ba 0e 00
    1425014256    mov ax, strict word 00040h                ; b8 40 00
    14251     call 0166eh                               ; e8 52 83
     14257    call 0166eh                               ; e8 43 83
    1425214258    mov word [bp-01ah], 00122h                ; c7 46 e6 22 01
    1425314259    mov word [bp-00eh], ax                    ; 89 46 f2
     
    1432114327    mov bx, strict word 0000fh                ; bb 0f 00
    1432214328    xor cx, cx                                ; 31 c9
    14323     call 08869h                               ; e8 9f f4
     14329    call 08878h                               ; e8 9f f4
    1432414330    test ax, ax                               ; 85 c0
    14325     jne short 093d1h                          ; 75 03
    14326     jmp near 097e5h                           ; e9 14 04
     14331    jne short 093e0h                          ; 75 03
     14332    jmp near 097f4h                           ; e9 14 04
    1432714333    mov al, byte [bp-008h]                    ; 8a 46 f8
    1432814334    xor ah, ah                                ; 30 e4
     
    1435614362    xor cx, cx                                ; 31 c9
    1435714363    mov ax, di                                ; 89 f8
    14358     call 08869h                               ; e8 4d f4
     14364    call 08878h                               ; e8 4d f4
    1435914365    cmp ax, strict word 00001h                ; 3d 01 00
    14360     je short 093d1h                           ; 74 b0
     14366    je short 093e0h                           ; 74 b0
    1436114367    xor ax, ax                                ; 31 c0
    1436214368    push ax                                   ; 50
     
    1436514371    mov ax, di                                ; 89 f8
    1436614372    mov dx, word [bp-01ch]                    ; 8b 56 e4
    14367     call 08869h                               ; e8 38 f4
     14373    call 08878h                               ; e8 38 f4
    1436814374    cmp ax, strict word 00003h                ; 3d 03 00
    14369     jne short 093ceh                          ; 75 98
     14375    jne short 093ddh                          ; 75 98
    1437014376    mov ax, word [bp-016h]                    ; 8b 46 ea
    1437114377    add ax, 00130h                            ; 05 30 01
     
    1439514401    mov byte [bp-00ch], al                    ; 88 46 f4
    1439614402    cmp AL, strict byte 004h                  ; 3c 04
    14397     jc short 09480h                           ; 72 03
    14398     jmp near 097e5h                           ; e9 65 03
     14403    jc short 0948fh                           ; 72 03
     14404    jmp near 097f4h                           ; e9 65 03
    1439914405    mov ax, word [bp-016h]                    ; 8b 46 ea
    1440014406    add ax, 00118h                            ; 05 18 01
     
    1444814454    add cl, 00ch                              ; 80 c1 0c
    1444914455    test dx, dx                               ; 85 d2
    14450     jne short 0954bh                          ; 75 55
     14456    jne short 0955ah                          ; 75 55
    1445114457    cmp bx, 00101h                            ; 81 fb 01 01
    14452     jne short 0954bh                          ; 75 4f
     14458    jne short 0955ah                          ; 75 4f
    1445314459    mov es, [bp-00eh]                         ; 8e 46 f2
    1445414460    mov bx, word [bp-01ah]                    ; 8b 5e e6
     
    1446514471    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1446614472    mov dx, es                                ; 8c c2
    14467     call 089fch                               ; e8 c0 f4
     14473    call 08a0bh                               ; e8 c0 f4
    1446814474    mov byte [bp-00ah], cl                    ; 88 4e f6
    1446914475    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14470     je short 0954eh                           ; 74 08
     14476    je short 0955dh                           ; 74 08
    1447114477    mov ax, strict word 00001h                ; b8 01 00
    14472     jmp short 09550h                          ; eb 05
    14473     jmp near 09720h                           ; e9 d2 01
     14478    jmp short 0955fh                          ; eb 05
     14479    jmp near 0972fh                           ; e9 d2 01
    1447414480    xor ax, ax                                ; 31 c0
    1447514481    mov cl, al                                ; 88 c1
     
    1448714493    mov word [bp-012h], ax                    ; 89 46 ee
    1448814494    cmp di, 00fffh                            ; 81 ff ff 0f
    14489     jne short 0959fh                          ; 75 1f
     14495    jne short 095aeh                          ; 75 1f
    1449014496    cmp word [bp-014h], strict byte 0ffffh    ; 83 7e ec ff
    14491     jne short 0959fh                          ; 75 19
     14497    jne short 095aeh                          ; 75 19
    1449214498    mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
    1449314499    mov word [bp-012h], ax                    ; 89 46 ee
     
    1452914535    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1453014536    cmp AL, strict byte 001h                  ; 3c 01
    14531     jc short 0961ch                           ; 72 0c
    14532     jbe short 09624h                          ; 76 12
     14537    jc short 0962bh                           ; 72 0c
     14538    jbe short 09633h                          ; 76 12
    1453314539    cmp AL, strict byte 003h                  ; 3c 03
    14534     je short 0962ch                           ; 74 16
     14540    je short 0963bh                           ; 74 16
    1453514541    cmp AL, strict byte 002h                  ; 3c 02
    14536     je short 09628h                           ; 74 0e
    14537     jmp short 0966fh                          ; eb 53
     14542    je short 09637h                           ; 74 0e
     14543    jmp short 0967eh                          ; eb 53
    1453814544    test al, al                               ; 84 c0
    14539     jne short 0966fh                          ; 75 4f
     14545    jne short 0967eh                          ; 75 4f
    1454014546    mov DL, strict byte 040h                  ; b2 40
    14541     jmp short 0962eh                          ; eb 0a
     14547    jmp short 0963dh                          ; eb 0a
    1454214548    mov DL, strict byte 048h                  ; b2 48
    14543     jmp short 0962eh                          ; eb 06
     14549    jmp short 0963dh                          ; eb 06
    1454414550    mov DL, strict byte 050h                  ; b2 50
    14545     jmp short 0962eh                          ; eb 02
     14551    jmp short 0963dh                          ; eb 02
    1454614552    mov DL, strict byte 058h                  ; b2 58
    1454714553    mov bl, dl                                ; 88 d3
     
    1454914555    xor bh, bh                                ; 30 ff
    1455014556    mov ax, bx                                ; 89 d8
    14551     call 016aeh                               ; e8 74 80
     14557    call 016aeh                               ; e8 65 80
    1455214558    test al, al                               ; 84 c0
    14553     je short 0966fh                           ; 74 31
     14559    je short 0967eh                           ; 74 31
    1455414560    mov al, dl                                ; 88 d0
    1455514561    db  0feh, 0c0h
    1455614562    ; inc al                                    ; fe c0
    1455714563    xor ah, ah                                ; 30 e4
    14558     call 016aeh                               ; e8 67 80
     14564    call 016aeh                               ; e8 58 80
    1455914565    mov ch, al                                ; 88 c5
    1456014566    mov al, dl                                ; 88 d0
    1456114567    xor ah, ah                                ; 30 e4
    14562     call 016aeh                               ; e8 5e 80
     14568    call 016aeh                               ; e8 4f 80
    1456314569    mov ah, ch                                ; 88 ec
    1456414570    mov word [bp-028h], ax                    ; 89 46 d8
     
    1456614572    add AL, strict byte 002h                  ; 04 02
    1456714573    xor ah, ah                                ; 30 e4
    14568     call 016aeh                               ; e8 50 80
     14574    call 016aeh                               ; e8 41 80
    1456914575    xor ah, ah                                ; 30 e4
    1457014576    mov word [bp-02ah], ax                    ; 89 46 d6
    1457114577    mov ax, bx                                ; 89 d8
    14572     call 016aeh                               ; e8 46 80
     14578    call 016aeh                               ; e8 37 80
    1457314579    xor ah, ah                                ; 30 e4
    1457414580    mov word [bp-026h], ax                    ; 89 46 da
    14575     jmp short 09681h                          ; eb 12
     14581    jmp short 09690h                          ; eb 12
    1457614582    push word [bp-012h]                       ; ff 76 ee
    1457714583    push word [bp-01eh]                       ; ff 76 e2
     
    1458014586    mov dx, ss                                ; 8c d2
    1458114587    lea ax, [bp-02ah]                         ; 8d 46 d6
    14582     call 05b4fh                               ; e8 ce c4
     14588    call 05b4fh                               ; e8 bf c4
    1458314589    mov bx, 00da0h                            ; bb a0 0d
    1458414590    mov cx, ds                                ; 8c d9
    1458514591    mov ax, strict word 00004h                ; b8 04 00
    14586     call 01933h                               ; e8 a7 82
     14592    call 01933h                               ; e8 98 82
    1458714593    push word [bp-012h]                       ; ff 76 ee
    1458814594    push word [bp-01eh]                       ; ff 76 e2
     
    1460714613    mov ax, strict word 00004h                ; b8 04 00
    1460814614    push ax                                   ; 50
    14609     call 01976h                               ; e8 b6 82
     14615    call 01976h                               ; e8 a7 82
    1461014616    add sp, strict byte 0001ch                ; 83 c4 1c
    1461114617    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    1463914645    mov dx, strict word 00075h                ; ba 75 00
    1464014646    mov ax, strict word 00040h                ; b8 40 00
    14641     call 01652h                               ; e8 44 7f
     14647    call 01652h                               ; e8 35 7f
    1464214648    mov bl, al                                ; 88 c3
    1464314649    db  0feh, 0c3h
     
    1464614652    mov dx, strict word 00075h                ; ba 75 00
    1464714653    mov ax, strict word 00040h                ; b8 40 00
    14648     call 01660h                               ; e8 43 7f
    14649     jmp near 097d4h                           ; e9 b4 00
     14654    call 01660h                               ; e8 34 7f
     14655    jmp near 097e3h                           ; e9 b4 00
    1465014656    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14651     jne short 0977bh                          ; 75 55
     14657    jne short 0978ah                          ; 75 55
    1465214658    cmp bx, 00101h                            ; 81 fb 01 01
    14653     jne short 0977bh                          ; 75 4f
     14659    jne short 0978ah                          ; 75 4f
    1465414660    mov es, [bp-00eh]                         ; 8e 46 f2
    1465514661    mov bx, word [bp-01ah]                    ; 8b 5e e6
     
    1466614672    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1466714673    mov dx, es                                ; 8c c2
    14668     call 089fch                               ; e8 90 f2
     14674    call 08a0bh                               ; e8 90 f2
    1466914675    mov byte [bp-00ah], cl                    ; 88 4e f6
    1467014676    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14671     je short 0977dh                           ; 74 07
     14677    je short 0978ch                           ; 74 07
    1467214678    mov cx, strict word 00001h                ; b9 01 00
    14673     jmp short 0977fh                          ; eb 04
    14674     jmp short 097d4h                          ; eb 57
     14679    jmp short 0978eh                          ; eb 04
     14680    jmp short 097e3h                          ; eb 57
    1467514681    xor cx, cx                                ; 31 c9
    1467614682    mov bl, byte [bp-00ch]                    ; 8a 5e f4
     
    1471214718    pop bp                                    ; 5d
    1471314719    retn                                      ; c3
    14714 ahci_mem_alloc_:                             ; 0xf97ed LB 0x43
     14720ahci_mem_alloc_:                             ; 0xf97fc LB 0x43
    1471514721    push bp                                   ; 55
    1471614722    mov bp, sp                                ; 89 e5
     
    1472214728    mov dx, 00413h                            ; ba 13 04
    1472314729    xor ax, ax                                ; 31 c0
    14724     call 0166eh                               ; e8 71 7e
     14730    call 0166eh                               ; e8 62 7e
    1472514731    test ax, ax                               ; 85 c0
    14726     je short 09826h                           ; 74 25
     14732    je short 09835h                           ; 74 25
    1472714733    dec ax                                    ; 48
    1472814734    mov bx, ax                                ; 89 c3
     
    1473114737    sal ax, 1                                 ; d1 e0
    1473214738    rcl dx, 1                                 ; d1 d2
    14733     loop 09809h                               ; e2 fa
     14739    loop 09818h                               ; e2 fa
    1473414740    mov si, ax                                ; 89 c6
    1473514741    mov di, dx                                ; 89 d7
     
    1473714743    shr di, 1                                 ; d1 ef
    1473814744    rcr si, 1                                 ; d1 de
    14739     loop 09816h                               ; e2 fa
     14745    loop 09825h                               ; e2 fa
    1474014746    mov dx, 00413h                            ; ba 13 04
    1474114747    xor ax, ax                                ; 31 c0
    14742     call 0167ch                               ; e8 58 7e
     14748    call 0167ch                               ; e8 49 7e
    1474314749    mov ax, si                                ; 89 f0
    1474414750    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1475014756    pop bp                                    ; 5d
    1475114757    retn                                      ; c3
    14752 ahci_hba_init_:                              ; 0xf9830 LB 0x16e
     14758ahci_hba_init_:                              ; 0xf983f LB 0x16e
    1475314759    push bp                                   ; 55
    1475414760    mov bp, sp                                ; 89 e5
     
    1476214768    mov dx, strict word 0000eh                ; ba 0e 00
    1476314769    mov ax, strict word 00040h                ; b8 40 00
    14764     call 0166eh                               ; e8 28 7e
     14770    call 0166eh                               ; e8 19 7e
    1476514771    mov bx, 00122h                            ; bb 22 01
    1476614772    mov di, ax                                ; 89 c7
     
    1477914785    shr eax, 010h                             ; 66 c1 e8 10
    1478014786    xchg dx, ax                               ; 92
    14781     call 097edh                               ; e8 83 ff
     14787    call 097fch                               ; e8 83 ff
    1478214788    mov word [bp-010h], ax                    ; 89 46 f0
    1478314789    test ax, ax                               ; 85 c0
    14784     jne short 09874h                          ; 75 03
    14785     jmp near 0997dh                           ; e9 09 01
     14790    jne short 09883h                          ; 75 03
     14791    jmp near 0998ch                           ; e9 09 01
    1478614792    mov ax, word [bp-010h]                    ; 8b 46 f0
    1478714793    mov es, di                                ; 8e c7
     
    1483314839    xchg dx, ax                               ; 92
    1483414840    test AL, strict byte 001h                 ; a8 01
    14835     jne short 098ceh                          ; 75 de
     14841    jne short 098ddh                          ; 75 de
    1483614842    xor ax, ax                                ; 31 c0
    1483714843    xor cx, cx                                ; 31 c9
     
    1485214858    mov bx, strict word 0001fh                ; bb 1f 00
    1485314859    xor cx, cx                                ; 31 c9
    14854     call 08869h                               ; e8 54 ef
     14860    call 08878h                               ; e8 54 ef
    1485514861    db  0feh, 0c0h
    1485614862    ; inc al                                    ; fe c0
    1485714863    mov byte [bp-00eh], al                    ; 88 46 f2
    1485814864    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    14859     jmp short 09941h                          ; eb 21
     14865    jmp short 09950h                          ; eb 21
    1486014866    xor al, al                                ; 30 c0
    1486114867    test al, al                               ; 84 c0
    14862     je short 09938h                           ; 74 12
     14868    je short 09947h                           ; 74 12
    1486314869    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    1486414870    xor bh, bh                                ; 30 ff
    1486514871    xor ax, ax                                ; 31 c0
    1486614872    mov dx, word [bp-010h]                    ; 8b 56 f0
    14867     call 092efh                               ; e8 bc f9
     14873    call 092feh                               ; e8 bc f9
    1486814874    dec byte [bp-00eh]                        ; fe 4e f2
    14869     je short 0997bh                           ; 74 43
     14875    je short 0998ah                           ; 74 43
    1487014876    inc byte [bp-00ch]                        ; fe 46 f4
    1487114877    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    14872     jnc short 0997bh                          ; 73 3a
     14878    jnc short 0998ah                          ; 73 3a
    1487314879    mov cl, byte [bp-00ch]                    ; 8a 4e f4
    1487414880    xor ch, ch                                ; 30 ed
    1487514881    mov bx, strict word 00001h                ; bb 01 00
    1487614882    xor di, di                                ; 31 ff
    14877     jcxz 09953h                               ; e3 06
     14883    jcxz 09962h                               ; e3 06
    1487814884    sal bx, 1                                 ; d1 e3
    1487914885    rcl di, 1                                 ; d1 d7
    14880     loop 0994dh                               ; e2 fa
     14886    loop 0995ch                               ; e2 fa
    1488114887    mov ax, strict word 0000ch                ; b8 0c 00
    1488214888    xor cx, cx                                ; 31 c9
     
    1489414900    xchg dx, ax                               ; 92
    1489514901    test dx, di                               ; 85 fa
    14896     jne short 09977h                          ; 75 04
     14902    jne short 09986h                          ; 75 04
    1489714903    test ax, bx                               ; 85 d8
    14898     je short 09920h                           ; 74 a9
     14904    je short 0992fh                           ; 74 a9
    1489914905    mov AL, strict byte 001h                  ; b0 01
    14900     jmp short 09922h                          ; eb a7
     14906    jmp short 09931h                          ; eb a7
    1490114907    xor ax, ax                                ; 31 c0
    1490214908    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1490814914    pop bp                                    ; 5d
    1490914915    retn                                      ; c3
    14910     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 083h, 09ah, 061h, 09ah, 067h, 09ah, 06dh, 09ah, 073h
    14911     db  09ah, 079h, 09ah, 07fh, 09ah, 083h, 09ah
    14912 _ahci_init:                                  ; 0xf999e LB 0x11a
     14916    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 092h, 09ah, 070h, 09ah, 076h, 09ah, 07ch, 09ah, 082h
     14917    db  09ah, 088h, 09ah, 08eh, 09ah, 092h, 09ah
     14918_ahci_init:                                  ; 0xf99ad LB 0x11a
    1491314919    push bp                                   ; 55
    1491414920    mov bp, sp                                ; 89 e5
     
    1491714923    mov ax, 00601h                            ; b8 01 06
    1491814924    mov dx, strict word 00001h                ; ba 01 00
    14919     call 09ed7h                               ; e8 29 05
     14925    call 09ee6h                               ; e8 29 05
    1492014926    mov dx, ax                                ; 89 c2
    1492114927    cmp ax, strict word 0ffffh                ; 3d ff ff
    14922     je short 099feh                           ; 74 49
     14928    je short 09a0dh                           ; 74 49
    1492314929    mov al, ah                                ; 88 e0
    1492414930    mov byte [bp-006h], ah                    ; 88 66 fa
     
    1492714933    xor ah, ah                                ; 30 e4
    1492814934    mov bx, strict word 00034h                ; bb 34 00
    14929     call 09edfh                               ; e8 18 05
     14935    call 09eeeh                               ; e8 18 05
    1493014936    mov cl, al                                ; 88 c1
    1493114937    test cl, cl                               ; 84 c9
    14932     je short 09a01h                           ; 74 34
     14938    je short 09a10h                           ; 74 34
    1493314939    mov bl, cl                                ; 88 cb
    1493414940    xor bh, bh                                ; 30 ff
     
    1494114947    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1494214948    mov ax, word [bp-010h]                    ; 8b 46 f0
    14943     call 09edfh                               ; e8 f3 04
     14949    call 09eeeh                               ; e8 f3 04
    1494414950    cmp AL, strict byte 012h                  ; 3c 12
    14945     je short 09a01h                           ; 74 11
     14951    je short 09a10h                           ; 74 11
    1494614952    mov bl, cl                                ; 88 cb
    1494714953    db  0feh, 0c3h
     
    1495014956    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1495114957    mov ax, word [bp-010h]                    ; 8b 46 f0
    14952     jmp short 099c4h                          ; eb c6
    14953     jmp near 09ab2h                           ; e9 b1 00
     14958    jmp short 099d3h                          ; eb c6
     14959    jmp near 09ac1h                           ; e9 b1 00
    1495414960    test cl, cl                               ; 84 c9
    14955     je short 099feh                           ; 74 f9
     14961    je short 09a0dh                           ; 74 f9
    1495614962    add cl, 002h                              ; 80 c1 02
    1495714963    mov bl, cl                                ; 88 cb
     
    1496514971    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1496614972    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14967     call 09edfh                               ; e8 b8 04
     14973    call 09eeeh                               ; e8 b8 04
    1496814974    cmp AL, strict byte 010h                  ; 3c 10
    14969     jne short 099feh                          ; 75 d3
     14975    jne short 09a0dh                          ; 75 d3
    1497014976    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1497114977    mov bl, cl                                ; 88 cb
     
    1497414980    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1497514981    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14976     call 09f06h                               ; e8 c7 04
     14982    call 09f15h                               ; e8 c7 04
    1497714983    mov dx, ax                                ; 89 c2
    1497814984    and ax, strict word 0000fh                ; 25 0f 00
    1497914985    sub ax, strict word 00004h                ; 2d 04 00
    1498014986    cmp ax, strict word 0000bh                ; 3d 0b 00
    14981     jnbe short 09a83h                         ; 77 37
     14987    jnbe short 09a92h                         ; 77 37
    1498214988    push CS                                   ; 0e
    1498314989    pop ES                                    ; 07
    1498414990    mov cx, strict word 00008h                ; b9 08 00
    14985     mov di, 09987h                            ; bf 87 99
     14991    mov di, 09996h                            ; bf 96 99
    1498614992    repne scasb                               ; f2 ae
    1498714993    sal cx, 1                                 ; d1 e1
    1498814994    mov di, cx                                ; 89 cf
    14989     mov ax, word [cs:di-06672h]               ; 2e 8b 85 8e 99
     14995    mov ax, word [cs:di-06663h]               ; 2e 8b 85 9d 99
    1499014996    jmp ax                                    ; ff e0
    1499114997    mov byte [bp-004h], 010h                  ; c6 46 fc 10
    14992     jmp short 09a83h                          ; eb 1c
     14998    jmp short 09a92h                          ; eb 1c
    1499314999    mov byte [bp-004h], 014h                  ; c6 46 fc 14
    14994     jmp short 09a83h                          ; eb 16
     15000    jmp short 09a92h                          ; eb 16
    1499515001    mov byte [bp-004h], 018h                  ; c6 46 fc 18
    14996     jmp short 09a83h                          ; eb 10
     15002    jmp short 09a92h                          ; eb 10
    1499715003    mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
    14998     jmp short 09a83h                          ; eb 0a
     15004    jmp short 09a92h                          ; eb 0a
    1499915005    mov byte [bp-004h], 020h                  ; c6 46 fc 20
    15000     jmp short 09a83h                          ; eb 04
     15006    jmp short 09a92h                          ; eb 04
    1500115007    mov byte [bp-004h], 024h                  ; c6 46 fc 24
    1500215008    mov CL, strict byte 004h                  ; b1 04
     
    1500815014    mov al, byte [bp-004h]                    ; 8a 46 fc
    1500915015    test al, al                               ; 84 c0
    15010     je short 09ab2h                           ; 74 1c
     15016    je short 09ac1h                           ; 74 1c
    1501115017    mov bl, al                                ; 88 c3
    1501215018    xor bh, bh                                ; 30 ff
     
    1501515021    mov al, byte [bp-006h]                    ; 8a 46 fa
    1501615022    xor ah, ah                                ; 30 e4
    15017     call 09f2bh                               ; e8 84 04
     15023    call 09f3ah                               ; e8 84 04
    1501815024    test AL, strict byte 001h                 ; a8 01
    15019     je short 09ab2h                           ; 74 07
     15025    je short 09ac1h                           ; 74 07
    1502015026    and AL, strict byte 0f0h                  ; 24 f0
    1502115027    add ax, cx                                ; 01 c8
    15022     call 09830h                               ; e8 7e fd
     15028    call 0983fh                               ; e8 7e fd
    1502315029    lea sp, [bp-002h]                         ; 8d 66 fe
    1502415030    pop di                                    ; 5f
    1502515031    pop bp                                    ; 5d
    1502615032    retn                                      ; c3
    15027 apm_out_str_:                                ; 0xf9ab8 LB 0x39
     15033apm_out_str_:                                ; 0xf9ac7 LB 0x39
    1502815034    push bp                                   ; 55
    1502915035    mov bp, sp                                ; 89 e5
     
    1503115037    mov bx, ax                                ; 89 c3
    1503215038    cmp byte [bx], 000h                       ; 80 3f 00
    15033     je short 09acdh                           ; 74 0a
     15039    je short 09adch                           ; 74 0a
    1503415040    mov al, byte [bx]                         ; 8a 07
    1503515041    out DX, AL                                ; ee
     
    1503815044    db  00ah, 0c0h
    1503915045    ; or al, al                                 ; 0a c0
    15040     jne short 09ac5h                          ; 75 f8
     15046    jne short 09ad4h                          ; 75 f8
    1504115047    lea sp, [bp-002h]                         ; 8d 66 fe
    1504215048    pop bx                                    ; 5b
    1504315049    pop bp                                    ; 5d
    1504415050    retn                                      ; c3
    15045     adc bl, byte [bp+di-06463h]               ; 12 9b 9d 9b
    15046     and AL, strict byte 09bh                  ; 24 9b
    15047     aas                                       ; 3f
     15051    and word [bp+di-06454h], bx               ; 21 9b ac 9b
     15052    xor bx, word [bp+di-064b2h]               ; 33 9b 4e 9b
     15053    lodsb                                     ; ac
    1504815054    wait                                      ; 9b
    15049     popfw                                     ; 9d
     15055    jns short 09a89h                          ; 79 9b
     15056    lodsb                                     ; ac
    1505015057    wait                                      ; 9b
    15051     push strict byte 0ff9bh                   ; 6a 9b
    15052     popfw                                     ; 9d
     15058    mov DL, strict byte 09bh                  ; b2 9b
     15059    jle short 09a8fh                          ; 7e 9b
     15060    jle short 09a91h                          ; 7e 9b
     15061    jle short 09a93h                          ; 7e 9b
     15062    db  0f1h
    1505315063    wait                                      ; 9b
    15054     mov word [06f9bh], ax                     ; a3 9b 6f
     15064    jle short 09a97h                          ; 7e 9b
     15065    jle short 09a99h                          ; 7e 9b
     15066    db  0eah
    1505515067    wait                                      ; 9b
    15056     outsw                                     ; 6f
    15057     wait                                      ; 9b
    15058     outsw                                     ; 6f
    15059     wait                                      ; 9b
    15060     loop 09a86h                               ; e2 9b
    15061     outsw                                     ; 6f
    15062     wait                                      ; 9b
    15063     outsw                                     ; 6f
    15064     wait                                      ; 9b
    15065     db  0dbh
    15066     wait                                      ; 9b
    15067 _apm_function:                               ; 0xf9af1 LB 0xf6
     15068_apm_function:                               ; 0xf9b00 LB 0xf6
    1506815069    push bp                                   ; 55
    1506915070    mov bp, sp                                ; 89 e5
     
    1507315074    xor ah, ah                                ; 30 e4
    1507415075    cmp ax, strict word 0000eh                ; 3d 0e 00
    15075     jnbe short 09b6fh                         ; 77 6c
     15076    jnbe short 09b7eh                         ; 77 6c
    1507615077    mov bx, ax                                ; 89 c3
    1507715078    sal bx, 1                                 ; d1 e3
    1507815079    mov dx, word [bp+018h]                    ; 8b 56 18
    1507915080    or dl, 001h                               ; 80 ca 01
    15080     jmp word [cs:bx-0652dh]                   ; 2e ff a7 d3 9a
     15081    jmp word [cs:bx-0651eh]                   ; 2e ff a7 e2 9a
    1508115082    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1508215083    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1508315084    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    15084     jmp near 09b9dh                           ; e9 79 00
     15085    jmp near 09bach                           ; e9 79 00
    1508515086    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    15086     mov word [bp+00ch], 0a144h                ; c7 46 0c 44 a1
     15087    mov word [bp+00ch], 0a154h                ; c7 46 0c 54 a1
    1508715088    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1508815089    mov ax, strict word 0fff0h                ; b8 f0 ff
    1508915090    mov word [bp+006h], ax                    ; 89 46 06
    1509015091    mov word [bp+004h], ax                    ; 89 46 04
    15091     jmp near 09b9dh                           ; e9 5e 00
     15092    jmp near 09bach                           ; e9 5e 00
    1509215093    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1509315094    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1510215103    mov si, ax                                ; 89 c6
    1510315104    sal esi, 010h                             ; 66 c1 e6 10
    15104     jmp near 09b9dh                           ; e9 33 00
     15105    jmp near 09bach                           ; e9 33 00
    1510515106    sti                                       ; fb
    1510615107    hlt                                       ; f4
    15107     jmp near 09b9dh                           ; e9 2e 00
     15108    jmp near 09bach                           ; e9 2e 00
    1510815109    mov bx, 00da0h                            ; bb a0 0d
    1510915110    mov cx, ds                                ; 8c d9
    1511015111    mov ax, strict word 00004h                ; b8 04 00
    15111     call 01933h                               ; e8 b9 7d
     15112    call 01933h                               ; e8 aa 7d
    1511215113    push word [bp+00ch]                       ; ff 76 0c
    1511315114    push word [bp+012h]                       ; ff 76 12
     
    1511615117    mov ax, strict word 00004h                ; b8 04 00
    1511715118    push ax                                   ; 50
    15118     call 01976h                               ; e8 eb 7d
     15119    call 01976h                               ; e8 dc 7d
    1511915120    add sp, strict byte 00008h                ; 83 c4 08
    1512015121    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1512815129    retn                                      ; c3
    1512915130    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    15130     je short 09bc8h                           ; 74 1f
     15131    je short 09bd7h                           ; 74 1f
    1513115132    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    15132     je short 09bc0h                           ; 74 11
     15133    je short 09bcfh                           ; 74 11
    1513315134    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    15134     jne short 09bd0h                          ; 75 1b
    15135     mov dx, 08900h                            ; ba 00 89
     15135    jne short 09bdfh                          ; 75 1b
     15136    mov dx, 0040fh                            ; ba 0f 04
    1513615137    mov ax, 00d10h                            ; b8 10 0d
    15137     call 09ab8h                               ; e8 fa fe
    15138     jmp short 09b9dh                          ; eb dd
    15139     mov dx, 08900h                            ; ba 00 89
     15138    call 09ac7h                               ; e8 fa fe
     15139    jmp short 09bach                          ; eb dd
     15140    mov dx, 0040fh                            ; ba 0f 04
    1514015141    mov ax, 00d18h                            ; b8 18 0d
    15141     jmp short 09bbbh                          ; eb f3
    15142     mov dx, 08900h                            ; ba 00 89
     15142    jmp short 09bcah                          ; eb f3
     15143    mov dx, 0040fh                            ; ba 0f 04
    1514315144    mov ax, 00d20h                            ; b8 20 0d
    15144     jmp short 09bbbh                          ; eb eb
     15145    jmp short 09bcah                          ; eb eb
    1514515146    or ah, 00ah                               ; 80 cc 0a
    1514615147    mov word [bp+012h], ax                    ; 89 46 12
    1514715148    mov word [bp+018h], dx                    ; 89 56 18
    15148     jmp short 09b9dh                          ; eb c2
     15149    jmp short 09bach                          ; eb c2
    1514915150    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    15150     jmp short 09b9dh                          ; eb bb
     15151    jmp short 09bach                          ; eb bb
    1515115152    or ah, 080h                               ; 80 cc 80
    15152     jmp short 09bd3h                          ; eb ec
    15153 pci16_select_reg_:                           ; 0xf9be7 LB 0x24
     15153    jmp short 09be2h                          ; eb ec
     15154pci16_select_reg_:                           ; 0xf9bf6 LB 0x24
    1515415155    push bp                                   ; 55
    1515515156    mov bp, sp                                ; 89 e5
     
    1516815169    pop bp                                    ; 5d
    1516915170    retn                                      ; c3
    15170 pci16_find_device_:                          ; 0xf9c0b LB 0xf7
     15171pci16_find_device_:                          ; 0xf9c1a LB 0xf7
    1517115172    push bp                                   ; 55
    1517215173    mov bp, sp                                ; 89 e5
     
    1518215183    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1518315184    test bl, 007h                             ; f6 c3 07
    15184     jne short 09c53h                          ; 75 2d
     15185    jne short 09c62h                          ; 75 2d
    1518515186    mov dx, strict word 0000eh                ; ba 0e 00
    1518615187    mov ax, bx                                ; 89 d8
    15187     call 09be7h                               ; e8 b9 ff
     15188    call 09bf6h                               ; e8 b9 ff
    1518815189    mov dx, 00cfeh                            ; ba fe 0c
    1518915190    in AL, DX                                 ; ec
     
    1519215193    mov byte [bp-008h], al                    ; 88 46 f8
    1519315194    cmp AL, strict byte 0ffh                  ; 3c ff
    15194     jne short 09c41h                          ; 75 06
     15195    jne short 09c50h                          ; 75 06
    1519515196    add bx, strict byte 00008h                ; 83 c3 08
    15196     jmp near 09cd3h                           ; e9 92 00
     15197    jmp near 09ce2h                           ; e9 92 00
    1519715198    test byte [bp-008h], 080h                 ; f6 46 f8 80
    15198     je short 09c4eh                           ; 74 07
     15199    je short 09c5dh                           ; 74 07
    1519915200    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    15200     jmp short 09c53h                          ; eb 05
     15201    jmp short 09c62h                          ; eb 05
    1520115202    mov word [bp-00eh], strict word 00008h    ; c7 46 f2 08 00
    1520215203    mov al, byte [bp-008h]                    ; 8a 46 f8
    1520315204    and AL, strict byte 007h                  ; 24 07
    1520415205    cmp AL, strict byte 001h                  ; 3c 01
    15205     jne short 09c7ah                          ; 75 1e
     15206    jne short 09c89h                          ; 75 1e
    1520615207    mov al, bh                                ; 88 f8
    1520715208    xor ah, ah                                ; 30 e4
    1520815209    test ax, ax                               ; 85 c0
    15209     jne short 09c7ah                          ; 75 16
     15210    jne short 09c89h                          ; 75 16
    1521015211    mov dx, strict word 0001ah                ; ba 1a 00
    1521115212    mov ax, bx                                ; 89 d8
    15212     call 09be7h                               ; e8 7b ff
     15213    call 09bf6h                               ; e8 7b ff
    1521315214    mov dx, 00cfeh                            ; ba fe 0c
    1521415215    in AL, DX                                 ; ec
     
    1521615217    ; sub ah, ah                                ; 2a e4
    1521715218    cmp al, byte [bp-006h]                    ; 3a 46 fa
    15218     jbe short 09c7ah                          ; 76 03
     15219    jbe short 09c89h                          ; 76 03
    1521915220    mov byte [bp-006h], al                    ; 88 46 fa
    1522015221    test di, di                               ; 85 ff
    15221     je short 09c83h                           ; 74 05
     15222    je short 09c92h                           ; 74 05
    1522215223    mov dx, strict word 00008h                ; ba 08 00
    15223     jmp short 09c85h                          ; eb 02
     15224    jmp short 09c94h                          ; eb 02
    1522415225    xor dx, dx                                ; 31 d2
    1522515226    mov ax, bx                                ; 89 d8
    15226     call 09be7h                               ; e8 5d ff
     15227    call 09bf6h                               ; e8 5d ff
    1522715228    mov dx, 00cfch                            ; ba fc 0c
    1522815229    in eax, DX                                ; 66 ed
     
    1523515236    mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
    1523615237    test di, di                               ; 85 ff
    15237     je short 09cb4h                           ; 74 0f
     15238    je short 09cc3h                           ; 74 0f
    1523815239    mov cx, strict word 00008h                ; b9 08 00
    1523915240    shr dx, 1                                 ; d1 ea
    1524015241    rcr ax, 1                                 ; d1 d8
    15241     loop 09ca8h                               ; e2 fa
     15242    loop 09cb7h                               ; e2 fa
    1524215243    mov word [bp-00ah], ax                    ; 89 46 f6
    1524315244    mov word [bp-010h], dx                    ; 89 56 f0
    1524415245    mov ax, word [bp-010h]                    ; 8b 46 f0
    1524515246    cmp ax, word [bp-014h]                    ; 3b 46 ec
    15246     jne short 09cc4h                          ; 75 08
     15247    jne short 09cd3h                          ; 75 08
    1524715248    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1524815249    cmp ax, word [bp-012h]                    ; 3b 46 ee
    15249     je short 09ccah                           ; 74 06
     15250    je short 09cd9h                           ; 74 06
    1525015251    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    15251     je short 09cd0h                           ; 74 06
     15252    je short 09cdfh                           ; 74 06
    1525215253    dec si                                    ; 4e
    1525315254    cmp si, strict byte 0ffffh                ; 83 fe ff
    15254     je short 09ce3h                           ; 74 13
     15255    je short 09cf2h                           ; 74 13
    1525515256    add bx, word [bp-00eh]                    ; 03 5e f2
    1525615257    mov al, bh                                ; 88 f8
     
    1525915260    xor dh, dh                                ; 30 f6
    1526015261    cmp ax, dx                                ; 39 d0
    15261     jnbe short 09ce3h                         ; 77 03
    15262     jmp near 09c21h                           ; e9 3e ff
     15262    jnbe short 09cf2h                         ; 77 03
     15263    jmp near 09c30h                           ; e9 3e ff
    1526315264    cmp si, strict byte 0ffffh                ; 83 fe ff
    15264     jne short 09cech                          ; 75 04
     15265    jne short 09cfbh                          ; 75 04
    1526515266    mov ax, bx                                ; 89 d8
    15266     jmp short 09cefh                          ; eb 03
     15267    jmp short 09cfeh                          ; eb 03
    1526715268    mov ax, strict word 0ffffh                ; b8 ff ff
    1526815269    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1527115272    pop bp                                    ; 5d
    1527215273    retn                                      ; c3
    15273     jcxz 09c95h                               ; e3 9d
    15274     cld                                       ; fc
    15275     popfw                                     ; 9d
    15276     push CS                                   ; 0e
     15274    db  0f2h, 09dh
     15275    ; repne popfw                               ; f2 9d
     15276    or bx, word [bp-061e3h]                   ; 0b 9e 1d 9e
     15277    xor word [bp-061bdh], bx                  ; 31 9e 43 9e
     15278    push si                                   ; 56
    1527715279    sahf                                      ; 9e
    15278     and bl, byte [bp-061cch]                  ; 22 9e 34 9e
    15279     inc di                                    ; 47
    15280     sahf                                      ; 9e
    15281 _pci16_function:                             ; 0xf9d02 LB 0x1d5
     15280_pci16_function:                             ; 0xf9d11 LB 0x1d5
    1528215281    push bp                                   ; 55
    1528315282    mov bp, sp                                ; 89 e5
     
    1529315292    xor ah, ah                                ; 30 e4
    1529415293    cmp bx, strict byte 00003h                ; 83 fb 03
    15295     jc short 09d34h                           ; 72 13
    15296     jbe short 09d87h                          ; 76 64
     15294    jc short 09d43h                           ; 72 13
     15295    jbe short 09d96h                          ; 76 64
    1529715296    cmp bx, strict byte 0000eh                ; 83 fb 0e
    15298     je short 09d8fh                           ; 74 67
     15297    je short 09d9eh                           ; 74 67
    1529915298    cmp bx, strict byte 00008h                ; 83 fb 08
    15300     jc short 09d3eh                           ; 72 11
     15299    jc short 09d4dh                           ; 72 11
    1530115300    cmp bx, strict byte 0000dh                ; 83 fb 0d
    15302     jbe short 09d92h                          ; 76 60
    15303     jmp short 09d3eh                          ; eb 0a
     15301    jbe short 09da1h                          ; 76 60
     15302    jmp short 09d4dh                          ; eb 0a
    1530415303    cmp bx, strict byte 00002h                ; 83 fb 02
    15305     je short 09d5dh                           ; 74 24
     15304    je short 09d6ch                           ; 74 24
    1530615305    cmp bx, strict byte 00001h                ; 83 fb 01
    15307     je short 09d41h                           ; 74 03
    15308     jmp near 09ea0h                           ; e9 5f 01
     15306    je short 09d50h                           ; 74 03
     15307    jmp near 09eafh                           ; e9 5f 01
    1530915308    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1531015309    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1531215311    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1531315312    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    15314     jmp near 09ed0h                           ; e9 73 01
     15313    jmp near 09edfh                           ; e9 73 01
    1531515314    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    15316     jne short 09d69h                          ; 75 06
     15315    jne short 09d78h                          ; 75 06
    1531715316    or ah, 083h                               ; 80 cc 83
    15318     jmp near 09ec9h                           ; e9 60 01
     15317    jmp near 09ed8h                           ; e9 60 01
    1531915318    mov bx, word [bp+008h]                    ; 8b 5e 08
    1532015319    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1532115320    mov ax, word [bp+018h]                    ; 8b 46 18
    1532215321    xor cx, cx                                ; 31 c9
    15323     call 09c0bh                               ; e8 94 fe
     15322    call 09c1ah                               ; e8 94 fe
    1532415323    cmp ax, strict word 0ffffh                ; 3d ff ff
    15325     jne short 09d89h                          ; 75 0d
     15324    jne short 09d98h                          ; 75 0d
    1532615325    mov ax, word [bp+020h]                    ; 8b 46 20
    1532715326    xor ah, ah                                ; 30 e4
    1532815327    or ah, 086h                               ; 80 cc 86
    15329     jmp near 09ec9h                           ; e9 42 01
    15330     jmp short 09d94h                          ; eb 0b
     15328    jmp near 09ed8h                           ; e9 42 01
     15329    jmp short 09da3h                          ; eb 0b
    1533115330    mov word [bp+014h], ax                    ; 89 46 14
    15332     jmp near 09ed0h                           ; e9 41 01
    15333     jmp near 09e5bh                           ; e9 c9 00
    15334     jmp short 09db9h                          ; eb 25
     15331    jmp near 09edfh                           ; e9 41 01
     15332    jmp near 09e6ah                           ; e9 c9 00
     15333    jmp short 09dc8h                          ; eb 25
    1533515334    mov bx, word [bp+008h]                    ; 8b 5e 08
    1533615335    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1533715336    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1533815337    mov cx, strict word 00001h                ; b9 01 00
    15339     call 09c0bh                               ; e8 68 fe
     15338    call 09c1ah                               ; e8 68 fe
    1534015339    cmp ax, strict word 0ffffh                ; 3d ff ff
    15341     jne short 09db3h                          ; 75 0b
     15340    jne short 09dc2h                          ; 75 0b
    1534215341    mov ax, word [bp+020h]                    ; 8b 46 20
    1534315342    xor ah, ah                                ; 30 e4
    1534415343    or ah, 086h                               ; 80 cc 86
    15345     jmp near 09ec9h                           ; e9 16 01
     15344    jmp near 09ed8h                           ; e9 16 01
    1534615345    mov word [bp+014h], ax                    ; 89 46 14
    15347     jmp near 09ed0h                           ; e9 17 01
     15346    jmp near 09edfh                           ; e9 17 01
    1534815347    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    15349     jc short 09dc6h                           ; 72 06
     15348    jc short 09dd5h                           ; 72 06
    1535015349    or ah, 087h                               ; 80 cc 87
    15351     jmp near 09ec9h                           ; e9 03 01
     15350    jmp near 09ed8h                           ; e9 03 01
    1535215351    mov dx, word [bp+004h]                    ; 8b 56 04
    1535315352    mov ax, word [bp+014h]                    ; 8b 46 14
    15354     call 09be7h                               ; e8 18 fe
     15353    call 09bf6h                               ; e8 18 fe
    1535515354    mov bx, word [bp+020h]                    ; 8b 5e 20
    1535615355    xor bh, bh                                ; 30 ff
    1535715356    sub bx, strict byte 00008h                ; 83 eb 08
    1535815357    cmp bx, strict byte 00005h                ; 83 fb 05
    15359     jnbe short 09e44h                         ; 77 68
     15358    jnbe short 09e53h                         ; 77 68
    1536015359    sal bx, 1                                 ; d1 e3
    15361     jmp word [cs:bx-0630ah]                   ; 2e ff a7 f6 9c
     15360    jmp word [cs:bx-062fbh]                   ; 2e ff a7 05 9d
    1536215361    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1536315362    xor bl, bl                                ; 30 db
     
    1537015369    or bx, ax                                 ; 09 c3
    1537115370    mov word [bp+01ch], bx                    ; 89 5e 1c
    15372     jmp short 09e44h                          ; eb 48
     15371    jmp short 09e53h                          ; eb 48
    1537315372    mov dx, word [bp+004h]                    ; 8b 56 04
    1537415373    xor dh, dh                                ; 30 f6
     
    1537715376    in ax, DX                                 ; ed
    1537815377    mov word [bp+01ch], ax                    ; 89 46 1c
    15379     jmp short 09e44h                          ; eb 36
     15378    jmp short 09e53h                          ; eb 36
    1538015379    mov dx, 00cfch                            ; ba fc 0c
    1538115380    in eax, DX                                ; 66 ed
     
    1538615385    mov word [bp+01ch], ax                    ; 89 46 1c
    1538715386    mov word [bp+01eh], dx                    ; 89 56 1e
    15388     jmp short 09e44h                          ; eb 22
     15387    jmp short 09e53h                          ; eb 22
    1538915388    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1539015389    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1539315392    add dx, 00cfch                            ; 81 c2 fc 0c
    1539415393    out DX, AL                                ; ee
    15395     jmp short 09e44h                          ; eb 10
     15394    jmp short 09e53h                          ; eb 10
    1539615395    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1539715396    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1540015399    add dx, 00cfch                            ; 81 c2 fc 0c
    1540115400    out DX, ax                                ; ef
    15402     jmp near 09ed0h                           ; e9 89 00
     15401    jmp near 09edfh                           ; e9 89 00
    1540315402    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1540415403    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1540915408    ; mov ax, cx                                ; 8b c1
    1541015409    out DX, eax                               ; 66 ef
    15411     jmp short 09ed0h                          ; eb 75
     15410    jmp short 09edfh                          ; eb 75
    1541215411    mov bx, word [bp+004h]                    ; 8b 5e 04
    1541315412    mov es, [bp+026h]                         ; 8e 46 26
     
    1541615415    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1541715416    cmp cx, word [es:bx]                      ; 26 3b 0f
    15418     jbe short 09e81h                          ; 76 11
     15417    jbe short 09e90h                          ; 76 11
    1541915418    mov ax, word [bp+020h]                    ; 8b 46 20
    1542015419    xor ah, ah                                ; 30 e4
     
    1542215421    mov word [bp+020h], ax                    ; 89 46 20
    1542315422    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15424     jmp short 09e95h                          ; eb 14
     15423    jmp short 09ea4h                          ; eb 14
    1542515424    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1542615425    mov si, 0f2c0h                            ; be c0 f2
     
    1543415433    les bx, [bp-008h]                         ; c4 5e f8
    1543515434    mov word [es:bx], ax                      ; 26 89 07
    15436     jmp short 09ed0h                          ; eb 30
     15435    jmp short 09edfh                          ; eb 30
    1543715436    mov bx, 00da0h                            ; bb a0 0d
    1543815437    mov cx, ds                                ; 8c d9
    1543915438    mov ax, strict word 00004h                ; b8 04 00
    15440     call 01933h                               ; e8 88 7a
     15439    call 01933h                               ; e8 79 7a
    1544115440    mov ax, word [bp+014h]                    ; 8b 46 14
    1544215441    push ax                                   ; 50
     
    1544715446    mov ax, strict word 00004h                ; b8 04 00
    1544815447    push ax                                   ; 50
    15449     call 01976h                               ; e8 b8 7a
     15448    call 01976h                               ; e8 a9 7a
    1545015449    add sp, strict byte 00008h                ; 83 c4 08
    1545115450    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1545915458    pop bp                                    ; 5d
    1546015459    retn                                      ; c3
    15461 pci_find_classcode_:                         ; 0xf9ed7 LB 0x8
     15460pci_find_classcode_:                         ; 0xf9ee6 LB 0x8
    1546215461    push bp                                   ; 55
    1546315462    mov bp, sp                                ; 89 e5
     
    1546515464    pop bp                                    ; 5d
    1546615465    retn                                      ; c3
    15467 pci_read_config_byte_:                       ; 0xf9edf LB 0x27
     15466pci_read_config_byte_:                       ; 0xf9eee LB 0x27
    1546815467    push bp                                   ; 55
    1546915468    mov bp, sp                                ; 89 e5
     
    1548815487    pop bp                                    ; 5d
    1548915488    retn                                      ; c3
    15490 pci_read_config_word_:                       ; 0xf9f06 LB 0x25
     15489pci_read_config_word_:                       ; 0xf9f15 LB 0x25
    1549115490    push bp                                   ; 55
    1549215491    mov bp, sp                                ; 89 e5
     
    1551015509    pop bp                                    ; 5d
    1551115510    retn                                      ; c3
    15512 pci_read_config_dword_:                      ; 0xf9f2b LB 0x3f
     15511pci_read_config_dword_:                      ; 0xf9f3a LB 0x3f
    1551315512    push bp                                   ; 55
    1551415513    mov bp, sp                                ; 89 e5
     
    1552515524    int 01ah                                  ; cd 1a
    1552615525    test cx, cx                               ; 85 c9
    15527     jne short 09f5bh                          ; 75 14
     15526    jne short 09f6ah                          ; 75 14
    1552815527    mov al, byte [bp-006h]                    ; 8a 46 fa
    1552915528    xor ah, ah                                ; 30 e4
     
    1553515534    int 01ah                                  ; cd 1a
    1553615535    test cx, cx                               ; 85 c9
    15537     je short 09f60h                           ; 74 05
     15536    je short 09f6fh                           ; 74 05
    1553815537    mov ax, strict word 00001h                ; b8 01 00
    15539     jmp short 09f62h                          ; eb 02
     15538    jmp short 09f71h                          ; eb 02
    1554015539    xor ax, ax                                ; 31 c0
    1554115540    cwd                                       ; 99
     
    1554515544    pop bp                                    ; 5d
    1554615545    retn                                      ; c3
    15547 vds_is_present_:                             ; 0xf9f6a LB 0x1d
     15546vds_is_present_:                             ; 0xf9f79 LB 0x1d
    1554815547    push bx                                   ; 53
    1554915548    push bp                                   ; 55
     
    1555315552    mov es, ax                                ; 8e c0
    1555415553    test byte [es:bx], 020h                   ; 26 f6 07 20
    15555     je short 09f82h                           ; 74 06
     15554    je short 09f91h                           ; 74 06
    1555615555    mov ax, strict word 00001h                ; b8 01 00
    1555715556    pop bp                                    ; 5d
     
    1556215561    pop bx                                    ; 5b
    1556315562    retn                                      ; c3
    15564 vds_real_to_lin_:                            ; 0xf9f87 LB 0x1e
     15563vds_real_to_lin_:                            ; 0xf9f96 LB 0x1e
    1556515564    push bx                                   ; 53
    1556615565    push cx                                   ; 51
     
    1557315572    sal ax, 1                                 ; d1 e0
    1557415573    rcl dx, 1                                 ; d1 d2
    15575     loop 09f95h                               ; e2 fa
     15574    loop 09fa4h                               ; e2 fa
    1557615575    xor cx, cx                                ; 31 c9
    1557715576    add ax, bx                                ; 01 d8
     
    1558115580    pop bx                                    ; 5b
    1558215581    retn                                      ; c3
    15583 vds_build_sg_list_:                          ; 0xf9fa5 LB 0x77
     15582vds_build_sg_list_:                          ; 0xf9fb4 LB 0x77
    1558415583    push bp                                   ; 55
    1558515584    mov bp, sp                                ; 89 e5
     
    1559515594    mov bx, word [bp+006h]                    ; 8b 5e 06
    1559615595    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15597     call 09f87h                               ; e8 c3 ff
     15596    call 09f96h                               ; e8 c3 ff
    1559815597    mov es, si                                ; 8e c6
    1559915598    mov word [es:di+004h], ax                 ; 26 89 45 04
    1560015599    mov word [es:di+006h], dx                 ; 26 89 55 06
    1560115600    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15602     call 09f6ah                               ; e8 93 ff
     15601    call 09f79h                               ; e8 93 ff
    1560315602    test ax, ax                               ; 85 c0
    15604     je short 09fech                           ; 74 11
     15603    je short 09ffbh                           ; 74 11
    1560515604    mov es, si                                ; 8e c6
    1560615605    mov ax, 08105h                            ; b8 05 81
    1560715606    mov dx, strict word 00000h                ; ba 00 00
    1560815607    int 04bh                                  ; cd 4b
    15609     jc short 09fe9h                           ; 72 02
     15608    jc short 09ff8h                           ; 72 02
    1561015609    db  032h, 0c0h
    1561115610    ; xor al, al                                ; 32 c0
    1561215611    cbw                                       ; 98
    15613     jmp short 0a013h                          ; eb 27
     15612    jmp short 0a022h                          ; eb 27
    1561415613    mov es, si                                ; 8e c6
    1561515614    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1562815627    pop bp                                    ; 5d
    1562915628    retn 00004h                               ; c2 04 00
    15630 vds_free_sg_list_:                           ; 0xfa01c LB 0x34
     15629vds_free_sg_list_:                           ; 0xfa02b LB 0x35
    1563115630    push bp                                   ; 55
    1563215631    mov bp, sp                                ; 89 e5
     
    1563415633    push di                                   ; 57
    1563515634    mov bx, ax                                ; 89 c3
    15636     call 09f6ah                               ; e8 44 ff
     15635    call 09f79h                               ; e8 44 ff
    1563715636    test ax, ax                               ; 85 c0
    15638     je short 0a03bh                           ; 74 11
     15637    je short 0a04ah                           ; 74 11
    1563915638    mov di, bx                                ; 89 df
    1564015639    mov es, dx                                ; 8e c2
     
    1564215641    mov dx, strict word 00000h                ; ba 00 00
    1564315642    int 04bh                                  ; cd 4b
    15644     jc short 0a03ah                           ; 72 02
     15643    jc short 0a049h                           ; 72 02
    1564515644    db  032h, 0c0h
    1564615645    ; xor al, al                                ; 32 c0
     
    1565315652    pop bp                                    ; 5d
    1565415653    retn                                      ; c3
    15655     times 0x6 db 0
    15656 __U4M:                                       ; 0xfa050 LB 0x20
     15654    times 0x7 db 0
     15655__U4M:                                       ; 0xfa060 LB 0x20
    1565715656    pushfw                                    ; 9c
    1565815657    push si                                   ; 56
     
    1568115680    retn                                      ; c3
    1568215681    times 0x4 db 0
    15683 __U4D:                                       ; 0xfa070 LB 0x30
     15682__U4D:                                       ; 0xfa080 LB 0x30
    1568415683    pushfw                                    ; 9c
    1568515684    push DS                                   ; 1e
     
    1569615695    push dx                                   ; 52
    1569715696    push ax                                   ; 50
    15698     call 0a155h                               ; e8 d0 00
     15697    call 0a165h                               ; e8 d0 00
    1569915698    mov cx, word [bp-002h]                    ; 8b 4e fe
    1570015699    mov bx, word [bp-004h]                    ; 8b 5e fc
     
    1570715706    retn                                      ; c3
    1570815707    times 0xe db 0
    15709 __U8RS:                                      ; 0xfa0a0 LB 0x10
     15708__U8RS:                                      ; 0xfa0b0 LB 0x10
    1571015709    test si, si                               ; 85 f6
    15711     je short 0a0afh                           ; 74 0b
     15710    je short 0a0bfh                           ; 74 0b
    1571215711    shr ax, 1                                 ; d1 e8
    1571315712    rcr bx, 1                                 ; d1 db
     
    1571515714    rcr dx, 1                                 ; d1 da
    1571615715    dec si                                    ; 4e
    15717     jne short 0a0a4h                          ; 75 f5
     15716    jne short 0a0b4h                          ; 75 f5
    1571815717    retn                                      ; c3
    15719 __U8LS:                                      ; 0xfa0b0 LB 0x10
     15718__U8LS:                                      ; 0xfa0c0 LB 0x10
    1572015719    test si, si                               ; 85 f6
    15721     je short 0a0bfh                           ; 74 0b
     15720    je short 0a0cfh                           ; 74 0b
    1572215721    sal dx, 1                                 ; d1 e2
    1572315722    rcl cx, 1                                 ; d1 d1
     
    1572515724    rcl ax, 1                                 ; d1 d0
    1572615725    dec si                                    ; 4e
    15727     jne short 0a0b4h                          ; 75 f5
     15726    jne short 0a0c4h                          ; 75 f5
    1572815727    retn                                      ; c3
    15729 _fmemset_:                                   ; 0xfa0c0 LB 0x10
     15728_fmemset_:                                   ; 0xfa0d0 LB 0x10
    1573015729    push di                                   ; 57
    1573115730    mov es, dx                                ; 8e c2
     
    1573815737    retn                                      ; c3
    1573915738    times 0x3 db 0
    15740 _fmemcpy_:                                   ; 0xfa0d0 LB 0x3a
     15739_fmemcpy_:                                   ; 0xfa0e0 LB 0x3a
    1574115740    push bp                                   ; 55
    1574215741    db  08bh, 0ech
     
    1576315762    add byte [bx+si], al                      ; 00 00
    1576415763    add byte [bx+si], al                      ; 00 00
    15765     and byte [bx+di-05edeh], ah               ; 20 a1 22 a1
    15766     mov ax, word [es:0a126h]                  ; 26 a1 26 a1
    15767     mov ax, word [es:0a128h]                  ; 26 a1 28 a1
    15768     sub byte [bx+di-05ed6h], ah               ; 28 a1 2a a1
    15769     mov ax, word [cs:0a12eh]                  ; 2e a1 2e a1
    15770     xor byte [bx+di-05ecbh], ah               ; 30 a1 35 a1
    15771     aaa                                       ; 37
     15764    xor byte [bx+di-05eceh], ah               ; 30 a1 32 a1
     15765    mov ax, word [ss:0a136h]                  ; 36 a1 36 a1
     15766    mov ax, word [ss:0a138h]                  ; 36 a1 38 a1
     15767    cmp byte [bx+di-05ec6h], ah               ; 38 a1 3a a1
     15768    mov ax, word [ds:0a13eh]                  ; 3e a1 3e a1
     15769    inc ax                                    ; 40
     15770    mov ax, word [0a145h]                     ; a1 45 a1
     15771    inc di                                    ; 47
    1577215772    db  0a1h
    15773 apm_worker:                                  ; 0xfa10a LB 0x3a
     15773apm_worker:                                  ; 0xfa11a LB 0x3a
    1577415774    sti                                       ; fb
    1577515775    push ax                                   ; 50
     
    1578315783    pop ax                                    ; 58
    1578415784    mov AH, strict byte 053h                  ; b4 53
    15785     jnc short 0a140h                          ; 73 25
    15786     jmp word [cs:bp-05f10h]                   ; 2e ff a6 f0 a0
    15787     jmp short 0a13eh                          ; eb 1c
     15785    jnc short 0a150h                          ; 73 25
     15786    jmp word [cs:bp-05f00h]                   ; 2e ff a6 00 a1
     15787    jmp short 0a14eh                          ; eb 1c
    1578815788    sti                                       ; fb
    1578915789    hlt                                       ; f4
    15790     jmp short 0a13eh                          ; eb 18
    15791     jmp short 0a13eh                          ; eb 16
    15792     jmp short 0a140h                          ; eb 16
     15790    jmp short 0a14eh                          ; eb 18
     15791    jmp short 0a14eh                          ; eb 16
     15792    jmp short 0a150h                          ; eb 16
    1579315793    mov AH, strict byte 080h                  ; b4 80
    15794     jmp short 0a142h                          ; eb 14
    15795     jmp short 0a140h                          ; eb 10
     15794    jmp short 0a152h                          ; eb 14
     15795    jmp short 0a150h                          ; eb 10
    1579615796    mov ax, 00102h                            ; b8 02 01
    15797     jmp short 0a13eh                          ; eb 09
    15798     jmp short 0a13eh                          ; eb 07
     15797    jmp short 0a14eh                          ; eb 09
     15798    jmp short 0a14eh                          ; eb 07
    1579915799    mov BL, strict byte 000h                  ; b3 00
    1580015800    mov cx, strict word 00000h                ; b9 00 00
    15801     jmp short 0a13eh                          ; eb 00
     15801    jmp short 0a14eh                          ; eb 00
    1580215802    clc                                       ; f8
    1580315803    retn                                      ; c3
     
    1580515805    stc                                       ; f9
    1580615806    retn                                      ; c3
    15807 apm_pm16_entry:                              ; 0xfa144 LB 0x11
     15807apm_pm16_entry:                              ; 0xfa154 LB 0x11
    1580815808    mov AH, strict byte 002h                  ; b4 02
    1580915809    push DS                                   ; 1e
     
    1581315813    add bp, strict byte 00008h                ; 83 c5 08
    1581415814    mov ds, bp                                ; 8e dd
    15815     call 0a10ah                               ; e8 b8 ff
     15815    call 0a11ah                               ; e8 b8 ff
    1581615816    pop bp                                    ; 5d
    1581715817    pop DS                                    ; 1f
    1581815818    retf                                      ; cb
    15819 _DoUInt32Div:                                ; 0xfa155 LB 0x26b
     15819_DoUInt32Div:                                ; 0xfa165 LB 0x26b
    1582015820    push bp                                   ; 55
    1582115821    mov bp, sp                                ; 89 e5
     
    1583515835    mov [bp-006h], ds                         ; 8c 5e fa
    1583615836    cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
    15837     jne short 0a1a5h                          ; 75 22
     15837    jne short 0a1b5h                          ; 75 22
    1583815838    mov ax, word [bx]                         ; 8b 07
    1583915839    test ax, ax                               ; 85 c0
    15840     je short 0a1a2h                           ; 74 19
     15840    je short 0a1b2h                           ; 74 19
    1584115841    cmp ax, strict word 00001h                ; 3d 01 00
    15842     jne short 0a1a5h                          ; 75 17
     15842    jne short 0a1b5h                          ; 75 17
    1584315843    xor ax, ax                                ; 31 c0
    1584415844    mov word [bp+00ah], ax                    ; 89 46 0a
     
    1584815848    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1584915849    mov word [bp+006h], ax                    ; 89 46 06
    15850     jmp near 0a3adh                           ; e9 08 02
     15850    jmp near 0a3bdh                           ; e9 08 02
    1585115851    lds bx, [bp-00ch]                         ; c5 5e f4
    1585215852    mov ax, word [bx+002h]                    ; 8b 47 02
    1585315853    mov ds, [bp-006h]                         ; 8e 5e fa
    1585415854    cmp ax, word [si+002h]                    ; 3b 44 02
    15855     je short 0a1cbh                           ; 74 18
     15855    je short 0a1dbh                           ; 74 18
    1585615856    mov ds, [bp-00ah]                         ; 8e 5e f6
    1585715857    mov ax, word [bx+002h]                    ; 8b 47 02
    1585815858    mov ds, [bp-006h]                         ; 8e 5e fa
    1585915859    cmp ax, word [si+002h]                    ; 3b 44 02
    15860     jbe short 0a1c6h                          ; 76 05
     15860    jbe short 0a1d6h                          ; 76 05
    1586115861    mov ax, strict word 00001h                ; b8 01 00
    15862     jmp short 0a1ech                          ; eb 26
     15862    jmp short 0a1fch                          ; eb 26
    1586315863    mov ax, strict word 0ffffh                ; b8 ff ff
    15864     jmp short 0a1ech                          ; eb 21
     15864    jmp short 0a1fch                          ; eb 21
    1586515865    mov ds, [bp-00ah]                         ; 8e 5e f6
    1586615866    mov ax, word [bx]                         ; 8b 07
    1586715867    mov ds, [bp-006h]                         ; 8e 5e fa
    1586815868    cmp ax, word [si]                         ; 3b 04
    15869     je short 0a1eah                           ; 74 13
     15869    je short 0a1fah                           ; 74 13
    1587015870    mov ds, [bp-00ah]                         ; 8e 5e f6
    1587115871    mov ax, word [bx]                         ; 8b 07
    1587215872    mov ds, [bp-006h]                         ; 8e 5e fa
    1587315873    cmp ax, word [si]                         ; 3b 04
    15874     jbe short 0a1e5h                          ; 76 02
    15875     jmp short 0a1c1h                          ; eb dc
     15874    jbe short 0a1f5h                          ; 76 02
     15875    jmp short 0a1d1h                          ; eb dc
    1587615876    mov ax, strict word 0ffffh                ; b8 ff ff
    15877     jmp short 0a1ech                          ; eb 02
     15877    jmp short 0a1fch                          ; eb 02
    1587815878    xor ax, ax                                ; 31 c0
    1587915879    test ax, ax                               ; 85 c0
    15880     jnl short 0a20eh                          ; 7d 1e
     15880    jnl short 0a21eh                          ; 7d 1e
    1588115881    lds bx, [bp-00ch]                         ; c5 5e f4
    1588215882    mov ax, word [bx]                         ; 8b 07
     
    1588815888    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
    1588915889    mov word [bx], strict word 00000h         ; c7 07 00 00
    15890     jmp short 0a1a2h                          ; eb 94
    15891     jne short 0a225h                          ; 75 15
     15890    jmp short 0a1b2h                          ; eb 94
     15891    jne short 0a235h                          ; 75 15
    1589215892    mov ds, [bp-008h]                         ; 8e 5e f8
    1589315893    mov word [di+002h], ax                    ; 89 45 02
     
    1589615896    mov word [bx], strict word 00001h         ; c7 07 01 00
    1589715897    mov word [bx+002h], ax                    ; 89 47 02
    15898     jmp near 0a3adh                           ; e9 88 01
     15898    jmp near 0a3bdh                           ; e9 88 01
    1589915899    lds bx, [bp-00ch]                         ; c5 5e f4
    1590015900    mov ax, word [bx+002h]                    ; 8b 47 02
    1590115901    test ax, ax                               ; 85 c0
    15902     je short 0a240h                           ; 74 11
     15902    je short 0a250h                           ; 74 11
    1590315903    push ax                                   ; 50
    1590415904    mov ax, 0f000h                            ; b8 00 f0
    1590515905    mov ds, ax                                ; 8e d8
    15906     call 0a3c0h                               ; e8 88 01
     15906    call 0a3d0h                               ; e8 88 01
    1590715907    add sp, strict byte 00002h                ; 83 c4 02
    1590815908    add ax, strict word 00010h                ; 05 10 00
    15909     jmp short 0a24dh                          ; eb 0d
     15909    jmp short 0a25dh                          ; eb 0d
    1591015910    push word [bx]                            ; ff 37
    1591115911    mov ax, 0f000h                            ; b8 00 f0
    1591215912    mov ds, ax                                ; 8e d8
    15913     call 0a3c0h                               ; e8 76 01
     15913    call 0a3d0h                               ; e8 76 01
    1591415914    add sp, strict byte 00002h                ; 83 c4 02
    1591515915    mov word [bp-014h], ax                    ; 89 46 ec
     
    1591715917    mov ax, word [si+002h]                    ; 8b 44 02
    1591815918    test ax, ax                               ; 85 c0
    15919     je short 0a26bh                           ; 74 11
     15919    je short 0a27bh                           ; 74 11
    1592015920    push ax                                   ; 50
    1592115921    mov ax, 0f000h                            ; b8 00 f0
    1592215922    mov ds, ax                                ; 8e d8
    15923     call 0a3c0h                               ; e8 5d 01
     15923    call 0a3d0h                               ; e8 5d 01
    1592415924    add sp, strict byte 00002h                ; 83 c4 02
    1592515925    add ax, strict word 00010h                ; 05 10 00
    15926     jmp short 0a278h                          ; eb 0d
     15926    jmp short 0a288h                          ; eb 0d
    1592715927    push word [si]                            ; ff 34
    1592815928    mov ax, 0f000h                            ; b8 00 f0
    1592915929    mov ds, ax                                ; 8e d8
    15930     call 0a3c0h                               ; e8 4b 01
     15930    call 0a3d0h                               ; e8 4b 01
    1593115931    add sp, strict byte 00002h                ; 83 c4 02
    1593215932    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    1593915939    mov word [bp-016h], ax                    ; 89 46 ea
    1594015940    test dx, dx                               ; 85 d2
    15941     je short 0a2e8h                           ; 74 56
     15941    je short 0a2f8h                           ; 74 56
    1594215942    mov cx, dx                                ; 89 d1
    1594315943    xor ch, dh                                ; 30 f5
     
    1594515945    mov ax, word [si]                         ; 8b 04
    1594615946    mov dx, word [si+002h]                    ; 8b 54 02
    15947     jcxz 0a2a6h                               ; e3 06
     15947    jcxz 0a2b6h                               ; e3 06
    1594815948    sal ax, 1                                 ; d1 e0
    1594915949    rcl dx, 1                                 ; d1 d2
    15950     loop 0a2a0h                               ; e2 fa
     15950    loop 0a2b0h                               ; e2 fa
    1595115951    mov word [bp-018h], ax                    ; 89 46 e8
    1595215952    mov word [bp-016h], dx                    ; 89 56 ea
     
    1595415954    lds bx, [bp-00ch]                         ; c5 5e f4
    1595515955    cmp ax, word [bx+002h]                    ; 3b 47 02
    15956     jnbe short 0a2c6h                         ; 77 0f
     15956    jnbe short 0a2d6h                         ; 77 0f
    1595715957    mov ax, word [bp-016h]                    ; 8b 46 ea
    1595815958    cmp ax, word [bx+002h]                    ; 3b 47 02
    15959     jne short 0a2cah                          ; 75 0b
     15959    jne short 0a2dah                          ; 75 0b
    1596015960    mov ax, word [bp-018h]                    ; 8b 46 e8
    1596115961    cmp ax, word [bx]                         ; 3b 07
    15962     jbe short 0a2cah                          ; 76 04
     15962    jbe short 0a2dah                          ; 76 04
    1596315963    mov AL, strict byte 001h                  ; b0 01
    15964     jmp short 0a2cch                          ; eb 02
     15964    jmp short 0a2dch                          ; eb 02
    1596515965    xor al, al                                ; 30 c0
    1596615966    test al, al                               ; 84 c0
    15967     je short 0a2f3h                           ; 74 23
     15967    je short 0a303h                           ; 74 23
    1596815968    shr word [bp-016h], 1                     ; d1 6e ea
    1596915969    rcr word [bp-018h], 1                     ; d1 5e e8
    1597015970    dec word [bp-012h]                        ; ff 4e ee
    15971     jmp short 0a2f3h                          ; eb 18
     15971    jmp short 0a303h                          ; eb 18
    1597215972    mov cx, strict word 0001fh                ; b9 1f 00
    1597315973    sal word [bp-018h], 1                     ; d1 66 e8
    1597415974    rcl word [bp-016h], 1                     ; d1 56 ea
    15975     loop 0a2deh                               ; e2 f8
    15976     jmp short 0a2d6h                          ; eb ee
     15975    loop 0a2eeh                               ; e2 f8
     15976    jmp short 0a2e6h                          ; eb ee
    1597715977    mov ax, word [si]                         ; 8b 04
    1597815978    mov word [bp-018h], ax                    ; 89 46 e8
     
    1599115991    mov ds, [bp-006h]                         ; 8e 5e fa
    1599215992    cmp ax, word [si+002h]                    ; 3b 44 02
    15993     jnbe short 0a31fh                         ; 77 06
    15994     jne short 0a323h                          ; 75 08
     15993    jnbe short 0a32fh                         ; 77 06
     15994    jne short 0a333h                          ; 75 08
    1599515995    cmp dx, word [si]                         ; 3b 14
    15996     jc short 0a323h                           ; 72 04
     15996    jc short 0a333h                           ; 72 04
    1599715997    mov AL, strict byte 001h                  ; b0 01
    15998     jmp short 0a325h                          ; eb 02
     15998    jmp short 0a335h                          ; eb 02
    1599915999    xor al, al                                ; 30 c0
    1600016000    test al, al                               ; 84 c0
    16001     je short 0a38ah                           ; 74 61
     16001    je short 0a39ah                           ; 74 61
    1600216002    mov ds, [bp-008h]                         ; 8e 5e f8
    1600316003    mov ax, word [di+002h]                    ; 8b 45 02
    1600416004    cmp ax, word [bp-016h]                    ; 3b 46 ea
    16005     jnbe short 0a340h                         ; 77 0c
     16005    jnbe short 0a350h                         ; 77 0c
    1600616006    cmp ax, word [bp-016h]                    ; 3b 46 ea
    16007     jne short 0a344h                          ; 75 0b
     16007    jne short 0a354h                          ; 75 0b
    1600816008    mov ax, word [di]                         ; 8b 05
    1600916009    cmp ax, word [bp-018h]                    ; 3b 46 e8
    16010     jc short 0a344h                           ; 72 04
     16010    jc short 0a354h                           ; 72 04
    1601116011    mov AL, strict byte 001h                  ; b0 01
    16012     jmp short 0a346h                          ; eb 02
     16012    jmp short 0a356h                          ; eb 02
    1601316013    xor al, al                                ; 30 c0
    1601416014    test al, al                               ; 84 c0
    16015     je short 0a370h                           ; 74 26
     16015    je short 0a380h                           ; 74 26
    1601616016    mov ax, word [bp-018h]                    ; 8b 46 e8
    1601716017    mov ds, [bp-008h]                         ; 8e 5e f8
     
    1602216022    xor dx, dx                                ; 31 d2
    1602316023    mov cx, word [bp-012h]                    ; 8b 4e ee
    16024     jcxz 0a368h                               ; e3 06
     16024    jcxz 0a378h                               ; e3 06
    1602516025    sal ax, 1                                 ; d1 e0
    1602616026    rcl dx, 1                                 ; d1 d2
    16027     loop 0a362h                               ; e2 fa
     16027    loop 0a372h                               ; e2 fa
    1602816028    lds bx, [bp-010h]                         ; c5 5e f0
    1602916029    or word [bx], ax                          ; 09 07
     
    1603416034    mov ds, [bp-006h]                         ; 8e 5e fa
    1603516035    cmp ax, word [si+002h]                    ; 3b 44 02
    16036     jc short 0a386h                           ; 72 06
    16037     jne short 0a38ch                          ; 75 0a
     16036    jc short 0a396h                           ; 72 06
     16037    jne short 0a39ch                          ; 75 0a
    1603816038    cmp dx, word [si]                         ; 3b 14
    16039     jnc short 0a38ch                          ; 73 06
     16039    jnc short 0a39ch                          ; 73 06
    1604016040    mov AL, strict byte 001h                  ; b0 01
    16041     jmp short 0a38eh                          ; eb 04
    16042     jmp short 0a3adh                          ; eb 21
     16041    jmp short 0a39eh                          ; eb 04
     16042    jmp short 0a3bdh                          ; eb 21
    1604316043    xor al, al                                ; 30 c0
    1604416044    test al, al                               ; 84 c0
    16045     je short 0a3a1h                           ; 74 0f
    16046     jmp short 0a3adh                          ; eb 19
     16045    je short 0a3b1h                           ; 74 0f
     16046    jmp short 0a3bdh                          ; eb 19
    1604716047    mov cx, strict word 0001fh                ; b9 1f 00
    1604816048    sal word [bp-018h], 1                     ; d1 66 e8
    1604916049    rcl word [bp-016h], 1                     ; d1 56 ea
    16050     loop 0a397h                               ; e2 f8
    16051     jmp short 0a3a7h                          ; eb 06
     16050    loop 0a3a7h                               ; e2 f8
     16051    jmp short 0a3b7h                          ; eb 06
    1605216052    shr word [bp-016h], 1                     ; d1 6e ea
    1605316053    rcr word [bp-018h], 1                     ; d1 5e e8
    1605416054    dec word [bp-012h]                        ; ff 4e ee
    16055     jmp near 0a329h                           ; e9 7c ff
     16055    jmp near 0a339h                           ; e9 7c ff
    1605616056    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1605716057    mov dx, word [bp-01ah]                    ; 8b 56 e6
     
    1606216062    retn                                      ; c3
    1606316063    times 0x6 db 0
    16064 _ASMBitLastSetU16:                           ; 0xfa3c0 LB 0x18
     16064_ASMBitLastSetU16:                           ; 0xfa3d0 LB 0x18
    1606516065    push bp                                   ; 55
    1606616066    db  08bh, 0ech
     
    1606816068    mov cx, word [bp+004h]                    ; 8b 4e 04
    1606916069    test cx, cx                               ; 85 c9
    16070     je short 0a3d4h                           ; 74 0a
     16070    je short 0a3e4h                           ; 74 0a
    1607116071    mov ax, strict word 00010h                ; b8 10 00
    1607216072    sal cx, 1                                 ; d1 e1
    16073     jc short 0a3d6h                           ; 72 05
     16073    jc short 0a3e6h                           ; 72 05
    1607416074    dec ax                                    ; 48
    16075     jmp short 0a3cdh                          ; eb f9
     16075    jmp short 0a3ddh                          ; eb f9
    1607616076    db  033h, 0c0h
    1607716077    ; xor ax, ax                                ; 33 c0
     
    1607916079    retn                                      ; c3
    1608016080
    16081   ; Padding 0x3628 bytes at 0xfa3d8
    16082   times 13864 db 0
     16081  ; Padding 0x3618 bytes at 0xfa3e8
     16082  times 13848 db 0
    1608316083
    1608416084section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1612716127    add bp, strict byte 00008h                ; 83 c5 08
    1612816128    push ebp                                  ; 66 55
    16129     mov bp, 0a146h                            ; bd 46 a1
     16129    mov bp, 0a156h                            ; bd 56 a1
    1613016130    add byte [bx+si], al                      ; 00 00
    1613116131    push ebp                                  ; 66 55
     
    1685716857    call 01cc5h                               ; e8 89 39
    1685816858    call 02154h                               ; e8 15 3e
    16859     call 0999eh                               ; e8 5c b6
    16860     call 08803h                               ; e8 be a4
     16859    call 099adh                               ; e8 6b b6
     16860    call 08812h                               ; e8 cd a4
    1686116861    call 0ed4ch                               ; e8 04 0a
    1686216862    call 0e2d2h                               ; e8 87 ff
     
    1795117951    popfw                                     ; 9d
    1795217952    jmp short 0f8afh                          ; eb 1f
    17953     call 09af1h                               ; e8 5e a2
     17953    call 09b00h                               ; e8 6d a2
    1795417954    jmp short 0f883h                          ; eb ee
    1795517955int15_handler_mouse:                         ; 0xff895 LB 0x5
     
    1827418274cpu_reset:                                   ; 0xffff0 LB 0x10
    1827518275    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    18276     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 003h
     18276    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 018h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum

    r63625 r66146  
    1 7c8a92e1af55e3001eed7b2dc685f685 *VBoxPcBios8086.rom
     13c9f961cb03c5004439fcce031a895cf *VBoxPcBios8086.rom
Note: See TracChangeset for help on using the changeset viewer.

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