VirtualBox

Ignore:
Timestamp:
Jun 29, 2017 8:57:09 AM (7 years ago)
Author:
vboxsync
Message:

BIOS: updated alternative source

File:
1 edited

Legend:

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

    r67495 r67683  
    11901190  times 1144 db 0
    11911191
    1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e18 class=CODE group=AUTO
     1192section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e48 class=CODE group=AUTO
    11931193rom_scan_:                                   ; 0xf1600 LB 0x52
    11941194    push bp                                   ; 55
     
    15961596    mov bx, strict word 0000ah                ; bb 0a 00
    15971597    xor cx, cx                                ; 31 c9
    1598     call 0a0b0h                               ; e8 d3 87
     1598    call 0a0e0h                               ; e8 03 88
    15991599    mov word [bp-008h], ax                    ; 89 46 f8
    16001600    mov cx, dx                                ; 89 d1
     
    18331833    mov dx, word [bp-026h]                    ; 8b 56 da
    18341834    mov si, word [bp-01eh]                    ; 8b 76 e2
    1835     call 0a0e0h                               ; e8 c8 85
     1835    call 0a110h                               ; e8 f8 85
    18361836    mov ax, dx                                ; 89 d0
    18371837    xor ah, dh                                ; 30 f4
     
    22942294    mov dx, word [es:si]                      ; 26 8b 14
    22952295    mov si, strict word 00018h                ; be 18 00
    2296     call 0a0e0h                               ; e8 4e 81
     2296    call 0a110h                               ; e8 7e 81
    22972297    xor dh, dh                                ; 30 f6
    22982298    mov word [bp-014h], dx                    ; 89 56 ec
     
    23042304    mov dx, word [es:si]                      ; 26 8b 14
    23052305    mov si, strict word 00020h                ; be 20 00
    2306     call 0a0e0h                               ; e8 2e 81
     2306    call 0a110h                               ; e8 5e 81
    23072307    mov bx, dx                                ; 89 d3
    23082308    mov word [bp-010h], dx                    ; 89 56 f0
     
    23362336    mov dx, word [es:si]                      ; 26 8b 14
    23372337    mov si, strict word 00008h                ; be 08 00
    2338     call 0a0e0h                               ; e8 db 80
     2338    call 0a110h                               ; e8 0b 81
    23392339    mov word [bp-010h], dx                    ; 89 56 f0
    23402340    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    23452345    mov dx, word [es:si]                      ; 26 8b 14
    23462346    mov si, strict word 00018h                ; be 18 00
    2347     call 0a0e0h                               ; e8 bd 80
     2347    call 0a110h                               ; e8 ed 80
    23482348    mov bl, dl                                ; 88 d3
    23492349    and bl, 00fh                              ; 80 e3 0f
     
    29232923    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    29242924    mov si, strict word 0000bh                ; be 0b 00
    2925     call 0a0e0h                               ; e8 e1 7a
     2925    call 0a110h                               ; e8 11 7b
    29262926    mov word [bp-02ah], dx                    ; 89 56 d6
    29272927    mov word [bp-026h], cx                    ; 89 4e da
     
    32153215    mov dx, word [bp-022h]                    ; 8b 56 de
    32163216    mov si, strict word 00018h                ; be 18 00
    3217     call 0a0e0h                               ; e8 04 78
     3217    call 0a110h                               ; e8 34 78
    32183218    xor dh, dh                                ; 30 f6
    32193219    mov word [bp-014h], dx                    ; 89 56 ec
     
    32233223    mov dx, word [bp-022h]                    ; 8b 56 de
    32243224    mov si, strict word 00020h                ; be 20 00
    3225     call 0a0e0h                               ; e8 ed 77
     3225    call 0a110h                               ; e8 1d 78
    32263226    mov bx, dx                                ; 89 d3
    32273227    mov word [bp-024h], dx                    ; 89 56 dc
     
    32573257    mov dx, word [bp-022h]                    ; 8b 56 de
    32583258    mov si, strict word 00008h                ; be 08 00
    3259     call 0a0e0h                               ; e8 99 77
     3259    call 0a110h                               ; e8 c9 77
    32603260    mov word [bp-00ch], ax                    ; 89 46 f4
    32613261    mov word [bp-020h], bx                    ; 89 5e e0
     
    32643264    mov word [bp-024h], dx                    ; 89 56 dc
    32653265    mov si, strict word 00010h                ; be 10 00
    3266     call 0a0e0h                               ; e8 84 77
     3266    call 0a110h                               ; e8 b4 77
    32673267    mov word [bp-022h], dx                    ; 89 56 de
    32683268    mov ax, dx                                ; 89 d0
     
    56135613    mov dx, ss                                ; 8c d2
    56145614    lea ax, [bp-026h]                         ; 8d 46 da
    5615     call 0a100h                               ; e8 61 62
     5615    call 0a130h                               ; e8 91 62
    56165616    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    56175617    mov ax, strict word 00011h                ; b8 11 00
     
    61056105    xor dl, dl                                ; 30 d2
    61066106    xor cx, cx                                ; 31 c9
    6107     call 0a090h                               ; e8 7c 5c
     6107    call 0a0c0h                               ; e8 ac 5c
    61086108    xor bx, bx                                ; 31 db
    61096109    add ax, si                                ; 01 f0
     
    61116111    mov bx, di                                ; 89 fb
    61126112    xor cx, cx                                ; 31 c9
    6113     call 0a090h                               ; e8 6f 5c
     6113    call 0a0c0h                               ; e8 9f 5c
    61146114    mov bx, ax                                ; 89 c3
    61156115    mov ax, word [bp-00ah]                    ; 8b 46 f6
     
    61466146    mov dx, ss                                ; 8c d2
    61476147    lea ax, [bp-030h]                         ; 8d 46 d0
    6148     call 0a100h                               ; e8 88 5c
     6148    call 0a130h                               ; e8 b8 5c
    61496149    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    61506150    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    65006500    mov dx, ss                                ; 8c d2
    65016501    lea ax, [bp-02eh]                         ; 8d 46 d2
    6502     call 0a100h                               ; e8 a0 58
     6502    call 0a130h                               ; e8 d0 58
    65036503    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    65046504    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    85038503    mov dx, word [bp+00ch]                    ; 8b 56 0c
    85048504    mov si, strict word 00020h                ; be 20 00
    8505     call 0a0e0h                               ; e8 3a 45
     8505    call 0a110h                               ; e8 6a 45
    85068506    test ax, ax                               ; 85 c0
    85078507    jne short 05bb6h                          ; 75 0c
     
    85418541    mov bx, strict word 0003fh                ; bb 3f 00
    85428542    xor cx, cx                                ; 31 c9
    8543     call 0a090h                               ; e8 91 44
     8543    call 0a0c0h                               ; e8 c1 44
    85448544    mov bx, ax                                ; 89 c3
    85458545    mov cx, dx                                ; 89 d1
    85468546    mov ax, word [bp-004h]                    ; 8b 46 fc
    85478547    mov dx, si                                ; 89 f2
    8548     call 0a0b0h                               ; e8 a5 44
     8548    call 0a0e0h                               ; e8 d5 44
    85498549    mov word [es:di+002h], ax                 ; 26 89 45 02
    85508550    cmp ax, 00400h                            ; 3d 00 04
     
    87778777    mov bx, cx                                ; 89 cb
    87788778    xor cx, cx                                ; 31 c9
    8779     call 0a090h                               ; e8 70 42
     8779    call 0a0c0h                               ; e8 a0 42
    87808780    xor bx, bx                                ; 31 db
    87818781    add ax, word [bp-00ch]                    ; 03 46 f4
     
    87838783    mov bx, word [bp-010h]                    ; 8b 5e f0
    87848784    xor cx, cx                                ; 31 c9
    8785     call 0a090h                               ; e8 61 42
     8785    call 0a0c0h                               ; e8 91 42
    87868786    xor bx, bx                                ; 31 db
    87878787    add ax, di                                ; 01 f8
     
    89578957    mov bx, word [bp-00ch]                    ; 8b 5e f4
    89588958    xor cx, cx                                ; 31 c9
    8959     call 0a090h                               ; e8 8a 40
     8959    call 0a0c0h                               ; e8 ba 40
    89608960    mov bx, di                                ; 89 fb
    89618961    xor cx, cx                                ; 31 c9
    8962     call 0a090h                               ; e8 83 40
     8962    call 0a0c0h                               ; e8 b3 40
    89638963    mov word [bp-008h], ax                    ; 89 46 f8
    89648964    mov word [bp-006h], dx                    ; 89 56 fa
     
    91049104    xor bx, bx                                ; 31 db
    91059105    mov si, strict word 00020h                ; be 20 00
    9106     call 0a0f0h                               ; e8 48 3f
     9106    call 0a120h                               ; e8 78 3f
    91079107    mov word [bp-00eh], ax                    ; 89 46 f2
    91089108    mov word [bp-010h], bx                    ; 89 5e f0
     
    92699269    mov dx, si                                ; 89 f2
    92709270    mov si, strict word 00020h                ; be 20 00
    9271     call 0a0e0h                               ; e8 41 3d
     9271    call 0a110h                               ; e8 71 3d
    92729272    mov bx, di                                ; 89 fb
    92739273    mov word [es:bx+014h], dx                 ; 26 89 57 14
     
    96339633    mov bx, strict word 0000fh                ; bb 0f 00
    96349634    xor cx, cx                                ; 31 c9
    9635     call 0a0b0h                               ; e8 73 39
     9635    call 0a0e0h                               ; e8 a3 39
    96369636    mov cx, ax                                ; 89 c1
    96379637    mov bx, dx                                ; 89 d3
     
    1267812678    mov dx, ss                                ; 8c d2
    1267912679    lea ax, [bp-048h]                         ; 8d 46 b8
    12680     call 0a100h                               ; e8 59 1d
     12680    call 0a130h                               ; e8 89 1d
    1268112681    mov byte [bp-048h], 09eh                  ; c6 46 b8 9e
    1268212682    mov byte [bp-047h], 010h                  ; c6 46 b9 10
     
    1281612816    mov dx, word [bp-024h]                    ; 8b 56 dc
    1281712817    mov si, strict word 0000ch                ; be 0c 00
    12818     call 0a0e0h                               ; e8 e9 1b
     12818    call 0a110h                               ; e8 19 1c
    1281912819    mov word [bp-02ah], ax                    ; 89 46 d6
    1282012820    mov word [bp-02ch], bx                    ; 89 5e d4
     
    1283812838    mov dx, word [bp-024h]                    ; 8b 56 dc
    1283912839    mov si, strict word 00006h                ; be 06 00
    12840     call 0a0e0h                               ; e8 a8 1b
     12840    call 0a110h                               ; e8 d8 1b
    1284112841    mov si, word [bp-018h]                    ; 8b 76 e8
    1284212842    add si, dx                                ; 01 d6
     
    1285612856    mov dx, si                                ; 89 f2
    1285712857    mov si, strict word 00008h                ; be 08 00
    12858     call 0a0e0h                               ; e8 78 1b
     12858    call 0a110h                               ; e8 a8 1b
    1285912859    mov word [bp-02eh], bx                    ; 89 5e d2
    1286012860    mov word [bp-030h], cx                    ; 89 4e d0
     
    1286512865    mov dx, word [bp-01eh]                    ; 8b 56 e2
    1286612866    mov si, strict word 00010h                ; be 10 00
    12867     call 0a0e0h                               ; e8 5d 1b
     12867    call 0a110h                               ; e8 8d 1b
    1286812868    mov si, word [bp-032h]                    ; 8b 76 ce
    1286912869    add si, dx                                ; 01 d6
     
    1289012890    mov dx, word [bp-024h]                    ; 8b 56 dc
    1289112891    mov si, strict word 0000bh                ; be 0b 00
    12892     call 0a0e0h                               ; e8 13 1b
     12892    call 0a110h                               ; e8 43 1b
    1289312893    mov si, dx                                ; 89 d6
    1289412894    mov word [bp-026h], cx                    ; 89 4e da
     
    1338313383    mov ax, 00080h                            ; b8 80 00
    1338413384    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13385     call 0a100h                               ; e8 8f 16
     13385    call 0a130h                               ; e8 bf 16
    1338613386    mov es, [bp-00ah]                         ; 8e 46 f6
    1338713387    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1340113401    mov dx, word [es:si]                      ; 26 8b 14
    1340213402    mov si, strict word 00008h                ; be 08 00
    13403     call 0a0e0h                               ; e8 2b 16
     13403    call 0a110h                               ; e8 5b 16
    1340413404    mov es, [bp-00ah]                         ; 8e 46 f6
    1340513405    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1341213412    mov dx, word [es:si]                      ; 26 8b 14
    1341313413    mov si, strict word 00010h                ; be 10 00
    13414     call 0a0e0h                               ; e8 05 16
     13414    call 0a110h                               ; e8 35 16
    1341513415    mov es, [bp-00ah]                         ; 8e 46 f6
    1341613416    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1342413424    mov dx, word [es:si]                      ; 26 8b 14
    1342513425    mov si, strict word 00018h                ; be 18 00
    13426     call 0a0e0h                               ; e8 d9 15
     13426    call 0a110h                               ; e8 09 16
    1342713427    mov es, [bp-00ah]                         ; 8e 46 f6
    1342813428    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1343513435    mov dx, word [es:si]                      ; 26 8b 14
    1343613436    mov si, strict word 00020h                ; be 20 00
    13437     call 0a0e0h                               ; e8 b3 15
     13437    call 0a110h                               ; e8 e3 15
    1343813438    mov es, [bp-00ah]                         ; 8e 46 f6
    1343913439    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1344613446    mov dx, word [es:si]                      ; 26 8b 14
    1344713447    mov si, strict word 00028h                ; be 28 00
    13448     call 0a0e0h                               ; e8 8d 15
     13448    call 0a110h                               ; e8 bd 15
    1344913449    mov es, [bp-00ah]                         ; 8e 46 f6
    1345013450    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1345913459    mov bx, word [bp-012h]                    ; 8b 5e ee
    1346013460    xor cx, cx                                ; 31 c9
    13461     call 0a090h                               ; e8 0b 15
     13461    call 0a0c0h                               ; e8 3b 15
    1346213462    push dx                                   ; 52
    1346313463    push ax                                   ; 50
     
    1346913469    mov ax, 0026ah                            ; b8 6a 02
    1347013470    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13471     call 09fdch                               ; e8 3b 14
     13471    call 0a019h                               ; e8 78 14
    1347213472    mov es, [bp-00ah]                         ; 8e 46 f6
    1347313473    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1353313533    add ax, 0026ah                            ; 05 6a 02
    1353413534    mov dx, cx                                ; 89 ca
    13535     call 0a053h                               ; e8 d7 13
     13535    call 0a090h                               ; e8 14 14
    1353613536    mov es, cx                                ; 8e c1
    1353713537    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
     
    1361913619    mov ax, di                                ; 89 f8
    1362013620    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13621     call 0a100h                               ; e8 d2 13
     13621    call 0a130h                               ; e8 02 14
    1362213622    lea ax, [di+00080h]                       ; 8d 85 80 00
    1362313623    mov cx, strict word 00040h                ; b9 40 00
    1362413624    xor bx, bx                                ; 31 db
    1362513625    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13626     call 0a100h                               ; e8 c3 13
     13626    call 0a130h                               ; e8 f3 13
    1362713627    lea ax, [di+00200h]                       ; 8d 85 00 02
    1362813628    mov cx, strict word 00060h                ; b9 60 00
    1362913629    xor bx, bx                                ; 31 db
    1363013630    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13631     call 0a100h                               ; e8 b4 13
     13631    call 0a130h                               ; e8 e4 13
    1363213632    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1363313633    xor ah, ah                                ; 30 e4
     
    1380613806    mov ax, si                                ; 89 f0
    1380713807    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13808     call 0a100h                               ; e8 4e 12
     13808    call 0a130h                               ; e8 7e 12
    1380913809    lea ax, [si+00080h]                       ; 8d 84 80 00
    1381013810    mov cx, strict word 00040h                ; b9 40 00
    1381113811    xor bx, bx                                ; 31 db
    1381213812    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13813     call 0a100h                               ; e8 3f 12
     13813    call 0a130h                               ; e8 6f 12
    1381413814    lea di, [si+00200h]                       ; 8d bc 00 02
    1381513815    mov cx, strict word 00060h                ; b9 60 00
     
    1381713817    mov ax, di                                ; 89 f8
    1381813818    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13819     call 0a100h                               ; e8 2e 12
     13819    call 0a130h                               ; e8 5e 12
    1382013820    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1382113821    xor bh, bh                                ; 30 ff
     
    1415814158    mov dx, word [bp+008h]                    ; 8b 56 08
    1415914159    xor cx, cx                                ; 31 c9
    14160     call 0a0b0h                               ; e8 84 0e
     14160    call 0a0e0h                               ; e8 b4 0e
    1416114161    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1416214162    xor di, di                                ; 31 ff
     
    1418414184    mov ax, 000c0h                            ; b8 c0 00
    1418514185    mov dx, word [bp-00ah]                    ; 8b 56 f6
    14186     call 0a110h                               ; e8 92 0e
     14186    call 0a140h                               ; e8 c2 0e
    1418714187    mov es, [bp-008h]                         ; 8e 46 f8
    1418814188    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1491814918    pop bp                                    ; 5d
    1491914919    retn                                      ; c3
    14920     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0bah, 09ah, 098h, 09ah, 09eh, 09ah, 0a4h, 09ah, 0aah
    14921     db  09ah, 0b0h, 09ah, 0b6h, 09ah, 0bah, 09ah
    14922 _ahci_init:                                  ; 0xf99d5 LB 0x11a
     14920    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0bbh, 09ah, 099h, 09ah, 09fh, 09ah, 0a5h, 09ah, 0abh
     14921    db  09ah, 0b1h, 09ah, 0b7h, 09ah, 0bbh, 09ah
     14922_ahci_init:                                  ; 0xf99d5 LB 0x139
    1492314923    push bp                                   ; 55
    1492414924    mov bp, sp                                ; 89 e5
     14925    push si                                   ; 56
    1492514926    push di                                   ; 57
    14926     sub sp, strict byte 0000eh                ; 83 ec 0e
     14927    sub sp, strict byte 00012h                ; 83 ec 12
    1492714928    mov ax, 00601h                            ; b8 01 06
    1492814929    mov dx, strict word 00001h                ; ba 01 00
    14929     call 09f0eh                               ; e8 29 05
     14930    call 09f2dh                               ; e8 47 05
    1493014931    mov dx, ax                                ; 89 c2
    1493114932    cmp ax, strict word 0ffffh                ; 3d ff ff
    14932     je short 09a35h                           ; 74 49
     14933    je short 09a36h                           ; 74 49
    1493314934    mov al, ah                                ; 88 e0
    14934     mov byte [bp-006h], ah                    ; 88 66 fa
    14935     mov byte [bp-008h], dl                    ; 88 56 f8
     14935    mov byte [bp-008h], ah                    ; 88 66 f8
     14936    mov byte [bp-00ah], dl                    ; 88 56 f6
    1493614937    xor dh, ah                                ; 30 e6
    1493714938    xor ah, ah                                ; 30 e4
    1493814939    mov bx, strict word 00034h                ; bb 34 00
    14939     call 09f16h                               ; e8 18 05
     14940    call 09f35h                               ; e8 36 05
    1494014941    mov cl, al                                ; 88 c1
    1494114942    test cl, cl                               ; 84 c9
    14942     je short 09a38h                           ; 74 34
     14943    je short 09a39h                           ; 74 34
    1494314944    mov bl, cl                                ; 88 cb
    1494414945    xor bh, bh                                ; 30 ff
    14945     mov al, byte [bp-008h]                    ; 8a 46 f8
     14946    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1494614947    mov byte [bp-00ch], al                    ; 88 46 f4
    1494714948    mov byte [bp-00bh], bh                    ; 88 7e f5
    14948     mov al, byte [bp-006h]                    ; 8a 46 fa
    14949     mov byte [bp-010h], al                    ; 88 46 f0
    14950     mov byte [bp-00fh], bh                    ; 88 7e f1
     14949    mov al, byte [bp-008h]                    ; 8a 46 f8
     14950    mov byte [bp-012h], al                    ; 88 46 ee
     14951    mov byte [bp-011h], bh                    ; 88 7e ef
    1495114952    mov dx, word [bp-00ch]                    ; 8b 56 f4
    14952     mov ax, word [bp-010h]                    ; 8b 46 f0
    14953     call 09f16h                               ; e8 f3 04
     14953    mov ax, word [bp-012h]                    ; 8b 46 ee
     14954    call 09f35h                               ; e8 11 05
    1495414955    cmp AL, strict byte 012h                  ; 3c 12
    14955     je short 09a38h                           ; 74 11
     14956    je short 09a39h                           ; 74 11
    1495614957    mov bl, cl                                ; 88 cb
    1495714958    db  0feh, 0c3h
     
    1495914960    xor bh, bh                                ; 30 ff
    1496014961    mov dx, word [bp-00ch]                    ; 8b 56 f4
    14961     mov ax, word [bp-010h]                    ; 8b 46 f0
    14962     jmp short 099fbh                          ; eb c6
    14963     jmp near 09ae9h                           ; e9 b1 00
     14962    mov ax, word [bp-012h]                    ; 8b 46 ee
     14963    jmp short 099fch                          ; eb c6
     14964    jmp near 09b07h                           ; e9 ce 00
    1496414965    test cl, cl                               ; 84 c9
    14965     je short 09a35h                           ; 74 f9
     14966    je short 09a36h                           ; 74 f9
    1496614967    add cl, 002h                              ; 80 c1 02
    1496714968    mov bl, cl                                ; 88 cb
    1496814969    xor bh, bh                                ; 30 ff
    14969     mov al, byte [bp-008h]                    ; 8a 46 f8
     14970    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1497014971    mov byte [bp-00eh], al                    ; 88 46 f2
    1497114972    mov byte [bp-00dh], bh                    ; 88 7e f3
    14972     mov al, byte [bp-006h]                    ; 8a 46 fa
    14973     mov byte [bp-00ah], al                    ; 88 46 f6
    14974     mov byte [bp-009h], bh                    ; 88 7e f7
     14973    mov al, byte [bp-008h]                    ; 8a 46 f8
     14974    mov byte [bp-014h], al                    ; 88 46 ec
     14975    mov byte [bp-013h], bh                    ; 88 7e ed
    1497514976    mov dx, word [bp-00eh]                    ; 8b 56 f2
    14976     mov ax, word [bp-00ah]                    ; 8b 46 f6
    14977     call 09f16h                               ; e8 b8 04
     14977    mov ax, word [bp-014h]                    ; 8b 46 ec
     14978    call 09f35h                               ; e8 d6 04
    1497814979    cmp AL, strict byte 010h                  ; 3c 10
    14979     jne short 09a35h                          ; 75 d3
    14980     mov byte [bp-004h], 000h                  ; c6 46 fc 00
     14980    jne short 09a36h                          ; 75 d3
     14981    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1498114982    mov bl, cl                                ; 88 cb
    1498214983    add bl, 002h                              ; 80 c3 02
    1498314984    xor bh, bh                                ; 30 ff
    1498414985    mov dx, word [bp-00eh]                    ; 8b 56 f2
    14985     mov ax, word [bp-00ah]                    ; 8b 46 f6
    14986     call 09f3dh                               ; e8 c7 04
     14986    mov ax, word [bp-014h]                    ; 8b 46 ec
     14987    call 09f5ch                               ; e8 e5 04
    1498714988    mov dx, ax                                ; 89 c2
    1498814989    and ax, strict word 0000fh                ; 25 0f 00
    1498914990    sub ax, strict word 00004h                ; 2d 04 00
    1499014991    cmp ax, strict word 0000bh                ; 3d 0b 00
    14991     jnbe short 09abah                         ; 77 37
     14992    jnbe short 09abbh                         ; 77 37
    1499214993    push CS                                   ; 0e
    1499314994    pop ES                                    ; 07
     
    1499915000    mov ax, word [cs:di-0663bh]               ; 2e 8b 85 c5 99
    1500015001    jmp ax                                    ; ff e0
    15001     mov byte [bp-004h], 010h                  ; c6 46 fc 10
    15002     jmp short 09abah                          ; eb 1c
    15003     mov byte [bp-004h], 014h                  ; c6 46 fc 14
    15004     jmp short 09abah                          ; eb 16
    15005     mov byte [bp-004h], 018h                  ; c6 46 fc 18
    15006     jmp short 09abah                          ; eb 10
    15007     mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
    15008     jmp short 09abah                          ; eb 0a
    15009     mov byte [bp-004h], 020h                  ; c6 46 fc 20
    15010     jmp short 09abah                          ; eb 04
    15011     mov byte [bp-004h], 024h                  ; c6 46 fc 24
     15002    mov byte [bp-006h], 010h                  ; c6 46 fa 10
     15003    jmp short 09abbh                          ; eb 1c
     15004    mov byte [bp-006h], 014h                  ; c6 46 fa 14
     15005    jmp short 09abbh                          ; eb 16
     15006    mov byte [bp-006h], 018h                  ; c6 46 fa 18
     15007    jmp short 09abbh                          ; eb 10
     15008    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
     15009    jmp short 09abbh                          ; eb 0a
     15010    mov byte [bp-006h], 020h                  ; c6 46 fa 20
     15011    jmp short 09abbh                          ; eb 04
     15012    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1501215013    mov CL, strict byte 004h                  ; b1 04
    15013     mov ax, dx                                ; 89 d0
    15014     shr ax, CL                                ; d3 e8
    15015     mov cx, ax                                ; 89 c1
    15016     sal cx, 1                                 ; d1 e1
    15017     sal cx, 1                                 ; d1 e1
    15018     mov al, byte [bp-004h]                    ; 8a 46 fc
     15014    mov si, dx                                ; 89 d6
     15015    shr si, CL                                ; d3 ee
     15016    sal si, 1                                 ; d1 e6
     15017    sal si, 1                                 ; d1 e6
     15018    mov al, byte [bp-006h]                    ; 8a 46 fa
    1501915019    test al, al                               ; 84 c0
    15020     je short 09ae9h                           ; 74 1c
     15020    je short 09b07h                           ; 74 3b
    1502115021    mov bl, al                                ; 88 c3
    1502215022    xor bh, bh                                ; 30 ff
    15023     mov dl, byte [bp-008h]                    ; 8a 56 f8
    15024     xor dh, dh                                ; 30 f6
    15025     mov al, byte [bp-006h]                    ; 8a 46 fa
    15026     xor ah, ah                                ; 30 e4
    15027     call 09f62h                               ; e8 84 04
     15023    mov al, byte [bp-00ah]                    ; 8a 46 f6
     15024    mov byte [bp-010h], al                    ; 88 46 f0
     15025    mov byte [bp-00fh], bh                    ; 88 7e f1
     15026    mov al, byte [bp-008h]                    ; 8a 46 f8
     15027    mov byte [bp-016h], al                    ; 88 46 ea
     15028    mov byte [bp-015h], bh                    ; 88 7e eb
     15029    mov dx, word [bp-010h]                    ; 8b 56 f0
     15030    mov ax, word [bp-016h]                    ; 8b 46 ea
     15031    call 09f81h                               ; e8 96 04
    1502815032    test AL, strict byte 001h                 ; a8 01
    15029     je short 09ae9h                           ; 74 07
     15033    je short 09b07h                           ; 74 18
    1503015034    and AL, strict byte 0f0h                  ; 24 f0
    15031     add ax, cx                                ; 01 c8
    15032     call 09867h                               ; e8 7e fd
    15033     lea sp, [bp-002h]                         ; 8d 66 fe
     15035    add si, ax                                ; 01 c6
     15036    mov cx, strict word 00007h                ; b9 07 00
     15037    mov bx, strict word 00004h                ; bb 04 00
     15038    mov dx, word [bp-010h]                    ; 8b 56 f0
     15039    mov ax, word [bp-016h]                    ; 8b 46 ea
     15040    call 09fc0h                               ; e8 be 04
     15041    mov ax, si                                ; 89 f0
     15042    call 09867h                               ; e8 60 fd
     15043    lea sp, [bp-004h]                         ; 8d 66 fc
    1503415044    pop di                                    ; 5f
     15045    pop si                                    ; 5e
    1503515046    pop bp                                    ; 5d
    1503615047    retn                                      ; c3
    15037 apm_out_str_:                                ; 0xf9aef LB 0x39
     15048apm_out_str_:                                ; 0xf9b0e LB 0x39
    1503815049    push bp                                   ; 55
    1503915050    mov bp, sp                                ; 89 e5
     
    1504115052    mov bx, ax                                ; 89 c3
    1504215053    cmp byte [bx], 000h                       ; 80 3f 00
    15043     je short 09b04h                           ; 74 0a
     15054    je short 09b23h                           ; 74 0a
    1504415055    mov al, byte [bx]                         ; 8a 07
    1504515056    out DX, AL                                ; ee
     
    1504815059    db  00ah, 0c0h
    1504915060    ; or al, al                                 ; 0a c0
    15050     jne short 09afch                          ; 75 f8
     15061    jne short 09b1bh                          ; 75 f8
    1505115062    lea sp, [bp-002h]                         ; 8d 66 fe
    1505215063    pop bx                                    ; 5b
    1505315064    pop bp                                    ; 5d
    1505415065    retn                                      ; c3
    15055     dec cx                                    ; 49
     15066    push 0f39bh                               ; 68 9b f3
    1505615067    wait                                      ; 9b
    15057     aam 09bh                                  ; d4 9b
    15058     pop bx                                    ; 5b
     15068    jp short 09acah                           ; 7a 9b
     15069    xchg bp, ax                               ; 95
    1505915070    wait                                      ; 9b
    15060     jbe short 09aadh                          ; 76 9b
    15061     aam 09bh                                  ; d4 9b
    15062     mov ax, word [0d49bh]                     ; a1 9b d4
     15071    rep wait                                  ; f3 9b
     15072    rcr byte [bp+di-0640dh], 0f9h             ; c0 9b f3 9b f9
    1506315073    wait                                      ; 9b
    15064     ficomp dword [bp+di-0645ah]               ; da 9b a6 9b
    15065     cmpsb                                     ; a6
    15066     wait                                      ; 9b
    15067     cmpsb                                     ; a6
    15068     wait                                      ; 9b
    15069     sbb word [si-0645ah], bx                  ; 19 9c a6 9b
    15070     cmpsb                                     ; a6
    15071     wait                                      ; 9b
    15072     db  012h
     15074    lds bx, [bp+di-0643bh]                    ; c5 9b c5 9b
     15075    lds bx, [bp+di-063c8h]                    ; c5 9b 38 9c
     15076    lds bx, [bp+di-0643bh]                    ; c5 9b c5 9b
     15077    db  031h
    1507315078    pushfw                                    ; 9c
    15074 _apm_function:                               ; 0xf9b28 LB 0xf6
     15079_apm_function:                               ; 0xf9b47 LB 0xf6
    1507515080    push bp                                   ; 55
    1507615081    mov bp, sp                                ; 89 e5
     
    1508015085    xor ah, ah                                ; 30 e4
    1508115086    cmp ax, strict word 0000eh                ; 3d 0e 00
    15082     jnbe short 09ba6h                         ; 77 6c
     15087    jnbe short 09bc5h                         ; 77 6c
    1508315088    mov bx, ax                                ; 89 c3
    1508415089    sal bx, 1                                 ; d1 e3
    1508515090    mov dx, word [bp+018h]                    ; 8b 56 18
    1508615091    or dl, 001h                               ; 80 ca 01
    15087     jmp word [cs:bx-064f6h]                   ; 2e ff a7 0a 9b
     15092    jmp word [cs:bx-064d7h]                   ; 2e ff a7 29 9b
    1508815093    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1508915094    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1509015095    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    15091     jmp near 09bd4h                           ; e9 79 00
     15096    jmp near 09bf3h                           ; e9 79 00
    1509215097    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    15093     mov word [bp+00ch], 0a184h                ; c7 46 0c 84 a1
     15098    mov word [bp+00ch], 0a1b4h                ; c7 46 0c b4 a1
    1509415099    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1509515100    mov ax, strict word 0fff0h                ; b8 f0 ff
    1509615101    mov word [bp+006h], ax                    ; 89 46 06
    1509715102    mov word [bp+004h], ax                    ; 89 46 04
    15098     jmp near 09bd4h                           ; e9 5e 00
     15103    jmp near 09bf3h                           ; e9 5e 00
    1509915104    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1510015105    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1510915114    mov si, ax                                ; 89 c6
    1511015115    sal esi, 010h                             ; 66 c1 e6 10
    15111     jmp near 09bd4h                           ; e9 33 00
     15116    jmp near 09bf3h                           ; e9 33 00
    1511215117    sti                                       ; fb
    1511315118    hlt                                       ; f4
    15114     jmp near 09bd4h                           ; e9 2e 00
     15119    jmp near 09bf3h                           ; e9 2e 00
    1511515120    mov bx, 00da0h                            ; bb a0 0d
    1511615121    mov cx, ds                                ; 8c d9
    1511715122    mov ax, strict word 00004h                ; b8 04 00
    15118     call 01933h                               ; e8 82 7d
     15123    call 01933h                               ; e8 63 7d
    1511915124    push word [bp+00ch]                       ; ff 76 0c
    1512015125    push word [bp+012h]                       ; ff 76 12
     
    1512315128    mov ax, strict word 00004h                ; b8 04 00
    1512415129    push ax                                   ; 50
    15125     call 01976h                               ; e8 b4 7d
     15130    call 01976h                               ; e8 95 7d
    1512615131    add sp, strict byte 00008h                ; 83 c4 08
    1512715132    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1513515140    retn                                      ; c3
    1513615141    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    15137     je short 09bffh                           ; 74 1f
     15142    je short 09c1eh                           ; 74 1f
    1513815143    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    15139     je short 09bf7h                           ; 74 11
     15144    je short 09c16h                           ; 74 11
    1514015145    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    15141     jne short 09c07h                          ; 75 1b
     15146    jne short 09c26h                          ; 75 1b
    1514215147    mov dx, 0040fh                            ; ba 0f 04
    1514315148    mov ax, 00d10h                            ; b8 10 0d
    15144     call 09aefh                               ; e8 fa fe
    15145     jmp short 09bd4h                          ; eb dd
     15149    call 09b0eh                               ; e8 fa fe
     15150    jmp short 09bf3h                          ; eb dd
    1514615151    mov dx, 0040fh                            ; ba 0f 04
    1514715152    mov ax, 00d18h                            ; b8 18 0d
    15148     jmp short 09bf2h                          ; eb f3
     15153    jmp short 09c11h                          ; eb f3
    1514915154    mov dx, 0040fh                            ; ba 0f 04
    1515015155    mov ax, 00d20h                            ; b8 20 0d
    15151     jmp short 09bf2h                          ; eb eb
     15156    jmp short 09c11h                          ; eb eb
    1515215157    or ah, 00ah                               ; 80 cc 0a
    1515315158    mov word [bp+012h], ax                    ; 89 46 12
    1515415159    mov word [bp+018h], dx                    ; 89 56 18
    15155     jmp short 09bd4h                          ; eb c2
     15160    jmp short 09bf3h                          ; eb c2
    1515615161    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    15157     jmp short 09bd4h                          ; eb bb
     15162    jmp short 09bf3h                          ; eb bb
    1515815163    or ah, 080h                               ; 80 cc 80
    15159     jmp short 09c0ah                          ; eb ec
    15160 pci16_select_reg_:                           ; 0xf9c1e LB 0x24
     15164    jmp short 09c29h                          ; eb ec
     15165pci16_select_reg_:                           ; 0xf9c3d LB 0x24
    1516115166    push bp                                   ; 55
    1516215167    mov bp, sp                                ; 89 e5
     
    1517515180    pop bp                                    ; 5d
    1517615181    retn                                      ; c3
    15177 pci16_find_device_:                          ; 0xf9c42 LB 0xf7
     15182pci16_find_device_:                          ; 0xf9c61 LB 0xf7
    1517815183    push bp                                   ; 55
    1517915184    mov bp, sp                                ; 89 e5
     
    1518915194    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1519015195    test bl, 007h                             ; f6 c3 07
    15191     jne short 09c8ah                          ; 75 2d
     15196    jne short 09ca9h                          ; 75 2d
    1519215197    mov dx, strict word 0000eh                ; ba 0e 00
    1519315198    mov ax, bx                                ; 89 d8
    15194     call 09c1eh                               ; e8 b9 ff
     15199    call 09c3dh                               ; e8 b9 ff
    1519515200    mov dx, 00cfeh                            ; ba fe 0c
    1519615201    in AL, DX                                 ; ec
     
    1519915204    mov byte [bp-008h], al                    ; 88 46 f8
    1520015205    cmp AL, strict byte 0ffh                  ; 3c ff
    15201     jne short 09c78h                          ; 75 06
     15206    jne short 09c97h                          ; 75 06
    1520215207    add bx, strict byte 00008h                ; 83 c3 08
    15203     jmp near 09d0ah                           ; e9 92 00
     15208    jmp near 09d29h                           ; e9 92 00
    1520415209    test byte [bp-008h], 080h                 ; f6 46 f8 80
    15205     je short 09c85h                           ; 74 07
     15210    je short 09ca4h                           ; 74 07
    1520615211    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    15207     jmp short 09c8ah                          ; eb 05
     15212    jmp short 09ca9h                          ; eb 05
    1520815213    mov word [bp-00eh], strict word 00008h    ; c7 46 f2 08 00
    1520915214    mov al, byte [bp-008h]                    ; 8a 46 f8
    1521015215    and AL, strict byte 007h                  ; 24 07
    1521115216    cmp AL, strict byte 001h                  ; 3c 01
    15212     jne short 09cb1h                          ; 75 1e
     15217    jne short 09cd0h                          ; 75 1e
    1521315218    mov al, bh                                ; 88 f8
    1521415219    xor ah, ah                                ; 30 e4
    1521515220    test ax, ax                               ; 85 c0
    15216     jne short 09cb1h                          ; 75 16
     15221    jne short 09cd0h                          ; 75 16
    1521715222    mov dx, strict word 0001ah                ; ba 1a 00
    1521815223    mov ax, bx                                ; 89 d8
    15219     call 09c1eh                               ; e8 7b ff
     15224    call 09c3dh                               ; e8 7b ff
    1522015225    mov dx, 00cfeh                            ; ba fe 0c
    1522115226    in AL, DX                                 ; ec
     
    1522315228    ; sub ah, ah                                ; 2a e4
    1522415229    cmp al, byte [bp-006h]                    ; 3a 46 fa
    15225     jbe short 09cb1h                          ; 76 03
     15230    jbe short 09cd0h                          ; 76 03
    1522615231    mov byte [bp-006h], al                    ; 88 46 fa
    1522715232    test di, di                               ; 85 ff
    15228     je short 09cbah                           ; 74 05
     15233    je short 09cd9h                           ; 74 05
    1522915234    mov dx, strict word 00008h                ; ba 08 00
    15230     jmp short 09cbch                          ; eb 02
     15235    jmp short 09cdbh                          ; eb 02
    1523115236    xor dx, dx                                ; 31 d2
    1523215237    mov ax, bx                                ; 89 d8
    15233     call 09c1eh                               ; e8 5d ff
     15238    call 09c3dh                               ; e8 5d ff
    1523415239    mov dx, 00cfch                            ; ba fc 0c
    1523515240    in eax, DX                                ; 66 ed
     
    1524215247    mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
    1524315248    test di, di                               ; 85 ff
    15244     je short 09cebh                           ; 74 0f
     15249    je short 09d0ah                           ; 74 0f
    1524515250    mov cx, strict word 00008h                ; b9 08 00
    1524615251    shr dx, 1                                 ; d1 ea
    1524715252    rcr ax, 1                                 ; d1 d8
    15248     loop 09cdfh                               ; e2 fa
     15253    loop 09cfeh                               ; e2 fa
    1524915254    mov word [bp-00ah], ax                    ; 89 46 f6
    1525015255    mov word [bp-010h], dx                    ; 89 56 f0
    1525115256    mov ax, word [bp-010h]                    ; 8b 46 f0
    1525215257    cmp ax, word [bp-014h]                    ; 3b 46 ec
    15253     jne short 09cfbh                          ; 75 08
     15258    jne short 09d1ah                          ; 75 08
    1525415259    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1525515260    cmp ax, word [bp-012h]                    ; 3b 46 ee
    15256     je short 09d01h                           ; 74 06
     15261    je short 09d20h                           ; 74 06
    1525715262    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    15258     je short 09d07h                           ; 74 06
     15263    je short 09d26h                           ; 74 06
    1525915264    dec si                                    ; 4e
    1526015265    cmp si, strict byte 0ffffh                ; 83 fe ff
    15261     je short 09d1ah                           ; 74 13
     15266    je short 09d39h                           ; 74 13
    1526215267    add bx, word [bp-00eh]                    ; 03 5e f2
    1526315268    mov al, bh                                ; 88 f8
     
    1526615271    xor dh, dh                                ; 30 f6
    1526715272    cmp ax, dx                                ; 39 d0
    15268     jnbe short 09d1ah                         ; 77 03
    15269     jmp near 09c58h                           ; e9 3e ff
     15273    jnbe short 09d39h                         ; 77 03
     15274    jmp near 09c77h                           ; e9 3e ff
    1527015275    cmp si, strict byte 0ffffh                ; 83 fe ff
    15271     jne short 09d23h                          ; 75 04
     15276    jne short 09d42h                          ; 75 04
    1527215277    mov ax, bx                                ; 89 d8
    15273     jmp short 09d26h                          ; eb 03
     15278    jmp short 09d45h                          ; eb 03
    1527415279    mov ax, strict word 0ffffh                ; b8 ff ff
    1527515280    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1527815283    pop bp                                    ; 5d
    1527915284    retn                                      ; c3
    15280     sbb bl, byte [bp-061cdh]                  ; 1a 9e 33 9e
    15281     inc bp                                    ; 45
    15282     sahf                                      ; 9e
    15283     pop cx                                    ; 59
    15284     sahf                                      ; 9e
    15285     db  06bh
    15286     sahf                                      ; 9e
    15287     jle short 09cd7h                          ; 7e 9e
    15288 _pci16_function:                             ; 0xf9d39 LB 0x1d5
     15285    cmp word [bp-061aeh], bx                  ; 39 9e 52 9e
     15286    db  064h, 09eh
     15287    ; fs sahf                                   ; 64 9e
     15288    js short 09cf2h                           ; 78 9e
     15289    mov bl, byte [bp-06163h]                  ; 8a 9e 9d 9e
     15290_pci16_function:                             ; 0xf9d58 LB 0x1d5
    1528915291    push bp                                   ; 55
    1529015292    mov bp, sp                                ; 89 e5
     
    1530015302    xor ah, ah                                ; 30 e4
    1530115303    cmp bx, strict byte 00003h                ; 83 fb 03
    15302     jc short 09d6bh                           ; 72 13
    15303     jbe short 09dbeh                          ; 76 64
     15304    jc short 09d8ah                           ; 72 13
     15305    jbe short 09dddh                          ; 76 64
    1530415306    cmp bx, strict byte 0000eh                ; 83 fb 0e
    15305     je short 09dc6h                           ; 74 67
     15307    je short 09de5h                           ; 74 67
    1530615308    cmp bx, strict byte 00008h                ; 83 fb 08
    15307     jc short 09d75h                           ; 72 11
     15309    jc short 09d94h                           ; 72 11
    1530815310    cmp bx, strict byte 0000dh                ; 83 fb 0d
    15309     jbe short 09dc9h                          ; 76 60
    15310     jmp short 09d75h                          ; eb 0a
     15311    jbe short 09de8h                          ; 76 60
     15312    jmp short 09d94h                          ; eb 0a
    1531115313    cmp bx, strict byte 00002h                ; 83 fb 02
    15312     je short 09d94h                           ; 74 24
     15314    je short 09db3h                           ; 74 24
    1531315315    cmp bx, strict byte 00001h                ; 83 fb 01
    15314     je short 09d78h                           ; 74 03
    15315     jmp near 09ed7h                           ; e9 5f 01
     15316    je short 09d97h                           ; 74 03
     15317    jmp near 09ef6h                           ; e9 5f 01
    1531615318    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1531715319    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1531915321    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1532015322    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    15321     jmp near 09f07h                           ; e9 73 01
     15323    jmp near 09f26h                           ; e9 73 01
    1532215324    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    15323     jne short 09da0h                          ; 75 06
     15325    jne short 09dbfh                          ; 75 06
    1532415326    or ah, 083h                               ; 80 cc 83
    15325     jmp near 09f00h                           ; e9 60 01
     15327    jmp near 09f1fh                           ; e9 60 01
    1532615328    mov bx, word [bp+008h]                    ; 8b 5e 08
    1532715329    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1532815330    mov ax, word [bp+018h]                    ; 8b 46 18
    1532915331    xor cx, cx                                ; 31 c9
    15330     call 09c42h                               ; e8 94 fe
     15332    call 09c61h                               ; e8 94 fe
    1533115333    cmp ax, strict word 0ffffh                ; 3d ff ff
    15332     jne short 09dc0h                          ; 75 0d
     15334    jne short 09ddfh                          ; 75 0d
    1533315335    mov ax, word [bp+020h]                    ; 8b 46 20
    1533415336    xor ah, ah                                ; 30 e4
    1533515337    or ah, 086h                               ; 80 cc 86
    15336     jmp near 09f00h                           ; e9 42 01
    15337     jmp short 09dcbh                          ; eb 0b
     15338    jmp near 09f1fh                           ; e9 42 01
     15339    jmp short 09deah                          ; eb 0b
    1533815340    mov word [bp+014h], ax                    ; 89 46 14
    15339     jmp near 09f07h                           ; e9 41 01
    15340     jmp near 09e92h                           ; e9 c9 00
    15341     jmp short 09df0h                          ; eb 25
     15341    jmp near 09f26h                           ; e9 41 01
     15342    jmp near 09eb1h                           ; e9 c9 00
     15343    jmp short 09e0fh                          ; eb 25
    1534215344    mov bx, word [bp+008h]                    ; 8b 5e 08
    1534315345    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1534415346    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1534515347    mov cx, strict word 00001h                ; b9 01 00
    15346     call 09c42h                               ; e8 68 fe
     15348    call 09c61h                               ; e8 68 fe
    1534715349    cmp ax, strict word 0ffffh                ; 3d ff ff
    15348     jne short 09deah                          ; 75 0b
     15350    jne short 09e09h                          ; 75 0b
    1534915351    mov ax, word [bp+020h]                    ; 8b 46 20
    1535015352    xor ah, ah                                ; 30 e4
    1535115353    or ah, 086h                               ; 80 cc 86
    15352     jmp near 09f00h                           ; e9 16 01
     15354    jmp near 09f1fh                           ; e9 16 01
    1535315355    mov word [bp+014h], ax                    ; 89 46 14
    15354     jmp near 09f07h                           ; e9 17 01
     15356    jmp near 09f26h                           ; e9 17 01
    1535515357    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    15356     jc short 09dfdh                           ; 72 06
     15358    jc short 09e1ch                           ; 72 06
    1535715359    or ah, 087h                               ; 80 cc 87
    15358     jmp near 09f00h                           ; e9 03 01
     15360    jmp near 09f1fh                           ; e9 03 01
    1535915361    mov dx, word [bp+004h]                    ; 8b 56 04
    1536015362    mov ax, word [bp+014h]                    ; 8b 46 14
    15361     call 09c1eh                               ; e8 18 fe
     15363    call 09c3dh                               ; e8 18 fe
    1536215364    mov bx, word [bp+020h]                    ; 8b 5e 20
    1536315365    xor bh, bh                                ; 30 ff
    1536415366    sub bx, strict byte 00008h                ; 83 eb 08
    1536515367    cmp bx, strict byte 00005h                ; 83 fb 05
    15366     jnbe short 09e7bh                         ; 77 68
     15368    jnbe short 09e9ah                         ; 77 68
    1536715369    sal bx, 1                                 ; d1 e3
    15368     jmp word [cs:bx-062d3h]                   ; 2e ff a7 2d 9d
     15370    jmp word [cs:bx-062b4h]                   ; 2e ff a7 4c 9d
    1536915371    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1537015372    xor bl, bl                                ; 30 db
     
    1537715379    or bx, ax                                 ; 09 c3
    1537815380    mov word [bp+01ch], bx                    ; 89 5e 1c
    15379     jmp short 09e7bh                          ; eb 48
     15381    jmp short 09e9ah                          ; eb 48
    1538015382    mov dx, word [bp+004h]                    ; 8b 56 04
    1538115383    xor dh, dh                                ; 30 f6
     
    1538415386    in ax, DX                                 ; ed
    1538515387    mov word [bp+01ch], ax                    ; 89 46 1c
    15386     jmp short 09e7bh                          ; eb 36
     15388    jmp short 09e9ah                          ; eb 36
    1538715389    mov dx, 00cfch                            ; ba fc 0c
    1538815390    in eax, DX                                ; 66 ed
     
    1539315395    mov word [bp+01ch], ax                    ; 89 46 1c
    1539415396    mov word [bp+01eh], dx                    ; 89 56 1e
    15395     jmp short 09e7bh                          ; eb 22
     15397    jmp short 09e9ah                          ; eb 22
    1539615398    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1539715399    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1540015402    add dx, 00cfch                            ; 81 c2 fc 0c
    1540115403    out DX, AL                                ; ee
    15402     jmp short 09e7bh                          ; eb 10
     15404    jmp short 09e9ah                          ; eb 10
    1540315405    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1540415406    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1540715409    add dx, 00cfch                            ; 81 c2 fc 0c
    1540815410    out DX, ax                                ; ef
    15409     jmp near 09f07h                           ; e9 89 00
     15411    jmp near 09f26h                           ; e9 89 00
    1541015412    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1541115413    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1541615418    ; mov ax, cx                                ; 8b c1
    1541715419    out DX, eax                               ; 66 ef
    15418     jmp short 09f07h                          ; eb 75
     15420    jmp short 09f26h                          ; eb 75
    1541915421    mov bx, word [bp+004h]                    ; 8b 5e 04
    1542015422    mov es, [bp+026h]                         ; 8e 46 26
    1542115423    mov word [bp-008h], bx                    ; 89 5e f8
    1542215424    mov [bp-006h], es                         ; 8c 46 fa
    15423     mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
     15425    mov cx, word [0f380h]                     ; 8b 0e 80 f3
    1542415426    cmp cx, word [es:bx]                      ; 26 3b 0f
    15425     jbe short 09eb8h                          ; 76 11
     15427    jbe short 09ed7h                          ; 76 11
    1542615428    mov ax, word [bp+020h]                    ; 8b 46 20
    1542715429    xor ah, ah                                ; 30 e4
     
    1542915431    mov word [bp+020h], ax                    ; 89 46 20
    1543015432    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15431     jmp short 09ecch                          ; eb 14
     15433    jmp short 09eebh                          ; eb 14
    1543215434    les di, [es:bx+002h]                      ; 26 c4 7f 02
    15433     mov si, 0f2c0h                            ; be c0 f2
     15435    mov si, 0f1a0h                            ; be a0 f1
    1543415436    mov dx, ds                                ; 8c da
    1543515437    push DS                                   ; 1e
     
    1543815440    pop DS                                    ; 1f
    1543915441    mov word [bp+014h], 00a00h                ; c7 46 14 00 0a
    15440     mov ax, word [0f4a0h]                     ; a1 a0 f4
     15442    mov ax, word [0f380h]                     ; a1 80 f3
    1544115443    les bx, [bp-008h]                         ; c4 5e f8
    1544215444    mov word [es:bx], ax                      ; 26 89 07
    15443     jmp short 09f07h                          ; eb 30
     15445    jmp short 09f26h                          ; eb 30
    1544415446    mov bx, 00da0h                            ; bb a0 0d
    1544515447    mov cx, ds                                ; 8c d9
    1544615448    mov ax, strict word 00004h                ; b8 04 00
    15447     call 01933h                               ; e8 51 7a
     15449    call 01933h                               ; e8 32 7a
    1544815450    mov ax, word [bp+014h]                    ; 8b 46 14
    1544915451    push ax                                   ; 50
     
    1545415456    mov ax, strict word 00004h                ; b8 04 00
    1545515457    push ax                                   ; 50
    15456     call 01976h                               ; e8 81 7a
     15458    call 01976h                               ; e8 62 7a
    1545715459    add sp, strict byte 00008h                ; 83 c4 08
    1545815460    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1546615468    pop bp                                    ; 5d
    1546715469    retn                                      ; c3
    15468 pci_find_classcode_:                         ; 0xf9f0e LB 0x8
     15470pci_find_classcode_:                         ; 0xf9f2d LB 0x8
    1546915471    push bp                                   ; 55
    1547015472    mov bp, sp                                ; 89 e5
     
    1547215474    pop bp                                    ; 5d
    1547315475    retn                                      ; c3
    15474 pci_read_config_byte_:                       ; 0xf9f16 LB 0x27
     15476pci_read_config_byte_:                       ; 0xf9f35 LB 0x27
    1547515477    push bp                                   ; 55
    1547615478    mov bp, sp                                ; 89 e5
     
    1549515497    pop bp                                    ; 5d
    1549615498    retn                                      ; c3
    15497 pci_read_config_word_:                       ; 0xf9f3d LB 0x25
     15499pci_read_config_word_:                       ; 0xf9f5c LB 0x25
    1549815500    push bp                                   ; 55
    1549915501    mov bp, sp                                ; 89 e5
     
    1551715519    pop bp                                    ; 5d
    1551815520    retn                                      ; c3
    15519 pci_read_config_dword_:                      ; 0xf9f62 LB 0x3f
     15521pci_read_config_dword_:                      ; 0xf9f81 LB 0x3f
    1552015522    push bp                                   ; 55
    1552115523    mov bp, sp                                ; 89 e5
     
    1553215534    int 01ah                                  ; cd 1a
    1553315535    test cx, cx                               ; 85 c9
    15534     jne short 09f92h                          ; 75 14
     15536    jne short 09fb1h                          ; 75 14
    1553515537    mov al, byte [bp-006h]                    ; 8a 46 fa
    1553615538    xor ah, ah                                ; 30 e4
     
    1554215544    int 01ah                                  ; cd 1a
    1554315545    test cx, cx                               ; 85 c9
    15544     je short 09f97h                           ; 74 05
     15546    je short 09fb6h                           ; 74 05
    1554515547    mov ax, strict word 00001h                ; b8 01 00
    15546     jmp short 09f99h                          ; eb 02
     15548    jmp short 09fb8h                          ; eb 02
    1554715549    xor ax, ax                                ; 31 c0
    1554815550    cwd                                       ; 99
     
    1555215554    pop bp                                    ; 5d
    1555315555    retn                                      ; c3
    15554 vds_is_present_:                             ; 0xf9fa1 LB 0x1d
     15556pci_write_config_word_:                      ; 0xf9fc0 LB 0x1e
     15557    push bp                                   ; 55
     15558    mov bp, sp                                ; 89 e5
     15559    push di                                   ; 57
     15560    push ax                                   ; 50
     15561    mov byte [bp-004h], al                    ; 88 46 fc
     15562    mov al, bl                                ; 88 d8
     15563    xor ah, ah                                ; 30 e4
     15564    mov di, ax                                ; 89 c7
     15565    mov bh, byte [bp-004h]                    ; 8a 7e fc
     15566    mov bl, dl                                ; 88 d3
     15567    mov ax, 0b10ch                            ; b8 0c b1
     15568    int 01ah                                  ; cd 1a
     15569    lea sp, [bp-002h]                         ; 8d 66 fe
     15570    pop di                                    ; 5f
     15571    pop bp                                    ; 5d
     15572    retn                                      ; c3
     15573vds_is_present_:                             ; 0xf9fde LB 0x1d
    1555515574    push bx                                   ; 53
    1555615575    push bp                                   ; 55
     
    1556015579    mov es, ax                                ; 8e c0
    1556115580    test byte [es:bx], 020h                   ; 26 f6 07 20
    15562     je short 09fb9h                           ; 74 06
     15581    je short 09ff6h                           ; 74 06
    1556315582    mov ax, strict word 00001h                ; b8 01 00
    1556415583    pop bp                                    ; 5d
     
    1556915588    pop bx                                    ; 5b
    1557015589    retn                                      ; c3
    15571 vds_real_to_lin_:                            ; 0xf9fbe LB 0x1e
     15590vds_real_to_lin_:                            ; 0xf9ffb LB 0x1e
    1557215591    push bx                                   ; 53
    1557315592    push cx                                   ; 51
     
    1558015599    sal ax, 1                                 ; d1 e0
    1558115600    rcl dx, 1                                 ; d1 d2
    15582     loop 09fcch                               ; e2 fa
     15601    loop 0a009h                               ; e2 fa
    1558315602    xor cx, cx                                ; 31 c9
    1558415603    add ax, bx                                ; 01 d8
     
    1558815607    pop bx                                    ; 5b
    1558915608    retn                                      ; c3
    15590 vds_build_sg_list_:                          ; 0xf9fdc LB 0x77
     15609vds_build_sg_list_:                          ; 0xfa019 LB 0x77
    1559115610    push bp                                   ; 55
    1559215611    mov bp, sp                                ; 89 e5
     
    1560215621    mov bx, word [bp+006h]                    ; 8b 5e 06
    1560315622    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15604     call 09fbeh                               ; e8 c3 ff
     15623    call 09ffbh                               ; e8 c3 ff
    1560515624    mov es, si                                ; 8e c6
    1560615625    mov word [es:di+004h], ax                 ; 26 89 45 04
    1560715626    mov word [es:di+006h], dx                 ; 26 89 55 06
    1560815627    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15609     call 09fa1h                               ; e8 93 ff
     15628    call 09fdeh                               ; e8 93 ff
    1561015629    test ax, ax                               ; 85 c0
    15611     je short 0a023h                           ; 74 11
     15630    je short 0a060h                           ; 74 11
    1561215631    mov es, si                                ; 8e c6
    1561315632    mov ax, 08105h                            ; b8 05 81
    1561415633    mov dx, strict word 00000h                ; ba 00 00
    1561515634    int 04bh                                  ; cd 4b
    15616     jc short 0a020h                           ; 72 02
     15635    jc short 0a05dh                           ; 72 02
    1561715636    db  032h, 0c0h
    1561815637    ; xor al, al                                ; 32 c0
    1561915638    cbw                                       ; 98
    15620     jmp short 0a04ah                          ; eb 27
     15639    jmp short 0a087h                          ; eb 27
    1562115640    mov es, si                                ; 8e c6
    1562215641    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1563515654    pop bp                                    ; 5d
    1563615655    retn 00004h                               ; c2 04 00
    15637 vds_free_sg_list_:                           ; 0xfa053 LB 0x3d
     15656vds_free_sg_list_:                           ; 0xfa090 LB 0x30
    1563815657    push bp                                   ; 55
    1563915658    mov bp, sp                                ; 89 e5
     
    1564115660    push di                                   ; 57
    1564215661    mov bx, ax                                ; 89 c3
    15643     call 09fa1h                               ; e8 44 ff
     15662    call 09fdeh                               ; e8 44 ff
    1564415663    test ax, ax                               ; 85 c0
    15645     je short 0a072h                           ; 74 11
     15664    je short 0a0afh                           ; 74 11
    1564615665    mov di, bx                                ; 89 df
    1564715666    mov es, dx                                ; 8e c2
     
    1564915668    mov dx, strict word 00000h                ; ba 00 00
    1565015669    int 04bh                                  ; cd 4b
    15651     jc short 0a071h                           ; 72 02
     15670    jc short 0a0aeh                           ; 72 02
    1565215671    db  032h, 0c0h
    1565315672    ; xor al, al                                ; 32 c0
     
    1566015679    pop bp                                    ; 5d
    1566115680    retn                                      ; c3
    15662     times 0xf db 0
    15663 __U4M:                                       ; 0xfa090 LB 0x20
     15681    times 0x2 db 0
     15682__U4M:                                       ; 0xfa0c0 LB 0x20
    1566415683    pushfw                                    ; 9c
    1566515684    push si                                   ; 56
     
    1568815707    retn                                      ; c3
    1568915708    times 0x4 db 0
    15690 __U4D:                                       ; 0xfa0b0 LB 0x30
     15709__U4D:                                       ; 0xfa0e0 LB 0x30
    1569115710    pushfw                                    ; 9c
    1569215711    push DS                                   ; 1e
     
    1570315722    push dx                                   ; 52
    1570415723    push ax                                   ; 50
    15705     call 0a195h                               ; e8 d0 00
     15724    call 0a1c5h                               ; e8 d0 00
    1570615725    mov cx, word [bp-002h]                    ; 8b 4e fe
    1570715726    mov bx, word [bp-004h]                    ; 8b 5e fc
     
    1571415733    retn                                      ; c3
    1571515734    times 0xe db 0
    15716 __U8RS:                                      ; 0xfa0e0 LB 0x10
     15735__U8RS:                                      ; 0xfa110 LB 0x10
    1571715736    test si, si                               ; 85 f6
    15718     je short 0a0efh                           ; 74 0b
     15737    je short 0a11fh                           ; 74 0b
    1571915738    shr ax, 1                                 ; d1 e8
    1572015739    rcr bx, 1                                 ; d1 db
     
    1572215741    rcr dx, 1                                 ; d1 da
    1572315742    dec si                                    ; 4e
    15724     jne short 0a0e4h                          ; 75 f5
     15743    jne short 0a114h                          ; 75 f5
    1572515744    retn                                      ; c3
    15726 __U8LS:                                      ; 0xfa0f0 LB 0x10
     15745__U8LS:                                      ; 0xfa120 LB 0x10
    1572715746    test si, si                               ; 85 f6
    15728     je short 0a0ffh                           ; 74 0b
     15747    je short 0a12fh                           ; 74 0b
    1572915748    sal dx, 1                                 ; d1 e2
    1573015749    rcl cx, 1                                 ; d1 d1
     
    1573215751    rcl ax, 1                                 ; d1 d0
    1573315752    dec si                                    ; 4e
    15734     jne short 0a0f4h                          ; 75 f5
     15753    jne short 0a124h                          ; 75 f5
    1573515754    retn                                      ; c3
    15736 _fmemset_:                                   ; 0xfa100 LB 0x10
     15755_fmemset_:                                   ; 0xfa130 LB 0x10
    1573715756    push di                                   ; 57
    1573815757    mov es, dx                                ; 8e c2
     
    1574515764    retn                                      ; c3
    1574615765    times 0x3 db 0
    15747 _fmemcpy_:                                   ; 0xfa110 LB 0x3a
     15766_fmemcpy_:                                   ; 0xfa140 LB 0x3a
    1574815767    push bp                                   ; 55
    1574915768    db  08bh, 0ech
     
    1577015789    add byte [bx+si], al                      ; 00 00
    1577115790    add byte [bx+si], al                      ; 00 00
    15772     pushaw                                    ; 60
    15773     mov ax, word [0a162h]                     ; a1 62 a1
    15774     mov eax, dword [0a166h]                   ; 66 a1 66 a1
    15775     mov eax, dword [0a168h]                   ; 66 a1 68 a1
    15776     push 06aa1h                               ; 68 a1 6a
    15777     mov ax, word [0a16eh]                     ; a1 6e a1
    15778     outsb                                     ; 6e
    15779     mov ax, word [0a170h]                     ; a1 70 a1
    15780     jne short 0a0e9h                          ; 75 a1
    15781     jnbe short 0a0ebh                         ; 77 a1
    15782 apm_worker:                                  ; 0xfa14a LB 0x3a
     15791    nop                                       ; 90
     15792    mov ax, word [0a192h]                     ; a1 92 a1
     15793    xchg si, ax                               ; 96
     15794    mov ax, word [0a196h]                     ; a1 96 a1
     15795    xchg si, ax                               ; 96
     15796    mov ax, word [0a198h]                     ; a1 98 a1
     15797    cbw                                       ; 98
     15798    mov ax, word [0a19ah]                     ; a1 9a a1
     15799    sahf                                      ; 9e
     15800    mov ax, word [0a19eh]                     ; a1 9e a1
     15801    mov AL, byte [0a5a1h]                     ; a0 a1 a5
     15802    mov ax, word [0a1a7h]                     ; a1 a7 a1
     15803apm_worker:                                  ; 0xfa17a LB 0x3a
    1578315804    sti                                       ; fb
    1578415805    push ax                                   ; 50
     
    1579215813    pop ax                                    ; 58
    1579315814    mov AH, strict byte 053h                  ; b4 53
    15794     jnc short 0a180h                          ; 73 25
    15795     jmp word [cs:bp-05ed0h]                   ; 2e ff a6 30 a1
    15796     jmp short 0a17eh                          ; eb 1c
     15815    jnc short 0a1b0h                          ; 73 25
     15816    jmp word [cs:bp-05ea0h]                   ; 2e ff a6 60 a1
     15817    jmp short 0a1aeh                          ; eb 1c
    1579715818    sti                                       ; fb
    1579815819    hlt                                       ; f4
    15799     jmp short 0a17eh                          ; eb 18
    15800     jmp short 0a17eh                          ; eb 16
    15801     jmp short 0a180h                          ; eb 16
     15820    jmp short 0a1aeh                          ; eb 18
     15821    jmp short 0a1aeh                          ; eb 16
     15822    jmp short 0a1b0h                          ; eb 16
    1580215823    mov AH, strict byte 080h                  ; b4 80
    15803     jmp short 0a182h                          ; eb 14
    15804     jmp short 0a180h                          ; eb 10
     15824    jmp short 0a1b2h                          ; eb 14
     15825    jmp short 0a1b0h                          ; eb 10
    1580515826    mov ax, 00102h                            ; b8 02 01
    15806     jmp short 0a17eh                          ; eb 09
    15807     jmp short 0a17eh                          ; eb 07
     15827    jmp short 0a1aeh                          ; eb 09
     15828    jmp short 0a1aeh                          ; eb 07
    1580815829    mov BL, strict byte 000h                  ; b3 00
    1580915830    mov cx, strict word 00000h                ; b9 00 00
    15810     jmp short 0a17eh                          ; eb 00
     15831    jmp short 0a1aeh                          ; eb 00
    1581115832    clc                                       ; f8
    1581215833    retn                                      ; c3
     
    1581415835    stc                                       ; f9
    1581515836    retn                                      ; c3
    15816 apm_pm16_entry:                              ; 0xfa184 LB 0x11
     15837apm_pm16_entry:                              ; 0xfa1b4 LB 0x11
    1581715838    mov AH, strict byte 002h                  ; b4 02
    1581815839    push DS                                   ; 1e
     
    1582215843    add bp, strict byte 00008h                ; 83 c5 08
    1582315844    mov ds, bp                                ; 8e dd
    15824     call 0a14ah                               ; e8 b8 ff
     15845    call 0a17ah                               ; e8 b8 ff
    1582515846    pop bp                                    ; 5d
    1582615847    pop DS                                    ; 1f
    1582715848    retf                                      ; cb
    15828 _DoUInt32Div:                                ; 0xfa195 LB 0x26b
     15849_DoUInt32Div:                                ; 0xfa1c5 LB 0x26b
    1582915850    push bp                                   ; 55
    1583015851    mov bp, sp                                ; 89 e5
     
    1584415865    mov [bp-006h], ds                         ; 8c 5e fa
    1584515866    cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
    15846     jne short 0a1e5h                          ; 75 22
     15867    jne short 0a215h                          ; 75 22
    1584715868    mov ax, word [bx]                         ; 8b 07
    1584815869    test ax, ax                               ; 85 c0
    15849     je short 0a1e2h                           ; 74 19
     15870    je short 0a212h                           ; 74 19
    1585015871    cmp ax, strict word 00001h                ; 3d 01 00
    15851     jne short 0a1e5h                          ; 75 17
     15872    jne short 0a215h                          ; 75 17
    1585215873    xor ax, ax                                ; 31 c0
    1585315874    mov word [bp+00ah], ax                    ; 89 46 0a
     
    1585715878    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1585815879    mov word [bp+006h], ax                    ; 89 46 06
    15859     jmp near 0a3edh                           ; e9 08 02
     15880    jmp near 0a41dh                           ; e9 08 02
    1586015881    lds bx, [bp-00ch]                         ; c5 5e f4
    1586115882    mov ax, word [bx+002h]                    ; 8b 47 02
    1586215883    mov ds, [bp-006h]                         ; 8e 5e fa
    1586315884    cmp ax, word [si+002h]                    ; 3b 44 02
    15864     je short 0a20bh                           ; 74 18
     15885    je short 0a23bh                           ; 74 18
    1586515886    mov ds, [bp-00ah]                         ; 8e 5e f6
    1586615887    mov ax, word [bx+002h]                    ; 8b 47 02
    1586715888    mov ds, [bp-006h]                         ; 8e 5e fa
    1586815889    cmp ax, word [si+002h]                    ; 3b 44 02
    15869     jbe short 0a206h                          ; 76 05
     15890    jbe short 0a236h                          ; 76 05
    1587015891    mov ax, strict word 00001h                ; b8 01 00
    15871     jmp short 0a22ch                          ; eb 26
     15892    jmp short 0a25ch                          ; eb 26
    1587215893    mov ax, strict word 0ffffh                ; b8 ff ff
    15873     jmp short 0a22ch                          ; eb 21
     15894    jmp short 0a25ch                          ; eb 21
    1587415895    mov ds, [bp-00ah]                         ; 8e 5e f6
    1587515896    mov ax, word [bx]                         ; 8b 07
    1587615897    mov ds, [bp-006h]                         ; 8e 5e fa
    1587715898    cmp ax, word [si]                         ; 3b 04
    15878     je short 0a22ah                           ; 74 13
     15899    je short 0a25ah                           ; 74 13
    1587915900    mov ds, [bp-00ah]                         ; 8e 5e f6
    1588015901    mov ax, word [bx]                         ; 8b 07
    1588115902    mov ds, [bp-006h]                         ; 8e 5e fa
    1588215903    cmp ax, word [si]                         ; 3b 04
    15883     jbe short 0a225h                          ; 76 02
    15884     jmp short 0a201h                          ; eb dc
     15904    jbe short 0a255h                          ; 76 02
     15905    jmp short 0a231h                          ; eb dc
    1588515906    mov ax, strict word 0ffffh                ; b8 ff ff
    15886     jmp short 0a22ch                          ; eb 02
     15907    jmp short 0a25ch                          ; eb 02
    1588715908    xor ax, ax                                ; 31 c0
    1588815909    test ax, ax                               ; 85 c0
    15889     jnl short 0a24eh                          ; 7d 1e
     15910    jnl short 0a27eh                          ; 7d 1e
    1589015911    lds bx, [bp-00ch]                         ; c5 5e f4
    1589115912    mov ax, word [bx]                         ; 8b 07
     
    1589715918    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
    1589815919    mov word [bx], strict word 00000h         ; c7 07 00 00
    15899     jmp short 0a1e2h                          ; eb 94
    15900     jne short 0a265h                          ; 75 15
     15920    jmp short 0a212h                          ; eb 94
     15921    jne short 0a295h                          ; 75 15
    1590115922    mov ds, [bp-008h]                         ; 8e 5e f8
    1590215923    mov word [di+002h], ax                    ; 89 45 02
     
    1590515926    mov word [bx], strict word 00001h         ; c7 07 01 00
    1590615927    mov word [bx+002h], ax                    ; 89 47 02
    15907     jmp near 0a3edh                           ; e9 88 01
     15928    jmp near 0a41dh                           ; e9 88 01
    1590815929    lds bx, [bp-00ch]                         ; c5 5e f4
    1590915930    mov ax, word [bx+002h]                    ; 8b 47 02
    1591015931    test ax, ax                               ; 85 c0
    15911     je short 0a280h                           ; 74 11
     15932    je short 0a2b0h                           ; 74 11
    1591215933    push ax                                   ; 50
    1591315934    mov ax, 0f000h                            ; b8 00 f0
    1591415935    mov ds, ax                                ; 8e d8
    15915     call 0a400h                               ; e8 88 01
     15936    call 0a430h                               ; e8 88 01
    1591615937    add sp, strict byte 00002h                ; 83 c4 02
    1591715938    add ax, strict word 00010h                ; 05 10 00
    15918     jmp short 0a28dh                          ; eb 0d
     15939    jmp short 0a2bdh                          ; eb 0d
    1591915940    push word [bx]                            ; ff 37
    1592015941    mov ax, 0f000h                            ; b8 00 f0
    1592115942    mov ds, ax                                ; 8e d8
    15922     call 0a400h                               ; e8 76 01
     15943    call 0a430h                               ; e8 76 01
    1592315944    add sp, strict byte 00002h                ; 83 c4 02
    1592415945    mov word [bp-014h], ax                    ; 89 46 ec
     
    1592615947    mov ax, word [si+002h]                    ; 8b 44 02
    1592715948    test ax, ax                               ; 85 c0
    15928     je short 0a2abh                           ; 74 11
     15949    je short 0a2dbh                           ; 74 11
    1592915950    push ax                                   ; 50
    1593015951    mov ax, 0f000h                            ; b8 00 f0
    1593115952    mov ds, ax                                ; 8e d8
    15932     call 0a400h                               ; e8 5d 01
     15953    call 0a430h                               ; e8 5d 01
    1593315954    add sp, strict byte 00002h                ; 83 c4 02
    1593415955    add ax, strict word 00010h                ; 05 10 00
    15935     jmp short 0a2b8h                          ; eb 0d
     15956    jmp short 0a2e8h                          ; eb 0d
    1593615957    push word [si]                            ; ff 34
    1593715958    mov ax, 0f000h                            ; b8 00 f0
    1593815959    mov ds, ax                                ; 8e d8
    15939     call 0a400h                               ; e8 4b 01
     15960    call 0a430h                               ; e8 4b 01
    1594015961    add sp, strict byte 00002h                ; 83 c4 02
    1594115962    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    1594815969    mov word [bp-016h], ax                    ; 89 46 ea
    1594915970    test dx, dx                               ; 85 d2
    15950     je short 0a328h                           ; 74 56
     15971    je short 0a358h                           ; 74 56
    1595115972    mov cx, dx                                ; 89 d1
    1595215973    xor ch, dh                                ; 30 f5
     
    1595415975    mov ax, word [si]                         ; 8b 04
    1595515976    mov dx, word [si+002h]                    ; 8b 54 02
    15956     jcxz 0a2e6h                               ; e3 06
     15977    jcxz 0a316h                               ; e3 06
    1595715978    sal ax, 1                                 ; d1 e0
    1595815979    rcl dx, 1                                 ; d1 d2
    15959     loop 0a2e0h                               ; e2 fa
     15980    loop 0a310h                               ; e2 fa
    1596015981    mov word [bp-018h], ax                    ; 89 46 e8
    1596115982    mov word [bp-016h], dx                    ; 89 56 ea
     
    1596315984    lds bx, [bp-00ch]                         ; c5 5e f4
    1596415985    cmp ax, word [bx+002h]                    ; 3b 47 02
    15965     jnbe short 0a306h                         ; 77 0f
     15986    jnbe short 0a336h                         ; 77 0f
    1596615987    mov ax, word [bp-016h]                    ; 8b 46 ea
    1596715988    cmp ax, word [bx+002h]                    ; 3b 47 02
    15968     jne short 0a30ah                          ; 75 0b
     15989    jne short 0a33ah                          ; 75 0b
    1596915990    mov ax, word [bp-018h]                    ; 8b 46 e8
    1597015991    cmp ax, word [bx]                         ; 3b 07
    15971     jbe short 0a30ah                          ; 76 04
     15992    jbe short 0a33ah                          ; 76 04
    1597215993    mov AL, strict byte 001h                  ; b0 01
    15973     jmp short 0a30ch                          ; eb 02
     15994    jmp short 0a33ch                          ; eb 02
    1597415995    xor al, al                                ; 30 c0
    1597515996    test al, al                               ; 84 c0
    15976     je short 0a333h                           ; 74 23
     15997    je short 0a363h                           ; 74 23
    1597715998    shr word [bp-016h], 1                     ; d1 6e ea
    1597815999    rcr word [bp-018h], 1                     ; d1 5e e8
    1597916000    dec word [bp-012h]                        ; ff 4e ee
    15980     jmp short 0a333h                          ; eb 18
     16001    jmp short 0a363h                          ; eb 18
    1598116002    mov cx, strict word 0001fh                ; b9 1f 00
    1598216003    sal word [bp-018h], 1                     ; d1 66 e8
    1598316004    rcl word [bp-016h], 1                     ; d1 56 ea
    15984     loop 0a31eh                               ; e2 f8
    15985     jmp short 0a316h                          ; eb ee
     16005    loop 0a34eh                               ; e2 f8
     16006    jmp short 0a346h                          ; eb ee
    1598616007    mov ax, word [si]                         ; 8b 04
    1598716008    mov word [bp-018h], ax                    ; 89 46 e8
     
    1600016021    mov ds, [bp-006h]                         ; 8e 5e fa
    1600116022    cmp ax, word [si+002h]                    ; 3b 44 02
    16002     jnbe short 0a35fh                         ; 77 06
    16003     jne short 0a363h                          ; 75 08
     16023    jnbe short 0a38fh                         ; 77 06
     16024    jne short 0a393h                          ; 75 08
    1600416025    cmp dx, word [si]                         ; 3b 14
    16005     jc short 0a363h                           ; 72 04
     16026    jc short 0a393h                           ; 72 04
    1600616027    mov AL, strict byte 001h                  ; b0 01
    16007     jmp short 0a365h                          ; eb 02
     16028    jmp short 0a395h                          ; eb 02
    1600816029    xor al, al                                ; 30 c0
    1600916030    test al, al                               ; 84 c0
    16010     je short 0a3cah                           ; 74 61
     16031    je short 0a3fah                           ; 74 61
    1601116032    mov ds, [bp-008h]                         ; 8e 5e f8
    1601216033    mov ax, word [di+002h]                    ; 8b 45 02
    1601316034    cmp ax, word [bp-016h]                    ; 3b 46 ea
    16014     jnbe short 0a380h                         ; 77 0c
     16035    jnbe short 0a3b0h                         ; 77 0c
    1601516036    cmp ax, word [bp-016h]                    ; 3b 46 ea
    16016     jne short 0a384h                          ; 75 0b
     16037    jne short 0a3b4h                          ; 75 0b
    1601716038    mov ax, word [di]                         ; 8b 05
    1601816039    cmp ax, word [bp-018h]                    ; 3b 46 e8
    16019     jc short 0a384h                           ; 72 04
     16040    jc short 0a3b4h                           ; 72 04
    1602016041    mov AL, strict byte 001h                  ; b0 01
    16021     jmp short 0a386h                          ; eb 02
     16042    jmp short 0a3b6h                          ; eb 02
    1602216043    xor al, al                                ; 30 c0
    1602316044    test al, al                               ; 84 c0
    16024     je short 0a3b0h                           ; 74 26
     16045    je short 0a3e0h                           ; 74 26
    1602516046    mov ax, word [bp-018h]                    ; 8b 46 e8
    1602616047    mov ds, [bp-008h]                         ; 8e 5e f8
     
    1603116052    xor dx, dx                                ; 31 d2
    1603216053    mov cx, word [bp-012h]                    ; 8b 4e ee
    16033     jcxz 0a3a8h                               ; e3 06
     16054    jcxz 0a3d8h                               ; e3 06
    1603416055    sal ax, 1                                 ; d1 e0
    1603516056    rcl dx, 1                                 ; d1 d2
    16036     loop 0a3a2h                               ; e2 fa
     16057    loop 0a3d2h                               ; e2 fa
    1603716058    lds bx, [bp-010h]                         ; c5 5e f0
    1603816059    or word [bx], ax                          ; 09 07
     
    1604316064    mov ds, [bp-006h]                         ; 8e 5e fa
    1604416065    cmp ax, word [si+002h]                    ; 3b 44 02
    16045     jc short 0a3c6h                           ; 72 06
    16046     jne short 0a3cch                          ; 75 0a
     16066    jc short 0a3f6h                           ; 72 06
     16067    jne short 0a3fch                          ; 75 0a
    1604716068    cmp dx, word [si]                         ; 3b 14
    16048     jnc short 0a3cch                          ; 73 06
     16069    jnc short 0a3fch                          ; 73 06
    1604916070    mov AL, strict byte 001h                  ; b0 01
    16050     jmp short 0a3ceh                          ; eb 04
    16051     jmp short 0a3edh                          ; eb 21
     16071    jmp short 0a3feh                          ; eb 04
     16072    jmp short 0a41dh                          ; eb 21
    1605216073    xor al, al                                ; 30 c0
    1605316074    test al, al                               ; 84 c0
    16054     je short 0a3e1h                           ; 74 0f
    16055     jmp short 0a3edh                          ; eb 19
     16075    je short 0a411h                           ; 74 0f
     16076    jmp short 0a41dh                          ; eb 19
    1605616077    mov cx, strict word 0001fh                ; b9 1f 00
    1605716078    sal word [bp-018h], 1                     ; d1 66 e8
    1605816079    rcl word [bp-016h], 1                     ; d1 56 ea
    16059     loop 0a3d7h                               ; e2 f8
    16060     jmp short 0a3e7h                          ; eb 06
     16080    loop 0a407h                               ; e2 f8
     16081    jmp short 0a417h                          ; eb 06
    1606116082    shr word [bp-016h], 1                     ; d1 6e ea
    1606216083    rcr word [bp-018h], 1                     ; d1 5e e8
    1606316084    dec word [bp-012h]                        ; ff 4e ee
    16064     jmp near 0a369h                           ; e9 7c ff
     16085    jmp near 0a399h                           ; e9 7c ff
    1606516086    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1606616087    mov dx, word [bp-01ah]                    ; 8b 56 e6
     
    1607116092    retn                                      ; c3
    1607216093    times 0x6 db 0
    16073 _ASMBitLastSetU16:                           ; 0xfa400 LB 0x18
     16094_ASMBitLastSetU16:                           ; 0xfa430 LB 0x18
    1607416095    push bp                                   ; 55
    1607516096    db  08bh, 0ech
     
    1607716098    mov cx, word [bp+004h]                    ; 8b 4e 04
    1607816099    test cx, cx                               ; 85 c9
    16079     je short 0a414h                           ; 74 0a
     16100    je short 0a444h                           ; 74 0a
    1608016101    mov ax, strict word 00010h                ; b8 10 00
    1608116102    sal cx, 1                                 ; d1 e1
    16082     jc short 0a416h                           ; 72 05
     16103    jc short 0a446h                           ; 72 05
    1608316104    dec ax                                    ; 48
    16084     jmp short 0a40dh                          ; eb f9
     16105    jmp short 0a43dh                          ; eb f9
    1608516106    db  033h, 0c0h
    1608616107    ; xor ax, ax                                ; 33 c0
     
    1608816109    retn                                      ; c3
    1608916110
    16090   ; Padding 0x35e8 bytes at 0xfa418
    16091   times 13800 db 0
     16111  ; Padding 0x35b8 bytes at 0xfa448
     16112  times 13752 db 0
    1609216113
    1609316114section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1613616157    add bp, strict byte 00008h                ; 83 c5 08
    1613716158    push ebp                                  ; 66 55
    16138     mov bp, 0a186h                            ; bd 86 a1
     16159    mov bp, 0a1b6h                            ; bd b6 a1
    1613916160    add byte [bx+si], al                      ; 00 00
    1614016161    push ebp                                  ; 66 55
     
    1646816489    mov bx, ax                                ; 89 c3
    1646916490    mov edx, dword [di]                       ; 66 8b 15
    16470     mov AL, byte [000f4h]                     ; a0 f4 00
     16491    xor bl, 000h                              ; 80 f3 00
    1647116492    add byte [bp+026h], ah                    ; 00 66 26
    1647216493    cmp dx, word [bx+si]                      ; 3b 10
     
    1648516506    mov di, word [es:bx+si+002h]              ; 26 8b 78 02
    1648616507    mov dx, ds                                ; 8c da
    16487     mov si, 0f2c0h                            ; be c0 f2
     16508    mov si, 0f1a0h                            ; be a0 f1
    1648816509    add byte [bx+si], al                      ; 00 00
    1648916510    mov es, [di-014h]                         ; 8e 45 ec
     
    1649416515    pop DS                                    ; 1f
    1649516516    mov dword [di+018h], strict dword 0a1660a00h ; 66 c7 45 18 00 0a 66 a1
    16496     mov AL, byte [000f4h]                     ; a0 f4 00
     16517    xor bl, 000h                              ; 80 f3 00
    1649716518    add byte [bp-00fbbh], cl                  ; 00 8e 45 f0
    1649816519    db  066h, 026h, 089h, 003h
     
    1767517696    pop eax                                   ; 66 58
    1767617697    retn                                      ; c3
    17677 pcibios_init_iomem_bases:                    ; 0xff141 LB 0x16
     17698pcibios_init_iomem_bases:                    ; 0xff141 LB 0x12
    1767817699    push bp                                   ; 55
    1767917700    db  08bh, 0ech
    1768017701    ; mov bp, sp                                ; 8b ec
    17681     mov eax, strict dword 0e0000000h          ; 66 b8 00 00 00 e0
    17682     push eax                                  ; 66 50
    17683     mov ax, 0d000h                            ; b8 00 d0
    17684     push ax                                   ; 50
    17685     mov ax, strict word 00010h                ; b8 10 00
    17686     push ax                                   ; 50
    17687     mov bx, strict word 00008h                ; bb 08 00
    17688 pci_init_io_loop1:                           ; 0xff157 LB 0xe
    17689     mov DL, strict byte 000h                  ; b2 00
    17690     call 0f126h                               ; e8 ca ff
    17691     mov dx, 00cfch                            ; ba fc 0c
    17692     in ax, DX                                 ; ed
    17693     cmp ax, strict byte 0ffffh                ; 83 f8 ff
    17694     je short 0f19eh                           ; 74 39
    17695 enable_iomem_space:                          ; 0xff165 LB 0x39
    17696     mov DL, strict byte 004h                  ; b2 04
    17697     call 0f126h                               ; e8 bc ff
    17698     mov dx, 00cfch                            ; ba fc 0c
    17699     in AL, DX                                 ; ec
    17700     or AL, strict byte 007h                   ; 0c 07
    17701     out DX, AL                                ; ee
    17702     mov DL, strict byte 000h                  ; b2 00
    17703     call 0f126h                               ; e8 b0 ff
    17704     mov dx, 00cfch                            ; ba fc 0c
    17705     in eax, DX                                ; 66 ed
    17706     cmp eax, strict dword 020001022h          ; 66 3d 22 10 00 20
    17707     jne short 0f19eh                          ; 75 1b
    17708     mov DL, strict byte 010h                  ; b2 10
    17709     call 0f126h                               ; e8 9e ff
    17710     mov dx, 00cfch                            ; ba fc 0c
    17711     in ax, DX                                 ; ed
    17712     and ax, strict byte 0fffch                ; 83 e0 fc
    17713     db  08bh, 0c8h
    17714     ; mov cx, ax                                ; 8b c8
    17715     db  08bh, 0d1h
    17716     ; mov dx, cx                                ; 8b d1
    17717     add dx, strict byte 00014h                ; 83 c2 14
    17718     in ax, DX                                 ; ed
    17719     db  08bh, 0d1h
    17720     ; mov dx, cx                                ; 8b d1
    17721     add dx, strict byte 00018h                ; 83 c2 18
    17722     in eax, DX                                ; 66 ed
    17723 next_pci_dev:                                ; 0xff19e LB 0xf
    17724     mov byte [bp-008h], 010h                  ; c6 46 f8 10
    17725     inc bx                                    ; 43
    17726     cmp bx, 00100h                            ; 81 fb 00 01
    17727     jne short 0f157h                          ; 75 ae
     17702    mov eax, strict dword 00124f9fdh          ; 66 b8 fd f9 24 01
     17703    mov dx, 00410h                            ; ba 10 04
     17704    out DX, eax                               ; 66 ef
    1772817705    db  08bh, 0e5h
    1772917706    ; mov sp, bp                                ; 8b e5
    1773017707    pop bp                                    ; 5d
    1773117708    retn                                      ; c3
    17732 pcibios_init_set_elcr:                       ; 0xff1ad LB 0xc
     17709pcibios_init_set_elcr:                       ; 0xff153 LB 0xc
    1773317710    push ax                                   ; 50
    1773417711    push cx                                   ; 51
    1773517712    mov dx, 004d0h                            ; ba d0 04
    1773617713    test AL, strict byte 008h                 ; a8 08
    17737     je short 0f1b9h                           ; 74 03
     17714    je short 0f15fh                           ; 74 03
    1773817715    inc dx                                    ; 42
    1773917716    and AL, strict byte 007h                  ; 24 07
    17740 is_master_pic:                               ; 0xff1b9 LB 0xd
     17717is_master_pic:                               ; 0xff15f LB 0xd
    1774117718    db  08ah, 0c8h
    1774217719    ; mov cl, al                                ; 8a c8
     
    1775017727    pop ax                                    ; 58
    1775117728    retn                                      ; c3
    17752 pcibios_init_irqs:                           ; 0xff1c6 LB 0x53
     17729pcibios_init_irqs:                           ; 0xff16c LB 0x34
    1775317730    push DS                                   ; 1e
    1775417731    push bp                                   ; 55
    1775517732    mov ax, 0f000h                            ; b8 00 f0
    1775617733    mov ds, ax                                ; 8e d8
    17757     mov dx, 004d0h                            ; ba d0 04
    17758     mov AL, strict byte 000h                  ; b0 00
    17759     out DX, AL                                ; ee
    17760     inc dx                                    ; 42
    17761     out DX, AL                                ; ee
    17762     mov si, 0f2a0h                            ; be a0 f2
    17763     mov bh, byte [si+008h]                    ; 8a 7c 08
    17764     mov bl, byte [si+009h]                    ; 8a 5c 09
    17765     mov DL, strict byte 000h                  ; b2 00
    17766     call 0f126h                               ; e8 43 ff
    17767     mov dx, 00cfch                            ; ba fc 0c
    17768     in eax, DX                                ; 66 ed
    17769     cmp eax, dword [si+00ch]                  ; 66 3b 44 0c
    17770     jne near 0f296h                           ; 0f 85 a6 00
    17771     mov dl, byte [si+022h]                    ; 8a 54 22
    17772     call 0f126h                               ; e8 30 ff
    17773     push bx                                   ; 53
    17774     mov dx, 00cfch                            ; ba fc 0c
    17775     mov ax, 08080h                            ; b8 80 80
    17776     out DX, ax                                ; ef
    17777     add dx, strict byte 00002h                ; 83 c2 02
    17778     out DX, ax                                ; ef
    17779     mov ax, word [si+006h]                    ; 8b 44 06
    17780     sub ax, strict byte 00020h                ; 83 e8 20
    17781     shr ax, 004h                              ; c1 e8 04
    17782     db  08bh, 0c8h
    17783     ; mov cx, ax                                ; 8b c8
    17784     add si, strict byte 00020h                ; 83 c6 20
    17785     db  08bh, 0ech
    17786     ; mov bp, sp                                ; 8b ec
    17787     mov ax, 0f122h                            ; b8 22 f1
    17788     push ax                                   ; 50
    17789     db  033h, 0c0h
    17790     ; xor ax, ax                                ; 33 c0
    17791     push ax                                   ; 50
    17792 pci_init_irq_loop1:                          ; 0xff219 LB 0x5
    17793     mov bh, byte [si]                         ; 8a 3c
    17794     mov bl, byte [si+001h]                    ; 8a 5c 01
    17795 pci_init_irq_loop2:                          ; 0xff21e LB 0x15
    17796     mov DL, strict byte 000h                  ; b2 00
    17797     call 0f126h                               ; e8 03 ff
    17798     mov dx, 00cfch                            ; ba fc 0c
    17799     in ax, DX                                 ; ed
    17800     cmp ax, strict byte 0ffffh                ; 83 f8 ff
    17801     jne short 0f233h                          ; 75 07
    17802     test bl, 007h                             ; f6 c3 07
    17803     je short 0f28ah                           ; 74 59
    17804     jmp short 0f280h                          ; eb 4d
    17805 pci_test_int_pin:                            ; 0xff233 LB 0x3c
    17806     mov DL, strict byte 03ch                  ; b2 3c
    17807     call 0f126h                               ; e8 ee fe
    17808     mov dx, 00cfdh                            ; ba fd 0c
    17809     in AL, DX                                 ; ec
    17810     and AL, strict byte 007h                  ; 24 07
    17811     je short 0f280h                           ; 74 40
    17812     db  0feh, 0c8h
    17813     ; dec al                                    ; fe c8
    17814     mov DL, strict byte 003h                  ; b2 03
    17815     mul dl                                    ; f6 e2
    17816     add AL, strict byte 002h                  ; 04 02
    17817     db  032h, 0e4h
    17818     ; xor ah, ah                                ; 32 e4
    17819     db  08bh, 0d8h
    17820     ; mov bx, ax                                ; 8b d8
    17821     mov al, byte [bx+si]                      ; 8a 00
    17822     db  08ah, 0d0h
    17823     ; mov dl, al                                ; 8a d0
    17824     mov bx, word [byte bp+000h]               ; 8b 5e 00
    17825     call 0f126h                               ; e8 d0 fe
    17826     mov dx, 00cfch                            ; ba fc 0c
    17827     and AL, strict byte 003h                  ; 24 03
    17828     db  002h, 0d0h
    17829     ; add dl, al                                ; 02 d0
    17830     in AL, DX                                 ; ec
    17831     cmp AL, strict byte 080h                  ; 3c 80
    17832     jc short 0f26fh                           ; 72 0d
    17833     mov bx, word [bp-002h]                    ; 8b 5e fe
    17834     mov al, byte [bx]                         ; 8a 07
    17835     out DX, AL                                ; ee
    17836     inc bx                                    ; 43
    17837     mov word [bp-002h], bx                    ; 89 5e fe
    17838     call 0f1adh                               ; e8 3e ff
    17839 pirq_found:                                  ; 0xff26f LB 0x11
    17840     mov bh, byte [si]                         ; 8a 3c
    17841     mov bl, byte [si+001h]                    ; 8a 5c 01
    17842     add bl, byte [bp-003h]                    ; 02 5e fd
    17843     mov DL, strict byte 03ch                  ; b2 3c
    17844     call 0f126h                               ; e8 aa fe
    17845     mov dx, 00cfch                            ; ba fc 0c
    17846     out DX, AL                                ; ee
    17847 next_pci_func:                               ; 0xff280 LB 0xa
    17848     inc byte [bp-003h]                        ; fe 46 fd
    17849     db  0feh, 0c3h
    17850     ; inc bl                                    ; fe c3
    17851     test bl, 007h                             ; f6 c3 07
    17852     jne short 0f21eh                          ; 75 94
    17853 next_pir_entry:                              ; 0xff28a LB 0xc
    17854     add si, strict byte 00010h                ; 83 c6 10
    17855     mov byte [bp-003h], 000h                  ; c6 46 fd 00
    17856     loop 0f219h                               ; e2 86
    17857     db  08bh, 0e5h
    17858     ; mov sp, bp                                ; 8b e5
    17859     pop bx                                    ; 5b
    17860 pci_init_end:                                ; 0xff296 LB 0x2a
    1786117734    pop bp                                    ; 5d
    1786217735    pop DS                                    ; 1f
    1786317736    retn                                      ; c3
    17864     db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 0fch, 024h, 050h, 049h, 052h, 000h, 001h, 000h, 002h, 000h
    17865     db  008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    17866     db  000h, 000h, 000h, 000h, 000h, 000h, 031h
    17867 _pci_routing_table:                          ; 0xff2c0 LB 0x1e0
     17737    mov ax, ax                                ; 89 c0
     17738    mov ax, ax                                ; 89 c0
     17739    mov ax, ax                                ; 89 c0
     17740    mov ax, ax                                ; 89 c0
     17741    mov ax, ax                                ; 89 c0
     17742    and AL, strict byte 050h                  ; 24 50
     17743    dec cx                                    ; 49
     17744    push dx                                   ; 52
     17745    add byte [bx+di], al                      ; 00 01
     17746    add byte [bp+si], al                      ; 00 02
     17747    add byte [bx+si], cl                      ; 00 08
     17748    add byte [bx+si], al                      ; 00 00
     17749    xchg byte [bx+si+07000h], al              ; 86 80 00 70
     17750    times 0xf db 0
     17751    db  031h
     17752_pci_routing_table:                          ; 0xff1a0 LB 0x1e0
    1786817753    db  000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h
    1786917754    db  000h, 010h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 001h, 000h
     
    1789617781    db  000h, 0e8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 01ch, 000h
    1789717782    db  000h, 0f0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 01dh, 000h
    17898 _pci_routing_table_size:                     ; 0xff4a0 LB 0x2
    17899     loopne 0f4a3h                             ; e0 01
    17900 biosorg_check_before_or_at_0F83Fh:           ; 0xff4a2 LB 0x39f
    17901     times 0x39d db 0
     17783_pci_routing_table_size:                     ; 0xff380 LB 0x2
     17784    loopne 0f383h                             ; e0 01
     17785biosorg_check_before_or_at_0F83Fh:           ; 0xff382 LB 0x4bf
     17786    times 0x4bd db 0
    1790217787    db  'XM'
    1790317788int12_handler:                               ; 0xff841 LB 0xc
     
    1795517840    popfw                                     ; 9d
    1795617841    jmp short 0f8afh                          ; eb 1f
    17957     call 09b28h                               ; e8 95 a2
     17842    call 09b47h                               ; e8 b4 a2
    1795817843    jmp short 0f883h                          ; eb ee
    1795917844int15_handler_mouse:                         ; 0xff895 LB 0x5
     
    1827818163cpu_reset:                                   ; 0xffff0 LB 0x10
    1827918164    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    18280     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0ffh
     18165    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0ddh
Note: See TracChangeset for help on using the changeset viewer.

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