Changeset 43078 in vbox for trunk/src/VBox/Devices/PC
- Timestamp:
- Aug 29, 2012 2:34:43 PM (12 years ago)
- Location:
- trunk/src/VBox/Devices/PC/BIOS
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm
r42455 r43078 605 605 606 606 ; 607 ; Source file: apm.c 608 ; 609 ; $Id$ 610 ; APM BIOS support. Implements APM version 1.2. 611 ; 612 ; 613 ; 614 ; Copyright (C) 2004-2012 Oracle Corporation 615 ; 616 ; This file is part of VirtualBox Open Source Edition (OSE), as 617 ; available from http://www.virtualbox.org. This file is free software; 618 ; you can redistribute it and/or modify it under the terms of the GNU 619 ; General Public License (GPL) as published by the Free Software 620 ; Foundation, in version 2 as it comes in the "COPYING" file of the 621 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 622 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 623 624 ; 607 625 ; Source file: pcibios.c 608 626 ; … … 690 708 ; 691 709 ; -------------------------------------------------------------------- 710 711 ; 712 ; Source file: apm_pm.asm 713 ; 714 ; 715 ; Copyright (C) 2006-2012 Oracle Corporation 716 ; 717 ; This file is part of VirtualBox Open Source Edition (OSE), as 718 ; available from http://www.virtualbox.org. This file is free software; 719 ; you can redistribute it and/or modify it under the terms of the GNU 720 ; General Public License (GPL) as published by the Free Software 721 ; Foundation, in version 2 as it comes in the "COPYING" file of the 722 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 723 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 724 ; 725 ; -------------------------------------------------------------------- 726 ; 727 ; Protected-mode APM implementation. 728 ; 692 729 693 730 ; … … 758 795 _dskacc: ; 0xf0000 LB 0x30 759 796 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 059h, 027h, 0d0h, 027h, 000h, 000h, 000h, 000h 760 db 038h, 073h, 0dah, 073h, 055h, 07eh, 0e 0h, 07eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h797 db 038h, 073h, 0dah, 073h, 055h, 07eh, 0e6h, 07eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h 761 798 db 05fh, 033h, 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 762 799 763 section CONST progbits vstart=0x30 align=1 ; size=0xc 10class=DATA group=DGROUP800 section CONST progbits vstart=0x30 align=1 ; size=0xc94 class=DATA group=DGROUP 764 801 db 'NMI Handler called', 00ah, 000h 765 802 db 'INT18: BOOT FAILURE', 00ah, 000h … … 866 903 db 'ahci_cmd_packet', 000h 867 904 db '%s: DATA_OUT not supported yet', 00ah, 000h 905 db 'AHCI %d-P#%d: PCHS=%u/%d/%d LCHS=%u/%u/%u %ld sectors', 00ah, 000h, 000h 906 db 'Standby', 000h 907 db 'Suspend', 000h 908 db 'Shutdown', 000h 909 db 'APM: Unsupported function AX=%04X BX=%04X called', 00ah, 000h, 000h 868 910 db 'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h 869 911 870 section CONST2 progbits vstart=0xc 40 align=1 ; size=0x3faclass=DATA group=DGROUP871 _bios_cvs_version_string: ; 0xf0c 40 LB 0x12872 db 'VirtualBox 4. 1.51', 000h873 _bios_prefix_string: ; 0xf0c 52LB 0x8912 section CONST2 progbits vstart=0xcc4 align=1 ; size=0x3fe class=DATA group=DGROUP 913 _bios_cvs_version_string: ; 0xf0cc4 LB 0x16 914 db 'VirtualBox 4.2.0_RC2', 000h, 000h 915 _bios_prefix_string: ; 0xf0cda LB 0x8 874 916 db 'BIOS: ', 000h, 000h 875 _isotag: ; 0xf0c 5aLB 0x6917 _isotag: ; 0xf0ce2 LB 0x6 876 918 db 'CD001', 000h 877 _eltorito: ; 0xf0c 60LB 0x18919 _eltorito: ; 0xf0ce8 LB 0x18 878 920 db 'EL TORITO SPECIFICATION', 000h 879 _drivetypes: ; 0xf0 c78LB 0x28921 _drivetypes: ; 0xf0d00 LB 0x28 880 922 db 046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h 881 923 db 069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h 882 924 db 04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h 883 _scan_to_scanascii: ; 0xf0 ca0LB 0x37a925 _scan_to_scanascii: ; 0xf0d28 LB 0x37a 884 926 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h 885 927 db 000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h … … 938 980 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h 939 981 db 000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h 940 _panic_msg_keyb_buffer_full: ; 0xf10 1aLB 0x20982 _panic_msg_keyb_buffer_full: ; 0xf10a2 LB 0x20 941 983 db '%s: keyboard input buffer full', 00ah, 000h 942 984 943 ; Padding 0x5 c6 bytes at 0xf103a944 times 1 478db 0985 ; Padding 0x53e bytes at 0xf10c2 986 times 1342 db 0 945 987 946 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7 53fclass=CODE group=AUTO988 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7735 class=CODE group=AUTO 947 989 read_byte_: ; 0xf1600 LB 0xe 948 990 push bx ; 53 … … 1106 1148 push bp ; 55 1107 1149 mov bp, sp ; 89 e5 1108 mov bx, 00c 52h ; bb 520c1150 mov bx, 00cdah ; bb da 0c 1109 1151 mov cx, ds ; 8c d9 1110 1152 mov ax, strict word 00004h ; b8 04 00 1111 1153 call 018aeh ; e8 99 01 1112 push 00c 40h ; 68 400c1154 push 00cc4h ; 68 c4 0c 1113 1155 push strict word 00059h ; 68 59 00 1114 1156 push strict byte 00004h ; 6a 04 … … 1268 1310 mov bx, strict word 0000ah ; bb 0a 00 1269 1311 xor cx, cx ; 31 c9 1270 call 08 ab0h ; e8 57 721312 call 08c40h ; e8 e7 73 1271 1313 mov word [bp-004h], ax ; 89 46 fc 1272 1314 mov cx, dx ; 89 d1 … … 2231 2273 xor dx, dx ; 31 d2 2232 2274 mov word [bp-01ah], di ; 89 7e e6 2233 mov bx, 00c 52h ; bb 520c2275 mov bx, 00cdah ; bb da 0c 2234 2276 mov cx, ds ; 8c d9 2235 2277 mov ax, strict word 00004h ; b8 04 00 … … 2865 2907 cmp byte [bp+00eh], 002h ; 80 7e 0e 02 2866 2908 jne short 0285ah ; 75 1f 2867 mov bx, 00c 52h ; bb 520c2909 mov bx, 00cdah ; bb da 0c 2868 2910 mov cx, ds ; 8c d9 2869 2911 mov ax, strict word 00004h ; b8 04 00 … … 3649 3691 cmp AL, strict byte 048h ; 3c 48 3650 3692 jbe short 02f58h ; 76 29 3651 mov bx, 00c 52h ; bb 520c3693 mov bx, 00cdah ; bb da 0c 3652 3694 mov cx, ds ; 8c d9 3653 3695 mov ax, strict word 00004h ; b8 04 00 … … 4287 4329 mov ax, strict word 00006h ; b8 06 00 4288 4330 jmp near 02e83h ; e9 19 f9 4289 mov bx, 00c 52h ; bb 520c4331 mov bx, 00cdah ; bb da 0c 4290 4332 mov cx, ds ; 8c d9 4291 4333 mov ax, strict word 00004h ; b8 04 00 … … 4444 4486 pop si ; 5e 4445 4487 retn ; c3 4446 mov bx, 00c 52h ; bb 520c4488 mov bx, 00cdah ; bb da 0c 4447 4489 mov cx, ds ; 8c d9 4448 4490 mov ax, strict word 00004h ; b8 04 00 … … 4523 4565 mov dx, ss ; 8c d2 4524 4566 lea ax, [bp-01ah] ; 8d 46 e6 4525 call 08 b1ah ; e8 4a 534567 call 08caah ; e8 da 54 4526 4568 mov word [bp-01ah], strict word 00028h ; c7 46 e6 28 00 4527 4569 mov ax, strict word 00011h ; b8 11 00 … … 4570 4612 lea bx, [bp-01ah] ; 8d 5e e6 4571 4613 mov dx, strict word 0000ch ; ba 0c 00 4572 call 07f 45h ; e8 f7 464614 call 07f53h ; e8 05 47 4573 4615 jmp short 0381dh ; eb cd 4574 4616 test ax, ax ; 85 c0 … … 4586 4628 jnc short 03881h ; 73 10 4587 4629 mov al, byte [bp+di-00819h] ; 8a 83 e7 f7 4588 cmp al, byte [di+00c 5ah] ; 3a 85 5a0c4630 cmp al, byte [di+00ce2h] ; 3a 85 e2 0c 4589 4631 je short 0386bh ; 74 f0 4590 4632 mov ax, strict word 00005h ; b8 05 00 … … 4596 4638 jnc short 0389bh ; 73 10 4597 4639 mov al, byte [bp+di-00813h] ; 8a 83 ed f7 4598 cmp al, byte [di+00c 60h] ; 3a 85 600c4640 cmp al, byte [di+00ce8h] ; 3a 85 e8 0c 4599 4641 je short 03885h ; 74 f0 4600 4642 mov ax, strict word 00006h ; b8 06 00 … … 4624 4666 lea bx, [bp-01ah] ; 8d 5e e6 4625 4667 mov dx, strict word 0000ch ; ba 0c 00 4626 call 07f 45h ; e8 66464668 call 07f53h ; e8 74 46 4627 4669 jmp short 038ffh ; eb 1e 4628 4670 lea dx, [bp-0081ah] ; 8d 96 e6 f7 … … 4738 4780 lea bx, [bp-01ah] ; 8d 5e e6 4739 4781 mov dx, strict word 0000ch ; ba 0c 00 4740 call 07f 45h ; e8 1b454782 call 07f53h ; e8 29 45 4741 4783 jmp short 03a51h ; eb 25 4742 4784 push di ; 57 … … 4937 4979 cmp ax, dx ; 39 d0 4938 4980 je short 03c26h ; 74 29 4939 mov bx, 00c 52h ; bb 520c4981 mov bx, 00cdah ; bb da 0c 4940 4982 mov cx, ds ; 8c d9 4941 4983 mov ax, strict word 00004h ; b8 04 00 … … 5032 5074 xor dl, dl ; 30 d2 5033 5075 xor cx, cx ; 31 c9 5034 call 08 ae9h ; e8 dd 4d5076 call 08c79h ; e8 6d 4f 5035 5077 xor bx, bx ; 31 db 5036 5078 add ax, si ; 01 f0 … … 5038 5080 mov bx, di ; 89 fb 5039 5081 xor cx, cx ; 31 c9 5040 call 08 ae9h ; e8 d0 4d5082 call 08c79h ; e8 60 4f 5041 5083 mov bx, word [bp-010h] ; 8b 5e f0 5042 5084 dec bx ; 4b … … 5075 5117 mov dx, ss ; 8c d2 5076 5118 lea ax, [bp-02ah] ; 8d 46 d6 5077 call 08 b1ah ; e8 a6 4d5119 call 08caah ; e8 36 4f 5078 5120 mov word [bp-02ah], strict word 00028h ; c7 46 d6 28 00 5079 5121 mov ax, word [bp-014h] ; 8b 46 ec … … 5127 5169 lea bx, [bp-02ah] ; 8d 5e d6 5128 5170 mov dx, strict word 0000ch ; ba 0c 00 5129 call 07f 45h ; e8 45415171 call 07f53h ; e8 53 41 5130 5172 jmp short 03e2ah ; eb 28 5131 5173 push word [bp-00eh] ; ff 76 f2 … … 5152 5194 test dl, dl ; 84 d2 5153 5195 je near 03f0eh ; 0f 84 d0 00 5154 mov bx, 00c 52h ; bb 520c5196 mov bx, 00cdah ; bb da 0c 5155 5197 mov cx, ds ; 8c d9 5156 5198 mov ax, strict word 00004h ; b8 04 00 … … 5242 5284 mov word [bp+01ah], bx ; 89 5e 1a 5243 5285 jmp short 03f12h ; eb e5 5244 mov bx, 00c 52h ; bb 520c5286 mov bx, 00cdah ; bb da 0c 5245 5287 mov cx, ds ; 8c d9 5246 5288 mov ax, strict word 00004h ; b8 04 00 … … 5455 5497 mov dx, ss ; 8c d2 5456 5498 lea ax, [bp-028h] ; 8d 46 d8 5457 call 08 b1ah ; e8 e4 495499 call 08caah ; e8 74 4b 5458 5500 mov word [bp-028h], strict word 00028h ; c7 46 d8 28 00 5459 5501 mov ax, word [bp-010h] ; 8b 46 f0 … … 5486 5528 lea bx, [bp-028h] ; 8d 5e d8 5487 5529 mov dx, strict word 0000ch ; ba 0c 00 5488 call 07f 45h ; e8 ba3d5530 call 07f53h ; e8 c8 3d 5489 5531 jmp short 041b1h ; eb 24 5490 5532 push dword [bp-016h] ; 66 ff 76 ea … … 5515 5557 cmp byte [bp-004h], 000h ; 80 7e fc 00 5516 5558 je near 04296h ; 0f 84 bf 00 5517 mov bx, 00c 52h ; bb 520c5559 mov bx, 00cdah ; bb da 0c 5518 5560 mov cx, ds ; 8c d9 5519 5561 mov ax, strict word 00004h ; b8 04 00 … … 5792 5834 or byte [bp+022h], 001h ; 80 4e 22 01 5793 5835 jmp near 042a9h ; e9 91 fd 5794 mov bx, 00c 52h ; bb 520c5836 mov bx, 00cdah ; bb da 0c 5795 5837 mov cx, ds ; 8c d9 5796 5838 mov ax, strict word 00004h ; b8 04 00 … … 5822 5864 je short 0457ah ; 74 21 5823 5865 mov dx, strict word 00001h ; ba 01 00 5824 mov bx, 00c 52h ; bb 520c5866 mov bx, 00cdah ; bb da 0c 5825 5867 mov cx, ds ; 8c d9 5826 5868 mov ax, strict word 00004h ; b8 04 00 5827 5869 call 018aeh ; e8 47 d3 5828 5870 imul dx, dx, strict byte 0000ah ; 6b d2 0a 5829 add dx, 00 c78h ; 81 c2 78 0c5871 add dx, 00d00h ; 81 c2 00 0d 5830 5872 push dx ; 52 5831 5873 push 00402h ; 68 02 04 … … 5846 5888 test al, al ; 84 c0 5847 5889 je short 045aah ; 74 1b 5848 mov bx, 00c 52h ; bb 520c5890 mov bx, 00cdah ; bb da 0c 5849 5891 mov cx, ds ; 8c d9 5850 5892 mov ax, strict word 00004h ; b8 04 00 5851 5893 call 018aeh ; e8 14 d3 5852 push 00 c8ch ; 68 8c 0c5894 push 00d14h ; 68 14 0d 5853 5895 push 00416h ; 68 16 04 5854 5896 push strict byte 00004h ; 6a 04 … … 5858 5900 test dl, dl ; 84 d2 5859 5901 je short 045beh ; 74 10 5860 mov bx, 00c 52h ; bb 520c5902 mov bx, 00cdah ; bb da 0c 5861 5903 mov cx, ds ; 8c d9 5862 5904 mov ax, strict word 00004h ; b8 04 00 5863 5905 call 018aeh ; e8 f5 d2 5864 push 00 c96h ; 68 96 0c5906 push 00d1eh ; 68 1e 0d 5865 5907 jmp short 0459dh ; eb df 5866 5908 test bl, 080h ; f6 c3 80 5867 5909 je short 045d4h ; 74 11 5868 mov bx, 00c 52h ; bb 520c5910 mov bx, 00cdah ; bb da 0c 5869 5911 mov cx, ds ; 8c d9 5870 5912 mov ax, strict word 00004h ; b8 04 00 5871 5913 call 018aeh ; e8 e0 d2 5872 5914 push si ; 56 5873 push 00 c82h ; 68 82 0c5915 push 00d0ah ; 68 0a 0d 5874 5916 jmp short 045e3h ; eb 0f 5875 mov bx, 00c 52h ; bb 520c5917 mov bx, 00cdah ; bb da 0c 5876 5918 mov cx, ds ; 8c d9 5877 5919 mov ax, strict word 00004h ; b8 04 00 5878 5920 call 018aeh ; e8 cf d2 5879 5921 push si ; 56 5880 push 00 c78h ; 68 78 0c5922 push 00d00h ; 68 00 0d 5881 5923 push 0042bh ; 68 2b 04 5882 5924 push strict byte 00004h ; 6a 04 … … 5903 5945 mov bp, sp ; 89 e5 5904 5946 mov dx, ax ; 89 c2 5905 mov bx, 00c 52h ; bb 520c5947 mov bx, 00cdah ; bb da 0c 5906 5948 mov cx, ds ; 8c d9 5907 5949 mov ax, strict word 00004h ; b8 04 00 … … 5975 6017 mov byte [bp-006h], al ; 88 46 fa 5976 6018 mov byte [bp-008h], al ; 88 46 f8 5977 mov bx, 00c 52h ; bb 520c6019 mov bx, 00cdah ; bb da 0c 5978 6020 mov cx, ds ; 8c d9 5979 6021 mov ax, strict word 00004h ; b8 04 00 … … 6536 6578 test al, al ; 84 c0 6537 6579 jne short 04bc6h ; 75 19 6538 mov bx, 00c 52h ; bb 520c6580 mov bx, 00cdah ; bb da 0c 6539 6581 mov cx, ds ; 8c d9 6540 6582 mov ax, strict word 00004h ; b8 04 00 … … 6739 6781 cmp byte [bp-006h], 058h ; 80 7e fa 58 6740 6782 jbe short 04e01h ; 76 1e 6741 mov bx, 00c 52h ; bb 520c6783 mov bx, 00cdah ; bb da 0c 6742 6784 mov cx, ds ; 8c d9 6743 6785 mov ax, strict word 00004h ; b8 04 00 … … 6754 6796 movzx si, byte [bp-006h] ; 0f b6 76 fa 6755 6797 imul si, si, strict byte 0000ah ; 6b f6 0a 6756 mov dl, byte [si+00 ca6h] ; 8a 94 a6 0c6757 mov ax, word [si+00 ca6h] ; 8b 84 a6 0c6798 mov dl, byte [si+00d2eh] ; 8a 94 2e 0d 6799 mov ax, word [si+00d2eh] ; 8b 84 2e 0d 6758 6800 jmp near 04ea4h ; e9 8c 00 6759 6801 test bl, 004h ; f6 c3 04 … … 6761 6803 movzx si, byte [bp-006h] ; 0f b6 76 fa 6762 6804 imul si, si, strict byte 0000ah ; 6b f6 0a 6763 mov dl, byte [si+00 ca4h] ; 8a 94 a4 0c6764 mov ax, word [si+00 ca4h] ; 8b 84 a4 0c6805 mov dl, byte [si+00d2ch] ; 8a 94 2c 0d 6806 mov ax, word [si+00d2ch] ; 8b 84 2c 0d 6765 6807 jmp near 04ea4h ; e9 75 00 6766 6808 mov al, byte [bp-002h] ; 8a 46 fe … … 6781 6823 movzx si, byte [bp-006h] ; 0f b6 76 fa 6782 6824 imul si, si, strict byte 0000ah ; 6b f6 0a 6783 movzx ax, byte [si+00 ca8h] ; 0f b6 84 a8 0c6825 movzx ax, byte [si+00d30h] ; 0f b6 84 30 0d 6784 6826 movzx dx, bl ; 0f b6 d3 6785 6827 test dx, ax ; 85 c2 6786 6828 je short 04e6fh ; 74 0a 6787 mov dl, byte [si+00 ca0h] ; 8a 94 a0 0c6788 mov ax, word [si+00 ca0h] ; 8b 84 a0 0c6829 mov dl, byte [si+00d28h] ; 8a 94 28 0d 6830 mov ax, word [si+00d28h] ; 8b 84 28 0d 6789 6831 jmp short 04e77h ; eb 08 6790 mov dl, byte [si+00 ca2h] ; 8a 94 a2 0c6791 mov ax, word [si+00 ca2h] ; 8b 84 a2 0c6832 mov dl, byte [si+00d2ah] ; 8a 94 2a 0d 6833 mov ax, word [si+00d2ah] ; 8b 84 2a 0d 6792 6834 shr ax, 008h ; c1 e8 08 6793 6835 mov byte [bp-006h], al ; 88 46 fa … … 6795 6837 movzx si, byte [bp-006h] ; 0f b6 76 fa 6796 6838 imul si, si, strict byte 0000ah ; 6b f6 0a 6797 movzx ax, byte [si+00 ca8h] ; 0f b6 84 a8 0c6839 movzx ax, byte [si+00d30h] ; 0f b6 84 30 0d 6798 6840 movzx dx, bl ; 0f b6 d3 6799 6841 test dx, ax ; 85 c2 6800 6842 je short 04e9ch ; 74 0a 6801 mov dl, byte [si+00 ca2h] ; 8a 94 a2 0c6802 mov ax, word [si+00 ca2h] ; 8b 84 a2 0c6843 mov dl, byte [si+00d2ah] ; 8a 94 2a 0d 6844 mov ax, word [si+00d2ah] ; 8b 84 2a 0d 6803 6845 jmp short 04ea4h ; eb 08 6804 mov dl, byte [si+00 ca0h] ; 8a 94 a0 0c6805 mov ax, word [si+00 ca0h] ; 8b 84 a0 0c6846 mov dl, byte [si+00d28h] ; 8a 94 28 0d 6847 mov ax, word [si+00d28h] ; 8b 84 28 0d 6806 6848 shr ax, 008h ; c1 e8 08 6807 6849 mov byte [bp-006h], al ; 88 46 fa … … 6810 6852 test dl, dl ; 84 d2 6811 6853 jne short 04ecah ; 75 16 6812 mov bx, 00c 52h ; bb 520c6854 mov bx, 00cdah ; bb da 0c 6813 6855 mov cx, ds ; 8c d9 6814 6856 mov ax, strict word 00004h ; b8 04 00 … … 7183 7225 or ah, 080h ; 80 cc 80 7184 7226 jmp near 050f6h ; e9 d5 fe 7185 mov bx, 00c 52h ; bb 520c7227 mov bx, 00cdah ; bb da 0c 7186 7228 mov cx, ds ; 8c d9 7187 7229 mov ax, strict word 00004h ; b8 04 00 … … 7194 7236 call 018e9h ; e8 ae c6 7195 7237 add sp, strict byte 00006h ; 83 c4 06 7196 mov bx, 00c 52h ; bb 520c7238 mov bx, 00cdah ; bb da 0c 7197 7239 mov cx, ds ; 8c d9 7198 7240 mov ax, strict word 00004h ; b8 04 00 … … 7344 7386 test ax, ax ; 85 c0 7345 7387 jne short 053d0h ; 75 23 7346 mov bx, 00c 52h ; bb 520c7388 mov bx, 00cdah ; bb da 0c 7347 7389 mov cx, ds ; 8c d9 7348 7390 mov ax, strict word 00004h ; b8 04 00 … … 7373 7415 cmp ax, dx ; 39 d0 7374 7416 jbe short 0542bh ; 76 2e 7375 mov bx, 00c 52h ; bb 520c7417 mov bx, 00cdah ; bb da 0c 7376 7418 mov cx, ds ; 8c d9 7377 7419 mov ax, strict word 00004h ; b8 04 00 … … 7411 7453 mov bx, cx ; 89 cb 7412 7454 xor cx, cx ; 31 c9 7413 call 08 ae9h ; e8 84 367455 call 08c79h ; e8 14 38 7414 7456 xor bx, bx ; 31 db 7415 7457 add ax, word [bp-008h] ; 03 46 f8 … … 7417 7459 mov bx, word [bp-00ah] ; 8b 5e f6 7418 7460 xor cx, cx ; 31 c9 7419 call 08 ae9h ; e8 75 367461 call 08c79h ; e8 05 38 7420 7462 xor bx, bx ; 31 db 7421 7463 add ax, word [bp-006h] ; 03 46 fa … … 7430 7472 db 0c0h, 001h, 0c3h, 006h, 056h, 0ffh, 097h, 0fch, 0ffh, 089h, 0c2h, 08bh, 046h, 016h, 030h, 0c0h 7431 7473 db 08eh, 046h, 0fch, 026h, 08bh, 05ch, 014h, 009h, 0c3h, 089h, 05eh, 016h, 084h, 0d2h, 00fh, 084h 7432 db 015h, 0feh, 0bbh, 0 52h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 088h, 0c3h, 00fh, 0b6h, 0c2h7474 db 015h, 0feh, 0bbh, 0dah, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 088h, 0c3h, 00fh, 0b6h, 0c2h 7433 7475 db 050h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h, 050h, 068h, 0ech, 005h, 068h, 0c7h, 006h, 06ah, 004h 7434 7476 db 0e8h, 0adh, 0c3h, 083h, 0c4h, 00ah, 08bh, 046h, 016h, 030h, 0e4h, 080h, 0cch, 00ch, 0e9h, 051h 7435 db 001h, 0bbh, 0 52h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 059h, 0c3h, 068h, 0e8h, 006h, 06ah7477 db 001h, 0bbh, 0dah, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 059h, 0c3h, 068h, 0e8h, 006h, 06ah 7436 7478 db 004h, 0e8h, 08ch, 0c3h, 083h, 0c4h, 004h, 0e9h, 0cdh, 0fdh, 00fh, 0b6h, 046h, 0feh, 06bh, 0c0h 7437 7479 db 018h, 08eh, 046h, 0fch, 089h, 0f3h, 001h, 0c3h, 026h, 08bh, 07fh, 028h, 026h, 08bh, 04fh, 026h … … 7447 7489 db 00fh, 0b6h, 046h, 0feh, 06bh, 0c0h, 018h, 08eh, 046h, 0fch, 001h, 0c6h, 026h, 08bh, 07ch, 02eh 7448 7490 db 026h, 08bh, 044h, 02ch, 089h, 046h, 0f8h, 026h, 08bh, 044h, 030h, 089h, 046h, 0fah, 089h, 0f8h 7449 db 031h, 0d2h, 08bh, 05eh, 0f8h, 031h, 0c9h, 0e8h, 0 b6h, 034h, 08bh, 05eh, 0fah, 031h, 0c9h, 0e8h7450 db 0 aeh, 034h, 089h, 046h, 0f0h, 089h, 056h, 0f2h, 089h, 056h, 014h, 089h, 046h, 012h, 08bh, 046h7451 db 016h, 030h, 0e4h, 080h, 0cch, 003h, 089h, 046h, 016h, 0e9h, 0dfh, 0fch, 0bbh, 0 52h, 00ch, 08ch7491 db 031h, 0d2h, 08bh, 05eh, 0f8h, 031h, 0c9h, 0e8h, 046h, 036h, 08bh, 05eh, 0fah, 031h, 0c9h, 0e8h 7492 db 03eh, 036h, 089h, 046h, 0f0h, 089h, 056h, 0f2h, 089h, 056h, 014h, 089h, 046h, 012h, 08bh, 046h 7493 db 016h, 030h, 0e4h, 080h, 0cch, 003h, 089h, 046h, 016h, 0e9h, 0dfh, 0fch, 0bbh, 0dah, 00ch, 08ch 7452 7494 db 0d9h, 0b8h, 004h, 000h, 0e8h, 04eh, 0c2h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h, 050h, 068h, 0ech 7453 7495 db 005h, 068h, 002h, 007h, 06ah, 004h, 0e8h, 077h, 0c2h, 083h, 0c4h, 008h, 0e9h, 0b8h, 0fch, 0bbh 7454 db 0 52h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 02bh, 0c2h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h7496 db 0dah, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 02bh, 0c2h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h 7455 7497 db 050h, 068h, 0ech, 005h, 068h, 035h, 007h, 0e9h, 032h, 0fdh, 08bh, 046h, 016h, 030h, 0e4h, 080h 7456 7498 db 0cch, 001h, 089h, 046h, 016h, 08bh, 05eh, 016h, 0c1h, 0ebh, 008h, 030h, 0ffh, 0bah, 074h, 000h … … 7560 7602 cmp dx, word [es:bx+032h] ; 26 3b 57 32 7561 7603 jc short 0581ah ; 72 23 7562 mov bx, 00c 52h ; bb 520c7604 mov bx, 00cdah ; bb da 0c 7563 7605 mov cx, ds ; 8c d9 7564 7606 mov ax, strict word 00004h ; b8 04 00 … … 7612 7654 test dl, dl ; 84 d2 7613 7655 je near 05b35h ; 0f 84 97 02 7614 mov bx, 00c 52h ; bb 520c7656 mov bx, 00cdah ; bb da 0c 7615 7657 mov cx, ds ; 8c d9 7616 7658 mov ax, strict word 00004h ; b8 04 00 … … 7848 7890 leave ; c9 7849 7891 retn ; c3 7850 mov bx, 00c 52h ; bb 520c7892 mov bx, 00cdah ; bb da 0c 7851 7893 mov cx, ds ; 8c d9 7852 7894 mov ax, strict word 00004h ; b8 04 00 … … 8176 8218 mov word [bp+010h], ax ; 89 46 10 8177 8219 jmp near 05e85h ; e9 2b 00 8178 mov bx, 00c 52h ; bb 520c8220 mov bx, 00cdah ; bb da 0c 8179 8221 mov cx, ds ; 8c d9 8180 8222 mov ax, strict word 00004h ; b8 04 00 … … 8517 8559 retf ; cb 8518 8560 jmp near 05e85h ; e9 ba fc 8519 mov bx, 00c 52h ; bb 520c8561 mov bx, 00cdah ; bb da 0c 8520 8562 mov cx, ds ; 8c d9 8521 8563 mov ax, strict word 00004h ; b8 04 00 … … 8557 8599 or byte [bp+01ch], 001h ; 80 4e 1c 01 8558 8600 jmp near 05e85h ; e9 44 fc 8559 mov bx, 00c 52h ; bb 520c8601 mov bx, 00cdah ; bb da 0c 8560 8602 mov cx, ds ; 8c d9 8561 8603 mov ax, strict word 00004h ; b8 04 00 … … 8845 8887 pop si ; 5e 8846 8888 retn ; c3 8847 mov bx, 00c 52h ; bb 520c8889 mov bx, 00cdah ; bb da 0c 8848 8890 mov cx, ds ; 8c d9 8849 8891 mov ax, strict word 00004h ; b8 04 00 … … 9163 9205 je short 06856h ; 74 0e 9164 9206 push 00884h ; 68 84 08 9165 push 010 1ah ; 68 1a109207 push 010a2h ; 68 a2 10 9166 9208 push strict byte 00007h ; 6a 07 9167 9209 call 018e9h ; e8 96 b0 … … 9224 9266 je short 068bfh ; 74 0e 9225 9267 push 0088eh ; 68 8e 08 9226 push 010 1ah ; 68 1a109268 push 010a2h ; 68 a2 10 9227 9269 push strict byte 00007h ; 6a 07 9228 9270 call 018e9h ; e8 2d b0 … … 10516 10558 mov dx, ss ; 8c d2 10517 10559 lea ax, [bp-01ah] ; 8d 46 e6 10518 call 08 b1ah ; e8 63 1610560 call 08caah ; e8 f3 17 10519 10561 mov byte [bp-01ah], 025h ; c6 46 e6 25 10520 10562 push strict byte 00008h ; 6a 08 … … 10572 10614 cmp bx, 00200h ; 81 fb 00 02 10573 10615 je short 07574h ; 74 20 10574 mov bx, 00c 52h ; bb 520c10616 mov bx, 00cdah ; bb da 0c 10575 10617 mov cx, ds ; 8c d9 10576 10618 mov ax, strict word 00004h ; b8 04 00 … … 10600 10642 mov dx, di ; 89 fa 10601 10643 xor cx, cx ; 31 c9 10602 call 08 ab0h ; e8 01 1510644 call 08c40h ; e8 91 16 10603 10645 mov word [bp-00eh], dx ; 89 56 f2 10604 10646 mov es, [bp-006h] ; 8e 46 fa … … 11028 11070 mov ax, 00080h ; b8 80 00 11029 11071 mov dx, word [bp-004h] ; 8b 56 fc 11030 call 08 b1ah ; e8 8d 1111072 call 08caah ; e8 1d 13 11031 11073 mov es, [bp-004h] ; 8e 46 fc 11032 11074 mov word [es:si+00080h], 08027h ; 26 c7 84 80 00 27 80 … … 11069 11111 mov bx, word [bp-010h] ; 8b 5e f0 11070 11112 xor cx, cx ; 31 c9 11071 call 08 ae9h ; e8 c0 1011113 call 08c79h ; e8 50 12 11072 11114 push dx ; 52 11073 11115 push ax ; 50 … … 11077 11119 mov ax, 0026ah ; b8 6a 02 11078 11120 mov dx, word [bp-004h] ; 8b 56 fc 11079 call 08 a09h ; e8 ca 0f11121 call 08b9dh ; e8 5e 11 11080 11122 mov es, [bp-004h] ; 8e 46 fc 11081 11123 movzx ax, byte [es:si+00263h] ; 26 0f b6 84 63 02 … … 11138 11180 add ax, 0026ah ; 05 6a 02 11139 11181 mov dx, word [bp-006h] ; 8b 56 fa 11140 call 08 a7fh ; e8 6f 0f11182 call 08c13h ; e8 03 11 11141 11183 leave ; c9 11142 11184 pop di ; 5f … … 11180 11222 mov ax, di ; 89 f8 11181 11223 mov dx, word [bp-004h] ; 8b 56 fc 11182 call 08 b1ah ; e8 a4 0f11224 call 08caah ; e8 34 11 11183 11225 lea ax, [di+00080h] ; 8d 85 80 00 11184 11226 mov cx, strict word 00040h ; b9 40 00 11185 11227 xor bx, bx ; 31 db 11186 11228 mov dx, word [bp-004h] ; 8b 56 fc 11187 call 08 b1ah ; e8 95 0f11229 call 08caah ; e8 25 11 11188 11230 lea ax, [di+00200h] ; 8d 85 00 02 11189 11231 mov cx, strict word 00060h ; b9 60 00 11190 11232 xor bx, bx ; 31 db 11191 11233 mov dx, word [bp-004h] ; 8b 56 fc 11192 call 08 b1ah ; e8 86 0f11234 call 08caah ; e8 16 11 11193 11235 mov ax, word [bp-006h] ; 8b 46 fa 11194 11236 add ax, 00108h ; 05 08 01 … … 11322 11364 mov ax, si ; 89 f0 11323 11365 mov dx, word [bp-004h] ; 8b 56 fc 11324 call 08 b1ah ; e8 6e 0e11366 call 08caah ; e8 fe 0f 11325 11367 lea ax, [si+00080h] ; 8d 84 80 00 11326 11368 mov cx, strict word 00040h ; b9 40 00 11327 11369 xor bx, bx ; 31 db 11328 11370 mov dx, word [bp-004h] ; 8b 56 fc 11329 call 08 b1ah ; e8 5f 0e11371 call 08caah ; e8 ef 0f 11330 11372 mov ax, si ; 89 f0 11331 11373 add ah, 002h ; 80 c4 02 … … 11334 11376 xor bx, bx ; 31 db 11335 11377 mov dx, word [bp-004h] ; 8b 56 fc 11336 call 08 b1ah ; e8 4c 0e11378 call 08caah ; e8 dc 0f 11337 11379 lea ax, [di+00108h] ; 8d 85 08 01 11338 11380 cwd ; 99 … … 11497 11539 pop cx ; 59 11498 11540 retn ; c3 11499 @ahci_read_sectors: ; 0xf7e55 LB 0x 8b11541 @ahci_read_sectors: ; 0xf7e55 LB 0x91 11500 11542 push si ; 56 11501 11543 push di ; 57 … … 11530 11572 mov es, [bp+00ah] ; 8e 46 0a 11531 11573 mov bx, di ; 89 fb 11532 mov cx, word [es:bx+00ah] ; 26 8b 4f 0a 11574 mov ax, word [es:bx+00ah] ; 26 8b 47 0a 11575 mov word [es:bx+014h], ax ; 26 89 47 14 11576 mov cx, ax ; 89 c1 11533 11577 sal cx, 009h ; c1 e1 09 11534 11578 shr cx, 1 ; d1 e9 … … 11545 11589 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 11546 11590 xor ax, ax ; 31 c0 11547 call 07779h ; e8 a1f811591 call 07779h ; e8 9b f8 11548 11592 xor ax, ax ; 31 c0 11549 11593 pop bp ; 5d … … 11551 11595 pop si ; 5e 11552 11596 retn 00004h ; c2 04 00 11553 @ahci_write_sectors: ; 0xf7ee 0 LB 0x6511597 @ahci_write_sectors: ; 0xf7ee6 LB 0x6d 11554 11598 push si ; 56 11555 11599 push bp ; 55 … … 11561 11605 sub bx, strict byte 0000ch ; 83 eb 0c 11562 11606 cmp bx, strict byte 00004h ; 83 fb 04 11563 jbe short 07f0 8h ; 76 0f11607 jbe short 07f0eh ; 76 0f 11564 11608 push bx ; 53 11565 11609 push 00bcbh ; 68 cb 0b 11566 11610 push 00bach ; 68 ac 0b 11567 11611 push strict byte 00007h ; 6a 07 11568 call 018e9h ; e8 e49911612 call 018e9h ; e8 de 99 11569 11613 add sp, strict byte 00008h ; 83 c4 08 11570 11614 mov es, cx ; 8e c1 11571 11615 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 11572 11616 xor ax, ax ; 31 c0 11573 call 07765h ; e8 51f811617 call 07765h ; e8 4b f8 11574 11618 mov es, cx ; 8e c1 11575 11619 add bx, si ; 01 f3 … … 11577 11621 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 11578 11622 xor ax, ax ; 31 c0 11579 call 07c54h ; e8 2 cfd11623 call 07c54h ; e8 26 fd 11580 11624 mov bx, strict word 00035h ; bb 35 00 11581 11625 mov ax, si ; 89 f0 11582 11626 mov dx, cx ; 89 ca 11583 call 07950h ; e8 1 efa11627 call 07950h ; e8 18 fa 11584 11628 mov es, cx ; 8e c1 11629 mov dx, word [es:si+00ah] ; 26 8b 54 0a 11630 mov word [es:si+014h], dx ; 26 89 54 14 11585 11631 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 11586 11632 xor ax, ax ; 31 c0 11587 call 07779h ; e8 3bf811633 call 07779h ; e8 2d f8 11588 11634 xor ax, ax ; 31 c0 11589 11635 pop bp ; 5d 11590 11636 pop si ; 5e 11591 11637 retn 00004h ; c2 04 00 11592 ahci_cmd_packet_: ; 0xf7f 45LB 0x16e11638 ahci_cmd_packet_: ; 0xf7f53 LB 0x16e 11593 11639 push si ; 56 11594 11640 push di ; 57 … … 11600 11646 mov dx, strict word 0000eh ; ba 0e 00 11601 11647 mov ax, strict word 00040h ; b8 40 00 11602 call 0161ch ; e8 b e9611648 call 0161ch ; e8 b0 96 11603 11649 mov si, 00122h ; be 22 01 11604 11650 mov word [bp-004h], ax ; 89 46 fc 11605 11651 cmp byte [bp+00eh], 002h ; 80 7e 0e 02 11606 jne short 07f 89h ; 75 1f11607 mov bx, 00c 52h ; bb 520c11652 jne short 07f97h ; 75 1f 11653 mov bx, 00cdah ; bb da 0c 11608 11654 mov cx, ds ; 8c d9 11609 11655 mov ax, strict word 00004h ; b8 04 00 11610 call 018aeh ; e8 399911656 call 018aeh ; e8 2b 99 11611 11657 push 00bdeh ; 68 de 0b 11612 11658 push 00beeh ; 68 ee 0b 11613 11659 push strict byte 00004h ; 6a 04 11614 call 018e9h ; e8 699911660 call 018e9h ; e8 5b 99 11615 11661 add sp, strict byte 00006h ; 83 c4 06 11616 11662 mov ax, strict word 00001h ; b8 01 00 11617 jmp near 080 adh ; e9 24 0111663 jmp near 080bbh ; e9 24 01 11618 11664 test byte [bp+008h], 001h ; f6 46 08 01 11619 jne short 07f 83h ; 75 f411665 jne short 07f91h ; 75 f4 11620 11666 mov ax, word [bp+00ah] ; 8b 46 0a 11621 11667 mov dx, word [bp+00ch] ; 8b 56 0c … … 11623 11669 sal ax, 1 ; d1 e0 11624 11670 rcl dx, 1 ; d1 d2 11625 loop 07f 98h ; e2 fa11671 loop 07fa6h ; e2 fa 11626 11672 mov es, [bp-004h] ; 8e 46 fc 11627 11673 mov word [es:si], ax ; 26 89 04 … … 11635 11681 mov dx, word [bp+00ch] ; 8b 56 0c 11636 11682 xor cx, cx ; 31 c9 11637 call 08 ab0h ; e8 eb 0a11683 call 08c40h ; e8 6d 0c 11638 11684 mov word [es:si+00ah], ax ; 26 89 44 0a 11639 11685 xor di, di ; 31 ff … … 11642 11688 mov word [bp-00ah], di ; 89 7e f6 11643 11689 mov word [bp-008h], ax ; 89 46 f8 11644 add word [bp-010h], strict byte 0fff4h ; 83 46 f0 f411690 sub word [bp-010h], strict byte 0000ch ; 83 6e f0 0c 11645 11691 xor ax, ax ; 31 c0 11646 11692 mov dx, word [bp-006h] ; 8b 56 fa 11647 call 07765h ; e8 80f711693 call 07765h ; e8 72 f7 11648 11694 mov es, [bp-004h] ; 8e 46 fc 11649 11695 mov bx, word [bp-010h] ; 8b 5e f0 … … 11652 11698 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 11653 11699 xor ax, ax ; 31 c0 11654 call 07c54h ; e8 57fc11700 call 07c54h ; e8 49 fc 11655 11701 movzx ax, byte [bp-002h] ; 0f b6 46 fe 11656 11702 push ax ; 50 … … 11659 11705 mov ax, 000c0h ; b8 c0 00 11660 11706 mov dx, word [bp-006h] ; 8b 56 fa 11661 call 08 b27h ; e8 16 0b11707 call 08cb7h ; e8 98 0c 11662 11708 mov es, [bp-004h] ; 8e 46 fc 11663 11709 mov word [es:si+014h], di ; 26 89 7c 14 … … 11666 11712 mov ax, word [es:si+01ah] ; 26 8b 44 1a 11667 11713 test ax, ax ; 85 c0 11668 je short 080 4fh ; 74 2711714 je short 0805dh ; 74 27 11669 11715 dec ax ; 48 11670 11716 mov es, [bp-006h] ; 8e 46 fa … … 11679 11725 mov ax, si ; 89 f0 11680 11726 mov dx, word [bp-004h] ; 8b 56 fc 11681 call 07950h ; e8 f6f811727 call 07950h ; e8 e8 f8 11682 11728 les bx, [bp-00ah] ; c4 5e f6 11683 11729 mov ax, word [es:bx+004h] ; 26 8b 47 04 … … 11702 11748 mov ax, word [bp-00ah] ; 8b 46 f6 11703 11749 mov dx, word [bp-008h] ; 8b 56 f8 11704 call 07779h ; e8 e0f611750 call 07779h ; e8 d2 f6 11705 11751 les bx, [bp-00ah] ; c4 5e f6 11706 11752 mov ax, word [es:bx+006h] ; 26 8b 47 06 11707 11753 or ax, word [es:bx+004h] ; 26 0b 47 04 11708 jne short 080 abh ; 75 0511754 jne short 080b9h ; 75 05 11709 11755 mov ax, strict word 00004h ; b8 04 00 11710 jmp short 080 adh ; eb 0211756 jmp short 080bbh ; eb 02 11711 11757 xor ax, ax ; 31 c0 11712 11758 leave ; c9 … … 11714 11760 pop si ; 5e 11715 11761 retn 0000ch ; c2 0c 00 11716 ahci_port_detect_device_: ; 0xf80 b3 LB 0x36811762 ahci_port_detect_device_: ; 0xf80c1 LB 0x3c3 11717 11763 push cx ; 51 11718 11764 push si ; 56 11719 11765 push di ; 57 11720 enter 002 18h, 000h ; c8 1802 0011766 enter 00220h, 000h ; c8 20 02 00 11721 11767 mov di, ax ; 89 c7 11722 mov word [bp-0 14h], dx ; 89 56 ec11723 mov byte [bp-00 4h], bl ; 88 5e fc11768 mov word [bp-00ah], dx ; 89 56 f6 11769 mov byte [bp-002h], bl ; 88 5e fe 11724 11770 movzx cx, bl ; 0f b6 cb 11725 11771 mov bx, cx ; 89 cb 11726 call 07c54h ; e8 8afb11772 call 07c54h ; e8 7c fb 11727 11773 mov dx, strict word 0000eh ; ba 0e 00 11728 11774 mov ax, strict word 00040h ; b8 40 00 11729 call 0161ch ; e8 499511730 mov word [bp-01 6h], ax ; 89 46 ea11775 call 0161ch ; e8 3b 95 11776 mov word [bp-01eh], ax ; 89 46 e2 11731 11777 mov si, 00122h ; be 22 01 11732 11778 mov word [bp-008h], ax ; 89 46 f8 11733 mov word [bp-00 ch], si ; 89 76 f411734 mov word [bp-00 ah], ax ; 89 46 f611779 mov word [bp-00eh], si ; 89 76 f2 11780 mov word [bp-00ch], ax ; 89 46 f4 11735 11781 sal cx, 007h ; c1 e1 07 11736 mov word [bp-0 0eh], cx ; 89 4e f211782 mov word [bp-012h], cx ; 89 4e ee 11737 11783 mov ax, cx ; 89 c8 11738 11784 add ax, 0012ch ; 05 2c 01 11739 11785 cwd ; 99 11740 mov word [bp-0 18h], ax ; 89 46 e811786 mov word [bp-020h], ax ; 89 46 e0 11741 11787 mov bx, dx ; 89 d3 11742 mov es, [bp-0 14h] ; 8e 46 ec11788 mov es, [bp-00ah] ; 8e 46 f6 11743 11789 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 11744 11790 mov cx, bx ; 89 d9 … … 11748 11794 ; mov ax, cx ; 8b c1 11749 11795 out DX, eax ; 66 ef 11750 mov es, [bp-0 14h] ; 8e 46 ec11796 mov es, [bp-00ah] ; 8e 46 f6 11751 11797 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 11752 11798 add dx, strict byte 00004h ; 83 c2 04 … … 11758 11804 ; mov ax, cx ; 8b c1 11759 11805 out DX, eax ; 66 ef 11760 mov es, [bp-0 14h] ; 8e 46 ec11806 mov es, [bp-00ah] ; 8e 46 f6 11761 11807 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 11762 mov ax, word [bp-0 18h] ; 8b 46 e811808 mov ax, word [bp-020h] ; 8b 46 e0 11763 11809 mov cx, bx ; 89 d9 11764 11810 xchg cx, ax ; 91 … … 11767 11813 ; mov ax, cx ; 8b c1 11768 11814 out DX, eax ; 66 ef 11769 mov es, [bp-0 14h] ; 8e 46 ec11815 mov es, [bp-00ah] ; 8e 46 f6 11770 11816 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 11771 11817 add dx, strict byte 00004h ; 83 c2 04 … … 11777 11823 ; mov ax, cx ; 8b c1 11778 11824 out DX, eax ; 66 ef 11779 mov ax, word [bp-0 0eh] ; 8b 46 f211825 mov ax, word [bp-012h] ; 8b 46 ee 11780 11826 add ax, 00128h ; 05 28 01 11781 11827 cwd ; 99 11782 mov es, [bp-0 14h] ; 8e 46 ec11828 mov es, [bp-00ah] ; 8e 46 f6 11783 11829 mov bx, word [es:di+00260h] ; 26 8b 9d 60 02 11784 11830 mov cx, dx ; 89 d1 … … 11789 11835 ; mov ax, cx ; 8b c1 11790 11836 out DX, eax ; 66 ef 11791 mov es, [bp-0 14h] ; 8e 46 ec11837 mov es, [bp-00ah] ; 8e 46 f6 11792 11838 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 11793 11839 add dx, strict byte 00004h ; 83 c2 04 … … 11800 11846 mov bx, strict word 0000fh ; bb 0f 00 11801 11847 xor cx, cx ; 31 c9 11802 call 07847h ; e8 c0f611848 call 07847h ; e8 b2 f6 11803 11849 cmp ax, strict word 00003h ; 3d 03 00 11804 jne near 084 16h ; 0f 85 880211850 jne near 0847fh ; 0f 85 e3 02 11805 11851 mov es, [bp-008h] ; 8e 46 f8 11806 11852 mov al, byte [es:si+001edh] ; 26 8a 84 ed 01 11807 mov byte [bp-00 6h], al ; 88 46 fa11853 mov byte [bp-004h], al ; 88 46 fc 11808 11854 cmp AL, strict byte 004h ; 3c 04 11809 jnc near 084 16h ; 0f 83 770211810 mov dx, word [bp-0 0eh] ; 8b 56 f211855 jnc near 0847fh ; 0f 83 d2 02 11856 mov dx, word [bp-012h] ; 8b 56 ee 11811 11857 add dx, 00118h ; 81 c2 18 01 11812 mov es, [bp-0 14h] ; 8e 46 ec11858 mov es, [bp-00ah] ; 8e 46 f6 11813 11859 mov ax, word [es:di+00260h] ; 26 8b 85 60 02 11814 11860 mov bx, strict word 00010h ; bb 10 00 11815 11861 xor cx, cx ; 31 c9 11816 call 0778dh ; e8 d7f511817 mov ax, word [bp-0 0eh] ; 8b 46 f211862 call 0778dh ; e8 c9 f5 11863 mov ax, word [bp-012h] ; 8b 46 ee 11818 11864 add ax, 00124h ; 05 24 01 11819 11865 cwd ; 99 11820 mov es, [bp-014h] ; 8e 46 ec11821 mov bx, word [es:di+00260h] ; 26 8b 9d 60 0211822 11866 mov cx, dx ; 89 d1 11823 mov dx, bx ; 89 da 11867 mov es, [bp-00ah] ; 8e 46 f6 11868 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 11824 11869 xchg cx, ax ; 91 11825 11870 sal eax, 010h ; 66 c1 e0 10 … … 11827 11872 ; mov ax, cx ; 8b c1 11828 11873 out DX, eax ; 66 ef 11829 mov es, [bp-0 14h] ; 8e 46 ec11874 mov es, [bp-00ah] ; 8e 46 f6 11830 11875 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 11831 11876 add dx, strict byte 00004h ; 83 c2 04 … … 11835 11880 shr eax, 010h ; 66 c1 e8 10 11836 11881 xchg dx, ax ; 92 11837 mov cl, byte [bp-006h] ; 8a 4e fa 11882 mov bx, ax ; 89 c3 11883 mov ax, dx ; 89 d0 11884 mov cl, byte [bp-004h] ; 8a 4e fc 11838 11885 add cl, 00ch ; 80 c1 0c 11839 11886 test dx, dx ; 85 d2 11840 jne near 083 73h ; 0f 85 810111841 cmp ax, 00101h ; 3d01 0111842 jne near 083 73h ; 0f 85 7a0111887 jne near 083d9h ; 0f 85 d7 01 11888 cmp bx, 00101h ; 81 fb 01 01 11889 jne near 083d9h ; 0f 85 cf 01 11843 11890 mov es, [bp-008h] ; 8e 46 f8 11844 11891 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h 11845 11892 ; mov dword [es:si], strict dword 000000000h ; 66 26 c7 04 00 00 00 00 11846 lea dx, [bp-002 18h] ; 8d 96 e8fd11893 lea dx, [bp-00220h] ; 8d 96 e0 fd 11847 11894 mov word [es:si+004h], dx ; 26 89 54 04 11848 11895 mov [es:si+006h], ss ; 26 8c 54 06 … … 11851 11898 mov bx, 000ech ; bb ec 00 11852 11899 mov ax, si ; 89 f0 11853 mov dx, word [bp-01 6h] ; 8b 56 ea11854 call 07950h ; e8 2cf711855 mov dh, cl ; 88 ce11856 test byte [bp-002 18h], 080h ; f6 86 e8fd 8011900 mov dx, word [bp-01eh] ; 8b 56 e2 11901 call 07950h ; e8 1b f7 11902 mov byte [bp-006h], cl ; 88 4e fa 11903 test byte [bp-00220h], 080h ; f6 86 e0 fd 80 11857 11904 db 00fh, 095h, 0c0h 11858 11905 ; setne al ; 0f 95 c0 11859 11906 xor ah, ah ; 30 e4 11860 mov byte [bp-002h], al ; 88 46 fe 11861 mov ax, word [bp-00216h] ; 8b 86 ea fd 11862 mov word [bp-010h], ax ; 89 46 f0 11863 mov di, word [bp-00212h] ; 8b be ee fd 11864 mov cx, word [bp-0020ch] ; 8b 8e f4 fd 11865 mov ax, word [bp-001a0h] ; 8b 86 60 fe 11866 mov bx, word [bp-0019eh] ; 8b 9e 62 fe 11867 mov word [bp-012h], bx ; 89 5e ee 11868 cmp bx, 00fffh ; 81 fb ff 0f 11869 jne short 08261h ; 75 0e 11870 cmp ax, strict word 0ffffh ; 3d ff ff 11871 jne short 08261h ; 75 09 11872 mov ax, word [bp-00150h] ; 8b 86 b0 fe 11873 mov word [bp-012h], strict word 00000h ; c7 46 ee 00 00 11874 movzx bx, byte [bp-006h] ; 0f b6 5e fa 11875 mov es, [bp-00ah] ; 8e 46 f6 11876 add bx, word [bp-00ch] ; 03 5e f4 11877 mov dl, byte [bp-004h] ; 8a 56 fc 11878 mov byte [es:bx+001e9h], dl ; 26 88 97 e9 01 11879 movzx bx, dh ; 0f b6 de 11880 imul bx, bx, strict byte 00018h ; 6b db 18 11881 mov si, word [bp-00ch] ; 8b 76 f4 11882 add si, bx ; 01 de 11907 mov dx, word [bp-0021eh] ; 8b 96 e2 fd 11908 mov word [bp-018h], dx ; 89 56 e8 11909 mov dx, word [bp-0021ah] ; 8b 96 e6 fd 11910 mov word [bp-014h], dx ; 89 56 ec 11911 mov dx, word [bp-00214h] ; 8b 96 ec fd 11912 mov word [bp-01ah], dx ; 89 56 e6 11913 mov dx, word [bp-001a8h] ; 8b 96 58 fe 11914 mov word [bp-010h], dx ; 89 56 f0 11915 mov di, word [bp-001a6h] ; 8b be 5a fe 11916 cmp di, 00fffh ; 81 ff ff 0f 11917 jne short 08278h ; 75 10 11918 cmp dx, strict byte 0ffffh ; 83 fa ff 11919 jne short 08278h ; 75 0b 11920 mov dx, word [bp-00158h] ; 8b 96 a8 fe 11921 mov word [bp-010h], dx ; 89 56 f0 11922 mov di, word [bp-00156h] ; 8b be aa fe 11923 movzx bx, byte [bp-004h] ; 0f b6 5e fc 11924 mov es, [bp-00ch] ; 8e 46 f4 11925 add bx, word [bp-00eh] ; 03 5e f2 11926 mov ah, byte [bp-002h] ; 8a 66 fe 11927 mov byte [es:bx+001e9h], ah ; 26 88 a7 e9 01 11928 movzx dx, byte [bp-006h] ; 0f b6 56 fa 11929 imul dx, dx, strict byte 00018h ; 6b d2 18 11930 mov si, word [bp-00eh] ; 8b 76 f2 11931 add si, dx ; 01 d6 11883 11932 mov word [es:si+01eh], 0ff05h ; 26 c7 44 1e 05 ff 11884 mov dl, byte [bp-002h] ; 8a 56 fe 11885 mov byte [es:si+020h], dl ; 26 88 54 20 11933 mov byte [es:si+020h], al ; 26 88 44 20 11886 11934 mov byte [es:si+021h], 000h ; 26 c6 44 21 00 11887 11935 mov word [es:si+024h], 00200h ; 26 c7 44 24 00 02 11888 11936 mov byte [es:si+023h], 001h ; 26 c6 44 23 01 11937 mov ax, word [bp-010h] ; 8b 46 f0 11889 11938 mov word [es:si+032h], ax ; 26 89 44 32 11890 mov ax, word [bp-012h] ; 8b 46 ee11891 mov word [es:si+034h], ax ; 26 89 44 3411892 mov word [es:si+02ch], di ; 26 89 7c2c11893 mov ax, word [bp-01 0h] ; 8b 46 f011939 mov word [es:si+034h], di ; 26 89 7c 34 11940 mov ax, word [bp-014h] ; 8b 46 ec 11941 mov word [es:si+02ch], ax ; 26 89 44 2c 11942 mov ax, word [bp-018h] ; 8b 46 e8 11894 11943 mov word [es:si+02eh], ax ; 26 89 44 2e 11895 mov word [es:si+030h], cx ; 26 89 4c 30 11896 mov al, byte [bp-006h] ; 8a 46 fa 11944 mov ax, word [bp-01ah] ; 8b 46 e6 11945 mov word [es:si+030h], ax ; 26 89 44 30 11946 mov al, byte [bp-004h] ; 8a 46 fc 11897 11947 cmp AL, strict byte 001h ; 3c 01 11898 jc short 082 c8h ; 72 0c11899 jbe short 082 d0h ; 76 1211948 jc short 082e3h ; 72 0c 11949 jbe short 082ebh ; 76 12 11900 11950 cmp AL, strict byte 003h ; 3c 03 11901 je short 082 d8h ; 74 1611951 je short 082f3h ; 74 16 11902 11952 cmp AL, strict byte 002h ; 3c 02 11903 je short 082 d4h ; 74 0e11904 jmp short 083 1ah ; eb 5211953 je short 082efh ; 74 0e 11954 jmp short 0833ah ; eb 57 11905 11955 test al, al ; 84 c0 11906 jne short 083 1ah ; 75 4e11956 jne short 0833ah ; 75 53 11907 11957 mov DL, strict byte 040h ; b2 40 11908 jmp short 082 dah ; eb 0a11958 jmp short 082f5h ; eb 0a 11909 11959 mov DL, strict byte 048h ; b2 48 11910 jmp short 082 dah ; eb 0611960 jmp short 082f5h ; eb 06 11911 11961 mov DL, strict byte 050h ; b2 50 11912 jmp short 082 dah ; eb 0211962 jmp short 082f5h ; eb 02 11913 11963 mov DL, strict byte 058h ; b2 58 11914 11964 mov al, dl ; 88 d0 … … 11916 11966 movzx bx, al ; 0f b6 d8 11917 11967 mov ax, bx ; 89 d8 11918 call 0165ch ; e8 769311968 call 0165ch ; e8 5b 93 11919 11969 test al, al ; 84 c0 11920 je short 083 1ah ; 74 3011970 je short 0833ah ; 74 35 11921 11971 mov al, dl ; 88 d0 11922 11972 db 0feh, 0c0h 11923 11973 ; inc al ; fe c0 11924 11974 xor ah, ah ; 30 e4 11925 call 0165ch ; e8 69 93 11926 movzx cx, al ; 0f b6 c8 11975 call 0165ch ; e8 4e 93 11976 xor ah, ah ; 30 e4 11977 mov cx, ax ; 89 c1 11927 11978 sal cx, 008h ; c1 e1 08 11928 11979 movzx ax, dl ; 0f b6 c2 11929 call 0165ch ; e8 5d9311980 call 0165ch ; e8 41 93 11930 11981 xor ah, ah ; 30 e4 11931 11982 add ax, cx ; 01 c8 11932 mov word [bp-01 0h], ax ; 89 46 f011983 mov word [bp-01ch], ax ; 89 46 e4 11933 11984 mov al, dl ; 88 d0 11934 11985 add AL, strict byte 002h ; 04 02 11935 11986 xor ah, ah ; 30 e4 11936 call 0165ch ; e8 4d 93 11937 movzx di, al ; 0f b6 f8 11987 call 0165ch ; e8 31 93 11988 xor ah, ah ; 30 e4 11989 mov word [bp-016h], ax ; 89 46 ea 11938 11990 mov ax, bx ; 89 d8 11939 call 0165ch ; e8 45 93 11940 movzx cx, al ; 0f b6 c8 11941 movzx si, dh ; 0f b6 f6 11942 imul si, si, strict byte 00018h ; 6b f6 18 11943 mov es, [bp-00ah] ; 8e 46 f6 11944 add si, word [bp-00ch] ; 03 76 f4 11945 mov word [es:si+026h], di ; 26 89 7c 26 11946 mov ax, word [bp-010h] ; 8b 46 f0 11991 call 0165ch ; e8 27 93 11992 movzx dx, al ; 0f b6 d0 11993 jmp short 08349h ; eb 0f 11994 mov ax, word [bp-018h] ; 8b 46 e8 11995 mov word [bp-01ch], ax ; 89 46 e4 11996 mov ax, word [bp-014h] ; 8b 46 ec 11997 mov word [bp-016h], ax ; 89 46 ea 11998 mov dx, word [bp-01ah] ; 8b 56 e6 11999 mov bx, 00cdah ; bb da 0c 12000 mov cx, ds ; 8c d9 12001 mov ax, strict word 00004h ; b8 04 00 12002 call 018aeh ; e8 5a 95 12003 push di ; 57 12004 push word [bp-010h] ; ff 76 f0 12005 push dx ; 52 12006 push word [bp-016h] ; ff 76 ea 12007 push word [bp-01ch] ; ff 76 e4 12008 push word [bp-01ah] ; ff 76 e6 12009 push word [bp-014h] ; ff 76 ec 12010 push word [bp-018h] ; ff 76 e8 12011 movzx ax, byte [bp-002h] ; 0f b6 46 fe 12012 push ax ; 50 12013 movzx ax, byte [bp-004h] ; 0f b6 46 fc 12014 push ax ; 50 12015 push 00c0eh ; 68 0e 0c 12016 push strict byte 00004h ; 6a 04 12017 call 018e9h ; e8 6f 95 12018 add sp, strict byte 00018h ; 83 c4 18 12019 movzx ax, byte [bp-006h] ; 0f b6 46 fa 12020 imul ax, ax, strict byte 00018h ; 6b c0 18 12021 les si, [bp-00eh] ; c4 76 f2 12022 add si, ax ; 01 c6 12023 mov ax, word [bp-016h] ; 8b 46 ea 12024 mov word [es:si+026h], ax ; 26 89 44 26 12025 mov ax, word [bp-01ch] ; 8b 46 e4 11947 12026 mov word [es:si+028h], ax ; 26 89 44 28 11948 mov word [es:si+02ah], cx ; 26 89 4c2a11949 mov bx, word [bp-00 ch] ; 8b 5e f412027 mov word [es:si+02ah], dx ; 26 89 54 2a 12028 mov bx, word [bp-00eh] ; 8b 5e f2 11950 12029 mov dl, byte [es:bx+0019eh] ; 26 8a 97 9e 01 11951 mov al, byte [bp-00 6h] ; 8a 46 fa12030 mov al, byte [bp-004h] ; 8a 46 fc 11952 12031 add AL, strict byte 00ch ; 04 0c 11953 12032 movzx bx, dl ; 0f b6 da 11954 add bx, word [bp-00 ch] ; 03 5e f412033 add bx, word [bp-00eh] ; 03 5e f2 11955 12034 mov byte [es:bx+0019fh], al ; 26 88 87 9f 01 11956 12035 db 0feh, 0c2h 11957 12036 ; inc dl ; fe c2 11958 mov bx, word [bp-00 ch] ; 8b 5e f412037 mov bx, word [bp-00eh] ; 8b 5e f2 11959 12038 mov byte [es:bx+0019eh], dl ; 26 88 97 9e 01 11960 12039 mov dx, strict word 00075h ; ba 75 00 11961 12040 mov ax, strict word 00040h ; b8 40 00 11962 call 01600h ; e8 a09212041 call 01600h ; e8 3a 92 11963 12042 mov dl, al ; 88 c2 11964 12043 db 0feh, 0c2h … … 11967 12046 mov dx, strict word 00075h ; ba 75 00 11968 12047 mov ax, strict word 00040h ; b8 40 00 11969 call 0160eh ; e8 9e9211970 jmp near 084 08h ; e9 950012048 call 0160eh ; e8 38 92 12049 jmp near 08471h ; e9 98 00 11971 12050 cmp dx, 0eb14h ; 81 fa 14 eb 11972 jne near 084 08h ; 0f 85 8d0011973 cmp ax, 00101h ; 3d01 0111974 jne near 084 08h ; 0f 85 860012051 jne near 08471h ; 0f 85 90 00 12052 cmp bx, 00101h ; 81 fb 01 01 12053 jne near 08471h ; 0f 85 88 00 11975 12054 mov es, [bp-008h] ; 8e 46 f8 11976 12055 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h 11977 12056 ; mov dword [es:si], strict dword 000000000h ; 66 26 c7 04 00 00 00 00 11978 lea dx, [bp-002 18h] ; 8d 96 e8fd12057 lea dx, [bp-00220h] ; 8d 96 e0 fd 11979 12058 mov word [es:si+004h], dx ; 26 89 54 04 11980 12059 mov [es:si+006h], ss ; 26 8c 54 06 … … 11983 12062 mov bx, 000a1h ; bb a1 00 11984 12063 mov ax, si ; 89 f0 11985 mov dx, word [bp-01 6h] ; 8b 56 ea11986 call 07950h ; e8 a3f511987 test byte [bp-002 18h], 080h ; f6 86 e8fd 8012064 mov dx, word [bp-01eh] ; 8b 56 e2 12065 call 07950h ; e8 3c f5 12066 test byte [bp-00220h], 080h ; f6 86 e0 fd 80 11988 12067 db 00fh, 095h, 0c0h 11989 12068 ; setne al ; 0f 95 c0 11990 12069 xor ah, ah ; 30 e4 11991 movzx bx, byte [bp-006h] ; 0f b6 5e fa 11992 mov es, [bp-016h] ; 8e 46 ea 12070 mov dx, ax ; 89 c2 12071 movzx bx, byte [bp-004h] ; 0f b6 5e fc 12072 mov es, [bp-01eh] ; 8e 46 e2 11993 12073 add bx, si ; 01 f3 11994 mov a h, byte [bp-004h] ; 8a 66 fc11995 mov byte [es:bx+001e9h], a h ; 26 88 a7 e9 0112074 mov al, byte [bp-002h] ; 8a 46 fe 12075 mov byte [es:bx+001e9h], al ; 26 88 87 e9 01 11996 12076 movzx si, cl ; 0f b6 f1 11997 12077 imul si, si, strict byte 00018h ; 6b f6 18 11998 12078 add si, 00122h ; 81 c6 22 01 11999 12079 mov word [es:si+01eh], 00505h ; 26 c7 44 1e 05 05 12000 mov byte [es:si+020h], al ; 26 88 44 2012080 mov byte [es:si+020h], dl ; 26 88 54 20 12001 12081 mov word [es:si+024h], 00800h ; 26 c7 44 24 00 08 12002 les bx, [bp-00 ch] ; c4 5e f412082 les bx, [bp-00eh] ; c4 5e f2 12003 12083 mov dl, byte [es:bx+001afh] ; 26 8a 97 af 01 12004 mov al, byte [bp-00 6h] ; 8a 46 fa12084 mov al, byte [bp-004h] ; 8a 46 fc 12005 12085 add AL, strict byte 00ch ; 04 0c 12006 12086 movzx bx, dl ; 0f b6 da 12007 mov es, [bp-01 6h] ; 8e 46 ea12087 mov es, [bp-01eh] ; 8e 46 e2 12008 12088 add bx, 00122h ; 81 c3 22 01 12009 12089 mov byte [es:bx+001b0h], al ; 26 88 87 b0 01 12010 12090 db 0feh, 0c2h 12011 12091 ; inc dl ; fe c2 12012 les bx, [bp-00 ch] ; c4 5e f412092 les bx, [bp-00eh] ; c4 5e f2 12013 12093 mov byte [es:bx+001afh], dl ; 26 88 97 af 01 12014 inc byte [bp-00 6h] ; fe 46 fa12015 mov al, byte [bp-00 6h] ; 8a 46 fa12016 les bx, [bp-00 ch] ; c4 5e f412094 inc byte [bp-004h] ; fe 46 fc 12095 mov al, byte [bp-004h] ; 8a 46 fc 12096 les bx, [bp-00eh] ; c4 5e f2 12017 12097 mov byte [es:bx+001edh], al ; 26 88 87 ed 01 12018 12098 leave ; c9 … … 12021 12101 pop cx ; 59 12022 12102 retn ; c3 12023 ahci_mem_alloc_: ; 0xf84 1bLB 0x4012103 ahci_mem_alloc_: ; 0xf8484 LB 0x40 12024 12104 push bx ; 53 12025 12105 push cx ; 51 … … 12031 12111 mov dx, 00413h ; ba 13 04 12032 12112 xor ax, ax ; 31 c0 12033 call 0161ch ; e8 f19112113 call 0161ch ; e8 88 91 12034 12114 test ax, ax ; 85 c0 12035 je short 084 54h ; 74 2512115 je short 084bdh ; 74 25 12036 12116 dec ax ; 48 12037 12117 mov bx, ax ; 89 c3 … … 12040 12120 sal ax, 1 ; d1 e0 12041 12121 rcl dx, 1 ; d1 d2 12042 loop 084 37h ; e2 fa12122 loop 084a0h ; e2 fa 12043 12123 mov si, ax ; 89 c6 12044 12124 mov di, dx ; 89 d7 … … 12046 12126 shr di, 1 ; d1 ef 12047 12127 rcr si, 1 ; d1 de 12048 loop 084 44h ; e2 fa12128 loop 084adh ; e2 fa 12049 12129 mov dx, 00413h ; ba 13 04 12050 12130 xor ax, ax ; 31 c0 12051 call 0162ah ; e8 d89112131 call 0162ah ; e8 6f 91 12052 12132 mov ax, si ; 89 f0 12053 12133 pop bp ; 5d … … 12058 12138 pop bx ; 5b 12059 12139 retn ; c3 12060 ahci_hba_init_: ; 0xf84 5bLB 0x12012140 ahci_hba_init_: ; 0xf84c4 LB 0x120 12061 12141 push bx ; 53 12062 12142 push cx ; 51 … … 12068 12148 mov dx, strict word 0000eh ; ba 0e 00 12069 12149 mov ax, strict word 00040h ; b8 40 00 12070 call 0161ch ; e8 ad9112150 call 0161ch ; e8 44 91 12071 12151 mov bx, 00122h ; bb 22 01 12072 12152 mov word [bp-006h], ax ; 89 46 fa … … 12085 12165 shr eax, 010h ; 66 c1 e8 10 12086 12166 xchg dx, ax ; 92 12087 call 084 1bh ; e8 87 ff12167 call 08484h ; e8 87 ff 12088 12168 mov di, ax ; 89 c7 12089 12169 test ax, ax ; 85 c0 12090 je near 085 5dh ; 0f 84 c1 0012170 je near 085c6h ; 0f 84 c1 00 12091 12171 mov es, [bp-006h] ; 8e 46 fa 12092 12172 mov word [es:bx+001eeh], di ; 26 89 bf ee 01 … … 12102 12182 mov dx, strict word 00004h ; ba 04 00 12103 12183 mov ax, si ; 89 f0 12104 call 0778dh ; e8 bdf212184 call 0778dh ; e8 54 f2 12105 12185 mov ax, strict word 00004h ; b8 04 00 12106 12186 xor cx, cx ; 31 c9 … … 12119 12199 xchg dx, ax ; 92 12120 12200 test AL, strict byte 001h ; a8 01 12121 jne short 08 4d0h ; 75 de12201 jne short 08539h ; 75 de 12122 12202 xor ax, ax ; 31 c0 12123 12203 xor cx, cx ; 31 c9 … … 12137 12217 mov bx, strict word 0001fh ; bb 1f 00 12138 12218 xor cx, cx ; 31 c9 12139 call 07847h ; e8 31 f312219 call 07847h ; e8 c8 f2 12140 12220 db 0feh, 0c0h 12141 12221 ; inc al ; fe c0 12142 12222 mov byte [bp-004h], al ; 88 46 fc 12143 12223 mov byte [bp-002h], 000h ; c6 46 fe 00 12144 jmp short 085 2ah ; eb 0912224 jmp short 08593h ; eb 09 12145 12225 inc byte [bp-002h] ; fe 46 fe 12146 12226 cmp byte [bp-002h], 020h ; 80 7e fe 20 12147 jnc short 085 5bh ; 73 3112227 jnc short 085c4h ; 73 31 12148 12228 movzx cx, byte [bp-002h] ; 0f b6 4e fe 12149 12229 mov ax, strict word 00001h ; b8 01 00 12150 12230 xor dx, dx ; 31 d2 12151 jcxz 085 3bh ; e3 0612231 jcxz 085a4h ; e3 06 12152 12232 sal ax, 1 ; d1 e0 12153 12233 rcl dx, 1 ; d1 d2 12154 loop 085 35h ; e2 fa12234 loop 0859eh ; e2 fa 12155 12235 mov bx, ax ; 89 c3 12156 12236 mov cx, dx ; 89 d1 12157 12237 mov dx, strict word 0000ch ; ba 0c 00 12158 12238 mov ax, si ; 89 f0 12159 call 07811h ; e8 caf212239 call 07811h ; e8 61 f2 12160 12240 test al, al ; 84 c0 12161 je short 085 21h ; 74 d612241 je short 0858ah ; 74 d6 12162 12242 movzx bx, byte [bp-002h] ; 0f b6 5e fe 12163 12243 xor ax, ax ; 31 c0 12164 12244 mov dx, di ; 89 fa 12165 call 080 b3h ; e8 5dfb12245 call 080c1h ; e8 02 fb 12166 12246 dec byte [bp-004h] ; fe 4e fc 12167 jne short 085 21h ; 75 c612247 jne short 0858ah ; 75 c6 12168 12248 xor ax, ax ; 31 c0 12169 12249 leave ; c9 … … 12177 12257 add AL, strict byte 003h ; 04 03 12178 12258 add al, byte [bx+di] ; 02 01 12179 add byte [bx+si-07ah], cl ; 00 48 86 12180 xchg byte [es:si], ch ; 26 86 2c 12181 xchg byte [bp+si], dh ; 86 32 12182 xchg byte [bx+si], bh ; 86 38 12183 xchg byte [04486h], bh ; 86 3e 86 44 12184 xchg byte [bx+si-07ah], cl ; 86 48 86 12185 _ahci_init: ; 0xf857b LB 0xf9 12259 add byte [bx+di-0707ah], dh ; 00 b1 86 8f 12260 xchg byte [di-0647ah], dl ; 86 95 86 9b 12261 xchg byte [bx+di-0587ah], ah ; 86 a1 86 a7 12262 xchg byte [di-04e7ah], ch ; 86 ad 86 b1 12263 db 086h 12264 _ahci_init: ; 0xf85e4 LB 0xf9 12186 12265 push si ; 56 12187 12266 push di ; 57 … … 12189 12268 mov ax, 00601h ; b8 01 06 12190 12269 mov dx, strict word 00001h ; ba 01 00 12191 call 08 942h ; e8 b8 0312270 call 08ad6h ; e8 e3 04 12192 12271 mov dx, ax ; 89 c2 12193 12272 cmp ax, strict word 0ffffh ; 3d ff ff 12194 je near 086 70h ; 0f 84 dd 0012273 je near 086d9h ; 0f 84 dd 00 12195 12274 xor al, al ; 30 c0 12196 12275 shr ax, 008h ; c1 e8 08 … … 12200 12279 xor ah, ah ; 30 e4 12201 12280 mov bx, strict word 00034h ; bb 34 00 12202 call 08 96ah ; e8 c2 0312281 call 08afeh ; e8 ed 04 12203 12282 mov cl, al ; 88 c1 12204 12283 test cl, cl ; 84 c9 12205 je short 08 5d1h ; 74 2312284 je short 0863ah ; 74 23 12206 12285 movzx bx, cl ; 0f b6 d9 12207 12286 movzx di, byte [bp-004h] ; 0f b6 7e fc … … 12209 12288 mov dx, di ; 89 fa 12210 12289 mov ax, si ; 89 f0 12211 call 08 96ah ; e8 aa 0312290 call 08afeh ; e8 d5 04 12212 12291 cmp AL, strict byte 012h ; 3c 12 12213 je short 08 5d1h ; 74 0d12292 je short 0863ah ; 74 0d 12214 12293 mov al, cl ; 88 c8 12215 12294 db 0feh, 0c0h … … 12218 12297 mov dx, di ; 89 fa 12219 12298 mov ax, si ; 89 f0 12220 jmp short 08 5a5h ; eb d412299 jmp short 0860eh ; eb d4 12221 12300 test cl, cl ; 84 c9 12222 je near 086 70h ; 0f 84 99 0012301 je near 086d9h ; 0f 84 99 00 12223 12302 add cl, 002h ; 80 c1 02 12224 12303 movzx bx, cl ; 0f b6 d9 … … 12227 12306 mov dx, di ; 89 fa 12228 12307 mov ax, si ; 89 f0 12229 call 08 96ah ; e8 7e 0312308 call 08afeh ; e8 a9 04 12230 12309 cmp AL, strict byte 010h ; 3c 10 12231 jne near 086 70h ; 0f 85 7e 0012310 jne near 086d9h ; 0f 85 7e 00 12232 12311 mov byte [bp-002h], 000h ; c6 46 fe 00 12233 12312 mov al, cl ; 88 c8 … … 12236 12315 mov dx, di ; 89 fa 12237 12316 mov ax, si ; 89 f0 12238 call 08 98bh ; e8 87 0312317 call 08b1fh ; e8 b2 04 12239 12318 mov dx, ax ; 89 c2 12240 12319 and ax, strict word 0000fh ; 25 0f 00 12241 12320 sub ax, strict word 00004h ; 2d 04 00 12242 12321 cmp ax, strict word 0000bh ; 3d 0b 00 12243 jnbe short 086 48h ; 77 3712322 jnbe short 086b1h ; 77 37 12244 12323 push CS ; 0e 12245 12324 pop ES ; 07 12246 12325 mov cx, strict word 00008h ; b9 08 00 12247 mov di, 085 64h ; bf 648512326 mov di, 085cdh ; bf cd 85 12248 12327 repne scasb ; f2 ae 12249 12328 sal cx, 1 ; d1 e1 12250 12329 mov di, cx ; 89 cf 12251 mov ax, word [cs:di-07a 95h] ; 2e 8b 85 6b8512330 mov ax, word [cs:di-07a2ch] ; 2e 8b 85 d4 85 12252 12331 jmp ax ; ff e0 12253 12332 mov byte [bp-002h], 010h ; c6 46 fe 10 12254 jmp short 086 48h ; eb 1c12333 jmp short 086b1h ; eb 1c 12255 12334 mov byte [bp-002h], 014h ; c6 46 fe 14 12256 jmp short 086 48h ; eb 1612335 jmp short 086b1h ; eb 16 12257 12336 mov byte [bp-002h], 018h ; c6 46 fe 18 12258 jmp short 086 48h ; eb 1012337 jmp short 086b1h ; eb 10 12259 12338 mov byte [bp-002h], 01ch ; c6 46 fe 1c 12260 jmp short 086 48h ; eb 0a12339 jmp short 086b1h ; eb 0a 12261 12340 mov byte [bp-002h], 020h ; c6 46 fe 20 12262 jmp short 086 48h ; eb 0412341 jmp short 086b1h ; eb 04 12263 12342 mov byte [bp-002h], 024h ; c6 46 fe 24 12264 12343 mov si, dx ; 89 d6 … … 12267 12346 mov al, byte [bp-002h] ; 8a 46 fe 12268 12347 test al, al ; 84 c0 12269 je short 086 70h ; 74 1912348 je short 086d9h ; 74 19 12270 12349 movzx bx, al ; 0f b6 d8 12271 12350 movzx dx, byte [bp-004h] ; 0f b6 56 fc 12272 12351 movzx ax, byte [bp-006h] ; 0f b6 46 fa 12273 call 08 9aah ; e8 45 0312352 call 08b3eh ; e8 70 04 12274 12353 test AL, strict byte 001h ; a8 01 12275 je short 086 70h ; 74 0712354 je short 086d9h ; 74 07 12276 12355 and AL, strict byte 0f0h ; 24 f0 12277 12356 add ax, si ; 01 f0 12278 call 084 5bh ; e8 eb fd12357 call 084c4h ; e8 eb fd 12279 12358 leave ; c9 12280 12359 pop di ; 5f 12281 12360 pop si ; 5e 12282 12361 retn ; c3 12283 pci16_select_reg_: ; 0xf8674 LB 0x21 12362 apm_out_str_: ; 0xf86dd LB 0x36 12363 push bx ; 53 12364 push bp ; 55 12365 mov bp, sp ; 89 e5 12366 mov bx, ax ; 89 c3 12367 cmp byte [bx], 000h ; 80 3f 00 12368 je short 086f2h ; 74 0a 12369 mov al, byte [bx] ; 8a 07 12370 out DX, AL ; ee 12371 inc bx ; 43 12372 mov al, byte [bx] ; 8a 07 12373 db 00ah, 0c0h 12374 ; or al, al ; 0a c0 12375 jne short 086eah ; 75 f8 12376 pop bp ; 5d 12377 pop bx ; 5b 12378 retn ; c3 12379 xchg word [ss:di], ax ; 36 87 05 12380 mov byte [bx+si-079h], cl ; 88 48 87 12381 arpl word [bx-077fbh], ax ; 63 87 05 88 12382 mov es, [bx-077fbh] ; 8e 87 05 88 12383 xchg bx, ax ; 93 12384 xchg dx, bx ; 87 da 12385 xchg dx, bx ; 87 da 12386 xchg dx, bx ; 87 da 12387 xchg bp, dx ; 87 d5 12388 xchg dx, bx ; 87 da 12389 xchg dx, bx ; 87 da 12390 xchg bp, cx ; 87 cd 12391 db 087h 12392 _apm_function: ; 0xf8713 LB 0xf5 12393 push si ; 56 12394 push bp ; 55 12395 mov bp, sp ; 89 e5 12396 and byte [bp+01ah], 0feh ; 80 66 1a fe 12397 mov ax, word [bp+014h] ; 8b 46 14 12398 xor ah, ah ; 30 e4 12399 cmp ax, strict word 0000eh ; 3d 0e 00 12400 jnbe near 087dah ; 0f 87 b3 00 12401 mov bx, ax ; 89 c3 12402 add bx, ax ; 01 c3 12403 mov dx, word [bp+01ah] ; 8b 56 1a 12404 or dl, 001h ; 80 ca 01 12405 jmp word [cs:bx-0790bh] ; 2e ff a7 f5 86 12406 mov word [bp+014h], 00102h ; c7 46 14 02 01 12407 mov word [bp+00eh], 0504dh ; c7 46 0e 4d 50 12408 mov word [bp+012h], strict word 00003h ; c7 46 12 03 00 12409 pop bp ; 5d 12410 pop si ; 5e 12411 retn ; c3 12412 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 12413 mov word [bp+00eh], 08d24h ; c7 46 0e 24 8d 12414 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 12415 mov ax, strict word 0fff0h ; b8 f0 ff 12416 mov word [bp+008h], ax ; 89 46 08 12417 mov word [bp+006h], ax ; 89 46 06 12418 pop bp ; 5d 12419 pop si ; 5e 12420 retn ; c3 12421 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 12422 mov word [bp+00eh], 0da40h ; c7 46 0e 40 da 12423 mov ax, 0f000h ; b8 00 f0 12424 mov word [bp+012h], ax ; 89 46 12 12425 mov word [bp+010h], ax ; 89 46 10 12426 mov ax, strict word 0fff0h ; b8 f0 ff 12427 mov word [bp+008h], ax ; 89 46 08 12428 mov word [bp+006h], ax ; 89 46 06 12429 xor bx, bx ; 31 db 12430 sal ebx, 010h ; 66 c1 e3 10 12431 mov si, ax ; 89 c6 12432 sal esi, 010h ; 66 c1 e6 10 12433 pop bp ; 5d 12434 pop si ; 5e 12435 retn ; c3 12436 sti ; fb 12437 hlt ; f4 12438 pop bp ; 5d 12439 pop si ; 5e 12440 retn ; c3 12441 cmp word [bp+012h], strict byte 00003h ; 83 7e 12 03 12442 je short 087b9h ; 74 20 12443 cmp word [bp+012h], strict byte 00002h ; 83 7e 12 02 12444 je short 087b1h ; 74 12 12445 cmp word [bp+012h], strict byte 00001h ; 83 7e 12 01 12446 jne short 087c1h ; 75 1c 12447 mov dx, 08900h ; ba 00 89 12448 mov ax, 00c46h ; b8 46 0c 12449 call 086ddh ; e8 2f ff 12450 pop bp ; 5d 12451 pop si ; 5e 12452 retn ; c3 12453 mov dx, 08900h ; ba 00 89 12454 mov ax, 00c4eh ; b8 4e 0c 12455 jmp short 087abh ; eb f2 12456 mov dx, 08900h ; ba 00 89 12457 mov ax, 00c56h ; b8 56 0c 12458 jmp short 087abh ; eb ea 12459 or ah, 00ah ; 80 cc 0a 12460 mov word [bp+014h], ax ; 89 46 14 12461 mov word [bp+01ah], dx ; 89 56 1a 12462 pop bp ; 5d 12463 pop si ; 5e 12464 retn ; c3 12465 mov word [bp+014h], 00102h ; c7 46 14 02 01 12466 pop bp ; 5d 12467 pop si ; 5e 12468 retn ; c3 12469 or ah, 080h ; 80 cc 80 12470 jmp short 087c4h ; eb ea 12471 mov bx, 00cdah ; bb da 0c 12472 mov cx, ds ; 8c d9 12473 mov ax, strict word 00004h ; b8 04 00 12474 call 018aeh ; e8 c9 90 12475 push word [bp+00eh] ; ff 76 0e 12476 push word [bp+014h] ; ff 76 14 12477 push 00c5fh ; 68 5f 0c 12478 push strict byte 00004h ; 6a 04 12479 call 018e9h ; e8 f6 90 12480 add sp, strict byte 00008h ; 83 c4 08 12481 mov ax, word [bp+014h] ; 8b 46 14 12482 xor ah, ah ; 30 e4 12483 or ah, 00ch ; 80 cc 0c 12484 mov word [bp+014h], ax ; 89 46 14 12485 or byte [bp+01ah], 001h ; 80 4e 1a 01 12486 pop bp ; 5d 12487 pop si ; 5e 12488 retn ; c3 12489 pci16_select_reg_: ; 0xf8808 LB 0x21 12284 12490 push bx ; 53 12285 12491 push bp ; 55 … … 12297 12503 pop bx ; 5b 12298 12504 retn ; c3 12299 pci16_find_device_: ; 0xf8 695LB 0xf212505 pci16_find_device_: ; 0xf8829 LB 0xf2 12300 12506 push si ; 56 12301 12507 push di ; 57 … … 12309 12515 mov byte [bp-004h], 000h ; c6 46 fc 00 12310 12516 test bl, 007h ; f6 c3 07 12311 jne short 08 6dbh ; 75 2d12517 jne short 0886fh ; 75 2d 12312 12518 mov dx, strict word 0000eh ; ba 0e 00 12313 12519 mov ax, bx ; 89 d8 12314 call 08 674h ; e8 be ff12520 call 08808h ; e8 be ff 12315 12521 mov dx, 00cfeh ; ba fe 0c 12316 12522 in AL, DX ; ec … … 12319 12525 mov byte [bp-002h], al ; 88 46 fe 12320 12526 cmp AL, strict byte 0ffh ; 3c ff 12321 jne short 08 6c9h ; 75 0612527 jne short 0885dh ; 75 06 12322 12528 add bx, strict byte 00008h ; 83 c3 08 12323 jmp near 08 75ch ; e9 93 0012529 jmp near 088f0h ; e9 93 00 12324 12530 test byte [bp-002h], 080h ; f6 46 fe 80 12325 je short 08 6d6h ; 74 0712531 je short 0886ah ; 74 07 12326 12532 mov word [bp-006h], strict word 00001h ; c7 46 fa 01 00 12327 jmp short 08 6dbh ; eb 0512533 jmp short 0886fh ; eb 05 12328 12534 mov word [bp-006h], strict word 00008h ; c7 46 fa 08 00 12329 12535 mov al, byte [bp-002h] ; 8a 46 fe 12330 12536 and AL, strict byte 007h ; 24 07 12331 12537 cmp AL, strict byte 001h ; 3c 01 12332 jne short 08 703h ; 75 1f12538 jne short 08897h ; 75 1f 12333 12539 mov ax, bx ; 89 d8 12334 12540 shr ax, 008h ; c1 e8 08 12335 12541 test ax, ax ; 85 c0 12336 jne short 08 703h ; 75 1612542 jne short 08897h ; 75 16 12337 12543 mov dx, strict word 0001ah ; ba 1a 00 12338 12544 mov ax, bx ; 89 d8 12339 call 08 674h ; e8 7f ff12545 call 08808h ; e8 7f ff 12340 12546 mov dx, 00cfeh ; ba fe 0c 12341 12547 in AL, DX ; ec … … 12343 12549 ; sub ah, ah ; 2a e4 12344 12550 cmp al, byte [bp-004h] ; 3a 46 fc 12345 jbe short 08 703h ; 76 0312551 jbe short 08897h ; 76 03 12346 12552 mov byte [bp-004h], al ; 88 46 fc 12347 12553 test di, di ; 85 ff 12348 je short 08 70ch ; 74 0512554 je short 088a0h ; 74 05 12349 12555 mov dx, strict word 00008h ; ba 08 00 12350 jmp short 08 70eh ; eb 0212556 jmp short 088a2h ; eb 02 12351 12557 xor dx, dx ; 31 d2 12352 12558 mov ax, bx ; 89 d8 12353 call 08 674h ; e8 61 ff12559 call 08808h ; e8 61 ff 12354 12560 mov dx, 00cfch ; ba fc 0c 12355 12561 in eax, DX ; 66 ed … … 12362 12568 mov word [bp-00ch], strict word 00000h ; c7 46 f4 00 00 12363 12569 test di, di ; 85 ff 12364 je short 08 73dh ; 74 0f12570 je short 088d1h ; 74 0f 12365 12571 mov cx, strict word 00008h ; b9 08 00 12366 12572 shr dx, 1 ; d1 ea 12367 12573 rcr ax, 1 ; d1 d8 12368 loop 08 731h ; e2 fa12574 loop 088c5h ; e2 fa 12369 12575 mov word [bp-00ah], ax ; 89 46 f6 12370 12576 mov word [bp-008h], dx ; 89 56 f8 12371 12577 mov ax, word [bp-008h] ; 8b 46 f8 12372 12578 cmp ax, word [bp-010h] ; 3b 46 f0 12373 jne short 08 74dh ; 75 0812579 jne short 088e1h ; 75 08 12374 12580 mov ax, word [bp-00ah] ; 8b 46 f6 12375 12581 cmp ax, word [bp-00eh] ; 3b 46 f2 12376 je short 08 753h ; 74 0612582 je short 088e7h ; 74 06 12377 12583 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 12378 je short 08 759h ; 74 0612584 je short 088edh ; 74 06 12379 12585 dec si ; 4e 12380 12586 cmp si, strict byte 0ffffh ; 83 fe ff 12381 je short 08 76bh ; 74 1212587 je short 088ffh ; 74 12 12382 12588 add bx, word [bp-006h] ; 03 5e fa 12383 12589 mov dx, bx ; 89 da … … 12385 12591 movzx ax, byte [bp-004h] ; 0f b6 46 fc 12386 12592 cmp dx, ax ; 39 c2 12387 jbe near 08 6a9h ; 0f 86 3e ff12593 jbe near 0883dh ; 0f 86 3e ff 12388 12594 cmp si, strict byte 0ffffh ; 83 fe ff 12389 jne short 08 774h ; 75 0412595 jne short 08908h ; 75 04 12390 12596 mov ax, bx ; 89 d8 12391 jmp short 08 777h ; eb 0312597 jmp short 0890bh ; eb 03 12392 12598 mov ax, strict word 0ffffh ; b8 ff ff 12393 12599 leave ; c9 … … 12395 12601 pop si ; 5e 12396 12602 retn ; c3 12397 mov byte [ecx-056776b78h], al ; 67 88 81 88 94 88 a9 12398 mov byte [si-03178h], bh ; 88 bc 88 ce 12399 db 088h 12400 _pci16_function: ; 0xf8787 LB 0x1bb 12603 sti ; fb 12604 mov word [di], dx ; 89 15 12605 mov ch, byte [bx+si] ; 8a 28 12606 mov bh, byte [di] ; 8a 3d 12607 mov dl, byte [bx+si-076h] ; 8a 50 8a 12608 db 062h 12609 db 08ah 12610 _pci16_function: ; 0xf891b LB 0x1bb 12401 12611 push si ; 56 12402 12612 push di ; 57 … … 12410 12620 xor ah, ah ; 30 e4 12411 12621 cmp bx, strict byte 00003h ; 83 fb 03 12412 jc short 08 7beh ; 72 1a12413 jbe short 08 816h ; 76 7012622 jc short 08952h ; 72 1a 12623 jbe short 089aah ; 76 70 12414 12624 cmp bx, strict byte 0000eh ; 83 fb 0e 12415 je near 08 8e2h ; 0f 84 35 0112625 je near 08a76h ; 0f 84 35 01 12416 12626 cmp bx, strict byte 00008h ; 83 fb 08 12417 jc near 08 911h ; 0f 82 5d 0112627 jc near 08aa5h ; 0f 82 5d 01 12418 12628 cmp bx, strict byte 0000dh ; 83 fb 0d 12419 jbe near 08 83bh ; 0f 86 80 0012420 jmp near 08 911h ; e9 53 0112629 jbe near 089cfh ; 0f 86 80 00 12630 jmp near 08aa5h ; e9 53 01 12421 12631 cmp bx, strict byte 00002h ; 83 fb 02 12422 je short 08 7e6h ; 74 2312632 je short 0897ah ; 74 23 12423 12633 cmp bx, strict byte 00001h ; 83 fb 01 12424 jne near 08 911h ; 0f 85 47 0112634 jne near 08aa5h ; 0f 85 47 01 12425 12635 mov word [bp+024h], strict word 00001h ; c7 46 24 01 00 12426 12636 mov word [bp+018h], 00210h ; c7 46 18 10 02 … … 12428 12638 mov word [bp+01ch], 04350h ; c7 46 1c 50 43 12429 12639 mov word [bp+01eh], 02049h ; c7 46 1e 49 20 12430 jmp near 08 93eh ; e9 58 0112640 jmp near 08ad2h ; e9 58 01 12431 12641 cmp word [bp+01ch], strict byte 0ffffh ; 83 7e 1c ff 12432 jne short 08 7f2h ; 75 0612642 jne short 08986h ; 75 06 12433 12643 or ah, 083h ; 80 cc 83 12434 jmp near 08 937h ; e9 45 0112644 jmp near 08acbh ; e9 45 01 12435 12645 mov bx, word [bp+00ch] ; 8b 5e 0c 12436 12646 mov dx, word [bp+020h] ; 8b 56 20 12437 12647 mov ax, word [bp+01ch] ; 8b 46 1c 12438 12648 xor cx, cx ; 31 c9 12439 call 08 695h ; e8 95 fe12649 call 08829h ; e8 95 fe 12440 12650 cmp ax, strict word 0ffffh ; 3d ff ff 12441 jne short 08 810h ; 75 0b12651 jne short 089a4h ; 75 0b 12442 12652 mov ax, word [bp+024h] ; 8b 46 24 12443 12653 xor ah, ah ; 30 e4 12444 12654 or ah, 086h ; 80 cc 86 12445 jmp near 08 937h ; e9 27 0112655 jmp near 08acbh ; e9 27 01 12446 12656 mov word [bp+018h], ax ; 89 46 18 12447 jmp near 08 93eh ; e9 28 0112657 jmp near 08ad2h ; e9 28 01 12448 12658 mov bx, word [bp+00ch] ; 8b 5e 0c 12449 12659 mov ax, word [bp+020h] ; 8b 46 20 12450 12660 mov dx, word [bp+022h] ; 8b 56 22 12451 12661 mov cx, strict word 00001h ; b9 01 00 12452 call 08 695h ; e8 70 fe12662 call 08829h ; e8 70 fe 12453 12663 cmp ax, strict word 0ffffh ; 3d ff ff 12454 jne short 08 835h ; 75 0b12664 jne short 089c9h ; 75 0b 12455 12665 mov ax, word [bp+024h] ; 8b 46 24 12456 12666 xor ah, ah ; 30 e4 12457 12667 or ah, 086h ; 80 cc 86 12458 jmp near 08 937h ; e9 02 0112668 jmp near 08acbh ; e9 02 01 12459 12669 mov word [bp+018h], ax ; 89 46 18 12460 jmp near 08 93eh ; e9 03 0112670 jmp near 08ad2h ; e9 03 01 12461 12671 cmp word [bp+008h], 00100h ; 81 7e 08 00 01 12462 jc short 08 848h ; 72 0612672 jc short 089dch ; 72 06 12463 12673 or ah, 087h ; 80 cc 87 12464 jmp near 08 937h ; e9 ef 0012674 jmp near 08acbh ; e9 ef 00 12465 12675 mov dx, word [bp+008h] ; 8b 56 08 12466 12676 mov ax, word [bp+018h] ; 8b 46 18 12467 call 08 674h ; e8 23 fe12677 call 08808h ; e8 23 fe 12468 12678 mov bx, word [bp+024h] ; 8b 5e 24 12469 12679 xor bh, bh ; 30 ff 12470 12680 sub bx, strict byte 00008h ; 83 eb 08 12471 12681 cmp bx, strict byte 00005h ; 83 fb 05 12472 jnbe near 08 93eh ; 0f 87 de 0012682 jnbe near 08ad2h ; 0f 87 de 00 12473 12683 add bx, bx ; 01 db 12474 jmp word [cs:bx-07 885h] ; 2e ff a7 7b 8712684 jmp word [cs:bx-076f1h] ; 2e ff a7 0f 89 12475 12685 mov bx, word [bp+020h] ; 8b 5e 20 12476 12686 xor bl, bl ; 30 db … … 12483 12693 or bx, ax ; 09 c3 12484 12694 mov word [bp+020h], bx ; 89 5e 20 12485 jmp near 08 93eh ; e9 bd 0012695 jmp near 08ad2h ; e9 bd 00 12486 12696 mov dx, word [bp+008h] ; 8b 56 08 12487 12697 xor dh, dh ; 30 f6 … … 12490 12700 in ax, DX ; ed 12491 12701 mov word [bp+020h], ax ; 89 46 20 12492 jmp near 08 93eh ; e9 aa 0012702 jmp near 08ad2h ; e9 aa 00 12493 12703 mov dx, 00cfch ; ba fc 0c 12494 12704 in eax, DX ; 66 ed … … 12499 12709 mov word [bp+020h], ax ; 89 46 20 12500 12710 mov word [bp+022h], dx ; 89 56 22 12501 jmp near 08 93eh ; e9 95 0012711 jmp near 08ad2h ; e9 95 00 12502 12712 mov ax, word [bp+020h] ; 8b 46 20 12503 12713 mov dx, word [bp+008h] ; 8b 56 08 … … 12506 12716 add dx, 00cfch ; 81 c2 fc 0c 12507 12717 out DX, AL ; ee 12508 jmp near 08 93eh ; e9 82 0012718 jmp near 08ad2h ; e9 82 00 12509 12719 mov ax, word [bp+020h] ; 8b 46 20 12510 12720 mov dx, word [bp+008h] ; 8b 56 08 … … 12513 12723 add dx, 00cfch ; 81 c2 fc 0c 12514 12724 out DX, ax ; ef 12515 jmp short 08 93eh ; eb 7012725 jmp short 08ad2h ; eb 70 12516 12726 mov ax, word [bp+020h] ; 8b 46 20 12517 12727 mov cx, word [bp+022h] ; 8b 4e 22 … … 12522 12732 ; mov ax, cx ; 8b c1 12523 12733 out DX, eax ; 66 ef 12524 jmp short 08 93eh ; eb 5c12734 jmp short 08ad2h ; eb 5c 12525 12735 mov bx, word [bp+008h] ; 8b 5e 08 12526 12736 mov es, [bp+028h] ; 8e 46 28 12527 12737 mov cx, word [word 00000h] ; 8b 0e 00 00 12528 12738 cmp cx, word [es:bx] ; 26 3b 0f 12529 jbe short 08 8fbh ; 76 0a12739 jbe short 08a8fh ; 76 0a 12530 12740 mov ax, word [bp+024h] ; 8b 46 24 12531 12741 xor ah, ah ; 30 e4 12532 12742 or ah, 089h ; 80 cc 89 12533 jmp short 08 937h ; eb 3c12743 jmp short 08acbh ; eb 3c 12534 12744 les di, [es:bx+002h] ; 26 c4 7f 02 12535 12745 mov si, 0f2c0h ; be c0 f2 … … 12540 12750 pop DS ; 1f 12541 12751 mov word [bp+018h], 00a00h ; c7 46 18 00 0a 12542 jmp short 08 93eh ; eb 2d12543 mov bx, 00c 52h ; bb 520c12752 jmp short 08ad2h ; eb 2d 12753 mov bx, 00cdah ; bb da 0c 12544 12754 mov cx, ds ; 8c d9 12545 12755 mov ax, strict word 00004h ; b8 04 00 12546 call 018aeh ; e8 92 8f12756 call 018aeh ; e8 fe 8d 12547 12757 mov ax, word [bp+018h] ; 8b 46 18 12548 12758 push ax ; 50 12549 12759 mov ax, word [bp+024h] ; 8b 46 24 12550 12760 push ax ; 50 12551 push 00c 0eh ; 68 0e0c12761 push 00c92h ; 68 92 0c 12552 12762 push strict byte 00004h ; 6a 04 12553 call 018e9h ; e8 bd 8f12763 call 018e9h ; e8 29 8e 12554 12764 add sp, strict byte 00008h ; 83 c4 08 12555 12765 mov ax, word [bp+024h] ; 8b 46 24 … … 12562 12772 pop si ; 5e 12563 12773 retn ; c3 12564 pci_find_classcode_: ; 0xf8 942LB 0x2812774 pci_find_classcode_: ; 0xf8ad6 LB 0x28 12565 12775 push bx ; 53 12566 12776 push cx ; 51 … … 12577 12787 int 01ah ; cd 1a 12578 12788 cmp ah, 000h ; 80 fc 00 12579 je near 08 963h ; 0f 84 03 0012789 je near 08af7h ; 0f 84 03 00 12580 12790 mov bx, strict word 0ffffh ; bb ff ff 12581 12791 mov ax, bx ; 89 d8 … … 12585 12795 pop bx ; 5b 12586 12796 retn ; c3 12587 pci_read_config_byte_: ; 0xf8 96aLB 0x2112797 pci_read_config_byte_: ; 0xf8afe LB 0x21 12588 12798 push cx ; 51 12589 12799 push di ; 57 … … 12603 12813 pop cx ; 59 12604 12814 retn ; c3 12605 pci_read_config_word_: ; 0xf8 98bLB 0x1f12815 pci_read_config_word_: ; 0xf8b1f LB 0x1f 12606 12816 push cx ; 51 12607 12817 push di ; 57 … … 12621 12831 pop cx ; 59 12622 12832 retn ; c3 12623 pci_read_config_dword_: ; 0xf8 9aaLB 0x2412833 pci_read_config_dword_: ; 0xf8b3e LB 0x24 12624 12834 push cx ; 51 12625 12835 push di ; 57 … … 12641 12851 pop cx ; 59 12642 12852 retn ; c3 12643 vds_is_present_: ; 0xf8 9ceLB 0x1d12853 vds_is_present_: ; 0xf8b62 LB 0x1d 12644 12854 push bx ; 53 12645 12855 push bp ; 55 … … 12649 12859 mov es, ax ; 8e c0 12650 12860 test byte [es:bx], 020h ; 26 f6 07 20 12651 je short 08 9e6h ; 74 0612861 je short 08b7ah ; 74 06 12652 12862 mov ax, strict word 00001h ; b8 01 00 12653 12863 pop bp ; 5d … … 12658 12868 pop bx ; 5b 12659 12869 retn ; c3 12660 vds_real_to_lin_: ; 0xf8 9ebLB 0x1e12870 vds_real_to_lin_: ; 0xf8b7f LB 0x1e 12661 12871 push bx ; 53 12662 12872 push cx ; 51 … … 12669 12879 sal ax, 1 ; d1 e0 12670 12880 rcl dx, 1 ; d1 d2 12671 loop 08 9f9h ; e2 fa12881 loop 08b8dh ; e2 fa 12672 12882 xor cx, cx ; 31 c9 12673 12883 add ax, bx ; 01 d8 … … 12677 12887 pop bx ; 5b 12678 12888 retn ; c3 12679 vds_build_sg_list_: ; 0xf8 a09LB 0x7612889 vds_build_sg_list_: ; 0xf8b9d LB 0x76 12680 12890 push si ; 56 12681 12891 push di ; 57 … … 12691 12901 mov bx, word [bp+00ah] ; 8b 5e 0a 12692 12902 mov word [es:di+002h], bx ; 26 89 5d 02 12693 call 08 9ebh ; e8 c3 ff12903 call 08b7fh ; e8 c3 ff 12694 12904 mov es, si ; 8e c6 12695 12905 mov word [es:di+004h], ax ; 26 89 45 04 12696 12906 mov word [es:di+006h], dx ; 26 89 55 06 12697 12907 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 12698 call 08 9ceh ; e8 93 ff12908 call 08b62h ; e8 93 ff 12699 12909 test ax, ax ; 85 c0 12700 je short 08 a52h ; 74 1312910 je short 08be6h ; 74 13 12701 12911 mov es, si ; 8e c6 12702 12912 mov ax, 08105h ; b8 05 81 12703 12913 mov dx, strict word 00000h ; ba 00 00 12704 12914 int 04bh ; cd 4b 12705 jc near 08 a4fh ; 0f 82 02 0012915 jc near 08be3h ; 0f 82 02 00 12706 12916 db 032h, 0c0h 12707 12917 ; xor al, al ; 32 c0 12708 12918 cbw ; 98 12709 jmp short 08 a79h ; eb 2712919 jmp short 08c0dh ; eb 27 12710 12920 mov es, si ; 8e c6 12711 12921 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 12723 12933 pop si ; 5e 12724 12934 retn 00004h ; c2 04 00 12725 vds_free_sg_list_: ; 0xf8 a7f LB 0x3112935 vds_free_sg_list_: ; 0xf8c13 LB 0x2d 12726 12936 push bx ; 53 12727 12937 push di ; 57 … … 12729 12939 mov bp, sp ; 89 e5 12730 12940 mov bx, ax ; 89 c3 12731 call 08 9ceh ; e8 45 ff12941 call 08b62h ; e8 45 ff 12732 12942 test ax, ax ; 85 c0 12733 je short 08 aa0h ; 74 1312943 je short 08c34h ; 74 13 12734 12944 mov di, bx ; 89 df 12735 12945 mov es, dx ; 8e c2 … … 12737 12947 mov dx, strict word 00000h ; ba 00 00 12738 12948 int 04bh ; cd 4b 12739 jc near 08 a9fh ; 0f 82 02 0012949 jc near 08c33h ; 0f 82 02 00 12740 12950 db 032h, 0c0h 12741 12951 ; xor al, al ; 32 c0 … … 12747 12957 pop bx ; 5b 12748 12958 retn ; c3 12749 times 0x4 db 0 12750 __U4D: ; 0xf8ab0 LB 0x39 12959 __U4D: ; 0xf8c40 LB 0x39 12751 12960 pushfw ; 9c 12752 12961 push eax ; 66 50 … … 12778 12987 popfw ; 9d 12779 12988 retn ; c3 12780 __U4M: ; 0xf8 ae9 LB 0x3112989 __U4M: ; 0xf8c79 LB 0x31 12781 12990 pushfw ; 9c 12782 12991 push eax ; 66 50 … … 12803 13012 popfw ; 9d 12804 13013 retn ; c3 12805 _fmemset_: ; 0xf8 b1a LB 0xd13014 _fmemset_: ; 0xf8caa LB 0xd 12806 13015 push di ; 57 12807 13016 mov es, dx ; 8e c2 … … 12813 13022 pop di ; 5f 12814 13023 retn ; c3 12815 _fmemcpy_: ; 0xf8 b27 LB 0x1813024 _fmemcpy_: ; 0xf8cb7 LB 0x33 12816 13025 push bp ; 55 12817 13026 db 08bh, 0ech … … 12833 13042 leave ; c9 12834 13043 retn ; c3 13044 add byte [bx+si], al ; 00 00 13045 lea ax, [bp+si] ; 8d 02 13046 lea ax, [0068dh] ; 8d 06 8d 06 13047 lea ax, [0088dh] ; 8d 06 8d 08 13048 lea cx, [bx+si] ; 8d 08 13049 lea cx, [bp+si] ; 8d 0a 13050 lea cx, [00e8dh] ; 8d 0e 8d 0e 13051 lea dx, [bx+si] ; 8d 10 13052 lea dx, [di] ; 8d 15 13053 lea dx, [bx] ; 8d 17 13054 db 08dh 13055 apm_worker: ; 0xf8cea LB 0x3a 13056 sti ; fb 13057 push ax ; 50 13058 db 032h, 0e4h 13059 ; xor ah, ah ; 32 e4 13060 sub AL, strict byte 004h ; 2c 04 13061 db 08bh, 0e8h 13062 ; mov bp, ax ; 8b e8 13063 sal bp, 1 ; d1 e5 13064 cmp AL, strict byte 00dh ; 3c 0d 13065 pop ax ; 58 13066 mov AH, strict byte 053h ; b4 53 13067 jnc short 08d20h ; 73 25 13068 jmp word [cs:bp-07330h] ; 2e ff a6 d0 8c 13069 jmp short 08d1eh ; eb 1c 13070 sti ; fb 13071 hlt ; f4 13072 jmp short 08d1eh ; eb 18 13073 jmp short 08d1eh ; eb 16 13074 jmp short 08d20h ; eb 16 13075 mov AH, strict byte 080h ; b4 80 13076 jmp short 08d22h ; eb 14 13077 jmp short 08d20h ; eb 10 13078 mov ax, 00102h ; b8 02 01 13079 jmp short 08d1eh ; eb 09 13080 jmp short 08d1eh ; eb 07 13081 mov BL, strict byte 000h ; b3 00 13082 mov cx, strict word 00000h ; b9 00 00 13083 jmp short 08d1eh ; eb 00 13084 clc ; f8 13085 retn ; c3 13086 mov AH, strict byte 009h ; b4 09 13087 stc ; f9 13088 retn ; c3 13089 apm_pm16_entry: ; 0xf8d24 LB 0x11 13090 mov AH, strict byte 002h ; b4 02 13091 push DS ; 1e 13092 push bp ; 55 13093 push CS ; 0e 13094 pop bp ; 5d 13095 add bp, strict byte 00008h ; 83 c5 08 13096 mov ds, bp ; 8e dd 13097 call 08ceah ; e8 b8 ff 13098 pop bp ; 5d 13099 pop DS ; 1f 13100 retf ; cb 12835 13101 12836 ; Padding 0x4 ec1 bytes at 0xf8b3f12837 times 20161db 013102 ; Padding 0x4ccb bytes at 0xf8d35 13103 times 19659 db 0 12838 13104 12839 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3 7cclass=CODE group=AUTO13105 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3aa class=CODE group=AUTO 12840 13106 bios32_service: ; 0xfda00 LB 0x26 12841 13107 pushfw ; 9c … … 12859 13125 mov AL, strict byte 081h ; b0 81 12860 13126 jmp short 0da20h ; eb fa 12861 pcibios32_entry: ; 0xfda26 LB 0x d13127 pcibios32_entry: ; 0xfda26 LB 0x1a 12862 13128 pushfw ; 9c 12863 13129 cld ; fc 12864 13130 push ES ; 06 12865 13131 pushaw ; 60 12866 call 0db 45h ; e8 180113132 call 0db73h ; e8 46 01 12867 13133 add byte [bx+si], al ; 00 00 12868 13134 popaw ; 61 … … 12870 13136 popfw ; 9d 12871 13137 retf ; cb 12872 pci32_select_reg_: ; 0xfda33 LB 0x1f 13138 times 0xd db 0 13139 apm_pm32_entry: ; 0xfda40 LB 0x21 13140 push bp ; 55 13141 mov ebp, cs ; 66 8c cd 13142 push ebp ; 66 55 13143 mov bp, 0da5fh ; bd 5f da 13144 add byte [bx+si], al ; 00 00 13145 push ebp ; 66 55 13146 push CS ; 0e 13147 pop bp ; 5d 13148 add bp, strict byte 00008h ; 83 c5 08 13149 push ebp ; 66 55 13150 mov bp, 08d26h ; bd 26 8d 13151 add byte [bx+si], al ; 00 00 13152 push ebp ; 66 55 13153 mov AH, strict byte 003h ; b4 03 13154 db 066h, 0cbh 13155 ; retf ; 66 cb 13156 pop bp ; 5d 13157 retf ; cb 13158 pci32_select_reg_: ; 0xfda61 LB 0x1f 12873 13159 push bx ; 53 12874 13160 push bp ; 55 … … 12887 13173 pop bx ; 5b 12888 13174 retn ; c3 12889 pci32_find_device_: ; 0xfda 52LB 0xf513175 pci32_find_device_: ; 0xfda80 LB 0xf5 12890 13176 push cx ; 51 12891 13177 push si ; 56 … … 12899 13185 mov byte [di-004h], 000h ; c6 45 fc 00 12900 13186 test bl, 007h ; f6 c3 07 12901 jne short 0da a1h ; 75 3613187 jne short 0dacfh ; 75 36 12902 13188 db 00fh, 0b7h, 0c3h 12903 13189 ; movzx ax, bx ; 0f b7 c3 12904 13190 mov dx, strict word 0000eh ; ba 0e 00 12905 13191 add byte [bx+si], al ; 00 00 12906 call 0da 31h ; e8 bb ff13192 call 0da5fh ; e8 bb ff 12907 13193 db 0ffh 12908 13194 db 0ffh … … 12914 13200 mov byte [di-008h], al ; 88 45 f8 12915 13201 cmp AL, strict byte 0ffh ; 3c ff 12916 jne short 0da 8fh ; 75 0813202 jne short 0dabdh ; 75 08 12917 13203 add bx, strict byte 00008h ; 83 c3 08 12918 jmp near 0db 17h ; e9 8a 0013204 jmp near 0db45h ; e9 8a 00 12919 13205 add byte [bx+si], al ; 00 00 12920 13206 test byte [di-008h], 080h ; f6 45 f8 80 12921 je short 0da 9ch ; 74 0713207 je short 0dacah ; 74 07 12922 13208 mov di, strict word 00001h ; bf 01 00 12923 13209 add byte [bx+si], al ; 00 00 12924 jmp short 0da a1h ; eb 0513210 jmp short 0dacfh ; eb 05 12925 13211 mov di, strict word 00008h ; bf 08 00 12926 13212 add byte [bx+si], al ; 00 00 … … 12928 13214 and AL, strict byte 007h ; 24 07 12929 13215 cmp AL, strict byte 001h ; 3c 01 12930 jne short 0da d0h ; 75 2613216 jne short 0dafeh ; 75 26 12931 13217 db 00fh, 0b7h, 0c3h 12932 13218 ; movzx ax, bx ; 0f b7 c3 … … 12934 13220 sar dx, 008h ; c1 fa 08 12935 13221 test dx, dx ; 85 d2 12936 jne short 0da d0h ; 75 1a13222 jne short 0dafeh ; 75 1a 12937 13223 mov dx, strict word 0001ah ; ba 1a 00 12938 13224 add byte [bx+si], al ; 00 00 12939 call 0da 31h ; e8 73 ff13225 call 0da5fh ; e8 73 ff 12940 13226 db 0ffh 12941 13227 db 0ffh … … 12946 13232 in AL, DX ; ec 12947 13233 cmp al, byte [di-004h] ; 3a 45 fc 12948 jbe short 0da d0h ; 76 0313234 jbe short 0dafeh ; 76 03 12949 13235 mov byte [di-004h], al ; 88 45 fc 12950 13236 test si, si ; 85 f6 12951 je short 0d adbh ; 74 0713237 je short 0db09h ; 74 07 12952 13238 mov ax, strict word 00008h ; b8 08 00 12953 13239 add byte [bx+si], al ; 00 00 12954 jmp short 0d addh ; eb 0213240 jmp short 0db0bh ; eb 02 12955 13241 xor ax, ax ; 31 c0 12956 13242 db 00fh, 0b7h, 0d0h … … 12958 13244 db 00fh, 0b7h, 0c3h 12959 13245 ; movzx ax, bx ; 0f b7 c3 12960 call 0da 31h ; e8 4b ff13246 call 0da5fh ; e8 4b ff 12961 13247 db 0ffh 12962 13248 db 0ffh … … 12968 13254 add byte [bx+si], al ; 00 00 12969 13255 test si, si ; 85 f6 12970 je short 0db 02h ; 74 0613256 je short 0db30h ; 74 06 12971 13257 shr ax, 008h ; c1 e8 08 12972 13258 mov word [di-00ch], ax ; 89 45 f4 12973 13259 mov ax, word [di-00ch] ; 8b 45 f4 12974 13260 cmp ax, word [di-018h] ; 3b 45 e8 12975 je short 0db 10h ; 74 0613261 je short 0db3eh ; 74 06 12976 13262 cmp word [di-014h], strict byte 00000h ; 83 7d ec 00 12977 je short 0db 17h ; 74 0713263 je short 0db45h ; 74 07 12978 13264 dec cx ; 49 12979 13265 cmp ecx, strict byte 0ffffffffh ; 66 83 f9 ff 12980 je short 0db 2fh ; 74 1813266 je short 0db5dh ; 74 18 12981 13267 add bx, di ; 01 fb 12982 13268 db 00fh, 0b7h, 0c3h … … 12986 13272 movzx ax, byte [di-004h] ; 0f b6 45 fc 12987 13273 cmp ax, word [di-010h] ; 3b 45 f0 12988 jnl near 0da 64h ; 0f 8d 37 ff13274 jnl near 0da92h ; 0f 8d 37 ff 12989 13275 db 0ffh 12990 13276 jmp word [bp-07dh] ; ff 66 83 … … 13005 13291 pop cx ; 59 13006 13292 retn ; c3 13007 _pci32_function: ; 0xfdb 47LB 0x23513293 _pci32_function: ; 0xfdb75 LB 0x235 13008 13294 push bx ; 53 13009 13295 push si ; 56 … … 13017 13303 xor ah, ah ; 30 e4 13018 13304 cmp eax, strict dword 029720003h ; 66 3d 03 00 72 29 13019 jbe near 0dc 02h ; 0f 86 99 0013305 jbe near 0dc30h ; 0f 86 99 00 13020 13306 add byte [bx+si], al ; 00 00 13021 13307 cmp eax, strict dword 0840f000eh ; 66 3d 0e 00 0f 84 … … 13024 13310 add byte [bp+03dh], ah ; 00 66 3d 13025 13311 or byte [bx+si], al ; 08 00 13026 jc near 0dd 65h ; 0f 82 e8 0113312 jc near 0dd93h ; 0f 82 e8 01 13027 13313 add byte [bx+si], al ; 00 00 13028 13314 cmp eax, strict dword 0860f000dh ; 66 3d 0d 00 0f 86 13029 13315 test AL, strict byte 000h ; a8 00 13030 13316 add byte [bx+si], al ; 00 00 13031 jmp near 0dd 65h ; e9 d9 0113317 jmp near 0dd93h ; e9 d9 01 13032 13318 add byte [bx+si], al ; 00 00 13033 13319 cmp eax, strict dword 028740002h ; 66 3d 02 00 74 28 … … 13052 13338 retn ; c3 13053 13339 cmp dword [di+028h], strict byte 0ffffffffh ; 66 83 7d 28 ff 13054 jne short 0db d0h ; 75 0d13340 jne short 0dbfeh ; 75 0d 13055 13341 mov ax, word [di+030h] ; 8b 45 30 13056 13342 xor ah, ah ; 30 e4 13057 13343 or ah, 083h ; 80 cc 83 13058 jmp near 0dd 6dh ; e9 9f 0113344 jmp near 0dd9bh ; e9 9f 01 13059 13345 add byte [bx+si], al ; 00 00 13060 13346 xor bx, bx ; 31 db … … 13067 13353 ; movzx ax, word [di+028h] ; 0f b7 45 28 13068 13354 or ax, cx ; 09 c8 13069 call 0da 50h ; e8 6a fe13355 call 0da7eh ; e8 6a fe 13070 13356 db 0ffh 13071 13357 jmp word [bp+03dh] ; ff 66 3d … … 13075 13361 xor ah, ah ; 30 e4 13076 13362 or ah, 086h ; 80 cc 86 13077 jmp near 0dd 6dh ; e9 74 0113363 jmp near 0dd9bh ; e9 74 01 13078 13364 add byte [bx+si], al ; 00 00 13079 13365 mov dword [di+024h], eax ; 66 89 45 24 … … 13088 13374 mov bx, strict word 00001h ; bb 01 00 13089 13375 add byte [bx+si], al ; 00 00 13090 call 0da 50h ; e8 3d fe13376 call 0da7eh ; e8 3d fe 13091 13377 db 0ffh 13092 13378 jmp word [bp+03dh] ; ff 66 3d … … 13096 13382 xor ah, ah ; 30 e4 13097 13383 or ah, 086h ; 80 cc 86 13098 jmp near 0dd 6dh ; e9 47 0113384 jmp near 0dd9bh ; e9 47 01 13099 13385 add byte [bx+si], al ; 00 00 13100 13386 mov dword [di+024h], eax ; 66 89 45 24 … … 13108 13394 xor ah, ah ; 30 e4 13109 13395 or ah, 087h ; 80 cc 87 13110 jmp near 0dd 6dh ; e9 29 0113396 jmp near 0dd9bh ; e9 29 01 13111 13397 add byte [bx+si], al ; 00 00 13112 13398 db 00fh, 0b7h, 055h, 014h … … 13114 13400 db 00fh, 0b7h, 045h, 024h 13115 13401 ; movzx ax, word [di+024h] ; 0f b7 45 24 13116 call 0da 31h ; e8 e0 fd13402 call 0da5fh ; e8 e0 fd 13117 13403 db 0ffh 13118 13404 dec word [bp+di+03045h] ; ff 8b 45 30 13119 13405 xor ah, ah ; 30 e4 13120 13406 cmp eax, strict dword 02172000ah ; 66 3d 0a 00 72 21 13121 jbe short 0dc d0h ; 76 7013407 jbe short 0dcfeh ; 76 70 13122 13408 cmp eax, strict dword 0840f000dh ; 66 3d 0d 00 0f 84 13123 13409 stosb ; aa … … 13125 13411 add byte [bp+03dh], ah ; 00 66 3d 13126 13412 or AL, strict byte 000h ; 0c 00 13127 je near 0d cf6h ; 0f 84 84 0013413 je near 0dd24h ; 0f 84 84 00 13128 13414 add byte [bx+si], al ; 00 00 13129 13415 cmp eax, strict dword 06474000bh ; 66 3d 0b 00 74 64 … … 13230 13516 db 066h, 026h, 03bh, 008h 13231 13517 ; cmp ecx, dword [es:bx+si] ; 66 26 3b 08 13232 jbe short 0dd 40h ; 76 0a13518 jbe short 0dd6eh ; 76 0a 13233 13519 mov ax, word [di+030h] ; 8b 45 30 13234 13520 xor ah, ah ; 30 e4 13235 13521 or ah, 089h ; 80 cc 89 13236 jmp short 0dd 6fh ; eb 2f13522 jmp short 0dd9dh ; eb 2f 13237 13523 db 00fh, 0b7h, 0c9h 13238 13524 ; movzx cx, cx ; 0f b7 c9 … … 13264 13550 retn ; c3 13265 13551 13266 section BIOS32CONST progbits vstart=0xdd7c align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP 13552 ; Padding 0x2 bytes at 0xfddaa 13553 times 2 db 0 13267 13554 13268 section BIOS32CONST 2 progbits vstart=0xdd7c align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP13555 section BIOS32CONST progbits vstart=0xddac align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP 13269 13556 13270 section BIOS32 _DATA progbits vstart=0xdd7c align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP13557 section BIOS32CONST2 progbits vstart=0xddac align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP 13271 13558 13272 ; Padding 0x284 bytes at 0xfdd7c 13273 times 644 db 0 13559 section BIOS32_DATA progbits vstart=0xddac align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP 13560 13561 ; Padding 0x254 bytes at 0xfddac 13562 times 596 db 0 13274 13563 13275 13564 section BIOSSEG progbits vstart=0xe000 align=1 ; size=0x2000 class=CODE group=AUTO … … 13515 13804 mov word [001c2h], ax ; a3 c2 01 13516 13805 call 0edbfh ; e8 59 0b 13517 mov ax, 0f8a 3h ; b8 a3f813806 mov ax, 0f8a4h ; b8 a4 f8 13518 13807 mov word [001d0h], ax ; a3 d0 01 13519 13808 mov ax, 0f000h ; b8 00 f0 … … 13536 13825 call 01b25h ; e8 89 38 13537 13826 call 01f23h ; e8 84 3c 13538 call 0 7701h ; e8 5f 9413539 call 0 857bh ; e8 d6 a213827 call 085e4h ; e8 42 a3 13828 call 07701h ; e8 5c 94 13540 13829 call 0ed2fh ; e8 87 0a 13541 13830 call 0e2d2h ; e8 27 00 … … 13585 13874 mov ax, 0f000h ; b8 00 f0 13586 13875 mov word [0004eh], ax ; a3 4e 00 13587 mov ax, 0f8d 1h ; b8 d1f813876 mov ax, 0f8d2h ; b8 d2 f8 13588 13877 mov word [001d8h], ax ; a3 d8 01 13589 13878 mov ax, 0f000h ; b8 00 f0 … … 14618 14907 pop DS ; 1f 14619 14908 iret ; cf 14620 int15_handler: ; 0xff859 LB 0x2 814909 int15_handler: ; 0xff859 LB 0x29 14621 14910 pushfw ; 9c 14622 cmp ah, 053h ; 80 fc 5314623 je short 0f87dh ; 74 1e14624 14911 push DS ; 1e 14625 14912 push ES ; 06 … … 14628 14915 cld ; fc 14629 14916 cmp ah, 086h ; 80 fc 86 14630 je short 0f88 6h ; 74 1d14917 je short 0f887h ; 74 23 14631 14918 cmp ah, 0e8h ; 80 fc e8 14632 je short 0f88 6h ; 74 1814919 je short 0f887h ; 74 1e 14633 14920 pushaw ; 60 14921 cmp ah, 053h ; 80 fc 53 14922 je short 0f87dh ; 74 0e 14634 14923 cmp ah, 0c2h ; 80 fc c2 14635 je short 0f88 1h ; 74 0d14924 je short 0f882h ; 74 0e 14636 14925 call 05da6h ; e8 2f 65 14637 14926 popaw ; 61 … … 14639 14928 pop DS ; 1f 14640 14929 popfw ; 9d 14641 jmp short 0f88fh ; eb 12 14642 popfw ; 9d 14643 stc ; f9 14644 jmp short 0f88fh ; eb 0e 14645 int15_handler_mouse: ; 0xff881 LB 0x5 14646 call 06995h ; e8 11 71 14647 jmp short 0f877h ; eb f1 14648 int15_handler32: ; 0xff886 LB 0x9 14930 jmp short 0f890h ; eb 13 14931 call 08713h ; e8 93 8e 14932 jmp short 0f877h ; eb f5 14933 int15_handler_mouse: ; 0xff882 LB 0x5 14934 call 06995h ; e8 10 71 14935 jmp short 0f877h ; eb f0 14936 int15_handler32: ; 0xff887 LB 0x9 14649 14937 pushad ; 66 60 14650 call 0626fh ; e8 e 46914938 call 0626fh ; e8 e3 69 14651 14939 popad ; 66 61 14652 jmp short 0f878h ; eb e 914653 iret_modify_cf: ; 0xff8 8fLB 0x1414654 jc short 0f89 ah ; 72 0914940 jmp short 0f878h ; eb e8 14941 iret_modify_cf: ; 0xff890 LB 0x14 14942 jc short 0f89bh ; 72 09 14655 14943 push bp ; 55 14656 14944 db 08bh, 0ech … … 14665 14953 pop bp ; 5d 14666 14954 iret ; cf 14667 int74_handler: ; 0xff8a 3LB 0x2e14955 int74_handler: ; 0xff8a4 LB 0x2e 14668 14956 sti ; fb 14669 14957 pushaw ; 60 … … 14678 14966 pop DS ; 1f 14679 14967 cld ; fc 14680 call 068cfh ; e8 1 87014968 call 068cfh ; e8 17 70 14681 14969 pop cx ; 59 14682 jcxz 0f8c 6h ; e3 0c14970 jcxz 0f8c7h ; e3 0c 14683 14971 push strict byte 00000h ; 6a 00 14684 14972 pop DS ; 1f … … 14687 14975 call far [word 00022h] ; ff 1e 22 00 14688 14976 cli ; fa 14689 call 0e03bh ; e8 7 1e714977 call 0e03bh ; e8 70 e7 14690 14978 add sp, strict byte 00008h ; 83 c4 08 14691 14979 pop DS ; 1f … … 14693 14981 popaw ; 61 14694 14982 iret ; cf 14695 int76_handler: ; 0xff8d 1 LB 0x19d14983 int76_handler: ; 0xff8d2 LB 0x19c 14696 14984 push ax ; 50 14697 14985 push DS ; 1e … … 14699 14987 mov ds, ax ; 8e d8 14700 14988 mov byte [0008eh], 0ffh ; c6 06 8e 00 ff 14701 call 0e03bh ; e8 5 be714989 call 0e03bh ; e8 5a e7 14702 14990 pop DS ; 1f 14703 14991 pop ax ; 58 14704 14992 iret ; cf 14705 times 0x18 9db 014993 times 0x188 db 0 14706 14994 db 'XM' 14707 14995 font8x8: ; 0xffa6e LB 0x421 … … 14770 15058 db 018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h 14771 15059 db 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h 14772 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 0 0ah, 089h, 066h15060 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 09eh, 08ah, 066h 14773 15061 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 0ech, 067h, 061h, 01fh, 007h 14774 15062 db 0cfh … … 14876 15164 cpu_reset: ; 0xffff0 LB 0x10 14877 15165 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 14878 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 93h15166 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0cdh -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum
r42455 r43078 1 a212a9bf22e8891d5def4f53b570445c*VBoxPcBios.rom1 6540183b9e43c8c9e7562cd549a7fd9b *VBoxPcBios.rom
Note:
See TracChangeset
for help on using the changeset viewer.