Changeset 66146 in vbox for trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
- Timestamp:
- Mar 16, 2017 9:14:29 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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
Note:
See TracChangeset
for help on using the changeset viewer.