Changeset 67683 in vbox for trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm
- Timestamp:
- Jun 29, 2017 8:57:09 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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
Note:
See TracChangeset
for help on using the changeset viewer.