Changeset 67683 in vbox for trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
- Timestamp:
- Jun 29, 2017 8:57:09 AM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 116504
- File:
-
- 1 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
Note:
See TracChangeset
for help on using the changeset viewer.