Changeset 66146 in vbox
- Timestamp:
- Mar 16, 2017 9:14:29 PM (8 years ago)
- Location:
- trunk/src/VBox/Devices
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/BiosCommonCode/MakeAlternativeSource.cpp
r62594 r66146 1033 1033 && pb[4] == 0x66 1034 1034 && pb[5] == 0x66) 1035 || ( pb[0] == 0x60 1036 && pb[1] == 0xa0 1037 && pb[2] == 0x62 1038 && pb[3] == 0xa0 1039 && pb[4] == 0x66 1040 && pb[5] == 0xa0) 1035 1041 || 0 1036 1042 ) -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
r63625 r66146 988 988 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 989 989 _pktacc: ; 0xf006a LB 0xc 990 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 0 3ah, 081h, 0a0h, 090h990 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 045h, 081h, 0abh, 090h 991 991 _softrst: ; 0xf0076 LB 0xc 992 992 db 000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 01ch, 03bh, 01ch, 03bh 993 993 _dskacc: ; 0xf0082 LB 0x2e 994 994 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f0h, 029h, 0a5h, 02ah, 000h, 000h, 000h, 000h 995 db 0 7ah, 07fh, 05ah, 080h, 072h, 08fh, 01ah, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h995 db 085h, 07fh, 065h, 080h, 07dh, 08fh, 025h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 996 996 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 997 997 … … 1190 1190 times 1144 db 0 1191 1191 1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d 08 class=CODE group=AUTO1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d18 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 09f a0h ; e8 d3 861587 call 09fb0h ; e8 e3 86 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 09f d0h ; e8 d3 841817 call 09fe0h ; e8 e3 84 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 09f d0h ; e8 80 802256 call 09fe0h ; e8 90 80 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 09f d0h ; e8 60 802266 call 09fe0h ; e8 70 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 09f d0h ; e8 0f 802297 call 09fe0h ; e8 1f 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 09f d0h ; e8 f1 7f2306 call 09fe0h ; e8 01 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 09f d0h ; e8 49 7a2863 call 09fe0h ; e8 59 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 09f d0h ; e8 87 773139 call 09fe0h ; e8 97 77 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 09f d0h ; e8 70 773147 call 09fe0h ; e8 80 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 09f d0h ; e8 1c 773181 call 09fe0h ; e8 2c 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 09f d0h ; e8 07 773188 call 09fe0h ; e8 17 77 3189 3189 mov word [bp-024h], dx ; 89 56 dc 3190 3190 mov ax, dx ; 89 d0 … … 5456 5456 mov dx, ss ; 8c d2 5457 5457 lea ax, [bp-026h] ; 8d 46 da 5458 call 0 9ff0h ; e8 6a 625458 call 0a000h ; e8 7a 62 5459 5459 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5460 5460 mov ax, strict word 00011h ; b8 11 00 … … 5929 5929 xor dl, dl ; 30 d2 5930 5930 xor cx, cx ; 31 c9 5931 call 09f 80h ; e8 95 5c5931 call 09f90h ; e8 a5 5c 5932 5932 xor bx, bx ; 31 db 5933 5933 add ax, si ; 01 f0 … … 5935 5935 mov bx, di ; 89 fb 5936 5936 xor cx, cx ; 31 c9 5937 call 09f 80h ; e8 88 5c5937 call 09f90h ; e8 98 5c 5938 5938 mov bx, ax ; 89 c3 5939 5939 mov ax, word [bp-010h] ; 8b 46 f0 … … 5970 5970 mov dx, ss ; 8c d2 5971 5971 lea ax, [bp-02eh] ; 8d 46 d2 5972 call 0 9ff0h ; e8 a1 5c5972 call 0a000h ; e8 b1 5c 5973 5973 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 5974 5974 mov ax, word [bp-014h] ; 8b 46 ec … … 6309 6309 mov dx, ss ; 8c d2 6310 6310 lea ax, [bp-030h] ; 8d 46 d0 6311 call 0 9ff0h ; e8 c4 586311 call 0a000h ; e8 d4 58 6312 6312 mov word [bp-030h], strict word 00028h ; c7 46 d0 28 00 6313 6313 mov ax, word [bp-00eh] ; 8b 46 f2 … … 6816 6816 xor ah, ah ; 30 e4 6817 6817 sar ax, 004h ; c1 f8 04 6818 call 07d 65h ; e8 cc306818 call 07d70h ; e8 d7 30 6819 6819 cmp byte [bp+004h], 002h ; 80 7e 04 02 6820 6820 jne short 04ca2h ; 75 03 … … 8240 8240 mov dx, word [bp+00ch] ; 8b 56 0c 8241 8241 mov si, strict word 00020h ; be 20 00 8242 call 09f d0h ; e8 d8 458242 call 09fe0h ; e8 e8 45 8243 8243 test ax, ax ; 85 c0 8244 8244 jne short 05a08h ; 75 0c … … 8278 8278 mov bx, strict word 0003fh ; bb 3f 00 8279 8279 xor cx, cx ; 31 c9 8280 call 09f 80h ; e8 2f 458280 call 09f90h ; e8 3f 45 8281 8281 mov bx, ax ; 89 c3 8282 8282 mov cx, dx ; 89 d1 8283 8283 mov ax, word [bp-004h] ; 8b 46 fc 8284 8284 mov dx, si ; 89 f2 8285 call 09f a0h ; e8 43 458285 call 09fb0h ; e8 53 45 8286 8286 mov word [es:di+002h], ax ; 26 89 45 02 8287 8287 cmp ax, 00400h ; 3d 00 04 … … 8492 8492 mov bx, cx ; 89 cb 8493 8493 xor cx, cx ; 31 c9 8494 call 09f 80h ; e8 08 438494 call 09f90h ; e8 18 43 8495 8495 xor bx, bx ; 31 db 8496 8496 add ax, word [bp-008h] ; 03 46 f8 … … 8498 8498 mov bx, word [bp-00ah] ; 8b 5e f6 8499 8499 xor cx, cx ; 31 c9 8500 call 09f 80h ; e8 f9 428500 call 09f90h ; e8 09 43 8501 8501 xor bx, bx ; 31 db 8502 8502 add ax, word [bp-006h] ; 03 46 fa … … 8666 8666 mov bx, word [bp-008h] ; 8b 5e f8 8667 8667 xor cx, cx ; 31 c9 8668 call 09f 80h ; e8 22 418668 call 09f90h ; e8 32 41 8669 8669 mov bx, word [bp-006h] ; 8b 5e fa 8670 8670 xor cx, cx ; 31 c9 8671 call 09f 80h ; e8 1a 418671 call 09f90h ; e8 2a 41 8672 8672 mov word [bp-010h], ax ; 89 46 f0 8673 8673 mov word [bp-00ch], dx ; 89 56 f4 … … 8821 8821 xor bx, bx ; 31 db 8822 8822 mov si, strict word 00020h ; be 20 00 8823 call 09f e0h ; e8 dd 3f8823 call 09ff0h ; e8 ed 3f 8824 8824 mov si, ax ; 89 c6 8825 8825 mov word [bp-00ch], bx ; 89 5e f4 … … 8978 8978 mov bx, word [bp-00ch] ; 8b 5e f4 8979 8979 mov si, strict word 00020h ; be 20 00 8980 call 09f d0h ; e8 e9 3d8980 call 09fe0h ; e8 f9 3d 8981 8981 mov bx, di ; 89 fb 8982 8982 mov word [es:bx+014h], dx ; 26 89 57 14 … … 9334 9334 mov bx, strict word 0000fh ; bb 0f 00 9335 9335 xor cx, cx ; 31 c9 9336 call 09f a0h ; e8 26 3a9336 call 09fb0h ; e8 36 3a 9337 9337 mov cx, ax ; 89 c1 9338 9338 mov bx, dx ; 89 d3 … … 11586 11586 pop bp ; 5d 11587 11587 retn ; c3 11588 show_logo_: ; 0xf7b3f LB 0x2 2611588 show_logo_: ; 0xf7b3f LB 0x231 11589 11589 push bp ; 55 11590 11590 mov bp, sp ; 89 e5 … … 11620 11620 cmp ax, strict word 0004fh ; 3d 4f 00 11621 11621 je short 07b86h ; 74 03 11622 jmp near 07c4 3h ; e9 bd0011622 jmp near 07c4eh ; e9 c8 00 11623 11623 mov al, dl ; 88 d0 11624 11624 add AL, strict byte 004h ; 04 04 … … 11649 11649 jne short 07bc8h ; 75 04 11650 11650 test bx, bx ; 85 db 11651 je short 07 c20h ; 74 5811651 je short 07b83h ; 74 bb 11652 11652 mov bx, 00142h ; bb 42 01 11653 11653 mov ax, 04f02h ; b8 02 4f … … 11686 11686 je short 07c43h ; 74 27 11687 11687 test cl, cl ; 84 c9 11688 je short 07c22h ; 74 02 11689 jmp short 07c43h ; eb 21 11688 jne short 07c43h ; 75 23 11690 11689 mov bx, strict word 00010h ; bb 10 00 11691 jmp short 07c2 ch ; eb 0511690 jmp short 07c2ah ; eb 05 11692 11691 dec bx ; 4b 11693 11692 test bx, bx ; 85 db 11694 jbe short 07c4 3h ; 76 1711693 jbe short 07c4eh ; 76 24 11695 11694 mov ax, bx ; 89 d8 11696 11695 or ah, 002h ; 80 cc 02 … … 11699 11698 xor dx, dx ; 31 d2 11700 11699 mov ax, strict word 00001h ; b8 01 00 11701 call 07904h ; e8 c 7fc11700 call 07904h ; e8 c9 fc 11702 11701 cmp AL, strict byte 086h ; 3c 86 11703 jne short 07c2 7h ; 75 e611702 jne short 07c25h ; 75 e6 11704 11703 mov CL, strict byte 001h ; b1 01 11704 jmp short 07c4eh ; eb 0b 11705 test cl, cl ; 84 c9 11706 jne short 07c4eh ; 75 07 11707 mov ax, 00200h ; b8 00 02 11708 mov dx, 003b8h ; ba b8 03 11709 out DX, ax ; ef 11705 11710 xor bx, bx ; 31 db 11706 11711 mov dx, 0037dh ; ba 7d 03 11707 11712 mov ax, si ; 89 f0 11708 call 0165eh ; e8 119a11713 call 0165eh ; e8 06 9a 11709 11714 mov AL, strict byte 003h ; b0 03 11710 11715 mov AH, strict byte 000h ; b4 00 11711 11716 int 010h ; cd 10 11712 11717 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11713 je short 07c 6dh ; 74 1411718 je short 07c78h ; 74 14 11714 11719 cmp byte [bp-012h], 000h ; 80 7e ee 00 11715 jne short 07c9 4h ; 75 3511720 jne short 07c9fh ; 75 35 11716 11721 cmp byte [bp-010h], 000h ; 80 7e f0 00 11717 jne short 07c9 4h ; 75 2f11722 jne short 07c9fh ; 75 2f 11718 11723 cmp word [bp-014h], strict byte 00000h ; 83 7e ec 00 11719 je short 07c7 0h ; 74 0511720 jmp short 07c9 4h ; eb 2711721 jmp near 07d 48h ; e9 d8 0011724 je short 07c7bh ; 74 05 11725 jmp short 07c9fh ; eb 27 11726 jmp near 07d53h ; e9 d8 00 11722 11727 cmp byte [bp-00eh], 002h ; 80 7e f2 02 11723 jne short 07c8 1h ; 75 0b11728 jne short 07c8ch ; 75 0b 11724 11729 push 00a4bh ; 68 4b 0a 11725 11730 push strict byte 00002h ; 6a 02 11726 call 01966h ; e8 e89c11731 call 01966h ; e8 dd 9c 11727 11732 add sp, strict byte 00004h ; 83 c4 04 11728 11733 test cl, cl ; 84 c9 11729 jne short 07c9 4h ; 75 0f11734 jne short 07c9fh ; 75 0f 11730 11735 mov dx, strict word 00001h ; ba 01 00 11731 11736 mov ax, 000c0h ; b8 c0 00 11732 call 07904h ; e8 76fc11737 call 07904h ; e8 6b fc 11733 11738 cmp AL, strict byte 086h ; 3c 86 11734 jne short 07c9 4h ; 75 0211739 jne short 07c9fh ; 75 02 11735 11740 mov CL, strict byte 001h ; b1 01 11736 11741 test cl, cl ; 84 c9 11737 je short 07c 6dh ; 74 d511742 je short 07c78h ; 74 d5 11738 11743 mov byte [bp-00ch], 000h ; c6 46 f4 00 11739 11744 mov ax, 00100h ; b8 00 01 … … 11754 11759 push 00a6dh ; 68 6d 0a 11755 11760 push strict byte 00002h ; 6a 02 11756 call 01966h ; e8 a59c11761 call 01966h ; e8 9a 9c 11757 11762 add sp, strict byte 00004h ; 83 c4 04 11758 call 079ddh ; e8 16fd11763 call 079ddh ; e8 0b fd 11759 11764 push 00ab1h ; 68 b1 0a 11760 11765 push strict byte 00002h ; 6a 02 11761 call 01966h ; e8 979c11766 call 01966h ; e8 8c 9c 11762 11767 add sp, strict byte 00004h ; 83 c4 04 11763 11768 mov dx, strict word 00001h ; ba 01 00 11764 11769 mov ax, strict word 00040h ; b8 40 00 11765 call 07904h ; e8 29fc11770 call 07904h ; e8 1e fc 11766 11771 mov bl, al ; 88 c3 11767 11772 test al, al ; 84 c0 11768 je short 07cd 2h ; 74 f111773 je short 07cddh ; 74 f1 11769 11774 cmp AL, strict byte 030h ; 3c 30 11770 je short 07d 35h ; 74 5011775 je short 07d40h ; 74 50 11771 11776 cmp bl, 002h ; 80 fb 02 11772 jc short 07d 0eh ; 72 2411777 jc short 07d19h ; 72 24 11773 11778 cmp bl, 009h ; 80 fb 09 11774 jnbe short 07d 0eh ; 77 1f11779 jnbe short 07d19h ; 77 1f 11775 11780 mov al, bl ; 88 d8 11776 11781 xor ah, ah ; 30 e4 11777 call 07b17h ; e8 21fe11782 call 07b17h ; e8 16 fe 11778 11783 cmp AL, strict byte 0ffh ; 3c ff 11779 jne short 07 cfch ; 75 0211780 jmp short 07cd 2h ; eb d611784 jne short 07d07h ; 75 02 11785 jmp short 07cddh ; eb d6 11781 11786 mov bl, al ; 88 c3 11782 11787 xor bh, bh ; 30 ff 11783 11788 mov dx, 0037ch ; ba 7c 03 11784 11789 mov ax, si ; 89 f0 11785 call 0165eh ; e8 569911790 call 0165eh ; e8 4b 99 11786 11791 mov byte [bp-00ch], 002h ; c6 46 f4 02 11787 jmp short 07d 35h ; eb 2711792 jmp short 07d40h ; eb 27 11788 11793 cmp bl, 02eh ; 80 fb 2e 11789 je short 07d2 3h ; 74 1011794 je short 07d2eh ; 74 10 11790 11795 cmp bl, 026h ; 80 fb 26 11791 je short 07d 29h ; 74 1111796 je short 07d34h ; 74 11 11792 11797 cmp bl, 021h ; 80 fb 21 11793 jne short 07d 2fh ; 75 1211798 jne short 07d3ah ; 75 12 11794 11799 mov byte [bp-00ch], 001h ; c6 46 f4 01 11795 jmp short 07d 35h ; eb 1211800 jmp short 07d40h ; eb 12 11796 11801 mov byte [bp-00ch], 003h ; c6 46 f4 03 11797 jmp short 07d 35h ; eb 0c11802 jmp short 07d40h ; eb 0c 11798 11803 mov byte [bp-00ch], 004h ; c6 46 f4 04 11799 jmp short 07d 35h ; eb 0611804 jmp short 07d40h ; eb 06 11800 11805 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11801 je short 07cd 2h ; 74 9d11806 je short 07cddh ; 74 9d 11802 11807 mov bl, byte [bp-00ch] ; 8a 5e f4 11803 11808 xor bh, bh ; 30 ff 11804 11809 mov dx, 0037dh ; ba 7d 03 11805 11810 mov ax, si ; 89 f0 11806 call 0165eh ; e8 1 c9911811 call 0165eh ; e8 11 99 11807 11812 mov AL, strict byte 003h ; b0 03 11808 11813 mov AH, strict byte 000h ; b4 00 … … 11817 11822 push DS ; 1e 11818 11823 mov ds, ax ; 8e d8 11819 call 0edbfh ; e8 667011824 call 0edbfh ; e8 5b 70 11820 11825 pop DS ; 1f 11821 11826 pop bp ; 5d … … 11828 11833 pop bp ; 5d 11829 11834 retn ; c3 11830 delay_boot_: ; 0xf7d 65LB 0x6b11835 delay_boot_: ; 0xf7d70 LB 0x6b 11831 11836 push bp ; 55 11832 11837 mov bp, sp ; 89 e5 … … 11838 11843 mov dx, ax ; 89 c2 11839 11844 test ax, ax ; 85 c0 11840 je short 07d c6h ; 74 5311845 je short 07dd1h ; 74 53 11841 11846 mov AL, strict byte 034h ; b0 34 11842 11847 out strict byte 043h, AL ; e6 43 … … 11848 11853 push 00afbh ; 68 fb 0a 11849 11854 push strict byte 00002h ; 6a 02 11850 call 01966h ; e8 d e9b11855 call 01966h ; e8 d3 9b 11851 11856 add sp, strict byte 00006h ; 83 c4 06 11852 11857 mov bx, dx ; 89 d3 11853 11858 test bx, bx ; 85 db 11854 jbe short 07d a8h ; 76 1711859 jbe short 07db3h ; 76 17 11855 11860 push bx ; 53 11856 11861 push 00b19h ; 68 19 0b 11857 11862 push strict byte 00002h ; 6a 02 11858 call 01966h ; e8 c c9b11863 call 01966h ; e8 c1 9b 11859 11864 add sp, strict byte 00006h ; 83 c4 06 11860 11865 xor dx, dx ; 31 d2 11861 11866 mov ax, strict word 00040h ; b8 40 00 11862 call 07904h ; e8 5 ffb11867 call 07904h ; e8 54 fb 11863 11868 dec bx ; 4b 11864 jmp short 07d 8dh ; eb e511869 jmp short 07d98h ; eb e5 11865 11870 push 00a49h ; 68 49 0a 11866 11871 push strict byte 00002h ; 6a 02 11867 call 01966h ; e8 b69b11872 call 01966h ; e8 ab 9b 11868 11873 add sp, strict byte 00004h ; 83 c4 04 11869 11874 mov AL, strict byte 034h ; b0 34 … … 11876 11881 push DS ; 1e 11877 11882 mov ds, ax ; 8e d8 11878 call 0edbfh ; e8 f b6f11883 call 0edbfh ; e8 f0 6f 11879 11884 pop DS ; 1f 11880 11885 pop bp ; 5d … … 11887 11892 pop bp ; 5d 11888 11893 retn ; c3 11889 scsi_cmd_data_in_: ; 0xf7dd 0LB 0xd511894 scsi_cmd_data_in_: ; 0xf7ddb LB 0xd5 11890 11895 push bp ; 55 11891 11896 mov bp, sp ; 89 e5 … … 11903 11908 ; sub ah, ah ; 2a e4 11904 11909 test AL, strict byte 001h ; a8 01 11905 jne short 07d e6h ; 75 f711910 jne short 07df1h ; 75 f7 11906 11911 mov al, byte [bp+004h] ; 8a 46 04 11907 11912 cmp AL, strict byte 010h ; 3c 10 11908 jne short 07 dfah ; 75 0411913 jne short 07e05h ; 75 04 11909 11914 xor ax, ax ; 31 c0 11910 jmp short 07 dfch ; eb 0211915 jmp short 07e07h ; eb 02 11911 11916 xor ah, ah ; 30 e4 11912 11917 mov di, ax ; 89 c7 … … 11916 11921 shr dx, 1 ; d1 ea 11917 11922 rcr ax, 1 ; d1 d8 11918 loop 07e 06h ; e2 fa11923 loop 07e11h ; e2 fa 11919 11924 mov cx, ax ; 89 c1 11920 11925 and cx, 000f0h ; 81 e1 f0 00 … … 11934 11939 shr dx, 1 ; d1 ea 11935 11940 rcr ax, 1 ; d1 d8 11936 loop 07e 2bh ; e2 fa11941 loop 07e36h ; e2 fa 11937 11942 mov dx, si ; 89 f2 11938 11943 out DX, AL ; ee … … 11941 11946 xor ah, ah ; 30 e4 11942 11947 cmp cx, ax ; 39 c1 11943 jnc short 07e 4dh ; 73 0e11948 jnc short 07e58h ; 73 0e 11944 11949 les di, [bp-00ah] ; c4 7e f6 11945 11950 add di, cx ; 01 cf … … 11948 11953 out DX, AL ; ee 11949 11954 inc cx ; 41 11950 jmp short 07e 36h ; eb e911955 jmp short 07e41h ; eb e9 11951 11956 mov dx, si ; 89 f2 11952 11957 in AL, DX ; ec … … 11954 11959 ; sub ah, ah ; 2a e4 11955 11960 test AL, strict byte 001h ; a8 01 11956 jne short 07e 4dh ; 75 f711961 jne short 07e58h ; 75 f7 11957 11962 test AL, strict byte 002h ; a8 02 11958 je short 07e 68h ; 74 0e11963 je short 07e73h ; 74 0e 11959 11964 lea dx, [si+003h] ; 8d 54 03 11960 11965 xor al, al ; 30 c0 … … 11964 11969 ; sub ah, ah ; 2a e4 11965 11970 mov di, strict word 00004h ; bf 04 00 11966 jmp short 07e 9ah ; eb 3211971 jmp short 07ea5h ; eb 32 11967 11972 lea dx, [si+001h] ; 8d 54 01 11968 11973 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 11969 jne short 07e 77h ; 75 0611974 jne short 07e82h ; 75 06 11970 11975 cmp bx, 08000h ; 81 fb 00 80 11971 jbe short 07e9 1h ; 76 1a11976 jbe short 07e9ch ; 76 1a 11972 11977 mov cx, 08000h ; b9 00 80 11973 11978 les di, [bp+006h] ; c4 7e 06 … … 11978 11983 add ax, 00800h ; 05 00 08 11979 11984 mov word [bp+008h], ax ; 89 46 08 11980 jmp short 07e 68h ; eb d711985 jmp short 07e73h ; eb d7 11981 11986 mov cx, bx ; 89 d9 11982 11987 les di, [bp+006h] ; c4 7e 06 … … 11989 11994 pop bp ; 5d 11990 11995 retn 0000ah ; c2 0a 00 11991 scsi_cmd_data_out_: ; 0xf7e a5LB 0xd511996 scsi_cmd_data_out_: ; 0xf7eb0 LB 0xd5 11992 11997 push bp ; 55 11993 11998 mov bp, sp ; 89 e5 … … 12005 12010 ; sub ah, ah ; 2a e4 12006 12011 test AL, strict byte 001h ; a8 01 12007 jne short 07e bbh ; 75 f712012 jne short 07ec6h ; 75 f7 12008 12013 mov al, byte [bp+004h] ; 8a 46 04 12009 12014 cmp AL, strict byte 010h ; 3c 10 12010 jne short 07e cfh ; 75 0412015 jne short 07edah ; 75 04 12011 12016 xor ax, ax ; 31 c0 12012 jmp short 07ed 1h ; eb 0212017 jmp short 07edch ; eb 02 12013 12018 xor ah, ah ; 30 e4 12014 12019 mov si, ax ; 89 c6 … … 12018 12023 shr dx, 1 ; d1 ea 12019 12024 rcr ax, 1 ; d1 d8 12020 loop 07e dbh ; e2 fa12025 loop 07ee6h ; e2 fa 12021 12026 mov cx, ax ; 89 c1 12022 12027 and cx, 000f0h ; 81 e1 f0 00 … … 12036 12041 shr dx, 1 ; d1 ea 12037 12042 rcr ax, 1 ; d1 d8 12038 loop 07f0 0h ; e2 fa12043 loop 07f0bh ; e2 fa 12039 12044 mov dx, di ; 89 fa 12040 12045 out DX, AL ; ee … … 12043 12048 xor ah, ah ; 30 e4 12044 12049 cmp cx, ax ; 39 c1 12045 jnc short 07f2 2h ; 73 0e12050 jnc short 07f2dh ; 73 0e 12046 12051 les si, [bp-00ah] ; c4 76 f6 12047 12052 add si, cx ; 01 ce … … 12050 12055 out DX, AL ; ee 12051 12056 inc cx ; 41 12052 jmp short 07f 0bh ; eb e912057 jmp short 07f16h ; eb e9 12053 12058 lea dx, [di+001h] ; 8d 55 01 12054 12059 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 12055 jne short 07f3 1h ; 75 0612060 jne short 07f3ch ; 75 06 12056 12061 cmp bx, 08000h ; 81 fb 00 80 12057 jbe short 07f 4ch ; 76 1b12062 jbe short 07f57h ; 76 1b 12058 12063 mov cx, 08000h ; b9 00 80 12059 12064 les si, [bp+006h] ; c4 76 06 … … 12065 12070 add ax, 00800h ; 05 00 08 12066 12071 mov word [bp+008h], ax ; 89 46 08 12067 jmp short 07f2 2h ; eb d612072 jmp short 07f2dh ; eb d6 12068 12073 mov cx, bx ; 89 d9 12069 12074 les si, [bp+006h] ; c4 76 06 … … 12075 12080 ; sub ah, ah ; 2a e4 12076 12081 test AL, strict byte 001h ; a8 01 12077 jne short 07f5 4h ; 75 f712082 jne short 07f5fh ; 75 f7 12078 12083 test AL, strict byte 002h ; a8 02 12079 je short 07f 6fh ; 74 0e12084 je short 07f7ah ; 74 0e 12080 12085 lea dx, [di+003h] ; 8d 55 03 12081 12086 xor al, al ; 30 c0 … … 12085 12090 ; sub ah, ah ; 2a e4 12086 12091 mov ax, strict word 00004h ; b8 04 00 12087 jmp short 07f7 1h ; eb 0212092 jmp short 07f7ch ; eb 02 12088 12093 xor ax, ax ; 31 c0 12089 12094 lea sp, [bp-004h] ; 8d 66 fc … … 12092 12097 pop bp ; 5d 12093 12098 retn 0000ah ; c2 0a 00 12094 @scsi_read_sectors: ; 0xf7f 7aLB 0xe012099 @scsi_read_sectors: ; 0xf7f85 LB 0xe0 12095 12100 push bp ; 55 12096 12101 mov bp, sp ; 89 e5 … … 12104 12109 mov byte [bp-006h], al ; 88 46 fa 12105 12110 cmp AL, strict byte 004h ; 3c 04 12106 jbe short 07f a6h ; 76 1112111 jbe short 07fb1h ; 76 11 12107 12112 xor ah, ah ; 30 e4 12108 12113 push ax ; 50 … … 12110 12115 push 00b30h ; 68 30 0b 12111 12116 push strict byte 00007h ; 6a 07 12112 call 01966h ; e8 c39912117 call 01966h ; e8 b8 99 12113 12118 add sp, strict byte 00008h ; 83 c4 08 12114 12119 mov es, [bp+006h] ; 8e 46 06 … … 12150 12155 sal word [bp-00ah], 1 ; d1 66 f6 12151 12156 rcl word [bp-008h], 1 ; d1 56 f8 12152 loop 0801 0h ; e2 f812157 loop 0801bh ; e2 f8 12153 12158 push word [bp-008h] ; ff 76 f8 12154 12159 push word [bp-00ah] ; ff 76 f6 … … 12159 12164 mov cx, ss ; 8c d1 12160 12165 lea bx, [bp-01ah] ; 8d 5e e6 12161 call 07dd 0h ; e8 9e fd12166 call 07ddbh ; e8 9e fd 12162 12167 mov ah, al ; 88 c4 12163 12168 test al, al ; 84 c0 12164 jne short 080 4dh ; 75 1512169 jne short 08058h ; 75 15 12165 12170 mov es, [bp+006h] ; 8e 46 06 12166 12171 mov word [es:si+018h], di ; 26 89 7c 18 … … 12176 12181 pop bp ; 5d 12177 12182 retn 00004h ; c2 04 00 12178 @scsi_write_sectors: ; 0xf80 5aLB 0xe012183 @scsi_write_sectors: ; 0xf8065 LB 0xe0 12179 12184 push bp ; 55 12180 12185 mov bp, sp ; 89 e5 … … 12188 12193 mov byte [bp-006h], al ; 88 46 fa 12189 12194 cmp AL, strict byte 004h ; 3c 04 12190 jbe short 080 86h ; 76 1112195 jbe short 08091h ; 76 11 12191 12196 xor ah, ah ; 30 e4 12192 12197 push ax ; 50 … … 12194 12199 push 00b30h ; 68 30 0b 12195 12200 push strict byte 00007h ; 6a 07 12196 call 01966h ; e8 e39812201 call 01966h ; e8 d8 98 12197 12202 add sp, strict byte 00008h ; 83 c4 08 12198 12203 mov es, [bp+006h] ; 8e 46 06 … … 12234 12239 sal word [bp-00ah], 1 ; d1 66 f6 12235 12240 rcl word [bp-008h], 1 ; d1 56 f8 12236 loop 080f 0h ; e2 f812241 loop 080fbh ; e2 f8 12237 12242 push word [bp-008h] ; ff 76 f8 12238 12243 push word [bp-00ah] ; ff 76 f6 … … 12243 12248 mov cx, ss ; 8c d1 12244 12249 lea bx, [bp-01ah] ; 8d 5e e6 12245 call 07e a5h ; e8 93 fd12250 call 07eb0h ; e8 93 fd 12246 12251 mov ah, al ; 88 c4 12247 12252 test al, al ; 84 c0 12248 jne short 081 2dh ; 75 1512253 jne short 08138h ; 75 15 12249 12254 mov es, [bp+006h] ; 8e 46 06 12250 12255 mov word [es:si+018h], di ; 26 89 7c 18 … … 12260 12265 pop bp ; 5d 12261 12266 retn 00004h ; c2 04 00 12262 scsi_cmd_packet_: ; 0xf81 3aLB 0x16812267 scsi_cmd_packet_: ; 0xf8145 LB 0x168 12263 12268 push bp ; 55 12264 12269 mov bp, sp ; 89 e5 … … 12272 12277 mov dx, strict word 0000eh ; ba 0e 00 12273 12278 mov ax, strict word 00040h ; b8 40 00 12274 call 0166ch ; e8 169512279 call 0166ch ; e8 0b 95 12275 12280 mov si, 00122h ; be 22 01 12276 12281 mov word [bp-00ah], ax ; 89 46 f6 12277 12282 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12278 jne short 0818 1h ; 75 1f12283 jne short 0818ch ; 75 1f 12279 12284 mov bx, 00da0h ; bb a0 0d 12280 12285 mov cx, ds ; 8c d9 12281 12286 mov ax, strict word 00004h ; b8 04 00 12282 call 01923h ; e8 b69712287 call 01923h ; e8 ab 97 12283 12288 push 00b62h ; 68 62 0b 12284 12289 push 00b72h ; 68 72 0b 12285 12290 push strict byte 00004h ; 6a 04 12286 call 01966h ; e8 e e9712291 call 01966h ; e8 e3 97 12287 12292 add sp, strict byte 00006h ; 83 c4 06 12288 12293 mov dx, strict word 00001h ; ba 01 00 12289 jmp near 082 97h ; e9 16 0112294 jmp near 082a2h ; e9 16 01 12290 12295 sub di, strict byte 00008h ; 83 ef 08 12291 12296 sal di, 002h ; c1 e7 02 … … 12301 12306 ; sub ah, ah ; 2a e4 12302 12307 test AL, strict byte 001h ; a8 01 12303 jne short 081 9dh ; 75 f712308 jne short 081a8h ; 75 f7 12304 12309 xor ax, ax ; 31 c0 12305 12310 mov dx, word [bp+006h] ; 8b 56 06 … … 12317 12322 shr dx, 1 ; d1 ea 12318 12323 rcr ax, 1 ; d1 d8 12319 loop 081 c8h ; e2 fa12324 loop 081d3h ; e2 fa 12320 12325 and ax, 000f0h ; 25 f0 00 12321 12326 mov cl, byte [bp-006h] ; 8a 4e fa … … 12336 12341 shr dx, 1 ; d1 ea 12337 12342 rcr ax, 1 ; d1 d8 12338 loop 081f 0h ; e2 fa12343 loop 081fbh ; e2 fa 12339 12344 mov dx, bx ; 89 da 12340 12345 out DX, AL ; ee … … 12343 12348 xor ah, ah ; 30 e4 12344 12349 cmp cx, ax ; 39 c1 12345 jnc short 0821 2h ; 73 0e12350 jnc short 0821dh ; 73 0e 12346 12351 les di, [bp-00eh] ; c4 7e f2 12347 12352 add di, cx ; 01 cf … … 12350 12355 out DX, AL ; ee 12351 12356 inc cx ; 41 12352 jmp short 08 1fbh ; eb e912357 jmp short 08206h ; eb e9 12353 12358 mov dx, bx ; 89 da 12354 12359 in AL, DX ; ec … … 12356 12361 ; sub ah, ah ; 2a e4 12357 12362 test AL, strict byte 001h ; a8 01 12358 jne short 0821 2h ; 75 f712363 jne short 0821dh ; 75 f7 12359 12364 test AL, strict byte 002h ; a8 02 12360 je short 082 2dh ; 74 0e12365 je short 08238h ; 74 0e 12361 12366 lea dx, [bx+003h] ; 8d 57 03 12362 12367 xor al, al ; 30 c0 … … 12366 12371 ; sub ah, ah ; 2a e4 12367 12372 mov dx, strict word 00003h ; ba 03 00 12368 jmp short 082 97h ; eb 6a12373 jmp short 082a2h ; eb 6a 12369 12374 mov ax, word [bp+004h] ; 8b 46 04 12370 12375 test ax, ax ; 85 c0 12371 je short 082 3ch ; 74 0812376 je short 08247h ; 74 08 12372 12377 lea dx, [bx+001h] ; 8d 57 01 12373 12378 mov cx, ax ; 89 c1 12374 12379 in AL, DX ; ec 12375 loop 082 39h ; e2 fd12380 loop 08244h ; e2 fd 12376 12381 mov ax, word [bp+006h] ; 8b 46 06 12377 12382 mov es, [bp-00ah] ; 8e 46 f6 … … 12381 12386 lea ax, [bx+001h] ; 8d 47 01 12382 12387 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 12383 jne short 082 5dh ; 75 0712388 jne short 08268h ; 75 07 12384 12389 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 12385 jbe short 082 7ah ; 76 1d12390 jbe short 08285h ; 76 1d 12386 12391 mov dx, ax ; 89 c2 12387 12392 mov cx, 08000h ; b9 00 80 … … 12393 12398 add ax, 00800h ; 05 00 08 12394 12399 mov word [bp+00eh], ax ; 89 46 0e 12395 jmp short 082 4dh ; eb d312400 jmp short 08258h ; eb d3 12396 12401 mov dx, ax ; 89 c2 12397 12402 mov cx, word [bp+006h] ; 8b 4e 06 … … 12400 12405 mov es, [bp-00ah] ; 8e 46 f6 12401 12406 cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00 12402 je short 082 95h ; 74 0712407 je short 082a0h ; 74 07 12403 12408 mov cx, word [es:si+020h] ; 26 8b 4c 20 12404 12409 in AL, DX ; ec 12405 loop 0829 2h ; e2 fd12410 loop 0829dh ; e2 fd 12406 12411 xor dx, dx ; 31 d2 12407 12412 mov ax, dx ; 89 d0 … … 12411 12416 pop bp ; 5d 12412 12417 retn 0000ch ; c2 0c 00 12413 scsi_enumerate_attached_devices_: ; 0xf82a 2LB 0x4a612418 scsi_enumerate_attached_devices_: ; 0xf82ad LB 0x4a6 12414 12419 push bp ; 55 12415 12420 mov bp, sp ; 89 e5 … … 12423 12428 mov dx, strict word 0000eh ; ba 0e 00 12424 12429 mov ax, strict word 00040h ; b8 40 00 12425 call 0166ch ; e8 b49312430 call 0166ch ; e8 a9 93 12426 12431 mov di, 00122h ; bf 22 01 12427 12432 mov word [bp-020h], ax ; 89 46 e0 12428 12433 mov word [bp-022h], strict word 00000h ; c7 46 de 00 00 12429 jmp near 086 c6h ; e9 00 0412434 jmp near 086d1h ; e9 00 04 12430 12435 cmp AL, strict byte 004h ; 3c 04 12431 jc short 082 cdh ; 72 0312432 jmp near 087 3eh ; e9 71 0412436 jc short 082d8h ; 72 03 12437 jmp near 08749h ; e9 71 04 12433 12438 mov cx, strict word 00010h ; b9 10 00 12434 12439 xor bx, bx ; 31 db 12435 12440 mov dx, ss ; 8c d2 12436 12441 lea ax, [bp-046h] ; 8d 46 ba 12437 call 0 9ff0h ; e8 161d12442 call 0a000h ; e8 1b 1d 12438 12443 mov byte [bp-046h], 09eh ; c6 46 ba 9e 12439 12444 mov byte [bp-045h], 010h ; c6 46 bb 10 … … 12450 12455 lea bx, [bp-046h] ; 8d 5e ba 12451 12456 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12452 call 07dd 0h ; e8 cd fa12457 call 07ddbh ; e8 cd fa 12453 12458 test al, al ; 84 c0 12454 je short 083 15h ; 74 0e12459 je short 08320h ; 74 0e 12455 12460 push 00b92h ; 68 92 0b 12456 12461 push 00bcbh ; 68 cb 0b 12457 12462 push strict byte 00007h ; 6a 07 12458 call 01966h ; e8 549612463 call 01966h ; e8 49 96 12459 12464 add sp, strict byte 00006h ; 83 c4 06 12460 12465 mov ax, word [bp-00240h] ; 8b 86 c0 fd … … 12488 12493 sal ax, 1 ; d1 e0 12489 12494 rcl dx, 1 ; d1 d2 12490 loop 0836 4h ; e2 fa12495 loop 0836fh ; e2 fa 12491 12496 or bx, ax ; 09 c3 12492 12497 or dx, si ; 09 f2 … … 12496 12501 mov word [bp-028h], bx ; 89 5e d8 12497 12502 test dx, dx ; 85 d2 12498 jne short 0838 3h ; 75 0612503 jne short 0838eh ; 75 06 12499 12504 cmp bx, 00200h ; 81 fb 00 02 12500 je short 083a 3h ; 74 2012505 je short 083aeh ; 74 20 12501 12506 mov bx, 00da0h ; bb a0 0d 12502 12507 mov cx, ds ; 8c d9 12503 12508 mov ax, strict word 00004h ; b8 04 00 12504 call 01923h ; e8 959512509 call 01923h ; e8 8a 95 12505 12510 push dx ; 52 12506 12511 push word [bp-028h] ; ff 76 d8 … … 12508 12513 push 00beah ; 68 ea 0b 12509 12514 push strict byte 00004h ; 6a 04 12510 call 01966h ; e8 c99512515 call 01966h ; e8 be 95 12511 12516 add sp, strict byte 0000ah ; 83 c4 0a 12512 jmp near 086 bah ; e9 17 0312517 jmp near 086c5h ; e9 17 03 12513 12518 mov al, byte [bp-00ch] ; 8a 46 f4 12514 12519 cmp AL, strict byte 001h ; 3c 01 12515 jc short 083 b6h ; 72 0c12516 jbe short 083 beh ; 76 1212520 jc short 083c1h ; 72 0c 12521 jbe short 083c9h ; 76 12 12517 12522 cmp AL, strict byte 003h ; 3c 03 12518 je short 083 c6h ; 74 1612523 je short 083d1h ; 74 16 12519 12524 cmp AL, strict byte 002h ; 3c 02 12520 je short 083c 2h ; 74 0e12521 jmp short 084 0fh ; eb 5912525 je short 083cdh ; 74 0e 12526 jmp short 0841ah ; eb 59 12522 12527 test al, al ; 84 c0 12523 jne short 084 0fh ; 75 5512528 jne short 0841ah ; 75 55 12524 12529 mov BL, strict byte 090h ; b3 90 12525 jmp short 083 c8h ; eb 0a12530 jmp short 083d3h ; eb 0a 12526 12531 mov BL, strict byte 098h ; b3 98 12527 jmp short 083 c8h ; eb 0612532 jmp short 083d3h ; eb 06 12528 12533 mov BL, strict byte 0a0h ; b3 a0 12529 jmp short 083 c8h ; eb 0212534 jmp short 083d3h ; eb 02 12530 12535 mov BL, strict byte 0a8h ; b3 a8 12531 12536 mov cl, bl ; 88 d9 … … 12533 12538 xor ch, ch ; 30 ed 12534 12539 mov ax, cx ; 89 c8 12535 call 016ach ; e8 d89212540 call 016ach ; e8 cd 92 12536 12541 test al, al ; 84 c0 12537 je short 084 0fh ; 74 3712542 je short 0841ah ; 74 37 12538 12543 mov al, bl ; 88 d8 12539 12544 db 0feh, 0c0h 12540 12545 ; inc al ; fe c0 12541 12546 xor ah, ah ; 30 e4 12542 call 016ach ; e8 c b9212547 call 016ach ; e8 c0 92 12543 12548 xor ah, ah ; 30 e4 12544 12549 mov dx, ax ; 89 c2 12545 12550 sal dx, 008h ; c1 e2 08 12546 12551 mov al, bl ; 88 d8 12547 call 016ach ; e8 b f9212552 call 016ach ; e8 b4 92 12548 12553 xor ah, ah ; 30 e4 12549 12554 add ax, dx ; 01 d0 … … 12553 12558 add AL, strict byte 002h ; 04 02 12554 12559 xor ah, ah ; 30 e4 12555 call 016ach ; e8 a f9212560 call 016ach ; e8 a4 92 12556 12561 xor ah, ah ; 30 e4 12557 12562 mov word [bp-018h], ax ; 89 46 e8 12558 12563 mov ax, cx ; 89 c8 12559 call 016ach ; e8 a59212564 call 016ach ; e8 9a 92 12560 12565 xor ah, ah ; 30 e4 12561 12566 mov word [bp-026h], ax ; 89 46 da 12562 jmp near 08 4fdh ; e9 ee 0012567 jmp near 08508h ; e9 ee 00 12563 12568 mov ax, word [bp-012h] ; 8b 46 ee 12564 12569 mov bx, word [bp-010h] ; 8b 5e f0 … … 12566 12571 mov dx, word [bp-014h] ; 8b 56 ec 12567 12572 mov si, strict word 0000ch ; be 0c 00 12568 call 09f d0h ; e8 af1b12573 call 09fe0h ; e8 b4 1b 12569 12574 mov word [bp-02ah], ax ; 89 46 d6 12570 12575 mov word [bp-016h], bx ; 89 5e ea … … 12573 12578 mov ax, word [bp-012h] ; 8b 46 ee 12574 12579 test ax, ax ; 85 c0 12575 jnbe short 084 49h ; 77 1512576 je short 084 39h ; 74 0312577 jmp near 084 beh ; e9 85 0012580 jnbe short 08454h ; 77 15 12581 je short 08444h ; 74 03 12582 jmp near 084c9h ; e9 85 00 12578 12583 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 12579 jnbe short 084 49h ; 77 0a12580 jne short 084 36h ; 75 f512584 jnbe short 08454h ; 77 0a 12585 jne short 08441h ; 75 f5 12581 12586 cmp word [bp-01ch], strict byte 00040h ; 83 7e e4 40 12582 jnbe short 084 49h ; 77 0212583 jne short 084 beh ; 75 7512587 jnbe short 08454h ; 77 02 12588 jne short 084c9h ; 75 75 12584 12589 mov word [bp-018h], 000ffh ; c7 46 e8 ff 00 12585 12590 mov word [bp-026h], strict word 0003fh ; c7 46 da 3f 00 … … 12588 12593 mov dx, word [bp-014h] ; 8b 56 ec 12589 12594 mov si, strict word 00006h ; be 06 00 12590 call 09f d0h ; e8 6e1b12595 call 09fe0h ; e8 73 1b 12591 12596 mov si, word [bp-01eh] ; 8b 76 e2 12592 12597 add si, dx ; 01 d6 … … 12606 12611 mov dx, si ; 89 f2 12607 12612 mov si, strict word 00008h ; be 08 00 12608 call 09f d0h ; e8 3e1b12613 call 09fe0h ; e8 43 1b 12609 12614 mov word [bp-02eh], bx ; 89 5e d2 12610 12615 mov word [bp-030h], cx ; 89 4e d0 … … 12615 12620 mov dx, word [bp-036h] ; 8b 56 ca 12616 12621 mov si, strict word 00010h ; be 10 00 12617 call 09f d0h ; e8 231b12622 call 09fe0h ; e8 28 1b 12618 12623 mov si, word [bp-032h] ; 8b 76 ce 12619 12624 add si, dx ; 01 d6 … … 12622 12627 mov ax, word [bp-02eh] ; 8b 46 d2 12623 12628 adc ax, bx ; 11 d8 12624 jmp short 08 4fdh ; eb 3f12629 jmp short 08508h ; eb 3f 12625 12630 test ax, ax ; 85 c0 12626 jnbe short 084d 4h ; 77 1212627 jne short 084e 0h ; 75 1c12631 jnbe short 084dfh ; 77 12 12632 jne short 084ebh ; 75 1c 12628 12633 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 12629 jnbe short 084d 4h ; 77 0a12630 jne short 084e 0h ; 75 1412634 jnbe short 084dfh ; 77 0a 12635 jne short 084ebh ; 75 14 12631 12636 cmp word [bp-01ch], strict byte 00020h ; 83 7e e4 20 12632 jnbe short 084d 4h ; 77 0212633 jne short 084e 0h ; 75 0c12637 jnbe short 084dfh ; 77 02 12638 jne short 084ebh ; 75 0c 12634 12639 mov word [bp-018h], 00080h ; c7 46 e8 80 00 12635 12640 mov word [bp-026h], strict word 00020h ; c7 46 da 20 00 12636 jmp short 08 4f9h ; eb 1912641 jmp short 08504h ; eb 19 12637 12642 mov word [bp-018h], strict word 00040h ; c7 46 e8 40 00 12638 12643 mov word [bp-026h], strict word 00020h ; c7 46 da 20 00 … … 12641 12646 mov dx, word [bp-014h] ; 8b 56 ec 12642 12647 mov si, strict word 0000bh ; be 0b 00 12643 call 09f d0h ; e8 d71a12648 call 09fe0h ; e8 dc 1a 12644 12649 mov si, dx ; 89 d6 12645 12650 mov dx, cx ; 89 ca … … 12676 12681 mov word [es:bx+034h], ax ; 26 89 47 34 12677 12682 test dx, dx ; 85 d2 12678 jne short 085 6fh ; 75 0612683 jne short 0857ah ; 75 06 12679 12684 cmp si, 00400h ; 81 fe 00 04 12680 jbe short 085 7dh ; 76 0e12685 jbe short 08588h ; 76 0e 12681 12686 mov word [es:bx+02ch], 00400h ; 26 c7 47 2c 00 04 12682 12687 mov word [es:bx+032h], 00400h ; 26 c7 47 32 00 04 12683 jmp short 085 85h ; eb 0812688 jmp short 08590h ; eb 08 12684 12689 mov word [es:bx+02ch], si ; 26 89 77 2c 12685 12690 mov word [es:bx+032h], si ; 26 89 77 32 … … 12687 12692 mov cx, ds ; 8c d9 12688 12693 mov ax, strict word 00004h ; b8 04 00 12689 call 01923h ; e8 939312694 call 01923h ; e8 88 93 12690 12695 push word [bp-012h] ; ff 76 ee 12691 12696 push word [bp-010h] ; ff 76 f0 … … 12702 12707 push 00c18h ; 68 18 0c 12703 12708 push strict byte 00004h ; 6a 04 12704 call 01966h ; e8 b19312709 call 01966h ; e8 a6 93 12705 12710 add sp, strict byte 00018h ; 83 c4 18 12706 12711 mov al, byte [bp-00eh] ; 8a 46 f2 … … 12730 12735 mov dx, strict word 00075h ; ba 75 00 12731 12736 mov ax, strict word 00040h ; b8 40 00 12732 call 01650h ; e8 479012737 call 01650h ; e8 3c 90 12733 12738 mov bl, al ; 88 c3 12734 12739 db 0feh, 0c3h … … 12737 12742 mov dx, strict word 00075h ; ba 75 00 12738 12743 mov ax, strict word 00040h ; b8 40 00 12739 call 0165eh ; e8 469012744 call 0165eh ; e8 3b 90 12740 12745 inc byte [bp-00ch] ; fe 46 f4 12741 jmp near 086 afh ; e9 91 0012746 jmp near 086bah ; e9 91 00 12742 12747 mov bx, 00da0h ; bb a0 0d 12743 12748 mov cx, ds ; 8c d9 12744 12749 mov ax, strict word 00004h ; b8 04 00 12745 call 01923h ; e8 fa9212750 call 01923h ; e8 ef 92 12746 12751 push word [bp-022h] ; ff 76 de 12747 12752 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12750 12755 push 00c46h ; 68 46 0c 12751 12756 push strict byte 00004h ; 6a 04 12752 call 01966h ; e8 2 c9312757 call 01966h ; e8 21 93 12753 12758 add sp, strict byte 00008h ; 83 c4 08 12754 12759 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12756 12761 mov byte [bp-00eh], al ; 88 46 f2 12757 12762 test byte [bp-00245h], 080h ; f6 86 bb fd 80 12758 je short 0865 1h ; 74 0512763 je short 0865ch ; 74 05 12759 12764 mov dx, strict word 00001h ; ba 01 00 12760 jmp short 0865 3h ; eb 0212765 jmp short 0865eh ; eb 02 12761 12766 xor dx, dx ; 31 d2 12762 12767 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12794 12799 inc word [bp-022h] ; ff 46 de 12795 12800 cmp word [bp-022h], strict byte 00010h ; 83 7e de 10 12796 jl short 086 c6h ; 7c 0312797 jmp near 087 3eh ; e9 78 0012801 jl short 086d1h ; 7c 03 12802 jmp near 08749h ; e9 78 00 12798 12803 mov byte [bp-046h], 012h ; c6 46 ba 12 12799 12804 xor al, al ; 30 c0 … … 12814 12819 lea bx, [bp-046h] ; 8d 5e ba 12815 12820 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12816 call 07dd 0h ; e8 d7 f612821 call 07ddbh ; e8 d7 f6 12817 12822 test al, al ; 84 c0 12818 je short 087 0bh ; 74 0e12823 je short 08716h ; 74 0e 12819 12824 push 00b92h ; 68 92 0b 12820 12825 push 00bb2h ; 68 b2 0b 12821 12826 push strict byte 00007h ; 6a 07 12822 call 01966h ; e8 5 e9212827 call 01966h ; e8 53 92 12823 12828 add sp, strict byte 00006h ; 83 c4 06 12824 12829 mov es, [bp-020h] ; 8e 46 e0 … … 12826 12831 mov byte [bp-00ch], al ; 88 46 f4 12827 12832 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12828 jne short 087 27h ; 75 0a12833 jne short 08732h ; 75 0a 12829 12834 test byte [bp-00246h], 01fh ; f6 86 ba fd 1f 12830 jne short 087 27h ; 75 0312831 jmp near 082 c6h ; e9 9f fb12835 jne short 08732h ; 75 03 12836 jmp near 082d1h ; e9 9f fb 12832 12837 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12833 jne short 086 afh ; 75 8112838 jne short 086bah ; 75 81 12834 12839 mov al, byte [bp-00246h] ; 8a 86 ba fd 12835 12840 and AL, strict byte 01fh ; 24 1f 12836 12841 cmp AL, strict byte 005h ; 3c 05 12837 jne short 087 3bh ; 75 0312838 jmp near 086 1eh ; e9 e3 fe12839 jmp near 086 afh ; e9 71 ff12842 jne short 08746h ; 75 03 12843 jmp near 08629h ; e9 e3 fe 12844 jmp near 086bah ; e9 71 ff 12840 12845 lea sp, [bp-00ah] ; 8d 66 f6 12841 12846 pop di ; 5f … … 12846 12851 pop bp ; 5d 12847 12852 retn ; c3 12848 _scsi_init: ; 0xf87 48LB 0x6612853 _scsi_init: ; 0xf8753 LB 0x66 12849 12854 push bp ; 55 12850 12855 mov bp, sp ; 89 e5 12851 12856 mov dx, strict word 0000eh ; ba 0e 00 12852 12857 mov ax, strict word 00040h ; b8 40 00 12853 call 0166ch ; e8 188f12858 call 0166ch ; e8 0d 8f 12854 12859 mov bx, 00122h ; bb 22 01 12855 12860 mov es, ax ; 8e c0 … … 12862 12867 ; sub ah, ah ; 2a e4 12863 12868 cmp AL, strict byte 055h ; 3c 55 12864 jne short 087 78h ; 75 0c12869 jne short 08783h ; 75 0c 12865 12870 xor al, al ; 30 c0 12866 12871 mov dx, 00433h ; ba 33 04 12867 12872 out DX, AL ; ee 12868 12873 mov ax, 00430h ; b8 30 04 12869 call 082a 2h ; e8 2a fb12874 call 082adh ; e8 2a fb 12870 12875 mov AL, strict byte 055h ; b0 55 12871 12876 mov dx, 00436h ; ba 36 04 … … 12875 12880 ; sub ah, ah ; 2a e4 12876 12881 cmp AL, strict byte 055h ; 3c 55 12877 jne short 0879 1h ; 75 0c12882 jne short 0879ch ; 75 0c 12878 12883 xor al, al ; 30 c0 12879 12884 mov dx, 00437h ; ba 37 04 12880 12885 out DX, AL ; ee 12881 12886 mov ax, 00434h ; b8 34 04 12882 call 082a 2h ; e8 11 fb12887 call 082adh ; e8 11 fb 12883 12888 mov AL, strict byte 055h ; b0 55 12884 12889 mov dx, 0043ah ; ba 3a 04 … … 12888 12893 ; sub ah, ah ; 2a e4 12889 12894 cmp AL, strict byte 055h ; 3c 55 12890 jne short 087 aah ; 75 0c12895 jne short 087b5h ; 75 0c 12891 12896 xor al, al ; 30 c0 12892 12897 mov dx, 0043bh ; ba 3b 04 12893 12898 out DX, AL ; ee 12894 12899 mov ax, 00438h ; b8 38 04 12895 call 082a 2h ; e8 f8 fa12900 call 082adh ; e8 f8 fa 12896 12901 mov sp, bp ; 89 ec 12897 12902 pop bp ; 5d 12898 12903 retn ; c3 12899 ahci_ctrl_extract_bits_: ; 0xf87 aeLB 0x1c12904 ahci_ctrl_extract_bits_: ; 0xf87b9 LB 0x1c 12900 12905 push si ; 56 12901 12906 push bp ; 55 … … 12906 12911 mov cl, byte [bp+006h] ; 8a 4e 06 12907 12912 xor ch, ch ; 30 ed 12908 jcxz 087 c5h ; e3 0612913 jcxz 087d0h ; e3 06 12909 12914 shr dx, 1 ; d1 ea 12910 12915 rcr ax, 1 ; d1 d8 12911 loop 087 bfh ; e2 fa12916 loop 087cah ; e2 fa 12912 12917 pop bp ; 5d 12913 12918 pop si ; 5e 12914 12919 retn 00002h ; c2 02 00 12915 ahci_addr_to_phys_: ; 0xf87 caLB 0x1e12920 ahci_addr_to_phys_: ; 0xf87d5 LB 0x1e 12916 12921 push bx ; 53 12917 12922 push cx ; 51 … … 12924 12929 sal ax, 1 ; d1 e0 12925 12930 rcl dx, 1 ; d1 d2 12926 loop 087 d8h ; e2 fa12931 loop 087e3h ; e2 fa 12927 12932 xor cx, cx ; 31 c9 12928 12933 add ax, bx ; 01 d8 … … 12932 12937 pop bx ; 5b 12933 12938 retn ; c3 12934 ahci_port_cmd_sync_: ; 0xf87 e8LB 0x15612939 ahci_port_cmd_sync_: ; 0xf87f3 LB 0x156 12935 12940 push bp ; 55 12936 12941 mov bp, sp ; 89 e5 … … 12947 12952 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12948 12953 cmp AL, strict byte 0ffh ; 3c ff 12949 jne short 088 0bh ; 75 0312950 jmp near 089 36h ; e9 2b 0112954 jne short 08816h ; 75 03 12955 jmp near 08941h ; e9 2b 01 12951 12956 mov al, byte [es:si+00263h] ; 26 8a 84 63 02 12952 12957 xor ah, ah ; 30 e4 … … 12961 12966 lea ax, [si+00080h] ; 8d 84 80 00 12962 12967 mov dx, cx ; 89 ca 12963 call 087 cah ; e8 92 ff12968 call 087d5h ; e8 92 ff 12964 12969 mov es, cx ; 8e c1 12965 12970 mov word [es:si+008h], ax ; 26 89 44 08 … … 13027 13032 xchg dx, ax ; 92 13028 13033 test dh, 040h ; f6 c6 40 13029 jne short 088 c9h ; 75 0413034 jne short 088d4h ; 75 04 13030 13035 test AL, strict byte 001h ; a8 01 13031 je short 088 cdh ; 74 0413036 je short 088d8h ; 74 04 13032 13037 mov AL, strict byte 001h ; b0 01 13033 jmp short 088 cfh ; eb 0213038 jmp short 088dah ; eb 02 13034 13039 xor al, al ; 30 c0 13035 13040 test al, al ; 84 c0 13036 je short 088 9ch ; 74 c913041 je short 088a7h ; 74 c9 13037 13042 mov al, byte [bp-008h] ; 8a 46 f8 13038 13043 xor ah, ah ; 30 e4 … … 13090 13095 pop bp ; 5d 13091 13096 retn ; c3 13092 ahci_cmd_data_: ; 0xf89 3eLB 0x26713097 ahci_cmd_data_: ; 0xf8949 LB 0x267 13093 13098 push bp ; 55 13094 13099 mov bp, sp ; 89 e5 … … 13115 13120 mov ax, 00080h ; b8 80 00 13116 13121 mov dx, word [bp-00ah] ; 8b 56 f6 13117 call 0 9ff0h ; e8 741613122 call 0a000h ; e8 79 16 13118 13123 mov es, [bp-00ah] ; 8e 46 f6 13119 13124 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 13133 13138 mov dx, word [es:si] ; 26 8b 14 13134 13139 mov si, strict word 00008h ; be 08 00 13135 call 09f d0h ; e8 101613140 call 09fe0h ; e8 15 16 13136 13141 mov es, [bp-00ah] ; 8e 46 f6 13137 13142 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 13144 13149 mov dx, word [es:si] ; 26 8b 14 13145 13150 mov si, strict word 00010h ; be 10 00 13146 call 09f d0h ; e8 ea1513151 call 09fe0h ; e8 ef 15 13147 13152 mov es, [bp-00ah] ; 8e 46 f6 13148 13153 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 13156 13161 mov dx, word [es:si] ; 26 8b 14 13157 13162 mov si, strict word 00018h ; be 18 00 13158 call 09f d0h ; e8 be1513163 call 09fe0h ; e8 c3 15 13159 13164 mov es, [bp-00ah] ; 8e 46 f6 13160 13165 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13167 13172 mov dx, word [es:si] ; 26 8b 14 13168 13173 mov si, strict word 00020h ; be 20 00 13169 call 09f d0h ; e8 981513174 call 09fe0h ; e8 9d 15 13170 13175 mov es, [bp-00ah] ; 8e 46 f6 13171 13176 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13178 13183 mov dx, word [es:si] ; 26 8b 14 13179 13184 mov si, strict word 00028h ; be 28 00 13180 call 09f d0h ; e8 721513185 call 09fe0h ; e8 77 15 13181 13186 mov es, [bp-00ah] ; 8e 46 f6 13182 13187 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13192 13197 mov bx, word [bp-010h] ; 8b 5e f0 13193 13198 xor cx, cx ; 31 c9 13194 call 09f 80h ; e8 ed1413199 call 09f90h ; e8 f2 14 13195 13200 push dx ; 52 13196 13201 push ax ; 50 … … 13202 13207 mov ax, 0026ah ; b8 6a 02 13203 13208 mov dx, word [bp-00ah] ; 8b 56 f6 13204 call 09e dah ; e8 2b 1413209 call 09ee5h ; e8 2b 14 13205 13210 mov es, [bp-00ah] ; 8e 46 f6 13206 13211 mov dx, word [es:di+0027eh] ; 26 8b 95 7e 02 … … 13225 13230 mov ax, word [es:bx+020h] ; 26 8b 47 20 13226 13231 test ax, ax ; 85 c0 13227 je short 08b4 1h ; 74 3b13232 je short 08b4ch ; 74 3b 13228 13233 dec ax ; 48 13229 13234 mov es, [bp-00ah] ; 8e 46 f6 … … 13243 13248 mov al, byte [bp-008h] ; 8a 46 f8 13244 13249 cmp AL, strict byte 035h ; 3c 35 13245 jne short 08b 4eh ; 75 0613250 jne short 08b59h ; 75 06 13246 13251 mov byte [bp-008h], 040h ; c6 46 f8 40 13247 jmp short 08b 65h ; eb 1713252 jmp short 08b70h ; eb 17 13248 13253 cmp AL, strict byte 0a0h ; 3c a0 13249 jne short 08b6 1h ; 75 0f13254 jne short 08b6ch ; 75 0f 13250 13255 or byte [bp-008h], 020h ; 80 4e f8 20 13251 13256 les bx, [bp-00eh] ; c4 5e f2 13252 13257 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 13253 jmp short 08b 65h ; eb 0413258 jmp short 08b70h ; eb 04 13254 13259 mov byte [bp-008h], 000h ; c6 46 f8 00 13255 13260 or byte [bp-008h], 005h ; 80 4e f8 05 … … 13258 13263 mov ax, word [bp-00eh] ; 8b 46 f2 13259 13264 mov dx, word [bp-00ch] ; 8b 56 f4 13260 call 087 e8h ; e8 71 fc13265 call 087f3h ; e8 71 fc 13261 13266 mov cx, word [bp-00ch] ; 8b 4e f4 13262 13267 mov bx, word [bp-00eh] ; 8b 5e f2 … … 13265 13270 add ax, 0026ah ; 05 6a 02 13266 13271 mov dx, cx ; 89 ca 13267 call 09f5 1h ; e8 c5 1313272 call 09f5ch ; e8 c5 13 13268 13273 mov es, cx ; 8e c1 13269 13274 mov al, byte [es:bx+003h] ; 26 8a 47 03 13270 13275 test al, al ; 84 c0 13271 je short 08b 9bh ; 74 0513276 je short 08ba6h ; 74 05 13272 13277 mov ax, strict word 00004h ; b8 04 00 13273 jmp short 08b 9dh ; eb 0213278 jmp short 08ba8h ; eb 02 13274 13279 xor ah, ah ; 30 e4 13275 13280 lea sp, [bp-006h] ; 8d 66 fa … … 13279 13284 pop bp ; 5d 13280 13285 retn ; c3 13281 ahci_port_deinit_current_: ; 0xf8b a5LB 0x18013286 ahci_port_deinit_current_: ; 0xf8bb0 LB 0x180 13282 13287 push bp ; 55 13283 13288 mov bp, sp ; 89 e5 … … 13294 13299 mov byte [bp-00ah], al ; 88 46 f6 13295 13300 cmp AL, strict byte 0ffh ; 3c ff 13296 je short 08c 26h ; 74 5f13301 je short 08c31h ; 74 5f 13297 13302 xor ah, ah ; 30 e4 13298 13303 sal ax, 007h ; c1 e0 07 … … 13338 13343 xchg dx, ax ; 92 13339 13344 test ax, 0c011h ; a9 11 c0 13340 je short 08c 29h ; 74 0713345 je short 08c34h ; 74 07 13341 13346 mov AL, strict byte 001h ; b0 01 13342 jmp short 08c 2bh ; eb 0513343 jmp near 08d 1ch ; e9 f3 0013347 jmp short 08c36h ; eb 05 13348 jmp near 08d27h ; e9 f3 00 13344 13349 xor al, al ; 30 c0 13345 13350 cmp AL, strict byte 001h ; 3c 01 13346 je short 08 bf9h ; 74 ca13351 je short 08c04h ; 74 ca 13347 13352 mov cx, strict word 00020h ; b9 20 00 13348 13353 xor bx, bx ; 31 db 13349 13354 mov ax, di ; 89 f8 13350 13355 mov dx, word [bp-00eh] ; 8b 56 f2 13351 call 0 9ff0h ; e8 b41313356 call 0a000h ; e8 b9 13 13352 13357 lea ax, [di+00080h] ; 8d 85 80 00 13353 13358 mov cx, strict word 00040h ; b9 40 00 13354 13359 xor bx, bx ; 31 db 13355 13360 mov dx, word [bp-00eh] ; 8b 56 f2 13356 call 0 9ff0h ; e8 a51313361 call 0a000h ; e8 aa 13 13357 13362 lea ax, [di+00200h] ; 8d 85 00 02 13358 13363 mov cx, strict word 00060h ; b9 60 00 13359 13364 xor bx, bx ; 31 db 13360 13365 mov dx, word [bp-00eh] ; 8b 56 f2 13361 call 0 9ff0h ; e8 961313366 call 0a000h ; e8 9b 13 13362 13367 mov al, byte [bp-00ah] ; 8a 46 f6 13363 13368 xor ah, ah ; 30 e4 … … 13464 13469 pop bp ; 5d 13465 13470 retn ; c3 13466 ahci_port_init_: ; 0xf8d 25LB 0x24d13471 ahci_port_init_: ; 0xf8d30 LB 0x24d 13467 13472 push bp ; 55 13468 13473 mov bp, sp ; 89 e5 … … 13474 13479 mov word [bp-00ah], dx ; 89 56 f6 13475 13480 mov byte [bp-008h], bl ; 88 5e f8 13476 call 08b a5h ; e8 6c fe13481 call 08bb0h ; e8 6c fe 13477 13482 mov al, bl ; 88 d8 13478 13483 xor ah, ah ; 30 e4 … … 13523 13528 xchg dx, ax ; 92 13524 13529 test ax, 0c011h ; a9 11 c0 13525 je short 08d aah ; 74 0413530 je short 08db5h ; 74 04 13526 13531 mov AL, strict byte 001h ; b0 01 13527 jmp short 08d ach ; eb 0213532 jmp short 08db7h ; eb 02 13528 13533 xor al, al ; 30 c0 13529 13534 cmp AL, strict byte 001h ; 3c 01 13530 je short 08d 75h ; 74 c513535 je short 08d80h ; 74 c5 13531 13536 mov cx, strict word 00020h ; b9 20 00 13532 13537 xor bx, bx ; 31 db 13533 13538 mov ax, si ; 89 f0 13534 13539 mov dx, word [bp-00ah] ; 8b 56 f6 13535 call 0 9ff0h ; e8 331213540 call 0a000h ; e8 38 12 13536 13541 lea ax, [si+00080h] ; 8d 84 80 00 13537 13542 mov cx, strict word 00040h ; b9 40 00 13538 13543 xor bx, bx ; 31 db 13539 13544 mov dx, word [bp-00ah] ; 8b 56 f6 13540 call 0 9ff0h ; e8 241213545 call 0a000h ; e8 29 12 13541 13546 lea di, [si+00200h] ; 8d bc 00 02 13542 13547 mov cx, strict word 00060h ; b9 60 00 … … 13544 13549 mov ax, di ; 89 f8 13545 13550 mov dx, word [bp-00ah] ; 8b 56 f6 13546 call 0 9ff0h ; e8 131213551 call 0a000h ; e8 18 12 13547 13552 mov bl, byte [bp-008h] ; 8a 5e f8 13548 13553 xor bh, bh ; 30 ff … … 13562 13567 mov ax, di ; 89 f8 13563 13568 mov dx, word [bp-00ah] ; 8b 56 f6 13564 call 087 cah ; e8 bf f913569 call 087d5h ; e8 bf f9 13565 13570 mov es, [bp-00ah] ; 8e 46 f6 13566 13571 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13607 13612 mov ax, si ; 89 f0 13608 13613 mov dx, word [bp-00ah] ; 8b 56 f6 13609 call 087 cah ; e8 53 f913614 call 087d5h ; e8 53 f9 13610 13615 mov es, [bp-00ah] ; 8e 46 f6 13611 13616 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13712 13717 pop bp ; 5d 13713 13718 retn ; c3 13714 @ahci_read_sectors: ; 0xf8f7 2LB 0xa813719 @ahci_read_sectors: ; 0xf8f7d LB 0xa8 13715 13720 push bp ; 55 13716 13721 mov bp, sp ; 89 e5 … … 13723 13728 sub bx, strict byte 0000ch ; 83 eb 0c 13724 13729 cmp bx, strict byte 00004h ; 83 fb 04 13725 jbe short 08f 98h ; 76 0f13730 jbe short 08fa3h ; 76 0f 13726 13731 push bx ; 53 13727 13732 push 00c62h ; 68 62 0c 13728 13733 push 00c74h ; 68 74 0c 13729 13734 push strict byte 00007h ; 6a 07 13730 call 01966h ; e8 d18913735 call 01966h ; e8 c6 89 13731 13736 add sp, strict byte 00008h ; 83 c4 08 13732 13737 xor di, di ; 31 ff … … 13743 13748 mov dx, word [es:di+00232h] ; 26 8b 95 32 02 13744 13749 xor ax, ax ; 31 c0 13745 call 08d 25h ; e8 60 fd13750 call 08d30h ; e8 60 fd 13746 13751 mov bx, strict word 00025h ; bb 25 00 13747 13752 mov ax, si ; 89 f0 13748 13753 mov dx, word [bp+006h] ; 8b 56 06 13749 call 089 3eh ; e8 6e f913754 call 08949h ; e8 6e f9 13750 13755 mov word [bp-006h], ax ; 89 46 fa 13751 13756 mov es, [bp+006h] ; 8e 46 06 … … 13776 13781 pop bp ; 5d 13777 13782 retn 00004h ; c2 04 00 13778 @ahci_write_sectors: ; 0xf90 1aLB 0x8613783 @ahci_write_sectors: ; 0xf9025 LB 0x86 13779 13784 push bp ; 55 13780 13785 mov bp, sp ; 89 e5 … … 13788 13793 sub dx, strict byte 0000ch ; 83 ea 0c 13789 13794 cmp dx, strict byte 00004h ; 83 fa 04 13790 jbe short 0904 4h ; 76 0f13795 jbe short 0904fh ; 76 0f 13791 13796 push dx ; 52 13792 13797 push 00c93h ; 68 93 0c 13793 13798 push 00c74h ; 68 74 0c 13794 13799 push strict byte 00007h ; 6a 07 13795 call 01966h ; e8 258913800 call 01966h ; e8 1a 89 13796 13801 add sp, strict byte 00008h ; 83 c4 08 13797 13802 xor bx, bx ; 31 db … … 13808 13813 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 13809 13814 xor ax, ax ; 31 c0 13810 call 08d 25h ; e8 b6 fc13815 call 08d30h ; e8 b6 fc 13811 13816 mov bx, strict word 00035h ; bb 35 00 13812 13817 mov ax, si ; 89 f0 13813 13818 mov dx, cx ; 89 ca 13814 call 089 3eh ; e8 c5 f813819 call 08949h ; e8 c5 f8 13815 13820 mov dx, ax ; 89 c2 13816 13821 mov es, cx ; 8e c1 … … 13827 13832 pop bp ; 5d 13828 13833 retn 00004h ; c2 04 00 13829 ahci_cmd_packet_: ; 0xf90a 0LB 0x18a13834 ahci_cmd_packet_: ; 0xf90ab LB 0x18a 13830 13835 push bp ; 55 13831 13836 mov bp, sp ; 89 e5 … … 13839 13844 mov dx, strict word 0000eh ; ba 0e 00 13840 13845 mov ax, strict word 00040h ; b8 40 00 13841 call 0166ch ; e8 b18513846 call 0166ch ; e8 a6 85 13842 13847 mov si, 00122h ; be 22 01 13843 13848 mov word [bp-008h], ax ; 89 46 f8 13844 13849 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 13845 jne short 090 e6h ; 75 1f13850 jne short 090f1h ; 75 1f 13846 13851 mov bx, 00da0h ; bb a0 0d 13847 13852 mov cx, ds ; 8c d9 13848 13853 mov ax, strict word 00004h ; b8 04 00 13849 call 01923h ; e8 518813854 call 01923h ; e8 46 88 13850 13855 push 00ca6h ; 68 a6 0c 13851 13856 push 00cb6h ; 68 b6 0c 13852 13857 push strict byte 00004h ; 6a 04 13853 call 01966h ; e8 898813858 call 01966h ; e8 7e 88 13854 13859 add sp, strict byte 00006h ; 83 c4 06 13855 13860 mov ax, strict word 00001h ; b8 01 00 13856 jmp near 0922 1h ; e9 3b 0113861 jmp near 0922ch ; e9 3b 01 13857 13862 test byte [bp+004h], 001h ; f6 46 04 01 13858 jne short 090e 0h ; 75 f413863 jne short 090ebh ; 75 f4 13859 13864 mov ax, word [bp+006h] ; 8b 46 06 13860 13865 mov dx, word [bp+008h] ; 8b 56 08 … … 13862 13867 sal ax, 1 ; d1 e0 13863 13868 rcl dx, 1 ; d1 d2 13864 loop 09 0f5h ; e2 fa13869 loop 09100h ; e2 fa 13865 13870 mov es, [bp-008h] ; 8e 46 f8 13866 13871 mov word [es:si], ax ; 26 89 04 … … 13876 13881 mov dx, word [bp+008h] ; 8b 56 08 13877 13882 xor cx, cx ; 31 c9 13878 call 09f a0h ; e8 720e13883 call 09fb0h ; e8 77 0e 13879 13884 mov word [es:si+00eh], ax ; 26 89 44 0e 13880 13885 xor di, di ; 31 ff … … 13895 13900 mov bx, ax ; 89 c3 13896 13901 xor al, al ; 30 c0 13897 call 08d 25h ; e8 b8 fb13902 call 08d30h ; e8 b8 fb 13898 13903 mov al, byte [bp-006h] ; 8a 46 fa 13899 13904 xor ah, ah ; 30 e4 … … 13903 13908 mov ax, 000c0h ; b8 c0 00 13904 13909 mov dx, word [bp-00ah] ; 8b 56 f6 13905 call 0a0 00h ; e8 7e0e13910 call 0a010h ; e8 83 0e 13906 13911 mov es, [bp-008h] ; 8e 46 f8 13907 13912 mov word [es:si+018h], di ; 26 89 7c 18 … … 13910 13915 mov ax, word [es:si+01eh] ; 26 8b 44 1e 13911 13916 test ax, ax ; 85 c0 13912 je short 091c 0h ; 74 2713917 je short 091cbh ; 74 27 13913 13918 dec ax ; 48 13914 13919 mov es, [bp-00ah] ; 8e 46 f6 … … 13923 13928 mov ax, si ; 89 f0 13924 13929 mov dx, word [bp-008h] ; 8b 56 f8 13925 call 089 3eh ; e8 73 f713930 call 08949h ; e8 73 f7 13926 13931 les bx, [bp-00eh] ; c4 5e f2 13927 13932 mov dx, word [es:bx+004h] ; 26 8b 57 04 … … 13950 13955 mov ax, word [es:bx+006h] ; 26 8b 47 06 13951 13956 or ax, word [es:bx+004h] ; 26 0b 47 04 13952 jne short 092 1fh ; 75 0513957 jne short 0922ah ; 75 05 13953 13958 mov ax, strict word 00004h ; b8 04 00 13954 jmp short 0922 1h ; eb 0213959 jmp short 0922ch ; eb 02 13955 13960 xor ax, ax ; 31 c0 13956 13961 lea sp, [bp-004h] ; 8d 66 fc … … 13959 13964 pop bp ; 5d 13960 13965 retn 0000ch ; c2 0c 00 13961 ahci_port_detect_device_: ; 0xf92 2aLB 0x4e313966 ahci_port_detect_device_: ; 0xf9235 LB 0x4e3 13962 13967 push bp ; 55 13963 13968 mov bp, sp ; 89 e5 … … 13972 13977 xor ch, ch ; 30 ed 13973 13978 mov bx, cx ; 89 cb 13974 call 08d 25h ; e8 e0 fa13979 call 08d30h ; e8 e0 fa 13975 13980 mov dx, strict word 0000eh ; ba 0e 00 13976 13981 mov ax, strict word 00040h ; b8 40 00 13977 call 0166ch ; e8 1 e8413982 call 0166ch ; e8 13 84 13978 13983 mov word [bp-00eh], 00122h ; c7 46 f2 22 01 13979 13984 mov word [bp-016h], ax ; 89 46 ea … … 14045 14050 mov bx, strict word 0000fh ; bb 0f 00 14046 14051 xor cx, cx ; 31 c9 14047 call 087 aeh ; e8 b5 f414052 call 087b9h ; e8 b5 f4 14048 14053 test ax, ax ; 85 c0 14049 jne short 0930 0h ; 75 0314050 jmp near 097 05h ; e9 05 0414054 jne short 0930bh ; 75 03 14055 jmp near 09710h ; e9 05 04 14051 14056 mov al, byte [bp-00ch] ; 8a 46 f4 14052 14057 xor ah, ah ; 30 e4 … … 14077 14082 mov bx, strict word 0000fh ; bb 0f 00 14078 14083 xor cx, cx ; 31 c9 14079 call 087 aeh ; e8 67 f414084 call 087b9h ; e8 67 f4 14080 14085 cmp ax, strict word 00001h ; 3d 01 00 14081 je short 0930 0h ; 74 b414086 je short 0930bh ; 74 b4 14082 14087 push strict byte 00000h ; 6a 00 14083 14088 mov bx, strict word 0000fh ; bb 0f 00 … … 14085 14090 mov ax, word [bp-01ah] ; 8b 46 e6 14086 14091 mov dx, di ; 89 fa 14087 call 087 aeh ; e8 53 f414092 call 087b9h ; e8 53 f4 14088 14093 cmp ax, strict word 00003h ; 3d 03 00 14089 jne short 09 2fdh ; 75 9d14094 jne short 09308h ; 75 9d 14090 14095 mov ax, word [bp-01ch] ; 8b 46 e4 14091 14096 add ax, 00130h ; 05 30 01 … … 14115 14120 mov byte [bp-008h], al ; 88 46 f8 14116 14121 cmp AL, strict byte 004h ; 3c 04 14117 jc short 093 aah ; 72 0314118 jmp near 097 05h ; e9 5b 0314122 jc short 093b5h ; 72 03 14123 jmp near 09710h ; e9 5b 03 14119 14124 mov ax, word [bp-01ch] ; 8b 46 e4 14120 14125 add ax, 00118h ; 05 18 01 … … 14166 14171 add cl, 00ch ; 80 c1 0c 14167 14172 test dx, dx ; 85 d2 14168 jne short 0947 0h ; 75 5414173 jne short 0947bh ; 75 54 14169 14174 cmp ax, 00101h ; 3d 01 01 14170 jne short 0947 0h ; 75 4f14175 jne short 0947bh ; 75 4f 14171 14176 mov es, [bp-016h] ; 8e 46 ea 14172 14177 mov bx, word [bp-00eh] ; 8b 5e f2 … … 14183 14188 mov ax, word [bp-00eh] ; 8b 46 f2 14184 14189 mov dx, es ; 8c c2 14185 call 089 3eh ; e8 dd f414190 call 08949h ; e8 dd f4 14186 14191 mov byte [bp-00ah], cl ; 88 4e f6 14187 14192 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14188 je short 0947 3h ; 74 0814193 je short 0947eh ; 74 08 14189 14194 mov ax, strict word 00001h ; b8 01 00 14190 jmp short 094 75h ; eb 0514191 jmp near 0964 3h ; e9 d0 0114195 jmp short 09480h ; eb 05 14196 jmp near 0964eh ; e9 d0 01 14192 14197 xor ax, ax ; 31 c0 14193 14198 mov dl, al ; 88 c2 … … 14205 14210 mov word [bp-01eh], ax ; 89 46 e2 14206 14211 cmp word [bp-014h], 00fffh ; 81 7e ec ff 0f 14207 jne short 094c 4h ; 75 1e14212 jne short 094cfh ; 75 1e 14208 14213 cmp di, strict byte 0ffffh ; 83 ff ff 14209 jne short 094c 4h ; 75 1914214 jne short 094cfh ; 75 19 14210 14215 mov ax, word [bp-0015ch] ; 8b 86 a4 fe 14211 14216 mov word [bp-01eh], ax ; 89 46 e2 … … 14246 14251 mov al, byte [bp-008h] ; 8a 46 f8 14247 14252 cmp AL, strict byte 001h ; 3c 01 14248 jc short 095 3fh ; 72 0c14249 jbe short 095 47h ; 76 1214253 jc short 0954ah ; 72 0c 14254 jbe short 09552h ; 76 12 14250 14255 cmp AL, strict byte 003h ; 3c 03 14251 je short 095 4fh ; 74 1614256 je short 0955ah ; 74 16 14252 14257 cmp AL, strict byte 002h ; 3c 02 14253 je short 095 4bh ; 74 0e14254 jmp short 095 97h ; eb 5814258 je short 09556h ; 74 0e 14259 jmp short 095a2h ; eb 58 14255 14260 test al, al ; 84 c0 14256 jne short 095 97h ; 75 5414261 jne short 095a2h ; 75 54 14257 14262 mov DL, strict byte 040h ; b2 40 14258 jmp short 0955 1h ; eb 0a14263 jmp short 0955ch ; eb 0a 14259 14264 mov DL, strict byte 048h ; b2 48 14260 jmp short 0955 1h ; eb 0614265 jmp short 0955ch ; eb 06 14261 14266 mov DL, strict byte 050h ; b2 50 14262 jmp short 0955 1h ; eb 0214267 jmp short 0955ch ; eb 02 14263 14268 mov DL, strict byte 058h ; b2 58 14264 14269 mov bl, dl ; 88 d3 … … 14266 14271 xor bh, bh ; 30 ff 14267 14272 mov ax, bx ; 89 d8 14268 call 016ach ; e8 4 f8114273 call 016ach ; e8 44 81 14269 14274 test al, al ; 84 c0 14270 je short 095 97h ; 74 3614275 je short 095a2h ; 74 36 14271 14276 mov al, dl ; 88 d0 14272 14277 db 0feh, 0c0h 14273 14278 ; inc al ; fe c0 14274 14279 xor ah, ah ; 30 e4 14275 call 016ach ; e8 428114280 call 016ach ; e8 37 81 14276 14281 xor ah, ah ; 30 e4 14277 14282 mov cx, ax ; 89 c1 14278 14283 sal cx, 008h ; c1 e1 08 14279 14284 mov al, dl ; 88 d0 14280 call 016ach ; e8 368114285 call 016ach ; e8 2b 81 14281 14286 xor ah, ah ; 30 e4 14282 14287 add ax, cx ; 01 c8 … … 14285 14290 add AL, strict byte 002h ; 04 02 14286 14291 xor ah, ah ; 30 e4 14287 call 016ach ; e8 268114292 call 016ach ; e8 1b 81 14288 14293 xor ah, ah ; 30 e4 14289 14294 mov word [bp-02ah], ax ; 89 46 d6 14290 14295 mov ax, bx ; 89 d8 14291 call 016ach ; e8 1 c8114296 call 016ach ; e8 11 81 14292 14297 xor ah, ah ; 30 e4 14293 14298 mov word [bp-026h], ax ; 89 46 da 14294 jmp short 095 a9h ; eb 1214299 jmp short 095b4h ; eb 12 14295 14300 push word [bp-01eh] ; ff 76 e2 14296 14301 push word [bp-012h] ; ff 76 ee … … 14299 14304 mov dx, ss ; 8c d2 14300 14305 lea ax, [bp-02ah] ; 8d 46 d6 14301 call 059cbh ; e8 22c414306 call 059cbh ; e8 17 c4 14302 14307 mov bx, 00da0h ; bb a0 0d 14303 14308 mov cx, ds ; 8c d9 14304 14309 mov ax, strict word 00004h ; b8 04 00 14305 call 01923h ; e8 6 f8314310 call 01923h ; e8 64 83 14306 14311 push word [bp-01eh] ; ff 76 e2 14307 14312 push word [bp-012h] ; ff 76 ee … … 14324 14329 push 00cd6h ; 68 d6 0c 14325 14330 push strict byte 00004h ; 6a 04 14326 call 01966h ; e8 818314331 call 01966h ; e8 76 83 14327 14332 add sp, strict byte 0001ch ; 83 c4 1c 14328 14333 mov al, byte [bp-00ah] ; 8a 46 f6 … … 14355 14360 mov dx, strict word 00075h ; ba 75 00 14356 14361 mov ax, strict word 00040h ; b8 40 00 14357 call 01650h ; e8 1 f8014362 call 01650h ; e8 14 80 14358 14363 mov bl, al ; 88 c3 14359 14364 db 0feh, 0c3h … … 14362 14367 mov dx, strict word 00075h ; ba 75 00 14363 14368 mov ax, strict word 00040h ; b8 40 00 14364 call 0165eh ; e8 1 e8014365 jmp near 096f 4h ; e9 b1 0014369 call 0165eh ; e8 13 80 14370 jmp near 096ffh ; e9 b1 00 14366 14371 cmp dx, 0eb14h ; 81 fa 14 eb 14367 jne short 096 9dh ; 75 5414372 jne short 096a8h ; 75 54 14368 14373 cmp ax, 00101h ; 3d 01 01 14369 jne short 096 9dh ; 75 4f14374 jne short 096a8h ; 75 4f 14370 14375 mov es, [bp-016h] ; 8e 46 ea 14371 14376 mov bx, word [bp-00eh] ; 8b 5e f2 … … 14382 14387 mov ax, word [bp-00eh] ; 8b 46 f2 14383 14388 mov dx, es ; 8c c2 14384 call 089 3eh ; e8 b0 f214389 call 08949h ; e8 b0 f2 14385 14390 mov byte [bp-00ah], cl ; 88 4e f6 14386 14391 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14387 je short 096 9fh ; 74 0714392 je short 096aah ; 74 07 14388 14393 mov dx, strict word 00001h ; ba 01 00 14389 jmp short 096a 1h ; eb 0414390 jmp short 096f 4h ; eb 5514394 jmp short 096ach ; eb 04 14395 jmp short 096ffh ; eb 55 14391 14396 xor dx, dx ; 31 d2 14392 14397 mov bl, byte [bp-008h] ; 8a 5e f8 … … 14427 14432 pop bp ; 5d 14428 14433 retn ; c3 14429 ahci_mem_alloc_: ; 0xf97 0dLB 0x4314434 ahci_mem_alloc_: ; 0xf9718 LB 0x43 14430 14435 push bp ; 55 14431 14436 mov bp, sp ; 89 e5 … … 14437 14442 mov dx, 00413h ; ba 13 04 14438 14443 xor ax, ax ; 31 c0 14439 call 0166ch ; e8 4 f7f14444 call 0166ch ; e8 44 7f 14440 14445 test ax, ax ; 85 c0 14441 je short 097 46h ; 74 2514446 je short 09751h ; 74 25 14442 14447 dec ax ; 48 14443 14448 mov bx, ax ; 89 c3 … … 14446 14451 sal ax, 1 ; d1 e0 14447 14452 rcl dx, 1 ; d1 d2 14448 loop 097 29h ; e2 fa14453 loop 09734h ; e2 fa 14449 14454 mov si, ax ; 89 c6 14450 14455 mov di, dx ; 89 d7 … … 14452 14457 shr di, 1 ; d1 ef 14453 14458 rcr si, 1 ; d1 de 14454 loop 097 36h ; e2 fa14459 loop 09741h ; e2 fa 14455 14460 mov dx, 00413h ; ba 13 04 14456 14461 xor ax, ax ; 31 c0 14457 call 0167ah ; e8 367f14462 call 0167ah ; e8 2b 7f 14458 14463 mov ax, si ; 89 f0 14459 14464 lea sp, [bp-00ah] ; 8d 66 f6 … … 14465 14470 pop bp ; 5d 14466 14471 retn ; c3 14467 ahci_hba_init_: ; 0xf975 0LB 0x16d14472 ahci_hba_init_: ; 0xf975b LB 0x16d 14468 14473 push bp ; 55 14469 14474 mov bp, sp ; 89 e5 … … 14477 14482 mov dx, strict word 0000eh ; ba 0e 00 14478 14483 mov ax, strict word 00040h ; b8 40 00 14479 call 0166ch ; e8 06 7f14484 call 0166ch ; e8 fb 7e 14480 14485 mov bx, 00122h ; bb 22 01 14481 14486 mov di, ax ; 89 c7 … … 14494 14499 shr eax, 010h ; 66 c1 e8 10 14495 14500 xchg dx, ax ; 92 14496 call 097 0dh ; e8 83 ff14501 call 09718h ; e8 83 ff 14497 14502 mov word [bp-010h], ax ; 89 46 f0 14498 14503 test ax, ax ; 85 c0 14499 jne short 0979 4h ; 75 0314500 jmp near 098 9ch ; e9 08 0114504 jne short 0979fh ; 75 03 14505 jmp near 098a7h ; e9 08 01 14501 14506 mov ax, word [bp-010h] ; 8b 46 f0 14502 14507 mov es, di ; 8e c7 … … 14548 14553 xchg dx, ax ; 92 14549 14554 test AL, strict byte 001h ; a8 01 14550 jne short 097 eeh ; 75 de14555 jne short 097f9h ; 75 de 14551 14556 xor ax, ax ; 31 c0 14552 14557 xor cx, cx ; 31 c9 … … 14566 14571 mov bx, strict word 0001fh ; bb 1f 00 14567 14572 xor cx, cx ; 31 c9 14568 call 087 aeh ; e8 7a ef14573 call 087b9h ; e8 7a ef 14569 14574 db 0feh, 0c0h 14570 14575 ; inc al ; fe c0 14571 14576 mov byte [bp-00ch], al ; 88 46 f4 14572 14577 mov byte [bp-00eh], 000h ; c6 46 f2 00 14573 jmp short 0986 0h ; eb 2114578 jmp short 0986bh ; eb 21 14574 14579 xor al, al ; 30 c0 14575 14580 test al, al ; 84 c0 14576 je short 098 57h ; 74 1214581 je short 09862h ; 74 12 14577 14582 mov bl, byte [bp-00eh] ; 8a 5e f2 14578 14583 xor bh, bh ; 30 ff 14579 14584 xor ax, ax ; 31 c0 14580 14585 mov dx, word [bp-010h] ; 8b 56 f0 14581 call 092 2ah ; e8 d8 f914586 call 09235h ; e8 d8 f9 14582 14587 dec byte [bp-00ch] ; fe 4e f4 14583 je short 098 9ah ; 74 4314588 je short 098a5h ; 74 43 14584 14589 inc byte [bp-00eh] ; fe 46 f2 14585 14590 cmp byte [bp-00eh], 020h ; 80 7e f2 20 14586 jnc short 098 9ah ; 73 3a14591 jnc short 098a5h ; 73 3a 14587 14592 mov cl, byte [bp-00eh] ; 8a 4e f2 14588 14593 xor ch, ch ; 30 ed 14589 14594 mov bx, strict word 00001h ; bb 01 00 14590 14595 xor di, di ; 31 ff 14591 jcxz 0987 2h ; e3 0614596 jcxz 0987dh ; e3 06 14592 14597 sal bx, 1 ; d1 e3 14593 14598 rcl di, 1 ; d1 d7 14594 loop 098 6ch ; e2 fa14599 loop 09877h ; e2 fa 14595 14600 mov ax, strict word 0000ch ; b8 0c 00 14596 14601 xor cx, cx ; 31 c9 … … 14608 14613 xchg dx, ax ; 92 14609 14614 test dx, di ; 85 fa 14610 jne short 098 96h ; 75 0414615 jne short 098a1h ; 75 04 14611 14616 test ax, bx ; 85 d8 14612 je short 098 3fh ; 74 a914617 je short 0984ah ; 74 a9 14613 14618 mov AL, strict byte 001h ; b0 01 14614 jmp short 0984 1h ; eb a714619 jmp short 0984ch ; eb a7 14615 14620 xor ax, ax ; 31 c0 14616 14621 lea sp, [bp-00ah] ; 8d 66 f6 … … 14622 14627 pop bp ; 5d 14623 14628 retn ; c3 14624 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 a5h, 099h, 083h, 099h, 089h, 099h, 08fh, 099h, 095h14625 db 099h, 0 9bh, 099h, 0a1h, 099h, 0a5h, 099h14626 _ahci_init: ; 0xf98 bdLB 0x11914629 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0b0h, 099h, 08eh, 099h, 094h, 099h, 09ah, 099h, 0a0h 14630 db 099h, 0a6h, 099h, 0ach, 099h, 0b0h, 099h 14631 _ahci_init: ; 0xf98c8 LB 0x119 14627 14632 push bp ; 55 14628 14633 mov bp, sp ; 89 e5 … … 14631 14636 mov ax, 00601h ; b8 01 06 14632 14637 mov dx, strict word 00001h ; ba 01 00 14633 call 09df 1h ; e8 24 0514638 call 09dfch ; e8 24 05 14634 14639 mov dx, ax ; 89 c2 14635 14640 cmp ax, strict word 0ffffh ; 3d ff ff 14636 je short 0992 0h ; 74 4c14641 je short 0992bh ; 74 4c 14637 14642 xor al, al ; 30 c0 14638 14643 shr ax, 008h ; c1 e8 08 … … 14642 14647 xor ah, ah ; 30 e4 14643 14648 mov bx, strict word 00034h ; bb 34 00 14644 call 09 df9h ; e8 10 0514649 call 09e04h ; e8 10 05 14645 14650 mov cl, al ; 88 c1 14646 14651 test cl, cl ; 84 c9 14647 je short 0992 3h ; 74 3414652 je short 0992eh ; 74 34 14648 14653 mov bl, cl ; 88 cb 14649 14654 xor bh, bh ; 30 ff … … 14656 14661 mov dx, word [bp-010h] ; 8b 56 f0 14657 14662 mov ax, word [bp-00ch] ; 8b 46 f4 14658 call 09 df9h ; e8 eb 0414663 call 09e04h ; e8 eb 04 14659 14664 cmp AL, strict byte 012h ; 3c 12 14660 je short 0992 3h ; 74 1114665 je short 0992eh ; 74 11 14661 14666 mov bl, cl ; 88 cb 14662 14667 db 0feh, 0c3h … … 14665 14670 mov dx, word [bp-010h] ; 8b 56 f0 14666 14671 mov ax, word [bp-00ch] ; 8b 46 f4 14667 jmp short 098 e6h ; eb c614668 jmp near 099d 0h ; e9 ad 0014672 jmp short 098f1h ; eb c6 14673 jmp near 099dbh ; e9 ad 00 14669 14674 test cl, cl ; 84 c9 14670 je short 0992 0h ; 74 f914675 je short 0992bh ; 74 f9 14671 14676 add cl, 002h ; 80 c1 02 14672 14677 mov bl, cl ; 88 cb … … 14680 14685 mov dx, word [bp-00eh] ; 8b 56 f2 14681 14686 mov ax, word [bp-00ah] ; 8b 46 f6 14682 call 09 df9h ; e8 b0 0414687 call 09e04h ; e8 b0 04 14683 14688 cmp AL, strict byte 010h ; 3c 10 14684 jne short 0992 0h ; 75 d314689 jne short 0992bh ; 75 d3 14685 14690 mov byte [bp-004h], 000h ; c6 46 fc 00 14686 14691 mov bl, cl ; 88 cb … … 14689 14694 mov dx, word [bp-00eh] ; 8b 56 f2 14690 14695 mov ax, word [bp-00ah] ; 8b 46 f6 14691 call 09e 27h ; e8 c6 0414696 call 09e32h ; e8 c6 04 14692 14697 mov dx, ax ; 89 c2 14693 14698 and ax, strict word 0000fh ; 25 0f 00 14694 14699 sub ax, strict word 00004h ; 2d 04 00 14695 14700 cmp ax, strict word 0000bh ; 3d 0b 00 14696 jnbe short 099 a5h ; 77 3714701 jnbe short 099b0h ; 77 37 14697 14702 push CS ; 0e 14698 14703 pop ES ; 07 14699 14704 mov cx, strict word 00008h ; b9 08 00 14700 mov di, 098 a6h ; bf a69814705 mov di, 098b1h ; bf b1 98 14701 14706 repne scasb ; f2 ae 14702 14707 sal cx, 1 ; d1 e1 14703 14708 mov di, cx ; 89 cf 14704 mov ax, word [cs:di-067 53h] ; 2e 8b 85 ad9814709 mov ax, word [cs:di-06748h] ; 2e 8b 85 b8 98 14705 14710 jmp ax ; ff e0 14706 14711 mov byte [bp-004h], 010h ; c6 46 fc 10 14707 jmp short 099 a5h ; eb 1c14712 jmp short 099b0h ; eb 1c 14708 14713 mov byte [bp-004h], 014h ; c6 46 fc 14 14709 jmp short 099 a5h ; eb 1614714 jmp short 099b0h ; eb 16 14710 14715 mov byte [bp-004h], 018h ; c6 46 fc 18 14711 jmp short 099 a5h ; eb 1014716 jmp short 099b0h ; eb 10 14712 14717 mov byte [bp-004h], 01ch ; c6 46 fc 1c 14713 jmp short 099 a5h ; eb 0a14718 jmp short 099b0h ; eb 0a 14714 14719 mov byte [bp-004h], 020h ; c6 46 fc 20 14715 jmp short 099 a5h ; eb 0414720 jmp short 099b0h ; eb 04 14716 14721 mov byte [bp-004h], 024h ; c6 46 fc 24 14717 14722 mov cx, dx ; 89 d1 … … 14720 14725 mov al, byte [bp-004h] ; 8a 46 fc 14721 14726 test al, al ; 84 c0 14722 je short 099d 0h ; 74 1c14727 je short 099dbh ; 74 1c 14723 14728 mov bl, al ; 88 c3 14724 14729 xor bh, bh ; 30 ff … … 14727 14732 mov al, byte [bp-008h] ; 8a 46 f8 14728 14733 xor ah, ah ; 30 e4 14729 call 09e5 1h ; e8 8c 0414734 call 09e5ch ; e8 8c 04 14730 14735 test AL, strict byte 001h ; a8 01 14731 je short 099d 0h ; 74 0714736 je short 099dbh ; 74 07 14732 14737 and AL, strict byte 0f0h ; 24 f0 14733 14738 add ax, cx ; 01 c8 14734 call 0975 0h ; e8 80 fd14739 call 0975bh ; e8 80 fd 14735 14740 lea sp, [bp-002h] ; 8d 66 fe 14736 14741 pop di ; 5f 14737 14742 pop bp ; 5d 14738 14743 retn ; c3 14739 apm_out_str_: ; 0xf99 d6LB 0x3914744 apm_out_str_: ; 0xf99e1 LB 0x39 14740 14745 push bp ; 55 14741 14746 mov bp, sp ; 89 e5 … … 14743 14748 mov bx, ax ; 89 c3 14744 14749 cmp byte [bx], 000h ; 80 3f 00 14745 je short 099 ebh ; 74 0a14750 je short 099f6h ; 74 0a 14746 14751 mov al, byte [bx] ; 8a 07 14747 14752 out DX, AL ; ee … … 14750 14755 db 00ah, 0c0h 14751 14756 ; or al, al ; 0a c0 14752 jne short 099e 3h ; 75 f814757 jne short 099eeh ; 75 f8 14753 14758 lea sp, [bp-002h] ; 8d 66 fe 14754 14759 pop bx ; 5b 14755 14760 pop bp ; 5d 14756 14761 retn ; c3 14757 xor byte [bp+si-06548h], bl ; 30 9a b89a14758 inc dx ; 4214759 call far 09a b8h:09a5dh ; 9a 5d 9a b89a14760 mov byte [bp+si-06548h], bl ; 88 9a b8 9a14761 mov si, 08d9ah ; be 9a 8d14762 c all far 09a8dh:09a8dh ; 9a 8d 9a 8d 9a14763 std ; fd14764 call far 09a8dh:09a8dh ; 9a 8d 9a 8d9a14765 db 0f6h14762 cmp bx, word [bp+si-0653dh] ; 3b 9a c3 9a 14763 dec bp ; 4d 14764 call far 09ac3h:09a68h ; 9a 68 9a c3 9a 14765 xchg bx, ax ; 93 14766 call far 09ac9h:09ac3h ; 9a c3 9a c9 9a 14767 cbw ; 98 14768 call far 09a98h:09a98h ; 9a 98 9a 98 9a 14769 or byte [bp+di-06568h], bl ; 08 9b 98 9a 14770 cbw ; 98 14766 14771 db 09ah 14767 _apm_function: ; 0xf9a0f LB 0xf3 14772 db 001h 14773 wait ; 9b 14774 _apm_function: ; 0xf9a1a LB 0xf3 14768 14775 push bp ; 55 14769 14776 mov bp, sp ; 89 e5 … … 14773 14780 xor ah, ah ; 30 e4 14774 14781 cmp ax, strict word 0000eh ; 3d 0e 00 14775 jnbe short 09a 8dh ; 77 6c14782 jnbe short 09a98h ; 77 6c 14776 14783 mov bx, ax ; 89 c3 14777 14784 add bx, ax ; 01 c3 14778 14785 mov dx, word [bp+018h] ; 8b 56 18 14779 14786 or dl, 001h ; 80 ca 01 14780 jmp word [cs:bx-0660 fh] ; 2e ff a7 f19914787 jmp word [cs:bx-06604h] ; 2e ff a7 fc 99 14781 14788 mov word [bp+012h], 00102h ; c7 46 12 02 01 14782 14789 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 14783 14790 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 14784 jmp near 09a b8h ; e9 76 0014791 jmp near 09ac3h ; e9 76 00 14785 14792 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14786 mov word [bp+00ch], 0a0 74h ; c7 46 0c 74 a014793 mov word [bp+00ch], 0a084h ; c7 46 0c 84 a0 14787 14794 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 14788 14795 mov ax, strict word 0fff0h ; b8 f0 ff 14789 14796 mov word [bp+006h], ax ; 89 46 06 14790 14797 mov word [bp+004h], ax ; 89 46 04 14791 jmp near 09a b8h ; e9 5b 0014798 jmp near 09ac3h ; e9 5b 00 14792 14799 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14793 14800 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 14802 14809 mov si, ax ; 89 c6 14803 14810 sal esi, 010h ; 66 c1 e6 10 14804 jmp near 09a b8h ; e9 30 0014811 jmp near 09ac3h ; e9 30 00 14805 14812 sti ; fb 14806 14813 hlt ; f4 14807 jmp near 09a b8h ; e9 2b 0014814 jmp near 09ac3h ; e9 2b 00 14808 14815 mov bx, 00da0h ; bb a0 0d 14809 14816 mov cx, ds ; 8c d9 14810 14817 mov ax, strict word 00004h ; b8 04 00 14811 call 01923h ; e8 8 b7e14818 call 01923h ; e8 80 7e 14812 14819 push word [bp+00ch] ; ff 76 0c 14813 14820 push word [bp+012h] ; ff 76 12 14814 14821 push 00d29h ; 68 29 0d 14815 14822 push strict byte 00004h ; 6a 04 14816 call 01966h ; e8 c07e14823 call 01966h ; e8 b5 7e 14817 14824 add sp, strict byte 00008h ; 83 c4 08 14818 14825 mov ax, word [bp+012h] ; 8b 46 12 … … 14826 14833 retn ; c3 14827 14834 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 14828 je short 09ae 3h ; 74 1f14835 je short 09aeeh ; 74 1f 14829 14836 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 14830 je short 09a dbh ; 74 1114837 je short 09ae6h ; 74 11 14831 14838 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 14832 jne short 09a ebh ; 75 1b14833 mov dx, 0 8900h ; ba 00 8914839 jne short 09af6h ; 75 1b 14840 mov dx, 0040fh ; ba 0f 04 14834 14841 mov ax, 00d10h ; b8 10 0d 14835 call 099 d6h ; e8 fd fe14836 jmp short 09a b8h ; eb dd14837 mov dx, 0 8900h ; ba 00 8914842 call 099e1h ; e8 fd fe 14843 jmp short 09ac3h ; eb dd 14844 mov dx, 0040fh ; ba 0f 04 14838 14845 mov ax, 00d18h ; b8 18 0d 14839 jmp short 09a d6h ; eb f314840 mov dx, 0 8900h ; ba 00 8914846 jmp short 09ae1h ; eb f3 14847 mov dx, 0040fh ; ba 0f 04 14841 14848 mov ax, 00d20h ; b8 20 0d 14842 jmp short 09a d6h ; eb eb14849 jmp short 09ae1h ; eb eb 14843 14850 or ah, 00ah ; 80 cc 0a 14844 14851 mov word [bp+012h], ax ; 89 46 12 14845 14852 mov word [bp+018h], dx ; 89 56 18 14846 jmp short 09a b8h ; eb c214853 jmp short 09ac3h ; eb c2 14847 14854 mov word [bp+012h], 00102h ; c7 46 12 02 01 14848 jmp short 09a b8h ; eb bb14855 jmp short 09ac3h ; eb bb 14849 14856 or ah, 080h ; 80 cc 80 14850 jmp short 09a eeh ; eb ec14851 pci16_select_reg_: ; 0xf9b0 2LB 0x2414857 jmp short 09af9h ; eb ec 14858 pci16_select_reg_: ; 0xf9b0d LB 0x24 14852 14859 push bp ; 55 14853 14860 mov bp, sp ; 89 e5 … … 14866 14873 pop bp ; 5d 14867 14874 retn ; c3 14868 pci16_find_device_: ; 0xf9b 26LB 0xf914875 pci16_find_device_: ; 0xf9b31 LB 0xf9 14869 14876 push bp ; 55 14870 14877 mov bp, sp ; 89 e5 … … 14880 14887 mov byte [bp-008h], 000h ; c6 46 f8 00 14881 14888 test bl, 007h ; f6 c3 07 14882 jne short 09b 6eh ; 75 2d14889 jne short 09b79h ; 75 2d 14883 14890 mov dx, strict word 0000eh ; ba 0e 00 14884 14891 mov ax, bx ; 89 d8 14885 call 09b0 2h ; e8 b9 ff14892 call 09b0dh ; e8 b9 ff 14886 14893 mov dx, 00cfeh ; ba fe 0c 14887 14894 in AL, DX ; ec … … 14890 14897 mov byte [bp-006h], al ; 88 46 fa 14891 14898 cmp AL, strict byte 0ffh ; 3c ff 14892 jne short 09b 5ch ; 75 0614899 jne short 09b67h ; 75 06 14893 14900 add bx, strict byte 00008h ; 83 c3 08 14894 jmp near 09b efh ; e9 93 0014901 jmp near 09bfah ; e9 93 00 14895 14902 test byte [bp-006h], 080h ; f6 46 fa 80 14896 je short 09b 69h ; 74 0714903 je short 09b74h ; 74 07 14897 14904 mov word [bp-010h], strict word 00001h ; c7 46 f0 01 00 14898 jmp short 09b 6eh ; eb 0514905 jmp short 09b79h ; eb 05 14899 14906 mov word [bp-010h], strict word 00008h ; c7 46 f0 08 00 14900 14907 mov al, byte [bp-006h] ; 8a 46 fa 14901 14908 and AL, strict byte 007h ; 24 07 14902 14909 cmp AL, strict byte 001h ; 3c 01 14903 jne short 09b 96h ; 75 1f14910 jne short 09ba1h ; 75 1f 14904 14911 mov ax, bx ; 89 d8 14905 14912 shr ax, 008h ; c1 e8 08 14906 14913 test ax, ax ; 85 c0 14907 jne short 09b 96h ; 75 1614914 jne short 09ba1h ; 75 16 14908 14915 mov dx, strict word 0001ah ; ba 1a 00 14909 14916 mov ax, bx ; 89 d8 14910 call 09b0 2h ; e8 7a ff14917 call 09b0dh ; e8 7a ff 14911 14918 mov dx, 00cfeh ; ba fe 0c 14912 14919 in AL, DX ; ec … … 14914 14921 ; sub ah, ah ; 2a e4 14915 14922 cmp al, byte [bp-008h] ; 3a 46 f8 14916 jbe short 09b 96h ; 76 0314923 jbe short 09ba1h ; 76 03 14917 14924 mov byte [bp-008h], al ; 88 46 f8 14918 14925 test di, di ; 85 ff 14919 je short 09b 9fh ; 74 0514926 je short 09baah ; 74 05 14920 14927 mov dx, strict word 00008h ; ba 08 00 14921 jmp short 09ba 1h ; eb 0214928 jmp short 09bach ; eb 02 14922 14929 xor dx, dx ; 31 d2 14923 14930 mov ax, bx ; 89 d8 14924 call 09b0 2h ; e8 5c ff14931 call 09b0dh ; e8 5c ff 14925 14932 mov dx, 00cfch ; ba fc 0c 14926 14933 in eax, DX ; 66 ed … … 14933 14940 mov word [bp-00eh], strict word 00000h ; c7 46 f2 00 00 14934 14941 test di, di ; 85 ff 14935 je short 09bd 0h ; 74 0f14942 je short 09bdbh ; 74 0f 14936 14943 mov cx, strict word 00008h ; b9 08 00 14937 14944 shr dx, 1 ; d1 ea 14938 14945 rcr ax, 1 ; d1 d8 14939 loop 09bc 4h ; e2 fa14946 loop 09bcfh ; e2 fa 14940 14947 mov word [bp-00ah], ax ; 89 46 f6 14941 14948 mov word [bp-00ch], dx ; 89 56 f4 14942 14949 mov ax, word [bp-00ch] ; 8b 46 f4 14943 14950 cmp ax, word [bp-014h] ; 3b 46 ec 14944 jne short 09be 0h ; 75 0814951 jne short 09bebh ; 75 08 14945 14952 mov ax, word [bp-00ah] ; 8b 46 f6 14946 14953 cmp ax, word [bp-012h] ; 3b 46 ee 14947 je short 09b e6h ; 74 0614954 je short 09bf1h ; 74 06 14948 14955 cmp word [bp-00eh], strict byte 00000h ; 83 7e f2 00 14949 je short 09b ech ; 74 0614956 je short 09bf7h ; 74 06 14950 14957 dec si ; 4e 14951 14958 cmp si, strict byte 0ffffh ; 83 fe ff 14952 je short 09c0 0h ; 74 1414959 je short 09c0bh ; 74 14 14953 14960 add bx, word [bp-010h] ; 03 5e f0 14954 14961 mov dx, bx ; 89 da … … 14957 14964 xor ah, ah ; 30 e4 14958 14965 cmp dx, ax ; 39 c2 14959 jnbe short 09c0 0h ; 77 0314960 jmp near 09b 3ch ; e9 3c ff14966 jnbe short 09c0bh ; 77 03 14967 jmp near 09b47h ; e9 3c ff 14961 14968 cmp si, strict byte 0ffffh ; 83 fe ff 14962 jne short 09c 09h ; 75 0414969 jne short 09c14h ; 75 04 14963 14970 mov ax, bx ; 89 d8 14964 jmp short 09c 0ch ; eb 0314971 jmp short 09c17h ; eb 03 14965 14972 mov ax, strict word 0ffffh ; b8 ff ff 14966 14973 lea sp, [bp-004h] ; 8d 66 fc … … 14969 14976 pop bp ; 5d 14970 14977 retn ; c3 14971 add byte [di-062e7h], bl ; 00 9d 19 9d 14972 sub bx, word [di-062c1h] ; 2b 9d 3f 9d 14973 push cx ; 51 14978 or bx, word [di-062dch] ; 0b 9d 24 9d 14979 db 036h, 09dh 14980 ; ss popfw ; 36 9d 14981 dec dx ; 4a 14974 14982 popfw ; 9d 14975 db 064h, 09dh 14976 ; fs popfw ; 64 9d 14977 _pci16_function: ; 0xf9c1f LB 0x1d2 14983 pop sp ; 5c 14984 popfw ; 9d 14985 outsw ; 6f 14986 popfw ; 9d 14987 _pci16_function: ; 0xf9c2a LB 0x1d2 14978 14988 push bp ; 55 14979 14989 mov bp, sp ; 89 e5 … … 14989 14999 xor ah, ah ; 30 e4 14990 15000 cmp bx, strict byte 00003h ; 83 fb 03 14991 jc short 09c5 1h ; 72 1314992 jbe short 09ca 4h ; 76 6415001 jc short 09c5ch ; 72 13 15002 jbe short 09cafh ; 76 64 14993 15003 cmp bx, strict byte 0000eh ; 83 fb 0e 14994 je short 09c ach ; 74 6715004 je short 09cb7h ; 74 67 14995 15005 cmp bx, strict byte 00008h ; 83 fb 08 14996 jc short 09c 5bh ; 72 1115006 jc short 09c66h ; 72 11 14997 15007 cmp bx, strict byte 0000dh ; 83 fb 0d 14998 jbe short 09c afh ; 76 6014999 jmp short 09c 5bh ; eb 0a15008 jbe short 09cbah ; 76 60 15009 jmp short 09c66h ; eb 0a 15000 15010 cmp bx, strict byte 00002h ; 83 fb 02 15001 je short 09c 7ah ; 74 2415011 je short 09c85h ; 74 24 15002 15012 cmp bx, strict byte 00001h ; 83 fb 01 15003 je short 09c 5eh ; 74 0315004 jmp near 09d bdh ; e9 5f 0115013 je short 09c69h ; 74 03 15014 jmp near 09dc8h ; e9 5f 01 15005 15015 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 15006 15016 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 15008 15018 mov word [bp+018h], 04350h ; c7 46 18 50 43 15009 15019 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 15010 jmp near 09d eah ; e9 70 0115020 jmp near 09df5h ; e9 70 01 15011 15021 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 15012 jne short 09c 86h ; 75 0615022 jne short 09c91h ; 75 06 15013 15023 or ah, 083h ; 80 cc 83 15014 jmp near 09de 3h ; e9 5d 0115024 jmp near 09deeh ; e9 5d 01 15015 15025 mov bx, word [bp+008h] ; 8b 5e 08 15016 15026 mov dx, word [bp+01ch] ; 8b 56 1c 15017 15027 mov ax, word [bp+018h] ; 8b 46 18 15018 15028 xor cx, cx ; 31 c9 15019 call 09b 26h ; e8 92 fe15029 call 09b31h ; e8 92 fe 15020 15030 cmp ax, strict word 0ffffh ; 3d ff ff 15021 jne short 09c a6h ; 75 0d15031 jne short 09cb1h ; 75 0d 15022 15032 mov ax, word [bp+020h] ; 8b 46 20 15023 15033 xor ah, ah ; 30 e4 15024 15034 or ah, 086h ; 80 cc 86 15025 jmp near 09de 3h ; e9 3f 0115026 jmp short 09cb 1h ; eb 0b15035 jmp near 09deeh ; e9 3f 01 15036 jmp short 09cbch ; eb 0b 15027 15037 mov word [bp+014h], ax ; 89 46 14 15028 jmp near 09d eah ; e9 3e 0115029 jmp near 09d 78h ; e9 c9 0015030 jmp short 09c d6h ; eb 2515038 jmp near 09df5h ; e9 3e 01 15039 jmp near 09d83h ; e9 c9 00 15040 jmp short 09ce1h ; eb 25 15031 15041 mov bx, word [bp+008h] ; 8b 5e 08 15032 15042 mov ax, word [bp+01ch] ; 8b 46 1c 15033 15043 mov dx, word [bp+01eh] ; 8b 56 1e 15034 15044 mov cx, strict word 00001h ; b9 01 00 15035 call 09b 26h ; e8 66 fe15045 call 09b31h ; e8 66 fe 15036 15046 cmp ax, strict word 0ffffh ; 3d ff ff 15037 jne short 09cd 0h ; 75 0b15047 jne short 09cdbh ; 75 0b 15038 15048 mov ax, word [bp+020h] ; 8b 46 20 15039 15049 xor ah, ah ; 30 e4 15040 15050 or ah, 086h ; 80 cc 86 15041 jmp near 09de 3h ; e9 13 0115051 jmp near 09deeh ; e9 13 01 15042 15052 mov word [bp+014h], ax ; 89 46 14 15043 jmp near 09d eah ; e9 14 0115053 jmp near 09df5h ; e9 14 01 15044 15054 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 15045 jc short 09ce 3h ; 72 0615055 jc short 09ceeh ; 72 06 15046 15056 or ah, 087h ; 80 cc 87 15047 jmp near 09de 3h ; e9 00 0115057 jmp near 09deeh ; e9 00 01 15048 15058 mov dx, word [bp+004h] ; 8b 56 04 15049 15059 mov ax, word [bp+014h] ; 8b 46 14 15050 call 09b0 2h ; e8 16 fe15060 call 09b0dh ; e8 16 fe 15051 15061 mov bx, word [bp+020h] ; 8b 5e 20 15052 15062 xor bh, bh ; 30 ff 15053 15063 sub bx, strict byte 00008h ; 83 eb 08 15054 15064 cmp bx, strict byte 00005h ; 83 fb 05 15055 jnbe short 09d6 1h ; 77 6815065 jnbe short 09d6ch ; 77 68 15056 15066 add bx, bx ; 01 db 15057 jmp word [cs:bx-063e dh] ; 2e ff a7 139c15067 jmp word [cs:bx-063e2h] ; 2e ff a7 1e 9c 15058 15068 mov bx, word [bp+01ch] ; 8b 5e 1c 15059 15069 xor bl, bl ; 30 db … … 15066 15076 or bx, ax ; 09 c3 15067 15077 mov word [bp+01ch], bx ; 89 5e 1c 15068 jmp short 09d6 1h ; eb 4815078 jmp short 09d6ch ; eb 48 15069 15079 mov dx, word [bp+004h] ; 8b 56 04 15070 15080 xor dh, dh ; 30 f6 … … 15073 15083 in ax, DX ; ed 15074 15084 mov word [bp+01ch], ax ; 89 46 1c 15075 jmp short 09d6 1h ; eb 3615085 jmp short 09d6ch ; eb 36 15076 15086 mov dx, 00cfch ; ba fc 0c 15077 15087 in eax, DX ; 66 ed … … 15082 15092 mov word [bp+01ch], ax ; 89 46 1c 15083 15093 mov word [bp+01eh], dx ; 89 56 1e 15084 jmp short 09d6 1h ; eb 2215094 jmp short 09d6ch ; eb 22 15085 15095 mov ax, word [bp+01ch] ; 8b 46 1c 15086 15096 mov dx, word [bp+004h] ; 8b 56 04 … … 15089 15099 add dx, 00cfch ; 81 c2 fc 0c 15090 15100 out DX, AL ; ee 15091 jmp short 09d6 1h ; eb 1015101 jmp short 09d6ch ; eb 10 15092 15102 mov ax, word [bp+01ch] ; 8b 46 1c 15093 15103 mov dx, word [bp+004h] ; 8b 56 04 … … 15096 15106 add dx, 00cfch ; 81 c2 fc 0c 15097 15107 out DX, ax ; ef 15098 jmp near 09d eah ; e9 86 0015108 jmp near 09df5h ; e9 86 00 15099 15109 mov ax, word [bp+01ch] ; 8b 46 1c 15100 15110 mov cx, word [bp+01eh] ; 8b 4e 1e … … 15105 15115 ; mov ax, cx ; 8b c1 15106 15116 out DX, eax ; 66 ef 15107 jmp short 09d eah ; eb 7215117 jmp short 09df5h ; eb 72 15108 15118 mov bx, word [bp+004h] ; 8b 5e 04 15109 15119 mov es, [bp+026h] ; 8e 46 26 … … 15112 15122 mov cx, word [0f4a0h] ; 8b 0e a0 f4 15113 15123 cmp cx, word [es:bx] ; 26 3b 0f 15114 jbe short 09d 9eh ; 76 1115124 jbe short 09da9h ; 76 11 15115 15125 mov ax, word [bp+020h] ; 8b 46 20 15116 15126 xor ah, ah ; 30 e4 … … 15118 15128 mov word [bp+020h], ax ; 89 46 20 15119 15129 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 15120 jmp short 09db 2h ; eb 1415130 jmp short 09dbdh ; eb 14 15121 15131 les di, [es:bx+002h] ; 26 c4 7f 02 15122 15132 mov si, 0f2c0h ; be c0 f2 … … 15130 15140 les bx, [bp-008h] ; c4 5e f8 15131 15141 mov word [es:bx], ax ; 26 89 07 15132 jmp short 09d eah ; eb 2d15142 jmp short 09df5h ; eb 2d 15133 15143 mov bx, 00da0h ; bb a0 0d 15134 15144 mov cx, ds ; 8c d9 15135 15145 mov ax, strict word 00004h ; b8 04 00 15136 call 01923h ; e8 5 b7b15146 call 01923h ; e8 50 7b 15137 15147 mov ax, word [bp+014h] ; 8b 46 14 15138 15148 push ax ; 50 … … 15141 15151 push 00d5ch ; 68 5c 0d 15142 15152 push strict byte 00004h ; 6a 04 15143 call 01966h ; e8 8 e7b15153 call 01966h ; e8 83 7b 15144 15154 add sp, strict byte 00008h ; 83 c4 08 15145 15155 mov ax, word [bp+020h] ; 8b 46 20 … … 15153 15163 pop bp ; 5d 15154 15164 retn ; c3 15155 pci_find_classcode_: ; 0xf9df 1LB 0x815165 pci_find_classcode_: ; 0xf9dfc LB 0x8 15156 15166 push bp ; 55 15157 15167 mov bp, sp ; 89 e5 … … 15159 15169 pop bp ; 5d 15160 15170 retn ; c3 15161 pci_read_config_byte_: ; 0xf9 df9LB 0x2e15171 pci_read_config_byte_: ; 0xf9e04 LB 0x2e 15162 15172 push bp ; 55 15163 15173 mov bp, sp ; 89 e5 … … 15185 15195 pop bp ; 5d 15186 15196 retn ; c3 15187 pci_read_config_word_: ; 0xf9e 27LB 0x2a15197 pci_read_config_word_: ; 0xf9e32 LB 0x2a 15188 15198 push bp ; 55 15189 15199 mov bp, sp ; 89 e5 … … 15209 15219 pop bp ; 5d 15210 15220 retn ; c3 15211 pci_read_config_dword_: ; 0xf9e5 1LB 0x4e15221 pci_read_config_dword_: ; 0xf9e5c LB 0x4e 15212 15222 push bp ; 55 15213 15223 mov bp, sp ; 89 e5 … … 15231 15241 int 01ah ; cd 1a 15232 15242 test cx, cx ; 85 c9 15233 jne short 09e9 0h ; 75 1415243 jne short 09e9bh ; 75 14 15234 15244 mov al, byte [bp-006h] ; 8a 46 fa 15235 15245 xor ah, ah ; 30 e4 … … 15241 15251 int 01ah ; cd 1a 15242 15252 test cx, cx ; 85 c9 15243 je short 09e 95h ; 74 0515253 je short 09ea0h ; 74 05 15244 15254 mov ax, strict word 00001h ; b8 01 00 15245 jmp short 09e 97h ; eb 0215255 jmp short 09ea2h ; eb 02 15246 15256 xor ax, ax ; 31 c0 15247 15257 cwd ; 99 … … 15251 15261 pop bp ; 5d 15252 15262 retn ; c3 15253 vds_is_present_: ; 0xf9e 9fLB 0x1d15263 vds_is_present_: ; 0xf9eaa LB 0x1d 15254 15264 push bx ; 53 15255 15265 push bp ; 55 … … 15259 15269 mov es, ax ; 8e c0 15260 15270 test byte [es:bx], 020h ; 26 f6 07 20 15261 je short 09e b7h ; 74 0615271 je short 09ec2h ; 74 06 15262 15272 mov ax, strict word 00001h ; b8 01 00 15263 15273 pop bp ; 5d … … 15268 15278 pop bx ; 5b 15269 15279 retn ; c3 15270 vds_real_to_lin_: ; 0xf9e bcLB 0x1e15280 vds_real_to_lin_: ; 0xf9ec7 LB 0x1e 15271 15281 push bx ; 53 15272 15282 push cx ; 51 … … 15279 15289 sal ax, 1 ; d1 e0 15280 15290 rcl dx, 1 ; d1 d2 15281 loop 09e cah ; e2 fa15291 loop 09ed5h ; e2 fa 15282 15292 xor cx, cx ; 31 c9 15283 15293 add ax, bx ; 01 d8 … … 15287 15297 pop bx ; 5b 15288 15298 retn ; c3 15289 vds_build_sg_list_: ; 0xf9e daLB 0x7715299 vds_build_sg_list_: ; 0xf9ee5 LB 0x77 15290 15300 push bp ; 55 15291 15301 mov bp, sp ; 89 e5 … … 15301 15311 mov bx, word [bp+006h] ; 8b 5e 06 15302 15312 mov word [es:di+002h], bx ; 26 89 5d 02 15303 call 09e bch ; e8 c3 ff15313 call 09ec7h ; e8 c3 ff 15304 15314 mov es, si ; 8e c6 15305 15315 mov word [es:di+004h], ax ; 26 89 45 04 15306 15316 mov word [es:di+006h], dx ; 26 89 55 06 15307 15317 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15308 call 09e 9fh ; e8 93 ff15318 call 09eaah ; e8 93 ff 15309 15319 test ax, ax ; 85 c0 15310 je short 09f2 1h ; 74 1115320 je short 09f2ch ; 74 11 15311 15321 mov es, si ; 8e c6 15312 15322 mov ax, 08105h ; b8 05 81 15313 15323 mov dx, strict word 00000h ; ba 00 00 15314 15324 int 04bh ; cd 4b 15315 jc short 09f 1eh ; 72 0215325 jc short 09f29h ; 72 02 15316 15326 db 032h, 0c0h 15317 15327 ; xor al, al ; 32 c0 15318 15328 cbw ; 98 15319 jmp short 09f 48h ; eb 2715329 jmp short 09f53h ; eb 27 15320 15330 mov es, si ; 8e c6 15321 15331 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15334 15344 pop bp ; 5d 15335 15345 retn 00004h ; c2 04 00 15336 vds_free_sg_list_: ; 0xf9f5 1 LB 0x2f15346 vds_free_sg_list_: ; 0xf9f5c LB 0x34 15337 15347 push bp ; 55 15338 15348 mov bp, sp ; 89 e5 … … 15340 15350 push di ; 57 15341 15351 mov bx, ax ; 89 c3 15342 call 09e 9fh ; e8 44 ff15352 call 09eaah ; e8 44 ff 15343 15353 test ax, ax ; 85 c0 15344 je short 09f7 0h ; 74 1115354 je short 09f7bh ; 74 11 15345 15355 mov di, bx ; 89 df 15346 15356 mov es, dx ; 8e c2 … … 15348 15358 mov dx, strict word 00000h ; ba 00 00 15349 15359 int 04bh ; cd 4b 15350 jc short 09f 6fh ; 72 0215360 jc short 09f7ah ; 72 02 15351 15361 db 032h, 0c0h 15352 15362 ; xor al, al ; 32 c0 … … 15359 15369 pop bp ; 5d 15360 15370 retn ; c3 15361 times 0x 1db 015362 __U4M: ; 0xf9f 80 LB 0x2015371 times 0x6 db 0 15372 __U4M: ; 0xf9f90 LB 0x20 15363 15373 pushfw ; 9c 15364 15374 push si ; 56 … … 15387 15397 retn ; c3 15388 15398 times 0x4 db 0 15389 __U4D: ; 0xf9f a0 LB 0x3015399 __U4D: ; 0xf9fb0 LB 0x30 15390 15400 pushfw ; 9c 15391 15401 push DS ; 1e … … 15402 15412 push dx ; 52 15403 15413 push ax ; 50 15404 call 0a0 85h ; e8 d0 0015414 call 0a095h ; e8 d0 00 15405 15415 mov cx, word [bp-002h] ; 8b 4e fe 15406 15416 mov bx, word [bp-004h] ; 8b 5e fc … … 15413 15423 retn ; c3 15414 15424 times 0xe db 0 15415 __U8RS: ; 0xf9f d0 LB 0x1015425 __U8RS: ; 0xf9fe0 LB 0x10 15416 15426 test si, si ; 85 f6 15417 je short 09f dfh ; 74 0b15427 je short 09fefh ; 74 0b 15418 15428 shr ax, 1 ; d1 e8 15419 15429 rcr bx, 1 ; d1 db … … 15421 15431 rcr dx, 1 ; d1 da 15422 15432 dec si ; 4e 15423 jne short 09f d4h ; 75 f515433 jne short 09fe4h ; 75 f5 15424 15434 retn ; c3 15425 __U8LS: ; 0xf9f e0 LB 0x1015435 __U8LS: ; 0xf9ff0 LB 0x10 15426 15436 test si, si ; 85 f6 15427 je short 09f efh ; 74 0b15437 je short 09fffh ; 74 0b 15428 15438 sal dx, 1 ; d1 e2 15429 15439 rcl cx, 1 ; d1 d1 … … 15431 15441 rcl ax, 1 ; d1 d0 15432 15442 dec si ; 4e 15433 jne short 09f e4h ; 75 f515443 jne short 09ff4h ; 75 f5 15434 15444 retn ; c3 15435 _fmemset_: ; 0xf 9ff0 LB 0x1015445 _fmemset_: ; 0xfa000 LB 0x10 15436 15446 push di ; 57 15437 15447 mov es, dx ; 8e c2 … … 15444 15454 retn ; c3 15445 15455 times 0x3 db 0 15446 _fmemcpy_: ; 0xfa0 00 LB 0x3a15456 _fmemcpy_: ; 0xfa010 LB 0x3a 15447 15457 push bp ; 55 15448 15458 db 08bh, 0ech … … 15469 15479 add byte [bx+si], al ; 00 00 15470 15480 add byte [bx+si], al ; 00 00 15471 push ax ; 50 15472 mov AL, byte [0a052h] ; a0 52 a0 15473 push si ; 56 15474 mov AL, byte [0a056h] ; a0 56 a0 15475 push si ; 56 15476 mov AL, byte [0a058h] ; a0 58 a0 15477 pop ax ; 58 15478 mov AL, byte [0a05ah] ; a0 5a a0 15479 pop si ; 5e 15480 mov AL, byte [0a05eh] ; a0 5e a0 15481 pushaw ; 60 15482 mov AL, byte [0a065h] ; a0 65 a0 15483 db 067h 15484 db 0a0h 15485 apm_worker: ; 0xfa03a LB 0x3a 15481 db 060h, 0a0h, 062h, 0a0h, 066h, 0a0h, 066h, 0a0h, 066h, 0a0h, 068h, 0a0h, 068h, 0a0h, 06ah, 0a0h 15482 db 06eh, 0a0h, 06eh, 0a0h, 070h, 0a0h, 075h, 0a0h, 077h, 0a0h 15483 apm_worker: ; 0xfa04a LB 0x3a 15486 15484 sti ; fb 15487 15485 push ax ; 50 … … 15495 15493 pop ax ; 58 15496 15494 mov AH, strict byte 053h ; b4 53 15497 jnc short 0a0 70h ; 73 2515498 jmp word [cs:bp-05f e0h] ; 2e ff a6 20 a015499 jmp short 0a0 6eh ; eb 1c15495 jnc short 0a080h ; 73 25 15496 jmp word [cs:bp-05fd0h] ; 2e ff a6 30 a0 15497 jmp short 0a07eh ; eb 1c 15500 15498 sti ; fb 15501 15499 hlt ; f4 15502 jmp short 0a0 6eh ; eb 1815503 jmp short 0a0 6eh ; eb 1615504 jmp short 0a0 70h ; eb 1615500 jmp short 0a07eh ; eb 18 15501 jmp short 0a07eh ; eb 16 15502 jmp short 0a080h ; eb 16 15505 15503 mov AH, strict byte 080h ; b4 80 15506 jmp short 0a0 72h ; eb 1415507 jmp short 0a0 70h ; eb 1015504 jmp short 0a082h ; eb 14 15505 jmp short 0a080h ; eb 10 15508 15506 mov ax, 00102h ; b8 02 01 15509 jmp short 0a0 6eh ; eb 0915510 jmp short 0a0 6eh ; eb 0715507 jmp short 0a07eh ; eb 09 15508 jmp short 0a07eh ; eb 07 15511 15509 mov BL, strict byte 000h ; b3 00 15512 15510 mov cx, strict word 00000h ; b9 00 00 15513 jmp short 0a0 6eh ; eb 0015511 jmp short 0a07eh ; eb 00 15514 15512 clc ; f8 15515 15513 retn ; c3 … … 15517 15515 stc ; f9 15518 15516 retn ; c3 15519 apm_pm16_entry: ; 0xfa0 74 LB 0x1115517 apm_pm16_entry: ; 0xfa084 LB 0x11 15520 15518 mov AH, strict byte 002h ; b4 02 15521 15519 push DS ; 1e … … 15525 15523 add bp, strict byte 00008h ; 83 c5 08 15526 15524 mov ds, bp ; 8e dd 15527 call 0a0 3ah ; e8 b8 ff15525 call 0a04ah ; e8 b8 ff 15528 15526 pop bp ; 5d 15529 15527 pop DS ; 1f 15530 15528 retf ; cb 15531 _DoUInt32Div: ; 0xfa0 85 LB 0x26b15529 _DoUInt32Div: ; 0xfa095 LB 0x26b 15532 15530 push bp ; 55 15533 15531 mov bp, sp ; 89 e5 … … 15547 15545 mov [bp-006h], ds ; 8c 5e fa 15548 15546 cmp word [bx+002h], strict byte 00000h ; 83 7f 02 00 15549 jne short 0a0 d5h ; 75 2215547 jne short 0a0e5h ; 75 22 15550 15548 mov ax, word [bx] ; 8b 07 15551 15549 test ax, ax ; 85 c0 15552 je short 0a0 d2h ; 74 1915550 je short 0a0e2h ; 74 19 15553 15551 cmp ax, strict word 00001h ; 3d 01 00 15554 jne short 0a0 d5h ; 75 1715552 jne short 0a0e5h ; 75 17 15555 15553 xor ax, ax ; 31 c0 15556 15554 mov word [bp+00ah], ax ; 89 46 0a … … 15560 15558 mov ax, word [bp-01ah] ; 8b 46 e6 15561 15559 mov word [bp+006h], ax ; 89 46 06 15562 jmp near 0a2 ddh ; e9 08 0215560 jmp near 0a2edh ; e9 08 02 15563 15561 lds bx, [bp-00ch] ; c5 5e f4 15564 15562 mov ax, word [bx+002h] ; 8b 47 02 15565 15563 mov ds, [bp-006h] ; 8e 5e fa 15566 15564 cmp ax, word [si+002h] ; 3b 44 02 15567 je short 0a 0fbh ; 74 1815565 je short 0a10bh ; 74 18 15568 15566 mov ds, [bp-00ah] ; 8e 5e f6 15569 15567 mov ax, word [bx+002h] ; 8b 47 02 15570 15568 mov ds, [bp-006h] ; 8e 5e fa 15571 15569 cmp ax, word [si+002h] ; 3b 44 02 15572 jbe short 0a 0f6h ; 76 0515570 jbe short 0a106h ; 76 05 15573 15571 mov ax, strict word 00001h ; b8 01 00 15574 jmp short 0a1 1ch ; eb 2615572 jmp short 0a12ch ; eb 26 15575 15573 mov ax, strict word 0ffffh ; b8 ff ff 15576 jmp short 0a1 1ch ; eb 2115574 jmp short 0a12ch ; eb 21 15577 15575 mov ds, [bp-00ah] ; 8e 5e f6 15578 15576 mov ax, word [bx] ; 8b 07 15579 15577 mov ds, [bp-006h] ; 8e 5e fa 15580 15578 cmp ax, word [si] ; 3b 04 15581 je short 0a1 1ah ; 74 1315579 je short 0a12ah ; 74 13 15582 15580 mov ds, [bp-00ah] ; 8e 5e f6 15583 15581 mov ax, word [bx] ; 8b 07 15584 15582 mov ds, [bp-006h] ; 8e 5e fa 15585 15583 cmp ax, word [si] ; 3b 04 15586 jbe short 0a1 15h ; 76 0215587 jmp short 0a 0f1h ; eb dc15584 jbe short 0a125h ; 76 02 15585 jmp short 0a101h ; eb dc 15588 15586 mov ax, strict word 0ffffh ; b8 ff ff 15589 jmp short 0a1 1ch ; eb 0215587 jmp short 0a12ch ; eb 02 15590 15588 xor ax, ax ; 31 c0 15591 15589 test ax, ax ; 85 c0 15592 jnl short 0a1 3eh ; 7d 1e15590 jnl short 0a14eh ; 7d 1e 15593 15591 lds bx, [bp-00ch] ; c5 5e f4 15594 15592 mov ax, word [bx] ; 8b 07 … … 15600 15598 mov word [bx+002h], strict word 00000h ; c7 47 02 00 00 15601 15599 mov word [bx], strict word 00000h ; c7 07 00 00 15602 jmp short 0a0 d2h ; eb 9415603 jne short 0a1 55h ; 75 1515600 jmp short 0a0e2h ; eb 94 15601 jne short 0a165h ; 75 15 15604 15602 mov ds, [bp-008h] ; 8e 5e f8 15605 15603 mov word [di+002h], ax ; 89 45 02 … … 15608 15606 mov word [bx], strict word 00001h ; c7 07 01 00 15609 15607 mov word [bx+002h], ax ; 89 47 02 15610 jmp near 0a2 ddh ; e9 88 0115608 jmp near 0a2edh ; e9 88 01 15611 15609 lds bx, [bp-00ch] ; c5 5e f4 15612 15610 mov ax, word [bx+002h] ; 8b 47 02 15613 15611 test ax, ax ; 85 c0 15614 je short 0a1 70h ; 74 1115612 je short 0a180h ; 74 11 15615 15613 push ax ; 50 15616 15614 mov ax, 0f000h ; b8 00 f0 15617 15615 mov ds, ax ; 8e d8 15618 call 0a 2f0h ; e8 88 0115616 call 0a300h ; e8 88 01 15619 15617 add sp, strict byte 00002h ; 83 c4 02 15620 15618 add ax, strict word 00010h ; 05 10 00 15621 jmp short 0a1 7dh ; eb 0d15619 jmp short 0a18dh ; eb 0d 15622 15620 push word [bx] ; ff 37 15623 15621 mov ax, 0f000h ; b8 00 f0 15624 15622 mov ds, ax ; 8e d8 15625 call 0a 2f0h ; e8 76 0115623 call 0a300h ; e8 76 01 15626 15624 add sp, strict byte 00002h ; 83 c4 02 15627 15625 mov word [bp-014h], ax ; 89 46 ec … … 15629 15627 mov ax, word [si+002h] ; 8b 44 02 15630 15628 test ax, ax ; 85 c0 15631 je short 0a1 9bh ; 74 1115629 je short 0a1abh ; 74 11 15632 15630 push ax ; 50 15633 15631 mov ax, 0f000h ; b8 00 f0 15634 15632 mov ds, ax ; 8e d8 15635 call 0a 2f0h ; e8 5d 0115633 call 0a300h ; e8 5d 01 15636 15634 add sp, strict byte 00002h ; 83 c4 02 15637 15635 add ax, strict word 00010h ; 05 10 00 15638 jmp short 0a1 a8h ; eb 0d15636 jmp short 0a1b8h ; eb 0d 15639 15637 push word [si] ; ff 34 15640 15638 mov ax, 0f000h ; b8 00 f0 15641 15639 mov ds, ax ; 8e d8 15642 call 0a 2f0h ; e8 4b 0115640 call 0a300h ; e8 4b 01 15643 15641 add sp, strict byte 00002h ; 83 c4 02 15644 15642 mov dx, word [bp-014h] ; 8b 56 ec … … 15651 15649 mov word [bp-016h], ax ; 89 46 ea 15652 15650 test dx, dx ; 85 d2 15653 je short 0a2 18h ; 74 5615651 je short 0a228h ; 74 56 15654 15652 mov cx, dx ; 89 d1 15655 15653 xor ch, dh ; 30 f5 … … 15657 15655 mov ax, word [si] ; 8b 04 15658 15656 mov dx, word [si+002h] ; 8b 54 02 15659 jcxz 0a1 d6h ; e3 0615657 jcxz 0a1e6h ; e3 06 15660 15658 sal ax, 1 ; d1 e0 15661 15659 rcl dx, 1 ; d1 d2 15662 loop 0a1 d0h ; e2 fa15660 loop 0a1e0h ; e2 fa 15663 15661 mov word [bp-018h], ax ; 89 46 e8 15664 15662 mov word [bp-016h], dx ; 89 56 ea … … 15666 15664 lds bx, [bp-00ch] ; c5 5e f4 15667 15665 cmp ax, word [bx+002h] ; 3b 47 02 15668 jnbe short 0a 1f6h ; 77 0f15666 jnbe short 0a206h ; 77 0f 15669 15667 mov ax, word [bp-016h] ; 8b 46 ea 15670 15668 cmp ax, word [bx+002h] ; 3b 47 02 15671 jne short 0a 1fah ; 75 0b15669 jne short 0a20ah ; 75 0b 15672 15670 mov ax, word [bp-018h] ; 8b 46 e8 15673 15671 cmp ax, word [bx] ; 3b 07 15674 jbe short 0a 1fah ; 76 0415672 jbe short 0a20ah ; 76 04 15675 15673 mov AL, strict byte 001h ; b0 01 15676 jmp short 0a 1fch ; eb 0215674 jmp short 0a20ch ; eb 02 15677 15675 xor al, al ; 30 c0 15678 15676 test al, al ; 84 c0 15679 je short 0a2 23h ; 74 2315677 je short 0a233h ; 74 23 15680 15678 shr word [bp-016h], 1 ; d1 6e ea 15681 15679 rcr word [bp-018h], 1 ; d1 5e e8 15682 15680 dec word [bp-012h] ; ff 4e ee 15683 jmp short 0a2 23h ; eb 1815681 jmp short 0a233h ; eb 18 15684 15682 mov cx, strict word 0001fh ; b9 1f 00 15685 15683 sal word [bp-018h], 1 ; d1 66 e8 15686 15684 rcl word [bp-016h], 1 ; d1 56 ea 15687 loop 0a2 0eh ; e2 f815688 jmp short 0a2 06h ; eb ee15685 loop 0a21eh ; e2 f8 15686 jmp short 0a216h ; eb ee 15689 15687 mov ax, word [si] ; 8b 04 15690 15688 mov word [bp-018h], ax ; 89 46 e8 … … 15703 15701 mov ds, [bp-006h] ; 8e 5e fa 15704 15702 cmp ax, word [si+002h] ; 3b 44 02 15705 jnbe short 0a2 4fh ; 77 0615706 jne short 0a2 53h ; 75 0815703 jnbe short 0a25fh ; 77 06 15704 jne short 0a263h ; 75 08 15707 15705 cmp dx, word [si] ; 3b 14 15708 jc short 0a2 53h ; 72 0415706 jc short 0a263h ; 72 04 15709 15707 mov AL, strict byte 001h ; b0 01 15710 jmp short 0a2 55h ; eb 0215708 jmp short 0a265h ; eb 02 15711 15709 xor al, al ; 30 c0 15712 15710 test al, al ; 84 c0 15713 je short 0a2 bah ; 74 6115711 je short 0a2cah ; 74 61 15714 15712 mov ds, [bp-008h] ; 8e 5e f8 15715 15713 mov ax, word [di+002h] ; 8b 45 02 15716 15714 cmp ax, word [bp-016h] ; 3b 46 ea 15717 jnbe short 0a2 70h ; 77 0c15715 jnbe short 0a280h ; 77 0c 15718 15716 cmp ax, word [bp-016h] ; 3b 46 ea 15719 jne short 0a2 74h ; 75 0b15717 jne short 0a284h ; 75 0b 15720 15718 mov ax, word [di] ; 8b 05 15721 15719 cmp ax, word [bp-018h] ; 3b 46 e8 15722 jc short 0a2 74h ; 72 0415720 jc short 0a284h ; 72 04 15723 15721 mov AL, strict byte 001h ; b0 01 15724 jmp short 0a2 76h ; eb 0215722 jmp short 0a286h ; eb 02 15725 15723 xor al, al ; 30 c0 15726 15724 test al, al ; 84 c0 15727 je short 0a2 a0h ; 74 2615725 je short 0a2b0h ; 74 26 15728 15726 mov ax, word [bp-018h] ; 8b 46 e8 15729 15727 mov ds, [bp-008h] ; 8e 5e f8 … … 15734 15732 xor dx, dx ; 31 d2 15735 15733 mov cx, word [bp-012h] ; 8b 4e ee 15736 jcxz 0a2 98h ; e3 0615734 jcxz 0a2a8h ; e3 06 15737 15735 sal ax, 1 ; d1 e0 15738 15736 rcl dx, 1 ; d1 d2 15739 loop 0a2 92h ; e2 fa15737 loop 0a2a2h ; e2 fa 15740 15738 lds bx, [bp-010h] ; c5 5e f0 15741 15739 or word [bx], ax ; 09 07 … … 15746 15744 mov ds, [bp-006h] ; 8e 5e fa 15747 15745 cmp ax, word [si+002h] ; 3b 44 02 15748 jc short 0a2 b6h ; 72 0615749 jne short 0a2 bch ; 75 0a15746 jc short 0a2c6h ; 72 06 15747 jne short 0a2cch ; 75 0a 15750 15748 cmp dx, word [si] ; 3b 14 15751 jnc short 0a2 bch ; 73 0615749 jnc short 0a2cch ; 73 06 15752 15750 mov AL, strict byte 001h ; b0 01 15753 jmp short 0a2 beh ; eb 0415754 jmp short 0a2 ddh ; eb 2115751 jmp short 0a2ceh ; eb 04 15752 jmp short 0a2edh ; eb 21 15755 15753 xor al, al ; 30 c0 15756 15754 test al, al ; 84 c0 15757 je short 0a2 d1h ; 74 0f15758 jmp short 0a2 ddh ; eb 1915755 je short 0a2e1h ; 74 0f 15756 jmp short 0a2edh ; eb 19 15759 15757 mov cx, strict word 0001fh ; b9 1f 00 15760 15758 sal word [bp-018h], 1 ; d1 66 e8 15761 15759 rcl word [bp-016h], 1 ; d1 56 ea 15762 loop 0a2 c7h ; e2 f815763 jmp short 0a2 d7h ; eb 0615760 loop 0a2d7h ; e2 f8 15761 jmp short 0a2e7h ; eb 06 15764 15762 shr word [bp-016h], 1 ; d1 6e ea 15765 15763 rcr word [bp-018h], 1 ; d1 5e e8 15766 15764 dec word [bp-012h] ; ff 4e ee 15767 jmp near 0a2 59h ; e9 7c ff15765 jmp near 0a269h ; e9 7c ff 15768 15766 mov ax, word [bp-01ch] ; 8b 46 e4 15769 15767 mov dx, word [bp-01ah] ; 8b 56 e6 … … 15774 15772 retn ; c3 15775 15773 times 0x6 db 0 15776 _ASMBitLastSetU16: ; 0xfa 2f0 LB 0x1815774 _ASMBitLastSetU16: ; 0xfa300 LB 0x18 15777 15775 push bp ; 55 15778 15776 db 08bh, 0ech … … 15780 15778 mov cx, word [bp+004h] ; 8b 4e 04 15781 15779 test cx, cx ; 85 c9 15782 je short 0a3 04h ; 74 0a15780 je short 0a314h ; 74 0a 15783 15781 mov ax, strict word 00010h ; b8 10 00 15784 15782 sal cx, 1 ; d1 e1 15785 jc short 0a3 06h ; 72 0515783 jc short 0a316h ; 72 05 15786 15784 dec ax ; 48 15787 jmp short 0a 2fdh ; eb f915785 jmp short 0a30dh ; eb f9 15788 15786 db 033h, 0c0h 15789 15787 ; xor ax, ax ; 33 c0 … … 15791 15789 retn ; c3 15792 15790 15793 ; Padding 0x36 f8 bytes at 0xfa30815794 times 140 72db 015791 ; Padding 0x36e8 bytes at 0xfa318 15792 times 14056 db 0 15795 15793 15796 15794 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 15839 15837 add bp, strict byte 00008h ; 83 c5 08 15840 15838 push ebp ; 66 55 15841 mov bp, 0a0 76h ; bd 76 a015839 mov bp, 0a086h ; bd 86 a0 15842 15840 add byte [bx+si], al ; 00 00 15843 15841 push ebp ; 66 55 … … 16565 16563 call 01c9fh ; e8 63 39 16566 16564 call 02118h ; e8 d9 3d 16567 call 098 bdh ; e8 7bb516568 call 087 48h ; e8 03a416565 call 098c8h ; e8 86 b5 16566 call 08753h ; e8 0e a4 16569 16567 call 0ed2fh ; e8 e7 09 16570 16568 call 0e2d2h ; e8 87 ff … … 17534 17532 popfw ; 9d 17535 17533 jmp short 0f8a5h ; eb 11 17536 call 09a 0fh ; e8 78a117534 call 09a1ah ; e8 83 a1 17537 17535 jmp short 0f88eh ; eb f5 17538 17536 int15_handler_mouse: ; 0xff899 LB 0x5 … … 17799 17797 cpu_reset: ; 0xffff0 LB 0x10 17800 17798 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 17801 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 55h17799 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 001h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum
r63625 r66146 1 28fbed16795ac17ce3351e5e8a6e7223 *VBoxPcBios286.rom1 3b558b13e9e59388473cb5453a4db1d3 *VBoxPcBios286.rom -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm
r63625 r66146 951 951 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 952 952 _pktacc: ; 0xf006a LB 0xc 953 db 000h, 000h, 000h, 000h, 000h, 000h, 0cch, 02bh, 0 0fh, 081h, 036h, 090h953 db 000h, 000h, 000h, 000h, 000h, 000h, 0cch, 02bh, 01ch, 081h, 043h, 090h 954 954 _softrst: ; 0xf0076 LB 0xc 955 955 db 000h, 000h, 000h, 000h, 000h, 000h, 0b4h, 02eh, 0c1h, 03bh, 0c1h, 03bh 956 956 _dskacc: ; 0xf0082 LB 0x2e 957 957 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0bch, 02ah, 071h, 02bh, 000h, 000h, 000h, 000h 958 db 0 59h, 07fh, 034h, 080h, 00ch, 08fh, 0b2h, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h958 db 066h, 07fh, 041h, 080h, 019h, 08fh, 0bfh, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 959 959 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 960 960 … … 1153 1153 times 1144 db 0 1154 1154 1155 section _TEXT progbits vstart=0x1600 align=1 ; size=0x89 e5 class=CODE group=AUTO1155 section _TEXT progbits vstart=0x1600 align=1 ; size=0x89f5 class=CODE group=AUTO 1156 1156 rom_scan_: ; 0xf1600 LB 0x50 1157 1157 push bp ; 55 … … 1604 1604 mov bx, strict word 0000ah ; bb 0a 00 1605 1605 xor cx, cx ; 31 c9 1606 call 09 ef0h ; e8 af 851606 call 09f00h ; e8 bf 85 1607 1607 mov word [bp-008h], ax ; 89 46 f8 1608 1608 mov cx, dx ; 89 d1 … … 1830 1830 mov dx, word [bp-026h] ; 8b 56 da 1831 1831 mov si, word [bp-01eh] ; 8b 76 e2 1832 call 09f 30h ; e8 bd 831832 call 09f40h ; e8 cd 83 1833 1833 mov ax, dx ; 89 d0 1834 1834 xor ah, dh ; 30 f4 … … 2272 2272 mov dx, word [es:si] ; 26 8b 14 2273 2273 mov si, strict word 00018h ; be 18 00 2274 call 09f 30h ; e8 61 7f2274 call 09f40h ; e8 71 7f 2275 2275 xor dh, dh ; 30 f6 2276 2276 mov word [bp-016h], dx ; 89 56 ea … … 2282 2282 mov dx, word [es:si] ; 26 8b 14 2283 2283 mov si, strict word 00020h ; be 20 00 2284 call 09f 30h ; e8 41 7f2284 call 09f40h ; e8 51 7f 2285 2285 mov bx, dx ; 89 d3 2286 2286 mov ax, word [bp-01eh] ; 8b 46 e2 … … 2313 2313 mov dx, word [es:si] ; 26 8b 14 2314 2314 mov si, strict word 00008h ; be 08 00 2315 call 09f 30h ; e8 f0 7e2315 call 09f40h ; e8 00 7f 2316 2316 mov word [bp-014h], dx ; 89 56 ec 2317 2317 mov bx, word [bp-018h] ; 8b 5e e8 … … 2322 2322 mov dx, word [es:si] ; 26 8b 14 2323 2323 mov si, strict word 00018h ; be 18 00 2324 call 09f 30h ; e8 d2 7e2324 call 09f40h ; e8 e2 7e 2325 2325 and dx, strict byte 0000fh ; 83 e2 0f 2326 2326 or dl, 040h ; 80 ca 40 … … 2878 2878 mov dx, word [es:si+036h] ; 26 8b 54 36 2879 2879 mov si, strict word 0000bh ; be 0b 00 2880 call 09f 30h ; e8 0a 792880 call 09f40h ; e8 1a 79 2881 2881 mov word [bp-030h], dx ; 89 56 d0 2882 2882 mov word [bp-02eh], cx ; 89 4e d2 … … 3149 3149 mov dx, word [bp-01eh] ; 8b 56 e2 3150 3150 mov si, strict word 00018h ; be 18 00 3151 call 09f 30h ; e8 34 763151 call 09f40h ; e8 44 76 3152 3152 xor dh, dh ; 30 f6 3153 3153 mov word [bp-01ch], dx ; 89 56 e4 … … 3157 3157 mov dx, word [bp-01eh] ; 8b 56 e2 3158 3158 mov si, strict word 00020h ; be 20 00 3159 call 09f 30h ; e8 1d 763159 call 09f40h ; e8 2d 76 3160 3160 mov bx, dx ; 89 d3 3161 3161 mov ax, word [bp-01ah] ; 8b 46 e6 … … 3191 3191 mov dx, word [bp-01eh] ; 8b 56 e2 3192 3192 mov si, strict word 00008h ; be 08 00 3193 call 09f 30h ; e8 c9 753193 call 09f40h ; e8 d9 75 3194 3194 mov word [bp-010h], ax ; 89 46 f0 3195 3195 mov word [bp-014h], bx ; 89 5e ec … … 3198 3198 mov word [bp-026h], dx ; 89 56 da 3199 3199 mov si, strict word 00010h ; be 10 00 3200 call 09f 30h ; e8 b4 753200 call 09f40h ; e8 c4 75 3201 3201 mov word [bp-01eh], dx ; 89 56 e2 3202 3202 mov ax, dx ; 89 d0 … … 5405 5405 mov dx, ss ; 8c d2 5406 5406 lea ax, [bp-026h] ; 8d 46 da 5407 call 09f 50h ; e8 2d 615407 call 09f60h ; e8 3d 61 5408 5408 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5409 5409 mov ax, strict word 00011h ; b8 11 00 … … 5864 5864 xor dl, dl ; 30 d2 5865 5865 xor cx, cx ; 31 c9 5866 call 09e b0h ; e8 2c 5b5866 call 09ec0h ; e8 3c 5b 5867 5867 xor bx, bx ; 31 db 5868 5868 add ax, si ; 01 f0 … … 5870 5870 mov bx, di ; 89 fb 5871 5871 xor cx, cx ; 31 c9 5872 call 09e b0h ; e8 1f 5b5872 call 09ec0h ; e8 2f 5b 5873 5873 mov bx, ax ; 89 c3 5874 5874 mov ax, word [bp-010h] ; 8b 46 f0 … … 5905 5905 mov dx, ss ; 8c d2 5906 5906 lea ax, [bp-02eh] ; 8d 46 d2 5907 call 09f 50h ; e8 68 5b5907 call 09f60h ; e8 78 5b 5908 5908 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 5909 5909 mov ax, word [bp-014h] ; 8b 46 ec … … 6212 6212 mov dx, ss ; 8c d2 6213 6213 lea ax, [bp-02ch] ; 8d 46 d4 6214 call 09f 50h ; e8 cd 576214 call 09f60h ; e8 dd 57 6215 6215 mov word [bp-02ch], strict word 00028h ; c7 46 d4 28 00 6216 6216 mov ax, word [bp-018h] ; 8b 46 e8 … … 6716 6716 xor ah, ah ; 30 e4 6717 6717 sar ax, 004h ; c1 f8 04 6718 call 07d 48h ; e8 5f306718 call 07d55h ; e8 6c 30 6719 6719 cmp byte [bp+004h], 002h ; 80 7e 04 02 6720 6720 jne short 04cf2h ; 75 03 … … 8054 8054 mov dx, word [bp+00ch] ; 8b 56 0c 8055 8055 mov si, strict word 00020h ; be 20 00 8056 call 09f 30h ; e8 2f 458056 call 09f40h ; e8 3f 45 8057 8057 test ax, ax ; 85 c0 8058 8058 jne short 05a11h ; 75 0c … … 8092 8092 mov bx, strict word 0003fh ; bb 3f 00 8093 8093 xor cx, cx ; 31 c9 8094 call 09e b0h ; e8 56 448094 call 09ec0h ; e8 66 44 8095 8095 mov bx, ax ; 89 c3 8096 8096 mov cx, dx ; 89 d1 8097 8097 mov ax, word [bp-004h] ; 8b 46 fc 8098 8098 mov dx, si ; 89 f2 8099 call 09 ef0h ; e8 8a 448099 call 09f00h ; e8 9a 44 8100 8100 mov word [es:di+002h], ax ; 26 89 45 02 8101 8101 cmp ax, 00400h ; 3d 00 04 … … 8321 8321 mov bx, cx ; 89 cb 8322 8322 xor cx, cx ; 31 c9 8323 call 09e b0h ; e8 25 428323 call 09ec0h ; e8 35 42 8324 8324 xor bx, bx ; 31 db 8325 8325 add ax, word [bp-008h] ; 03 46 f8 … … 8327 8327 mov bx, word [bp-00ah] ; 8b 5e f6 8328 8328 xor cx, cx ; 31 c9 8329 call 09e b0h ; e8 16 428329 call 09ec0h ; e8 26 42 8330 8330 xor bx, bx ; 31 db 8331 8331 add ax, word [bp-006h] ; 03 46 fa … … 8487 8487 mov bx, word [bp-008h] ; 8b 5e f8 8488 8488 xor cx, cx ; 31 c9 8489 call 09e b0h ; e8 4e 408489 call 09ec0h ; e8 5e 40 8490 8490 mov bx, word [bp-006h] ; 8b 5e fa 8491 8491 xor cx, cx ; 31 c9 8492 call 09e b0h ; e8 46 408492 call 09ec0h ; e8 56 40 8493 8493 mov word [bp-010h], ax ; 89 46 f0 8494 8494 mov word [bp-00eh], dx ; 89 56 f2 … … 8633 8633 xor bx, bx ; 31 db 8634 8634 mov si, strict word 00020h ; be 20 00 8635 call 09f 40h ; e8 52 3f8635 call 09f50h ; e8 62 3f 8636 8636 mov word [bp-00eh], bx ; 89 5e f2 8637 8637 mov bx, word [es:di+008h] ; 26 8b 5d 08 … … 8784 8784 mov bx, word [bp-00eh] ; 8b 5e f2 8785 8785 mov si, strict word 00020h ; be 20 00 8786 call 09f 30h ; e8 68 3d8786 call 09f40h ; e8 78 3d 8787 8787 mov bx, di ; 89 fb 8788 8788 mov word [es:bx+014h], dx ; 26 89 57 14 … … 9141 9141 mov bx, strict word 0000fh ; bb 0f 00 9142 9142 xor cx, cx ; 31 c9 9143 call 09 ef0h ; e8 8f 399143 call 09f00h ; e8 9f 39 9144 9144 mov cx, ax ; 89 c1 9145 9145 mov bx, dx ; 89 d3 … … 11320 11320 pop bp ; 5d 11321 11321 retn ; c3 11322 show_logo_: ; 0xf7b24 LB 0x2 2411322 show_logo_: ; 0xf7b24 LB 0x231 11323 11323 push bp ; 55 11324 11324 mov bp, sp ; 89 e5 … … 11344 11344 call 079b8h ; e8 68 fe 11345 11345 cmp ax, 066bbh ; 3d bb 66 11346 jne near 07c 28h ; 0f 85 d10011346 jne near 07c35h ; 0f 85 de 00 11347 11347 push SS ; 16 11348 11348 pop ES ; 07 … … 11352 11352 mov word [es:di], bx ; 26 89 1d 11353 11353 cmp ax, strict word 0004fh ; 3d 4f 00 11354 jne near 07c 28h ; 0f 85 bd0011354 jne near 07c35h ; 0f 85 ca 00 11355 11355 mov al, dl ; 88 d0 11356 11356 add AL, strict byte 004h ; 04 04 … … 11381 11381 jne short 07bafh ; 75 06 11382 11382 test bx, bx ; 85 db 11383 je near 07c 28h ; 0f 84 790011383 je near 07c35h ; 0f 84 86 00 11384 11384 mov bx, 00142h ; bb 42 01 11385 11385 mov ax, 04f02h ; b8 02 4f … … 11416 11416 mov CL, strict byte 001h ; b1 01 11417 11417 cmp byte [bp-010h], 000h ; 80 7e f0 00 11418 je short 07c2 8h ; 74 2511418 je short 07c2ah ; 74 27 11419 11419 test cl, cl ; 84 c9 11420 jne short 07c2 8h ; 75 2111420 jne short 07c2ah ; 75 23 11421 11421 mov bx, strict word 00010h ; bb 10 00 11422 11422 jmp short 07c11h ; eb 05 11423 11423 dec bx ; 4b 11424 11424 test bx, bx ; 85 db 11425 jbe short 07c 28h ; 76 1711425 jbe short 07c35h ; 76 24 11426 11426 mov ax, bx ; 89 d8 11427 11427 or ah, 002h ; 80 cc 02 … … 11434 11434 jne short 07c0ch ; 75 e6 11435 11435 mov CL, strict byte 001h ; b1 01 11436 jmp short 07c35h ; eb 0b 11437 test cl, cl ; 84 c9 11438 jne short 07c35h ; 75 07 11439 mov ax, 00200h ; b8 00 02 11440 mov dx, 003b8h ; ba b8 03 11441 out DX, ax ; ef 11436 11442 xor bx, bx ; 31 db 11437 11443 mov dx, 0037dh ; ba 7d 03 11438 11444 mov ax, si ; 89 f0 11439 call 016c6h ; e8 949a11445 call 016c6h ; e8 87 9a 11440 11446 mov AL, strict byte 003h ; b0 03 11441 11447 mov AH, strict byte 000h ; b4 00 11442 11448 int 010h ; cd 10 11443 11449 cmp byte [bp-012h], 000h ; 80 7e ee 00 11444 je near 07d 29h ; 0f 84 e9 0011450 je near 07d36h ; 0f 84 e9 00 11445 11451 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11446 jne short 07c 76h ; 75 3011452 jne short 07c83h ; 75 30 11447 11453 cmp byte [bp-010h], 000h ; 80 7e f0 00 11448 jne short 07c 76h ; 75 2a11454 jne short 07c83h ; 75 2a 11449 11455 cmp word [bp-014h], strict byte 00000h ; 83 7e ec 00 11450 jne short 07c 76h ; 75 2411456 jne short 07c83h ; 75 24 11451 11457 cmp byte [bp-012h], 002h ; 80 7e ee 02 11452 jne short 07c 63h ; 75 0b11458 jne short 07c70h ; 75 0b 11453 11459 push 00a4bh ; 68 4b 0a 11454 11460 push strict byte 00002h ; 6a 02 11455 call 019dah ; e8 7a9d11461 call 019dah ; e8 6d 9d 11456 11462 add sp, strict byte 00004h ; 83 c4 04 11457 11463 test cl, cl ; 84 c9 11458 jne short 07c 76h ; 75 0f11464 jne short 07c83h ; 75 0f 11459 11465 mov dx, strict word 00001h ; ba 01 00 11460 11466 mov ax, 000c0h ; b8 c0 00 11461 call 078f0h ; e8 80fc11467 call 078f0h ; e8 73 fc 11462 11468 cmp AL, strict byte 086h ; 3c 86 11463 jne short 07c 76h ; 75 0211469 jne short 07c83h ; 75 02 11464 11470 mov CL, strict byte 001h ; b1 01 11465 11471 test cl, cl ; 84 c9 11466 je near 07d 29h ; 0f 84 ad 0011472 je near 07d36h ; 0f 84 ad 00 11467 11473 mov byte [bp-00eh], 000h ; c6 46 f2 00 11468 11474 mov ax, 00100h ; b8 00 01 … … 11483 11489 push 00a6dh ; 68 6d 0a 11484 11490 push strict byte 00002h ; 6a 02 11485 call 019dah ; e8 359d11491 call 019dah ; e8 28 9d 11486 11492 add sp, strict byte 00004h ; 83 c4 04 11487 call 079cch ; e8 21fd11493 call 079cch ; e8 14 fd 11488 11494 push 00ab1h ; 68 b1 0a 11489 11495 push strict byte 00002h ; 6a 02 11490 call 019dah ; e8 279d11496 call 019dah ; e8 1a 9d 11491 11497 add sp, strict byte 00004h ; 83 c4 04 11492 11498 mov dx, strict word 00001h ; ba 01 00 11493 11499 mov ax, strict word 00040h ; b8 40 00 11494 call 078f0h ; e8 31fc11500 call 078f0h ; e8 24 fc 11495 11501 mov bl, al ; 88 c3 11496 11502 test al, al ; 84 c0 11497 je short 07c b6h ; 74 f111503 je short 07cc3h ; 74 f1 11498 11504 cmp AL, strict byte 030h ; 3c 30 11499 je short 07d 17h ; 74 4e11505 je short 07d24h ; 74 4e 11500 11506 cmp bl, 002h ; 80 fb 02 11501 jc short 07cf 0h ; 72 2211507 jc short 07cfdh ; 72 22 11502 11508 cmp bl, 009h ; 80 fb 09 11503 jnbe short 07cf 0h ; 77 1d11509 jnbe short 07cfdh ; 77 1d 11504 11510 movzx ax, bl ; 0f b6 c3 11505 call 07afch ; e8 23fe11511 call 07afch ; e8 16 fe 11506 11512 cmp AL, strict byte 0ffh ; 3c ff 11507 jne short 07c dfh ; 75 0211508 jmp short 07c b6h ; eb d711513 jne short 07cech ; 75 02 11514 jmp short 07cc3h ; eb d7 11509 11515 movzx bx, al ; 0f b6 d8 11510 11516 mov dx, 0037ch ; ba 7c 03 11511 11517 mov ax, si ; 89 f0 11512 call 016c6h ; e8 dc9911518 call 016c6h ; e8 cf 99 11513 11519 mov byte [bp-00eh], 002h ; c6 46 f2 02 11514 jmp short 07d 17h ; eb 2711520 jmp short 07d24h ; eb 27 11515 11521 cmp bl, 02eh ; 80 fb 2e 11516 je short 07d 05h ; 74 1011522 je short 07d12h ; 74 10 11517 11523 cmp bl, 026h ; 80 fb 26 11518 je short 07d 0bh ; 74 1111524 je short 07d18h ; 74 11 11519 11525 cmp bl, 021h ; 80 fb 21 11520 jne short 07d1 1h ; 75 1211526 jne short 07d1eh ; 75 12 11521 11527 mov byte [bp-00eh], 001h ; c6 46 f2 01 11522 jmp short 07d 17h ; eb 1211528 jmp short 07d24h ; eb 12 11523 11529 mov byte [bp-00eh], 003h ; c6 46 f2 03 11524 jmp short 07d 17h ; eb 0c11530 jmp short 07d24h ; eb 0c 11525 11531 mov byte [bp-00eh], 004h ; c6 46 f2 04 11526 jmp short 07d 17h ; eb 0611532 jmp short 07d24h ; eb 06 11527 11533 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11528 je short 07c b6h ; 74 9f11534 je short 07cc3h ; 74 9f 11529 11535 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 11530 11536 mov dx, 0037dh ; ba 7d 03 11531 11537 mov ax, si ; 89 f0 11532 call 016c6h ; e8 a39911538 call 016c6h ; e8 96 99 11533 11539 mov AL, strict byte 003h ; b0 03 11534 11540 mov AH, strict byte 000h ; b4 00 … … 11543 11549 push DS ; 1e 11544 11550 mov ds, ax ; 8e d8 11545 call 0edbfh ; e8 847011551 call 0edbfh ; e8 77 70 11546 11552 pop DS ; 1f 11547 11553 popad ; 66 61 … … 11554 11560 pop bp ; 5d 11555 11561 retn ; c3 11556 delay_boot_: ; 0xf7d 48LB 0x6711562 delay_boot_: ; 0xf7d55 LB 0x67 11557 11563 push bp ; 55 11558 11564 mov bp, sp ; 89 e5 … … 11561 11567 mov dx, ax ; 89 c2 11562 11568 test ax, ax ; 85 c0 11563 je short 07d a8h ; 74 5511569 je short 07db5h ; 74 55 11564 11570 mov AL, strict byte 034h ; b0 34 11565 11571 out strict byte 043h, AL ; e6 43 … … 11571 11577 push 00afbh ; 68 fb 0a 11572 11578 push strict byte 00002h ; 6a 02 11573 call 019dah ; e8 729c11579 call 019dah ; e8 65 9c 11574 11580 add sp, strict byte 00006h ; 83 c4 06 11575 11581 mov bx, dx ; 89 d3 11576 11582 test bx, bx ; 85 db 11577 jbe short 07d 88h ; 76 1711583 jbe short 07d95h ; 76 17 11578 11584 push bx ; 53 11579 11585 push 00b19h ; 68 19 0b 11580 11586 push strict byte 00002h ; 6a 02 11581 call 019dah ; e8 609c11587 call 019dah ; e8 53 9c 11582 11588 add sp, strict byte 00006h ; 83 c4 06 11583 11589 xor dx, dx ; 31 d2 11584 11590 mov ax, strict word 00040h ; b8 40 00 11585 call 078f0h ; e8 6bfb11591 call 078f0h ; e8 5e fb 11586 11592 dec bx ; 4b 11587 jmp short 07d 6dh ; eb e511593 jmp short 07d7ah ; eb e5 11588 11594 push 00a49h ; 68 49 0a 11589 11595 push strict byte 00002h ; 6a 02 11590 call 019dah ; e8 4a9c11596 call 019dah ; e8 3d 9c 11591 11597 add sp, strict byte 00004h ; 83 c4 04 11592 11598 mov AL, strict byte 034h ; b0 34 … … 11599 11605 push DS ; 1e 11600 11606 mov ds, ax ; 8e d8 11601 call 0edbfh ; e8 1a7011607 call 0edbfh ; e8 0d 70 11602 11608 pop DS ; 1f 11603 11609 popad ; 66 61 … … 11607 11613 pop bp ; 5d 11608 11614 retn ; c3 11609 scsi_cmd_data_in_: ; 0xf7d afLB 0xd511615 scsi_cmd_data_in_: ; 0xf7dbc LB 0xd5 11610 11616 push bp ; 55 11611 11617 mov bp, sp ; 89 e5 … … 11623 11629 ; sub ah, ah ; 2a e4 11624 11630 test AL, strict byte 001h ; a8 01 11625 jne short 07d c5h ; 75 f711631 jne short 07dd2h ; 75 f7 11626 11632 cmp byte [bp+004h], 010h ; 80 7e 04 10 11627 jne short 07d d8h ; 75 0411633 jne short 07de5h ; 75 04 11628 11634 xor ax, ax ; 31 c0 11629 jmp short 07d dch ; eb 0411635 jmp short 07de9h ; eb 04 11630 11636 movzx ax, byte [bp+004h] ; 0f b6 46 04 11631 11637 mov di, ax ; 89 c7 … … 11635 11641 shr dx, 1 ; d1 ea 11636 11642 rcr ax, 1 ; d1 d8 11637 loop 07d e6h ; e2 fa11643 loop 07df3h ; e2 fa 11638 11644 mov cx, ax ; 89 c1 11639 11645 and cx, 000f0h ; 81 e1 f0 00 … … 11653 11659 shr dx, 1 ; d1 ea 11654 11660 rcr ax, 1 ; d1 d8 11655 loop 07e 0bh ; e2 fa11661 loop 07e18h ; e2 fa 11656 11662 mov dx, si ; 89 f2 11657 11663 out DX, AL ; ee … … 11659 11665 movzx ax, byte [bp+004h] ; 0f b6 46 04 11660 11666 cmp cx, ax ; 39 c1 11661 jnc short 07e 2ch ; 73 0e11667 jnc short 07e39h ; 73 0e 11662 11668 les di, [bp-00ah] ; c4 7e f6 11663 11669 add di, cx ; 01 cf … … 11666 11672 out DX, AL ; ee 11667 11673 inc cx ; 41 11668 jmp short 07e 16h ; eb ea11674 jmp short 07e23h ; eb ea 11669 11675 mov dx, si ; 89 f2 11670 11676 in AL, DX ; ec … … 11672 11678 ; sub ah, ah ; 2a e4 11673 11679 test AL, strict byte 001h ; a8 01 11674 jne short 07e 2ch ; 75 f711680 jne short 07e39h ; 75 f7 11675 11681 test AL, strict byte 002h ; a8 02 11676 je short 07e 47h ; 74 0e11682 je short 07e54h ; 74 0e 11677 11683 lea dx, [si+003h] ; 8d 54 03 11678 11684 xor al, al ; 30 c0 … … 11682 11688 ; sub ah, ah ; 2a e4 11683 11689 mov di, strict word 00004h ; bf 04 00 11684 jmp short 07e 79h ; eb 3211690 jmp short 07e86h ; eb 32 11685 11691 lea dx, [si+001h] ; 8d 54 01 11686 11692 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 11687 jne short 07e 56h ; 75 0611693 jne short 07e63h ; 75 06 11688 11694 cmp bx, 08000h ; 81 fb 00 80 11689 jbe short 07e7 0h ; 76 1a11695 jbe short 07e7dh ; 76 1a 11690 11696 mov cx, 08000h ; b9 00 80 11691 11697 les di, [bp+006h] ; c4 7e 06 … … 11696 11702 add ax, 00800h ; 05 00 08 11697 11703 mov word [bp+008h], ax ; 89 46 08 11698 jmp short 07e 47h ; eb d711704 jmp short 07e54h ; eb d7 11699 11705 mov cx, bx ; 89 d9 11700 11706 les di, [bp+006h] ; c4 7e 06 … … 11707 11713 pop bp ; 5d 11708 11714 retn 0000ah ; c2 0a 00 11709 scsi_cmd_data_out_: ; 0xf7e 84LB 0xd511715 scsi_cmd_data_out_: ; 0xf7e91 LB 0xd5 11710 11716 push bp ; 55 11711 11717 mov bp, sp ; 89 e5 … … 11723 11729 ; sub ah, ah ; 2a e4 11724 11730 test AL, strict byte 001h ; a8 01 11725 jne short 07e 9ah ; 75 f711731 jne short 07ea7h ; 75 f7 11726 11732 cmp byte [bp+004h], 010h ; 80 7e 04 10 11727 jne short 07e adh ; 75 0411733 jne short 07ebah ; 75 04 11728 11734 xor ax, ax ; 31 c0 11729 jmp short 07eb 1h ; eb 0411735 jmp short 07ebeh ; eb 04 11730 11736 movzx ax, byte [bp+004h] ; 0f b6 46 04 11731 11737 mov si, ax ; 89 c6 … … 11735 11741 shr dx, 1 ; d1 ea 11736 11742 rcr ax, 1 ; d1 d8 11737 loop 07e bbh ; e2 fa11743 loop 07ec8h ; e2 fa 11738 11744 mov cx, ax ; 89 c1 11739 11745 and cx, 000f0h ; 81 e1 f0 00 … … 11753 11759 shr dx, 1 ; d1 ea 11754 11760 rcr ax, 1 ; d1 d8 11755 loop 07ee 0h ; e2 fa11761 loop 07eedh ; e2 fa 11756 11762 mov dx, di ; 89 fa 11757 11763 out DX, AL ; ee … … 11759 11765 movzx ax, byte [bp+004h] ; 0f b6 46 04 11760 11766 cmp cx, ax ; 39 c1 11761 jnc short 07f0 1h ; 73 0e11767 jnc short 07f0eh ; 73 0e 11762 11768 les si, [bp-00ah] ; c4 76 f6 11763 11769 add si, cx ; 01 ce … … 11766 11772 out DX, AL ; ee 11767 11773 inc cx ; 41 11768 jmp short 07e ebh ; eb ea11774 jmp short 07ef8h ; eb ea 11769 11775 lea dx, [di+001h] ; 8d 55 01 11770 11776 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 11771 jne short 07f1 0h ; 75 0611777 jne short 07f1dh ; 75 06 11772 11778 cmp bx, 08000h ; 81 fb 00 80 11773 jbe short 07f 2bh ; 76 1b11779 jbe short 07f38h ; 76 1b 11774 11780 mov cx, 08000h ; b9 00 80 11775 11781 les si, [bp+006h] ; c4 76 06 … … 11781 11787 add ax, 00800h ; 05 00 08 11782 11788 mov word [bp+008h], ax ; 89 46 08 11783 jmp short 07f0 1h ; eb d611789 jmp short 07f0eh ; eb d6 11784 11790 mov cx, bx ; 89 d9 11785 11791 les si, [bp+006h] ; c4 76 06 … … 11791 11797 ; sub ah, ah ; 2a e4 11792 11798 test AL, strict byte 001h ; a8 01 11793 jne short 07f 33h ; 75 f711799 jne short 07f40h ; 75 f7 11794 11800 test AL, strict byte 002h ; a8 02 11795 je short 07f 4eh ; 74 0e11801 je short 07f5bh ; 74 0e 11796 11802 lea dx, [di+003h] ; 8d 55 03 11797 11803 xor al, al ; 30 c0 … … 11801 11807 ; sub ah, ah ; 2a e4 11802 11808 mov ax, strict word 00004h ; b8 04 00 11803 jmp short 07f5 0h ; eb 0211809 jmp short 07f5dh ; eb 02 11804 11810 xor ax, ax ; 31 c0 11805 11811 lea sp, [bp-004h] ; 8d 66 fc … … 11808 11814 pop bp ; 5d 11809 11815 retn 0000ah ; c2 0a 00 11810 @scsi_read_sectors: ; 0xf7f 59LB 0xdb11816 @scsi_read_sectors: ; 0xf7f66 LB 0xdb 11811 11817 push bp ; 55 11812 11818 mov bp, sp ; 89 e5 … … 11820 11826 mov byte [bp-006h], al ; 88 46 fa 11821 11827 cmp AL, strict byte 004h ; 3c 04 11822 jbe short 07f 87h ; 76 1311828 jbe short 07f94h ; 76 13 11823 11829 movzx ax, byte [bp-006h] ; 0f b6 46 fa 11824 11830 push ax ; 50 … … 11826 11832 push 00b30h ; 68 30 0b 11827 11833 push strict byte 00007h ; 6a 07 11828 call 019dah ; e8 569a11834 call 019dah ; e8 49 9a 11829 11835 add sp, strict byte 00008h ; 83 c4 08 11830 11836 mov es, [bp+006h] ; 8e 46 06 … … 11865 11871 sal word [bp-00ah], 1 ; d1 66 f6 11866 11872 rcl word [bp-008h], 1 ; d1 56 f8 11867 loop 07ff 0h ; e2 f811873 loop 07ffdh ; e2 f8 11868 11874 push dword [bp-00ah] ; 66 ff 76 f6 11869 11875 db 066h, 026h, 0ffh, 074h, 008h … … 11873 11879 mov cx, ss ; 8c d1 11874 11880 lea bx, [bp-01ah] ; 8d 5e e6 11875 call 07d afh ; e8 a2 fd11881 call 07dbch ; e8 a2 fd 11876 11882 mov ah, al ; 88 c4 11877 11883 test al, al ; 84 c0 11878 jne short 080 28h ; 75 1511884 jne short 08035h ; 75 15 11879 11885 mov es, [bp+006h] ; 8e 46 06 11880 11886 mov word [es:si+018h], di ; 26 89 7c 18 … … 11889 11895 pop bp ; 5d 11890 11896 retn 00004h ; c2 04 00 11891 @scsi_write_sectors: ; 0xf80 34LB 0xdb11897 @scsi_write_sectors: ; 0xf8041 LB 0xdb 11892 11898 push bp ; 55 11893 11899 mov bp, sp ; 89 e5 … … 11901 11907 mov byte [bp-006h], al ; 88 46 fa 11902 11908 cmp AL, strict byte 004h ; 3c 04 11903 jbe short 0806 2h ; 76 1311909 jbe short 0806fh ; 76 13 11904 11910 movzx ax, byte [bp-006h] ; 0f b6 46 fa 11905 11911 push ax ; 50 … … 11907 11913 push 00b30h ; 68 30 0b 11908 11914 push strict byte 00007h ; 6a 07 11909 call 019dah ; e8 7b9911915 call 019dah ; e8 6e 99 11910 11916 add sp, strict byte 00008h ; 83 c4 08 11911 11917 mov es, [bp+006h] ; 8e 46 06 … … 11946 11952 sal word [bp-00ah], 1 ; d1 66 f6 11947 11953 rcl word [bp-008h], 1 ; d1 56 f8 11948 loop 080 cbh ; e2 f811954 loop 080d8h ; e2 f8 11949 11955 push dword [bp-00ah] ; 66 ff 76 f6 11950 11956 db 066h, 026h, 0ffh, 074h, 008h … … 11954 11960 mov cx, ss ; 8c d1 11955 11961 lea bx, [bp-01ah] ; 8d 5e e6 11956 call 07e 84h ; e8 9c fd11962 call 07e91h ; e8 9c fd 11957 11963 mov ah, al ; 88 c4 11958 11964 test al, al ; 84 c0 11959 jne short 081 03h ; 75 1511965 jne short 08110h ; 75 15 11960 11966 mov es, [bp+006h] ; 8e 46 06 11961 11967 mov word [es:si+018h], di ; 26 89 7c 18 … … 11970 11976 pop bp ; 5d 11971 11977 retn 00004h ; c2 04 00 11972 scsi_cmd_packet_: ; 0xf81 0fLB 0x16611978 scsi_cmd_packet_: ; 0xf811c LB 0x166 11973 11979 push bp ; 55 11974 11980 mov bp, sp ; 89 e5 … … 11982 11988 mov dx, strict word 0000eh ; ba 0e 00 11983 11989 mov ax, strict word 00040h ; b8 40 00 11984 call 016d4h ; e8 a99511990 call 016d4h ; e8 9c 95 11985 11991 mov si, 00122h ; be 22 01 11986 11992 mov word [bp-00eh], ax ; 89 46 f2 11987 11993 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 11988 jne short 081 56h ; 75 1f11994 jne short 08163h ; 75 1f 11989 11995 mov bx, 00da0h ; bb a0 0d 11990 11996 mov cx, ds ; 8c d9 11991 11997 mov ax, strict word 00004h ; b8 04 00 11992 call 01999h ; e8 579811998 call 01999h ; e8 4a 98 11993 11999 push 00b62h ; 68 62 0b 11994 12000 push 00b72h ; 68 72 0b 11995 12001 push strict byte 00004h ; 6a 04 11996 call 019dah ; e8 8 d9812002 call 019dah ; e8 80 98 11997 12003 add sp, strict byte 00006h ; 83 c4 06 11998 12004 mov dx, strict word 00001h ; ba 01 00 11999 jmp near 082 6ah ; e9 14 0112005 jmp near 08277h ; e9 14 01 12000 12006 sub di, strict byte 00008h ; 83 ef 08 12001 12007 sal di, 002h ; c1 e7 02 … … 12011 12017 ; sub ah, ah ; 2a e4 12012 12018 test AL, strict byte 001h ; a8 01 12013 jne short 0817 2h ; 75 f712019 jne short 0817fh ; 75 f7 12014 12020 xor ax, ax ; 31 c0 12015 12021 mov dx, word [bp+006h] ; 8b 56 06 … … 12027 12033 shr dx, 1 ; d1 ea 12028 12034 rcr ax, 1 ; d1 d8 12029 loop 081 9dh ; e2 fa12035 loop 081aah ; e2 fa 12030 12036 and ax, 000f0h ; 25 f0 00 12031 12037 movzx cx, byte [bp-006h] ; 0f b6 4e fa … … 12045 12051 shr dx, 1 ; d1 ea 12046 12052 rcr ax, 1 ; d1 d8 12047 loop 081 c4h ; e2 fa12053 loop 081d1h ; e2 fa 12048 12054 mov dx, bx ; 89 da 12049 12055 out DX, AL ; ee … … 12051 12057 movzx ax, byte [bp-006h] ; 0f b6 46 fa 12052 12058 cmp cx, ax ; 39 c1 12053 jnc short 081 e5h ; 73 0e12059 jnc short 081f2h ; 73 0e 12054 12060 les di, [bp-00ch] ; c4 7e f4 12055 12061 add di, cx ; 01 cf … … 12058 12064 out DX, AL ; ee 12059 12065 inc cx ; 41 12060 jmp short 081 cfh ; eb ea12066 jmp short 081dch ; eb ea 12061 12067 mov dx, bx ; 89 da 12062 12068 in AL, DX ; ec … … 12064 12070 ; sub ah, ah ; 2a e4 12065 12071 test AL, strict byte 001h ; a8 01 12066 jne short 081 e5h ; 75 f712072 jne short 081f2h ; 75 f7 12067 12073 test AL, strict byte 002h ; a8 02 12068 je short 0820 0h ; 74 0e12074 je short 0820dh ; 74 0e 12069 12075 lea dx, [bx+003h] ; 8d 57 03 12070 12076 xor al, al ; 30 c0 … … 12074 12080 ; sub ah, ah ; 2a e4 12075 12081 mov dx, strict word 00003h ; ba 03 00 12076 jmp short 082 6ah ; eb 6a12082 jmp short 08277h ; eb 6a 12077 12083 mov ax, word [bp+004h] ; 8b 46 04 12078 12084 test ax, ax ; 85 c0 12079 je short 082 0fh ; 74 0812085 je short 0821ch ; 74 08 12080 12086 lea dx, [bx+001h] ; 8d 57 01 12081 12087 mov cx, ax ; 89 c1 12082 12088 in AL, DX ; ec 12083 loop 082 0ch ; e2 fd12089 loop 08219h ; e2 fd 12084 12090 mov ax, word [bp+006h] ; 8b 46 06 12085 12091 mov es, [bp-00eh] ; 8e 46 f2 … … 12089 12095 lea ax, [bx+001h] ; 8d 47 01 12090 12096 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 12091 jne short 0823 0h ; 75 0712097 jne short 0823dh ; 75 07 12092 12098 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 12093 jbe short 082 4dh ; 76 1d12099 jbe short 0825ah ; 76 1d 12094 12100 mov dx, ax ; 89 c2 12095 12101 mov cx, 08000h ; b9 00 80 … … 12101 12107 add ax, 00800h ; 05 00 08 12102 12108 mov word [bp+00eh], ax ; 89 46 0e 12103 jmp short 0822 0h ; eb d312109 jmp short 0822dh ; eb d3 12104 12110 mov dx, ax ; 89 c2 12105 12111 mov cx, word [bp+006h] ; 8b 4e 06 … … 12108 12114 mov es, [bp-00eh] ; 8e 46 f2 12109 12115 cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00 12110 je short 082 68h ; 74 0712116 je short 08275h ; 74 07 12111 12117 mov cx, word [es:si+020h] ; 26 8b 4c 20 12112 12118 in AL, DX ; ec 12113 loop 082 65h ; e2 fd12119 loop 08272h ; e2 fd 12114 12120 xor dx, dx ; 31 d2 12115 12121 mov ax, dx ; 89 d0 … … 12119 12125 pop bp ; 5d 12120 12126 retn 0000ch ; c2 0c 00 12121 scsi_enumerate_attached_devices_: ; 0xf82 75LB 0x48212127 scsi_enumerate_attached_devices_: ; 0xf8282 LB 0x482 12122 12128 push bp ; 55 12123 12129 mov bp, sp ; 89 e5 … … 12131 12137 mov dx, strict word 0000eh ; ba 0e 00 12132 12138 mov ax, strict word 00040h ; b8 40 00 12133 call 016d4h ; e8 499412139 call 016d4h ; e8 3c 94 12134 12140 mov di, 00122h ; bf 22 01 12135 12141 mov word [bp-02eh], ax ; 89 46 d2 12136 12142 mov word [bp-01eh], strict word 00000h ; c7 46 e2 00 00 12137 jmp near 086 79h ; e9 e0 0312143 jmp near 08686h ; e9 e0 03 12138 12144 cmp AL, strict byte 004h ; 3c 04 12139 jnc near 086 edh ; 0f 83 4e 0412145 jnc near 086fah ; 0f 83 4e 04 12140 12146 mov cx, strict word 00010h ; b9 10 00 12141 12147 xor bx, bx ; 31 db 12142 12148 mov dx, ss ; 8c d2 12143 12149 lea ax, [bp-046h] ; 8d 46 ba 12144 call 09f 50h ; e8 a41c12150 call 09f60h ; e8 a7 1c 12145 12151 mov byte [bp-046h], 09eh ; c6 46 ba 9e 12146 12152 mov byte [bp-045h], 010h ; c6 46 bb 10 … … 12155 12161 lea bx, [bp-046h] ; 8d 5e ba 12156 12162 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12157 call 07d afh ; e8 dc fa12163 call 07dbch ; e8 dc fa 12158 12164 test al, al ; 84 c0 12159 je short 082 e5h ; 74 0e12165 je short 082f2h ; 74 0e 12160 12166 push 00b92h ; 68 92 0b 12161 12167 push 00bcbh ; 68 cb 0b 12162 12168 push strict byte 00007h ; 6a 07 12163 call 019dah ; e8 f89612169 call 019dah ; e8 eb 96 12164 12170 add sp, strict byte 00006h ; 83 c4 06 12165 12171 mov ax, word [bp-00240h] ; 8b 86 c0 fd … … 12191 12197 sal ax, 1 ; d1 e0 12192 12198 rcl dx, 1 ; d1 d2 12193 loop 083 33h ; e2 fa12199 loop 08340h ; e2 fa 12194 12200 or bx, ax ; 09 c3 12195 12201 or dx, si ; 09 f2 … … 12198 12204 mov word [bp-024h], bx ; 89 5e dc 12199 12205 test dx, dx ; 85 d2 12200 jne short 0835 1h ; 75 0612206 jne short 0835eh ; 75 06 12201 12207 cmp bx, 00200h ; 81 fb 00 02 12202 je short 0837 1h ; 74 2012208 je short 0837eh ; 74 20 12203 12209 mov bx, 00da0h ; bb a0 0d 12204 12210 mov cx, ds ; 8c d9 12205 12211 mov ax, strict word 00004h ; b8 04 00 12206 call 01999h ; e8 3 d9612212 call 01999h ; e8 30 96 12207 12213 push dx ; 52 12208 12214 push word [bp-024h] ; ff 76 dc … … 12210 12216 push 00beah ; 68 ea 0b 12211 12217 push strict byte 00004h ; 6a 04 12212 call 019dah ; e8 6 f9612218 call 019dah ; e8 62 96 12213 12219 add sp, strict byte 0000ah ; 83 c4 0a 12214 jmp near 0867 0h ; e9 ff 0212220 jmp near 0867dh ; e9 ff 02 12215 12221 mov al, byte [bp-00ch] ; 8a 46 f4 12216 12222 cmp AL, strict byte 001h ; 3c 01 12217 jc short 083 84h ; 72 0c12218 jbe short 083 8ch ; 76 1212223 jc short 08391h ; 72 0c 12224 jbe short 08399h ; 76 12 12219 12225 cmp AL, strict byte 003h ; 3c 03 12220 je short 083 94h ; 74 1612226 je short 083a1h ; 74 16 12221 12227 cmp AL, strict byte 002h ; 3c 02 12222 je short 0839 0h ; 74 0e12223 jmp short 083 ddh ; eb 5912228 je short 0839dh ; 74 0e 12229 jmp short 083eah ; eb 59 12224 12230 test al, al ; 84 c0 12225 jne short 083 ddh ; 75 5512231 jne short 083eah ; 75 55 12226 12232 mov BL, strict byte 090h ; b3 90 12227 jmp short 083 96h ; eb 0a12233 jmp short 083a3h ; eb 0a 12228 12234 mov BL, strict byte 098h ; b3 98 12229 jmp short 083 96h ; eb 0612235 jmp short 083a3h ; eb 06 12230 12236 mov BL, strict byte 0a0h ; b3 a0 12231 jmp short 083 96h ; eb 0212237 jmp short 083a3h ; eb 02 12232 12238 mov BL, strict byte 0a8h ; b3 a8 12233 12239 mov al, bl ; 88 d8 … … 12235 12241 movzx cx, al ; 0f b6 c8 12236 12242 mov ax, cx ; 89 c8 12237 call 01714h ; e8 729312243 call 01714h ; e8 65 93 12238 12244 test al, al ; 84 c0 12239 je short 083 ddh ; 74 3712245 je short 083eah ; 74 37 12240 12246 mov al, bl ; 88 d8 12241 12247 db 0feh, 0c0h 12242 12248 ; inc al ; fe c0 12243 12249 xor ah, ah ; 30 e4 12244 call 01714h ; e8 659312250 call 01714h ; e8 58 93 12245 12251 movzx dx, al ; 0f b6 d0 12246 12252 sal dx, 008h ; c1 e2 08 12247 12253 movzx ax, bl ; 0f b6 c3 12248 call 01714h ; e8 599312254 call 01714h ; e8 4c 93 12249 12255 xor ah, ah ; 30 e4 12250 12256 add ax, dx ; 01 d0 … … 12254 12260 add AL, strict byte 002h ; 04 02 12255 12261 xor ah, ah ; 30 e4 12256 call 01714h ; e8 499312262 call 01714h ; e8 3c 93 12257 12263 xor ah, ah ; 30 e4 12258 12264 mov word [bp-034h], ax ; 89 46 cc 12259 12265 mov ax, cx ; 89 c8 12260 call 01714h ; e8 3 f9312266 call 01714h ; e8 32 93 12261 12267 xor ah, ah ; 30 e4 12262 12268 mov word [bp-032h], ax ; 89 46 ce 12263 jmp near 084 c6h ; e9 e9 0012269 jmp near 084d3h ; e9 e9 00 12264 12270 mov ax, word [bp-010h] ; 8b 46 f0 12265 12271 mov bx, word [bp-030h] ; 8b 5e d0 … … 12267 12273 mov dx, word [bp-016h] ; 8b 56 ea 12268 12274 mov si, strict word 0000ch ; be 0c 00 12269 call 09f 30h ; e8 411b12275 call 09f40h ; e8 44 1b 12270 12276 mov word [bp-018h], ax ; 89 46 e8 12271 12277 mov word [bp-014h], bx ; 89 5e ec … … 12274 12280 mov ax, word [bp-010h] ; 8b 46 f0 12275 12281 test ax, ax ; 85 c0 12276 jnbe short 084 18h ; 77 1612277 jne near 084 8bh ; 0f 85 85 0012282 jnbe short 08425h ; 77 16 12283 jne near 08498h ; 0f 85 85 00 12278 12284 cmp word [bp-030h], strict byte 00000h ; 83 7e d0 00 12279 jnbe short 084 18h ; 77 0c12280 jne near 084 8bh ; 0f 85 7b 0012285 jnbe short 08425h ; 77 0c 12286 jne near 08498h ; 0f 85 7b 00 12281 12287 cmp word [bp-012h], strict byte 00040h ; 83 7e ee 40 12282 jnbe short 084 18h ; 77 0212283 jne short 084 8bh ; 75 7312288 jnbe short 08425h ; 77 02 12289 jne short 08498h ; 75 73 12284 12290 mov dword [bp-034h], strict dword 0003f00ffh ; 66 c7 46 cc ff 00 3f 00 12285 12291 mov bx, word [bp-030h] ; 8b 5e d0 … … 12287 12293 mov dx, word [bp-016h] ; 8b 56 ea 12288 12294 mov si, strict word 00006h ; be 06 00 12289 call 09f 30h ; e8 011b12295 call 09f40h ; e8 04 1b 12290 12296 mov si, word [bp-020h] ; 8b 76 e0 12291 12297 add si, dx ; 01 d6 … … 12305 12311 mov dx, si ; 89 f2 12306 12312 mov si, strict word 00008h ; be 08 00 12307 call 09f 30h ; e8 d11a12313 call 09f40h ; e8 d4 1a 12308 12314 mov word [bp-022h], bx ; 89 5e de 12309 12315 mov word [bp-02ch], cx ; 89 4e d4 … … 12314 12320 mov dx, word [bp-02ah] ; 8b 56 d6 12315 12321 mov si, strict word 00010h ; be 10 00 12316 call 09f 30h ; e8 b61a12322 call 09f40h ; e8 b9 1a 12317 12323 mov si, word [bp-01ah] ; 8b 76 e6 12318 12324 add si, dx ; 01 d6 … … 12321 12327 mov ax, word [bp-022h] ; 8b 46 de 12322 12328 adc ax, bx ; 11 d8 12323 jmp short 084 c6h ; eb 3b12329 jmp short 084d3h ; eb 3b 12324 12330 test ax, ax ; 85 c0 12325 jnbe short 084a 1h ; 77 1212326 jne short 084 abh ; 75 1a12331 jnbe short 084aeh ; 77 12 12332 jne short 084b8h ; 75 1a 12327 12333 cmp word [bp-030h], strict byte 00000h ; 83 7e d0 00 12328 jnbe short 084a 1h ; 77 0a12329 jne short 084 abh ; 75 1212334 jnbe short 084aeh ; 77 0a 12335 jne short 084b8h ; 75 12 12330 12336 cmp word [bp-012h], strict byte 00020h ; 83 7e ee 20 12331 jnbe short 084a 1h ; 77 0212332 jne short 084 abh ; 75 0a12337 jnbe short 084aeh ; 77 02 12338 jne short 084b8h ; 75 0a 12333 12339 mov dword [bp-034h], strict dword 000200080h ; 66 c7 46 cc 80 00 20 00 12334 jmp short 084c 2h ; eb 1712340 jmp short 084cfh ; eb 17 12335 12341 mov dword [bp-034h], strict dword 000200040h ; 66 c7 46 cc 40 00 20 00 12336 12342 mov bx, word [bp-030h] ; 8b 5e d0 … … 12338 12344 mov dx, word [bp-016h] ; 8b 56 ea 12339 12345 mov si, strict word 0000bh ; be 0b 00 12340 call 09f 30h ; e8 6e1a12346 call 09f40h ; e8 71 1a 12341 12347 mov si, dx ; 89 d6 12342 12348 mov dx, cx ; 89 ca … … 12371 12377 mov word [es:bx+034h], ax ; 26 89 47 34 12372 12378 test dx, dx ; 85 d2 12373 jne short 085 33h ; 75 0612379 jne short 08540h ; 75 06 12374 12380 cmp si, 00400h ; 81 fe 00 04 12375 jbe short 0854 1h ; 76 0e12381 jbe short 0854eh ; 76 0e 12376 12382 mov word [es:bx+02ch], 00400h ; 26 c7 47 2c 00 04 12377 12383 mov word [es:bx+032h], 00400h ; 26 c7 47 32 00 04 12378 jmp short 085 49h ; eb 0812384 jmp short 08556h ; eb 08 12379 12385 mov word [es:bx+02ch], si ; 26 89 77 2c 12380 12386 mov word [es:bx+032h], si ; 26 89 77 32 … … 12382 12388 mov cx, ds ; 8c d9 12383 12389 mov ax, strict word 00004h ; b8 04 00 12384 call 01999h ; e8 459412390 call 01999h ; e8 38 94 12385 12391 push word [bp-010h] ; ff 76 f0 12386 12392 push word [bp-030h] ; ff 76 d0 … … 12395 12401 push 00c18h ; 68 18 0c 12396 12402 push strict byte 00004h ; 6a 04 12397 call 019dah ; e8 649412403 call 019dah ; e8 57 94 12398 12404 add sp, strict byte 00018h ; 83 c4 18 12399 12405 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 … … 12420 12426 mov dx, strict word 00075h ; ba 75 00 12421 12427 mov ax, strict word 00040h ; b8 40 00 12422 call 016b8h ; e8 f29012428 call 016b8h ; e8 e5 90 12423 12429 db 0feh, 0c0h 12424 12430 ; inc al ; fe c0 … … 12426 12432 mov dx, strict word 00075h ; ba 75 00 12427 12433 mov ax, strict word 00040h ; b8 40 00 12428 call 016c6h ; e8 f29012434 call 016c6h ; e8 e5 90 12429 12435 inc byte [bp-00ch] ; fe 46 f4 12430 jmp near 086 65h ; e9 8b 0012436 jmp near 08672h ; e9 8b 00 12431 12437 mov bx, 00da0h ; bb a0 0d 12432 12438 mov cx, ds ; 8c d9 12433 12439 mov ax, strict word 00004h ; b8 04 00 12434 call 01999h ; e8 b49312440 call 01999h ; e8 a7 93 12435 12441 push word [bp-01eh] ; ff 76 e2 12436 12442 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 … … 12438 12444 push 00c46h ; 68 46 0c 12439 12445 push strict byte 00004h ; 6a 04 12440 call 019dah ; e8 e59312446 call 019dah ; e8 d8 93 12441 12447 add sp, strict byte 00008h ; 83 c4 08 12442 12448 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12479 12485 inc word [bp-01eh] ; ff 46 e2 12480 12486 cmp word [bp-01eh], strict byte 00010h ; 83 7e e2 10 12481 jnl short 086 edh ; 7d 7412487 jnl short 086fah ; 7d 74 12482 12488 mov byte [bp-046h], 012h ; c6 46 ba 12 12483 12489 xor al, al ; 30 c0 … … 12496 12502 lea bx, [bp-046h] ; 8d 5e ba 12497 12503 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12498 call 07d afh ; e8 05 f712504 call 07dbch ; e8 05 f7 12499 12505 test al, al ; 84 c0 12500 je short 086 bch ; 74 0e12506 je short 086c9h ; 74 0e 12501 12507 push 00b92h ; 68 92 0b 12502 12508 push 00bb2h ; 68 b2 0b 12503 12509 push strict byte 00007h ; 6a 07 12504 call 019dah ; e8 219312510 call 019dah ; e8 14 93 12505 12511 add sp, strict byte 00006h ; 83 c4 06 12506 12512 mov es, [bp-02eh] ; 8e 46 d2 … … 12508 12514 mov byte [bp-00ch], al ; 88 46 f4 12509 12515 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12510 jne short 086 d7h ; 75 0912516 jne short 086e4h ; 75 09 12511 12517 test byte [bp-00246h], 01fh ; f6 86 ba fd 1f 12512 je near 082 99h ; 0f 84 c2 fb12518 je near 082a6h ; 0f 84 c2 fb 12513 12519 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12514 jne short 086 65h ; 75 8712520 jne short 08672h ; 75 87 12515 12521 mov al, byte [bp-00246h] ; 8a 86 ba fd 12516 12522 and AL, strict byte 01fh ; 24 1f 12517 12523 cmp AL, strict byte 005h ; 3c 05 12518 je near 085 dah ; 0f 84 f0 fe12519 jmp near 086 65h ; e9 78 ff12524 je near 085e7h ; 0f 84 f0 fe 12525 jmp near 08672h ; e9 78 ff 12520 12526 lea sp, [bp-00ah] ; 8d 66 f6 12521 12527 pop di ; 5f … … 12526 12532 pop bp ; 5d 12527 12533 retn ; c3 12528 _scsi_init: ; 0xf8 6f7LB 0x6612534 _scsi_init: ; 0xf8704 LB 0x66 12529 12535 push bp ; 55 12530 12536 mov bp, sp ; 89 e5 12531 12537 mov dx, strict word 0000eh ; ba 0e 00 12532 12538 mov ax, strict word 00040h ; b8 40 00 12533 call 016d4h ; e8 d18f12539 call 016d4h ; e8 c4 8f 12534 12540 mov bx, 00122h ; bb 22 01 12535 12541 mov es, ax ; 8e c0 … … 12542 12548 ; sub ah, ah ; 2a e4 12543 12549 cmp AL, strict byte 055h ; 3c 55 12544 jne short 087 27h ; 75 0c12550 jne short 08734h ; 75 0c 12545 12551 xor al, al ; 30 c0 12546 12552 mov dx, 00433h ; ba 33 04 12547 12553 out DX, AL ; ee 12548 12554 mov ax, 00430h ; b8 30 04 12549 call 082 75h ; e8 4e fb12555 call 08282h ; e8 4e fb 12550 12556 mov AL, strict byte 055h ; b0 55 12551 12557 mov dx, 00436h ; ba 36 04 … … 12555 12561 ; sub ah, ah ; 2a e4 12556 12562 cmp AL, strict byte 055h ; 3c 55 12557 jne short 0874 0h ; 75 0c12563 jne short 0874dh ; 75 0c 12558 12564 xor al, al ; 30 c0 12559 12565 mov dx, 00437h ; ba 37 04 12560 12566 out DX, AL ; ee 12561 12567 mov ax, 00434h ; b8 34 04 12562 call 082 75h ; e8 35 fb12568 call 08282h ; e8 35 fb 12563 12569 mov AL, strict byte 055h ; b0 55 12564 12570 mov dx, 0043ah ; ba 3a 04 … … 12568 12574 ; sub ah, ah ; 2a e4 12569 12575 cmp AL, strict byte 055h ; 3c 55 12570 jne short 087 59h ; 75 0c12576 jne short 08766h ; 75 0c 12571 12577 xor al, al ; 30 c0 12572 12578 mov dx, 0043bh ; ba 3b 04 12573 12579 out DX, AL ; ee 12574 12580 mov ax, 00438h ; b8 38 04 12575 call 082 75h ; e8 1c fb12581 call 08282h ; e8 1c fb 12576 12582 mov sp, bp ; 89 ec 12577 12583 pop bp ; 5d 12578 12584 retn ; c3 12579 ahci_ctrl_extract_bits_: ; 0xf87 5dLB 0x1b12585 ahci_ctrl_extract_bits_: ; 0xf876a LB 0x1b 12580 12586 push si ; 56 12581 12587 push bp ; 55 … … 12585 12591 and dx, cx ; 21 ca 12586 12592 movzx cx, byte [bp+006h] ; 0f b6 4e 06 12587 jcxz 087 73h ; e3 0612593 jcxz 08780h ; e3 06 12588 12594 shr dx, 1 ; d1 ea 12589 12595 rcr ax, 1 ; d1 d8 12590 loop 087 6dh ; e2 fa12596 loop 0877ah ; e2 fa 12591 12597 pop bp ; 5d 12592 12598 pop si ; 5e 12593 12599 retn 00002h ; c2 02 00 12594 ahci_addr_to_phys_: ; 0xf87 78LB 0x1e12600 ahci_addr_to_phys_: ; 0xf8785 LB 0x1e 12595 12601 push bx ; 53 12596 12602 push cx ; 51 … … 12603 12609 sal ax, 1 ; d1 e0 12604 12610 rcl dx, 1 ; d1 d2 12605 loop 087 86h ; e2 fa12611 loop 08793h ; e2 fa 12606 12612 xor cx, cx ; 31 c9 12607 12613 add ax, bx ; 01 d8 … … 12611 12617 pop bx ; 5b 12612 12618 retn ; c3 12613 ahci_port_cmd_sync_: ; 0xf87 96LB 0x14b12619 ahci_port_cmd_sync_: ; 0xf87a3 LB 0x14b 12614 12620 push bp ; 55 12615 12621 mov bp, sp ; 89 e5 … … 12626 12632 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12627 12633 cmp ah, 0ffh ; 80 fc ff 12628 je near 088 d9h ; 0f 84 20 0112634 je near 088e6h ; 0f 84 20 01 12629 12635 movzx dx, byte [es:si+00263h] ; 26 0f b6 94 63 02 12630 12636 xor di, di ; 31 ff … … 12638 12644 lea ax, [si+00080h] ; 8d 84 80 00 12639 12645 mov dx, cx ; 89 ca 12640 call 087 78h ; e8 96 ff12646 call 08785h ; e8 96 ff 12641 12647 mov es, cx ; 8e c1 12642 12648 mov word [es:si+008h], ax ; 26 89 44 08 … … 12701 12707 xchg dx, ax ; 92 12702 12708 test dh, 040h ; f6 c6 40 12703 jne short 088 6fh ; 75 0412709 jne short 0887ch ; 75 04 12704 12710 test AL, strict byte 001h ; a8 01 12705 je short 088 73h ; 74 0412711 je short 08880h ; 74 04 12706 12712 mov AL, strict byte 001h ; b0 01 12707 jmp short 088 75h ; eb 0212713 jmp short 08882h ; eb 02 12708 12714 xor al, al ; 30 c0 12709 12715 test al, al ; 84 c0 12710 je short 088 43h ; 74 ca12716 je short 08850h ; 74 ca 12711 12717 movzx di, byte [bp-008h] ; 0f b6 7e f8 12712 12718 sal di, 007h ; c1 e7 07 … … 12762 12768 pop bp ; 5d 12763 12769 retn ; c3 12764 ahci_cmd_data_: ; 0xf88e 1LB 0x26212770 ahci_cmd_data_: ; 0xf88ee LB 0x262 12765 12771 push bp ; 55 12766 12772 mov bp, sp ; 89 e5 … … 12787 12793 mov ax, 00080h ; b8 80 00 12788 12794 mov dx, word [bp-00ah] ; 8b 56 f6 12789 call 09f 50h ; e8 311612795 call 09f60h ; e8 34 16 12790 12796 mov es, [bp-00ah] ; 8e 46 f6 12791 12797 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 12805 12811 mov dx, word [es:si] ; 26 8b 14 12806 12812 mov si, strict word 00008h ; be 08 00 12807 call 09f 30h ; e8 cd1512813 call 09f40h ; e8 d0 15 12808 12814 mov es, [bp-00ah] ; 8e 46 f6 12809 12815 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 12816 12822 mov dx, word [es:si] ; 26 8b 14 12817 12823 mov si, strict word 00010h ; be 10 00 12818 call 09f 30h ; e8 a71512824 call 09f40h ; e8 aa 15 12819 12825 mov es, [bp-00ah] ; 8e 46 f6 12820 12826 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 12828 12834 mov dx, word [es:si] ; 26 8b 14 12829 12835 mov si, strict word 00018h ; be 18 00 12830 call 09f 30h ; e8 7b1512836 call 09f40h ; e8 7e 15 12831 12837 mov es, [bp-00ah] ; 8e 46 f6 12832 12838 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 12839 12845 mov dx, word [es:si] ; 26 8b 14 12840 12846 mov si, strict word 00020h ; be 20 00 12841 call 09f 30h ; e8 551512847 call 09f40h ; e8 58 15 12842 12848 mov es, [bp-00ah] ; 8e 46 f6 12843 12849 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 12850 12856 mov dx, word [es:si] ; 26 8b 14 12851 12857 mov si, strict word 00028h ; be 28 00 12852 call 09f 30h ; e8 2f1512858 call 09f40h ; e8 32 15 12853 12859 mov es, [bp-00ah] ; 8e 46 f6 12854 12860 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 12864 12870 mov bx, word [bp-010h] ; 8b 5e f0 12865 12871 xor cx, cx ; 31 c9 12866 call 09e b0h ; e8 7a1412872 call 09ec0h ; e8 7d 14 12867 12873 push dx ; 52 12868 12874 push ax ; 50 … … 12874 12880 mov ax, 0026ah ; b8 6a 02 12875 12881 mov dx, word [bp-00ah] ; 8b 56 f6 12876 call 09e 04h ; e8 b2 1312882 call 09e11h ; e8 b2 13 12877 12883 mov es, [bp-00ah] ; 8e 46 f6 12878 12884 mov ax, word [es:di+0027eh] ; 26 8b 85 7e 02 … … 12895 12901 mov ax, word [es:bx+020h] ; 26 8b 47 20 12896 12902 test ax, ax ; 85 c0 12897 je short 08ae 0h ; 74 3912903 je short 08aedh ; 74 39 12898 12904 dec ax ; 48 12899 12905 mov es, [bp-00ah] ; 8e 46 f6 … … 12911 12917 mov al, byte [bp-008h] ; 8a 46 f8 12912 12918 cmp AL, strict byte 035h ; 3c 35 12913 jne short 08a edh ; 75 0612919 jne short 08afah ; 75 06 12914 12920 mov byte [bp-008h], 040h ; c6 46 f8 40 12915 jmp short 08b 04h ; eb 1712921 jmp short 08b11h ; eb 17 12916 12922 cmp AL, strict byte 0a0h ; 3c a0 12917 jne short 08b0 0h ; 75 0f12923 jne short 08b0dh ; 75 0f 12918 12924 or byte [bp-008h], 020h ; 80 4e f8 20 12919 12925 les bx, [bp-00eh] ; c4 5e f2 12920 12926 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 12921 jmp short 08b 04h ; eb 0412927 jmp short 08b11h ; eb 04 12922 12928 mov byte [bp-008h], 000h ; c6 46 f8 00 12923 12929 or byte [bp-008h], 005h ; 80 4e f8 05 … … 12925 12931 mov ax, word [bp-00eh] ; 8b 46 f2 12926 12932 mov dx, word [bp-00ch] ; 8b 56 f4 12927 call 087 96h ; e8 81 fc12933 call 087a3h ; e8 81 fc 12928 12934 mov cx, word [bp-00ch] ; 8b 4e f4 12929 12935 mov bx, word [bp-00eh] ; 8b 5e f2 … … 12932 12938 add ax, 0026ah ; 05 6a 02 12933 12939 mov dx, cx ; 89 ca 12934 call 09e 7dh ; e8 53 1312940 call 09e8ah ; e8 53 13 12935 12941 mov es, cx ; 8e c1 12936 12942 mov al, byte [es:bx+003h] ; 26 8a 47 03 12937 12943 test al, al ; 84 c0 12938 je short 08b 39h ; 74 0512944 je short 08b46h ; 74 05 12939 12945 mov ax, strict word 00004h ; b8 04 00 12940 jmp short 08b 3bh ; eb 0212946 jmp short 08b48h ; eb 02 12941 12947 xor ah, ah ; 30 e4 12942 12948 lea sp, [bp-006h] ; 8d 66 fa … … 12946 12952 pop bp ; 5d 12947 12953 retn ; c3 12948 ahci_port_deinit_current_: ; 0xf8b 43LB 0x17f12954 ahci_port_deinit_current_: ; 0xf8b50 LB 0x17f 12949 12955 push bp ; 55 12950 12956 mov bp, sp ; 89 e5 … … 12961 12967 mov byte [bp-00ah], al ; 88 46 f6 12962 12968 cmp AL, strict byte 0ffh ; 3c ff 12963 je near 08c b9h ; 0f 84 52 0112969 je near 08cc6h ; 0f 84 52 01 12964 12970 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 12965 12971 sal ax, 007h ; c1 e0 07 … … 13004 13010 xchg dx, ax ; 92 13005 13011 test ax, 0c011h ; a9 11 c0 13006 je short 08b c7h ; 74 0413012 je short 08bd4h ; 74 04 13007 13013 mov AL, strict byte 001h ; b0 01 13008 jmp short 08b c9h ; eb 0213014 jmp short 08bd6h ; eb 02 13009 13015 xor al, al ; 30 c0 13010 13016 cmp AL, strict byte 001h ; 3c 01 13011 je short 08b 9bh ; 74 ce13017 je short 08ba8h ; 74 ce 13012 13018 mov cx, strict word 00020h ; b9 20 00 13013 13019 xor bx, bx ; 31 db 13014 13020 mov ax, di ; 89 f8 13015 13021 mov dx, word [bp-00ch] ; 8b 56 f4 13016 call 09f 50h ; e8 761313022 call 09f60h ; e8 79 13 13017 13023 lea ax, [di+00080h] ; 8d 85 80 00 13018 13024 mov cx, strict word 00040h ; b9 40 00 13019 13025 xor bx, bx ; 31 db 13020 13026 mov dx, word [bp-00ch] ; 8b 56 f4 13021 call 09f 50h ; e8 671313027 call 09f60h ; e8 6a 13 13022 13028 lea ax, [di+00200h] ; 8d 85 00 02 13023 13029 mov cx, strict word 00060h ; b9 60 00 13024 13030 xor bx, bx ; 31 db 13025 13031 mov dx, word [bp-00ch] ; 8b 56 f4 13026 call 09f 50h ; e8 581313032 call 09f60h ; e8 5b 13 13027 13033 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13028 13034 sal ax, 007h ; c1 e0 07 … … 13128 13134 pop bp ; 5d 13129 13135 retn ; c3 13130 ahci_port_init_: ; 0xf8cc 2LB 0x24a13136 ahci_port_init_: ; 0xf8ccf LB 0x24a 13131 13137 push bp ; 55 13132 13138 mov bp, sp ; 89 e5 … … 13138 13144 mov word [bp-00ah], dx ; 89 56 f6 13139 13145 mov byte [bp-008h], bl ; 88 5e f8 13140 call 08b 43h ; e8 6d fe13146 call 08b50h ; e8 6d fe 13141 13147 movzx ax, bl ; 0f b6 c3 13142 13148 sal ax, 007h ; c1 e0 07 … … 13185 13191 xchg dx, ax ; 92 13186 13192 test ax, 0c011h ; a9 11 c0 13187 je short 08d 45h ; 74 0413193 je short 08d52h ; 74 04 13188 13194 mov AL, strict byte 001h ; b0 01 13189 jmp short 08d 47h ; eb 0213195 jmp short 08d54h ; eb 02 13190 13196 xor al, al ; 30 c0 13191 13197 cmp AL, strict byte 001h ; 3c 01 13192 je short 08d1 1h ; 74 c613198 je short 08d1eh ; 74 c6 13193 13199 mov cx, strict word 00020h ; b9 20 00 13194 13200 xor bx, bx ; 31 db 13195 13201 mov ax, si ; 89 f0 13196 13202 mov dx, word [bp-00ah] ; 8b 56 f6 13197 call 09f 50h ; e8 f81113203 call 09f60h ; e8 fb 11 13198 13204 lea ax, [si+00080h] ; 8d 84 80 00 13199 13205 mov cx, strict word 00040h ; b9 40 00 13200 13206 xor bx, bx ; 31 db 13201 13207 mov dx, word [bp-00ah] ; 8b 56 f6 13202 call 09f 50h ; e8 e91113208 call 09f60h ; e8 ec 11 13203 13209 lea di, [si+00200h] ; 8d bc 00 02 13204 13210 mov cx, strict word 00060h ; b9 60 00 … … 13206 13212 mov ax, di ; 89 f8 13207 13213 mov dx, word [bp-00ah] ; 8b 56 f6 13208 call 09f 50h ; e8 d81113214 call 09f60h ; e8 db 11 13209 13215 movzx bx, byte [bp-008h] ; 0f b6 5e f8 13210 13216 sal bx, 007h ; c1 e3 07 … … 13223 13229 mov ax, di ; 89 f8 13224 13230 mov dx, word [bp-00ah] ; 8b 56 f6 13225 call 087 78h ; e8 d3 f913231 call 08785h ; e8 d3 f9 13226 13232 mov es, [bp-00ah] ; 8e 46 f6 13227 13233 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13268 13274 mov ax, si ; 89 f0 13269 13275 mov dx, word [bp-00ah] ; 8b 56 f6 13270 call 087 78h ; e8 67 f913276 call 08785h ; e8 67 f9 13271 13277 mov es, [bp-00ah] ; 8e 46 f6 13272 13278 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13373 13379 pop bp ; 5d 13374 13380 retn ; c3 13375 @ahci_read_sectors: ; 0xf8f 0cLB 0xa613381 @ahci_read_sectors: ; 0xf8f19 LB 0xa6 13376 13382 push bp ; 55 13377 13383 mov bp, sp ; 89 e5 … … 13383 13389 sub di, strict byte 0000ch ; 83 ef 0c 13384 13390 cmp di, strict byte 00004h ; 83 ff 04 13385 jbe short 08f3 1h ; 76 0f13391 jbe short 08f3eh ; 76 0f 13386 13392 push di ; 57 13387 13393 push 00c62h ; 68 62 0c 13388 13394 push 00c74h ; 68 74 0c 13389 13395 push strict byte 00007h ; 6a 07 13390 call 019dah ; e8 ac8a13396 call 019dah ; e8 9f 8a 13391 13397 add sp, strict byte 00008h ; 83 c4 08 13392 13398 xor bx, bx ; 31 db … … 13402 13408 mov dx, word [es:di+00232h] ; 26 8b 95 32 02 13403 13409 xor ax, ax ; 31 c0 13404 call 08cc 2h ; e8 65 fd13410 call 08ccfh ; e8 65 fd 13405 13411 mov bx, strict word 00025h ; bb 25 00 13406 13412 mov ax, si ; 89 f0 13407 13413 mov dx, word [bp+006h] ; 8b 56 06 13408 call 088e 1h ; e8 79 f913414 call 088eeh ; e8 79 f9 13409 13415 mov word [bp-006h], ax ; 89 46 fa 13410 13416 mov es, [bp+006h] ; 8e 46 06 … … 13435 13441 pop bp ; 5d 13436 13442 retn 00004h ; c2 04 00 13437 @ahci_write_sectors: ; 0xf8fb 2LB 0x8413443 @ahci_write_sectors: ; 0xf8fbf LB 0x84 13438 13444 push bp ; 55 13439 13445 mov bp, sp ; 89 e5 … … 13446 13452 sub dx, strict byte 0000ch ; 83 ea 0c 13447 13453 cmp dx, strict byte 00004h ; 83 fa 04 13448 jbe short 08f dbh ; 76 0f13454 jbe short 08fe8h ; 76 0f 13449 13455 push dx ; 52 13450 13456 push 00c93h ; 68 93 0c 13451 13457 push 00c74h ; 68 74 0c 13452 13458 push strict byte 00007h ; 6a 07 13453 call 019dah ; e8 02 8a13459 call 019dah ; e8 f5 89 13454 13460 add sp, strict byte 00008h ; 83 c4 08 13455 13461 xor bx, bx ; 31 db … … 13465 13471 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 13466 13472 xor ax, ax ; 31 c0 13467 call 08cc 2h ; e8 bd fc13473 call 08ccfh ; e8 bd fc 13468 13474 mov bx, strict word 00035h ; bb 35 00 13469 13475 mov ax, si ; 89 f0 13470 13476 mov dx, cx ; 89 ca 13471 call 088e 1h ; e8 d2 f813477 call 088eeh ; e8 d2 f8 13472 13478 mov dx, ax ; 89 c2 13473 13479 mov es, cx ; 8e c1 … … 13484 13490 pop bp ; 5d 13485 13491 retn 00004h ; c2 04 00 13486 ahci_cmd_packet_: ; 0xf90 36LB 0x18313492 ahci_cmd_packet_: ; 0xf9043 LB 0x183 13487 13493 push bp ; 55 13488 13494 mov bp, sp ; 89 e5 … … 13496 13502 mov dx, strict word 0000eh ; ba 0e 00 13497 13503 mov ax, strict word 00040h ; b8 40 00 13498 call 016d4h ; e8 838613504 call 016d4h ; e8 76 86 13499 13505 mov si, 00122h ; be 22 01 13500 13506 mov word [bp-008h], ax ; 89 46 f8 13501 13507 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 13502 jne short 090 7ch ; 75 1f13508 jne short 09089h ; 75 1f 13503 13509 mov bx, 00da0h ; bb a0 0d 13504 13510 mov cx, ds ; 8c d9 13505 13511 mov ax, strict word 00004h ; b8 04 00 13506 call 01999h ; e8 318913512 call 01999h ; e8 24 89 13507 13513 push 00ca6h ; 68 a6 0c 13508 13514 push 00cb6h ; 68 b6 0c 13509 13515 push strict byte 00004h ; 6a 04 13510 call 019dah ; e8 678913516 call 019dah ; e8 5a 89 13511 13517 add sp, strict byte 00006h ; 83 c4 06 13512 13518 mov ax, strict word 00001h ; b8 01 00 13513 jmp near 091b 0h ; e9 34 0113519 jmp near 091bdh ; e9 34 01 13514 13520 test byte [bp+004h], 001h ; f6 46 04 01 13515 jne short 090 76h ; 75 f413521 jne short 09083h ; 75 f4 13516 13522 mov ax, word [bp+006h] ; 8b 46 06 13517 13523 mov dx, word [bp+008h] ; 8b 56 08 … … 13519 13525 sal ax, 1 ; d1 e0 13520 13526 rcl dx, 1 ; d1 d2 13521 loop 090 8bh ; e2 fa13527 loop 09098h ; e2 fa 13522 13528 mov es, [bp-008h] ; 8e 46 f8 13523 13529 mov word [es:si], ax ; 26 89 04 … … 13533 13539 mov dx, word [bp+008h] ; 8b 56 08 13534 13540 xor cx, cx ; 31 c9 13535 call 09 ef0h ; e8 2f0e13541 call 09f00h ; e8 32 0e 13536 13542 mov word [es:si+00eh], ax ; 26 89 44 0e 13537 13543 xor di, di ; 31 ff … … 13550 13556 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 13551 13557 xor ax, ax ; 31 c0 13552 call 08cc 2h ; e8 c5 fb13558 call 08ccfh ; e8 c5 fb 13553 13559 movzx ax, byte [bp-006h] ; 0f b6 46 fa 13554 13560 push ax ; 50 … … 13557 13563 mov ax, 000c0h ; b8 c0 00 13558 13564 mov dx, word [bp-00ah] ; 8b 56 f6 13559 call 09f 60h ; e8 4f0e13565 call 09f70h ; e8 52 0e 13560 13566 mov es, [bp-008h] ; 8e 46 f8 13561 13567 mov word [es:si+018h], di ; 26 89 7c 18 … … 13564 13570 mov ax, word [es:si+01eh] ; 26 8b 44 1e 13565 13571 test ax, ax ; 85 c0 13566 je short 091 4fh ; 74 2713572 je short 0915ch ; 74 27 13567 13573 dec ax ; 48 13568 13574 mov es, [bp-00ah] ; 8e 46 f6 … … 13577 13583 mov ax, si ; 89 f0 13578 13584 mov dx, word [bp-008h] ; 8b 56 f8 13579 call 088e 1h ; e8 87 f713585 call 088eeh ; e8 87 f7 13580 13586 les bx, [bp-00eh] ; c4 5e f2 13581 13587 mov ax, word [es:bx+004h] ; 26 8b 47 04 … … 13604 13610 mov ax, word [es:bx+006h] ; 26 8b 47 06 13605 13611 or ax, word [es:bx+004h] ; 26 0b 47 04 13606 jne short 091 aeh ; 75 0513612 jne short 091bbh ; 75 05 13607 13613 mov ax, strict word 00004h ; b8 04 00 13608 jmp short 091b 0h ; eb 0213614 jmp short 091bdh ; eb 02 13609 13615 xor ax, ax ; 31 c0 13610 13616 lea sp, [bp-004h] ; 8d 66 fc … … 13613 13619 pop bp ; 5d 13614 13620 retn 0000ch ; c2 0c 00 13615 ahci_port_detect_device_: ; 0xf91 b9LB 0x4b113621 ahci_port_detect_device_: ; 0xf91c6 LB 0x4b1 13616 13622 push bp ; 55 13617 13623 mov bp, sp ; 89 e5 … … 13625 13631 movzx di, bl ; 0f b6 fb 13626 13632 mov bx, di ; 89 fb 13627 call 08cc 2h ; e8 ef fa13633 call 08ccfh ; e8 ef fa 13628 13634 mov dx, strict word 0000eh ; ba 0e 00 13629 13635 mov ax, strict word 00040h ; b8 40 00 13630 call 016d4h ; e8 f88413636 call 016d4h ; e8 eb 84 13631 13637 mov word [bp-010h], 00122h ; c7 46 f0 22 01 13632 13638 mov word [bp-00eh], ax ; 89 46 f2 … … 13697 13703 mov bx, strict word 0000fh ; bb 0f 00 13698 13704 xor cx, cx ; 31 c9 13699 call 087 5dh ; e8 d7 f413705 call 0876ah ; e8 d7 f4 13700 13706 test ax, ax ; 85 c0 13701 je near 0966 2h ; 0f 84 d6 0313707 je near 0966fh ; 0f 84 d6 03 13702 13708 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13703 13709 sal ax, 007h ; c1 e0 07 … … 13727 13733 mov bx, strict word 0000fh ; bb 0f 00 13728 13734 xor cx, cx ; 31 c9 13729 call 087 5dh ; e8 8b f413735 call 0876ah ; e8 8b f4 13730 13736 cmp ax, strict word 00001h ; 3d 01 00 13731 je short 092 8ch ; 74 b513737 je short 09299h ; 74 b5 13732 13738 push strict byte 00000h ; 6a 00 13733 13739 mov bx, strict word 0000fh ; bb 0f 00 … … 13735 13741 mov ax, di ; 89 f8 13736 13742 mov dx, word [bp-022h] ; 8b 56 de 13737 call 087 5dh ; e8 77 f413743 call 0876ah ; e8 77 f4 13738 13744 cmp ax, strict word 00003h ; 3d 03 00 13739 jne near 0966 2h ; 0f 85 75 0313745 jne near 0966fh ; 0f 85 75 03 13740 13746 mov ax, word [bp-018h] ; 8b 46 e8 13741 13747 add ax, 00130h ; 05 30 01 … … 13764 13770 mov byte [bp-008h], al ; 88 46 f8 13765 13771 cmp AL, strict byte 004h ; 3c 04 13766 jnc near 0966 2h ; 0f 83 2f 0313772 jnc near 0966fh ; 0f 83 2f 03 13767 13773 mov ax, word [bp-018h] ; 8b 46 e8 13768 13774 add ax, 00118h ; 05 18 01 … … 13816 13822 add cl, 00ch ; 80 c1 0c 13817 13823 test dx, dx ; 85 d2 13818 jne near 095 b8h ; 0f 85 0d 0213824 jne near 095c5h ; 0f 85 0d 02 13819 13825 cmp di, 00101h ; 81 ff 01 01 13820 jne near 095 b8h ; 0f 85 05 0213826 jne near 095c5h ; 0f 85 05 02 13821 13827 les bx, [bp-010h] ; c4 5e f0 13822 13828 db 066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h … … 13832 13838 mov ax, word [bp-010h] ; 8b 46 f0 13833 13839 mov dx, es ; 8c c2 13834 call 088e 1h ; e8 fa f413840 call 088eeh ; e8 fa f4 13835 13841 mov byte [bp-00ch], cl ; 88 4e f4 13836 13842 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 … … 13849 13855 mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00 13850 13856 cmp di, 00fffh ; 81 ff ff 0f 13851 jne short 0944 0h ; 75 1e13857 jne short 0944dh ; 75 1e 13852 13858 cmp dx, strict byte 0ffffh ; 83 fa ff 13853 jne short 0944 0h ; 75 1913859 jne short 0944dh ; 75 19 13854 13860 mov dx, word [bp-0015ch] ; 8b 96 a4 fe 13855 13861 mov word [bp-014h], dx ; 89 56 ec … … 13888 13894 mov al, byte [bp-008h] ; 8a 46 f8 13889 13895 cmp AL, strict byte 001h ; 3c 01 13890 jc short 094 b9h ; 72 0c13891 jbe short 094c 1h ; 76 1213896 jc short 094c6h ; 72 0c 13897 jbe short 094ceh ; 76 12 13892 13898 cmp AL, strict byte 003h ; 3c 03 13893 je short 094 c9h ; 74 1613899 je short 094d6h ; 74 16 13894 13900 cmp AL, strict byte 002h ; 3c 02 13895 je short 094 c5h ; 74 0e13896 jmp short 0951 2h ; eb 5913901 je short 094d2h ; 74 0e 13902 jmp short 0951fh ; eb 59 13897 13903 test al, al ; 84 c0 13898 jne short 0951 2h ; 75 5513904 jne short 0951fh ; 75 55 13899 13905 mov DL, strict byte 040h ; b2 40 13900 jmp short 094 cbh ; eb 0a13906 jmp short 094d8h ; eb 0a 13901 13907 mov DL, strict byte 048h ; b2 48 13902 jmp short 094 cbh ; eb 0613908 jmp short 094d8h ; eb 06 13903 13909 mov DL, strict byte 050h ; b2 50 13904 jmp short 094 cbh ; eb 0213910 jmp short 094d8h ; eb 02 13905 13911 mov DL, strict byte 058h ; b2 58 13906 13912 mov al, dl ; 88 d0 … … 13908 13914 movzx bx, al ; 0f b6 d8 13909 13915 mov ax, bx ; 89 d8 13910 call 01714h ; e8 3 d8213916 call 01714h ; e8 30 82 13911 13917 test al, al ; 84 c0 13912 je short 0951 2h ; 74 3713918 je short 0951fh ; 74 37 13913 13919 mov al, dl ; 88 d0 13914 13920 db 0feh, 0c0h 13915 13921 ; inc al ; fe c0 13916 13922 xor ah, ah ; 30 e4 13917 call 01714h ; e8 308213923 call 01714h ; e8 23 82 13918 13924 xor ah, ah ; 30 e4 13919 13925 mov si, ax ; 89 c6 13920 13926 sal si, 008h ; c1 e6 08 13921 13927 movzx ax, dl ; 0f b6 c2 13922 call 01714h ; e8 238213928 call 01714h ; e8 16 82 13923 13929 xor ah, ah ; 30 e4 13924 13930 add ax, si ; 01 f0 … … 13927 13933 add AL, strict byte 002h ; 04 02 13928 13934 xor ah, ah ; 30 e4 13929 call 01714h ; e8 138213935 call 01714h ; e8 06 82 13930 13936 xor ah, ah ; 30 e4 13931 13937 mov word [bp-02ah], ax ; 89 46 d6 13932 13938 mov ax, bx ; 89 d8 13933 call 01714h ; e8 09 8213939 call 01714h ; e8 fc 81 13934 13940 xor ah, ah ; 30 e4 13935 13941 mov word [bp-026h], ax ; 89 46 da 13936 jmp short 0952 2h ; eb 1013942 jmp short 0952fh ; eb 10 13937 13943 push dword [bp-016h] ; 66 ff 76 ea 13938 13944 push di ; 57 … … 13940 13946 mov dx, ss ; 8c d2 13941 13947 lea ax, [bp-02ah] ; 8d 46 d6 13942 call 059d6h ; e8 b4c413948 call 059d6h ; e8 a7 c4 13943 13949 mov bx, 00da0h ; bb a0 0d 13944 13950 mov cx, ds ; 8c d9 13945 13951 mov ax, strict word 00004h ; b8 04 00 13946 call 01999h ; e8 6c8413952 call 01999h ; e8 5f 84 13947 13953 push dword [bp-016h] ; 66 ff 76 ea 13948 13954 push di ; 57 … … 13963 13969 push 00cd6h ; 68 d6 0c 13964 13970 push strict byte 00004h ; 6a 04 13965 call 019dah ; e8 7 e8413971 call 019dah ; e8 71 84 13966 13972 add sp, strict byte 0001ch ; 83 c4 1c 13967 13973 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 … … 13992 13998 mov dx, strict word 00075h ; ba 75 00 13993 13999 mov ax, strict word 00040h ; b8 40 00 13994 call 016b8h ; e8 118114000 call 016b8h ; e8 04 81 13995 14001 db 0feh, 0c0h 13996 14002 ; inc al ; fe c0 … … 13998 14004 mov dx, strict word 00075h ; ba 75 00 13999 14005 mov ax, strict word 00040h ; b8 40 00 14000 call 016c6h ; e8 118114001 jmp near 096 54h ; e9 9c 0014006 call 016c6h ; e8 04 81 14007 jmp near 09661h ; e9 9c 00 14002 14008 cmp dx, 0eb14h ; 81 fa 14 eb 14003 jne near 096 54h ; 0f 85 94 0014009 jne near 09661h ; 0f 85 94 00 14004 14010 cmp di, 00101h ; 81 ff 01 01 14005 jne near 096 54h ; 0f 85 8c 0014011 jne near 09661h ; 0f 85 8c 00 14006 14012 les bx, [bp-010h] ; c4 5e f0 14007 14013 db 066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h … … 14017 14023 mov ax, word [bp-010h] ; 8b 46 f0 14018 14024 mov dx, es ; 8c c2 14019 call 088e 1h ; e8 e5 f214025 call 088eeh ; e8 e5 f2 14020 14026 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14021 14027 db 00fh, 095h, 0c0h … … 14054 14060 pop bp ; 5d 14055 14061 retn ; c3 14056 ahci_mem_alloc_: ; 0xf96 6aLB 0x4314062 ahci_mem_alloc_: ; 0xf9677 LB 0x43 14057 14063 push bp ; 55 14058 14064 mov bp, sp ; 89 e5 … … 14064 14070 mov dx, 00413h ; ba 13 04 14065 14071 xor ax, ax ; 31 c0 14066 call 016d4h ; e8 5a8014072 call 016d4h ; e8 4d 80 14067 14073 test ax, ax ; 85 c0 14068 je short 096 a3h ; 74 2514074 je short 096b0h ; 74 25 14069 14075 dec ax ; 48 14070 14076 mov bx, ax ; 89 c3 … … 14073 14079 sal ax, 1 ; d1 e0 14074 14080 rcl dx, 1 ; d1 d2 14075 loop 096 86h ; e2 fa14081 loop 09693h ; e2 fa 14076 14082 mov si, ax ; 89 c6 14077 14083 mov di, dx ; 89 d7 … … 14079 14085 shr di, 1 ; d1 ef 14080 14086 rcr si, 1 ; d1 de 14081 loop 096 93h ; e2 fa14087 loop 096a0h ; e2 fa 14082 14088 mov dx, 00413h ; ba 13 04 14083 14089 xor ax, ax ; 31 c0 14084 call 016e2h ; e8 418014090 call 016e2h ; e8 34 80 14085 14091 mov ax, si ; 89 f0 14086 14092 lea sp, [bp-00ah] ; 8d 66 f6 … … 14092 14098 pop bp ; 5d 14093 14099 retn ; c3 14094 ahci_hba_init_: ; 0xf96 adLB 0x16614100 ahci_hba_init_: ; 0xf96ba LB 0x166 14095 14101 push bp ; 55 14096 14102 mov bp, sp ; 89 e5 … … 14104 14110 mov dx, strict word 0000eh ; ba 0e 00 14105 14111 mov ax, strict word 00040h ; b8 40 00 14106 call 016d4h ; e8 118014112 call 016d4h ; e8 04 80 14107 14113 mov bx, 00122h ; bb 22 01 14108 14114 mov di, ax ; 89 c7 … … 14121 14127 shr eax, 010h ; 66 c1 e8 10 14122 14128 xchg dx, ax ; 92 14123 call 096 6ah ; e8 83 ff14129 call 09677h ; e8 83 ff 14124 14130 mov word [bp-010h], ax ; 89 46 f0 14125 14131 test ax, ax ; 85 c0 14126 je near 097f 2h ; 0f 84 02 0114132 je near 097ffh ; 0f 84 02 01 14127 14133 mov ax, word [bp-010h] ; 8b 46 f0 14128 14134 mov es, di ; 8e c7 … … 14174 14180 xchg dx, ax ; 92 14175 14181 test AL, strict byte 001h ; a8 01 14176 jne short 097 46h ; 75 de14182 jne short 09753h ; 75 de 14177 14183 xor ax, ax ; 31 c0 14178 14184 xor cx, cx ; 31 c9 … … 14192 14198 mov bx, strict word 0001fh ; bb 1f 00 14193 14199 xor cx, cx ; 31 c9 14194 call 087 5dh ; e8 d1 ef14200 call 0876ah ; e8 d1 ef 14195 14201 db 0feh, 0c0h 14196 14202 ; inc al ; fe c0 14197 14203 mov byte [bp-00eh], al ; 88 46 f2 14198 14204 mov byte [bp-00ch], 000h ; c6 46 f4 00 14199 jmp short 097 b7h ; eb 2014205 jmp short 097c4h ; eb 20 14200 14206 xor al, al ; 30 c0 14201 14207 test al, al ; 84 c0 14202 je short 097 aeh ; 74 1114208 je short 097bbh ; 74 11 14203 14209 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 14204 14210 xor ax, ax ; 31 c0 14205 14211 mov dx, word [bp-010h] ; 8b 56 f0 14206 call 091 b9h ; e8 10 fa14212 call 091c6h ; e8 10 fa 14207 14213 dec byte [bp-00eh] ; fe 4e f2 14208 je short 097f 0h ; 74 4214214 je short 097fdh ; 74 42 14209 14215 inc byte [bp-00ch] ; fe 46 f4 14210 14216 cmp byte [bp-00ch], 020h ; 80 7e f4 20 14211 jnc short 097f 0h ; 73 3914217 jnc short 097fdh ; 73 39 14212 14218 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 14213 14219 mov bx, strict word 00001h ; bb 01 00 14214 14220 xor di, di ; 31 ff 14215 jcxz 097 c8h ; e3 0614221 jcxz 097d5h ; e3 06 14216 14222 sal bx, 1 ; d1 e3 14217 14223 rcl di, 1 ; d1 d7 14218 loop 097c 2h ; e2 fa14224 loop 097cfh ; e2 fa 14219 14225 mov ax, strict word 0000ch ; b8 0c 00 14220 14226 xor cx, cx ; 31 c9 … … 14232 14238 xchg dx, ax ; 92 14233 14239 test dx, di ; 85 fa 14234 jne short 097 ech ; 75 0414240 jne short 097f9h ; 75 04 14235 14241 test ax, bx ; 85 d8 14236 je short 097 97h ; 74 ab14242 je short 097a4h ; 74 ab 14237 14243 mov AL, strict byte 001h ; b0 01 14238 jmp short 097 99h ; eb a914244 jmp short 097a6h ; eb a9 14239 14245 xor ax, ax ; 31 c0 14240 14246 lea sp, [bp-00ah] ; 8d 66 f6 … … 14246 14252 pop bp ; 5d 14247 14253 retn ; c3 14248 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0e 2h, 098h, 0c0h, 098h, 0c6h, 098h, 0cch, 098h, 0d2h14249 db 098h, 0 d8h, 098h, 0deh, 098h, 0e2h, 098h14250 _ahci_init: ; 0xf98 13LB 0xfe14254 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0efh, 098h, 0cdh, 098h, 0d3h, 098h, 0d9h, 098h, 0dfh 14255 db 098h, 0e5h, 098h, 0ebh, 098h, 0efh, 098h 14256 _ahci_init: ; 0xf9820 LB 0xfe 14251 14257 push bp ; 55 14252 14258 mov bp, sp ; 89 e5 … … 14256 14262 mov ax, 00601h ; b8 01 06 14257 14263 mov dx, strict word 00001h ; ba 01 00 14258 call 09d3 1h ; e8 0d 0514264 call 09d3eh ; e8 0d 05 14259 14265 mov dx, ax ; 89 c2 14260 14266 cmp ax, strict word 0ffffh ; 3d ff ff 14261 je near 099 0ah ; 0f 84 dd 0014267 je near 09917h ; 0f 84 dd 00 14262 14268 xor al, al ; 30 c0 14263 14269 shr ax, 008h ; c1 e8 08 … … 14267 14273 xor ah, ah ; 30 e4 14268 14274 mov bx, strict word 00034h ; bb 34 00 14269 call 09d 5ch ; e8 1a 0514275 call 09d69h ; e8 1a 05 14270 14276 mov cl, al ; 88 c1 14271 14277 test cl, cl ; 84 c9 14272 je short 098 6bh ; 74 2314278 je short 09878h ; 74 23 14273 14279 movzx bx, cl ; 0f b6 d9 14274 14280 movzx di, byte [bp-008h] ; 0f b6 7e f8 … … 14276 14282 mov dx, di ; 89 fa 14277 14283 mov ax, si ; 89 f0 14278 call 09d 5ch ; e8 02 0514284 call 09d69h ; e8 02 05 14279 14285 cmp AL, strict byte 012h ; 3c 12 14280 je short 098 6bh ; 74 0d14286 je short 09878h ; 74 0d 14281 14287 mov al, cl ; 88 c8 14282 14288 db 0feh, 0c0h … … 14285 14291 mov dx, di ; 89 fa 14286 14292 mov ax, si ; 89 f0 14287 jmp short 098 3fh ; eb d414293 jmp short 0984ch ; eb d4 14288 14294 test cl, cl ; 84 c9 14289 je near 099 0ah ; 0f 84 99 0014295 je near 09917h ; 0f 84 99 00 14290 14296 add cl, 002h ; 80 c1 02 14291 14297 movzx bx, cl ; 0f b6 d9 … … 14294 14300 mov dx, di ; 89 fa 14295 14301 mov ax, si ; 89 f0 14296 call 09d 5ch ; e8 d6 0414302 call 09d69h ; e8 d6 04 14297 14303 cmp AL, strict byte 010h ; 3c 10 14298 jne near 099 0ah ; 0f 85 7e 0014304 jne near 09917h ; 0f 85 7e 00 14299 14305 mov byte [bp-006h], 000h ; c6 46 fa 00 14300 14306 mov al, cl ; 88 c8 … … 14303 14309 mov dx, di ; 89 fa 14304 14310 mov ax, si ; 89 f0 14305 call 09d8 0h ; e8 e2 0414311 call 09d8dh ; e8 e2 04 14306 14312 mov dx, ax ; 89 c2 14307 14313 and ax, strict word 0000fh ; 25 0f 00 14308 14314 sub ax, strict word 00004h ; 2d 04 00 14309 14315 cmp ax, strict word 0000bh ; 3d 0b 00 14310 jnbe short 098e 2h ; 77 3714316 jnbe short 098efh ; 77 37 14311 14317 push CS ; 0e 14312 14318 pop ES ; 07 14313 14319 mov cx, strict word 00008h ; b9 08 00 14314 mov di, 09 7fch ; bf fc 9714320 mov di, 09809h ; bf 09 98 14315 14321 repne scasb ; f2 ae 14316 14322 sal cx, 1 ; d1 e1 14317 14323 mov di, cx ; 89 cf 14318 mov ax, word [cs:di-067f dh] ; 2e 8b 85 039814324 mov ax, word [cs:di-067f0h] ; 2e 8b 85 10 98 14319 14325 jmp ax ; ff e0 14320 14326 mov byte [bp-006h], 010h ; c6 46 fa 10 14321 jmp short 098e 2h ; eb 1c14327 jmp short 098efh ; eb 1c 14322 14328 mov byte [bp-006h], 014h ; c6 46 fa 14 14323 jmp short 098e 2h ; eb 1614329 jmp short 098efh ; eb 16 14324 14330 mov byte [bp-006h], 018h ; c6 46 fa 18 14325 jmp short 098e 2h ; eb 1014331 jmp short 098efh ; eb 10 14326 14332 mov byte [bp-006h], 01ch ; c6 46 fa 1c 14327 jmp short 098e 2h ; eb 0a14333 jmp short 098efh ; eb 0a 14328 14334 mov byte [bp-006h], 020h ; c6 46 fa 20 14329 jmp short 098e 2h ; eb 0414335 jmp short 098efh ; eb 04 14330 14336 mov byte [bp-006h], 024h ; c6 46 fa 24 14331 14337 mov si, dx ; 89 d6 … … 14334 14340 mov al, byte [bp-006h] ; 8a 46 fa 14335 14341 test al, al ; 84 c0 14336 je short 099 0ah ; 74 1914342 je short 09917h ; 74 19 14337 14343 movzx bx, al ; 0f b6 d8 14338 14344 movzx dx, byte [bp-008h] ; 0f b6 56 f8 14339 14345 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 14340 call 09da 2h ; e8 a3 0414346 call 09dafh ; e8 a3 04 14341 14347 test AL, strict byte 001h ; a8 01 14342 je short 099 0ah ; 74 0714348 je short 09917h ; 74 07 14343 14349 and AL, strict byte 0f0h ; 24 f0 14344 14350 add ax, si ; 01 f0 14345 call 096 adh ; e8 a3 fd14351 call 096bah ; e8 a3 fd 14346 14352 lea sp, [bp-004h] ; 8d 66 fc 14347 14353 pop di ; 5f … … 14349 14355 pop bp ; 5d 14350 14356 retn ; c3 14351 apm_out_str_: ; 0xf991 1LB 0x3914357 apm_out_str_: ; 0xf991e LB 0x39 14352 14358 push bp ; 55 14353 14359 mov bp, sp ; 89 e5 … … 14355 14361 mov bx, ax ; 89 c3 14356 14362 cmp byte [bx], 000h ; 80 3f 00 14357 je short 099 26h ; 74 0a14363 je short 09933h ; 74 0a 14358 14364 mov al, byte [bx] ; 8a 07 14359 14365 out DX, AL ; ee … … 14362 14368 db 00ah, 0c0h 14363 14369 ; or al, al ; 0a c0 14364 jne short 099 1eh ; 75 f814370 jne short 0992bh ; 75 f8 14365 14371 lea sp, [bp-002h] ; 8d 66 fe 14366 14372 pop bx ; 5b 14367 14373 pop bp ; 5d 14368 14374 retn ; c3 14369 insw ; 6d 14375 jp short 098d4h ; 7a 99 14376 inc si ; 46 14377 call far 099a7h:0998ch ; 9a 8c 99 a7 99 14378 inc si ; 46 14379 call far 09a46h:099d2h ; 9a d2 99 46 9a 14380 xlatb ; d7 14370 14381 cwd ; 99 14371 cmp word [bp+si-06681h], bx ; 39 9a 7f 99 14372 call far 0c59ah:03999h ; 9a 99 39 9a c5 14373 cwd ; 99 14374 cmp word [bp+si-06636h], bx ; 39 9a ca 99 14375 push CS ; 0e 14376 call far 09a0eh:09a0eh ; 9a 0e 9a 0e 9a 14377 or word [bp+si-065f2h], bx ; 09 9a 0e 9a 14378 push CS ; 0e 14382 sbb bx, word [bp+si-065e5h] ; 1b 9a 1b 9a 14383 sbb bx, word [bp+si-065eah] ; 1b 9a 16 9a 14384 sbb bx, word [bp+si-065e5h] ; 1b 9a 1b 9a 14385 db 00fh 14379 14386 db 09ah 14380 db 002h 14381 db 09ah 14382 _apm_function: ; 0xf994a LB 0xf5 14387 _apm_function: ; 0xf9957 LB 0xf5 14383 14388 push bp ; 55 14384 14389 mov bp, sp ; 89 e5 … … 14388 14393 xor ah, ah ; 30 e4 14389 14394 cmp ax, strict word 0000eh ; 3d 0e 00 14390 jnbe near 09a 0eh ; 0f 87 b0 0014395 jnbe near 09a1bh ; 0f 87 b0 00 14391 14396 mov bx, ax ; 89 c3 14392 14397 add bx, ax ; 01 c3 14393 14398 mov dx, word [bp+018h] ; 8b 56 18 14394 14399 or dl, 001h ; 80 ca 01 14395 jmp word [cs:bx-066 d4h] ; 2e ff a7 2c9914400 jmp word [cs:bx-066c7h] ; 2e ff a7 39 99 14396 14401 mov word [bp+012h], 00102h ; c7 46 12 02 01 14397 14402 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 14398 14403 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 14399 jmp near 09a 39h ; e9 ba 0014404 jmp near 09a46h ; e9 ba 00 14400 14405 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14401 mov word [bp+00ch], 09f d4h ; c7 46 0c d4 9f14406 mov word [bp+00ch], 09fe4h ; c7 46 0c e4 9f 14402 14407 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 14403 14408 mov ax, strict word 0fff0h ; b8 f0 ff 14404 14409 mov word [bp+006h], ax ; 89 46 06 14405 14410 mov word [bp+004h], ax ; 89 46 04 14406 jmp near 09a 39h ; e9 9f 0014411 jmp near 09a46h ; e9 9f 00 14407 14412 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14408 14413 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 14417 14422 mov si, ax ; 89 c6 14418 14423 sal esi, 010h ; 66 c1 e6 10 14419 jmp near 09a 39h ; e9 74 0014424 jmp near 09a46h ; e9 74 00 14420 14425 sti ; fb 14421 14426 hlt ; f4 14422 jmp near 09a 39h ; e9 6f 0014427 jmp near 09a46h ; e9 6f 00 14423 14428 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 14424 je short 099 efh ; 74 1f14429 je short 099fch ; 74 1f 14425 14430 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 14426 je short 099 e7h ; 74 1114431 je short 099f4h ; 74 11 14427 14432 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 14428 jne short 09 9f7h ; 75 1b14429 mov dx, 0 8900h ; ba 00 8914433 jne short 09a04h ; 75 1b 14434 mov dx, 0040fh ; ba 0f 04 14430 14435 mov ax, 00d10h ; b8 10 0d 14431 call 0991 1h ; e8 2c ff14432 jmp short 09a 39h ; eb 5214433 mov dx, 0 8900h ; ba 00 8914436 call 0991eh ; e8 2c ff 14437 jmp short 09a46h ; eb 52 14438 mov dx, 0040fh ; ba 0f 04 14434 14439 mov ax, 00d18h ; b8 18 0d 14435 jmp short 099e 2h ; eb f314436 mov dx, 0 8900h ; ba 00 8914440 jmp short 099efh ; eb f3 14441 mov dx, 0040fh ; ba 0f 04 14437 14442 mov ax, 00d20h ; b8 20 0d 14438 jmp short 099e 2h ; eb eb14443 jmp short 099efh ; eb eb 14439 14444 or ah, 00ah ; 80 cc 0a 14440 14445 mov word [bp+012h], ax ; 89 46 12 14441 14446 mov word [bp+018h], dx ; 89 56 18 14442 jmp short 09a 39h ; eb 3714447 jmp short 09a46h ; eb 37 14443 14448 mov word [bp+012h], 00102h ; c7 46 12 02 01 14444 jmp short 09a 39h ; eb 3014449 jmp short 09a46h ; eb 30 14445 14450 or ah, 080h ; 80 cc 80 14446 jmp short 09 9fah ; eb ec14451 jmp short 09a07h ; eb ec 14447 14452 mov bx, 00da0h ; bb a0 0d 14448 14453 mov cx, ds ; 8c d9 14449 14454 mov ax, strict word 00004h ; b8 04 00 14450 call 01999h ; e8 807f14455 call 01999h ; e8 73 7f 14451 14456 push word [bp+00ch] ; ff 76 0c 14452 14457 push word [bp+012h] ; ff 76 12 14453 14458 push 00d29h ; 68 29 0d 14454 14459 push strict byte 00004h ; 6a 04 14455 call 019dah ; e8 b37f14460 call 019dah ; e8 a6 7f 14456 14461 add sp, strict byte 00008h ; 83 c4 08 14457 14462 mov ax, word [bp+012h] ; 8b 46 12 … … 14464 14469 pop bp ; 5d 14465 14470 retn ; c3 14466 pci16_select_reg_: ; 0xf9a 3fLB 0x2414471 pci16_select_reg_: ; 0xf9a4c LB 0x24 14467 14472 push bp ; 55 14468 14473 mov bp, sp ; 89 e5 … … 14481 14486 pop bp ; 5d 14482 14487 retn ; c3 14483 pci16_find_device_: ; 0xf9a 63LB 0xf714488 pci16_find_device_: ; 0xf9a70 LB 0xf7 14484 14489 push bp ; 55 14485 14490 mov bp, sp ; 89 e5 … … 14495 14500 mov byte [bp-008h], 000h ; c6 46 f8 00 14496 14501 test bl, 007h ; f6 c3 07 14497 jne short 09a abh ; 75 2d14502 jne short 09ab8h ; 75 2d 14498 14503 mov dx, strict word 0000eh ; ba 0e 00 14499 14504 mov ax, bx ; 89 d8 14500 call 09a 3fh ; e8 b9 ff14505 call 09a4ch ; e8 b9 ff 14501 14506 mov dx, 00cfeh ; ba fe 0c 14502 14507 in AL, DX ; ec … … 14505 14510 mov byte [bp-006h], al ; 88 46 fa 14506 14511 cmp AL, strict byte 0ffh ; 3c ff 14507 jne short 09a 99h ; 75 0614512 jne short 09aa6h ; 75 06 14508 14513 add bx, strict byte 00008h ; 83 c3 08 14509 jmp near 09b 2ch ; e9 93 0014514 jmp near 09b39h ; e9 93 00 14510 14515 test byte [bp-006h], 080h ; f6 46 fa 80 14511 je short 09a a6h ; 74 0714516 je short 09ab3h ; 74 07 14512 14517 mov word [bp-00ah], strict word 00001h ; c7 46 f6 01 00 14513 jmp short 09a abh ; eb 0514518 jmp short 09ab8h ; eb 05 14514 14519 mov word [bp-00ah], strict word 00008h ; c7 46 f6 08 00 14515 14520 mov al, byte [bp-006h] ; 8a 46 fa 14516 14521 and AL, strict byte 007h ; 24 07 14517 14522 cmp AL, strict byte 001h ; 3c 01 14518 jne short 09a d3h ; 75 1f14523 jne short 09ae0h ; 75 1f 14519 14524 mov ax, bx ; 89 d8 14520 14525 shr ax, 008h ; c1 e8 08 14521 14526 test ax, ax ; 85 c0 14522 jne short 09a d3h ; 75 1614527 jne short 09ae0h ; 75 16 14523 14528 mov dx, strict word 0001ah ; ba 1a 00 14524 14529 mov ax, bx ; 89 d8 14525 call 09a 3fh ; e8 7a ff14530 call 09a4ch ; e8 7a ff 14526 14531 mov dx, 00cfeh ; ba fe 0c 14527 14532 in AL, DX ; ec … … 14529 14534 ; sub ah, ah ; 2a e4 14530 14535 cmp al, byte [bp-008h] ; 3a 46 f8 14531 jbe short 09a d3h ; 76 0314536 jbe short 09ae0h ; 76 03 14532 14537 mov byte [bp-008h], al ; 88 46 f8 14533 14538 test di, di ; 85 ff 14534 je short 09a dch ; 74 0514539 je short 09ae9h ; 74 05 14535 14540 mov dx, strict word 00008h ; ba 08 00 14536 jmp short 09a deh ; eb 0214541 jmp short 09aebh ; eb 02 14537 14542 xor dx, dx ; 31 d2 14538 14543 mov ax, bx ; 89 d8 14539 call 09a 3fh ; e8 5c ff14544 call 09a4ch ; e8 5c ff 14540 14545 mov dx, 00cfch ; ba fc 0c 14541 14546 in eax, DX ; 66 ed … … 14548 14553 mov word [bp-010h], strict word 00000h ; c7 46 f0 00 00 14549 14554 test di, di ; 85 ff 14550 je short 09b 0dh ; 74 0f14555 je short 09b1ah ; 74 0f 14551 14556 mov cx, strict word 00008h ; b9 08 00 14552 14557 shr dx, 1 ; d1 ea 14553 14558 rcr ax, 1 ; d1 d8 14554 loop 09b0 1h ; e2 fa14559 loop 09b0eh ; e2 fa 14555 14560 mov word [bp-00eh], ax ; 89 46 f2 14556 14561 mov word [bp-00ch], dx ; 89 56 f4 14557 14562 mov ax, word [bp-00ch] ; 8b 46 f4 14558 14563 cmp ax, word [bp-014h] ; 3b 46 ec 14559 jne short 09b 1dh ; 75 0814564 jne short 09b2ah ; 75 08 14560 14565 mov ax, word [bp-00eh] ; 8b 46 f2 14561 14566 cmp ax, word [bp-012h] ; 3b 46 ee 14562 je short 09b 23h ; 74 0614567 je short 09b30h ; 74 06 14563 14568 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 14564 je short 09b 29h ; 74 0614569 je short 09b36h ; 74 06 14565 14570 dec si ; 4e 14566 14571 cmp si, strict byte 0ffffh ; 83 fe ff 14567 je short 09b 3bh ; 74 1214572 je short 09b48h ; 74 12 14568 14573 add bx, word [bp-00ah] ; 03 5e f6 14569 14574 mov dx, bx ; 89 da … … 14571 14576 movzx ax, byte [bp-008h] ; 0f b6 46 f8 14572 14577 cmp dx, ax ; 39 c2 14573 jbe near 09a 79h ; 0f 86 3e ff14578 jbe near 09a86h ; 0f 86 3e ff 14574 14579 cmp si, strict byte 0ffffh ; 83 fe ff 14575 jne short 09b 44h ; 75 0414580 jne short 09b51h ; 75 04 14576 14581 mov ax, bx ; 89 d8 14577 jmp short 09b 47h ; eb 0314582 jmp short 09b54h ; eb 03 14578 14583 mov ax, strict word 0ffffh ; b8 ff ff 14579 14584 lea sp, [bp-004h] ; 8d 66 fc … … 14582 14587 pop bp ; 5d 14583 14588 retn ; c3 14584 cmp AL, strict byte 09ch ; 3c 9c 14585 push si ; 56 14589 dec cx ; 49 14586 14590 pushfw ; 9c 14587 imul bx, word [si-06382h], 09c91h ; 69 9c 7e 9c 919c14588 mov sb ; a414589 pushfw ;9c14590 _pci16_function: ; 0xf9b 5aLB 0x1d714591 arpl [si-0638ah], bx ; 63 9c 76 9c 14592 mov bx, word [si-06362h] ; 8b 9c 9e 9c 14593 mov CL, strict byte 09ch ; b1 9c 14594 _pci16_function: ; 0xf9b67 LB 0x1d7 14591 14595 push bp ; 55 14592 14596 mov bp, sp ; 89 e5 … … 14602 14606 xor ah, ah ; 30 e4 14603 14607 cmp bx, strict byte 00003h ; 83 fb 03 14604 jc short 09b 93h ; 72 1a14605 jbe short 09b ebh ; 76 7014608 jc short 09ba0h ; 72 1a 14609 jbe short 09bf8h ; 76 70 14606 14610 cmp bx, strict byte 0000eh ; 83 fb 0e 14607 je near 09c b8h ; 0f 84 36 0114611 je near 09cc5h ; 0f 84 36 01 14608 14612 cmp bx, strict byte 00008h ; 83 fb 08 14609 jc near 09 cfdh ; 0f 82 74 0114613 jc near 09d0ah ; 0f 82 74 01 14610 14614 cmp bx, strict byte 0000dh ; 83 fb 0d 14611 jbe near 09c1 0h ; 0f 86 80 0014612 jmp near 09 cfdh ; e9 6a 0114615 jbe near 09c1dh ; 0f 86 80 00 14616 jmp near 09d0ah ; e9 6a 01 14613 14617 cmp bx, strict byte 00002h ; 83 fb 02 14614 je short 09b bbh ; 74 2314618 je short 09bc8h ; 74 23 14615 14619 cmp bx, strict byte 00001h ; 83 fb 01 14616 jne near 09 cfdh ; 0f 85 5e 0114620 jne near 09d0ah ; 0f 85 5e 01 14617 14621 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 14618 14622 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 14620 14624 mov word [bp+018h], 04350h ; c7 46 18 50 43 14621 14625 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 14622 jmp near 09d 2ah ; e9 6f 0114626 jmp near 09d37h ; e9 6f 01 14623 14627 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 14624 jne short 09b c7h ; 75 0614628 jne short 09bd4h ; 75 06 14625 14629 or ah, 083h ; 80 cc 83 14626 jmp near 09d 23h ; e9 5c 0114630 jmp near 09d30h ; e9 5c 01 14627 14631 mov bx, word [bp+008h] ; 8b 5e 08 14628 14632 mov dx, word [bp+01ch] ; 8b 56 1c 14629 14633 mov ax, word [bp+018h] ; 8b 46 18 14630 14634 xor cx, cx ; 31 c9 14631 call 09a 63h ; e8 8e fe14635 call 09a70h ; e8 8e fe 14632 14636 cmp ax, strict word 0ffffh ; 3d ff ff 14633 jne short 09b e5h ; 75 0b14637 jne short 09bf2h ; 75 0b 14634 14638 mov ax, word [bp+020h] ; 8b 46 20 14635 14639 xor ah, ah ; 30 e4 14636 14640 or ah, 086h ; 80 cc 86 14637 jmp near 09d 23h ; e9 3e 0114641 jmp near 09d30h ; e9 3e 01 14638 14642 mov word [bp+014h], ax ; 89 46 14 14639 jmp near 09d 2ah ; e9 3f 0114643 jmp near 09d37h ; e9 3f 01 14640 14644 mov bx, word [bp+008h] ; 8b 5e 08 14641 14645 mov ax, word [bp+01ch] ; 8b 46 1c 14642 14646 mov dx, word [bp+01eh] ; 8b 56 1e 14643 14647 mov cx, strict word 00001h ; b9 01 00 14644 call 09a 63h ; e8 69 fe14648 call 09a70h ; e8 69 fe 14645 14649 cmp ax, strict word 0ffffh ; 3d ff ff 14646 jne short 09c 0ah ; 75 0b14650 jne short 09c17h ; 75 0b 14647 14651 mov ax, word [bp+020h] ; 8b 46 20 14648 14652 xor ah, ah ; 30 e4 14649 14653 or ah, 086h ; 80 cc 86 14650 jmp near 09d 23h ; e9 19 0114654 jmp near 09d30h ; e9 19 01 14651 14655 mov word [bp+014h], ax ; 89 46 14 14652 jmp near 09d 2ah ; e9 1a 0114656 jmp near 09d37h ; e9 1a 01 14653 14657 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 14654 jc short 09c 1dh ; 72 0614658 jc short 09c2ah ; 72 06 14655 14659 or ah, 087h ; 80 cc 87 14656 jmp near 09d 23h ; e9 06 0114660 jmp near 09d30h ; e9 06 01 14657 14661 mov dx, word [bp+004h] ; 8b 56 04 14658 14662 mov ax, word [bp+014h] ; 8b 46 14 14659 call 09a 3fh ; e8 19 fe14663 call 09a4ch ; e8 19 fe 14660 14664 mov bx, word [bp+020h] ; 8b 5e 20 14661 14665 xor bh, bh ; 30 ff 14662 14666 sub bx, strict byte 00008h ; 83 eb 08 14663 14667 cmp bx, strict byte 00005h ; 83 fb 05 14664 jnbe near 09d 2ah ; 0f 87 f5 0014668 jnbe near 09d37h ; 0f 87 f5 00 14665 14669 add bx, bx ; 01 db 14666 jmp word [cs:bx-064 b2h] ; 2e ff a7 4e9b14670 jmp word [cs:bx-064a5h] ; 2e ff a7 5b 9b 14667 14671 mov bx, word [bp+01ch] ; 8b 5e 1c 14668 14672 xor bl, bl ; 30 db … … 14675 14679 or bx, ax ; 09 c3 14676 14680 mov word [bp+01ch], bx ; 89 5e 1c 14677 jmp near 09d 2ah ; e9 d4 0014681 jmp near 09d37h ; e9 d4 00 14678 14682 mov dx, word [bp+004h] ; 8b 56 04 14679 14683 xor dh, dh ; 30 f6 … … 14682 14686 in ax, DX ; ed 14683 14687 mov word [bp+01ch], ax ; 89 46 1c 14684 jmp near 09d 2ah ; e9 c1 0014688 jmp near 09d37h ; e9 c1 00 14685 14689 mov dx, 00cfch ; ba fc 0c 14686 14690 in eax, DX ; 66 ed … … 14691 14695 mov word [bp+01ch], ax ; 89 46 1c 14692 14696 mov word [bp+01eh], dx ; 89 56 1e 14693 jmp near 09d 2ah ; e9 ac 0014697 jmp near 09d37h ; e9 ac 00 14694 14698 mov ax, word [bp+01ch] ; 8b 46 1c 14695 14699 mov dx, word [bp+004h] ; 8b 56 04 … … 14698 14702 add dx, 00cfch ; 81 c2 fc 0c 14699 14703 out DX, AL ; ee 14700 jmp near 09d 2ah ; e9 99 0014704 jmp near 09d37h ; e9 99 00 14701 14705 mov ax, word [bp+01ch] ; 8b 46 1c 14702 14706 mov dx, word [bp+004h] ; 8b 56 04 … … 14705 14709 add dx, 00cfch ; 81 c2 fc 0c 14706 14710 out DX, ax ; ef 14707 jmp near 09d 2ah ; e9 86 0014711 jmp near 09d37h ; e9 86 00 14708 14712 mov ax, word [bp+01ch] ; 8b 46 1c 14709 14713 mov cx, word [bp+01eh] ; 8b 4e 1e … … 14714 14718 ; mov ax, cx ; 8b c1 14715 14719 out DX, eax ; 66 ef 14716 jmp short 09d 2ah ; eb 7214720 jmp short 09d37h ; eb 72 14717 14721 mov bx, word [bp+004h] ; 8b 5e 04 14718 14722 mov es, [bp+026h] ; 8e 46 26 … … 14721 14725 mov cx, word [0f4a0h] ; 8b 0e a0 f4 14722 14726 cmp cx, word [es:bx] ; 26 3b 0f 14723 jbe short 09c deh ; 76 1114727 jbe short 09cebh ; 76 11 14724 14728 mov ax, word [bp+020h] ; 8b 46 20 14725 14729 xor ah, ah ; 30 e4 … … 14727 14731 mov word [bp+020h], ax ; 89 46 20 14728 14732 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 14729 jmp short 09cf 2h ; eb 1414733 jmp short 09cffh ; eb 14 14730 14734 les di, [es:bx+002h] ; 26 c4 7f 02 14731 14735 mov si, 0f2c0h ; be c0 f2 … … 14739 14743 les bx, [bp-008h] ; c4 5e f8 14740 14744 mov word [es:bx], ax ; 26 89 07 14741 jmp short 09d 2ah ; eb 2d14745 jmp short 09d37h ; eb 2d 14742 14746 mov bx, 00da0h ; bb a0 0d 14743 14747 mov cx, ds ; 8c d9 14744 14748 mov ax, strict word 00004h ; b8 04 00 14745 call 01999h ; e8 917c14749 call 01999h ; e8 84 7c 14746 14750 mov ax, word [bp+014h] ; 8b 46 14 14747 14751 push ax ; 50 … … 14750 14754 push 00d5ch ; 68 5c 0d 14751 14755 push strict byte 00004h ; 6a 04 14752 call 019dah ; e8 c27c14756 call 019dah ; e8 b5 7c 14753 14757 add sp, strict byte 00008h ; 83 c4 08 14754 14758 mov ax, word [bp+020h] ; 8b 46 20 … … 14762 14766 pop bp ; 5d 14763 14767 retn ; c3 14764 pci_find_classcode_: ; 0xf9d3 1LB 0x2b14768 pci_find_classcode_: ; 0xf9d3e LB 0x2b 14765 14769 push bp ; 55 14766 14770 mov bp, sp ; 89 e5 … … 14777 14781 int 01ah ; cd 1a 14778 14782 cmp ah, 000h ; 80 fc 00 14779 je near 09d5 2h ; 0f 84 03 0014783 je near 09d5fh ; 0f 84 03 00 14780 14784 mov bx, strict word 0ffffh ; bb ff ff 14781 14785 mov ax, bx ; 89 d8 … … 14786 14790 pop bp ; 5d 14787 14791 retn ; c3 14788 pci_read_config_byte_: ; 0xf9d 5cLB 0x2414792 pci_read_config_byte_: ; 0xf9d69 LB 0x24 14789 14793 push bp ; 55 14790 14794 mov bp, sp ; 89 e5 … … 14805 14809 pop bp ; 5d 14806 14810 retn ; c3 14807 pci_read_config_word_: ; 0xf9d8 0LB 0x2214811 pci_read_config_word_: ; 0xf9d8d LB 0x22 14808 14812 push bp ; 55 14809 14813 mov bp, sp ; 89 e5 … … 14824 14828 pop bp ; 5d 14825 14829 retn ; c3 14826 pci_read_config_dword_: ; 0xf9da 2LB 0x2714830 pci_read_config_dword_: ; 0xf9daf LB 0x27 14827 14831 push bp ; 55 14828 14832 mov bp, sp ; 89 e5 … … 14845 14849 pop bp ; 5d 14846 14850 retn ; c3 14847 vds_is_present_: ; 0xf9d c9LB 0x1d14851 vds_is_present_: ; 0xf9dd6 LB 0x1d 14848 14852 push bx ; 53 14849 14853 push bp ; 55 … … 14853 14857 mov es, ax ; 8e c0 14854 14858 test byte [es:bx], 020h ; 26 f6 07 20 14855 je short 09de 1h ; 74 0614859 je short 09deeh ; 74 06 14856 14860 mov ax, strict word 00001h ; b8 01 00 14857 14861 pop bp ; 5d … … 14862 14866 pop bx ; 5b 14863 14867 retn ; c3 14864 vds_real_to_lin_: ; 0xf9d e6LB 0x1e14868 vds_real_to_lin_: ; 0xf9df3 LB 0x1e 14865 14869 push bx ; 53 14866 14870 push cx ; 51 … … 14873 14877 sal ax, 1 ; d1 e0 14874 14878 rcl dx, 1 ; d1 d2 14875 loop 09 df4h ; e2 fa14879 loop 09e01h ; e2 fa 14876 14880 xor cx, cx ; 31 c9 14877 14881 add ax, bx ; 01 d8 … … 14881 14885 pop bx ; 5b 14882 14886 retn ; c3 14883 vds_build_sg_list_: ; 0xf9e 04LB 0x7914887 vds_build_sg_list_: ; 0xf9e11 LB 0x79 14884 14888 push bp ; 55 14885 14889 mov bp, sp ; 89 e5 … … 14895 14899 mov bx, word [bp+006h] ; 8b 5e 06 14896 14900 mov word [es:di+002h], bx ; 26 89 5d 02 14897 call 09d e6h ; e8 c3 ff14901 call 09df3h ; e8 c3 ff 14898 14902 mov es, si ; 8e c6 14899 14903 mov word [es:di+004h], ax ; 26 89 45 04 14900 14904 mov word [es:di+006h], dx ; 26 89 55 06 14901 14905 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 14902 call 09d c9h ; e8 93 ff14906 call 09dd6h ; e8 93 ff 14903 14907 test ax, ax ; 85 c0 14904 je short 09e 4dh ; 74 1314908 je short 09e5ah ; 74 13 14905 14909 mov es, si ; 8e c6 14906 14910 mov ax, 08105h ; b8 05 81 14907 14911 mov dx, strict word 00000h ; ba 00 00 14908 14912 int 04bh ; cd 4b 14909 jc near 09e 4ah ; 0f 82 02 0014913 jc near 09e57h ; 0f 82 02 00 14910 14914 db 032h, 0c0h 14911 14915 ; xor al, al ; 32 c0 14912 14916 cbw ; 98 14913 jmp short 09e 74h ; eb 2714917 jmp short 09e81h ; eb 27 14914 14918 mov es, si ; 8e c6 14915 14919 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 14928 14932 pop bp ; 5d 14929 14933 retn 00004h ; c2 04 00 14930 vds_free_sg_list_: ; 0xf9e 7d LB 0x3314934 vds_free_sg_list_: ; 0xf9e8a LB 0x36 14931 14935 push bp ; 55 14932 14936 mov bp, sp ; 89 e5 … … 14934 14938 push di ; 57 14935 14939 mov bx, ax ; 89 c3 14936 call 09d c9h ; e8 42 ff14940 call 09dd6h ; e8 42 ff 14937 14941 test ax, ax ; 85 c0 14938 je short 09e 9eh ; 74 1314942 je short 09eabh ; 74 13 14939 14943 mov di, bx ; 89 df 14940 14944 mov es, dx ; 8e c2 … … 14942 14946 mov dx, strict word 00000h ; ba 00 00 14943 14947 int 04bh ; cd 4b 14944 jc near 09e 9dh ; 0f 82 02 0014948 jc near 09eaah ; 0f 82 02 00 14945 14949 db 032h, 0c0h 14946 14950 ; xor al, al ; 32 c0 … … 14953 14957 pop bp ; 5d 14954 14958 retn ; c3 14955 times 0x 3db 014956 __U4M: ; 0xf9e b0 LB 0x4014959 times 0x6 db 0 14960 __U4M: ; 0xf9ec0 LB 0x40 14957 14961 pushfw ; 9c 14958 14962 push eax ; 66 50 … … 14980 14984 retn ; c3 14981 14985 times 0xf db 0 14982 __U4D: ; 0xf9 ef0 LB 0x4014986 __U4D: ; 0xf9f00 LB 0x40 14983 14987 pushfw ; 9c 14984 14988 push eax ; 66 50 … … 15011 15015 retn ; c3 15012 15016 times 0x7 db 0 15013 __U8RS: ; 0xf9f 30 LB 0x1015017 __U8RS: ; 0xf9f40 LB 0x10 15014 15018 test si, si ; 85 f6 15015 je short 09f 3fh ; 74 0b15019 je short 09f4fh ; 74 0b 15016 15020 shr ax, 1 ; d1 e8 15017 15021 rcr bx, 1 ; d1 db … … 15019 15023 rcr dx, 1 ; d1 da 15020 15024 dec si ; 4e 15021 jne short 09f 34h ; 75 f515025 jne short 09f44h ; 75 f5 15022 15026 retn ; c3 15023 __U8LS: ; 0xf9f 40 LB 0x1015027 __U8LS: ; 0xf9f50 LB 0x10 15024 15028 test si, si ; 85 f6 15025 je short 09f 4fh ; 74 0b15029 je short 09f5fh ; 74 0b 15026 15030 sal dx, 1 ; d1 e2 15027 15031 rcl cx, 1 ; d1 d1 … … 15029 15033 rcl ax, 1 ; d1 d0 15030 15034 dec si ; 4e 15031 jne short 09f 44h ; 75 f515035 jne short 09f54h ; 75 f5 15032 15036 retn ; c3 15033 _fmemset_: ; 0xf9f 50 LB 0x1015037 _fmemset_: ; 0xf9f60 LB 0x10 15034 15038 push di ; 57 15035 15039 mov es, dx ; 8e c2 … … 15042 15046 retn ; c3 15043 15047 times 0x3 db 0 15044 _fmemcpy_: ; 0xf9f 60 LB 0x3a15048 _fmemcpy_: ; 0xf9f70 LB 0x3a 15045 15049 push bp ; 55 15046 15050 db 08bh, 0ech … … 15067 15071 add byte [bx+si], al ; 00 00 15068 15072 add byte [bx+si], al ; 00 00 15069 mov AL, strict byte 09fh ; b0 9f 15070 mov DL, strict byte 09fh ; b2 9f 15071 mov DH, strict byte 09fh ; b6 9f 15072 mov DH, strict byte 09fh ; b6 9f 15073 mov DH, strict byte 09fh ; b6 9f 15074 mov ax, 0b89fh ; b8 9f b8 15073 rcr byte [bx-0603eh], 0c6h ; c0 9f c2 9f c6 15075 15074 lahf ; 9f 15076 mov dx, 0be9fh ; ba 9f be 15075 db 0c6h, 09fh, 0c6h, 09fh, 0c8h 15076 ; mov byte [bx-0603ah], 0c8h ; c6 9f c6 9f c8 15077 15077 lahf ; 9f 15078 mov si, 0c09fh ; be 9f c0 15078 enter 0ca9fh, 09fh ; c8 9f ca 9f 15079 into ; ce 15079 15080 lahf ; 9f 15080 lds bx, [bx-06039h] ; c5 9f c7 9f 15081 apm_worker: ; 0xf9f9a LB 0x3a 15081 into ; ce 15082 lahf ; 9f 15083 rcr byte [bx-0602bh], 1 ; d0 9f d5 9f 15084 xlatb ; d7 15085 lahf ; 9f 15086 apm_worker: ; 0xf9faa LB 0x3a 15082 15087 sti ; fb 15083 15088 push ax ; 50 … … 15091 15096 pop ax ; 58 15092 15097 mov AH, strict byte 053h ; b4 53 15093 jnc short 09f d0h ; 73 2515094 jmp word [cs:bp-060 80h] ; 2e ff a6 80 9f15095 jmp short 09f ceh ; eb 1c15098 jnc short 09fe0h ; 73 25 15099 jmp word [cs:bp-06070h] ; 2e ff a6 90 9f 15100 jmp short 09fdeh ; eb 1c 15096 15101 sti ; fb 15097 15102 hlt ; f4 15098 jmp short 09f ceh ; eb 1815099 jmp short 09f ceh ; eb 1615100 jmp short 09f d0h ; eb 1615103 jmp short 09fdeh ; eb 18 15104 jmp short 09fdeh ; eb 16 15105 jmp short 09fe0h ; eb 16 15101 15106 mov AH, strict byte 080h ; b4 80 15102 jmp short 09f d2h ; eb 1415103 jmp short 09f d0h ; eb 1015107 jmp short 09fe2h ; eb 14 15108 jmp short 09fe0h ; eb 10 15104 15109 mov ax, 00102h ; b8 02 01 15105 jmp short 09f ceh ; eb 0915106 jmp short 09f ceh ; eb 0715110 jmp short 09fdeh ; eb 09 15111 jmp short 09fdeh ; eb 07 15107 15112 mov BL, strict byte 000h ; b3 00 15108 15113 mov cx, strict word 00000h ; b9 00 00 15109 jmp short 09f ceh ; eb 0015114 jmp short 09fdeh ; eb 00 15110 15115 clc ; f8 15111 15116 retn ; c3 … … 15113 15118 stc ; f9 15114 15119 retn ; c3 15115 apm_pm16_entry: ; 0xf9f d4 LB 0x1115120 apm_pm16_entry: ; 0xf9fe4 LB 0x11 15116 15121 mov AH, strict byte 002h ; b4 02 15117 15122 push DS ; 1e … … 15121 15126 add bp, strict byte 00008h ; 83 c5 08 15122 15127 mov ds, bp ; 8e dd 15123 call 09f 9ah ; e8 b8 ff15128 call 09faah ; e8 b8 ff 15124 15129 pop bp ; 5d 15125 15130 pop DS ; 1f 15126 15131 retf ; cb 15127 15132 15128 ; Padding 0x3a 1b bytes at 0xf9fe515129 times 148 75db 015133 ; Padding 0x3a0b bytes at 0xf9ff5 15134 times 14859 db 0 15130 15135 15131 15136 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 15174 15179 add bp, strict byte 00008h ; 83 c5 08 15175 15180 push ebp ; 66 55 15176 mov bp, 09f d6h ; bd d6 9f15181 mov bp, 09fe6h ; bd e6 9f 15177 15182 add byte [bx+si], al ; 00 00 15178 15183 push ebp ; 66 55 … … 15907 15912 call 01d17h ; e8 d4 39 15908 15913 call 021a4h ; e8 5e 3e 15909 call 098 13h ; e8 cab415910 call 08 6f7h ; e8 aba315914 call 09820h ; e8 d7 b4 15915 call 08704h ; e8 b8 a3 15911 15916 call 0ed2fh ; e8 e0 09 15912 15917 call 0e2d2h ; e8 80 ff … … 16931 16936 popfw ; 9d 16932 16937 jmp short 0f8a7h ; eb 13 16933 call 099 4ah ; e8 b3a016938 call 09957h ; e8 c0 a0 16934 16939 jmp short 0f88eh ; eb f5 16935 16940 int15_handler_mouse: ; 0xff899 LB 0x5 … … 17084 17089 cld ; fc 17085 17090 pushad ; 66 60 17086 call 09b 5ah ; e8 dd9c17091 call 09b67h ; e8 ea 9c 17087 17092 popad ; 66 61 17088 17093 pop DS ; 1f … … 17198 17203 cpu_reset: ; 0xffff0 LB 0x10 17199 17204 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 17200 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 e6h17205 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 031h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum
r63625 r66146 1 b20f88cf3304197b045e412b3dfcf0e0*VBoxPcBios386.rom1 0d999d86f4e7faf14b247137b10e2926 *VBoxPcBios386.rom -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm
r63625 r66146 988 988 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 989 989 _pktacc: ; 0xf006a LB 0xc 990 db 000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 0 c8h, 081h, 063h, 091h990 db 000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 0d7h, 081h, 072h, 091h 991 991 _softrst: ; 0xf0076 LB 0xc 992 992 db 000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 003h, 03ch, 003h, 03ch 993 993 _dskacc: ; 0xf0082 LB 0x2e 994 994 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 02ah, 046h, 02bh, 000h, 000h, 000h, 000h 995 db 0 f6h, 07fh, 0dfh, 080h, 031h, 090h, 0dbh, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h995 db 005h, 080h, 0eeh, 080h, 040h, 090h, 0eah, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 996 996 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 997 997 … … 1190 1190 times 1144 db 0 1191 1191 1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d d8 class=CODE group=AUTO1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8de8 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 70h ; e8 93 871598 call 0a080h ; e8 a3 87 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 0a0 a0h ; e8 88 851835 call 0a0b0h ; e8 98 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 0a0 a0h ; e8 0e 812296 call 0a0b0h ; e8 1e 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 0a0 a0h ; e8 ee 802306 call 0a0b0h ; e8 fe 80 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 0a0 a0h ; e8 9b 802338 call 0a0b0h ; e8 ab 80 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 0a0 a0h ; e8 7d 802347 call 0a0b0h ; e8 8d 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 0a0 a0h ; e8 a1 7a2925 call 0a0b0h ; e8 b1 7a 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 0a0 a0h ; e8 c4 773217 call 0a0b0h ; e8 d4 77 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 0a0 a0h ; e8 ad 773225 call 0a0b0h ; e8 bd 77 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 0a0 a0h ; e8 59 773259 call 0a0b0h ; e8 69 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 0a0 a0h ; e8 44 773266 call 0a0b0h ; e8 54 77 3267 3267 mov word [bp-022h], dx ; 89 56 de 3268 3268 mov ax, dx ; 89 d0 … … 5604 5604 mov dx, ss ; 8c d2 5605 5605 lea ax, [bp-026h] ; 8d 46 da 5606 call 0a0 c0h ; e8 48 625606 call 0a0d0h ; e8 58 62 5607 5607 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5608 5608 mov ax, strict word 00011h ; b8 11 00 … … 6096 6096 xor dl, dl ; 30 d2 6097 6097 xor cx, cx ; 31 c9 6098 call 0a0 50h ; e8 64 5c6098 call 0a060h ; e8 74 5c 6099 6099 xor bx, bx ; 31 db 6100 6100 add ax, si ; 01 f0 … … 6102 6102 mov bx, di ; 89 fb 6103 6103 xor cx, cx ; 31 c9 6104 call 0a0 50h ; e8 57 5c6104 call 0a060h ; e8 67 5c 6105 6105 mov bx, ax ; 89 c3 6106 6106 mov ax, word [bp-00ah] ; 8b 46 f6 … … 6137 6137 mov dx, ss ; 8c d2 6138 6138 lea ax, [bp-030h] ; 8d 46 d0 6139 call 0a0 c0h ; e8 70 5c6139 call 0a0d0h ; e8 80 5c 6140 6140 mov word [bp-030h], strict word 00028h ; c7 46 d0 28 00 6141 6141 mov ax, word [bp-00eh] ; 8b 46 f2 … … 6491 6491 mov dx, ss ; 8c d2 6492 6492 lea ax, [bp-02eh] ; 8d 46 d2 6493 call 0a0 c0h ; e8 88 586493 call 0a0d0h ; e8 98 58 6494 6494 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 6495 6495 mov ax, word [bp-014h] ; 8b 46 ec … … 7023 7023 mov CL, strict byte 004h ; b1 04 7024 7024 sar ax, CL ; d3 f8 7025 call 07d dah ; e8 0c307025 call 07de9h ; e8 1b 30 7026 7026 cmp byte [bp+004h], 002h ; 80 7e 04 02 7027 7027 jne short 04dd9h ; 75 05 … … 8493 8493 mov dx, word [bp+00ch] ; 8b 56 0c 8494 8494 mov si, strict word 00020h ; be 20 00 8495 call 0a0 a0h ; e8 22 458495 call 0a0b0h ; e8 32 45 8496 8496 test ax, ax ; 85 c0 8497 8497 jne short 05b8eh ; 75 0c … … 8531 8531 mov bx, strict word 0003fh ; bb 3f 00 8532 8532 xor cx, cx ; 31 c9 8533 call 0a0 50h ; e8 79 448533 call 0a060h ; e8 89 44 8534 8534 mov bx, ax ; 89 c3 8535 8535 mov cx, dx ; 89 d1 8536 8536 mov ax, word [bp-004h] ; 8b 46 fc 8537 8537 mov dx, si ; 89 f2 8538 call 0a0 70h ; e8 8d 448538 call 0a080h ; e8 9d 44 8539 8539 mov word [es:di+002h], ax ; 26 89 45 02 8540 8540 cmp ax, 00400h ; 3d 00 04 … … 8756 8756 mov bx, cx ; 89 cb 8757 8757 xor cx, cx ; 31 c9 8758 call 0a0 50h ; e8 58 428758 call 0a060h ; e8 68 42 8759 8759 xor bx, bx ; 31 db 8760 8760 add ax, word [bp-00ch] ; 03 46 f4 … … 8762 8762 mov bx, word [bp-010h] ; 8b 5e f0 8763 8763 xor cx, cx ; 31 c9 8764 call 0a0 50h ; e8 49 428764 call 0a060h ; e8 59 42 8765 8765 xor bx, bx ; 31 db 8766 8766 add ax, di ; 01 f8 … … 8936 8936 mov bx, word [bp-00ch] ; 8b 5e f4 8937 8937 xor cx, cx ; 31 c9 8938 call 0a0 50h ; e8 72 408938 call 0a060h ; e8 82 40 8939 8939 mov bx, di ; 89 fb 8940 8940 xor cx, cx ; 31 c9 8941 call 0a0 50h ; e8 6b 408941 call 0a060h ; e8 7b 40 8942 8942 mov word [bp-008h], ax ; 89 46 f8 8943 8943 mov word [bp-006h], dx ; 89 56 fa … … 9099 9099 xor bx, bx ; 31 db 9100 9100 mov si, strict word 00020h ; be 20 00 9101 call 0a0 b0h ; e8 30 3f9101 call 0a0c0h ; e8 40 3f 9102 9102 mov word [bp-00eh], ax ; 89 46 f2 9103 9103 mov word [bp-010h], bx ; 89 5e f0 … … 9264 9264 mov dx, si ; 89 f2 9265 9265 mov si, strict word 00020h ; be 20 00 9266 call 0a0 a0h ; e8 29 3d9266 call 0a0b0h ; e8 39 3d 9267 9267 mov bx, di ; 89 fb 9268 9268 mov word [es:bx+014h], dx ; 26 89 57 14 … … 9628 9628 mov bx, strict word 0000fh ; bb 0f 00 9629 9629 xor cx, cx ; 31 c9 9630 call 0a0 70h ; e8 5b 399630 call 0a080h ; e8 6b 39 9631 9631 mov cx, ax ; 89 c1 9632 9632 mov bx, dx ; 89 d3 … … 11791 11791 pop bp ; 5d 11792 11792 retn ; c3 11793 show_logo_: ; 0xf7b9a LB 0x24 011793 show_logo_: ; 0xf7b9a LB 0x24f 11794 11794 push bp ; 55 11795 11795 mov bp, sp ; 89 e5 … … 11825 11825 cmp ax, strict word 0004fh ; 3d 4f 00 11826 11826 je short 07be3h ; 74 03 11827 jmp near 07c a9h ; e9 c60011827 jmp near 07cb8h ; e9 d5 00 11828 11828 mov al, cl ; 88 c8 11829 11829 add AL, strict byte 004h ; 04 04 … … 11890 11890 mov byte [bp-00ch], 001h ; c6 46 f4 01 11891 11891 cmp byte [bp-012h], 000h ; 80 7e ee 00 11892 je short 07ca 9h ; 74 2911892 je short 07cabh ; 74 2b 11893 11893 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11894 jne short 07ca 9h ; 75 2311894 jne short 07cabh ; 75 25 11895 11895 mov cx, strict word 00010h ; b9 10 00 11896 11896 jmp short 07c90h ; eb 05 11897 11897 dec cx ; 49 11898 11898 test cx, cx ; 85 c9 11899 jbe short 07c a9h ; 76 1911899 jbe short 07cb8h ; 76 28 11900 11900 mov ax, cx ; 89 c8 11901 11901 or ah, 002h ; 80 cc 02 … … 11908 11908 jne short 07c8bh ; 75 e6 11909 11909 mov byte [bp-00ch], 001h ; c6 46 f4 01 11910 jmp short 07cb8h ; eb 0d 11911 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11912 jne short 07cb8h ; 75 07 11913 mov ax, 00200h ; b8 00 02 11914 mov dx, 003b8h ; ba b8 03 11915 out DX, ax ; ef 11910 11916 xor bx, bx ; 31 db 11911 11917 mov dx, 0037dh ; ba 7d 03 11912 11918 mov ax, si ; 89 f0 11913 call 01660h ; e8 ad9911919 call 01660h ; e8 9e 99 11914 11920 mov AL, strict byte 003h ; b0 03 11915 11921 mov AH, strict byte 000h ; b4 00 11916 11922 int 010h ; cd 10 11917 11923 cmp byte [bp-010h], 000h ; 80 7e f0 00 11918 je short 07c d3h ; 74 1411924 je short 07ce2h ; 74 14 11919 11925 cmp byte [bp-014h], 000h ; 80 7e ec 00 11920 jne short 07d 01h ; 75 3c11926 jne short 07d10h ; 75 3c 11921 11927 cmp byte [bp-012h], 000h ; 80 7e ee 00 11922 jne short 07d 01h ; 75 3611928 jne short 07d10h ; 75 36 11923 11929 cmp word [bp-016h], strict byte 00000h ; 83 7e ea 00 11924 je short 07c d6h ; 74 0511925 jmp short 07d 01h ; eb 2e11926 jmp near 07d bdh ; e9 e7 0011930 je short 07ce5h ; 74 05 11931 jmp short 07d10h ; eb 2e 11932 jmp near 07dcch ; e9 e7 00 11927 11933 cmp byte [bp-010h], 002h ; 80 7e f0 02 11928 jne short 07c eah ; 75 0e11934 jne short 07cf9h ; 75 0e 11929 11935 mov ax, 00a4bh ; b8 4b 0a 11930 11936 push ax ; 50 11931 11937 mov ax, strict word 00002h ; b8 02 00 11932 11938 push ax ; 50 11933 call 01976h ; e8 8 f9c11939 call 01976h ; e8 80 9c 11934 11940 add sp, strict byte 00004h ; 83 c4 04 11935 11941 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11936 jne short 07d 01h ; 75 1111942 jne short 07d10h ; 75 11 11937 11943 mov dx, strict word 00001h ; ba 01 00 11938 11944 mov ax, 000c0h ; b8 c0 00 11939 call 0793ch ; e8 43fc11945 call 0793ch ; e8 34 fc 11940 11946 cmp AL, strict byte 086h ; 3c 86 11941 jne short 07d 01h ; 75 0411947 jne short 07d10h ; 75 04 11942 11948 mov byte [bp-00ch], 001h ; c6 46 f4 01 11943 11949 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11944 je short 07c d3h ; 74 cc11950 je short 07ce2h ; 74 cc 11945 11951 mov byte [bp-00eh], 000h ; c6 46 f2 00 11946 11952 mov ax, 00100h ; b8 00 01 … … 11963 11969 mov ax, strict word 00002h ; b8 02 00 11964 11970 push ax ; 50 11965 call 01976h ; e8 439c11971 call 01976h ; e8 34 9c 11966 11972 add sp, strict byte 00004h ; 83 c4 04 11967 call 07a18h ; e8 d ffc11973 call 07a18h ; e8 d0 fc 11968 11974 mov ax, 00ab1h ; b8 b1 0a 11969 11975 push ax ; 50 11970 11976 mov ax, strict word 00002h ; b8 02 00 11971 11977 push ax ; 50 11972 call 01976h ; e8 329c11978 call 01976h ; e8 23 9c 11973 11979 add sp, strict byte 00004h ; 83 c4 04 11974 11980 mov dx, strict word 00001h ; ba 01 00 11975 11981 mov ax, strict word 00040h ; b8 40 00 11976 call 0793ch ; e8 ecfb11982 call 0793ch ; e8 dd fb 11977 11983 mov cl, al ; 88 c1 11978 11984 test al, al ; 84 c0 11979 je short 07d 47h ; 74 f111985 je short 07d56h ; 74 f1 11980 11986 cmp AL, strict byte 030h ; 3c 30 11981 je short 07d aah ; 74 5011987 je short 07db9h ; 74 50 11982 11988 cmp cl, 002h ; 80 f9 02 11983 jc short 07d 83h ; 72 2411989 jc short 07d92h ; 72 24 11984 11990 cmp cl, 009h ; 80 f9 09 11985 jnbe short 07d 83h ; 77 1f11991 jnbe short 07d92h ; 77 1f 11986 11992 mov al, cl ; 88 c8 11987 11993 xor ah, ah ; 30 e4 11988 call 07b72h ; e8 07 fe11994 call 07b72h ; e8 f8 fd 11989 11995 cmp AL, strict byte 0ffh ; 3c ff 11990 jne short 07d 71h ; 75 0211991 jmp short 07d 47h ; eb d611996 jne short 07d80h ; 75 02 11997 jmp short 07d56h ; eb d6 11992 11998 mov bl, al ; 88 c3 11993 11999 xor bh, bh ; 30 ff 11994 12000 mov dx, 0037ch ; ba 7c 03 11995 12001 mov ax, si ; 89 f0 11996 call 01660h ; e8 e39812002 call 01660h ; e8 d4 98 11997 12003 mov byte [bp-00eh], 002h ; c6 46 f2 02 11998 jmp short 07d aah ; eb 2712004 jmp short 07db9h ; eb 27 11999 12005 cmp cl, 02eh ; 80 f9 2e 12000 je short 07d 98h ; 74 1012006 je short 07da7h ; 74 10 12001 12007 cmp cl, 026h ; 80 f9 26 12002 je short 07d 9eh ; 74 1112008 je short 07dadh ; 74 11 12003 12009 cmp cl, 021h ; 80 f9 21 12004 jne short 07d a4h ; 75 1212010 jne short 07db3h ; 75 12 12005 12011 mov byte [bp-00eh], 001h ; c6 46 f2 01 12006 jmp short 07d aah ; eb 1212012 jmp short 07db9h ; eb 12 12007 12013 mov byte [bp-00eh], 003h ; c6 46 f2 03 12008 jmp short 07d aah ; eb 0c12014 jmp short 07db9h ; eb 0c 12009 12015 mov byte [bp-00eh], 004h ; c6 46 f2 04 12010 jmp short 07d aah ; eb 0612016 jmp short 07db9h ; eb 06 12011 12017 cmp byte [bp-00eh], 000h ; 80 7e f2 00 12012 je short 07d 47h ; 74 9d12018 je short 07d56h ; 74 9d 12013 12019 mov bl, byte [bp-00eh] ; 8a 5e f2 12014 12020 xor bh, bh ; 30 ff 12015 12021 mov dx, 0037dh ; ba 7d 03 12016 12022 mov ax, si ; 89 f0 12017 call 01660h ; e8 a99812023 call 01660h ; e8 9a 98 12018 12024 mov AL, strict byte 003h ; b0 03 12019 12025 mov AH, strict byte 000h ; b4 00 … … 12028 12034 push DS ; 1e 12029 12035 mov ds, ax ; 8e d8 12030 call 0ede3h ; e8 157012036 call 0ede3h ; e8 06 70 12031 12037 pop DS ; 1f 12032 12038 pop bp ; 5d … … 12039 12045 pop bp ; 5d 12040 12046 retn ; c3 12041 delay_boot_: ; 0xf7d daLB 0x7212047 delay_boot_: ; 0xf7de9 LB 0x72 12042 12048 push bp ; 55 12043 12049 mov bp, sp ; 89 e5 … … 12049 12055 mov bx, ax ; 89 c3 12050 12056 test ax, ax ; 85 c0 12051 je short 07e 42h ; 74 5a12057 je short 07e51h ; 74 5a 12052 12058 mov AL, strict byte 034h ; b0 34 12053 12059 out strict byte 043h, AL ; e6 43 … … 12061 12067 mov ax, strict word 00002h ; b8 02 00 12062 12068 push ax ; 50 12063 call 01976h ; e8 769b12069 call 01976h ; e8 67 9b 12064 12070 add sp, strict byte 00006h ; 83 c4 06 12065 12071 test bx, bx ; 85 db 12066 jbe short 07e 21h ; 76 1a12072 jbe short 07e30h ; 76 1a 12067 12073 push bx ; 53 12068 12074 mov ax, 00b19h ; b8 19 0b … … 12070 12076 mov ax, strict word 00002h ; b8 02 00 12071 12077 push ax ; 50 12072 call 01976h ; e8 639b12078 call 01976h ; e8 54 9b 12073 12079 add sp, strict byte 00006h ; 83 c4 06 12074 12080 xor dx, dx ; 31 d2 12075 12081 mov ax, strict word 00040h ; b8 40 00 12076 call 0793ch ; e8 1efb12082 call 0793ch ; e8 0f fb 12077 12083 dec bx ; 4b 12078 jmp short 07e 03h ; eb e212084 jmp short 07e12h ; eb e2 12079 12085 mov bx, 00a49h ; bb 49 0a 12080 12086 push bx ; 53 12081 12087 mov bx, strict word 00002h ; bb 02 00 12082 12088 push bx ; 53 12083 call 01976h ; e8 4a9b12089 call 01976h ; e8 3b 9b 12084 12090 add sp, strict byte 00004h ; 83 c4 04 12085 12091 mov AL, strict byte 034h ; b0 34 … … 12092 12098 push DS ; 1e 12093 12099 mov ds, ax ; 8e d8 12094 call 0ede3h ; e8 a36f12100 call 0ede3h ; e8 94 6f 12095 12101 pop DS ; 1f 12096 12102 pop bp ; 5d … … 12103 12109 pop bp ; 5d 12104 12110 retn ; c3 12105 scsi_cmd_data_in_: ; 0xf7e 4cLB 0xd512111 scsi_cmd_data_in_: ; 0xf7e5b LB 0xd5 12106 12112 push bp ; 55 12107 12113 mov bp, sp ; 89 e5 … … 12119 12125 ; sub ah, ah ; 2a e4 12120 12126 test AL, strict byte 001h ; a8 01 12121 jne short 07e 62h ; 75 f712127 jne short 07e71h ; 75 f7 12122 12128 mov al, byte [bp+004h] ; 8a 46 04 12123 12129 cmp AL, strict byte 010h ; 3c 10 12124 jne short 07e 76h ; 75 0412130 jne short 07e85h ; 75 04 12125 12131 xor ax, ax ; 31 c0 12126 jmp short 07e 78h ; eb 0212132 jmp short 07e87h ; eb 02 12127 12133 xor ah, ah ; 30 e4 12128 12134 mov di, ax ; 89 c7 … … 12132 12138 shr dx, 1 ; d1 ea 12133 12139 rcr ax, 1 ; d1 d8 12134 loop 07e 82h ; e2 fa12140 loop 07e91h ; e2 fa 12135 12141 mov cx, ax ; 89 c1 12136 12142 and cx, 000f0h ; 81 e1 f0 00 … … 12150 12156 shr dx, 1 ; d1 ea 12151 12157 rcr ax, 1 ; d1 d8 12152 loop 07e a7h ; e2 fa12158 loop 07eb6h ; e2 fa 12153 12159 mov dx, si ; 89 f2 12154 12160 out DX, AL ; ee … … 12157 12163 xor ah, ah ; 30 e4 12158 12164 cmp cx, ax ; 39 c1 12159 jnc short 07e c9h ; 73 0e12165 jnc short 07ed8h ; 73 0e 12160 12166 les di, [bp-00ah] ; c4 7e f6 12161 12167 add di, cx ; 01 cf … … 12164 12170 out DX, AL ; ee 12165 12171 inc cx ; 41 12166 jmp short 07e b2h ; eb e912172 jmp short 07ec1h ; eb e9 12167 12173 mov dx, si ; 89 f2 12168 12174 in AL, DX ; ec … … 12170 12176 ; sub ah, ah ; 2a e4 12171 12177 test AL, strict byte 001h ; a8 01 12172 jne short 07e c9h ; 75 f712178 jne short 07ed8h ; 75 f7 12173 12179 test AL, strict byte 002h ; a8 02 12174 je short 07e e4h ; 74 0e12180 je short 07ef3h ; 74 0e 12175 12181 lea dx, [si+003h] ; 8d 54 03 12176 12182 xor al, al ; 30 c0 … … 12180 12186 ; sub ah, ah ; 2a e4 12181 12187 mov di, strict word 00004h ; bf 04 00 12182 jmp short 07f 16h ; eb 3212188 jmp short 07f25h ; eb 32 12183 12189 lea dx, [si+001h] ; 8d 54 01 12184 12190 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 12185 jne short 07 ef3h ; 75 0612191 jne short 07f02h ; 75 06 12186 12192 cmp bx, 08000h ; 81 fb 00 80 12187 jbe short 07f 0dh ; 76 1a12193 jbe short 07f1ch ; 76 1a 12188 12194 mov cx, 08000h ; b9 00 80 12189 12195 les di, [bp+006h] ; c4 7e 06 … … 12194 12200 add ax, 00800h ; 05 00 08 12195 12201 mov word [bp+008h], ax ; 89 46 08 12196 jmp short 07e e4h ; eb d712202 jmp short 07ef3h ; eb d7 12197 12203 mov cx, bx ; 89 d9 12198 12204 les di, [bp+006h] ; c4 7e 06 … … 12205 12211 pop bp ; 5d 12206 12212 retn 0000ah ; c2 0a 00 12207 scsi_cmd_data_out_: ; 0xf7f 21LB 0xd512213 scsi_cmd_data_out_: ; 0xf7f30 LB 0xd5 12208 12214 push bp ; 55 12209 12215 mov bp, sp ; 89 e5 … … 12221 12227 ; sub ah, ah ; 2a e4 12222 12228 test AL, strict byte 001h ; a8 01 12223 jne short 07f 37h ; 75 f712229 jne short 07f46h ; 75 f7 12224 12230 mov al, byte [bp+004h] ; 8a 46 04 12225 12231 cmp AL, strict byte 010h ; 3c 10 12226 jne short 07f 4bh ; 75 0412232 jne short 07f5ah ; 75 04 12227 12233 xor ax, ax ; 31 c0 12228 jmp short 07f 4dh ; eb 0212234 jmp short 07f5ch ; eb 02 12229 12235 xor ah, ah ; 30 e4 12230 12236 mov si, ax ; 89 c6 … … 12234 12240 shr dx, 1 ; d1 ea 12235 12241 rcr ax, 1 ; d1 d8 12236 loop 07f 57h ; e2 fa12242 loop 07f66h ; e2 fa 12237 12243 mov cx, ax ; 89 c1 12238 12244 and cx, 000f0h ; 81 e1 f0 00 … … 12252 12258 shr dx, 1 ; d1 ea 12253 12259 rcr ax, 1 ; d1 d8 12254 loop 07f 7ch ; e2 fa12260 loop 07f8bh ; e2 fa 12255 12261 mov dx, di ; 89 fa 12256 12262 out DX, AL ; ee … … 12259 12265 xor ah, ah ; 30 e4 12260 12266 cmp cx, ax ; 39 c1 12261 jnc short 07f 9eh ; 73 0e12267 jnc short 07fadh ; 73 0e 12262 12268 les si, [bp-00ah] ; c4 76 f6 12263 12269 add si, cx ; 01 ce … … 12266 12272 out DX, AL ; ee 12267 12273 inc cx ; 41 12268 jmp short 07f 87h ; eb e912274 jmp short 07f96h ; eb e9 12269 12275 lea dx, [di+001h] ; 8d 55 01 12270 12276 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 12271 jne short 07f adh ; 75 0612277 jne short 07fbch ; 75 06 12272 12278 cmp bx, 08000h ; 81 fb 00 80 12273 jbe short 07f c8h ; 76 1b12279 jbe short 07fd7h ; 76 1b 12274 12280 mov cx, 08000h ; b9 00 80 12275 12281 les si, [bp+006h] ; c4 76 06 … … 12281 12287 add ax, 00800h ; 05 00 08 12282 12288 mov word [bp+008h], ax ; 89 46 08 12283 jmp short 07f 9eh ; eb d612289 jmp short 07fadh ; eb d6 12284 12290 mov cx, bx ; 89 d9 12285 12291 les si, [bp+006h] ; c4 76 06 … … 12291 12297 ; sub ah, ah ; 2a e4 12292 12298 test AL, strict byte 001h ; a8 01 12293 jne short 07fd 0h ; 75 f712299 jne short 07fdfh ; 75 f7 12294 12300 test AL, strict byte 002h ; a8 02 12295 je short 07f ebh ; 74 0e12301 je short 07ffah ; 74 0e 12296 12302 lea dx, [di+003h] ; 8d 55 03 12297 12303 xor al, al ; 30 c0 … … 12301 12307 ; sub ah, ah ; 2a e4 12302 12308 mov ax, strict word 00004h ; b8 04 00 12303 jmp short 07f edh ; eb 0212309 jmp short 07ffch ; eb 02 12304 12310 xor ax, ax ; 31 c0 12305 12311 lea sp, [bp-004h] ; 8d 66 fc … … 12308 12314 pop bp ; 5d 12309 12315 retn 0000ah ; c2 0a 00 12310 @scsi_read_sectors: ; 0xf 7ff6LB 0xe912316 @scsi_read_sectors: ; 0xf8005 LB 0xe9 12311 12317 push bp ; 55 12312 12318 mov bp, sp ; 89 e5 … … 12320 12326 mov byte [bp-006h], al ; 88 46 fa 12321 12327 cmp AL, strict byte 004h ; 3c 04 12322 jbe short 080 26h ; 76 1512328 jbe short 08035h ; 76 15 12323 12329 xor ah, ah ; 30 e4 12324 12330 push ax ; 50 … … 12329 12335 mov ax, strict word 00007h ; b8 07 00 12330 12336 push ax ; 50 12331 call 01976h ; e8 539912337 call 01976h ; e8 44 99 12332 12338 add sp, strict byte 00008h ; 83 c4 08 12333 12339 mov es, [bp+006h] ; 8e 46 06 … … 12370 12376 sal word [bp-00ah], 1 ; d1 66 f6 12371 12377 rcl word [bp-008h], 1 ; d1 56 f8 12372 loop 080 91h ; e2 f812378 loop 080a0h ; e2 f8 12373 12379 push word [bp-008h] ; ff 76 f8 12374 12380 push word [bp-00ah] ; ff 76 f6 … … 12381 12387 mov cx, ss ; 8c d1 12382 12388 lea bx, [bp-01ah] ; 8d 5e e6 12383 call 07e 4ch ; e8 95 fd12389 call 07e5bh ; e8 95 fd 12384 12390 mov ah, al ; 88 c4 12385 12391 test al, al ; 84 c0 12386 jne short 080 d2h ; 75 1512392 jne short 080e1h ; 75 15 12387 12393 mov es, [bp+006h] ; 8e 46 06 12388 12394 mov word [es:si+018h], di ; 26 89 7c 18 … … 12398 12404 pop bp ; 5d 12399 12405 retn 00004h ; c2 04 00 12400 @scsi_write_sectors: ; 0xf80 dfLB 0xe912406 @scsi_write_sectors: ; 0xf80ee LB 0xe9 12401 12407 push bp ; 55 12402 12408 mov bp, sp ; 89 e5 … … 12410 12416 mov byte [bp-006h], al ; 88 46 fa 12411 12417 cmp AL, strict byte 004h ; 3c 04 12412 jbe short 081 0fh ; 76 1512418 jbe short 0811eh ; 76 15 12413 12419 xor ah, ah ; 30 e4 12414 12420 push ax ; 50 … … 12419 12425 mov ax, strict word 00007h ; b8 07 00 12420 12426 push ax ; 50 12421 call 01976h ; e8 6a9812427 call 01976h ; e8 5b 98 12422 12428 add sp, strict byte 00008h ; 83 c4 08 12423 12429 mov es, [bp+006h] ; 8e 46 06 … … 12460 12466 sal word [bp-00ah], 1 ; d1 66 f6 12461 12467 rcl word [bp-008h], 1 ; d1 56 f8 12462 loop 081 7ah ; e2 f812468 loop 08189h ; e2 f8 12463 12469 push word [bp-008h] ; ff 76 f8 12464 12470 push word [bp-00ah] ; ff 76 f6 … … 12471 12477 mov cx, ss ; 8c d1 12472 12478 lea bx, [bp-01ah] ; 8d 5e e6 12473 call 07f 21h ; e8 81 fd12479 call 07f30h ; e8 81 fd 12474 12480 mov ah, al ; 88 c4 12475 12481 test al, al ; 84 c0 12476 jne short 081 bbh ; 75 1512482 jne short 081cah ; 75 15 12477 12483 mov es, [bp+006h] ; 8e 46 06 12478 12484 mov word [es:si+018h], di ; 26 89 7c 18 … … 12488 12494 pop bp ; 5d 12489 12495 retn 00004h ; c2 04 00 12490 scsi_cmd_packet_: ; 0xf81 c8LB 0x17012496 scsi_cmd_packet_: ; 0xf81d7 LB 0x170 12491 12497 push bp ; 55 12492 12498 mov bp, sp ; 89 e5 … … 12500 12506 mov dx, strict word 0000eh ; ba 0e 00 12501 12507 mov ax, strict word 00040h ; b8 40 00 12502 call 0166eh ; e8 8a9412508 call 0166eh ; e8 7b 94 12503 12509 mov si, 00122h ; be 22 01 12504 12510 mov word [bp-00ch], ax ; 89 46 f4 12505 12511 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12506 jne short 082 13h ; 75 2312512 jne short 08222h ; 75 23 12507 12513 mov bx, 00da0h ; bb a0 0d 12508 12514 mov cx, ds ; 8c d9 12509 12515 mov ax, strict word 00004h ; b8 04 00 12510 call 01933h ; e8 389712516 call 01933h ; e8 29 97 12511 12517 mov ax, 00b62h ; b8 62 0b 12512 12518 push ax ; 50 … … 12515 12521 mov ax, strict word 00004h ; b8 04 00 12516 12522 push ax ; 50 12517 call 01976h ; e8 6c9712523 call 01976h ; e8 5d 97 12518 12524 add sp, strict byte 00006h ; 83 c4 06 12519 12525 mov dx, strict word 00001h ; ba 01 00 12520 jmp near 083 2dh ; e9 1a 0112526 jmp near 0833ch ; e9 1a 01 12521 12527 sub di, strict byte 00008h ; 83 ef 08 12522 12528 sal di, 1 ; d1 e7 … … 12533 12539 ; sub ah, ah ; 2a e4 12534 12540 test AL, strict byte 001h ; a8 01 12535 jne short 0823 0h ; 75 f712541 jne short 0823fh ; 75 f7 12536 12542 xor dx, bx ; 31 da 12537 12543 mov ax, word [bp+006h] ; 8b 46 06 … … 12549 12555 shr dx, 1 ; d1 ea 12550 12556 rcr ax, 1 ; d1 d8 12551 loop 082 5bh ; e2 fa12557 loop 0826ah ; e2 fa 12552 12558 and ax, 000f0h ; 25 f0 00 12553 12559 mov cl, byte [bp-006h] ; 8a 4e fa … … 12568 12574 shr dx, 1 ; d1 ea 12569 12575 rcr ax, 1 ; d1 d8 12570 loop 082 83h ; e2 fa12576 loop 08292h ; e2 fa 12571 12577 mov dx, bx ; 89 da 12572 12578 out DX, AL ; ee … … 12575 12581 xor ah, ah ; 30 e4 12576 12582 cmp cx, ax ; 39 c1 12577 jnc short 082 a8h ; 73 1112583 jnc short 082b7h ; 73 11 12578 12584 mov es, [bp-00ah] ; 8e 46 f6 12579 12585 mov di, word [bp-00eh] ; 8b 7e f2 … … 12583 12589 out DX, AL ; ee 12584 12590 inc cx ; 41 12585 jmp short 082 8eh ; eb e612591 jmp short 0829dh ; eb e6 12586 12592 mov dx, bx ; 89 da 12587 12593 in AL, DX ; ec … … 12589 12595 ; sub ah, ah ; 2a e4 12590 12596 test AL, strict byte 001h ; a8 01 12591 jne short 082 a8h ; 75 f712597 jne short 082b7h ; 75 f7 12592 12598 test AL, strict byte 002h ; a8 02 12593 je short 082 c3h ; 74 0e12599 je short 082d2h ; 74 0e 12594 12600 lea dx, [bx+003h] ; 8d 57 03 12595 12601 xor al, al ; 30 c0 … … 12599 12605 ; sub ah, ah ; 2a e4 12600 12606 mov dx, strict word 00003h ; ba 03 00 12601 jmp short 083 2dh ; eb 6a12607 jmp short 0833ch ; eb 6a 12602 12608 mov ax, word [bp+004h] ; 8b 46 04 12603 12609 test ax, ax ; 85 c0 12604 je short 082 d2h ; 74 0812610 je short 082e1h ; 74 08 12605 12611 lea dx, [bx+001h] ; 8d 57 01 12606 12612 mov cx, ax ; 89 c1 12607 12613 in AL, DX ; ec 12608 loop 082 cfh ; e2 fd12614 loop 082deh ; e2 fd 12609 12615 mov ax, word [bp+006h] ; 8b 46 06 12610 12616 mov es, [bp-00ch] ; 8e 46 f4 … … 12614 12620 lea ax, [bx+001h] ; 8d 47 01 12615 12621 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 12616 jne short 08 2f3h ; 75 0712622 jne short 08302h ; 75 07 12617 12623 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 12618 jbe short 0831 0h ; 76 1d12624 jbe short 0831fh ; 76 1d 12619 12625 mov dx, ax ; 89 c2 12620 12626 mov cx, 08000h ; b9 00 80 … … 12626 12632 add ax, 00800h ; 05 00 08 12627 12633 mov word [bp+00eh], ax ; 89 46 0e 12628 jmp short 082 e3h ; eb d312634 jmp short 082f2h ; eb d3 12629 12635 mov dx, ax ; 89 c2 12630 12636 mov cx, word [bp+006h] ; 8b 4e 06 … … 12633 12639 mov es, [bp-00ch] ; 8e 46 f4 12634 12640 cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00 12635 je short 083 2bh ; 74 0712641 je short 0833ah ; 74 07 12636 12642 mov cx, word [es:si+020h] ; 26 8b 4c 20 12637 12643 in AL, DX ; ec 12638 loop 083 28h ; e2 fd12644 loop 08337h ; e2 fd 12639 12645 xor dx, dx ; 31 d2 12640 12646 mov ax, dx ; 89 d0 … … 12644 12650 pop bp ; 5d 12645 12651 retn 0000ch ; c2 0c 00 12646 scsi_enumerate_attached_devices_: ; 0xf83 38LB 0x4cb12652 scsi_enumerate_attached_devices_: ; 0xf8347 LB 0x4cb 12647 12653 push bp ; 55 12648 12654 mov bp, sp ; 89 e5 … … 12656 12662 mov dx, strict word 0000eh ; ba 0e 00 12657 12663 mov ax, strict word 00040h ; b8 40 00 12658 call 0166eh ; e8 209312664 call 0166eh ; e8 11 93 12659 12665 mov di, 00122h ; bf 22 01 12660 12666 mov word [bp-016h], ax ; 89 46 ea 12661 12667 mov word [bp-014h], strict word 00000h ; c7 46 ec 00 00 12662 jmp near 087 76h ; e9 1a 0412668 jmp near 08785h ; e9 1a 04 12663 12669 cmp AL, strict byte 004h ; 3c 04 12664 jc short 083 63h ; 72 0312665 jmp near 08 7f9h ; e9 96 0412670 jc short 08372h ; 72 03 12671 jmp near 08808h ; e9 96 04 12666 12672 mov cx, strict word 00010h ; b9 10 00 12667 12673 xor bx, bx ; 31 db 12668 12674 mov dx, ss ; 8c d2 12669 12675 lea ax, [bp-048h] ; 8d 46 b8 12670 call 0a0 c0h ; e8 501d12676 call 0a0d0h ; e8 51 1d 12671 12677 mov byte [bp-048h], 09eh ; c6 46 b8 9e 12672 12678 mov byte [bp-047h], 010h ; c6 46 b9 10 … … 12686 12692 lea bx, [bp-048h] ; 8d 5e b8 12687 12693 mov ax, word [bp-0024ah] ; 8b 86 b6 fd 12688 call 07e 4ch ; e8 ae fa12694 call 07e5bh ; e8 ae fa 12689 12695 test al, al ; 84 c0 12690 je short 083 b4h ; 74 1212696 je short 083c3h ; 74 12 12691 12697 mov ax, 00b92h ; b8 92 0b 12692 12698 push ax ; 50 … … 12695 12701 mov ax, strict word 00007h ; b8 07 00 12696 12702 push ax ; 50 12697 call 01976h ; e8 c59512703 call 01976h ; e8 b6 95 12698 12704 add sp, strict byte 00006h ; 83 c4 06 12699 12705 mov ax, word [bp-00242h] ; 8b 86 be fd … … 12727 12733 sal ax, 1 ; d1 e0 12728 12734 rcl dx, 1 ; d1 d2 12729 loop 084 02h ; e2 fa12735 loop 08411h ; e2 fa 12730 12736 or bx, ax ; 09 c3 12731 12737 or dx, si ; 09 f2 … … 12735 12741 mov word [bp-01ch], bx ; 89 5e e4 12736 12742 test dx, dx ; 85 d2 12737 jne short 084 21h ; 75 0612743 jne short 08430h ; 75 06 12738 12744 cmp bx, 00200h ; 81 fb 00 02 12739 je short 084 44h ; 74 2312745 je short 08453h ; 74 23 12740 12746 mov bx, 00da0h ; bb a0 0d 12741 12747 mov cx, ds ; 8c d9 12742 12748 mov ax, strict word 00004h ; b8 04 00 12743 call 01933h ; e8 07 9512749 call 01933h ; e8 f8 94 12744 12750 push dx ; 52 12745 12751 push word [bp-01ch] ; ff 76 e4 … … 12749 12755 mov ax, strict word 00004h ; b8 04 00 12750 12756 push ax ; 50 12751 call 01976h ; e8 389512757 call 01976h ; e8 29 95 12752 12758 add sp, strict byte 0000ah ; 83 c4 0a 12753 jmp near 087 6ah ; e9 26 0312759 jmp near 08779h ; e9 26 03 12754 12760 mov al, byte [bp-00ch] ; 8a 46 f4 12755 12761 cmp AL, strict byte 001h ; 3c 01 12756 jc short 084 57h ; 72 0c12757 jbe short 084 5fh ; 76 1212762 jc short 08466h ; 72 0c 12763 jbe short 0846eh ; 76 12 12758 12764 cmp AL, strict byte 003h ; 3c 03 12759 je short 084 67h ; 74 1612765 je short 08476h ; 74 16 12760 12766 cmp AL, strict byte 002h ; 3c 02 12761 je short 084 63h ; 74 0e12762 jmp short 084 aeh ; eb 5712767 je short 08472h ; 74 0e 12768 jmp short 084bdh ; eb 57 12763 12769 test al, al ; 84 c0 12764 jne short 084 aeh ; 75 5312770 jne short 084bdh ; 75 53 12765 12771 mov BL, strict byte 090h ; b3 90 12766 jmp short 084 69h ; eb 0a12772 jmp short 08478h ; eb 0a 12767 12773 mov BL, strict byte 098h ; b3 98 12768 jmp short 084 69h ; eb 0612774 jmp short 08478h ; eb 06 12769 12775 mov BL, strict byte 0a0h ; b3 a0 12770 jmp short 084 69h ; eb 0212776 jmp short 08478h ; eb 02 12771 12777 mov BL, strict byte 0a8h ; b3 a8 12772 12778 mov cl, bl ; 88 d9 … … 12774 12780 xor ch, ch ; 30 ed 12775 12781 mov ax, cx ; 89 c8 12776 call 016aeh ; e8 399212782 call 016aeh ; e8 2a 92 12777 12783 test al, al ; 84 c0 12778 je short 084 aeh ; 74 3512784 je short 084bdh ; 74 35 12779 12785 mov al, bl ; 88 d8 12780 12786 db 0feh, 0c0h 12781 12787 ; inc al ; fe c0 12782 12788 xor ah, ah ; 30 e4 12783 call 016aeh ; e8 2c9212789 call 016aeh ; e8 1d 92 12784 12790 mov dh, al ; 88 c6 12785 12791 mov al, bl ; 88 d8 12786 12792 xor ah, ah ; 30 e4 12787 call 016aeh ; e8 239212793 call 016aeh ; e8 14 92 12788 12794 mov ah, dh ; 88 f4 12789 12795 cwd ; 99 … … 12793 12799 add AL, strict byte 002h ; 04 02 12794 12800 xor ah, ah ; 30 e4 12795 call 016aeh ; e8 129212801 call 016aeh ; e8 03 92 12796 12802 xor ah, ah ; 30 e4 12797 12803 mov word [bp-028h], ax ; 89 46 d8 12798 12804 mov ax, cx ; 89 c8 12799 call 016aeh ; e8 08 9212805 call 016aeh ; e8 f9 91 12800 12806 xor ah, ah ; 30 e4 12801 12807 mov word [bp-01ah], ax ; 89 46 e6 12802 jmp near 085 9bh ; e9 ed 0012808 jmp near 085aah ; e9 ed 00 12803 12809 mov ax, word [bp-020h] ; 8b 46 e0 12804 12810 mov bx, word [bp-022h] ; 8b 5e de … … 12806 12812 mov dx, word [bp-024h] ; 8b 56 dc 12807 12813 mov si, strict word 0000ch ; be 0c 00 12808 call 0a0 a0h ; e8 e01b12814 call 0a0b0h ; e8 e1 1b 12809 12815 mov word [bp-02ah], ax ; 89 46 d6 12810 12816 mov word [bp-02ch], bx ; 89 5e d4 … … 12813 12819 mov ax, word [bp-020h] ; 8b 46 e0 12814 12820 test ax, ax ; 85 c0 12815 jnbe short 084 e8h ; 77 1512816 je short 084 d8h ; 74 0312817 jmp near 085 5bh ; e9 83 0012821 jnbe short 084f7h ; 77 15 12822 je short 084e7h ; 74 03 12823 jmp near 0856ah ; e9 83 00 12818 12824 cmp word [bp-022h], strict byte 00000h ; 83 7e de 00 12819 jnbe short 084 e8h ; 77 0a12820 jne short 084 d5h ; 75 f512825 jnbe short 084f7h ; 77 0a 12826 jne short 084e4h ; 75 f5 12821 12827 cmp word [bp-012h], strict byte 00040h ; 83 7e ee 40 12822 jnbe short 084 e8h ; 77 0212823 jne short 085 5bh ; 75 7312828 jnbe short 084f7h ; 77 02 12829 jne short 0856ah ; 75 73 12824 12830 mov word [bp-028h], 000ffh ; c7 46 d8 ff 00 12825 12831 mov word [bp-01ah], strict word 0003fh ; c7 46 e6 3f 00 … … 12828 12834 mov dx, word [bp-024h] ; 8b 56 dc 12829 12835 mov si, strict word 00006h ; be 06 00 12830 call 0a0 a0h ; e8 9f1b12836 call 0a0b0h ; e8 a0 1b 12831 12837 mov si, word [bp-018h] ; 8b 76 e8 12832 12838 add si, dx ; 01 d6 … … 12846 12852 mov dx, si ; 89 f2 12847 12853 mov si, strict word 00008h ; be 08 00 12848 call 0a0 a0h ; e8 6f1b12854 call 0a0b0h ; e8 70 1b 12849 12855 mov word [bp-02eh], bx ; 89 5e d2 12850 12856 mov word [bp-030h], cx ; 89 4e d0 … … 12855 12861 mov dx, word [bp-01eh] ; 8b 56 e2 12856 12862 mov si, strict word 00010h ; be 10 00 12857 call 0a0 a0h ; e8 541b12863 call 0a0b0h ; e8 55 1b 12858 12864 mov si, word [bp-032h] ; 8b 76 ce 12859 12865 add si, dx ; 01 d6 … … 12861 12867 mov ax, word [bp-02eh] ; 8b 46 d2 12862 12868 adc ax, bx ; 11 d8 12863 jmp short 085 98h ; eb 3d12869 jmp short 085a7h ; eb 3d 12864 12870 test ax, ax ; 85 c0 12865 jnbe short 085 71h ; 77 1212866 jne short 085 7dh ; 75 1c12871 jnbe short 08580h ; 77 12 12872 jne short 0858ch ; 75 1c 12867 12873 cmp word [bp-022h], strict byte 00000h ; 83 7e de 00 12868 jnbe short 085 71h ; 77 0a12869 jne short 085 7dh ; 75 1412874 jnbe short 08580h ; 77 0a 12875 jne short 0858ch ; 75 14 12870 12876 cmp word [bp-012h], strict byte 00020h ; 83 7e ee 20 12871 jnbe short 085 71h ; 77 0212872 jne short 085 7dh ; 75 0c12877 jnbe short 08580h ; 77 02 12878 jne short 0858ch ; 75 0c 12873 12879 mov word [bp-028h], 00080h ; c7 46 d8 80 00 12874 12880 mov word [bp-01ah], strict word 00020h ; c7 46 e6 20 00 12875 jmp short 085 96h ; eb 1912881 jmp short 085a5h ; eb 19 12876 12882 mov word [bp-028h], strict word 00040h ; c7 46 d8 40 00 12877 12883 mov word [bp-01ah], strict word 00020h ; c7 46 e6 20 00 … … 12880 12886 mov dx, word [bp-024h] ; 8b 56 dc 12881 12887 mov si, strict word 0000bh ; be 0b 00 12882 call 0a0 a0h ; e8 0a1b12888 call 0a0b0h ; e8 0b 1b 12883 12889 mov si, dx ; 89 d6 12884 12890 mov word [bp-026h], cx ; 89 4e da … … 12917 12923 mov word [es:bx+034h], ax ; 26 89 47 34 12918 12924 cmp word [bp-026h], strict byte 00000h ; 83 7e da 00 12919 jne short 086 12h ; 75 0612925 jne short 08621h ; 75 06 12920 12926 cmp si, 00400h ; 81 fe 00 04 12921 jbe short 0862 0h ; 76 0e12927 jbe short 0862fh ; 76 0e 12922 12928 mov word [es:bx+02ch], 00400h ; 26 c7 47 2c 00 04 12923 12929 mov word [es:bx+032h], 00400h ; 26 c7 47 32 00 04 12924 jmp short 086 28h ; eb 0812930 jmp short 08637h ; eb 08 12925 12931 mov word [es:bx+02ch], si ; 26 89 77 2c 12926 12932 mov word [es:bx+032h], si ; 26 89 77 32 … … 12928 12934 mov cx, ds ; 8c d9 12929 12935 mov ax, strict word 00004h ; b8 04 00 12930 call 01933h ; e8 00 9312936 call 01933h ; e8 f1 92 12931 12937 push word [bp-020h] ; ff 76 e0 12932 12938 push word [bp-022h] ; ff 76 de … … 12945 12951 mov ax, strict word 00004h ; b8 04 00 12946 12952 push ax ; 50 12947 call 01976h ; e8 199312953 call 01976h ; e8 0a 93 12948 12954 add sp, strict byte 00018h ; 83 c4 18 12949 12955 mov al, byte [bp-00eh] ; 8a 46 f2 … … 12974 12980 mov dx, strict word 00075h ; ba 75 00 12975 12981 mov ax, strict word 00040h ; b8 40 00 12976 call 01652h ; e8 9 f8f12982 call 01652h ; e8 90 8f 12977 12983 mov bl, al ; 88 c3 12978 12984 db 0feh, 0c3h … … 12981 12987 mov dx, strict word 00075h ; ba 75 00 12982 12988 mov ax, strict word 00040h ; b8 40 00 12983 call 01660h ; e8 9e8f12989 call 01660h ; e8 8f 8f 12984 12990 inc byte [bp-00ch] ; fe 46 f4 12985 jmp near 087 5fh ; e9 97 0012991 jmp near 0876eh ; e9 97 00 12986 12992 mov bx, 00da0h ; bb a0 0d 12987 12993 mov cx, ds ; 8c d9 12988 12994 mov ax, strict word 00004h ; b8 04 00 12989 call 01933h ; e8 609212995 call 01933h ; e8 51 92 12990 12996 push word [bp-014h] ; ff 76 ec 12991 12997 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12996 13002 mov ax, strict word 00004h ; b8 04 00 12997 13003 push ax ; 50 12998 call 01976h ; e8 8 f9213004 call 01976h ; e8 80 92 12999 13005 add sp, strict byte 00008h ; 83 c4 08 13000 13006 mov al, byte [bp-00ch] ; 8a 46 f4 … … 13002 13008 mov byte [bp-00eh], al ; 88 46 f2 13003 13009 test byte [bp-00247h], 080h ; f6 86 b9 fd 80 13004 je short 08 6feh ; 74 0513010 je short 0870dh ; 74 05 13005 13011 mov cx, strict word 00001h ; b9 01 00 13006 jmp short 0870 0h ; eb 0213012 jmp short 0870fh ; eb 02 13007 13013 xor cx, cx ; 31 c9 13008 13014 mov al, byte [bp-00ch] ; 8a 46 f4 … … 13042 13048 inc word [bp-014h] ; ff 46 ec 13043 13049 cmp word [bp-014h], strict byte 00010h ; 83 7e ec 10 13044 jl short 087 76h ; 7c 0313045 jmp near 08 7f9h ; e9 83 0013050 jl short 08785h ; 7c 03 13051 jmp near 08808h ; e9 83 00 13046 13052 mov byte [bp-048h], 012h ; c6 46 b8 12 13047 13053 xor al, al ; 30 c0 … … 13065 13071 lea bx, [bp-048h] ; 8d 5e b8 13066 13072 mov ax, word [bp-0024ah] ; 8b 86 b6 fd 13067 call 07e 4ch ; e8 9e f613073 call 07e5bh ; e8 9e f6 13068 13074 test al, al ; 84 c0 13069 je short 087 c4h ; 74 1213075 je short 087d3h ; 74 12 13070 13076 mov ax, 00b92h ; b8 92 0b 13071 13077 push ax ; 50 … … 13074 13080 mov ax, strict word 00007h ; b8 07 00 13075 13081 push ax ; 50 13076 call 01976h ; e8 b59113082 call 01976h ; e8 a6 91 13077 13083 add sp, strict byte 00006h ; 83 c4 06 13078 13084 mov es, [bp-016h] ; 8e 46 ea … … 13080 13086 mov byte [bp-00ch], al ; 88 46 f4 13081 13087 test byte [bp-00248h], 0e0h ; f6 86 b8 fd e0 13082 jne short 087e 0h ; 75 0a13088 jne short 087efh ; 75 0a 13083 13089 test byte [bp-00248h], 01fh ; f6 86 b8 fd 1f 13084 jne short 087e 0h ; 75 0313085 jmp near 083 5ch ; e9 7c fb13090 jne short 087efh ; 75 03 13091 jmp near 0836bh ; e9 7c fb 13086 13092 test byte [bp-00248h], 0e0h ; f6 86 b8 fd e0 13087 je short 087 eah ; 74 0313088 jmp near 087 5fh ; e9 75 ff13093 je short 087f9h ; 74 03 13094 jmp near 0876eh ; e9 75 ff 13089 13095 mov al, byte [bp-00248h] ; 8a 86 b8 fd 13090 13096 and AL, strict byte 01fh ; 24 1f 13091 13097 cmp AL, strict byte 005h ; 3c 05 13092 jne short 08 7f7h ; 75 0313093 jmp near 086 c8h ; e9 d1 fe13094 jmp short 087 e7h ; eb ee13098 jne short 08806h ; 75 03 13099 jmp near 086d7h ; e9 d1 fe 13100 jmp short 087f6h ; eb ee 13095 13101 lea sp, [bp-00ah] ; 8d 66 f6 13096 13102 pop di ; 5f … … 13101 13107 pop bp ; 5d 13102 13108 retn ; c3 13103 _scsi_init: ; 0xf88 03LB 0x6613109 _scsi_init: ; 0xf8812 LB 0x66 13104 13110 push bp ; 55 13105 13111 mov bp, sp ; 89 e5 13106 13112 mov dx, strict word 0000eh ; ba 0e 00 13107 13113 mov ax, strict word 00040h ; b8 40 00 13108 call 0166eh ; e8 5 f8e13114 call 0166eh ; e8 50 8e 13109 13115 mov bx, 00122h ; bb 22 01 13110 13116 mov es, ax ; 8e c0 … … 13117 13123 ; sub ah, ah ; 2a e4 13118 13124 cmp AL, strict byte 055h ; 3c 55 13119 jne short 088 33h ; 75 0c13125 jne short 08842h ; 75 0c 13120 13126 xor al, al ; 30 c0 13121 13127 mov dx, 00433h ; ba 33 04 13122 13128 out DX, AL ; ee 13123 13129 mov ax, 00430h ; b8 30 04 13124 call 083 38h ; e8 05 fb13130 call 08347h ; e8 05 fb 13125 13131 mov AL, strict byte 055h ; b0 55 13126 13132 mov dx, 00436h ; ba 36 04 … … 13130 13136 ; sub ah, ah ; 2a e4 13131 13137 cmp AL, strict byte 055h ; 3c 55 13132 jne short 088 4ch ; 75 0c13138 jne short 0885bh ; 75 0c 13133 13139 xor al, al ; 30 c0 13134 13140 mov dx, 00437h ; ba 37 04 13135 13141 out DX, AL ; ee 13136 13142 mov ax, 00434h ; b8 34 04 13137 call 083 38h ; e8 ec fa13143 call 08347h ; e8 ec fa 13138 13144 mov AL, strict byte 055h ; b0 55 13139 13145 mov dx, 0043ah ; ba 3a 04 … … 13143 13149 ; sub ah, ah ; 2a e4 13144 13150 cmp AL, strict byte 055h ; 3c 55 13145 jne short 088 65h ; 75 0c13151 jne short 08874h ; 75 0c 13146 13152 xor al, al ; 30 c0 13147 13153 mov dx, 0043bh ; ba 3b 04 13148 13154 out DX, AL ; ee 13149 13155 mov ax, 00438h ; b8 38 04 13150 call 083 38h ; e8 d3 fa13156 call 08347h ; e8 d3 fa 13151 13157 mov sp, bp ; 89 ec 13152 13158 pop bp ; 5d 13153 13159 retn ; c3 13154 ahci_ctrl_extract_bits_: ; 0xf88 69LB 0x1c13160 ahci_ctrl_extract_bits_: ; 0xf8878 LB 0x1c 13155 13161 push si ; 56 13156 13162 push bp ; 55 … … 13161 13167 mov cl, byte [bp+006h] ; 8a 4e 06 13162 13168 xor ch, ch ; 30 ed 13163 jcxz 0888 0h ; e3 0613169 jcxz 0888fh ; e3 06 13164 13170 shr dx, 1 ; d1 ea 13165 13171 rcr ax, 1 ; d1 d8 13166 loop 088 7ah ; e2 fa13172 loop 08889h ; e2 fa 13167 13173 pop bp ; 5d 13168 13174 pop si ; 5e 13169 13175 retn 00002h ; c2 02 00 13170 ahci_addr_to_phys_: ; 0xf88 85LB 0x1e13176 ahci_addr_to_phys_: ; 0xf8894 LB 0x1e 13171 13177 push bx ; 53 13172 13178 push cx ; 51 … … 13179 13185 sal ax, 1 ; d1 e0 13180 13186 rcl dx, 1 ; d1 d2 13181 loop 088 93h ; e2 fa13187 loop 088a2h ; e2 fa 13182 13188 xor cx, cx ; 31 c9 13183 13189 add ax, bx ; 01 d8 … … 13187 13193 pop bx ; 5b 13188 13194 retn ; c3 13189 ahci_port_cmd_sync_: ; 0xf88 a3LB 0x15913195 ahci_port_cmd_sync_: ; 0xf88b2 LB 0x159 13190 13196 push bp ; 55 13191 13197 mov bp, sp ; 89 e5 … … 13202 13208 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 13203 13209 cmp AL, strict byte 0ffh ; 3c ff 13204 jne short 088 c6h ; 75 0313205 jmp near 08 9f4h ; e9 2e 0113210 jne short 088d5h ; 75 03 13211 jmp near 08a03h ; e9 2e 01 13206 13212 mov al, byte [es:si+00263h] ; 26 8a 84 63 02 13207 13213 xor ah, ah ; 30 e4 … … 13216 13222 lea ax, [si+00080h] ; 8d 84 80 00 13217 13223 mov dx, cx ; 89 ca 13218 call 088 85h ; e8 92 ff13224 call 08894h ; e8 92 ff 13219 13225 mov es, cx ; 8e c1 13220 13226 mov word [es:si+008h], ax ; 26 89 44 08 … … 13284 13290 xchg dx, ax ; 92 13285 13291 test dh, 040h ; f6 c6 40 13286 jne short 089 86h ; 75 0413292 jne short 08995h ; 75 04 13287 13293 test AL, strict byte 001h ; a8 01 13288 je short 089 8ah ; 74 0413294 je short 08999h ; 74 04 13289 13295 mov AL, strict byte 001h ; b0 01 13290 jmp short 089 8ch ; eb 0213296 jmp short 0899bh ; eb 02 13291 13297 xor al, al ; 30 c0 13292 13298 test al, al ; 84 c0 13293 je short 089 58h ; 74 c813299 je short 08967h ; 74 c8 13294 13300 mov al, byte [bp-008h] ; 8a 46 f8 13295 13301 xor ah, ah ; 30 e4 … … 13348 13354 pop bp ; 5d 13349 13355 retn ; c3 13350 ahci_cmd_data_: ; 0xf8 9fcLB 0x26213356 ahci_cmd_data_: ; 0xf8a0b LB 0x262 13351 13357 push bp ; 55 13352 13358 mov bp, sp ; 89 e5 … … 13373 13379 mov ax, 00080h ; b8 80 00 13374 13380 mov dx, word [bp-00ah] ; 8b 56 f6 13375 call 0a0 c0h ; e8 861613381 call 0a0d0h ; e8 87 16 13376 13382 mov es, [bp-00ah] ; 8e 46 f6 13377 13383 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 13391 13397 mov dx, word [es:si] ; 26 8b 14 13392 13398 mov si, strict word 00008h ; be 08 00 13393 call 0a0 a0h ; e8 221613399 call 0a0b0h ; e8 23 16 13394 13400 mov es, [bp-00ah] ; 8e 46 f6 13395 13401 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 13402 13408 mov dx, word [es:si] ; 26 8b 14 13403 13409 mov si, strict word 00010h ; be 10 00 13404 call 0a0 a0h ; e8 fc1513410 call 0a0b0h ; e8 fd 15 13405 13411 mov es, [bp-00ah] ; 8e 46 f6 13406 13412 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 13414 13420 mov dx, word [es:si] ; 26 8b 14 13415 13421 mov si, strict word 00018h ; be 18 00 13416 call 0a0 a0h ; e8 d01513422 call 0a0b0h ; e8 d1 15 13417 13423 mov es, [bp-00ah] ; 8e 46 f6 13418 13424 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13425 13431 mov dx, word [es:si] ; 26 8b 14 13426 13432 mov si, strict word 00020h ; be 20 00 13427 call 0a0 a0h ; e8 aa1513433 call 0a0b0h ; e8 ab 15 13428 13434 mov es, [bp-00ah] ; 8e 46 f6 13429 13435 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13436 13442 mov dx, word [es:si] ; 26 8b 14 13437 13443 mov si, strict word 00028h ; be 28 00 13438 call 0a0 a0h ; e8 841513444 call 0a0b0h ; e8 85 15 13439 13445 mov es, [bp-00ah] ; 8e 46 f6 13440 13446 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13449 13455 mov bx, word [bp-012h] ; 8b 5e ee 13450 13456 xor cx, cx ; 31 c9 13451 call 0a0 50h ; e8 021513457 call 0a060h ; e8 03 15 13452 13458 push dx ; 52 13453 13459 push ax ; 50 … … 13459 13465 mov ax, 0026ah ; b8 6a 02 13460 13466 mov dx, word [bp-00ah] ; 8b 56 f6 13461 call 09f a5h ; e8 3b 1413467 call 09fb4h ; e8 3b 14 13462 13468 mov es, [bp-00ah] ; 8e 46 f6 13463 13469 mov dx, word [es:di+0027eh] ; 26 8b 95 7e 02 … … 13483 13489 mov ax, word [es:bx+020h] ; 26 8b 47 20 13484 13490 test ax, ax ; 85 c0 13485 je short 08 bfah ; 74 3913491 je short 08c09h ; 74 39 13486 13492 dec ax ; 48 13487 13493 mov es, [bp-00ah] ; 8e 46 f6 … … 13501 13507 mov al, byte [bp-008h] ; 8a 46 f8 13502 13508 cmp AL, strict byte 035h ; 3c 35 13503 jne short 08c 07h ; 75 0613509 jne short 08c16h ; 75 06 13504 13510 mov byte [bp-008h], 040h ; c6 46 f8 40 13505 jmp short 08c 1eh ; eb 1713511 jmp short 08c2dh ; eb 17 13506 13512 cmp AL, strict byte 0a0h ; 3c a0 13507 jne short 08c 1ah ; 75 0f13513 jne short 08c29h ; 75 0f 13508 13514 or byte [bp-008h], 020h ; 80 4e f8 20 13509 13515 les bx, [bp-00eh] ; c4 5e f2 13510 13516 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 13511 jmp short 08c 1eh ; eb 0413517 jmp short 08c2dh ; eb 04 13512 13518 mov byte [bp-008h], 000h ; c6 46 f8 00 13513 13519 or byte [bp-008h], 005h ; 80 4e f8 05 … … 13516 13522 mov ax, word [bp-00eh] ; 8b 46 f2 13517 13523 mov dx, word [bp-00ch] ; 8b 56 f4 13518 call 088 a3h ; e8 73 fc13524 call 088b2h ; e8 73 fc 13519 13525 mov cx, word [bp-00ch] ; 8b 4e f4 13520 13526 mov bx, word [bp-00eh] ; 8b 5e f2 … … 13523 13529 add ax, 0026ah ; 05 6a 02 13524 13530 mov dx, cx ; 89 ca 13525 call 0a0 1ch ; e8 d7 1313531 call 0a02bh ; e8 d7 13 13526 13532 mov es, cx ; 8e c1 13527 13533 mov al, byte [es:bx+003h] ; 26 8a 47 03 13528 13534 test al, al ; 84 c0 13529 je short 08c 54h ; 74 0513535 je short 08c63h ; 74 05 13530 13536 mov ax, strict word 00004h ; b8 04 00 13531 jmp short 08c 56h ; eb 0213537 jmp short 08c65h ; eb 02 13532 13538 xor ah, ah ; 30 e4 13533 13539 lea sp, [bp-006h] ; 8d 66 fa … … 13537 13543 pop bp ; 5d 13538 13544 retn ; c3 13539 ahci_port_deinit_current_: ; 0xf8c 5eLB 0x18313545 ahci_port_deinit_current_: ; 0xf8c6d LB 0x183 13540 13546 push bp ; 55 13541 13547 mov bp, sp ; 89 e5 … … 13552 13558 mov byte [bp-00ah], al ; 88 46 f6 13553 13559 cmp AL, strict byte 0ffh ; 3c ff 13554 je short 08c e1h ; 74 6113560 je short 08cf0h ; 74 61 13555 13561 xor ah, ah ; 30 e4 13556 13562 mov CL, strict byte 007h ; b1 07 … … 13598 13604 xchg dx, ax ; 92 13599 13605 test ax, 0c011h ; a9 11 c0 13600 je short 08c e4h ; 74 0713606 je short 08cf3h ; 74 07 13601 13607 mov AL, strict byte 001h ; b0 01 13602 jmp short 08c e6h ; eb 0513603 jmp near 08d d8h ; e9 f4 0013608 jmp short 08cf5h ; eb 05 13609 jmp near 08de7h ; e9 f4 00 13604 13610 xor al, al ; 30 c0 13605 13611 cmp AL, strict byte 001h ; 3c 01 13606 je short 08c b3h ; 74 c913612 je short 08cc2h ; 74 c9 13607 13613 mov cx, strict word 00020h ; b9 20 00 13608 13614 xor bx, bx ; 31 db 13609 13615 mov ax, di ; 89 f8 13610 13616 mov dx, word [bp-00eh] ; 8b 56 f2 13611 call 0a0 c0h ; e8 c91313617 call 0a0d0h ; e8 ca 13 13612 13618 lea ax, [di+00080h] ; 8d 85 80 00 13613 13619 mov cx, strict word 00040h ; b9 40 00 13614 13620 xor bx, bx ; 31 db 13615 13621 mov dx, word [bp-00eh] ; 8b 56 f2 13616 call 0a0 c0h ; e8 ba1313622 call 0a0d0h ; e8 bb 13 13617 13623 lea ax, [di+00200h] ; 8d 85 00 02 13618 13624 mov cx, strict word 00060h ; b9 60 00 13619 13625 xor bx, bx ; 31 db 13620 13626 mov dx, word [bp-00eh] ; 8b 56 f2 13621 call 0a0 c0h ; e8 ab1313627 call 0a0d0h ; e8 ac 13 13622 13628 mov al, byte [bp-00ah] ; 8a 46 f6 13623 13629 xor ah, ah ; 30 e4 … … 13725 13731 pop bp ; 5d 13726 13732 retn ; c3 13727 ahci_port_init_: ; 0xf8d e1LB 0x25013733 ahci_port_init_: ; 0xf8df0 LB 0x250 13728 13734 push bp ; 55 13729 13735 mov bp, sp ; 89 e5 … … 13735 13741 mov word [bp-00ah], dx ; 89 56 f6 13736 13742 mov byte [bp-008h], bl ; 88 5e f8 13737 call 08c 5eh ; e8 69 fe13743 call 08c6dh ; e8 69 fe 13738 13744 mov al, bl ; 88 d8 13739 13745 xor ah, ah ; 30 e4 … … 13786 13792 xchg dx, ax ; 92 13787 13793 test ax, 0c011h ; a9 11 c0 13788 je short 08e 68h ; 74 0413794 je short 08e77h ; 74 04 13789 13795 mov AL, strict byte 001h ; b0 01 13790 jmp short 08e 6ah ; eb 0213796 jmp short 08e79h ; eb 02 13791 13797 xor al, al ; 30 c0 13792 13798 cmp AL, strict byte 001h ; 3c 01 13793 je short 08e 32h ; 74 c413799 je short 08e41h ; 74 c4 13794 13800 mov cx, strict word 00020h ; b9 20 00 13795 13801 xor bx, bx ; 31 db 13796 13802 mov ax, si ; 89 f0 13797 13803 mov dx, word [bp-00ah] ; 8b 56 f6 13798 call 0a0 c0h ; e8 451213804 call 0a0d0h ; e8 46 12 13799 13805 lea ax, [si+00080h] ; 8d 84 80 00 13800 13806 mov cx, strict word 00040h ; b9 40 00 13801 13807 xor bx, bx ; 31 db 13802 13808 mov dx, word [bp-00ah] ; 8b 56 f6 13803 call 0a0 c0h ; e8 361213809 call 0a0d0h ; e8 37 12 13804 13810 lea di, [si+00200h] ; 8d bc 00 02 13805 13811 mov cx, strict word 00060h ; b9 60 00 … … 13807 13813 mov ax, di ; 89 f8 13808 13814 mov dx, word [bp-00ah] ; 8b 56 f6 13809 call 0a0 c0h ; e8 251213815 call 0a0d0h ; e8 26 12 13810 13816 mov bl, byte [bp-008h] ; 8a 5e f8 13811 13817 xor bh, bh ; 30 ff … … 13826 13832 mov ax, di ; 89 f8 13827 13833 mov dx, word [bp-00ah] ; 8b 56 f6 13828 call 088 85h ; e8 bb f913834 call 08894h ; e8 bb f9 13829 13835 mov es, [bp-00ah] ; 8e 46 f6 13830 13836 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13871 13877 mov ax, si ; 89 f0 13872 13878 mov dx, word [bp-00ah] ; 8b 56 f6 13873 call 088 85h ; e8 4f f913879 call 08894h ; e8 4f f9 13874 13880 mov es, [bp-00ah] ; 8e 46 f6 13875 13881 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13976 13982 pop bp ; 5d 13977 13983 retn ; c3 13978 @ahci_read_sectors: ; 0xf90 31LB 0xaa13984 @ahci_read_sectors: ; 0xf9040 LB 0xaa 13979 13985 push bp ; 55 13980 13986 mov bp, sp ; 89 e5 … … 13987 13993 sub di, strict byte 0000ch ; 83 ef 0c 13988 13994 cmp di, strict byte 00004h ; 83 ff 04 13989 jbe short 090 5ch ; 76 1313995 jbe short 0906bh ; 76 13 13990 13996 push di ; 57 13991 13997 mov ax, 00c62h ; b8 62 0c … … 13995 14001 mov ax, strict word 00007h ; b8 07 00 13996 14002 push ax ; 50 13997 call 01976h ; e8 1d8914003 call 01976h ; e8 0e 89 13998 14004 add sp, strict byte 00008h ; 83 c4 08 13999 14005 xor bx, bx ; 31 db … … 14009 14015 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14010 14016 xor ax, ax ; 31 c0 14011 call 08d e1h ; e8 5a fd14017 call 08df0h ; e8 5a fd 14012 14018 mov bx, strict word 00025h ; bb 25 00 14013 14019 mov ax, si ; 89 f0 14014 14020 mov dx, word [bp+006h] ; 8b 56 06 14015 call 08 9fch ; e8 6a f914021 call 08a0bh ; e8 6a f9 14016 14022 mov bx, ax ; 89 c3 14017 14023 mov es, [bp+006h] ; 8e 46 06 … … 14043 14049 pop bp ; 5d 14044 14050 retn 00004h ; c2 04 00 14045 @ahci_write_sectors: ; 0xf90 dbLB 0x8814051 @ahci_write_sectors: ; 0xf90ea LB 0x88 14046 14052 push bp ; 55 14047 14053 mov bp, sp ; 89 e5 … … 14055 14061 sub bx, strict byte 0000ch ; 83 eb 0c 14056 14062 cmp bx, strict byte 00004h ; 83 fb 04 14057 jbe short 091 09h ; 76 1314063 jbe short 09118h ; 76 13 14058 14064 push bx ; 53 14059 14065 mov ax, 00c93h ; b8 93 0c … … 14063 14069 mov ax, strict word 00007h ; b8 07 00 14064 14070 push ax ; 50 14065 call 01976h ; e8 708814071 call 01976h ; e8 61 88 14066 14072 add sp, strict byte 00008h ; 83 c4 08 14067 14073 xor di, di ; 31 ff … … 14077 14083 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14078 14084 xor ax, ax ; 31 c0 14079 call 08d e1h ; e8 af fc14085 call 08df0h ; e8 af fc 14080 14086 mov bx, strict word 00035h ; bb 35 00 14081 14087 mov ax, si ; 89 f0 14082 14088 mov dx, cx ; 89 ca 14083 call 08 9fch ; e8 c0 f814089 call 08a0bh ; e8 c0 f8 14084 14090 mov dx, ax ; 89 c2 14085 14091 mov es, cx ; 8e c1 … … 14096 14102 pop bp ; 5d 14097 14103 retn 00004h ; c2 04 00 14098 ahci_cmd_packet_: ; 0xf91 63LB 0x18c14104 ahci_cmd_packet_: ; 0xf9172 LB 0x18c 14099 14105 push bp ; 55 14100 14106 mov bp, sp ; 89 e5 … … 14108 14114 mov dx, strict word 0000eh ; ba 0e 00 14109 14115 mov ax, strict word 00040h ; b8 40 00 14110 call 0166eh ; e8 f08414116 call 0166eh ; e8 e1 84 14111 14117 mov si, 00122h ; be 22 01 14112 14118 mov word [bp-008h], ax ; 89 46 f8 14113 14119 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 14114 jne short 091 adh ; 75 2314120 jne short 091bch ; 75 23 14115 14121 mov bx, 00da0h ; bb a0 0d 14116 14122 mov cx, ds ; 8c d9 14117 14123 mov ax, strict word 00004h ; b8 04 00 14118 call 01933h ; e8 9e8714124 call 01933h ; e8 8f 87 14119 14125 mov ax, 00ca6h ; b8 a6 0c 14120 14126 push ax ; 50 … … 14123 14129 mov ax, strict word 00004h ; b8 04 00 14124 14130 push ax ; 50 14125 call 01976h ; e8 d28714131 call 01976h ; e8 c3 87 14126 14132 add sp, strict byte 00006h ; 83 c4 06 14127 14133 mov ax, strict word 00001h ; b8 01 00 14128 jmp near 092 e6h ; e9 39 0114134 jmp near 092f5h ; e9 39 01 14129 14135 test byte [bp+004h], 001h ; f6 46 04 01 14130 jne short 091 a7h ; 75 f414136 jne short 091b6h ; 75 f4 14131 14137 mov bx, word [bp+006h] ; 8b 5e 06 14132 14138 mov di, word [bp+008h] ; 8b 7e 08 … … 14134 14140 sal bx, 1 ; d1 e3 14135 14141 rcl di, 1 ; d1 d7 14136 loop 091 bch ; e2 fa14142 loop 091cbh ; e2 fa 14137 14143 mov es, [bp-008h] ; 8e 46 f8 14138 14144 mov word [es:si], bx ; 26 89 1c … … 14148 14154 mov dx, word [bp+008h] ; 8b 56 08 14149 14155 xor cx, cx ; 31 c9 14150 call 0a0 70h ; e8 7b0e14156 call 0a080h ; e8 7c 0e 14151 14157 mov word [es:si+00eh], ax ; 26 89 44 0e 14152 14158 xor di, di ; 31 ff … … 14166 14172 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14167 14173 xor ax, ax ; 31 c0 14168 call 08d e1h ; e8 af fb14174 call 08df0h ; e8 af fb 14169 14175 mov al, byte [bp-006h] ; 8a 46 fa 14170 14176 xor ah, ah ; 30 e4 … … 14174 14180 mov ax, 000c0h ; b8 c0 00 14175 14181 mov dx, word [bp-00ah] ; 8b 56 f6 14176 call 0a0 d0h ; e8 890e14182 call 0a0e0h ; e8 8a 0e 14177 14183 mov es, [bp-008h] ; 8e 46 f8 14178 14184 mov word [es:si+018h], di ; 26 89 7c 18 … … 14181 14187 mov ax, word [es:si+01eh] ; 26 8b 44 1e 14182 14188 test ax, ax ; 85 c0 14183 je short 092 85h ; 74 2714189 je short 09294h ; 74 27 14184 14190 dec ax ; 48 14185 14191 mov es, [bp-00ah] ; 8e 46 f6 … … 14194 14200 mov ax, si ; 89 f0 14195 14201 mov dx, word [bp-008h] ; 8b 56 f8 14196 call 08 9fch ; e8 6c f714202 call 08a0bh ; e8 6c f7 14197 14203 les bx, [bp-00eh] ; c4 5e f2 14198 14204 mov dx, word [es:bx+004h] ; 26 8b 57 04 … … 14221 14227 mov ax, word [es:bx+006h] ; 26 8b 47 06 14222 14228 or ax, word [es:bx+004h] ; 26 0b 47 04 14223 jne short 092 e4h ; 75 0514229 jne short 092f3h ; 75 05 14224 14230 mov ax, strict word 00004h ; b8 04 00 14225 jmp short 092 e6h ; eb 0214231 jmp short 092f5h ; eb 02 14226 14232 xor ax, ax ; 31 c0 14227 14233 lea sp, [bp-004h] ; 8d 66 fc … … 14230 14236 pop bp ; 5d 14231 14237 retn 0000ch ; c2 0c 00 14232 ahci_port_detect_device_: ; 0xf92 efLB 0x4fe14238 ahci_port_detect_device_: ; 0xf92fe LB 0x4fe 14233 14239 push bp ; 55 14234 14240 mov bp, sp ; 89 e5 … … 14246 14252 mov bx, word [bp-020h] ; 8b 5e e0 14247 14253 mov ax, si ; 89 f0 14248 call 08d e1h ; e8 ce fa14254 call 08df0h ; e8 ce fa 14249 14255 mov dx, strict word 0000eh ; ba 0e 00 14250 14256 mov ax, strict word 00040h ; b8 40 00 14251 call 0166eh ; e8 528314257 call 0166eh ; e8 43 83 14252 14258 mov word [bp-01ah], 00122h ; c7 46 e6 22 01 14253 14259 mov word [bp-00eh], ax ; 89 46 f2 … … 14321 14327 mov bx, strict word 0000fh ; bb 0f 00 14322 14328 xor cx, cx ; 31 c9 14323 call 088 69h ; e8 9f f414329 call 08878h ; e8 9f f4 14324 14330 test ax, ax ; 85 c0 14325 jne short 093 d1h ; 75 0314326 jmp near 097 e5h ; e9 14 0414331 jne short 093e0h ; 75 03 14332 jmp near 097f4h ; e9 14 04 14327 14333 mov al, byte [bp-008h] ; 8a 46 f8 14328 14334 xor ah, ah ; 30 e4 … … 14356 14362 xor cx, cx ; 31 c9 14357 14363 mov ax, di ; 89 f8 14358 call 088 69h ; e8 4d f414364 call 08878h ; e8 4d f4 14359 14365 cmp ax, strict word 00001h ; 3d 01 00 14360 je short 093 d1h ; 74 b014366 je short 093e0h ; 74 b0 14361 14367 xor ax, ax ; 31 c0 14362 14368 push ax ; 50 … … 14365 14371 mov ax, di ; 89 f8 14366 14372 mov dx, word [bp-01ch] ; 8b 56 e4 14367 call 088 69h ; e8 38 f414373 call 08878h ; e8 38 f4 14368 14374 cmp ax, strict word 00003h ; 3d 03 00 14369 jne short 093 ceh ; 75 9814375 jne short 093ddh ; 75 98 14370 14376 mov ax, word [bp-016h] ; 8b 46 ea 14371 14377 add ax, 00130h ; 05 30 01 … … 14395 14401 mov byte [bp-00ch], al ; 88 46 f4 14396 14402 cmp AL, strict byte 004h ; 3c 04 14397 jc short 0948 0h ; 72 0314398 jmp near 097 e5h ; e9 65 0314403 jc short 0948fh ; 72 03 14404 jmp near 097f4h ; e9 65 03 14399 14405 mov ax, word [bp-016h] ; 8b 46 ea 14400 14406 add ax, 00118h ; 05 18 01 … … 14448 14454 add cl, 00ch ; 80 c1 0c 14449 14455 test dx, dx ; 85 d2 14450 jne short 095 4bh ; 75 5514456 jne short 0955ah ; 75 55 14451 14457 cmp bx, 00101h ; 81 fb 01 01 14452 jne short 095 4bh ; 75 4f14458 jne short 0955ah ; 75 4f 14453 14459 mov es, [bp-00eh] ; 8e 46 f2 14454 14460 mov bx, word [bp-01ah] ; 8b 5e e6 … … 14465 14471 mov ax, word [bp-01ah] ; 8b 46 e6 14466 14472 mov dx, es ; 8c c2 14467 call 08 9fch ; e8 c0 f414473 call 08a0bh ; e8 c0 f4 14468 14474 mov byte [bp-00ah], cl ; 88 4e f6 14469 14475 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14470 je short 095 4eh ; 74 0814476 je short 0955dh ; 74 08 14471 14477 mov ax, strict word 00001h ; b8 01 00 14472 jmp short 0955 0h ; eb 0514473 jmp near 0972 0h ; e9 d2 0114478 jmp short 0955fh ; eb 05 14479 jmp near 0972fh ; e9 d2 01 14474 14480 xor ax, ax ; 31 c0 14475 14481 mov cl, al ; 88 c1 … … 14487 14493 mov word [bp-012h], ax ; 89 46 ee 14488 14494 cmp di, 00fffh ; 81 ff ff 0f 14489 jne short 095 9fh ; 75 1f14495 jne short 095aeh ; 75 1f 14490 14496 cmp word [bp-014h], strict byte 0ffffh ; 83 7e ec ff 14491 jne short 095 9fh ; 75 1914497 jne short 095aeh ; 75 19 14492 14498 mov ax, word [bp-0015ch] ; 8b 86 a4 fe 14493 14499 mov word [bp-012h], ax ; 89 46 ee … … 14529 14535 mov al, byte [bp-00ch] ; 8a 46 f4 14530 14536 cmp AL, strict byte 001h ; 3c 01 14531 jc short 096 1ch ; 72 0c14532 jbe short 096 24h ; 76 1214537 jc short 0962bh ; 72 0c 14538 jbe short 09633h ; 76 12 14533 14539 cmp AL, strict byte 003h ; 3c 03 14534 je short 096 2ch ; 74 1614540 je short 0963bh ; 74 16 14535 14541 cmp AL, strict byte 002h ; 3c 02 14536 je short 096 28h ; 74 0e14537 jmp short 096 6fh ; eb 5314542 je short 09637h ; 74 0e 14543 jmp short 0967eh ; eb 53 14538 14544 test al, al ; 84 c0 14539 jne short 096 6fh ; 75 4f14545 jne short 0967eh ; 75 4f 14540 14546 mov DL, strict byte 040h ; b2 40 14541 jmp short 096 2eh ; eb 0a14547 jmp short 0963dh ; eb 0a 14542 14548 mov DL, strict byte 048h ; b2 48 14543 jmp short 096 2eh ; eb 0614549 jmp short 0963dh ; eb 06 14544 14550 mov DL, strict byte 050h ; b2 50 14545 jmp short 096 2eh ; eb 0214551 jmp short 0963dh ; eb 02 14546 14552 mov DL, strict byte 058h ; b2 58 14547 14553 mov bl, dl ; 88 d3 … … 14549 14555 xor bh, bh ; 30 ff 14550 14556 mov ax, bx ; 89 d8 14551 call 016aeh ; e8 748014557 call 016aeh ; e8 65 80 14552 14558 test al, al ; 84 c0 14553 je short 096 6fh ; 74 3114559 je short 0967eh ; 74 31 14554 14560 mov al, dl ; 88 d0 14555 14561 db 0feh, 0c0h 14556 14562 ; inc al ; fe c0 14557 14563 xor ah, ah ; 30 e4 14558 call 016aeh ; e8 678014564 call 016aeh ; e8 58 80 14559 14565 mov ch, al ; 88 c5 14560 14566 mov al, dl ; 88 d0 14561 14567 xor ah, ah ; 30 e4 14562 call 016aeh ; e8 5e8014568 call 016aeh ; e8 4f 80 14563 14569 mov ah, ch ; 88 ec 14564 14570 mov word [bp-028h], ax ; 89 46 d8 … … 14566 14572 add AL, strict byte 002h ; 04 02 14567 14573 xor ah, ah ; 30 e4 14568 call 016aeh ; e8 508014574 call 016aeh ; e8 41 80 14569 14575 xor ah, ah ; 30 e4 14570 14576 mov word [bp-02ah], ax ; 89 46 d6 14571 14577 mov ax, bx ; 89 d8 14572 call 016aeh ; e8 468014578 call 016aeh ; e8 37 80 14573 14579 xor ah, ah ; 30 e4 14574 14580 mov word [bp-026h], ax ; 89 46 da 14575 jmp short 096 81h ; eb 1214581 jmp short 09690h ; eb 12 14576 14582 push word [bp-012h] ; ff 76 ee 14577 14583 push word [bp-01eh] ; ff 76 e2 … … 14580 14586 mov dx, ss ; 8c d2 14581 14587 lea ax, [bp-02ah] ; 8d 46 d6 14582 call 05b4fh ; e8 cec414588 call 05b4fh ; e8 bf c4 14583 14589 mov bx, 00da0h ; bb a0 0d 14584 14590 mov cx, ds ; 8c d9 14585 14591 mov ax, strict word 00004h ; b8 04 00 14586 call 01933h ; e8 a78214592 call 01933h ; e8 98 82 14587 14593 push word [bp-012h] ; ff 76 ee 14588 14594 push word [bp-01eh] ; ff 76 e2 … … 14607 14613 mov ax, strict word 00004h ; b8 04 00 14608 14614 push ax ; 50 14609 call 01976h ; e8 b68214615 call 01976h ; e8 a7 82 14610 14616 add sp, strict byte 0001ch ; 83 c4 1c 14611 14617 mov al, byte [bp-00ah] ; 8a 46 f6 … … 14639 14645 mov dx, strict word 00075h ; ba 75 00 14640 14646 mov ax, strict word 00040h ; b8 40 00 14641 call 01652h ; e8 447f14647 call 01652h ; e8 35 7f 14642 14648 mov bl, al ; 88 c3 14643 14649 db 0feh, 0c3h … … 14646 14652 mov dx, strict word 00075h ; ba 75 00 14647 14653 mov ax, strict word 00040h ; b8 40 00 14648 call 01660h ; e8 437f14649 jmp near 097 d4h ; e9 b4 0014654 call 01660h ; e8 34 7f 14655 jmp near 097e3h ; e9 b4 00 14650 14656 cmp dx, 0eb14h ; 81 fa 14 eb 14651 jne short 097 7bh ; 75 5514657 jne short 0978ah ; 75 55 14652 14658 cmp bx, 00101h ; 81 fb 01 01 14653 jne short 097 7bh ; 75 4f14659 jne short 0978ah ; 75 4f 14654 14660 mov es, [bp-00eh] ; 8e 46 f2 14655 14661 mov bx, word [bp-01ah] ; 8b 5e e6 … … 14666 14672 mov ax, word [bp-01ah] ; 8b 46 e6 14667 14673 mov dx, es ; 8c c2 14668 call 08 9fch ; e8 90 f214674 call 08a0bh ; e8 90 f2 14669 14675 mov byte [bp-00ah], cl ; 88 4e f6 14670 14676 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14671 je short 097 7dh ; 74 0714677 je short 0978ch ; 74 07 14672 14678 mov cx, strict word 00001h ; b9 01 00 14673 jmp short 097 7fh ; eb 0414674 jmp short 097 d4h ; eb 5714679 jmp short 0978eh ; eb 04 14680 jmp short 097e3h ; eb 57 14675 14681 xor cx, cx ; 31 c9 14676 14682 mov bl, byte [bp-00ch] ; 8a 5e f4 … … 14712 14718 pop bp ; 5d 14713 14719 retn ; c3 14714 ahci_mem_alloc_: ; 0xf97 edLB 0x4314720 ahci_mem_alloc_: ; 0xf97fc LB 0x43 14715 14721 push bp ; 55 14716 14722 mov bp, sp ; 89 e5 … … 14722 14728 mov dx, 00413h ; ba 13 04 14723 14729 xor ax, ax ; 31 c0 14724 call 0166eh ; e8 717e14730 call 0166eh ; e8 62 7e 14725 14731 test ax, ax ; 85 c0 14726 je short 098 26h ; 74 2514732 je short 09835h ; 74 25 14727 14733 dec ax ; 48 14728 14734 mov bx, ax ; 89 c3 … … 14731 14737 sal ax, 1 ; d1 e0 14732 14738 rcl dx, 1 ; d1 d2 14733 loop 098 09h ; e2 fa14739 loop 09818h ; e2 fa 14734 14740 mov si, ax ; 89 c6 14735 14741 mov di, dx ; 89 d7 … … 14737 14743 shr di, 1 ; d1 ef 14738 14744 rcr si, 1 ; d1 de 14739 loop 098 16h ; e2 fa14745 loop 09825h ; e2 fa 14740 14746 mov dx, 00413h ; ba 13 04 14741 14747 xor ax, ax ; 31 c0 14742 call 0167ch ; e8 587e14748 call 0167ch ; e8 49 7e 14743 14749 mov ax, si ; 89 f0 14744 14750 lea sp, [bp-00ah] ; 8d 66 f6 … … 14750 14756 pop bp ; 5d 14751 14757 retn ; c3 14752 ahci_hba_init_: ; 0xf983 0LB 0x16e14758 ahci_hba_init_: ; 0xf983f LB 0x16e 14753 14759 push bp ; 55 14754 14760 mov bp, sp ; 89 e5 … … 14762 14768 mov dx, strict word 0000eh ; ba 0e 00 14763 14769 mov ax, strict word 00040h ; b8 40 00 14764 call 0166eh ; e8 287e14770 call 0166eh ; e8 19 7e 14765 14771 mov bx, 00122h ; bb 22 01 14766 14772 mov di, ax ; 89 c7 … … 14779 14785 shr eax, 010h ; 66 c1 e8 10 14780 14786 xchg dx, ax ; 92 14781 call 097 edh ; e8 83 ff14787 call 097fch ; e8 83 ff 14782 14788 mov word [bp-010h], ax ; 89 46 f0 14783 14789 test ax, ax ; 85 c0 14784 jne short 098 74h ; 75 0314785 jmp near 099 7dh ; e9 09 0114790 jne short 09883h ; 75 03 14791 jmp near 0998ch ; e9 09 01 14786 14792 mov ax, word [bp-010h] ; 8b 46 f0 14787 14793 mov es, di ; 8e c7 … … 14833 14839 xchg dx, ax ; 92 14834 14840 test AL, strict byte 001h ; a8 01 14835 jne short 098 ceh ; 75 de14841 jne short 098ddh ; 75 de 14836 14842 xor ax, ax ; 31 c0 14837 14843 xor cx, cx ; 31 c9 … … 14852 14858 mov bx, strict word 0001fh ; bb 1f 00 14853 14859 xor cx, cx ; 31 c9 14854 call 088 69h ; e8 54 ef14860 call 08878h ; e8 54 ef 14855 14861 db 0feh, 0c0h 14856 14862 ; inc al ; fe c0 14857 14863 mov byte [bp-00eh], al ; 88 46 f2 14858 14864 mov byte [bp-00ch], 000h ; c6 46 f4 00 14859 jmp short 099 41h ; eb 2114865 jmp short 09950h ; eb 21 14860 14866 xor al, al ; 30 c0 14861 14867 test al, al ; 84 c0 14862 je short 099 38h ; 74 1214868 je short 09947h ; 74 12 14863 14869 mov bl, byte [bp-00ch] ; 8a 5e f4 14864 14870 xor bh, bh ; 30 ff 14865 14871 xor ax, ax ; 31 c0 14866 14872 mov dx, word [bp-010h] ; 8b 56 f0 14867 call 092 efh ; e8 bc f914873 call 092feh ; e8 bc f9 14868 14874 dec byte [bp-00eh] ; fe 4e f2 14869 je short 099 7bh ; 74 4314875 je short 0998ah ; 74 43 14870 14876 inc byte [bp-00ch] ; fe 46 f4 14871 14877 cmp byte [bp-00ch], 020h ; 80 7e f4 20 14872 jnc short 099 7bh ; 73 3a14878 jnc short 0998ah ; 73 3a 14873 14879 mov cl, byte [bp-00ch] ; 8a 4e f4 14874 14880 xor ch, ch ; 30 ed 14875 14881 mov bx, strict word 00001h ; bb 01 00 14876 14882 xor di, di ; 31 ff 14877 jcxz 099 53h ; e3 0614883 jcxz 09962h ; e3 06 14878 14884 sal bx, 1 ; d1 e3 14879 14885 rcl di, 1 ; d1 d7 14880 loop 099 4dh ; e2 fa14886 loop 0995ch ; e2 fa 14881 14887 mov ax, strict word 0000ch ; b8 0c 00 14882 14888 xor cx, cx ; 31 c9 … … 14894 14900 xchg dx, ax ; 92 14895 14901 test dx, di ; 85 fa 14896 jne short 099 77h ; 75 0414902 jne short 09986h ; 75 04 14897 14903 test ax, bx ; 85 d8 14898 je short 0992 0h ; 74 a914904 je short 0992fh ; 74 a9 14899 14905 mov AL, strict byte 001h ; b0 01 14900 jmp short 099 22h ; eb a714906 jmp short 09931h ; eb a7 14901 14907 xor ax, ax ; 31 c0 14902 14908 lea sp, [bp-00ah] ; 8d 66 f6 … … 14908 14914 pop bp ; 5d 14909 14915 retn ; c3 14910 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 83h, 09ah, 061h, 09ah, 067h, 09ah, 06dh, 09ah, 073h14911 db 09ah, 0 79h, 09ah, 07fh, 09ah, 083h, 09ah14912 _ahci_init: ; 0xf99 9eLB 0x11a14916 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 092h, 09ah, 070h, 09ah, 076h, 09ah, 07ch, 09ah, 082h 14917 db 09ah, 088h, 09ah, 08eh, 09ah, 092h, 09ah 14918 _ahci_init: ; 0xf99ad LB 0x11a 14913 14919 push bp ; 55 14914 14920 mov bp, sp ; 89 e5 … … 14917 14923 mov ax, 00601h ; b8 01 06 14918 14924 mov dx, strict word 00001h ; ba 01 00 14919 call 09e d7h ; e8 29 0514925 call 09ee6h ; e8 29 05 14920 14926 mov dx, ax ; 89 c2 14921 14927 cmp ax, strict word 0ffffh ; 3d ff ff 14922 je short 09 9feh ; 74 4914928 je short 09a0dh ; 74 49 14923 14929 mov al, ah ; 88 e0 14924 14930 mov byte [bp-006h], ah ; 88 66 fa … … 14927 14933 xor ah, ah ; 30 e4 14928 14934 mov bx, strict word 00034h ; bb 34 00 14929 call 09e dfh ; e8 18 0514935 call 09eeeh ; e8 18 05 14930 14936 mov cl, al ; 88 c1 14931 14937 test cl, cl ; 84 c9 14932 je short 09a 01h ; 74 3414938 je short 09a10h ; 74 34 14933 14939 mov bl, cl ; 88 cb 14934 14940 xor bh, bh ; 30 ff … … 14941 14947 mov dx, word [bp-00ch] ; 8b 56 f4 14942 14948 mov ax, word [bp-010h] ; 8b 46 f0 14943 call 09e dfh ; e8 f3 0414949 call 09eeeh ; e8 f3 04 14944 14950 cmp AL, strict byte 012h ; 3c 12 14945 je short 09a 01h ; 74 1114951 je short 09a10h ; 74 11 14946 14952 mov bl, cl ; 88 cb 14947 14953 db 0feh, 0c3h … … 14950 14956 mov dx, word [bp-00ch] ; 8b 56 f4 14951 14957 mov ax, word [bp-010h] ; 8b 46 f0 14952 jmp short 099 c4h ; eb c614953 jmp near 09a b2h ; e9 b1 0014958 jmp short 099d3h ; eb c6 14959 jmp near 09ac1h ; e9 b1 00 14954 14960 test cl, cl ; 84 c9 14955 je short 09 9feh ; 74 f914961 je short 09a0dh ; 74 f9 14956 14962 add cl, 002h ; 80 c1 02 14957 14963 mov bl, cl ; 88 cb … … 14965 14971 mov dx, word [bp-00eh] ; 8b 56 f2 14966 14972 mov ax, word [bp-00ah] ; 8b 46 f6 14967 call 09e dfh ; e8 b8 0414973 call 09eeeh ; e8 b8 04 14968 14974 cmp AL, strict byte 010h ; 3c 10 14969 jne short 09 9feh ; 75 d314975 jne short 09a0dh ; 75 d3 14970 14976 mov byte [bp-004h], 000h ; c6 46 fc 00 14971 14977 mov bl, cl ; 88 cb … … 14974 14980 mov dx, word [bp-00eh] ; 8b 56 f2 14975 14981 mov ax, word [bp-00ah] ; 8b 46 f6 14976 call 09f 06h ; e8 c7 0414982 call 09f15h ; e8 c7 04 14977 14983 mov dx, ax ; 89 c2 14978 14984 and ax, strict word 0000fh ; 25 0f 00 14979 14985 sub ax, strict word 00004h ; 2d 04 00 14980 14986 cmp ax, strict word 0000bh ; 3d 0b 00 14981 jnbe short 09a 83h ; 77 3714987 jnbe short 09a92h ; 77 37 14982 14988 push CS ; 0e 14983 14989 pop ES ; 07 14984 14990 mov cx, strict word 00008h ; b9 08 00 14985 mov di, 099 87h ; bf 879914991 mov di, 09996h ; bf 96 99 14986 14992 repne scasb ; f2 ae 14987 14993 sal cx, 1 ; d1 e1 14988 14994 mov di, cx ; 89 cf 14989 mov ax, word [cs:di-066 72h] ; 2e 8b 85 8e9914995 mov ax, word [cs:di-06663h] ; 2e 8b 85 9d 99 14990 14996 jmp ax ; ff e0 14991 14997 mov byte [bp-004h], 010h ; c6 46 fc 10 14992 jmp short 09a 83h ; eb 1c14998 jmp short 09a92h ; eb 1c 14993 14999 mov byte [bp-004h], 014h ; c6 46 fc 14 14994 jmp short 09a 83h ; eb 1615000 jmp short 09a92h ; eb 16 14995 15001 mov byte [bp-004h], 018h ; c6 46 fc 18 14996 jmp short 09a 83h ; eb 1015002 jmp short 09a92h ; eb 10 14997 15003 mov byte [bp-004h], 01ch ; c6 46 fc 1c 14998 jmp short 09a 83h ; eb 0a15004 jmp short 09a92h ; eb 0a 14999 15005 mov byte [bp-004h], 020h ; c6 46 fc 20 15000 jmp short 09a 83h ; eb 0415006 jmp short 09a92h ; eb 04 15001 15007 mov byte [bp-004h], 024h ; c6 46 fc 24 15002 15008 mov CL, strict byte 004h ; b1 04 … … 15008 15014 mov al, byte [bp-004h] ; 8a 46 fc 15009 15015 test al, al ; 84 c0 15010 je short 09a b2h ; 74 1c15016 je short 09ac1h ; 74 1c 15011 15017 mov bl, al ; 88 c3 15012 15018 xor bh, bh ; 30 ff … … 15015 15021 mov al, byte [bp-006h] ; 8a 46 fa 15016 15022 xor ah, ah ; 30 e4 15017 call 09f 2bh ; e8 84 0415023 call 09f3ah ; e8 84 04 15018 15024 test AL, strict byte 001h ; a8 01 15019 je short 09a b2h ; 74 0715025 je short 09ac1h ; 74 07 15020 15026 and AL, strict byte 0f0h ; 24 f0 15021 15027 add ax, cx ; 01 c8 15022 call 0983 0h ; e8 7e fd15028 call 0983fh ; e8 7e fd 15023 15029 lea sp, [bp-002h] ; 8d 66 fe 15024 15030 pop di ; 5f 15025 15031 pop bp ; 5d 15026 15032 retn ; c3 15027 apm_out_str_: ; 0xf9a b8LB 0x3915033 apm_out_str_: ; 0xf9ac7 LB 0x39 15028 15034 push bp ; 55 15029 15035 mov bp, sp ; 89 e5 … … 15031 15037 mov bx, ax ; 89 c3 15032 15038 cmp byte [bx], 000h ; 80 3f 00 15033 je short 09a cdh ; 74 0a15039 je short 09adch ; 74 0a 15034 15040 mov al, byte [bx] ; 8a 07 15035 15041 out DX, AL ; ee … … 15038 15044 db 00ah, 0c0h 15039 15045 ; or al, al ; 0a c0 15040 jne short 09a c5h ; 75 f815046 jne short 09ad4h ; 75 f8 15041 15047 lea sp, [bp-002h] ; 8d 66 fe 15042 15048 pop bx ; 5b 15043 15049 pop bp ; 5d 15044 15050 retn ; c3 15045 a dc bl, byte [bp+di-06463h] ; 12 9b 9d9b15046 and AL, strict byte 09bh ; 249b15047 aas ; 3f15051 and word [bp+di-06454h], bx ; 21 9b ac 9b 15052 xor bx, word [bp+di-064b2h] ; 33 9b 4e 9b 15053 lodsb ; ac 15048 15054 wait ; 9b 15049 popfw ; 9d 15055 jns short 09a89h ; 79 9b 15056 lodsb ; ac 15050 15057 wait ; 9b 15051 push strict byte 0ff9bh ; 6a 9b 15052 popfw ; 9d 15058 mov DL, strict byte 09bh ; b2 9b 15059 jle short 09a8fh ; 7e 9b 15060 jle short 09a91h ; 7e 9b 15061 jle short 09a93h ; 7e 9b 15062 db 0f1h 15053 15063 wait ; 9b 15054 mov word [06f9bh], ax ; a3 9b 6f 15064 jle short 09a97h ; 7e 9b 15065 jle short 09a99h ; 7e 9b 15066 db 0eah 15055 15067 wait ; 9b 15056 outsw ; 6f 15057 wait ; 9b 15058 outsw ; 6f 15059 wait ; 9b 15060 loop 09a86h ; e2 9b 15061 outsw ; 6f 15062 wait ; 9b 15063 outsw ; 6f 15064 wait ; 9b 15065 db 0dbh 15066 wait ; 9b 15067 _apm_function: ; 0xf9af1 LB 0xf6 15068 _apm_function: ; 0xf9b00 LB 0xf6 15068 15069 push bp ; 55 15069 15070 mov bp, sp ; 89 e5 … … 15073 15074 xor ah, ah ; 30 e4 15074 15075 cmp ax, strict word 0000eh ; 3d 0e 00 15075 jnbe short 09b 6fh ; 77 6c15076 jnbe short 09b7eh ; 77 6c 15076 15077 mov bx, ax ; 89 c3 15077 15078 sal bx, 1 ; d1 e3 15078 15079 mov dx, word [bp+018h] ; 8b 56 18 15079 15080 or dl, 001h ; 80 ca 01 15080 jmp word [cs:bx-065 2dh] ; 2e ff a7 d39a15081 jmp word [cs:bx-0651eh] ; 2e ff a7 e2 9a 15081 15082 mov word [bp+012h], 00102h ; c7 46 12 02 01 15082 15083 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 15083 15084 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 15084 jmp near 09b 9dh ; e9 79 0015085 jmp near 09bach ; e9 79 00 15085 15086 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 15086 mov word [bp+00ch], 0a1 44h ; c7 46 0c 44 a115087 mov word [bp+00ch], 0a154h ; c7 46 0c 54 a1 15087 15088 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 15088 15089 mov ax, strict word 0fff0h ; b8 f0 ff 15089 15090 mov word [bp+006h], ax ; 89 46 06 15090 15091 mov word [bp+004h], ax ; 89 46 04 15091 jmp near 09b 9dh ; e9 5e 0015092 jmp near 09bach ; e9 5e 00 15092 15093 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 15093 15094 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 15102 15103 mov si, ax ; 89 c6 15103 15104 sal esi, 010h ; 66 c1 e6 10 15104 jmp near 09b 9dh ; e9 33 0015105 jmp near 09bach ; e9 33 00 15105 15106 sti ; fb 15106 15107 hlt ; f4 15107 jmp near 09b 9dh ; e9 2e 0015108 jmp near 09bach ; e9 2e 00 15108 15109 mov bx, 00da0h ; bb a0 0d 15109 15110 mov cx, ds ; 8c d9 15110 15111 mov ax, strict word 00004h ; b8 04 00 15111 call 01933h ; e8 b97d15112 call 01933h ; e8 aa 7d 15112 15113 push word [bp+00ch] ; ff 76 0c 15113 15114 push word [bp+012h] ; ff 76 12 … … 15116 15117 mov ax, strict word 00004h ; b8 04 00 15117 15118 push ax ; 50 15118 call 01976h ; e8 eb7d15119 call 01976h ; e8 dc 7d 15119 15120 add sp, strict byte 00008h ; 83 c4 08 15120 15121 mov ax, word [bp+012h] ; 8b 46 12 … … 15128 15129 retn ; c3 15129 15130 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 15130 je short 09b c8h ; 74 1f15131 je short 09bd7h ; 74 1f 15131 15132 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 15132 je short 09bc 0h ; 74 1115133 je short 09bcfh ; 74 11 15133 15134 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 15134 jne short 09bd 0h ; 75 1b15135 mov dx, 0 8900h ; ba 00 8915135 jne short 09bdfh ; 75 1b 15136 mov dx, 0040fh ; ba 0f 04 15136 15137 mov ax, 00d10h ; b8 10 0d 15137 call 09a b8h ; e8 fa fe15138 jmp short 09b 9dh ; eb dd15139 mov dx, 0 8900h ; ba 00 8915138 call 09ac7h ; e8 fa fe 15139 jmp short 09bach ; eb dd 15140 mov dx, 0040fh ; ba 0f 04 15140 15141 mov ax, 00d18h ; b8 18 0d 15141 jmp short 09b bbh ; eb f315142 mov dx, 0 8900h ; ba 00 8915142 jmp short 09bcah ; eb f3 15143 mov dx, 0040fh ; ba 0f 04 15143 15144 mov ax, 00d20h ; b8 20 0d 15144 jmp short 09b bbh ; eb eb15145 jmp short 09bcah ; eb eb 15145 15146 or ah, 00ah ; 80 cc 0a 15146 15147 mov word [bp+012h], ax ; 89 46 12 15147 15148 mov word [bp+018h], dx ; 89 56 18 15148 jmp short 09b 9dh ; eb c215149 jmp short 09bach ; eb c2 15149 15150 mov word [bp+012h], 00102h ; c7 46 12 02 01 15150 jmp short 09b 9dh ; eb bb15151 jmp short 09bach ; eb bb 15151 15152 or ah, 080h ; 80 cc 80 15152 jmp short 09b d3h ; eb ec15153 pci16_select_reg_: ; 0xf9b e7LB 0x2415153 jmp short 09be2h ; eb ec 15154 pci16_select_reg_: ; 0xf9bf6 LB 0x24 15154 15155 push bp ; 55 15155 15156 mov bp, sp ; 89 e5 … … 15168 15169 pop bp ; 5d 15169 15170 retn ; c3 15170 pci16_find_device_: ; 0xf9c 0bLB 0xf715171 pci16_find_device_: ; 0xf9c1a LB 0xf7 15171 15172 push bp ; 55 15172 15173 mov bp, sp ; 89 e5 … … 15182 15183 mov byte [bp-006h], 000h ; c6 46 fa 00 15183 15184 test bl, 007h ; f6 c3 07 15184 jne short 09c 53h ; 75 2d15185 jne short 09c62h ; 75 2d 15185 15186 mov dx, strict word 0000eh ; ba 0e 00 15186 15187 mov ax, bx ; 89 d8 15187 call 09b e7h ; e8 b9 ff15188 call 09bf6h ; e8 b9 ff 15188 15189 mov dx, 00cfeh ; ba fe 0c 15189 15190 in AL, DX ; ec … … 15192 15193 mov byte [bp-008h], al ; 88 46 f8 15193 15194 cmp AL, strict byte 0ffh ; 3c ff 15194 jne short 09c 41h ; 75 0615195 jne short 09c50h ; 75 06 15195 15196 add bx, strict byte 00008h ; 83 c3 08 15196 jmp near 09c d3h ; e9 92 0015197 jmp near 09ce2h ; e9 92 00 15197 15198 test byte [bp-008h], 080h ; f6 46 f8 80 15198 je short 09c 4eh ; 74 0715199 je short 09c5dh ; 74 07 15199 15200 mov word [bp-00eh], strict word 00001h ; c7 46 f2 01 00 15200 jmp short 09c 53h ; eb 0515201 jmp short 09c62h ; eb 05 15201 15202 mov word [bp-00eh], strict word 00008h ; c7 46 f2 08 00 15202 15203 mov al, byte [bp-008h] ; 8a 46 f8 15203 15204 and AL, strict byte 007h ; 24 07 15204 15205 cmp AL, strict byte 001h ; 3c 01 15205 jne short 09c 7ah ; 75 1e15206 jne short 09c89h ; 75 1e 15206 15207 mov al, bh ; 88 f8 15207 15208 xor ah, ah ; 30 e4 15208 15209 test ax, ax ; 85 c0 15209 jne short 09c 7ah ; 75 1615210 jne short 09c89h ; 75 16 15210 15211 mov dx, strict word 0001ah ; ba 1a 00 15211 15212 mov ax, bx ; 89 d8 15212 call 09b e7h ; e8 7b ff15213 call 09bf6h ; e8 7b ff 15213 15214 mov dx, 00cfeh ; ba fe 0c 15214 15215 in AL, DX ; ec … … 15216 15217 ; sub ah, ah ; 2a e4 15217 15218 cmp al, byte [bp-006h] ; 3a 46 fa 15218 jbe short 09c 7ah ; 76 0315219 jbe short 09c89h ; 76 03 15219 15220 mov byte [bp-006h], al ; 88 46 fa 15220 15221 test di, di ; 85 ff 15221 je short 09c 83h ; 74 0515222 je short 09c92h ; 74 05 15222 15223 mov dx, strict word 00008h ; ba 08 00 15223 jmp short 09c 85h ; eb 0215224 jmp short 09c94h ; eb 02 15224 15225 xor dx, dx ; 31 d2 15225 15226 mov ax, bx ; 89 d8 15226 call 09b e7h ; e8 5d ff15227 call 09bf6h ; e8 5d ff 15227 15228 mov dx, 00cfch ; ba fc 0c 15228 15229 in eax, DX ; 66 ed … … 15235 15236 mov word [bp-00ch], strict word 00000h ; c7 46 f4 00 00 15236 15237 test di, di ; 85 ff 15237 je short 09c b4h ; 74 0f15238 je short 09cc3h ; 74 0f 15238 15239 mov cx, strict word 00008h ; b9 08 00 15239 15240 shr dx, 1 ; d1 ea 15240 15241 rcr ax, 1 ; d1 d8 15241 loop 09c a8h ; e2 fa15242 loop 09cb7h ; e2 fa 15242 15243 mov word [bp-00ah], ax ; 89 46 f6 15243 15244 mov word [bp-010h], dx ; 89 56 f0 15244 15245 mov ax, word [bp-010h] ; 8b 46 f0 15245 15246 cmp ax, word [bp-014h] ; 3b 46 ec 15246 jne short 09c c4h ; 75 0815247 jne short 09cd3h ; 75 08 15247 15248 mov ax, word [bp-00ah] ; 8b 46 f6 15248 15249 cmp ax, word [bp-012h] ; 3b 46 ee 15249 je short 09c cah ; 74 0615250 je short 09cd9h ; 74 06 15250 15251 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 15251 je short 09cd 0h ; 74 0615252 je short 09cdfh ; 74 06 15252 15253 dec si ; 4e 15253 15254 cmp si, strict byte 0ffffh ; 83 fe ff 15254 je short 09c e3h ; 74 1315255 je short 09cf2h ; 74 13 15255 15256 add bx, word [bp-00eh] ; 03 5e f2 15256 15257 mov al, bh ; 88 f8 … … 15259 15260 xor dh, dh ; 30 f6 15260 15261 cmp ax, dx ; 39 d0 15261 jnbe short 09c e3h ; 77 0315262 jmp near 09c 21h ; e9 3e ff15262 jnbe short 09cf2h ; 77 03 15263 jmp near 09c30h ; e9 3e ff 15263 15264 cmp si, strict byte 0ffffh ; 83 fe ff 15264 jne short 09c ech ; 75 0415265 jne short 09cfbh ; 75 04 15265 15266 mov ax, bx ; 89 d8 15266 jmp short 09c efh ; eb 0315267 jmp short 09cfeh ; eb 03 15267 15268 mov ax, strict word 0ffffh ; b8 ff ff 15268 15269 lea sp, [bp-004h] ; 8d 66 fc … … 15271 15272 pop bp ; 5d 15272 15273 retn ; c3 15273 jcxz 09c95h ; e3 9d 15274 cld ; fc 15275 popfw ; 9d 15276 push CS ; 0e 15274 db 0f2h, 09dh 15275 ; repne popfw ; f2 9d 15276 or bx, word [bp-061e3h] ; 0b 9e 1d 9e 15277 xor word [bp-061bdh], bx ; 31 9e 43 9e 15278 push si ; 56 15277 15279 sahf ; 9e 15278 and bl, byte [bp-061cch] ; 22 9e 34 9e 15279 inc di ; 47 15280 sahf ; 9e 15281 _pci16_function: ; 0xf9d02 LB 0x1d5 15280 _pci16_function: ; 0xf9d11 LB 0x1d5 15282 15281 push bp ; 55 15283 15282 mov bp, sp ; 89 e5 … … 15293 15292 xor ah, ah ; 30 e4 15294 15293 cmp bx, strict byte 00003h ; 83 fb 03 15295 jc short 09d 34h ; 72 1315296 jbe short 09d 87h ; 76 6415294 jc short 09d43h ; 72 13 15295 jbe short 09d96h ; 76 64 15297 15296 cmp bx, strict byte 0000eh ; 83 fb 0e 15298 je short 09d 8fh ; 74 6715297 je short 09d9eh ; 74 67 15299 15298 cmp bx, strict byte 00008h ; 83 fb 08 15300 jc short 09d 3eh ; 72 1115299 jc short 09d4dh ; 72 11 15301 15300 cmp bx, strict byte 0000dh ; 83 fb 0d 15302 jbe short 09d 92h ; 76 6015303 jmp short 09d 3eh ; eb 0a15301 jbe short 09da1h ; 76 60 15302 jmp short 09d4dh ; eb 0a 15304 15303 cmp bx, strict byte 00002h ; 83 fb 02 15305 je short 09d 5dh ; 74 2415304 je short 09d6ch ; 74 24 15306 15305 cmp bx, strict byte 00001h ; 83 fb 01 15307 je short 09d 41h ; 74 0315308 jmp near 09ea 0h ; e9 5f 0115306 je short 09d50h ; 74 03 15307 jmp near 09eafh ; e9 5f 01 15309 15308 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 15310 15309 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 15312 15311 mov word [bp+018h], 04350h ; c7 46 18 50 43 15313 15312 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 15314 jmp near 09ed 0h ; e9 73 0115313 jmp near 09edfh ; e9 73 01 15315 15314 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 15316 jne short 09d 69h ; 75 0615315 jne short 09d78h ; 75 06 15317 15316 or ah, 083h ; 80 cc 83 15318 jmp near 09e c9h ; e9 60 0115317 jmp near 09ed8h ; e9 60 01 15319 15318 mov bx, word [bp+008h] ; 8b 5e 08 15320 15319 mov dx, word [bp+01ch] ; 8b 56 1c 15321 15320 mov ax, word [bp+018h] ; 8b 46 18 15322 15321 xor cx, cx ; 31 c9 15323 call 09c 0bh ; e8 94 fe15322 call 09c1ah ; e8 94 fe 15324 15323 cmp ax, strict word 0ffffh ; 3d ff ff 15325 jne short 09d 89h ; 75 0d15324 jne short 09d98h ; 75 0d 15326 15325 mov ax, word [bp+020h] ; 8b 46 20 15327 15326 xor ah, ah ; 30 e4 15328 15327 or ah, 086h ; 80 cc 86 15329 jmp near 09e c9h ; e9 42 0115330 jmp short 09d 94h ; eb 0b15328 jmp near 09ed8h ; e9 42 01 15329 jmp short 09da3h ; eb 0b 15331 15330 mov word [bp+014h], ax ; 89 46 14 15332 jmp near 09ed 0h ; e9 41 0115333 jmp near 09e 5bh ; e9 c9 0015334 jmp short 09d b9h ; eb 2515331 jmp near 09edfh ; e9 41 01 15332 jmp near 09e6ah ; e9 c9 00 15333 jmp short 09dc8h ; eb 25 15335 15334 mov bx, word [bp+008h] ; 8b 5e 08 15336 15335 mov ax, word [bp+01ch] ; 8b 46 1c 15337 15336 mov dx, word [bp+01eh] ; 8b 56 1e 15338 15337 mov cx, strict word 00001h ; b9 01 00 15339 call 09c 0bh ; e8 68 fe15338 call 09c1ah ; e8 68 fe 15340 15339 cmp ax, strict word 0ffffh ; 3d ff ff 15341 jne short 09d b3h ; 75 0b15340 jne short 09dc2h ; 75 0b 15342 15341 mov ax, word [bp+020h] ; 8b 46 20 15343 15342 xor ah, ah ; 30 e4 15344 15343 or ah, 086h ; 80 cc 86 15345 jmp near 09e c9h ; e9 16 0115344 jmp near 09ed8h ; e9 16 01 15346 15345 mov word [bp+014h], ax ; 89 46 14 15347 jmp near 09ed 0h ; e9 17 0115346 jmp near 09edfh ; e9 17 01 15348 15347 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 15349 jc short 09d c6h ; 72 0615348 jc short 09dd5h ; 72 06 15350 15349 or ah, 087h ; 80 cc 87 15351 jmp near 09e c9h ; e9 03 0115350 jmp near 09ed8h ; e9 03 01 15352 15351 mov dx, word [bp+004h] ; 8b 56 04 15353 15352 mov ax, word [bp+014h] ; 8b 46 14 15354 call 09b e7h ; e8 18 fe15353 call 09bf6h ; e8 18 fe 15355 15354 mov bx, word [bp+020h] ; 8b 5e 20 15356 15355 xor bh, bh ; 30 ff 15357 15356 sub bx, strict byte 00008h ; 83 eb 08 15358 15357 cmp bx, strict byte 00005h ; 83 fb 05 15359 jnbe short 09e 44h ; 77 6815358 jnbe short 09e53h ; 77 68 15360 15359 sal bx, 1 ; d1 e3 15361 jmp word [cs:bx-06 30ah] ; 2e ff a7 f6 9c15360 jmp word [cs:bx-062fbh] ; 2e ff a7 05 9d 15362 15361 mov bx, word [bp+01ch] ; 8b 5e 1c 15363 15362 xor bl, bl ; 30 db … … 15370 15369 or bx, ax ; 09 c3 15371 15370 mov word [bp+01ch], bx ; 89 5e 1c 15372 jmp short 09e 44h ; eb 4815371 jmp short 09e53h ; eb 48 15373 15372 mov dx, word [bp+004h] ; 8b 56 04 15374 15373 xor dh, dh ; 30 f6 … … 15377 15376 in ax, DX ; ed 15378 15377 mov word [bp+01ch], ax ; 89 46 1c 15379 jmp short 09e 44h ; eb 3615378 jmp short 09e53h ; eb 36 15380 15379 mov dx, 00cfch ; ba fc 0c 15381 15380 in eax, DX ; 66 ed … … 15386 15385 mov word [bp+01ch], ax ; 89 46 1c 15387 15386 mov word [bp+01eh], dx ; 89 56 1e 15388 jmp short 09e 44h ; eb 2215387 jmp short 09e53h ; eb 22 15389 15388 mov ax, word [bp+01ch] ; 8b 46 1c 15390 15389 mov dx, word [bp+004h] ; 8b 56 04 … … 15393 15392 add dx, 00cfch ; 81 c2 fc 0c 15394 15393 out DX, AL ; ee 15395 jmp short 09e 44h ; eb 1015394 jmp short 09e53h ; eb 10 15396 15395 mov ax, word [bp+01ch] ; 8b 46 1c 15397 15396 mov dx, word [bp+004h] ; 8b 56 04 … … 15400 15399 add dx, 00cfch ; 81 c2 fc 0c 15401 15400 out DX, ax ; ef 15402 jmp near 09ed 0h ; e9 89 0015401 jmp near 09edfh ; e9 89 00 15403 15402 mov ax, word [bp+01ch] ; 8b 46 1c 15404 15403 mov cx, word [bp+01eh] ; 8b 4e 1e … … 15409 15408 ; mov ax, cx ; 8b c1 15410 15409 out DX, eax ; 66 ef 15411 jmp short 09ed 0h ; eb 7515410 jmp short 09edfh ; eb 75 15412 15411 mov bx, word [bp+004h] ; 8b 5e 04 15413 15412 mov es, [bp+026h] ; 8e 46 26 … … 15416 15415 mov cx, word [0f4a0h] ; 8b 0e a0 f4 15417 15416 cmp cx, word [es:bx] ; 26 3b 0f 15418 jbe short 09e 81h ; 76 1115417 jbe short 09e90h ; 76 11 15419 15418 mov ax, word [bp+020h] ; 8b 46 20 15420 15419 xor ah, ah ; 30 e4 … … 15422 15421 mov word [bp+020h], ax ; 89 46 20 15423 15422 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 15424 jmp short 09e 95h ; eb 1415423 jmp short 09ea4h ; eb 14 15425 15424 les di, [es:bx+002h] ; 26 c4 7f 02 15426 15425 mov si, 0f2c0h ; be c0 f2 … … 15434 15433 les bx, [bp-008h] ; c4 5e f8 15435 15434 mov word [es:bx], ax ; 26 89 07 15436 jmp short 09ed 0h ; eb 3015435 jmp short 09edfh ; eb 30 15437 15436 mov bx, 00da0h ; bb a0 0d 15438 15437 mov cx, ds ; 8c d9 15439 15438 mov ax, strict word 00004h ; b8 04 00 15440 call 01933h ; e8 887a15439 call 01933h ; e8 79 7a 15441 15440 mov ax, word [bp+014h] ; 8b 46 14 15442 15441 push ax ; 50 … … 15447 15446 mov ax, strict word 00004h ; b8 04 00 15448 15447 push ax ; 50 15449 call 01976h ; e8 b87a15448 call 01976h ; e8 a9 7a 15450 15449 add sp, strict byte 00008h ; 83 c4 08 15451 15450 mov ax, word [bp+020h] ; 8b 46 20 … … 15459 15458 pop bp ; 5d 15460 15459 retn ; c3 15461 pci_find_classcode_: ; 0xf9e d7LB 0x815460 pci_find_classcode_: ; 0xf9ee6 LB 0x8 15462 15461 push bp ; 55 15463 15462 mov bp, sp ; 89 e5 … … 15465 15464 pop bp ; 5d 15466 15465 retn ; c3 15467 pci_read_config_byte_: ; 0xf9e dfLB 0x2715466 pci_read_config_byte_: ; 0xf9eee LB 0x27 15468 15467 push bp ; 55 15469 15468 mov bp, sp ; 89 e5 … … 15488 15487 pop bp ; 5d 15489 15488 retn ; c3 15490 pci_read_config_word_: ; 0xf9f 06LB 0x2515489 pci_read_config_word_: ; 0xf9f15 LB 0x25 15491 15490 push bp ; 55 15492 15491 mov bp, sp ; 89 e5 … … 15510 15509 pop bp ; 5d 15511 15510 retn ; c3 15512 pci_read_config_dword_: ; 0xf9f 2bLB 0x3f15511 pci_read_config_dword_: ; 0xf9f3a LB 0x3f 15513 15512 push bp ; 55 15514 15513 mov bp, sp ; 89 e5 … … 15525 15524 int 01ah ; cd 1a 15526 15525 test cx, cx ; 85 c9 15527 jne short 09f 5bh ; 75 1415526 jne short 09f6ah ; 75 14 15528 15527 mov al, byte [bp-006h] ; 8a 46 fa 15529 15528 xor ah, ah ; 30 e4 … … 15535 15534 int 01ah ; cd 1a 15536 15535 test cx, cx ; 85 c9 15537 je short 09f6 0h ; 74 0515536 je short 09f6fh ; 74 05 15538 15537 mov ax, strict word 00001h ; b8 01 00 15539 jmp short 09f 62h ; eb 0215538 jmp short 09f71h ; eb 02 15540 15539 xor ax, ax ; 31 c0 15541 15540 cwd ; 99 … … 15545 15544 pop bp ; 5d 15546 15545 retn ; c3 15547 vds_is_present_: ; 0xf9f 6aLB 0x1d15546 vds_is_present_: ; 0xf9f79 LB 0x1d 15548 15547 push bx ; 53 15549 15548 push bp ; 55 … … 15553 15552 mov es, ax ; 8e c0 15554 15553 test byte [es:bx], 020h ; 26 f6 07 20 15555 je short 09f 82h ; 74 0615554 je short 09f91h ; 74 06 15556 15555 mov ax, strict word 00001h ; b8 01 00 15557 15556 pop bp ; 5d … … 15562 15561 pop bx ; 5b 15563 15562 retn ; c3 15564 vds_real_to_lin_: ; 0xf9f 87LB 0x1e15563 vds_real_to_lin_: ; 0xf9f96 LB 0x1e 15565 15564 push bx ; 53 15566 15565 push cx ; 51 … … 15573 15572 sal ax, 1 ; d1 e0 15574 15573 rcl dx, 1 ; d1 d2 15575 loop 09f 95h ; e2 fa15574 loop 09fa4h ; e2 fa 15576 15575 xor cx, cx ; 31 c9 15577 15576 add ax, bx ; 01 d8 … … 15581 15580 pop bx ; 5b 15582 15581 retn ; c3 15583 vds_build_sg_list_: ; 0xf9f a5LB 0x7715582 vds_build_sg_list_: ; 0xf9fb4 LB 0x77 15584 15583 push bp ; 55 15585 15584 mov bp, sp ; 89 e5 … … 15595 15594 mov bx, word [bp+006h] ; 8b 5e 06 15596 15595 mov word [es:di+002h], bx ; 26 89 5d 02 15597 call 09f 87h ; e8 c3 ff15596 call 09f96h ; e8 c3 ff 15598 15597 mov es, si ; 8e c6 15599 15598 mov word [es:di+004h], ax ; 26 89 45 04 15600 15599 mov word [es:di+006h], dx ; 26 89 55 06 15601 15600 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15602 call 09f 6ah ; e8 93 ff15601 call 09f79h ; e8 93 ff 15603 15602 test ax, ax ; 85 c0 15604 je short 09f ech ; 74 1115603 je short 09ffbh ; 74 11 15605 15604 mov es, si ; 8e c6 15606 15605 mov ax, 08105h ; b8 05 81 15607 15606 mov dx, strict word 00000h ; ba 00 00 15608 15607 int 04bh ; cd 4b 15609 jc short 09f e9h ; 72 0215608 jc short 09ff8h ; 72 02 15610 15609 db 032h, 0c0h 15611 15610 ; xor al, al ; 32 c0 15612 15611 cbw ; 98 15613 jmp short 0a0 13h ; eb 2715612 jmp short 0a022h ; eb 27 15614 15613 mov es, si ; 8e c6 15615 15614 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15628 15627 pop bp ; 5d 15629 15628 retn 00004h ; c2 04 00 15630 vds_free_sg_list_: ; 0xfa0 1c LB 0x3415629 vds_free_sg_list_: ; 0xfa02b LB 0x35 15631 15630 push bp ; 55 15632 15631 mov bp, sp ; 89 e5 … … 15634 15633 push di ; 57 15635 15634 mov bx, ax ; 89 c3 15636 call 09f 6ah ; e8 44 ff15635 call 09f79h ; e8 44 ff 15637 15636 test ax, ax ; 85 c0 15638 je short 0a0 3bh ; 74 1115637 je short 0a04ah ; 74 11 15639 15638 mov di, bx ; 89 df 15640 15639 mov es, dx ; 8e c2 … … 15642 15641 mov dx, strict word 00000h ; ba 00 00 15643 15642 int 04bh ; cd 4b 15644 jc short 0a0 3ah ; 72 0215643 jc short 0a049h ; 72 02 15645 15644 db 032h, 0c0h 15646 15645 ; xor al, al ; 32 c0 … … 15653 15652 pop bp ; 5d 15654 15653 retn ; c3 15655 times 0x 6db 015656 __U4M: ; 0xfa0 50 LB 0x2015654 times 0x7 db 0 15655 __U4M: ; 0xfa060 LB 0x20 15657 15656 pushfw ; 9c 15658 15657 push si ; 56 … … 15681 15680 retn ; c3 15682 15681 times 0x4 db 0 15683 __U4D: ; 0xfa0 70 LB 0x3015682 __U4D: ; 0xfa080 LB 0x30 15684 15683 pushfw ; 9c 15685 15684 push DS ; 1e … … 15696 15695 push dx ; 52 15697 15696 push ax ; 50 15698 call 0a1 55h ; e8 d0 0015697 call 0a165h ; e8 d0 00 15699 15698 mov cx, word [bp-002h] ; 8b 4e fe 15700 15699 mov bx, word [bp-004h] ; 8b 5e fc … … 15707 15706 retn ; c3 15708 15707 times 0xe db 0 15709 __U8RS: ; 0xfa0 a0 LB 0x1015708 __U8RS: ; 0xfa0b0 LB 0x10 15710 15709 test si, si ; 85 f6 15711 je short 0a0 afh ; 74 0b15710 je short 0a0bfh ; 74 0b 15712 15711 shr ax, 1 ; d1 e8 15713 15712 rcr bx, 1 ; d1 db … … 15715 15714 rcr dx, 1 ; d1 da 15716 15715 dec si ; 4e 15717 jne short 0a0 a4h ; 75 f515716 jne short 0a0b4h ; 75 f5 15718 15717 retn ; c3 15719 __U8LS: ; 0xfa0 b0 LB 0x1015718 __U8LS: ; 0xfa0c0 LB 0x10 15720 15719 test si, si ; 85 f6 15721 je short 0a0 bfh ; 74 0b15720 je short 0a0cfh ; 74 0b 15722 15721 sal dx, 1 ; d1 e2 15723 15722 rcl cx, 1 ; d1 d1 … … 15725 15724 rcl ax, 1 ; d1 d0 15726 15725 dec si ; 4e 15727 jne short 0a0 b4h ; 75 f515726 jne short 0a0c4h ; 75 f5 15728 15727 retn ; c3 15729 _fmemset_: ; 0xfa0 c0 LB 0x1015728 _fmemset_: ; 0xfa0d0 LB 0x10 15730 15729 push di ; 57 15731 15730 mov es, dx ; 8e c2 … … 15738 15737 retn ; c3 15739 15738 times 0x3 db 0 15740 _fmemcpy_: ; 0xfa0 d0 LB 0x3a15739 _fmemcpy_: ; 0xfa0e0 LB 0x3a 15741 15740 push bp ; 55 15742 15741 db 08bh, 0ech … … 15763 15762 add byte [bx+si], al ; 00 00 15764 15763 add byte [bx+si], al ; 00 00 15765 and byte [bx+di-05edeh], ah ; 20 a1 22 a1 15766 mov ax, word [es:0a126h] ; 26 a1 26 a1 15767 mov ax, word [es:0a128h] ; 26 a1 28 a1 15768 sub byte [bx+di-05ed6h], ah ; 28 a1 2a a1 15769 mov ax, word [cs:0a12eh] ; 2e a1 2e a1 15770 xor byte [bx+di-05ecbh], ah ; 30 a1 35 a1 15771 aaa ; 37 15764 xor byte [bx+di-05eceh], ah ; 30 a1 32 a1 15765 mov ax, word [ss:0a136h] ; 36 a1 36 a1 15766 mov ax, word [ss:0a138h] ; 36 a1 38 a1 15767 cmp byte [bx+di-05ec6h], ah ; 38 a1 3a a1 15768 mov ax, word [ds:0a13eh] ; 3e a1 3e a1 15769 inc ax ; 40 15770 mov ax, word [0a145h] ; a1 45 a1 15771 inc di ; 47 15772 15772 db 0a1h 15773 apm_worker: ; 0xfa1 0a LB 0x3a15773 apm_worker: ; 0xfa11a LB 0x3a 15774 15774 sti ; fb 15775 15775 push ax ; 50 … … 15783 15783 pop ax ; 58 15784 15784 mov AH, strict byte 053h ; b4 53 15785 jnc short 0a1 40h ; 73 2515786 jmp word [cs:bp-05f 10h] ; 2e ff a6 f0 a015787 jmp short 0a1 3eh ; eb 1c15785 jnc short 0a150h ; 73 25 15786 jmp word [cs:bp-05f00h] ; 2e ff a6 00 a1 15787 jmp short 0a14eh ; eb 1c 15788 15788 sti ; fb 15789 15789 hlt ; f4 15790 jmp short 0a1 3eh ; eb 1815791 jmp short 0a1 3eh ; eb 1615792 jmp short 0a1 40h ; eb 1615790 jmp short 0a14eh ; eb 18 15791 jmp short 0a14eh ; eb 16 15792 jmp short 0a150h ; eb 16 15793 15793 mov AH, strict byte 080h ; b4 80 15794 jmp short 0a1 42h ; eb 1415795 jmp short 0a1 40h ; eb 1015794 jmp short 0a152h ; eb 14 15795 jmp short 0a150h ; eb 10 15796 15796 mov ax, 00102h ; b8 02 01 15797 jmp short 0a1 3eh ; eb 0915798 jmp short 0a1 3eh ; eb 0715797 jmp short 0a14eh ; eb 09 15798 jmp short 0a14eh ; eb 07 15799 15799 mov BL, strict byte 000h ; b3 00 15800 15800 mov cx, strict word 00000h ; b9 00 00 15801 jmp short 0a1 3eh ; eb 0015801 jmp short 0a14eh ; eb 00 15802 15802 clc ; f8 15803 15803 retn ; c3 … … 15805 15805 stc ; f9 15806 15806 retn ; c3 15807 apm_pm16_entry: ; 0xfa1 44 LB 0x1115807 apm_pm16_entry: ; 0xfa154 LB 0x11 15808 15808 mov AH, strict byte 002h ; b4 02 15809 15809 push DS ; 1e … … 15813 15813 add bp, strict byte 00008h ; 83 c5 08 15814 15814 mov ds, bp ; 8e dd 15815 call 0a1 0ah ; e8 b8 ff15815 call 0a11ah ; e8 b8 ff 15816 15816 pop bp ; 5d 15817 15817 pop DS ; 1f 15818 15818 retf ; cb 15819 _DoUInt32Div: ; 0xfa1 55 LB 0x26b15819 _DoUInt32Div: ; 0xfa165 LB 0x26b 15820 15820 push bp ; 55 15821 15821 mov bp, sp ; 89 e5 … … 15835 15835 mov [bp-006h], ds ; 8c 5e fa 15836 15836 cmp word [bx+002h], strict byte 00000h ; 83 7f 02 00 15837 jne short 0a1 a5h ; 75 2215837 jne short 0a1b5h ; 75 22 15838 15838 mov ax, word [bx] ; 8b 07 15839 15839 test ax, ax ; 85 c0 15840 je short 0a1 a2h ; 74 1915840 je short 0a1b2h ; 74 19 15841 15841 cmp ax, strict word 00001h ; 3d 01 00 15842 jne short 0a1 a5h ; 75 1715842 jne short 0a1b5h ; 75 17 15843 15843 xor ax, ax ; 31 c0 15844 15844 mov word [bp+00ah], ax ; 89 46 0a … … 15848 15848 mov ax, word [bp-01ah] ; 8b 46 e6 15849 15849 mov word [bp+006h], ax ; 89 46 06 15850 jmp near 0a3 adh ; e9 08 0215850 jmp near 0a3bdh ; e9 08 02 15851 15851 lds bx, [bp-00ch] ; c5 5e f4 15852 15852 mov ax, word [bx+002h] ; 8b 47 02 15853 15853 mov ds, [bp-006h] ; 8e 5e fa 15854 15854 cmp ax, word [si+002h] ; 3b 44 02 15855 je short 0a1 cbh ; 74 1815855 je short 0a1dbh ; 74 18 15856 15856 mov ds, [bp-00ah] ; 8e 5e f6 15857 15857 mov ax, word [bx+002h] ; 8b 47 02 15858 15858 mov ds, [bp-006h] ; 8e 5e fa 15859 15859 cmp ax, word [si+002h] ; 3b 44 02 15860 jbe short 0a1 c6h ; 76 0515860 jbe short 0a1d6h ; 76 05 15861 15861 mov ax, strict word 00001h ; b8 01 00 15862 jmp short 0a1 ech ; eb 2615862 jmp short 0a1fch ; eb 26 15863 15863 mov ax, strict word 0ffffh ; b8 ff ff 15864 jmp short 0a1 ech ; eb 2115864 jmp short 0a1fch ; eb 21 15865 15865 mov ds, [bp-00ah] ; 8e 5e f6 15866 15866 mov ax, word [bx] ; 8b 07 15867 15867 mov ds, [bp-006h] ; 8e 5e fa 15868 15868 cmp ax, word [si] ; 3b 04 15869 je short 0a1 eah ; 74 1315869 je short 0a1fah ; 74 13 15870 15870 mov ds, [bp-00ah] ; 8e 5e f6 15871 15871 mov ax, word [bx] ; 8b 07 15872 15872 mov ds, [bp-006h] ; 8e 5e fa 15873 15873 cmp ax, word [si] ; 3b 04 15874 jbe short 0a1 e5h ; 76 0215875 jmp short 0a1 c1h ; eb dc15874 jbe short 0a1f5h ; 76 02 15875 jmp short 0a1d1h ; eb dc 15876 15876 mov ax, strict word 0ffffh ; b8 ff ff 15877 jmp short 0a1 ech ; eb 0215877 jmp short 0a1fch ; eb 02 15878 15878 xor ax, ax ; 31 c0 15879 15879 test ax, ax ; 85 c0 15880 jnl short 0a2 0eh ; 7d 1e15880 jnl short 0a21eh ; 7d 1e 15881 15881 lds bx, [bp-00ch] ; c5 5e f4 15882 15882 mov ax, word [bx] ; 8b 07 … … 15888 15888 mov word [bx+002h], strict word 00000h ; c7 47 02 00 00 15889 15889 mov word [bx], strict word 00000h ; c7 07 00 00 15890 jmp short 0a1 a2h ; eb 9415891 jne short 0a2 25h ; 75 1515890 jmp short 0a1b2h ; eb 94 15891 jne short 0a235h ; 75 15 15892 15892 mov ds, [bp-008h] ; 8e 5e f8 15893 15893 mov word [di+002h], ax ; 89 45 02 … … 15896 15896 mov word [bx], strict word 00001h ; c7 07 01 00 15897 15897 mov word [bx+002h], ax ; 89 47 02 15898 jmp near 0a3 adh ; e9 88 0115898 jmp near 0a3bdh ; e9 88 01 15899 15899 lds bx, [bp-00ch] ; c5 5e f4 15900 15900 mov ax, word [bx+002h] ; 8b 47 02 15901 15901 test ax, ax ; 85 c0 15902 je short 0a2 40h ; 74 1115902 je short 0a250h ; 74 11 15903 15903 push ax ; 50 15904 15904 mov ax, 0f000h ; b8 00 f0 15905 15905 mov ds, ax ; 8e d8 15906 call 0a3 c0h ; e8 88 0115906 call 0a3d0h ; e8 88 01 15907 15907 add sp, strict byte 00002h ; 83 c4 02 15908 15908 add ax, strict word 00010h ; 05 10 00 15909 jmp short 0a2 4dh ; eb 0d15909 jmp short 0a25dh ; eb 0d 15910 15910 push word [bx] ; ff 37 15911 15911 mov ax, 0f000h ; b8 00 f0 15912 15912 mov ds, ax ; 8e d8 15913 call 0a3 c0h ; e8 76 0115913 call 0a3d0h ; e8 76 01 15914 15914 add sp, strict byte 00002h ; 83 c4 02 15915 15915 mov word [bp-014h], ax ; 89 46 ec … … 15917 15917 mov ax, word [si+002h] ; 8b 44 02 15918 15918 test ax, ax ; 85 c0 15919 je short 0a2 6bh ; 74 1115919 je short 0a27bh ; 74 11 15920 15920 push ax ; 50 15921 15921 mov ax, 0f000h ; b8 00 f0 15922 15922 mov ds, ax ; 8e d8 15923 call 0a3 c0h ; e8 5d 0115923 call 0a3d0h ; e8 5d 01 15924 15924 add sp, strict byte 00002h ; 83 c4 02 15925 15925 add ax, strict word 00010h ; 05 10 00 15926 jmp short 0a2 78h ; eb 0d15926 jmp short 0a288h ; eb 0d 15927 15927 push word [si] ; ff 34 15928 15928 mov ax, 0f000h ; b8 00 f0 15929 15929 mov ds, ax ; 8e d8 15930 call 0a3 c0h ; e8 4b 0115930 call 0a3d0h ; e8 4b 01 15931 15931 add sp, strict byte 00002h ; 83 c4 02 15932 15932 mov dx, word [bp-014h] ; 8b 56 ec … … 15939 15939 mov word [bp-016h], ax ; 89 46 ea 15940 15940 test dx, dx ; 85 d2 15941 je short 0a2 e8h ; 74 5615941 je short 0a2f8h ; 74 56 15942 15942 mov cx, dx ; 89 d1 15943 15943 xor ch, dh ; 30 f5 … … 15945 15945 mov ax, word [si] ; 8b 04 15946 15946 mov dx, word [si+002h] ; 8b 54 02 15947 jcxz 0a2 a6h ; e3 0615947 jcxz 0a2b6h ; e3 06 15948 15948 sal ax, 1 ; d1 e0 15949 15949 rcl dx, 1 ; d1 d2 15950 loop 0a2 a0h ; e2 fa15950 loop 0a2b0h ; e2 fa 15951 15951 mov word [bp-018h], ax ; 89 46 e8 15952 15952 mov word [bp-016h], dx ; 89 56 ea … … 15954 15954 lds bx, [bp-00ch] ; c5 5e f4 15955 15955 cmp ax, word [bx+002h] ; 3b 47 02 15956 jnbe short 0a2 c6h ; 77 0f15956 jnbe short 0a2d6h ; 77 0f 15957 15957 mov ax, word [bp-016h] ; 8b 46 ea 15958 15958 cmp ax, word [bx+002h] ; 3b 47 02 15959 jne short 0a2 cah ; 75 0b15959 jne short 0a2dah ; 75 0b 15960 15960 mov ax, word [bp-018h] ; 8b 46 e8 15961 15961 cmp ax, word [bx] ; 3b 07 15962 jbe short 0a2 cah ; 76 0415962 jbe short 0a2dah ; 76 04 15963 15963 mov AL, strict byte 001h ; b0 01 15964 jmp short 0a2 cch ; eb 0215964 jmp short 0a2dch ; eb 02 15965 15965 xor al, al ; 30 c0 15966 15966 test al, al ; 84 c0 15967 je short 0a 2f3h ; 74 2315967 je short 0a303h ; 74 23 15968 15968 shr word [bp-016h], 1 ; d1 6e ea 15969 15969 rcr word [bp-018h], 1 ; d1 5e e8 15970 15970 dec word [bp-012h] ; ff 4e ee 15971 jmp short 0a 2f3h ; eb 1815971 jmp short 0a303h ; eb 18 15972 15972 mov cx, strict word 0001fh ; b9 1f 00 15973 15973 sal word [bp-018h], 1 ; d1 66 e8 15974 15974 rcl word [bp-016h], 1 ; d1 56 ea 15975 loop 0a2 deh ; e2 f815976 jmp short 0a2 d6h ; eb ee15975 loop 0a2eeh ; e2 f8 15976 jmp short 0a2e6h ; eb ee 15977 15977 mov ax, word [si] ; 8b 04 15978 15978 mov word [bp-018h], ax ; 89 46 e8 … … 15991 15991 mov ds, [bp-006h] ; 8e 5e fa 15992 15992 cmp ax, word [si+002h] ; 3b 44 02 15993 jnbe short 0a3 1fh ; 77 0615994 jne short 0a3 23h ; 75 0815993 jnbe short 0a32fh ; 77 06 15994 jne short 0a333h ; 75 08 15995 15995 cmp dx, word [si] ; 3b 14 15996 jc short 0a3 23h ; 72 0415996 jc short 0a333h ; 72 04 15997 15997 mov AL, strict byte 001h ; b0 01 15998 jmp short 0a3 25h ; eb 0215998 jmp short 0a335h ; eb 02 15999 15999 xor al, al ; 30 c0 16000 16000 test al, al ; 84 c0 16001 je short 0a3 8ah ; 74 6116001 je short 0a39ah ; 74 61 16002 16002 mov ds, [bp-008h] ; 8e 5e f8 16003 16003 mov ax, word [di+002h] ; 8b 45 02 16004 16004 cmp ax, word [bp-016h] ; 3b 46 ea 16005 jnbe short 0a3 40h ; 77 0c16005 jnbe short 0a350h ; 77 0c 16006 16006 cmp ax, word [bp-016h] ; 3b 46 ea 16007 jne short 0a3 44h ; 75 0b16007 jne short 0a354h ; 75 0b 16008 16008 mov ax, word [di] ; 8b 05 16009 16009 cmp ax, word [bp-018h] ; 3b 46 e8 16010 jc short 0a3 44h ; 72 0416010 jc short 0a354h ; 72 04 16011 16011 mov AL, strict byte 001h ; b0 01 16012 jmp short 0a3 46h ; eb 0216012 jmp short 0a356h ; eb 02 16013 16013 xor al, al ; 30 c0 16014 16014 test al, al ; 84 c0 16015 je short 0a3 70h ; 74 2616015 je short 0a380h ; 74 26 16016 16016 mov ax, word [bp-018h] ; 8b 46 e8 16017 16017 mov ds, [bp-008h] ; 8e 5e f8 … … 16022 16022 xor dx, dx ; 31 d2 16023 16023 mov cx, word [bp-012h] ; 8b 4e ee 16024 jcxz 0a3 68h ; e3 0616024 jcxz 0a378h ; e3 06 16025 16025 sal ax, 1 ; d1 e0 16026 16026 rcl dx, 1 ; d1 d2 16027 loop 0a3 62h ; e2 fa16027 loop 0a372h ; e2 fa 16028 16028 lds bx, [bp-010h] ; c5 5e f0 16029 16029 or word [bx], ax ; 09 07 … … 16034 16034 mov ds, [bp-006h] ; 8e 5e fa 16035 16035 cmp ax, word [si+002h] ; 3b 44 02 16036 jc short 0a3 86h ; 72 0616037 jne short 0a3 8ch ; 75 0a16036 jc short 0a396h ; 72 06 16037 jne short 0a39ch ; 75 0a 16038 16038 cmp dx, word [si] ; 3b 14 16039 jnc short 0a3 8ch ; 73 0616039 jnc short 0a39ch ; 73 06 16040 16040 mov AL, strict byte 001h ; b0 01 16041 jmp short 0a3 8eh ; eb 0416042 jmp short 0a3 adh ; eb 2116041 jmp short 0a39eh ; eb 04 16042 jmp short 0a3bdh ; eb 21 16043 16043 xor al, al ; 30 c0 16044 16044 test al, al ; 84 c0 16045 je short 0a3 a1h ; 74 0f16046 jmp short 0a3 adh ; eb 1916045 je short 0a3b1h ; 74 0f 16046 jmp short 0a3bdh ; eb 19 16047 16047 mov cx, strict word 0001fh ; b9 1f 00 16048 16048 sal word [bp-018h], 1 ; d1 66 e8 16049 16049 rcl word [bp-016h], 1 ; d1 56 ea 16050 loop 0a3 97h ; e2 f816051 jmp short 0a3 a7h ; eb 0616050 loop 0a3a7h ; e2 f8 16051 jmp short 0a3b7h ; eb 06 16052 16052 shr word [bp-016h], 1 ; d1 6e ea 16053 16053 rcr word [bp-018h], 1 ; d1 5e e8 16054 16054 dec word [bp-012h] ; ff 4e ee 16055 jmp near 0a3 29h ; e9 7c ff16055 jmp near 0a339h ; e9 7c ff 16056 16056 mov ax, word [bp-01ch] ; 8b 46 e4 16057 16057 mov dx, word [bp-01ah] ; 8b 56 e6 … … 16062 16062 retn ; c3 16063 16063 times 0x6 db 0 16064 _ASMBitLastSetU16: ; 0xfa3 c0 LB 0x1816064 _ASMBitLastSetU16: ; 0xfa3d0 LB 0x18 16065 16065 push bp ; 55 16066 16066 db 08bh, 0ech … … 16068 16068 mov cx, word [bp+004h] ; 8b 4e 04 16069 16069 test cx, cx ; 85 c9 16070 je short 0a3 d4h ; 74 0a16070 je short 0a3e4h ; 74 0a 16071 16071 mov ax, strict word 00010h ; b8 10 00 16072 16072 sal cx, 1 ; d1 e1 16073 jc short 0a3 d6h ; 72 0516073 jc short 0a3e6h ; 72 05 16074 16074 dec ax ; 48 16075 jmp short 0a3 cdh ; eb f916075 jmp short 0a3ddh ; eb f9 16076 16076 db 033h, 0c0h 16077 16077 ; xor ax, ax ; 33 c0 … … 16079 16079 retn ; c3 16080 16080 16081 ; Padding 0x36 28 bytes at 0xfa3d816082 times 138 64db 016081 ; Padding 0x3618 bytes at 0xfa3e8 16082 times 13848 db 0 16083 16083 16084 16084 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 16127 16127 add bp, strict byte 00008h ; 83 c5 08 16128 16128 push ebp ; 66 55 16129 mov bp, 0a1 46h ; bd 46 a116129 mov bp, 0a156h ; bd 56 a1 16130 16130 add byte [bx+si], al ; 00 00 16131 16131 push ebp ; 66 55 … … 16857 16857 call 01cc5h ; e8 89 39 16858 16858 call 02154h ; e8 15 3e 16859 call 099 9eh ; e8 5cb616860 call 088 03h ; e8 bea416859 call 099adh ; e8 6b b6 16860 call 08812h ; e8 cd a4 16861 16861 call 0ed4ch ; e8 04 0a 16862 16862 call 0e2d2h ; e8 87 ff … … 17951 17951 popfw ; 9d 17952 17952 jmp short 0f8afh ; eb 1f 17953 call 09 af1h ; e8 5ea217953 call 09b00h ; e8 6d a2 17954 17954 jmp short 0f883h ; eb ee 17955 17955 int15_handler_mouse: ; 0xff895 LB 0x5 … … 18274 18274 cpu_reset: ; 0xffff0 LB 0x10 18275 18275 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 18276 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0 03h18276 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 018h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum
r63625 r66146 1 7c8a92e1af55e3001eed7b2dc685f685*VBoxPcBios8086.rom1 3c9f961cb03c5004439fcce031a895cf *VBoxPcBios8086.rom
Note:
See TracChangeset
for help on using the changeset viewer.