VirtualBox

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


Ignore:
Timestamp:
Aug 29, 2012 2:34:43 PM (12 years ago)
Author:
vboxsync
Message:

BIOS: new alternatives for the VBox BIOS and VGA BIOS

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

Legend:

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

    r42455 r43078  
    605605
    606606;
     607; Source file: apm.c
     608;
     609;  $Id$
     610;  APM BIOS support. Implements APM version 1.2.
     611
     612
     613
     614;  Copyright (C) 2004-2012 Oracle Corporation
     615
     616;  This file is part of VirtualBox Open Source Edition (OSE), as
     617;  available from http://www.virtualbox.org. This file is free software;
     618;  you can redistribute it and/or modify it under the terms of the GNU
     619;  General Public License (GPL) as published by the Free Software
     620;  Foundation, in version 2 as it comes in the "COPYING" file of the
     621;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     622;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     623
     624;
    607625; Source file: pcibios.c
    608626;
     
    690708
    691709;  --------------------------------------------------------------------
     710
     711;
     712; Source file: apm_pm.asm
     713;
     714
     715;  Copyright (C) 2006-2012 Oracle Corporation
     716
     717;  This file is part of VirtualBox Open Source Edition (OSE), as
     718;  available from http://www.virtualbox.org. This file is free software;
     719;  you can redistribute it and/or modify it under the terms of the GNU
     720;  General Public License (GPL) as published by the Free Software
     721;  Foundation, in version 2 as it comes in the "COPYING" file of the
     722;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     723;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
     724
     725;  --------------------------------------------------------------------
     726
     727;  Protected-mode APM implementation.
     728
    692729
    693730;
     
    758795_dskacc:                                     ; 0xf0000 LB 0x30
    759796    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 059h, 027h, 0d0h, 027h, 000h, 000h, 000h, 000h
    760     db  038h, 073h, 0dah, 073h, 055h, 07eh, 0e0h, 07eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     797    db  038h, 073h, 0dah, 073h, 055h, 07eh, 0e6h, 07eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    761798    db  05fh, 033h, 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    762799
    763 section CONST progbits vstart=0x30 align=1 ; size=0xc10 class=DATA group=DGROUP
     800section CONST progbits vstart=0x30 align=1 ; size=0xc94 class=DATA group=DGROUP
    764801    db   'NMI Handler called', 00ah, 000h
    765802    db   'INT18: BOOT FAILURE', 00ah, 000h
     
    866903    db   'ahci_cmd_packet', 000h
    867904    db   '%s: DATA_OUT not supported yet', 00ah, 000h
     905    db   'AHCI %d-P#%d: PCHS=%u/%d/%d LCHS=%u/%u/%u %ld sectors', 00ah, 000h, 000h
     906    db   'Standby', 000h
     907    db   'Suspend', 000h
     908    db   'Shutdown', 000h
     909    db   'APM: Unsupported function AX=%04X BX=%04X called', 00ah, 000h, 000h
    868910    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
    869911
    870 section CONST2 progbits vstart=0xc40 align=1 ; size=0x3fa class=DATA group=DGROUP
    871 _bios_cvs_version_string:                    ; 0xf0c40 LB 0x12
    872     db  'VirtualBox 4.1.51', 000h
    873 _bios_prefix_string:                         ; 0xf0c52 LB 0x8
     912section CONST2 progbits vstart=0xcc4 align=1 ; size=0x3fe class=DATA group=DGROUP
     913_bios_cvs_version_string:                    ; 0xf0cc4 LB 0x16
     914    db  'VirtualBox 4.2.0_RC2', 000h, 000h
     915_bios_prefix_string:                         ; 0xf0cda LB 0x8
    874916    db  'BIOS: ', 000h, 000h
    875 _isotag:                                     ; 0xf0c5a LB 0x6
     917_isotag:                                     ; 0xf0ce2 LB 0x6
    876918    db  'CD001', 000h
    877 _eltorito:                                   ; 0xf0c60 LB 0x18
     919_eltorito:                                   ; 0xf0ce8 LB 0x18
    878920    db  'EL TORITO SPECIFICATION', 000h
    879 _drivetypes:                                 ; 0xf0c78 LB 0x28
     921_drivetypes:                                 ; 0xf0d00 LB 0x28
    880922    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    881923    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    882924    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    883 _scan_to_scanascii:                          ; 0xf0ca0 LB 0x37a
     925_scan_to_scanascii:                          ; 0xf0d28 LB 0x37a
    884926    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    885927    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    938980    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    939981    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    940 _panic_msg_keyb_buffer_full:                 ; 0xf101a LB 0x20
     982_panic_msg_keyb_buffer_full:                 ; 0xf10a2 LB 0x20
    941983    db  '%s: keyboard input buffer full', 00ah, 000h
    942984
    943   ; Padding 0x5c6 bytes at 0xf103a
    944   times 1478 db 0
     985  ; Padding 0x53e bytes at 0xf10c2
     986  times 1342 db 0
    945987
    946 section _TEXT progbits vstart=0x1600 align=1 ; size=0x753f class=CODE group=AUTO
     988section _TEXT progbits vstart=0x1600 align=1 ; size=0x7735 class=CODE group=AUTO
    947989read_byte_:                                  ; 0xf1600 LB 0xe
    948990    push bx                                   ; 53
     
    11061148    push bp                                   ; 55
    11071149    mov bp, sp                                ; 89 e5
    1108     mov bx, 00c52h                            ; bb 52 0c
     1150    mov bx, 00cdah                            ; bb da 0c
    11091151    mov cx, ds                                ; 8c d9
    11101152    mov ax, strict word 00004h                ; b8 04 00
    11111153    call 018aeh                               ; e8 99 01
    1112     push 00c40h                               ; 68 40 0c
     1154    push 00cc4h                               ; 68 c4 0c
    11131155    push strict word 00059h                   ; 68 59 00
    11141156    push strict byte 00004h                   ; 6a 04
     
    12681310    mov bx, strict word 0000ah                ; bb 0a 00
    12691311    xor cx, cx                                ; 31 c9
    1270     call 08ab0h                               ; e8 57 72
     1312    call 08c40h                               ; e8 e7 73
    12711313    mov word [bp-004h], ax                    ; 89 46 fc
    12721314    mov cx, dx                                ; 89 d1
     
    22312273    xor dx, dx                                ; 31 d2
    22322274    mov word [bp-01ah], di                    ; 89 7e e6
    2233     mov bx, 00c52h                            ; bb 52 0c
     2275    mov bx, 00cdah                            ; bb da 0c
    22342276    mov cx, ds                                ; 8c d9
    22352277    mov ax, strict word 00004h                ; b8 04 00
     
    28652907    cmp byte [bp+00eh], 002h                  ; 80 7e 0e 02
    28662908    jne short 0285ah                          ; 75 1f
    2867     mov bx, 00c52h                            ; bb 52 0c
     2909    mov bx, 00cdah                            ; bb da 0c
    28682910    mov cx, ds                                ; 8c d9
    28692911    mov ax, strict word 00004h                ; b8 04 00
     
    36493691    cmp AL, strict byte 048h                  ; 3c 48
    36503692    jbe short 02f58h                          ; 76 29
    3651     mov bx, 00c52h                            ; bb 52 0c
     3693    mov bx, 00cdah                            ; bb da 0c
    36523694    mov cx, ds                                ; 8c d9
    36533695    mov ax, strict word 00004h                ; b8 04 00
     
    42874329    mov ax, strict word 00006h                ; b8 06 00
    42884330    jmp near 02e83h                           ; e9 19 f9
    4289     mov bx, 00c52h                            ; bb 52 0c
     4331    mov bx, 00cdah                            ; bb da 0c
    42904332    mov cx, ds                                ; 8c d9
    42914333    mov ax, strict word 00004h                ; b8 04 00
     
    44444486    pop si                                    ; 5e
    44454487    retn                                      ; c3
    4446     mov bx, 00c52h                            ; bb 52 0c
     4488    mov bx, 00cdah                            ; bb da 0c
    44474489    mov cx, ds                                ; 8c d9
    44484490    mov ax, strict word 00004h                ; b8 04 00
     
    45234565    mov dx, ss                                ; 8c d2
    45244566    lea ax, [bp-01ah]                         ; 8d 46 e6
    4525     call 08b1ah                               ; e8 4a 53
     4567    call 08caah                               ; e8 da 54
    45264568    mov word [bp-01ah], strict word 00028h    ; c7 46 e6 28 00
    45274569    mov ax, strict word 00011h                ; b8 11 00
     
    45704612    lea bx, [bp-01ah]                         ; 8d 5e e6
    45714613    mov dx, strict word 0000ch                ; ba 0c 00
    4572     call 07f45h                               ; e8 f7 46
     4614    call 07f53h                               ; e8 05 47
    45734615    jmp short 0381dh                          ; eb cd
    45744616    test ax, ax                               ; 85 c0
     
    45864628    jnc short 03881h                          ; 73 10
    45874629    mov al, byte [bp+di-00819h]               ; 8a 83 e7 f7
    4588     cmp al, byte [di+00c5ah]                  ; 3a 85 5a 0c
     4630    cmp al, byte [di+00ce2h]                  ; 3a 85 e2 0c
    45894631    je short 0386bh                           ; 74 f0
    45904632    mov ax, strict word 00005h                ; b8 05 00
     
    45964638    jnc short 0389bh                          ; 73 10
    45974639    mov al, byte [bp+di-00813h]               ; 8a 83 ed f7
    4598     cmp al, byte [di+00c60h]                  ; 3a 85 60 0c
     4640    cmp al, byte [di+00ce8h]                  ; 3a 85 e8 0c
    45994641    je short 03885h                           ; 74 f0
    46004642    mov ax, strict word 00006h                ; b8 06 00
     
    46244666    lea bx, [bp-01ah]                         ; 8d 5e e6
    46254667    mov dx, strict word 0000ch                ; ba 0c 00
    4626     call 07f45h                               ; e8 66 46
     4668    call 07f53h                               ; e8 74 46
    46274669    jmp short 038ffh                          ; eb 1e
    46284670    lea dx, [bp-0081ah]                       ; 8d 96 e6 f7
     
    47384780    lea bx, [bp-01ah]                         ; 8d 5e e6
    47394781    mov dx, strict word 0000ch                ; ba 0c 00
    4740     call 07f45h                               ; e8 1b 45
     4782    call 07f53h                               ; e8 29 45
    47414783    jmp short 03a51h                          ; eb 25
    47424784    push di                                   ; 57
     
    49374979    cmp ax, dx                                ; 39 d0
    49384980    je short 03c26h                           ; 74 29
    4939     mov bx, 00c52h                            ; bb 52 0c
     4981    mov bx, 00cdah                            ; bb da 0c
    49404982    mov cx, ds                                ; 8c d9
    49414983    mov ax, strict word 00004h                ; b8 04 00
     
    50325074    xor dl, dl                                ; 30 d2
    50335075    xor cx, cx                                ; 31 c9
    5034     call 08ae9h                               ; e8 dd 4d
     5076    call 08c79h                               ; e8 6d 4f
    50355077    xor bx, bx                                ; 31 db
    50365078    add ax, si                                ; 01 f0
     
    50385080    mov bx, di                                ; 89 fb
    50395081    xor cx, cx                                ; 31 c9
    5040     call 08ae9h                               ; e8 d0 4d
     5082    call 08c79h                               ; e8 60 4f
    50415083    mov bx, word [bp-010h]                    ; 8b 5e f0
    50425084    dec bx                                    ; 4b
     
    50755117    mov dx, ss                                ; 8c d2
    50765118    lea ax, [bp-02ah]                         ; 8d 46 d6
    5077     call 08b1ah                               ; e8 a6 4d
     5119    call 08caah                               ; e8 36 4f
    50785120    mov word [bp-02ah], strict word 00028h    ; c7 46 d6 28 00
    50795121    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    51275169    lea bx, [bp-02ah]                         ; 8d 5e d6
    51285170    mov dx, strict word 0000ch                ; ba 0c 00
    5129     call 07f45h                               ; e8 45 41
     5171    call 07f53h                               ; e8 53 41
    51305172    jmp short 03e2ah                          ; eb 28
    51315173    push word [bp-00eh]                       ; ff 76 f2
     
    51525194    test dl, dl                               ; 84 d2
    51535195    je near 03f0eh                            ; 0f 84 d0 00
    5154     mov bx, 00c52h                            ; bb 52 0c
     5196    mov bx, 00cdah                            ; bb da 0c
    51555197    mov cx, ds                                ; 8c d9
    51565198    mov ax, strict word 00004h                ; b8 04 00
     
    52425284    mov word [bp+01ah], bx                    ; 89 5e 1a
    52435285    jmp short 03f12h                          ; eb e5
    5244     mov bx, 00c52h                            ; bb 52 0c
     5286    mov bx, 00cdah                            ; bb da 0c
    52455287    mov cx, ds                                ; 8c d9
    52465288    mov ax, strict word 00004h                ; b8 04 00
     
    54555497    mov dx, ss                                ; 8c d2
    54565498    lea ax, [bp-028h]                         ; 8d 46 d8
    5457     call 08b1ah                               ; e8 e4 49
     5499    call 08caah                               ; e8 74 4b
    54585500    mov word [bp-028h], strict word 00028h    ; c7 46 d8 28 00
    54595501    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    54865528    lea bx, [bp-028h]                         ; 8d 5e d8
    54875529    mov dx, strict word 0000ch                ; ba 0c 00
    5488     call 07f45h                               ; e8 ba 3d
     5530    call 07f53h                               ; e8 c8 3d
    54895531    jmp short 041b1h                          ; eb 24
    54905532    push dword [bp-016h]                      ; 66 ff 76 ea
     
    55155557    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    55165558    je near 04296h                            ; 0f 84 bf 00
    5517     mov bx, 00c52h                            ; bb 52 0c
     5559    mov bx, 00cdah                            ; bb da 0c
    55185560    mov cx, ds                                ; 8c d9
    55195561    mov ax, strict word 00004h                ; b8 04 00
     
    57925834    or byte [bp+022h], 001h                   ; 80 4e 22 01
    57935835    jmp near 042a9h                           ; e9 91 fd
    5794     mov bx, 00c52h                            ; bb 52 0c
     5836    mov bx, 00cdah                            ; bb da 0c
    57955837    mov cx, ds                                ; 8c d9
    57965838    mov ax, strict word 00004h                ; b8 04 00
     
    58225864    je short 0457ah                           ; 74 21
    58235865    mov dx, strict word 00001h                ; ba 01 00
    5824     mov bx, 00c52h                            ; bb 52 0c
     5866    mov bx, 00cdah                            ; bb da 0c
    58255867    mov cx, ds                                ; 8c d9
    58265868    mov ax, strict word 00004h                ; b8 04 00
    58275869    call 018aeh                               ; e8 47 d3
    58285870    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    5829     add dx, 00c78h                            ; 81 c2 78 0c
     5871    add dx, 00d00h                            ; 81 c2 00 0d
    58305872    push dx                                   ; 52
    58315873    push 00402h                               ; 68 02 04
     
    58465888    test al, al                               ; 84 c0
    58475889    je short 045aah                           ; 74 1b
    5848     mov bx, 00c52h                            ; bb 52 0c
     5890    mov bx, 00cdah                            ; bb da 0c
    58495891    mov cx, ds                                ; 8c d9
    58505892    mov ax, strict word 00004h                ; b8 04 00
    58515893    call 018aeh                               ; e8 14 d3
    5852     push 00c8ch                               ; 68 8c 0c
     5894    push 00d14h                               ; 68 14 0d
    58535895    push 00416h                               ; 68 16 04
    58545896    push strict byte 00004h                   ; 6a 04
     
    58585900    test dl, dl                               ; 84 d2
    58595901    je short 045beh                           ; 74 10
    5860     mov bx, 00c52h                            ; bb 52 0c
     5902    mov bx, 00cdah                            ; bb da 0c
    58615903    mov cx, ds                                ; 8c d9
    58625904    mov ax, strict word 00004h                ; b8 04 00
    58635905    call 018aeh                               ; e8 f5 d2
    5864     push 00c96h                               ; 68 96 0c
     5906    push 00d1eh                               ; 68 1e 0d
    58655907    jmp short 0459dh                          ; eb df
    58665908    test bl, 080h                             ; f6 c3 80
    58675909    je short 045d4h                           ; 74 11
    5868     mov bx, 00c52h                            ; bb 52 0c
     5910    mov bx, 00cdah                            ; bb da 0c
    58695911    mov cx, ds                                ; 8c d9
    58705912    mov ax, strict word 00004h                ; b8 04 00
    58715913    call 018aeh                               ; e8 e0 d2
    58725914    push si                                   ; 56
    5873     push 00c82h                               ; 68 82 0c
     5915    push 00d0ah                               ; 68 0a 0d
    58745916    jmp short 045e3h                          ; eb 0f
    5875     mov bx, 00c52h                            ; bb 52 0c
     5917    mov bx, 00cdah                            ; bb da 0c
    58765918    mov cx, ds                                ; 8c d9
    58775919    mov ax, strict word 00004h                ; b8 04 00
    58785920    call 018aeh                               ; e8 cf d2
    58795921    push si                                   ; 56
    5880     push 00c78h                               ; 68 78 0c
     5922    push 00d00h                               ; 68 00 0d
    58815923    push 0042bh                               ; 68 2b 04
    58825924    push strict byte 00004h                   ; 6a 04
     
    59035945    mov bp, sp                                ; 89 e5
    59045946    mov dx, ax                                ; 89 c2
    5905     mov bx, 00c52h                            ; bb 52 0c
     5947    mov bx, 00cdah                            ; bb da 0c
    59065948    mov cx, ds                                ; 8c d9
    59075949    mov ax, strict word 00004h                ; b8 04 00
     
    59756017    mov byte [bp-006h], al                    ; 88 46 fa
    59766018    mov byte [bp-008h], al                    ; 88 46 f8
    5977     mov bx, 00c52h                            ; bb 52 0c
     6019    mov bx, 00cdah                            ; bb da 0c
    59786020    mov cx, ds                                ; 8c d9
    59796021    mov ax, strict word 00004h                ; b8 04 00
     
    65366578    test al, al                               ; 84 c0
    65376579    jne short 04bc6h                          ; 75 19
    6538     mov bx, 00c52h                            ; bb 52 0c
     6580    mov bx, 00cdah                            ; bb da 0c
    65396581    mov cx, ds                                ; 8c d9
    65406582    mov ax, strict word 00004h                ; b8 04 00
     
    67396781    cmp byte [bp-006h], 058h                  ; 80 7e fa 58
    67406782    jbe short 04e01h                          ; 76 1e
    6741     mov bx, 00c52h                            ; bb 52 0c
     6783    mov bx, 00cdah                            ; bb da 0c
    67426784    mov cx, ds                                ; 8c d9
    67436785    mov ax, strict word 00004h                ; b8 04 00
     
    67546796    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
    67556797    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6756     mov dl, byte [si+00ca6h]                  ; 8a 94 a6 0c
    6757     mov ax, word [si+00ca6h]                  ; 8b 84 a6 0c
     6798    mov dl, byte [si+00d2eh]                  ; 8a 94 2e 0d
     6799    mov ax, word [si+00d2eh]                  ; 8b 84 2e 0d
    67586800    jmp near 04ea4h                           ; e9 8c 00
    67596801    test bl, 004h                             ; f6 c3 04
     
    67616803    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
    67626804    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6763     mov dl, byte [si+00ca4h]                  ; 8a 94 a4 0c
    6764     mov ax, word [si+00ca4h]                  ; 8b 84 a4 0c
     6805    mov dl, byte [si+00d2ch]                  ; 8a 94 2c 0d
     6806    mov ax, word [si+00d2ch]                  ; 8b 84 2c 0d
    67656807    jmp near 04ea4h                           ; e9 75 00
    67666808    mov al, byte [bp-002h]                    ; 8a 46 fe
     
    67816823    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
    67826824    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6783     movzx ax, byte [si+00ca8h]                ; 0f b6 84 a8 0c
     6825    movzx ax, byte [si+00d30h]                ; 0f b6 84 30 0d
    67846826    movzx dx, bl                              ; 0f b6 d3
    67856827    test dx, ax                               ; 85 c2
    67866828    je short 04e6fh                           ; 74 0a
    6787     mov dl, byte [si+00ca0h]                  ; 8a 94 a0 0c
    6788     mov ax, word [si+00ca0h]                  ; 8b 84 a0 0c
     6829    mov dl, byte [si+00d28h]                  ; 8a 94 28 0d
     6830    mov ax, word [si+00d28h]                  ; 8b 84 28 0d
    67896831    jmp short 04e77h                          ; eb 08
    6790     mov dl, byte [si+00ca2h]                  ; 8a 94 a2 0c
    6791     mov ax, word [si+00ca2h]                  ; 8b 84 a2 0c
     6832    mov dl, byte [si+00d2ah]                  ; 8a 94 2a 0d
     6833    mov ax, word [si+00d2ah]                  ; 8b 84 2a 0d
    67926834    shr ax, 008h                              ; c1 e8 08
    67936835    mov byte [bp-006h], al                    ; 88 46 fa
     
    67956837    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
    67966838    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6797     movzx ax, byte [si+00ca8h]                ; 0f b6 84 a8 0c
     6839    movzx ax, byte [si+00d30h]                ; 0f b6 84 30 0d
    67986840    movzx dx, bl                              ; 0f b6 d3
    67996841    test dx, ax                               ; 85 c2
    68006842    je short 04e9ch                           ; 74 0a
    6801     mov dl, byte [si+00ca2h]                  ; 8a 94 a2 0c
    6802     mov ax, word [si+00ca2h]                  ; 8b 84 a2 0c
     6843    mov dl, byte [si+00d2ah]                  ; 8a 94 2a 0d
     6844    mov ax, word [si+00d2ah]                  ; 8b 84 2a 0d
    68036845    jmp short 04ea4h                          ; eb 08
    6804     mov dl, byte [si+00ca0h]                  ; 8a 94 a0 0c
    6805     mov ax, word [si+00ca0h]                  ; 8b 84 a0 0c
     6846    mov dl, byte [si+00d28h]                  ; 8a 94 28 0d
     6847    mov ax, word [si+00d28h]                  ; 8b 84 28 0d
    68066848    shr ax, 008h                              ; c1 e8 08
    68076849    mov byte [bp-006h], al                    ; 88 46 fa
     
    68106852    test dl, dl                               ; 84 d2
    68116853    jne short 04ecah                          ; 75 16
    6812     mov bx, 00c52h                            ; bb 52 0c
     6854    mov bx, 00cdah                            ; bb da 0c
    68136855    mov cx, ds                                ; 8c d9
    68146856    mov ax, strict word 00004h                ; b8 04 00
     
    71837225    or ah, 080h                               ; 80 cc 80
    71847226    jmp near 050f6h                           ; e9 d5 fe
    7185     mov bx, 00c52h                            ; bb 52 0c
     7227    mov bx, 00cdah                            ; bb da 0c
    71867228    mov cx, ds                                ; 8c d9
    71877229    mov ax, strict word 00004h                ; b8 04 00
     
    71947236    call 018e9h                               ; e8 ae c6
    71957237    add sp, strict byte 00006h                ; 83 c4 06
    7196     mov bx, 00c52h                            ; bb 52 0c
     7238    mov bx, 00cdah                            ; bb da 0c
    71977239    mov cx, ds                                ; 8c d9
    71987240    mov ax, strict word 00004h                ; b8 04 00
     
    73447386    test ax, ax                               ; 85 c0
    73457387    jne short 053d0h                          ; 75 23
    7346     mov bx, 00c52h                            ; bb 52 0c
     7388    mov bx, 00cdah                            ; bb da 0c
    73477389    mov cx, ds                                ; 8c d9
    73487390    mov ax, strict word 00004h                ; b8 04 00
     
    73737415    cmp ax, dx                                ; 39 d0
    73747416    jbe short 0542bh                          ; 76 2e
    7375     mov bx, 00c52h                            ; bb 52 0c
     7417    mov bx, 00cdah                            ; bb da 0c
    73767418    mov cx, ds                                ; 8c d9
    73777419    mov ax, strict word 00004h                ; b8 04 00
     
    74117453    mov bx, cx                                ; 89 cb
    74127454    xor cx, cx                                ; 31 c9
    7413     call 08ae9h                               ; e8 84 36
     7455    call 08c79h                               ; e8 14 38
    74147456    xor bx, bx                                ; 31 db
    74157457    add ax, word [bp-008h]                    ; 03 46 f8
     
    74177459    mov bx, word [bp-00ah]                    ; 8b 5e f6
    74187460    xor cx, cx                                ; 31 c9
    7419     call 08ae9h                               ; e8 75 36
     7461    call 08c79h                               ; e8 05 38
    74207462    xor bx, bx                                ; 31 db
    74217463    add ax, word [bp-006h]                    ; 03 46 fa
     
    74307472    db  0c0h, 001h, 0c3h, 006h, 056h, 0ffh, 097h, 0fch, 0ffh, 089h, 0c2h, 08bh, 046h, 016h, 030h, 0c0h
    74317473    db  08eh, 046h, 0fch, 026h, 08bh, 05ch, 014h, 009h, 0c3h, 089h, 05eh, 016h, 084h, 0d2h, 00fh, 084h
    7432     db  015h, 0feh, 0bbh, 052h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 088h, 0c3h, 00fh, 0b6h, 0c2h
     7474    db  015h, 0feh, 0bbh, 0dah, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 088h, 0c3h, 00fh, 0b6h, 0c2h
    74337475    db  050h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h, 050h, 068h, 0ech, 005h, 068h, 0c7h, 006h, 06ah, 004h
    74347476    db  0e8h, 0adh, 0c3h, 083h, 0c4h, 00ah, 08bh, 046h, 016h, 030h, 0e4h, 080h, 0cch, 00ch, 0e9h, 051h
    7435     db  001h, 0bbh, 052h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 059h, 0c3h, 068h, 0e8h, 006h, 06ah
     7477    db  001h, 0bbh, 0dah, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 059h, 0c3h, 068h, 0e8h, 006h, 06ah
    74367478    db  004h, 0e8h, 08ch, 0c3h, 083h, 0c4h, 004h, 0e9h, 0cdh, 0fdh, 00fh, 0b6h, 046h, 0feh, 06bh, 0c0h
    74377479    db  018h, 08eh, 046h, 0fch, 089h, 0f3h, 001h, 0c3h, 026h, 08bh, 07fh, 028h, 026h, 08bh, 04fh, 026h
     
    74477489    db  00fh, 0b6h, 046h, 0feh, 06bh, 0c0h, 018h, 08eh, 046h, 0fch, 001h, 0c6h, 026h, 08bh, 07ch, 02eh
    74487490    db  026h, 08bh, 044h, 02ch, 089h, 046h, 0f8h, 026h, 08bh, 044h, 030h, 089h, 046h, 0fah, 089h, 0f8h
    7449     db  031h, 0d2h, 08bh, 05eh, 0f8h, 031h, 0c9h, 0e8h, 0b6h, 034h, 08bh, 05eh, 0fah, 031h, 0c9h, 0e8h
    7450     db  0aeh, 034h, 089h, 046h, 0f0h, 089h, 056h, 0f2h, 089h, 056h, 014h, 089h, 046h, 012h, 08bh, 046h
    7451     db  016h, 030h, 0e4h, 080h, 0cch, 003h, 089h, 046h, 016h, 0e9h, 0dfh, 0fch, 0bbh, 052h, 00ch, 08ch
     7491    db  031h, 0d2h, 08bh, 05eh, 0f8h, 031h, 0c9h, 0e8h, 046h, 036h, 08bh, 05eh, 0fah, 031h, 0c9h, 0e8h
     7492    db  03eh, 036h, 089h, 046h, 0f0h, 089h, 056h, 0f2h, 089h, 056h, 014h, 089h, 046h, 012h, 08bh, 046h
     7493    db  016h, 030h, 0e4h, 080h, 0cch, 003h, 089h, 046h, 016h, 0e9h, 0dfh, 0fch, 0bbh, 0dah, 00ch, 08ch
    74527494    db  0d9h, 0b8h, 004h, 000h, 0e8h, 04eh, 0c2h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h, 050h, 068h, 0ech
    74537495    db  005h, 068h, 002h, 007h, 06ah, 004h, 0e8h, 077h, 0c2h, 083h, 0c4h, 008h, 0e9h, 0b8h, 0fch, 0bbh
    7454     db  052h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 02bh, 0c2h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h
     7496    db  0dah, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 02bh, 0c2h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h
    74557497    db  050h, 068h, 0ech, 005h, 068h, 035h, 007h, 0e9h, 032h, 0fdh, 08bh, 046h, 016h, 030h, 0e4h, 080h
    74567498    db  0cch, 001h, 089h, 046h, 016h, 08bh, 05eh, 016h, 0c1h, 0ebh, 008h, 030h, 0ffh, 0bah, 074h, 000h
     
    75607602    cmp dx, word [es:bx+032h]                 ; 26 3b 57 32
    75617603    jc short 0581ah                           ; 72 23
    7562     mov bx, 00c52h                            ; bb 52 0c
     7604    mov bx, 00cdah                            ; bb da 0c
    75637605    mov cx, ds                                ; 8c d9
    75647606    mov ax, strict word 00004h                ; b8 04 00
     
    76127654    test dl, dl                               ; 84 d2
    76137655    je near 05b35h                            ; 0f 84 97 02
    7614     mov bx, 00c52h                            ; bb 52 0c
     7656    mov bx, 00cdah                            ; bb da 0c
    76157657    mov cx, ds                                ; 8c d9
    76167658    mov ax, strict word 00004h                ; b8 04 00
     
    78487890    leave                                     ; c9
    78497891    retn                                      ; c3
    7850     mov bx, 00c52h                            ; bb 52 0c
     7892    mov bx, 00cdah                            ; bb da 0c
    78517893    mov cx, ds                                ; 8c d9
    78527894    mov ax, strict word 00004h                ; b8 04 00
     
    81768218    mov word [bp+010h], ax                    ; 89 46 10
    81778219    jmp near 05e85h                           ; e9 2b 00
    8178     mov bx, 00c52h                            ; bb 52 0c
     8220    mov bx, 00cdah                            ; bb da 0c
    81798221    mov cx, ds                                ; 8c d9
    81808222    mov ax, strict word 00004h                ; b8 04 00
     
    85178559    retf                                      ; cb
    85188560    jmp near 05e85h                           ; e9 ba fc
    8519     mov bx, 00c52h                            ; bb 52 0c
     8561    mov bx, 00cdah                            ; bb da 0c
    85208562    mov cx, ds                                ; 8c d9
    85218563    mov ax, strict word 00004h                ; b8 04 00
     
    85578599    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    85588600    jmp near 05e85h                           ; e9 44 fc
    8559     mov bx, 00c52h                            ; bb 52 0c
     8601    mov bx, 00cdah                            ; bb da 0c
    85608602    mov cx, ds                                ; 8c d9
    85618603    mov ax, strict word 00004h                ; b8 04 00
     
    88458887    pop si                                    ; 5e
    88468888    retn                                      ; c3
    8847     mov bx, 00c52h                            ; bb 52 0c
     8889    mov bx, 00cdah                            ; bb da 0c
    88488890    mov cx, ds                                ; 8c d9
    88498891    mov ax, strict word 00004h                ; b8 04 00
     
    91639205    je short 06856h                           ; 74 0e
    91649206    push 00884h                               ; 68 84 08
    9165     push 0101ah                               ; 68 1a 10
     9207    push 010a2h                               ; 68 a2 10
    91669208    push strict byte 00007h                   ; 6a 07
    91679209    call 018e9h                               ; e8 96 b0
     
    92249266    je short 068bfh                           ; 74 0e
    92259267    push 0088eh                               ; 68 8e 08
    9226     push 0101ah                               ; 68 1a 10
     9268    push 010a2h                               ; 68 a2 10
    92279269    push strict byte 00007h                   ; 6a 07
    92289270    call 018e9h                               ; e8 2d b0
     
    1051610558    mov dx, ss                                ; 8c d2
    1051710559    lea ax, [bp-01ah]                         ; 8d 46 e6
    10518     call 08b1ah                               ; e8 63 16
     10560    call 08caah                               ; e8 f3 17
    1051910561    mov byte [bp-01ah], 025h                  ; c6 46 e6 25
    1052010562    push strict byte 00008h                   ; 6a 08
     
    1057210614    cmp bx, 00200h                            ; 81 fb 00 02
    1057310615    je short 07574h                           ; 74 20
    10574     mov bx, 00c52h                            ; bb 52 0c
     10616    mov bx, 00cdah                            ; bb da 0c
    1057510617    mov cx, ds                                ; 8c d9
    1057610618    mov ax, strict word 00004h                ; b8 04 00
     
    1060010642    mov dx, di                                ; 89 fa
    1060110643    xor cx, cx                                ; 31 c9
    10602     call 08ab0h                               ; e8 01 15
     10644    call 08c40h                               ; e8 91 16
    1060310645    mov word [bp-00eh], dx                    ; 89 56 f2
    1060410646    mov es, [bp-006h]                         ; 8e 46 fa
     
    1102811070    mov ax, 00080h                            ; b8 80 00
    1102911071    mov dx, word [bp-004h]                    ; 8b 56 fc
    11030     call 08b1ah                               ; e8 8d 11
     11072    call 08caah                               ; e8 1d 13
    1103111073    mov es, [bp-004h]                         ; 8e 46 fc
    1103211074    mov word [es:si+00080h], 08027h           ; 26 c7 84 80 00 27 80
     
    1106911111    mov bx, word [bp-010h]                    ; 8b 5e f0
    1107011112    xor cx, cx                                ; 31 c9
    11071     call 08ae9h                               ; e8 c0 10
     11113    call 08c79h                               ; e8 50 12
    1107211114    push dx                                   ; 52
    1107311115    push ax                                   ; 50
     
    1107711119    mov ax, 0026ah                            ; b8 6a 02
    1107811120    mov dx, word [bp-004h]                    ; 8b 56 fc
    11079     call 08a09h                               ; e8 ca 0f
     11121    call 08b9dh                               ; e8 5e 11
    1108011122    mov es, [bp-004h]                         ; 8e 46 fc
    1108111123    movzx ax, byte [es:si+00263h]             ; 26 0f b6 84 63 02
     
    1113811180    add ax, 0026ah                            ; 05 6a 02
    1113911181    mov dx, word [bp-006h]                    ; 8b 56 fa
    11140     call 08a7fh                               ; e8 6f 0f
     11182    call 08c13h                               ; e8 03 11
    1114111183    leave                                     ; c9
    1114211184    pop di                                    ; 5f
     
    1118011222    mov ax, di                                ; 89 f8
    1118111223    mov dx, word [bp-004h]                    ; 8b 56 fc
    11182     call 08b1ah                               ; e8 a4 0f
     11224    call 08caah                               ; e8 34 11
    1118311225    lea ax, [di+00080h]                       ; 8d 85 80 00
    1118411226    mov cx, strict word 00040h                ; b9 40 00
    1118511227    xor bx, bx                                ; 31 db
    1118611228    mov dx, word [bp-004h]                    ; 8b 56 fc
    11187     call 08b1ah                               ; e8 95 0f
     11229    call 08caah                               ; e8 25 11
    1118811230    lea ax, [di+00200h]                       ; 8d 85 00 02
    1118911231    mov cx, strict word 00060h                ; b9 60 00
    1119011232    xor bx, bx                                ; 31 db
    1119111233    mov dx, word [bp-004h]                    ; 8b 56 fc
    11192     call 08b1ah                               ; e8 86 0f
     11234    call 08caah                               ; e8 16 11
    1119311235    mov ax, word [bp-006h]                    ; 8b 46 fa
    1119411236    add ax, 00108h                            ; 05 08 01
     
    1132211364    mov ax, si                                ; 89 f0
    1132311365    mov dx, word [bp-004h]                    ; 8b 56 fc
    11324     call 08b1ah                               ; e8 6e 0e
     11366    call 08caah                               ; e8 fe 0f
    1132511367    lea ax, [si+00080h]                       ; 8d 84 80 00
    1132611368    mov cx, strict word 00040h                ; b9 40 00
    1132711369    xor bx, bx                                ; 31 db
    1132811370    mov dx, word [bp-004h]                    ; 8b 56 fc
    11329     call 08b1ah                               ; e8 5f 0e
     11371    call 08caah                               ; e8 ef 0f
    1133011372    mov ax, si                                ; 89 f0
    1133111373    add ah, 002h                              ; 80 c4 02
     
    1133411376    xor bx, bx                                ; 31 db
    1133511377    mov dx, word [bp-004h]                    ; 8b 56 fc
    11336     call 08b1ah                               ; e8 4c 0e
     11378    call 08caah                               ; e8 dc 0f
    1133711379    lea ax, [di+00108h]                       ; 8d 85 08 01
    1133811380    cwd                                       ; 99
     
    1149711539    pop cx                                    ; 59
    1149811540    retn                                      ; c3
    11499 @ahci_read_sectors:                          ; 0xf7e55 LB 0x8b
     11541@ahci_read_sectors:                          ; 0xf7e55 LB 0x91
    1150011542    push si                                   ; 56
    1150111543    push di                                   ; 57
     
    1153011572    mov es, [bp+00ah]                         ; 8e 46 0a
    1153111573    mov bx, di                                ; 89 fb
    11532     mov cx, word [es:bx+00ah]                 ; 26 8b 4f 0a
     11574    mov ax, word [es:bx+00ah]                 ; 26 8b 47 0a
     11575    mov word [es:bx+014h], ax                 ; 26 89 47 14
     11576    mov cx, ax                                ; 89 c1
    1153311577    sal cx, 009h                              ; c1 e1 09
    1153411578    shr cx, 1                                 ; d1 e9
     
    1154511589    mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    1154611590    xor ax, ax                                ; 31 c0
    11547     call 07779h                               ; e8 a1 f8
     11591    call 07779h                               ; e8 9b f8
    1154811592    xor ax, ax                                ; 31 c0
    1154911593    pop bp                                    ; 5d
     
    1155111595    pop si                                    ; 5e
    1155211596    retn 00004h                               ; c2 04 00
    11553 @ahci_write_sectors:                         ; 0xf7ee0 LB 0x65
     11597@ahci_write_sectors:                         ; 0xf7ee6 LB 0x6d
    1155411598    push si                                   ; 56
    1155511599    push bp                                   ; 55
     
    1156111605    sub bx, strict byte 0000ch                ; 83 eb 0c
    1156211606    cmp bx, strict byte 00004h                ; 83 fb 04
    11563     jbe short 07f08h                          ; 76 0f
     11607    jbe short 07f0eh                          ; 76 0f
    1156411608    push bx                                   ; 53
    1156511609    push 00bcbh                               ; 68 cb 0b
    1156611610    push 00bach                               ; 68 ac 0b
    1156711611    push strict byte 00007h                   ; 6a 07
    11568     call 018e9h                               ; e8 e4 99
     11612    call 018e9h                               ; e8 de 99
    1156911613    add sp, strict byte 00008h                ; 83 c4 08
    1157011614    mov es, cx                                ; 8e c1
    1157111615    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1157211616    xor ax, ax                                ; 31 c0
    11573     call 07765h                               ; e8 51 f8
     11617    call 07765h                               ; e8 4b f8
    1157411618    mov es, cx                                ; 8e c1
    1157511619    add bx, si                                ; 01 f3
     
    1157711621    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1157811622    xor ax, ax                                ; 31 c0
    11579     call 07c54h                               ; e8 2c fd
     11623    call 07c54h                               ; e8 26 fd
    1158011624    mov bx, strict word 00035h                ; bb 35 00
    1158111625    mov ax, si                                ; 89 f0
    1158211626    mov dx, cx                                ; 89 ca
    11583     call 07950h                               ; e8 1e fa
     11627    call 07950h                               ; e8 18 fa
    1158411628    mov es, cx                                ; 8e c1
     11629    mov dx, word [es:si+00ah]                 ; 26 8b 54 0a
     11630    mov word [es:si+014h], dx                 ; 26 89 54 14
    1158511631    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1158611632    xor ax, ax                                ; 31 c0
    11587     call 07779h                               ; e8 3b f8
     11633    call 07779h                               ; e8 2d f8
    1158811634    xor ax, ax                                ; 31 c0
    1158911635    pop bp                                    ; 5d
    1159011636    pop si                                    ; 5e
    1159111637    retn 00004h                               ; c2 04 00
    11592 ahci_cmd_packet_:                            ; 0xf7f45 LB 0x16e
     11638ahci_cmd_packet_:                            ; 0xf7f53 LB 0x16e
    1159311639    push si                                   ; 56
    1159411640    push di                                   ; 57
     
    1160011646    mov dx, strict word 0000eh                ; ba 0e 00
    1160111647    mov ax, strict word 00040h                ; b8 40 00
    11602     call 0161ch                               ; e8 be 96
     11648    call 0161ch                               ; e8 b0 96
    1160311649    mov si, 00122h                            ; be 22 01
    1160411650    mov word [bp-004h], ax                    ; 89 46 fc
    1160511651    cmp byte [bp+00eh], 002h                  ; 80 7e 0e 02
    11606     jne short 07f89h                          ; 75 1f
    11607     mov bx, 00c52h                            ; bb 52 0c
     11652    jne short 07f97h                          ; 75 1f
     11653    mov bx, 00cdah                            ; bb da 0c
    1160811654    mov cx, ds                                ; 8c d9
    1160911655    mov ax, strict word 00004h                ; b8 04 00
    11610     call 018aeh                               ; e8 39 99
     11656    call 018aeh                               ; e8 2b 99
    1161111657    push 00bdeh                               ; 68 de 0b
    1161211658    push 00beeh                               ; 68 ee 0b
    1161311659    push strict byte 00004h                   ; 6a 04
    11614     call 018e9h                               ; e8 69 99
     11660    call 018e9h                               ; e8 5b 99
    1161511661    add sp, strict byte 00006h                ; 83 c4 06
    1161611662    mov ax, strict word 00001h                ; b8 01 00
    11617     jmp near 080adh                           ; e9 24 01
     11663    jmp near 080bbh                           ; e9 24 01
    1161811664    test byte [bp+008h], 001h                 ; f6 46 08 01
    11619     jne short 07f83h                          ; 75 f4
     11665    jne short 07f91h                          ; 75 f4
    1162011666    mov ax, word [bp+00ah]                    ; 8b 46 0a
    1162111667    mov dx, word [bp+00ch]                    ; 8b 56 0c
     
    1162311669    sal ax, 1                                 ; d1 e0
    1162411670    rcl dx, 1                                 ; d1 d2
    11625     loop 07f98h                               ; e2 fa
     11671    loop 07fa6h                               ; e2 fa
    1162611672    mov es, [bp-004h]                         ; 8e 46 fc
    1162711673    mov word [es:si], ax                      ; 26 89 04
     
    1163511681    mov dx, word [bp+00ch]                    ; 8b 56 0c
    1163611682    xor cx, cx                                ; 31 c9
    11637     call 08ab0h                               ; e8 eb 0a
     11683    call 08c40h                               ; e8 6d 0c
    1163811684    mov word [es:si+00ah], ax                 ; 26 89 44 0a
    1163911685    xor di, di                                ; 31 ff
     
    1164211688    mov word [bp-00ah], di                    ; 89 7e f6
    1164311689    mov word [bp-008h], ax                    ; 89 46 f8
    11644     add word [bp-010h], strict byte 0fff4h    ; 83 46 f0 f4
     11690    sub word [bp-010h], strict byte 0000ch    ; 83 6e f0 0c
    1164511691    xor ax, ax                                ; 31 c0
    1164611692    mov dx, word [bp-006h]                    ; 8b 56 fa
    11647     call 07765h                               ; e8 80 f7
     11693    call 07765h                               ; e8 72 f7
    1164811694    mov es, [bp-004h]                         ; 8e 46 fc
    1164911695    mov bx, word [bp-010h]                    ; 8b 5e f0
     
    1165211698    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1165311699    xor ax, ax                                ; 31 c0
    11654     call 07c54h                               ; e8 57 fc
     11700    call 07c54h                               ; e8 49 fc
    1165511701    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    1165611702    push ax                                   ; 50
     
    1165911705    mov ax, 000c0h                            ; b8 c0 00
    1166011706    mov dx, word [bp-006h]                    ; 8b 56 fa
    11661     call 08b27h                               ; e8 16 0b
     11707    call 08cb7h                               ; e8 98 0c
    1166211708    mov es, [bp-004h]                         ; 8e 46 fc
    1166311709    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1166611712    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
    1166711713    test ax, ax                               ; 85 c0
    11668     je short 0804fh                           ; 74 27
     11714    je short 0805dh                           ; 74 27
    1166911715    dec ax                                    ; 48
    1167011716    mov es, [bp-006h]                         ; 8e 46 fa
     
    1167911725    mov ax, si                                ; 89 f0
    1168011726    mov dx, word [bp-004h]                    ; 8b 56 fc
    11681     call 07950h                               ; e8 f6 f8
     11727    call 07950h                               ; e8 e8 f8
    1168211728    les bx, [bp-00ah]                         ; c4 5e f6
    1168311729    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     
    1170211748    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1170311749    mov dx, word [bp-008h]                    ; 8b 56 f8
    11704     call 07779h                               ; e8 e0 f6
     11750    call 07779h                               ; e8 d2 f6
    1170511751    les bx, [bp-00ah]                         ; c4 5e f6
    1170611752    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1170711753    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    11708     jne short 080abh                          ; 75 05
     11754    jne short 080b9h                          ; 75 05
    1170911755    mov ax, strict word 00004h                ; b8 04 00
    11710     jmp short 080adh                          ; eb 02
     11756    jmp short 080bbh                          ; eb 02
    1171111757    xor ax, ax                                ; 31 c0
    1171211758    leave                                     ; c9
     
    1171411760    pop si                                    ; 5e
    1171511761    retn 0000ch                               ; c2 0c 00
    11716 ahci_port_detect_device_:                    ; 0xf80b3 LB 0x368
     11762ahci_port_detect_device_:                    ; 0xf80c1 LB 0x3c3
    1171711763    push cx                                   ; 51
    1171811764    push si                                   ; 56
    1171911765    push di                                   ; 57
    11720     enter 00218h, 000h                        ; c8 18 02 00
     11766    enter 00220h, 000h                        ; c8 20 02 00
    1172111767    mov di, ax                                ; 89 c7
    11722     mov word [bp-014h], dx                    ; 89 56 ec
    11723     mov byte [bp-004h], bl                    ; 88 5e fc
     11768    mov word [bp-00ah], dx                    ; 89 56 f6
     11769    mov byte [bp-002h], bl                    ; 88 5e fe
    1172411770    movzx cx, bl                              ; 0f b6 cb
    1172511771    mov bx, cx                                ; 89 cb
    11726     call 07c54h                               ; e8 8a fb
     11772    call 07c54h                               ; e8 7c fb
    1172711773    mov dx, strict word 0000eh                ; ba 0e 00
    1172811774    mov ax, strict word 00040h                ; b8 40 00
    11729     call 0161ch                               ; e8 49 95
    11730     mov word [bp-016h], ax                    ; 89 46 ea
     11775    call 0161ch                               ; e8 3b 95
     11776    mov word [bp-01eh], ax                    ; 89 46 e2
    1173111777    mov si, 00122h                            ; be 22 01
    1173211778    mov word [bp-008h], ax                    ; 89 46 f8
    11733     mov word [bp-00ch], si                    ; 89 76 f4
    11734     mov word [bp-00ah], ax                    ; 89 46 f6
     11779    mov word [bp-00eh], si                    ; 89 76 f2
     11780    mov word [bp-00ch], ax                    ; 89 46 f4
    1173511781    sal cx, 007h                              ; c1 e1 07
    11736     mov word [bp-00eh], cx                    ; 89 4e f2
     11782    mov word [bp-012h], cx                    ; 89 4e ee
    1173711783    mov ax, cx                                ; 89 c8
    1173811784    add ax, 0012ch                            ; 05 2c 01
    1173911785    cwd                                       ; 99
    11740     mov word [bp-018h], ax                    ; 89 46 e8
     11786    mov word [bp-020h], ax                    ; 89 46 e0
    1174111787    mov bx, dx                                ; 89 d3
    11742     mov es, [bp-014h]                         ; 8e 46 ec
     11788    mov es, [bp-00ah]                         ; 8e 46 f6
    1174311789    mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
    1174411790    mov cx, bx                                ; 89 d9
     
    1174811794    ; mov ax, cx                                ; 8b c1
    1174911795    out DX, eax                               ; 66 ef
    11750     mov es, [bp-014h]                         ; 8e 46 ec
     11796    mov es, [bp-00ah]                         ; 8e 46 f6
    1175111797    mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
    1175211798    add dx, strict byte 00004h                ; 83 c2 04
     
    1175811804    ; mov ax, cx                                ; 8b c1
    1175911805    out DX, eax                               ; 66 ef
    11760     mov es, [bp-014h]                         ; 8e 46 ec
     11806    mov es, [bp-00ah]                         ; 8e 46 f6
    1176111807    mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
    11762     mov ax, word [bp-018h]                    ; 8b 46 e8
     11808    mov ax, word [bp-020h]                    ; 8b 46 e0
    1176311809    mov cx, bx                                ; 89 d9
    1176411810    xchg cx, ax                               ; 91
     
    1176711813    ; mov ax, cx                                ; 8b c1
    1176811814    out DX, eax                               ; 66 ef
    11769     mov es, [bp-014h]                         ; 8e 46 ec
     11815    mov es, [bp-00ah]                         ; 8e 46 f6
    1177011816    mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
    1177111817    add dx, strict byte 00004h                ; 83 c2 04
     
    1177711823    ; mov ax, cx                                ; 8b c1
    1177811824    out DX, eax                               ; 66 ef
    11779     mov ax, word [bp-00eh]                    ; 8b 46 f2
     11825    mov ax, word [bp-012h]                    ; 8b 46 ee
    1178011826    add ax, 00128h                            ; 05 28 01
    1178111827    cwd                                       ; 99
    11782     mov es, [bp-014h]                         ; 8e 46 ec
     11828    mov es, [bp-00ah]                         ; 8e 46 f6
    1178311829    mov bx, word [es:di+00260h]               ; 26 8b 9d 60 02
    1178411830    mov cx, dx                                ; 89 d1
     
    1178911835    ; mov ax, cx                                ; 8b c1
    1179011836    out DX, eax                               ; 66 ef
    11791     mov es, [bp-014h]                         ; 8e 46 ec
     11837    mov es, [bp-00ah]                         ; 8e 46 f6
    1179211838    mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
    1179311839    add dx, strict byte 00004h                ; 83 c2 04
     
    1180011846    mov bx, strict word 0000fh                ; bb 0f 00
    1180111847    xor cx, cx                                ; 31 c9
    11802     call 07847h                               ; e8 c0 f6
     11848    call 07847h                               ; e8 b2 f6
    1180311849    cmp ax, strict word 00003h                ; 3d 03 00
    11804     jne near 08416h                           ; 0f 85 88 02
     11850    jne near 0847fh                           ; 0f 85 e3 02
    1180511851    mov es, [bp-008h]                         ; 8e 46 f8
    1180611852    mov al, byte [es:si+001edh]               ; 26 8a 84 ed 01
    11807     mov byte [bp-006h], al                    ; 88 46 fa
     11853    mov byte [bp-004h], al                    ; 88 46 fc
    1180811854    cmp AL, strict byte 004h                  ; 3c 04
    11809     jnc near 08416h                           ; 0f 83 77 02
    11810     mov dx, word [bp-00eh]                    ; 8b 56 f2
     11855    jnc near 0847fh                           ; 0f 83 d2 02
     11856    mov dx, word [bp-012h]                    ; 8b 56 ee
    1181111857    add dx, 00118h                            ; 81 c2 18 01
    11812     mov es, [bp-014h]                         ; 8e 46 ec
     11858    mov es, [bp-00ah]                         ; 8e 46 f6
    1181311859    mov ax, word [es:di+00260h]               ; 26 8b 85 60 02
    1181411860    mov bx, strict word 00010h                ; bb 10 00
    1181511861    xor cx, cx                                ; 31 c9
    11816     call 0778dh                               ; e8 d7 f5
    11817     mov ax, word [bp-00eh]                    ; 8b 46 f2
     11862    call 0778dh                               ; e8 c9 f5
     11863    mov ax, word [bp-012h]                    ; 8b 46 ee
    1181811864    add ax, 00124h                            ; 05 24 01
    1181911865    cwd                                       ; 99
    11820     mov es, [bp-014h]                         ; 8e 46 ec
    11821     mov bx, word [es:di+00260h]               ; 26 8b 9d 60 02
    1182211866    mov cx, dx                                ; 89 d1
    11823     mov dx, bx                                ; 89 da
     11867    mov es, [bp-00ah]                         ; 8e 46 f6
     11868    mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
    1182411869    xchg cx, ax                               ; 91
    1182511870    sal eax, 010h                             ; 66 c1 e0 10
     
    1182711872    ; mov ax, cx                                ; 8b c1
    1182811873    out DX, eax                               ; 66 ef
    11829     mov es, [bp-014h]                         ; 8e 46 ec
     11874    mov es, [bp-00ah]                         ; 8e 46 f6
    1183011875    mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
    1183111876    add dx, strict byte 00004h                ; 83 c2 04
     
    1183511880    shr eax, 010h                             ; 66 c1 e8 10
    1183611881    xchg dx, ax                               ; 92
    11837     mov cl, byte [bp-006h]                    ; 8a 4e fa
     11882    mov bx, ax                                ; 89 c3
     11883    mov ax, dx                                ; 89 d0
     11884    mov cl, byte [bp-004h]                    ; 8a 4e fc
    1183811885    add cl, 00ch                              ; 80 c1 0c
    1183911886    test dx, dx                               ; 85 d2
    11840     jne near 08373h                           ; 0f 85 81 01
    11841     cmp ax, 00101h                            ; 3d 01 01
    11842     jne near 08373h                           ; 0f 85 7a 01
     11887    jne near 083d9h                           ; 0f 85 d7 01
     11888    cmp bx, 00101h                            ; 81 fb 01 01
     11889    jne near 083d9h                           ; 0f 85 cf 01
    1184311890    mov es, [bp-008h]                         ; 8e 46 f8
    1184411891    db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
    1184511892    ; mov dword [es:si], strict dword 000000000h ; 66 26 c7 04 00 00 00 00
    11846     lea dx, [bp-00218h]                       ; 8d 96 e8 fd
     11893    lea dx, [bp-00220h]                       ; 8d 96 e0 fd
    1184711894    mov word [es:si+004h], dx                 ; 26 89 54 04
    1184811895    mov [es:si+006h], ss                      ; 26 8c 54 06
     
    1185111898    mov bx, 000ech                            ; bb ec 00
    1185211899    mov ax, si                                ; 89 f0
    11853     mov dx, word [bp-016h]                    ; 8b 56 ea
    11854     call 07950h                               ; e8 2c f7
    11855     mov dh, cl                                ; 88 ce
    11856     test byte [bp-00218h], 080h               ; f6 86 e8 fd 80
     11900    mov dx, word [bp-01eh]                    ; 8b 56 e2
     11901    call 07950h                               ; e8 1b f7
     11902    mov byte [bp-006h], cl                    ; 88 4e fa
     11903    test byte [bp-00220h], 080h               ; f6 86 e0 fd 80
    1185711904    db  00fh, 095h, 0c0h
    1185811905    ; setne al                                  ; 0f 95 c0
    1185911906    xor ah, ah                                ; 30 e4
    11860     mov byte [bp-002h], al                    ; 88 46 fe
    11861     mov ax, word [bp-00216h]                  ; 8b 86 ea fd
    11862     mov word [bp-010h], ax                    ; 89 46 f0
    11863     mov di, word [bp-00212h]                  ; 8b be ee fd
    11864     mov cx, word [bp-0020ch]                  ; 8b 8e f4 fd
    11865     mov ax, word [bp-001a0h]                  ; 8b 86 60 fe
    11866     mov bx, word [bp-0019eh]                  ; 8b 9e 62 fe
    11867     mov word [bp-012h], bx                    ; 89 5e ee
    11868     cmp bx, 00fffh                            ; 81 fb ff 0f
    11869     jne short 08261h                          ; 75 0e
    11870     cmp ax, strict word 0ffffh                ; 3d ff ff
    11871     jne short 08261h                          ; 75 09
    11872     mov ax, word [bp-00150h]                  ; 8b 86 b0 fe
    11873     mov word [bp-012h], strict word 00000h    ; c7 46 ee 00 00
    11874     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    11875     mov es, [bp-00ah]                         ; 8e 46 f6
    11876     add bx, word [bp-00ch]                    ; 03 5e f4
    11877     mov dl, byte [bp-004h]                    ; 8a 56 fc
    11878     mov byte [es:bx+001e9h], dl               ; 26 88 97 e9 01
    11879     movzx bx, dh                              ; 0f b6 de
    11880     imul bx, bx, strict byte 00018h           ; 6b db 18
    11881     mov si, word [bp-00ch]                    ; 8b 76 f4
    11882     add si, bx                                ; 01 de
     11907    mov dx, word [bp-0021eh]                  ; 8b 96 e2 fd
     11908    mov word [bp-018h], dx                    ; 89 56 e8
     11909    mov dx, word [bp-0021ah]                  ; 8b 96 e6 fd
     11910    mov word [bp-014h], dx                    ; 89 56 ec
     11911    mov dx, word [bp-00214h]                  ; 8b 96 ec fd
     11912    mov word [bp-01ah], dx                    ; 89 56 e6
     11913    mov dx, word [bp-001a8h]                  ; 8b 96 58 fe
     11914    mov word [bp-010h], dx                    ; 89 56 f0
     11915    mov di, word [bp-001a6h]                  ; 8b be 5a fe
     11916    cmp di, 00fffh                            ; 81 ff ff 0f
     11917    jne short 08278h                          ; 75 10
     11918    cmp dx, strict byte 0ffffh                ; 83 fa ff
     11919    jne short 08278h                          ; 75 0b
     11920    mov dx, word [bp-00158h]                  ; 8b 96 a8 fe
     11921    mov word [bp-010h], dx                    ; 89 56 f0
     11922    mov di, word [bp-00156h]                  ; 8b be aa fe
     11923    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
     11924    mov es, [bp-00ch]                         ; 8e 46 f4
     11925    add bx, word [bp-00eh]                    ; 03 5e f2
     11926    mov ah, byte [bp-002h]                    ; 8a 66 fe
     11927    mov byte [es:bx+001e9h], ah               ; 26 88 a7 e9 01
     11928    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     11929    imul dx, dx, strict byte 00018h           ; 6b d2 18
     11930    mov si, word [bp-00eh]                    ; 8b 76 f2
     11931    add si, dx                                ; 01 d6
    1188311932    mov word [es:si+01eh], 0ff05h             ; 26 c7 44 1e 05 ff
    11884     mov dl, byte [bp-002h]                    ; 8a 56 fe
    11885     mov byte [es:si+020h], dl                 ; 26 88 54 20
     11933    mov byte [es:si+020h], al                 ; 26 88 44 20
    1188611934    mov byte [es:si+021h], 000h               ; 26 c6 44 21 00
    1188711935    mov word [es:si+024h], 00200h             ; 26 c7 44 24 00 02
    1188811936    mov byte [es:si+023h], 001h               ; 26 c6 44 23 01
     11937    mov ax, word [bp-010h]                    ; 8b 46 f0
    1188911938    mov word [es:si+032h], ax                 ; 26 89 44 32
    11890     mov ax, word [bp-012h]                    ; 8b 46 ee
    11891     mov word [es:si+034h], ax                 ; 26 89 44 34
    11892     mov word [es:si+02ch], di                 ; 26 89 7c 2c
    11893     mov ax, word [bp-010h]                    ; 8b 46 f0
     11939    mov word [es:si+034h], di                 ; 26 89 7c 34
     11940    mov ax, word [bp-014h]                    ; 8b 46 ec
     11941    mov word [es:si+02ch], ax                 ; 26 89 44 2c
     11942    mov ax, word [bp-018h]                    ; 8b 46 e8
    1189411943    mov word [es:si+02eh], ax                 ; 26 89 44 2e
    11895     mov word [es:si+030h], cx                 ; 26 89 4c 30
    11896     mov al, byte [bp-006h]                    ; 8a 46 fa
     11944    mov ax, word [bp-01ah]                    ; 8b 46 e6
     11945    mov word [es:si+030h], ax                 ; 26 89 44 30
     11946    mov al, byte [bp-004h]                    ; 8a 46 fc
    1189711947    cmp AL, strict byte 001h                  ; 3c 01
    11898     jc short 082c8h                           ; 72 0c
    11899     jbe short 082d0h                          ; 76 12
     11948    jc short 082e3h                           ; 72 0c
     11949    jbe short 082ebh                          ; 76 12
    1190011950    cmp AL, strict byte 003h                  ; 3c 03
    11901     je short 082d8h                           ; 74 16
     11951    je short 082f3h                           ; 74 16
    1190211952    cmp AL, strict byte 002h                  ; 3c 02
    11903     je short 082d4h                           ; 74 0e
    11904     jmp short 0831ah                          ; eb 52
     11953    je short 082efh                           ; 74 0e
     11954    jmp short 0833ah                          ; eb 57
    1190511955    test al, al                               ; 84 c0
    11906     jne short 0831ah                          ; 75 4e
     11956    jne short 0833ah                          ; 75 53
    1190711957    mov DL, strict byte 040h                  ; b2 40
    11908     jmp short 082dah                          ; eb 0a
     11958    jmp short 082f5h                          ; eb 0a
    1190911959    mov DL, strict byte 048h                  ; b2 48
    11910     jmp short 082dah                          ; eb 06
     11960    jmp short 082f5h                          ; eb 06
    1191111961    mov DL, strict byte 050h                  ; b2 50
    11912     jmp short 082dah                          ; eb 02
     11962    jmp short 082f5h                          ; eb 02
    1191311963    mov DL, strict byte 058h                  ; b2 58
    1191411964    mov al, dl                                ; 88 d0
     
    1191611966    movzx bx, al                              ; 0f b6 d8
    1191711967    mov ax, bx                                ; 89 d8
    11918     call 0165ch                               ; e8 76 93
     11968    call 0165ch                               ; e8 5b 93
    1191911969    test al, al                               ; 84 c0
    11920     je short 0831ah                           ; 74 30
     11970    je short 0833ah                           ; 74 35
    1192111971    mov al, dl                                ; 88 d0
    1192211972    db  0feh, 0c0h
    1192311973    ; inc al                                    ; fe c0
    1192411974    xor ah, ah                                ; 30 e4
    11925     call 0165ch                               ; e8 69 93
    11926     movzx cx, al                              ; 0f b6 c8
     11975    call 0165ch                               ; e8 4e 93
     11976    xor ah, ah                                ; 30 e4
     11977    mov cx, ax                                ; 89 c1
    1192711978    sal cx, 008h                              ; c1 e1 08
    1192811979    movzx ax, dl                              ; 0f b6 c2
    11929     call 0165ch                               ; e8 5d 93
     11980    call 0165ch                               ; e8 41 93
    1193011981    xor ah, ah                                ; 30 e4
    1193111982    add ax, cx                                ; 01 c8
    11932     mov word [bp-010h], ax                    ; 89 46 f0
     11983    mov word [bp-01ch], ax                    ; 89 46 e4
    1193311984    mov al, dl                                ; 88 d0
    1193411985    add AL, strict byte 002h                  ; 04 02
    1193511986    xor ah, ah                                ; 30 e4
    11936     call 0165ch                               ; e8 4d 93
    11937     movzx di, al                              ; 0f b6 f8
     11987    call 0165ch                               ; e8 31 93
     11988    xor ah, ah                                ; 30 e4
     11989    mov word [bp-016h], ax                    ; 89 46 ea
    1193811990    mov ax, bx                                ; 89 d8
    11939     call 0165ch                               ; e8 45 93
    11940     movzx cx, al                              ; 0f b6 c8
    11941     movzx si, dh                              ; 0f b6 f6
    11942     imul si, si, strict byte 00018h           ; 6b f6 18
    11943     mov es, [bp-00ah]                         ; 8e 46 f6
    11944     add si, word [bp-00ch]                    ; 03 76 f4
    11945     mov word [es:si+026h], di                 ; 26 89 7c 26
    11946     mov ax, word [bp-010h]                    ; 8b 46 f0
     11991    call 0165ch                               ; e8 27 93
     11992    movzx dx, al                              ; 0f b6 d0
     11993    jmp short 08349h                          ; eb 0f
     11994    mov ax, word [bp-018h]                    ; 8b 46 e8
     11995    mov word [bp-01ch], ax                    ; 89 46 e4
     11996    mov ax, word [bp-014h]                    ; 8b 46 ec
     11997    mov word [bp-016h], ax                    ; 89 46 ea
     11998    mov dx, word [bp-01ah]                    ; 8b 56 e6
     11999    mov bx, 00cdah                            ; bb da 0c
     12000    mov cx, ds                                ; 8c d9
     12001    mov ax, strict word 00004h                ; b8 04 00
     12002    call 018aeh                               ; e8 5a 95
     12003    push di                                   ; 57
     12004    push word [bp-010h]                       ; ff 76 f0
     12005    push dx                                   ; 52
     12006    push word [bp-016h]                       ; ff 76 ea
     12007    push word [bp-01ch]                       ; ff 76 e4
     12008    push word [bp-01ah]                       ; ff 76 e6
     12009    push word [bp-014h]                       ; ff 76 ec
     12010    push word [bp-018h]                       ; ff 76 e8
     12011    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     12012    push ax                                   ; 50
     12013    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     12014    push ax                                   ; 50
     12015    push 00c0eh                               ; 68 0e 0c
     12016    push strict byte 00004h                   ; 6a 04
     12017    call 018e9h                               ; e8 6f 95
     12018    add sp, strict byte 00018h                ; 83 c4 18
     12019    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     12020    imul ax, ax, strict byte 00018h           ; 6b c0 18
     12021    les si, [bp-00eh]                         ; c4 76 f2
     12022    add si, ax                                ; 01 c6
     12023    mov ax, word [bp-016h]                    ; 8b 46 ea
     12024    mov word [es:si+026h], ax                 ; 26 89 44 26
     12025    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1194712026    mov word [es:si+028h], ax                 ; 26 89 44 28
    11948     mov word [es:si+02ah], cx                 ; 26 89 4c 2a
    11949     mov bx, word [bp-00ch]                    ; 8b 5e f4
     12027    mov word [es:si+02ah], dx                 ; 26 89 54 2a
     12028    mov bx, word [bp-00eh]                    ; 8b 5e f2
    1195012029    mov dl, byte [es:bx+0019eh]               ; 26 8a 97 9e 01
    11951     mov al, byte [bp-006h]                    ; 8a 46 fa
     12030    mov al, byte [bp-004h]                    ; 8a 46 fc
    1195212031    add AL, strict byte 00ch                  ; 04 0c
    1195312032    movzx bx, dl                              ; 0f b6 da
    11954     add bx, word [bp-00ch]                    ; 03 5e f4
     12033    add bx, word [bp-00eh]                    ; 03 5e f2
    1195512034    mov byte [es:bx+0019fh], al               ; 26 88 87 9f 01
    1195612035    db  0feh, 0c2h
    1195712036    ; inc dl                                    ; fe c2
    11958     mov bx, word [bp-00ch]                    ; 8b 5e f4
     12037    mov bx, word [bp-00eh]                    ; 8b 5e f2
    1195912038    mov byte [es:bx+0019eh], dl               ; 26 88 97 9e 01
    1196012039    mov dx, strict word 00075h                ; ba 75 00
    1196112040    mov ax, strict word 00040h                ; b8 40 00
    11962     call 01600h                               ; e8 a0 92
     12041    call 01600h                               ; e8 3a 92
    1196312042    mov dl, al                                ; 88 c2
    1196412043    db  0feh, 0c2h
     
    1196712046    mov dx, strict word 00075h                ; ba 75 00
    1196812047    mov ax, strict word 00040h                ; b8 40 00
    11969     call 0160eh                               ; e8 9e 92
    11970     jmp near 08408h                           ; e9 95 00
     12048    call 0160eh                               ; e8 38 92
     12049    jmp near 08471h                           ; e9 98 00
    1197112050    cmp dx, 0eb14h                            ; 81 fa 14 eb
    11972     jne near 08408h                           ; 0f 85 8d 00
    11973     cmp ax, 00101h                            ; 3d 01 01
    11974     jne near 08408h                           ; 0f 85 86 00
     12051    jne near 08471h                           ; 0f 85 90 00
     12052    cmp bx, 00101h                            ; 81 fb 01 01
     12053    jne near 08471h                           ; 0f 85 88 00
    1197512054    mov es, [bp-008h]                         ; 8e 46 f8
    1197612055    db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
    1197712056    ; mov dword [es:si], strict dword 000000000h ; 66 26 c7 04 00 00 00 00
    11978     lea dx, [bp-00218h]                       ; 8d 96 e8 fd
     12057    lea dx, [bp-00220h]                       ; 8d 96 e0 fd
    1197912058    mov word [es:si+004h], dx                 ; 26 89 54 04
    1198012059    mov [es:si+006h], ss                      ; 26 8c 54 06
     
    1198312062    mov bx, 000a1h                            ; bb a1 00
    1198412063    mov ax, si                                ; 89 f0
    11985     mov dx, word [bp-016h]                    ; 8b 56 ea
    11986     call 07950h                               ; e8 a3 f5
    11987     test byte [bp-00218h], 080h               ; f6 86 e8 fd 80
     12064    mov dx, word [bp-01eh]                    ; 8b 56 e2
     12065    call 07950h                               ; e8 3c f5
     12066    test byte [bp-00220h], 080h               ; f6 86 e0 fd 80
    1198812067    db  00fh, 095h, 0c0h
    1198912068    ; setne al                                  ; 0f 95 c0
    1199012069    xor ah, ah                                ; 30 e4
    11991     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    11992     mov es, [bp-016h]                         ; 8e 46 ea
     12070    mov dx, ax                                ; 89 c2
     12071    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
     12072    mov es, [bp-01eh]                         ; 8e 46 e2
    1199312073    add bx, si                                ; 01 f3
    11994     mov ah, byte [bp-004h]                    ; 8a 66 fc
    11995     mov byte [es:bx+001e9h], ah               ; 26 88 a7 e9 01
     12074    mov al, byte [bp-002h]                    ; 8a 46 fe
     12075    mov byte [es:bx+001e9h], al               ; 26 88 87 e9 01
    1199612076    movzx si, cl                              ; 0f b6 f1
    1199712077    imul si, si, strict byte 00018h           ; 6b f6 18
    1199812078    add si, 00122h                            ; 81 c6 22 01
    1199912079    mov word [es:si+01eh], 00505h             ; 26 c7 44 1e 05 05
    12000     mov byte [es:si+020h], al                 ; 26 88 44 20
     12080    mov byte [es:si+020h], dl                 ; 26 88 54 20
    1200112081    mov word [es:si+024h], 00800h             ; 26 c7 44 24 00 08
    12002     les bx, [bp-00ch]                         ; c4 5e f4
     12082    les bx, [bp-00eh]                         ; c4 5e f2
    1200312083    mov dl, byte [es:bx+001afh]               ; 26 8a 97 af 01
    12004     mov al, byte [bp-006h]                    ; 8a 46 fa
     12084    mov al, byte [bp-004h]                    ; 8a 46 fc
    1200512085    add AL, strict byte 00ch                  ; 04 0c
    1200612086    movzx bx, dl                              ; 0f b6 da
    12007     mov es, [bp-016h]                         ; 8e 46 ea
     12087    mov es, [bp-01eh]                         ; 8e 46 e2
    1200812088    add bx, 00122h                            ; 81 c3 22 01
    1200912089    mov byte [es:bx+001b0h], al               ; 26 88 87 b0 01
    1201012090    db  0feh, 0c2h
    1201112091    ; inc dl                                    ; fe c2
    12012     les bx, [bp-00ch]                         ; c4 5e f4
     12092    les bx, [bp-00eh]                         ; c4 5e f2
    1201312093    mov byte [es:bx+001afh], dl               ; 26 88 97 af 01
    12014     inc byte [bp-006h]                        ; fe 46 fa
    12015     mov al, byte [bp-006h]                    ; 8a 46 fa
    12016     les bx, [bp-00ch]                         ; c4 5e f4
     12094    inc byte [bp-004h]                        ; fe 46 fc
     12095    mov al, byte [bp-004h]                    ; 8a 46 fc
     12096    les bx, [bp-00eh]                         ; c4 5e f2
    1201712097    mov byte [es:bx+001edh], al               ; 26 88 87 ed 01
    1201812098    leave                                     ; c9
     
    1202112101    pop cx                                    ; 59
    1202212102    retn                                      ; c3
    12023 ahci_mem_alloc_:                             ; 0xf841b LB 0x40
     12103ahci_mem_alloc_:                             ; 0xf8484 LB 0x40
    1202412104    push bx                                   ; 53
    1202512105    push cx                                   ; 51
     
    1203112111    mov dx, 00413h                            ; ba 13 04
    1203212112    xor ax, ax                                ; 31 c0
    12033     call 0161ch                               ; e8 f1 91
     12113    call 0161ch                               ; e8 88 91
    1203412114    test ax, ax                               ; 85 c0
    12035     je short 08454h                           ; 74 25
     12115    je short 084bdh                           ; 74 25
    1203612116    dec ax                                    ; 48
    1203712117    mov bx, ax                                ; 89 c3
     
    1204012120    sal ax, 1                                 ; d1 e0
    1204112121    rcl dx, 1                                 ; d1 d2
    12042     loop 08437h                               ; e2 fa
     12122    loop 084a0h                               ; e2 fa
    1204312123    mov si, ax                                ; 89 c6
    1204412124    mov di, dx                                ; 89 d7
     
    1204612126    shr di, 1                                 ; d1 ef
    1204712127    rcr si, 1                                 ; d1 de
    12048     loop 08444h                               ; e2 fa
     12128    loop 084adh                               ; e2 fa
    1204912129    mov dx, 00413h                            ; ba 13 04
    1205012130    xor ax, ax                                ; 31 c0
    12051     call 0162ah                               ; e8 d8 91
     12131    call 0162ah                               ; e8 6f 91
    1205212132    mov ax, si                                ; 89 f0
    1205312133    pop bp                                    ; 5d
     
    1205812138    pop bx                                    ; 5b
    1205912139    retn                                      ; c3
    12060 ahci_hba_init_:                              ; 0xf845b LB 0x120
     12140ahci_hba_init_:                              ; 0xf84c4 LB 0x120
    1206112141    push bx                                   ; 53
    1206212142    push cx                                   ; 51
     
    1206812148    mov dx, strict word 0000eh                ; ba 0e 00
    1206912149    mov ax, strict word 00040h                ; b8 40 00
    12070     call 0161ch                               ; e8 ad 91
     12150    call 0161ch                               ; e8 44 91
    1207112151    mov bx, 00122h                            ; bb 22 01
    1207212152    mov word [bp-006h], ax                    ; 89 46 fa
     
    1208512165    shr eax, 010h                             ; 66 c1 e8 10
    1208612166    xchg dx, ax                               ; 92
    12087     call 0841bh                               ; e8 87 ff
     12167    call 08484h                               ; e8 87 ff
    1208812168    mov di, ax                                ; 89 c7
    1208912169    test ax, ax                               ; 85 c0
    12090     je near 0855dh                            ; 0f 84 c1 00
     12170    je near 085c6h                            ; 0f 84 c1 00
    1209112171    mov es, [bp-006h]                         ; 8e 46 fa
    1209212172    mov word [es:bx+001eeh], di               ; 26 89 bf ee 01
     
    1210212182    mov dx, strict word 00004h                ; ba 04 00
    1210312183    mov ax, si                                ; 89 f0
    12104     call 0778dh                               ; e8 bd f2
     12184    call 0778dh                               ; e8 54 f2
    1210512185    mov ax, strict word 00004h                ; b8 04 00
    1210612186    xor cx, cx                                ; 31 c9
     
    1211912199    xchg dx, ax                               ; 92
    1212012200    test AL, strict byte 001h                 ; a8 01
    12121     jne short 084d0h                          ; 75 de
     12201    jne short 08539h                          ; 75 de
    1212212202    xor ax, ax                                ; 31 c0
    1212312203    xor cx, cx                                ; 31 c9
     
    1213712217    mov bx, strict word 0001fh                ; bb 1f 00
    1213812218    xor cx, cx                                ; 31 c9
    12139     call 07847h                               ; e8 31 f3
     12219    call 07847h                               ; e8 c8 f2
    1214012220    db  0feh, 0c0h
    1214112221    ; inc al                                    ; fe c0
    1214212222    mov byte [bp-004h], al                    ; 88 46 fc
    1214312223    mov byte [bp-002h], 000h                  ; c6 46 fe 00
    12144     jmp short 0852ah                          ; eb 09
     12224    jmp short 08593h                          ; eb 09
    1214512225    inc byte [bp-002h]                        ; fe 46 fe
    1214612226    cmp byte [bp-002h], 020h                  ; 80 7e fe 20
    12147     jnc short 0855bh                          ; 73 31
     12227    jnc short 085c4h                          ; 73 31
    1214812228    movzx cx, byte [bp-002h]                  ; 0f b6 4e fe
    1214912229    mov ax, strict word 00001h                ; b8 01 00
    1215012230    xor dx, dx                                ; 31 d2
    12151     jcxz 0853bh                               ; e3 06
     12231    jcxz 085a4h                               ; e3 06
    1215212232    sal ax, 1                                 ; d1 e0
    1215312233    rcl dx, 1                                 ; d1 d2
    12154     loop 08535h                               ; e2 fa
     12234    loop 0859eh                               ; e2 fa
    1215512235    mov bx, ax                                ; 89 c3
    1215612236    mov cx, dx                                ; 89 d1
    1215712237    mov dx, strict word 0000ch                ; ba 0c 00
    1215812238    mov ax, si                                ; 89 f0
    12159     call 07811h                               ; e8 ca f2
     12239    call 07811h                               ; e8 61 f2
    1216012240    test al, al                               ; 84 c0
    12161     je short 08521h                           ; 74 d6
     12241    je short 0858ah                           ; 74 d6
    1216212242    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    1216312243    xor ax, ax                                ; 31 c0
    1216412244    mov dx, di                                ; 89 fa
    12165     call 080b3h                               ; e8 5d fb
     12245    call 080c1h                               ; e8 02 fb
    1216612246    dec byte [bp-004h]                        ; fe 4e fc
    12167     jne short 08521h                          ; 75 c6
     12247    jne short 0858ah                          ; 75 c6
    1216812248    xor ax, ax                                ; 31 c0
    1216912249    leave                                     ; c9
     
    1217712257    add AL, strict byte 003h                  ; 04 03
    1217812258    add al, byte [bx+di]                      ; 02 01
    12179     add byte [bx+si-07ah], cl                 ; 00 48 86
    12180     xchg byte [es:si], ch                     ; 26 86 2c
    12181     xchg byte [bp+si], dh                     ; 86 32
    12182     xchg byte [bx+si], bh                     ; 86 38
    12183     xchg byte [04486h], bh                    ; 86 3e 86 44
    12184     xchg byte [bx+si-07ah], cl                ; 86 48 86
    12185 _ahci_init:                                  ; 0xf857b LB 0xf9
     12259    add byte [bx+di-0707ah], dh               ; 00 b1 86 8f
     12260    xchg byte [di-0647ah], dl                 ; 86 95 86 9b
     12261    xchg byte [bx+di-0587ah], ah              ; 86 a1 86 a7
     12262    xchg byte [di-04e7ah], ch                 ; 86 ad 86 b1
     12263    db  086h
     12264_ahci_init:                                  ; 0xf85e4 LB 0xf9
    1218612265    push si                                   ; 56
    1218712266    push di                                   ; 57
     
    1218912268    mov ax, 00601h                            ; b8 01 06
    1219012269    mov dx, strict word 00001h                ; ba 01 00
    12191     call 08942h                               ; e8 b8 03
     12270    call 08ad6h                               ; e8 e3 04
    1219212271    mov dx, ax                                ; 89 c2
    1219312272    cmp ax, strict word 0ffffh                ; 3d ff ff
    12194     je near 08670h                            ; 0f 84 dd 00
     12273    je near 086d9h                            ; 0f 84 dd 00
    1219512274    xor al, al                                ; 30 c0
    1219612275    shr ax, 008h                              ; c1 e8 08
     
    1220012279    xor ah, ah                                ; 30 e4
    1220112280    mov bx, strict word 00034h                ; bb 34 00
    12202     call 0896ah                               ; e8 c2 03
     12281    call 08afeh                               ; e8 ed 04
    1220312282    mov cl, al                                ; 88 c1
    1220412283    test cl, cl                               ; 84 c9
    12205     je short 085d1h                           ; 74 23
     12284    je short 0863ah                           ; 74 23
    1220612285    movzx bx, cl                              ; 0f b6 d9
    1220712286    movzx di, byte [bp-004h]                  ; 0f b6 7e fc
     
    1220912288    mov dx, di                                ; 89 fa
    1221012289    mov ax, si                                ; 89 f0
    12211     call 0896ah                               ; e8 aa 03
     12290    call 08afeh                               ; e8 d5 04
    1221212291    cmp AL, strict byte 012h                  ; 3c 12
    12213     je short 085d1h                           ; 74 0d
     12292    je short 0863ah                           ; 74 0d
    1221412293    mov al, cl                                ; 88 c8
    1221512294    db  0feh, 0c0h
     
    1221812297    mov dx, di                                ; 89 fa
    1221912298    mov ax, si                                ; 89 f0
    12220     jmp short 085a5h                          ; eb d4
     12299    jmp short 0860eh                          ; eb d4
    1222112300    test cl, cl                               ; 84 c9
    12222     je near 08670h                            ; 0f 84 99 00
     12301    je near 086d9h                            ; 0f 84 99 00
    1222312302    add cl, 002h                              ; 80 c1 02
    1222412303    movzx bx, cl                              ; 0f b6 d9
     
    1222712306    mov dx, di                                ; 89 fa
    1222812307    mov ax, si                                ; 89 f0
    12229     call 0896ah                               ; e8 7e 03
     12308    call 08afeh                               ; e8 a9 04
    1223012309    cmp AL, strict byte 010h                  ; 3c 10
    12231     jne near 08670h                           ; 0f 85 7e 00
     12310    jne near 086d9h                           ; 0f 85 7e 00
    1223212311    mov byte [bp-002h], 000h                  ; c6 46 fe 00
    1223312312    mov al, cl                                ; 88 c8
     
    1223612315    mov dx, di                                ; 89 fa
    1223712316    mov ax, si                                ; 89 f0
    12238     call 0898bh                               ; e8 87 03
     12317    call 08b1fh                               ; e8 b2 04
    1223912318    mov dx, ax                                ; 89 c2
    1224012319    and ax, strict word 0000fh                ; 25 0f 00
    1224112320    sub ax, strict word 00004h                ; 2d 04 00
    1224212321    cmp ax, strict word 0000bh                ; 3d 0b 00
    12243     jnbe short 08648h                         ; 77 37
     12322    jnbe short 086b1h                         ; 77 37
    1224412323    push CS                                   ; 0e
    1224512324    pop ES                                    ; 07
    1224612325    mov cx, strict word 00008h                ; b9 08 00
    12247     mov di, 08564h                            ; bf 64 85
     12326    mov di, 085cdh                            ; bf cd 85
    1224812327    repne scasb                               ; f2 ae
    1224912328    sal cx, 1                                 ; d1 e1
    1225012329    mov di, cx                                ; 89 cf
    12251     mov ax, word [cs:di-07a95h]               ; 2e 8b 85 6b 85
     12330    mov ax, word [cs:di-07a2ch]               ; 2e 8b 85 d4 85
    1225212331    jmp ax                                    ; ff e0
    1225312332    mov byte [bp-002h], 010h                  ; c6 46 fe 10
    12254     jmp short 08648h                          ; eb 1c
     12333    jmp short 086b1h                          ; eb 1c
    1225512334    mov byte [bp-002h], 014h                  ; c6 46 fe 14
    12256     jmp short 08648h                          ; eb 16
     12335    jmp short 086b1h                          ; eb 16
    1225712336    mov byte [bp-002h], 018h                  ; c6 46 fe 18
    12258     jmp short 08648h                          ; eb 10
     12337    jmp short 086b1h                          ; eb 10
    1225912338    mov byte [bp-002h], 01ch                  ; c6 46 fe 1c
    12260     jmp short 08648h                          ; eb 0a
     12339    jmp short 086b1h                          ; eb 0a
    1226112340    mov byte [bp-002h], 020h                  ; c6 46 fe 20
    12262     jmp short 08648h                          ; eb 04
     12341    jmp short 086b1h                          ; eb 04
    1226312342    mov byte [bp-002h], 024h                  ; c6 46 fe 24
    1226412343    mov si, dx                                ; 89 d6
     
    1226712346    mov al, byte [bp-002h]                    ; 8a 46 fe
    1226812347    test al, al                               ; 84 c0
    12269     je short 08670h                           ; 74 19
     12348    je short 086d9h                           ; 74 19
    1227012349    movzx bx, al                              ; 0f b6 d8
    1227112350    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    1227212351    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    12273     call 089aah                               ; e8 45 03
     12352    call 08b3eh                               ; e8 70 04
    1227412353    test AL, strict byte 001h                 ; a8 01
    12275     je short 08670h                           ; 74 07
     12354    je short 086d9h                           ; 74 07
    1227612355    and AL, strict byte 0f0h                  ; 24 f0
    1227712356    add ax, si                                ; 01 f0
    12278     call 0845bh                               ; e8 eb fd
     12357    call 084c4h                               ; e8 eb fd
    1227912358    leave                                     ; c9
    1228012359    pop di                                    ; 5f
    1228112360    pop si                                    ; 5e
    1228212361    retn                                      ; c3
    12283 pci16_select_reg_:                           ; 0xf8674 LB 0x21
     12362apm_out_str_:                                ; 0xf86dd LB 0x36
     12363    push bx                                   ; 53
     12364    push bp                                   ; 55
     12365    mov bp, sp                                ; 89 e5
     12366    mov bx, ax                                ; 89 c3
     12367    cmp byte [bx], 000h                       ; 80 3f 00
     12368    je short 086f2h                           ; 74 0a
     12369    mov al, byte [bx]                         ; 8a 07
     12370    out DX, AL                                ; ee
     12371    inc bx                                    ; 43
     12372    mov al, byte [bx]                         ; 8a 07
     12373    db  00ah, 0c0h
     12374    ; or al, al                                 ; 0a c0
     12375    jne short 086eah                          ; 75 f8
     12376    pop bp                                    ; 5d
     12377    pop bx                                    ; 5b
     12378    retn                                      ; c3
     12379    xchg word [ss:di], ax                     ; 36 87 05
     12380    mov byte [bx+si-079h], cl                 ; 88 48 87
     12381    arpl word [bx-077fbh], ax                 ; 63 87 05 88
     12382    mov es, [bx-077fbh]                       ; 8e 87 05 88
     12383    xchg bx, ax                               ; 93
     12384    xchg dx, bx                               ; 87 da
     12385    xchg dx, bx                               ; 87 da
     12386    xchg dx, bx                               ; 87 da
     12387    xchg bp, dx                               ; 87 d5
     12388    xchg dx, bx                               ; 87 da
     12389    xchg dx, bx                               ; 87 da
     12390    xchg bp, cx                               ; 87 cd
     12391    db  087h
     12392_apm_function:                               ; 0xf8713 LB 0xf5
     12393    push si                                   ; 56
     12394    push bp                                   ; 55
     12395    mov bp, sp                                ; 89 e5
     12396    and byte [bp+01ah], 0feh                  ; 80 66 1a fe
     12397    mov ax, word [bp+014h]                    ; 8b 46 14
     12398    xor ah, ah                                ; 30 e4
     12399    cmp ax, strict word 0000eh                ; 3d 0e 00
     12400    jnbe near 087dah                          ; 0f 87 b3 00
     12401    mov bx, ax                                ; 89 c3
     12402    add bx, ax                                ; 01 c3
     12403    mov dx, word [bp+01ah]                    ; 8b 56 1a
     12404    or dl, 001h                               ; 80 ca 01
     12405    jmp word [cs:bx-0790bh]                   ; 2e ff a7 f5 86
     12406    mov word [bp+014h], 00102h                ; c7 46 14 02 01
     12407    mov word [bp+00eh], 0504dh                ; c7 46 0e 4d 50
     12408    mov word [bp+012h], strict word 00003h    ; c7 46 12 03 00
     12409    pop bp                                    ; 5d
     12410    pop si                                    ; 5e
     12411    retn                                      ; c3
     12412    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
     12413    mov word [bp+00eh], 08d24h                ; c7 46 0e 24 8d
     12414    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
     12415    mov ax, strict word 0fff0h                ; b8 f0 ff
     12416    mov word [bp+008h], ax                    ; 89 46 08
     12417    mov word [bp+006h], ax                    ; 89 46 06
     12418    pop bp                                    ; 5d
     12419    pop si                                    ; 5e
     12420    retn                                      ; c3
     12421    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
     12422    mov word [bp+00eh], 0da40h                ; c7 46 0e 40 da
     12423    mov ax, 0f000h                            ; b8 00 f0
     12424    mov word [bp+012h], ax                    ; 89 46 12
     12425    mov word [bp+010h], ax                    ; 89 46 10
     12426    mov ax, strict word 0fff0h                ; b8 f0 ff
     12427    mov word [bp+008h], ax                    ; 89 46 08
     12428    mov word [bp+006h], ax                    ; 89 46 06
     12429    xor bx, bx                                ; 31 db
     12430    sal ebx, 010h                             ; 66 c1 e3 10
     12431    mov si, ax                                ; 89 c6
     12432    sal esi, 010h                             ; 66 c1 e6 10
     12433    pop bp                                    ; 5d
     12434    pop si                                    ; 5e
     12435    retn                                      ; c3
     12436    sti                                       ; fb
     12437    hlt                                       ; f4
     12438    pop bp                                    ; 5d
     12439    pop si                                    ; 5e
     12440    retn                                      ; c3
     12441    cmp word [bp+012h], strict byte 00003h    ; 83 7e 12 03
     12442    je short 087b9h                           ; 74 20
     12443    cmp word [bp+012h], strict byte 00002h    ; 83 7e 12 02
     12444    je short 087b1h                           ; 74 12
     12445    cmp word [bp+012h], strict byte 00001h    ; 83 7e 12 01
     12446    jne short 087c1h                          ; 75 1c
     12447    mov dx, 08900h                            ; ba 00 89
     12448    mov ax, 00c46h                            ; b8 46 0c
     12449    call 086ddh                               ; e8 2f ff
     12450    pop bp                                    ; 5d
     12451    pop si                                    ; 5e
     12452    retn                                      ; c3
     12453    mov dx, 08900h                            ; ba 00 89
     12454    mov ax, 00c4eh                            ; b8 4e 0c
     12455    jmp short 087abh                          ; eb f2
     12456    mov dx, 08900h                            ; ba 00 89
     12457    mov ax, 00c56h                            ; b8 56 0c
     12458    jmp short 087abh                          ; eb ea
     12459    or ah, 00ah                               ; 80 cc 0a
     12460    mov word [bp+014h], ax                    ; 89 46 14
     12461    mov word [bp+01ah], dx                    ; 89 56 1a
     12462    pop bp                                    ; 5d
     12463    pop si                                    ; 5e
     12464    retn                                      ; c3
     12465    mov word [bp+014h], 00102h                ; c7 46 14 02 01
     12466    pop bp                                    ; 5d
     12467    pop si                                    ; 5e
     12468    retn                                      ; c3
     12469    or ah, 080h                               ; 80 cc 80
     12470    jmp short 087c4h                          ; eb ea
     12471    mov bx, 00cdah                            ; bb da 0c
     12472    mov cx, ds                                ; 8c d9
     12473    mov ax, strict word 00004h                ; b8 04 00
     12474    call 018aeh                               ; e8 c9 90
     12475    push word [bp+00eh]                       ; ff 76 0e
     12476    push word [bp+014h]                       ; ff 76 14
     12477    push 00c5fh                               ; 68 5f 0c
     12478    push strict byte 00004h                   ; 6a 04
     12479    call 018e9h                               ; e8 f6 90
     12480    add sp, strict byte 00008h                ; 83 c4 08
     12481    mov ax, word [bp+014h]                    ; 8b 46 14
     12482    xor ah, ah                                ; 30 e4
     12483    or ah, 00ch                               ; 80 cc 0c
     12484    mov word [bp+014h], ax                    ; 89 46 14
     12485    or byte [bp+01ah], 001h                   ; 80 4e 1a 01
     12486    pop bp                                    ; 5d
     12487    pop si                                    ; 5e
     12488    retn                                      ; c3
     12489pci16_select_reg_:                           ; 0xf8808 LB 0x21
    1228412490    push bx                                   ; 53
    1228512491    push bp                                   ; 55
     
    1229712503    pop bx                                    ; 5b
    1229812504    retn                                      ; c3
    12299 pci16_find_device_:                          ; 0xf8695 LB 0xf2
     12505pci16_find_device_:                          ; 0xf8829 LB 0xf2
    1230012506    push si                                   ; 56
    1230112507    push di                                   ; 57
     
    1230912515    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1231012516    test bl, 007h                             ; f6 c3 07
    12311     jne short 086dbh                          ; 75 2d
     12517    jne short 0886fh                          ; 75 2d
    1231212518    mov dx, strict word 0000eh                ; ba 0e 00
    1231312519    mov ax, bx                                ; 89 d8
    12314     call 08674h                               ; e8 be ff
     12520    call 08808h                               ; e8 be ff
    1231512521    mov dx, 00cfeh                            ; ba fe 0c
    1231612522    in AL, DX                                 ; ec
     
    1231912525    mov byte [bp-002h], al                    ; 88 46 fe
    1232012526    cmp AL, strict byte 0ffh                  ; 3c ff
    12321     jne short 086c9h                          ; 75 06
     12527    jne short 0885dh                          ; 75 06
    1232212528    add bx, strict byte 00008h                ; 83 c3 08
    12323     jmp near 0875ch                           ; e9 93 00
     12529    jmp near 088f0h                           ; e9 93 00
    1232412530    test byte [bp-002h], 080h                 ; f6 46 fe 80
    12325     je short 086d6h                           ; 74 07
     12531    je short 0886ah                           ; 74 07
    1232612532    mov word [bp-006h], strict word 00001h    ; c7 46 fa 01 00
    12327     jmp short 086dbh                          ; eb 05
     12533    jmp short 0886fh                          ; eb 05
    1232812534    mov word [bp-006h], strict word 00008h    ; c7 46 fa 08 00
    1232912535    mov al, byte [bp-002h]                    ; 8a 46 fe
    1233012536    and AL, strict byte 007h                  ; 24 07
    1233112537    cmp AL, strict byte 001h                  ; 3c 01
    12332     jne short 08703h                          ; 75 1f
     12538    jne short 08897h                          ; 75 1f
    1233312539    mov ax, bx                                ; 89 d8
    1233412540    shr ax, 008h                              ; c1 e8 08
    1233512541    test ax, ax                               ; 85 c0
    12336     jne short 08703h                          ; 75 16
     12542    jne short 08897h                          ; 75 16
    1233712543    mov dx, strict word 0001ah                ; ba 1a 00
    1233812544    mov ax, bx                                ; 89 d8
    12339     call 08674h                               ; e8 7f ff
     12545    call 08808h                               ; e8 7f ff
    1234012546    mov dx, 00cfeh                            ; ba fe 0c
    1234112547    in AL, DX                                 ; ec
     
    1234312549    ; sub ah, ah                                ; 2a e4
    1234412550    cmp al, byte [bp-004h]                    ; 3a 46 fc
    12345     jbe short 08703h                          ; 76 03
     12551    jbe short 08897h                          ; 76 03
    1234612552    mov byte [bp-004h], al                    ; 88 46 fc
    1234712553    test di, di                               ; 85 ff
    12348     je short 0870ch                           ; 74 05
     12554    je short 088a0h                           ; 74 05
    1234912555    mov dx, strict word 00008h                ; ba 08 00
    12350     jmp short 0870eh                          ; eb 02
     12556    jmp short 088a2h                          ; eb 02
    1235112557    xor dx, dx                                ; 31 d2
    1235212558    mov ax, bx                                ; 89 d8
    12353     call 08674h                               ; e8 61 ff
     12559    call 08808h                               ; e8 61 ff
    1235412560    mov dx, 00cfch                            ; ba fc 0c
    1235512561    in eax, DX                                ; 66 ed
     
    1236212568    mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
    1236312569    test di, di                               ; 85 ff
    12364     je short 0873dh                           ; 74 0f
     12570    je short 088d1h                           ; 74 0f
    1236512571    mov cx, strict word 00008h                ; b9 08 00
    1236612572    shr dx, 1                                 ; d1 ea
    1236712573    rcr ax, 1                                 ; d1 d8
    12368     loop 08731h                               ; e2 fa
     12574    loop 088c5h                               ; e2 fa
    1236912575    mov word [bp-00ah], ax                    ; 89 46 f6
    1237012576    mov word [bp-008h], dx                    ; 89 56 f8
    1237112577    mov ax, word [bp-008h]                    ; 8b 46 f8
    1237212578    cmp ax, word [bp-010h]                    ; 3b 46 f0
    12373     jne short 0874dh                          ; 75 08
     12579    jne short 088e1h                          ; 75 08
    1237412580    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1237512581    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    12376     je short 08753h                           ; 74 06
     12582    je short 088e7h                           ; 74 06
    1237712583    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    12378     je short 08759h                           ; 74 06
     12584    je short 088edh                           ; 74 06
    1237912585    dec si                                    ; 4e
    1238012586    cmp si, strict byte 0ffffh                ; 83 fe ff
    12381     je short 0876bh                           ; 74 12
     12587    je short 088ffh                           ; 74 12
    1238212588    add bx, word [bp-006h]                    ; 03 5e fa
    1238312589    mov dx, bx                                ; 89 da
     
    1238512591    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    1238612592    cmp dx, ax                                ; 39 c2
    12387     jbe near 086a9h                           ; 0f 86 3e ff
     12593    jbe near 0883dh                           ; 0f 86 3e ff
    1238812594    cmp si, strict byte 0ffffh                ; 83 fe ff
    12389     jne short 08774h                          ; 75 04
     12595    jne short 08908h                          ; 75 04
    1239012596    mov ax, bx                                ; 89 d8
    12391     jmp short 08777h                          ; eb 03
     12597    jmp short 0890bh                          ; eb 03
    1239212598    mov ax, strict word 0ffffh                ; b8 ff ff
    1239312599    leave                                     ; c9
     
    1239512601    pop si                                    ; 5e
    1239612602    retn                                      ; c3
    12397     mov byte [ecx-056776b78h], al             ; 67 88 81 88 94 88 a9
    12398     mov byte [si-03178h], bh                  ; 88 bc 88 ce
    12399     db  088h
    12400 _pci16_function:                             ; 0xf8787 LB 0x1bb
     12603    sti                                       ; fb
     12604    mov word [di], dx                         ; 89 15
     12605    mov ch, byte [bx+si]                      ; 8a 28
     12606    mov bh, byte [di]                         ; 8a 3d
     12607    mov dl, byte [bx+si-076h]                 ; 8a 50 8a
     12608    db  062h
     12609    db  08ah
     12610_pci16_function:                             ; 0xf891b LB 0x1bb
    1240112611    push si                                   ; 56
    1240212612    push di                                   ; 57
     
    1241012620    xor ah, ah                                ; 30 e4
    1241112621    cmp bx, strict byte 00003h                ; 83 fb 03
    12412     jc short 087beh                           ; 72 1a
    12413     jbe short 08816h                          ; 76 70
     12622    jc short 08952h                           ; 72 1a
     12623    jbe short 089aah                          ; 76 70
    1241412624    cmp bx, strict byte 0000eh                ; 83 fb 0e
    12415     je near 088e2h                            ; 0f 84 35 01
     12625    je near 08a76h                            ; 0f 84 35 01
    1241612626    cmp bx, strict byte 00008h                ; 83 fb 08
    12417     jc near 08911h                            ; 0f 82 5d 01
     12627    jc near 08aa5h                            ; 0f 82 5d 01
    1241812628    cmp bx, strict byte 0000dh                ; 83 fb 0d
    12419     jbe near 0883bh                           ; 0f 86 80 00
    12420     jmp near 08911h                           ; e9 53 01
     12629    jbe near 089cfh                           ; 0f 86 80 00
     12630    jmp near 08aa5h                           ; e9 53 01
    1242112631    cmp bx, strict byte 00002h                ; 83 fb 02
    12422     je short 087e6h                           ; 74 23
     12632    je short 0897ah                           ; 74 23
    1242312633    cmp bx, strict byte 00001h                ; 83 fb 01
    12424     jne near 08911h                           ; 0f 85 47 01
     12634    jne near 08aa5h                           ; 0f 85 47 01
    1242512635    mov word [bp+024h], strict word 00001h    ; c7 46 24 01 00
    1242612636    mov word [bp+018h], 00210h                ; c7 46 18 10 02
     
    1242812638    mov word [bp+01ch], 04350h                ; c7 46 1c 50 43
    1242912639    mov word [bp+01eh], 02049h                ; c7 46 1e 49 20
    12430     jmp near 0893eh                           ; e9 58 01
     12640    jmp near 08ad2h                           ; e9 58 01
    1243112641    cmp word [bp+01ch], strict byte 0ffffh    ; 83 7e 1c ff
    12432     jne short 087f2h                          ; 75 06
     12642    jne short 08986h                          ; 75 06
    1243312643    or ah, 083h                               ; 80 cc 83
    12434     jmp near 08937h                           ; e9 45 01
     12644    jmp near 08acbh                           ; e9 45 01
    1243512645    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    1243612646    mov dx, word [bp+020h]                    ; 8b 56 20
    1243712647    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1243812648    xor cx, cx                                ; 31 c9
    12439     call 08695h                               ; e8 95 fe
     12649    call 08829h                               ; e8 95 fe
    1244012650    cmp ax, strict word 0ffffh                ; 3d ff ff
    12441     jne short 08810h                          ; 75 0b
     12651    jne short 089a4h                          ; 75 0b
    1244212652    mov ax, word [bp+024h]                    ; 8b 46 24
    1244312653    xor ah, ah                                ; 30 e4
    1244412654    or ah, 086h                               ; 80 cc 86
    12445     jmp near 08937h                           ; e9 27 01
     12655    jmp near 08acbh                           ; e9 27 01
    1244612656    mov word [bp+018h], ax                    ; 89 46 18
    12447     jmp near 0893eh                           ; e9 28 01
     12657    jmp near 08ad2h                           ; e9 28 01
    1244812658    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    1244912659    mov ax, word [bp+020h]                    ; 8b 46 20
    1245012660    mov dx, word [bp+022h]                    ; 8b 56 22
    1245112661    mov cx, strict word 00001h                ; b9 01 00
    12452     call 08695h                               ; e8 70 fe
     12662    call 08829h                               ; e8 70 fe
    1245312663    cmp ax, strict word 0ffffh                ; 3d ff ff
    12454     jne short 08835h                          ; 75 0b
     12664    jne short 089c9h                          ; 75 0b
    1245512665    mov ax, word [bp+024h]                    ; 8b 46 24
    1245612666    xor ah, ah                                ; 30 e4
    1245712667    or ah, 086h                               ; 80 cc 86
    12458     jmp near 08937h                           ; e9 02 01
     12668    jmp near 08acbh                           ; e9 02 01
    1245912669    mov word [bp+018h], ax                    ; 89 46 18
    12460     jmp near 0893eh                           ; e9 03 01
     12670    jmp near 08ad2h                           ; e9 03 01
    1246112671    cmp word [bp+008h], 00100h                ; 81 7e 08 00 01
    12462     jc short 08848h                           ; 72 06
     12672    jc short 089dch                           ; 72 06
    1246312673    or ah, 087h                               ; 80 cc 87
    12464     jmp near 08937h                           ; e9 ef 00
     12674    jmp near 08acbh                           ; e9 ef 00
    1246512675    mov dx, word [bp+008h]                    ; 8b 56 08
    1246612676    mov ax, word [bp+018h]                    ; 8b 46 18
    12467     call 08674h                               ; e8 23 fe
     12677    call 08808h                               ; e8 23 fe
    1246812678    mov bx, word [bp+024h]                    ; 8b 5e 24
    1246912679    xor bh, bh                                ; 30 ff
    1247012680    sub bx, strict byte 00008h                ; 83 eb 08
    1247112681    cmp bx, strict byte 00005h                ; 83 fb 05
    12472     jnbe near 0893eh                          ; 0f 87 de 00
     12682    jnbe near 08ad2h                          ; 0f 87 de 00
    1247312683    add bx, bx                                ; 01 db
    12474     jmp word [cs:bx-07885h]                   ; 2e ff a7 7b 87
     12684    jmp word [cs:bx-076f1h]                   ; 2e ff a7 0f 89
    1247512685    mov bx, word [bp+020h]                    ; 8b 5e 20
    1247612686    xor bl, bl                                ; 30 db
     
    1248312693    or bx, ax                                 ; 09 c3
    1248412694    mov word [bp+020h], bx                    ; 89 5e 20
    12485     jmp near 0893eh                           ; e9 bd 00
     12695    jmp near 08ad2h                           ; e9 bd 00
    1248612696    mov dx, word [bp+008h]                    ; 8b 56 08
    1248712697    xor dh, dh                                ; 30 f6
     
    1249012700    in ax, DX                                 ; ed
    1249112701    mov word [bp+020h], ax                    ; 89 46 20
    12492     jmp near 0893eh                           ; e9 aa 00
     12702    jmp near 08ad2h                           ; e9 aa 00
    1249312703    mov dx, 00cfch                            ; ba fc 0c
    1249412704    in eax, DX                                ; 66 ed
     
    1249912709    mov word [bp+020h], ax                    ; 89 46 20
    1250012710    mov word [bp+022h], dx                    ; 89 56 22
    12501     jmp near 0893eh                           ; e9 95 00
     12711    jmp near 08ad2h                           ; e9 95 00
    1250212712    mov ax, word [bp+020h]                    ; 8b 46 20
    1250312713    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1250612716    add dx, 00cfch                            ; 81 c2 fc 0c
    1250712717    out DX, AL                                ; ee
    12508     jmp near 0893eh                           ; e9 82 00
     12718    jmp near 08ad2h                           ; e9 82 00
    1250912719    mov ax, word [bp+020h]                    ; 8b 46 20
    1251012720    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1251312723    add dx, 00cfch                            ; 81 c2 fc 0c
    1251412724    out DX, ax                                ; ef
    12515     jmp short 0893eh                          ; eb 70
     12725    jmp short 08ad2h                          ; eb 70
    1251612726    mov ax, word [bp+020h]                    ; 8b 46 20
    1251712727    mov cx, word [bp+022h]                    ; 8b 4e 22
     
    1252212732    ; mov ax, cx                                ; 8b c1
    1252312733    out DX, eax                               ; 66 ef
    12524     jmp short 0893eh                          ; eb 5c
     12734    jmp short 08ad2h                          ; eb 5c
    1252512735    mov bx, word [bp+008h]                    ; 8b 5e 08
    1252612736    mov es, [bp+028h]                         ; 8e 46 28
    1252712737    mov cx, word [word 00000h]                ; 8b 0e 00 00
    1252812738    cmp cx, word [es:bx]                      ; 26 3b 0f
    12529     jbe short 088fbh                          ; 76 0a
     12739    jbe short 08a8fh                          ; 76 0a
    1253012740    mov ax, word [bp+024h]                    ; 8b 46 24
    1253112741    xor ah, ah                                ; 30 e4
    1253212742    or ah, 089h                               ; 80 cc 89
    12533     jmp short 08937h                          ; eb 3c
     12743    jmp short 08acbh                          ; eb 3c
    1253412744    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1253512745    mov si, 0f2c0h                            ; be c0 f2
     
    1254012750    pop DS                                    ; 1f
    1254112751    mov word [bp+018h], 00a00h                ; c7 46 18 00 0a
    12542     jmp short 0893eh                          ; eb 2d
    12543     mov bx, 00c52h                            ; bb 52 0c
     12752    jmp short 08ad2h                          ; eb 2d
     12753    mov bx, 00cdah                            ; bb da 0c
    1254412754    mov cx, ds                                ; 8c d9
    1254512755    mov ax, strict word 00004h                ; b8 04 00
    12546     call 018aeh                               ; e8 92 8f
     12756    call 018aeh                               ; e8 fe 8d
    1254712757    mov ax, word [bp+018h]                    ; 8b 46 18
    1254812758    push ax                                   ; 50
    1254912759    mov ax, word [bp+024h]                    ; 8b 46 24
    1255012760    push ax                                   ; 50
    12551     push 00c0eh                               ; 68 0e 0c
     12761    push 00c92h                               ; 68 92 0c
    1255212762    push strict byte 00004h                   ; 6a 04
    12553     call 018e9h                               ; e8 bd 8f
     12763    call 018e9h                               ; e8 29 8e
    1255412764    add sp, strict byte 00008h                ; 83 c4 08
    1255512765    mov ax, word [bp+024h]                    ; 8b 46 24
     
    1256212772    pop si                                    ; 5e
    1256312773    retn                                      ; c3
    12564 pci_find_classcode_:                         ; 0xf8942 LB 0x28
     12774pci_find_classcode_:                         ; 0xf8ad6 LB 0x28
    1256512775    push bx                                   ; 53
    1256612776    push cx                                   ; 51
     
    1257712787    int 01ah                                  ; cd 1a
    1257812788    cmp ah, 000h                              ; 80 fc 00
    12579     je near 08963h                            ; 0f 84 03 00
     12789    je near 08af7h                            ; 0f 84 03 00
    1258012790    mov bx, strict word 0ffffh                ; bb ff ff
    1258112791    mov ax, bx                                ; 89 d8
     
    1258512795    pop bx                                    ; 5b
    1258612796    retn                                      ; c3
    12587 pci_read_config_byte_:                       ; 0xf896a LB 0x21
     12797pci_read_config_byte_:                       ; 0xf8afe LB 0x21
    1258812798    push cx                                   ; 51
    1258912799    push di                                   ; 57
     
    1260312813    pop cx                                    ; 59
    1260412814    retn                                      ; c3
    12605 pci_read_config_word_:                       ; 0xf898b LB 0x1f
     12815pci_read_config_word_:                       ; 0xf8b1f LB 0x1f
    1260612816    push cx                                   ; 51
    1260712817    push di                                   ; 57
     
    1262112831    pop cx                                    ; 59
    1262212832    retn                                      ; c3
    12623 pci_read_config_dword_:                      ; 0xf89aa LB 0x24
     12833pci_read_config_dword_:                      ; 0xf8b3e LB 0x24
    1262412834    push cx                                   ; 51
    1262512835    push di                                   ; 57
     
    1264112851    pop cx                                    ; 59
    1264212852    retn                                      ; c3
    12643 vds_is_present_:                             ; 0xf89ce LB 0x1d
     12853vds_is_present_:                             ; 0xf8b62 LB 0x1d
    1264412854    push bx                                   ; 53
    1264512855    push bp                                   ; 55
     
    1264912859    mov es, ax                                ; 8e c0
    1265012860    test byte [es:bx], 020h                   ; 26 f6 07 20
    12651     je short 089e6h                           ; 74 06
     12861    je short 08b7ah                           ; 74 06
    1265212862    mov ax, strict word 00001h                ; b8 01 00
    1265312863    pop bp                                    ; 5d
     
    1265812868    pop bx                                    ; 5b
    1265912869    retn                                      ; c3
    12660 vds_real_to_lin_:                            ; 0xf89eb LB 0x1e
     12870vds_real_to_lin_:                            ; 0xf8b7f LB 0x1e
    1266112871    push bx                                   ; 53
    1266212872    push cx                                   ; 51
     
    1266912879    sal ax, 1                                 ; d1 e0
    1267012880    rcl dx, 1                                 ; d1 d2
    12671     loop 089f9h                               ; e2 fa
     12881    loop 08b8dh                               ; e2 fa
    1267212882    xor cx, cx                                ; 31 c9
    1267312883    add ax, bx                                ; 01 d8
     
    1267712887    pop bx                                    ; 5b
    1267812888    retn                                      ; c3
    12679 vds_build_sg_list_:                          ; 0xf8a09 LB 0x76
     12889vds_build_sg_list_:                          ; 0xf8b9d LB 0x76
    1268012890    push si                                   ; 56
    1268112891    push di                                   ; 57
     
    1269112901    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    1269212902    mov word [es:di+002h], bx                 ; 26 89 5d 02
    12693     call 089ebh                               ; e8 c3 ff
     12903    call 08b7fh                               ; e8 c3 ff
    1269412904    mov es, si                                ; 8e c6
    1269512905    mov word [es:di+004h], ax                 ; 26 89 45 04
    1269612906    mov word [es:di+006h], dx                 ; 26 89 55 06
    1269712907    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    12698     call 089ceh                               ; e8 93 ff
     12908    call 08b62h                               ; e8 93 ff
    1269912909    test ax, ax                               ; 85 c0
    12700     je short 08a52h                           ; 74 13
     12910    je short 08be6h                           ; 74 13
    1270112911    mov es, si                                ; 8e c6
    1270212912    mov ax, 08105h                            ; b8 05 81
    1270312913    mov dx, strict word 00000h                ; ba 00 00
    1270412914    int 04bh                                  ; cd 4b
    12705     jc near 08a4fh                            ; 0f 82 02 00
     12915    jc near 08be3h                            ; 0f 82 02 00
    1270612916    db  032h, 0c0h
    1270712917    ; xor al, al                                ; 32 c0
    1270812918    cbw                                       ; 98
    12709     jmp short 08a79h                          ; eb 27
     12919    jmp short 08c0dh                          ; eb 27
    1271012920    mov es, si                                ; 8e c6
    1271112921    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1272312933    pop si                                    ; 5e
    1272412934    retn 00004h                               ; c2 04 00
    12725 vds_free_sg_list_:                           ; 0xf8a7f LB 0x31
     12935vds_free_sg_list_:                           ; 0xf8c13 LB 0x2d
    1272612936    push bx                                   ; 53
    1272712937    push di                                   ; 57
     
    1272912939    mov bp, sp                                ; 89 e5
    1273012940    mov bx, ax                                ; 89 c3
    12731     call 089ceh                               ; e8 45 ff
     12941    call 08b62h                               ; e8 45 ff
    1273212942    test ax, ax                               ; 85 c0
    12733     je short 08aa0h                           ; 74 13
     12943    je short 08c34h                           ; 74 13
    1273412944    mov di, bx                                ; 89 df
    1273512945    mov es, dx                                ; 8e c2
     
    1273712947    mov dx, strict word 00000h                ; ba 00 00
    1273812948    int 04bh                                  ; cd 4b
    12739     jc near 08a9fh                            ; 0f 82 02 00
     12949    jc near 08c33h                            ; 0f 82 02 00
    1274012950    db  032h, 0c0h
    1274112951    ; xor al, al                                ; 32 c0
     
    1274712957    pop bx                                    ; 5b
    1274812958    retn                                      ; c3
    12749     times 0x4 db 0
    12750 __U4D:                                       ; 0xf8ab0 LB 0x39
     12959__U4D:                                       ; 0xf8c40 LB 0x39
    1275112960    pushfw                                    ; 9c
    1275212961    push eax                                  ; 66 50
     
    1277812987    popfw                                     ; 9d
    1277912988    retn                                      ; c3
    12780 __U4M:                                       ; 0xf8ae9 LB 0x31
     12989__U4M:                                       ; 0xf8c79 LB 0x31
    1278112990    pushfw                                    ; 9c
    1278212991    push eax                                  ; 66 50
     
    1280313012    popfw                                     ; 9d
    1280413013    retn                                      ; c3
    12805 _fmemset_:                                   ; 0xf8b1a LB 0xd
     13014_fmemset_:                                   ; 0xf8caa LB 0xd
    1280613015    push di                                   ; 57
    1280713016    mov es, dx                                ; 8e c2
     
    1281313022    pop di                                    ; 5f
    1281413023    retn                                      ; c3
    12815 _fmemcpy_:                                   ; 0xf8b27 LB 0x18
     13024_fmemcpy_:                                   ; 0xf8cb7 LB 0x33
    1281613025    push bp                                   ; 55
    1281713026    db  08bh, 0ech
     
    1283313042    leave                                     ; c9
    1283413043    retn                                      ; c3
     13044    add byte [bx+si], al                      ; 00 00
     13045    lea ax, [bp+si]                           ; 8d 02
     13046    lea ax, [0068dh]                          ; 8d 06 8d 06
     13047    lea ax, [0088dh]                          ; 8d 06 8d 08
     13048    lea cx, [bx+si]                           ; 8d 08
     13049    lea cx, [bp+si]                           ; 8d 0a
     13050    lea cx, [00e8dh]                          ; 8d 0e 8d 0e
     13051    lea dx, [bx+si]                           ; 8d 10
     13052    lea dx, [di]                              ; 8d 15
     13053    lea dx, [bx]                              ; 8d 17
     13054    db  08dh
     13055apm_worker:                                  ; 0xf8cea LB 0x3a
     13056    sti                                       ; fb
     13057    push ax                                   ; 50
     13058    db  032h, 0e4h
     13059    ; xor ah, ah                                ; 32 e4
     13060    sub AL, strict byte 004h                  ; 2c 04
     13061    db  08bh, 0e8h
     13062    ; mov bp, ax                                ; 8b e8
     13063    sal bp, 1                                 ; d1 e5
     13064    cmp AL, strict byte 00dh                  ; 3c 0d
     13065    pop ax                                    ; 58
     13066    mov AH, strict byte 053h                  ; b4 53
     13067    jnc short 08d20h                          ; 73 25
     13068    jmp word [cs:bp-07330h]                   ; 2e ff a6 d0 8c
     13069    jmp short 08d1eh                          ; eb 1c
     13070    sti                                       ; fb
     13071    hlt                                       ; f4
     13072    jmp short 08d1eh                          ; eb 18
     13073    jmp short 08d1eh                          ; eb 16
     13074    jmp short 08d20h                          ; eb 16
     13075    mov AH, strict byte 080h                  ; b4 80
     13076    jmp short 08d22h                          ; eb 14
     13077    jmp short 08d20h                          ; eb 10
     13078    mov ax, 00102h                            ; b8 02 01
     13079    jmp short 08d1eh                          ; eb 09
     13080    jmp short 08d1eh                          ; eb 07
     13081    mov BL, strict byte 000h                  ; b3 00
     13082    mov cx, strict word 00000h                ; b9 00 00
     13083    jmp short 08d1eh                          ; eb 00
     13084    clc                                       ; f8
     13085    retn                                      ; c3
     13086    mov AH, strict byte 009h                  ; b4 09
     13087    stc                                       ; f9
     13088    retn                                      ; c3
     13089apm_pm16_entry:                              ; 0xf8d24 LB 0x11
     13090    mov AH, strict byte 002h                  ; b4 02
     13091    push DS                                   ; 1e
     13092    push bp                                   ; 55
     13093    push CS                                   ; 0e
     13094    pop bp                                    ; 5d
     13095    add bp, strict byte 00008h                ; 83 c5 08
     13096    mov ds, bp                                ; 8e dd
     13097    call 08ceah                               ; e8 b8 ff
     13098    pop bp                                    ; 5d
     13099    pop DS                                    ; 1f
     13100    retf                                      ; cb
    1283513101
    12836   ; Padding 0x4ec1 bytes at 0xf8b3f
    12837   times 20161 db 0
     13102  ; Padding 0x4ccb bytes at 0xf8d35
     13103  times 19659 db 0
    1283813104
    12839 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x37c class=CODE group=AUTO
     13105section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3aa class=CODE group=AUTO
    1284013106bios32_service:                              ; 0xfda00 LB 0x26
    1284113107    pushfw                                    ; 9c
     
    1285913125    mov AL, strict byte 081h                  ; b0 81
    1286013126    jmp short 0da20h                          ; eb fa
    12861 pcibios32_entry:                             ; 0xfda26 LB 0xd
     13127pcibios32_entry:                             ; 0xfda26 LB 0x1a
    1286213128    pushfw                                    ; 9c
    1286313129    cld                                       ; fc
    1286413130    push ES                                   ; 06
    1286513131    pushaw                                    ; 60
    12866     call 0db45h                               ; e8 18 01
     13132    call 0db73h                               ; e8 46 01
    1286713133    add byte [bx+si], al                      ; 00 00
    1286813134    popaw                                     ; 61
     
    1287013136    popfw                                     ; 9d
    1287113137    retf                                      ; cb
    12872 pci32_select_reg_:                           ; 0xfda33 LB 0x1f
     13138    times 0xd db 0
     13139apm_pm32_entry:                              ; 0xfda40 LB 0x21
     13140    push bp                                   ; 55
     13141    mov ebp, cs                               ; 66 8c cd
     13142    push ebp                                  ; 66 55
     13143    mov bp, 0da5fh                            ; bd 5f da
     13144    add byte [bx+si], al                      ; 00 00
     13145    push ebp                                  ; 66 55
     13146    push CS                                   ; 0e
     13147    pop bp                                    ; 5d
     13148    add bp, strict byte 00008h                ; 83 c5 08
     13149    push ebp                                  ; 66 55
     13150    mov bp, 08d26h                            ; bd 26 8d
     13151    add byte [bx+si], al                      ; 00 00
     13152    push ebp                                  ; 66 55
     13153    mov AH, strict byte 003h                  ; b4 03
     13154    db  066h, 0cbh
     13155    ; retf                                      ; 66 cb
     13156    pop bp                                    ; 5d
     13157    retf                                      ; cb
     13158pci32_select_reg_:                           ; 0xfda61 LB 0x1f
    1287313159    push bx                                   ; 53
    1287413160    push bp                                   ; 55
     
    1288713173    pop bx                                    ; 5b
    1288813174    retn                                      ; c3
    12889 pci32_find_device_:                          ; 0xfda52 LB 0xf5
     13175pci32_find_device_:                          ; 0xfda80 LB 0xf5
    1289013176    push cx                                   ; 51
    1289113177    push si                                   ; 56
     
    1289913185    mov byte [di-004h], 000h                  ; c6 45 fc 00
    1290013186    test bl, 007h                             ; f6 c3 07
    12901     jne short 0daa1h                          ; 75 36
     13187    jne short 0dacfh                          ; 75 36
    1290213188    db  00fh, 0b7h, 0c3h
    1290313189    ; movzx ax, bx                              ; 0f b7 c3
    1290413190    mov dx, strict word 0000eh                ; ba 0e 00
    1290513191    add byte [bx+si], al                      ; 00 00
    12906     call 0da31h                               ; e8 bb ff
     13192    call 0da5fh                               ; e8 bb ff
    1290713193    db  0ffh
    1290813194    db  0ffh
     
    1291413200    mov byte [di-008h], al                    ; 88 45 f8
    1291513201    cmp AL, strict byte 0ffh                  ; 3c ff
    12916     jne short 0da8fh                          ; 75 08
     13202    jne short 0dabdh                          ; 75 08
    1291713203    add bx, strict byte 00008h                ; 83 c3 08
    12918     jmp near 0db17h                           ; e9 8a 00
     13204    jmp near 0db45h                           ; e9 8a 00
    1291913205    add byte [bx+si], al                      ; 00 00
    1292013206    test byte [di-008h], 080h                 ; f6 45 f8 80
    12921     je short 0da9ch                           ; 74 07
     13207    je short 0dacah                           ; 74 07
    1292213208    mov di, strict word 00001h                ; bf 01 00
    1292313209    add byte [bx+si], al                      ; 00 00
    12924     jmp short 0daa1h                          ; eb 05
     13210    jmp short 0dacfh                          ; eb 05
    1292513211    mov di, strict word 00008h                ; bf 08 00
    1292613212    add byte [bx+si], al                      ; 00 00
     
    1292813214    and AL, strict byte 007h                  ; 24 07
    1292913215    cmp AL, strict byte 001h                  ; 3c 01
    12930     jne short 0dad0h                          ; 75 26
     13216    jne short 0dafeh                          ; 75 26
    1293113217    db  00fh, 0b7h, 0c3h
    1293213218    ; movzx ax, bx                              ; 0f b7 c3
     
    1293413220    sar dx, 008h                              ; c1 fa 08
    1293513221    test dx, dx                               ; 85 d2
    12936     jne short 0dad0h                          ; 75 1a
     13222    jne short 0dafeh                          ; 75 1a
    1293713223    mov dx, strict word 0001ah                ; ba 1a 00
    1293813224    add byte [bx+si], al                      ; 00 00
    12939     call 0da31h                               ; e8 73 ff
     13225    call 0da5fh                               ; e8 73 ff
    1294013226    db  0ffh
    1294113227    db  0ffh
     
    1294613232    in AL, DX                                 ; ec
    1294713233    cmp al, byte [di-004h]                    ; 3a 45 fc
    12948     jbe short 0dad0h                          ; 76 03
     13234    jbe short 0dafeh                          ; 76 03
    1294913235    mov byte [di-004h], al                    ; 88 45 fc
    1295013236    test si, si                               ; 85 f6
    12951     je short 0dadbh                           ; 74 07
     13237    je short 0db09h                           ; 74 07
    1295213238    mov ax, strict word 00008h                ; b8 08 00
    1295313239    add byte [bx+si], al                      ; 00 00
    12954     jmp short 0daddh                          ; eb 02
     13240    jmp short 0db0bh                          ; eb 02
    1295513241    xor ax, ax                                ; 31 c0
    1295613242    db  00fh, 0b7h, 0d0h
     
    1295813244    db  00fh, 0b7h, 0c3h
    1295913245    ; movzx ax, bx                              ; 0f b7 c3
    12960     call 0da31h                               ; e8 4b ff
     13246    call 0da5fh                               ; e8 4b ff
    1296113247    db  0ffh
    1296213248    db  0ffh
     
    1296813254    add byte [bx+si], al                      ; 00 00
    1296913255    test si, si                               ; 85 f6
    12970     je short 0db02h                           ; 74 06
     13256    je short 0db30h                           ; 74 06
    1297113257    shr ax, 008h                              ; c1 e8 08
    1297213258    mov word [di-00ch], ax                    ; 89 45 f4
    1297313259    mov ax, word [di-00ch]                    ; 8b 45 f4
    1297413260    cmp ax, word [di-018h]                    ; 3b 45 e8
    12975     je short 0db10h                           ; 74 06
     13261    je short 0db3eh                           ; 74 06
    1297613262    cmp word [di-014h], strict byte 00000h    ; 83 7d ec 00
    12977     je short 0db17h                           ; 74 07
     13263    je short 0db45h                           ; 74 07
    1297813264    dec cx                                    ; 49
    1297913265    cmp ecx, strict byte 0ffffffffh           ; 66 83 f9 ff
    12980     je short 0db2fh                           ; 74 18
     13266    je short 0db5dh                           ; 74 18
    1298113267    add bx, di                                ; 01 fb
    1298213268    db  00fh, 0b7h, 0c3h
     
    1298613272    movzx ax, byte [di-004h]                  ; 0f b6 45 fc
    1298713273    cmp ax, word [di-010h]                    ; 3b 45 f0
    12988     jnl near 0da64h                           ; 0f 8d 37 ff
     13274    jnl near 0da92h                           ; 0f 8d 37 ff
    1298913275    db  0ffh
    1299013276    jmp word [bp-07dh]                        ; ff 66 83
     
    1300513291    pop cx                                    ; 59
    1300613292    retn                                      ; c3
    13007 _pci32_function:                             ; 0xfdb47 LB 0x235
     13293_pci32_function:                             ; 0xfdb75 LB 0x235
    1300813294    push bx                                   ; 53
    1300913295    push si                                   ; 56
     
    1301713303    xor ah, ah                                ; 30 e4
    1301813304    cmp eax, strict dword 029720003h          ; 66 3d 03 00 72 29
    13019     jbe near 0dc02h                           ; 0f 86 99 00
     13305    jbe near 0dc30h                           ; 0f 86 99 00
    1302013306    add byte [bx+si], al                      ; 00 00
    1302113307    cmp eax, strict dword 0840f000eh          ; 66 3d 0e 00 0f 84
     
    1302413310    add byte [bp+03dh], ah                    ; 00 66 3d
    1302513311    or byte [bx+si], al                       ; 08 00
    13026     jc near 0dd65h                            ; 0f 82 e8 01
     13312    jc near 0dd93h                            ; 0f 82 e8 01
    1302713313    add byte [bx+si], al                      ; 00 00
    1302813314    cmp eax, strict dword 0860f000dh          ; 66 3d 0d 00 0f 86
    1302913315    test AL, strict byte 000h                 ; a8 00
    1303013316    add byte [bx+si], al                      ; 00 00
    13031     jmp near 0dd65h                           ; e9 d9 01
     13317    jmp near 0dd93h                           ; e9 d9 01
    1303213318    add byte [bx+si], al                      ; 00 00
    1303313319    cmp eax, strict dword 028740002h          ; 66 3d 02 00 74 28
     
    1305213338    retn                                      ; c3
    1305313339    cmp dword [di+028h], strict byte 0ffffffffh ; 66 83 7d 28 ff
    13054     jne short 0dbd0h                          ; 75 0d
     13340    jne short 0dbfeh                          ; 75 0d
    1305513341    mov ax, word [di+030h]                    ; 8b 45 30
    1305613342    xor ah, ah                                ; 30 e4
    1305713343    or ah, 083h                               ; 80 cc 83
    13058     jmp near 0dd6dh                           ; e9 9f 01
     13344    jmp near 0dd9bh                           ; e9 9f 01
    1305913345    add byte [bx+si], al                      ; 00 00
    1306013346    xor bx, bx                                ; 31 db
     
    1306713353    ; movzx ax, word [di+028h]                  ; 0f b7 45 28
    1306813354    or ax, cx                                 ; 09 c8
    13069     call 0da50h                               ; e8 6a fe
     13355    call 0da7eh                               ; e8 6a fe
    1307013356    db  0ffh
    1307113357    jmp word [bp+03dh]                        ; ff 66 3d
     
    1307513361    xor ah, ah                                ; 30 e4
    1307613362    or ah, 086h                               ; 80 cc 86
    13077     jmp near 0dd6dh                           ; e9 74 01
     13363    jmp near 0dd9bh                           ; e9 74 01
    1307813364    add byte [bx+si], al                      ; 00 00
    1307913365    mov dword [di+024h], eax                  ; 66 89 45 24
     
    1308813374    mov bx, strict word 00001h                ; bb 01 00
    1308913375    add byte [bx+si], al                      ; 00 00
    13090     call 0da50h                               ; e8 3d fe
     13376    call 0da7eh                               ; e8 3d fe
    1309113377    db  0ffh
    1309213378    jmp word [bp+03dh]                        ; ff 66 3d
     
    1309613382    xor ah, ah                                ; 30 e4
    1309713383    or ah, 086h                               ; 80 cc 86
    13098     jmp near 0dd6dh                           ; e9 47 01
     13384    jmp near 0dd9bh                           ; e9 47 01
    1309913385    add byte [bx+si], al                      ; 00 00
    1310013386    mov dword [di+024h], eax                  ; 66 89 45 24
     
    1310813394    xor ah, ah                                ; 30 e4
    1310913395    or ah, 087h                               ; 80 cc 87
    13110     jmp near 0dd6dh                           ; e9 29 01
     13396    jmp near 0dd9bh                           ; e9 29 01
    1311113397    add byte [bx+si], al                      ; 00 00
    1311213398    db  00fh, 0b7h, 055h, 014h
     
    1311413400    db  00fh, 0b7h, 045h, 024h
    1311513401    ; movzx ax, word [di+024h]                  ; 0f b7 45 24
    13116     call 0da31h                               ; e8 e0 fd
     13402    call 0da5fh                               ; e8 e0 fd
    1311713403    db  0ffh
    1311813404    dec word [bp+di+03045h]                   ; ff 8b 45 30
    1311913405    xor ah, ah                                ; 30 e4
    1312013406    cmp eax, strict dword 02172000ah          ; 66 3d 0a 00 72 21
    13121     jbe short 0dcd0h                          ; 76 70
     13407    jbe short 0dcfeh                          ; 76 70
    1312213408    cmp eax, strict dword 0840f000dh          ; 66 3d 0d 00 0f 84
    1312313409    stosb                                     ; aa
     
    1312513411    add byte [bp+03dh], ah                    ; 00 66 3d
    1312613412    or AL, strict byte 000h                   ; 0c 00
    13127     je near 0dcf6h                            ; 0f 84 84 00
     13413    je near 0dd24h                            ; 0f 84 84 00
    1312813414    add byte [bx+si], al                      ; 00 00
    1312913415    cmp eax, strict dword 06474000bh          ; 66 3d 0b 00 74 64
     
    1323013516    db  066h, 026h, 03bh, 008h
    1323113517    ; cmp ecx, dword [es:bx+si]                 ; 66 26 3b 08
    13232     jbe short 0dd40h                          ; 76 0a
     13518    jbe short 0dd6eh                          ; 76 0a
    1323313519    mov ax, word [di+030h]                    ; 8b 45 30
    1323413520    xor ah, ah                                ; 30 e4
    1323513521    or ah, 089h                               ; 80 cc 89
    13236     jmp short 0dd6fh                          ; eb 2f
     13522    jmp short 0dd9dh                          ; eb 2f
    1323713523    db  00fh, 0b7h, 0c9h
    1323813524    ; movzx cx, cx                              ; 0f b7 c9
     
    1326413550    retn                                      ; c3
    1326513551
    13266 section BIOS32CONST progbits vstart=0xdd7c align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
     13552  ; Padding 0x2 bytes at 0xfddaa
     13553  times 2 db 0
    1326713554
    13268 section BIOS32CONST2 progbits vstart=0xdd7c align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
     13555section BIOS32CONST progbits vstart=0xddac align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
    1326913556
    13270 section BIOS32_DATA progbits vstart=0xdd7c align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
     13557section BIOS32CONST2 progbits vstart=0xddac align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
    1327113558
    13272   ; Padding 0x284 bytes at 0xfdd7c
    13273   times 644 db 0
     13559section BIOS32_DATA progbits vstart=0xddac align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
     13560
     13561  ; Padding 0x254 bytes at 0xfddac
     13562  times 596 db 0
    1327413563
    1327513564section BIOSSEG progbits vstart=0xe000 align=1 ; size=0x2000 class=CODE group=AUTO
     
    1351513804    mov word [001c2h], ax                     ; a3 c2 01
    1351613805    call 0edbfh                               ; e8 59 0b
    13517     mov ax, 0f8a3h                            ; b8 a3 f8
     13806    mov ax, 0f8a4h                            ; b8 a4 f8
    1351813807    mov word [001d0h], ax                     ; a3 d0 01
    1351913808    mov ax, 0f000h                            ; b8 00 f0
     
    1353613825    call 01b25h                               ; e8 89 38
    1353713826    call 01f23h                               ; e8 84 3c
    13538     call 07701h                               ; e8 5f 94
    13539     call 0857bh                               ; e8 d6 a2
     13827    call 085e4h                               ; e8 42 a3
     13828    call 07701h                               ; e8 5c 94
    1354013829    call 0ed2fh                               ; e8 87 0a
    1354113830    call 0e2d2h                               ; e8 27 00
     
    1358513874    mov ax, 0f000h                            ; b8 00 f0
    1358613875    mov word [0004eh], ax                     ; a3 4e 00
    13587     mov ax, 0f8d1h                            ; b8 d1 f8
     13876    mov ax, 0f8d2h                            ; b8 d2 f8
    1358813877    mov word [001d8h], ax                     ; a3 d8 01
    1358913878    mov ax, 0f000h                            ; b8 00 f0
     
    1461814907    pop DS                                    ; 1f
    1461914908    iret                                      ; cf
    14620 int15_handler:                               ; 0xff859 LB 0x28
     14909int15_handler:                               ; 0xff859 LB 0x29
    1462114910    pushfw                                    ; 9c
    14622     cmp ah, 053h                              ; 80 fc 53
    14623     je short 0f87dh                           ; 74 1e
    1462414911    push DS                                   ; 1e
    1462514912    push ES                                   ; 06
     
    1462814915    cld                                       ; fc
    1462914916    cmp ah, 086h                              ; 80 fc 86
    14630     je short 0f886h                           ; 74 1d
     14917    je short 0f887h                           ; 74 23
    1463114918    cmp ah, 0e8h                              ; 80 fc e8
    14632     je short 0f886h                           ; 74 18
     14919    je short 0f887h                           ; 74 1e
    1463314920    pushaw                                    ; 60
     14921    cmp ah, 053h                              ; 80 fc 53
     14922    je short 0f87dh                           ; 74 0e
    1463414923    cmp ah, 0c2h                              ; 80 fc c2
    14635     je short 0f881h                           ; 74 0d
     14924    je short 0f882h                           ; 74 0e
    1463614925    call 05da6h                               ; e8 2f 65
    1463714926    popaw                                     ; 61
     
    1463914928    pop DS                                    ; 1f
    1464014929    popfw                                     ; 9d
    14641     jmp short 0f88fh                          ; eb 12
    14642     popfw                                     ; 9d
    14643     stc                                       ; f9
    14644     jmp short 0f88fh                          ; eb 0e
    14645 int15_handler_mouse:                         ; 0xff881 LB 0x5
    14646     call 06995h                               ; e8 11 71
    14647     jmp short 0f877h                          ; eb f1
    14648 int15_handler32:                             ; 0xff886 LB 0x9
     14930    jmp short 0f890h                          ; eb 13
     14931    call 08713h                               ; e8 93 8e
     14932    jmp short 0f877h                          ; eb f5
     14933int15_handler_mouse:                         ; 0xff882 LB 0x5
     14934    call 06995h                               ; e8 10 71
     14935    jmp short 0f877h                          ; eb f0
     14936int15_handler32:                             ; 0xff887 LB 0x9
    1464914937    pushad                                    ; 66 60
    14650     call 0626fh                               ; e8 e4 69
     14938    call 0626fh                               ; e8 e3 69
    1465114939    popad                                     ; 66 61
    14652     jmp short 0f878h                          ; eb e9
    14653 iret_modify_cf:                              ; 0xff88f LB 0x14
    14654     jc short 0f89ah                           ; 72 09
     14940    jmp short 0f878h                          ; eb e8
     14941iret_modify_cf:                              ; 0xff890 LB 0x14
     14942    jc short 0f89bh                           ; 72 09
    1465514943    push bp                                   ; 55
    1465614944    db  08bh, 0ech
     
    1466514953    pop bp                                    ; 5d
    1466614954    iret                                      ; cf
    14667 int74_handler:                               ; 0xff8a3 LB 0x2e
     14955int74_handler:                               ; 0xff8a4 LB 0x2e
    1466814956    sti                                       ; fb
    1466914957    pushaw                                    ; 60
     
    1467814966    pop DS                                    ; 1f
    1467914967    cld                                       ; fc
    14680     call 068cfh                               ; e8 18 70
     14968    call 068cfh                               ; e8 17 70
    1468114969    pop cx                                    ; 59
    14682     jcxz 0f8c6h                               ; e3 0c
     14970    jcxz 0f8c7h                               ; e3 0c
    1468314971    push strict byte 00000h                   ; 6a 00
    1468414972    pop DS                                    ; 1f
     
    1468714975    call far [word 00022h]                    ; ff 1e 22 00
    1468814976    cli                                       ; fa
    14689     call 0e03bh                               ; e8 71 e7
     14977    call 0e03bh                               ; e8 70 e7
    1469014978    add sp, strict byte 00008h                ; 83 c4 08
    1469114979    pop DS                                    ; 1f
     
    1469314981    popaw                                     ; 61
    1469414982    iret                                      ; cf
    14695 int76_handler:                               ; 0xff8d1 LB 0x19d
     14983int76_handler:                               ; 0xff8d2 LB 0x19c
    1469614984    push ax                                   ; 50
    1469714985    push DS                                   ; 1e
     
    1469914987    mov ds, ax                                ; 8e d8
    1470014988    mov byte [0008eh], 0ffh                   ; c6 06 8e 00 ff
    14701     call 0e03bh                               ; e8 5b e7
     14989    call 0e03bh                               ; e8 5a e7
    1470214990    pop DS                                    ; 1f
    1470314991    pop ax                                    ; 58
    1470414992    iret                                      ; cf
    14705     times 0x189 db 0
     14993    times 0x188 db 0
    1470614994    db  'XM'
    1470714995font8x8:                                     ; 0xffa6e LB 0x421
     
    1477015058    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
    1477115059    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
    14772     db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 00ah, 089h, 066h
     15060    db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 09eh, 08ah, 066h
    1477315061    db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 0ech, 067h, 061h, 01fh, 007h
    1477415062    db  0cfh
     
    1487615164cpu_reset:                                   ; 0xffff0 LB 0x10
    1487715165    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    14878     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 093h
     15166    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0cdh
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum

    r42455 r43078  
    1 a212a9bf22e8891d5def4f53b570445c *VBoxPcBios.rom
     16540183b9e43c8c9e7562cd549a7fd9b *VBoxPcBios.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