VirtualBox

Ignore:
Timestamp:
Jun 29, 2017 8:57:09 AM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
116504
Message:

BIOS: updated alternative source

File:
1 edited

Legend:

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

    r67495 r67683  
    11901190  times 1144 db 0
    11911191
    1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d48 class=CODE group=AUTO
     1192section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d88 class=CODE group=AUTO
    11931193rom_scan_:                                   ; 0xf1600 LB 0x50
    11941194    push bp                                   ; 55
     
    15851585    mov bx, strict word 0000ah                ; bb 0a 00
    15861586    xor cx, cx                                ; 31 c9
    1587     call 09fe0h                               ; e8 13 87
     1587    call 0a020h                               ; e8 53 87
    15881588    mov word [bp-008h], ax                    ; 89 46 f8
    15891589    mov cx, dx                                ; 89 d1
     
    18151815    mov dx, word [bp-026h]                    ; 8b 56 da
    18161816    mov si, word [bp-01eh]                    ; 8b 76 e2
    1817     call 0a010h                               ; e8 13 85
     1817    call 0a050h                               ; e8 53 85
    18181818    mov ax, dx                                ; 89 d0
    18191819    xor ah, dh                                ; 30 f4
     
    22542254    mov dx, word [es:si]                      ; 26 8b 14
    22552255    mov si, strict word 00018h                ; be 18 00
    2256     call 0a010h                               ; e8 c0 80
     2256    call 0a050h                               ; e8 00 81
    22572257    xor dh, dh                                ; 30 f6
    22582258    mov word [bp-014h], dx                    ; 89 56 ec
     
    22642264    mov dx, word [es:si]                      ; 26 8b 14
    22652265    mov si, strict word 00020h                ; be 20 00
    2266     call 0a010h                               ; e8 a0 80
     2266    call 0a050h                               ; e8 e0 80
    22672267    mov bx, dx                                ; 89 d3
    22682268    mov ax, word [bp-01ch]                    ; 8b 46 e4
     
    22952295    mov dx, word [es:si]                      ; 26 8b 14
    22962296    mov si, strict word 00008h                ; be 08 00
    2297     call 0a010h                               ; e8 4f 80
     2297    call 0a050h                               ; e8 8f 80
    22982298    mov word [bp-012h], dx                    ; 89 56 ee
    22992299    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    23042304    mov dx, word [es:si]                      ; 26 8b 14
    23052305    mov si, strict word 00018h                ; be 18 00
    2306     call 0a010h                               ; e8 31 80
     2306    call 0a050h                               ; e8 71 80
    23072307    mov ah, dl                                ; 88 d4
    23082308    and ah, 00fh                              ; 80 e4 0f
     
    28612861    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    28622862    mov si, strict word 0000bh                ; be 0b 00
    2863     call 0a010h                               ; e8 89 7a
     2863    call 0a050h                               ; e8 c9 7a
    28642864    mov word [bp-024h], dx                    ; 89 56 dc
    28652865    mov word [bp-032h], cx                    ; 89 4e ce
     
    31373137    mov dx, word [bp-024h]                    ; 8b 56 dc
    31383138    mov si, strict word 00018h                ; be 18 00
    3139     call 0a010h                               ; e8 c7 77
     3139    call 0a050h                               ; e8 07 78
    31403140    xor dh, dh                                ; 30 f6
    31413141    mov word [bp-014h], dx                    ; 89 56 ec
     
    31453145    mov dx, word [bp-024h]                    ; 8b 56 dc
    31463146    mov si, strict word 00020h                ; be 20 00
    3147     call 0a010h                               ; e8 b0 77
     3147    call 0a050h                               ; e8 f0 77
    31483148    mov bx, dx                                ; 89 d3
    31493149    mov ax, word [bp-022h]                    ; 8b 46 de
     
    31793179    mov dx, word [bp-024h]                    ; 8b 56 dc
    31803180    mov si, strict word 00008h                ; be 08 00
    3181     call 0a010h                               ; e8 5c 77
     3181    call 0a050h                               ; e8 9c 77
    31823182    mov word [bp-00ch], ax                    ; 89 46 f4
    31833183    mov word [bp-00eh], bx                    ; 89 5e f2
     
    31863186    mov word [bp-018h], dx                    ; 89 56 e8
    31873187    mov si, strict word 00010h                ; be 10 00
    3188     call 0a010h                               ; e8 47 77
     3188    call 0a050h                               ; e8 87 77
    31893189    mov word [bp-024h], dx                    ; 89 56 dc
    31903190    mov ax, dx                                ; 89 d0
     
    54685468    mov dx, ss                                ; 8c d2
    54695469    lea ax, [bp-026h]                         ; 8d 46 da
    5470     call 0a030h                               ; e8 7d 62
     5470    call 0a070h                               ; e8 bd 62
    54715471    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    54725472    mov ax, strict word 00011h                ; b8 11 00
     
    59415941    xor dl, dl                                ; 30 d2
    59425942    xor cx, cx                                ; 31 c9
    5943     call 09fc0h                               ; e8 a7 5c
     5943    call 0a000h                               ; e8 e7 5c
    59445944    xor bx, bx                                ; 31 db
    59455945    add ax, si                                ; 01 f0
     
    59475947    mov bx, di                                ; 89 fb
    59485948    xor cx, cx                                ; 31 c9
    5949     call 09fc0h                               ; e8 9a 5c
     5949    call 0a000h                               ; e8 da 5c
    59505950    mov bx, ax                                ; 89 c3
    59515951    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    59825982    mov dx, ss                                ; 8c d2
    59835983    lea ax, [bp-02eh]                         ; 8d 46 d2
    5984     call 0a030h                               ; e8 b3 5c
     5984    call 0a070h                               ; e8 f3 5c
    59855985    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    59865986    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    63216321    mov dx, ss                                ; 8c d2
    63226322    lea ax, [bp-030h]                         ; 8d 46 d0
    6323     call 0a030h                               ; e8 d6 58
     6323    call 0a070h                               ; e8 16 59
    63246324    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    63256325    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    82518251    mov dx, word [bp+00ch]                    ; 8b 56 0c
    82528252    mov si, strict word 00020h                ; be 20 00
    8253     call 0a010h                               ; e8 ea 45
     8253    call 0a050h                               ; e8 2a 46
    82548254    test ax, ax                               ; 85 c0
    82558255    jne short 05a36h                          ; 75 0c
     
    82898289    mov bx, strict word 0003fh                ; bb 3f 00
    82908290    xor cx, cx                                ; 31 c9
    8291     call 09fc0h                               ; e8 41 45
     8291    call 0a000h                               ; e8 81 45
    82928292    mov bx, ax                                ; 89 c3
    82938293    mov cx, dx                                ; 89 d1
    82948294    mov ax, word [bp-004h]                    ; 8b 46 fc
    82958295    mov dx, si                                ; 89 f2
    8296     call 09fe0h                               ; e8 55 45
     8296    call 0a020h                               ; e8 95 45
    82978297    mov word [es:di+002h], ax                 ; 26 89 45 02
    82988298    cmp ax, 00400h                            ; 3d 00 04
     
    85118511    mov bx, cx                                ; 89 cb
    85128512    xor cx, cx                                ; 31 c9
    8513     call 09fc0h                               ; e8 1a 43
     8513    call 0a000h                               ; e8 5a 43
    85148514    xor bx, bx                                ; 31 db
    85158515    add ax, word [bp-008h]                    ; 03 46 f8
     
    85178517    mov bx, word [bp-00ah]                    ; 8b 5e f6
    85188518    xor cx, cx                                ; 31 c9
    8519     call 09fc0h                               ; e8 0b 43
     8519    call 0a000h                               ; e8 4b 43
    85208520    xor bx, bx                                ; 31 db
    85218521    add ax, word [bp-006h]                    ; 03 46 fa
     
    86858685    mov bx, word [bp-008h]                    ; 8b 5e f8
    86868686    xor cx, cx                                ; 31 c9
    8687     call 09fc0h                               ; e8 34 41
     8687    call 0a000h                               ; e8 74 41
    86888688    mov bx, word [bp-006h]                    ; 8b 5e fa
    86898689    xor cx, cx                                ; 31 c9
    8690     call 09fc0h                               ; e8 2c 41
     8690    call 0a000h                               ; e8 6c 41
    86918691    mov word [bp-010h], ax                    ; 89 46 f0
    86928692    mov word [bp-00ch], dx                    ; 89 56 f4
     
    88468846    xor bx, bx                                ; 31 db
    88478847    mov si, strict word 00020h                ; be 20 00
    8848     call 0a020h                               ; e8 ef 3f
     8848    call 0a060h                               ; e8 2f 40
    88498849    mov si, ax                                ; 89 c6
    88508850    mov word [bp-00ch], bx                    ; 89 5e f4
     
    90039003    mov bx, word [bp-00ch]                    ; 8b 5e f4
    90049004    mov si, strict word 00020h                ; be 20 00
    9005     call 0a010h                               ; e8 fb 3d
     9005    call 0a050h                               ; e8 3b 3e
    90069006    mov bx, di                                ; 89 fb
    90079007    mov word [es:bx+014h], dx                 ; 26 89 57 14
     
    93599359    mov bx, strict word 0000fh                ; bb 0f 00
    93609360    xor cx, cx                                ; 31 c9
    9361     call 09fe0h                               ; e8 38 3a
     9361    call 0a020h                               ; e8 78 3a
    93629362    mov cx, ax                                ; 89 c1
    93639363    mov bx, dx                                ; 89 d3
     
    1246512465    mov dx, ss                                ; 8c d2
    1246612466    lea ax, [bp-046h]                         ; 8d 46 ba
    12467     call 0a030h                               ; e8 1d 1d
     12467    call 0a070h                               ; e8 5d 1d
    1246812468    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
    1246912469    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     
    1259612596    mov dx, word [bp-014h]                    ; 8b 56 ec
    1259712597    mov si, strict word 0000ch                ; be 0c 00
    12598     call 0a010h                               ; e8 b6 1b
     12598    call 0a050h                               ; e8 f6 1b
    1259912599    mov word [bp-02ah], ax                    ; 89 46 d6
    1260012600    mov word [bp-016h], bx                    ; 89 5e ea
     
    1261812618    mov dx, word [bp-014h]                    ; 8b 56 ec
    1261912619    mov si, strict word 00006h                ; be 06 00
    12620     call 0a010h                               ; e8 75 1b
     12620    call 0a050h                               ; e8 b5 1b
    1262112621    mov si, word [bp-01eh]                    ; 8b 76 e2
    1262212622    add si, dx                                ; 01 d6
     
    1263612636    mov dx, si                                ; 89 f2
    1263712637    mov si, strict word 00008h                ; be 08 00
    12638     call 0a010h                               ; e8 45 1b
     12638    call 0a050h                               ; e8 85 1b
    1263912639    mov word [bp-02eh], bx                    ; 89 5e d2
    1264012640    mov word [bp-030h], cx                    ; 89 4e d0
     
    1264512645    mov dx, word [bp-036h]                    ; 8b 56 ca
    1264612646    mov si, strict word 00010h                ; be 10 00
    12647     call 0a010h                               ; e8 2a 1b
     12647    call 0a050h                               ; e8 6a 1b
    1264812648    mov si, word [bp-032h]                    ; 8b 76 ce
    1264912649    add si, dx                                ; 01 d6
     
    1267112671    mov dx, word [bp-014h]                    ; 8b 56 ec
    1267212672    mov si, strict word 0000bh                ; be 0b 00
    12673     call 0a010h                               ; e8 de 1a
     12673    call 0a050h                               ; e8 1e 1b
    1267412674    mov si, dx                                ; 89 d6
    1267512675    mov dx, cx                                ; 89 ca
     
    1314513145    mov ax, 00080h                            ; b8 80 00
    1314613146    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13147     call 0a030h                               ; e8 7b 16
     13147    call 0a070h                               ; e8 bb 16
    1314813148    mov es, [bp-00ah]                         ; 8e 46 f6
    1314913149    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1316313163    mov dx, word [es:si]                      ; 26 8b 14
    1316413164    mov si, strict word 00008h                ; be 08 00
    13165     call 0a010h                               ; e8 17 16
     13165    call 0a050h                               ; e8 57 16
    1316613166    mov es, [bp-00ah]                         ; 8e 46 f6
    1316713167    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1317413174    mov dx, word [es:si]                      ; 26 8b 14
    1317513175    mov si, strict word 00010h                ; be 10 00
    13176     call 0a010h                               ; e8 f1 15
     13176    call 0a050h                               ; e8 31 16
    1317713177    mov es, [bp-00ah]                         ; 8e 46 f6
    1317813178    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1318613186    mov dx, word [es:si]                      ; 26 8b 14
    1318713187    mov si, strict word 00018h                ; be 18 00
    13188     call 0a010h                               ; e8 c5 15
     13188    call 0a050h                               ; e8 05 16
    1318913189    mov es, [bp-00ah]                         ; 8e 46 f6
    1319013190    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1319713197    mov dx, word [es:si]                      ; 26 8b 14
    1319813198    mov si, strict word 00020h                ; be 20 00
    13199     call 0a010h                               ; e8 9f 15
     13199    call 0a050h                               ; e8 df 15
    1320013200    mov es, [bp-00ah]                         ; 8e 46 f6
    1320113201    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1320813208    mov dx, word [es:si]                      ; 26 8b 14
    1320913209    mov si, strict word 00028h                ; be 28 00
    13210     call 0a010h                               ; e8 79 15
     13210    call 0a050h                               ; e8 b9 15
    1321113211    mov es, [bp-00ah]                         ; 8e 46 f6
    1321213212    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1322213222    mov bx, word [bp-010h]                    ; 8b 5e f0
    1322313223    xor cx, cx                                ; 31 c9
    13224     call 09fc0h                               ; e8 f4 14
     13224    call 0a000h                               ; e8 34 15
    1322513225    push dx                                   ; 52
    1322613226    push ax                                   ; 50
     
    1323213232    mov ax, 0026ah                            ; b8 6a 02
    1323313233    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13234     call 09f13h                               ; e8 2b 14
     13234    call 09f59h                               ; e8 71 14
    1323513235    mov es, [bp-00ah]                         ; 8e 46 f6
    1323613236    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1329513295    add ax, 0026ah                            ; 05 6a 02
    1329613296    mov dx, cx                                ; 89 ca
    13297     call 09f8ah                               ; e8 c5 13
     13297    call 09fd0h                               ; e8 0b 14
    1329813298    mov es, cx                                ; 8e c1
    1329913299    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
     
    1337913379    mov ax, di                                ; 89 f8
    1338013380    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13381     call 0a030h                               ; e8 bb 13
     13381    call 0a070h                               ; e8 fb 13
    1338213382    lea ax, [di+00080h]                       ; 8d 85 80 00
    1338313383    mov cx, strict word 00040h                ; b9 40 00
    1338413384    xor bx, bx                                ; 31 db
    1338513385    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13386     call 0a030h                               ; e8 ac 13
     13386    call 0a070h                               ; e8 ec 13
    1338713387    lea ax, [di+00200h]                       ; 8d 85 00 02
    1338813388    mov cx, strict word 00060h                ; b9 60 00
    1338913389    xor bx, bx                                ; 31 db
    1339013390    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13391     call 0a030h                               ; e8 9d 13
     13391    call 0a070h                               ; e8 dd 13
    1339213392    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1339313393    xor ah, ah                                ; 30 e4
     
    1356313563    mov ax, si                                ; 89 f0
    1356413564    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13565     call 0a030h                               ; e8 3a 12
     13565    call 0a070h                               ; e8 7a 12
    1356613566    lea ax, [si+00080h]                       ; 8d 84 80 00
    1356713567    mov cx, strict word 00040h                ; b9 40 00
    1356813568    xor bx, bx                                ; 31 db
    1356913569    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13570     call 0a030h                               ; e8 2b 12
     13570    call 0a070h                               ; e8 6b 12
    1357113571    lea di, [si+00200h]                       ; 8d bc 00 02
    1357213572    mov cx, strict word 00060h                ; b9 60 00
     
    1357413574    mov ax, di                                ; 89 f8
    1357513575    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13576     call 0a030h                               ; e8 1a 12
     13576    call 0a070h                               ; e8 5a 12
    1357713577    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1357813578    xor bh, bh                                ; 30 ff
     
    1390613906    mov dx, word [bp+008h]                    ; 8b 56 08
    1390713907    xor cx, cx                                ; 31 c9
    13908     call 09fe0h                               ; e8 79 0e
     13908    call 0a020h                               ; e8 b9 0e
    1390913909    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1391013910    xor di, di                                ; 31 ff
     
    1393313933    mov ax, 000c0h                            ; b8 c0 00
    1393413934    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13935     call 0a040h                               ; e8 85 0e
     13935    call 0a080h                               ; e8 c5 0e
    1393613936    mov es, [bp-008h]                         ; 8e 46 f8
    1393713937    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1465214652    pop bp                                    ; 5d
    1465314653    retn                                      ; c3
    14654     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0deh, 099h, 0bch, 099h, 0c2h, 099h, 0c8h, 099h, 0ceh
    14655     db  099h, 0d4h, 099h, 0dah, 099h, 0deh, 099h
    14656 _ahci_init:                                  ; 0xf98f6 LB 0x119
     14654    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0dfh, 099h, 0bdh, 099h, 0c3h, 099h, 0c9h, 099h, 0cfh
     14655    db  099h, 0d5h, 099h, 0dbh, 099h, 0dfh, 099h
     14656_ahci_init:                                  ; 0xf98f6 LB 0x13a
    1465714657    push bp                                   ; 55
    1465814658    mov bp, sp                                ; 89 e5
     14659    push si                                   ; 56
    1465914660    push di                                   ; 57
    14660     sub sp, strict byte 0000eh                ; 83 ec 0e
     14661    sub sp, strict byte 00012h                ; 83 ec 12
    1466114662    mov ax, 00601h                            ; b8 01 06
    1466214663    mov dx, strict word 00001h                ; ba 01 00
    14663     call 09e2ah                               ; e8 24 05
     14664    call 09e4bh                               ; e8 44 05
    1466414665    mov dx, ax                                ; 89 c2
    1466514666    cmp ax, strict word 0ffffh                ; 3d ff ff
    14666     je short 09959h                           ; 74 4c
     14667    je short 0995ah                           ; 74 4c
    1466714668    xor al, al                                ; 30 c0
    1466814669    shr ax, 008h                              ; c1 e8 08
    14669     mov byte [bp-008h], al                    ; 88 46 f8
    14670     mov byte [bp-006h], dl                    ; 88 56 fa
     14670    mov byte [bp-006h], al                    ; 88 46 fa
     14671    mov byte [bp-00ah], dl                    ; 88 56 f6
    1467114672    xor dh, dh                                ; 30 f6
    1467214673    xor ah, ah                                ; 30 e4
    1467314674    mov bx, strict word 00034h                ; bb 34 00
    14674     call 09e32h                               ; e8 10 05
     14675    call 09e53h                               ; e8 30 05
    1467514676    mov cl, al                                ; 88 c1
    1467614677    test cl, cl                               ; 84 c9
    14677     je short 0995ch                           ; 74 34
     14678    je short 0995dh                           ; 74 34
    1467814679    mov bl, cl                                ; 88 cb
    1467914680    xor bh, bh                                ; 30 ff
     14681    mov al, byte [bp-00ah]                    ; 8a 46 f6
     14682    mov byte [bp-00eh], al                    ; 88 46 f2
     14683    mov byte [bp-00dh], bh                    ; 88 7e f3
    1468014684    mov al, byte [bp-006h]                    ; 8a 46 fa
    14681     mov byte [bp-010h], al                    ; 88 46 f0
    14682     mov byte [bp-00fh], bh                    ; 88 7e f1
    14683     mov al, byte [bp-008h]                    ; 8a 46 f8
    14684     mov byte [bp-00ch], al                    ; 88 46 f4
    14685     mov byte [bp-00bh], bh                    ; 88 7e f5
    14686     mov dx, word [bp-010h]                    ; 8b 56 f0
    14687     mov ax, word [bp-00ch]                    ; 8b 46 f4
    14688     call 09e32h                               ; e8 eb 04
     14685    mov byte [bp-014h], al                    ; 88 46 ec
     14686    mov byte [bp-013h], bh                    ; 88 7e ed
     14687    mov dx, word [bp-00eh]                    ; 8b 56 f2
     14688    mov ax, word [bp-014h]                    ; 8b 46 ec
     14689    call 09e53h                               ; e8 0b 05
    1468914690    cmp AL, strict byte 012h                  ; 3c 12
    14690     je short 0995ch                           ; 74 11
     14691    je short 0995dh                           ; 74 11
    1469114692    mov bl, cl                                ; 88 cb
    1469214693    db  0feh, 0c3h
    1469314694    ; inc bl                                    ; fe c3
    1469414695    xor bh, bh                                ; 30 ff
    14695     mov dx, word [bp-010h]                    ; 8b 56 f0
    14696     mov ax, word [bp-00ch]                    ; 8b 46 f4
    14697     jmp short 0991fh                          ; eb c6
    14698     jmp near 09a09h                           ; e9 ad 00
     14696    mov dx, word [bp-00eh]                    ; 8b 56 f2
     14697    mov ax, word [bp-014h]                    ; 8b 46 ec
     14698    jmp short 09920h                          ; eb c6
     14699    jmp near 09a29h                           ; e9 cc 00
    1469914700    test cl, cl                               ; 84 c9
    14700     je short 09959h                           ; 74 f9
     14701    je short 0995ah                           ; 74 f9
    1470114702    add cl, 002h                              ; 80 c1 02
    1470214703    mov bl, cl                                ; 88 cb
    1470314704    xor bh, bh                                ; 30 ff
     14705    mov al, byte [bp-00ah]                    ; 8a 46 f6
     14706    mov byte [bp-012h], al                    ; 88 46 ee
     14707    mov byte [bp-011h], bh                    ; 88 7e ef
    1470414708    mov al, byte [bp-006h]                    ; 8a 46 fa
    14705     mov byte [bp-00eh], al                    ; 88 46 f2
    14706     mov byte [bp-00dh], bh                    ; 88 7e f3
    14707     mov al, byte [bp-008h]                    ; 8a 46 f8
    14708     mov byte [bp-00ah], al                    ; 88 46 f6
    14709     mov byte [bp-009h], bh                    ; 88 7e f7
    14710     mov dx, word [bp-00eh]                    ; 8b 56 f2
    14711     mov ax, word [bp-00ah]                    ; 8b 46 f6
    14712     call 09e32h                               ; e8 b0 04
     14709    mov byte [bp-00ch], al                    ; 88 46 f4
     14710    mov byte [bp-00bh], bh                    ; 88 7e f5
     14711    mov dx, word [bp-012h]                    ; 8b 56 ee
     14712    mov ax, word [bp-00ch]                    ; 8b 46 f4
     14713    call 09e53h                               ; e8 d0 04
    1471314714    cmp AL, strict byte 010h                  ; 3c 10
    14714     jne short 09959h                          ; 75 d3
    14715     mov byte [bp-004h], 000h                  ; c6 46 fc 00
     14715    jne short 0995ah                          ; 75 d3
     14716    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1471614717    mov bl, cl                                ; 88 cb
    1471714718    add bl, 002h                              ; 80 c3 02
    1471814719    xor bh, bh                                ; 30 ff
    14719     mov dx, word [bp-00eh]                    ; 8b 56 f2
    14720     mov ax, word [bp-00ah]                    ; 8b 46 f6
    14721     call 09e60h                               ; e8 c6 04
     14720    mov dx, word [bp-012h]                    ; 8b 56 ee
     14721    mov ax, word [bp-00ch]                    ; 8b 46 f4
     14722    call 09e81h                               ; e8 e6 04
    1472214723    mov dx, ax                                ; 89 c2
    1472314724    and ax, strict word 0000fh                ; 25 0f 00
    1472414725    sub ax, strict word 00004h                ; 2d 04 00
    1472514726    cmp ax, strict word 0000bh                ; 3d 0b 00
    14726     jnbe short 099deh                         ; 77 37
     14727    jnbe short 099dfh                         ; 77 37
    1472714728    push CS                                   ; 0e
    1472814729    pop ES                                    ; 07
     
    1473414735    mov ax, word [cs:di-0671ah]               ; 2e 8b 85 e6 98
    1473514736    jmp ax                                    ; ff e0
    14736     mov byte [bp-004h], 010h                  ; c6 46 fc 10
    14737     jmp short 099deh                          ; eb 1c
    14738     mov byte [bp-004h], 014h                  ; c6 46 fc 14
    14739     jmp short 099deh                          ; eb 16
    14740     mov byte [bp-004h], 018h                  ; c6 46 fc 18
    14741     jmp short 099deh                          ; eb 10
    14742     mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
    14743     jmp short 099deh                          ; eb 0a
    14744     mov byte [bp-004h], 020h                  ; c6 46 fc 20
    14745     jmp short 099deh                          ; eb 04
    14746     mov byte [bp-004h], 024h                  ; c6 46 fc 24
    14747     mov cx, dx                                ; 89 d1
    14748     shr cx, 004h                              ; c1 e9 04
    14749     sal cx, 002h                              ; c1 e1 02
    14750     mov al, byte [bp-004h]                    ; 8a 46 fc
     14737    mov byte [bp-008h], 010h                  ; c6 46 f8 10
     14738    jmp short 099dfh                          ; eb 1c
     14739    mov byte [bp-008h], 014h                  ; c6 46 f8 14
     14740    jmp short 099dfh                          ; eb 16
     14741    mov byte [bp-008h], 018h                  ; c6 46 f8 18
     14742    jmp short 099dfh                          ; eb 10
     14743    mov byte [bp-008h], 01ch                  ; c6 46 f8 1c
     14744    jmp short 099dfh                          ; eb 0a
     14745    mov byte [bp-008h], 020h                  ; c6 46 f8 20
     14746    jmp short 099dfh                          ; eb 04
     14747    mov byte [bp-008h], 024h                  ; c6 46 f8 24
     14748    mov si, dx                                ; 89 d6
     14749    shr si, 004h                              ; c1 ee 04
     14750    sal si, 002h                              ; c1 e6 02
     14751    mov al, byte [bp-008h]                    ; 8a 46 f8
    1475114752    test al, al                               ; 84 c0
    14752     je short 09a09h                           ; 74 1c
     14753    je short 09a29h                           ; 74 3b
    1475314754    mov bl, al                                ; 88 c3
    1475414755    xor bh, bh                                ; 30 ff
    14755     mov dl, byte [bp-006h]                    ; 8a 56 fa
    14756     xor dh, dh                                ; 30 f6
    14757     mov al, byte [bp-008h]                    ; 8a 46 f8
    14758     xor ah, ah                                ; 30 e4
    14759     call 09e8ah                               ; e8 8c 04
     14756    mov al, byte [bp-00ah]                    ; 8a 46 f6
     14757    mov byte [bp-010h], al                    ; 88 46 f0
     14758    mov byte [bp-00fh], bh                    ; 88 7e f1
     14759    mov al, byte [bp-006h]                    ; 8a 46 fa
     14760    mov byte [bp-016h], al                    ; 88 46 ea
     14761    mov byte [bp-015h], bh                    ; 88 7e eb
     14762    mov dx, word [bp-010h]                    ; 8b 56 f0
     14763    mov ax, word [bp-016h]                    ; 8b 46 ea
     14764    call 09eabh                               ; e8 9e 04
    1476014765    test AL, strict byte 001h                 ; a8 01
    14761     je short 09a09h                           ; 74 07
     14766    je short 09a29h                           ; 74 18
    1476214767    and AL, strict byte 0f0h                  ; 24 f0
    14763     add ax, cx                                ; 01 c8
    14764     call 09789h                               ; e8 80 fd
    14765     lea sp, [bp-002h]                         ; 8d 66 fe
     14768    add si, ax                                ; 01 c6
     14769    mov cx, strict word 00007h                ; b9 07 00
     14770    mov bx, strict word 00004h                ; bb 04 00
     14771    mov dx, word [bp-010h]                    ; 8b 56 f0
     14772    mov ax, word [bp-016h]                    ; 8b 46 ea
     14773    call 09ef9h                               ; e8 d5 04
     14774    mov ax, si                                ; 89 f0
     14775    call 09789h                               ; e8 60 fd
     14776    lea sp, [bp-004h]                         ; 8d 66 fc
    1476614777    pop di                                    ; 5f
     14778    pop si                                    ; 5e
    1476714779    pop bp                                    ; 5d
    1476814780    retn                                      ; c3
    14769 apm_out_str_:                                ; 0xf9a0f LB 0x39
     14781apm_out_str_:                                ; 0xf9a30 LB 0x39
    1477014782    push bp                                   ; 55
    1477114783    mov bp, sp                                ; 89 e5
     
    1477314785    mov bx, ax                                ; 89 c3
    1477414786    cmp byte [bx], 000h                       ; 80 3f 00
    14775     je short 09a24h                           ; 74 0a
     14787    je short 09a45h                           ; 74 0a
    1477614788    mov al, byte [bx]                         ; 8a 07
    1477714789    out DX, AL                                ; ee
     
    1478014792    db  00ah, 0c0h
    1478114793    ; or al, al                                 ; 0a c0
    14782     jne short 09a1ch                          ; 75 f8
     14794    jne short 09a3dh                          ; 75 f8
    1478314795    lea sp, [bp-002h]                         ; 8d 66 fe
    1478414796    pop bx                                    ; 5b
    1478514797    pop bp                                    ; 5d
    1478614798    retn                                      ; c3
    14787     imul bx, word [bp+si-0650fh], 09a7bh      ; 69 9a f1 9a 7b 9a
    14788     xchg si, ax                               ; 96
    14789     call far 09ac1h:09af1h                    ; 9a f1 9a c1 9a
    14790     db  0f1h
    14791     call far 09ac6h:09af7h                    ; 9a f7 9a c6 9a
    14792     db  0c6h, 09ah, 0c6h, 09ah, 036h
    14793     ; mov byte [bp+si-0653ah], 036h             ; c6 9a c6 9a 36
     14799    mov bl, byte [bp+si-064eeh]               ; 8a 9a 12 9b
     14800    pushfw                                    ; 9c
     14801    call far 09b12h:09ab7h                    ; 9a b7 9a 12 9b
     14802    loop 099f1h                               ; e2 9a
     14803    adc bl, byte [bp+di-064e8h]               ; 12 9b 18 9b
     14804    out 09ah, ax                              ; e7 9a
     14805    out 09ah, ax                              ; e7 9a
     14806    out 09ah, ax                              ; e7 9a
     14807    push di                                   ; 57
    1479414808    wait                                      ; 9b
    14795     db  0c6h, 09ah, 0c6h, 09ah, 02fh
    14796     ; mov byte [bp+si-0653ah], 02fh             ; c6 9a c6 9a 2f
     14809    out 09ah, ax                              ; e7 9a
     14810    out 09ah, ax                              ; e7 9a
     14811    push ax                                   ; 50
    1479714812    wait                                      ; 9b
    14798 _apm_function:                               ; 0xf9a48 LB 0xf3
     14813_apm_function:                               ; 0xf9a69 LB 0xf3
    1479914814    push bp                                   ; 55
    1480014815    mov bp, sp                                ; 89 e5
     
    1480414819    xor ah, ah                                ; 30 e4
    1480514820    cmp ax, strict word 0000eh                ; 3d 0e 00
    14806     jnbe short 09ac6h                         ; 77 6c
     14821    jnbe short 09ae7h                         ; 77 6c
    1480714822    mov bx, ax                                ; 89 c3
    1480814823    add bx, ax                                ; 01 c3
    1480914824    mov dx, word [bp+018h]                    ; 8b 56 18
    1481014825    or dl, 001h                               ; 80 ca 01
    14811     jmp word [cs:bx-065d6h]                   ; 2e ff a7 2a 9a
     14826    jmp word [cs:bx-065b5h]                   ; 2e ff a7 4b 9a
    1481214827    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1481314828    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1481414829    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    14815     jmp near 09af1h                           ; e9 76 00
     14830    jmp near 09b12h                           ; e9 76 00
    1481614831    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    14817     mov word [bp+00ch], 0a0b4h                ; c7 46 0c b4 a0
     14832    mov word [bp+00ch], 0a0f4h                ; c7 46 0c f4 a0
    1481814833    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1481914834    mov ax, strict word 0fff0h                ; b8 f0 ff
    1482014835    mov word [bp+006h], ax                    ; 89 46 06
    1482114836    mov word [bp+004h], ax                    ; 89 46 04
    14822     jmp near 09af1h                           ; e9 5b 00
     14837    jmp near 09b12h                           ; e9 5b 00
    1482314838    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1482414839    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1483314848    mov si, ax                                ; 89 c6
    1483414849    sal esi, 010h                             ; 66 c1 e6 10
    14835     jmp near 09af1h                           ; e9 30 00
     14850    jmp near 09b12h                           ; e9 30 00
    1483614851    sti                                       ; fb
    1483714852    hlt                                       ; f4
    14838     jmp near 09af1h                           ; e9 2b 00
     14853    jmp near 09b12h                           ; e9 2b 00
    1483914854    mov bx, 00da0h                            ; bb a0 0d
    1484014855    mov cx, ds                                ; 8c d9
    1484114856    mov ax, strict word 00004h                ; b8 04 00
    14842     call 01923h                               ; e8 52 7e
     14857    call 01923h                               ; e8 31 7e
    1484314858    push word [bp+00ch]                       ; ff 76 0c
    1484414859    push word [bp+012h]                       ; ff 76 12
    1484514860    push 00d29h                               ; 68 29 0d
    1484614861    push strict byte 00004h                   ; 6a 04
    14847     call 01966h                               ; e8 87 7e
     14862    call 01966h                               ; e8 66 7e
    1484814863    add sp, strict byte 00008h                ; 83 c4 08
    1484914864    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1485714872    retn                                      ; c3
    1485814873    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    14859     je short 09b1ch                           ; 74 1f
     14874    je short 09b3dh                           ; 74 1f
    1486014875    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    14861     je short 09b14h                           ; 74 11
     14876    je short 09b35h                           ; 74 11
    1486214877    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    14863     jne short 09b24h                          ; 75 1b
     14878    jne short 09b45h                          ; 75 1b
    1486414879    mov dx, 0040fh                            ; ba 0f 04
    1486514880    mov ax, 00d10h                            ; b8 10 0d
    14866     call 09a0fh                               ; e8 fd fe
    14867     jmp short 09af1h                          ; eb dd
     14881    call 09a30h                               ; e8 fd fe
     14882    jmp short 09b12h                          ; eb dd
    1486814883    mov dx, 0040fh                            ; ba 0f 04
    1486914884    mov ax, 00d18h                            ; b8 18 0d
    14870     jmp short 09b0fh                          ; eb f3
     14885    jmp short 09b30h                          ; eb f3
    1487114886    mov dx, 0040fh                            ; ba 0f 04
    1487214887    mov ax, 00d20h                            ; b8 20 0d
    14873     jmp short 09b0fh                          ; eb eb
     14888    jmp short 09b30h                          ; eb eb
    1487414889    or ah, 00ah                               ; 80 cc 0a
    1487514890    mov word [bp+012h], ax                    ; 89 46 12
    1487614891    mov word [bp+018h], dx                    ; 89 56 18
    14877     jmp short 09af1h                          ; eb c2
     14892    jmp short 09b12h                          ; eb c2
    1487814893    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    14879     jmp short 09af1h                          ; eb bb
     14894    jmp short 09b12h                          ; eb bb
    1488014895    or ah, 080h                               ; 80 cc 80
    14881     jmp short 09b27h                          ; eb ec
    14882 pci16_select_reg_:                           ; 0xf9b3b LB 0x24
     14896    jmp short 09b48h                          ; eb ec
     14897pci16_select_reg_:                           ; 0xf9b5c LB 0x24
    1488314898    push bp                                   ; 55
    1488414899    mov bp, sp                                ; 89 e5
     
    1489714912    pop bp                                    ; 5d
    1489814913    retn                                      ; c3
    14899 pci16_find_device_:                          ; 0xf9b5f LB 0xf9
     14914pci16_find_device_:                          ; 0xf9b80 LB 0xf9
    1490014915    push bp                                   ; 55
    1490114916    mov bp, sp                                ; 89 e5
     
    1491114926    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1491214927    test bl, 007h                             ; f6 c3 07
    14913     jne short 09ba7h                          ; 75 2d
     14928    jne short 09bc8h                          ; 75 2d
    1491414929    mov dx, strict word 0000eh                ; ba 0e 00
    1491514930    mov ax, bx                                ; 89 d8
    14916     call 09b3bh                               ; e8 b9 ff
     14931    call 09b5ch                               ; e8 b9 ff
    1491714932    mov dx, 00cfeh                            ; ba fe 0c
    1491814933    in AL, DX                                 ; ec
     
    1492114936    mov byte [bp-006h], al                    ; 88 46 fa
    1492214937    cmp AL, strict byte 0ffh                  ; 3c ff
    14923     jne short 09b95h                          ; 75 06
     14938    jne short 09bb6h                          ; 75 06
    1492414939    add bx, strict byte 00008h                ; 83 c3 08
    14925     jmp near 09c28h                           ; e9 93 00
     14940    jmp near 09c49h                           ; e9 93 00
    1492614941    test byte [bp-006h], 080h                 ; f6 46 fa 80
    14927     je short 09ba2h                           ; 74 07
     14942    je short 09bc3h                           ; 74 07
    1492814943    mov word [bp-010h], strict word 00001h    ; c7 46 f0 01 00
    14929     jmp short 09ba7h                          ; eb 05
     14944    jmp short 09bc8h                          ; eb 05
    1493014945    mov word [bp-010h], strict word 00008h    ; c7 46 f0 08 00
    1493114946    mov al, byte [bp-006h]                    ; 8a 46 fa
    1493214947    and AL, strict byte 007h                  ; 24 07
    1493314948    cmp AL, strict byte 001h                  ; 3c 01
    14934     jne short 09bcfh                          ; 75 1f
     14949    jne short 09bf0h                          ; 75 1f
    1493514950    mov ax, bx                                ; 89 d8
    1493614951    shr ax, 008h                              ; c1 e8 08
    1493714952    test ax, ax                               ; 85 c0
    14938     jne short 09bcfh                          ; 75 16
     14953    jne short 09bf0h                          ; 75 16
    1493914954    mov dx, strict word 0001ah                ; ba 1a 00
    1494014955    mov ax, bx                                ; 89 d8
    14941     call 09b3bh                               ; e8 7a ff
     14956    call 09b5ch                               ; e8 7a ff
    1494214957    mov dx, 00cfeh                            ; ba fe 0c
    1494314958    in AL, DX                                 ; ec
     
    1494514960    ; sub ah, ah                                ; 2a e4
    1494614961    cmp al, byte [bp-008h]                    ; 3a 46 f8
    14947     jbe short 09bcfh                          ; 76 03
     14962    jbe short 09bf0h                          ; 76 03
    1494814963    mov byte [bp-008h], al                    ; 88 46 f8
    1494914964    test di, di                               ; 85 ff
    14950     je short 09bd8h                           ; 74 05
     14965    je short 09bf9h                           ; 74 05
    1495114966    mov dx, strict word 00008h                ; ba 08 00
    14952     jmp short 09bdah                          ; eb 02
     14967    jmp short 09bfbh                          ; eb 02
    1495314968    xor dx, dx                                ; 31 d2
    1495414969    mov ax, bx                                ; 89 d8
    14955     call 09b3bh                               ; e8 5c ff
     14970    call 09b5ch                               ; e8 5c ff
    1495614971    mov dx, 00cfch                            ; ba fc 0c
    1495714972    in eax, DX                                ; 66 ed
     
    1496414979    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    1496514980    test di, di                               ; 85 ff
    14966     je short 09c09h                           ; 74 0f
     14981    je short 09c2ah                           ; 74 0f
    1496714982    mov cx, strict word 00008h                ; b9 08 00
    1496814983    shr dx, 1                                 ; d1 ea
    1496914984    rcr ax, 1                                 ; d1 d8
    14970     loop 09bfdh                               ; e2 fa
     14985    loop 09c1eh                               ; e2 fa
    1497114986    mov word [bp-00ah], ax                    ; 89 46 f6
    1497214987    mov word [bp-00ch], dx                    ; 89 56 f4
    1497314988    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1497414989    cmp ax, word [bp-014h]                    ; 3b 46 ec
    14975     jne short 09c19h                          ; 75 08
     14990    jne short 09c3ah                          ; 75 08
    1497614991    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1497714992    cmp ax, word [bp-012h]                    ; 3b 46 ee
    14978     je short 09c1fh                           ; 74 06
     14993    je short 09c40h                           ; 74 06
    1497914994    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    14980     je short 09c25h                           ; 74 06
     14995    je short 09c46h                           ; 74 06
    1498114996    dec si                                    ; 4e
    1498214997    cmp si, strict byte 0ffffh                ; 83 fe ff
    14983     je short 09c39h                           ; 74 14
     14998    je short 09c5ah                           ; 74 14
    1498414999    add bx, word [bp-010h]                    ; 03 5e f0
    1498515000    mov dx, bx                                ; 89 da
     
    1498815003    xor ah, ah                                ; 30 e4
    1498915004    cmp dx, ax                                ; 39 c2
    14990     jnbe short 09c39h                         ; 77 03
    14991     jmp near 09b75h                           ; e9 3c ff
     15005    jnbe short 09c5ah                         ; 77 03
     15006    jmp near 09b96h                           ; e9 3c ff
    1499215007    cmp si, strict byte 0ffffh                ; 83 fe ff
    14993     jne short 09c42h                          ; 75 04
     15008    jne short 09c63h                          ; 75 04
    1499415009    mov ax, bx                                ; 89 d8
    14995     jmp short 09c45h                          ; eb 03
     15010    jmp short 09c66h                          ; eb 03
    1499615011    mov ax, strict word 0ffffh                ; b8 ff ff
    1499715012    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1500015015    pop bp                                    ; 5d
    1500115016    retn                                      ; c3
    15002     cmp word [di-062aeh], bx                  ; 39 9d 52 9d
    15003     db  064h, 09dh
    15004     ; fs popfw                                  ; 64 9d
    15005     js short 09bf1h                           ; 78 9d
    15006     mov bl, byte [di-06263h]                  ; 8a 9d 9d 9d
    15007 _pci16_function:                             ; 0xf9c58 LB 0x1d2
     15017    pop dx                                    ; 5a
     15018    popfw                                     ; 9d
     15019    jnc short 09c0eh                          ; 73 9d
     15020    test word [di-06267h], bx                 ; 85 9d 99 9d
     15021    stosw                                     ; ab
     15022    popfw                                     ; 9d
     15023    db  0beh
     15024    popfw                                     ; 9d
     15025_pci16_function:                             ; 0xf9c79 LB 0x1d2
    1500815026    push bp                                   ; 55
    1500915027    mov bp, sp                                ; 89 e5
     
    1501915037    xor ah, ah                                ; 30 e4
    1502015038    cmp bx, strict byte 00003h                ; 83 fb 03
    15021     jc short 09c8ah                           ; 72 13
    15022     jbe short 09cddh                          ; 76 64
     15039    jc short 09cabh                           ; 72 13
     15040    jbe short 09cfeh                          ; 76 64
    1502315041    cmp bx, strict byte 0000eh                ; 83 fb 0e
    15024     je short 09ce5h                           ; 74 67
     15042    je short 09d06h                           ; 74 67
    1502515043    cmp bx, strict byte 00008h                ; 83 fb 08
    15026     jc short 09c94h                           ; 72 11
     15044    jc short 09cb5h                           ; 72 11
    1502715045    cmp bx, strict byte 0000dh                ; 83 fb 0d
    15028     jbe short 09ce8h                          ; 76 60
    15029     jmp short 09c94h                          ; eb 0a
     15046    jbe short 09d09h                          ; 76 60
     15047    jmp short 09cb5h                          ; eb 0a
    1503015048    cmp bx, strict byte 00002h                ; 83 fb 02
    15031     je short 09cb3h                           ; 74 24
     15049    je short 09cd4h                           ; 74 24
    1503215050    cmp bx, strict byte 00001h                ; 83 fb 01
    15033     je short 09c97h                           ; 74 03
    15034     jmp near 09df6h                           ; e9 5f 01
     15051    je short 09cb8h                           ; 74 03
     15052    jmp near 09e17h                           ; e9 5f 01
    1503515053    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1503615054    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1503815056    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1503915057    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    15040     jmp near 09e23h                           ; e9 70 01
     15058    jmp near 09e44h                           ; e9 70 01
    1504115059    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    15042     jne short 09cbfh                          ; 75 06
     15060    jne short 09ce0h                          ; 75 06
    1504315061    or ah, 083h                               ; 80 cc 83
    15044     jmp near 09e1ch                           ; e9 5d 01
     15062    jmp near 09e3dh                           ; e9 5d 01
    1504515063    mov bx, word [bp+008h]                    ; 8b 5e 08
    1504615064    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1504715065    mov ax, word [bp+018h]                    ; 8b 46 18
    1504815066    xor cx, cx                                ; 31 c9
    15049     call 09b5fh                               ; e8 92 fe
     15067    call 09b80h                               ; e8 92 fe
    1505015068    cmp ax, strict word 0ffffh                ; 3d ff ff
    15051     jne short 09cdfh                          ; 75 0d
     15069    jne short 09d00h                          ; 75 0d
    1505215070    mov ax, word [bp+020h]                    ; 8b 46 20
    1505315071    xor ah, ah                                ; 30 e4
    1505415072    or ah, 086h                               ; 80 cc 86
    15055     jmp near 09e1ch                           ; e9 3f 01
    15056     jmp short 09ceah                          ; eb 0b
     15073    jmp near 09e3dh                           ; e9 3f 01
     15074    jmp short 09d0bh                          ; eb 0b
    1505715075    mov word [bp+014h], ax                    ; 89 46 14
    15058     jmp near 09e23h                           ; e9 3e 01
    15059     jmp near 09db1h                           ; e9 c9 00
    15060     jmp short 09d0fh                          ; eb 25
     15076    jmp near 09e44h                           ; e9 3e 01
     15077    jmp near 09dd2h                           ; e9 c9 00
     15078    jmp short 09d30h                          ; eb 25
    1506115079    mov bx, word [bp+008h]                    ; 8b 5e 08
    1506215080    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1506315081    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1506415082    mov cx, strict word 00001h                ; b9 01 00
    15065     call 09b5fh                               ; e8 66 fe
     15083    call 09b80h                               ; e8 66 fe
    1506615084    cmp ax, strict word 0ffffh                ; 3d ff ff
    15067     jne short 09d09h                          ; 75 0b
     15085    jne short 09d2ah                          ; 75 0b
    1506815086    mov ax, word [bp+020h]                    ; 8b 46 20
    1506915087    xor ah, ah                                ; 30 e4
    1507015088    or ah, 086h                               ; 80 cc 86
    15071     jmp near 09e1ch                           ; e9 13 01
     15089    jmp near 09e3dh                           ; e9 13 01
    1507215090    mov word [bp+014h], ax                    ; 89 46 14
    15073     jmp near 09e23h                           ; e9 14 01
     15091    jmp near 09e44h                           ; e9 14 01
    1507415092    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    15075     jc short 09d1ch                           ; 72 06
     15093    jc short 09d3dh                           ; 72 06
    1507615094    or ah, 087h                               ; 80 cc 87
    15077     jmp near 09e1ch                           ; e9 00 01
     15095    jmp near 09e3dh                           ; e9 00 01
    1507815096    mov dx, word [bp+004h]                    ; 8b 56 04
    1507915097    mov ax, word [bp+014h]                    ; 8b 46 14
    15080     call 09b3bh                               ; e8 16 fe
     15098    call 09b5ch                               ; e8 16 fe
    1508115099    mov bx, word [bp+020h]                    ; 8b 5e 20
    1508215100    xor bh, bh                                ; 30 ff
    1508315101    sub bx, strict byte 00008h                ; 83 eb 08
    1508415102    cmp bx, strict byte 00005h                ; 83 fb 05
    15085     jnbe short 09d9ah                         ; 77 68
     15103    jnbe short 09dbbh                         ; 77 68
    1508615104    add bx, bx                                ; 01 db
    15087     jmp word [cs:bx-063b4h]                   ; 2e ff a7 4c 9c
     15105    jmp word [cs:bx-06393h]                   ; 2e ff a7 6d 9c
    1508815106    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1508915107    xor bl, bl                                ; 30 db
     
    1509615114    or bx, ax                                 ; 09 c3
    1509715115    mov word [bp+01ch], bx                    ; 89 5e 1c
    15098     jmp short 09d9ah                          ; eb 48
     15116    jmp short 09dbbh                          ; eb 48
    1509915117    mov dx, word [bp+004h]                    ; 8b 56 04
    1510015118    xor dh, dh                                ; 30 f6
     
    1510315121    in ax, DX                                 ; ed
    1510415122    mov word [bp+01ch], ax                    ; 89 46 1c
    15105     jmp short 09d9ah                          ; eb 36
     15123    jmp short 09dbbh                          ; eb 36
    1510615124    mov dx, 00cfch                            ; ba fc 0c
    1510715125    in eax, DX                                ; 66 ed
     
    1511215130    mov word [bp+01ch], ax                    ; 89 46 1c
    1511315131    mov word [bp+01eh], dx                    ; 89 56 1e
    15114     jmp short 09d9ah                          ; eb 22
     15132    jmp short 09dbbh                          ; eb 22
    1511515133    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1511615134    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1511915137    add dx, 00cfch                            ; 81 c2 fc 0c
    1512015138    out DX, AL                                ; ee
    15121     jmp short 09d9ah                          ; eb 10
     15139    jmp short 09dbbh                          ; eb 10
    1512215140    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1512315141    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1512615144    add dx, 00cfch                            ; 81 c2 fc 0c
    1512715145    out DX, ax                                ; ef
    15128     jmp near 09e23h                           ; e9 86 00
     15146    jmp near 09e44h                           ; e9 86 00
    1512915147    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1513015148    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1513515153    ; mov ax, cx                                ; 8b c1
    1513615154    out DX, eax                               ; 66 ef
    15137     jmp short 09e23h                          ; eb 72
     15155    jmp short 09e44h                          ; eb 72
    1513815156    mov bx, word [bp+004h]                    ; 8b 5e 04
    1513915157    mov es, [bp+026h]                         ; 8e 46 26
    1514015158    mov word [bp-008h], bx                    ; 89 5e f8
    1514115159    mov [bp-006h], es                         ; 8c 46 fa
    15142     mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
     15160    mov cx, word [0f380h]                     ; 8b 0e 80 f3
    1514315161    cmp cx, word [es:bx]                      ; 26 3b 0f
    15144     jbe short 09dd7h                          ; 76 11
     15162    jbe short 09df8h                          ; 76 11
    1514515163    mov ax, word [bp+020h]                    ; 8b 46 20
    1514615164    xor ah, ah                                ; 30 e4
     
    1514815166    mov word [bp+020h], ax                    ; 89 46 20
    1514915167    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15150     jmp short 09debh                          ; eb 14
     15168    jmp short 09e0ch                          ; eb 14
    1515115169    les di, [es:bx+002h]                      ; 26 c4 7f 02
    15152     mov si, 0f2c0h                            ; be c0 f2
     15170    mov si, 0f1a0h                            ; be a0 f1
    1515315171    mov dx, ds                                ; 8c da
    1515415172    push DS                                   ; 1e
     
    1515715175    pop DS                                    ; 1f
    1515815176    mov word [bp+014h], 00a00h                ; c7 46 14 00 0a
    15159     mov ax, word [0f4a0h]                     ; a1 a0 f4
     15177    mov ax, word [0f380h]                     ; a1 80 f3
    1516015178    les bx, [bp-008h]                         ; c4 5e f8
    1516115179    mov word [es:bx], ax                      ; 26 89 07
    15162     jmp short 09e23h                          ; eb 2d
     15180    jmp short 09e44h                          ; eb 2d
    1516315181    mov bx, 00da0h                            ; bb a0 0d
    1516415182    mov cx, ds                                ; 8c d9
    1516515183    mov ax, strict word 00004h                ; b8 04 00
    15166     call 01923h                               ; e8 22 7b
     15184    call 01923h                               ; e8 01 7b
    1516715185    mov ax, word [bp+014h]                    ; 8b 46 14
    1516815186    push ax                                   ; 50
     
    1517115189    push 00d5ch                               ; 68 5c 0d
    1517215190    push strict byte 00004h                   ; 6a 04
    15173     call 01966h                               ; e8 55 7b
     15191    call 01966h                               ; e8 34 7b
    1517415192    add sp, strict byte 00008h                ; 83 c4 08
    1517515193    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1518315201    pop bp                                    ; 5d
    1518415202    retn                                      ; c3
    15185 pci_find_classcode_:                         ; 0xf9e2a LB 0x8
     15203pci_find_classcode_:                         ; 0xf9e4b LB 0x8
    1518615204    push bp                                   ; 55
    1518715205    mov bp, sp                                ; 89 e5
     
    1518915207    pop bp                                    ; 5d
    1519015208    retn                                      ; c3
    15191 pci_read_config_byte_:                       ; 0xf9e32 LB 0x2e
     15209pci_read_config_byte_:                       ; 0xf9e53 LB 0x2e
    1519215210    push bp                                   ; 55
    1519315211    mov bp, sp                                ; 89 e5
     
    1521515233    pop bp                                    ; 5d
    1521615234    retn                                      ; c3
    15217 pci_read_config_word_:                       ; 0xf9e60 LB 0x2a
     15235pci_read_config_word_:                       ; 0xf9e81 LB 0x2a
    1521815236    push bp                                   ; 55
    1521915237    mov bp, sp                                ; 89 e5
     
    1523915257    pop bp                                    ; 5d
    1524015258    retn                                      ; c3
    15241 pci_read_config_dword_:                      ; 0xf9e8a LB 0x4e
     15259pci_read_config_dword_:                      ; 0xf9eab LB 0x4e
    1524215260    push bp                                   ; 55
    1524315261    mov bp, sp                                ; 89 e5
     
    1526115279    int 01ah                                  ; cd 1a
    1526215280    test cx, cx                               ; 85 c9
    15263     jne short 09ec9h                          ; 75 14
     15281    jne short 09eeah                          ; 75 14
    1526415282    mov al, byte [bp-006h]                    ; 8a 46 fa
    1526515283    xor ah, ah                                ; 30 e4
     
    1527115289    int 01ah                                  ; cd 1a
    1527215290    test cx, cx                               ; 85 c9
    15273     je short 09eceh                           ; 74 05
     15291    je short 09eefh                           ; 74 05
    1527415292    mov ax, strict word 00001h                ; b8 01 00
    15275     jmp short 09ed0h                          ; eb 02
     15293    jmp short 09ef1h                          ; eb 02
    1527615294    xor ax, ax                                ; 31 c0
    1527715295    cwd                                       ; 99
     
    1528115299    pop bp                                    ; 5d
    1528215300    retn                                      ; c3
    15283 vds_is_present_:                             ; 0xf9ed8 LB 0x1d
     15301pci_write_config_word_:                      ; 0xf9ef9 LB 0x25
     15302    push bp                                   ; 55
     15303    mov bp, sp                                ; 89 e5
     15304    push di                                   ; 57
     15305    push ax                                   ; 50
     15306    mov byte [bp-004h], al                    ; 88 46 fc
     15307    mov al, bl                                ; 88 d8
     15308    xor ah, ah                                ; 30 e4
     15309    mov di, ax                                ; 89 c7
     15310    mov al, byte [bp-004h]                    ; 8a 46 fc
     15311    mov bx, ax                                ; 89 c3
     15312    sal bx, 008h                              ; c1 e3 08
     15313    mov al, dl                                ; 88 d0
     15314    or bx, ax                                 ; 09 c3
     15315    mov ax, 0b10ch                            ; b8 0c b1
     15316    int 01ah                                  ; cd 1a
     15317    lea sp, [bp-002h]                         ; 8d 66 fe
     15318    pop di                                    ; 5f
     15319    pop bp                                    ; 5d
     15320    retn                                      ; c3
     15321vds_is_present_:                             ; 0xf9f1e LB 0x1d
    1528415322    push bx                                   ; 53
    1528515323    push bp                                   ; 55
     
    1528915327    mov es, ax                                ; 8e c0
    1529015328    test byte [es:bx], 020h                   ; 26 f6 07 20
    15291     je short 09ef0h                           ; 74 06
     15329    je short 09f36h                           ; 74 06
    1529215330    mov ax, strict word 00001h                ; b8 01 00
    1529315331    pop bp                                    ; 5d
     
    1529815336    pop bx                                    ; 5b
    1529915337    retn                                      ; c3
    15300 vds_real_to_lin_:                            ; 0xf9ef5 LB 0x1e
     15338vds_real_to_lin_:                            ; 0xf9f3b LB 0x1e
    1530115339    push bx                                   ; 53
    1530215340    push cx                                   ; 51
     
    1530915347    sal ax, 1                                 ; d1 e0
    1531015348    rcl dx, 1                                 ; d1 d2
    15311     loop 09f03h                               ; e2 fa
     15349    loop 09f49h                               ; e2 fa
    1531215350    xor cx, cx                                ; 31 c9
    1531315351    add ax, bx                                ; 01 d8
     
    1531715355    pop bx                                    ; 5b
    1531815356    retn                                      ; c3
    15319 vds_build_sg_list_:                          ; 0xf9f13 LB 0x77
     15357vds_build_sg_list_:                          ; 0xf9f59 LB 0x77
    1532015358    push bp                                   ; 55
    1532115359    mov bp, sp                                ; 89 e5
     
    1533115369    mov bx, word [bp+006h]                    ; 8b 5e 06
    1533215370    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15333     call 09ef5h                               ; e8 c3 ff
     15371    call 09f3bh                               ; e8 c3 ff
    1533415372    mov es, si                                ; 8e c6
    1533515373    mov word [es:di+004h], ax                 ; 26 89 45 04
    1533615374    mov word [es:di+006h], dx                 ; 26 89 55 06
    1533715375    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15338     call 09ed8h                               ; e8 93 ff
     15376    call 09f1eh                               ; e8 93 ff
    1533915377    test ax, ax                               ; 85 c0
    15340     je short 09f5ah                           ; 74 11
     15378    je short 09fa0h                           ; 74 11
    1534115379    mov es, si                                ; 8e c6
    1534215380    mov ax, 08105h                            ; b8 05 81
    1534315381    mov dx, strict word 00000h                ; ba 00 00
    1534415382    int 04bh                                  ; cd 4b
    15345     jc short 09f57h                           ; 72 02
     15383    jc short 09f9dh                           ; 72 02
    1534615384    db  032h, 0c0h
    1534715385    ; xor al, al                                ; 32 c0
    1534815386    cbw                                       ; 98
    15349     jmp short 09f81h                          ; eb 27
     15387    jmp short 09fc7h                          ; eb 27
    1535015388    mov es, si                                ; 8e c6
    1535115389    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1536415402    pop bp                                    ; 5d
    1536515403    retn 00004h                               ; c2 04 00
    15366 vds_free_sg_list_:                           ; 0xf9f8a LB 0x36
     15404vds_free_sg_list_:                           ; 0xf9fd0 LB 0x30
    1536715405    push bp                                   ; 55
    1536815406    mov bp, sp                                ; 89 e5
     
    1537015408    push di                                   ; 57
    1537115409    mov bx, ax                                ; 89 c3
    15372     call 09ed8h                               ; e8 44 ff
     15410    call 09f1eh                               ; e8 44 ff
    1537315411    test ax, ax                               ; 85 c0
    15374     je short 09fa9h                           ; 74 11
     15412    je short 09fefh                           ; 74 11
    1537515413    mov di, bx                                ; 89 df
    1537615414    mov es, dx                                ; 8e c2
     
    1537815416    mov dx, strict word 00000h                ; ba 00 00
    1537915417    int 04bh                                  ; cd 4b
    15380     jc short 09fa8h                           ; 72 02
     15418    jc short 09feeh                           ; 72 02
    1538115419    db  032h, 0c0h
    1538215420    ; xor al, al                                ; 32 c0
     
    1538915427    pop bp                                    ; 5d
    1539015428    retn                                      ; c3
    15391     times 0x8 db 0
    15392 __U4M:                                       ; 0xf9fc0 LB 0x20
     15429    times 0x2 db 0
     15430__U4M:                                       ; 0xfa000 LB 0x20
    1539315431    pushfw                                    ; 9c
    1539415432    push si                                   ; 56
     
    1541715455    retn                                      ; c3
    1541815456    times 0x4 db 0
    15419 __U4D:                                       ; 0xf9fe0 LB 0x30
     15457__U4D:                                       ; 0xfa020 LB 0x30
    1542015458    pushfw                                    ; 9c
    1542115459    push DS                                   ; 1e
     
    1543215470    push dx                                   ; 52
    1543315471    push ax                                   ; 50
    15434     call 0a0c5h                               ; e8 d0 00
     15472    call 0a105h                               ; e8 d0 00
    1543515473    mov cx, word [bp-002h]                    ; 8b 4e fe
    1543615474    mov bx, word [bp-004h]                    ; 8b 5e fc
     
    1544315481    retn                                      ; c3
    1544415482    times 0xe db 0
    15445 __U8RS:                                      ; 0xfa010 LB 0x10
     15483__U8RS:                                      ; 0xfa050 LB 0x10
    1544615484    test si, si                               ; 85 f6
    15447     je short 0a01fh                           ; 74 0b
     15485    je short 0a05fh                           ; 74 0b
    1544815486    shr ax, 1                                 ; d1 e8
    1544915487    rcr bx, 1                                 ; d1 db
     
    1545115489    rcr dx, 1                                 ; d1 da
    1545215490    dec si                                    ; 4e
    15453     jne short 0a014h                          ; 75 f5
     15491    jne short 0a054h                          ; 75 f5
    1545415492    retn                                      ; c3
    15455 __U8LS:                                      ; 0xfa020 LB 0x10
     15493__U8LS:                                      ; 0xfa060 LB 0x10
    1545615494    test si, si                               ; 85 f6
    15457     je short 0a02fh                           ; 74 0b
     15495    je short 0a06fh                           ; 74 0b
    1545815496    sal dx, 1                                 ; d1 e2
    1545915497    rcl cx, 1                                 ; d1 d1
     
    1546115499    rcl ax, 1                                 ; d1 d0
    1546215500    dec si                                    ; 4e
    15463     jne short 0a024h                          ; 75 f5
     15501    jne short 0a064h                          ; 75 f5
    1546415502    retn                                      ; c3
    15465 _fmemset_:                                   ; 0xfa030 LB 0x10
     15503_fmemset_:                                   ; 0xfa070 LB 0x10
    1546615504    push di                                   ; 57
    1546715505    mov es, dx                                ; 8e c2
     
    1547415512    retn                                      ; c3
    1547515513    times 0x3 db 0
    15476 _fmemcpy_:                                   ; 0xfa040 LB 0x3a
     15514_fmemcpy_:                                   ; 0xfa080 LB 0x3a
    1547715515    push bp                                   ; 55
    1547815516    db  08bh, 0ech
     
    1549915537    add byte [bx+si], al                      ; 00 00
    1550015538    add byte [bx+si], al                      ; 00 00
    15501     nop                                       ; 90
    15502     mov AL, byte [0a092h]                     ; a0 92 a0
    15503     xchg si, ax                               ; 96
    15504     mov AL, byte [0a096h]                     ; a0 96 a0
    15505     xchg si, ax                               ; 96
    15506     mov AL, byte [0a098h]                     ; a0 98 a0
    15507     cbw                                       ; 98
    15508     mov AL, byte [0a09ah]                     ; a0 9a a0
    15509     sahf                                      ; 9e
    15510     mov AL, byte [0a09eh]                     ; a0 9e a0
    15511     mov AL, byte [0a5a0h]                     ; a0 a0 a5
    15512     mov AL, byte [0a0a7h]                     ; a0 a7 a0
    15513 apm_worker:                                  ; 0xfa07a LB 0x3a
     15539    sal byte [bx+si-05f2eh], 1                ; d0 a0 d2 a0
     15540    db  0d6h
     15541    mov AL, byte [0a0d6h]                     ; a0 d6 a0
     15542    db  0d6h
     15543    mov AL, byte [0a0d8h]                     ; a0 d8 a0
     15544    fsub dword [bx+si-05f26h]                 ; d8 a0 da a0
     15545    fisub word [bx+si-05f22h]                 ; de a0 de a0
     15546    loopne 0a056h                             ; e0 a0
     15547    in ax, 0a0h                               ; e5 a0
     15548    out 0a0h, ax                              ; e7 a0
     15549apm_worker:                                  ; 0xfa0ba LB 0x3a
    1551415550    sti                                       ; fb
    1551515551    push ax                                   ; 50
     
    1552315559    pop ax                                    ; 58
    1552415560    mov AH, strict byte 053h                  ; b4 53
    15525     jnc short 0a0b0h                          ; 73 25
    15526     jmp word [cs:bp-05fa0h]                   ; 2e ff a6 60 a0
    15527     jmp short 0a0aeh                          ; eb 1c
     15561    jnc short 0a0f0h                          ; 73 25
     15562    jmp word [cs:bp-05f60h]                   ; 2e ff a6 a0 a0
     15563    jmp short 0a0eeh                          ; eb 1c
    1552815564    sti                                       ; fb
    1552915565    hlt                                       ; f4
    15530     jmp short 0a0aeh                          ; eb 18
    15531     jmp short 0a0aeh                          ; eb 16
    15532     jmp short 0a0b0h                          ; eb 16
     15566    jmp short 0a0eeh                          ; eb 18
     15567    jmp short 0a0eeh                          ; eb 16
     15568    jmp short 0a0f0h                          ; eb 16
    1553315569    mov AH, strict byte 080h                  ; b4 80
    15534     jmp short 0a0b2h                          ; eb 14
    15535     jmp short 0a0b0h                          ; eb 10
     15570    jmp short 0a0f2h                          ; eb 14
     15571    jmp short 0a0f0h                          ; eb 10
    1553615572    mov ax, 00102h                            ; b8 02 01
    15537     jmp short 0a0aeh                          ; eb 09
    15538     jmp short 0a0aeh                          ; eb 07
     15573    jmp short 0a0eeh                          ; eb 09
     15574    jmp short 0a0eeh                          ; eb 07
    1553915575    mov BL, strict byte 000h                  ; b3 00
    1554015576    mov cx, strict word 00000h                ; b9 00 00
    15541     jmp short 0a0aeh                          ; eb 00
     15577    jmp short 0a0eeh                          ; eb 00
    1554215578    clc                                       ; f8
    1554315579    retn                                      ; c3
     
    1554515581    stc                                       ; f9
    1554615582    retn                                      ; c3
    15547 apm_pm16_entry:                              ; 0xfa0b4 LB 0x11
     15583apm_pm16_entry:                              ; 0xfa0f4 LB 0x11
    1554815584    mov AH, strict byte 002h                  ; b4 02
    1554915585    push DS                                   ; 1e
     
    1555315589    add bp, strict byte 00008h                ; 83 c5 08
    1555415590    mov ds, bp                                ; 8e dd
    15555     call 0a07ah                               ; e8 b8 ff
     15591    call 0a0bah                               ; e8 b8 ff
    1555615592    pop bp                                    ; 5d
    1555715593    pop DS                                    ; 1f
    1555815594    retf                                      ; cb
    15559 _DoUInt32Div:                                ; 0xfa0c5 LB 0x26b
     15595_DoUInt32Div:                                ; 0xfa105 LB 0x26b
    1556015596    push bp                                   ; 55
    1556115597    mov bp, sp                                ; 89 e5
     
    1557515611    mov [bp-006h], ds                         ; 8c 5e fa
    1557615612    cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
    15577     jne short 0a115h                          ; 75 22
     15613    jne short 0a155h                          ; 75 22
    1557815614    mov ax, word [bx]                         ; 8b 07
    1557915615    test ax, ax                               ; 85 c0
    15580     je short 0a112h                           ; 74 19
     15616    je short 0a152h                           ; 74 19
    1558115617    cmp ax, strict word 00001h                ; 3d 01 00
    15582     jne short 0a115h                          ; 75 17
     15618    jne short 0a155h                          ; 75 17
    1558315619    xor ax, ax                                ; 31 c0
    1558415620    mov word [bp+00ah], ax                    ; 89 46 0a
     
    1558815624    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1558915625    mov word [bp+006h], ax                    ; 89 46 06
    15590     jmp near 0a31dh                           ; e9 08 02
     15626    jmp near 0a35dh                           ; e9 08 02
    1559115627    lds bx, [bp-00ch]                         ; c5 5e f4
    1559215628    mov ax, word [bx+002h]                    ; 8b 47 02
    1559315629    mov ds, [bp-006h]                         ; 8e 5e fa
    1559415630    cmp ax, word [si+002h]                    ; 3b 44 02
    15595     je short 0a13bh                           ; 74 18
     15631    je short 0a17bh                           ; 74 18
    1559615632    mov ds, [bp-00ah]                         ; 8e 5e f6
    1559715633    mov ax, word [bx+002h]                    ; 8b 47 02
    1559815634    mov ds, [bp-006h]                         ; 8e 5e fa
    1559915635    cmp ax, word [si+002h]                    ; 3b 44 02
    15600     jbe short 0a136h                          ; 76 05
     15636    jbe short 0a176h                          ; 76 05
    1560115637    mov ax, strict word 00001h                ; b8 01 00
    15602     jmp short 0a15ch                          ; eb 26
     15638    jmp short 0a19ch                          ; eb 26
    1560315639    mov ax, strict word 0ffffh                ; b8 ff ff
    15604     jmp short 0a15ch                          ; eb 21
     15640    jmp short 0a19ch                          ; eb 21
    1560515641    mov ds, [bp-00ah]                         ; 8e 5e f6
    1560615642    mov ax, word [bx]                         ; 8b 07
    1560715643    mov ds, [bp-006h]                         ; 8e 5e fa
    1560815644    cmp ax, word [si]                         ; 3b 04
    15609     je short 0a15ah                           ; 74 13
     15645    je short 0a19ah                           ; 74 13
    1561015646    mov ds, [bp-00ah]                         ; 8e 5e f6
    1561115647    mov ax, word [bx]                         ; 8b 07
    1561215648    mov ds, [bp-006h]                         ; 8e 5e fa
    1561315649    cmp ax, word [si]                         ; 3b 04
    15614     jbe short 0a155h                          ; 76 02
    15615     jmp short 0a131h                          ; eb dc
     15650    jbe short 0a195h                          ; 76 02
     15651    jmp short 0a171h                          ; eb dc
    1561615652    mov ax, strict word 0ffffh                ; b8 ff ff
    15617     jmp short 0a15ch                          ; eb 02
     15653    jmp short 0a19ch                          ; eb 02
    1561815654    xor ax, ax                                ; 31 c0
    1561915655    test ax, ax                               ; 85 c0
    15620     jnl short 0a17eh                          ; 7d 1e
     15656    jnl short 0a1beh                          ; 7d 1e
    1562115657    lds bx, [bp-00ch]                         ; c5 5e f4
    1562215658    mov ax, word [bx]                         ; 8b 07
     
    1562815664    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
    1562915665    mov word [bx], strict word 00000h         ; c7 07 00 00
    15630     jmp short 0a112h                          ; eb 94
    15631     jne short 0a195h                          ; 75 15
     15666    jmp short 0a152h                          ; eb 94
     15667    jne short 0a1d5h                          ; 75 15
    1563215668    mov ds, [bp-008h]                         ; 8e 5e f8
    1563315669    mov word [di+002h], ax                    ; 89 45 02
     
    1563615672    mov word [bx], strict word 00001h         ; c7 07 01 00
    1563715673    mov word [bx+002h], ax                    ; 89 47 02
    15638     jmp near 0a31dh                           ; e9 88 01
     15674    jmp near 0a35dh                           ; e9 88 01
    1563915675    lds bx, [bp-00ch]                         ; c5 5e f4
    1564015676    mov ax, word [bx+002h]                    ; 8b 47 02
    1564115677    test ax, ax                               ; 85 c0
    15642     je short 0a1b0h                           ; 74 11
     15678    je short 0a1f0h                           ; 74 11
    1564315679    push ax                                   ; 50
    1564415680    mov ax, 0f000h                            ; b8 00 f0
    1564515681    mov ds, ax                                ; 8e d8
    15646     call 0a330h                               ; e8 88 01
     15682    call 0a370h                               ; e8 88 01
    1564715683    add sp, strict byte 00002h                ; 83 c4 02
    1564815684    add ax, strict word 00010h                ; 05 10 00
    15649     jmp short 0a1bdh                          ; eb 0d
     15685    jmp short 0a1fdh                          ; eb 0d
    1565015686    push word [bx]                            ; ff 37
    1565115687    mov ax, 0f000h                            ; b8 00 f0
    1565215688    mov ds, ax                                ; 8e d8
    15653     call 0a330h                               ; e8 76 01
     15689    call 0a370h                               ; e8 76 01
    1565415690    add sp, strict byte 00002h                ; 83 c4 02
    1565515691    mov word [bp-014h], ax                    ; 89 46 ec
     
    1565715693    mov ax, word [si+002h]                    ; 8b 44 02
    1565815694    test ax, ax                               ; 85 c0
    15659     je short 0a1dbh                           ; 74 11
     15695    je short 0a21bh                           ; 74 11
    1566015696    push ax                                   ; 50
    1566115697    mov ax, 0f000h                            ; b8 00 f0
    1566215698    mov ds, ax                                ; 8e d8
    15663     call 0a330h                               ; e8 5d 01
     15699    call 0a370h                               ; e8 5d 01
    1566415700    add sp, strict byte 00002h                ; 83 c4 02
    1566515701    add ax, strict word 00010h                ; 05 10 00
    15666     jmp short 0a1e8h                          ; eb 0d
     15702    jmp short 0a228h                          ; eb 0d
    1566715703    push word [si]                            ; ff 34
    1566815704    mov ax, 0f000h                            ; b8 00 f0
    1566915705    mov ds, ax                                ; 8e d8
    15670     call 0a330h                               ; e8 4b 01
     15706    call 0a370h                               ; e8 4b 01
    1567115707    add sp, strict byte 00002h                ; 83 c4 02
    1567215708    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    1567915715    mov word [bp-016h], ax                    ; 89 46 ea
    1568015716    test dx, dx                               ; 85 d2
    15681     je short 0a258h                           ; 74 56
     15717    je short 0a298h                           ; 74 56
    1568215718    mov cx, dx                                ; 89 d1
    1568315719    xor ch, dh                                ; 30 f5
     
    1568515721    mov ax, word [si]                         ; 8b 04
    1568615722    mov dx, word [si+002h]                    ; 8b 54 02
    15687     jcxz 0a216h                               ; e3 06
     15723    jcxz 0a256h                               ; e3 06
    1568815724    sal ax, 1                                 ; d1 e0
    1568915725    rcl dx, 1                                 ; d1 d2
    15690     loop 0a210h                               ; e2 fa
     15726    loop 0a250h                               ; e2 fa
    1569115727    mov word [bp-018h], ax                    ; 89 46 e8
    1569215728    mov word [bp-016h], dx                    ; 89 56 ea
     
    1569415730    lds bx, [bp-00ch]                         ; c5 5e f4
    1569515731    cmp ax, word [bx+002h]                    ; 3b 47 02
    15696     jnbe short 0a236h                         ; 77 0f
     15732    jnbe short 0a276h                         ; 77 0f
    1569715733    mov ax, word [bp-016h]                    ; 8b 46 ea
    1569815734    cmp ax, word [bx+002h]                    ; 3b 47 02
    15699     jne short 0a23ah                          ; 75 0b
     15735    jne short 0a27ah                          ; 75 0b
    1570015736    mov ax, word [bp-018h]                    ; 8b 46 e8
    1570115737    cmp ax, word [bx]                         ; 3b 07
    15702     jbe short 0a23ah                          ; 76 04
     15738    jbe short 0a27ah                          ; 76 04
    1570315739    mov AL, strict byte 001h                  ; b0 01
    15704     jmp short 0a23ch                          ; eb 02
     15740    jmp short 0a27ch                          ; eb 02
    1570515741    xor al, al                                ; 30 c0
    1570615742    test al, al                               ; 84 c0
    15707     je short 0a263h                           ; 74 23
     15743    je short 0a2a3h                           ; 74 23
    1570815744    shr word [bp-016h], 1                     ; d1 6e ea
    1570915745    rcr word [bp-018h], 1                     ; d1 5e e8
    1571015746    dec word [bp-012h]                        ; ff 4e ee
    15711     jmp short 0a263h                          ; eb 18
     15747    jmp short 0a2a3h                          ; eb 18
    1571215748    mov cx, strict word 0001fh                ; b9 1f 00
    1571315749    sal word [bp-018h], 1                     ; d1 66 e8
    1571415750    rcl word [bp-016h], 1                     ; d1 56 ea
    15715     loop 0a24eh                               ; e2 f8
    15716     jmp short 0a246h                          ; eb ee
     15751    loop 0a28eh                               ; e2 f8
     15752    jmp short 0a286h                          ; eb ee
    1571715753    mov ax, word [si]                         ; 8b 04
    1571815754    mov word [bp-018h], ax                    ; 89 46 e8
     
    1573115767    mov ds, [bp-006h]                         ; 8e 5e fa
    1573215768    cmp ax, word [si+002h]                    ; 3b 44 02
    15733     jnbe short 0a28fh                         ; 77 06
    15734     jne short 0a293h                          ; 75 08
     15769    jnbe short 0a2cfh                         ; 77 06
     15770    jne short 0a2d3h                          ; 75 08
    1573515771    cmp dx, word [si]                         ; 3b 14
    15736     jc short 0a293h                           ; 72 04
     15772    jc short 0a2d3h                           ; 72 04
    1573715773    mov AL, strict byte 001h                  ; b0 01
    15738     jmp short 0a295h                          ; eb 02
     15774    jmp short 0a2d5h                          ; eb 02
    1573915775    xor al, al                                ; 30 c0
    1574015776    test al, al                               ; 84 c0
    15741     je short 0a2fah                           ; 74 61
     15777    je short 0a33ah                           ; 74 61
    1574215778    mov ds, [bp-008h]                         ; 8e 5e f8
    1574315779    mov ax, word [di+002h]                    ; 8b 45 02
    1574415780    cmp ax, word [bp-016h]                    ; 3b 46 ea
    15745     jnbe short 0a2b0h                         ; 77 0c
     15781    jnbe short 0a2f0h                         ; 77 0c
    1574615782    cmp ax, word [bp-016h]                    ; 3b 46 ea
    15747     jne short 0a2b4h                          ; 75 0b
     15783    jne short 0a2f4h                          ; 75 0b
    1574815784    mov ax, word [di]                         ; 8b 05
    1574915785    cmp ax, word [bp-018h]                    ; 3b 46 e8
    15750     jc short 0a2b4h                           ; 72 04
     15786    jc short 0a2f4h                           ; 72 04
    1575115787    mov AL, strict byte 001h                  ; b0 01
    15752     jmp short 0a2b6h                          ; eb 02
     15788    jmp short 0a2f6h                          ; eb 02
    1575315789    xor al, al                                ; 30 c0
    1575415790    test al, al                               ; 84 c0
    15755     je short 0a2e0h                           ; 74 26
     15791    je short 0a320h                           ; 74 26
    1575615792    mov ax, word [bp-018h]                    ; 8b 46 e8
    1575715793    mov ds, [bp-008h]                         ; 8e 5e f8
     
    1576215798    xor dx, dx                                ; 31 d2
    1576315799    mov cx, word [bp-012h]                    ; 8b 4e ee
    15764     jcxz 0a2d8h                               ; e3 06
     15800    jcxz 0a318h                               ; e3 06
    1576515801    sal ax, 1                                 ; d1 e0
    1576615802    rcl dx, 1                                 ; d1 d2
    15767     loop 0a2d2h                               ; e2 fa
     15803    loop 0a312h                               ; e2 fa
    1576815804    lds bx, [bp-010h]                         ; c5 5e f0
    1576915805    or word [bx], ax                          ; 09 07
     
    1577415810    mov ds, [bp-006h]                         ; 8e 5e fa
    1577515811    cmp ax, word [si+002h]                    ; 3b 44 02
    15776     jc short 0a2f6h                           ; 72 06
    15777     jne short 0a2fch                          ; 75 0a
     15812    jc short 0a336h                           ; 72 06
     15813    jne short 0a33ch                          ; 75 0a
    1577815814    cmp dx, word [si]                         ; 3b 14
    15779     jnc short 0a2fch                          ; 73 06
     15815    jnc short 0a33ch                          ; 73 06
    1578015816    mov AL, strict byte 001h                  ; b0 01
    15781     jmp short 0a2feh                          ; eb 04
    15782     jmp short 0a31dh                          ; eb 21
     15817    jmp short 0a33eh                          ; eb 04
     15818    jmp short 0a35dh                          ; eb 21
    1578315819    xor al, al                                ; 30 c0
    1578415820    test al, al                               ; 84 c0
    15785     je short 0a311h                           ; 74 0f
    15786     jmp short 0a31dh                          ; eb 19
     15821    je short 0a351h                           ; 74 0f
     15822    jmp short 0a35dh                          ; eb 19
    1578715823    mov cx, strict word 0001fh                ; b9 1f 00
    1578815824    sal word [bp-018h], 1                     ; d1 66 e8
    1578915825    rcl word [bp-016h], 1                     ; d1 56 ea
    15790     loop 0a307h                               ; e2 f8
    15791     jmp short 0a317h                          ; eb 06
     15826    loop 0a347h                               ; e2 f8
     15827    jmp short 0a357h                          ; eb 06
    1579215828    shr word [bp-016h], 1                     ; d1 6e ea
    1579315829    rcr word [bp-018h], 1                     ; d1 5e e8
    1579415830    dec word [bp-012h]                        ; ff 4e ee
    15795     jmp near 0a299h                           ; e9 7c ff
     15831    jmp near 0a2d9h                           ; e9 7c ff
    1579615832    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1579715833    mov dx, word [bp-01ah]                    ; 8b 56 e6
     
    1580215838    retn                                      ; c3
    1580315839    times 0x6 db 0
    15804 _ASMBitLastSetU16:                           ; 0xfa330 LB 0x18
     15840_ASMBitLastSetU16:                           ; 0xfa370 LB 0x18
    1580515841    push bp                                   ; 55
    1580615842    db  08bh, 0ech
     
    1580815844    mov cx, word [bp+004h]                    ; 8b 4e 04
    1580915845    test cx, cx                               ; 85 c9
    15810     je short 0a344h                           ; 74 0a
     15846    je short 0a384h                           ; 74 0a
    1581115847    mov ax, strict word 00010h                ; b8 10 00
    1581215848    sal cx, 1                                 ; d1 e1
    15813     jc short 0a346h                           ; 72 05
     15849    jc short 0a386h                           ; 72 05
    1581415850    dec ax                                    ; 48
    15815     jmp short 0a33dh                          ; eb f9
     15851    jmp short 0a37dh                          ; eb f9
    1581615852    db  033h, 0c0h
    1581715853    ; xor ax, ax                                ; 33 c0
     
    1581915855    retn                                      ; c3
    1582015856
    15821   ; Padding 0x36b8 bytes at 0xfa348
    15822   times 14008 db 0
     15857  ; Padding 0x3678 bytes at 0xfa388
     15858  times 13944 db 0
    1582315859
    1582415860section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1586715903    add bp, strict byte 00008h                ; 83 c5 08
    1586815904    push ebp                                  ; 66 55
    15869     mov bp, 0a0b6h                            ; bd b6 a0
     15905    mov bp, 0a0f6h                            ; bd f6 a0
    1587015906    add byte [bx+si], al                      ; 00 00
    1587115907    push ebp                                  ; 66 55
     
    1619916235    mov bx, ax                                ; 89 c3
    1620016236    mov edx, dword [di]                       ; 66 8b 15
    16201     mov AL, byte [000f4h]                     ; a0 f4 00
     16237    xor bl, 000h                              ; 80 f3 00
    1620216238    add byte [bp+026h], ah                    ; 00 66 26
    1620316239    cmp dx, word [bx+si]                      ; 3b 10
     
    1621616252    mov di, word [es:bx+si+002h]              ; 26 8b 78 02
    1621716253    mov dx, ds                                ; 8c da
    16218     mov si, 0f2c0h                            ; be c0 f2
     16254    mov si, 0f1a0h                            ; be a0 f1
    1621916255    add byte [bx+si], al                      ; 00 00
    1622016256    mov es, [di-014h]                         ; 8e 45 ec
     
    1622516261    pop DS                                    ; 1f
    1622616262    mov dword [di+018h], strict dword 0a1660a00h ; 66 c7 45 18 00 0a 66 a1
    16227     mov AL, byte [000f4h]                     ; a0 f4 00
     16263    xor bl, 000h                              ; 80 f3 00
    1622816264    add byte [bp-00fbbh], cl                  ; 00 8e 45 f0
    1622916265    db  066h, 026h, 089h, 003h
     
    1727817314    pop eax                                   ; 66 58
    1727917315    retn                                      ; c3
    17280 pcibios_init_iomem_bases:                    ; 0xff13c LB 0x16
     17316pcibios_init_iomem_bases:                    ; 0xff13c LB 0x12
    1728117317    push bp                                   ; 55
    1728217318    db  08bh, 0ech
    1728317319    ; mov bp, sp                                ; 8b ec
    17284     mov eax, strict dword 0e0000000h          ; 66 b8 00 00 00 e0
    17285     push eax                                  ; 66 50
    17286     mov ax, 0d000h                            ; b8 00 d0
    17287     push ax                                   ; 50
    17288     mov ax, strict word 00010h                ; b8 10 00
    17289     push ax                                   ; 50
    17290     mov bx, strict word 00008h                ; bb 08 00
    17291 pci_init_io_loop1:                           ; 0xff152 LB 0xe
    17292     mov DL, strict byte 000h                  ; b2 00
    17293     call 0f121h                               ; e8 ca ff
    17294     mov dx, 00cfch                            ; ba fc 0c
    17295     in ax, DX                                 ; ed
    17296     cmp ax, strict byte 0ffffh                ; 83 f8 ff
    17297     je short 0f199h                           ; 74 39
    17298 enable_iomem_space:                          ; 0xff160 LB 0x39
    17299     mov DL, strict byte 004h                  ; b2 04
    17300     call 0f121h                               ; e8 bc ff
    17301     mov dx, 00cfch                            ; ba fc 0c
    17302     in AL, DX                                 ; ec
    17303     or AL, strict byte 007h                   ; 0c 07
    17304     out DX, AL                                ; ee
    17305     mov DL, strict byte 000h                  ; b2 00
    17306     call 0f121h                               ; e8 b0 ff
    17307     mov dx, 00cfch                            ; ba fc 0c
    17308     in eax, DX                                ; 66 ed
    17309     cmp eax, strict dword 020001022h          ; 66 3d 22 10 00 20
    17310     jne short 0f199h                          ; 75 1b
    17311     mov DL, strict byte 010h                  ; b2 10
    17312     call 0f121h                               ; e8 9e ff
    17313     mov dx, 00cfch                            ; ba fc 0c
    17314     in ax, DX                                 ; ed
    17315     and ax, strict byte 0fffch                ; 83 e0 fc
    17316     db  08bh, 0c8h
    17317     ; mov cx, ax                                ; 8b c8
    17318     db  08bh, 0d1h
    17319     ; mov dx, cx                                ; 8b d1
    17320     add dx, strict byte 00014h                ; 83 c2 14
    17321     in ax, DX                                 ; ed
    17322     db  08bh, 0d1h
    17323     ; mov dx, cx                                ; 8b d1
    17324     add dx, strict byte 00018h                ; 83 c2 18
    17325     in eax, DX                                ; 66 ed
    17326 next_pci_dev:                                ; 0xff199 LB 0xf
    17327     mov byte [bp-008h], 010h                  ; c6 46 f8 10
    17328     inc bx                                    ; 43
    17329     cmp bx, 00100h                            ; 81 fb 00 01
    17330     jne short 0f152h                          ; 75 ae
     17320    mov eax, strict dword 00124f9fdh          ; 66 b8 fd f9 24 01
     17321    mov dx, 00410h                            ; ba 10 04
     17322    out DX, eax                               ; 66 ef
    1733117323    db  08bh, 0e5h
    1733217324    ; mov sp, bp                                ; 8b e5
    1733317325    pop bp                                    ; 5d
    1733417326    retn                                      ; c3
    17335 pcibios_init_set_elcr:                       ; 0xff1a8 LB 0xc
     17327pcibios_init_set_elcr:                       ; 0xff14e LB 0xc
    1733617328    push ax                                   ; 50
    1733717329    push cx                                   ; 51
    1733817330    mov dx, 004d0h                            ; ba d0 04
    1733917331    test AL, strict byte 008h                 ; a8 08
    17340     je short 0f1b4h                           ; 74 03
     17332    je short 0f15ah                           ; 74 03
    1734117333    inc dx                                    ; 42
    1734217334    and AL, strict byte 007h                  ; 24 07
    17343 is_master_pic:                               ; 0xff1b4 LB 0xd
     17335is_master_pic:                               ; 0xff15a LB 0xd
    1734417336    db  08ah, 0c8h
    1734517337    ; mov cl, al                                ; 8a c8
     
    1735317345    pop ax                                    ; 58
    1735417346    retn                                      ; c3
    17355 pcibios_init_irqs:                           ; 0xff1c1 LB 0x53
     17347pcibios_init_irqs:                           ; 0xff167 LB 0x39
    1735617348    push DS                                   ; 1e
    1735717349    push bp                                   ; 55
    1735817350    mov ax, 0f000h                            ; b8 00 f0
    1735917351    mov ds, ax                                ; 8e d8
    17360     mov dx, 004d0h                            ; ba d0 04
    17361     mov AL, strict byte 000h                  ; b0 00
    17362     out DX, AL                                ; ee
    17363     inc dx                                    ; 42
    17364     out DX, AL                                ; ee
    17365     mov si, 0f2a0h                            ; be a0 f2
    17366     mov bh, byte [si+008h]                    ; 8a 7c 08
    17367     mov bl, byte [si+009h]                    ; 8a 5c 09
    17368     mov DL, strict byte 000h                  ; b2 00
    17369     call 0f121h                               ; e8 43 ff
    17370     mov dx, 00cfch                            ; ba fc 0c
    17371     in eax, DX                                ; 66 ed
    17372     cmp eax, dword [si+00ch]                  ; 66 3b 44 0c
    17373     jne near 0f291h                           ; 0f 85 a6 00
    17374     mov dl, byte [si+022h]                    ; 8a 54 22
    17375     call 0f121h                               ; e8 30 ff
    17376     push bx                                   ; 53
    17377     mov dx, 00cfch                            ; ba fc 0c
    17378     mov ax, 08080h                            ; b8 80 80
    17379     out DX, ax                                ; ef
    17380     add dx, strict byte 00002h                ; 83 c2 02
    17381     out DX, ax                                ; ef
    17382     mov ax, word [si+006h]                    ; 8b 44 06
    17383     sub ax, strict byte 00020h                ; 83 e8 20
    17384     shr ax, 004h                              ; c1 e8 04
    17385     db  08bh, 0c8h
    17386     ; mov cx, ax                                ; 8b c8
    17387     add si, strict byte 00020h                ; 83 c6 20
    17388     db  08bh, 0ech
    17389     ; mov bp, sp                                ; 8b ec
    17390     mov ax, 0f11dh                            ; b8 1d f1
    17391     push ax                                   ; 50
    17392     db  033h, 0c0h
    17393     ; xor ax, ax                                ; 33 c0
    17394     push ax                                   ; 50
    17395 pci_init_irq_loop1:                          ; 0xff214 LB 0x5
    17396     mov bh, byte [si]                         ; 8a 3c
    17397     mov bl, byte [si+001h]                    ; 8a 5c 01
    17398 pci_init_irq_loop2:                          ; 0xff219 LB 0x15
    17399     mov DL, strict byte 000h                  ; b2 00
    17400     call 0f121h                               ; e8 03 ff
    17401     mov dx, 00cfch                            ; ba fc 0c
    17402     in ax, DX                                 ; ed
    17403     cmp ax, strict byte 0ffffh                ; 83 f8 ff
    17404     jne short 0f22eh                          ; 75 07
    17405     test bl, 007h                             ; f6 c3 07
    17406     je short 0f285h                           ; 74 59
    17407     jmp short 0f27bh                          ; eb 4d
    17408 pci_test_int_pin:                            ; 0xff22e LB 0x3c
    17409     mov DL, strict byte 03ch                  ; b2 3c
    17410     call 0f121h                               ; e8 ee fe
    17411     mov dx, 00cfdh                            ; ba fd 0c
    17412     in AL, DX                                 ; ec
    17413     and AL, strict byte 007h                  ; 24 07
    17414     je short 0f27bh                           ; 74 40
    17415     db  0feh, 0c8h
    17416     ; dec al                                    ; fe c8
    17417     mov DL, strict byte 003h                  ; b2 03
    17418     mul dl                                    ; f6 e2
    17419     add AL, strict byte 002h                  ; 04 02
    17420     db  032h, 0e4h
    17421     ; xor ah, ah                                ; 32 e4
    17422     db  08bh, 0d8h
    17423     ; mov bx, ax                                ; 8b d8
    17424     mov al, byte [bx+si]                      ; 8a 00
    17425     db  08ah, 0d0h
    17426     ; mov dl, al                                ; 8a d0
    17427     mov bx, word [byte bp+000h]               ; 8b 5e 00
    17428     call 0f121h                               ; e8 d0 fe
    17429     mov dx, 00cfch                            ; ba fc 0c
    17430     and AL, strict byte 003h                  ; 24 03
    17431     db  002h, 0d0h
    17432     ; add dl, al                                ; 02 d0
    17433     in AL, DX                                 ; ec
    17434     cmp AL, strict byte 080h                  ; 3c 80
    17435     jc short 0f26ah                           ; 72 0d
    17436     mov bx, word [bp-002h]                    ; 8b 5e fe
    17437     mov al, byte [bx]                         ; 8a 07
    17438     out DX, AL                                ; ee
    17439     inc bx                                    ; 43
    17440     mov word [bp-002h], bx                    ; 89 5e fe
    17441     call 0f1a8h                               ; e8 3e ff
    17442 pirq_found:                                  ; 0xff26a LB 0x11
    17443     mov bh, byte [si]                         ; 8a 3c
    17444     mov bl, byte [si+001h]                    ; 8a 5c 01
    17445     add bl, byte [bp-003h]                    ; 02 5e fd
    17446     mov DL, strict byte 03ch                  ; b2 3c
    17447     call 0f121h                               ; e8 aa fe
    17448     mov dx, 00cfch                            ; ba fc 0c
    17449     out DX, AL                                ; ee
    17450 next_pci_func:                               ; 0xff27b LB 0xa
    17451     inc byte [bp-003h]                        ; fe 46 fd
    17452     db  0feh, 0c3h
    17453     ; inc bl                                    ; fe c3
    17454     test bl, 007h                             ; f6 c3 07
    17455     jne short 0f219h                          ; 75 94
    17456 next_pir_entry:                              ; 0xff285 LB 0xc
    17457     add si, strict byte 00010h                ; 83 c6 10
    17458     mov byte [bp-003h], 000h                  ; c6 46 fd 00
    17459     loop 0f214h                               ; e2 86
    17460     db  08bh, 0e5h
    17461     ; mov sp, bp                                ; 8b e5
    17462     pop bx                                    ; 5b
    17463 pci_init_end:                                ; 0xff291 LB 0x2f
    1746417352    pop bp                                    ; 5d
    1746517353    pop DS                                    ; 1f
    1746617354    retn                                      ; c3
    17467     db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 024h, 050h, 049h, 052h
    17468     db  000h, 001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h
    17469     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h
    17470 _pci_routing_table:                          ; 0xff2c0 LB 0x1e0
     17355    mov ax, ax                                ; 89 c0
     17356    mov ax, ax                                ; 89 c0
     17357    mov ax, ax                                ; 89 c0
     17358    mov ax, ax                                ; 89 c0
     17359    mov ax, ax                                ; 89 c0
     17360    mov ax, ax                                ; 89 c0
     17361    mov ax, ax                                ; 89 c0
     17362    cld                                       ; fc
     17363    and AL, strict byte 050h                  ; 24 50
     17364    dec cx                                    ; 49
     17365    push dx                                   ; 52
     17366    add byte [bx+di], al                      ; 00 01
     17367    add byte [bp+si], al                      ; 00 02
     17368    add byte [bx+si], cl                      ; 00 08
     17369    add byte [bx+si], al                      ; 00 00
     17370    xchg byte [bx+si+07000h], al              ; 86 80 00 70
     17371    times 0xf db 0
     17372    db  031h
     17373_pci_routing_table:                          ; 0xff1a0 LB 0x1e0
    1747117374    db  000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h
    1747217375    db  000h, 010h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 001h, 000h
     
    1749917402    db  000h, 0e8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 01ch, 000h
    1750017403    db  000h, 0f0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 01dh, 000h
    17501 _pci_routing_table_size:                     ; 0xff4a0 LB 0x2
    17502     loopne 0f4a3h                             ; e0 01
    17503 biosorg_check_before_or_at_0F83Fh:           ; 0xff4a2 LB 0x39f
    17504     times 0x39d db 0
     17404_pci_routing_table_size:                     ; 0xff380 LB 0x2
     17405    loopne 0f383h                             ; e0 01
     17406biosorg_check_before_or_at_0F83Fh:           ; 0xff382 LB 0x4bf
     17407    times 0x4bd db 0
    1750517408    db  'XM'
    1750617409int12_handler:                               ; 0xff841 LB 0xc
     
    1755717460    popfw                                     ; 9d
    1755817461    jmp short 0f8a5h                          ; eb 11
    17559     call 09a48h                               ; e8 b1 a1
     17462    call 09a69h                               ; e8 d2 a1
    1756017463    jmp short 0f88eh                          ; eb f5
    1756117464int15_handler_mouse:                         ; 0xff899 LB 0x5
     
    1782217725cpu_reset:                                   ; 0xffff0 LB 0x10
    1782317726    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17824     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 04dh
     17727    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 061h
Note: See TracChangeset for help on using the changeset viewer.

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