Changeset 67683 in vbox for trunk/src/VBox/Devices/PC/BIOS
- Timestamp:
- Jun 29, 2017 8:57:09 AM (8 years ago)
- Location:
- trunk/src/VBox/Devices/PC/BIOS
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
r67495 r67683 1190 1190 times 1144 db 0 1191 1191 1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d 48 class=CODE group=AUTO1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d88 class=CODE group=AUTO 1193 1193 rom_scan_: ; 0xf1600 LB 0x50 1194 1194 push bp ; 55 … … 1585 1585 mov bx, strict word 0000ah ; bb 0a 00 1586 1586 xor cx, cx ; 31 c9 1587 call 0 9fe0h ; e8 13 871587 call 0a020h ; e8 53 87 1588 1588 mov word [bp-008h], ax ; 89 46 f8 1589 1589 mov cx, dx ; 89 d1 … … 1815 1815 mov dx, word [bp-026h] ; 8b 56 da 1816 1816 mov si, word [bp-01eh] ; 8b 76 e2 1817 call 0a0 10h ; e8 13 851817 call 0a050h ; e8 53 85 1818 1818 mov ax, dx ; 89 d0 1819 1819 xor ah, dh ; 30 f4 … … 2254 2254 mov dx, word [es:si] ; 26 8b 14 2255 2255 mov si, strict word 00018h ; be 18 00 2256 call 0a0 10h ; e8 c0 802256 call 0a050h ; e8 00 81 2257 2257 xor dh, dh ; 30 f6 2258 2258 mov word [bp-014h], dx ; 89 56 ec … … 2264 2264 mov dx, word [es:si] ; 26 8b 14 2265 2265 mov si, strict word 00020h ; be 20 00 2266 call 0a0 10h ; e8 a0 802266 call 0a050h ; e8 e0 80 2267 2267 mov bx, dx ; 89 d3 2268 2268 mov ax, word [bp-01ch] ; 8b 46 e4 … … 2295 2295 mov dx, word [es:si] ; 26 8b 14 2296 2296 mov si, strict word 00008h ; be 08 00 2297 call 0a0 10h ; e8 4f 802297 call 0a050h ; e8 8f 80 2298 2298 mov word [bp-012h], dx ; 89 56 ee 2299 2299 mov bx, word [bp-016h] ; 8b 5e ea … … 2304 2304 mov dx, word [es:si] ; 26 8b 14 2305 2305 mov si, strict word 00018h ; be 18 00 2306 call 0a0 10h ; e8 31 802306 call 0a050h ; e8 71 80 2307 2307 mov ah, dl ; 88 d4 2308 2308 and ah, 00fh ; 80 e4 0f … … 2861 2861 mov dx, word [es:di+036h] ; 26 8b 55 36 2862 2862 mov si, strict word 0000bh ; be 0b 00 2863 call 0a0 10h ; e8 89 7a2863 call 0a050h ; e8 c9 7a 2864 2864 mov word [bp-024h], dx ; 89 56 dc 2865 2865 mov word [bp-032h], cx ; 89 4e ce … … 3137 3137 mov dx, word [bp-024h] ; 8b 56 dc 3138 3138 mov si, strict word 00018h ; be 18 00 3139 call 0a0 10h ; e8 c7 773139 call 0a050h ; e8 07 78 3140 3140 xor dh, dh ; 30 f6 3141 3141 mov word [bp-014h], dx ; 89 56 ec … … 3145 3145 mov dx, word [bp-024h] ; 8b 56 dc 3146 3146 mov si, strict word 00020h ; be 20 00 3147 call 0a0 10h ; e8 b0 773147 call 0a050h ; e8 f0 77 3148 3148 mov bx, dx ; 89 d3 3149 3149 mov ax, word [bp-022h] ; 8b 46 de … … 3179 3179 mov dx, word [bp-024h] ; 8b 56 dc 3180 3180 mov si, strict word 00008h ; be 08 00 3181 call 0a0 10h ; e8 5c 773181 call 0a050h ; e8 9c 77 3182 3182 mov word [bp-00ch], ax ; 89 46 f4 3183 3183 mov word [bp-00eh], bx ; 89 5e f2 … … 3186 3186 mov word [bp-018h], dx ; 89 56 e8 3187 3187 mov si, strict word 00010h ; be 10 00 3188 call 0a0 10h ; e8 47 773188 call 0a050h ; e8 87 77 3189 3189 mov word [bp-024h], dx ; 89 56 dc 3190 3190 mov ax, dx ; 89 d0 … … 5468 5468 mov dx, ss ; 8c d2 5469 5469 lea ax, [bp-026h] ; 8d 46 da 5470 call 0a0 30h ; e8 7d 625470 call 0a070h ; e8 bd 62 5471 5471 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5472 5472 mov ax, strict word 00011h ; b8 11 00 … … 5941 5941 xor dl, dl ; 30 d2 5942 5942 xor cx, cx ; 31 c9 5943 call 0 9fc0h ; e8 a7 5c5943 call 0a000h ; e8 e7 5c 5944 5944 xor bx, bx ; 31 db 5945 5945 add ax, si ; 01 f0 … … 5947 5947 mov bx, di ; 89 fb 5948 5948 xor cx, cx ; 31 c9 5949 call 0 9fc0h ; e8 9a 5c5949 call 0a000h ; e8 da 5c 5950 5950 mov bx, ax ; 89 c3 5951 5951 mov ax, word [bp-010h] ; 8b 46 f0 … … 5982 5982 mov dx, ss ; 8c d2 5983 5983 lea ax, [bp-02eh] ; 8d 46 d2 5984 call 0a0 30h ; e8 b3 5c5984 call 0a070h ; e8 f3 5c 5985 5985 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 5986 5986 mov ax, word [bp-014h] ; 8b 46 ec … … 6321 6321 mov dx, ss ; 8c d2 6322 6322 lea ax, [bp-030h] ; 8d 46 d0 6323 call 0a0 30h ; e8 d6 586323 call 0a070h ; e8 16 59 6324 6324 mov word [bp-030h], strict word 00028h ; c7 46 d0 28 00 6325 6325 mov ax, word [bp-00eh] ; 8b 46 f2 … … 8251 8251 mov dx, word [bp+00ch] ; 8b 56 0c 8252 8252 mov si, strict word 00020h ; be 20 00 8253 call 0a0 10h ; e8 ea 458253 call 0a050h ; e8 2a 46 8254 8254 test ax, ax ; 85 c0 8255 8255 jne short 05a36h ; 75 0c … … 8289 8289 mov bx, strict word 0003fh ; bb 3f 00 8290 8290 xor cx, cx ; 31 c9 8291 call 0 9fc0h ; e8 41 458291 call 0a000h ; e8 81 45 8292 8292 mov bx, ax ; 89 c3 8293 8293 mov cx, dx ; 89 d1 8294 8294 mov ax, word [bp-004h] ; 8b 46 fc 8295 8295 mov dx, si ; 89 f2 8296 call 0 9fe0h ; e8 55 458296 call 0a020h ; e8 95 45 8297 8297 mov word [es:di+002h], ax ; 26 89 45 02 8298 8298 cmp ax, 00400h ; 3d 00 04 … … 8511 8511 mov bx, cx ; 89 cb 8512 8512 xor cx, cx ; 31 c9 8513 call 0 9fc0h ; e8 1a 438513 call 0a000h ; e8 5a 43 8514 8514 xor bx, bx ; 31 db 8515 8515 add ax, word [bp-008h] ; 03 46 f8 … … 8517 8517 mov bx, word [bp-00ah] ; 8b 5e f6 8518 8518 xor cx, cx ; 31 c9 8519 call 0 9fc0h ; e8 0b 438519 call 0a000h ; e8 4b 43 8520 8520 xor bx, bx ; 31 db 8521 8521 add ax, word [bp-006h] ; 03 46 fa … … 8685 8685 mov bx, word [bp-008h] ; 8b 5e f8 8686 8686 xor cx, cx ; 31 c9 8687 call 0 9fc0h ; e8 34 418687 call 0a000h ; e8 74 41 8688 8688 mov bx, word [bp-006h] ; 8b 5e fa 8689 8689 xor cx, cx ; 31 c9 8690 call 0 9fc0h ; e8 2c 418690 call 0a000h ; e8 6c 41 8691 8691 mov word [bp-010h], ax ; 89 46 f0 8692 8692 mov word [bp-00ch], dx ; 89 56 f4 … … 8846 8846 xor bx, bx ; 31 db 8847 8847 mov si, strict word 00020h ; be 20 00 8848 call 0a0 20h ; e8 ef 3f8848 call 0a060h ; e8 2f 40 8849 8849 mov si, ax ; 89 c6 8850 8850 mov word [bp-00ch], bx ; 89 5e f4 … … 9003 9003 mov bx, word [bp-00ch] ; 8b 5e f4 9004 9004 mov si, strict word 00020h ; be 20 00 9005 call 0a0 10h ; e8 fb 3d9005 call 0a050h ; e8 3b 3e 9006 9006 mov bx, di ; 89 fb 9007 9007 mov word [es:bx+014h], dx ; 26 89 57 14 … … 9359 9359 mov bx, strict word 0000fh ; bb 0f 00 9360 9360 xor cx, cx ; 31 c9 9361 call 0 9fe0h ; e8 38 3a9361 call 0a020h ; e8 78 3a 9362 9362 mov cx, ax ; 89 c1 9363 9363 mov bx, dx ; 89 d3 … … 12465 12465 mov dx, ss ; 8c d2 12466 12466 lea ax, [bp-046h] ; 8d 46 ba 12467 call 0a0 30h ; e8 1d 1d12467 call 0a070h ; e8 5d 1d 12468 12468 mov byte [bp-046h], 09eh ; c6 46 ba 9e 12469 12469 mov byte [bp-045h], 010h ; c6 46 bb 10 … … 12596 12596 mov dx, word [bp-014h] ; 8b 56 ec 12597 12597 mov si, strict word 0000ch ; be 0c 00 12598 call 0a0 10h ; e8 b6 1b12598 call 0a050h ; e8 f6 1b 12599 12599 mov word [bp-02ah], ax ; 89 46 d6 12600 12600 mov word [bp-016h], bx ; 89 5e ea … … 12618 12618 mov dx, word [bp-014h] ; 8b 56 ec 12619 12619 mov si, strict word 00006h ; be 06 00 12620 call 0a0 10h ; e8 75 1b12620 call 0a050h ; e8 b5 1b 12621 12621 mov si, word [bp-01eh] ; 8b 76 e2 12622 12622 add si, dx ; 01 d6 … … 12636 12636 mov dx, si ; 89 f2 12637 12637 mov si, strict word 00008h ; be 08 00 12638 call 0a0 10h ; e8 45 1b12638 call 0a050h ; e8 85 1b 12639 12639 mov word [bp-02eh], bx ; 89 5e d2 12640 12640 mov word [bp-030h], cx ; 89 4e d0 … … 12645 12645 mov dx, word [bp-036h] ; 8b 56 ca 12646 12646 mov si, strict word 00010h ; be 10 00 12647 call 0a0 10h ; e8 2a 1b12647 call 0a050h ; e8 6a 1b 12648 12648 mov si, word [bp-032h] ; 8b 76 ce 12649 12649 add si, dx ; 01 d6 … … 12671 12671 mov dx, word [bp-014h] ; 8b 56 ec 12672 12672 mov si, strict word 0000bh ; be 0b 00 12673 call 0a0 10h ; e8 de 1a12673 call 0a050h ; e8 1e 1b 12674 12674 mov si, dx ; 89 d6 12675 12675 mov dx, cx ; 89 ca … … 13145 13145 mov ax, 00080h ; b8 80 00 13146 13146 mov dx, word [bp-00ah] ; 8b 56 f6 13147 call 0a0 30h ; e8 7b 1613147 call 0a070h ; e8 bb 16 13148 13148 mov es, [bp-00ah] ; 8e 46 f6 13149 13149 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 13163 13163 mov dx, word [es:si] ; 26 8b 14 13164 13164 mov si, strict word 00008h ; be 08 00 13165 call 0a0 10h ; e8 17 1613165 call 0a050h ; e8 57 16 13166 13166 mov es, [bp-00ah] ; 8e 46 f6 13167 13167 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 13174 13174 mov dx, word [es:si] ; 26 8b 14 13175 13175 mov si, strict word 00010h ; be 10 00 13176 call 0a0 10h ; e8 f1 1513176 call 0a050h ; e8 31 16 13177 13177 mov es, [bp-00ah] ; 8e 46 f6 13178 13178 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 13186 13186 mov dx, word [es:si] ; 26 8b 14 13187 13187 mov si, strict word 00018h ; be 18 00 13188 call 0a0 10h ; e8 c5 1513188 call 0a050h ; e8 05 16 13189 13189 mov es, [bp-00ah] ; 8e 46 f6 13190 13190 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13197 13197 mov dx, word [es:si] ; 26 8b 14 13198 13198 mov si, strict word 00020h ; be 20 00 13199 call 0a0 10h ; e8 9f 1513199 call 0a050h ; e8 df 15 13200 13200 mov es, [bp-00ah] ; 8e 46 f6 13201 13201 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13208 13208 mov dx, word [es:si] ; 26 8b 14 13209 13209 mov si, strict word 00028h ; be 28 00 13210 call 0a0 10h ; e8 79 1513210 call 0a050h ; e8 b9 15 13211 13211 mov es, [bp-00ah] ; 8e 46 f6 13212 13212 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13222 13222 mov bx, word [bp-010h] ; 8b 5e f0 13223 13223 xor cx, cx ; 31 c9 13224 call 0 9fc0h ; e8 f4 1413224 call 0a000h ; e8 34 15 13225 13225 push dx ; 52 13226 13226 push ax ; 50 … … 13232 13232 mov ax, 0026ah ; b8 6a 02 13233 13233 mov dx, word [bp-00ah] ; 8b 56 f6 13234 call 09f 13h ; e8 2b1413234 call 09f59h ; e8 71 14 13235 13235 mov es, [bp-00ah] ; 8e 46 f6 13236 13236 mov dx, word [es:di+0027eh] ; 26 8b 95 7e 02 … … 13295 13295 add ax, 0026ah ; 05 6a 02 13296 13296 mov dx, cx ; 89 ca 13297 call 09f 8ah ; e8 c5 1313297 call 09fd0h ; e8 0b 14 13298 13298 mov es, cx ; 8e c1 13299 13299 mov al, byte [es:bx+003h] ; 26 8a 47 03 … … 13379 13379 mov ax, di ; 89 f8 13380 13380 mov dx, word [bp-00eh] ; 8b 56 f2 13381 call 0a0 30h ; e8 bb 1313381 call 0a070h ; e8 fb 13 13382 13382 lea ax, [di+00080h] ; 8d 85 80 00 13383 13383 mov cx, strict word 00040h ; b9 40 00 13384 13384 xor bx, bx ; 31 db 13385 13385 mov dx, word [bp-00eh] ; 8b 56 f2 13386 call 0a0 30h ; e8 ac 1313386 call 0a070h ; e8 ec 13 13387 13387 lea ax, [di+00200h] ; 8d 85 00 02 13388 13388 mov cx, strict word 00060h ; b9 60 00 13389 13389 xor bx, bx ; 31 db 13390 13390 mov dx, word [bp-00eh] ; 8b 56 f2 13391 call 0a0 30h ; e8 9d 1313391 call 0a070h ; e8 dd 13 13392 13392 mov al, byte [bp-00ah] ; 8a 46 f6 13393 13393 xor ah, ah ; 30 e4 … … 13563 13563 mov ax, si ; 89 f0 13564 13564 mov dx, word [bp-00ah] ; 8b 56 f6 13565 call 0a0 30h ; e8 3a 1213565 call 0a070h ; e8 7a 12 13566 13566 lea ax, [si+00080h] ; 8d 84 80 00 13567 13567 mov cx, strict word 00040h ; b9 40 00 13568 13568 xor bx, bx ; 31 db 13569 13569 mov dx, word [bp-00ah] ; 8b 56 f6 13570 call 0a0 30h ; e8 2b 1213570 call 0a070h ; e8 6b 12 13571 13571 lea di, [si+00200h] ; 8d bc 00 02 13572 13572 mov cx, strict word 00060h ; b9 60 00 … … 13574 13574 mov ax, di ; 89 f8 13575 13575 mov dx, word [bp-00ah] ; 8b 56 f6 13576 call 0a0 30h ; e8 1a 1213576 call 0a070h ; e8 5a 12 13577 13577 mov bl, byte [bp-008h] ; 8a 5e f8 13578 13578 xor bh, bh ; 30 ff … … 13906 13906 mov dx, word [bp+008h] ; 8b 56 08 13907 13907 xor cx, cx ; 31 c9 13908 call 0 9fe0h ; e8 79 0e13908 call 0a020h ; e8 b9 0e 13909 13909 mov word [es:si+00eh], ax ; 26 89 44 0e 13910 13910 xor di, di ; 31 ff … … 13933 13933 mov ax, 000c0h ; b8 c0 00 13934 13934 mov dx, word [bp-00ah] ; 8b 56 f6 13935 call 0a0 40h ; e8 85 0e13935 call 0a080h ; e8 c5 0e 13936 13936 mov es, [bp-008h] ; 8e 46 f8 13937 13937 mov word [es:si+018h], di ; 26 89 7c 18 … … 14652 14652 pop bp ; 5d 14653 14653 retn ; c3 14654 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0d eh, 099h, 0bch, 099h, 0c2h, 099h, 0c8h, 099h, 0ceh14655 db 099h, 0d 4h, 099h, 0dah, 099h, 0deh, 099h14656 _ahci_init: ; 0xf98f6 LB 0x1 1914654 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0dfh, 099h, 0bdh, 099h, 0c3h, 099h, 0c9h, 099h, 0cfh 14655 db 099h, 0d5h, 099h, 0dbh, 099h, 0dfh, 099h 14656 _ahci_init: ; 0xf98f6 LB 0x13a 14657 14657 push bp ; 55 14658 14658 mov bp, sp ; 89 e5 14659 push si ; 56 14659 14660 push di ; 57 14660 sub sp, strict byte 000 0eh ; 83 ec 0e14661 sub sp, strict byte 00012h ; 83 ec 12 14661 14662 mov ax, 00601h ; b8 01 06 14662 14663 mov dx, strict word 00001h ; ba 01 00 14663 call 09e 2ah ; e8 24 0514664 call 09e4bh ; e8 44 05 14664 14665 mov dx, ax ; 89 c2 14665 14666 cmp ax, strict word 0ffffh ; 3d ff ff 14666 je short 0995 9h ; 74 4c14667 je short 0995ah ; 74 4c 14667 14668 xor al, al ; 30 c0 14668 14669 shr ax, 008h ; c1 e8 08 14669 mov byte [bp-00 8h], al ; 88 46 f814670 mov byte [bp-00 6h], dl ; 88 56 fa14670 mov byte [bp-006h], al ; 88 46 fa 14671 mov byte [bp-00ah], dl ; 88 56 f6 14671 14672 xor dh, dh ; 30 f6 14672 14673 xor ah, ah ; 30 e4 14673 14674 mov bx, strict word 00034h ; bb 34 00 14674 call 09e 32h ; e8 10 0514675 call 09e53h ; e8 30 05 14675 14676 mov cl, al ; 88 c1 14676 14677 test cl, cl ; 84 c9 14677 je short 0995 ch ; 74 3414678 je short 0995dh ; 74 34 14678 14679 mov bl, cl ; 88 cb 14679 14680 xor bh, bh ; 30 ff 14681 mov al, byte [bp-00ah] ; 8a 46 f6 14682 mov byte [bp-00eh], al ; 88 46 f2 14683 mov byte [bp-00dh], bh ; 88 7e f3 14680 14684 mov al, byte [bp-006h] ; 8a 46 fa 14681 mov byte [bp-010h], al ; 88 46 f0 14682 mov byte [bp-00fh], bh ; 88 7e f1 14683 mov al, byte [bp-008h] ; 8a 46 f8 14684 mov byte [bp-00ch], al ; 88 46 f4 14685 mov byte [bp-00bh], bh ; 88 7e f5 14686 mov dx, word [bp-010h] ; 8b 56 f0 14687 mov ax, word [bp-00ch] ; 8b 46 f4 14688 call 09e32h ; e8 eb 04 14685 mov byte [bp-014h], al ; 88 46 ec 14686 mov byte [bp-013h], bh ; 88 7e ed 14687 mov dx, word [bp-00eh] ; 8b 56 f2 14688 mov ax, word [bp-014h] ; 8b 46 ec 14689 call 09e53h ; e8 0b 05 14689 14690 cmp AL, strict byte 012h ; 3c 12 14690 je short 0995 ch ; 74 1114691 je short 0995dh ; 74 11 14691 14692 mov bl, cl ; 88 cb 14692 14693 db 0feh, 0c3h 14693 14694 ; inc bl ; fe c3 14694 14695 xor bh, bh ; 30 ff 14695 mov dx, word [bp-0 10h] ; 8b 56 f014696 mov ax, word [bp-0 0ch] ; 8b 46 f414697 jmp short 099 1fh ; eb c614698 jmp near 09a 09h ; e9 ad0014696 mov dx, word [bp-00eh] ; 8b 56 f2 14697 mov ax, word [bp-014h] ; 8b 46 ec 14698 jmp short 09920h ; eb c6 14699 jmp near 09a29h ; e9 cc 00 14699 14700 test cl, cl ; 84 c9 14700 je short 0995 9h ; 74 f914701 je short 0995ah ; 74 f9 14701 14702 add cl, 002h ; 80 c1 02 14702 14703 mov bl, cl ; 88 cb 14703 14704 xor bh, bh ; 30 ff 14705 mov al, byte [bp-00ah] ; 8a 46 f6 14706 mov byte [bp-012h], al ; 88 46 ee 14707 mov byte [bp-011h], bh ; 88 7e ef 14704 14708 mov al, byte [bp-006h] ; 8a 46 fa 14705 mov byte [bp-00eh], al ; 88 46 f2 14706 mov byte [bp-00dh], bh ; 88 7e f3 14707 mov al, byte [bp-008h] ; 8a 46 f8 14708 mov byte [bp-00ah], al ; 88 46 f6 14709 mov byte [bp-009h], bh ; 88 7e f7 14710 mov dx, word [bp-00eh] ; 8b 56 f2 14711 mov ax, word [bp-00ah] ; 8b 46 f6 14712 call 09e32h ; e8 b0 04 14709 mov byte [bp-00ch], al ; 88 46 f4 14710 mov byte [bp-00bh], bh ; 88 7e f5 14711 mov dx, word [bp-012h] ; 8b 56 ee 14712 mov ax, word [bp-00ch] ; 8b 46 f4 14713 call 09e53h ; e8 d0 04 14713 14714 cmp AL, strict byte 010h ; 3c 10 14714 jne short 0995 9h ; 75 d314715 mov byte [bp-00 4h], 000h ; c6 46 fc0014715 jne short 0995ah ; 75 d3 14716 mov byte [bp-008h], 000h ; c6 46 f8 00 14716 14717 mov bl, cl ; 88 cb 14717 14718 add bl, 002h ; 80 c3 02 14718 14719 xor bh, bh ; 30 ff 14719 mov dx, word [bp-0 0eh] ; 8b 56 f214720 mov ax, word [bp-00 ah] ; 8b 46 f614721 call 09e 60h ; e8 c6 0414720 mov dx, word [bp-012h] ; 8b 56 ee 14721 mov ax, word [bp-00ch] ; 8b 46 f4 14722 call 09e81h ; e8 e6 04 14722 14723 mov dx, ax ; 89 c2 14723 14724 and ax, strict word 0000fh ; 25 0f 00 14724 14725 sub ax, strict word 00004h ; 2d 04 00 14725 14726 cmp ax, strict word 0000bh ; 3d 0b 00 14726 jnbe short 099d eh ; 77 3714727 jnbe short 099dfh ; 77 37 14727 14728 push CS ; 0e 14728 14729 pop ES ; 07 … … 14734 14735 mov ax, word [cs:di-0671ah] ; 2e 8b 85 e6 98 14735 14736 jmp ax ; ff e0 14736 mov byte [bp-00 4h], 010h ; c6 46 fc1014737 jmp short 099d eh ; eb 1c14738 mov byte [bp-00 4h], 014h ; c6 46 fc1414739 jmp short 099d eh ; eb 1614740 mov byte [bp-00 4h], 018h ; c6 46 fc1814741 jmp short 099d eh ; eb 1014742 mov byte [bp-00 4h], 01ch ; c6 46 fc1c14743 jmp short 099d eh ; eb 0a14744 mov byte [bp-00 4h], 020h ; c6 46 fc2014745 jmp short 099d eh ; eb 0414746 mov byte [bp-00 4h], 024h ; c6 46 fc2414747 mov cx, dx ; 89 d114748 shr cx, 004h ; c1 e90414749 sal cx, 002h ; c1 e10214750 mov al, byte [bp-00 4h] ; 8a 46 fc14737 mov byte [bp-008h], 010h ; c6 46 f8 10 14738 jmp short 099dfh ; eb 1c 14739 mov byte [bp-008h], 014h ; c6 46 f8 14 14740 jmp short 099dfh ; eb 16 14741 mov byte [bp-008h], 018h ; c6 46 f8 18 14742 jmp short 099dfh ; eb 10 14743 mov byte [bp-008h], 01ch ; c6 46 f8 1c 14744 jmp short 099dfh ; eb 0a 14745 mov byte [bp-008h], 020h ; c6 46 f8 20 14746 jmp short 099dfh ; eb 04 14747 mov byte [bp-008h], 024h ; c6 46 f8 24 14748 mov si, dx ; 89 d6 14749 shr si, 004h ; c1 ee 04 14750 sal si, 002h ; c1 e6 02 14751 mov al, byte [bp-008h] ; 8a 46 f8 14751 14752 test al, al ; 84 c0 14752 je short 09a 09h ; 74 1c14753 je short 09a29h ; 74 3b 14753 14754 mov bl, al ; 88 c3 14754 14755 xor bh, bh ; 30 ff 14755 mov dl, byte [bp-006h] ; 8a 56 fa 14756 xor dh, dh ; 30 f6 14757 mov al, byte [bp-008h] ; 8a 46 f8 14758 xor ah, ah ; 30 e4 14759 call 09e8ah ; e8 8c 04 14756 mov al, byte [bp-00ah] ; 8a 46 f6 14757 mov byte [bp-010h], al ; 88 46 f0 14758 mov byte [bp-00fh], bh ; 88 7e f1 14759 mov al, byte [bp-006h] ; 8a 46 fa 14760 mov byte [bp-016h], al ; 88 46 ea 14761 mov byte [bp-015h], bh ; 88 7e eb 14762 mov dx, word [bp-010h] ; 8b 56 f0 14763 mov ax, word [bp-016h] ; 8b 46 ea 14764 call 09eabh ; e8 9e 04 14760 14765 test AL, strict byte 001h ; a8 01 14761 je short 09a 09h ; 74 0714766 je short 09a29h ; 74 18 14762 14767 and AL, strict byte 0f0h ; 24 f0 14763 add ax, cx ; 01 c8 14764 call 09789h ; e8 80 fd 14765 lea sp, [bp-002h] ; 8d 66 fe 14768 add si, ax ; 01 c6 14769 mov cx, strict word 00007h ; b9 07 00 14770 mov bx, strict word 00004h ; bb 04 00 14771 mov dx, word [bp-010h] ; 8b 56 f0 14772 mov ax, word [bp-016h] ; 8b 46 ea 14773 call 09ef9h ; e8 d5 04 14774 mov ax, si ; 89 f0 14775 call 09789h ; e8 60 fd 14776 lea sp, [bp-004h] ; 8d 66 fc 14766 14777 pop di ; 5f 14778 pop si ; 5e 14767 14779 pop bp ; 5d 14768 14780 retn ; c3 14769 apm_out_str_: ; 0xf9a 0fLB 0x3914781 apm_out_str_: ; 0xf9a30 LB 0x39 14770 14782 push bp ; 55 14771 14783 mov bp, sp ; 89 e5 … … 14773 14785 mov bx, ax ; 89 c3 14774 14786 cmp byte [bx], 000h ; 80 3f 00 14775 je short 09a 24h ; 74 0a14787 je short 09a45h ; 74 0a 14776 14788 mov al, byte [bx] ; 8a 07 14777 14789 out DX, AL ; ee … … 14780 14792 db 00ah, 0c0h 14781 14793 ; or al, al ; 0a c0 14782 jne short 09a 1ch ; 75 f814794 jne short 09a3dh ; 75 f8 14783 14795 lea sp, [bp-002h] ; 8d 66 fe 14784 14796 pop bx ; 5b 14785 14797 pop bp ; 5d 14786 14798 retn ; c3 14787 imul bx, word [bp+si-0650fh], 09a7bh ; 69 9a f1 9a 7b 9a 14788 xchg si, ax ; 96 14789 call far 09ac1h:09af1h ; 9a f1 9a c1 9a 14790 db 0f1h 14791 call far 09ac6h:09af7h ; 9a f7 9a c6 9a 14792 db 0c6h, 09ah, 0c6h, 09ah, 036h 14793 ; mov byte [bp+si-0653ah], 036h ; c6 9a c6 9a 36 14799 mov bl, byte [bp+si-064eeh] ; 8a 9a 12 9b 14800 pushfw ; 9c 14801 call far 09b12h:09ab7h ; 9a b7 9a 12 9b 14802 loop 099f1h ; e2 9a 14803 adc bl, byte [bp+di-064e8h] ; 12 9b 18 9b 14804 out 09ah, ax ; e7 9a 14805 out 09ah, ax ; e7 9a 14806 out 09ah, ax ; e7 9a 14807 push di ; 57 14794 14808 wait ; 9b 14795 db 0c6h, 09ah, 0c6h, 09ah, 02fh 14796 ; mov byte [bp+si-0653ah], 02fh ; c6 9a c6 9a 2f 14809 out 09ah, ax ; e7 9a 14810 out 09ah, ax ; e7 9a 14811 push ax ; 50 14797 14812 wait ; 9b 14798 _apm_function: ; 0xf9a 48LB 0xf314813 _apm_function: ; 0xf9a69 LB 0xf3 14799 14814 push bp ; 55 14800 14815 mov bp, sp ; 89 e5 … … 14804 14819 xor ah, ah ; 30 e4 14805 14820 cmp ax, strict word 0000eh ; 3d 0e 00 14806 jnbe short 09a c6h ; 77 6c14821 jnbe short 09ae7h ; 77 6c 14807 14822 mov bx, ax ; 89 c3 14808 14823 add bx, ax ; 01 c3 14809 14824 mov dx, word [bp+018h] ; 8b 56 18 14810 14825 or dl, 001h ; 80 ca 01 14811 jmp word [cs:bx-065 d6h] ; 2e ff a7 2a9a14826 jmp word [cs:bx-065b5h] ; 2e ff a7 4b 9a 14812 14827 mov word [bp+012h], 00102h ; c7 46 12 02 01 14813 14828 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 14814 14829 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 14815 jmp near 09 af1h ; e9 76 0014830 jmp near 09b12h ; e9 76 00 14816 14831 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14817 mov word [bp+00ch], 0a0 b4h ; c7 46 0c b4 a014832 mov word [bp+00ch], 0a0f4h ; c7 46 0c f4 a0 14818 14833 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 14819 14834 mov ax, strict word 0fff0h ; b8 f0 ff 14820 14835 mov word [bp+006h], ax ; 89 46 06 14821 14836 mov word [bp+004h], ax ; 89 46 04 14822 jmp near 09 af1h ; e9 5b 0014837 jmp near 09b12h ; e9 5b 00 14823 14838 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14824 14839 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 14833 14848 mov si, ax ; 89 c6 14834 14849 sal esi, 010h ; 66 c1 e6 10 14835 jmp near 09 af1h ; e9 30 0014850 jmp near 09b12h ; e9 30 00 14836 14851 sti ; fb 14837 14852 hlt ; f4 14838 jmp near 09 af1h ; e9 2b 0014853 jmp near 09b12h ; e9 2b 00 14839 14854 mov bx, 00da0h ; bb a0 0d 14840 14855 mov cx, ds ; 8c d9 14841 14856 mov ax, strict word 00004h ; b8 04 00 14842 call 01923h ; e8 527e14857 call 01923h ; e8 31 7e 14843 14858 push word [bp+00ch] ; ff 76 0c 14844 14859 push word [bp+012h] ; ff 76 12 14845 14860 push 00d29h ; 68 29 0d 14846 14861 push strict byte 00004h ; 6a 04 14847 call 01966h ; e8 877e14862 call 01966h ; e8 66 7e 14848 14863 add sp, strict byte 00008h ; 83 c4 08 14849 14864 mov ax, word [bp+012h] ; 8b 46 12 … … 14857 14872 retn ; c3 14858 14873 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 14859 je short 09b 1ch ; 74 1f14874 je short 09b3dh ; 74 1f 14860 14875 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 14861 je short 09b 14h ; 74 1114876 je short 09b35h ; 74 11 14862 14877 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 14863 jne short 09b 24h ; 75 1b14878 jne short 09b45h ; 75 1b 14864 14879 mov dx, 0040fh ; ba 0f 04 14865 14880 mov ax, 00d10h ; b8 10 0d 14866 call 09a 0fh ; e8 fd fe14867 jmp short 09 af1h ; eb dd14881 call 09a30h ; e8 fd fe 14882 jmp short 09b12h ; eb dd 14868 14883 mov dx, 0040fh ; ba 0f 04 14869 14884 mov ax, 00d18h ; b8 18 0d 14870 jmp short 09b 0fh ; eb f314885 jmp short 09b30h ; eb f3 14871 14886 mov dx, 0040fh ; ba 0f 04 14872 14887 mov ax, 00d20h ; b8 20 0d 14873 jmp short 09b 0fh ; eb eb14888 jmp short 09b30h ; eb eb 14874 14889 or ah, 00ah ; 80 cc 0a 14875 14890 mov word [bp+012h], ax ; 89 46 12 14876 14891 mov word [bp+018h], dx ; 89 56 18 14877 jmp short 09 af1h ; eb c214892 jmp short 09b12h ; eb c2 14878 14893 mov word [bp+012h], 00102h ; c7 46 12 02 01 14879 jmp short 09 af1h ; eb bb14894 jmp short 09b12h ; eb bb 14880 14895 or ah, 080h ; 80 cc 80 14881 jmp short 09b 27h ; eb ec14882 pci16_select_reg_: ; 0xf9b 3bLB 0x2414896 jmp short 09b48h ; eb ec 14897 pci16_select_reg_: ; 0xf9b5c LB 0x24 14883 14898 push bp ; 55 14884 14899 mov bp, sp ; 89 e5 … … 14897 14912 pop bp ; 5d 14898 14913 retn ; c3 14899 pci16_find_device_: ; 0xf9b 5fLB 0xf914914 pci16_find_device_: ; 0xf9b80 LB 0xf9 14900 14915 push bp ; 55 14901 14916 mov bp, sp ; 89 e5 … … 14911 14926 mov byte [bp-008h], 000h ; c6 46 f8 00 14912 14927 test bl, 007h ; f6 c3 07 14913 jne short 09b a7h ; 75 2d14928 jne short 09bc8h ; 75 2d 14914 14929 mov dx, strict word 0000eh ; ba 0e 00 14915 14930 mov ax, bx ; 89 d8 14916 call 09b 3bh ; e8 b9 ff14931 call 09b5ch ; e8 b9 ff 14917 14932 mov dx, 00cfeh ; ba fe 0c 14918 14933 in AL, DX ; ec … … 14921 14936 mov byte [bp-006h], al ; 88 46 fa 14922 14937 cmp AL, strict byte 0ffh ; 3c ff 14923 jne short 09b 95h ; 75 0614938 jne short 09bb6h ; 75 06 14924 14939 add bx, strict byte 00008h ; 83 c3 08 14925 jmp near 09c 28h ; e9 93 0014940 jmp near 09c49h ; e9 93 00 14926 14941 test byte [bp-006h], 080h ; f6 46 fa 80 14927 je short 09b a2h ; 74 0714942 je short 09bc3h ; 74 07 14928 14943 mov word [bp-010h], strict word 00001h ; c7 46 f0 01 00 14929 jmp short 09b a7h ; eb 0514944 jmp short 09bc8h ; eb 05 14930 14945 mov word [bp-010h], strict word 00008h ; c7 46 f0 08 00 14931 14946 mov al, byte [bp-006h] ; 8a 46 fa 14932 14947 and AL, strict byte 007h ; 24 07 14933 14948 cmp AL, strict byte 001h ; 3c 01 14934 jne short 09b cfh ; 75 1f14949 jne short 09bf0h ; 75 1f 14935 14950 mov ax, bx ; 89 d8 14936 14951 shr ax, 008h ; c1 e8 08 14937 14952 test ax, ax ; 85 c0 14938 jne short 09b cfh ; 75 1614953 jne short 09bf0h ; 75 16 14939 14954 mov dx, strict word 0001ah ; ba 1a 00 14940 14955 mov ax, bx ; 89 d8 14941 call 09b 3bh ; e8 7a ff14956 call 09b5ch ; e8 7a ff 14942 14957 mov dx, 00cfeh ; ba fe 0c 14943 14958 in AL, DX ; ec … … 14945 14960 ; sub ah, ah ; 2a e4 14946 14961 cmp al, byte [bp-008h] ; 3a 46 f8 14947 jbe short 09b cfh ; 76 0314962 jbe short 09bf0h ; 76 03 14948 14963 mov byte [bp-008h], al ; 88 46 f8 14949 14964 test di, di ; 85 ff 14950 je short 09b d8h ; 74 0514965 je short 09bf9h ; 74 05 14951 14966 mov dx, strict word 00008h ; ba 08 00 14952 jmp short 09b dah ; eb 0214967 jmp short 09bfbh ; eb 02 14953 14968 xor dx, dx ; 31 d2 14954 14969 mov ax, bx ; 89 d8 14955 call 09b 3bh ; e8 5c ff14970 call 09b5ch ; e8 5c ff 14956 14971 mov dx, 00cfch ; ba fc 0c 14957 14972 in eax, DX ; 66 ed … … 14964 14979 mov word [bp-00eh], strict word 00000h ; c7 46 f2 00 00 14965 14980 test di, di ; 85 ff 14966 je short 09c 09h ; 74 0f14981 je short 09c2ah ; 74 0f 14967 14982 mov cx, strict word 00008h ; b9 08 00 14968 14983 shr dx, 1 ; d1 ea 14969 14984 rcr ax, 1 ; d1 d8 14970 loop 09 bfdh ; e2 fa14985 loop 09c1eh ; e2 fa 14971 14986 mov word [bp-00ah], ax ; 89 46 f6 14972 14987 mov word [bp-00ch], dx ; 89 56 f4 14973 14988 mov ax, word [bp-00ch] ; 8b 46 f4 14974 14989 cmp ax, word [bp-014h] ; 3b 46 ec 14975 jne short 09c 19h ; 75 0814990 jne short 09c3ah ; 75 08 14976 14991 mov ax, word [bp-00ah] ; 8b 46 f6 14977 14992 cmp ax, word [bp-012h] ; 3b 46 ee 14978 je short 09c 1fh ; 74 0614993 je short 09c40h ; 74 06 14979 14994 cmp word [bp-00eh], strict byte 00000h ; 83 7e f2 00 14980 je short 09c 25h ; 74 0614995 je short 09c46h ; 74 06 14981 14996 dec si ; 4e 14982 14997 cmp si, strict byte 0ffffh ; 83 fe ff 14983 je short 09c 39h ; 74 1414998 je short 09c5ah ; 74 14 14984 14999 add bx, word [bp-010h] ; 03 5e f0 14985 15000 mov dx, bx ; 89 da … … 14988 15003 xor ah, ah ; 30 e4 14989 15004 cmp dx, ax ; 39 c2 14990 jnbe short 09c 39h ; 77 0314991 jmp near 09b 75h ; e9 3c ff15005 jnbe short 09c5ah ; 77 03 15006 jmp near 09b96h ; e9 3c ff 14992 15007 cmp si, strict byte 0ffffh ; 83 fe ff 14993 jne short 09c 42h ; 75 0415008 jne short 09c63h ; 75 04 14994 15009 mov ax, bx ; 89 d8 14995 jmp short 09c 45h ; eb 0315010 jmp short 09c66h ; eb 03 14996 15011 mov ax, strict word 0ffffh ; b8 ff ff 14997 15012 lea sp, [bp-004h] ; 8d 66 fc … … 15000 15015 pop bp ; 5d 15001 15016 retn ; c3 15002 cmp word [di-062aeh], bx ; 39 9d 52 9d 15003 db 064h, 09dh 15004 ; fs popfw ; 64 9d 15005 js short 09bf1h ; 78 9d 15006 mov bl, byte [di-06263h] ; 8a 9d 9d 9d 15007 _pci16_function: ; 0xf9c58 LB 0x1d2 15017 pop dx ; 5a 15018 popfw ; 9d 15019 jnc short 09c0eh ; 73 9d 15020 test word [di-06267h], bx ; 85 9d 99 9d 15021 stosw ; ab 15022 popfw ; 9d 15023 db 0beh 15024 popfw ; 9d 15025 _pci16_function: ; 0xf9c79 LB 0x1d2 15008 15026 push bp ; 55 15009 15027 mov bp, sp ; 89 e5 … … 15019 15037 xor ah, ah ; 30 e4 15020 15038 cmp bx, strict byte 00003h ; 83 fb 03 15021 jc short 09c 8ah ; 72 1315022 jbe short 09c ddh ; 76 6415039 jc short 09cabh ; 72 13 15040 jbe short 09cfeh ; 76 64 15023 15041 cmp bx, strict byte 0000eh ; 83 fb 0e 15024 je short 09 ce5h ; 74 6715042 je short 09d06h ; 74 67 15025 15043 cmp bx, strict byte 00008h ; 83 fb 08 15026 jc short 09c 94h ; 72 1115044 jc short 09cb5h ; 72 11 15027 15045 cmp bx, strict byte 0000dh ; 83 fb 0d 15028 jbe short 09 ce8h ; 76 6015029 jmp short 09c 94h ; eb 0a15046 jbe short 09d09h ; 76 60 15047 jmp short 09cb5h ; eb 0a 15030 15048 cmp bx, strict byte 00002h ; 83 fb 02 15031 je short 09c b3h ; 74 2415049 je short 09cd4h ; 74 24 15032 15050 cmp bx, strict byte 00001h ; 83 fb 01 15033 je short 09c 97h ; 74 0315034 jmp near 09 df6h ; e9 5f 0115051 je short 09cb8h ; 74 03 15052 jmp near 09e17h ; e9 5f 01 15035 15053 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 15036 15054 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 15038 15056 mov word [bp+018h], 04350h ; c7 46 18 50 43 15039 15057 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 15040 jmp near 09e 23h ; e9 70 0115058 jmp near 09e44h ; e9 70 01 15041 15059 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 15042 jne short 09c bfh ; 75 0615060 jne short 09ce0h ; 75 06 15043 15061 or ah, 083h ; 80 cc 83 15044 jmp near 09e 1ch ; e9 5d 0115062 jmp near 09e3dh ; e9 5d 01 15045 15063 mov bx, word [bp+008h] ; 8b 5e 08 15046 15064 mov dx, word [bp+01ch] ; 8b 56 1c 15047 15065 mov ax, word [bp+018h] ; 8b 46 18 15048 15066 xor cx, cx ; 31 c9 15049 call 09b 5fh ; e8 92 fe15067 call 09b80h ; e8 92 fe 15050 15068 cmp ax, strict word 0ffffh ; 3d ff ff 15051 jne short 09 cdfh ; 75 0d15069 jne short 09d00h ; 75 0d 15052 15070 mov ax, word [bp+020h] ; 8b 46 20 15053 15071 xor ah, ah ; 30 e4 15054 15072 or ah, 086h ; 80 cc 86 15055 jmp near 09e 1ch ; e9 3f 0115056 jmp short 09 ceah ; eb 0b15073 jmp near 09e3dh ; e9 3f 01 15074 jmp short 09d0bh ; eb 0b 15057 15075 mov word [bp+014h], ax ; 89 46 14 15058 jmp near 09e 23h ; e9 3e 0115059 jmp near 09d b1h ; e9 c9 0015060 jmp short 09d 0fh ; eb 2515076 jmp near 09e44h ; e9 3e 01 15077 jmp near 09dd2h ; e9 c9 00 15078 jmp short 09d30h ; eb 25 15061 15079 mov bx, word [bp+008h] ; 8b 5e 08 15062 15080 mov ax, word [bp+01ch] ; 8b 46 1c 15063 15081 mov dx, word [bp+01eh] ; 8b 56 1e 15064 15082 mov cx, strict word 00001h ; b9 01 00 15065 call 09b 5fh ; e8 66 fe15083 call 09b80h ; e8 66 fe 15066 15084 cmp ax, strict word 0ffffh ; 3d ff ff 15067 jne short 09d 09h ; 75 0b15085 jne short 09d2ah ; 75 0b 15068 15086 mov ax, word [bp+020h] ; 8b 46 20 15069 15087 xor ah, ah ; 30 e4 15070 15088 or ah, 086h ; 80 cc 86 15071 jmp near 09e 1ch ; e9 13 0115089 jmp near 09e3dh ; e9 13 01 15072 15090 mov word [bp+014h], ax ; 89 46 14 15073 jmp near 09e 23h ; e9 14 0115091 jmp near 09e44h ; e9 14 01 15074 15092 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 15075 jc short 09d 1ch ; 72 0615093 jc short 09d3dh ; 72 06 15076 15094 or ah, 087h ; 80 cc 87 15077 jmp near 09e 1ch ; e9 00 0115095 jmp near 09e3dh ; e9 00 01 15078 15096 mov dx, word [bp+004h] ; 8b 56 04 15079 15097 mov ax, word [bp+014h] ; 8b 46 14 15080 call 09b 3bh ; e8 16 fe15098 call 09b5ch ; e8 16 fe 15081 15099 mov bx, word [bp+020h] ; 8b 5e 20 15082 15100 xor bh, bh ; 30 ff 15083 15101 sub bx, strict byte 00008h ; 83 eb 08 15084 15102 cmp bx, strict byte 00005h ; 83 fb 05 15085 jnbe short 09d 9ah ; 77 6815103 jnbe short 09dbbh ; 77 68 15086 15104 add bx, bx ; 01 db 15087 jmp word [cs:bx-063 b4h] ; 2e ff a7 4c9c15105 jmp word [cs:bx-06393h] ; 2e ff a7 6d 9c 15088 15106 mov bx, word [bp+01ch] ; 8b 5e 1c 15089 15107 xor bl, bl ; 30 db … … 15096 15114 or bx, ax ; 09 c3 15097 15115 mov word [bp+01ch], bx ; 89 5e 1c 15098 jmp short 09d 9ah ; eb 4815116 jmp short 09dbbh ; eb 48 15099 15117 mov dx, word [bp+004h] ; 8b 56 04 15100 15118 xor dh, dh ; 30 f6 … … 15103 15121 in ax, DX ; ed 15104 15122 mov word [bp+01ch], ax ; 89 46 1c 15105 jmp short 09d 9ah ; eb 3615123 jmp short 09dbbh ; eb 36 15106 15124 mov dx, 00cfch ; ba fc 0c 15107 15125 in eax, DX ; 66 ed … … 15112 15130 mov word [bp+01ch], ax ; 89 46 1c 15113 15131 mov word [bp+01eh], dx ; 89 56 1e 15114 jmp short 09d 9ah ; eb 2215132 jmp short 09dbbh ; eb 22 15115 15133 mov ax, word [bp+01ch] ; 8b 46 1c 15116 15134 mov dx, word [bp+004h] ; 8b 56 04 … … 15119 15137 add dx, 00cfch ; 81 c2 fc 0c 15120 15138 out DX, AL ; ee 15121 jmp short 09d 9ah ; eb 1015139 jmp short 09dbbh ; eb 10 15122 15140 mov ax, word [bp+01ch] ; 8b 46 1c 15123 15141 mov dx, word [bp+004h] ; 8b 56 04 … … 15126 15144 add dx, 00cfch ; 81 c2 fc 0c 15127 15145 out DX, ax ; ef 15128 jmp near 09e 23h ; e9 86 0015146 jmp near 09e44h ; e9 86 00 15129 15147 mov ax, word [bp+01ch] ; 8b 46 1c 15130 15148 mov cx, word [bp+01eh] ; 8b 4e 1e … … 15135 15153 ; mov ax, cx ; 8b c1 15136 15154 out DX, eax ; 66 ef 15137 jmp short 09e 23h ; eb 7215155 jmp short 09e44h ; eb 72 15138 15156 mov bx, word [bp+004h] ; 8b 5e 04 15139 15157 mov es, [bp+026h] ; 8e 46 26 15140 15158 mov word [bp-008h], bx ; 89 5e f8 15141 15159 mov [bp-006h], es ; 8c 46 fa 15142 mov cx, word [0f 4a0h] ; 8b 0e a0 f415160 mov cx, word [0f380h] ; 8b 0e 80 f3 15143 15161 cmp cx, word [es:bx] ; 26 3b 0f 15144 jbe short 09d d7h ; 76 1115162 jbe short 09df8h ; 76 11 15145 15163 mov ax, word [bp+020h] ; 8b 46 20 15146 15164 xor ah, ah ; 30 e4 … … 15148 15166 mov word [bp+020h], ax ; 89 46 20 15149 15167 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 15150 jmp short 09 debh ; eb 1415168 jmp short 09e0ch ; eb 14 15151 15169 les di, [es:bx+002h] ; 26 c4 7f 02 15152 mov si, 0f 2c0h ; be c0 f215170 mov si, 0f1a0h ; be a0 f1 15153 15171 mov dx, ds ; 8c da 15154 15172 push DS ; 1e … … 15157 15175 pop DS ; 1f 15158 15176 mov word [bp+014h], 00a00h ; c7 46 14 00 0a 15159 mov ax, word [0f 4a0h] ; a1 a0 f415177 mov ax, word [0f380h] ; a1 80 f3 15160 15178 les bx, [bp-008h] ; c4 5e f8 15161 15179 mov word [es:bx], ax ; 26 89 07 15162 jmp short 09e 23h ; eb 2d15180 jmp short 09e44h ; eb 2d 15163 15181 mov bx, 00da0h ; bb a0 0d 15164 15182 mov cx, ds ; 8c d9 15165 15183 mov ax, strict word 00004h ; b8 04 00 15166 call 01923h ; e8 227b15184 call 01923h ; e8 01 7b 15167 15185 mov ax, word [bp+014h] ; 8b 46 14 15168 15186 push ax ; 50 … … 15171 15189 push 00d5ch ; 68 5c 0d 15172 15190 push strict byte 00004h ; 6a 04 15173 call 01966h ; e8 557b15191 call 01966h ; e8 34 7b 15174 15192 add sp, strict byte 00008h ; 83 c4 08 15175 15193 mov ax, word [bp+020h] ; 8b 46 20 … … 15183 15201 pop bp ; 5d 15184 15202 retn ; c3 15185 pci_find_classcode_: ; 0xf9e 2aLB 0x815203 pci_find_classcode_: ; 0xf9e4b LB 0x8 15186 15204 push bp ; 55 15187 15205 mov bp, sp ; 89 e5 … … 15189 15207 pop bp ; 5d 15190 15208 retn ; c3 15191 pci_read_config_byte_: ; 0xf9e 32LB 0x2e15209 pci_read_config_byte_: ; 0xf9e53 LB 0x2e 15192 15210 push bp ; 55 15193 15211 mov bp, sp ; 89 e5 … … 15215 15233 pop bp ; 5d 15216 15234 retn ; c3 15217 pci_read_config_word_: ; 0xf9e 60LB 0x2a15235 pci_read_config_word_: ; 0xf9e81 LB 0x2a 15218 15236 push bp ; 55 15219 15237 mov bp, sp ; 89 e5 … … 15239 15257 pop bp ; 5d 15240 15258 retn ; c3 15241 pci_read_config_dword_: ; 0xf9e 8aLB 0x4e15259 pci_read_config_dword_: ; 0xf9eab LB 0x4e 15242 15260 push bp ; 55 15243 15261 mov bp, sp ; 89 e5 … … 15261 15279 int 01ah ; cd 1a 15262 15280 test cx, cx ; 85 c9 15263 jne short 09e c9h ; 75 1415281 jne short 09eeah ; 75 14 15264 15282 mov al, byte [bp-006h] ; 8a 46 fa 15265 15283 xor ah, ah ; 30 e4 … … 15271 15289 int 01ah ; cd 1a 15272 15290 test cx, cx ; 85 c9 15273 je short 09e ceh ; 74 0515291 je short 09eefh ; 74 05 15274 15292 mov ax, strict word 00001h ; b8 01 00 15275 jmp short 09e d0h ; eb 0215293 jmp short 09ef1h ; eb 02 15276 15294 xor ax, ax ; 31 c0 15277 15295 cwd ; 99 … … 15281 15299 pop bp ; 5d 15282 15300 retn ; c3 15283 vds_is_present_: ; 0xf9ed8 LB 0x1d 15301 pci_write_config_word_: ; 0xf9ef9 LB 0x25 15302 push bp ; 55 15303 mov bp, sp ; 89 e5 15304 push di ; 57 15305 push ax ; 50 15306 mov byte [bp-004h], al ; 88 46 fc 15307 mov al, bl ; 88 d8 15308 xor ah, ah ; 30 e4 15309 mov di, ax ; 89 c7 15310 mov al, byte [bp-004h] ; 8a 46 fc 15311 mov bx, ax ; 89 c3 15312 sal bx, 008h ; c1 e3 08 15313 mov al, dl ; 88 d0 15314 or bx, ax ; 09 c3 15315 mov ax, 0b10ch ; b8 0c b1 15316 int 01ah ; cd 1a 15317 lea sp, [bp-002h] ; 8d 66 fe 15318 pop di ; 5f 15319 pop bp ; 5d 15320 retn ; c3 15321 vds_is_present_: ; 0xf9f1e LB 0x1d 15284 15322 push bx ; 53 15285 15323 push bp ; 55 … … 15289 15327 mov es, ax ; 8e c0 15290 15328 test byte [es:bx], 020h ; 26 f6 07 20 15291 je short 09 ef0h ; 74 0615329 je short 09f36h ; 74 06 15292 15330 mov ax, strict word 00001h ; b8 01 00 15293 15331 pop bp ; 5d … … 15298 15336 pop bx ; 5b 15299 15337 retn ; c3 15300 vds_real_to_lin_: ; 0xf9 ef5LB 0x1e15338 vds_real_to_lin_: ; 0xf9f3b LB 0x1e 15301 15339 push bx ; 53 15302 15340 push cx ; 51 … … 15309 15347 sal ax, 1 ; d1 e0 15310 15348 rcl dx, 1 ; d1 d2 15311 loop 09f 03h ; e2 fa15349 loop 09f49h ; e2 fa 15312 15350 xor cx, cx ; 31 c9 15313 15351 add ax, bx ; 01 d8 … … 15317 15355 pop bx ; 5b 15318 15356 retn ; c3 15319 vds_build_sg_list_: ; 0xf9f 13LB 0x7715357 vds_build_sg_list_: ; 0xf9f59 LB 0x77 15320 15358 push bp ; 55 15321 15359 mov bp, sp ; 89 e5 … … 15331 15369 mov bx, word [bp+006h] ; 8b 5e 06 15332 15370 mov word [es:di+002h], bx ; 26 89 5d 02 15333 call 09 ef5h ; e8 c3 ff15371 call 09f3bh ; e8 c3 ff 15334 15372 mov es, si ; 8e c6 15335 15373 mov word [es:di+004h], ax ; 26 89 45 04 15336 15374 mov word [es:di+006h], dx ; 26 89 55 06 15337 15375 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15338 call 09 ed8h ; e8 93 ff15376 call 09f1eh ; e8 93 ff 15339 15377 test ax, ax ; 85 c0 15340 je short 09f 5ah ; 74 1115378 je short 09fa0h ; 74 11 15341 15379 mov es, si ; 8e c6 15342 15380 mov ax, 08105h ; b8 05 81 15343 15381 mov dx, strict word 00000h ; ba 00 00 15344 15382 int 04bh ; cd 4b 15345 jc short 09f 57h ; 72 0215383 jc short 09f9dh ; 72 02 15346 15384 db 032h, 0c0h 15347 15385 ; xor al, al ; 32 c0 15348 15386 cbw ; 98 15349 jmp short 09f 81h ; eb 2715387 jmp short 09fc7h ; eb 27 15350 15388 mov es, si ; 8e c6 15351 15389 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15364 15402 pop bp ; 5d 15365 15403 retn 00004h ; c2 04 00 15366 vds_free_sg_list_: ; 0xf9f 8a LB 0x3615404 vds_free_sg_list_: ; 0xf9fd0 LB 0x30 15367 15405 push bp ; 55 15368 15406 mov bp, sp ; 89 e5 … … 15370 15408 push di ; 57 15371 15409 mov bx, ax ; 89 c3 15372 call 09 ed8h ; e8 44 ff15410 call 09f1eh ; e8 44 ff 15373 15411 test ax, ax ; 85 c0 15374 je short 09f a9h ; 74 1115412 je short 09fefh ; 74 11 15375 15413 mov di, bx ; 89 df 15376 15414 mov es, dx ; 8e c2 … … 15378 15416 mov dx, strict word 00000h ; ba 00 00 15379 15417 int 04bh ; cd 4b 15380 jc short 09f a8h ; 72 0215418 jc short 09feeh ; 72 02 15381 15419 db 032h, 0c0h 15382 15420 ; xor al, al ; 32 c0 … … 15389 15427 pop bp ; 5d 15390 15428 retn ; c3 15391 times 0x 8db 015392 __U4M: ; 0xf 9fc0 LB 0x2015429 times 0x2 db 0 15430 __U4M: ; 0xfa000 LB 0x20 15393 15431 pushfw ; 9c 15394 15432 push si ; 56 … … 15417 15455 retn ; c3 15418 15456 times 0x4 db 0 15419 __U4D: ; 0xf 9fe0 LB 0x3015457 __U4D: ; 0xfa020 LB 0x30 15420 15458 pushfw ; 9c 15421 15459 push DS ; 1e … … 15432 15470 push dx ; 52 15433 15471 push ax ; 50 15434 call 0a 0c5h ; e8 d0 0015472 call 0a105h ; e8 d0 00 15435 15473 mov cx, word [bp-002h] ; 8b 4e fe 15436 15474 mov bx, word [bp-004h] ; 8b 5e fc … … 15443 15481 retn ; c3 15444 15482 times 0xe db 0 15445 __U8RS: ; 0xfa0 10 LB 0x1015483 __U8RS: ; 0xfa050 LB 0x10 15446 15484 test si, si ; 85 f6 15447 je short 0a0 1fh ; 74 0b15485 je short 0a05fh ; 74 0b 15448 15486 shr ax, 1 ; d1 e8 15449 15487 rcr bx, 1 ; d1 db … … 15451 15489 rcr dx, 1 ; d1 da 15452 15490 dec si ; 4e 15453 jne short 0a0 14h ; 75 f515491 jne short 0a054h ; 75 f5 15454 15492 retn ; c3 15455 __U8LS: ; 0xfa0 20 LB 0x1015493 __U8LS: ; 0xfa060 LB 0x10 15456 15494 test si, si ; 85 f6 15457 je short 0a0 2fh ; 74 0b15495 je short 0a06fh ; 74 0b 15458 15496 sal dx, 1 ; d1 e2 15459 15497 rcl cx, 1 ; d1 d1 … … 15461 15499 rcl ax, 1 ; d1 d0 15462 15500 dec si ; 4e 15463 jne short 0a0 24h ; 75 f515501 jne short 0a064h ; 75 f5 15464 15502 retn ; c3 15465 _fmemset_: ; 0xfa0 30 LB 0x1015503 _fmemset_: ; 0xfa070 LB 0x10 15466 15504 push di ; 57 15467 15505 mov es, dx ; 8e c2 … … 15474 15512 retn ; c3 15475 15513 times 0x3 db 0 15476 _fmemcpy_: ; 0xfa0 40 LB 0x3a15514 _fmemcpy_: ; 0xfa080 LB 0x3a 15477 15515 push bp ; 55 15478 15516 db 08bh, 0ech … … 15499 15537 add byte [bx+si], al ; 00 00 15500 15538 add byte [bx+si], al ; 00 00 15501 nop ; 90 15502 mov AL, byte [0a092h] ; a0 92 a0 15503 xchg si, ax ; 96 15504 mov AL, byte [0a096h] ; a0 96 a0 15505 xchg si, ax ; 96 15506 mov AL, byte [0a098h] ; a0 98 a0 15507 cbw ; 98 15508 mov AL, byte [0a09ah] ; a0 9a a0 15509 sahf ; 9e 15510 mov AL, byte [0a09eh] ; a0 9e a0 15511 mov AL, byte [0a5a0h] ; a0 a0 a5 15512 mov AL, byte [0a0a7h] ; a0 a7 a0 15513 apm_worker: ; 0xfa07a LB 0x3a 15539 sal byte [bx+si-05f2eh], 1 ; d0 a0 d2 a0 15540 db 0d6h 15541 mov AL, byte [0a0d6h] ; a0 d6 a0 15542 db 0d6h 15543 mov AL, byte [0a0d8h] ; a0 d8 a0 15544 fsub dword [bx+si-05f26h] ; d8 a0 da a0 15545 fisub word [bx+si-05f22h] ; de a0 de a0 15546 loopne 0a056h ; e0 a0 15547 in ax, 0a0h ; e5 a0 15548 out 0a0h, ax ; e7 a0 15549 apm_worker: ; 0xfa0ba LB 0x3a 15514 15550 sti ; fb 15515 15551 push ax ; 50 … … 15523 15559 pop ax ; 58 15524 15560 mov AH, strict byte 053h ; b4 53 15525 jnc short 0a0 b0h ; 73 2515526 jmp word [cs:bp-05f a0h] ; 2e ff a6 60 a015527 jmp short 0a0 aeh ; eb 1c15561 jnc short 0a0f0h ; 73 25 15562 jmp word [cs:bp-05f60h] ; 2e ff a6 a0 a0 15563 jmp short 0a0eeh ; eb 1c 15528 15564 sti ; fb 15529 15565 hlt ; f4 15530 jmp short 0a0 aeh ; eb 1815531 jmp short 0a0 aeh ; eb 1615532 jmp short 0a0 b0h ; eb 1615566 jmp short 0a0eeh ; eb 18 15567 jmp short 0a0eeh ; eb 16 15568 jmp short 0a0f0h ; eb 16 15533 15569 mov AH, strict byte 080h ; b4 80 15534 jmp short 0a0 b2h ; eb 1415535 jmp short 0a0 b0h ; eb 1015570 jmp short 0a0f2h ; eb 14 15571 jmp short 0a0f0h ; eb 10 15536 15572 mov ax, 00102h ; b8 02 01 15537 jmp short 0a0 aeh ; eb 0915538 jmp short 0a0 aeh ; eb 0715573 jmp short 0a0eeh ; eb 09 15574 jmp short 0a0eeh ; eb 07 15539 15575 mov BL, strict byte 000h ; b3 00 15540 15576 mov cx, strict word 00000h ; b9 00 00 15541 jmp short 0a0 aeh ; eb 0015577 jmp short 0a0eeh ; eb 00 15542 15578 clc ; f8 15543 15579 retn ; c3 … … 15545 15581 stc ; f9 15546 15582 retn ; c3 15547 apm_pm16_entry: ; 0xfa0 b4 LB 0x1115583 apm_pm16_entry: ; 0xfa0f4 LB 0x11 15548 15584 mov AH, strict byte 002h ; b4 02 15549 15585 push DS ; 1e … … 15553 15589 add bp, strict byte 00008h ; 83 c5 08 15554 15590 mov ds, bp ; 8e dd 15555 call 0a0 7ah ; e8 b8 ff15591 call 0a0bah ; e8 b8 ff 15556 15592 pop bp ; 5d 15557 15593 pop DS ; 1f 15558 15594 retf ; cb 15559 _DoUInt32Div: ; 0xfa 0c5 LB 0x26b15595 _DoUInt32Div: ; 0xfa105 LB 0x26b 15560 15596 push bp ; 55 15561 15597 mov bp, sp ; 89 e5 … … 15575 15611 mov [bp-006h], ds ; 8c 5e fa 15576 15612 cmp word [bx+002h], strict byte 00000h ; 83 7f 02 00 15577 jne short 0a1 15h ; 75 2215613 jne short 0a155h ; 75 22 15578 15614 mov ax, word [bx] ; 8b 07 15579 15615 test ax, ax ; 85 c0 15580 je short 0a1 12h ; 74 1915616 je short 0a152h ; 74 19 15581 15617 cmp ax, strict word 00001h ; 3d 01 00 15582 jne short 0a1 15h ; 75 1715618 jne short 0a155h ; 75 17 15583 15619 xor ax, ax ; 31 c0 15584 15620 mov word [bp+00ah], ax ; 89 46 0a … … 15588 15624 mov ax, word [bp-01ah] ; 8b 46 e6 15589 15625 mov word [bp+006h], ax ; 89 46 06 15590 jmp near 0a3 1dh ; e9 08 0215626 jmp near 0a35dh ; e9 08 02 15591 15627 lds bx, [bp-00ch] ; c5 5e f4 15592 15628 mov ax, word [bx+002h] ; 8b 47 02 15593 15629 mov ds, [bp-006h] ; 8e 5e fa 15594 15630 cmp ax, word [si+002h] ; 3b 44 02 15595 je short 0a1 3bh ; 74 1815631 je short 0a17bh ; 74 18 15596 15632 mov ds, [bp-00ah] ; 8e 5e f6 15597 15633 mov ax, word [bx+002h] ; 8b 47 02 15598 15634 mov ds, [bp-006h] ; 8e 5e fa 15599 15635 cmp ax, word [si+002h] ; 3b 44 02 15600 jbe short 0a1 36h ; 76 0515636 jbe short 0a176h ; 76 05 15601 15637 mov ax, strict word 00001h ; b8 01 00 15602 jmp short 0a1 5ch ; eb 2615638 jmp short 0a19ch ; eb 26 15603 15639 mov ax, strict word 0ffffh ; b8 ff ff 15604 jmp short 0a1 5ch ; eb 2115640 jmp short 0a19ch ; eb 21 15605 15641 mov ds, [bp-00ah] ; 8e 5e f6 15606 15642 mov ax, word [bx] ; 8b 07 15607 15643 mov ds, [bp-006h] ; 8e 5e fa 15608 15644 cmp ax, word [si] ; 3b 04 15609 je short 0a1 5ah ; 74 1315645 je short 0a19ah ; 74 13 15610 15646 mov ds, [bp-00ah] ; 8e 5e f6 15611 15647 mov ax, word [bx] ; 8b 07 15612 15648 mov ds, [bp-006h] ; 8e 5e fa 15613 15649 cmp ax, word [si] ; 3b 04 15614 jbe short 0a1 55h ; 76 0215615 jmp short 0a1 31h ; eb dc15650 jbe short 0a195h ; 76 02 15651 jmp short 0a171h ; eb dc 15616 15652 mov ax, strict word 0ffffh ; b8 ff ff 15617 jmp short 0a1 5ch ; eb 0215653 jmp short 0a19ch ; eb 02 15618 15654 xor ax, ax ; 31 c0 15619 15655 test ax, ax ; 85 c0 15620 jnl short 0a1 7eh ; 7d 1e15656 jnl short 0a1beh ; 7d 1e 15621 15657 lds bx, [bp-00ch] ; c5 5e f4 15622 15658 mov ax, word [bx] ; 8b 07 … … 15628 15664 mov word [bx+002h], strict word 00000h ; c7 47 02 00 00 15629 15665 mov word [bx], strict word 00000h ; c7 07 00 00 15630 jmp short 0a1 12h ; eb 9415631 jne short 0a1 95h ; 75 1515666 jmp short 0a152h ; eb 94 15667 jne short 0a1d5h ; 75 15 15632 15668 mov ds, [bp-008h] ; 8e 5e f8 15633 15669 mov word [di+002h], ax ; 89 45 02 … … 15636 15672 mov word [bx], strict word 00001h ; c7 07 01 00 15637 15673 mov word [bx+002h], ax ; 89 47 02 15638 jmp near 0a3 1dh ; e9 88 0115674 jmp near 0a35dh ; e9 88 01 15639 15675 lds bx, [bp-00ch] ; c5 5e f4 15640 15676 mov ax, word [bx+002h] ; 8b 47 02 15641 15677 test ax, ax ; 85 c0 15642 je short 0a1 b0h ; 74 1115678 je short 0a1f0h ; 74 11 15643 15679 push ax ; 50 15644 15680 mov ax, 0f000h ; b8 00 f0 15645 15681 mov ds, ax ; 8e d8 15646 call 0a3 30h ; e8 88 0115682 call 0a370h ; e8 88 01 15647 15683 add sp, strict byte 00002h ; 83 c4 02 15648 15684 add ax, strict word 00010h ; 05 10 00 15649 jmp short 0a1 bdh ; eb 0d15685 jmp short 0a1fdh ; eb 0d 15650 15686 push word [bx] ; ff 37 15651 15687 mov ax, 0f000h ; b8 00 f0 15652 15688 mov ds, ax ; 8e d8 15653 call 0a3 30h ; e8 76 0115689 call 0a370h ; e8 76 01 15654 15690 add sp, strict byte 00002h ; 83 c4 02 15655 15691 mov word [bp-014h], ax ; 89 46 ec … … 15657 15693 mov ax, word [si+002h] ; 8b 44 02 15658 15694 test ax, ax ; 85 c0 15659 je short 0a 1dbh ; 74 1115695 je short 0a21bh ; 74 11 15660 15696 push ax ; 50 15661 15697 mov ax, 0f000h ; b8 00 f0 15662 15698 mov ds, ax ; 8e d8 15663 call 0a3 30h ; e8 5d 0115699 call 0a370h ; e8 5d 01 15664 15700 add sp, strict byte 00002h ; 83 c4 02 15665 15701 add ax, strict word 00010h ; 05 10 00 15666 jmp short 0a 1e8h ; eb 0d15702 jmp short 0a228h ; eb 0d 15667 15703 push word [si] ; ff 34 15668 15704 mov ax, 0f000h ; b8 00 f0 15669 15705 mov ds, ax ; 8e d8 15670 call 0a3 30h ; e8 4b 0115706 call 0a370h ; e8 4b 01 15671 15707 add sp, strict byte 00002h ; 83 c4 02 15672 15708 mov dx, word [bp-014h] ; 8b 56 ec … … 15679 15715 mov word [bp-016h], ax ; 89 46 ea 15680 15716 test dx, dx ; 85 d2 15681 je short 0a2 58h ; 74 5615717 je short 0a298h ; 74 56 15682 15718 mov cx, dx ; 89 d1 15683 15719 xor ch, dh ; 30 f5 … … 15685 15721 mov ax, word [si] ; 8b 04 15686 15722 mov dx, word [si+002h] ; 8b 54 02 15687 jcxz 0a2 16h ; e3 0615723 jcxz 0a256h ; e3 06 15688 15724 sal ax, 1 ; d1 e0 15689 15725 rcl dx, 1 ; d1 d2 15690 loop 0a2 10h ; e2 fa15726 loop 0a250h ; e2 fa 15691 15727 mov word [bp-018h], ax ; 89 46 e8 15692 15728 mov word [bp-016h], dx ; 89 56 ea … … 15694 15730 lds bx, [bp-00ch] ; c5 5e f4 15695 15731 cmp ax, word [bx+002h] ; 3b 47 02 15696 jnbe short 0a2 36h ; 77 0f15732 jnbe short 0a276h ; 77 0f 15697 15733 mov ax, word [bp-016h] ; 8b 46 ea 15698 15734 cmp ax, word [bx+002h] ; 3b 47 02 15699 jne short 0a2 3ah ; 75 0b15735 jne short 0a27ah ; 75 0b 15700 15736 mov ax, word [bp-018h] ; 8b 46 e8 15701 15737 cmp ax, word [bx] ; 3b 07 15702 jbe short 0a2 3ah ; 76 0415738 jbe short 0a27ah ; 76 04 15703 15739 mov AL, strict byte 001h ; b0 01 15704 jmp short 0a2 3ch ; eb 0215740 jmp short 0a27ch ; eb 02 15705 15741 xor al, al ; 30 c0 15706 15742 test al, al ; 84 c0 15707 je short 0a2 63h ; 74 2315743 je short 0a2a3h ; 74 23 15708 15744 shr word [bp-016h], 1 ; d1 6e ea 15709 15745 rcr word [bp-018h], 1 ; d1 5e e8 15710 15746 dec word [bp-012h] ; ff 4e ee 15711 jmp short 0a2 63h ; eb 1815747 jmp short 0a2a3h ; eb 18 15712 15748 mov cx, strict word 0001fh ; b9 1f 00 15713 15749 sal word [bp-018h], 1 ; d1 66 e8 15714 15750 rcl word [bp-016h], 1 ; d1 56 ea 15715 loop 0a2 4eh ; e2 f815716 jmp short 0a2 46h ; eb ee15751 loop 0a28eh ; e2 f8 15752 jmp short 0a286h ; eb ee 15717 15753 mov ax, word [si] ; 8b 04 15718 15754 mov word [bp-018h], ax ; 89 46 e8 … … 15731 15767 mov ds, [bp-006h] ; 8e 5e fa 15732 15768 cmp ax, word [si+002h] ; 3b 44 02 15733 jnbe short 0a2 8fh ; 77 0615734 jne short 0a2 93h ; 75 0815769 jnbe short 0a2cfh ; 77 06 15770 jne short 0a2d3h ; 75 08 15735 15771 cmp dx, word [si] ; 3b 14 15736 jc short 0a2 93h ; 72 0415772 jc short 0a2d3h ; 72 04 15737 15773 mov AL, strict byte 001h ; b0 01 15738 jmp short 0a2 95h ; eb 0215774 jmp short 0a2d5h ; eb 02 15739 15775 xor al, al ; 30 c0 15740 15776 test al, al ; 84 c0 15741 je short 0a 2fah ; 74 6115777 je short 0a33ah ; 74 61 15742 15778 mov ds, [bp-008h] ; 8e 5e f8 15743 15779 mov ax, word [di+002h] ; 8b 45 02 15744 15780 cmp ax, word [bp-016h] ; 3b 46 ea 15745 jnbe short 0a2 b0h ; 77 0c15781 jnbe short 0a2f0h ; 77 0c 15746 15782 cmp ax, word [bp-016h] ; 3b 46 ea 15747 jne short 0a2 b4h ; 75 0b15783 jne short 0a2f4h ; 75 0b 15748 15784 mov ax, word [di] ; 8b 05 15749 15785 cmp ax, word [bp-018h] ; 3b 46 e8 15750 jc short 0a2 b4h ; 72 0415786 jc short 0a2f4h ; 72 04 15751 15787 mov AL, strict byte 001h ; b0 01 15752 jmp short 0a2 b6h ; eb 0215788 jmp short 0a2f6h ; eb 02 15753 15789 xor al, al ; 30 c0 15754 15790 test al, al ; 84 c0 15755 je short 0a 2e0h ; 74 2615791 je short 0a320h ; 74 26 15756 15792 mov ax, word [bp-018h] ; 8b 46 e8 15757 15793 mov ds, [bp-008h] ; 8e 5e f8 … … 15762 15798 xor dx, dx ; 31 d2 15763 15799 mov cx, word [bp-012h] ; 8b 4e ee 15764 jcxz 0a 2d8h ; e3 0615800 jcxz 0a318h ; e3 06 15765 15801 sal ax, 1 ; d1 e0 15766 15802 rcl dx, 1 ; d1 d2 15767 loop 0a 2d2h ; e2 fa15803 loop 0a312h ; e2 fa 15768 15804 lds bx, [bp-010h] ; c5 5e f0 15769 15805 or word [bx], ax ; 09 07 … … 15774 15810 mov ds, [bp-006h] ; 8e 5e fa 15775 15811 cmp ax, word [si+002h] ; 3b 44 02 15776 jc short 0a 2f6h ; 72 0615777 jne short 0a 2fch ; 75 0a15812 jc short 0a336h ; 72 06 15813 jne short 0a33ch ; 75 0a 15778 15814 cmp dx, word [si] ; 3b 14 15779 jnc short 0a 2fch ; 73 0615815 jnc short 0a33ch ; 73 06 15780 15816 mov AL, strict byte 001h ; b0 01 15781 jmp short 0a 2feh ; eb 0415782 jmp short 0a3 1dh ; eb 2115817 jmp short 0a33eh ; eb 04 15818 jmp short 0a35dh ; eb 21 15783 15819 xor al, al ; 30 c0 15784 15820 test al, al ; 84 c0 15785 je short 0a3 11h ; 74 0f15786 jmp short 0a3 1dh ; eb 1915821 je short 0a351h ; 74 0f 15822 jmp short 0a35dh ; eb 19 15787 15823 mov cx, strict word 0001fh ; b9 1f 00 15788 15824 sal word [bp-018h], 1 ; d1 66 e8 15789 15825 rcl word [bp-016h], 1 ; d1 56 ea 15790 loop 0a3 07h ; e2 f815791 jmp short 0a3 17h ; eb 0615826 loop 0a347h ; e2 f8 15827 jmp short 0a357h ; eb 06 15792 15828 shr word [bp-016h], 1 ; d1 6e ea 15793 15829 rcr word [bp-018h], 1 ; d1 5e e8 15794 15830 dec word [bp-012h] ; ff 4e ee 15795 jmp near 0a2 99h ; e9 7c ff15831 jmp near 0a2d9h ; e9 7c ff 15796 15832 mov ax, word [bp-01ch] ; 8b 46 e4 15797 15833 mov dx, word [bp-01ah] ; 8b 56 e6 … … 15802 15838 retn ; c3 15803 15839 times 0x6 db 0 15804 _ASMBitLastSetU16: ; 0xfa3 30 LB 0x1815840 _ASMBitLastSetU16: ; 0xfa370 LB 0x18 15805 15841 push bp ; 55 15806 15842 db 08bh, 0ech … … 15808 15844 mov cx, word [bp+004h] ; 8b 4e 04 15809 15845 test cx, cx ; 85 c9 15810 je short 0a3 44h ; 74 0a15846 je short 0a384h ; 74 0a 15811 15847 mov ax, strict word 00010h ; b8 10 00 15812 15848 sal cx, 1 ; d1 e1 15813 jc short 0a3 46h ; 72 0515849 jc short 0a386h ; 72 05 15814 15850 dec ax ; 48 15815 jmp short 0a3 3dh ; eb f915851 jmp short 0a37dh ; eb f9 15816 15852 db 033h, 0c0h 15817 15853 ; xor ax, ax ; 33 c0 … … 15819 15855 retn ; c3 15820 15856 15821 ; Padding 0x36 b8 bytes at 0xfa34815822 times 1 4008db 015857 ; Padding 0x3678 bytes at 0xfa388 15858 times 13944 db 0 15823 15859 15824 15860 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 15867 15903 add bp, strict byte 00008h ; 83 c5 08 15868 15904 push ebp ; 66 55 15869 mov bp, 0a0 b6h ; bd b6 a015905 mov bp, 0a0f6h ; bd f6 a0 15870 15906 add byte [bx+si], al ; 00 00 15871 15907 push ebp ; 66 55 … … 16199 16235 mov bx, ax ; 89 c3 16200 16236 mov edx, dword [di] ; 66 8b 15 16201 mov AL, byte [000f4h] ; a0 f40016237 xor bl, 000h ; 80 f3 00 16202 16238 add byte [bp+026h], ah ; 00 66 26 16203 16239 cmp dx, word [bx+si] ; 3b 10 … … 16216 16252 mov di, word [es:bx+si+002h] ; 26 8b 78 02 16217 16253 mov dx, ds ; 8c da 16218 mov si, 0f 2c0h ; be c0 f216254 mov si, 0f1a0h ; be a0 f1 16219 16255 add byte [bx+si], al ; 00 00 16220 16256 mov es, [di-014h] ; 8e 45 ec … … 16225 16261 pop DS ; 1f 16226 16262 mov dword [di+018h], strict dword 0a1660a00h ; 66 c7 45 18 00 0a 66 a1 16227 mov AL, byte [000f4h] ; a0 f40016263 xor bl, 000h ; 80 f3 00 16228 16264 add byte [bp-00fbbh], cl ; 00 8e 45 f0 16229 16265 db 066h, 026h, 089h, 003h … … 17278 17314 pop eax ; 66 58 17279 17315 retn ; c3 17280 pcibios_init_iomem_bases: ; 0xff13c LB 0x1 617316 pcibios_init_iomem_bases: ; 0xff13c LB 0x12 17281 17317 push bp ; 55 17282 17318 db 08bh, 0ech 17283 17319 ; mov bp, sp ; 8b ec 17284 mov eax, strict dword 0e0000000h ; 66 b8 00 00 00 e0 17285 push eax ; 66 50 17286 mov ax, 0d000h ; b8 00 d0 17287 push ax ; 50 17288 mov ax, strict word 00010h ; b8 10 00 17289 push ax ; 50 17290 mov bx, strict word 00008h ; bb 08 00 17291 pci_init_io_loop1: ; 0xff152 LB 0xe 17292 mov DL, strict byte 000h ; b2 00 17293 call 0f121h ; e8 ca ff 17294 mov dx, 00cfch ; ba fc 0c 17295 in ax, DX ; ed 17296 cmp ax, strict byte 0ffffh ; 83 f8 ff 17297 je short 0f199h ; 74 39 17298 enable_iomem_space: ; 0xff160 LB 0x39 17299 mov DL, strict byte 004h ; b2 04 17300 call 0f121h ; e8 bc ff 17301 mov dx, 00cfch ; ba fc 0c 17302 in AL, DX ; ec 17303 or AL, strict byte 007h ; 0c 07 17304 out DX, AL ; ee 17305 mov DL, strict byte 000h ; b2 00 17306 call 0f121h ; e8 b0 ff 17307 mov dx, 00cfch ; ba fc 0c 17308 in eax, DX ; 66 ed 17309 cmp eax, strict dword 020001022h ; 66 3d 22 10 00 20 17310 jne short 0f199h ; 75 1b 17311 mov DL, strict byte 010h ; b2 10 17312 call 0f121h ; e8 9e ff 17313 mov dx, 00cfch ; ba fc 0c 17314 in ax, DX ; ed 17315 and ax, strict byte 0fffch ; 83 e0 fc 17316 db 08bh, 0c8h 17317 ; mov cx, ax ; 8b c8 17318 db 08bh, 0d1h 17319 ; mov dx, cx ; 8b d1 17320 add dx, strict byte 00014h ; 83 c2 14 17321 in ax, DX ; ed 17322 db 08bh, 0d1h 17323 ; mov dx, cx ; 8b d1 17324 add dx, strict byte 00018h ; 83 c2 18 17325 in eax, DX ; 66 ed 17326 next_pci_dev: ; 0xff199 LB 0xf 17327 mov byte [bp-008h], 010h ; c6 46 f8 10 17328 inc bx ; 43 17329 cmp bx, 00100h ; 81 fb 00 01 17330 jne short 0f152h ; 75 ae 17320 mov eax, strict dword 00124f9fdh ; 66 b8 fd f9 24 01 17321 mov dx, 00410h ; ba 10 04 17322 out DX, eax ; 66 ef 17331 17323 db 08bh, 0e5h 17332 17324 ; mov sp, bp ; 8b e5 17333 17325 pop bp ; 5d 17334 17326 retn ; c3 17335 pcibios_init_set_elcr: ; 0xff1 a8LB 0xc17327 pcibios_init_set_elcr: ; 0xff14e LB 0xc 17336 17328 push ax ; 50 17337 17329 push cx ; 51 17338 17330 mov dx, 004d0h ; ba d0 04 17339 17331 test AL, strict byte 008h ; a8 08 17340 je short 0f1 b4h ; 74 0317332 je short 0f15ah ; 74 03 17341 17333 inc dx ; 42 17342 17334 and AL, strict byte 007h ; 24 07 17343 is_master_pic: ; 0xff1 b4LB 0xd17335 is_master_pic: ; 0xff15a LB 0xd 17344 17336 db 08ah, 0c8h 17345 17337 ; mov cl, al ; 8a c8 … … 17353 17345 pop ax ; 58 17354 17346 retn ; c3 17355 pcibios_init_irqs: ; 0xff1 c1 LB 0x5317347 pcibios_init_irqs: ; 0xff167 LB 0x39 17356 17348 push DS ; 1e 17357 17349 push bp ; 55 17358 17350 mov ax, 0f000h ; b8 00 f0 17359 17351 mov ds, ax ; 8e d8 17360 mov dx, 004d0h ; ba d0 0417361 mov AL, strict byte 000h ; b0 0017362 out DX, AL ; ee17363 inc dx ; 4217364 out DX, AL ; ee17365 mov si, 0f2a0h ; be a0 f217366 mov bh, byte [si+008h] ; 8a 7c 0817367 mov bl, byte [si+009h] ; 8a 5c 0917368 mov DL, strict byte 000h ; b2 0017369 call 0f121h ; e8 43 ff17370 mov dx, 00cfch ; ba fc 0c17371 in eax, DX ; 66 ed17372 cmp eax, dword [si+00ch] ; 66 3b 44 0c17373 jne near 0f291h ; 0f 85 a6 0017374 mov dl, byte [si+022h] ; 8a 54 2217375 call 0f121h ; e8 30 ff17376 push bx ; 5317377 mov dx, 00cfch ; ba fc 0c17378 mov ax, 08080h ; b8 80 8017379 out DX, ax ; ef17380 add dx, strict byte 00002h ; 83 c2 0217381 out DX, ax ; ef17382 mov ax, word [si+006h] ; 8b 44 0617383 sub ax, strict byte 00020h ; 83 e8 2017384 shr ax, 004h ; c1 e8 0417385 db 08bh, 0c8h17386 ; mov cx, ax ; 8b c817387 add si, strict byte 00020h ; 83 c6 2017388 db 08bh, 0ech17389 ; mov bp, sp ; 8b ec17390 mov ax, 0f11dh ; b8 1d f117391 push ax ; 5017392 db 033h, 0c0h17393 ; xor ax, ax ; 33 c017394 push ax ; 5017395 pci_init_irq_loop1: ; 0xff214 LB 0x517396 mov bh, byte [si] ; 8a 3c17397 mov bl, byte [si+001h] ; 8a 5c 0117398 pci_init_irq_loop2: ; 0xff219 LB 0x1517399 mov DL, strict byte 000h ; b2 0017400 call 0f121h ; e8 03 ff17401 mov dx, 00cfch ; ba fc 0c17402 in ax, DX ; ed17403 cmp ax, strict byte 0ffffh ; 83 f8 ff17404 jne short 0f22eh ; 75 0717405 test bl, 007h ; f6 c3 0717406 je short 0f285h ; 74 5917407 jmp short 0f27bh ; eb 4d17408 pci_test_int_pin: ; 0xff22e LB 0x3c17409 mov DL, strict byte 03ch ; b2 3c17410 call 0f121h ; e8 ee fe17411 mov dx, 00cfdh ; ba fd 0c17412 in AL, DX ; ec17413 and AL, strict byte 007h ; 24 0717414 je short 0f27bh ; 74 4017415 db 0feh, 0c8h17416 ; dec al ; fe c817417 mov DL, strict byte 003h ; b2 0317418 mul dl ; f6 e217419 add AL, strict byte 002h ; 04 0217420 db 032h, 0e4h17421 ; xor ah, ah ; 32 e417422 db 08bh, 0d8h17423 ; mov bx, ax ; 8b d817424 mov al, byte [bx+si] ; 8a 0017425 db 08ah, 0d0h17426 ; mov dl, al ; 8a d017427 mov bx, word [byte bp+000h] ; 8b 5e 0017428 call 0f121h ; e8 d0 fe17429 mov dx, 00cfch ; ba fc 0c17430 and AL, strict byte 003h ; 24 0317431 db 002h, 0d0h17432 ; add dl, al ; 02 d017433 in AL, DX ; ec17434 cmp AL, strict byte 080h ; 3c 8017435 jc short 0f26ah ; 72 0d17436 mov bx, word [bp-002h] ; 8b 5e fe17437 mov al, byte [bx] ; 8a 0717438 out DX, AL ; ee17439 inc bx ; 4317440 mov word [bp-002h], bx ; 89 5e fe17441 call 0f1a8h ; e8 3e ff17442 pirq_found: ; 0xff26a LB 0x1117443 mov bh, byte [si] ; 8a 3c17444 mov bl, byte [si+001h] ; 8a 5c 0117445 add bl, byte [bp-003h] ; 02 5e fd17446 mov DL, strict byte 03ch ; b2 3c17447 call 0f121h ; e8 aa fe17448 mov dx, 00cfch ; ba fc 0c17449 out DX, AL ; ee17450 next_pci_func: ; 0xff27b LB 0xa17451 inc byte [bp-003h] ; fe 46 fd17452 db 0feh, 0c3h17453 ; inc bl ; fe c317454 test bl, 007h ; f6 c3 0717455 jne short 0f219h ; 75 9417456 next_pir_entry: ; 0xff285 LB 0xc17457 add si, strict byte 00010h ; 83 c6 1017458 mov byte [bp-003h], 000h ; c6 46 fd 0017459 loop 0f214h ; e2 8617460 db 08bh, 0e5h17461 ; mov sp, bp ; 8b e517462 pop bx ; 5b17463 pci_init_end: ; 0xff291 LB 0x2f17464 17352 pop bp ; 5d 17465 17353 pop DS ; 1f 17466 17354 retn ; c3 17467 db 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 024h, 050h, 049h, 052h 17468 db 000h, 001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h 17469 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h 17470 _pci_routing_table: ; 0xff2c0 LB 0x1e0 17355 mov ax, ax ; 89 c0 17356 mov ax, ax ; 89 c0 17357 mov ax, ax ; 89 c0 17358 mov ax, ax ; 89 c0 17359 mov ax, ax ; 89 c0 17360 mov ax, ax ; 89 c0 17361 mov ax, ax ; 89 c0 17362 cld ; fc 17363 and AL, strict byte 050h ; 24 50 17364 dec cx ; 49 17365 push dx ; 52 17366 add byte [bx+di], al ; 00 01 17367 add byte [bp+si], al ; 00 02 17368 add byte [bx+si], cl ; 00 08 17369 add byte [bx+si], al ; 00 00 17370 xchg byte [bx+si+07000h], al ; 86 80 00 70 17371 times 0xf db 0 17372 db 031h 17373 _pci_routing_table: ; 0xff1a0 LB 0x1e0 17471 17374 db 000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h 17472 17375 db 000h, 010h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 001h, 000h … … 17499 17402 db 000h, 0e8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 01ch, 000h 17500 17403 db 000h, 0f0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 01dh, 000h 17501 _pci_routing_table_size: ; 0xff 4a0 LB 0x217502 loopne 0f 4a3h ; e0 0117503 biosorg_check_before_or_at_0F83Fh: ; 0xff 4a2 LB 0x39f17504 times 0x 39d db 017404 _pci_routing_table_size: ; 0xff380 LB 0x2 17405 loopne 0f383h ; e0 01 17406 biosorg_check_before_or_at_0F83Fh: ; 0xff382 LB 0x4bf 17407 times 0x4bd db 0 17505 17408 db 'XM' 17506 17409 int12_handler: ; 0xff841 LB 0xc … … 17557 17460 popfw ; 9d 17558 17461 jmp short 0f8a5h ; eb 11 17559 call 09a 48h ; e8 b1a117462 call 09a69h ; e8 d2 a1 17560 17463 jmp short 0f88eh ; eb f5 17561 17464 int15_handler_mouse: ; 0xff899 LB 0x5 … … 17822 17725 cpu_reset: ; 0xffff0 LB 0x10 17823 17726 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 17824 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 4dh17727 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 061h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum
r67495 r67683 1 6082f0eb1fd2fca0245f382a0d155fa7*VBoxPcBios286.rom1 7c48fdf41ba0103589789d127c80d165 *VBoxPcBios286.rom -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm
r67495 r67683 1154 1154 times 1126 db 0 1155 1155 1156 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8 ae5 class=CODE group=AUTO1156 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8b15 class=CODE group=AUTO 1157 1157 rom_scan_: ; 0xf1600 LB 0x50 1158 1158 push bp ; 55 … … 1676 1676 mov bx, strict word 0000ah ; bb 0a 00 1677 1677 xor cx, cx ; 31 c9 1678 call 0 9ff0h ; e8 1e 861678 call 0a020h ; e8 4e 86 1679 1679 mov word [bp-008h], ax ; 89 46 f8 1680 1680 mov cx, dx ; 89 d1 … … 1902 1902 mov dx, word [bp-026h] ; 8b 56 da 1903 1903 mov si, word [bp-01eh] ; 8b 76 e2 1904 call 0a0 30h ; e8 2c 841904 call 0a060h ; e8 5c 84 1905 1905 mov ax, dx ; 89 d0 1906 1906 xor ah, dh ; 30 f4 … … 2344 2344 mov dx, word [es:si] ; 26 8b 14 2345 2345 mov si, strict word 00018h ; be 18 00 2346 call 0a0 30h ; e8 d0 7f2346 call 0a060h ; e8 00 80 2347 2347 xor dh, dh ; 30 f6 2348 2348 mov word [bp-016h], dx ; 89 56 ea … … 2354 2354 mov dx, word [es:si] ; 26 8b 14 2355 2355 mov si, strict word 00020h ; be 20 00 2356 call 0a0 30h ; e8 b0 7f2356 call 0a060h ; e8 e0 7f 2357 2357 mov bx, dx ; 89 d3 2358 2358 mov ax, word [bp-01eh] ; 8b 46 e2 … … 2385 2385 mov dx, word [es:si] ; 26 8b 14 2386 2386 mov si, strict word 00008h ; be 08 00 2387 call 0a0 30h ; e8 5f 7f2387 call 0a060h ; e8 8f 7f 2388 2388 mov word [bp-014h], dx ; 89 56 ec 2389 2389 mov bx, word [bp-018h] ; 8b 5e e8 … … 2394 2394 mov dx, word [es:si] ; 26 8b 14 2395 2395 mov si, strict word 00018h ; be 18 00 2396 call 0a0 30h ; e8 41 7f2396 call 0a060h ; e8 71 7f 2397 2397 and dx, strict byte 0000fh ; 83 e2 0f 2398 2398 or dl, 040h ; 80 ca 40 … … 2950 2950 mov dx, word [es:si+036h] ; 26 8b 54 36 2951 2951 mov si, strict word 0000bh ; be 0b 00 2952 call 0a0 30h ; e8 79 792952 call 0a060h ; e8 a9 79 2953 2953 mov word [bp-030h], dx ; 89 56 d0 2954 2954 mov word [bp-02eh], cx ; 89 4e d2 … … 3221 3221 mov dx, word [bp-01eh] ; 8b 56 e2 3222 3222 mov si, strict word 00018h ; be 18 00 3223 call 0a0 30h ; e8 a3 763223 call 0a060h ; e8 d3 76 3224 3224 xor dh, dh ; 30 f6 3225 3225 mov word [bp-01ch], dx ; 89 56 e4 … … 3229 3229 mov dx, word [bp-01eh] ; 8b 56 e2 3230 3230 mov si, strict word 00020h ; be 20 00 3231 call 0a0 30h ; e8 8c 763231 call 0a060h ; e8 bc 76 3232 3232 mov bx, dx ; 89 d3 3233 3233 mov ax, word [bp-01ah] ; 8b 46 e6 … … 3263 3263 mov dx, word [bp-01eh] ; 8b 56 e2 3264 3264 mov si, strict word 00008h ; be 08 00 3265 call 0a0 30h ; e8 38 763265 call 0a060h ; e8 68 76 3266 3266 mov word [bp-010h], ax ; 89 46 f0 3267 3267 mov word [bp-014h], bx ; 89 5e ec … … 3270 3270 mov word [bp-026h], dx ; 89 56 da 3271 3271 mov si, strict word 00010h ; be 10 00 3272 call 0a0 30h ; e8 23 763272 call 0a060h ; e8 53 76 3273 3273 mov word [bp-01eh], dx ; 89 56 e2 3274 3274 mov ax, dx ; 89 d0 … … 5520 5520 mov dx, ss ; 8c d2 5521 5521 lea ax, [bp-026h] ; 8d 46 da 5522 call 0a0 50h ; e8 44 615522 call 0a080h ; e8 74 61 5523 5523 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5524 5524 mov ax, strict word 00011h ; b8 11 00 … … 5980 5980 xor dl, dl ; 30 d2 5981 5981 xor cx, cx ; 31 c9 5982 call 09f b0h ; e8 42 5b5982 call 09fe0h ; e8 72 5b 5983 5983 xor bx, bx ; 31 db 5984 5984 add ax, si ; 01 f0 … … 5986 5986 mov bx, di ; 89 fb 5987 5987 xor cx, cx ; 31 c9 5988 call 09f b0h ; e8 35 5b5988 call 09fe0h ; e8 65 5b 5989 5989 mov bx, ax ; 89 c3 5990 5990 mov ax, word [bp-010h] ; 8b 46 f0 … … 6021 6021 mov dx, ss ; 8c d2 6022 6022 lea ax, [bp-02eh] ; 8d 46 d2 6023 call 0a0 50h ; e8 7e 5b6023 call 0a080h ; e8 ae 5b 6024 6024 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 6025 6025 mov ax, word [bp-014h] ; 8b 46 ec … … 6328 6328 mov dx, ss ; 8c d2 6329 6329 lea ax, [bp-02ch] ; 8d 46 d4 6330 call 0a0 50h ; e8 e3 576330 call 0a080h ; e8 13 58 6331 6331 mov word [bp-02ch], strict word 00028h ; c7 46 d4 28 00 6332 6332 mov ax, word [bp-018h] ; 8b 46 e8 … … 8175 8175 mov dx, word [bp+00ch] ; 8b 56 0c 8176 8176 mov si, strict word 00020h ; be 20 00 8177 call 0a0 30h ; e8 45 458177 call 0a060h ; e8 75 45 8178 8178 test ax, ax ; 85 c0 8179 8179 jne short 05afbh ; 75 0c … … 8213 8213 mov bx, strict word 0003fh ; bb 3f 00 8214 8214 xor cx, cx ; 31 c9 8215 call 09f b0h ; e8 6c 448215 call 09fe0h ; e8 9c 44 8216 8216 mov bx, ax ; 89 c3 8217 8217 mov cx, dx ; 89 d1 8218 8218 mov ax, word [bp-004h] ; 8b 46 fc 8219 8219 mov dx, si ; 89 f2 8220 call 0 9ff0h ; e8 a0 448220 call 0a020h ; e8 d0 44 8221 8221 mov word [es:di+002h], ax ; 26 89 45 02 8222 8222 cmp ax, 00400h ; 3d 00 04 … … 8447 8447 mov bx, cx ; 89 cb 8448 8448 xor cx, cx ; 31 c9 8449 call 09f b0h ; e8 3b 428449 call 09fe0h ; e8 6b 42 8450 8450 xor bx, bx ; 31 db 8451 8451 add ax, word [bp-008h] ; 03 46 f8 … … 8453 8453 mov bx, word [bp-00ah] ; 8b 5e f6 8454 8454 xor cx, cx ; 31 c9 8455 call 09f b0h ; e8 2c 428455 call 09fe0h ; e8 5c 42 8456 8456 xor bx, bx ; 31 db 8457 8457 add ax, word [bp-006h] ; 03 46 fa … … 8613 8613 mov bx, word [bp-008h] ; 8b 5e f8 8614 8614 xor cx, cx ; 31 c9 8615 call 09f b0h ; e8 64 408615 call 09fe0h ; e8 94 40 8616 8616 mov bx, word [bp-006h] ; 8b 5e fa 8617 8617 xor cx, cx ; 31 c9 8618 call 09f b0h ; e8 5c 408618 call 09fe0h ; e8 8c 40 8619 8619 mov word [bp-010h], ax ; 89 46 f0 8620 8620 mov word [bp-00eh], dx ; 89 56 f2 … … 8760 8760 xor bx, bx ; 31 db 8761 8761 mov si, strict word 00020h ; be 20 00 8762 call 0a0 40h ; e8 68 3f8762 call 0a070h ; e8 98 3f 8763 8763 mov word [bp-00eh], bx ; 89 5e f2 8764 8764 mov bx, word [es:di+008h] ; 26 8b 5d 08 … … 8911 8911 mov bx, word [bp-00eh] ; 8b 5e f2 8912 8912 mov si, strict word 00020h ; be 20 00 8913 call 0a0 30h ; e8 7e 3d8913 call 0a060h ; e8 ae 3d 8914 8914 mov bx, di ; 89 fb 8915 8915 mov word [es:bx+014h], dx ; 26 89 57 14 … … 9268 9268 mov bx, strict word 0000fh ; bb 0f 00 9269 9269 xor cx, cx ; 31 c9 9270 call 0 9ff0h ; e8 a5 399270 call 0a020h ; e8 d5 39 9271 9271 mov cx, ax ; 89 c1 9272 9272 mov bx, dx ; 89 d3 … … 12279 12279 mov dx, ss ; 8c d2 12280 12280 lea ax, [bp-046h] ; 8d 46 ba 12281 call 0a0 50h ; e8 ad 1c12281 call 0a080h ; e8 dd 1c 12282 12282 mov byte [bp-046h], 09eh ; c6 46 ba 9e 12283 12283 mov byte [bp-045h], 010h ; c6 46 bb 10 … … 12404 12404 mov dx, word [bp-016h] ; 8b 56 ea 12405 12405 mov si, strict word 0000ch ; be 0c 00 12406 call 0a0 30h ; e8 4a 1b12406 call 0a060h ; e8 7a 1b 12407 12407 mov word [bp-018h], ax ; 89 46 e8 12408 12408 mov word [bp-014h], bx ; 89 5e ec … … 12424 12424 mov dx, word [bp-016h] ; 8b 56 ea 12425 12425 mov si, strict word 00006h ; be 06 00 12426 call 0a0 30h ; e8 0a 1b12426 call 0a060h ; e8 3a 1b 12427 12427 mov si, word [bp-020h] ; 8b 76 e0 12428 12428 add si, dx ; 01 d6 … … 12442 12442 mov dx, si ; 89 f2 12443 12443 mov si, strict word 00008h ; be 08 00 12444 call 0a0 30h ; e8 da 1a12444 call 0a060h ; e8 0a 1b 12445 12445 mov word [bp-022h], bx ; 89 5e de 12446 12446 mov word [bp-02ch], cx ; 89 4e d4 … … 12451 12451 mov dx, word [bp-02ah] ; 8b 56 d6 12452 12452 mov si, strict word 00010h ; be 10 00 12453 call 0a0 30h ; e8 bf 1a12453 call 0a060h ; e8 ef 1a 12454 12454 mov si, word [bp-01ah] ; 8b 76 e6 12455 12455 add si, dx ; 01 d6 … … 12475 12475 mov dx, word [bp-016h] ; 8b 56 ea 12476 12476 mov si, strict word 0000bh ; be 0b 00 12477 call 0a0 30h ; e8 77 1a12477 call 0a060h ; e8 a7 1a 12478 12478 mov si, dx ; 89 d6 12479 12479 mov dx, cx ; 89 ca … … 12924 12924 mov ax, 00080h ; b8 80 00 12925 12925 mov dx, word [bp-00ah] ; 8b 56 f6 12926 call 0a0 50h ; e8 3a 1612926 call 0a080h ; e8 6a 16 12927 12927 mov es, [bp-00ah] ; 8e 46 f6 12928 12928 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 12942 12942 mov dx, word [es:si] ; 26 8b 14 12943 12943 mov si, strict word 00008h ; be 08 00 12944 call 0a0 30h ; e8 d6 1512944 call 0a060h ; e8 06 16 12945 12945 mov es, [bp-00ah] ; 8e 46 f6 12946 12946 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 12953 12953 mov dx, word [es:si] ; 26 8b 14 12954 12954 mov si, strict word 00010h ; be 10 00 12955 call 0a0 30h ; e8 b0 1512955 call 0a060h ; e8 e0 15 12956 12956 mov es, [bp-00ah] ; 8e 46 f6 12957 12957 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 12965 12965 mov dx, word [es:si] ; 26 8b 14 12966 12966 mov si, strict word 00018h ; be 18 00 12967 call 0a0 30h ; e8 84 1512967 call 0a060h ; e8 b4 15 12968 12968 mov es, [bp-00ah] ; 8e 46 f6 12969 12969 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 12976 12976 mov dx, word [es:si] ; 26 8b 14 12977 12977 mov si, strict word 00020h ; be 20 00 12978 call 0a0 30h ; e8 5e 1512978 call 0a060h ; e8 8e 15 12979 12979 mov es, [bp-00ah] ; 8e 46 f6 12980 12980 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 12987 12987 mov dx, word [es:si] ; 26 8b 14 12988 12988 mov si, strict word 00028h ; be 28 00 12989 call 0a0 30h ; e8 38 1512989 call 0a060h ; e8 68 15 12990 12990 mov es, [bp-00ah] ; 8e 46 f6 12991 12991 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13001 13001 mov bx, word [bp-010h] ; 8b 5e f0 13002 13002 xor cx, cx ; 31 c9 13003 call 09f b0h ; e8 83 1413003 call 09fe0h ; e8 b3 14 13004 13004 push dx ; 52 13005 13005 push ax ; 50 … … 13011 13011 mov ax, 0026ah ; b8 6a 02 13012 13012 mov dx, word [bp-00ah] ; 8b 56 f6 13013 call 09 efbh ; e8 b21313013 call 09f2fh ; e8 e6 13 13014 13014 mov es, [bp-00ah] ; 8e 46 f6 13015 13015 mov ax, word [es:di+0027eh] ; 26 8b 85 7e 02 … … 13069 13069 add ax, 0026ah ; 05 6a 02 13070 13070 mov dx, cx ; 89 ca 13071 call 09f 74h ; e8 531313071 call 09fa8h ; e8 87 13 13072 13072 mov es, cx ; 8e c1 13073 13073 mov al, byte [es:bx+003h] ; 26 8a 47 03 … … 13151 13151 mov ax, di ; 89 f8 13152 13152 mov dx, word [bp-00ch] ; 8b 56 f4 13153 call 0a0 50h ; e8 7f 1313153 call 0a080h ; e8 af 13 13154 13154 lea ax, [di+00080h] ; 8d 85 80 00 13155 13155 mov cx, strict word 00040h ; b9 40 00 13156 13156 xor bx, bx ; 31 db 13157 13157 mov dx, word [bp-00ch] ; 8b 56 f4 13158 call 0a0 50h ; e8 70 1313158 call 0a080h ; e8 a0 13 13159 13159 lea ax, [di+00200h] ; 8d 85 00 02 13160 13160 mov cx, strict word 00060h ; b9 60 00 13161 13161 xor bx, bx ; 31 db 13162 13162 mov dx, word [bp-00ch] ; 8b 56 f4 13163 call 0a0 50h ; e8 61 1313163 call 0a080h ; e8 91 13 13164 13164 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13165 13165 sal ax, 007h ; c1 e0 07 … … 13332 13332 mov ax, si ; 89 f0 13333 13333 mov dx, word [bp-00ah] ; 8b 56 f6 13334 call 0a0 50h ; e8 01 1213334 call 0a080h ; e8 31 12 13335 13335 lea ax, [si+00080h] ; 8d 84 80 00 13336 13336 mov cx, strict word 00040h ; b9 40 00 13337 13337 xor bx, bx ; 31 db 13338 13338 mov dx, word [bp-00ah] ; 8b 56 f6 13339 call 0a0 50h ; e8 f2 1113339 call 0a080h ; e8 22 12 13340 13340 lea di, [si+00200h] ; 8d bc 00 02 13341 13341 mov cx, strict word 00060h ; b9 60 00 … … 13343 13343 mov ax, di ; 89 f8 13344 13344 mov dx, word [bp-00ah] ; 8b 56 f6 13345 call 0a0 50h ; e8 e1 1113345 call 0a080h ; e8 11 12 13346 13346 movzx bx, byte [bp-008h] ; 0f b6 5e f8 13347 13347 sal bx, 007h ; c1 e3 07 … … 13670 13670 mov dx, word [bp+008h] ; 8b 56 08 13671 13671 xor cx, cx ; 31 c9 13672 call 0 9ff0h ; e8 38 0e13672 call 0a020h ; e8 68 0e 13673 13673 mov word [es:si+00eh], ax ; 26 89 44 0e 13674 13674 xor di, di ; 31 ff … … 13694 13694 mov ax, 000c0h ; b8 c0 00 13695 13695 mov dx, word [bp-00ah] ; 8b 56 f6 13696 call 0a0 60h ; e8 58 0e13696 call 0a090h ; e8 88 0e 13697 13697 mov es, [bp-008h] ; 8e 46 f8 13698 13698 mov word [es:si+018h], di ; 26 89 7c 18 … … 14383 14383 pop bp ; 5d 14384 14384 retn ; c3 14385 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0d 9h, 099h, 0b7h, 099h, 0bdh, 099h, 0c3h, 099h, 0c9h14386 db 099h, 0 cfh, 099h, 0d5h, 099h, 0d9h, 099h14387 _ahci_init: ; 0xf990a LB 0x fe14385 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0dah, 099h, 0b8h, 099h, 0beh, 099h, 0c4h, 099h, 0cah 14386 db 099h, 0d0h, 099h, 0d6h, 099h, 0dah, 099h 14387 _ahci_init: ; 0xf990a LB 0x116 14388 14388 push bp ; 55 14389 14389 mov bp, sp ; 89 e5 14390 14390 push si ; 56 14391 14391 push di ; 57 14392 sub sp, strict byte 0000 6h ; 83 ec 0614392 sub sp, strict byte 00008h ; 83 ec 08 14393 14393 mov ax, 00601h ; b8 01 06 14394 14394 mov dx, strict word 00001h ; ba 01 00 14395 call 09e 28h ; e8 0d0514396 mov dx, ax ; 89 c214395 call 09e40h ; e8 25 05 14396 mov bx, ax ; 89 c3 14397 14397 cmp ax, strict word 0ffffh ; 3d ff ff 14398 je near 09a 01h ; 0f 84 dd0014398 je near 09a19h ; 0f 84 f5 00 14399 14399 xor al, al ; 30 c0 14400 14400 shr ax, 008h ; c1 e8 08 14401 14401 mov byte [bp-00ah], al ; 88 46 f6 14402 mov byte [bp-008h], dl ; 88 56f814403 xor dh, dh ; 30 f614402 mov byte [bp-008h], bl ; 88 5e f8 14403 movzx dx, bl ; 0f b6 d3 14404 14404 xor ah, ah ; 30 e4 14405 14405 mov bx, strict word 00034h ; bb 34 00 14406 call 09e 53h ; e8 1a0514406 call 09e6bh ; e8 31 05 14407 14407 mov cl, al ; 88 c1 14408 14408 test cl, cl ; 84 c9 14409 je short 0996 2h ; 74 2314409 je short 09963h ; 74 23 14410 14410 movzx bx, cl ; 0f b6 d9 14411 14411 movzx di, byte [bp-008h] ; 0f b6 7e f8 … … 14413 14413 mov dx, di ; 89 fa 14414 14414 mov ax, si ; 89 f0 14415 call 09e 53h ; e8 020514415 call 09e6bh ; e8 19 05 14416 14416 cmp AL, strict byte 012h ; 3c 12 14417 je short 0996 2h ; 74 0d14417 je short 09963h ; 74 0d 14418 14418 mov al, cl ; 88 c8 14419 14419 db 0feh, 0c0h … … 14422 14422 mov dx, di ; 89 fa 14423 14423 mov ax, si ; 89 f0 14424 jmp short 0993 6h ; eb d414424 jmp short 09937h ; eb d4 14425 14425 test cl, cl ; 84 c9 14426 je near 09a 01h ; 0f 84 990014426 je near 09a19h ; 0f 84 b0 00 14427 14427 add cl, 002h ; 80 c1 02 14428 14428 movzx bx, cl ; 0f b6 d9 14429 movzx di, byte [bp-008h] ; 0f b6 7ef814430 movzx si, byte [bp-00ah] ; 0f b6 76f614431 mov dx, di ; 89 fa14432 mov ax, si ; 89 f014433 call 09e 53h ; e8 d60414429 movzx si, byte [bp-008h] ; 0f b6 76 f8 14430 movzx di, byte [bp-00ah] ; 0f b6 7e f6 14431 mov dx, si ; 89 f2 14432 mov ax, di ; 89 f8 14433 call 09e6bh ; e8 ed 04 14434 14434 cmp AL, strict byte 010h ; 3c 10 14435 jne near 09a 01h ; 0f 85 7e0014435 jne near 09a19h ; 0f 85 95 00 14436 14436 mov byte [bp-006h], 000h ; c6 46 fa 00 14437 14437 mov al, cl ; 88 c8 14438 14438 add AL, strict byte 002h ; 04 02 14439 14439 movzx bx, al ; 0f b6 d8 14440 mov dx, di ; 89 fa14441 mov ax, si ; 89 f014442 call 09e 77h ; e8 e20414440 mov dx, si ; 89 f2 14441 mov ax, di ; 89 f8 14442 call 09e8fh ; e8 f9 04 14443 14443 mov dx, ax ; 89 c2 14444 14444 and ax, strict word 0000fh ; 25 0f 00 14445 14445 sub ax, strict word 00004h ; 2d 04 00 14446 14446 cmp ax, strict word 0000bh ; 3d 0b 00 14447 jnbe short 099d 9h ; 77 3714447 jnbe short 099dah ; 77 37 14448 14448 push CS ; 0e 14449 14449 pop ES ; 07 … … 14456 14456 jmp ax ; ff e0 14457 14457 mov byte [bp-006h], 010h ; c6 46 fa 10 14458 jmp short 099d 9h ; eb 1c14458 jmp short 099dah ; eb 1c 14459 14459 mov byte [bp-006h], 014h ; c6 46 fa 14 14460 jmp short 099d 9h ; eb 1614460 jmp short 099dah ; eb 16 14461 14461 mov byte [bp-006h], 018h ; c6 46 fa 18 14462 jmp short 099d 9h ; eb 1014462 jmp short 099dah ; eb 10 14463 14463 mov byte [bp-006h], 01ch ; c6 46 fa 1c 14464 jmp short 099d 9h ; eb 0a14464 jmp short 099dah ; eb 0a 14465 14465 mov byte [bp-006h], 020h ; c6 46 fa 20 14466 jmp short 099d 9h ; eb 0414466 jmp short 099dah ; eb 04 14467 14467 mov byte [bp-006h], 024h ; c6 46 fa 24 14468 mov si, dx ; 89 d614469 shr si, 004h ; c1 ee0414470 sal si, 002h ; c1 e60214468 mov cx, dx ; 89 d1 14469 shr cx, 004h ; c1 e9 04 14470 sal cx, 002h ; c1 e1 02 14471 14471 mov al, byte [bp-006h] ; 8a 46 fa 14472 14472 test al, al ; 84 c0 14473 je short 09a 01h ; 74 1914473 je short 09a19h ; 74 30 14474 14474 movzx bx, al ; 0f b6 d8 14475 movzx dx, byte [bp-008h] ; 0f b6 56 f8 14476 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 14477 call 09e99h ; e8 a3 04 14475 movzx di, byte [bp-008h] ; 0f b6 7e f8 14476 movzx si, byte [bp-00ah] ; 0f b6 76 f6 14477 mov dx, di ; 89 fa 14478 mov ax, si ; 89 f0 14479 call 09eb1h ; e8 b6 04 14478 14480 test AL, strict byte 001h ; a8 01 14479 je short 09a 01h ; 74 0714481 je short 09a19h ; 74 1a 14480 14482 and AL, strict byte 0f0h ; 24 f0 14481 add ax, si ; 01 f0 14482 call 097a4h ; e8 a3 fd 14483 add ax, cx ; 01 c8 14484 mov word [bp-00ch], ax ; 89 46 f4 14485 mov cx, strict word 00007h ; b9 07 00 14486 mov bx, strict word 00004h ; bb 04 00 14487 mov dx, di ; 89 fa 14488 mov ax, si ; 89 f0 14489 call 09ed8h ; e8 c5 04 14490 mov ax, word [bp-00ch] ; 8b 46 f4 14491 call 097a4h ; e8 8b fd 14483 14492 lea sp, [bp-004h] ; 8d 66 fc 14484 14493 pop di ; 5f … … 14486 14495 pop bp ; 5d 14487 14496 retn ; c3 14488 apm_out_str_: ; 0xf9a 08LB 0x3914497 apm_out_str_: ; 0xf9a20 LB 0x39 14489 14498 push bp ; 55 14490 14499 mov bp, sp ; 89 e5 … … 14492 14501 mov bx, ax ; 89 c3 14493 14502 cmp byte [bx], 000h ; 80 3f 00 14494 je short 09a 1dh ; 74 0a14503 je short 09a35h ; 74 0a 14495 14504 mov al, byte [bx] ; 8a 07 14496 14505 out DX, AL ; ee … … 14499 14508 db 00ah, 0c0h 14500 14509 ; or al, al ; 0a c0 14501 jne short 09a 15h ; 75 f814510 jne short 09a2dh ; 75 f8 14502 14511 lea sp, [bp-002h] ; 8d 66 fe 14503 14512 pop bx ; 5b 14504 14513 pop bp ; 5d 14505 14514 retn ; c3 14506 db 064h, 09ah, 030h, 09bh, 076h, 09ah 14507 ; fs call far fs:09a76h:09b30h ; 64 9a 30 9b 76 9a 14508 xchg cx, ax ; 91 14509 call far 09abch:09b30h ; 9a 30 9b bc 9a 14510 xor byte [bp+di-0653fh], bl ; 30 9b c1 9a 14511 add ax, 0059bh ; 05 9b 05 14515 jl short 099d7h ; 7c 9a 14516 dec ax ; 48 14512 14517 wait ; 9b 14513 add ax, 0009bh ; 05 9b 00 14518 mov ds, [bp+si-06557h] ; 8e 9a a9 9a 14519 dec ax ; 48 14514 14520 wait ; 9b 14515 add ax, 0059bh ; 05 9b 05 14521 aam 09ah ; d4 9a 14522 dec ax ; 48 14516 14523 wait ; 9b 14517 stc ; f9 14518 db 09ah 14519 _apm_function: ; 0xf9a41 LB 0xf5 14524 fstp dword [bp+si-064e3h] ; d9 9a 1d 9b 14525 sbb ax, 01d9bh ; 1d 9b 1d 14526 wait ; 9b 14527 sbb byte [bp+di-064e3h], bl ; 18 9b 1d 9b 14528 sbb ax, 0119bh ; 1d 9b 11 14529 wait ; 9b 14530 _apm_function: ; 0xf9a59 LB 0xf5 14520 14531 push bp ; 55 14521 14532 mov bp, sp ; 89 e5 … … 14525 14536 xor ah, ah ; 30 e4 14526 14537 cmp ax, strict word 0000eh ; 3d 0e 00 14527 jnbe near 09b 05h ; 0f 87 b0 0014538 jnbe near 09b1dh ; 0f 87 b0 00 14528 14539 mov bx, ax ; 89 c3 14529 14540 add bx, ax ; 01 c3 14530 14541 mov dx, word [bp+018h] ; 8b 56 18 14531 14542 or dl, 001h ; 80 ca 01 14532 jmp word [cs:bx-065 ddh] ; 2e ff a7 239a14543 jmp word [cs:bx-065c5h] ; 2e ff a7 3b 9a 14533 14544 mov word [bp+012h], 00102h ; c7 46 12 02 01 14534 14545 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 14535 14546 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 14536 jmp near 09b 30h ; e9 ba 0014547 jmp near 09b48h ; e9 ba 00 14537 14548 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14538 mov word [bp+00ch], 0a 0d4h ; c7 46 0c d4 a014549 mov word [bp+00ch], 0a104h ; c7 46 0c 04 a1 14539 14550 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 14540 14551 mov ax, strict word 0fff0h ; b8 f0 ff 14541 14552 mov word [bp+006h], ax ; 89 46 06 14542 14553 mov word [bp+004h], ax ; 89 46 04 14543 jmp near 09b 30h ; e9 9f 0014554 jmp near 09b48h ; e9 9f 00 14544 14555 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14545 14556 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 14554 14565 mov si, ax ; 89 c6 14555 14566 sal esi, 010h ; 66 c1 e6 10 14556 jmp near 09b 30h ; e9 74 0014567 jmp near 09b48h ; e9 74 00 14557 14568 sti ; fb 14558 14569 hlt ; f4 14559 jmp near 09b 30h ; e9 6f 0014570 jmp near 09b48h ; e9 6f 00 14560 14571 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 14561 je short 09a e6h ; 74 1f14572 je short 09afeh ; 74 1f 14562 14573 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 14563 je short 09a deh ; 74 1114574 je short 09af6h ; 74 11 14564 14575 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 14565 jne short 09 aeeh ; 75 1b14576 jne short 09b06h ; 75 1b 14566 14577 mov dx, 0040fh ; ba 0f 04 14567 14578 mov ax, 00d22h ; b8 22 0d 14568 call 09a 08h ; e8 2c ff14569 jmp short 09b 30h ; eb 5214579 call 09a20h ; e8 2c ff 14580 jmp short 09b48h ; eb 52 14570 14581 mov dx, 0040fh ; ba 0f 04 14571 14582 mov ax, 00d2ah ; b8 2a 0d 14572 jmp short 09a d9h ; eb f314583 jmp short 09af1h ; eb f3 14573 14584 mov dx, 0040fh ; ba 0f 04 14574 14585 mov ax, 00d32h ; b8 32 0d 14575 jmp short 09a d9h ; eb eb14586 jmp short 09af1h ; eb eb 14576 14587 or ah, 00ah ; 80 cc 0a 14577 14588 mov word [bp+012h], ax ; 89 46 12 14578 14589 mov word [bp+018h], dx ; 89 56 18 14579 jmp short 09b 30h ; eb 3714590 jmp short 09b48h ; eb 37 14580 14591 mov word [bp+012h], 00102h ; c7 46 12 02 01 14581 jmp short 09b 30h ; eb 3014592 jmp short 09b48h ; eb 30 14582 14593 or ah, 080h ; 80 cc 80 14583 jmp short 09 af1h ; eb ec14594 jmp short 09b09h ; eb ec 14584 14595 mov bx, 00db2h ; bb b2 0d 14585 14596 mov cx, ds ; 8c d9 14586 14597 mov ax, strict word 00004h ; b8 04 00 14587 call 01a2ah ; e8 1a7f14598 call 01a2ah ; e8 02 7f 14588 14599 push word [bp+00ch] ; ff 76 0c 14589 14600 push word [bp+012h] ; ff 76 12 14590 14601 push 00d3bh ; 68 3b 0d 14591 14602 push strict byte 00004h ; 6a 04 14592 call 01a6bh ; e8 4d7f14603 call 01a6bh ; e8 35 7f 14593 14604 add sp, strict byte 00008h ; 83 c4 08 14594 14605 mov ax, word [bp+012h] ; 8b 46 12 … … 14601 14612 pop bp ; 5d 14602 14613 retn ; c3 14603 pci16_select_reg_: ; 0xf9b 36LB 0x2414614 pci16_select_reg_: ; 0xf9b4e LB 0x24 14604 14615 push bp ; 55 14605 14616 mov bp, sp ; 89 e5 … … 14618 14629 pop bp ; 5d 14619 14630 retn ; c3 14620 pci16_find_device_: ; 0xf9b 5aLB 0xf714631 pci16_find_device_: ; 0xf9b72 LB 0xf7 14621 14632 push bp ; 55 14622 14633 mov bp, sp ; 89 e5 … … 14632 14643 mov byte [bp-008h], 000h ; c6 46 f8 00 14633 14644 test bl, 007h ; f6 c3 07 14634 jne short 09b a2h ; 75 2d14645 jne short 09bbah ; 75 2d 14635 14646 mov dx, strict word 0000eh ; ba 0e 00 14636 14647 mov ax, bx ; 89 d8 14637 call 09b 36h ; e8 b9 ff14648 call 09b4eh ; e8 b9 ff 14638 14649 mov dx, 00cfeh ; ba fe 0c 14639 14650 in AL, DX ; ec … … 14642 14653 mov byte [bp-006h], al ; 88 46 fa 14643 14654 cmp AL, strict byte 0ffh ; 3c ff 14644 jne short 09b 90h ; 75 0614655 jne short 09ba8h ; 75 06 14645 14656 add bx, strict byte 00008h ; 83 c3 08 14646 jmp near 09c 23h ; e9 93 0014657 jmp near 09c3bh ; e9 93 00 14647 14658 test byte [bp-006h], 080h ; f6 46 fa 80 14648 je short 09b 9dh ; 74 0714659 je short 09bb5h ; 74 07 14649 14660 mov word [bp-00ah], strict word 00001h ; c7 46 f6 01 00 14650 jmp short 09b a2h ; eb 0514661 jmp short 09bbah ; eb 05 14651 14662 mov word [bp-00ah], strict word 00008h ; c7 46 f6 08 00 14652 14663 mov al, byte [bp-006h] ; 8a 46 fa 14653 14664 and AL, strict byte 007h ; 24 07 14654 14665 cmp AL, strict byte 001h ; 3c 01 14655 jne short 09b cah ; 75 1f14666 jne short 09be2h ; 75 1f 14656 14667 mov ax, bx ; 89 d8 14657 14668 shr ax, 008h ; c1 e8 08 14658 14669 test ax, ax ; 85 c0 14659 jne short 09b cah ; 75 1614670 jne short 09be2h ; 75 16 14660 14671 mov dx, strict word 0001ah ; ba 1a 00 14661 14672 mov ax, bx ; 89 d8 14662 call 09b 36h ; e8 7a ff14673 call 09b4eh ; e8 7a ff 14663 14674 mov dx, 00cfeh ; ba fe 0c 14664 14675 in AL, DX ; ec … … 14666 14677 ; sub ah, ah ; 2a e4 14667 14678 cmp al, byte [bp-008h] ; 3a 46 f8 14668 jbe short 09b cah ; 76 0314679 jbe short 09be2h ; 76 03 14669 14680 mov byte [bp-008h], al ; 88 46 f8 14670 14681 test di, di ; 85 ff 14671 je short 09b d3h ; 74 0514682 je short 09bebh ; 74 05 14672 14683 mov dx, strict word 00008h ; ba 08 00 14673 jmp short 09b d5h ; eb 0214684 jmp short 09bedh ; eb 02 14674 14685 xor dx, dx ; 31 d2 14675 14686 mov ax, bx ; 89 d8 14676 call 09b 36h ; e8 5c ff14687 call 09b4eh ; e8 5c ff 14677 14688 mov dx, 00cfch ; ba fc 0c 14678 14689 in eax, DX ; 66 ed … … 14685 14696 mov word [bp-010h], strict word 00000h ; c7 46 f0 00 00 14686 14697 test di, di ; 85 ff 14687 je short 09c 04h ; 74 0f14698 je short 09c1ch ; 74 0f 14688 14699 mov cx, strict word 00008h ; b9 08 00 14689 14700 shr dx, 1 ; d1 ea 14690 14701 rcr ax, 1 ; d1 d8 14691 loop 09 bf8h ; e2 fa14702 loop 09c10h ; e2 fa 14692 14703 mov word [bp-00eh], ax ; 89 46 f2 14693 14704 mov word [bp-00ch], dx ; 89 56 f4 14694 14705 mov ax, word [bp-00ch] ; 8b 46 f4 14695 14706 cmp ax, word [bp-014h] ; 3b 46 ec 14696 jne short 09c 14h ; 75 0814707 jne short 09c2ch ; 75 08 14697 14708 mov ax, word [bp-00eh] ; 8b 46 f2 14698 14709 cmp ax, word [bp-012h] ; 3b 46 ee 14699 je short 09c 1ah ; 74 0614710 je short 09c32h ; 74 06 14700 14711 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 14701 je short 09c 20h ; 74 0614712 je short 09c38h ; 74 06 14702 14713 dec si ; 4e 14703 14714 cmp si, strict byte 0ffffh ; 83 fe ff 14704 je short 09c 32h ; 74 1214715 je short 09c4ah ; 74 12 14705 14716 add bx, word [bp-00ah] ; 03 5e f6 14706 14717 mov dx, bx ; 89 da … … 14708 14719 movzx ax, byte [bp-008h] ; 0f b6 46 f8 14709 14720 cmp dx, ax ; 39 c2 14710 jbe near 09b 70h ; 0f 86 3e ff14721 jbe near 09b88h ; 0f 86 3e ff 14711 14722 cmp si, strict byte 0ffffh ; 83 fe ff 14712 jne short 09c 3bh ; 75 0414723 jne short 09c53h ; 75 04 14713 14724 mov ax, bx ; 89 d8 14714 jmp short 09c 3eh ; eb 0314725 jmp short 09c56h ; eb 03 14715 14726 mov ax, strict word 0ffffh ; b8 ff ff 14716 14727 lea sp, [bp-004h] ; 8d 66 fc … … 14719 14730 pop bp ; 5d 14720 14731 retn ; c3 14721 xor bx, word [di-062b3h] ; 33 9d 4d 9d 14722 pushaw ; 60 14732 dec bx ; 4b 14723 14733 popfw ; 9d 14724 jne short 09beah ; 75 9d 14725 mov byte [di-06265h], bl ; 88 9d 9b 9d 14726 _pci16_function: ; 0xf9c51 LB 0x1d7 14734 db 065h, 09dh 14735 ; gs popfw ; 65 9d 14736 js short 09c00h ; 78 9d 14737 lea bx, [di-06260h] ; 8d 9d a0 9d 14738 mov BL, strict byte 09dh ; b3 9d 14739 _pci16_function: ; 0xf9c69 LB 0x1d7 14727 14740 push bp ; 55 14728 14741 mov bp, sp ; 89 e5 … … 14738 14751 xor ah, ah ; 30 e4 14739 14752 cmp bx, strict byte 00003h ; 83 fb 03 14740 jc short 09c 8ah ; 72 1a14741 jbe short 09c e2h ; 76 7014753 jc short 09ca2h ; 72 1a 14754 jbe short 09cfah ; 76 70 14742 14755 cmp bx, strict byte 0000eh ; 83 fb 0e 14743 je near 09d afh ; 0f 84 36 0114756 je near 09dc7h ; 0f 84 36 01 14744 14757 cmp bx, strict byte 00008h ; 83 fb 08 14745 jc near 09 df4h ; 0f 82 74 0114758 jc near 09e0ch ; 0f 82 74 01 14746 14759 cmp bx, strict byte 0000dh ; 83 fb 0d 14747 jbe near 09d 07h ; 0f 86 80 0014748 jmp near 09 df4h ; e9 6a 0114760 jbe near 09d1fh ; 0f 86 80 00 14761 jmp near 09e0ch ; e9 6a 01 14749 14762 cmp bx, strict byte 00002h ; 83 fb 02 14750 je short 09c b2h ; 74 2314763 je short 09ccah ; 74 23 14751 14764 cmp bx, strict byte 00001h ; 83 fb 01 14752 jne near 09 df4h ; 0f 85 5e 0114765 jne near 09e0ch ; 0f 85 5e 01 14753 14766 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 14754 14767 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 14756 14769 mov word [bp+018h], 04350h ; c7 46 18 50 43 14757 14770 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 14758 jmp near 09e 21h ; e9 6f 0114771 jmp near 09e39h ; e9 6f 01 14759 14772 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 14760 jne short 09c beh ; 75 0614773 jne short 09cd6h ; 75 06 14761 14774 or ah, 083h ; 80 cc 83 14762 jmp near 09e 1ah ; e9 5c 0114775 jmp near 09e32h ; e9 5c 01 14763 14776 mov bx, word [bp+008h] ; 8b 5e 08 14764 14777 mov dx, word [bp+01ch] ; 8b 56 1c 14765 14778 mov ax, word [bp+018h] ; 8b 46 18 14766 14779 xor cx, cx ; 31 c9 14767 call 09b 5ah ; e8 8e fe14780 call 09b72h ; e8 8e fe 14768 14781 cmp ax, strict word 0ffffh ; 3d ff ff 14769 jne short 09c dch ; 75 0b14782 jne short 09cf4h ; 75 0b 14770 14783 mov ax, word [bp+020h] ; 8b 46 20 14771 14784 xor ah, ah ; 30 e4 14772 14785 or ah, 086h ; 80 cc 86 14773 jmp near 09e 1ah ; e9 3e 0114786 jmp near 09e32h ; e9 3e 01 14774 14787 mov word [bp+014h], ax ; 89 46 14 14775 jmp near 09e 21h ; e9 3f 0114788 jmp near 09e39h ; e9 3f 01 14776 14789 mov bx, word [bp+008h] ; 8b 5e 08 14777 14790 mov ax, word [bp+01ch] ; 8b 46 1c 14778 14791 mov dx, word [bp+01eh] ; 8b 56 1e 14779 14792 mov cx, strict word 00001h ; b9 01 00 14780 call 09b 5ah ; e8 69 fe14793 call 09b72h ; e8 69 fe 14781 14794 cmp ax, strict word 0ffffh ; 3d ff ff 14782 jne short 09d 01h ; 75 0b14795 jne short 09d19h ; 75 0b 14783 14796 mov ax, word [bp+020h] ; 8b 46 20 14784 14797 xor ah, ah ; 30 e4 14785 14798 or ah, 086h ; 80 cc 86 14786 jmp near 09e 1ah ; e9 19 0114799 jmp near 09e32h ; e9 19 01 14787 14800 mov word [bp+014h], ax ; 89 46 14 14788 jmp near 09e 21h ; e9 1a 0114801 jmp near 09e39h ; e9 1a 01 14789 14802 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 14790 jc short 09d 14h ; 72 0614803 jc short 09d2ch ; 72 06 14791 14804 or ah, 087h ; 80 cc 87 14792 jmp near 09e 1ah ; e9 06 0114805 jmp near 09e32h ; e9 06 01 14793 14806 mov dx, word [bp+004h] ; 8b 56 04 14794 14807 mov ax, word [bp+014h] ; 8b 46 14 14795 call 09b 36h ; e8 19 fe14808 call 09b4eh ; e8 19 fe 14796 14809 mov bx, word [bp+020h] ; 8b 5e 20 14797 14810 xor bh, bh ; 30 ff 14798 14811 sub bx, strict byte 00008h ; 83 eb 08 14799 14812 cmp bx, strict byte 00005h ; 83 fb 05 14800 jnbe near 09e 21h ; 0f 87 f5 0014813 jnbe near 09e39h ; 0f 87 f5 00 14801 14814 add bx, bx ; 01 db 14802 jmp word [cs:bx-063 bbh] ; 2e ff a7 459c14815 jmp word [cs:bx-063a3h] ; 2e ff a7 5d 9c 14803 14816 mov bx, word [bp+01ch] ; 8b 5e 1c 14804 14817 xor bl, bl ; 30 db … … 14811 14824 or bx, ax ; 09 c3 14812 14825 mov word [bp+01ch], bx ; 89 5e 1c 14813 jmp near 09e 21h ; e9 d4 0014826 jmp near 09e39h ; e9 d4 00 14814 14827 mov dx, word [bp+004h] ; 8b 56 04 14815 14828 xor dh, dh ; 30 f6 … … 14818 14831 in ax, DX ; ed 14819 14832 mov word [bp+01ch], ax ; 89 46 1c 14820 jmp near 09e 21h ; e9 c1 0014833 jmp near 09e39h ; e9 c1 00 14821 14834 mov dx, 00cfch ; ba fc 0c 14822 14835 in eax, DX ; 66 ed … … 14827 14840 mov word [bp+01ch], ax ; 89 46 1c 14828 14841 mov word [bp+01eh], dx ; 89 56 1e 14829 jmp near 09e 21h ; e9 ac 0014842 jmp near 09e39h ; e9 ac 00 14830 14843 mov ax, word [bp+01ch] ; 8b 46 1c 14831 14844 mov dx, word [bp+004h] ; 8b 56 04 … … 14834 14847 add dx, 00cfch ; 81 c2 fc 0c 14835 14848 out DX, AL ; ee 14836 jmp near 09e 21h ; e9 99 0014849 jmp near 09e39h ; e9 99 00 14837 14850 mov ax, word [bp+01ch] ; 8b 46 1c 14838 14851 mov dx, word [bp+004h] ; 8b 56 04 … … 14841 14854 add dx, 00cfch ; 81 c2 fc 0c 14842 14855 out DX, ax ; ef 14843 jmp near 09e 21h ; e9 86 0014856 jmp near 09e39h ; e9 86 00 14844 14857 mov ax, word [bp+01ch] ; 8b 46 1c 14845 14858 mov cx, word [bp+01eh] ; 8b 4e 1e … … 14850 14863 ; mov ax, cx ; 8b c1 14851 14864 out DX, eax ; 66 ef 14852 jmp short 09e 21h ; eb 7214865 jmp short 09e39h ; eb 72 14853 14866 mov bx, word [bp+004h] ; 8b 5e 04 14854 14867 mov es, [bp+026h] ; 8e 46 26 14855 14868 mov word [bp-008h], bx ; 89 5e f8 14856 14869 mov [bp-006h], es ; 8c 46 fa 14857 mov cx, word [0f 4a0h] ; 8b 0e a0 f414870 mov cx, word [0f370h] ; 8b 0e 70 f3 14858 14871 cmp cx, word [es:bx] ; 26 3b 0f 14859 jbe short 09d d5h ; 76 1114872 jbe short 09dedh ; 76 11 14860 14873 mov ax, word [bp+020h] ; 8b 46 20 14861 14874 xor ah, ah ; 30 e4 … … 14863 14876 mov word [bp+020h], ax ; 89 46 20 14864 14877 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 14865 jmp short 09 de9h ; eb 1414878 jmp short 09e01h ; eb 14 14866 14879 les di, [es:bx+002h] ; 26 c4 7f 02 14867 mov si, 0f 2c0h ; be c0 f214880 mov si, 0f190h ; be 90 f1 14868 14881 mov dx, ds ; 8c da 14869 14882 push DS ; 1e … … 14872 14885 pop DS ; 1f 14873 14886 mov word [bp+014h], 00a00h ; c7 46 14 00 0a 14874 mov ax, word [0f 4a0h] ; a1 a0 f414887 mov ax, word [0f370h] ; a1 70 f3 14875 14888 les bx, [bp-008h] ; c4 5e f8 14876 14889 mov word [es:bx], ax ; 26 89 07 14877 jmp short 09e 21h ; eb 2d14890 jmp short 09e39h ; eb 2d 14878 14891 mov bx, 00db2h ; bb b2 0d 14879 14892 mov cx, ds ; 8c d9 14880 14893 mov ax, strict word 00004h ; b8 04 00 14881 call 01a2ah ; e8 2b7c14894 call 01a2ah ; e8 13 7c 14882 14895 mov ax, word [bp+014h] ; 8b 46 14 14883 14896 push ax ; 50 … … 14886 14899 push 00d6eh ; 68 6e 0d 14887 14900 push strict byte 00004h ; 6a 04 14888 call 01a6bh ; e8 5c7c14901 call 01a6bh ; e8 44 7c 14889 14902 add sp, strict byte 00008h ; 83 c4 08 14890 14903 mov ax, word [bp+020h] ; 8b 46 20 … … 14898 14911 pop bp ; 5d 14899 14912 retn ; c3 14900 pci_find_classcode_: ; 0xf9e 28LB 0x2b14913 pci_find_classcode_: ; 0xf9e40 LB 0x2b 14901 14914 push bp ; 55 14902 14915 mov bp, sp ; 89 e5 … … 14913 14926 int 01ah ; cd 1a 14914 14927 cmp ah, 000h ; 80 fc 00 14915 je near 09e 49h ; 0f 84 03 0014928 je near 09e61h ; 0f 84 03 00 14916 14929 mov bx, strict word 0ffffh ; bb ff ff 14917 14930 mov ax, bx ; 89 d8 … … 14922 14935 pop bp ; 5d 14923 14936 retn ; c3 14924 pci_read_config_byte_: ; 0xf9e 53LB 0x2414937 pci_read_config_byte_: ; 0xf9e6b LB 0x24 14925 14938 push bp ; 55 14926 14939 mov bp, sp ; 89 e5 … … 14941 14954 pop bp ; 5d 14942 14955 retn ; c3 14943 pci_read_config_word_: ; 0xf9e 77LB 0x2214956 pci_read_config_word_: ; 0xf9e8f LB 0x22 14944 14957 push bp ; 55 14945 14958 mov bp, sp ; 89 e5 … … 14960 14973 pop bp ; 5d 14961 14974 retn ; c3 14962 pci_read_config_dword_: ; 0xf9e 99LB 0x2714975 pci_read_config_dword_: ; 0xf9eb1 LB 0x27 14963 14976 push bp ; 55 14964 14977 mov bp, sp ; 89 e5 … … 14981 14994 pop bp ; 5d 14982 14995 retn ; c3 14983 vds_is_present_: ; 0xf9ec0 LB 0x1d 14996 pci_write_config_word_: ; 0xf9ed8 LB 0x1c 14997 push bp ; 55 14998 mov bp, sp ; 89 e5 14999 push di ; 57 15000 movzx di, bl ; 0f b6 fb 15001 xor ah, ah ; 30 e4 15002 sal ax, 008h ; c1 e0 08 15003 movzx bx, dl ; 0f b6 da 15004 or bx, ax ; 09 c3 15005 mov ax, 0b10ch ; b8 0c b1 15006 int 01ah ; cd 1a 15007 lea sp, [bp-002h] ; 8d 66 fe 15008 pop di ; 5f 15009 pop bp ; 5d 15010 retn ; c3 15011 vds_is_present_: ; 0xf9ef4 LB 0x1d 14984 15012 push bx ; 53 14985 15013 push bp ; 55 … … 14989 15017 mov es, ax ; 8e c0 14990 15018 test byte [es:bx], 020h ; 26 f6 07 20 14991 je short 09 ed8h ; 74 0615019 je short 09f0ch ; 74 06 14992 15020 mov ax, strict word 00001h ; b8 01 00 14993 15021 pop bp ; 5d … … 14998 15026 pop bx ; 5b 14999 15027 retn ; c3 15000 vds_real_to_lin_: ; 0xf9 eddLB 0x1e15028 vds_real_to_lin_: ; 0xf9f11 LB 0x1e 15001 15029 push bx ; 53 15002 15030 push cx ; 51 … … 15009 15037 sal ax, 1 ; d1 e0 15010 15038 rcl dx, 1 ; d1 d2 15011 loop 09 eebh ; e2 fa15039 loop 09f1fh ; e2 fa 15012 15040 xor cx, cx ; 31 c9 15013 15041 add ax, bx ; 01 d8 … … 15017 15045 pop bx ; 5b 15018 15046 retn ; c3 15019 vds_build_sg_list_: ; 0xf9 efbLB 0x7915047 vds_build_sg_list_: ; 0xf9f2f LB 0x79 15020 15048 push bp ; 55 15021 15049 mov bp, sp ; 89 e5 … … 15031 15059 mov bx, word [bp+006h] ; 8b 5e 06 15032 15060 mov word [es:di+002h], bx ; 26 89 5d 02 15033 call 09 eddh ; e8 c3 ff15061 call 09f11h ; e8 c3 ff 15034 15062 mov es, si ; 8e c6 15035 15063 mov word [es:di+004h], ax ; 26 89 45 04 15036 15064 mov word [es:di+006h], dx ; 26 89 55 06 15037 15065 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15038 call 09e c0h ; e8 93 ff15066 call 09ef4h ; e8 93 ff 15039 15067 test ax, ax ; 85 c0 15040 je short 09f 44h ; 74 1315068 je short 09f78h ; 74 13 15041 15069 mov es, si ; 8e c6 15042 15070 mov ax, 08105h ; b8 05 81 15043 15071 mov dx, strict word 00000h ; ba 00 00 15044 15072 int 04bh ; cd 4b 15045 jc near 09f 41h ; 0f 82 02 0015073 jc near 09f75h ; 0f 82 02 00 15046 15074 db 032h, 0c0h 15047 15075 ; xor al, al ; 32 c0 15048 15076 cbw ; 98 15049 jmp short 09f 6bh ; eb 2715077 jmp short 09f9fh ; eb 27 15050 15078 mov es, si ; 8e c6 15051 15079 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15064 15092 pop bp ; 5d 15065 15093 retn 00004h ; c2 04 00 15066 vds_free_sg_list_: ; 0xf9f 74 LB 0x3c15094 vds_free_sg_list_: ; 0xf9fa8 LB 0x38 15067 15095 push bp ; 55 15068 15096 mov bp, sp ; 89 e5 … … 15070 15098 push di ; 57 15071 15099 mov bx, ax ; 89 c3 15072 call 09e c0h ; e8 42 ff15100 call 09ef4h ; e8 42 ff 15073 15101 test ax, ax ; 85 c0 15074 je short 09f 95h ; 74 1315102 je short 09fc9h ; 74 13 15075 15103 mov di, bx ; 89 df 15076 15104 mov es, dx ; 8e c2 … … 15078 15106 mov dx, strict word 00000h ; ba 00 00 15079 15107 int 04bh ; cd 4b 15080 jc near 09f 94h ; 0f 82 02 0015108 jc near 09fc8h ; 0f 82 02 00 15081 15109 db 032h, 0c0h 15082 15110 ; xor al, al ; 32 c0 … … 15089 15117 pop bp ; 5d 15090 15118 retn ; c3 15091 times 0x cdb 015092 __U4M: ; 0xf9f b0 LB 0x4015119 times 0x8 db 0 15120 __U4M: ; 0xf9fe0 LB 0x40 15093 15121 pushfw ; 9c 15094 15122 push eax ; 66 50 … … 15116 15144 retn ; c3 15117 15145 times 0xf db 0 15118 __U4D: ; 0xf 9ff0 LB 0x4015146 __U4D: ; 0xfa020 LB 0x40 15119 15147 pushfw ; 9c 15120 15148 push eax ; 66 50 … … 15147 15175 retn ; c3 15148 15176 times 0x7 db 0 15149 __U8RS: ; 0xfa0 30 LB 0x1015177 __U8RS: ; 0xfa060 LB 0x10 15150 15178 test si, si ; 85 f6 15151 je short 0a0 3fh ; 74 0b15179 je short 0a06fh ; 74 0b 15152 15180 shr ax, 1 ; d1 e8 15153 15181 rcr bx, 1 ; d1 db … … 15155 15183 rcr dx, 1 ; d1 da 15156 15184 dec si ; 4e 15157 jne short 0a0 34h ; 75 f515185 jne short 0a064h ; 75 f5 15158 15186 retn ; c3 15159 __U8LS: ; 0xfa0 40 LB 0x1015187 __U8LS: ; 0xfa070 LB 0x10 15160 15188 test si, si ; 85 f6 15161 je short 0a0 4fh ; 74 0b15189 je short 0a07fh ; 74 0b 15162 15190 sal dx, 1 ; d1 e2 15163 15191 rcl cx, 1 ; d1 d1 … … 15165 15193 rcl ax, 1 ; d1 d0 15166 15194 dec si ; 4e 15167 jne short 0a0 44h ; 75 f515195 jne short 0a074h ; 75 f5 15168 15196 retn ; c3 15169 _fmemset_: ; 0xfa0 50 LB 0x1015197 _fmemset_: ; 0xfa080 LB 0x10 15170 15198 push di ; 57 15171 15199 mov es, dx ; 8e c2 … … 15178 15206 retn ; c3 15179 15207 times 0x3 db 0 15180 _fmemcpy_: ; 0xfa0 60 LB 0x3a15208 _fmemcpy_: ; 0xfa090 LB 0x3a 15181 15209 push bp ; 55 15182 15210 db 08bh, 0ech … … 15200 15228 pop bp ; 5d 15201 15229 retn ; c3 15202 add byte [bx+si], al ; 00 00 15203 add byte [bx+si], al ; 00 00 15204 add byte [bx+si], al ; 00 00 15205 mov AL, strict byte 0a0h ; b0 a0 15206 mov DL, strict byte 0a0h ; b2 a0 15207 mov DH, strict byte 0a0h ; b6 a0 15208 mov DH, strict byte 0a0h ; b6 a0 15209 mov DH, strict byte 0a0h ; b6 a0 15210 mov ax, 0b8a0h ; b8 a0 b8 15211 mov AL, byte [0a0bah] ; a0 ba a0 15212 mov si, 0bea0h ; be a0 be 15213 mov AL, byte [0a0c0h] ; a0 c0 a0 15214 lds sp, [bx+si-05f39h] ; c5 a0 c7 a0 15215 apm_worker: ; 0xfa09a LB 0x3a 15230 db 000h, 000h, 000h, 000h, 000h, 000h, 0e0h, 0a0h, 0e2h, 0a0h, 0e6h, 0a0h, 0e6h, 0a0h, 0e6h, 0a0h 15231 db 0e8h, 0a0h, 0e8h, 0a0h, 0eah, 0a0h, 0eeh, 0a0h, 0eeh, 0a0h, 0f0h, 0a0h, 0f5h, 0a0h, 0f7h, 0a0h 15232 apm_worker: ; 0xfa0ca LB 0x3a 15216 15233 sti ; fb 15217 15234 push ax ; 50 … … 15225 15242 pop ax ; 58 15226 15243 mov AH, strict byte 053h ; b4 53 15227 jnc short 0a 0d0h ; 73 2515228 jmp word [cs:bp-05f 80h] ; 2e ff a6 80 a015229 jmp short 0a0 ceh ; eb 1c15244 jnc short 0a100h ; 73 25 15245 jmp word [cs:bp-05f50h] ; 2e ff a6 b0 a0 15246 jmp short 0a0feh ; eb 1c 15230 15247 sti ; fb 15231 15248 hlt ; f4 15232 jmp short 0a0 ceh ; eb 1815233 jmp short 0a0 ceh ; eb 1615234 jmp short 0a 0d0h ; eb 1615249 jmp short 0a0feh ; eb 18 15250 jmp short 0a0feh ; eb 16 15251 jmp short 0a100h ; eb 16 15235 15252 mov AH, strict byte 080h ; b4 80 15236 jmp short 0a 0d2h ; eb 1415237 jmp short 0a 0d0h ; eb 1015253 jmp short 0a102h ; eb 14 15254 jmp short 0a100h ; eb 10 15238 15255 mov ax, 00102h ; b8 02 01 15239 jmp short 0a0 ceh ; eb 0915240 jmp short 0a0 ceh ; eb 0715256 jmp short 0a0feh ; eb 09 15257 jmp short 0a0feh ; eb 07 15241 15258 mov BL, strict byte 000h ; b3 00 15242 15259 mov cx, strict word 00000h ; b9 00 00 15243 jmp short 0a0 ceh ; eb 0015260 jmp short 0a0feh ; eb 00 15244 15261 clc ; f8 15245 15262 retn ; c3 … … 15247 15264 stc ; f9 15248 15265 retn ; c3 15249 apm_pm16_entry: ; 0xfa 0d4 LB 0x1115266 apm_pm16_entry: ; 0xfa104 LB 0x11 15250 15267 mov AH, strict byte 002h ; b4 02 15251 15268 push DS ; 1e … … 15255 15272 add bp, strict byte 00008h ; 83 c5 08 15256 15273 mov ds, bp ; 8e dd 15257 call 0a0 9ah ; e8 b8 ff15274 call 0a0cah ; e8 b8 ff 15258 15275 pop bp ; 5d 15259 15276 pop DS ; 1f 15260 15277 retf ; cb 15261 15278 15262 ; Padding 0x3 91b bytes at 0xfa0e515263 times 14 619db 015279 ; Padding 0x38eb bytes at 0xfa115 15280 times 14571 db 0 15264 15281 15265 15282 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 15308 15325 add bp, strict byte 00008h ; 83 c5 08 15309 15326 push ebp ; 66 55 15310 mov bp, 0a 0d6h ; bd d6 a015327 mov bp, 0a106h ; bd 06 a1 15311 15328 add byte [bx+si], al ; 00 00 15312 15329 push ebp ; 66 55 … … 15640 15657 mov bx, ax ; 89 c3 15641 15658 mov edx, dword [di] ; 66 8b 15 15642 mov AL, byte [000f4h] ; a0 f4 00 15643 add byte [bp+026h], ah ; 00 66 26 15644 cmp dx, word [bx+si] ; 3b 10 15659 jo short 0dd57h ; 70 f3 15660 add byte [bx+si], al ; 00 00 15661 db 066h, 026h, 03bh, 010h 15662 ; cmp edx, dword [es:bx+si] ; 66 26 3b 10 15645 15663 jbe short 0dd7eh ; 76 12 15646 15664 mov ax, word [di+024h] ; 8b 45 24 … … 15657 15675 mov di, word [es:bx+si+002h] ; 26 8b 78 02 15658 15676 mov dx, ds ; 8c da 15659 mov si, 0f 2c0h ; be c0 f215677 mov si, 0f190h ; be 90 f1 15660 15678 add byte [bx+si], al ; 00 00 15661 15679 mov es, [di-014h] ; 8e 45 ec … … 15666 15684 pop DS ; 1f 15667 15685 mov dword [di+018h], strict dword 0a1660a00h ; 66 c7 45 18 00 0a 66 a1 15668 mov AL, byte [000f4h] ; a0 f4 00 15669 add byte [bp-00fbbh], cl ; 00 8e 45 f0 15686 jo short 0dd9bh ; 70 f3 15687 add byte [bx+si], al ; 00 00 15688 mov es, [di-010h] ; 8e 45 f0 15670 15689 db 066h, 026h, 089h, 003h 15671 15690 ; mov dword [es:bp+di], eax ; 66 26 89 03 … … 15867 15886 call 0e778h ; e8 e9 05 15868 15887 call 0f13bh ; e8 a9 0f 15869 call 0f1 c0h ; e8 2b 1015888 call 0f166h ; e8 d1 0f 15870 15889 mov ax, 0fe6eh ; b8 6e fe 15871 15890 mov word [00068h], ax ; a3 68 00 … … 16789 16808 pop eax ; 66 58 16790 16809 retn ; c3 16791 pcibios_init_iomem_bases: ; 0xff13b LB 0x1 616810 pcibios_init_iomem_bases: ; 0xff13b LB 0x12 16792 16811 push bp ; 55 16793 16812 db 08bh, 0ech 16794 16813 ; mov bp, sp ; 8b ec 16795 mov eax, strict dword 0e0000000h ; 66 b8 00 00 00 e0 16796 push eax ; 66 50 16797 mov ax, 0d000h ; b8 00 d0 16798 push ax ; 50 16799 mov ax, strict word 00010h ; b8 10 00 16800 push ax ; 50 16801 mov bx, strict word 00008h ; bb 08 00 16802 pci_init_io_loop1: ; 0xff151 LB 0xe 16803 mov DL, strict byte 000h ; b2 00 16804 call 0f120h ; e8 ca ff 16805 mov dx, 00cfch ; ba fc 0c 16806 in ax, DX ; ed 16807 cmp ax, strict byte 0ffffh ; 83 f8 ff 16808 je short 0f198h ; 74 39 16809 enable_iomem_space: ; 0xff15f LB 0x39 16810 mov DL, strict byte 004h ; b2 04 16811 call 0f120h ; e8 bc ff 16812 mov dx, 00cfch ; ba fc 0c 16813 in AL, DX ; ec 16814 or AL, strict byte 007h ; 0c 07 16815 out DX, AL ; ee 16816 mov DL, strict byte 000h ; b2 00 16817 call 0f120h ; e8 b0 ff 16818 mov dx, 00cfch ; ba fc 0c 16819 in eax, DX ; 66 ed 16820 cmp eax, strict dword 020001022h ; 66 3d 22 10 00 20 16821 jne short 0f198h ; 75 1b 16822 mov DL, strict byte 010h ; b2 10 16823 call 0f120h ; e8 9e ff 16824 mov dx, 00cfch ; ba fc 0c 16825 in ax, DX ; ed 16826 and ax, strict byte 0fffch ; 83 e0 fc 16827 db 08bh, 0c8h 16828 ; mov cx, ax ; 8b c8 16829 db 08bh, 0d1h 16830 ; mov dx, cx ; 8b d1 16831 add dx, strict byte 00014h ; 83 c2 14 16832 in ax, DX ; ed 16833 db 08bh, 0d1h 16834 ; mov dx, cx ; 8b d1 16835 add dx, strict byte 00018h ; 83 c2 18 16836 in eax, DX ; 66 ed 16837 next_pci_dev: ; 0xff198 LB 0xf 16838 mov byte [bp-008h], 010h ; c6 46 f8 10 16839 inc bx ; 43 16840 cmp bx, 00100h ; 81 fb 00 01 16841 jne short 0f151h ; 75 ae 16814 mov eax, strict dword 00124f9fdh ; 66 b8 fd f9 24 01 16815 mov dx, 00410h ; ba 10 04 16816 out DX, eax ; 66 ef 16842 16817 db 08bh, 0e5h 16843 16818 ; mov sp, bp ; 8b e5 16844 16819 pop bp ; 5d 16845 16820 retn ; c3 16846 pcibios_init_set_elcr: ; 0xff1 a7LB 0xc16821 pcibios_init_set_elcr: ; 0xff14d LB 0xc 16847 16822 push ax ; 50 16848 16823 push cx ; 51 16849 16824 mov dx, 004d0h ; ba d0 04 16850 16825 test AL, strict byte 008h ; a8 08 16851 je short 0f1 b3h ; 74 0316826 je short 0f159h ; 74 03 16852 16827 inc dx ; 42 16853 16828 and AL, strict byte 007h ; 24 07 16854 is_master_pic: ; 0xff1 b3LB 0xd16829 is_master_pic: ; 0xff159 LB 0xd 16855 16830 db 08ah, 0c8h 16856 16831 ; mov cl, al ; 8a c8 … … 16864 16839 pop ax ; 58 16865 16840 retn ; c3 16866 pcibios_init_irqs: ; 0xff1 c0 LB 0x5316841 pcibios_init_irqs: ; 0xff166 LB 0x2a 16867 16842 push DS ; 1e 16868 16843 push bp ; 55 16869 16844 mov ax, 0f000h ; b8 00 f0 16870 16845 mov ds, ax ; 8e d8 16871 mov dx, 004d0h ; ba d0 0416872 mov AL, strict byte 000h ; b0 0016873 out DX, AL ; ee16874 inc dx ; 4216875 out DX, AL ; ee16876 mov si, 0f2a0h ; be a0 f216877 mov bh, byte [si+008h] ; 8a 7c 0816878 mov bl, byte [si+009h] ; 8a 5c 0916879 mov DL, strict byte 000h ; b2 0016880 call 0f120h ; e8 43 ff16881 mov dx, 00cfch ; ba fc 0c16882 in eax, DX ; 66 ed16883 cmp eax, dword [si+00ch] ; 66 3b 44 0c16884 jne near 0f290h ; 0f 85 a6 0016885 mov dl, byte [si+022h] ; 8a 54 2216886 call 0f120h ; e8 30 ff16887 push bx ; 5316888 mov dx, 00cfch ; ba fc 0c16889 mov ax, 08080h ; b8 80 8016890 out DX, ax ; ef16891 add dx, strict byte 00002h ; 83 c2 0216892 out DX, ax ; ef16893 mov ax, word [si+006h] ; 8b 44 0616894 sub ax, strict byte 00020h ; 83 e8 2016895 shr ax, 004h ; c1 e8 0416896 db 08bh, 0c8h16897 ; mov cx, ax ; 8b c816898 add si, strict byte 00020h ; 83 c6 2016899 db 08bh, 0ech16900 ; mov bp, sp ; 8b ec16901 mov ax, 0f11ch ; b8 1c f116902 push ax ; 5016903 db 033h, 0c0h16904 ; xor ax, ax ; 33 c016905 push ax ; 5016906 pci_init_irq_loop1: ; 0xff213 LB 0x516907 mov bh, byte [si] ; 8a 3c16908 mov bl, byte [si+001h] ; 8a 5c 0116909 pci_init_irq_loop2: ; 0xff218 LB 0x1516910 mov DL, strict byte 000h ; b2 0016911 call 0f120h ; e8 03 ff16912 mov dx, 00cfch ; ba fc 0c16913 in ax, DX ; ed16914 cmp ax, strict byte 0ffffh ; 83 f8 ff16915 jne short 0f22dh ; 75 0716916 test bl, 007h ; f6 c3 0716917 je short 0f284h ; 74 5916918 jmp short 0f27ah ; eb 4d16919 pci_test_int_pin: ; 0xff22d LB 0x3c16920 mov DL, strict byte 03ch ; b2 3c16921 call 0f120h ; e8 ee fe16922 mov dx, 00cfdh ; ba fd 0c16923 in AL, DX ; ec16924 and AL, strict byte 007h ; 24 0716925 je short 0f27ah ; 74 4016926 db 0feh, 0c8h16927 ; dec al ; fe c816928 mov DL, strict byte 003h ; b2 0316929 mul dl ; f6 e216930 add AL, strict byte 002h ; 04 0216931 db 032h, 0e4h16932 ; xor ah, ah ; 32 e416933 db 08bh, 0d8h16934 ; mov bx, ax ; 8b d816935 mov al, byte [bx+si] ; 8a 0016936 db 08ah, 0d0h16937 ; mov dl, al ; 8a d016938 mov bx, word [byte bp+000h] ; 8b 5e 0016939 call 0f120h ; e8 d0 fe16940 mov dx, 00cfch ; ba fc 0c16941 and AL, strict byte 003h ; 24 0316942 db 002h, 0d0h16943 ; add dl, al ; 02 d016944 in AL, DX ; ec16945 cmp AL, strict byte 080h ; 3c 8016946 jc short 0f269h ; 72 0d16947 mov bx, word [bp-002h] ; 8b 5e fe16948 mov al, byte [bx] ; 8a 0716949 out DX, AL ; ee16950 inc bx ; 4316951 mov word [bp-002h], bx ; 89 5e fe16952 call 0f1a7h ; e8 3e ff16953 pirq_found: ; 0xff269 LB 0x1116954 mov bh, byte [si] ; 8a 3c16955 mov bl, byte [si+001h] ; 8a 5c 0116956 add bl, byte [bp-003h] ; 02 5e fd16957 mov DL, strict byte 03ch ; b2 3c16958 call 0f120h ; e8 aa fe16959 mov dx, 00cfch ; ba fc 0c16960 out DX, AL ; ee16961 next_pci_func: ; 0xff27a LB 0xa16962 inc byte [bp-003h] ; fe 46 fd16963 db 0feh, 0c3h16964 ; inc bl ; fe c316965 test bl, 007h ; f6 c3 0716966 jne short 0f218h ; 75 9416967 next_pir_entry: ; 0xff284 LB 0xc16968 add si, strict byte 00010h ; 83 c6 1016969 mov byte [bp-003h], 000h ; c6 46 fd 0016970 loop 0f213h ; e2 8616971 db 08bh, 0e5h16972 ; mov sp, bp ; 8b e516973 pop bx ; 5b16974 pci_init_end: ; 0xff290 LB 0x3016975 16846 pop bp ; 5d 16976 16847 pop DS ; 1f 16977 16848 retn ; c3 16978 db 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 0fch, 024h, 050h, 049h 16979 db 052h, 000h, 001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h 16980 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h 16981 _pci_routing_table: ; 0xff2c0 LB 0x1e0 16849 and AL, strict byte 050h ; 24 50 16850 dec cx ; 49 16851 push dx ; 52 16852 add byte [bx+di], al ; 00 01 16853 add byte [bp+si], al ; 00 02 16854 add byte [bx+si], cl ; 00 08 16855 add byte [bx+si], al ; 00 00 16856 xchg byte [bx+si+07000h], al ; 86 80 00 70 16857 times 0xf db 0 16858 db 031h 16859 _pci_routing_table: ; 0xff190 LB 0x1e0 16982 16860 db 000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h 16983 16861 db 000h, 010h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 001h, 000h … … 17010 16888 db 000h, 0e8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 01ch, 000h 17011 16889 db 000h, 0f0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 01dh, 000h 17012 _pci_routing_table_size: ; 0xff 4a0 LB 0x217013 loopne 0f 4a3h ; e0 0117014 biosorg_check_before_or_at_0F83Fh: ; 0xff 4a2 LB 0x39f17015 times 0x 39d db 016890 _pci_routing_table_size: ; 0xff370 LB 0x2 16891 loopne 0f373h ; e0 01 16892 biosorg_check_before_or_at_0F83Fh: ; 0xff372 LB 0x4cf 16893 times 0x4cd db 0 17016 16894 db 'XM' 17017 16895 int12_handler: ; 0xff841 LB 0xc … … 17068 16946 popfw ; 9d 17069 16947 jmp short 0f8a7h ; eb 13 17070 call 09a 41h ; e8 aaa116948 call 09a59h ; e8 c2 a1 17071 16949 jmp short 0f88eh ; eb f5 17072 16950 int15_handler_mouse: ; 0xff899 LB 0x5 … … 17221 17099 cld ; fc 17222 17100 pushad ; 66 60 17223 call 09c 51h ; e8 d49d17101 call 09c69h ; e8 ec 9d 17224 17102 popad ; 66 61 17225 17103 pop DS ; 1f … … 17335 17213 cpu_reset: ; 0xffff0 LB 0x10 17336 17214 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 17337 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 3ah17215 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 098h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum
r67495 r67683 1 8754dcaf0f6dc65cc52733150d18ab66*VBoxPcBios386.rom1 06415a86773af2f396238f38b281aa40 *VBoxPcBios386.rom -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm
r67495 r67683 1190 1190 times 1144 db 0 1191 1191 1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e 18 class=CODE group=AUTO1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e48 class=CODE group=AUTO 1193 1193 rom_scan_: ; 0xf1600 LB 0x52 1194 1194 push bp ; 55 … … 1596 1596 mov bx, strict word 0000ah ; bb 0a 00 1597 1597 xor cx, cx ; 31 c9 1598 call 0a0 b0h ; e8 d3 871598 call 0a0e0h ; e8 03 88 1599 1599 mov word [bp-008h], ax ; 89 46 f8 1600 1600 mov cx, dx ; 89 d1 … … 1833 1833 mov dx, word [bp-026h] ; 8b 56 da 1834 1834 mov si, word [bp-01eh] ; 8b 76 e2 1835 call 0a 0e0h ; e8 c8 851835 call 0a110h ; e8 f8 85 1836 1836 mov ax, dx ; 89 d0 1837 1837 xor ah, dh ; 30 f4 … … 2294 2294 mov dx, word [es:si] ; 26 8b 14 2295 2295 mov si, strict word 00018h ; be 18 00 2296 call 0a 0e0h ; e8 4e 812296 call 0a110h ; e8 7e 81 2297 2297 xor dh, dh ; 30 f6 2298 2298 mov word [bp-014h], dx ; 89 56 ec … … 2304 2304 mov dx, word [es:si] ; 26 8b 14 2305 2305 mov si, strict word 00020h ; be 20 00 2306 call 0a 0e0h ; e8 2e 812306 call 0a110h ; e8 5e 81 2307 2307 mov bx, dx ; 89 d3 2308 2308 mov word [bp-010h], dx ; 89 56 f0 … … 2336 2336 mov dx, word [es:si] ; 26 8b 14 2337 2337 mov si, strict word 00008h ; be 08 00 2338 call 0a 0e0h ; e8 db 802338 call 0a110h ; e8 0b 81 2339 2339 mov word [bp-010h], dx ; 89 56 f0 2340 2340 mov bx, word [bp-016h] ; 8b 5e ea … … 2345 2345 mov dx, word [es:si] ; 26 8b 14 2346 2346 mov si, strict word 00018h ; be 18 00 2347 call 0a 0e0h ; e8 bd 802347 call 0a110h ; e8 ed 80 2348 2348 mov bl, dl ; 88 d3 2349 2349 and bl, 00fh ; 80 e3 0f … … 2923 2923 mov dx, word [es:di+036h] ; 26 8b 55 36 2924 2924 mov si, strict word 0000bh ; be 0b 00 2925 call 0a 0e0h ; e8 e1 7a2925 call 0a110h ; e8 11 7b 2926 2926 mov word [bp-02ah], dx ; 89 56 d6 2927 2927 mov word [bp-026h], cx ; 89 4e da … … 3215 3215 mov dx, word [bp-022h] ; 8b 56 de 3216 3216 mov si, strict word 00018h ; be 18 00 3217 call 0a 0e0h ; e8 04 783217 call 0a110h ; e8 34 78 3218 3218 xor dh, dh ; 30 f6 3219 3219 mov word [bp-014h], dx ; 89 56 ec … … 3223 3223 mov dx, word [bp-022h] ; 8b 56 de 3224 3224 mov si, strict word 00020h ; be 20 00 3225 call 0a 0e0h ; e8 ed 773225 call 0a110h ; e8 1d 78 3226 3226 mov bx, dx ; 89 d3 3227 3227 mov word [bp-024h], dx ; 89 56 dc … … 3257 3257 mov dx, word [bp-022h] ; 8b 56 de 3258 3258 mov si, strict word 00008h ; be 08 00 3259 call 0a 0e0h ; e8 99 773259 call 0a110h ; e8 c9 77 3260 3260 mov word [bp-00ch], ax ; 89 46 f4 3261 3261 mov word [bp-020h], bx ; 89 5e e0 … … 3264 3264 mov word [bp-024h], dx ; 89 56 dc 3265 3265 mov si, strict word 00010h ; be 10 00 3266 call 0a 0e0h ; e8 84 773266 call 0a110h ; e8 b4 77 3267 3267 mov word [bp-022h], dx ; 89 56 de 3268 3268 mov ax, dx ; 89 d0 … … 5613 5613 mov dx, ss ; 8c d2 5614 5614 lea ax, [bp-026h] ; 8d 46 da 5615 call 0a1 00h ; e8 61 625615 call 0a130h ; e8 91 62 5616 5616 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5617 5617 mov ax, strict word 00011h ; b8 11 00 … … 6105 6105 xor dl, dl ; 30 d2 6106 6106 xor cx, cx ; 31 c9 6107 call 0a0 90h ; e8 7c 5c6107 call 0a0c0h ; e8 ac 5c 6108 6108 xor bx, bx ; 31 db 6109 6109 add ax, si ; 01 f0 … … 6111 6111 mov bx, di ; 89 fb 6112 6112 xor cx, cx ; 31 c9 6113 call 0a0 90h ; e8 6f 5c6113 call 0a0c0h ; e8 9f 5c 6114 6114 mov bx, ax ; 89 c3 6115 6115 mov ax, word [bp-00ah] ; 8b 46 f6 … … 6146 6146 mov dx, ss ; 8c d2 6147 6147 lea ax, [bp-030h] ; 8d 46 d0 6148 call 0a1 00h ; e8 88 5c6148 call 0a130h ; e8 b8 5c 6149 6149 mov word [bp-030h], strict word 00028h ; c7 46 d0 28 00 6150 6150 mov ax, word [bp-00eh] ; 8b 46 f2 … … 6500 6500 mov dx, ss ; 8c d2 6501 6501 lea ax, [bp-02eh] ; 8d 46 d2 6502 call 0a1 00h ; e8 a0 586502 call 0a130h ; e8 d0 58 6503 6503 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 6504 6504 mov ax, word [bp-014h] ; 8b 46 ec … … 8503 8503 mov dx, word [bp+00ch] ; 8b 56 0c 8504 8504 mov si, strict word 00020h ; be 20 00 8505 call 0a 0e0h ; e8 3a 458505 call 0a110h ; e8 6a 45 8506 8506 test ax, ax ; 85 c0 8507 8507 jne short 05bb6h ; 75 0c … … 8541 8541 mov bx, strict word 0003fh ; bb 3f 00 8542 8542 xor cx, cx ; 31 c9 8543 call 0a0 90h ; e8 91 448543 call 0a0c0h ; e8 c1 44 8544 8544 mov bx, ax ; 89 c3 8545 8545 mov cx, dx ; 89 d1 8546 8546 mov ax, word [bp-004h] ; 8b 46 fc 8547 8547 mov dx, si ; 89 f2 8548 call 0a0 b0h ; e8 a5 448548 call 0a0e0h ; e8 d5 44 8549 8549 mov word [es:di+002h], ax ; 26 89 45 02 8550 8550 cmp ax, 00400h ; 3d 00 04 … … 8777 8777 mov bx, cx ; 89 cb 8778 8778 xor cx, cx ; 31 c9 8779 call 0a0 90h ; e8 70 428779 call 0a0c0h ; e8 a0 42 8780 8780 xor bx, bx ; 31 db 8781 8781 add ax, word [bp-00ch] ; 03 46 f4 … … 8783 8783 mov bx, word [bp-010h] ; 8b 5e f0 8784 8784 xor cx, cx ; 31 c9 8785 call 0a0 90h ; e8 61 428785 call 0a0c0h ; e8 91 42 8786 8786 xor bx, bx ; 31 db 8787 8787 add ax, di ; 01 f8 … … 8957 8957 mov bx, word [bp-00ch] ; 8b 5e f4 8958 8958 xor cx, cx ; 31 c9 8959 call 0a0 90h ; e8 8a 408959 call 0a0c0h ; e8 ba 40 8960 8960 mov bx, di ; 89 fb 8961 8961 xor cx, cx ; 31 c9 8962 call 0a0 90h ; e8 83 408962 call 0a0c0h ; e8 b3 40 8963 8963 mov word [bp-008h], ax ; 89 46 f8 8964 8964 mov word [bp-006h], dx ; 89 56 fa … … 9104 9104 xor bx, bx ; 31 db 9105 9105 mov si, strict word 00020h ; be 20 00 9106 call 0a 0f0h ; e8 48 3f9106 call 0a120h ; e8 78 3f 9107 9107 mov word [bp-00eh], ax ; 89 46 f2 9108 9108 mov word [bp-010h], bx ; 89 5e f0 … … 9269 9269 mov dx, si ; 89 f2 9270 9270 mov si, strict word 00020h ; be 20 00 9271 call 0a 0e0h ; e8 41 3d9271 call 0a110h ; e8 71 3d 9272 9272 mov bx, di ; 89 fb 9273 9273 mov word [es:bx+014h], dx ; 26 89 57 14 … … 9633 9633 mov bx, strict word 0000fh ; bb 0f 00 9634 9634 xor cx, cx ; 31 c9 9635 call 0a0 b0h ; e8 73 399635 call 0a0e0h ; e8 a3 39 9636 9636 mov cx, ax ; 89 c1 9637 9637 mov bx, dx ; 89 d3 … … 12678 12678 mov dx, ss ; 8c d2 12679 12679 lea ax, [bp-048h] ; 8d 46 b8 12680 call 0a1 00h ; e8 59 1d12680 call 0a130h ; e8 89 1d 12681 12681 mov byte [bp-048h], 09eh ; c6 46 b8 9e 12682 12682 mov byte [bp-047h], 010h ; c6 46 b9 10 … … 12816 12816 mov dx, word [bp-024h] ; 8b 56 dc 12817 12817 mov si, strict word 0000ch ; be 0c 00 12818 call 0a 0e0h ; e8 e9 1b12818 call 0a110h ; e8 19 1c 12819 12819 mov word [bp-02ah], ax ; 89 46 d6 12820 12820 mov word [bp-02ch], bx ; 89 5e d4 … … 12838 12838 mov dx, word [bp-024h] ; 8b 56 dc 12839 12839 mov si, strict word 00006h ; be 06 00 12840 call 0a 0e0h ; e8 a8 1b12840 call 0a110h ; e8 d8 1b 12841 12841 mov si, word [bp-018h] ; 8b 76 e8 12842 12842 add si, dx ; 01 d6 … … 12856 12856 mov dx, si ; 89 f2 12857 12857 mov si, strict word 00008h ; be 08 00 12858 call 0a 0e0h ; e8 78 1b12858 call 0a110h ; e8 a8 1b 12859 12859 mov word [bp-02eh], bx ; 89 5e d2 12860 12860 mov word [bp-030h], cx ; 89 4e d0 … … 12865 12865 mov dx, word [bp-01eh] ; 8b 56 e2 12866 12866 mov si, strict word 00010h ; be 10 00 12867 call 0a 0e0h ; e8 5d 1b12867 call 0a110h ; e8 8d 1b 12868 12868 mov si, word [bp-032h] ; 8b 76 ce 12869 12869 add si, dx ; 01 d6 … … 12890 12890 mov dx, word [bp-024h] ; 8b 56 dc 12891 12891 mov si, strict word 0000bh ; be 0b 00 12892 call 0a 0e0h ; e8 13 1b12892 call 0a110h ; e8 43 1b 12893 12893 mov si, dx ; 89 d6 12894 12894 mov word [bp-026h], cx ; 89 4e da … … 13383 13383 mov ax, 00080h ; b8 80 00 13384 13384 mov dx, word [bp-00ah] ; 8b 56 f6 13385 call 0a1 00h ; e8 8f 1613385 call 0a130h ; e8 bf 16 13386 13386 mov es, [bp-00ah] ; 8e 46 f6 13387 13387 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 13401 13401 mov dx, word [es:si] ; 26 8b 14 13402 13402 mov si, strict word 00008h ; be 08 00 13403 call 0a 0e0h ; e8 2b 1613403 call 0a110h ; e8 5b 16 13404 13404 mov es, [bp-00ah] ; 8e 46 f6 13405 13405 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 13412 13412 mov dx, word [es:si] ; 26 8b 14 13413 13413 mov si, strict word 00010h ; be 10 00 13414 call 0a 0e0h ; e8 05 1613414 call 0a110h ; e8 35 16 13415 13415 mov es, [bp-00ah] ; 8e 46 f6 13416 13416 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 13424 13424 mov dx, word [es:si] ; 26 8b 14 13425 13425 mov si, strict word 00018h ; be 18 00 13426 call 0a 0e0h ; e8 d9 1513426 call 0a110h ; e8 09 16 13427 13427 mov es, [bp-00ah] ; 8e 46 f6 13428 13428 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13435 13435 mov dx, word [es:si] ; 26 8b 14 13436 13436 mov si, strict word 00020h ; be 20 00 13437 call 0a 0e0h ; e8 b3 1513437 call 0a110h ; e8 e3 15 13438 13438 mov es, [bp-00ah] ; 8e 46 f6 13439 13439 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13446 13446 mov dx, word [es:si] ; 26 8b 14 13447 13447 mov si, strict word 00028h ; be 28 00 13448 call 0a 0e0h ; e8 8d 1513448 call 0a110h ; e8 bd 15 13449 13449 mov es, [bp-00ah] ; 8e 46 f6 13450 13450 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13459 13459 mov bx, word [bp-012h] ; 8b 5e ee 13460 13460 xor cx, cx ; 31 c9 13461 call 0a0 90h ; e8 0b 1513461 call 0a0c0h ; e8 3b 15 13462 13462 push dx ; 52 13463 13463 push ax ; 50 … … 13469 13469 mov ax, 0026ah ; b8 6a 02 13470 13470 mov dx, word [bp-00ah] ; 8b 56 f6 13471 call 0 9fdch ; e8 3b1413471 call 0a019h ; e8 78 14 13472 13472 mov es, [bp-00ah] ; 8e 46 f6 13473 13473 mov dx, word [es:di+0027eh] ; 26 8b 95 7e 02 … … 13533 13533 add ax, 0026ah ; 05 6a 02 13534 13534 mov dx, cx ; 89 ca 13535 call 0a0 53h ; e8 d7 1313535 call 0a090h ; e8 14 14 13536 13536 mov es, cx ; 8e c1 13537 13537 mov al, byte [es:bx+003h] ; 26 8a 47 03 … … 13619 13619 mov ax, di ; 89 f8 13620 13620 mov dx, word [bp-00eh] ; 8b 56 f2 13621 call 0a1 00h ; e8 d2 1313621 call 0a130h ; e8 02 14 13622 13622 lea ax, [di+00080h] ; 8d 85 80 00 13623 13623 mov cx, strict word 00040h ; b9 40 00 13624 13624 xor bx, bx ; 31 db 13625 13625 mov dx, word [bp-00eh] ; 8b 56 f2 13626 call 0a1 00h ; e8 c3 1313626 call 0a130h ; e8 f3 13 13627 13627 lea ax, [di+00200h] ; 8d 85 00 02 13628 13628 mov cx, strict word 00060h ; b9 60 00 13629 13629 xor bx, bx ; 31 db 13630 13630 mov dx, word [bp-00eh] ; 8b 56 f2 13631 call 0a1 00h ; e8 b4 1313631 call 0a130h ; e8 e4 13 13632 13632 mov al, byte [bp-00ah] ; 8a 46 f6 13633 13633 xor ah, ah ; 30 e4 … … 13806 13806 mov ax, si ; 89 f0 13807 13807 mov dx, word [bp-00ah] ; 8b 56 f6 13808 call 0a1 00h ; e8 4e 1213808 call 0a130h ; e8 7e 12 13809 13809 lea ax, [si+00080h] ; 8d 84 80 00 13810 13810 mov cx, strict word 00040h ; b9 40 00 13811 13811 xor bx, bx ; 31 db 13812 13812 mov dx, word [bp-00ah] ; 8b 56 f6 13813 call 0a1 00h ; e8 3f 1213813 call 0a130h ; e8 6f 12 13814 13814 lea di, [si+00200h] ; 8d bc 00 02 13815 13815 mov cx, strict word 00060h ; b9 60 00 … … 13817 13817 mov ax, di ; 89 f8 13818 13818 mov dx, word [bp-00ah] ; 8b 56 f6 13819 call 0a1 00h ; e8 2e 1213819 call 0a130h ; e8 5e 12 13820 13820 mov bl, byte [bp-008h] ; 8a 5e f8 13821 13821 xor bh, bh ; 30 ff … … 14158 14158 mov dx, word [bp+008h] ; 8b 56 08 14159 14159 xor cx, cx ; 31 c9 14160 call 0a0 b0h ; e8 84 0e14160 call 0a0e0h ; e8 b4 0e 14161 14161 mov word [es:si+00eh], ax ; 26 89 44 0e 14162 14162 xor di, di ; 31 ff … … 14184 14184 mov ax, 000c0h ; b8 c0 00 14185 14185 mov dx, word [bp-00ah] ; 8b 56 f6 14186 call 0a1 10h ; e8 92 0e14186 call 0a140h ; e8 c2 0e 14187 14187 mov es, [bp-008h] ; 8e 46 f8 14188 14188 mov word [es:si+018h], di ; 26 89 7c 18 … … 14918 14918 pop bp ; 5d 14919 14919 retn ; c3 14920 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0b ah, 09ah, 098h, 09ah, 09eh, 09ah, 0a4h, 09ah, 0aah14921 db 09ah, 0b 0h, 09ah, 0b6h, 09ah, 0bah, 09ah14922 _ahci_init: ; 0xf99d5 LB 0x1 1a14920 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 14923 14923 push bp ; 55 14924 14924 mov bp, sp ; 89 e5 14925 push si ; 56 14925 14926 push di ; 57 14926 sub sp, strict byte 000 0eh ; 83 ec 0e14927 sub sp, strict byte 00012h ; 83 ec 12 14927 14928 mov ax, 00601h ; b8 01 06 14928 14929 mov dx, strict word 00001h ; ba 01 00 14929 call 09f 0eh ; e8 290514930 call 09f2dh ; e8 47 05 14930 14931 mov dx, ax ; 89 c2 14931 14932 cmp ax, strict word 0ffffh ; 3d ff ff 14932 je short 09a3 5h ; 74 4914933 je short 09a36h ; 74 49 14933 14934 mov al, ah ; 88 e0 14934 mov byte [bp-00 6h], ah ; 88 66 fa14935 mov byte [bp-00 8h], dl ; 88 56 f814935 mov byte [bp-008h], ah ; 88 66 f8 14936 mov byte [bp-00ah], dl ; 88 56 f6 14936 14937 xor dh, ah ; 30 e6 14937 14938 xor ah, ah ; 30 e4 14938 14939 mov bx, strict word 00034h ; bb 34 00 14939 call 09f 16h ; e8 180514940 call 09f35h ; e8 36 05 14940 14941 mov cl, al ; 88 c1 14941 14942 test cl, cl ; 84 c9 14942 je short 09a3 8h ; 74 3414943 je short 09a39h ; 74 34 14943 14944 mov bl, cl ; 88 cb 14944 14945 xor bh, bh ; 30 ff 14945 mov al, byte [bp-00 8h] ; 8a 46 f814946 mov al, byte [bp-00ah] ; 8a 46 f6 14946 14947 mov byte [bp-00ch], al ; 88 46 f4 14947 14948 mov byte [bp-00bh], bh ; 88 7e f5 14948 mov al, byte [bp-00 6h] ; 8a 46 fa14949 mov byte [bp-01 0h], al ; 88 46 f014950 mov byte [bp-0 0fh], bh ; 88 7e f114949 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 14951 14952 mov dx, word [bp-00ch] ; 8b 56 f4 14952 mov ax, word [bp-01 0h] ; 8b 46 f014953 call 09f 16h ; e8 f3 0414953 mov ax, word [bp-012h] ; 8b 46 ee 14954 call 09f35h ; e8 11 05 14954 14955 cmp AL, strict byte 012h ; 3c 12 14955 je short 09a3 8h ; 74 1114956 je short 09a39h ; 74 11 14956 14957 mov bl, cl ; 88 cb 14957 14958 db 0feh, 0c3h … … 14959 14960 xor bh, bh ; 30 ff 14960 14961 mov dx, word [bp-00ch] ; 8b 56 f4 14961 mov ax, word [bp-01 0h] ; 8b 46 f014962 jmp short 099f bh ; eb c614963 jmp near 09 ae9h ; e9 b10014962 mov ax, word [bp-012h] ; 8b 46 ee 14963 jmp short 099fch ; eb c6 14964 jmp near 09b07h ; e9 ce 00 14964 14965 test cl, cl ; 84 c9 14965 je short 09a3 5h ; 74 f914966 je short 09a36h ; 74 f9 14966 14967 add cl, 002h ; 80 c1 02 14967 14968 mov bl, cl ; 88 cb 14968 14969 xor bh, bh ; 30 ff 14969 mov al, byte [bp-00 8h] ; 8a 46 f814970 mov al, byte [bp-00ah] ; 8a 46 f6 14970 14971 mov byte [bp-00eh], al ; 88 46 f2 14971 14972 mov byte [bp-00dh], bh ; 88 7e f3 14972 mov al, byte [bp-00 6h] ; 8a 46 fa14973 mov byte [bp-0 0ah], al ; 88 46 f614974 mov byte [bp-0 09h], bh ; 88 7e f714973 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 14975 14976 mov dx, word [bp-00eh] ; 8b 56 f2 14976 mov ax, word [bp-0 0ah] ; 8b 46 f614977 call 09f 16h ; e8 b80414977 mov ax, word [bp-014h] ; 8b 46 ec 14978 call 09f35h ; e8 d6 04 14978 14979 cmp AL, strict byte 010h ; 3c 10 14979 jne short 09a3 5h ; 75 d314980 mov byte [bp-00 4h], 000h ; c6 46 fc0014980 jne short 09a36h ; 75 d3 14981 mov byte [bp-006h], 000h ; c6 46 fa 00 14981 14982 mov bl, cl ; 88 cb 14982 14983 add bl, 002h ; 80 c3 02 14983 14984 xor bh, bh ; 30 ff 14984 14985 mov dx, word [bp-00eh] ; 8b 56 f2 14985 mov ax, word [bp-0 0ah] ; 8b 46 f614986 call 09f 3dh ; e8 c70414986 mov ax, word [bp-014h] ; 8b 46 ec 14987 call 09f5ch ; e8 e5 04 14987 14988 mov dx, ax ; 89 c2 14988 14989 and ax, strict word 0000fh ; 25 0f 00 14989 14990 sub ax, strict word 00004h ; 2d 04 00 14990 14991 cmp ax, strict word 0000bh ; 3d 0b 00 14991 jnbe short 09ab ah ; 77 3714992 jnbe short 09abbh ; 77 37 14992 14993 push CS ; 0e 14993 14994 pop ES ; 07 … … 14999 15000 mov ax, word [cs:di-0663bh] ; 2e 8b 85 c5 99 15000 15001 jmp ax ; ff e0 15001 mov byte [bp-00 4h], 010h ; c6 46 fc1015002 jmp short 09ab ah ; eb 1c15003 mov byte [bp-00 4h], 014h ; c6 46 fc1415004 jmp short 09ab ah ; eb 1615005 mov byte [bp-00 4h], 018h ; c6 46 fc1815006 jmp short 09ab ah ; eb 1015007 mov byte [bp-00 4h], 01ch ; c6 46 fc1c15008 jmp short 09ab ah ; eb 0a15009 mov byte [bp-00 4h], 020h ; c6 46 fc2015010 jmp short 09ab ah ; eb 0415011 mov byte [bp-00 4h], 024h ; c6 46 fc2415002 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 15012 15013 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 15019 15019 test al, al ; 84 c0 15020 je short 09 ae9h ; 74 1c15020 je short 09b07h ; 74 3b 15021 15021 mov bl, al ; 88 c3 15022 15022 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 15028 15032 test AL, strict byte 001h ; a8 01 15029 je short 09 ae9h ; 74 0715033 je short 09b07h ; 74 18 15030 15034 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 15034 15044 pop di ; 5f 15045 pop si ; 5e 15035 15046 pop bp ; 5d 15036 15047 retn ; c3 15037 apm_out_str_: ; 0xf9 aefLB 0x3915048 apm_out_str_: ; 0xf9b0e LB 0x39 15038 15049 push bp ; 55 15039 15050 mov bp, sp ; 89 e5 … … 15041 15052 mov bx, ax ; 89 c3 15042 15053 cmp byte [bx], 000h ; 80 3f 00 15043 je short 09b 04h ; 74 0a15054 je short 09b23h ; 74 0a 15044 15055 mov al, byte [bx] ; 8a 07 15045 15056 out DX, AL ; ee … … 15048 15059 db 00ah, 0c0h 15049 15060 ; or al, al ; 0a c0 15050 jne short 09 afch ; 75 f815061 jne short 09b1bh ; 75 f8 15051 15062 lea sp, [bp-002h] ; 8d 66 fe 15052 15063 pop bx ; 5b 15053 15064 pop bp ; 5d 15054 15065 retn ; c3 15055 dec cx ; 4915066 push 0f39bh ; 68 9b f3 15056 15067 wait ; 9b 15057 aam 09bh ; d49b15058 pop bx ; 5b15068 jp short 09acah ; 7a 9b 15069 xchg bp, ax ; 95 15059 15070 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 15063 15073 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 15073 15078 pushfw ; 9c 15074 _apm_function: ; 0xf9b 28LB 0xf615079 _apm_function: ; 0xf9b47 LB 0xf6 15075 15080 push bp ; 55 15076 15081 mov bp, sp ; 89 e5 … … 15080 15085 xor ah, ah ; 30 e4 15081 15086 cmp ax, strict word 0000eh ; 3d 0e 00 15082 jnbe short 09b a6h ; 77 6c15087 jnbe short 09bc5h ; 77 6c 15083 15088 mov bx, ax ; 89 c3 15084 15089 sal bx, 1 ; d1 e3 15085 15090 mov dx, word [bp+018h] ; 8b 56 18 15086 15091 or dl, 001h ; 80 ca 01 15087 jmp word [cs:bx-064 f6h] ; 2e ff a7 0a9b15092 jmp word [cs:bx-064d7h] ; 2e ff a7 29 9b 15088 15093 mov word [bp+012h], 00102h ; c7 46 12 02 01 15089 15094 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 15090 15095 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 15091 jmp near 09b d4h ; e9 79 0015096 jmp near 09bf3h ; e9 79 00 15092 15097 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 15093 mov word [bp+00ch], 0a1 84h ; c7 46 0c 84 a115098 mov word [bp+00ch], 0a1b4h ; c7 46 0c b4 a1 15094 15099 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 15095 15100 mov ax, strict word 0fff0h ; b8 f0 ff 15096 15101 mov word [bp+006h], ax ; 89 46 06 15097 15102 mov word [bp+004h], ax ; 89 46 04 15098 jmp near 09b d4h ; e9 5e 0015103 jmp near 09bf3h ; e9 5e 00 15099 15104 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 15100 15105 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 15109 15114 mov si, ax ; 89 c6 15110 15115 sal esi, 010h ; 66 c1 e6 10 15111 jmp near 09b d4h ; e9 33 0015116 jmp near 09bf3h ; e9 33 00 15112 15117 sti ; fb 15113 15118 hlt ; f4 15114 jmp near 09b d4h ; e9 2e 0015119 jmp near 09bf3h ; e9 2e 00 15115 15120 mov bx, 00da0h ; bb a0 0d 15116 15121 mov cx, ds ; 8c d9 15117 15122 mov ax, strict word 00004h ; b8 04 00 15118 call 01933h ; e8 827d15123 call 01933h ; e8 63 7d 15119 15124 push word [bp+00ch] ; ff 76 0c 15120 15125 push word [bp+012h] ; ff 76 12 … … 15123 15128 mov ax, strict word 00004h ; b8 04 00 15124 15129 push ax ; 50 15125 call 01976h ; e8 b47d15130 call 01976h ; e8 95 7d 15126 15131 add sp, strict byte 00008h ; 83 c4 08 15127 15132 mov ax, word [bp+012h] ; 8b 46 12 … … 15135 15140 retn ; c3 15136 15141 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 15137 je short 09 bffh ; 74 1f15142 je short 09c1eh ; 74 1f 15138 15143 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 15139 je short 09 bf7h ; 74 1115144 je short 09c16h ; 74 11 15140 15145 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 15141 jne short 09c 07h ; 75 1b15146 jne short 09c26h ; 75 1b 15142 15147 mov dx, 0040fh ; ba 0f 04 15143 15148 mov ax, 00d10h ; b8 10 0d 15144 call 09 aefh ; e8 fa fe15145 jmp short 09b d4h ; eb dd15149 call 09b0eh ; e8 fa fe 15150 jmp short 09bf3h ; eb dd 15146 15151 mov dx, 0040fh ; ba 0f 04 15147 15152 mov ax, 00d18h ; b8 18 0d 15148 jmp short 09 bf2h ; eb f315153 jmp short 09c11h ; eb f3 15149 15154 mov dx, 0040fh ; ba 0f 04 15150 15155 mov ax, 00d20h ; b8 20 0d 15151 jmp short 09 bf2h ; eb eb15156 jmp short 09c11h ; eb eb 15152 15157 or ah, 00ah ; 80 cc 0a 15153 15158 mov word [bp+012h], ax ; 89 46 12 15154 15159 mov word [bp+018h], dx ; 89 56 18 15155 jmp short 09b d4h ; eb c215160 jmp short 09bf3h ; eb c2 15156 15161 mov word [bp+012h], 00102h ; c7 46 12 02 01 15157 jmp short 09b d4h ; eb bb15162 jmp short 09bf3h ; eb bb 15158 15163 or ah, 080h ; 80 cc 80 15159 jmp short 09c 0ah ; eb ec15160 pci16_select_reg_: ; 0xf9c 1eLB 0x2415164 jmp short 09c29h ; eb ec 15165 pci16_select_reg_: ; 0xf9c3d LB 0x24 15161 15166 push bp ; 55 15162 15167 mov bp, sp ; 89 e5 … … 15175 15180 pop bp ; 5d 15176 15181 retn ; c3 15177 pci16_find_device_: ; 0xf9c 42LB 0xf715182 pci16_find_device_: ; 0xf9c61 LB 0xf7 15178 15183 push bp ; 55 15179 15184 mov bp, sp ; 89 e5 … … 15189 15194 mov byte [bp-006h], 000h ; c6 46 fa 00 15190 15195 test bl, 007h ; f6 c3 07 15191 jne short 09c 8ah ; 75 2d15196 jne short 09ca9h ; 75 2d 15192 15197 mov dx, strict word 0000eh ; ba 0e 00 15193 15198 mov ax, bx ; 89 d8 15194 call 09c 1eh ; e8 b9 ff15199 call 09c3dh ; e8 b9 ff 15195 15200 mov dx, 00cfeh ; ba fe 0c 15196 15201 in AL, DX ; ec … … 15199 15204 mov byte [bp-008h], al ; 88 46 f8 15200 15205 cmp AL, strict byte 0ffh ; 3c ff 15201 jne short 09c 78h ; 75 0615206 jne short 09c97h ; 75 06 15202 15207 add bx, strict byte 00008h ; 83 c3 08 15203 jmp near 09d 0ah ; e9 92 0015208 jmp near 09d29h ; e9 92 00 15204 15209 test byte [bp-008h], 080h ; f6 46 f8 80 15205 je short 09c 85h ; 74 0715210 je short 09ca4h ; 74 07 15206 15211 mov word [bp-00eh], strict word 00001h ; c7 46 f2 01 00 15207 jmp short 09c 8ah ; eb 0515212 jmp short 09ca9h ; eb 05 15208 15213 mov word [bp-00eh], strict word 00008h ; c7 46 f2 08 00 15209 15214 mov al, byte [bp-008h] ; 8a 46 f8 15210 15215 and AL, strict byte 007h ; 24 07 15211 15216 cmp AL, strict byte 001h ; 3c 01 15212 jne short 09c b1h ; 75 1e15217 jne short 09cd0h ; 75 1e 15213 15218 mov al, bh ; 88 f8 15214 15219 xor ah, ah ; 30 e4 15215 15220 test ax, ax ; 85 c0 15216 jne short 09c b1h ; 75 1615221 jne short 09cd0h ; 75 16 15217 15222 mov dx, strict word 0001ah ; ba 1a 00 15218 15223 mov ax, bx ; 89 d8 15219 call 09c 1eh ; e8 7b ff15224 call 09c3dh ; e8 7b ff 15220 15225 mov dx, 00cfeh ; ba fe 0c 15221 15226 in AL, DX ; ec … … 15223 15228 ; sub ah, ah ; 2a e4 15224 15229 cmp al, byte [bp-006h] ; 3a 46 fa 15225 jbe short 09c b1h ; 76 0315230 jbe short 09cd0h ; 76 03 15226 15231 mov byte [bp-006h], al ; 88 46 fa 15227 15232 test di, di ; 85 ff 15228 je short 09c bah ; 74 0515233 je short 09cd9h ; 74 05 15229 15234 mov dx, strict word 00008h ; ba 08 00 15230 jmp short 09c bch ; eb 0215235 jmp short 09cdbh ; eb 02 15231 15236 xor dx, dx ; 31 d2 15232 15237 mov ax, bx ; 89 d8 15233 call 09c 1eh ; e8 5d ff15238 call 09c3dh ; e8 5d ff 15234 15239 mov dx, 00cfch ; ba fc 0c 15235 15240 in eax, DX ; 66 ed … … 15242 15247 mov word [bp-00ch], strict word 00000h ; c7 46 f4 00 00 15243 15248 test di, di ; 85 ff 15244 je short 09 cebh ; 74 0f15249 je short 09d0ah ; 74 0f 15245 15250 mov cx, strict word 00008h ; b9 08 00 15246 15251 shr dx, 1 ; d1 ea 15247 15252 rcr ax, 1 ; d1 d8 15248 loop 09c dfh ; e2 fa15253 loop 09cfeh ; e2 fa 15249 15254 mov word [bp-00ah], ax ; 89 46 f6 15250 15255 mov word [bp-010h], dx ; 89 56 f0 15251 15256 mov ax, word [bp-010h] ; 8b 46 f0 15252 15257 cmp ax, word [bp-014h] ; 3b 46 ec 15253 jne short 09 cfbh ; 75 0815258 jne short 09d1ah ; 75 08 15254 15259 mov ax, word [bp-00ah] ; 8b 46 f6 15255 15260 cmp ax, word [bp-012h] ; 3b 46 ee 15256 je short 09d 01h ; 74 0615261 je short 09d20h ; 74 06 15257 15262 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 15258 je short 09d 07h ; 74 0615263 je short 09d26h ; 74 06 15259 15264 dec si ; 4e 15260 15265 cmp si, strict byte 0ffffh ; 83 fe ff 15261 je short 09d 1ah ; 74 1315266 je short 09d39h ; 74 13 15262 15267 add bx, word [bp-00eh] ; 03 5e f2 15263 15268 mov al, bh ; 88 f8 … … 15266 15271 xor dh, dh ; 30 f6 15267 15272 cmp ax, dx ; 39 d0 15268 jnbe short 09d 1ah ; 77 0315269 jmp near 09c 58h ; e9 3e ff15273 jnbe short 09d39h ; 77 03 15274 jmp near 09c77h ; e9 3e ff 15270 15275 cmp si, strict byte 0ffffh ; 83 fe ff 15271 jne short 09d 23h ; 75 0415276 jne short 09d42h ; 75 04 15272 15277 mov ax, bx ; 89 d8 15273 jmp short 09d 26h ; eb 0315278 jmp short 09d45h ; eb 03 15274 15279 mov ax, strict word 0ffffh ; b8 ff ff 15275 15280 lea sp, [bp-004h] ; 8d 66 fc … … 15278 15283 pop bp ; 5d 15279 15284 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 15289 15291 push bp ; 55 15290 15292 mov bp, sp ; 89 e5 … … 15300 15302 xor ah, ah ; 30 e4 15301 15303 cmp bx, strict byte 00003h ; 83 fb 03 15302 jc short 09d 6bh ; 72 1315303 jbe short 09d beh ; 76 6415304 jc short 09d8ah ; 72 13 15305 jbe short 09dddh ; 76 64 15304 15306 cmp bx, strict byte 0000eh ; 83 fb 0e 15305 je short 09d c6h ; 74 6715307 je short 09de5h ; 74 67 15306 15308 cmp bx, strict byte 00008h ; 83 fb 08 15307 jc short 09d 75h ; 72 1115309 jc short 09d94h ; 72 11 15308 15310 cmp bx, strict byte 0000dh ; 83 fb 0d 15309 jbe short 09d c9h ; 76 6015310 jmp short 09d 75h ; eb 0a15311 jbe short 09de8h ; 76 60 15312 jmp short 09d94h ; eb 0a 15311 15313 cmp bx, strict byte 00002h ; 83 fb 02 15312 je short 09d 94h ; 74 2415314 je short 09db3h ; 74 24 15313 15315 cmp bx, strict byte 00001h ; 83 fb 01 15314 je short 09d 78h ; 74 0315315 jmp near 09e d7h ; e9 5f 0115316 je short 09d97h ; 74 03 15317 jmp near 09ef6h ; e9 5f 01 15316 15318 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 15317 15319 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 15319 15321 mov word [bp+018h], 04350h ; c7 46 18 50 43 15320 15322 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 15321 jmp near 09f 07h ; e9 73 0115323 jmp near 09f26h ; e9 73 01 15322 15324 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 15323 jne short 09d a0h ; 75 0615325 jne short 09dbfh ; 75 06 15324 15326 or ah, 083h ; 80 cc 83 15325 jmp near 09f 00h ; e9 60 0115327 jmp near 09f1fh ; e9 60 01 15326 15328 mov bx, word [bp+008h] ; 8b 5e 08 15327 15329 mov dx, word [bp+01ch] ; 8b 56 1c 15328 15330 mov ax, word [bp+018h] ; 8b 46 18 15329 15331 xor cx, cx ; 31 c9 15330 call 09c 42h ; e8 94 fe15332 call 09c61h ; e8 94 fe 15331 15333 cmp ax, strict word 0ffffh ; 3d ff ff 15332 jne short 09d c0h ; 75 0d15334 jne short 09ddfh ; 75 0d 15333 15335 mov ax, word [bp+020h] ; 8b 46 20 15334 15336 xor ah, ah ; 30 e4 15335 15337 or ah, 086h ; 80 cc 86 15336 jmp near 09f 00h ; e9 42 0115337 jmp short 09d cbh ; eb 0b15338 jmp near 09f1fh ; e9 42 01 15339 jmp short 09deah ; eb 0b 15338 15340 mov word [bp+014h], ax ; 89 46 14 15339 jmp near 09f 07h ; e9 41 0115340 jmp near 09e 92h ; e9 c9 0015341 jmp short 09 df0h ; eb 2515341 jmp near 09f26h ; e9 41 01 15342 jmp near 09eb1h ; e9 c9 00 15343 jmp short 09e0fh ; eb 25 15342 15344 mov bx, word [bp+008h] ; 8b 5e 08 15343 15345 mov ax, word [bp+01ch] ; 8b 46 1c 15344 15346 mov dx, word [bp+01eh] ; 8b 56 1e 15345 15347 mov cx, strict word 00001h ; b9 01 00 15346 call 09c 42h ; e8 68 fe15348 call 09c61h ; e8 68 fe 15347 15349 cmp ax, strict word 0ffffh ; 3d ff ff 15348 jne short 09 deah ; 75 0b15350 jne short 09e09h ; 75 0b 15349 15351 mov ax, word [bp+020h] ; 8b 46 20 15350 15352 xor ah, ah ; 30 e4 15351 15353 or ah, 086h ; 80 cc 86 15352 jmp near 09f 00h ; e9 16 0115354 jmp near 09f1fh ; e9 16 01 15353 15355 mov word [bp+014h], ax ; 89 46 14 15354 jmp near 09f 07h ; e9 17 0115356 jmp near 09f26h ; e9 17 01 15355 15357 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 15356 jc short 09 dfdh ; 72 0615358 jc short 09e1ch ; 72 06 15357 15359 or ah, 087h ; 80 cc 87 15358 jmp near 09f 00h ; e9 03 0115360 jmp near 09f1fh ; e9 03 01 15359 15361 mov dx, word [bp+004h] ; 8b 56 04 15360 15362 mov ax, word [bp+014h] ; 8b 46 14 15361 call 09c 1eh ; e8 18 fe15363 call 09c3dh ; e8 18 fe 15362 15364 mov bx, word [bp+020h] ; 8b 5e 20 15363 15365 xor bh, bh ; 30 ff 15364 15366 sub bx, strict byte 00008h ; 83 eb 08 15365 15367 cmp bx, strict byte 00005h ; 83 fb 05 15366 jnbe short 09e 7bh ; 77 6815368 jnbe short 09e9ah ; 77 68 15367 15369 sal bx, 1 ; d1 e3 15368 jmp word [cs:bx-062 d3h] ; 2e ff a7 2d9d15370 jmp word [cs:bx-062b4h] ; 2e ff a7 4c 9d 15369 15371 mov bx, word [bp+01ch] ; 8b 5e 1c 15370 15372 xor bl, bl ; 30 db … … 15377 15379 or bx, ax ; 09 c3 15378 15380 mov word [bp+01ch], bx ; 89 5e 1c 15379 jmp short 09e 7bh ; eb 4815381 jmp short 09e9ah ; eb 48 15380 15382 mov dx, word [bp+004h] ; 8b 56 04 15381 15383 xor dh, dh ; 30 f6 … … 15384 15386 in ax, DX ; ed 15385 15387 mov word [bp+01ch], ax ; 89 46 1c 15386 jmp short 09e 7bh ; eb 3615388 jmp short 09e9ah ; eb 36 15387 15389 mov dx, 00cfch ; ba fc 0c 15388 15390 in eax, DX ; 66 ed … … 15393 15395 mov word [bp+01ch], ax ; 89 46 1c 15394 15396 mov word [bp+01eh], dx ; 89 56 1e 15395 jmp short 09e 7bh ; eb 2215397 jmp short 09e9ah ; eb 22 15396 15398 mov ax, word [bp+01ch] ; 8b 46 1c 15397 15399 mov dx, word [bp+004h] ; 8b 56 04 … … 15400 15402 add dx, 00cfch ; 81 c2 fc 0c 15401 15403 out DX, AL ; ee 15402 jmp short 09e 7bh ; eb 1015404 jmp short 09e9ah ; eb 10 15403 15405 mov ax, word [bp+01ch] ; 8b 46 1c 15404 15406 mov dx, word [bp+004h] ; 8b 56 04 … … 15407 15409 add dx, 00cfch ; 81 c2 fc 0c 15408 15410 out DX, ax ; ef 15409 jmp near 09f 07h ; e9 89 0015411 jmp near 09f26h ; e9 89 00 15410 15412 mov ax, word [bp+01ch] ; 8b 46 1c 15411 15413 mov cx, word [bp+01eh] ; 8b 4e 1e … … 15416 15418 ; mov ax, cx ; 8b c1 15417 15419 out DX, eax ; 66 ef 15418 jmp short 09f 07h ; eb 7515420 jmp short 09f26h ; eb 75 15419 15421 mov bx, word [bp+004h] ; 8b 5e 04 15420 15422 mov es, [bp+026h] ; 8e 46 26 15421 15423 mov word [bp-008h], bx ; 89 5e f8 15422 15424 mov [bp-006h], es ; 8c 46 fa 15423 mov cx, word [0f 4a0h] ; 8b 0e a0 f415425 mov cx, word [0f380h] ; 8b 0e 80 f3 15424 15426 cmp cx, word [es:bx] ; 26 3b 0f 15425 jbe short 09e b8h ; 76 1115427 jbe short 09ed7h ; 76 11 15426 15428 mov ax, word [bp+020h] ; 8b 46 20 15427 15429 xor ah, ah ; 30 e4 … … 15429 15431 mov word [bp+020h], ax ; 89 46 20 15430 15432 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 15431 jmp short 09e cch ; eb 1415433 jmp short 09eebh ; eb 14 15432 15434 les di, [es:bx+002h] ; 26 c4 7f 02 15433 mov si, 0f 2c0h ; be c0 f215435 mov si, 0f1a0h ; be a0 f1 15434 15436 mov dx, ds ; 8c da 15435 15437 push DS ; 1e … … 15438 15440 pop DS ; 1f 15439 15441 mov word [bp+014h], 00a00h ; c7 46 14 00 0a 15440 mov ax, word [0f 4a0h] ; a1 a0 f415442 mov ax, word [0f380h] ; a1 80 f3 15441 15443 les bx, [bp-008h] ; c4 5e f8 15442 15444 mov word [es:bx], ax ; 26 89 07 15443 jmp short 09f 07h ; eb 3015445 jmp short 09f26h ; eb 30 15444 15446 mov bx, 00da0h ; bb a0 0d 15445 15447 mov cx, ds ; 8c d9 15446 15448 mov ax, strict word 00004h ; b8 04 00 15447 call 01933h ; e8 517a15449 call 01933h ; e8 32 7a 15448 15450 mov ax, word [bp+014h] ; 8b 46 14 15449 15451 push ax ; 50 … … 15454 15456 mov ax, strict word 00004h ; b8 04 00 15455 15457 push ax ; 50 15456 call 01976h ; e8 817a15458 call 01976h ; e8 62 7a 15457 15459 add sp, strict byte 00008h ; 83 c4 08 15458 15460 mov ax, word [bp+020h] ; 8b 46 20 … … 15466 15468 pop bp ; 5d 15467 15469 retn ; c3 15468 pci_find_classcode_: ; 0xf9f 0eLB 0x815470 pci_find_classcode_: ; 0xf9f2d LB 0x8 15469 15471 push bp ; 55 15470 15472 mov bp, sp ; 89 e5 … … 15472 15474 pop bp ; 5d 15473 15475 retn ; c3 15474 pci_read_config_byte_: ; 0xf9f 16LB 0x2715476 pci_read_config_byte_: ; 0xf9f35 LB 0x27 15475 15477 push bp ; 55 15476 15478 mov bp, sp ; 89 e5 … … 15495 15497 pop bp ; 5d 15496 15498 retn ; c3 15497 pci_read_config_word_: ; 0xf9f 3dLB 0x2515499 pci_read_config_word_: ; 0xf9f5c LB 0x25 15498 15500 push bp ; 55 15499 15501 mov bp, sp ; 89 e5 … … 15517 15519 pop bp ; 5d 15518 15520 retn ; c3 15519 pci_read_config_dword_: ; 0xf9f 62LB 0x3f15521 pci_read_config_dword_: ; 0xf9f81 LB 0x3f 15520 15522 push bp ; 55 15521 15523 mov bp, sp ; 89 e5 … … 15532 15534 int 01ah ; cd 1a 15533 15535 test cx, cx ; 85 c9 15534 jne short 09f 92h ; 75 1415536 jne short 09fb1h ; 75 14 15535 15537 mov al, byte [bp-006h] ; 8a 46 fa 15536 15538 xor ah, ah ; 30 e4 … … 15542 15544 int 01ah ; cd 1a 15543 15545 test cx, cx ; 85 c9 15544 je short 09f 97h ; 74 0515546 je short 09fb6h ; 74 05 15545 15547 mov ax, strict word 00001h ; b8 01 00 15546 jmp short 09f 99h ; eb 0215548 jmp short 09fb8h ; eb 02 15547 15549 xor ax, ax ; 31 c0 15548 15550 cwd ; 99 … … 15552 15554 pop bp ; 5d 15553 15555 retn ; c3 15554 vds_is_present_: ; 0xf9fa1 LB 0x1d 15556 pci_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 15573 vds_is_present_: ; 0xf9fde LB 0x1d 15555 15574 push bx ; 53 15556 15575 push bp ; 55 … … 15560 15579 mov es, ax ; 8e c0 15561 15580 test byte [es:bx], 020h ; 26 f6 07 20 15562 je short 09f b9h ; 74 0615581 je short 09ff6h ; 74 06 15563 15582 mov ax, strict word 00001h ; b8 01 00 15564 15583 pop bp ; 5d … … 15569 15588 pop bx ; 5b 15570 15589 retn ; c3 15571 vds_real_to_lin_: ; 0xf9f beLB 0x1e15590 vds_real_to_lin_: ; 0xf9ffb LB 0x1e 15572 15591 push bx ; 53 15573 15592 push cx ; 51 … … 15580 15599 sal ax, 1 ; d1 e0 15581 15600 rcl dx, 1 ; d1 d2 15582 loop 0 9fcch ; e2 fa15601 loop 0a009h ; e2 fa 15583 15602 xor cx, cx ; 31 c9 15584 15603 add ax, bx ; 01 d8 … … 15588 15607 pop bx ; 5b 15589 15608 retn ; c3 15590 vds_build_sg_list_: ; 0xf 9fdcLB 0x7715609 vds_build_sg_list_: ; 0xfa019 LB 0x77 15591 15610 push bp ; 55 15592 15611 mov bp, sp ; 89 e5 … … 15602 15621 mov bx, word [bp+006h] ; 8b 5e 06 15603 15622 mov word [es:di+002h], bx ; 26 89 5d 02 15604 call 09f beh ; e8 c3 ff15623 call 09ffbh ; e8 c3 ff 15605 15624 mov es, si ; 8e c6 15606 15625 mov word [es:di+004h], ax ; 26 89 45 04 15607 15626 mov word [es:di+006h], dx ; 26 89 55 06 15608 15627 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15609 call 09f a1h ; e8 93 ff15628 call 09fdeh ; e8 93 ff 15610 15629 test ax, ax ; 85 c0 15611 je short 0a0 23h ; 74 1115630 je short 0a060h ; 74 11 15612 15631 mov es, si ; 8e c6 15613 15632 mov ax, 08105h ; b8 05 81 15614 15633 mov dx, strict word 00000h ; ba 00 00 15615 15634 int 04bh ; cd 4b 15616 jc short 0a0 20h ; 72 0215635 jc short 0a05dh ; 72 02 15617 15636 db 032h, 0c0h 15618 15637 ; xor al, al ; 32 c0 15619 15638 cbw ; 98 15620 jmp short 0a0 4ah ; eb 2715639 jmp short 0a087h ; eb 27 15621 15640 mov es, si ; 8e c6 15622 15641 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15635 15654 pop bp ; 5d 15636 15655 retn 00004h ; c2 04 00 15637 vds_free_sg_list_: ; 0xfa0 53 LB 0x3d15656 vds_free_sg_list_: ; 0xfa090 LB 0x30 15638 15657 push bp ; 55 15639 15658 mov bp, sp ; 89 e5 … … 15641 15660 push di ; 57 15642 15661 mov bx, ax ; 89 c3 15643 call 09f a1h ; e8 44 ff15662 call 09fdeh ; e8 44 ff 15644 15663 test ax, ax ; 85 c0 15645 je short 0a0 72h ; 74 1115664 je short 0a0afh ; 74 11 15646 15665 mov di, bx ; 89 df 15647 15666 mov es, dx ; 8e c2 … … 15649 15668 mov dx, strict word 00000h ; ba 00 00 15650 15669 int 04bh ; cd 4b 15651 jc short 0a0 71h ; 72 0215670 jc short 0a0aeh ; 72 02 15652 15671 db 032h, 0c0h 15653 15672 ; xor al, al ; 32 c0 … … 15660 15679 pop bp ; 5d 15661 15680 retn ; c3 15662 times 0x fdb 015663 __U4M: ; 0xfa0 90 LB 0x2015681 times 0x2 db 0 15682 __U4M: ; 0xfa0c0 LB 0x20 15664 15683 pushfw ; 9c 15665 15684 push si ; 56 … … 15688 15707 retn ; c3 15689 15708 times 0x4 db 0 15690 __U4D: ; 0xfa0 b0 LB 0x3015709 __U4D: ; 0xfa0e0 LB 0x30 15691 15710 pushfw ; 9c 15692 15711 push DS ; 1e … … 15703 15722 push dx ; 52 15704 15723 push ax ; 50 15705 call 0a1 95h ; e8 d0 0015724 call 0a1c5h ; e8 d0 00 15706 15725 mov cx, word [bp-002h] ; 8b 4e fe 15707 15726 mov bx, word [bp-004h] ; 8b 5e fc … … 15714 15733 retn ; c3 15715 15734 times 0xe db 0 15716 __U8RS: ; 0xfa 0e0 LB 0x1015735 __U8RS: ; 0xfa110 LB 0x10 15717 15736 test si, si ; 85 f6 15718 je short 0a 0efh ; 74 0b15737 je short 0a11fh ; 74 0b 15719 15738 shr ax, 1 ; d1 e8 15720 15739 rcr bx, 1 ; d1 db … … 15722 15741 rcr dx, 1 ; d1 da 15723 15742 dec si ; 4e 15724 jne short 0a 0e4h ; 75 f515743 jne short 0a114h ; 75 f5 15725 15744 retn ; c3 15726 __U8LS: ; 0xfa 0f0 LB 0x1015745 __U8LS: ; 0xfa120 LB 0x10 15727 15746 test si, si ; 85 f6 15728 je short 0a 0ffh ; 74 0b15747 je short 0a12fh ; 74 0b 15729 15748 sal dx, 1 ; d1 e2 15730 15749 rcl cx, 1 ; d1 d1 … … 15732 15751 rcl ax, 1 ; d1 d0 15733 15752 dec si ; 4e 15734 jne short 0a 0f4h ; 75 f515753 jne short 0a124h ; 75 f5 15735 15754 retn ; c3 15736 _fmemset_: ; 0xfa1 00 LB 0x1015755 _fmemset_: ; 0xfa130 LB 0x10 15737 15756 push di ; 57 15738 15757 mov es, dx ; 8e c2 … … 15745 15764 retn ; c3 15746 15765 times 0x3 db 0 15747 _fmemcpy_: ; 0xfa1 10 LB 0x3a15766 _fmemcpy_: ; 0xfa140 LB 0x3a 15748 15767 push bp ; 55 15749 15768 db 08bh, 0ech … … 15770 15789 add byte [bx+si], al ; 00 00 15771 15790 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 15803 apm_worker: ; 0xfa17a LB 0x3a 15783 15804 sti ; fb 15784 15805 push ax ; 50 … … 15792 15813 pop ax ; 58 15793 15814 mov AH, strict byte 053h ; b4 53 15794 jnc short 0a1 80h ; 73 2515795 jmp word [cs:bp-05e d0h] ; 2e ff a6 30 a115796 jmp short 0a1 7eh ; eb 1c15815 jnc short 0a1b0h ; 73 25 15816 jmp word [cs:bp-05ea0h] ; 2e ff a6 60 a1 15817 jmp short 0a1aeh ; eb 1c 15797 15818 sti ; fb 15798 15819 hlt ; f4 15799 jmp short 0a1 7eh ; eb 1815800 jmp short 0a1 7eh ; eb 1615801 jmp short 0a1 80h ; eb 1615820 jmp short 0a1aeh ; eb 18 15821 jmp short 0a1aeh ; eb 16 15822 jmp short 0a1b0h ; eb 16 15802 15823 mov AH, strict byte 080h ; b4 80 15803 jmp short 0a1 82h ; eb 1415804 jmp short 0a1 80h ; eb 1015824 jmp short 0a1b2h ; eb 14 15825 jmp short 0a1b0h ; eb 10 15805 15826 mov ax, 00102h ; b8 02 01 15806 jmp short 0a1 7eh ; eb 0915807 jmp short 0a1 7eh ; eb 0715827 jmp short 0a1aeh ; eb 09 15828 jmp short 0a1aeh ; eb 07 15808 15829 mov BL, strict byte 000h ; b3 00 15809 15830 mov cx, strict word 00000h ; b9 00 00 15810 jmp short 0a1 7eh ; eb 0015831 jmp short 0a1aeh ; eb 00 15811 15832 clc ; f8 15812 15833 retn ; c3 … … 15814 15835 stc ; f9 15815 15836 retn ; c3 15816 apm_pm16_entry: ; 0xfa1 84 LB 0x1115837 apm_pm16_entry: ; 0xfa1b4 LB 0x11 15817 15838 mov AH, strict byte 002h ; b4 02 15818 15839 push DS ; 1e … … 15822 15843 add bp, strict byte 00008h ; 83 c5 08 15823 15844 mov ds, bp ; 8e dd 15824 call 0a1 4ah ; e8 b8 ff15845 call 0a17ah ; e8 b8 ff 15825 15846 pop bp ; 5d 15826 15847 pop DS ; 1f 15827 15848 retf ; cb 15828 _DoUInt32Div: ; 0xfa1 95 LB 0x26b15849 _DoUInt32Div: ; 0xfa1c5 LB 0x26b 15829 15850 push bp ; 55 15830 15851 mov bp, sp ; 89 e5 … … 15844 15865 mov [bp-006h], ds ; 8c 5e fa 15845 15866 cmp word [bx+002h], strict byte 00000h ; 83 7f 02 00 15846 jne short 0a 1e5h ; 75 2215867 jne short 0a215h ; 75 22 15847 15868 mov ax, word [bx] ; 8b 07 15848 15869 test ax, ax ; 85 c0 15849 je short 0a 1e2h ; 74 1915870 je short 0a212h ; 74 19 15850 15871 cmp ax, strict word 00001h ; 3d 01 00 15851 jne short 0a 1e5h ; 75 1715872 jne short 0a215h ; 75 17 15852 15873 xor ax, ax ; 31 c0 15853 15874 mov word [bp+00ah], ax ; 89 46 0a … … 15857 15878 mov ax, word [bp-01ah] ; 8b 46 e6 15858 15879 mov word [bp+006h], ax ; 89 46 06 15859 jmp near 0a 3edh ; e9 08 0215880 jmp near 0a41dh ; e9 08 02 15860 15881 lds bx, [bp-00ch] ; c5 5e f4 15861 15882 mov ax, word [bx+002h] ; 8b 47 02 15862 15883 mov ds, [bp-006h] ; 8e 5e fa 15863 15884 cmp ax, word [si+002h] ; 3b 44 02 15864 je short 0a2 0bh ; 74 1815885 je short 0a23bh ; 74 18 15865 15886 mov ds, [bp-00ah] ; 8e 5e f6 15866 15887 mov ax, word [bx+002h] ; 8b 47 02 15867 15888 mov ds, [bp-006h] ; 8e 5e fa 15868 15889 cmp ax, word [si+002h] ; 3b 44 02 15869 jbe short 0a2 06h ; 76 0515890 jbe short 0a236h ; 76 05 15870 15891 mov ax, strict word 00001h ; b8 01 00 15871 jmp short 0a2 2ch ; eb 2615892 jmp short 0a25ch ; eb 26 15872 15893 mov ax, strict word 0ffffh ; b8 ff ff 15873 jmp short 0a2 2ch ; eb 2115894 jmp short 0a25ch ; eb 21 15874 15895 mov ds, [bp-00ah] ; 8e 5e f6 15875 15896 mov ax, word [bx] ; 8b 07 15876 15897 mov ds, [bp-006h] ; 8e 5e fa 15877 15898 cmp ax, word [si] ; 3b 04 15878 je short 0a2 2ah ; 74 1315899 je short 0a25ah ; 74 13 15879 15900 mov ds, [bp-00ah] ; 8e 5e f6 15880 15901 mov ax, word [bx] ; 8b 07 15881 15902 mov ds, [bp-006h] ; 8e 5e fa 15882 15903 cmp ax, word [si] ; 3b 04 15883 jbe short 0a2 25h ; 76 0215884 jmp short 0a2 01h ; eb dc15904 jbe short 0a255h ; 76 02 15905 jmp short 0a231h ; eb dc 15885 15906 mov ax, strict word 0ffffh ; b8 ff ff 15886 jmp short 0a2 2ch ; eb 0215907 jmp short 0a25ch ; eb 02 15887 15908 xor ax, ax ; 31 c0 15888 15909 test ax, ax ; 85 c0 15889 jnl short 0a2 4eh ; 7d 1e15910 jnl short 0a27eh ; 7d 1e 15890 15911 lds bx, [bp-00ch] ; c5 5e f4 15891 15912 mov ax, word [bx] ; 8b 07 … … 15897 15918 mov word [bx+002h], strict word 00000h ; c7 47 02 00 00 15898 15919 mov word [bx], strict word 00000h ; c7 07 00 00 15899 jmp short 0a 1e2h ; eb 9415900 jne short 0a2 65h ; 75 1515920 jmp short 0a212h ; eb 94 15921 jne short 0a295h ; 75 15 15901 15922 mov ds, [bp-008h] ; 8e 5e f8 15902 15923 mov word [di+002h], ax ; 89 45 02 … … 15905 15926 mov word [bx], strict word 00001h ; c7 07 01 00 15906 15927 mov word [bx+002h], ax ; 89 47 02 15907 jmp near 0a 3edh ; e9 88 0115928 jmp near 0a41dh ; e9 88 01 15908 15929 lds bx, [bp-00ch] ; c5 5e f4 15909 15930 mov ax, word [bx+002h] ; 8b 47 02 15910 15931 test ax, ax ; 85 c0 15911 je short 0a2 80h ; 74 1115932 je short 0a2b0h ; 74 11 15912 15933 push ax ; 50 15913 15934 mov ax, 0f000h ; b8 00 f0 15914 15935 mov ds, ax ; 8e d8 15915 call 0a4 00h ; e8 88 0115936 call 0a430h ; e8 88 01 15916 15937 add sp, strict byte 00002h ; 83 c4 02 15917 15938 add ax, strict word 00010h ; 05 10 00 15918 jmp short 0a2 8dh ; eb 0d15939 jmp short 0a2bdh ; eb 0d 15919 15940 push word [bx] ; ff 37 15920 15941 mov ax, 0f000h ; b8 00 f0 15921 15942 mov ds, ax ; 8e d8 15922 call 0a4 00h ; e8 76 0115943 call 0a430h ; e8 76 01 15923 15944 add sp, strict byte 00002h ; 83 c4 02 15924 15945 mov word [bp-014h], ax ; 89 46 ec … … 15926 15947 mov ax, word [si+002h] ; 8b 44 02 15927 15948 test ax, ax ; 85 c0 15928 je short 0a2 abh ; 74 1115949 je short 0a2dbh ; 74 11 15929 15950 push ax ; 50 15930 15951 mov ax, 0f000h ; b8 00 f0 15931 15952 mov ds, ax ; 8e d8 15932 call 0a4 00h ; e8 5d 0115953 call 0a430h ; e8 5d 01 15933 15954 add sp, strict byte 00002h ; 83 c4 02 15934 15955 add ax, strict word 00010h ; 05 10 00 15935 jmp short 0a2 b8h ; eb 0d15956 jmp short 0a2e8h ; eb 0d 15936 15957 push word [si] ; ff 34 15937 15958 mov ax, 0f000h ; b8 00 f0 15938 15959 mov ds, ax ; 8e d8 15939 call 0a4 00h ; e8 4b 0115960 call 0a430h ; e8 4b 01 15940 15961 add sp, strict byte 00002h ; 83 c4 02 15941 15962 mov dx, word [bp-014h] ; 8b 56 ec … … 15948 15969 mov word [bp-016h], ax ; 89 46 ea 15949 15970 test dx, dx ; 85 d2 15950 je short 0a3 28h ; 74 5615971 je short 0a358h ; 74 56 15951 15972 mov cx, dx ; 89 d1 15952 15973 xor ch, dh ; 30 f5 … … 15954 15975 mov ax, word [si] ; 8b 04 15955 15976 mov dx, word [si+002h] ; 8b 54 02 15956 jcxz 0a 2e6h ; e3 0615977 jcxz 0a316h ; e3 06 15957 15978 sal ax, 1 ; d1 e0 15958 15979 rcl dx, 1 ; d1 d2 15959 loop 0a 2e0h ; e2 fa15980 loop 0a310h ; e2 fa 15960 15981 mov word [bp-018h], ax ; 89 46 e8 15961 15982 mov word [bp-016h], dx ; 89 56 ea … … 15963 15984 lds bx, [bp-00ch] ; c5 5e f4 15964 15985 cmp ax, word [bx+002h] ; 3b 47 02 15965 jnbe short 0a3 06h ; 77 0f15986 jnbe short 0a336h ; 77 0f 15966 15987 mov ax, word [bp-016h] ; 8b 46 ea 15967 15988 cmp ax, word [bx+002h] ; 3b 47 02 15968 jne short 0a3 0ah ; 75 0b15989 jne short 0a33ah ; 75 0b 15969 15990 mov ax, word [bp-018h] ; 8b 46 e8 15970 15991 cmp ax, word [bx] ; 3b 07 15971 jbe short 0a3 0ah ; 76 0415992 jbe short 0a33ah ; 76 04 15972 15993 mov AL, strict byte 001h ; b0 01 15973 jmp short 0a3 0ch ; eb 0215994 jmp short 0a33ch ; eb 02 15974 15995 xor al, al ; 30 c0 15975 15996 test al, al ; 84 c0 15976 je short 0a3 33h ; 74 2315997 je short 0a363h ; 74 23 15977 15998 shr word [bp-016h], 1 ; d1 6e ea 15978 15999 rcr word [bp-018h], 1 ; d1 5e e8 15979 16000 dec word [bp-012h] ; ff 4e ee 15980 jmp short 0a3 33h ; eb 1816001 jmp short 0a363h ; eb 18 15981 16002 mov cx, strict word 0001fh ; b9 1f 00 15982 16003 sal word [bp-018h], 1 ; d1 66 e8 15983 16004 rcl word [bp-016h], 1 ; d1 56 ea 15984 loop 0a3 1eh ; e2 f815985 jmp short 0a3 16h ; eb ee16005 loop 0a34eh ; e2 f8 16006 jmp short 0a346h ; eb ee 15986 16007 mov ax, word [si] ; 8b 04 15987 16008 mov word [bp-018h], ax ; 89 46 e8 … … 16000 16021 mov ds, [bp-006h] ; 8e 5e fa 16001 16022 cmp ax, word [si+002h] ; 3b 44 02 16002 jnbe short 0a3 5fh ; 77 0616003 jne short 0a3 63h ; 75 0816023 jnbe short 0a38fh ; 77 06 16024 jne short 0a393h ; 75 08 16004 16025 cmp dx, word [si] ; 3b 14 16005 jc short 0a3 63h ; 72 0416026 jc short 0a393h ; 72 04 16006 16027 mov AL, strict byte 001h ; b0 01 16007 jmp short 0a3 65h ; eb 0216028 jmp short 0a395h ; eb 02 16008 16029 xor al, al ; 30 c0 16009 16030 test al, al ; 84 c0 16010 je short 0a3 cah ; 74 6116031 je short 0a3fah ; 74 61 16011 16032 mov ds, [bp-008h] ; 8e 5e f8 16012 16033 mov ax, word [di+002h] ; 8b 45 02 16013 16034 cmp ax, word [bp-016h] ; 3b 46 ea 16014 jnbe short 0a3 80h ; 77 0c16035 jnbe short 0a3b0h ; 77 0c 16015 16036 cmp ax, word [bp-016h] ; 3b 46 ea 16016 jne short 0a3 84h ; 75 0b16037 jne short 0a3b4h ; 75 0b 16017 16038 mov ax, word [di] ; 8b 05 16018 16039 cmp ax, word [bp-018h] ; 3b 46 e8 16019 jc short 0a3 84h ; 72 0416040 jc short 0a3b4h ; 72 04 16020 16041 mov AL, strict byte 001h ; b0 01 16021 jmp short 0a3 86h ; eb 0216042 jmp short 0a3b6h ; eb 02 16022 16043 xor al, al ; 30 c0 16023 16044 test al, al ; 84 c0 16024 je short 0a3 b0h ; 74 2616045 je short 0a3e0h ; 74 26 16025 16046 mov ax, word [bp-018h] ; 8b 46 e8 16026 16047 mov ds, [bp-008h] ; 8e 5e f8 … … 16031 16052 xor dx, dx ; 31 d2 16032 16053 mov cx, word [bp-012h] ; 8b 4e ee 16033 jcxz 0a3 a8h ; e3 0616054 jcxz 0a3d8h ; e3 06 16034 16055 sal ax, 1 ; d1 e0 16035 16056 rcl dx, 1 ; d1 d2 16036 loop 0a3 a2h ; e2 fa16057 loop 0a3d2h ; e2 fa 16037 16058 lds bx, [bp-010h] ; c5 5e f0 16038 16059 or word [bx], ax ; 09 07 … … 16043 16064 mov ds, [bp-006h] ; 8e 5e fa 16044 16065 cmp ax, word [si+002h] ; 3b 44 02 16045 jc short 0a3 c6h ; 72 0616046 jne short 0a3 cch ; 75 0a16066 jc short 0a3f6h ; 72 06 16067 jne short 0a3fch ; 75 0a 16047 16068 cmp dx, word [si] ; 3b 14 16048 jnc short 0a3 cch ; 73 0616069 jnc short 0a3fch ; 73 06 16049 16070 mov AL, strict byte 001h ; b0 01 16050 jmp short 0a3 ceh ; eb 0416051 jmp short 0a 3edh ; eb 2116071 jmp short 0a3feh ; eb 04 16072 jmp short 0a41dh ; eb 21 16052 16073 xor al, al ; 30 c0 16053 16074 test al, al ; 84 c0 16054 je short 0a 3e1h ; 74 0f16055 jmp short 0a 3edh ; eb 1916075 je short 0a411h ; 74 0f 16076 jmp short 0a41dh ; eb 19 16056 16077 mov cx, strict word 0001fh ; b9 1f 00 16057 16078 sal word [bp-018h], 1 ; d1 66 e8 16058 16079 rcl word [bp-016h], 1 ; d1 56 ea 16059 loop 0a 3d7h ; e2 f816060 jmp short 0a 3e7h ; eb 0616080 loop 0a407h ; e2 f8 16081 jmp short 0a417h ; eb 06 16061 16082 shr word [bp-016h], 1 ; d1 6e ea 16062 16083 rcr word [bp-018h], 1 ; d1 5e e8 16063 16084 dec word [bp-012h] ; ff 4e ee 16064 jmp near 0a3 69h ; e9 7c ff16085 jmp near 0a399h ; e9 7c ff 16065 16086 mov ax, word [bp-01ch] ; 8b 46 e4 16066 16087 mov dx, word [bp-01ah] ; 8b 56 e6 … … 16071 16092 retn ; c3 16072 16093 times 0x6 db 0 16073 _ASMBitLastSetU16: ; 0xfa4 00 LB 0x1816094 _ASMBitLastSetU16: ; 0xfa430 LB 0x18 16074 16095 push bp ; 55 16075 16096 db 08bh, 0ech … … 16077 16098 mov cx, word [bp+004h] ; 8b 4e 04 16078 16099 test cx, cx ; 85 c9 16079 je short 0a4 14h ; 74 0a16100 je short 0a444h ; 74 0a 16080 16101 mov ax, strict word 00010h ; b8 10 00 16081 16102 sal cx, 1 ; d1 e1 16082 jc short 0a4 16h ; 72 0516103 jc short 0a446h ; 72 05 16083 16104 dec ax ; 48 16084 jmp short 0a4 0dh ; eb f916105 jmp short 0a43dh ; eb f9 16085 16106 db 033h, 0c0h 16086 16107 ; xor ax, ax ; 33 c0 … … 16088 16109 retn ; c3 16089 16110 16090 ; Padding 0x35 e8 bytes at 0xfa41816091 times 13 800db 016111 ; Padding 0x35b8 bytes at 0xfa448 16112 times 13752 db 0 16092 16113 16093 16114 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 16136 16157 add bp, strict byte 00008h ; 83 c5 08 16137 16158 push ebp ; 66 55 16138 mov bp, 0a1 86h ; bd 86 a116159 mov bp, 0a1b6h ; bd b6 a1 16139 16160 add byte [bx+si], al ; 00 00 16140 16161 push ebp ; 66 55 … … 16468 16489 mov bx, ax ; 89 c3 16469 16490 mov edx, dword [di] ; 66 8b 15 16470 mov AL, byte [000f4h] ; a0 f40016491 xor bl, 000h ; 80 f3 00 16471 16492 add byte [bp+026h], ah ; 00 66 26 16472 16493 cmp dx, word [bx+si] ; 3b 10 … … 16485 16506 mov di, word [es:bx+si+002h] ; 26 8b 78 02 16486 16507 mov dx, ds ; 8c da 16487 mov si, 0f 2c0h ; be c0 f216508 mov si, 0f1a0h ; be a0 f1 16488 16509 add byte [bx+si], al ; 00 00 16489 16510 mov es, [di-014h] ; 8e 45 ec … … 16494 16515 pop DS ; 1f 16495 16516 mov dword [di+018h], strict dword 0a1660a00h ; 66 c7 45 18 00 0a 66 a1 16496 mov AL, byte [000f4h] ; a0 f40016517 xor bl, 000h ; 80 f3 00 16497 16518 add byte [bp-00fbbh], cl ; 00 8e 45 f0 16498 16519 db 066h, 026h, 089h, 003h … … 17675 17696 pop eax ; 66 58 17676 17697 retn ; c3 17677 pcibios_init_iomem_bases: ; 0xff141 LB 0x1 617698 pcibios_init_iomem_bases: ; 0xff141 LB 0x12 17678 17699 push bp ; 55 17679 17700 db 08bh, 0ech 17680 17701 ; 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 17728 17705 db 08bh, 0e5h 17729 17706 ; mov sp, bp ; 8b e5 17730 17707 pop bp ; 5d 17731 17708 retn ; c3 17732 pcibios_init_set_elcr: ; 0xff1 adLB 0xc17709 pcibios_init_set_elcr: ; 0xff153 LB 0xc 17733 17710 push ax ; 50 17734 17711 push cx ; 51 17735 17712 mov dx, 004d0h ; ba d0 04 17736 17713 test AL, strict byte 008h ; a8 08 17737 je short 0f1 b9h ; 74 0317714 je short 0f15fh ; 74 03 17738 17715 inc dx ; 42 17739 17716 and AL, strict byte 007h ; 24 07 17740 is_master_pic: ; 0xff1 b9LB 0xd17717 is_master_pic: ; 0xff15f LB 0xd 17741 17718 db 08ah, 0c8h 17742 17719 ; mov cl, al ; 8a c8 … … 17750 17727 pop ax ; 58 17751 17728 retn ; c3 17752 pcibios_init_irqs: ; 0xff1 c6 LB 0x5317729 pcibios_init_irqs: ; 0xff16c LB 0x34 17753 17730 push DS ; 1e 17754 17731 push bp ; 55 17755 17732 mov ax, 0f000h ; b8 00 f0 17756 17733 mov ds, ax ; 8e d8 17757 mov dx, 004d0h ; ba d0 0417758 mov AL, strict byte 000h ; b0 0017759 out DX, AL ; ee17760 inc dx ; 4217761 out DX, AL ; ee17762 mov si, 0f2a0h ; be a0 f217763 mov bh, byte [si+008h] ; 8a 7c 0817764 mov bl, byte [si+009h] ; 8a 5c 0917765 mov DL, strict byte 000h ; b2 0017766 call 0f126h ; e8 43 ff17767 mov dx, 00cfch ; ba fc 0c17768 in eax, DX ; 66 ed17769 cmp eax, dword [si+00ch] ; 66 3b 44 0c17770 jne near 0f296h ; 0f 85 a6 0017771 mov dl, byte [si+022h] ; 8a 54 2217772 call 0f126h ; e8 30 ff17773 push bx ; 5317774 mov dx, 00cfch ; ba fc 0c17775 mov ax, 08080h ; b8 80 8017776 out DX, ax ; ef17777 add dx, strict byte 00002h ; 83 c2 0217778 out DX, ax ; ef17779 mov ax, word [si+006h] ; 8b 44 0617780 sub ax, strict byte 00020h ; 83 e8 2017781 shr ax, 004h ; c1 e8 0417782 db 08bh, 0c8h17783 ; mov cx, ax ; 8b c817784 add si, strict byte 00020h ; 83 c6 2017785 db 08bh, 0ech17786 ; mov bp, sp ; 8b ec17787 mov ax, 0f122h ; b8 22 f117788 push ax ; 5017789 db 033h, 0c0h17790 ; xor ax, ax ; 33 c017791 push ax ; 5017792 pci_init_irq_loop1: ; 0xff219 LB 0x517793 mov bh, byte [si] ; 8a 3c17794 mov bl, byte [si+001h] ; 8a 5c 0117795 pci_init_irq_loop2: ; 0xff21e LB 0x1517796 mov DL, strict byte 000h ; b2 0017797 call 0f126h ; e8 03 ff17798 mov dx, 00cfch ; ba fc 0c17799 in ax, DX ; ed17800 cmp ax, strict byte 0ffffh ; 83 f8 ff17801 jne short 0f233h ; 75 0717802 test bl, 007h ; f6 c3 0717803 je short 0f28ah ; 74 5917804 jmp short 0f280h ; eb 4d17805 pci_test_int_pin: ; 0xff233 LB 0x3c17806 mov DL, strict byte 03ch ; b2 3c17807 call 0f126h ; e8 ee fe17808 mov dx, 00cfdh ; ba fd 0c17809 in AL, DX ; ec17810 and AL, strict byte 007h ; 24 0717811 je short 0f280h ; 74 4017812 db 0feh, 0c8h17813 ; dec al ; fe c817814 mov DL, strict byte 003h ; b2 0317815 mul dl ; f6 e217816 add AL, strict byte 002h ; 04 0217817 db 032h, 0e4h17818 ; xor ah, ah ; 32 e417819 db 08bh, 0d8h17820 ; mov bx, ax ; 8b d817821 mov al, byte [bx+si] ; 8a 0017822 db 08ah, 0d0h17823 ; mov dl, al ; 8a d017824 mov bx, word [byte bp+000h] ; 8b 5e 0017825 call 0f126h ; e8 d0 fe17826 mov dx, 00cfch ; ba fc 0c17827 and AL, strict byte 003h ; 24 0317828 db 002h, 0d0h17829 ; add dl, al ; 02 d017830 in AL, DX ; ec17831 cmp AL, strict byte 080h ; 3c 8017832 jc short 0f26fh ; 72 0d17833 mov bx, word [bp-002h] ; 8b 5e fe17834 mov al, byte [bx] ; 8a 0717835 out DX, AL ; ee17836 inc bx ; 4317837 mov word [bp-002h], bx ; 89 5e fe17838 call 0f1adh ; e8 3e ff17839 pirq_found: ; 0xff26f LB 0x1117840 mov bh, byte [si] ; 8a 3c17841 mov bl, byte [si+001h] ; 8a 5c 0117842 add bl, byte [bp-003h] ; 02 5e fd17843 mov DL, strict byte 03ch ; b2 3c17844 call 0f126h ; e8 aa fe17845 mov dx, 00cfch ; ba fc 0c17846 out DX, AL ; ee17847 next_pci_func: ; 0xff280 LB 0xa17848 inc byte [bp-003h] ; fe 46 fd17849 db 0feh, 0c3h17850 ; inc bl ; fe c317851 test bl, 007h ; f6 c3 0717852 jne short 0f21eh ; 75 9417853 next_pir_entry: ; 0xff28a LB 0xc17854 add si, strict byte 00010h ; 83 c6 1017855 mov byte [bp-003h], 000h ; c6 46 fd 0017856 loop 0f219h ; e2 8617857 db 08bh, 0e5h17858 ; mov sp, bp ; 8b e517859 pop bx ; 5b17860 pci_init_end: ; 0xff296 LB 0x2a17861 17734 pop bp ; 5d 17862 17735 pop DS ; 1f 17863 17736 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 17868 17753 db 000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h 17869 17754 db 000h, 010h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 001h, 000h … … 17896 17781 db 000h, 0e8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 01ch, 000h 17897 17782 db 000h, 0f0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 01dh, 000h 17898 _pci_routing_table_size: ; 0xff 4a0 LB 0x217899 loopne 0f 4a3h ; e0 0117900 biosorg_check_before_or_at_0F83Fh: ; 0xff 4a2 LB 0x39f17901 times 0x 39d db 017783 _pci_routing_table_size: ; 0xff380 LB 0x2 17784 loopne 0f383h ; e0 01 17785 biosorg_check_before_or_at_0F83Fh: ; 0xff382 LB 0x4bf 17786 times 0x4bd db 0 17902 17787 db 'XM' 17903 17788 int12_handler: ; 0xff841 LB 0xc … … 17955 17840 popfw ; 9d 17956 17841 jmp short 0f8afh ; eb 1f 17957 call 09b 28h ; e8 95a217842 call 09b47h ; e8 b4 a2 17958 17843 jmp short 0f883h ; eb ee 17959 17844 int15_handler_mouse: ; 0xff895 LB 0x5 … … 18278 18163 cpu_reset: ; 0xffff0 LB 0x10 18279 18164 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 18280 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0 ffh18165 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0ddh -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum
r67495 r67683 1 8ad7d52695284ae041ae25c322b029a5*VBoxPcBios8086.rom1 5eaa6cc602fcf4c84c3d6d387c5eabad *VBoxPcBios8086.rom
Note:
See TracChangeset
for help on using the changeset viewer.