Changeset 67807 in vbox for trunk/src/VBox/Devices/PC/BIOS
- Timestamp:
- Jul 5, 2017 4:04:39 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 116732
- Location:
- trunk/src/VBox/Devices/PC/BIOS
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
r67789 r67807 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, 080h, 081h, 0 e6h, 090h990 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 080h, 081h, 06eh, 091h 991 991 _softrst: ; 0xf0076 LB 0xc 992 992 db 000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 04dh, 03bh, 04dh, 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 0c0h, 07fh, 0a0h, 080h, 0 b8h, 08fh, 060h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h995 db 0c0h, 07fh, 0a0h, 080h, 040h, 090h, 0e8h, 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 998 section CONST progbits vstart=0xb0 align=1 ; size=0x cdeclass=DATA group=DGROUP998 section CONST progbits vstart=0xb0 align=1 ; size=0xd40 class=DATA group=DGROUP 999 999 db 'NMI Handler called', 00ah, 000h 1000 1000 db 'INT18: BOOT FAILURE', 00ah, 000h … … 1101 1101 db 'Disk %d has an unsupported sector size of %u', 00ah, 000h 1102 1102 db 'SCSI %d-ID#%d: LCHS=%lu/%u/%u 0x%llx sectors', 00ah, 000h 1103 db 'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h, 000h 1103 db 'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h 1104 db 'scsi_pci_init', 000h 1105 db '%s: Adapter %x:%x not found, how come?!', 00ah, 000h 1106 db '%s: Adapter %x:%x found at %x, enabling BM', 00ah, 000h 1104 1107 db 'ahci_read_sectors', 000h 1105 1108 db '%s: device_id out of range %d', 00ah, 000h … … 1114 1117 db 'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h 1115 1118 1116 section CONST2 progbits vstart=0xd 8ealign=1 ; size=0x3fa class=DATA group=DGROUP1117 _bios_cvs_version_string: ; 0xf0d 8eLB 0x121119 section CONST2 progbits vstart=0xdf0 align=1 ; size=0x3fa class=DATA group=DGROUP 1120 _bios_cvs_version_string: ; 0xf0df0 LB 0x12 1118 1121 db 'VirtualBox 5.1.51', 000h 1119 _bios_prefix_string: ; 0xf0 da0LB 0x81122 _bios_prefix_string: ; 0xf0e02 LB 0x8 1120 1123 db 'BIOS: ', 000h, 000h 1121 _isotag: ; 0xf0 da8LB 0x61124 _isotag: ; 0xf0e0a LB 0x6 1122 1125 db 'CD001', 000h 1123 _eltorito: ; 0xf0 daeLB 0x181126 _eltorito: ; 0xf0e10 LB 0x18 1124 1127 db 'EL TORITO SPECIFICATION', 000h 1125 _drivetypes: ; 0xf0 dc6LB 0x281128 _drivetypes: ; 0xf0e28 LB 0x28 1126 1129 db 046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h 1127 1130 db 069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h 1128 1131 db 04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h 1129 _scan_to_scanascii: ; 0xf0 deeLB 0x37a1132 _scan_to_scanascii: ; 0xf0e50 LB 0x37a 1130 1133 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h 1131 1134 db 000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h … … 1184 1187 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h 1185 1188 db 000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h 1186 _panic_msg_keyb_buffer_full: ; 0xf11 68LB 0x201189 _panic_msg_keyb_buffer_full: ; 0xf11ca LB 0x20 1187 1190 db '%s: keyboard input buffer full', 00ah, 000h 1188 1191 1189 ; Padding 0x4 78 bytes at 0xf11881190 times 1 144db 01192 ; Padding 0x416 bytes at 0xf11ea 1193 times 1046 db 0 1191 1194 1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8 d98 class=CODE group=AUTO1195 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e48 class=CODE group=AUTO 1193 1196 rom_scan_: ; 0xf1600 LB 0x50 1194 1197 push bp ; 55 … … 1411 1414 push bp ; 55 1412 1415 mov bp, sp ; 89 e5 1413 mov bx, 00 da0h ; bb a0 0d1416 mov bx, 00e02h ; bb 02 0e 1414 1417 mov cx, ds ; 8c d9 1415 1418 mov ax, strict word 00004h ; b8 04 00 1416 1419 call 01923h ; e8 a8 01 1417 push 00d 8eh ; 68 8e0d1420 push 00df0h ; 68 f0 0d 1418 1421 push 000d9h ; 68 d9 00 1419 1422 push strict byte 00004h ; 6a 04 … … 1585 1588 mov bx, strict word 0000ah ; bb 0a 00 1586 1589 xor cx, cx ; 31 c9 1587 call 0a0 30h ; e8 63 871590 call 0a0e0h ; e8 13 88 1588 1591 mov word [bp-008h], ax ; 89 46 f8 1589 1592 mov cx, dx ; 89 d1 … … 1815 1818 mov dx, word [bp-026h] ; 8b 56 da 1816 1819 mov si, word [bp-01eh] ; 8b 76 e2 1817 call 0a 060h ; e8 63 851820 call 0a110h ; e8 13 86 1818 1821 mov ax, dx ; 89 d0 1819 1822 xor ah, dh ; 30 f4 … … 2254 2257 mov dx, word [es:si] ; 26 8b 14 2255 2258 mov si, strict word 00018h ; be 18 00 2256 call 0a 060h ; e8 10 812259 call 0a110h ; e8 c0 81 2257 2260 xor dh, dh ; 30 f6 2258 2261 mov word [bp-014h], dx ; 89 56 ec … … 2264 2267 mov dx, word [es:si] ; 26 8b 14 2265 2268 mov si, strict word 00020h ; be 20 00 2266 call 0a 060h ; e8 f0 802269 call 0a110h ; e8 a0 81 2267 2270 mov bx, dx ; 89 d3 2268 2271 mov ax, word [bp-01ch] ; 8b 46 e4 … … 2295 2298 mov dx, word [es:si] ; 26 8b 14 2296 2299 mov si, strict word 00008h ; be 08 00 2297 call 0a 060h ; e8 9f 802300 call 0a110h ; e8 4f 81 2298 2301 mov word [bp-012h], dx ; 89 56 ee 2299 2302 mov bx, word [bp-016h] ; 8b 5e ea … … 2304 2307 mov dx, word [es:si] ; 26 8b 14 2305 2308 mov si, strict word 00018h ; be 18 00 2306 call 0a 060h ; e8 81 802309 call 0a110h ; e8 31 81 2307 2310 mov ah, dl ; 88 d4 2308 2311 and ah, 00fh ; 80 e4 0f … … 2695 2698 lea ax, [bp-03ah] ; 8d 46 c6 2696 2699 call 05a02h ; e8 58 36 2697 mov bx, 00 da0h ; bb a0 0d2700 mov bx, 00e02h ; bb 02 0e 2698 2701 mov cx, ds ; 8c d9 2699 2702 mov ax, strict word 00004h ; b8 04 00 … … 2861 2864 mov dx, word [es:di+036h] ; 26 8b 55 36 2862 2865 mov si, strict word 0000bh ; be 0b 00 2863 call 0a 060h ; e8 d9 7a2866 call 0a110h ; e8 89 7b 2864 2867 mov word [bp-024h], dx ; 89 56 dc 2865 2868 mov word [bp-032h], cx ; 89 4e ce … … 3137 3140 mov dx, word [bp-024h] ; 8b 56 dc 3138 3141 mov si, strict word 00018h ; be 18 00 3139 call 0a 060h ; e8 17 783142 call 0a110h ; e8 c7 78 3140 3143 xor dh, dh ; 30 f6 3141 3144 mov word [bp-014h], dx ; 89 56 ec … … 3145 3148 mov dx, word [bp-024h] ; 8b 56 dc 3146 3149 mov si, strict word 00020h ; be 20 00 3147 call 0a 060h ; e8 00 783150 call 0a110h ; e8 b0 78 3148 3151 mov bx, dx ; 89 d3 3149 3152 mov ax, word [bp-022h] ; 8b 46 de … … 3179 3182 mov dx, word [bp-024h] ; 8b 56 dc 3180 3183 mov si, strict word 00008h ; be 08 00 3181 call 0a 060h ; e8 ac 773184 call 0a110h ; e8 5c 78 3182 3185 mov word [bp-00ch], ax ; 89 46 f4 3183 3186 mov word [bp-00eh], bx ; 89 5e f2 … … 3186 3189 mov word [bp-018h], dx ; 89 56 e8 3187 3190 mov si, strict word 00010h ; be 10 00 3188 call 0a 060h ; e8 97 773191 call 0a110h ; e8 47 78 3189 3192 mov word [bp-024h], dx ; 89 56 dc 3190 3193 mov ax, dx ; 89 d0 … … 3446 3449 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 3447 3450 jne short 02b52h ; 75 1f 3448 mov bx, 00 da0h ; bb a0 0d3451 mov bx, 00e02h ; bb 02 0e 3449 3452 mov cx, ds ; 8c d9 3450 3453 mov ax, strict word 00004h ; b8 04 00 … … 4280 4283 cmp bh, 048h ; 80 ff 48 4281 4284 jbe short 03292h ; 76 33 4282 mov bx, 00 da0h ; bb a0 0d4285 mov bx, 00e02h ; bb 02 0e 4283 4286 mov cx, ds ; 8c d9 4284 4287 mov ax, strict word 00004h ; b8 04 00 … … 5183 5186 mov byte [es:bx], 000h ; 26 c6 07 00 5184 5187 jmp near 0348ch ; e9 92 f9 5185 mov bx, 00 da0h ; bb a0 0d5188 mov bx, 00e02h ; bb 02 0e 5186 5189 mov cx, ds ; 8c d9 5187 5190 mov ax, strict word 00004h ; b8 04 00 … … 5281 5284 cmp ax, strict word 0004ah ; 3d 4a 00 5282 5285 jne short 03be4h ; 75 1f 5283 mov bx, 00 da0h ; bb a0 0d5286 mov bx, 00e02h ; bb 02 0e 5284 5287 mov cx, ds ; 8c d9 5285 5288 mov ax, strict word 00004h ; b8 04 00 … … 5386 5389 pop bp ; 5d 5387 5390 retn ; c3 5388 mov bx, 00 da0h ; bb a0 0d5391 mov bx, 00e02h ; bb 02 0e 5389 5392 mov cx, ds ; 8c d9 5390 5393 mov ax, strict word 00004h ; b8 04 00 … … 5468 5471 mov dx, ss ; 8c d2 5469 5472 lea ax, [bp-026h] ; 8d 46 da 5470 call 0a 080h ; e8 c9 625473 call 0a130h ; e8 79 63 5471 5474 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5472 5475 mov ax, strict word 00011h ; b8 11 00 … … 5527 5530 jnc short 03e62h ; 73 10 5528 5531 mov al, byte [bp+di-00825h] ; 8a 83 db f7 5529 cmp al, byte [di+00 da8h] ; 3a 85 a8 0d5532 cmp al, byte [di+00e0ah] ; 3a 85 0a 0e 5530 5533 je short 03e4ch ; 74 f0 5531 5534 mov ax, strict word 00005h ; b8 05 00 … … 5537 5540 jnc short 03e7ch ; 73 10 5538 5541 mov al, byte [bp+di-0081fh] ; 8a 83 e1 f7 5539 cmp al, byte [di+00 daeh] ; 3a 85 ae 0d5542 cmp al, byte [di+00e10h] ; 3a 85 10 0e 5540 5543 je short 03e66h ; 74 f0 5541 5544 mov ax, strict word 00006h ; b8 06 00 … … 5829 5832 cmp ax, dx ; 39 d0 5830 5833 je short 04212h ; 74 29 5831 mov bx, 00 da0h ; bb a0 0d5834 mov bx, 00e02h ; bb 02 0e 5832 5835 mov cx, ds ; 8c d9 5833 5836 mov ax, strict word 00004h ; b8 04 00 … … 5941 5944 xor dl, dl ; 30 d2 5942 5945 xor cx, cx ; 31 c9 5943 call 0a0 10h ; e8 f3 5c5946 call 0a0c0h ; e8 a3 5d 5944 5947 xor bx, bx ; 31 db 5945 5948 add ax, si ; 01 f0 … … 5947 5950 mov bx, di ; 89 fb 5948 5951 xor cx, cx ; 31 c9 5949 call 0a0 10h ; e8 e6 5c5952 call 0a0c0h ; e8 96 5d 5950 5953 mov bx, ax ; 89 c3 5951 5954 mov ax, word [bp-010h] ; 8b 46 f0 … … 5982 5985 mov dx, ss ; 8c d2 5983 5986 lea ax, [bp-02eh] ; 8d 46 d2 5984 call 0a 080h ; e8 ff 5c5987 call 0a130h ; e8 af 5d 5985 5988 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 5986 5989 mov ax, word [bp-014h] ; 8b 46 ec … … 6049 6052 test al, al ; 84 c0 6050 6053 je short 0446ch ; 74 37 6051 mov bx, 00 da0h ; bb a0 0d6054 mov bx, 00e02h ; bb 02 0e 6052 6055 mov cx, ds ; 8c d9 6053 6056 mov ax, strict word 00004h ; b8 04 00 … … 6146 6149 mov word [bp+016h], bx ; 89 5e 16 6147 6150 jmp near 04470h ; e9 38 ff 6148 mov bx, 00 da0h ; bb a0 0d6151 mov bx, 00e02h ; bb 02 0e 6149 6152 mov cx, ds ; 8c d9 6150 6153 mov ax, strict word 00004h ; b8 04 00 … … 6268 6271 mov word [bp+016h], strict word 00007h ; c7 46 16 07 00 6269 6272 jmp near 04afbh ; e9 39 04 6270 mov bx, 00 da0h ; bb a0 0d6273 mov bx, 00e02h ; bb 02 0e 6271 6274 mov cx, ds ; 8c d9 6272 6275 mov ax, strict word 00004h ; b8 04 00 … … 6321 6324 mov dx, ss ; 8c d2 6322 6325 lea ax, [bp-030h] ; 8d 46 d0 6323 call 0a 080h ; e8 22 596326 call 0a130h ; e8 d2 59 6324 6327 mov word [bp-030h], strict word 00028h ; c7 46 d0 28 00 6325 6328 mov ax, word [bp-00eh] ; 8b 46 f2 … … 6377 6380 cmp byte [bp-018h], 000h ; 80 7e e8 00 6378 6381 je short 04846h ; 74 53 6379 mov bx, 00 da0h ; bb a0 0d6382 mov bx, 00e02h ; bb 02 0e 6380 6383 mov cx, ds ; 8c d9 6381 6384 mov ax, strict word 00004h ; b8 04 00 … … 6682 6685 je short 04b96h ; 74 21 6683 6686 mov dx, strict word 00001h ; ba 01 00 6684 mov bx, 00 da0h ; bb a0 0d6687 mov bx, 00e02h ; bb 02 0e 6685 6688 mov cx, ds ; 8c d9 6686 6689 mov ax, strict word 00004h ; b8 04 00 6687 6690 call 01923h ; e8 a0 cd 6688 6691 imul dx, dx, strict byte 0000ah ; 6b d2 0a 6689 add dx, 00 dc6h ; 81 c2 c6 0d6692 add dx, 00e28h ; 81 c2 28 0e 6690 6693 push dx ; 52 6691 6694 push 00494h ; 68 94 04 … … 6709 6712 test al, al ; 84 c0 6710 6713 je short 04bcch ; 74 1b 6711 mov bx, 00 da0h ; bb a0 0d6714 mov bx, 00e02h ; bb 02 0e 6712 6715 mov cx, ds ; 8c d9 6713 6716 mov ax, strict word 00004h ; b8 04 00 6714 6717 call 01923h ; e8 67 cd 6715 push 00 ddah ; 68 da 0d6718 push 00e3ch ; 68 3c 0e 6716 6719 push 004a8h ; 68 a8 04 6717 6720 push strict byte 00004h ; 6a 04 … … 6721 6724 test ah, ah ; 84 e4 6722 6725 je short 04be0h ; 74 10 6723 mov bx, 00 da0h ; bb a0 0d6726 mov bx, 00e02h ; bb 02 0e 6724 6727 mov cx, ds ; 8c d9 6725 6728 mov ax, strict word 00004h ; b8 04 00 6726 6729 call 01923h ; e8 48 cd 6727 push 00 de4h ; 68 e4 0d6730 push 00e46h ; 68 46 0e 6728 6731 jmp short 04bbfh ; eb df 6729 6732 test bl, 080h ; f6 c3 80 6730 6733 je short 04bf6h ; 74 11 6731 mov bx, 00 da0h ; bb a0 0d6734 mov bx, 00e02h ; bb 02 0e 6732 6735 mov cx, ds ; 8c d9 6733 6736 mov ax, strict word 00004h ; b8 04 00 6734 6737 call 01923h ; e8 33 cd 6735 6738 push si ; 56 6736 push 00 dd0h ; 68 d0 0d6739 push 00e32h ; 68 32 0e 6737 6740 jmp short 04c05h ; eb 0f 6738 mov bx, 00 da0h ; bb a0 0d6741 mov bx, 00e02h ; bb 02 0e 6739 6742 mov cx, ds ; 8c d9 6740 6743 mov ax, strict word 00004h ; b8 04 00 6741 6744 call 01923h ; e8 22 cd 6742 6745 push si ; 56 6743 push 00 dc6h ; 68 c6 0d6746 push 00e28h ; 68 28 0e 6744 6747 push 004bdh ; 68 bd 04 6745 6748 push strict byte 00004h ; 6a 04 … … 6767 6770 push dx ; 52 6768 6771 mov dx, ax ; 89 c2 6769 mov bx, 00 da0h ; bb a0 0d6772 mov bx, 00e02h ; bb 02 0e 6770 6773 mov cx, ds ; 8c d9 6771 6774 mov ax, strict word 00004h ; b8 04 00 … … 6845 6848 mov byte [bp-008h], al ; 88 46 f8 6846 6849 mov byte [bp-00ah], al ; 88 46 f6 6847 mov bx, 00 da0h ; bb a0 0d6850 mov bx, 00e02h ; bb 02 0e 6848 6851 mov cx, ds ; 8c d9 6849 6852 mov ax, strict word 00004h ; b8 04 00 … … 7409 7412 test al, al ; 84 c0 7410 7413 jne short 0520fh ; 75 19 7411 mov bx, 00 da0h ; bb a0 0d7414 mov bx, 00e02h ; bb 02 0e 7412 7415 mov cx, ds ; 8c d9 7413 7416 mov ax, strict word 00004h ; b8 04 00 … … 7755 7758 cmp byte [bp-00ah], 058h ; 80 7e f6 58 7756 7759 jbe short 0559bh ; 76 1f 7757 mov bx, 00 da0h ; bb a0 0d7760 mov bx, 00e02h ; bb 02 0e 7758 7761 mov cx, ds ; 8c d9 7759 7762 mov ax, strict word 00004h ; b8 04 00 … … 7773 7776 xor ah, ah ; 30 e4 7774 7777 imul bx, ax, strict byte 0000ah ; 6b d8 0a 7775 mov dl, byte [bx+00 df4h] ; 8a 97 f4 0d7776 mov ax, word [bx+00 df4h] ; 8b 87 f4 0d7778 mov dl, byte [bx+00e56h] ; 8a 97 56 0e 7779 mov ax, word [bx+00e56h] ; 8b 87 56 0e 7777 7780 jmp near 05645h ; e9 90 00 7778 7781 test AL, strict byte 004h ; a8 04 … … 7781 7784 xor ah, ah ; 30 e4 7782 7785 imul bx, ax, strict byte 0000ah ; 6b d8 0a 7783 mov dl, byte [bx+00 df2h] ; 8a 97 f2 0d7784 mov ax, word [bx+00 df2h] ; 8b 87 f2 0d7786 mov dl, byte [bx+00e54h] ; 8a 97 54 0e 7787 mov ax, word [bx+00e54h] ; 8b 87 54 0e 7785 7788 jmp near 05645h ; e9 79 00 7786 7789 mov al, byte [bp-00ch] ; 8a 46 f4 … … 7802 7805 xor ah, ah ; 30 e4 7803 7806 imul bx, ax, strict byte 0000ah ; 6b d8 0a 7804 mov al, byte [bx+00 df6h] ; 8a 87 f6 0d7807 mov al, byte [bx+00e58h] ; 8a 87 58 0e 7805 7808 mov dx, ax ; 89 c2 7806 7809 mov al, byte [bp-00eh] ; 8a 46 f2 7807 7810 test ax, dx ; 85 d0 7808 7811 je short 0560eh ; 74 0a 7809 mov dl, byte [bx+00 deeh] ; 8a 97 ee 0d7810 mov ax, word [bx+00 deeh] ; 8b 87 ee 0d7812 mov dl, byte [bx+00e50h] ; 8a 97 50 0e 7813 mov ax, word [bx+00e50h] ; 8b 87 50 0e 7811 7814 jmp short 05616h ; eb 08 7812 mov dl, byte [bx+00 df0h] ; 8a 97 f0 0d7813 mov ax, word [bx+00 df0h] ; 8b 87 f0 0d7815 mov dl, byte [bx+00e52h] ; 8a 97 52 0e 7816 mov ax, word [bx+00e52h] ; 8b 87 52 0e 7814 7817 shr ax, 008h ; c1 e8 08 7815 7818 mov byte [bp-00ah], al ; 88 46 f6 … … 7818 7821 xor ah, ah ; 30 e4 7819 7822 imul bx, ax, strict byte 0000ah ; 6b d8 0a 7820 mov al, byte [bx+00 df6h] ; 8a 87 f6 0d7823 mov al, byte [bx+00e58h] ; 8a 87 58 0e 7821 7824 mov dx, ax ; 89 c2 7822 7825 mov al, byte [bp-00eh] ; 8a 46 f2 7823 7826 test ax, dx ; 85 d0 7824 7827 je short 0563dh ; 74 0a 7825 mov dl, byte [bx+00 df0h] ; 8a 97 f0 0d7826 mov ax, word [bx+00 df0h] ; 8b 87 f0 0d7828 mov dl, byte [bx+00e52h] ; 8a 97 52 0e 7829 mov ax, word [bx+00e52h] ; 8b 87 52 0e 7827 7830 jmp short 05645h ; eb 08 7828 mov dl, byte [bx+00 deeh] ; 8a 97 ee 0d7829 mov ax, word [bx+00 deeh] ; 8b 87 ee 0d7831 mov dl, byte [bx+00e50h] ; 8a 97 50 0e 7832 mov ax, word [bx+00e50h] ; 8b 87 50 0e 7830 7833 shr ax, 008h ; c1 e8 08 7831 7834 mov byte [bp-00ah], al ; 88 46 f6 … … 7834 7837 test dl, dl ; 84 d2 7835 7838 jne short 0566bh ; 75 16 7836 mov bx, 00 da0h ; bb a0 0d7839 mov bx, 00e02h ; bb 02 0e 7837 7840 mov cx, ds ; 8c d9 7838 7841 mov ax, strict word 00004h ; b8 04 00 … … 8034 8037 mov word [bp+012h], dx ; 89 56 12 8035 8038 jmp near 05855h ; e9 43 00 8036 mov bx, 00 da0h ; bb a0 0d8039 mov bx, 00e02h ; bb 02 0e 8037 8040 mov cx, ds ; 8c d9 8038 8041 mov ax, strict word 00004h ; b8 04 00 … … 8045 8048 call 01966h ; e8 3a c1 8046 8049 add sp, strict byte 00006h ; 83 c4 06 8047 mov bx, 00 da0h ; bb a0 0d8050 mov bx, 00e02h ; bb 02 0e 8048 8051 mov cx, ds ; 8c d9 8049 8052 mov ax, strict word 00004h ; b8 04 00 … … 8254 8257 mov dx, word [bp+00ch] ; 8b 56 0c 8255 8258 mov si, strict word 00020h ; be 20 00 8256 call 0a 060h ; e8 31 468259 call 0a110h ; e8 e1 46 8257 8260 test ax, ax ; 85 c0 8258 8261 jne short 05a3fh ; 75 0c … … 8292 8295 mov bx, strict word 0003fh ; bb 3f 00 8293 8296 xor cx, cx ; 31 c9 8294 call 0a0 10h ; e8 88 458297 call 0a0c0h ; e8 38 46 8295 8298 mov bx, ax ; 89 c3 8296 8299 mov cx, dx ; 89 d1 8297 8300 mov ax, word [bp-004h] ; 8b 46 fc 8298 8301 mov dx, si ; 89 f2 8299 call 0a0 30h ; e8 9c 458302 call 0a0e0h ; e8 4c 46 8300 8303 mov word [es:di+002h], ax ; 26 89 45 02 8301 8304 cmp ax, 00400h ; 3d 00 04 … … 8438 8441 test ax, ax ; 85 c0 8439 8442 jne short 05c16h ; 75 26 8440 mov bx, 00 da0h ; bb a0 0d8443 mov bx, 00e02h ; bb 02 0e 8441 8444 mov cx, ds ; 8c d9 8442 8445 mov ax, strict word 00004h ; b8 04 00 … … 8469 8472 cmp ax, dx ; 39 d0 8470 8473 jbe short 05c74h ; 76 30 8471 mov bx, 00 da0h ; bb a0 0d8474 mov bx, 00e02h ; bb 02 0e 8472 8475 mov cx, ds ; 8c d9 8473 8476 mov ax, strict word 00004h ; b8 04 00 … … 8511 8514 mov bx, cx ; 89 cb 8512 8515 xor cx, cx ; 31 c9 8513 call 0a0 10h ; e8 5d 438516 call 0a0c0h ; e8 0d 44 8514 8517 xor bx, bx ; 31 db 8515 8518 add ax, word [bp-006h] ; 03 46 fa … … 8517 8520 mov bx, word [bp-008h] ; 8b 5e f8 8518 8521 xor cx, cx ; 31 c9 8519 call 0a0 10h ; e8 4e 438522 call 0a0c0h ; e8 fe 43 8520 8523 xor bx, bx ; 31 db 8521 8524 add ax, word [bp-004h] ; 03 46 fc … … 8574 8577 test dl, dl ; 84 d2 8575 8578 je short 05dbbh ; 74 46 8576 mov bx, 00 da0h ; bb a0 0d8579 mov bx, 00e02h ; bb 02 0e 8577 8580 mov cx, ds ; 8c d9 8578 8581 mov ax, strict word 00004h ; b8 04 00 … … 8593 8596 or ah, 00ch ; 80 cc 0c 8594 8597 jmp near 05f01h ; e9 5c 01 8595 mov bx, 00 da0h ; bb a0 0d8598 mov bx, 00e02h ; bb 02 0e 8596 8599 mov cx, ds ; 8c d9 8597 8600 mov ax, strict word 00004h ; b8 04 00 … … 8685 8688 mov bx, word [bp-006h] ; 8b 5e fa 8686 8689 xor cx, cx ; 31 c9 8687 call 0a0 10h ; e8 77 418690 call 0a0c0h ; e8 27 42 8688 8691 mov bx, word [bp-004h] ; 8b 5e fc 8689 8692 xor cx, cx ; 31 c9 8690 call 0a0 10h ; e8 6f 418693 call 0a0c0h ; e8 1f 42 8691 8694 mov word [bp-00eh], ax ; 89 46 f2 8692 8695 mov word [bp-00ah], dx ; 89 56 f6 … … 8698 8701 mov word [bp+016h], ax ; 89 46 16 8699 8702 jmp near 05dbfh ; e9 04 ff 8700 mov bx, 00 da0h ; bb a0 0d8703 mov bx, 00e02h ; bb 02 0e 8701 8704 mov cx, ds ; 8c d9 8702 8705 mov ax, strict word 00004h ; b8 04 00 … … 8711 8714 add sp, strict byte 00008h ; 83 c4 08 8712 8715 jmp near 05dbbh ; e9 dd fe 8713 mov bx, 00 da0h ; bb a0 0d8716 mov bx, 00e02h ; bb 02 0e 8714 8717 mov cx, ds ; 8c d9 8715 8718 mov ax, strict word 00004h ; b8 04 00 … … 8801 8804 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 8802 8805 jmp near 06400h ; e9 10 04 8803 mov bx, 00 da0h ; bb a0 0d8806 mov bx, 00e02h ; bb 02 0e 8804 8807 mov cx, ds ; 8c d9 8805 8808 mov ax, strict word 00004h ; b8 04 00 … … 8826 8829 xor bx, bx ; 31 db 8827 8830 mov si, strict word 00020h ; be 20 00 8828 call 0a 070h ; e8 32 408831 call 0a120h ; e8 e2 40 8829 8832 mov si, ax ; 89 c6 8830 8833 mov word [bp-00ch], bx ; 89 5e f4 … … 8853 8856 cmp dx, word [es:bx+036h] ; 26 3b 57 36 8854 8857 jc short 060abh ; 72 23 8855 mov bx, 00 da0h ; bb a0 0d8858 mov bx, 00e02h ; bb 02 0e 8856 8859 mov cx, ds ; 8c d9 8857 8860 mov ax, strict word 00004h ; b8 04 00 … … 8911 8914 test dl, dl ; 84 d2 8912 8915 je short 0618dh ; 74 51 8913 mov bx, 00 da0h ; bb a0 0d8916 mov bx, 00e02h ; bb 02 0e 8914 8917 mov cx, ds ; 8c d9 8915 8918 mov ax, strict word 00004h ; b8 04 00 … … 8983 8986 mov bx, word [bp-00ch] ; 8b 5e f4 8984 8987 mov si, strict word 00020h ; be 20 00 8985 call 0a 060h ; e8 3e 3e8988 call 0a110h ; e8 ee 3e 8986 8989 mov bx, di ; 89 fb 8987 8990 mov word [es:bx+014h], dx ; 26 89 57 14 … … 9339 9342 mov bx, strict word 0000fh ; bb 0f 00 9340 9343 xor cx, cx ; 31 c9 9341 call 0a0 30h ; e8 7b 3a9344 call 0a0e0h ; e8 2b 3b 9342 9345 mov cx, ax ; 89 c1 9343 9346 mov bx, dx ; 89 d3 … … 9500 9503 mov word [bp+00ch], ax ; 89 46 0c 9501 9504 jmp near 0677fh ; e9 2b 00 9502 mov bx, 00 da0h ; bb a0 0d9505 mov bx, 00e02h ; bb 02 0e 9503 9506 mov cx, ds ; 8c d9 9504 9507 mov ax, strict word 00004h ; b8 04 00 … … 9691 9694 retf ; cb 9692 9695 jmp near 0677fh ; e9 49 fe 9693 mov bx, 00 da0h ; bb a0 0d9696 mov bx, 00e02h ; bb 02 0e 9694 9697 mov cx, ds ; 8c d9 9695 9698 mov ax, strict word 00004h ; b8 04 00 … … 9731 9734 or byte [bp+018h], 001h ; 80 4e 18 01 9732 9735 jmp near 0677fh ; e9 d3 fd 9733 mov bx, 00 da0h ; bb a0 0d9736 mov bx, 00e02h ; bb 02 0e 9734 9737 mov cx, ds ; 8c d9 9735 9738 mov ax, strict word 00004h ; b8 04 00 … … 9924 9927 mov word [bp+014h], strict word 00003h ; c7 46 14 03 00 9925 9928 jmp short 06b65h ; eb b9 9926 mov bx, 00 da0h ; bb a0 0d9929 mov bx, 00e02h ; bb 02 0e 9927 9930 mov cx, ds ; 8c d9 9928 9931 mov ax, strict word 00004h ; b8 04 00 … … 10700 10703 je short 0738dh ; 74 0e 10701 10704 push 008eeh ; 68 ee 08 10702 push 011 68h ; 68 681110705 push 011cah ; 68 ca 11 10703 10706 push strict byte 00007h ; 6a 07 10704 10707 call 01966h ; e8 dc a5 … … 10781 10784 je short 0741eh ; 74 0e 10782 10785 push 008f8h ; 68 f8 08 10783 push 011 68h ; 68 681110786 push 011cah ; 68 ca 11 10784 10787 push strict byte 00007h ; 6a 07 10785 10788 call 01966h ; e8 4b a5 … … 12290 12293 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12291 12294 jne short 081c7h ; 75 1f 12292 mov bx, 00 da0h ; bb a0 0d12295 mov bx, 00e02h ; bb 02 0e 12293 12296 mov cx, ds ; 8c d9 12294 12297 mov ax, strict word 00004h ; b8 04 00 … … 12448 12451 mov dx, ss ; 8c d2 12449 12452 lea ax, [bp-046h] ; 8d 46 ba 12450 call 0a 080h ; e8 60 1d12453 call 0a130h ; e8 10 1e 12451 12454 mov byte [bp-046h], 09eh ; c6 46 ba 9e 12452 12455 mov byte [bp-045h], 010h ; c6 46 bb 10 … … 12512 12515 cmp bx, 00200h ; 81 fb 00 02 12513 12516 je short 083e9h ; 74 20 12514 mov bx, 00 da0h ; bb a0 0d12517 mov bx, 00e02h ; bb 02 0e 12515 12518 mov cx, ds ; 8c d9 12516 12519 mov ax, strict word 00004h ; b8 04 00 … … 12579 12582 mov dx, word [bp-014h] ; 8b 56 ec 12580 12583 mov si, strict word 0000ch ; be 0c 00 12581 call 0a 060h ; e8 f9 1b12584 call 0a110h ; e8 a9 1c 12582 12585 mov word [bp-02ah], ax ; 89 46 d6 12583 12586 mov word [bp-016h], bx ; 89 5e ea … … 12601 12604 mov dx, word [bp-014h] ; 8b 56 ec 12602 12605 mov si, strict word 00006h ; be 06 00 12603 call 0a 060h ; e8 b8 1b12606 call 0a110h ; e8 68 1c 12604 12607 mov si, word [bp-01eh] ; 8b 76 e2 12605 12608 add si, dx ; 01 d6 … … 12619 12622 mov dx, si ; 89 f2 12620 12623 mov si, strict word 00008h ; be 08 00 12621 call 0a 060h ; e8 88 1b12624 call 0a110h ; e8 38 1c 12622 12625 mov word [bp-02eh], bx ; 89 5e d2 12623 12626 mov word [bp-030h], cx ; 89 4e d0 … … 12628 12631 mov dx, word [bp-036h] ; 8b 56 ca 12629 12632 mov si, strict word 00010h ; be 10 00 12630 call 0a 060h ; e8 6d 1b12633 call 0a110h ; e8 1d 1c 12631 12634 mov si, word [bp-032h] ; 8b 76 ce 12632 12635 add si, dx ; 01 d6 … … 12654 12657 mov dx, word [bp-014h] ; 8b 56 ec 12655 12658 mov si, strict word 0000bh ; be 0b 00 12656 call 0a 060h ; e8 21 1b12659 call 0a110h ; e8 d1 1b 12657 12660 mov si, dx ; 89 d6 12658 12661 mov dx, cx ; 89 ca … … 12697 12700 mov word [es:bx+02ch], si ; 26 89 77 2c 12698 12701 mov word [es:bx+032h], si ; 26 89 77 32 12699 mov bx, 00 da0h ; bb a0 0d12702 mov bx, 00e02h ; bb 02 0e 12700 12703 mov cx, ds ; 8c d9 12701 12704 mov ax, strict word 00004h ; b8 04 00 … … 12753 12756 inc byte [bp-00ch] ; fe 46 f4 12754 12757 jmp near 086f5h ; e9 91 00 12755 mov bx, 00 da0h ; bb a0 0d12758 mov bx, 00e02h ; bb 02 0e 12756 12759 mov cx, ds ; 8c d9 12757 12760 mov ax, strict word 00004h ; b8 04 00 … … 12859 12862 pop bp ; 5d 12860 12863 retn ; c3 12861 _scsi_init: ; 0xf878e LB 0x66 12864 scsi_pci_init_: ; 0xf878e LB 0x6d 12865 push bp ; 55 12866 mov bp, sp ; 89 e5 12867 push bx ; 53 12868 push cx ; 51 12869 push si ; 56 12870 push di ; 57 12871 mov di, ax ; 89 c7 12872 mov si, dx ; 89 d6 12873 call 09ee8h ; e8 4c 17 12874 mov dx, ax ; 89 c2 12875 cmp ax, strict word 0ffffh ; 3d ff ff 12876 jne short 087c0h ; 75 1d 12877 mov bx, 00e02h ; bb 02 0e 12878 mov cx, ds ; 8c d9 12879 mov ax, strict word 00004h ; b8 04 00 12880 call 01923h ; e8 75 91 12881 push si ; 56 12882 push di ; 57 12883 push 00c61h ; 68 61 0c 12884 push 00c6fh ; 68 6f 0c 12885 push strict byte 00004h ; 6a 04 12886 call 01966h ; e8 ab 91 12887 add sp, strict byte 0000ah ; 83 c4 0a 12888 jmp short 087f2h ; eb 32 12889 mov bx, 00e02h ; bb 02 0e 12890 mov cx, ds ; 8c d9 12891 mov ax, strict word 00004h ; b8 04 00 12892 call 01923h ; e8 58 91 12893 push dx ; 52 12894 push si ; 56 12895 push di ; 57 12896 push 00c61h ; 68 61 0c 12897 push 00c98h ; 68 98 0c 12898 push strict byte 00004h ; 6a 04 12899 call 01966h ; e8 8d 91 12900 add sp, strict byte 0000ch ; 83 c4 0c 12901 mov al, dl ; 88 d0 12902 xor ah, ah ; 30 e4 12903 mov si, ax ; 89 c6 12904 shr dx, 008h ; c1 ea 08 12905 mov al, dl ; 88 d0 12906 mov cx, strict word 00007h ; b9 07 00 12907 mov bx, strict word 00004h ; bb 04 00 12908 mov dx, si ; 89 f2 12909 call 09fb1h ; e8 bf 17 12910 lea sp, [bp-008h] ; 8d 66 f8 12911 pop di ; 5f 12912 pop si ; 5e 12913 pop cx ; 59 12914 pop bx ; 5b 12915 pop bp ; 5d 12916 retn ; c3 12917 _scsi_init: ; 0xf87fb LB 0x81 12862 12918 push bp ; 55 12863 12919 mov bp, sp ; 89 e5 12864 12920 mov dx, strict word 0000eh ; ba 0e 00 12865 12921 mov ax, strict word 00040h ; b8 40 00 12866 call 0166ch ; e8 d28e12922 call 0166ch ; e8 65 8e 12867 12923 mov bx, 00122h ; bb 22 01 12868 12924 mov es, ax ; 8e c0 … … 12875 12931 ; sub ah, ah ; 2a e4 12876 12932 cmp AL, strict byte 055h ; 3c 55 12877 jne short 08 7beh ; 75 0c12933 jne short 08834h ; 75 15 12878 12934 xor al, al ; 30 c0 12879 12935 mov dx, 00433h ; ba 33 04 12880 12936 out DX, AL ; ee 12881 12937 mov ax, 00430h ; b8 30 04 12882 call 082e8h ; e8 2a fb 12938 call 082e8h ; e8 bd fa 12939 mov dx, 01040h ; ba 40 10 12940 mov ax, 0104bh ; b8 4b 10 12941 call 0878eh ; e8 5a ff 12883 12942 mov AL, strict byte 055h ; b0 55 12884 12943 mov dx, 00436h ; ba 36 04 … … 12888 12947 ; sub ah, ah ; 2a e4 12889 12948 cmp AL, strict byte 055h ; 3c 55 12890 jne short 08 7d7h ; 75 0c12949 jne short 08856h ; 75 15 12891 12950 xor al, al ; 30 c0 12892 12951 mov dx, 00437h ; ba 37 04 12893 12952 out DX, AL ; ee 12894 12953 mov ax, 00434h ; b8 34 04 12895 call 082e8h ; e8 11 fb 12954 call 082e8h ; e8 9b fa 12955 mov dx, strict word 00030h ; ba 30 00 12956 mov ax, 01000h ; b8 00 10 12957 call 0878eh ; e8 38 ff 12896 12958 mov AL, strict byte 055h ; b0 55 12897 12959 mov dx, 0043ah ; ba 3a 04 … … 12901 12963 ; sub ah, ah ; 2a e4 12902 12964 cmp AL, strict byte 055h ; 3c 55 12903 jne short 08 7f0h ; 75 0c12965 jne short 08878h ; 75 15 12904 12966 xor al, al ; 30 c0 12905 12967 mov dx, 0043bh ; ba 3b 04 12906 12968 out DX, AL ; ee 12907 12969 mov ax, 00438h ; b8 38 04 12908 call 082e8h ; e8 f8 fa 12970 call 082e8h ; e8 79 fa 12971 mov dx, strict word 00054h ; ba 54 00 12972 mov ax, 01000h ; b8 00 10 12973 call 0878eh ; e8 16 ff 12909 12974 mov sp, bp ; 89 ec 12910 12975 pop bp ; 5d 12911 12976 retn ; c3 12912 ahci_ctrl_extract_bits_: ; 0xf8 7f4LB 0x1c12977 ahci_ctrl_extract_bits_: ; 0xf887c LB 0x1c 12913 12978 push si ; 56 12914 12979 push bp ; 55 … … 12919 12984 mov cl, byte [bp+006h] ; 8a 4e 06 12920 12985 xor ch, ch ; 30 ed 12921 jcxz 088 0bh ; e3 0612986 jcxz 08893h ; e3 06 12922 12987 shr dx, 1 ; d1 ea 12923 12988 rcr ax, 1 ; d1 d8 12924 loop 088 05h ; e2 fa12989 loop 0888dh ; e2 fa 12925 12990 pop bp ; 5d 12926 12991 pop si ; 5e 12927 12992 retn 00002h ; c2 02 00 12928 ahci_addr_to_phys_: ; 0xf88 10LB 0x1e12993 ahci_addr_to_phys_: ; 0xf8898 LB 0x1e 12929 12994 push bx ; 53 12930 12995 push cx ; 51 … … 12937 13002 sal ax, 1 ; d1 e0 12938 13003 rcl dx, 1 ; d1 d2 12939 loop 088 1eh ; e2 fa13004 loop 088a6h ; e2 fa 12940 13005 xor cx, cx ; 31 c9 12941 13006 add ax, bx ; 01 d8 … … 12945 13010 pop bx ; 5b 12946 13011 retn ; c3 12947 ahci_port_cmd_sync_: ; 0xf88 2eLB 0x15613012 ahci_port_cmd_sync_: ; 0xf88b6 LB 0x156 12948 13013 push bp ; 55 12949 13014 mov bp, sp ; 89 e5 … … 12960 13025 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12961 13026 cmp AL, strict byte 0ffh ; 3c ff 12962 jne short 088 51h ; 75 0312963 jmp near 08 97ch ; e9 2b 0113027 jne short 088d9h ; 75 03 13028 jmp near 08a04h ; e9 2b 01 12964 13029 mov al, byte [es:si+00263h] ; 26 8a 84 63 02 12965 13030 xor ah, ah ; 30 e4 … … 12974 13039 lea ax, [si+00080h] ; 8d 84 80 00 12975 13040 mov dx, cx ; 89 ca 12976 call 088 10h ; e8 92 ff13041 call 08898h ; e8 92 ff 12977 13042 mov es, cx ; 8e c1 12978 13043 mov word [es:si+008h], ax ; 26 89 44 08 … … 13040 13105 xchg dx, ax ; 92 13041 13106 test dh, 040h ; f6 c6 40 13042 jne short 089 0fh ; 75 0413107 jne short 08997h ; 75 04 13043 13108 test AL, strict byte 001h ; a8 01 13044 je short 089 13h ; 74 0413109 je short 0899bh ; 74 04 13045 13110 mov AL, strict byte 001h ; b0 01 13046 jmp short 089 15h ; eb 0213111 jmp short 0899dh ; eb 02 13047 13112 xor al, al ; 30 c0 13048 13113 test al, al ; 84 c0 13049 je short 08 8e2h ; 74 c913114 je short 0896ah ; 74 c9 13050 13115 mov al, byte [bp-008h] ; 8a 46 f8 13051 13116 xor ah, ah ; 30 e4 … … 13103 13168 pop bp ; 5d 13104 13169 retn ; c3 13105 ahci_cmd_data_: ; 0xf8 984LB 0x26713170 ahci_cmd_data_: ; 0xf8a0c LB 0x267 13106 13171 push bp ; 55 13107 13172 mov bp, sp ; 89 e5 … … 13128 13193 mov ax, 00080h ; b8 80 00 13129 13194 mov dx, word [bp-00ah] ; 8b 56 f6 13130 call 0a 080h ; e8 be1613195 call 0a130h ; e8 e6 16 13131 13196 mov es, [bp-00ah] ; 8e 46 f6 13132 13197 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 13146 13211 mov dx, word [es:si] ; 26 8b 14 13147 13212 mov si, strict word 00008h ; be 08 00 13148 call 0a 060h ; e8 5a1613213 call 0a110h ; e8 82 16 13149 13214 mov es, [bp-00ah] ; 8e 46 f6 13150 13215 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 13157 13222 mov dx, word [es:si] ; 26 8b 14 13158 13223 mov si, strict word 00010h ; be 10 00 13159 call 0a 060h ; e8 341613224 call 0a110h ; e8 5c 16 13160 13225 mov es, [bp-00ah] ; 8e 46 f6 13161 13226 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 13169 13234 mov dx, word [es:si] ; 26 8b 14 13170 13235 mov si, strict word 00018h ; be 18 00 13171 call 0a 060h ; e8 081613236 call 0a110h ; e8 30 16 13172 13237 mov es, [bp-00ah] ; 8e 46 f6 13173 13238 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13180 13245 mov dx, word [es:si] ; 26 8b 14 13181 13246 mov si, strict word 00020h ; be 20 00 13182 call 0a 060h ; e8 e2 1513247 call 0a110h ; e8 0a 16 13183 13248 mov es, [bp-00ah] ; 8e 46 f6 13184 13249 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13191 13256 mov dx, word [es:si] ; 26 8b 14 13192 13257 mov si, strict word 00028h ; be 28 00 13193 call 0a 060h ; e8 bc1513258 call 0a110h ; e8 e4 15 13194 13259 mov es, [bp-00ah] ; 8e 46 f6 13195 13260 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13205 13270 mov bx, word [bp-010h] ; 8b 5e f0 13206 13271 xor cx, cx ; 31 c9 13207 call 0a0 10h ; e8 371513272 call 0a0c0h ; e8 5f 15 13208 13273 push dx ; 52 13209 13274 push ax ; 50 … … 13215 13280 mov ax, 0026ah ; b8 6a 02 13216 13281 mov dx, word [bp-00ah] ; 8b 56 f6 13217 call 0 9f66h ; e8 711413282 call 0a011h ; e8 94 14 13218 13283 mov es, [bp-00ah] ; 8e 46 f6 13219 13284 mov dx, word [es:di+0027eh] ; 26 8b 95 7e 02 … … 13238 13303 mov ax, word [es:bx+020h] ; 26 8b 47 20 13239 13304 test ax, ax ; 85 c0 13240 je short 08 b87h ; 74 3b13305 je short 08c0fh ; 74 3b 13241 13306 dec ax ; 48 13242 13307 mov es, [bp-00ah] ; 8e 46 f6 … … 13256 13321 mov al, byte [bp-008h] ; 8a 46 f8 13257 13322 cmp AL, strict byte 035h ; 3c 35 13258 jne short 08 b94h ; 75 0613323 jne short 08c1ch ; 75 06 13259 13324 mov byte [bp-008h], 040h ; c6 46 f8 40 13260 jmp short 08 babh ; eb 1713325 jmp short 08c33h ; eb 17 13261 13326 cmp AL, strict byte 0a0h ; 3c a0 13262 jne short 08 ba7h ; 75 0f13327 jne short 08c2fh ; 75 0f 13263 13328 or byte [bp-008h], 020h ; 80 4e f8 20 13264 13329 les bx, [bp-00eh] ; c4 5e f2 13265 13330 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 13266 jmp short 08 babh ; eb 0413331 jmp short 08c33h ; eb 04 13267 13332 mov byte [bp-008h], 000h ; c6 46 f8 00 13268 13333 or byte [bp-008h], 005h ; 80 4e f8 05 … … 13271 13336 mov ax, word [bp-00eh] ; 8b 46 f2 13272 13337 mov dx, word [bp-00ch] ; 8b 56 f4 13273 call 088 2eh ; e8 71 fc13338 call 088b6h ; e8 71 fc 13274 13339 mov cx, word [bp-00ch] ; 8b 4e f4 13275 13340 mov bx, word [bp-00eh] ; 8b 5e f2 … … 13278 13343 add ax, 0026ah ; 05 6a 02 13279 13344 mov dx, cx ; 89 ca 13280 call 0 9fddh ; e8 0b1413345 call 0a088h ; e8 2e 14 13281 13346 mov es, cx ; 8e c1 13282 13347 mov al, byte [es:bx+003h] ; 26 8a 47 03 13283 13348 test al, al ; 84 c0 13284 je short 08 be1h ; 74 0513349 je short 08c69h ; 74 05 13285 13350 mov ax, strict word 00004h ; b8 04 00 13286 jmp short 08 be3h ; eb 0213351 jmp short 08c6bh ; eb 02 13287 13352 xor ah, ah ; 30 e4 13288 13353 lea sp, [bp-006h] ; 8d 66 fa … … 13292 13357 pop bp ; 5d 13293 13358 retn ; c3 13294 ahci_port_deinit_current_: ; 0xf8 bebLB 0x18013359 ahci_port_deinit_current_: ; 0xf8c73 LB 0x180 13295 13360 push bp ; 55 13296 13361 mov bp, sp ; 89 e5 … … 13307 13372 mov byte [bp-00ah], al ; 88 46 f6 13308 13373 cmp AL, strict byte 0ffh ; 3c ff 13309 je short 08c 6ch ; 74 5f13374 je short 08cf4h ; 74 5f 13310 13375 xor ah, ah ; 30 e4 13311 13376 sal ax, 007h ; c1 e0 07 … … 13351 13416 xchg dx, ax ; 92 13352 13417 test ax, 0c011h ; a9 11 c0 13353 je short 08c 6fh ; 74 0713418 je short 08cf7h ; 74 07 13354 13419 mov AL, strict byte 001h ; b0 01 13355 jmp short 08c 71h ; eb 0513356 jmp near 08d 62h ; e9 f3 0013420 jmp short 08cf9h ; eb 05 13421 jmp near 08deah ; e9 f3 00 13357 13422 xor al, al ; 30 c0 13358 13423 cmp AL, strict byte 001h ; 3c 01 13359 je short 08c 3fh ; 74 ca13424 je short 08cc7h ; 74 ca 13360 13425 mov cx, strict word 00020h ; b9 20 00 13361 13426 xor bx, bx ; 31 db 13362 13427 mov ax, di ; 89 f8 13363 13428 mov dx, word [bp-00eh] ; 8b 56 f2 13364 call 0a 080h ; e8 fe 1313429 call 0a130h ; e8 26 14 13365 13430 lea ax, [di+00080h] ; 8d 85 80 00 13366 13431 mov cx, strict word 00040h ; b9 40 00 13367 13432 xor bx, bx ; 31 db 13368 13433 mov dx, word [bp-00eh] ; 8b 56 f2 13369 call 0a 080h ; e8 ef 1313434 call 0a130h ; e8 17 14 13370 13435 lea ax, [di+00200h] ; 8d 85 00 02 13371 13436 mov cx, strict word 00060h ; b9 60 00 13372 13437 xor bx, bx ; 31 db 13373 13438 mov dx, word [bp-00eh] ; 8b 56 f2 13374 call 0a 080h ; e8 e0 1313439 call 0a130h ; e8 08 14 13375 13440 mov al, byte [bp-00ah] ; 8a 46 f6 13376 13441 xor ah, ah ; 30 e4 … … 13477 13542 pop bp ; 5d 13478 13543 retn ; c3 13479 ahci_port_init_: ; 0xf8d 6bLB 0x24d13544 ahci_port_init_: ; 0xf8df3 LB 0x24d 13480 13545 push bp ; 55 13481 13546 mov bp, sp ; 89 e5 … … 13487 13552 mov word [bp-00ah], dx ; 89 56 f6 13488 13553 mov byte [bp-008h], bl ; 88 5e f8 13489 call 08 bebh ; e8 6c fe13554 call 08c73h ; e8 6c fe 13490 13555 mov al, bl ; 88 d8 13491 13556 xor ah, ah ; 30 e4 … … 13536 13601 xchg dx, ax ; 92 13537 13602 test ax, 0c011h ; a9 11 c0 13538 je short 08 df0h ; 74 0413603 je short 08e78h ; 74 04 13539 13604 mov AL, strict byte 001h ; b0 01 13540 jmp short 08 df2h ; eb 0213605 jmp short 08e7ah ; eb 02 13541 13606 xor al, al ; 30 c0 13542 13607 cmp AL, strict byte 001h ; 3c 01 13543 je short 08 dbbh ; 74 c513608 je short 08e43h ; 74 c5 13544 13609 mov cx, strict word 00020h ; b9 20 00 13545 13610 xor bx, bx ; 31 db 13546 13611 mov ax, si ; 89 f0 13547 13612 mov dx, word [bp-00ah] ; 8b 56 f6 13548 call 0a 080h ; e8 7d1213613 call 0a130h ; e8 a5 12 13549 13614 lea ax, [si+00080h] ; 8d 84 80 00 13550 13615 mov cx, strict word 00040h ; b9 40 00 13551 13616 xor bx, bx ; 31 db 13552 13617 mov dx, word [bp-00ah] ; 8b 56 f6 13553 call 0a 080h ; e8 6e1213618 call 0a130h ; e8 96 12 13554 13619 lea di, [si+00200h] ; 8d bc 00 02 13555 13620 mov cx, strict word 00060h ; b9 60 00 … … 13557 13622 mov ax, di ; 89 f8 13558 13623 mov dx, word [bp-00ah] ; 8b 56 f6 13559 call 0a 080h ; e8 5d1213624 call 0a130h ; e8 85 12 13560 13625 mov bl, byte [bp-008h] ; 8a 5e f8 13561 13626 xor bh, bh ; 30 ff … … 13575 13640 mov ax, di ; 89 f8 13576 13641 mov dx, word [bp-00ah] ; 8b 56 f6 13577 call 088 10h ; e8 bf f913642 call 08898h ; e8 bf f9 13578 13643 mov es, [bp-00ah] ; 8e 46 f6 13579 13644 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13620 13685 mov ax, si ; 89 f0 13621 13686 mov dx, word [bp-00ah] ; 8b 56 f6 13622 call 088 10h ; e8 53 f913687 call 08898h ; e8 53 f9 13623 13688 mov es, [bp-00ah] ; 8e 46 f6 13624 13689 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13725 13790 pop bp ; 5d 13726 13791 retn ; c3 13727 @ahci_read_sectors: ; 0xf 8fb8LB 0xa813792 @ahci_read_sectors: ; 0xf9040 LB 0xa8 13728 13793 push bp ; 55 13729 13794 mov bp, sp ; 89 e5 … … 13736 13801 sub bx, strict byte 0000ch ; 83 eb 0c 13737 13802 cmp bx, strict byte 00004h ; 83 fb 04 13738 jbe short 0 8fdeh ; 76 0f13803 jbe short 09066h ; 76 0f 13739 13804 push bx ; 53 13740 push 00c 62h ; 68 620c13741 push 00c 74h ; 68 740c13805 push 00cc4h ; 68 c4 0c 13806 push 00cd6h ; 68 d6 0c 13742 13807 push strict byte 00007h ; 6a 07 13743 call 01966h ; e8 8b8913808 call 01966h ; e8 03 89 13744 13809 add sp, strict byte 00008h ; 83 c4 08 13745 13810 xor di, di ; 31 ff … … 13756 13821 mov dx, word [es:di+00232h] ; 26 8b 95 32 02 13757 13822 xor ax, ax ; 31 c0 13758 call 08d 6bh ; e8 60 fd13823 call 08df3h ; e8 60 fd 13759 13824 mov bx, strict word 00025h ; bb 25 00 13760 13825 mov ax, si ; 89 f0 13761 13826 mov dx, word [bp+006h] ; 8b 56 06 13762 call 08 984h ; e8 6e f913827 call 08a0ch ; e8 6e f9 13763 13828 mov word [bp-006h], ax ; 89 46 fa 13764 13829 mov es, [bp+006h] ; 8e 46 06 … … 13789 13854 pop bp ; 5d 13790 13855 retn 00004h ; c2 04 00 13791 @ahci_write_sectors: ; 0xf90 60LB 0x8613856 @ahci_write_sectors: ; 0xf90e8 LB 0x86 13792 13857 push bp ; 55 13793 13858 mov bp, sp ; 89 e5 … … 13801 13866 sub dx, strict byte 0000ch ; 83 ea 0c 13802 13867 cmp dx, strict byte 00004h ; 83 fa 04 13803 jbe short 09 08ah ; 76 0f13868 jbe short 09112h ; 76 0f 13804 13869 push dx ; 52 13805 push 00c 93h ; 68 930c13806 push 00c 74h ; 68 740c13870 push 00cf5h ; 68 f5 0c 13871 push 00cd6h ; 68 d6 0c 13807 13872 push strict byte 00007h ; 6a 07 13808 call 01966h ; e8 df8813873 call 01966h ; e8 57 88 13809 13874 add sp, strict byte 00008h ; 83 c4 08 13810 13875 xor bx, bx ; 31 db … … 13821 13886 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 13822 13887 xor ax, ax ; 31 c0 13823 call 08d 6bh ; e8 b6 fc13888 call 08df3h ; e8 b6 fc 13824 13889 mov bx, strict word 00035h ; bb 35 00 13825 13890 mov ax, si ; 89 f0 13826 13891 mov dx, cx ; 89 ca 13827 call 08 984h ; e8 c5 f813892 call 08a0ch ; e8 c5 f8 13828 13893 mov dx, ax ; 89 c2 13829 13894 mov es, cx ; 8e c1 … … 13840 13905 pop bp ; 5d 13841 13906 retn 00004h ; c2 04 00 13842 ahci_cmd_packet_: ; 0xf9 0e6LB 0x18a13907 ahci_cmd_packet_: ; 0xf916e LB 0x18a 13843 13908 push bp ; 55 13844 13909 mov bp, sp ; 89 e5 … … 13852 13917 mov dx, strict word 0000eh ; ba 0e 00 13853 13918 mov ax, strict word 00040h ; b8 40 00 13854 call 0166ch ; e8 6b 8513919 call 0166ch ; e8 e3 84 13855 13920 mov si, 00122h ; be 22 01 13856 13921 mov word [bp-008h], ax ; 89 46 f8 13857 13922 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 13858 jne short 091 2ch ; 75 1f13859 mov bx, 00 da0h ; bb a0 0d13923 jne short 091b4h ; 75 1f 13924 mov bx, 00e02h ; bb 02 0e 13860 13925 mov cx, ds ; 8c d9 13861 13926 mov ax, strict word 00004h ; b8 04 00 13862 call 01923h ; e8 0b 8813863 push 00 ca6h ; 68 a6 0c13864 push 00 cb6h ; 68 b6 0c13927 call 01923h ; e8 83 87 13928 push 00d08h ; 68 08 0d 13929 push 00d18h ; 68 18 0d 13865 13930 push strict byte 00004h ; 6a 04 13866 call 01966h ; e8 43 8813931 call 01966h ; e8 bb 87 13867 13932 add sp, strict byte 00006h ; 83 c4 06 13868 13933 mov ax, strict word 00001h ; b8 01 00 13869 jmp near 092 67h ; e9 3b 0113934 jmp near 092efh ; e9 3b 01 13870 13935 test byte [bp+004h], 001h ; f6 46 04 01 13871 jne short 091 26h ; 75 f413936 jne short 091aeh ; 75 f4 13872 13937 mov ax, word [bp+006h] ; 8b 46 06 13873 13938 mov dx, word [bp+008h] ; 8b 56 08 … … 13875 13940 sal ax, 1 ; d1 e0 13876 13941 rcl dx, 1 ; d1 d2 13877 loop 091 3bh ; e2 fa13942 loop 091c3h ; e2 fa 13878 13943 mov es, [bp-008h] ; 8e 46 f8 13879 13944 mov word [es:si], ax ; 26 89 04 … … 13889 13954 mov dx, word [bp+008h] ; 8b 56 08 13890 13955 xor cx, cx ; 31 c9 13891 call 0a0 30h ; e8 bc0e13956 call 0a0e0h ; e8 e4 0e 13892 13957 mov word [es:si+00eh], ax ; 26 89 44 0e 13893 13958 xor di, di ; 31 ff … … 13908 13973 mov bx, ax ; 89 c3 13909 13974 xor al, al ; 30 c0 13910 call 08d 6bh ; e8 b8 fb13975 call 08df3h ; e8 b8 fb 13911 13976 mov al, byte [bp-006h] ; 8a 46 fa 13912 13977 xor ah, ah ; 30 e4 … … 13916 13981 mov ax, 000c0h ; b8 c0 00 13917 13982 mov dx, word [bp-00ah] ; 8b 56 f6 13918 call 0a 090h ; e8 c80e13983 call 0a140h ; e8 f0 0e 13919 13984 mov es, [bp-008h] ; 8e 46 f8 13920 13985 mov word [es:si+018h], di ; 26 89 7c 18 … … 13923 13988 mov ax, word [es:si+01eh] ; 26 8b 44 1e 13924 13989 test ax, ax ; 85 c0 13925 je short 092 06h ; 74 2713990 je short 0928eh ; 74 27 13926 13991 dec ax ; 48 13927 13992 mov es, [bp-00ah] ; 8e 46 f6 … … 13936 14001 mov ax, si ; 89 f0 13937 14002 mov dx, word [bp-008h] ; 8b 56 f8 13938 call 08 984h ; e8 73 f714003 call 08a0ch ; e8 73 f7 13939 14004 les bx, [bp-00eh] ; c4 5e f2 13940 14005 mov dx, word [es:bx+004h] ; 26 8b 57 04 … … 13963 14028 mov ax, word [es:bx+006h] ; 26 8b 47 06 13964 14029 or ax, word [es:bx+004h] ; 26 0b 47 04 13965 jne short 092 65h ; 75 0514030 jne short 092edh ; 75 05 13966 14031 mov ax, strict word 00004h ; b8 04 00 13967 jmp short 092 67h ; eb 0214032 jmp short 092efh ; eb 02 13968 14033 xor ax, ax ; 31 c0 13969 14034 lea sp, [bp-004h] ; 8d 66 fc … … 13972 14037 pop bp ; 5d 13973 14038 retn 0000ch ; c2 0c 00 13974 ahci_port_detect_device_: ; 0xf92 70LB 0x4e314039 ahci_port_detect_device_: ; 0xf92f8 LB 0x4e3 13975 14040 push bp ; 55 13976 14041 mov bp, sp ; 89 e5 … … 13985 14050 xor ch, ch ; 30 ed 13986 14051 mov bx, cx ; 89 cb 13987 call 08d 6bh ; e8 e0 fa14052 call 08df3h ; e8 e0 fa 13988 14053 mov dx, strict word 0000eh ; ba 0e 00 13989 14054 mov ax, strict word 00040h ; b8 40 00 13990 call 0166ch ; e8 d88314055 call 0166ch ; e8 50 83 13991 14056 mov word [bp-00eh], 00122h ; c7 46 f2 22 01 13992 14057 mov word [bp-016h], ax ; 89 46 ea … … 14058 14123 mov bx, strict word 0000fh ; bb 0f 00 14059 14124 xor cx, cx ; 31 c9 14060 call 08 7f4h ; e8 b5 f414125 call 0887ch ; e8 b5 f4 14061 14126 test ax, ax ; 85 c0 14062 jne short 093 46h ; 75 0314063 jmp near 097 4bh ; e9 05 0414127 jne short 093ceh ; 75 03 14128 jmp near 097d3h ; e9 05 04 14064 14129 mov al, byte [bp-00ch] ; 8a 46 f4 14065 14130 xor ah, ah ; 30 e4 … … 14090 14155 mov bx, strict word 0000fh ; bb 0f 00 14091 14156 xor cx, cx ; 31 c9 14092 call 08 7f4h ; e8 67 f414157 call 0887ch ; e8 67 f4 14093 14158 cmp ax, strict word 00001h ; 3d 01 00 14094 je short 093 46h ; 74 b414159 je short 093ceh ; 74 b4 14095 14160 push strict byte 00000h ; 6a 00 14096 14161 mov bx, strict word 0000fh ; bb 0f 00 … … 14098 14163 mov ax, word [bp-01ah] ; 8b 46 e6 14099 14164 mov dx, di ; 89 fa 14100 call 08 7f4h ; e8 53 f414165 call 0887ch ; e8 53 f4 14101 14166 cmp ax, strict word 00003h ; 3d 03 00 14102 jne short 093 43h ; 75 9d14167 jne short 093cbh ; 75 9d 14103 14168 mov ax, word [bp-01ch] ; 8b 46 e4 14104 14169 add ax, 00130h ; 05 30 01 … … 14128 14193 mov byte [bp-008h], al ; 88 46 f8 14129 14194 cmp AL, strict byte 004h ; 3c 04 14130 jc short 09 3f0h ; 72 0314131 jmp near 097 4bh ; e9 5b 0314195 jc short 09478h ; 72 03 14196 jmp near 097d3h ; e9 5b 03 14132 14197 mov ax, word [bp-01ch] ; 8b 46 e4 14133 14198 add ax, 00118h ; 05 18 01 … … 14179 14244 add cl, 00ch ; 80 c1 0c 14180 14245 test dx, dx ; 85 d2 14181 jne short 09 4b6h ; 75 5414246 jne short 0953eh ; 75 54 14182 14247 cmp ax, 00101h ; 3d 01 01 14183 jne short 09 4b6h ; 75 4f14248 jne short 0953eh ; 75 4f 14184 14249 mov es, [bp-016h] ; 8e 46 ea 14185 14250 mov bx, word [bp-00eh] ; 8b 5e f2 … … 14196 14261 mov ax, word [bp-00eh] ; 8b 46 f2 14197 14262 mov dx, es ; 8c c2 14198 call 08 984h ; e8 dd f414263 call 08a0ch ; e8 dd f4 14199 14264 mov byte [bp-00ah], cl ; 88 4e f6 14200 14265 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14201 je short 09 4b9h ; 74 0814266 je short 09541h ; 74 08 14202 14267 mov ax, strict word 00001h ; b8 01 00 14203 jmp short 09 4bbh ; eb 0514204 jmp near 09 689h ; e9 d0 0114268 jmp short 09543h ; eb 05 14269 jmp near 09711h ; e9 d0 01 14205 14270 xor ax, ax ; 31 c0 14206 14271 mov dl, al ; 88 c2 … … 14218 14283 mov word [bp-01eh], ax ; 89 46 e2 14219 14284 cmp word [bp-014h], 00fffh ; 81 7e ec ff 0f 14220 jne short 095 0ah ; 75 1e14285 jne short 09592h ; 75 1e 14221 14286 cmp di, strict byte 0ffffh ; 83 ff ff 14222 jne short 095 0ah ; 75 1914287 jne short 09592h ; 75 19 14223 14288 mov ax, word [bp-0015ch] ; 8b 86 a4 fe 14224 14289 mov word [bp-01eh], ax ; 89 46 e2 … … 14259 14324 mov al, byte [bp-008h] ; 8a 46 f8 14260 14325 cmp AL, strict byte 001h ; 3c 01 14261 jc short 09 585h ; 72 0c14262 jbe short 09 58dh ; 76 1214326 jc short 0960dh ; 72 0c 14327 jbe short 09615h ; 76 12 14263 14328 cmp AL, strict byte 003h ; 3c 03 14264 je short 09 595h ; 74 1614329 je short 0961dh ; 74 16 14265 14330 cmp AL, strict byte 002h ; 3c 02 14266 je short 09 591h ; 74 0e14267 jmp short 09 5ddh ; eb 5814331 je short 09619h ; 74 0e 14332 jmp short 09665h ; eb 58 14268 14333 test al, al ; 84 c0 14269 jne short 09 5ddh ; 75 5414334 jne short 09665h ; 75 54 14270 14335 mov DL, strict byte 040h ; b2 40 14271 jmp short 09 597h ; eb 0a14336 jmp short 0961fh ; eb 0a 14272 14337 mov DL, strict byte 048h ; b2 48 14273 jmp short 09 597h ; eb 0614338 jmp short 0961fh ; eb 06 14274 14339 mov DL, strict byte 050h ; b2 50 14275 jmp short 09 597h ; eb 0214340 jmp short 0961fh ; eb 02 14276 14341 mov DL, strict byte 058h ; b2 58 14277 14342 mov bl, dl ; 88 d3 … … 14279 14344 xor bh, bh ; 30 ff 14280 14345 mov ax, bx ; 89 d8 14281 call 016ach ; e8 09 8114346 call 016ach ; e8 81 80 14282 14347 test al, al ; 84 c0 14283 je short 09 5ddh ; 74 3614348 je short 09665h ; 74 36 14284 14349 mov al, dl ; 88 d0 14285 14350 db 0feh, 0c0h 14286 14351 ; inc al ; fe c0 14287 14352 xor ah, ah ; 30 e4 14288 call 016ach ; e8 fc8014353 call 016ach ; e8 74 80 14289 14354 xor ah, ah ; 30 e4 14290 14355 mov cx, ax ; 89 c1 14291 14356 sal cx, 008h ; c1 e1 08 14292 14357 mov al, dl ; 88 d0 14293 call 016ach ; e8 f08014358 call 016ach ; e8 68 80 14294 14359 xor ah, ah ; 30 e4 14295 14360 add ax, cx ; 01 c8 … … 14298 14363 add AL, strict byte 002h ; 04 02 14299 14364 xor ah, ah ; 30 e4 14300 call 016ach ; e8 e08014365 call 016ach ; e8 58 80 14301 14366 xor ah, ah ; 30 e4 14302 14367 mov word [bp-02ah], ax ; 89 46 d6 14303 14368 mov ax, bx ; 89 d8 14304 call 016ach ; e8 d68014369 call 016ach ; e8 4e 80 14305 14370 xor ah, ah ; 30 e4 14306 14371 mov word [bp-026h], ax ; 89 46 da 14307 jmp short 09 5efh ; eb 1214372 jmp short 09677h ; eb 12 14308 14373 push word [bp-01eh] ; ff 76 e2 14309 14374 push word [bp-012h] ; ff 76 ee … … 14312 14377 mov dx, ss ; 8c d2 14313 14378 lea ax, [bp-02ah] ; 8d 46 d6 14314 call 05a02h ; e8 13 c414315 mov bx, 00 da0h ; bb a0 0d14379 call 05a02h ; e8 8b c3 14380 mov bx, 00e02h ; bb 02 0e 14316 14381 mov cx, ds ; 8c d9 14317 14382 mov ax, strict word 00004h ; b8 04 00 14318 call 01923h ; e8 29 8314383 call 01923h ; e8 a1 82 14319 14384 push word [bp-01eh] ; ff 76 e2 14320 14385 push word [bp-012h] ; ff 76 ee … … 14335 14400 mov al, byte [bp-008h] ; 8a 46 f8 14336 14401 push ax ; 50 14337 push 00 cd6h ; 68 d6 0c14402 push 00d38h ; 68 38 0d 14338 14403 push strict byte 00004h ; 6a 04 14339 call 01966h ; e8 3b 8314404 call 01966h ; e8 b3 82 14340 14405 add sp, strict byte 0001ch ; 83 c4 1c 14341 14406 mov al, byte [bp-00ah] ; 8a 46 f6 … … 14368 14433 mov dx, strict word 00075h ; ba 75 00 14369 14434 mov ax, strict word 00040h ; b8 40 00 14370 call 01650h ; e8 d97f14435 call 01650h ; e8 51 7f 14371 14436 mov bl, al ; 88 c3 14372 14437 db 0feh, 0c3h … … 14375 14440 mov dx, strict word 00075h ; ba 75 00 14376 14441 mov ax, strict word 00040h ; b8 40 00 14377 call 0165eh ; e8 d87f14378 jmp near 097 3ah ; e9 b1 0014442 call 0165eh ; e8 50 7f 14443 jmp near 097c2h ; e9 b1 00 14379 14444 cmp dx, 0eb14h ; 81 fa 14 eb 14380 jne short 09 6e3h ; 75 5414445 jne short 0976bh ; 75 54 14381 14446 cmp ax, 00101h ; 3d 01 01 14382 jne short 09 6e3h ; 75 4f14447 jne short 0976bh ; 75 4f 14383 14448 mov es, [bp-016h] ; 8e 46 ea 14384 14449 mov bx, word [bp-00eh] ; 8b 5e f2 … … 14395 14460 mov ax, word [bp-00eh] ; 8b 46 f2 14396 14461 mov dx, es ; 8c c2 14397 call 08 984h ; e8 b0 f214462 call 08a0ch ; e8 b0 f2 14398 14463 mov byte [bp-00ah], cl ; 88 4e f6 14399 14464 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14400 je short 09 6e5h ; 74 0714465 je short 0976dh ; 74 07 14401 14466 mov dx, strict word 00001h ; ba 01 00 14402 jmp short 09 6e7h ; eb 0414403 jmp short 097 3ah ; eb 5514467 jmp short 0976fh ; eb 04 14468 jmp short 097c2h ; eb 55 14404 14469 xor dx, dx ; 31 d2 14405 14470 mov bl, byte [bp-008h] ; 8a 5e f8 … … 14440 14505 pop bp ; 5d 14441 14506 retn ; c3 14442 ahci_mem_alloc_: ; 0xf97 53LB 0x4314507 ahci_mem_alloc_: ; 0xf97db LB 0x43 14443 14508 push bp ; 55 14444 14509 mov bp, sp ; 89 e5 … … 14450 14515 mov dx, 00413h ; ba 13 04 14451 14516 xor ax, ax ; 31 c0 14452 call 0166ch ; e8 09 7f14517 call 0166ch ; e8 81 7e 14453 14518 test ax, ax ; 85 c0 14454 je short 09 78ch ; 74 2514519 je short 09814h ; 74 25 14455 14520 dec ax ; 48 14456 14521 mov bx, ax ; 89 c3 … … 14459 14524 sal ax, 1 ; d1 e0 14460 14525 rcl dx, 1 ; d1 d2 14461 loop 097 6fh ; e2 fa14526 loop 097f7h ; e2 fa 14462 14527 mov si, ax ; 89 c6 14463 14528 mov di, dx ; 89 d7 … … 14465 14530 shr di, 1 ; d1 ef 14466 14531 rcr si, 1 ; d1 de 14467 loop 09 77ch ; e2 fa14532 loop 09804h ; e2 fa 14468 14533 mov dx, 00413h ; ba 13 04 14469 14534 xor ax, ax ; 31 c0 14470 call 0167ah ; e8 f07e14535 call 0167ah ; e8 68 7e 14471 14536 mov ax, si ; 89 f0 14472 14537 lea sp, [bp-00ah] ; 8d 66 f6 … … 14478 14543 pop bp ; 5d 14479 14544 retn ; c3 14480 ahci_hba_init_: ; 0xf9 796LB 0x16d14545 ahci_hba_init_: ; 0xf981e LB 0x16d 14481 14546 push bp ; 55 14482 14547 mov bp, sp ; 89 e5 … … 14490 14555 mov dx, strict word 0000eh ; ba 0e 00 14491 14556 mov ax, strict word 00040h ; b8 40 00 14492 call 0166ch ; e8 c07e14557 call 0166ch ; e8 38 7e 14493 14558 mov bx, 00122h ; bb 22 01 14494 14559 mov di, ax ; 89 c7 … … 14507 14572 shr eax, 010h ; 66 c1 e8 10 14508 14573 xchg dx, ax ; 92 14509 call 097 53h ; e8 83 ff14574 call 097dbh ; e8 83 ff 14510 14575 mov word [bp-010h], ax ; 89 46 f0 14511 14576 test ax, ax ; 85 c0 14512 jne short 09 7dah ; 75 0314513 jmp near 09 8e2h ; e9 08 0114577 jne short 09862h ; 75 03 14578 jmp near 0996ah ; e9 08 01 14514 14579 mov ax, word [bp-010h] ; 8b 46 f0 14515 14580 mov es, di ; 8e c7 … … 14561 14626 xchg dx, ax ; 92 14562 14627 test AL, strict byte 001h ; a8 01 14563 jne short 098 34h ; 75 de14628 jne short 098bch ; 75 de 14564 14629 xor ax, ax ; 31 c0 14565 14630 xor cx, cx ; 31 c9 … … 14579 14644 mov bx, strict word 0001fh ; bb 1f 00 14580 14645 xor cx, cx ; 31 c9 14581 call 08 7f4h ; e8 7a ef14646 call 0887ch ; e8 7a ef 14582 14647 db 0feh, 0c0h 14583 14648 ; inc al ; fe c0 14584 14649 mov byte [bp-00ch], al ; 88 46 f4 14585 14650 mov byte [bp-00eh], 000h ; c6 46 f2 00 14586 jmp short 09 8a6h ; eb 2114651 jmp short 0992eh ; eb 21 14587 14652 xor al, al ; 30 c0 14588 14653 test al, al ; 84 c0 14589 je short 09 89dh ; 74 1214654 je short 09925h ; 74 12 14590 14655 mov bl, byte [bp-00eh] ; 8a 5e f2 14591 14656 xor bh, bh ; 30 ff 14592 14657 xor ax, ax ; 31 c0 14593 14658 mov dx, word [bp-010h] ; 8b 56 f0 14594 call 092 70h ; e8 d8 f914659 call 092f8h ; e8 d8 f9 14595 14660 dec byte [bp-00ch] ; fe 4e f4 14596 je short 09 8e0h ; 74 4314661 je short 09968h ; 74 43 14597 14662 inc byte [bp-00eh] ; fe 46 f2 14598 14663 cmp byte [bp-00eh], 020h ; 80 7e f2 20 14599 jnc short 09 8e0h ; 73 3a14664 jnc short 09968h ; 73 3a 14600 14665 mov cl, byte [bp-00eh] ; 8a 4e f2 14601 14666 xor ch, ch ; 30 ed 14602 14667 mov bx, strict word 00001h ; bb 01 00 14603 14668 xor di, di ; 31 ff 14604 jcxz 09 8b8h ; e3 0614669 jcxz 09940h ; e3 06 14605 14670 sal bx, 1 ; d1 e3 14606 14671 rcl di, 1 ; d1 d7 14607 loop 09 8b2h ; e2 fa14672 loop 0993ah ; e2 fa 14608 14673 mov ax, strict word 0000ch ; b8 0c 00 14609 14674 xor cx, cx ; 31 c9 … … 14621 14686 xchg dx, ax ; 92 14622 14687 test dx, di ; 85 fa 14623 jne short 09 8dch ; 75 0414688 jne short 09964h ; 75 04 14624 14689 test ax, bx ; 85 d8 14625 je short 09 885h ; 74 a914690 je short 0990dh ; 74 a9 14626 14691 mov AL, strict byte 001h ; b0 01 14627 jmp short 09 887h ; eb a714692 jmp short 0990fh ; eb a7 14628 14693 xor ax, ax ; 31 c0 14629 14694 lea sp, [bp-00ah] ; 8d 66 f6 … … 14635 14700 pop bp ; 5d 14636 14701 retn ; c3 14637 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 ech, 099h, 0cah, 099h, 0d0h, 099h, 0d6h, 099h, 0dch14638 db 09 9h, 0e2h, 099h, 0e8h, 099h, 0ech, 099h14639 _ahci_init: ; 0xf99 03LB 0x13a14702 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 074h, 09ah, 052h, 09ah, 058h, 09ah, 05eh, 09ah, 064h 14703 db 09ah, 06ah, 09ah, 070h, 09ah, 074h, 09ah 14704 _ahci_init: ; 0xf998b LB 0x13a 14640 14705 push bp ; 55 14641 14706 mov bp, sp ; 89 e5 … … 14645 14710 mov ax, 00601h ; b8 01 06 14646 14711 mov dx, strict word 00001h ; ba 01 00 14647 call 09e 58h ; e8 44 0514712 call 09ee0h ; e8 44 05 14648 14713 mov dx, ax ; 89 c2 14649 14714 cmp ax, strict word 0ffffh ; 3d ff ff 14650 je short 099 67h ; 74 4c14715 je short 099efh ; 74 4c 14651 14716 xor al, al ; 30 c0 14652 14717 shr ax, 008h ; c1 e8 08 … … 14656 14721 xor ah, ah ; 30 e4 14657 14722 mov bx, strict word 00034h ; bb 34 00 14658 call 09 e60h ; e8 300514723 call 09f0bh ; e8 53 05 14659 14724 mov cl, al ; 88 c1 14660 14725 test cl, cl ; 84 c9 14661 je short 099 6ah ; 74 3414726 je short 099f2h ; 74 34 14662 14727 mov bl, cl ; 88 cb 14663 14728 xor bh, bh ; 30 ff … … 14670 14735 mov dx, word [bp-00eh] ; 8b 56 f2 14671 14736 mov ax, word [bp-014h] ; 8b 46 ec 14672 call 09 e60h ; e8 0b0514737 call 09f0bh ; e8 2e 05 14673 14738 cmp AL, strict byte 012h ; 3c 12 14674 je short 099 6ah ; 74 1114739 je short 099f2h ; 74 11 14675 14740 mov bl, cl ; 88 cb 14676 14741 db 0feh, 0c3h … … 14679 14744 mov dx, word [bp-00eh] ; 8b 56 f2 14680 14745 mov ax, word [bp-014h] ; 8b 46 ec 14681 jmp short 099 2dh ; eb c614682 jmp near 09a 36h ; e9 cc 0014746 jmp short 099b5h ; eb c6 14747 jmp near 09abeh ; e9 cc 00 14683 14748 test cl, cl ; 84 c9 14684 je short 099 67h ; 74 f914749 je short 099efh ; 74 f9 14685 14750 add cl, 002h ; 80 c1 02 14686 14751 mov bl, cl ; 88 cb … … 14694 14759 mov dx, word [bp-012h] ; 8b 56 ee 14695 14760 mov ax, word [bp-00ch] ; 8b 46 f4 14696 call 09 e60h ; e8 d00414761 call 09f0bh ; e8 f3 04 14697 14762 cmp AL, strict byte 010h ; 3c 10 14698 jne short 099 67h ; 75 d314763 jne short 099efh ; 75 d3 14699 14764 mov byte [bp-008h], 000h ; c6 46 f8 00 14700 14765 mov bl, cl ; 88 cb … … 14703 14768 mov dx, word [bp-012h] ; 8b 56 ee 14704 14769 mov ax, word [bp-00ch] ; 8b 46 f4 14705 call 09 e8eh ; e8 e6 0414770 call 09f39h ; e8 09 05 14706 14771 mov dx, ax ; 89 c2 14707 14772 and ax, strict word 0000fh ; 25 0f 00 14708 14773 sub ax, strict word 00004h ; 2d 04 00 14709 14774 cmp ax, strict word 0000bh ; 3d 0b 00 14710 jnbe short 09 9ech ; 77 3714775 jnbe short 09a74h ; 77 37 14711 14776 push CS ; 0e 14712 14777 pop ES ; 07 14713 14778 mov cx, strict word 00008h ; b9 08 00 14714 mov di, 09 8ech ; bf ec 9814779 mov di, 09974h ; bf 74 99 14715 14780 repne scasb ; f2 ae 14716 14781 sal cx, 1 ; d1 e1 14717 14782 mov di, cx ; 89 cf 14718 mov ax, word [cs:di-06 70dh] ; 2e 8b 85 f3 9814783 mov ax, word [cs:di-06685h] ; 2e 8b 85 7b 99 14719 14784 jmp ax ; ff e0 14720 14785 mov byte [bp-008h], 010h ; c6 46 f8 10 14721 jmp short 09 9ech ; eb 1c14786 jmp short 09a74h ; eb 1c 14722 14787 mov byte [bp-008h], 014h ; c6 46 f8 14 14723 jmp short 09 9ech ; eb 1614788 jmp short 09a74h ; eb 16 14724 14789 mov byte [bp-008h], 018h ; c6 46 f8 18 14725 jmp short 09 9ech ; eb 1014790 jmp short 09a74h ; eb 10 14726 14791 mov byte [bp-008h], 01ch ; c6 46 f8 1c 14727 jmp short 09 9ech ; eb 0a14792 jmp short 09a74h ; eb 0a 14728 14793 mov byte [bp-008h], 020h ; c6 46 f8 20 14729 jmp short 09 9ech ; eb 0414794 jmp short 09a74h ; eb 04 14730 14795 mov byte [bp-008h], 024h ; c6 46 f8 24 14731 14796 mov si, dx ; 89 d6 … … 14734 14799 mov al, byte [bp-008h] ; 8a 46 f8 14735 14800 test al, al ; 84 c0 14736 je short 09a 36h ; 74 3b14801 je short 09abeh ; 74 3b 14737 14802 mov bl, al ; 88 c3 14738 14803 xor bh, bh ; 30 ff … … 14745 14810 mov dx, word [bp-010h] ; 8b 56 f0 14746 14811 mov ax, word [bp-016h] ; 8b 46 ea 14747 call 09 eb8h ; e8 9e0414812 call 09f63h ; e8 c1 04 14748 14813 test AL, strict byte 001h ; a8 01 14749 je short 09a 36h ; 74 1814814 je short 09abeh ; 74 18 14750 14815 and AL, strict byte 0f0h ; 24 f0 14751 14816 add si, ax ; 01 c6 … … 14754 14819 mov dx, word [bp-010h] ; 8b 56 f0 14755 14820 mov ax, word [bp-016h] ; 8b 46 ea 14756 call 09f 06h ; e8 d50414821 call 09fb1h ; e8 f8 04 14757 14822 mov ax, si ; 89 f0 14758 call 09 796h ; e8 60 fd14823 call 0981eh ; e8 60 fd 14759 14824 lea sp, [bp-004h] ; 8d 66 fc 14760 14825 pop di ; 5f … … 14762 14827 pop bp ; 5d 14763 14828 retn ; c3 14764 apm_out_str_: ; 0xf9a 3dLB 0x3914829 apm_out_str_: ; 0xf9ac5 LB 0x39 14765 14830 push bp ; 55 14766 14831 mov bp, sp ; 89 e5 … … 14768 14833 mov bx, ax ; 89 c3 14769 14834 cmp byte [bx], 000h ; 80 3f 00 14770 je short 09a 52h ; 74 0a14835 je short 09adah ; 74 0a 14771 14836 mov al, byte [bx] ; 8a 07 14772 14837 out DX, AL ; ee … … 14775 14840 db 00ah, 0c0h 14776 14841 ; or al, al ; 0a c0 14777 jne short 09a 4ah ; 75 f814842 jne short 09ad2h ; 75 f8 14778 14843 lea sp, [bp-002h] ; 8d 66 fe 14779 14844 pop bx ; 5b 14780 14845 pop bp ; 5d 14781 14846 retn ; c3 14782 xchg di, ax ; 97 14783 call far 09aa9h:09b1fh ; 9a 1f 9b a9 9a 14784 les bx, [bp+si-064e1h] ; c4 9a 1f 9b 14785 out DX, ax ; ef 14786 call far 09b25h:09b1fh ; 9a 1f 9b 25 9b 14787 hlt ; f4 14788 call far 09af4h:09af4h ; 9a f4 9a f4 9a 14789 db 064h, 09bh 14790 ; fs wait ; 64 9b 14791 hlt ; f4 14792 call far 09b5dh:09af4h ; 9a f4 9a 5d 9b 14793 _apm_function: ; 0xf9a76 LB 0xf3 14847 pop DS ; 1f 14848 wait ; 9b 14849 cmpsw ; a7 14850 wait ; 9b 14851 xor word [bp+di-064b4h], bx ; 31 9b 4c 9b 14852 cmpsw ; a7 14853 wait ; 9b 14854 jnbe short 09a87h ; 77 9b 14855 cmpsw ; a7 14856 wait ; 9b 14857 lodsw ; ad 14858 wait ; 9b 14859 jl short 09a8dh ; 7c 9b 14860 jl short 09a8fh ; 7c 9b 14861 jl short 09a91h ; 7c 9b 14862 in AL, DX ; ec 14863 wait ; 9b 14864 jl short 09a95h ; 7c 9b 14865 jl short 09a97h ; 7c 9b 14866 in ax, 09bh ; e5 9b 14867 _apm_function: ; 0xf9afe LB 0xf3 14794 14868 push bp ; 55 14795 14869 mov bp, sp ; 89 e5 … … 14799 14873 xor ah, ah ; 30 e4 14800 14874 cmp ax, strict word 0000eh ; 3d 0e 00 14801 jnbe short 09 af4h ; 77 6c14875 jnbe short 09b7ch ; 77 6c 14802 14876 mov bx, ax ; 89 c3 14803 14877 add bx, ax ; 01 c3 14804 14878 mov dx, word [bp+018h] ; 8b 56 18 14805 14879 or dl, 001h ; 80 ca 01 14806 jmp word [cs:bx-065 a8h] ; 2e ff a7 589a14880 jmp word [cs:bx-06520h] ; 2e ff a7 e0 9a 14807 14881 mov word [bp+012h], 00102h ; c7 46 12 02 01 14808 14882 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 14809 14883 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 14810 jmp near 09b 1fh ; e9 76 0014884 jmp near 09ba7h ; e9 76 00 14811 14885 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14812 mov word [bp+00ch], 0a1 04h ; c7 46 0c 04 a114886 mov word [bp+00ch], 0a1b4h ; c7 46 0c b4 a1 14813 14887 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 14814 14888 mov ax, strict word 0fff0h ; b8 f0 ff 14815 14889 mov word [bp+006h], ax ; 89 46 06 14816 14890 mov word [bp+004h], ax ; 89 46 04 14817 jmp near 09b 1fh ; e9 5b 0014891 jmp near 09ba7h ; e9 5b 00 14818 14892 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14819 14893 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 14828 14902 mov si, ax ; 89 c6 14829 14903 sal esi, 010h ; 66 c1 e6 10 14830 jmp near 09b 1fh ; e9 30 0014904 jmp near 09ba7h ; e9 30 00 14831 14905 sti ; fb 14832 14906 hlt ; f4 14833 jmp near 09b 1fh ; e9 2b 0014834 mov bx, 00 da0h ; bb a0 0d14907 jmp near 09ba7h ; e9 2b 00 14908 mov bx, 00e02h ; bb 02 0e 14835 14909 mov cx, ds ; 8c d9 14836 14910 mov ax, strict word 00004h ; b8 04 00 14837 call 01923h ; e8 24 7e14911 call 01923h ; e8 9c 7d 14838 14912 push word [bp+00ch] ; ff 76 0c 14839 14913 push word [bp+012h] ; ff 76 12 14840 push 00d 29h ; 68 290d14914 push 00d8bh ; 68 8b 0d 14841 14915 push strict byte 00004h ; 6a 04 14842 call 01966h ; e8 59 7e14916 call 01966h ; e8 d1 7d 14843 14917 add sp, strict byte 00008h ; 83 c4 08 14844 14918 mov ax, word [bp+012h] ; 8b 46 12 … … 14852 14926 retn ; c3 14853 14927 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 14854 je short 09b 4ah ; 74 1f14928 je short 09bd2h ; 74 1f 14855 14929 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 14856 je short 09b 42h ; 74 1114930 je short 09bcah ; 74 11 14857 14931 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 14858 jne short 09b 52h ; 75 1b14932 jne short 09bdah ; 75 1b 14859 14933 mov dx, 0040fh ; ba 0f 04 14860 mov ax, 00d 10h ; b8 100d14861 call 09a 3dh ; e8 fd fe14862 jmp short 09b 1fh ; eb dd14934 mov ax, 00d72h ; b8 72 0d 14935 call 09ac5h ; e8 fd fe 14936 jmp short 09ba7h ; eb dd 14863 14937 mov dx, 0040fh ; ba 0f 04 14864 mov ax, 00d 18h ; b8 180d14865 jmp short 09b 3dh ; eb f314938 mov ax, 00d7ah ; b8 7a 0d 14939 jmp short 09bc5h ; eb f3 14866 14940 mov dx, 0040fh ; ba 0f 04 14867 mov ax, 00d 20h ; b8 200d14868 jmp short 09b 3dh ; eb eb14941 mov ax, 00d82h ; b8 82 0d 14942 jmp short 09bc5h ; eb eb 14869 14943 or ah, 00ah ; 80 cc 0a 14870 14944 mov word [bp+012h], ax ; 89 46 12 14871 14945 mov word [bp+018h], dx ; 89 56 18 14872 jmp short 09b 1fh ; eb c214946 jmp short 09ba7h ; eb c2 14873 14947 mov word [bp+012h], 00102h ; c7 46 12 02 01 14874 jmp short 09b 1fh ; eb bb14948 jmp short 09ba7h ; eb bb 14875 14949 or ah, 080h ; 80 cc 80 14876 jmp short 09b 55h ; eb ec14877 pci16_select_reg_: ; 0xf9b 69LB 0x2414950 jmp short 09bddh ; eb ec 14951 pci16_select_reg_: ; 0xf9bf1 LB 0x24 14878 14952 push bp ; 55 14879 14953 mov bp, sp ; 89 e5 … … 14892 14966 pop bp ; 5d 14893 14967 retn ; c3 14894 pci16_find_device_: ; 0xf9 b8dLB 0xf914968 pci16_find_device_: ; 0xf9c15 LB 0xf9 14895 14969 push bp ; 55 14896 14970 mov bp, sp ; 89 e5 … … 14906 14980 mov byte [bp-008h], 000h ; c6 46 f8 00 14907 14981 test bl, 007h ; f6 c3 07 14908 jne short 09 bd5h ; 75 2d14982 jne short 09c5dh ; 75 2d 14909 14983 mov dx, strict word 0000eh ; ba 0e 00 14910 14984 mov ax, bx ; 89 d8 14911 call 09b 69h ; e8 b9 ff14985 call 09bf1h ; e8 b9 ff 14912 14986 mov dx, 00cfeh ; ba fe 0c 14913 14987 in AL, DX ; ec … … 14916 14990 mov byte [bp-006h], al ; 88 46 fa 14917 14991 cmp AL, strict byte 0ffh ; 3c ff 14918 jne short 09 bc3h ; 75 0614992 jne short 09c4bh ; 75 06 14919 14993 add bx, strict byte 00008h ; 83 c3 08 14920 jmp near 09c 56h ; e9 93 0014994 jmp near 09cdeh ; e9 93 00 14921 14995 test byte [bp-006h], 080h ; f6 46 fa 80 14922 je short 09 bd0h ; 74 0714996 je short 09c58h ; 74 07 14923 14997 mov word [bp-010h], strict word 00001h ; c7 46 f0 01 00 14924 jmp short 09 bd5h ; eb 0514998 jmp short 09c5dh ; eb 05 14925 14999 mov word [bp-010h], strict word 00008h ; c7 46 f0 08 00 14926 15000 mov al, byte [bp-006h] ; 8a 46 fa 14927 15001 and AL, strict byte 007h ; 24 07 14928 15002 cmp AL, strict byte 001h ; 3c 01 14929 jne short 09 bfdh ; 75 1f15003 jne short 09c85h ; 75 1f 14930 15004 mov ax, bx ; 89 d8 14931 15005 shr ax, 008h ; c1 e8 08 14932 15006 test ax, ax ; 85 c0 14933 jne short 09 bfdh ; 75 1615007 jne short 09c85h ; 75 16 14934 15008 mov dx, strict word 0001ah ; ba 1a 00 14935 15009 mov ax, bx ; 89 d8 14936 call 09b 69h ; e8 7a ff15010 call 09bf1h ; e8 7a ff 14937 15011 mov dx, 00cfeh ; ba fe 0c 14938 15012 in AL, DX ; ec … … 14940 15014 ; sub ah, ah ; 2a e4 14941 15015 cmp al, byte [bp-008h] ; 3a 46 f8 14942 jbe short 09 bfdh ; 76 0315016 jbe short 09c85h ; 76 03 14943 15017 mov byte [bp-008h], al ; 88 46 f8 14944 15018 test di, di ; 85 ff 14945 je short 09c 06h ; 74 0515019 je short 09c8eh ; 74 05 14946 15020 mov dx, strict word 00008h ; ba 08 00 14947 jmp short 09c 08h ; eb 0215021 jmp short 09c90h ; eb 02 14948 15022 xor dx, dx ; 31 d2 14949 15023 mov ax, bx ; 89 d8 14950 call 09b 69h ; e8 5c ff15024 call 09bf1h ; e8 5c ff 14951 15025 mov dx, 00cfch ; ba fc 0c 14952 15026 in eax, DX ; 66 ed … … 14959 15033 mov word [bp-00eh], strict word 00000h ; c7 46 f2 00 00 14960 15034 test di, di ; 85 ff 14961 je short 09c 37h ; 74 0f15035 je short 09cbfh ; 74 0f 14962 15036 mov cx, strict word 00008h ; b9 08 00 14963 15037 shr dx, 1 ; d1 ea 14964 15038 rcr ax, 1 ; d1 d8 14965 loop 09c 2bh ; e2 fa15039 loop 09cb3h ; e2 fa 14966 15040 mov word [bp-00ah], ax ; 89 46 f6 14967 15041 mov word [bp-00ch], dx ; 89 56 f4 14968 15042 mov ax, word [bp-00ch] ; 8b 46 f4 14969 15043 cmp ax, word [bp-014h] ; 3b 46 ec 14970 jne short 09c 47h ; 75 0815044 jne short 09ccfh ; 75 08 14971 15045 mov ax, word [bp-00ah] ; 8b 46 f6 14972 15046 cmp ax, word [bp-012h] ; 3b 46 ee 14973 je short 09c 4dh ; 74 0615047 je short 09cd5h ; 74 06 14974 15048 cmp word [bp-00eh], strict byte 00000h ; 83 7e f2 00 14975 je short 09c 53h ; 74 0615049 je short 09cdbh ; 74 06 14976 15050 dec si ; 4e 14977 15051 cmp si, strict byte 0ffffh ; 83 fe ff 14978 je short 09c 67h ; 74 1415052 je short 09cefh ; 74 14 14979 15053 add bx, word [bp-010h] ; 03 5e f0 14980 15054 mov dx, bx ; 89 da … … 14983 15057 xor ah, ah ; 30 e4 14984 15058 cmp dx, ax ; 39 c2 14985 jnbe short 09c 67h ; 77 0314986 jmp near 09 ba3h ; e9 3c ff15059 jnbe short 09cefh ; 77 03 15060 jmp near 09c2bh ; e9 3c ff 14987 15061 cmp si, strict byte 0ffffh ; 83 fe ff 14988 jne short 09c 70h ; 75 0415062 jne short 09cf8h ; 75 04 14989 15063 mov ax, bx ; 89 d8 14990 jmp short 09c 73h ; eb 0315064 jmp short 09cfbh ; eb 03 14991 15065 mov ax, strict word 0ffffh ; b8 ff ff 14992 15066 lea sp, [bp-004h] ; 8d 66 fc … … 14995 15069 pop bp ; 5d 14996 15070 retn ; c3 14997 db 067h, 09dh 14998 ; popfw ; 67 9d 14999 sbb byte [di-0626eh], 0a6h ; 80 9d 92 9d a6 15071 out DX, ax ; ef 15000 15072 popfw ; 9d 15001 mov ax, 0cb9dh ; b8 9d cb 15002 popfw ; 9d 15003 _pci16_function: ; 0xf9c86 LB 0x1d2 15073 or byte [bp-061e6h], bl ; 08 9e 1a 9e 15074 db 02eh, 09eh 15075 ; cs sahf ; 2e 9e 15076 inc ax ; 40 15077 sahf ; 9e 15078 push bx ; 53 15079 sahf ; 9e 15080 _pci16_function: ; 0xf9d0e LB 0x1d2 15004 15081 push bp ; 55 15005 15082 mov bp, sp ; 89 e5 … … 15015 15092 xor ah, ah ; 30 e4 15016 15093 cmp bx, strict byte 00003h ; 83 fb 03 15017 jc short 09 cb8h ; 72 1315018 jbe short 09d 0bh ; 76 6415094 jc short 09d40h ; 72 13 15095 jbe short 09d93h ; 76 64 15019 15096 cmp bx, strict byte 0000eh ; 83 fb 0e 15020 je short 09d 13h ; 74 6715097 je short 09d9bh ; 74 67 15021 15098 cmp bx, strict byte 00008h ; 83 fb 08 15022 jc short 09 cc2h ; 72 1115099 jc short 09d4ah ; 72 11 15023 15100 cmp bx, strict byte 0000dh ; 83 fb 0d 15024 jbe short 09d 16h ; 76 6015025 jmp short 09 cc2h ; eb 0a15101 jbe short 09d9eh ; 76 60 15102 jmp short 09d4ah ; eb 0a 15026 15103 cmp bx, strict byte 00002h ; 83 fb 02 15027 je short 09 ce1h ; 74 2415104 je short 09d69h ; 74 24 15028 15105 cmp bx, strict byte 00001h ; 83 fb 01 15029 je short 09 cc5h ; 74 0315030 jmp near 09e 24h ; e9 5f 0115106 je short 09d4dh ; 74 03 15107 jmp near 09each ; e9 5f 01 15031 15108 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 15032 15109 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 15034 15111 mov word [bp+018h], 04350h ; c7 46 18 50 43 15035 15112 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 15036 jmp near 09e 51h ; e9 70 0115113 jmp near 09ed9h ; e9 70 01 15037 15114 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 15038 jne short 09 cedh ; 75 0615115 jne short 09d75h ; 75 06 15039 15116 or ah, 083h ; 80 cc 83 15040 jmp near 09e 4ah ; e9 5d 0115117 jmp near 09ed2h ; e9 5d 01 15041 15118 mov bx, word [bp+008h] ; 8b 5e 08 15042 15119 mov dx, word [bp+01ch] ; 8b 56 1c 15043 15120 mov ax, word [bp+018h] ; 8b 46 18 15044 15121 xor cx, cx ; 31 c9 15045 call 09 b8dh ; e8 92 fe15122 call 09c15h ; e8 92 fe 15046 15123 cmp ax, strict word 0ffffh ; 3d ff ff 15047 jne short 09d 0dh ; 75 0d15124 jne short 09d95h ; 75 0d 15048 15125 mov ax, word [bp+020h] ; 8b 46 20 15049 15126 xor ah, ah ; 30 e4 15050 15127 or ah, 086h ; 80 cc 86 15051 jmp near 09e 4ah ; e9 3f 0115052 jmp short 09d 18h ; eb 0b15128 jmp near 09ed2h ; e9 3f 01 15129 jmp short 09da0h ; eb 0b 15053 15130 mov word [bp+014h], ax ; 89 46 14 15054 jmp near 09e 51h ; e9 3e 0115055 jmp near 09 ddfh ; e9 c9 0015056 jmp short 09d 3dh ; eb 2515131 jmp near 09ed9h ; e9 3e 01 15132 jmp near 09e67h ; e9 c9 00 15133 jmp short 09dc5h ; eb 25 15057 15134 mov bx, word [bp+008h] ; 8b 5e 08 15058 15135 mov ax, word [bp+01ch] ; 8b 46 1c 15059 15136 mov dx, word [bp+01eh] ; 8b 56 1e 15060 15137 mov cx, strict word 00001h ; b9 01 00 15061 call 09 b8dh ; e8 66 fe15138 call 09c15h ; e8 66 fe 15062 15139 cmp ax, strict word 0ffffh ; 3d ff ff 15063 jne short 09d 37h ; 75 0b15140 jne short 09dbfh ; 75 0b 15064 15141 mov ax, word [bp+020h] ; 8b 46 20 15065 15142 xor ah, ah ; 30 e4 15066 15143 or ah, 086h ; 80 cc 86 15067 jmp near 09e 4ah ; e9 13 0115144 jmp near 09ed2h ; e9 13 01 15068 15145 mov word [bp+014h], ax ; 89 46 14 15069 jmp near 09e 51h ; e9 14 0115146 jmp near 09ed9h ; e9 14 01 15070 15147 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 15071 jc short 09d 4ah ; 72 0615148 jc short 09dd2h ; 72 06 15072 15149 or ah, 087h ; 80 cc 87 15073 jmp near 09e 4ah ; e9 00 0115150 jmp near 09ed2h ; e9 00 01 15074 15151 mov dx, word [bp+004h] ; 8b 56 04 15075 15152 mov ax, word [bp+014h] ; 8b 46 14 15076 call 09b 69h ; e8 16 fe15153 call 09bf1h ; e8 16 fe 15077 15154 mov bx, word [bp+020h] ; 8b 5e 20 15078 15155 xor bh, bh ; 30 ff 15079 15156 sub bx, strict byte 00008h ; 83 eb 08 15080 15157 cmp bx, strict byte 00005h ; 83 fb 05 15081 jnbe short 09 dc8h ; 77 6815158 jnbe short 09e50h ; 77 68 15082 15159 add bx, bx ; 01 db 15083 jmp word [cs:bx-06 386h] ; 2e ff a7 7a 9c15160 jmp word [cs:bx-062feh] ; 2e ff a7 02 9d 15084 15161 mov bx, word [bp+01ch] ; 8b 5e 1c 15085 15162 xor bl, bl ; 30 db … … 15092 15169 or bx, ax ; 09 c3 15093 15170 mov word [bp+01ch], bx ; 89 5e 1c 15094 jmp short 09 dc8h ; eb 4815171 jmp short 09e50h ; eb 48 15095 15172 mov dx, word [bp+004h] ; 8b 56 04 15096 15173 xor dh, dh ; 30 f6 … … 15099 15176 in ax, DX ; ed 15100 15177 mov word [bp+01ch], ax ; 89 46 1c 15101 jmp short 09 dc8h ; eb 3615178 jmp short 09e50h ; eb 36 15102 15179 mov dx, 00cfch ; ba fc 0c 15103 15180 in eax, DX ; 66 ed … … 15108 15185 mov word [bp+01ch], ax ; 89 46 1c 15109 15186 mov word [bp+01eh], dx ; 89 56 1e 15110 jmp short 09 dc8h ; eb 2215187 jmp short 09e50h ; eb 22 15111 15188 mov ax, word [bp+01ch] ; 8b 46 1c 15112 15189 mov dx, word [bp+004h] ; 8b 56 04 … … 15115 15192 add dx, 00cfch ; 81 c2 fc 0c 15116 15193 out DX, AL ; ee 15117 jmp short 09 dc8h ; eb 1015194 jmp short 09e50h ; eb 10 15118 15195 mov ax, word [bp+01ch] ; 8b 46 1c 15119 15196 mov dx, word [bp+004h] ; 8b 56 04 … … 15122 15199 add dx, 00cfch ; 81 c2 fc 0c 15123 15200 out DX, ax ; ef 15124 jmp near 09e 51h ; e9 86 0015201 jmp near 09ed9h ; e9 86 00 15125 15202 mov ax, word [bp+01ch] ; 8b 46 1c 15126 15203 mov cx, word [bp+01eh] ; 8b 4e 1e … … 15131 15208 ; mov ax, cx ; 8b c1 15132 15209 out DX, eax ; 66 ef 15133 jmp short 09e 51h ; eb 7215210 jmp short 09ed9h ; eb 72 15134 15211 mov bx, word [bp+004h] ; 8b 5e 04 15135 15212 mov es, [bp+026h] ; 8e 46 26 … … 15138 15215 mov cx, word [0f380h] ; 8b 0e 80 f3 15139 15216 cmp cx, word [es:bx] ; 26 3b 0f 15140 jbe short 09e 05h ; 76 1115217 jbe short 09e8dh ; 76 11 15141 15218 mov ax, word [bp+020h] ; 8b 46 20 15142 15219 xor ah, ah ; 30 e4 … … 15144 15221 mov word [bp+020h], ax ; 89 46 20 15145 15222 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 15146 jmp short 09e 19h ; eb 1415223 jmp short 09ea1h ; eb 14 15147 15224 les di, [es:bx+002h] ; 26 c4 7f 02 15148 15225 mov si, 0f1a0h ; be a0 f1 … … 15156 15233 les bx, [bp-008h] ; c4 5e f8 15157 15234 mov word [es:bx], ax ; 26 89 07 15158 jmp short 09e 51h ; eb 2d15159 mov bx, 00 da0h ; bb a0 0d15235 jmp short 09ed9h ; eb 2d 15236 mov bx, 00e02h ; bb 02 0e 15160 15237 mov cx, ds ; 8c d9 15161 15238 mov ax, strict word 00004h ; b8 04 00 15162 call 01923h ; e8 f47a15239 call 01923h ; e8 6c 7a 15163 15240 mov ax, word [bp+014h] ; 8b 46 14 15164 15241 push ax ; 50 15165 15242 mov ax, word [bp+020h] ; 8b 46 20 15166 15243 push ax ; 50 15167 push 00d 5ch ; 68 5c0d15244 push 00dbeh ; 68 be 0d 15168 15245 push strict byte 00004h ; 6a 04 15169 call 01966h ; e8 27 7b15246 call 01966h ; e8 9f 7a 15170 15247 add sp, strict byte 00008h ; 83 c4 08 15171 15248 mov ax, word [bp+020h] ; 8b 46 20 … … 15179 15256 pop bp ; 5d 15180 15257 retn ; c3 15181 pci_find_classcode_: ; 0xf9e 58LB 0x815258 pci_find_classcode_: ; 0xf9ee0 LB 0x8 15182 15259 push bp ; 55 15183 15260 mov bp, sp ; 89 e5 … … 15185 15262 pop bp ; 5d 15186 15263 retn ; c3 15187 pci_read_config_byte_: ; 0xf9e60 LB 0x2e 15264 pci_find_device_: ; 0xf9ee8 LB 0x23 15265 push bp ; 55 15266 mov bp, sp ; 89 e5 15267 push bx ; 53 15268 push cx ; 51 15269 push si ; 56 15270 mov cx, dx ; 89 d1 15271 xor si, si ; 31 f6 15272 mov dx, ax ; 89 c2 15273 mov ax, 0b102h ; b8 02 b1 15274 int 01ah ; cd 1a 15275 cmp ah, 000h ; 80 fc 00 15276 je short 09f01h ; 74 03 15277 mov bx, strict word 0ffffh ; bb ff ff 15278 mov ax, bx ; 89 d8 15279 lea sp, [bp-006h] ; 8d 66 fa 15280 pop si ; 5e 15281 pop cx ; 59 15282 pop bx ; 5b 15283 pop bp ; 5d 15284 retn ; c3 15285 pci_read_config_byte_: ; 0xf9f0b LB 0x2e 15188 15286 push bp ; 55 15189 15287 mov bp, sp ; 89 e5 … … 15211 15309 pop bp ; 5d 15212 15310 retn ; c3 15213 pci_read_config_word_: ; 0xf9 e8eLB 0x2a15311 pci_read_config_word_: ; 0xf9f39 LB 0x2a 15214 15312 push bp ; 55 15215 15313 mov bp, sp ; 89 e5 … … 15235 15333 pop bp ; 5d 15236 15334 retn ; c3 15237 pci_read_config_dword_: ; 0xf9 eb8LB 0x4e15335 pci_read_config_dword_: ; 0xf9f63 LB 0x4e 15238 15336 push bp ; 55 15239 15337 mov bp, sp ; 89 e5 … … 15257 15355 int 01ah ; cd 1a 15258 15356 test cx, cx ; 85 c9 15259 jne short 09 ef7h ; 75 1415357 jne short 09fa2h ; 75 14 15260 15358 mov al, byte [bp-006h] ; 8a 46 fa 15261 15359 xor ah, ah ; 30 e4 … … 15267 15365 int 01ah ; cd 1a 15268 15366 test cx, cx ; 85 c9 15269 je short 09 efch ; 74 0515367 je short 09fa7h ; 74 05 15270 15368 mov ax, strict word 00001h ; b8 01 00 15271 jmp short 09 efeh ; eb 0215369 jmp short 09fa9h ; eb 02 15272 15370 xor ax, ax ; 31 c0 15273 15371 cwd ; 99 … … 15277 15375 pop bp ; 5d 15278 15376 retn ; c3 15279 pci_write_config_word_: ; 0xf9f 06LB 0x2515377 pci_write_config_word_: ; 0xf9fb1 LB 0x25 15280 15378 push bp ; 55 15281 15379 mov bp, sp ; 89 e5 … … 15297 15395 pop bp ; 5d 15298 15396 retn ; c3 15299 vds_is_present_: ; 0xf9f 2bLB 0x1d15397 vds_is_present_: ; 0xf9fd6 LB 0x1d 15300 15398 push bx ; 53 15301 15399 push bp ; 55 … … 15305 15403 mov es, ax ; 8e c0 15306 15404 test byte [es:bx], 020h ; 26 f6 07 20 15307 je short 09f 43h ; 74 0615405 je short 09feeh ; 74 06 15308 15406 mov ax, strict word 00001h ; b8 01 00 15309 15407 pop bp ; 5d … … 15314 15412 pop bx ; 5b 15315 15413 retn ; c3 15316 vds_real_to_lin_: ; 0xf9f 48LB 0x1e15414 vds_real_to_lin_: ; 0xf9ff3 LB 0x1e 15317 15415 push bx ; 53 15318 15416 push cx ; 51 … … 15325 15423 sal ax, 1 ; d1 e0 15326 15424 rcl dx, 1 ; d1 d2 15327 loop 0 9f56h ; e2 fa15425 loop 0a001h ; e2 fa 15328 15426 xor cx, cx ; 31 c9 15329 15427 add ax, bx ; 01 d8 … … 15333 15431 pop bx ; 5b 15334 15432 retn ; c3 15335 vds_build_sg_list_: ; 0xf 9f66LB 0x7715433 vds_build_sg_list_: ; 0xfa011 LB 0x77 15336 15434 push bp ; 55 15337 15435 mov bp, sp ; 89 e5 … … 15347 15445 mov bx, word [bp+006h] ; 8b 5e 06 15348 15446 mov word [es:di+002h], bx ; 26 89 5d 02 15349 call 09f 48h ; e8 c3 ff15447 call 09ff3h ; e8 c3 ff 15350 15448 mov es, si ; 8e c6 15351 15449 mov word [es:di+004h], ax ; 26 89 45 04 15352 15450 mov word [es:di+006h], dx ; 26 89 55 06 15353 15451 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15354 call 09f 2bh ; e8 93 ff15452 call 09fd6h ; e8 93 ff 15355 15453 test ax, ax ; 85 c0 15356 je short 0 9fadh ; 74 1115454 je short 0a058h ; 74 11 15357 15455 mov es, si ; 8e c6 15358 15456 mov ax, 08105h ; b8 05 81 15359 15457 mov dx, strict word 00000h ; ba 00 00 15360 15458 int 04bh ; cd 4b 15361 jc short 0 9faah ; 72 0215459 jc short 0a055h ; 72 02 15362 15460 db 032h, 0c0h 15363 15461 ; xor al, al ; 32 c0 15364 15462 cbw ; 98 15365 jmp short 0 9fd4h ; eb 2715463 jmp short 0a07fh ; eb 27 15366 15464 mov es, si ; 8e c6 15367 15465 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15380 15478 pop bp ; 5d 15381 15479 retn 00004h ; c2 04 00 15382 vds_free_sg_list_: ; 0xf 9fdd LB 0x3315480 vds_free_sg_list_: ; 0xfa088 LB 0x38 15383 15481 push bp ; 55 15384 15482 mov bp, sp ; 89 e5 … … 15386 15484 push di ; 57 15387 15485 mov bx, ax ; 89 c3 15388 call 09f 2bh ; e8 44 ff15486 call 09fd6h ; e8 44 ff 15389 15487 test ax, ax ; 85 c0 15390 je short 0 9ffch ; 74 1115488 je short 0a0a7h ; 74 11 15391 15489 mov di, bx ; 89 df 15392 15490 mov es, dx ; 8e c2 … … 15394 15492 mov dx, strict word 00000h ; ba 00 00 15395 15493 int 04bh ; cd 4b 15396 jc short 0 9ffbh ; 72 0215494 jc short 0a0a6h ; 72 02 15397 15495 db 032h, 0c0h 15398 15496 ; xor al, al ; 32 c0 … … 15405 15503 pop bp ; 5d 15406 15504 retn ; c3 15407 times 0x 5db 015408 __U4M: ; 0xfa0 10 LB 0x2015505 times 0xa db 0 15506 __U4M: ; 0xfa0c0 LB 0x20 15409 15507 pushfw ; 9c 15410 15508 push si ; 56 … … 15433 15531 retn ; c3 15434 15532 times 0x4 db 0 15435 __U4D: ; 0xfa0 30 LB 0x3015533 __U4D: ; 0xfa0e0 LB 0x30 15436 15534 pushfw ; 9c 15437 15535 push DS ; 1e … … 15448 15546 push dx ; 52 15449 15547 push ax ; 50 15450 call 0a1 15h ; e8 d0 0015548 call 0a1c5h ; e8 d0 00 15451 15549 mov cx, word [bp-002h] ; 8b 4e fe 15452 15550 mov bx, word [bp-004h] ; 8b 5e fc … … 15459 15557 retn ; c3 15460 15558 times 0xe db 0 15461 __U8RS: ; 0xfa 060 LB 0x1015559 __U8RS: ; 0xfa110 LB 0x10 15462 15560 test si, si ; 85 f6 15463 je short 0a 06fh ; 74 0b15561 je short 0a11fh ; 74 0b 15464 15562 shr ax, 1 ; d1 e8 15465 15563 rcr bx, 1 ; d1 db … … 15467 15565 rcr dx, 1 ; d1 da 15468 15566 dec si ; 4e 15469 jne short 0a 064h ; 75 f515567 jne short 0a114h ; 75 f5 15470 15568 retn ; c3 15471 __U8LS: ; 0xfa 070 LB 0x1015569 __U8LS: ; 0xfa120 LB 0x10 15472 15570 test si, si ; 85 f6 15473 je short 0a 07fh ; 74 0b15571 je short 0a12fh ; 74 0b 15474 15572 sal dx, 1 ; d1 e2 15475 15573 rcl cx, 1 ; d1 d1 … … 15477 15575 rcl ax, 1 ; d1 d0 15478 15576 dec si ; 4e 15479 jne short 0a 074h ; 75 f515577 jne short 0a124h ; 75 f5 15480 15578 retn ; c3 15481 _fmemset_: ; 0xfa 080 LB 0x1015579 _fmemset_: ; 0xfa130 LB 0x10 15482 15580 push di ; 57 15483 15581 mov es, dx ; 8e c2 … … 15490 15588 retn ; c3 15491 15589 times 0x3 db 0 15492 _fmemcpy_: ; 0xfa 090 LB 0x3a15590 _fmemcpy_: ; 0xfa140 LB 0x3a 15493 15591 push bp ; 55 15494 15592 db 08bh, 0ech … … 15512 15610 pop bp ; 5d 15513 15611 retn ; c3 15514 db 000h, 000h, 000h, 000h, 000h, 000h, 0e0h, 0a0h, 0e2h, 0a0h, 0e6h, 0a0h, 0e6h, 0a0h, 0e6h, 0a0h 15515 db 0e8h, 0a0h, 0e8h, 0a0h, 0eah, 0a0h, 0eeh, 0a0h, 0eeh, 0a0h, 0f0h, 0a0h, 0f5h, 0a0h, 0f7h, 0a0h 15516 apm_worker: ; 0xfa0ca LB 0x3a 15612 add byte [bx+si], al ; 00 00 15613 add byte [bx+si], al ; 00 00 15614 add byte [bx+si], al ; 00 00 15615 nop ; 90 15616 mov ax, word [0a192h] ; a1 92 a1 15617 xchg si, ax ; 96 15618 mov ax, word [0a196h] ; a1 96 a1 15619 xchg si, ax ; 96 15620 mov ax, word [0a198h] ; a1 98 a1 15621 cbw ; 98 15622 mov ax, word [0a19ah] ; a1 9a a1 15623 sahf ; 9e 15624 mov ax, word [0a19eh] ; a1 9e a1 15625 mov AL, byte [0a5a1h] ; a0 a1 a5 15626 mov ax, word [0a1a7h] ; a1 a7 a1 15627 apm_worker: ; 0xfa17a LB 0x3a 15517 15628 sti ; fb 15518 15629 push ax ; 50 … … 15526 15637 pop ax ; 58 15527 15638 mov AH, strict byte 053h ; b4 53 15528 jnc short 0a1 00h ; 73 2515529 jmp word [cs:bp-05 f50h] ; 2e ff a6 b0 a015530 jmp short 0a 0feh ; eb 1c15639 jnc short 0a1b0h ; 73 25 15640 jmp word [cs:bp-05ea0h] ; 2e ff a6 60 a1 15641 jmp short 0a1aeh ; eb 1c 15531 15642 sti ; fb 15532 15643 hlt ; f4 15533 jmp short 0a 0feh ; eb 1815534 jmp short 0a 0feh ; eb 1615535 jmp short 0a1 00h ; eb 1615644 jmp short 0a1aeh ; eb 18 15645 jmp short 0a1aeh ; eb 16 15646 jmp short 0a1b0h ; eb 16 15536 15647 mov AH, strict byte 080h ; b4 80 15537 jmp short 0a1 02h ; eb 1415538 jmp short 0a1 00h ; eb 1015648 jmp short 0a1b2h ; eb 14 15649 jmp short 0a1b0h ; eb 10 15539 15650 mov ax, 00102h ; b8 02 01 15540 jmp short 0a 0feh ; eb 0915541 jmp short 0a 0feh ; eb 0715651 jmp short 0a1aeh ; eb 09 15652 jmp short 0a1aeh ; eb 07 15542 15653 mov BL, strict byte 000h ; b3 00 15543 15654 mov cx, strict word 00000h ; b9 00 00 15544 jmp short 0a 0feh ; eb 0015655 jmp short 0a1aeh ; eb 00 15545 15656 clc ; f8 15546 15657 retn ; c3 … … 15548 15659 stc ; f9 15549 15660 retn ; c3 15550 apm_pm16_entry: ; 0xfa1 04 LB 0x1115661 apm_pm16_entry: ; 0xfa1b4 LB 0x11 15551 15662 mov AH, strict byte 002h ; b4 02 15552 15663 push DS ; 1e … … 15556 15667 add bp, strict byte 00008h ; 83 c5 08 15557 15668 mov ds, bp ; 8e dd 15558 call 0a 0cah ; e8 b8 ff15669 call 0a17ah ; e8 b8 ff 15559 15670 pop bp ; 5d 15560 15671 pop DS ; 1f 15561 15672 retf ; cb 15562 _DoUInt32Div: ; 0xfa1 15 LB 0x26b15673 _DoUInt32Div: ; 0xfa1c5 LB 0x26b 15563 15674 push bp ; 55 15564 15675 mov bp, sp ; 89 e5 … … 15578 15689 mov [bp-006h], ds ; 8c 5e fa 15579 15690 cmp word [bx+002h], strict byte 00000h ; 83 7f 02 00 15580 jne short 0a 165h ; 75 2215691 jne short 0a215h ; 75 22 15581 15692 mov ax, word [bx] ; 8b 07 15582 15693 test ax, ax ; 85 c0 15583 je short 0a 162h ; 74 1915694 je short 0a212h ; 74 19 15584 15695 cmp ax, strict word 00001h ; 3d 01 00 15585 jne short 0a 165h ; 75 1715696 jne short 0a215h ; 75 17 15586 15697 xor ax, ax ; 31 c0 15587 15698 mov word [bp+00ah], ax ; 89 46 0a … … 15591 15702 mov ax, word [bp-01ah] ; 8b 46 e6 15592 15703 mov word [bp+006h], ax ; 89 46 06 15593 jmp near 0a 36dh ; e9 08 0215704 jmp near 0a41dh ; e9 08 02 15594 15705 lds bx, [bp-00ch] ; c5 5e f4 15595 15706 mov ax, word [bx+002h] ; 8b 47 02 15596 15707 mov ds, [bp-006h] ; 8e 5e fa 15597 15708 cmp ax, word [si+002h] ; 3b 44 02 15598 je short 0a 18bh ; 74 1815709 je short 0a23bh ; 74 18 15599 15710 mov ds, [bp-00ah] ; 8e 5e f6 15600 15711 mov ax, word [bx+002h] ; 8b 47 02 15601 15712 mov ds, [bp-006h] ; 8e 5e fa 15602 15713 cmp ax, word [si+002h] ; 3b 44 02 15603 jbe short 0a 186h ; 76 0515714 jbe short 0a236h ; 76 05 15604 15715 mov ax, strict word 00001h ; b8 01 00 15605 jmp short 0a 1ach ; eb 2615716 jmp short 0a25ch ; eb 26 15606 15717 mov ax, strict word 0ffffh ; b8 ff ff 15607 jmp short 0a 1ach ; eb 2115718 jmp short 0a25ch ; eb 21 15608 15719 mov ds, [bp-00ah] ; 8e 5e f6 15609 15720 mov ax, word [bx] ; 8b 07 15610 15721 mov ds, [bp-006h] ; 8e 5e fa 15611 15722 cmp ax, word [si] ; 3b 04 15612 je short 0a 1aah ; 74 1315723 je short 0a25ah ; 74 13 15613 15724 mov ds, [bp-00ah] ; 8e 5e f6 15614 15725 mov ax, word [bx] ; 8b 07 15615 15726 mov ds, [bp-006h] ; 8e 5e fa 15616 15727 cmp ax, word [si] ; 3b 04 15617 jbe short 0a 1a5h ; 76 0215618 jmp short 0a 181h ; eb dc15728 jbe short 0a255h ; 76 02 15729 jmp short 0a231h ; eb dc 15619 15730 mov ax, strict word 0ffffh ; b8 ff ff 15620 jmp short 0a 1ach ; eb 0215731 jmp short 0a25ch ; eb 02 15621 15732 xor ax, ax ; 31 c0 15622 15733 test ax, ax ; 85 c0 15623 jnl short 0a 1ceh ; 7d 1e15734 jnl short 0a27eh ; 7d 1e 15624 15735 lds bx, [bp-00ch] ; c5 5e f4 15625 15736 mov ax, word [bx] ; 8b 07 … … 15631 15742 mov word [bx+002h], strict word 00000h ; c7 47 02 00 00 15632 15743 mov word [bx], strict word 00000h ; c7 07 00 00 15633 jmp short 0a 162h ; eb 9415634 jne short 0a 1e5h ; 75 1515744 jmp short 0a212h ; eb 94 15745 jne short 0a295h ; 75 15 15635 15746 mov ds, [bp-008h] ; 8e 5e f8 15636 15747 mov word [di+002h], ax ; 89 45 02 … … 15639 15750 mov word [bx], strict word 00001h ; c7 07 01 00 15640 15751 mov word [bx+002h], ax ; 89 47 02 15641 jmp near 0a 36dh ; e9 88 0115752 jmp near 0a41dh ; e9 88 01 15642 15753 lds bx, [bp-00ch] ; c5 5e f4 15643 15754 mov ax, word [bx+002h] ; 8b 47 02 15644 15755 test ax, ax ; 85 c0 15645 je short 0a2 00h ; 74 1115756 je short 0a2b0h ; 74 11 15646 15757 push ax ; 50 15647 15758 mov ax, 0f000h ; b8 00 f0 15648 15759 mov ds, ax ; 8e d8 15649 call 0a 380h ; e8 88 0115760 call 0a430h ; e8 88 01 15650 15761 add sp, strict byte 00002h ; 83 c4 02 15651 15762 add ax, strict word 00010h ; 05 10 00 15652 jmp short 0a2 0dh ; eb 0d15763 jmp short 0a2bdh ; eb 0d 15653 15764 push word [bx] ; ff 37 15654 15765 mov ax, 0f000h ; b8 00 f0 15655 15766 mov ds, ax ; 8e d8 15656 call 0a 380h ; e8 76 0115767 call 0a430h ; e8 76 01 15657 15768 add sp, strict byte 00002h ; 83 c4 02 15658 15769 mov word [bp-014h], ax ; 89 46 ec … … 15660 15771 mov ax, word [si+002h] ; 8b 44 02 15661 15772 test ax, ax ; 85 c0 15662 je short 0a2 2bh ; 74 1115773 je short 0a2dbh ; 74 11 15663 15774 push ax ; 50 15664 15775 mov ax, 0f000h ; b8 00 f0 15665 15776 mov ds, ax ; 8e d8 15666 call 0a 380h ; e8 5d 0115777 call 0a430h ; e8 5d 01 15667 15778 add sp, strict byte 00002h ; 83 c4 02 15668 15779 add ax, strict word 00010h ; 05 10 00 15669 jmp short 0a2 38h ; eb 0d15780 jmp short 0a2e8h ; eb 0d 15670 15781 push word [si] ; ff 34 15671 15782 mov ax, 0f000h ; b8 00 f0 15672 15783 mov ds, ax ; 8e d8 15673 call 0a 380h ; e8 4b 0115784 call 0a430h ; e8 4b 01 15674 15785 add sp, strict byte 00002h ; 83 c4 02 15675 15786 mov dx, word [bp-014h] ; 8b 56 ec … … 15682 15793 mov word [bp-016h], ax ; 89 46 ea 15683 15794 test dx, dx ; 85 d2 15684 je short 0a 2a8h ; 74 5615795 je short 0a358h ; 74 56 15685 15796 mov cx, dx ; 89 d1 15686 15797 xor ch, dh ; 30 f5 … … 15688 15799 mov ax, word [si] ; 8b 04 15689 15800 mov dx, word [si+002h] ; 8b 54 02 15690 jcxz 0a 266h ; e3 0615801 jcxz 0a316h ; e3 06 15691 15802 sal ax, 1 ; d1 e0 15692 15803 rcl dx, 1 ; d1 d2 15693 loop 0a 260h ; e2 fa15804 loop 0a310h ; e2 fa 15694 15805 mov word [bp-018h], ax ; 89 46 e8 15695 15806 mov word [bp-016h], dx ; 89 56 ea … … 15697 15808 lds bx, [bp-00ch] ; c5 5e f4 15698 15809 cmp ax, word [bx+002h] ; 3b 47 02 15699 jnbe short 0a 286h ; 77 0f15810 jnbe short 0a336h ; 77 0f 15700 15811 mov ax, word [bp-016h] ; 8b 46 ea 15701 15812 cmp ax, word [bx+002h] ; 3b 47 02 15702 jne short 0a 28ah ; 75 0b15813 jne short 0a33ah ; 75 0b 15703 15814 mov ax, word [bp-018h] ; 8b 46 e8 15704 15815 cmp ax, word [bx] ; 3b 07 15705 jbe short 0a 28ah ; 76 0415816 jbe short 0a33ah ; 76 04 15706 15817 mov AL, strict byte 001h ; b0 01 15707 jmp short 0a 28ch ; eb 0215818 jmp short 0a33ch ; eb 02 15708 15819 xor al, al ; 30 c0 15709 15820 test al, al ; 84 c0 15710 je short 0a 2b3h ; 74 2315821 je short 0a363h ; 74 23 15711 15822 shr word [bp-016h], 1 ; d1 6e ea 15712 15823 rcr word [bp-018h], 1 ; d1 5e e8 15713 15824 dec word [bp-012h] ; ff 4e ee 15714 jmp short 0a 2b3h ; eb 1815825 jmp short 0a363h ; eb 18 15715 15826 mov cx, strict word 0001fh ; b9 1f 00 15716 15827 sal word [bp-018h], 1 ; d1 66 e8 15717 15828 rcl word [bp-016h], 1 ; d1 56 ea 15718 loop 0a 29eh ; e2 f815719 jmp short 0a 296h ; eb ee15829 loop 0a34eh ; e2 f8 15830 jmp short 0a346h ; eb ee 15720 15831 mov ax, word [si] ; 8b 04 15721 15832 mov word [bp-018h], ax ; 89 46 e8 … … 15734 15845 mov ds, [bp-006h] ; 8e 5e fa 15735 15846 cmp ax, word [si+002h] ; 3b 44 02 15736 jnbe short 0a 2dfh ; 77 0615737 jne short 0a 2e3h ; 75 0815847 jnbe short 0a38fh ; 77 06 15848 jne short 0a393h ; 75 08 15738 15849 cmp dx, word [si] ; 3b 14 15739 jc short 0a 2e3h ; 72 0415850 jc short 0a393h ; 72 04 15740 15851 mov AL, strict byte 001h ; b0 01 15741 jmp short 0a 2e5h ; eb 0215852 jmp short 0a395h ; eb 02 15742 15853 xor al, al ; 30 c0 15743 15854 test al, al ; 84 c0 15744 je short 0a3 4ah ; 74 6115855 je short 0a3fah ; 74 61 15745 15856 mov ds, [bp-008h] ; 8e 5e f8 15746 15857 mov ax, word [di+002h] ; 8b 45 02 15747 15858 cmp ax, word [bp-016h] ; 3b 46 ea 15748 jnbe short 0a3 00h ; 77 0c15859 jnbe short 0a3b0h ; 77 0c 15749 15860 cmp ax, word [bp-016h] ; 3b 46 ea 15750 jne short 0a3 04h ; 75 0b15861 jne short 0a3b4h ; 75 0b 15751 15862 mov ax, word [di] ; 8b 05 15752 15863 cmp ax, word [bp-018h] ; 3b 46 e8 15753 jc short 0a3 04h ; 72 0415864 jc short 0a3b4h ; 72 04 15754 15865 mov AL, strict byte 001h ; b0 01 15755 jmp short 0a3 06h ; eb 0215866 jmp short 0a3b6h ; eb 02 15756 15867 xor al, al ; 30 c0 15757 15868 test al, al ; 84 c0 15758 je short 0a3 30h ; 74 2615869 je short 0a3e0h ; 74 26 15759 15870 mov ax, word [bp-018h] ; 8b 46 e8 15760 15871 mov ds, [bp-008h] ; 8e 5e f8 … … 15765 15876 xor dx, dx ; 31 d2 15766 15877 mov cx, word [bp-012h] ; 8b 4e ee 15767 jcxz 0a3 28h ; e3 0615878 jcxz 0a3d8h ; e3 06 15768 15879 sal ax, 1 ; d1 e0 15769 15880 rcl dx, 1 ; d1 d2 15770 loop 0a3 22h ; e2 fa15881 loop 0a3d2h ; e2 fa 15771 15882 lds bx, [bp-010h] ; c5 5e f0 15772 15883 or word [bx], ax ; 09 07 … … 15777 15888 mov ds, [bp-006h] ; 8e 5e fa 15778 15889 cmp ax, word [si+002h] ; 3b 44 02 15779 jc short 0a3 46h ; 72 0615780 jne short 0a3 4ch ; 75 0a15890 jc short 0a3f6h ; 72 06 15891 jne short 0a3fch ; 75 0a 15781 15892 cmp dx, word [si] ; 3b 14 15782 jnc short 0a3 4ch ; 73 0615893 jnc short 0a3fch ; 73 06 15783 15894 mov AL, strict byte 001h ; b0 01 15784 jmp short 0a3 4eh ; eb 0415785 jmp short 0a 36dh ; eb 2115895 jmp short 0a3feh ; eb 04 15896 jmp short 0a41dh ; eb 21 15786 15897 xor al, al ; 30 c0 15787 15898 test al, al ; 84 c0 15788 je short 0a 361h ; 74 0f15789 jmp short 0a 36dh ; eb 1915899 je short 0a411h ; 74 0f 15900 jmp short 0a41dh ; eb 19 15790 15901 mov cx, strict word 0001fh ; b9 1f 00 15791 15902 sal word [bp-018h], 1 ; d1 66 e8 15792 15903 rcl word [bp-016h], 1 ; d1 56 ea 15793 loop 0a 357h ; e2 f815794 jmp short 0a 367h ; eb 0615904 loop 0a407h ; e2 f8 15905 jmp short 0a417h ; eb 06 15795 15906 shr word [bp-016h], 1 ; d1 6e ea 15796 15907 rcr word [bp-018h], 1 ; d1 5e e8 15797 15908 dec word [bp-012h] ; ff 4e ee 15798 jmp near 0a 2e9h ; e9 7c ff15909 jmp near 0a399h ; e9 7c ff 15799 15910 mov ax, word [bp-01ch] ; 8b 46 e4 15800 15911 mov dx, word [bp-01ah] ; 8b 56 e6 … … 15805 15916 retn ; c3 15806 15917 times 0x6 db 0 15807 _ASMBitLastSetU16: ; 0xfa 380 LB 0x1815918 _ASMBitLastSetU16: ; 0xfa430 LB 0x18 15808 15919 push bp ; 55 15809 15920 db 08bh, 0ech … … 15811 15922 mov cx, word [bp+004h] ; 8b 4e 04 15812 15923 test cx, cx ; 85 c9 15813 je short 0a 394h ; 74 0a15924 je short 0a444h ; 74 0a 15814 15925 mov ax, strict word 00010h ; b8 10 00 15815 15926 sal cx, 1 ; d1 e1 15816 jc short 0a 396h ; 72 0515927 jc short 0a446h ; 72 05 15817 15928 dec ax ; 48 15818 jmp short 0a 38dh ; eb f915929 jmp short 0a43dh ; eb f9 15819 15930 db 033h, 0c0h 15820 15931 ; xor ax, ax ; 33 c0 … … 15822 15933 retn ; c3 15823 15934 15824 ; Padding 0x3 668 bytes at 0xfa39815825 times 13 928db 015935 ; Padding 0x35b8 bytes at 0xfa448 15936 times 13752 db 0 15826 15937 15827 15938 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 15870 15981 add bp, strict byte 00008h ; 83 c5 08 15871 15982 push ebp ; 66 55 15872 mov bp, 0a1 06h ; bd 06 a115983 mov bp, 0a1b6h ; bd b6 a1 15873 15984 add byte [bx+si], al ; 00 00 15874 15985 push ebp ; 66 55 … … 16596 16707 call 01c9fh ; e8 63 39 16597 16708 call 02118h ; e8 d9 3d 16598 call 099 03h ; e8 c1 b516599 call 087 8eh ; e8 49a416709 call 0998bh ; e8 49 b6 16710 call 087fbh ; e8 b6 a4 16600 16711 call 0ed2fh ; e8 e7 09 16601 16712 call 0e2d2h ; e8 87 ff … … 17430 17541 popfw ; 9d 17431 17542 jmp short 0f8a5h ; eb 11 17432 call 09a 76h ; e8 df a117543 call 09afeh ; e8 67 a2 17433 17544 jmp short 0f88eh ; eb f5 17434 17545 int15_handler_mouse: ; 0xff899 LB 0x5 … … 17696 17807 cpu_reset: ; 0xffff0 LB 0x10 17697 17808 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 17698 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 13h17809 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 00fh -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum
r67789 r67807 1 d3d502baf2c64ff733ee5125cf3b3e97*VBoxPcBios286.rom1 0aa9c82df689a029ef3c0dd6eb7cfba6 *VBoxPcBios286.rom -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm
r67789 r67807 951 951 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 952 952 _pktacc: ; 0xf006a LB 0xc 953 db 000h, 000h, 000h, 000h, 000h, 000h, 05dh, 02ch, 01ah, 082h, 0 41h, 091h953 db 000h, 000h, 000h, 000h, 000h, 000h, 05dh, 02ch, 01ah, 082h, 0c8h, 091h 954 954 _softrst: ; 0xf0076 LB 0xc 955 955 db 000h, 000h, 000h, 000h, 000h, 000h, 045h, 02fh, 0b6h, 03ch, 0b6h, 03ch 956 956 _dskacc: ; 0xf0082 LB 0x2e 957 957 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 04dh, 02bh, 002h, 02ch, 000h, 000h, 000h, 000h 958 db 064h, 080h, 03fh, 081h, 0 17h, 090h, 0bdh, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h958 db 064h, 080h, 03fh, 081h, 09eh, 090h, 044h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 959 959 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 960 960 961 section CONST progbits vstart=0xb0 align=1 ; size=0x cf0class=DATA group=DGROUP961 section CONST progbits vstart=0xb0 align=1 ; size=0xd52 class=DATA group=DGROUP 962 962 db 'CPUID EDX: 0x%lx', 00ah, 000h 963 963 db 'NMI Handler called', 00ah, 000h … … 1065 1065 db 'Disk %d has an unsupported sector size of %u', 00ah, 000h 1066 1066 db 'SCSI %d-ID#%d: LCHS=%lu/%u/%u 0x%llx sectors', 00ah, 000h 1067 db 'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h, 000h 1067 db 'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h 1068 db 'scsi_pci_init', 000h 1069 db '%s: Adapter %x:%x not found, how come?!', 00ah, 000h 1070 db '%s: Adapter %x:%x found at %x, enabling BM', 00ah, 000h 1068 1071 db 'ahci_read_sectors', 000h 1069 1072 db '%s: device_id out of range %d', 00ah, 000h … … 1078 1081 db 'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h 1079 1082 1080 section CONST2 progbits vstart=0x da0align=1 ; size=0x3fa class=DATA group=DGROUP1081 _bios_cvs_version_string: ; 0xf0 da0LB 0x121083 section CONST2 progbits vstart=0xe02 align=1 ; size=0x3fa class=DATA group=DGROUP 1084 _bios_cvs_version_string: ; 0xf0e02 LB 0x12 1082 1085 db 'VirtualBox 5.1.51', 000h 1083 _bios_prefix_string: ; 0xf0 db2LB 0x81086 _bios_prefix_string: ; 0xf0e14 LB 0x8 1084 1087 db 'BIOS: ', 000h, 000h 1085 _isotag: ; 0xf0 dbaLB 0x61088 _isotag: ; 0xf0e1c LB 0x6 1086 1089 db 'CD001', 000h 1087 _eltorito: ; 0xf0 dc0LB 0x181090 _eltorito: ; 0xf0e22 LB 0x18 1088 1091 db 'EL TORITO SPECIFICATION', 000h 1089 _drivetypes: ; 0xf0 dd8LB 0x281092 _drivetypes: ; 0xf0e3a LB 0x28 1090 1093 db 046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h 1091 1094 db 069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h 1092 1095 db 04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h 1093 _scan_to_scanascii: ; 0xf0e 00LB 0x37a1096 _scan_to_scanascii: ; 0xf0e62 LB 0x37a 1094 1097 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h 1095 1098 db 000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h … … 1148 1151 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h 1149 1152 db 000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h 1150 _panic_msg_keyb_buffer_full: ; 0xf11 7aLB 0x201153 _panic_msg_keyb_buffer_full: ; 0xf11dc LB 0x20 1151 1154 db '%s: keyboard input buffer full', 00ah, 000h 1152 1155 1153 ; Padding 0x4 66 bytes at 0xf119a1154 times 1 126db 01156 ; Padding 0x404 bytes at 0xf11fc 1157 times 1028 db 0 1155 1158 1156 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8b 25 class=CODE group=AUTO1159 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8bd5 class=CODE group=AUTO 1157 1160 rom_scan_: ; 0xf1600 LB 0x50 1158 1161 push bp ; 55 … … 1501 1504 push bp ; 55 1502 1505 mov bp, sp ; 89 e5 1503 mov bx, 00 db2h ; bb b2 0d1506 mov bx, 00e14h ; bb 14 0e 1504 1507 mov cx, ds ; 8c d9 1505 1508 mov ax, strict word 00004h ; b8 04 00 1506 1509 call 01a2ah ; e8 ac 01 1507 push 00 da0h ; 68 a0 0d1510 push 00e02h ; 68 02 0e 1508 1511 push 000ebh ; 68 eb 00 1509 1512 push strict byte 00004h ; 6a 04 … … 1676 1679 mov bx, strict word 0000ah ; bb 0a 00 1677 1680 xor cx, cx ; 31 c9 1678 call 0a0 30h ; e8 5e 861681 call 0a0e0h ; e8 0e 87 1679 1682 mov word [bp-008h], ax ; 89 46 f8 1680 1683 mov cx, dx ; 89 d1 … … 1902 1905 mov dx, word [bp-026h] ; 8b 56 da 1903 1906 mov si, word [bp-01eh] ; 8b 76 e2 1904 call 0a 070h ; e8 6c 841907 call 0a120h ; e8 1c 85 1905 1908 mov ax, dx ; 89 d0 1906 1909 xor ah, dh ; 30 f4 … … 2344 2347 mov dx, word [es:si] ; 26 8b 14 2345 2348 mov si, strict word 00018h ; be 18 00 2346 call 0a 070h ; e8 10 802349 call 0a120h ; e8 c0 80 2347 2350 xor dh, dh ; 30 f6 2348 2351 mov word [bp-016h], dx ; 89 56 ea … … 2354 2357 mov dx, word [es:si] ; 26 8b 14 2355 2358 mov si, strict word 00020h ; be 20 00 2356 call 0a 070h ; e8 f0 7f2359 call 0a120h ; e8 a0 80 2357 2360 mov bx, dx ; 89 d3 2358 2361 mov ax, word [bp-01eh] ; 8b 46 e2 … … 2385 2388 mov dx, word [es:si] ; 26 8b 14 2386 2389 mov si, strict word 00008h ; be 08 00 2387 call 0a 070h ; e8 9f 7f2390 call 0a120h ; e8 4f 80 2388 2391 mov word [bp-014h], dx ; 89 56 ec 2389 2392 mov bx, word [bp-018h] ; 8b 5e e8 … … 2394 2397 mov dx, word [es:si] ; 26 8b 14 2395 2398 mov si, strict word 00018h ; be 18 00 2396 call 0a 070h ; e8 81 7f2399 call 0a120h ; e8 31 80 2397 2400 and dx, strict byte 0000fh ; 83 e2 0f 2398 2401 or dl, 040h ; 80 ca 40 … … 2788 2791 lea ax, [bp-03ah] ; 8d 46 c6 2789 2792 call 05ad0h ; e8 ff 35 2790 mov bx, 00 db2h ; bb b2 0d2793 mov bx, 00e14h ; bb 14 0e 2791 2794 mov cx, ds ; 8c d9 2792 2795 mov ax, strict word 00004h ; b8 04 00 … … 2950 2953 mov dx, word [es:si+036h] ; 26 8b 54 36 2951 2954 mov si, strict word 0000bh ; be 0b 00 2952 call 0a 070h ; e8 b9 792955 call 0a120h ; e8 69 7a 2953 2956 mov word [bp-030h], dx ; 89 56 d0 2954 2957 mov word [bp-02eh], cx ; 89 4e d2 … … 3221 3224 mov dx, word [bp-01eh] ; 8b 56 e2 3222 3225 mov si, strict word 00018h ; be 18 00 3223 call 0a 070h ; e8 e3 763226 call 0a120h ; e8 93 77 3224 3227 xor dh, dh ; 30 f6 3225 3228 mov word [bp-01ch], dx ; 89 56 e4 … … 3229 3232 mov dx, word [bp-01eh] ; 8b 56 e2 3230 3233 mov si, strict word 00020h ; be 20 00 3231 call 0a 070h ; e8 cc 763234 call 0a120h ; e8 7c 77 3232 3235 mov bx, dx ; 89 d3 3233 3236 mov ax, word [bp-01ah] ; 8b 46 e6 … … 3263 3266 mov dx, word [bp-01eh] ; 8b 56 e2 3264 3267 mov si, strict word 00008h ; be 08 00 3265 call 0a 070h ; e8 78 763268 call 0a120h ; e8 28 77 3266 3269 mov word [bp-010h], ax ; 89 46 f0 3267 3270 mov word [bp-014h], bx ; 89 5e ec … … 3270 3273 mov word [bp-026h], dx ; 89 56 da 3271 3274 mov si, strict word 00010h ; be 10 00 3272 call 0a 070h ; e8 63 763275 call 0a120h ; e8 13 77 3273 3276 mov word [bp-01eh], dx ; 89 56 e2 3274 3277 mov ax, dx ; 89 d0 … … 3539 3542 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 3540 3543 jne short 02cafh ; 75 1f 3541 mov bx, 00 db2h ; bb b2 0d3544 mov bx, 00e14h ; bb 14 0e 3542 3545 mov cx, ds ; 8c d9 3543 3546 mov ax, strict word 00004h ; b8 04 00 … … 4410 4413 cmp bh, 048h ; 80 ff 48 4411 4414 jbe short 03443h ; 76 33 4412 mov bx, 00 db2h ; bb b2 0d4415 mov bx, 00e14h ; bb 14 0e 4413 4416 mov cx, ds ; 8c d9 4414 4417 mov ax, strict word 00004h ; b8 04 00 … … 5252 5255 mov byte [es:bx], 000h ; 26 c6 07 00 5253 5256 jmp near 03612h ; e9 ae f9 5254 mov bx, 00 db2h ; bb b2 0d5257 mov bx, 00e14h ; bb 14 0e 5255 5258 mov cx, ds ; 8c d9 5256 5259 mov ax, strict word 00004h ; b8 04 00 … … 5349 5352 cmp ax, strict word 0004ah ; 3d 4a 00 5350 5353 jne near 03e4eh ; 0f 85 1e 01 5351 mov bx, 00 db2h ; bb b2 0d5354 mov bx, 00e14h ; bb 14 0e 5352 5355 mov cx, ds ; 8c d9 5353 5356 mov ax, strict word 00004h ; b8 04 00 … … 5447 5450 pop bp ; 5d 5448 5451 retn ; c3 5449 mov bx, 00 db2h ; bb b2 0d5452 mov bx, 00e14h ; bb 14 0e 5450 5453 mov cx, ds ; 8c d9 5451 5454 mov ax, strict word 00004h ; b8 04 00 … … 5528 5531 mov dx, ss ; 8c d2 5529 5532 lea ax, [bp-026h] ; 8d 46 da 5530 call 0a 090h ; e8 78 615533 call 0a140h ; e8 28 62 5531 5534 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5532 5535 mov ax, strict word 00011h ; b8 11 00 … … 5582 5585 jnc short 03fb7h ; 73 10 5583 5586 mov al, byte [bp+di-00825h] ; 8a 83 db f7 5584 cmp al, byte [di+00 dbah] ; 3a 85 ba 0d5587 cmp al, byte [di+00e1ch] ; 3a 85 1c 0e 5585 5588 je short 03fa1h ; 74 f0 5586 5589 mov ax, strict word 00005h ; b8 05 00 … … 5592 5595 jnc short 03fd1h ; 73 10 5593 5596 mov al, byte [bp+di-0081fh] ; 8a 83 e1 f7 5594 cmp al, byte [di+00 dc0h] ; 3a 85 c0 0d5597 cmp al, byte [di+00e22h] ; 3a 85 22 0e 5595 5598 je short 03fbbh ; 74 f0 5596 5599 mov ax, strict word 00006h ; b8 06 00 … … 5871 5874 cmp dx, ax ; 39 c2 5872 5875 je short 04355h ; 74 29 5873 mov bx, 00 db2h ; bb b2 0d5876 mov bx, 00e14h ; bb 14 0e 5874 5877 mov cx, ds ; 8c d9 5875 5878 mov ax, strict word 00004h ; b8 04 00 … … 5988 5991 xor dl, dl ; 30 d2 5989 5992 xor cx, cx ; 31 c9 5990 call 0 9ff0h ; e8 76 5b5993 call 0a0a0h ; e8 26 5c 5991 5994 xor bx, bx ; 31 db 5992 5995 add ax, si ; 01 f0 … … 5994 5997 mov bx, di ; 89 fb 5995 5998 xor cx, cx ; 31 c9 5996 call 0 9ff0h ; e8 69 5b5999 call 0a0a0h ; e8 19 5c 5997 6000 mov bx, ax ; 89 c3 5998 6001 mov ax, word [bp-010h] ; 8b 46 f0 … … 6029 6032 mov dx, ss ; 8c d2 6030 6033 lea ax, [bp-02eh] ; 8d 46 d2 6031 call 0a 090h ; e8 b2 5b6034 call 0a140h ; e8 62 5c 6032 6035 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 6033 6036 mov ax, word [bp-014h] ; 8b 46 ec … … 6093 6096 test al, al ; 84 c0 6094 6097 je near 043a1h ; 0f 84 13 fe 6095 mov bx, 00 db2h ; bb b2 0d6098 mov bx, 00e14h ; bb 14 0e 6096 6099 mov cx, ds ; 8c d9 6097 6100 mov ax, strict word 00004h ; b8 04 00 … … 6174 6177 mov word [bp+016h], bx ; 89 5e 16 6175 6178 jmp near 043a5h ; e9 37 fd 6176 mov bx, 00 db2h ; bb b2 0d6179 mov bx, 00e14h ; bb 14 0e 6177 6180 mov cx, ds ; 8c d9 6178 6181 mov ax, strict word 00004h ; b8 04 00 … … 6336 6339 mov dx, ss ; 8c d2 6337 6340 lea ax, [bp-02ch] ; 8d 46 d4 6338 call 0a 090h ; e8 17 586341 call 0a140h ; e8 c7 58 6339 6342 mov word [bp-02ch], strict word 00028h ; c7 46 d4 28 00 6340 6343 mov ax, word [bp-018h] ; 8b 46 e8 … … 6385 6388 test dl, dl ; 84 d2 6386 6389 je near 049cbh ; 0f 84 cb 00 6387 mov bx, 00 db2h ; bb b2 0d6390 mov bx, 00e14h ; bb 14 0e 6388 6391 mov cx, ds ; 8c d9 6389 6392 mov ax, strict word 00004h ; b8 04 00 … … 6669 6672 or byte [bp+01eh], 001h ; 80 4e 1e 01 6670 6673 jmp near 049deh ; e9 8f fd 6671 mov bx, 00 db2h ; bb b2 0d6674 mov bx, 00e14h ; bb 14 0e 6672 6675 mov cx, ds ; 8c d9 6673 6676 mov ax, strict word 00004h ; b8 04 00 … … 6699 6702 je short 04cb1h ; 74 21 6700 6703 mov dx, strict word 00001h ; ba 01 00 6701 mov bx, 00 db2h ; bb b2 0d6704 mov bx, 00e14h ; bb 14 0e 6702 6705 mov cx, ds ; 8c d9 6703 6706 mov ax, strict word 00004h ; b8 04 00 6704 6707 call 01a2ah ; e8 8c cd 6705 6708 imul dx, dx, strict byte 0000ah ; 6b d2 0a 6706 add dx, 00 dd8h ; 81 c2 d8 0d6709 add dx, 00e3ah ; 81 c2 3a 0e 6707 6710 push dx ; 52 6708 6711 push 004a6h ; 68 a6 04 … … 6724 6727 test al, al ; 84 c0 6725 6728 je short 04ce4h ; 74 1b 6726 mov bx, 00 db2h ; bb b2 0d6729 mov bx, 00e14h ; bb 14 0e 6727 6730 mov cx, ds ; 8c d9 6728 6731 mov ax, strict word 00004h ; b8 04 00 6729 6732 call 01a2ah ; e8 56 cd 6730 push 00 dech ; 68 ec 0d6733 push 00e4eh ; 68 4e 0e 6731 6734 push 004bah ; 68 ba 04 6732 6735 push strict byte 00004h ; 6a 04 … … 6736 6739 test dl, dl ; 84 d2 6737 6740 je short 04cf8h ; 74 10 6738 mov bx, 00 db2h ; bb b2 0d6741 mov bx, 00e14h ; bb 14 0e 6739 6742 mov cx, ds ; 8c d9 6740 6743 mov ax, strict word 00004h ; b8 04 00 6741 6744 call 01a2ah ; e8 37 cd 6742 push 00 df6h ; 68 f6 0d6745 push 00e58h ; 68 58 0e 6743 6746 jmp short 04cd7h ; eb df 6744 6747 test bl, 080h ; f6 c3 80 6745 6748 je short 04d0eh ; 74 11 6746 mov bx, 00 db2h ; bb b2 0d6749 mov bx, 00e14h ; bb 14 0e 6747 6750 mov cx, ds ; 8c d9 6748 6751 mov ax, strict word 00004h ; b8 04 00 6749 6752 call 01a2ah ; e8 22 cd 6750 6753 push si ; 56 6751 push 00 de2h ; 68 e2 0d6754 push 00e44h ; 68 44 0e 6752 6755 jmp short 04d1dh ; eb 0f 6753 mov bx, 00 db2h ; bb b2 0d6756 mov bx, 00e14h ; bb 14 0e 6754 6757 mov cx, ds ; 8c d9 6755 6758 mov ax, strict word 00004h ; b8 04 00 6756 6759 call 01a2ah ; e8 11 cd 6757 6760 push si ; 56 6758 push 00 dd8h ; 68 d8 0d6761 push 00e3ah ; 68 3a 0e 6759 6762 push 004cfh ; 68 cf 04 6760 6763 push strict byte 00004h ; 6a 04 … … 6782 6785 push dx ; 52 6783 6786 mov dx, ax ; 89 c2 6784 mov bx, 00 db2h ; bb b2 0d6787 mov bx, 00e14h ; bb 14 0e 6785 6788 mov cx, ds ; 8c d9 6786 6789 mov ax, strict word 00004h ; b8 04 00 … … 6857 6860 mov byte [bp-00ah], al ; 88 46 f6 6858 6861 mov byte [bp-00ch], al ; 88 46 f4 6859 mov bx, 00 db2h ; bb b2 0d6862 mov bx, 00e14h ; bb 14 0e 6860 6863 mov cx, ds ; 8c d9 6861 6864 mov ax, strict word 00004h ; b8 04 00 … … 7396 7399 test al, al ; 84 c0 7397 7400 jne short 05307h ; 75 19 7398 mov bx, 00 db2h ; bb b2 0d7401 mov bx, 00e14h ; bb 14 0e 7399 7402 mov cx, ds ; 8c d9 7400 7403 mov ax, strict word 00004h ; b8 04 00 … … 7713 7716 cmp byte [bp-00ch], 058h ; 80 7e f4 58 7714 7717 jbe short 0567bh ; 76 1e 7715 mov bx, 00 db2h ; bb b2 0d7718 mov bx, 00e14h ; bb 14 0e 7716 7719 mov cx, ds ; 8c d9 7717 7720 mov ax, strict word 00004h ; b8 04 00 … … 7729 7732 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 7730 7733 imul bx, bx, strict byte 0000ah ; 6b db 0a 7731 mov dl, byte [bx+00e 06h] ; 8a 97 060e7732 mov ax, word [bx+00e 06h] ; 8b 87 060e7734 mov dl, byte [bx+00e68h] ; 8a 97 68 0e 7735 mov ax, word [bx+00e68h] ; 8b 87 68 0e 7733 7736 jmp near 05722h ; e9 8e 00 7734 7737 test AL, strict byte 004h ; a8 04 … … 7736 7739 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 7737 7740 imul bx, bx, strict byte 0000ah ; 6b db 0a 7738 mov dl, byte [bx+00e 04h] ; 8a 97 040e7739 mov ax, word [bx+00e 04h] ; 8b 87 040e7741 mov dl, byte [bx+00e66h] ; 8a 97 66 0e 7742 mov ax, word [bx+00e66h] ; 8b 87 66 0e 7740 7743 jmp near 05722h ; e9 78 00 7741 7744 mov al, byte [bp-004h] ; 8a 46 fc … … 7756 7759 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 7757 7760 imul bx, bx, strict byte 0000ah ; 6b db 0a 7758 movzx ax, byte [bx+00e 08h] ; 0f b6 87 080e7761 movzx ax, byte [bx+00e6ah] ; 0f b6 87 6a 0e 7759 7762 movzx dx, byte [bp-008h] ; 0f b6 56 f8 7760 7763 test dx, ax ; 85 c2 7761 7764 je short 056ech ; 74 0a 7762 mov dl, byte [bx+00e 00h] ; 8a 97 000e7763 mov ax, word [bx+00e 00h] ; 8b 87 000e7765 mov dl, byte [bx+00e62h] ; 8a 97 62 0e 7766 mov ax, word [bx+00e62h] ; 8b 87 62 0e 7764 7767 jmp short 056f4h ; eb 08 7765 mov dl, byte [bx+00e 02h] ; 8a 97 020e7766 mov ax, word [bx+00e 02h] ; 8b 87 020e7768 mov dl, byte [bx+00e64h] ; 8a 97 64 0e 7769 mov ax, word [bx+00e64h] ; 8b 87 64 0e 7767 7770 shr ax, 008h ; c1 e8 08 7768 7771 mov byte [bp-00ch], al ; 88 46 f4 … … 7770 7773 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 7771 7774 imul bx, bx, strict byte 0000ah ; 6b db 0a 7772 movzx ax, byte [bx+00e 08h] ; 0f b6 87 080e7775 movzx ax, byte [bx+00e6ah] ; 0f b6 87 6a 0e 7773 7776 movzx dx, byte [bp-008h] ; 0f b6 56 f8 7774 7777 test dx, ax ; 85 c2 7775 7778 je short 0571ah ; 74 0a 7776 mov dl, byte [bx+00e 02h] ; 8a 97 020e7777 mov ax, word [bx+00e 02h] ; 8b 87 020e7779 mov dl, byte [bx+00e64h] ; 8a 97 64 0e 7780 mov ax, word [bx+00e64h] ; 8b 87 64 0e 7778 7781 jmp short 05722h ; eb 08 7779 mov dl, byte [bx+00e 00h] ; 8a 97 000e7780 mov ax, word [bx+00e 00h] ; 8b 87 000e7782 mov dl, byte [bx+00e62h] ; 8a 97 62 0e 7783 mov ax, word [bx+00e62h] ; 8b 87 62 0e 7781 7784 shr ax, 008h ; c1 e8 08 7782 7785 mov byte [bp-00ch], al ; 88 46 f4 … … 7785 7788 test dl, dl ; 84 d2 7786 7789 jne short 05748h ; 75 16 7787 mov bx, 00 db2h ; bb b2 0d7790 mov bx, 00e14h ; bb 14 0e 7788 7791 mov cx, ds ; 8c d9 7789 7792 mov ax, strict word 00004h ; b8 04 00 … … 8139 8142 or ah, 080h ; 80 cc 80 8140 8143 jmp near 0595bh ; e9 d4 fe 8141 mov bx, 00 db2h ; bb b2 0d8144 mov bx, 00e14h ; bb 14 0e 8142 8145 mov cx, ds ; 8c d9 8143 8146 mov ax, strict word 00004h ; b8 04 00 … … 8150 8153 call 01a6bh ; e8 ca bf 8151 8154 add sp, strict byte 00006h ; 83 c4 06 8152 mov bx, 00 db2h ; bb b2 0d8155 mov bx, 00e14h ; bb 14 0e 8153 8156 mov cx, ds ; 8c d9 8154 8157 mov ax, strict word 00004h ; b8 04 00 … … 8185 8188 mov dx, word [bp+00ch] ; 8b 56 0c 8186 8189 mov si, strict word 00020h ; be 20 00 8187 call 0a 070h ; e8 75 458190 call 0a120h ; e8 25 46 8188 8191 test ax, ax ; 85 c0 8189 8192 jne short 05b0bh ; 75 0c … … 8223 8226 mov bx, strict word 0003fh ; bb 3f 00 8224 8227 xor cx, cx ; 31 c9 8225 call 0 9ff0h ; e8 9c 448228 call 0a0a0h ; e8 4c 45 8226 8229 mov bx, ax ; 89 c3 8227 8230 mov cx, dx ; 89 d1 8228 8231 mov ax, word [bp-004h] ; 8b 46 fc 8229 8232 mov dx, si ; 89 f2 8230 call 0a0 30h ; e8 d0 448233 call 0a0e0h ; e8 80 45 8231 8234 mov word [es:di+002h], ax ; 26 89 45 02 8232 8235 cmp ax, 00400h ; 3d 00 04 … … 8385 8388 test ax, ax ; 85 c0 8386 8389 jne short 05cf4h ; 75 23 8387 mov bx, 00 db2h ; bb b2 0d8390 mov bx, 00e14h ; bb 14 0e 8388 8391 mov cx, ds ; 8c d9 8389 8392 mov ax, strict word 00004h ; b8 04 00 … … 8414 8417 cmp ax, dx ; 39 d0 8415 8418 jbe short 05d4fh ; 76 2e 8416 mov bx, 00 db2h ; bb b2 0d8419 mov bx, 00e14h ; bb 14 0e 8417 8420 mov cx, ds ; 8c d9 8418 8421 mov ax, strict word 00004h ; b8 04 00 … … 8452 8455 mov bx, cx ; 89 cb 8453 8456 xor cx, cx ; 31 c9 8454 call 0 9ff0h ; e8 67 428457 call 0a0a0h ; e8 17 43 8455 8458 xor bx, bx ; 31 db 8456 8459 add ax, word [bp-008h] ; 03 46 f8 … … 8458 8461 mov bx, word [bp-00ah] ; 8b 5e f6 8459 8462 xor cx, cx ; 31 c9 8460 call 0 9ff0h ; e8 58 428463 call 0a0a0h ; e8 08 43 8461 8464 xor bx, bx ; 31 db 8462 8465 add ax, word [bp-006h] ; 03 46 fa … … 8514 8517 test dl, dl ; 84 d2 8515 8518 je near 05c52h ; 0f 84 0a fe 8516 mov bx, 00 db2h ; bb b2 0d8519 mov bx, 00e14h ; bb 14 0e 8517 8520 mov cx, ds ; 8c d9 8518 8521 mov ax, strict word 00004h ; b8 04 00 … … 8532 8535 or ah, 00ch ; 80 cc 0c 8533 8536 jmp near 05fc8h ; e9 51 01 8534 mov bx, 00 db2h ; bb b2 0d8537 mov bx, 00e14h ; bb 14 0e 8535 8538 mov cx, ds ; 8c d9 8536 8539 mov ax, strict word 00004h ; b8 04 00 … … 8618 8621 mov bx, word [bp-008h] ; 8b 5e f8 8619 8622 xor cx, cx ; 31 c9 8620 call 0 9ff0h ; e8 90 408623 call 0a0a0h ; e8 40 41 8621 8624 mov bx, word [bp-006h] ; 8b 5e fa 8622 8625 xor cx, cx ; 31 c9 8623 call 0 9ff0h ; e8 88 408626 call 0a0a0h ; e8 38 41 8624 8627 mov word [bp-010h], ax ; 89 46 f0 8625 8628 mov word [bp-00eh], dx ; 89 56 f2 … … 8631 8634 mov word [bp+016h], ax ; 89 46 16 8632 8635 jmp near 05c56h ; e9 d4 fc 8633 mov bx, 00 db2h ; bb b2 0d8636 mov bx, 00e14h ; bb 14 0e 8634 8637 mov cx, ds ; 8c d9 8635 8638 mov ax, strict word 00004h ; b8 04 00 … … 8644 8647 add sp, strict byte 00008h ; 83 c4 08 8645 8648 jmp near 05c52h ; e9 ad fc 8646 mov bx, 00 db2h ; bb b2 0d8649 mov bx, 00e14h ; bb 14 0e 8647 8650 mov cx, ds ; 8c d9 8648 8651 mov ax, strict word 00004h ; b8 04 00 … … 8758 8761 xor bx, bx ; 31 db 8759 8762 mov si, strict word 00020h ; be 20 00 8760 call 0a 080h ; e8 94 3f8763 call 0a130h ; e8 44 40 8761 8764 mov word [bp-00eh], bx ; 89 5e f2 8762 8765 mov bx, word [es:di+008h] ; 26 8b 5d 08 … … 8783 8786 cmp dx, word [es:di+036h] ; 26 3b 55 36 8784 8787 jc short 06156h ; 72 23 8785 mov bx, 00 db2h ; bb b2 0d8788 mov bx, 00e14h ; bb 14 0e 8786 8789 mov cx, ds ; 8c d9 8787 8790 mov ax, strict word 00004h ; b8 04 00 … … 8839 8842 test dl, dl ; 84 d2 8840 8843 je near 0648dh ; 0f 84 a8 02 8841 mov bx, 00 db2h ; bb b2 0d8844 mov bx, 00e14h ; bb 14 0e 8842 8845 mov cx, ds ; 8c d9 8843 8846 mov ax, strict word 00004h ; b8 04 00 … … 8909 8912 mov bx, word [bp-00eh] ; 8b 5e f2 8910 8913 mov si, strict word 00020h ; be 20 00 8911 call 0a 070h ; e8 aa 3d8914 call 0a120h ; e8 5a 3e 8912 8915 mov bx, di ; 89 fb 8913 8916 mov word [es:bx+014h], dx ; 26 89 57 14 … … 9085 9088 or byte [bp+01ch], 001h ; 80 4e 1c 01 9086 9089 jmp short 064a0h ; eb c4 9087 mov bx, 00 db2h ; bb b2 0d9090 mov bx, 00e14h ; bb 14 0e 9088 9091 mov cx, ds ; 8c d9 9089 9092 mov ax, strict word 00004h ; b8 04 00 … … 9266 9269 mov bx, strict word 0000fh ; bb 0f 00 9267 9270 xor cx, cx ; 31 c9 9268 call 0a0 30h ; e8 d1 399271 call 0a0e0h ; e8 81 3a 9269 9272 mov cx, ax ; 89 c1 9270 9273 mov bx, dx ; 89 d3 … … 9424 9427 mov word [bp+00ch], ax ; 89 46 0c 9425 9428 jmp near 06827h ; e9 2b 00 9426 mov bx, 00 db2h ; bb b2 0d9429 mov bx, 00e14h ; bb 14 0e 9427 9430 mov cx, ds ; 8c d9 9428 9431 mov ax, strict word 00004h ; b8 04 00 … … 9611 9614 retf ; cb 9612 9615 jmp near 06827h ; e9 50 fe 9613 mov bx, 00 db2h ; bb b2 0d9616 mov bx, 00e14h ; bb 14 0e 9614 9617 mov cx, ds ; 8c d9 9615 9618 mov ax, strict word 00004h ; b8 04 00 … … 9651 9654 or byte [bp+018h], 001h ; 80 4e 18 01 9652 9655 jmp near 06827h ; e9 da fd 9653 mov bx, 00 db2h ; bb b2 0d9656 mov bx, 00e14h ; bb 14 0e 9654 9657 mov cx, ds ; 8c d9 9655 9658 mov ax, strict word 00004h ; b8 04 00 … … 9967 9970 mov word [bp+014h], dx ; 89 56 14 9968 9971 jmp short 06e0fh ; eb 2a 9969 mov bx, 00 db2h ; bb b2 0d9972 mov bx, 00e14h ; bb 14 0e 9970 9973 mov cx, ds ; 8c d9 9971 9974 mov ax, strict word 00004h ; b8 04 00 … … 10587 10590 je short 07443h ; 74 0e 10588 10591 push 00900h ; 68 00 09 10589 push 011 7ah ; 68 7a1110592 push 011dch ; 68 dc 11 10590 10593 push strict byte 00007h ; 6a 07 10591 10594 call 01a6bh ; e8 2b a6 … … 10667 10670 je short 074d3h ; 74 0e 10668 10671 push 0090ah ; 68 0a 09 10669 push 011 7ah ; 68 7a1110672 push 011dch ; 68 dc 11 10670 10673 push strict byte 00007h ; 6a 07 10671 10674 call 01a6bh ; e8 9b a5 … … 12121 12124 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12122 12125 jne short 08261h ; 75 1f 12123 mov bx, 00 db2h ; bb b2 0d12126 mov bx, 00e14h ; bb 14 0e 12124 12127 mov cx, ds ; 8c d9 12125 12128 mov ax, strict word 00004h ; b8 04 00 … … 12276 12279 mov dx, ss ; 8c d2 12277 12280 lea ax, [bp-046h] ; 8d 46 ba 12278 call 0a 090h ; e8 d9 1c12281 call 0a140h ; e8 89 1d 12279 12282 mov byte [bp-046h], 09eh ; c6 46 ba 9e 12280 12283 mov byte [bp-045h], 010h ; c6 46 bb 10 … … 12335 12338 cmp bx, 00200h ; 81 fb 00 02 12336 12339 je short 0847ch ; 74 20 12337 mov bx, 00 db2h ; bb b2 0d12340 mov bx, 00e14h ; bb 14 0e 12338 12341 mov cx, ds ; 8c d9 12339 12342 mov ax, strict word 00004h ; b8 04 00 … … 12401 12404 mov dx, word [bp-016h] ; 8b 56 ea 12402 12405 mov si, strict word 0000ch ; be 0c 00 12403 call 0a 070h ; e8 76 1b12406 call 0a120h ; e8 26 1c 12404 12407 mov word [bp-018h], ax ; 89 46 e8 12405 12408 mov word [bp-014h], bx ; 89 5e ec … … 12421 12424 mov dx, word [bp-016h] ; 8b 56 ea 12422 12425 mov si, strict word 00006h ; be 06 00 12423 call 0a 070h ; e8 36 1b12426 call 0a120h ; e8 e6 1b 12424 12427 mov si, word [bp-020h] ; 8b 76 e0 12425 12428 add si, dx ; 01 d6 … … 12439 12442 mov dx, si ; 89 f2 12440 12443 mov si, strict word 00008h ; be 08 00 12441 call 0a 070h ; e8 06 1b12444 call 0a120h ; e8 b6 1b 12442 12445 mov word [bp-022h], bx ; 89 5e de 12443 12446 mov word [bp-02ch], cx ; 89 4e d4 … … 12448 12451 mov dx, word [bp-02ah] ; 8b 56 d6 12449 12452 mov si, strict word 00010h ; be 10 00 12450 call 0a 070h ; e8 eb 1a12453 call 0a120h ; e8 9b 1b 12451 12454 mov si, word [bp-01ah] ; 8b 76 e6 12452 12455 add si, dx ; 01 d6 … … 12472 12475 mov dx, word [bp-016h] ; 8b 56 ea 12473 12476 mov si, strict word 0000bh ; be 0b 00 12474 call 0a 070h ; e8 a3 1a12477 call 0a120h ; e8 53 1b 12475 12478 mov si, dx ; 89 d6 12476 12479 mov dx, cx ; 89 ca … … 12513 12516 mov word [es:bx+02ch], si ; 26 89 77 2c 12514 12517 mov word [es:bx+032h], si ; 26 89 77 32 12515 mov bx, 00 db2h ; bb b2 0d12518 mov bx, 00e14h ; bb 14 0e 12516 12519 mov cx, ds ; 8c d9 12517 12520 mov ax, strict word 00004h ; b8 04 00 … … 12563 12566 inc byte [bp-00ch] ; fe 46 f4 12564 12567 jmp near 08770h ; e9 8b 00 12565 mov bx, 00 db2h ; bb b2 0d12568 mov bx, 00e14h ; bb 14 0e 12566 12569 mov cx, ds ; 8c d9 12567 12570 mov ax, strict word 00004h ; b8 04 00 … … 12660 12663 pop bp ; 5d 12661 12664 retn ; c3 12662 _scsi_init: ; 0xf8802 LB 0x66 12665 scsi_pci_init_: ; 0xf8802 LB 0x6c 12666 push bp ; 55 12667 mov bp, sp ; 89 e5 12668 push bx ; 53 12669 push cx ; 51 12670 push si ; 56 12671 push di ; 57 12672 mov si, ax ; 89 c6 12673 mov di, dx ; 89 d7 12674 call 09f06h ; e8 f6 16 12675 mov dx, ax ; 89 c2 12676 cmp ax, strict word 0ffffh ; 3d ff ff 12677 jne short 08834h ; 75 1d 12678 mov bx, 00e14h ; bb 14 0e 12679 mov cx, ds ; 8c d9 12680 mov ax, strict word 00004h ; b8 04 00 12681 call 01a2ah ; e8 08 92 12682 push di ; 57 12683 push si ; 56 12684 push 00c73h ; 68 73 0c 12685 push 00c81h ; 68 81 0c 12686 push strict byte 00004h ; 6a 04 12687 call 01a6bh ; e8 3c 92 12688 add sp, strict byte 0000ah ; 83 c4 0a 12689 jmp short 08865h ; eb 31 12690 mov bx, 00e14h ; bb 14 0e 12691 mov cx, ds ; 8c d9 12692 mov ax, strict word 00004h ; b8 04 00 12693 call 01a2ah ; e8 eb 91 12694 push dx ; 52 12695 push di ; 57 12696 push si ; 56 12697 push 00c73h ; 68 73 0c 12698 push 00caah ; 68 aa 0c 12699 push strict byte 00004h ; 6a 04 12700 call 01a6bh ; e8 1e 92 12701 add sp, strict byte 0000ch ; 83 c4 0c 12702 movzx si, dl ; 0f b6 f2 12703 mov ax, dx ; 89 d0 12704 shr ax, 008h ; c1 e8 08 12705 xor ah, ah ; 30 e4 12706 mov cx, strict word 00007h ; b9 07 00 12707 mov bx, strict word 00004h ; bb 04 00 12708 mov dx, si ; 89 f2 12709 call 09f98h ; e8 33 17 12710 lea sp, [bp-008h] ; 8d 66 f8 12711 pop di ; 5f 12712 pop si ; 5e 12713 pop cx ; 59 12714 pop bx ; 5b 12715 pop bp ; 5d 12716 retn ; c3 12717 _scsi_init: ; 0xf886e LB 0x81 12663 12718 push bp ; 55 12664 12719 mov bp, sp ; 89 e5 12665 12720 mov dx, strict word 0000eh ; ba 0e 00 12666 12721 mov ax, strict word 00040h ; b8 40 00 12667 call 01765h ; e8 57 8f12722 call 01765h ; e8 eb 8e 12668 12723 mov bx, 00122h ; bb 22 01 12669 12724 mov es, ax ; 8e c0 … … 12676 12731 ; sub ah, ah ; 2a e4 12677 12732 cmp AL, strict byte 055h ; 3c 55 12678 jne short 088 32h ; 75 0c12733 jne short 088a7h ; 75 15 12679 12734 xor al, al ; 30 c0 12680 12735 mov dx, 00433h ; ba 33 04 12681 12736 out DX, AL ; ee 12682 12737 mov ax, 00430h ; b8 30 04 12683 call 08380h ; e8 4e fb 12738 call 08380h ; e8 e2 fa 12739 mov dx, 01040h ; ba 40 10 12740 mov ax, 0104bh ; b8 4b 10 12741 call 08802h ; e8 5b ff 12684 12742 mov AL, strict byte 055h ; b0 55 12685 12743 mov dx, 00436h ; ba 36 04 … … 12689 12747 ; sub ah, ah ; 2a e4 12690 12748 cmp AL, strict byte 055h ; 3c 55 12691 jne short 088 4bh ; 75 0c12749 jne short 088c9h ; 75 15 12692 12750 xor al, al ; 30 c0 12693 12751 mov dx, 00437h ; ba 37 04 12694 12752 out DX, AL ; ee 12695 12753 mov ax, 00434h ; b8 34 04 12696 call 08380h ; e8 35 fb 12754 call 08380h ; e8 c0 fa 12755 mov dx, strict word 00030h ; ba 30 00 12756 mov ax, 01000h ; b8 00 10 12757 call 08802h ; e8 39 ff 12697 12758 mov AL, strict byte 055h ; b0 55 12698 12759 mov dx, 0043ah ; ba 3a 04 … … 12702 12763 ; sub ah, ah ; 2a e4 12703 12764 cmp AL, strict byte 055h ; 3c 55 12704 jne short 088 64h ; 75 0c12765 jne short 088ebh ; 75 15 12705 12766 xor al, al ; 30 c0 12706 12767 mov dx, 0043bh ; ba 3b 04 12707 12768 out DX, AL ; ee 12708 12769 mov ax, 00438h ; b8 38 04 12709 call 08380h ; e8 1c fb 12770 call 08380h ; e8 9e fa 12771 mov dx, strict word 00054h ; ba 54 00 12772 mov ax, 01000h ; b8 00 10 12773 call 08802h ; e8 17 ff 12710 12774 mov sp, bp ; 89 ec 12711 12775 pop bp ; 5d 12712 12776 retn ; c3 12713 ahci_ctrl_extract_bits_: ; 0xf88 68LB 0x1b12777 ahci_ctrl_extract_bits_: ; 0xf88ef LB 0x1b 12714 12778 push si ; 56 12715 12779 push bp ; 55 … … 12719 12783 and dx, cx ; 21 ca 12720 12784 movzx cx, byte [bp+006h] ; 0f b6 4e 06 12721 jcxz 08 87eh ; e3 0612785 jcxz 08905h ; e3 06 12722 12786 shr dx, 1 ; d1 ea 12723 12787 rcr ax, 1 ; d1 d8 12724 loop 088 78h ; e2 fa12788 loop 088ffh ; e2 fa 12725 12789 pop bp ; 5d 12726 12790 pop si ; 5e 12727 12791 retn 00002h ; c2 02 00 12728 ahci_addr_to_phys_: ; 0xf8 883LB 0x1e12792 ahci_addr_to_phys_: ; 0xf890a LB 0x1e 12729 12793 push bx ; 53 12730 12794 push cx ; 51 … … 12737 12801 sal ax, 1 ; d1 e0 12738 12802 rcl dx, 1 ; d1 d2 12739 loop 08 891h ; e2 fa12803 loop 08918h ; e2 fa 12740 12804 xor cx, cx ; 31 c9 12741 12805 add ax, bx ; 01 d8 … … 12745 12809 pop bx ; 5b 12746 12810 retn ; c3 12747 ahci_port_cmd_sync_: ; 0xf8 8a1LB 0x14b12811 ahci_port_cmd_sync_: ; 0xf8928 LB 0x14b 12748 12812 push bp ; 55 12749 12813 mov bp, sp ; 89 e5 … … 12760 12824 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12761 12825 cmp ah, 0ffh ; 80 fc ff 12762 je near 08 9e4h ; 0f 84 20 0112826 je near 08a6bh ; 0f 84 20 01 12763 12827 movzx dx, byte [es:si+00263h] ; 26 0f b6 94 63 02 12764 12828 xor di, di ; 31 ff … … 12772 12836 lea ax, [si+00080h] ; 8d 84 80 00 12773 12837 mov dx, cx ; 89 ca 12774 call 08 883h ; e8 96 ff12838 call 0890ah ; e8 96 ff 12775 12839 mov es, cx ; 8e c1 12776 12840 mov word [es:si+008h], ax ; 26 89 44 08 … … 12835 12899 xchg dx, ax ; 92 12836 12900 test dh, 040h ; f6 c6 40 12837 jne short 08 97ah ; 75 0412901 jne short 08a01h ; 75 04 12838 12902 test AL, strict byte 001h ; a8 01 12839 je short 08 97eh ; 74 0412903 je short 08a05h ; 74 04 12840 12904 mov AL, strict byte 001h ; b0 01 12841 jmp short 08 980h ; eb 0212905 jmp short 08a07h ; eb 02 12842 12906 xor al, al ; 30 c0 12843 12907 test al, al ; 84 c0 12844 je short 089 4eh ; 74 ca12908 je short 089d5h ; 74 ca 12845 12909 movzx di, byte [bp-008h] ; 0f b6 7e f8 12846 12910 sal di, 007h ; c1 e7 07 … … 12896 12960 pop bp ; 5d 12897 12961 retn ; c3 12898 ahci_cmd_data_: ; 0xf8 9ecLB 0x26212962 ahci_cmd_data_: ; 0xf8a73 LB 0x262 12899 12963 push bp ; 55 12900 12964 mov bp, sp ; 89 e5 … … 12921 12985 mov ax, 00080h ; b8 80 00 12922 12986 mov dx, word [bp-00ah] ; 8b 56 f6 12923 call 0a 090h ; e8 661612987 call 0a140h ; e8 8f 16 12924 12988 mov es, [bp-00ah] ; 8e 46 f6 12925 12989 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 12939 13003 mov dx, word [es:si] ; 26 8b 14 12940 13004 mov si, strict word 00008h ; be 08 00 12941 call 0a 070h ; e8 021613005 call 0a120h ; e8 2b 16 12942 13006 mov es, [bp-00ah] ; 8e 46 f6 12943 13007 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 12950 13014 mov dx, word [es:si] ; 26 8b 14 12951 13015 mov si, strict word 00010h ; be 10 00 12952 call 0a 070h ; e8 dc 1513016 call 0a120h ; e8 05 16 12953 13017 mov es, [bp-00ah] ; 8e 46 f6 12954 13018 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 12962 13026 mov dx, word [es:si] ; 26 8b 14 12963 13027 mov si, strict word 00018h ; be 18 00 12964 call 0a 070h ; e8 b01513028 call 0a120h ; e8 d9 15 12965 13029 mov es, [bp-00ah] ; 8e 46 f6 12966 13030 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 12973 13037 mov dx, word [es:si] ; 26 8b 14 12974 13038 mov si, strict word 00020h ; be 20 00 12975 call 0a 070h ; e8 8a1513039 call 0a120h ; e8 b3 15 12976 13040 mov es, [bp-00ah] ; 8e 46 f6 12977 13041 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 12984 13048 mov dx, word [es:si] ; 26 8b 14 12985 13049 mov si, strict word 00028h ; be 28 00 12986 call 0a 070h ; e8 641513050 call 0a120h ; e8 8d 15 12987 13051 mov es, [bp-00ah] ; 8e 46 f6 12988 13052 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 12998 13062 mov bx, word [bp-010h] ; 8b 5e f0 12999 13063 xor cx, cx ; 31 c9 13000 call 0 9ff0h ; e8 af1413064 call 0a0a0h ; e8 d8 14 13001 13065 push dx ; 52 13002 13066 push ax ; 50 … … 13008 13072 mov ax, 0026ah ; b8 6a 02 13009 13073 mov dx, word [bp-00ah] ; 8b 56 f6 13010 call 09f 43h ; e8 e6 1313074 call 09fefh ; e8 0b 14 13011 13075 mov es, [bp-00ah] ; 8e 46 f6 13012 13076 mov ax, word [es:di+0027eh] ; 26 8b 85 7e 02 … … 13029 13093 mov ax, word [es:bx+020h] ; 26 8b 47 20 13030 13094 test ax, ax ; 85 c0 13031 je short 08 bebh ; 74 3913095 je short 08c72h ; 74 39 13032 13096 dec ax ; 48 13033 13097 mov es, [bp-00ah] ; 8e 46 f6 … … 13045 13109 mov al, byte [bp-008h] ; 8a 46 f8 13046 13110 cmp AL, strict byte 035h ; 3c 35 13047 jne short 08 bf8h ; 75 0613111 jne short 08c7fh ; 75 06 13048 13112 mov byte [bp-008h], 040h ; c6 46 f8 40 13049 jmp short 08c 0fh ; eb 1713113 jmp short 08c96h ; eb 17 13050 13114 cmp AL, strict byte 0a0h ; 3c a0 13051 jne short 08c 0bh ; 75 0f13115 jne short 08c92h ; 75 0f 13052 13116 or byte [bp-008h], 020h ; 80 4e f8 20 13053 13117 les bx, [bp-00eh] ; c4 5e f2 13054 13118 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 13055 jmp short 08c 0fh ; eb 0413119 jmp short 08c96h ; eb 04 13056 13120 mov byte [bp-008h], 000h ; c6 46 f8 00 13057 13121 or byte [bp-008h], 005h ; 80 4e f8 05 … … 13059 13123 mov ax, word [bp-00eh] ; 8b 46 f2 13060 13124 mov dx, word [bp-00ch] ; 8b 56 f4 13061 call 08 8a1h ; e8 81 fc13125 call 08928h ; e8 81 fc 13062 13126 mov cx, word [bp-00ch] ; 8b 4e f4 13063 13127 mov bx, word [bp-00eh] ; 8b 5e f2 … … 13066 13130 add ax, 0026ah ; 05 6a 02 13067 13131 mov dx, cx ; 89 ca 13068 call 0 9fbch ; e8 871313132 call 0a068h ; e8 ac 13 13069 13133 mov es, cx ; 8e c1 13070 13134 mov al, byte [es:bx+003h] ; 26 8a 47 03 13071 13135 test al, al ; 84 c0 13072 je short 08c 44h ; 74 0513136 je short 08ccbh ; 74 05 13073 13137 mov ax, strict word 00004h ; b8 04 00 13074 jmp short 08c 46h ; eb 0213138 jmp short 08ccdh ; eb 02 13075 13139 xor ah, ah ; 30 e4 13076 13140 lea sp, [bp-006h] ; 8d 66 fa … … 13080 13144 pop bp ; 5d 13081 13145 retn ; c3 13082 ahci_port_deinit_current_: ; 0xf8c 4eLB 0x17f13146 ahci_port_deinit_current_: ; 0xf8cd5 LB 0x17f 13083 13147 push bp ; 55 13084 13148 mov bp, sp ; 89 e5 … … 13095 13159 mov byte [bp-00ah], al ; 88 46 f6 13096 13160 cmp AL, strict byte 0ffh ; 3c ff 13097 je near 08 dc4h ; 0f 84 52 0113161 je near 08e4bh ; 0f 84 52 01 13098 13162 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13099 13163 sal ax, 007h ; c1 e0 07 … … 13138 13202 xchg dx, ax ; 92 13139 13203 test ax, 0c011h ; a9 11 c0 13140 je short 08 cd2h ; 74 0413204 je short 08d59h ; 74 04 13141 13205 mov AL, strict byte 001h ; b0 01 13142 jmp short 08 cd4h ; eb 0213206 jmp short 08d5bh ; eb 02 13143 13207 xor al, al ; 30 c0 13144 13208 cmp AL, strict byte 001h ; 3c 01 13145 je short 08 ca6h ; 74 ce13209 je short 08d2dh ; 74 ce 13146 13210 mov cx, strict word 00020h ; b9 20 00 13147 13211 xor bx, bx ; 31 db 13148 13212 mov ax, di ; 89 f8 13149 13213 mov dx, word [bp-00ch] ; 8b 56 f4 13150 call 0a 090h ; e8 ab1313214 call 0a140h ; e8 d4 13 13151 13215 lea ax, [di+00080h] ; 8d 85 80 00 13152 13216 mov cx, strict word 00040h ; b9 40 00 13153 13217 xor bx, bx ; 31 db 13154 13218 mov dx, word [bp-00ch] ; 8b 56 f4 13155 call 0a 090h ; e8 9c1313219 call 0a140h ; e8 c5 13 13156 13220 lea ax, [di+00200h] ; 8d 85 00 02 13157 13221 mov cx, strict word 00060h ; b9 60 00 13158 13222 xor bx, bx ; 31 db 13159 13223 mov dx, word [bp-00ch] ; 8b 56 f4 13160 call 0a 090h ; e8 8d1313224 call 0a140h ; e8 b6 13 13161 13225 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13162 13226 sal ax, 007h ; c1 e0 07 … … 13262 13326 pop bp ; 5d 13263 13327 retn ; c3 13264 ahci_port_init_: ; 0xf8 dcdLB 0x24a13328 ahci_port_init_: ; 0xf8e54 LB 0x24a 13265 13329 push bp ; 55 13266 13330 mov bp, sp ; 89 e5 … … 13272 13336 mov word [bp-00ah], dx ; 89 56 f6 13273 13337 mov byte [bp-008h], bl ; 88 5e f8 13274 call 08c 4eh ; e8 6d fe13338 call 08cd5h ; e8 6d fe 13275 13339 movzx ax, bl ; 0f b6 c3 13276 13340 sal ax, 007h ; c1 e0 07 … … 13319 13383 xchg dx, ax ; 92 13320 13384 test ax, 0c011h ; a9 11 c0 13321 je short 08e 50h ; 74 0413385 je short 08ed7h ; 74 04 13322 13386 mov AL, strict byte 001h ; b0 01 13323 jmp short 08e 52h ; eb 0213387 jmp short 08ed9h ; eb 02 13324 13388 xor al, al ; 30 c0 13325 13389 cmp AL, strict byte 001h ; 3c 01 13326 je short 08e 1ch ; 74 c613390 je short 08ea3h ; 74 c6 13327 13391 mov cx, strict word 00020h ; b9 20 00 13328 13392 xor bx, bx ; 31 db 13329 13393 mov ax, si ; 89 f0 13330 13394 mov dx, word [bp-00ah] ; 8b 56 f6 13331 call 0a 090h ; e8 2d1213395 call 0a140h ; e8 56 12 13332 13396 lea ax, [si+00080h] ; 8d 84 80 00 13333 13397 mov cx, strict word 00040h ; b9 40 00 13334 13398 xor bx, bx ; 31 db 13335 13399 mov dx, word [bp-00ah] ; 8b 56 f6 13336 call 0a 090h ; e8 1e1213400 call 0a140h ; e8 47 12 13337 13401 lea di, [si+00200h] ; 8d bc 00 02 13338 13402 mov cx, strict word 00060h ; b9 60 00 … … 13340 13404 mov ax, di ; 89 f8 13341 13405 mov dx, word [bp-00ah] ; 8b 56 f6 13342 call 0a 090h ; e8 0d1213406 call 0a140h ; e8 36 12 13343 13407 movzx bx, byte [bp-008h] ; 0f b6 5e f8 13344 13408 sal bx, 007h ; c1 e3 07 … … 13357 13421 mov ax, di ; 89 f8 13358 13422 mov dx, word [bp-00ah] ; 8b 56 f6 13359 call 08 883h ; e8 d3 f913423 call 0890ah ; e8 d3 f9 13360 13424 mov es, [bp-00ah] ; 8e 46 f6 13361 13425 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13402 13466 mov ax, si ; 89 f0 13403 13467 mov dx, word [bp-00ah] ; 8b 56 f6 13404 call 08 883h ; e8 67 f913468 call 0890ah ; e8 67 f9 13405 13469 mov es, [bp-00ah] ; 8e 46 f6 13406 13470 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13507 13571 pop bp ; 5d 13508 13572 retn ; c3 13509 @ahci_read_sectors: ; 0xf90 17LB 0xa613573 @ahci_read_sectors: ; 0xf909e LB 0xa6 13510 13574 push bp ; 55 13511 13575 mov bp, sp ; 89 e5 … … 13517 13581 sub di, strict byte 0000ch ; 83 ef 0c 13518 13582 cmp di, strict byte 00004h ; 83 ff 04 13519 jbe short 090 3ch ; 76 0f13583 jbe short 090c3h ; 76 0f 13520 13584 push di ; 57 13521 push 00c 74h ; 68 740c13522 push 00c 86h ; 68 860c13585 push 00cd6h ; 68 d6 0c 13586 push 00ce8h ; 68 e8 0c 13523 13587 push strict byte 00007h ; 6a 07 13524 call 01a6bh ; e8 32 8a13588 call 01a6bh ; e8 ab 89 13525 13589 add sp, strict byte 00008h ; 83 c4 08 13526 13590 xor bx, bx ; 31 db … … 13536 13600 mov dx, word [es:di+00232h] ; 26 8b 95 32 02 13537 13601 xor ax, ax ; 31 c0 13538 call 08 dcdh ; e8 65 fd13602 call 08e54h ; e8 65 fd 13539 13603 mov bx, strict word 00025h ; bb 25 00 13540 13604 mov ax, si ; 89 f0 13541 13605 mov dx, word [bp+006h] ; 8b 56 06 13542 call 08 9ech ; e8 79 f913606 call 08a73h ; e8 79 f9 13543 13607 mov word [bp-006h], ax ; 89 46 fa 13544 13608 mov es, [bp+006h] ; 8e 46 06 … … 13569 13633 pop bp ; 5d 13570 13634 retn 00004h ; c2 04 00 13571 @ahci_write_sectors: ; 0xf9 0bdLB 0x8413635 @ahci_write_sectors: ; 0xf9144 LB 0x84 13572 13636 push bp ; 55 13573 13637 mov bp, sp ; 89 e5 … … 13580 13644 sub dx, strict byte 0000ch ; 83 ea 0c 13581 13645 cmp dx, strict byte 00004h ; 83 fa 04 13582 jbe short 09 0e6h ; 76 0f13646 jbe short 0916dh ; 76 0f 13583 13647 push dx ; 52 13584 push 00 ca5h ; 68 a5 0c13585 push 00c 86h ; 68 860c13648 push 00d07h ; 68 07 0d 13649 push 00ce8h ; 68 e8 0c 13586 13650 push strict byte 00007h ; 6a 07 13587 call 01a6bh ; e8 888913651 call 01a6bh ; e8 01 89 13588 13652 add sp, strict byte 00008h ; 83 c4 08 13589 13653 xor bx, bx ; 31 db … … 13599 13663 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 13600 13664 xor ax, ax ; 31 c0 13601 call 08 dcdh ; e8 bd fc13665 call 08e54h ; e8 bd fc 13602 13666 mov bx, strict word 00035h ; bb 35 00 13603 13667 mov ax, si ; 89 f0 13604 13668 mov dx, cx ; 89 ca 13605 call 08 9ech ; e8 d2 f813669 call 08a73h ; e8 d2 f8 13606 13670 mov dx, ax ; 89 c2 13607 13671 mov es, cx ; 8e c1 … … 13618 13682 pop bp ; 5d 13619 13683 retn 00004h ; c2 04 00 13620 ahci_cmd_packet_: ; 0xf91 41LB 0x18313684 ahci_cmd_packet_: ; 0xf91c8 LB 0x183 13621 13685 push bp ; 55 13622 13686 mov bp, sp ; 89 e5 … … 13630 13694 mov dx, strict word 0000eh ; ba 0e 00 13631 13695 mov ax, strict word 00040h ; b8 40 00 13632 call 01765h ; e8 09 8613696 call 01765h ; e8 82 85 13633 13697 mov si, 00122h ; be 22 01 13634 13698 mov word [bp-008h], ax ; 89 46 f8 13635 13699 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 13636 jne short 09 187h ; 75 1f13637 mov bx, 00 db2h ; bb b2 0d13700 jne short 0920eh ; 75 1f 13701 mov bx, 00e14h ; bb 14 0e 13638 13702 mov cx, ds ; 8c d9 13639 13703 mov ax, strict word 00004h ; b8 04 00 13640 call 01a2ah ; e8 b78813641 push 00 cb8h ; 68 b8 0c13642 push 00 cc8h ; 68 c8 0c13704 call 01a2ah ; e8 30 88 13705 push 00d1ah ; 68 1a 0d 13706 push 00d2ah ; 68 2a 0d 13643 13707 push strict byte 00004h ; 6a 04 13644 call 01a6bh ; e8 ed8813708 call 01a6bh ; e8 66 88 13645 13709 add sp, strict byte 00006h ; 83 c4 06 13646 13710 mov ax, strict word 00001h ; b8 01 00 13647 jmp near 09 2bbh ; e9 34 0113711 jmp near 09342h ; e9 34 01 13648 13712 test byte [bp+004h], 001h ; f6 46 04 01 13649 jne short 09 181h ; 75 f413713 jne short 09208h ; 75 f4 13650 13714 mov ax, word [bp+006h] ; 8b 46 06 13651 13715 mov dx, word [bp+008h] ; 8b 56 08 … … 13653 13717 sal ax, 1 ; d1 e0 13654 13718 rcl dx, 1 ; d1 d2 13655 loop 09 196h ; e2 fa13719 loop 0921dh ; e2 fa 13656 13720 mov es, [bp-008h] ; 8e 46 f8 13657 13721 mov word [es:si], ax ; 26 89 04 … … 13667 13731 mov dx, word [bp+008h] ; 8b 56 08 13668 13732 xor cx, cx ; 31 c9 13669 call 0a0 30h ; e8 640e13733 call 0a0e0h ; e8 8d 0e 13670 13734 mov word [es:si+00eh], ax ; 26 89 44 0e 13671 13735 xor di, di ; 31 ff … … 13684 13748 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 13685 13749 xor ax, ax ; 31 c0 13686 call 08 dcdh ; e8 c5 fb13750 call 08e54h ; e8 c5 fb 13687 13751 movzx ax, byte [bp-006h] ; 0f b6 46 fa 13688 13752 push ax ; 50 … … 13691 13755 mov ax, 000c0h ; b8 c0 00 13692 13756 mov dx, word [bp-00ah] ; 8b 56 f6 13693 call 0a 0a0h ; e8 840e13757 call 0a150h ; e8 ad 0e 13694 13758 mov es, [bp-008h] ; 8e 46 f8 13695 13759 mov word [es:si+018h], di ; 26 89 7c 18 … … 13698 13762 mov ax, word [es:si+01eh] ; 26 8b 44 1e 13699 13763 test ax, ax ; 85 c0 13700 je short 092 5ah ; 74 2713764 je short 092e1h ; 74 27 13701 13765 dec ax ; 48 13702 13766 mov es, [bp-00ah] ; 8e 46 f6 … … 13711 13775 mov ax, si ; 89 f0 13712 13776 mov dx, word [bp-008h] ; 8b 56 f8 13713 call 08 9ech ; e8 87 f713777 call 08a73h ; e8 87 f7 13714 13778 les bx, [bp-00eh] ; c4 5e f2 13715 13779 mov ax, word [es:bx+004h] ; 26 8b 47 04 … … 13738 13802 mov ax, word [es:bx+006h] ; 26 8b 47 06 13739 13803 or ax, word [es:bx+004h] ; 26 0b 47 04 13740 jne short 09 2b9h ; 75 0513804 jne short 09340h ; 75 05 13741 13805 mov ax, strict word 00004h ; b8 04 00 13742 jmp short 09 2bbh ; eb 0213806 jmp short 09342h ; eb 02 13743 13807 xor ax, ax ; 31 c0 13744 13808 lea sp, [bp-004h] ; 8d 66 fc … … 13747 13811 pop bp ; 5d 13748 13812 retn 0000ch ; c2 0c 00 13749 ahci_port_detect_device_: ; 0xf9 2c4LB 0x4b113813 ahci_port_detect_device_: ; 0xf934b LB 0x4b1 13750 13814 push bp ; 55 13751 13815 mov bp, sp ; 89 e5 … … 13759 13823 movzx di, bl ; 0f b6 fb 13760 13824 mov bx, di ; 89 fb 13761 call 08 dcdh ; e8 ef fa13825 call 08e54h ; e8 ef fa 13762 13826 mov dx, strict word 0000eh ; ba 0e 00 13763 13827 mov ax, strict word 00040h ; b8 40 00 13764 call 01765h ; e8 7e 8413828 call 01765h ; e8 f7 83 13765 13829 mov word [bp-010h], 00122h ; c7 46 f0 22 01 13766 13830 mov word [bp-00eh], ax ; 89 46 f2 … … 13831 13895 mov bx, strict word 0000fh ; bb 0f 00 13832 13896 xor cx, cx ; 31 c9 13833 call 088 68h ; e8 d7 f413897 call 088efh ; e8 d7 f4 13834 13898 test ax, ax ; 85 c0 13835 je near 097 6dh ; 0f 84 d6 0313899 je near 097f4h ; 0f 84 d6 03 13836 13900 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13837 13901 sal ax, 007h ; c1 e0 07 … … 13861 13925 mov bx, strict word 0000fh ; bb 0f 00 13862 13926 xor cx, cx ; 31 c9 13863 call 088 68h ; e8 8b f413927 call 088efh ; e8 8b f4 13864 13928 cmp ax, strict word 00001h ; 3d 01 00 13865 je short 09 397h ; 74 b513929 je short 0941eh ; 74 b5 13866 13930 push strict byte 00000h ; 6a 00 13867 13931 mov bx, strict word 0000fh ; bb 0f 00 … … 13869 13933 mov ax, di ; 89 f8 13870 13934 mov dx, word [bp-022h] ; 8b 56 de 13871 call 088 68h ; e8 77 f413935 call 088efh ; e8 77 f4 13872 13936 cmp ax, strict word 00003h ; 3d 03 00 13873 jne near 097 6dh ; 0f 85 75 0313937 jne near 097f4h ; 0f 85 75 03 13874 13938 mov ax, word [bp-018h] ; 8b 46 e8 13875 13939 add ax, 00130h ; 05 30 01 … … 13898 13962 mov byte [bp-008h], al ; 88 46 f8 13899 13963 cmp AL, strict byte 004h ; 3c 04 13900 jnc near 097 6dh ; 0f 83 2f 0313964 jnc near 097f4h ; 0f 83 2f 03 13901 13965 mov ax, word [bp-018h] ; 8b 46 e8 13902 13966 add ax, 00118h ; 05 18 01 … … 13950 14014 add cl, 00ch ; 80 c1 0c 13951 14015 test dx, dx ; 85 d2 13952 jne near 09 6c3h ; 0f 85 0d 0214016 jne near 0974ah ; 0f 85 0d 02 13953 14017 cmp di, 00101h ; 81 ff 01 01 13954 jne near 09 6c3h ; 0f 85 05 0214018 jne near 0974ah ; 0f 85 05 02 13955 14019 les bx, [bp-010h] ; c4 5e f0 13956 14020 db 066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h … … 13966 14030 mov ax, word [bp-010h] ; 8b 46 f0 13967 14031 mov dx, es ; 8c c2 13968 call 08 9ech ; e8 fa f414032 call 08a73h ; e8 fa f4 13969 14033 mov byte [bp-00ch], cl ; 88 4e f4 13970 14034 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 … … 13983 14047 mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00 13984 14048 cmp di, 00fffh ; 81 ff ff 0f 13985 jne short 095 4bh ; 75 1e14049 jne short 095d2h ; 75 1e 13986 14050 cmp dx, strict byte 0ffffh ; 83 fa ff 13987 jne short 095 4bh ; 75 1914051 jne short 095d2h ; 75 19 13988 14052 mov dx, word [bp-0015ch] ; 8b 96 a4 fe 13989 14053 mov word [bp-014h], dx ; 89 56 ec … … 14022 14086 mov al, byte [bp-008h] ; 8a 46 f8 14023 14087 cmp AL, strict byte 001h ; 3c 01 14024 jc short 09 5c4h ; 72 0c14025 jbe short 09 5cch ; 76 1214088 jc short 0964bh ; 72 0c 14089 jbe short 09653h ; 76 12 14026 14090 cmp AL, strict byte 003h ; 3c 03 14027 je short 09 5d4h ; 74 1614091 je short 0965bh ; 74 16 14028 14092 cmp AL, strict byte 002h ; 3c 02 14029 je short 09 5d0h ; 74 0e14030 jmp short 096 1dh ; eb 5914093 je short 09657h ; 74 0e 14094 jmp short 096a4h ; eb 59 14031 14095 test al, al ; 84 c0 14032 jne short 096 1dh ; 75 5514096 jne short 096a4h ; 75 55 14033 14097 mov DL, strict byte 040h ; b2 40 14034 jmp short 09 5d6h ; eb 0a14098 jmp short 0965dh ; eb 0a 14035 14099 mov DL, strict byte 048h ; b2 48 14036 jmp short 09 5d6h ; eb 0614100 jmp short 0965dh ; eb 06 14037 14101 mov DL, strict byte 050h ; b2 50 14038 jmp short 09 5d6h ; eb 0214102 jmp short 0965dh ; eb 02 14039 14103 mov DL, strict byte 058h ; b2 58 14040 14104 mov al, dl ; 88 d0 … … 14042 14106 movzx bx, al ; 0f b6 d8 14043 14107 mov ax, bx ; 89 d8 14044 call 017a5h ; e8 c38114108 call 017a5h ; e8 3c 81 14045 14109 test al, al ; 84 c0 14046 je short 096 1dh ; 74 3714110 je short 096a4h ; 74 37 14047 14111 mov al, dl ; 88 d0 14048 14112 db 0feh, 0c0h 14049 14113 ; inc al ; fe c0 14050 14114 xor ah, ah ; 30 e4 14051 call 017a5h ; e8 b68114115 call 017a5h ; e8 2f 81 14052 14116 xor ah, ah ; 30 e4 14053 14117 mov si, ax ; 89 c6 14054 14118 sal si, 008h ; c1 e6 08 14055 14119 movzx ax, dl ; 0f b6 c2 14056 call 017a5h ; e8 a98114120 call 017a5h ; e8 22 81 14057 14121 xor ah, ah ; 30 e4 14058 14122 add ax, si ; 01 f0 … … 14061 14125 add AL, strict byte 002h ; 04 02 14062 14126 xor ah, ah ; 30 e4 14063 call 017a5h ; e8 998114127 call 017a5h ; e8 12 81 14064 14128 xor ah, ah ; 30 e4 14065 14129 mov word [bp-02ah], ax ; 89 46 d6 14066 14130 mov ax, bx ; 89 d8 14067 call 017a5h ; e8 8f8114131 call 017a5h ; e8 08 81 14068 14132 xor ah, ah ; 30 e4 14069 14133 mov word [bp-026h], ax ; 89 46 da 14070 jmp short 096 2dh ; eb 1014134 jmp short 096b4h ; eb 10 14071 14135 push dword [bp-016h] ; 66 ff 76 ea 14072 14136 push di ; 57 … … 14074 14138 mov dx, ss ; 8c d2 14075 14139 lea ax, [bp-02ah] ; 8d 46 d6 14076 call 05ad0h ; e8 a3c414077 mov bx, 00 db2h ; bb b2 0d14140 call 05ad0h ; e8 1c c4 14141 mov bx, 00e14h ; bb 14 0e 14078 14142 mov cx, ds ; 8c d9 14079 14143 mov ax, strict word 00004h ; b8 04 00 14080 call 01a2ah ; e8 f28314144 call 01a2ah ; e8 6b 83 14081 14145 push dword [bp-016h] ; 66 ff 76 ea 14082 14146 push di ; 57 … … 14095 14159 movzx ax, byte [bp-008h] ; 0f b6 46 f8 14096 14160 push ax ; 50 14097 push 00 ce8h ; 68 e8 0c14161 push 00d4ah ; 68 4a 0d 14098 14162 push strict byte 00004h ; 6a 04 14099 call 01a6bh ; e8 04 8414163 call 01a6bh ; e8 7d 83 14100 14164 add sp, strict byte 0001ch ; 83 c4 1c 14101 14165 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 … … 14126 14190 mov dx, strict word 00075h ; ba 75 00 14127 14191 mov ax, strict word 00040h ; b8 40 00 14128 call 01749h ; e8 978014192 call 01749h ; e8 10 80 14129 14193 db 0feh, 0c0h 14130 14194 ; inc al ; fe c0 … … 14132 14196 mov dx, strict word 00075h ; ba 75 00 14133 14197 mov ax, strict word 00040h ; b8 40 00 14134 call 01757h ; e8 978014135 jmp near 097 5fh ; e9 9c 0014198 call 01757h ; e8 10 80 14199 jmp near 097e6h ; e9 9c 00 14136 14200 cmp dx, 0eb14h ; 81 fa 14 eb 14137 jne near 097 5fh ; 0f 85 94 0014201 jne near 097e6h ; 0f 85 94 00 14138 14202 cmp di, 00101h ; 81 ff 01 01 14139 jne near 097 5fh ; 0f 85 8c 0014203 jne near 097e6h ; 0f 85 8c 00 14140 14204 les bx, [bp-010h] ; c4 5e f0 14141 14205 db 066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h … … 14151 14215 mov ax, word [bp-010h] ; 8b 46 f0 14152 14216 mov dx, es ; 8c c2 14153 call 08 9ech ; e8 e5 f214217 call 08a73h ; e8 e5 f2 14154 14218 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14155 14219 db 00fh, 095h, 0c0h … … 14188 14252 pop bp ; 5d 14189 14253 retn ; c3 14190 ahci_mem_alloc_: ; 0xf97 75LB 0x4314254 ahci_mem_alloc_: ; 0xf97fc LB 0x43 14191 14255 push bp ; 55 14192 14256 mov bp, sp ; 89 e5 … … 14198 14262 mov dx, 00413h ; ba 13 04 14199 14263 xor ax, ax ; 31 c0 14200 call 01765h ; e8 e07f14264 call 01765h ; e8 59 7f 14201 14265 test ax, ax ; 85 c0 14202 je short 09 7aeh ; 74 2514266 je short 09835h ; 74 25 14203 14267 dec ax ; 48 14204 14268 mov bx, ax ; 89 c3 … … 14207 14271 sal ax, 1 ; d1 e0 14208 14272 rcl dx, 1 ; d1 d2 14209 loop 09 791h ; e2 fa14273 loop 09818h ; e2 fa 14210 14274 mov si, ax ; 89 c6 14211 14275 mov di, dx ; 89 d7 … … 14213 14277 shr di, 1 ; d1 ef 14214 14278 rcr si, 1 ; d1 de 14215 loop 09 79eh ; e2 fa14279 loop 09825h ; e2 fa 14216 14280 mov dx, 00413h ; ba 13 04 14217 14281 xor ax, ax ; 31 c0 14218 call 01773h ; e8 c77f14282 call 01773h ; e8 40 7f 14219 14283 mov ax, si ; 89 f0 14220 14284 lea sp, [bp-00ah] ; 8d 66 f6 … … 14226 14290 pop bp ; 5d 14227 14291 retn ; c3 14228 ahci_hba_init_: ; 0xf9 7b8LB 0x16614292 ahci_hba_init_: ; 0xf983f LB 0x166 14229 14293 push bp ; 55 14230 14294 mov bp, sp ; 89 e5 … … 14238 14302 mov dx, strict word 0000eh ; ba 0e 00 14239 14303 mov ax, strict word 00040h ; b8 40 00 14240 call 01765h ; e8 977f14304 call 01765h ; e8 10 7f 14241 14305 mov bx, 00122h ; bb 22 01 14242 14306 mov di, ax ; 89 c7 … … 14255 14319 shr eax, 010h ; 66 c1 e8 10 14256 14320 xchg dx, ax ; 92 14257 call 097 75h ; e8 83 ff14321 call 097fch ; e8 83 ff 14258 14322 mov word [bp-010h], ax ; 89 46 f0 14259 14323 test ax, ax ; 85 c0 14260 je near 09 8fdh ; 0f 84 02 0114324 je near 09984h ; 0f 84 02 01 14261 14325 mov ax, word [bp-010h] ; 8b 46 f0 14262 14326 mov es, di ; 8e c7 … … 14308 14372 xchg dx, ax ; 92 14309 14373 test AL, strict byte 001h ; a8 01 14310 jne short 098 51h ; 75 de14374 jne short 098d8h ; 75 de 14311 14375 xor ax, ax ; 31 c0 14312 14376 xor cx, cx ; 31 c9 … … 14326 14390 mov bx, strict word 0001fh ; bb 1f 00 14327 14391 xor cx, cx ; 31 c9 14328 call 088 68h ; e8 d1 ef14392 call 088efh ; e8 d1 ef 14329 14393 db 0feh, 0c0h 14330 14394 ; inc al ; fe c0 14331 14395 mov byte [bp-00eh], al ; 88 46 f2 14332 14396 mov byte [bp-00ch], 000h ; c6 46 f4 00 14333 jmp short 09 8c2h ; eb 2014397 jmp short 09949h ; eb 20 14334 14398 xor al, al ; 30 c0 14335 14399 test al, al ; 84 c0 14336 je short 09 8b9h ; 74 1114400 je short 09940h ; 74 11 14337 14401 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 14338 14402 xor ax, ax ; 31 c0 14339 14403 mov dx, word [bp-010h] ; 8b 56 f0 14340 call 09 2c4h ; e8 10 fa14404 call 0934bh ; e8 10 fa 14341 14405 dec byte [bp-00eh] ; fe 4e f2 14342 je short 09 8fbh ; 74 4214406 je short 09982h ; 74 42 14343 14407 inc byte [bp-00ch] ; fe 46 f4 14344 14408 cmp byte [bp-00ch], 020h ; 80 7e f4 20 14345 jnc short 09 8fbh ; 73 3914409 jnc short 09982h ; 73 39 14346 14410 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 14347 14411 mov bx, strict word 00001h ; bb 01 00 14348 14412 xor di, di ; 31 ff 14349 jcxz 09 8d3h ; e3 0614413 jcxz 0995ah ; e3 06 14350 14414 sal bx, 1 ; d1 e3 14351 14415 rcl di, 1 ; d1 d7 14352 loop 09 8cdh ; e2 fa14416 loop 09954h ; e2 fa 14353 14417 mov ax, strict word 0000ch ; b8 0c 00 14354 14418 xor cx, cx ; 31 c9 … … 14366 14430 xchg dx, ax ; 92 14367 14431 test dx, di ; 85 fa 14368 jne short 09 8f7h ; 75 0414432 jne short 0997eh ; 75 04 14369 14433 test ax, bx ; 85 d8 14370 je short 09 8a2h ; 74 ab14434 je short 09929h ; 74 ab 14371 14435 mov AL, strict byte 001h ; b0 01 14372 jmp short 09 8a4h ; eb a914436 jmp short 0992bh ; eb a9 14373 14437 xor ax, ax ; 31 c0 14374 14438 lea sp, [bp-00ah] ; 8d 66 f6 … … 14380 14444 pop bp ; 5d 14381 14445 retn ; c3 14382 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 eeh, 099h, 0cch, 099h, 0d2h, 099h, 0d8h, 099h, 0deh14383 db 09 9h, 0e4h, 099h, 0eah, 099h, 0eeh, 099h14384 _ahci_init: ; 0xf99 1eLB 0x11614446 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 075h, 09ah, 053h, 09ah, 059h, 09ah, 05fh, 09ah, 065h 14447 db 09ah, 06bh, 09ah, 071h, 09ah, 075h, 09ah 14448 _ahci_init: ; 0xf99a5 LB 0x116 14385 14449 push bp ; 55 14386 14450 mov bp, sp ; 89 e5 … … 14390 14454 mov ax, 00601h ; b8 01 06 14391 14455 mov dx, strict word 00001h ; ba 01 00 14392 call 09e 54h ; e8 25 0514456 call 09edbh ; e8 25 05 14393 14457 mov bx, ax ; 89 c3 14394 14458 cmp ax, strict word 0ffffh ; 3d ff ff 14395 je near 09a 2dh ; 0f 84 f5 0014459 je near 09ab4h ; 0f 84 f5 00 14396 14460 xor al, al ; 30 c0 14397 14461 shr ax, 008h ; c1 e8 08 … … 14401 14465 xor ah, ah ; 30 e4 14402 14466 mov bx, strict word 00034h ; bb 34 00 14403 call 09 e7fh ; e8 310514467 call 09f2bh ; e8 56 05 14404 14468 mov cl, al ; 88 c1 14405 14469 test cl, cl ; 84 c9 14406 je short 099 77h ; 74 2314470 je short 099feh ; 74 23 14407 14471 movzx bx, cl ; 0f b6 d9 14408 14472 movzx di, byte [bp-008h] ; 0f b6 7e f8 … … 14410 14474 mov dx, di ; 89 fa 14411 14475 mov ax, si ; 89 f0 14412 call 09 e7fh ; e8 190514476 call 09f2bh ; e8 3e 05 14413 14477 cmp AL, strict byte 012h ; 3c 12 14414 je short 099 77h ; 74 0d14478 je short 099feh ; 74 0d 14415 14479 mov al, cl ; 88 c8 14416 14480 db 0feh, 0c0h … … 14419 14483 mov dx, di ; 89 fa 14420 14484 mov ax, si ; 89 f0 14421 jmp short 099 4bh ; eb d414485 jmp short 099d2h ; eb d4 14422 14486 test cl, cl ; 84 c9 14423 je near 09a 2dh ; 0f 84 b0 0014487 je near 09ab4h ; 0f 84 b0 00 14424 14488 add cl, 002h ; 80 c1 02 14425 14489 movzx bx, cl ; 0f b6 d9 … … 14428 14492 mov dx, si ; 89 f2 14429 14493 mov ax, di ; 89 f8 14430 call 09 e7fh ; e8 ed 0414494 call 09f2bh ; e8 12 05 14431 14495 cmp AL, strict byte 010h ; 3c 10 14432 jne near 09a 2dh ; 0f 85 95 0014496 jne near 09ab4h ; 0f 85 95 00 14433 14497 mov byte [bp-006h], 000h ; c6 46 fa 00 14434 14498 mov al, cl ; 88 c8 … … 14437 14501 mov dx, si ; 89 f2 14438 14502 mov ax, di ; 89 f8 14439 call 09 ea3h ; e8 f9 0414503 call 09f4fh ; e8 1e 05 14440 14504 mov dx, ax ; 89 c2 14441 14505 and ax, strict word 0000fh ; 25 0f 00 14442 14506 sub ax, strict word 00004h ; 2d 04 00 14443 14507 cmp ax, strict word 0000bh ; 3d 0b 00 14444 jnbe short 09 9eeh ; 77 3714508 jnbe short 09a75h ; 77 37 14445 14509 push CS ; 0e 14446 14510 pop ES ; 07 14447 14511 mov cx, strict word 00008h ; b9 08 00 14448 mov di, 099 07h ; bf 079914512 mov di, 0998eh ; bf 8e 99 14449 14513 repne scasb ; f2 ae 14450 14514 sal cx, 1 ; d1 e1 14451 14515 mov di, cx ; 89 cf 14452 mov ax, word [cs:di-066 f2h] ; 2e 8b 85 0e9914516 mov ax, word [cs:di-0666bh] ; 2e 8b 85 95 99 14453 14517 jmp ax ; ff e0 14454 14518 mov byte [bp-006h], 010h ; c6 46 fa 10 14455 jmp short 09 9eeh ; eb 1c14519 jmp short 09a75h ; eb 1c 14456 14520 mov byte [bp-006h], 014h ; c6 46 fa 14 14457 jmp short 09 9eeh ; eb 1614521 jmp short 09a75h ; eb 16 14458 14522 mov byte [bp-006h], 018h ; c6 46 fa 18 14459 jmp short 09 9eeh ; eb 1014523 jmp short 09a75h ; eb 10 14460 14524 mov byte [bp-006h], 01ch ; c6 46 fa 1c 14461 jmp short 09 9eeh ; eb 0a14525 jmp short 09a75h ; eb 0a 14462 14526 mov byte [bp-006h], 020h ; c6 46 fa 20 14463 jmp short 09 9eeh ; eb 0414527 jmp short 09a75h ; eb 04 14464 14528 mov byte [bp-006h], 024h ; c6 46 fa 24 14465 14529 mov cx, dx ; 89 d1 … … 14468 14532 mov al, byte [bp-006h] ; 8a 46 fa 14469 14533 test al, al ; 84 c0 14470 je short 09a 2dh ; 74 3014534 je short 09ab4h ; 74 30 14471 14535 movzx bx, al ; 0f b6 d8 14472 14536 movzx di, byte [bp-008h] ; 0f b6 7e f8 … … 14474 14538 mov dx, di ; 89 fa 14475 14539 mov ax, si ; 89 f0 14476 call 09 ec5h ; e8 b60414540 call 09f71h ; e8 db 04 14477 14541 test AL, strict byte 001h ; a8 01 14478 je short 09a 2dh ; 74 1a14542 je short 09ab4h ; 74 1a 14479 14543 and AL, strict byte 0f0h ; 24 f0 14480 14544 add ax, cx ; 01 c8 … … 14484 14548 mov dx, di ; 89 fa 14485 14549 mov ax, si ; 89 f0 14486 call 09 eech ; e8 c50414550 call 09f98h ; e8 ea 04 14487 14551 mov ax, word [bp-00ch] ; 8b 46 f4 14488 call 09 7b8h ; e8 8b fd14552 call 0983fh ; e8 8b fd 14489 14553 lea sp, [bp-004h] ; 8d 66 fc 14490 14554 pop di ; 5f … … 14492 14556 pop bp ; 5d 14493 14557 retn ; c3 14494 apm_out_str_: ; 0xf9a 34LB 0x3914558 apm_out_str_: ; 0xf9abb LB 0x39 14495 14559 push bp ; 55 14496 14560 mov bp, sp ; 89 e5 … … 14498 14562 mov bx, ax ; 89 c3 14499 14563 cmp byte [bx], 000h ; 80 3f 00 14500 je short 09a 49h ; 74 0a14564 je short 09ad0h ; 74 0a 14501 14565 mov al, byte [bx] ; 8a 07 14502 14566 out DX, AL ; ee … … 14505 14569 db 00ah, 0c0h 14506 14570 ; or al, al ; 0a c0 14507 jne short 09a 41h ; 75 f814571 jne short 09ac8h ; 75 f8 14508 14572 lea sp, [bp-002h] ; 8d 66 fe 14509 14573 pop bx ; 5b 14510 14574 pop bp ; 5d 14511 14575 retn ; c3 14512 nop ; 90 14513 call far 09aa2h:09b5ch ; 9a 5c 9b a2 9a 14514 mov bp, 05c9ah ; bd 9a 5c 14576 pop SS ; 17 14515 14577 wait ; 9b 14516 call 0f6f6h ; e8 9a 5c 14578 jcxz 09a75h ; e3 9b 14579 sub word [bp+di-064bch], bx ; 29 9b 44 9b 14580 jcxz 09a7bh ; e3 9b 14581 outsw ; 6f 14517 14582 wait ; 9b 14518 in ax, DX ; ed 14519 call far 09b31h:09b31h ; 9a 31 9b 31 9b 14520 xor word [bp+di-064d4h], bx ; 31 9b 2c 9b 14521 xor word [bp+di-064cfh], bx ; 31 9b 31 9b 14522 db 025h 14583 jcxz 09a7fh ; e3 9b 14584 je short 09a81h ; 74 9b 14585 mov ax, 0b89bh ; b8 9b b8 14523 14586 wait ; 9b 14524 _apm_function: ; 0xf9a6d LB 0xf5 14587 mov ax, 0b39bh ; b8 9b b3 14588 wait ; 9b 14589 mov ax, 0b89bh ; b8 9b b8 14590 wait ; 9b 14591 lodsb ; ac 14592 wait ; 9b 14593 _apm_function: ; 0xf9af4 LB 0xf5 14525 14594 push bp ; 55 14526 14595 mov bp, sp ; 89 e5 … … 14530 14599 xor ah, ah ; 30 e4 14531 14600 cmp ax, strict word 0000eh ; 3d 0e 00 14532 jnbe near 09b 31h ; 0f 87 b0 0014601 jnbe near 09bb8h ; 0f 87 b0 00 14533 14602 mov bx, ax ; 89 c3 14534 14603 add bx, ax ; 01 c3 14535 14604 mov dx, word [bp+018h] ; 8b 56 18 14536 14605 or dl, 001h ; 80 ca 01 14537 jmp word [cs:bx-065 b1h] ; 2e ff a7 4f9a14606 jmp word [cs:bx-0652ah] ; 2e ff a7 d6 9a 14538 14607 mov word [bp+012h], 00102h ; c7 46 12 02 01 14539 14608 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 14540 14609 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 14541 jmp near 09b 5ch ; e9 ba 0014610 jmp near 09be3h ; e9 ba 00 14542 14611 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14543 mov word [bp+00ch], 0a1 14h ; c7 46 0c 14 a114612 mov word [bp+00ch], 0a1c4h ; c7 46 0c c4 a1 14544 14613 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 14545 14614 mov ax, strict word 0fff0h ; b8 f0 ff 14546 14615 mov word [bp+006h], ax ; 89 46 06 14547 14616 mov word [bp+004h], ax ; 89 46 04 14548 jmp near 09b 5ch ; e9 9f 0014617 jmp near 09be3h ; e9 9f 00 14549 14618 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14550 14619 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 14559 14628 mov si, ax ; 89 c6 14560 14629 sal esi, 010h ; 66 c1 e6 10 14561 jmp near 09b 5ch ; e9 74 0014630 jmp near 09be3h ; e9 74 00 14562 14631 sti ; fb 14563 14632 hlt ; f4 14564 jmp near 09b 5ch ; e9 6f 0014633 jmp near 09be3h ; e9 6f 00 14565 14634 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 14566 je short 09b 12h ; 74 1f14635 je short 09b99h ; 74 1f 14567 14636 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 14568 je short 09b 0ah ; 74 1114637 je short 09b91h ; 74 11 14569 14638 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 14570 jne short 09b 1ah ; 75 1b14639 jne short 09ba1h ; 75 1b 14571 14640 mov dx, 0040fh ; ba 0f 04 14572 mov ax, 00d 22h ; b8 220d14573 call 09a 34h ; e8 2c ff14574 jmp short 09b 5ch ; eb 5214641 mov ax, 00d84h ; b8 84 0d 14642 call 09abbh ; e8 2c ff 14643 jmp short 09be3h ; eb 52 14575 14644 mov dx, 0040fh ; ba 0f 04 14576 mov ax, 00d 2ah ; b8 2a0d14577 jmp short 09b 05h ; eb f314645 mov ax, 00d8ch ; b8 8c 0d 14646 jmp short 09b8ch ; eb f3 14578 14647 mov dx, 0040fh ; ba 0f 04 14579 mov ax, 00d 32h ; b8 320d14580 jmp short 09b 05h ; eb eb14648 mov ax, 00d94h ; b8 94 0d 14649 jmp short 09b8ch ; eb eb 14581 14650 or ah, 00ah ; 80 cc 0a 14582 14651 mov word [bp+012h], ax ; 89 46 12 14583 14652 mov word [bp+018h], dx ; 89 56 18 14584 jmp short 09b 5ch ; eb 3714653 jmp short 09be3h ; eb 37 14585 14654 mov word [bp+012h], 00102h ; c7 46 12 02 01 14586 jmp short 09b 5ch ; eb 3014655 jmp short 09be3h ; eb 30 14587 14656 or ah, 080h ; 80 cc 80 14588 jmp short 09b 1dh ; eb ec14589 mov bx, 00 db2h ; bb b2 0d14657 jmp short 09ba4h ; eb ec 14658 mov bx, 00e14h ; bb 14 0e 14590 14659 mov cx, ds ; 8c d9 14591 14660 mov ax, strict word 00004h ; b8 04 00 14592 call 01a2ah ; e8 ee7e14661 call 01a2ah ; e8 67 7e 14593 14662 push word [bp+00ch] ; ff 76 0c 14594 14663 push word [bp+012h] ; ff 76 12 14595 push 00d 3bh ; 68 3b0d14664 push 00d9dh ; 68 9d 0d 14596 14665 push strict byte 00004h ; 6a 04 14597 call 01a6bh ; e8 21 7f14666 call 01a6bh ; e8 9a 7e 14598 14667 add sp, strict byte 00008h ; 83 c4 08 14599 14668 mov ax, word [bp+012h] ; 8b 46 12 … … 14606 14675 pop bp ; 5d 14607 14676 retn ; c3 14608 pci16_select_reg_: ; 0xf9b 62LB 0x2414677 pci16_select_reg_: ; 0xf9be9 LB 0x24 14609 14678 push bp ; 55 14610 14679 mov bp, sp ; 89 e5 … … 14623 14692 pop bp ; 5d 14624 14693 retn ; c3 14625 pci16_find_device_: ; 0xf9 b86LB 0xf714694 pci16_find_device_: ; 0xf9c0d LB 0xf7 14626 14695 push bp ; 55 14627 14696 mov bp, sp ; 89 e5 … … 14637 14706 mov byte [bp-008h], 000h ; c6 46 f8 00 14638 14707 test bl, 007h ; f6 c3 07 14639 jne short 09 bceh ; 75 2d14708 jne short 09c55h ; 75 2d 14640 14709 mov dx, strict word 0000eh ; ba 0e 00 14641 14710 mov ax, bx ; 89 d8 14642 call 09b 62h ; e8 b9 ff14711 call 09be9h ; e8 b9 ff 14643 14712 mov dx, 00cfeh ; ba fe 0c 14644 14713 in AL, DX ; ec … … 14647 14716 mov byte [bp-006h], al ; 88 46 fa 14648 14717 cmp AL, strict byte 0ffh ; 3c ff 14649 jne short 09 bbch ; 75 0614718 jne short 09c43h ; 75 06 14650 14719 add bx, strict byte 00008h ; 83 c3 08 14651 jmp near 09c 4fh ; e9 93 0014720 jmp near 09cd6h ; e9 93 00 14652 14721 test byte [bp-006h], 080h ; f6 46 fa 80 14653 je short 09 bc9h ; 74 0714722 je short 09c50h ; 74 07 14654 14723 mov word [bp-00ah], strict word 00001h ; c7 46 f6 01 00 14655 jmp short 09 bceh ; eb 0514724 jmp short 09c55h ; eb 05 14656 14725 mov word [bp-00ah], strict word 00008h ; c7 46 f6 08 00 14657 14726 mov al, byte [bp-006h] ; 8a 46 fa 14658 14727 and AL, strict byte 007h ; 24 07 14659 14728 cmp AL, strict byte 001h ; 3c 01 14660 jne short 09 bf6h ; 75 1f14729 jne short 09c7dh ; 75 1f 14661 14730 mov ax, bx ; 89 d8 14662 14731 shr ax, 008h ; c1 e8 08 14663 14732 test ax, ax ; 85 c0 14664 jne short 09 bf6h ; 75 1614733 jne short 09c7dh ; 75 16 14665 14734 mov dx, strict word 0001ah ; ba 1a 00 14666 14735 mov ax, bx ; 89 d8 14667 call 09b 62h ; e8 7a ff14736 call 09be9h ; e8 7a ff 14668 14737 mov dx, 00cfeh ; ba fe 0c 14669 14738 in AL, DX ; ec … … 14671 14740 ; sub ah, ah ; 2a e4 14672 14741 cmp al, byte [bp-008h] ; 3a 46 f8 14673 jbe short 09 bf6h ; 76 0314742 jbe short 09c7dh ; 76 03 14674 14743 mov byte [bp-008h], al ; 88 46 f8 14675 14744 test di, di ; 85 ff 14676 je short 09 bffh ; 74 0514745 je short 09c86h ; 74 05 14677 14746 mov dx, strict word 00008h ; ba 08 00 14678 jmp short 09c 01h ; eb 0214747 jmp short 09c88h ; eb 02 14679 14748 xor dx, dx ; 31 d2 14680 14749 mov ax, bx ; 89 d8 14681 call 09b 62h ; e8 5c ff14750 call 09be9h ; e8 5c ff 14682 14751 mov dx, 00cfch ; ba fc 0c 14683 14752 in eax, DX ; 66 ed … … 14690 14759 mov word [bp-010h], strict word 00000h ; c7 46 f0 00 00 14691 14760 test di, di ; 85 ff 14692 je short 09c 30h ; 74 0f14761 je short 09cb7h ; 74 0f 14693 14762 mov cx, strict word 00008h ; b9 08 00 14694 14763 shr dx, 1 ; d1 ea 14695 14764 rcr ax, 1 ; d1 d8 14696 loop 09c 24h ; e2 fa14765 loop 09cabh ; e2 fa 14697 14766 mov word [bp-00eh], ax ; 89 46 f2 14698 14767 mov word [bp-00ch], dx ; 89 56 f4 14699 14768 mov ax, word [bp-00ch] ; 8b 46 f4 14700 14769 cmp ax, word [bp-014h] ; 3b 46 ec 14701 jne short 09c 40h ; 75 0814770 jne short 09cc7h ; 75 08 14702 14771 mov ax, word [bp-00eh] ; 8b 46 f2 14703 14772 cmp ax, word [bp-012h] ; 3b 46 ee 14704 je short 09c 46h ; 74 0614773 je short 09ccdh ; 74 06 14705 14774 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 14706 je short 09c 4ch ; 74 0614775 je short 09cd3h ; 74 06 14707 14776 dec si ; 4e 14708 14777 cmp si, strict byte 0ffffh ; 83 fe ff 14709 je short 09c 5eh ; 74 1214778 je short 09ce5h ; 74 12 14710 14779 add bx, word [bp-00ah] ; 03 5e f6 14711 14780 mov dx, bx ; 89 da … … 14713 14782 movzx ax, byte [bp-008h] ; 0f b6 46 f8 14714 14783 cmp dx, ax ; 39 c2 14715 jbe near 09 b9ch ; 0f 86 3e ff14784 jbe near 09c23h ; 0f 86 3e ff 14716 14785 cmp si, strict byte 0ffffh ; 83 fe ff 14717 jne short 09c 67h ; 75 0414786 jne short 09ceeh ; 75 04 14718 14787 mov ax, bx ; 89 d8 14719 jmp short 09c 6ah ; eb 0314788 jmp short 09cf1h ; eb 03 14720 14789 mov ax, strict word 0ffffh ; b8 ff ff 14721 14790 lea sp, [bp-004h] ; 8d 66 fc … … 14724 14793 pop bp ; 5d 14725 14794 retn ; c3 14726 pop di ; 5f 14727 popfw ; 9d 14728 jns short 09c12h ; 79 9d 14729 mov [di-0625fh], ds ; 8c 9d a1 9d 14730 mov AH, strict byte 09dh ; b4 9d 14731 db 0c7h 14732 popfw ; 9d 14733 _pci16_function: ; 0xf9c7d LB 0x1d7 14795 out strict byte 09dh, AL ; e6 9d 14796 add byte [bp-061edh], bl ; 00 9e 13 9e 14797 sub byte [bp-061c5h], bl ; 28 9e 3b 9e 14798 dec si ; 4e 14799 sahf ; 9e 14800 _pci16_function: ; 0xf9d04 LB 0x1d7 14734 14801 push bp ; 55 14735 14802 mov bp, sp ; 89 e5 … … 14745 14812 xor ah, ah ; 30 e4 14746 14813 cmp bx, strict byte 00003h ; 83 fb 03 14747 jc short 09 cb6h ; 72 1a14748 jbe short 09d 0eh ; 76 7014814 jc short 09d3dh ; 72 1a 14815 jbe short 09d95h ; 76 70 14749 14816 cmp bx, strict byte 0000eh ; 83 fb 0e 14750 je near 09 ddbh ; 0f 84 36 0114817 je near 09e62h ; 0f 84 36 01 14751 14818 cmp bx, strict byte 00008h ; 83 fb 08 14752 jc near 09e 20h ; 0f 82 74 0114819 jc near 09ea7h ; 0f 82 74 01 14753 14820 cmp bx, strict byte 0000dh ; 83 fb 0d 14754 jbe near 09d 33h ; 0f 86 80 0014755 jmp near 09e 20h ; e9 6a 0114821 jbe near 09dbah ; 0f 86 80 00 14822 jmp near 09ea7h ; e9 6a 01 14756 14823 cmp bx, strict byte 00002h ; 83 fb 02 14757 je short 09 cdeh ; 74 2314824 je short 09d65h ; 74 23 14758 14825 cmp bx, strict byte 00001h ; 83 fb 01 14759 jne near 09e 20h ; 0f 85 5e 0114826 jne near 09ea7h ; 0f 85 5e 01 14760 14827 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 14761 14828 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 14763 14830 mov word [bp+018h], 04350h ; c7 46 18 50 43 14764 14831 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 14765 jmp near 09e 4dh ; e9 6f 0114832 jmp near 09ed4h ; e9 6f 01 14766 14833 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 14767 jne short 09 ceah ; 75 0614834 jne short 09d71h ; 75 06 14768 14835 or ah, 083h ; 80 cc 83 14769 jmp near 09e 46h ; e9 5c 0114836 jmp near 09ecdh ; e9 5c 01 14770 14837 mov bx, word [bp+008h] ; 8b 5e 08 14771 14838 mov dx, word [bp+01ch] ; 8b 56 1c 14772 14839 mov ax, word [bp+018h] ; 8b 46 18 14773 14840 xor cx, cx ; 31 c9 14774 call 09 b86h ; e8 8e fe14841 call 09c0dh ; e8 8e fe 14775 14842 cmp ax, strict word 0ffffh ; 3d ff ff 14776 jne short 09d 08h ; 75 0b14843 jne short 09d8fh ; 75 0b 14777 14844 mov ax, word [bp+020h] ; 8b 46 20 14778 14845 xor ah, ah ; 30 e4 14779 14846 or ah, 086h ; 80 cc 86 14780 jmp near 09e 46h ; e9 3e 0114847 jmp near 09ecdh ; e9 3e 01 14781 14848 mov word [bp+014h], ax ; 89 46 14 14782 jmp near 09e 4dh ; e9 3f 0114849 jmp near 09ed4h ; e9 3f 01 14783 14850 mov bx, word [bp+008h] ; 8b 5e 08 14784 14851 mov ax, word [bp+01ch] ; 8b 46 1c 14785 14852 mov dx, word [bp+01eh] ; 8b 56 1e 14786 14853 mov cx, strict word 00001h ; b9 01 00 14787 call 09 b86h ; e8 69 fe14854 call 09c0dh ; e8 69 fe 14788 14855 cmp ax, strict word 0ffffh ; 3d ff ff 14789 jne short 09d 2dh ; 75 0b14856 jne short 09db4h ; 75 0b 14790 14857 mov ax, word [bp+020h] ; 8b 46 20 14791 14858 xor ah, ah ; 30 e4 14792 14859 or ah, 086h ; 80 cc 86 14793 jmp near 09e 46h ; e9 19 0114860 jmp near 09ecdh ; e9 19 01 14794 14861 mov word [bp+014h], ax ; 89 46 14 14795 jmp near 09e 4dh ; e9 1a 0114862 jmp near 09ed4h ; e9 1a 01 14796 14863 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 14797 jc short 09d 40h ; 72 0614864 jc short 09dc7h ; 72 06 14798 14865 or ah, 087h ; 80 cc 87 14799 jmp near 09e 46h ; e9 06 0114866 jmp near 09ecdh ; e9 06 01 14800 14867 mov dx, word [bp+004h] ; 8b 56 04 14801 14868 mov ax, word [bp+014h] ; 8b 46 14 14802 call 09b 62h ; e8 19 fe14869 call 09be9h ; e8 19 fe 14803 14870 mov bx, word [bp+020h] ; 8b 5e 20 14804 14871 xor bh, bh ; 30 ff 14805 14872 sub bx, strict byte 00008h ; 83 eb 08 14806 14873 cmp bx, strict byte 00005h ; 83 fb 05 14807 jnbe near 09e 4dh ; 0f 87 f5 0014874 jnbe near 09ed4h ; 0f 87 f5 00 14808 14875 add bx, bx ; 01 db 14809 jmp word [cs:bx-063 8fh] ; 2e ff a7 719c14876 jmp word [cs:bx-06308h] ; 2e ff a7 f8 9c 14810 14877 mov bx, word [bp+01ch] ; 8b 5e 1c 14811 14878 xor bl, bl ; 30 db … … 14818 14885 or bx, ax ; 09 c3 14819 14886 mov word [bp+01ch], bx ; 89 5e 1c 14820 jmp near 09e 4dh ; e9 d4 0014887 jmp near 09ed4h ; e9 d4 00 14821 14888 mov dx, word [bp+004h] ; 8b 56 04 14822 14889 xor dh, dh ; 30 f6 … … 14825 14892 in ax, DX ; ed 14826 14893 mov word [bp+01ch], ax ; 89 46 1c 14827 jmp near 09e 4dh ; e9 c1 0014894 jmp near 09ed4h ; e9 c1 00 14828 14895 mov dx, 00cfch ; ba fc 0c 14829 14896 in eax, DX ; 66 ed … … 14834 14901 mov word [bp+01ch], ax ; 89 46 1c 14835 14902 mov word [bp+01eh], dx ; 89 56 1e 14836 jmp near 09e 4dh ; e9 ac 0014903 jmp near 09ed4h ; e9 ac 00 14837 14904 mov ax, word [bp+01ch] ; 8b 46 1c 14838 14905 mov dx, word [bp+004h] ; 8b 56 04 … … 14841 14908 add dx, 00cfch ; 81 c2 fc 0c 14842 14909 out DX, AL ; ee 14843 jmp near 09e 4dh ; e9 99 0014910 jmp near 09ed4h ; e9 99 00 14844 14911 mov ax, word [bp+01ch] ; 8b 46 1c 14845 14912 mov dx, word [bp+004h] ; 8b 56 04 … … 14848 14915 add dx, 00cfch ; 81 c2 fc 0c 14849 14916 out DX, ax ; ef 14850 jmp near 09e 4dh ; e9 86 0014917 jmp near 09ed4h ; e9 86 00 14851 14918 mov ax, word [bp+01ch] ; 8b 46 1c 14852 14919 mov cx, word [bp+01eh] ; 8b 4e 1e … … 14857 14924 ; mov ax, cx ; 8b c1 14858 14925 out DX, eax ; 66 ef 14859 jmp short 09e 4dh ; eb 7214926 jmp short 09ed4h ; eb 72 14860 14927 mov bx, word [bp+004h] ; 8b 5e 04 14861 14928 mov es, [bp+026h] ; 8e 46 26 … … 14864 14931 mov cx, word [0f370h] ; 8b 0e 70 f3 14865 14932 cmp cx, word [es:bx] ; 26 3b 0f 14866 jbe short 09e 01h ; 76 1114933 jbe short 09e88h ; 76 11 14867 14934 mov ax, word [bp+020h] ; 8b 46 20 14868 14935 xor ah, ah ; 30 e4 … … 14870 14937 mov word [bp+020h], ax ; 89 46 20 14871 14938 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 14872 jmp short 09e 15h ; eb 1414939 jmp short 09e9ch ; eb 14 14873 14940 les di, [es:bx+002h] ; 26 c4 7f 02 14874 14941 mov si, 0f190h ; be 90 f1 … … 14882 14949 les bx, [bp-008h] ; c4 5e f8 14883 14950 mov word [es:bx], ax ; 26 89 07 14884 jmp short 09e 4dh ; eb 2d14885 mov bx, 00 db2h ; bb b2 0d14951 jmp short 09ed4h ; eb 2d 14952 mov bx, 00e14h ; bb 14 0e 14886 14953 mov cx, ds ; 8c d9 14887 14954 mov ax, strict word 00004h ; b8 04 00 14888 call 01a2ah ; e8 ff7b14955 call 01a2ah ; e8 78 7b 14889 14956 mov ax, word [bp+014h] ; 8b 46 14 14890 14957 push ax ; 50 14891 14958 mov ax, word [bp+020h] ; 8b 46 20 14892 14959 push ax ; 50 14893 push 00d 6eh ; 68 6e0d14960 push 00dd0h ; 68 d0 0d 14894 14961 push strict byte 00004h ; 6a 04 14895 call 01a6bh ; e8 30 7c14962 call 01a6bh ; e8 a9 7b 14896 14963 add sp, strict byte 00008h ; 83 c4 08 14897 14964 mov ax, word [bp+020h] ; 8b 46 20 … … 14905 14972 pop bp ; 5d 14906 14973 retn ; c3 14907 pci_find_classcode_: ; 0xf9e 54LB 0x2b14974 pci_find_classcode_: ; 0xf9edb LB 0x2b 14908 14975 push bp ; 55 14909 14976 mov bp, sp ; 89 e5 … … 14920 14987 int 01ah ; cd 1a 14921 14988 cmp ah, 000h ; 80 fc 00 14922 je near 09e 75h ; 0f 84 03 0014989 je near 09efch ; 0f 84 03 00 14923 14990 mov bx, strict word 0ffffh ; bb ff ff 14924 14991 mov ax, bx ; 89 d8 … … 14929 14996 pop bp ; 5d 14930 14997 retn ; c3 14931 pci_read_config_byte_: ; 0xf9e7f LB 0x24 14998 pci_find_device_: ; 0xf9f06 LB 0x25 14999 push bp ; 55 15000 mov bp, sp ; 89 e5 15001 push bx ; 53 15002 push cx ; 51 15003 push si ; 56 15004 mov cx, dx ; 89 d1 15005 xor si, si ; 31 f6 15006 mov dx, ax ; 89 c2 15007 mov ax, 0b102h ; b8 02 b1 15008 int 01ah ; cd 1a 15009 cmp ah, 000h ; 80 fc 00 15010 je near 09f21h ; 0f 84 03 00 15011 mov bx, strict word 0ffffh ; bb ff ff 15012 mov ax, bx ; 89 d8 15013 lea sp, [bp-006h] ; 8d 66 fa 15014 pop si ; 5e 15015 pop cx ; 59 15016 pop bx ; 5b 15017 pop bp ; 5d 15018 retn ; c3 15019 pci_read_config_byte_: ; 0xf9f2b LB 0x24 14932 15020 push bp ; 55 14933 15021 mov bp, sp ; 89 e5 … … 14948 15036 pop bp ; 5d 14949 15037 retn ; c3 14950 pci_read_config_word_: ; 0xf9 ea3LB 0x2215038 pci_read_config_word_: ; 0xf9f4f LB 0x22 14951 15039 push bp ; 55 14952 15040 mov bp, sp ; 89 e5 … … 14967 15055 pop bp ; 5d 14968 15056 retn ; c3 14969 pci_read_config_dword_: ; 0xf9 ec5LB 0x2715057 pci_read_config_dword_: ; 0xf9f71 LB 0x27 14970 15058 push bp ; 55 14971 15059 mov bp, sp ; 89 e5 … … 14988 15076 pop bp ; 5d 14989 15077 retn ; c3 14990 pci_write_config_word_: ; 0xf9 eecLB 0x1c15078 pci_write_config_word_: ; 0xf9f98 LB 0x1c 14991 15079 push bp ; 55 14992 15080 mov bp, sp ; 89 e5 … … 15003 15091 pop bp ; 5d 15004 15092 retn ; c3 15005 vds_is_present_: ; 0xf9f 08LB 0x1d15093 vds_is_present_: ; 0xf9fb4 LB 0x1d 15006 15094 push bx ; 53 15007 15095 push bp ; 55 … … 15011 15099 mov es, ax ; 8e c0 15012 15100 test byte [es:bx], 020h ; 26 f6 07 20 15013 je short 09f 20h ; 74 0615101 je short 09fcch ; 74 06 15014 15102 mov ax, strict word 00001h ; b8 01 00 15015 15103 pop bp ; 5d … … 15020 15108 pop bx ; 5b 15021 15109 retn ; c3 15022 vds_real_to_lin_: ; 0xf9f 25LB 0x1e15110 vds_real_to_lin_: ; 0xf9fd1 LB 0x1e 15023 15111 push bx ; 53 15024 15112 push cx ; 51 … … 15031 15119 sal ax, 1 ; d1 e0 15032 15120 rcl dx, 1 ; d1 d2 15033 loop 09f 33h ; e2 fa15121 loop 09fdfh ; e2 fa 15034 15122 xor cx, cx ; 31 c9 15035 15123 add ax, bx ; 01 d8 … … 15039 15127 pop bx ; 5b 15040 15128 retn ; c3 15041 vds_build_sg_list_: ; 0xf9f 43LB 0x7915129 vds_build_sg_list_: ; 0xf9fef LB 0x79 15042 15130 push bp ; 55 15043 15131 mov bp, sp ; 89 e5 … … 15053 15141 mov bx, word [bp+006h] ; 8b 5e 06 15054 15142 mov word [es:di+002h], bx ; 26 89 5d 02 15055 call 09f 25h ; e8 c3 ff15143 call 09fd1h ; e8 c3 ff 15056 15144 mov es, si ; 8e c6 15057 15145 mov word [es:di+004h], ax ; 26 89 45 04 15058 15146 mov word [es:di+006h], dx ; 26 89 55 06 15059 15147 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15060 call 09f 08h ; e8 93 ff15148 call 09fb4h ; e8 93 ff 15061 15149 test ax, ax ; 85 c0 15062 je short 0 9f8ch ; 74 1315150 je short 0a038h ; 74 13 15063 15151 mov es, si ; 8e c6 15064 15152 mov ax, 08105h ; b8 05 81 15065 15153 mov dx, strict word 00000h ; ba 00 00 15066 15154 int 04bh ; cd 4b 15067 jc near 0 9f89h ; 0f 82 02 0015155 jc near 0a035h ; 0f 82 02 00 15068 15156 db 032h, 0c0h 15069 15157 ; xor al, al ; 32 c0 15070 15158 cbw ; 98 15071 jmp short 0 9fb3h ; eb 2715159 jmp short 0a05fh ; eb 27 15072 15160 mov es, si ; 8e c6 15073 15161 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15086 15174 pop bp ; 5d 15087 15175 retn 00004h ; c2 04 00 15088 vds_free_sg_list_: ; 0xf 9fbc LB 0x3415176 vds_free_sg_list_: ; 0xfa068 LB 0x38 15089 15177 push bp ; 55 15090 15178 mov bp, sp ; 89 e5 … … 15092 15180 push di ; 57 15093 15181 mov bx, ax ; 89 c3 15094 call 09f 08h ; e8 42 ff15182 call 09fb4h ; e8 42 ff 15095 15183 test ax, ax ; 85 c0 15096 je short 0 9fddh ; 74 1315184 je short 0a089h ; 74 13 15097 15185 mov di, bx ; 89 df 15098 15186 mov es, dx ; 8e c2 … … 15100 15188 mov dx, strict word 00000h ; ba 00 00 15101 15189 int 04bh ; cd 4b 15102 jc near 0 9fdch ; 0f 82 02 0015190 jc near 0a088h ; 0f 82 02 00 15103 15191 db 032h, 0c0h 15104 15192 ; xor al, al ; 32 c0 … … 15111 15199 pop bp ; 5d 15112 15200 retn ; c3 15113 times 0x 4db 015114 __U4M: ; 0xf 9ff0 LB 0x4015201 times 0x8 db 0 15202 __U4M: ; 0xfa0a0 LB 0x40 15115 15203 pushfw ; 9c 15116 15204 push eax ; 66 50 … … 15138 15226 retn ; c3 15139 15227 times 0xf db 0 15140 __U4D: ; 0xfa0 30 LB 0x4015228 __U4D: ; 0xfa0e0 LB 0x40 15141 15229 pushfw ; 9c 15142 15230 push eax ; 66 50 … … 15169 15257 retn ; c3 15170 15258 times 0x7 db 0 15171 __U8RS: ; 0xfa 070 LB 0x1015259 __U8RS: ; 0xfa120 LB 0x10 15172 15260 test si, si ; 85 f6 15173 je short 0a 07fh ; 74 0b15261 je short 0a12fh ; 74 0b 15174 15262 shr ax, 1 ; d1 e8 15175 15263 rcr bx, 1 ; d1 db … … 15177 15265 rcr dx, 1 ; d1 da 15178 15266 dec si ; 4e 15179 jne short 0a 074h ; 75 f515267 jne short 0a124h ; 75 f5 15180 15268 retn ; c3 15181 __U8LS: ; 0xfa 080 LB 0x1015269 __U8LS: ; 0xfa130 LB 0x10 15182 15270 test si, si ; 85 f6 15183 je short 0a 08fh ; 74 0b15271 je short 0a13fh ; 74 0b 15184 15272 sal dx, 1 ; d1 e2 15185 15273 rcl cx, 1 ; d1 d1 … … 15187 15275 rcl ax, 1 ; d1 d0 15188 15276 dec si ; 4e 15189 jne short 0a 084h ; 75 f515277 jne short 0a134h ; 75 f5 15190 15278 retn ; c3 15191 _fmemset_: ; 0xfa 090 LB 0x1015279 _fmemset_: ; 0xfa140 LB 0x10 15192 15280 push di ; 57 15193 15281 mov es, dx ; 8e c2 … … 15200 15288 retn ; c3 15201 15289 times 0x3 db 0 15202 _fmemcpy_: ; 0xfa 0a0 LB 0x3a15290 _fmemcpy_: ; 0xfa150 LB 0x3a 15203 15291 push bp ; 55 15204 15292 db 08bh, 0ech … … 15225 15313 add byte [bx+si], al ; 00 00 15226 15314 add byte [bx+si], al ; 00 00 15227 db 0f0h, 0a0h, 0f2h, 0a0h, 0f6h, 0a0h, 0f6h, 0a0h, 0f6h, 0a0h, 0f8h, 0a0h, 0f8h, 0a0h, 0fah, 0a0h 15228 db 0feh, 0a0h, 0feh, 0a0h, 000h, 0a1h, 005h, 0a1h, 007h, 0a1h 15229 apm_worker: ; 0xfa0da LB 0x3a 15315 mov AL, byte [0a2a1h] ; a0 a1 a2 15316 mov ax, word [0a1a6h] ; a1 a6 a1 15317 cmpsb ; a6 15318 mov ax, word [0a1a6h] ; a1 a6 a1 15319 test AL, strict byte 0a1h ; a8 a1 15320 test AL, strict byte 0a1h ; a8 a1 15321 stosb ; aa 15322 mov ax, word [0a1aeh] ; a1 ae a1 15323 scasb ; ae 15324 mov ax, word [0a1b0h] ; a1 b0 a1 15325 mov CH, strict byte 0a1h ; b5 a1 15326 mov BH, strict byte 0a1h ; b7 a1 15327 apm_worker: ; 0xfa18a LB 0x3a 15230 15328 sti ; fb 15231 15329 push ax ; 50 … … 15239 15337 pop ax ; 58 15240 15338 mov AH, strict byte 053h ; b4 53 15241 jnc short 0a1 10h ; 73 2515242 jmp word [cs:bp-05 f40h] ; 2e ff a6 c0 a015243 jmp short 0a1 0eh ; eb 1c15339 jnc short 0a1c0h ; 73 25 15340 jmp word [cs:bp-05e90h] ; 2e ff a6 70 a1 15341 jmp short 0a1beh ; eb 1c 15244 15342 sti ; fb 15245 15343 hlt ; f4 15246 jmp short 0a1 0eh ; eb 1815247 jmp short 0a1 0eh ; eb 1615248 jmp short 0a1 10h ; eb 1615344 jmp short 0a1beh ; eb 18 15345 jmp short 0a1beh ; eb 16 15346 jmp short 0a1c0h ; eb 16 15249 15347 mov AH, strict byte 080h ; b4 80 15250 jmp short 0a1 12h ; eb 1415251 jmp short 0a1 10h ; eb 1015348 jmp short 0a1c2h ; eb 14 15349 jmp short 0a1c0h ; eb 10 15252 15350 mov ax, 00102h ; b8 02 01 15253 jmp short 0a1 0eh ; eb 0915254 jmp short 0a1 0eh ; eb 0715351 jmp short 0a1beh ; eb 09 15352 jmp short 0a1beh ; eb 07 15255 15353 mov BL, strict byte 000h ; b3 00 15256 15354 mov cx, strict word 00000h ; b9 00 00 15257 jmp short 0a1 0eh ; eb 0015355 jmp short 0a1beh ; eb 00 15258 15356 clc ; f8 15259 15357 retn ; c3 … … 15261 15359 stc ; f9 15262 15360 retn ; c3 15263 apm_pm16_entry: ; 0xfa1 14 LB 0x1115361 apm_pm16_entry: ; 0xfa1c4 LB 0x11 15264 15362 mov AH, strict byte 002h ; b4 02 15265 15363 push DS ; 1e … … 15269 15367 add bp, strict byte 00008h ; 83 c5 08 15270 15368 mov ds, bp ; 8e dd 15271 call 0a 0dah ; e8 b8 ff15369 call 0a18ah ; e8 b8 ff 15272 15370 pop bp ; 5d 15273 15371 pop DS ; 1f 15274 15372 retf ; cb 15275 15373 15276 ; Padding 0x38 db bytes at 0xfa12515277 times 14 555db 015374 ; Padding 0x382b bytes at 0xfa1d5 15375 times 14379 db 0 15278 15376 15279 15377 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 15322 15420 add bp, strict byte 00008h ; 83 c5 08 15323 15421 push ebp ; 66 55 15324 mov bp, 0a1 16h ; bd 16 a115422 mov bp, 0a1c6h ; bd c6 a1 15325 15423 add byte [bx+si], al ; 00 00 15326 15424 push ebp ; 66 55 … … 16057 16155 call 01da8h ; e8 65 3a 16058 16156 call 02235h ; e8 ef 3e 16059 call 099 1eh ; e8 d5 b516060 call 088 02h ; e8 b6 a416157 call 099a5h ; e8 5c b6 16158 call 0886eh ; e8 22 a5 16061 16159 call 0ed2fh ; e8 e0 09 16062 16160 call 0e2d2h ; e8 80 ff … … 16946 17044 popfw ; 9d 16947 17045 jmp short 0f8a7h ; eb 13 16948 call 09a 6dh ; e8 d6 a117046 call 09af4h ; e8 5d a2 16949 17047 jmp short 0f88eh ; eb f5 16950 17048 int15_handler_mouse: ; 0xff899 LB 0x5 … … 17100 17198 cld ; fc 17101 17199 pushad ; 66 60 17102 call 09 c7dh ; e8 009e17200 call 09d04h ; e8 87 9e 17103 17201 popad ; 66 61 17104 17202 pop DS ; 1f … … 17214 17312 cpu_reset: ; 0xffff0 LB 0x10 17215 17313 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 17216 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 cah17314 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 037h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum
r67789 r67807 1 da1ff89ad5a9af36b6b7a00f1397d543*VBoxPcBios386.rom1 f85d1e93260947edc3616ca0a94b2b5f *VBoxPcBios386.rom -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm
r67789 r67807 988 988 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 989 989 _pktacc: ; 0xf006a LB 0xc 990 db 000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 00bh, 082h, 0 a6h, 091h990 db 000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 00bh, 082h, 033h, 092h 991 991 _softrst: ; 0xf0076 LB 0xc 992 992 db 000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 02eh, 03ch, 02eh, 03ch 993 993 _dskacc: ; 0xf0082 LB 0x2e 994 994 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 02ah, 046h, 02bh, 000h, 000h, 000h, 000h 995 db 039h, 080h, 022h, 081h, 0 74h, 090h, 01eh, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h995 db 039h, 080h, 022h, 081h, 001h, 091h, 0abh, 091h, 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 998 section CONST progbits vstart=0xb0 align=1 ; size=0x cdeclass=DATA group=DGROUP998 section CONST progbits vstart=0xb0 align=1 ; size=0xd40 class=DATA group=DGROUP 999 999 db 'NMI Handler called', 00ah, 000h 1000 1000 db 'INT18: BOOT FAILURE', 00ah, 000h … … 1101 1101 db 'Disk %d has an unsupported sector size of %u', 00ah, 000h 1102 1102 db 'SCSI %d-ID#%d: LCHS=%lu/%u/%u 0x%llx sectors', 00ah, 000h 1103 db 'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h, 000h 1103 db 'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h 1104 db 'scsi_pci_init', 000h 1105 db '%s: Adapter %x:%x not found, how come?!', 00ah, 000h 1106 db '%s: Adapter %x:%x found at %x, enabling BM', 00ah, 000h 1104 1107 db 'ahci_read_sectors', 000h 1105 1108 db '%s: device_id out of range %d', 00ah, 000h … … 1114 1117 db 'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h 1115 1118 1116 section CONST2 progbits vstart=0xd 8ealign=1 ; size=0x3fa class=DATA group=DGROUP1117 _bios_cvs_version_string: ; 0xf0d 8eLB 0x121119 section CONST2 progbits vstart=0xdf0 align=1 ; size=0x3fa class=DATA group=DGROUP 1120 _bios_cvs_version_string: ; 0xf0df0 LB 0x12 1118 1121 db 'VirtualBox 5.1.51', 000h 1119 _bios_prefix_string: ; 0xf0 da0LB 0x81122 _bios_prefix_string: ; 0xf0e02 LB 0x8 1120 1123 db 'BIOS: ', 000h, 000h 1121 _isotag: ; 0xf0 da8LB 0x61124 _isotag: ; 0xf0e0a LB 0x6 1122 1125 db 'CD001', 000h 1123 _eltorito: ; 0xf0 daeLB 0x181126 _eltorito: ; 0xf0e10 LB 0x18 1124 1127 db 'EL TORITO SPECIFICATION', 000h 1125 _drivetypes: ; 0xf0 dc6LB 0x281128 _drivetypes: ; 0xf0e28 LB 0x28 1126 1129 db 046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h 1127 1130 db 069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h 1128 1131 db 04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h 1129 _scan_to_scanascii: ; 0xf0 deeLB 0x37a1132 _scan_to_scanascii: ; 0xf0e50 LB 0x37a 1130 1133 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h 1131 1134 db 000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h … … 1184 1187 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h 1185 1188 db 000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h 1186 _panic_msg_keyb_buffer_full: ; 0xf11 68LB 0x201189 _panic_msg_keyb_buffer_full: ; 0xf11ca LB 0x20 1187 1190 db '%s: keyboard input buffer full', 00ah, 000h 1188 1191 1189 ; Padding 0x4 78 bytes at 0xf11881190 times 1 144db 01192 ; Padding 0x416 bytes at 0xf11ea 1193 times 1046 db 0 1191 1194 1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8 e58 class=CODE group=AUTO1195 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8f08 class=CODE group=AUTO 1193 1196 rom_scan_: ; 0xf1600 LB 0x52 1194 1197 push bp ; 55 … … 1418 1421 push bp ; 55 1419 1422 mov bp, sp ; 89 e5 1420 mov bx, 00 da0h ; bb a0 0d1423 mov bx, 00e02h ; bb 02 0e 1421 1424 mov cx, ds ; 8c d9 1422 1425 mov ax, strict word 00004h ; b8 04 00 1423 1426 call 01933h ; e8 b0 01 1424 mov ax, 00d 8eh ; b8 8e0d1427 mov ax, 00df0h ; b8 f0 0d 1425 1428 push ax ; 50 1426 1429 mov ax, 000d9h ; b8 d9 00 … … 1596 1599 mov bx, strict word 0000ah ; bb 0a 00 1597 1600 xor cx, cx ; 31 c9 1598 call 0a 0f0h ; e8 13 881601 call 0a1a0h ; e8 c3 88 1599 1602 mov word [bp-008h], ax ; 89 46 f8 1600 1603 mov cx, dx ; 89 d1 … … 1833 1836 mov dx, word [bp-026h] ; 8b 56 da 1834 1837 mov si, word [bp-01eh] ; 8b 76 e2 1835 call 0a1 20h ; e8 08 861838 call 0a1d0h ; e8 b8 86 1836 1839 mov ax, dx ; 89 d0 1837 1840 xor ah, dh ; 30 f4 … … 2294 2297 mov dx, word [es:si] ; 26 8b 14 2295 2298 mov si, strict word 00018h ; be 18 00 2296 call 0a1 20h ; e8 8e 812299 call 0a1d0h ; e8 3e 82 2297 2300 xor dh, dh ; 30 f6 2298 2301 mov word [bp-014h], dx ; 89 56 ec … … 2304 2307 mov dx, word [es:si] ; 26 8b 14 2305 2308 mov si, strict word 00020h ; be 20 00 2306 call 0a1 20h ; e8 6e 812309 call 0a1d0h ; e8 1e 82 2307 2310 mov bx, dx ; 89 d3 2308 2311 mov word [bp-010h], dx ; 89 56 f0 … … 2336 2339 mov dx, word [es:si] ; 26 8b 14 2337 2340 mov si, strict word 00008h ; be 08 00 2338 call 0a1 20h ; e8 1b 812341 call 0a1d0h ; e8 cb 81 2339 2342 mov word [bp-010h], dx ; 89 56 f0 2340 2343 mov bx, word [bp-016h] ; 8b 5e ea … … 2345 2348 mov dx, word [es:si] ; 26 8b 14 2346 2349 mov si, strict word 00018h ; be 18 00 2347 call 0a1 20h ; e8 fd 802350 call 0a1d0h ; e8 ad 81 2348 2351 mov bl, dl ; 88 d3 2349 2352 and bl, 00fh ; 80 e3 0f … … 2742 2745 lea ax, [bp-03eh] ; 8d 46 c2 2743 2746 call 05b7fh ; e8 7e 37 2744 mov bx, 00 da0h ; bb a0 0d2747 mov bx, 00e02h ; bb 02 0e 2745 2748 mov cx, ds ; 8c d9 2746 2749 mov ax, strict word 00004h ; b8 04 00 … … 2923 2926 mov dx, word [es:di+036h] ; 26 8b 55 36 2924 2927 mov si, strict word 0000bh ; be 0b 00 2925 call 0a1 20h ; e8 21 7b2928 call 0a1d0h ; e8 d1 7b 2926 2929 mov word [bp-02ah], dx ; 89 56 d6 2927 2930 mov word [bp-026h], cx ; 89 4e da … … 3215 3218 mov dx, word [bp-022h] ; 8b 56 de 3216 3219 mov si, strict word 00018h ; be 18 00 3217 call 0a1 20h ; e8 44 783220 call 0a1d0h ; e8 f4 78 3218 3221 xor dh, dh ; 30 f6 3219 3222 mov word [bp-014h], dx ; 89 56 ec … … 3223 3226 mov dx, word [bp-022h] ; 8b 56 de 3224 3227 mov si, strict word 00020h ; be 20 00 3225 call 0a1 20h ; e8 2d 783228 call 0a1d0h ; e8 dd 78 3226 3229 mov bx, dx ; 89 d3 3227 3230 mov word [bp-024h], dx ; 89 56 dc … … 3257 3260 mov dx, word [bp-022h] ; 8b 56 de 3258 3261 mov si, strict word 00008h ; be 08 00 3259 call 0a1 20h ; e8 d9 773262 call 0a1d0h ; e8 89 78 3260 3263 mov word [bp-00ch], ax ; 89 46 f4 3261 3264 mov word [bp-020h], bx ; 89 5e e0 … … 3264 3267 mov word [bp-024h], dx ; 89 56 dc 3265 3268 mov si, strict word 00010h ; be 10 00 3266 call 0a1 20h ; e8 c4 773269 call 0a1d0h ; e8 74 78 3267 3270 mov word [bp-022h], dx ; 89 56 de 3268 3271 mov ax, dx ; 89 d0 … … 3531 3534 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 3532 3535 jne short 02bf6h ; 75 23 3533 mov bx, 00 da0h ; bb a0 0d3536 mov bx, 00e02h ; bb 02 0e 3534 3537 mov cx, ds ; 8c d9 3535 3538 mov ax, strict word 00004h ; b8 04 00 … … 4379 4382 cmp bh, 048h ; 80 ff 48 4380 4383 jbe short 0333ch ; 76 37 4381 mov bx, 00 da0h ; bb a0 0d4384 mov bx, 00e02h ; bb 02 0e 4382 4385 mov cx, ds ; 8c d9 4383 4386 mov ax, strict word 00004h ; b8 04 00 … … 5315 5318 mov byte [es:bx], 000h ; 26 c6 07 00 5316 5319 jmp near 03533h ; e9 5d f9 5317 mov bx, 00 da0h ; bb a0 0d5320 mov bx, 00e02h ; bb 02 0e 5318 5321 mov cx, ds ; 8c d9 5319 5322 mov ax, strict word 00004h ; b8 04 00 … … 5417 5420 cmp ax, strict word 0004ah ; 3d 4a 00 5418 5421 jne short 03cc8h ; 75 23 5419 mov bx, 00 da0h ; bb a0 0d5422 mov bx, 00e02h ; bb 02 0e 5420 5423 mov cx, ds ; 8c d9 5421 5424 mov ax, strict word 00004h ; b8 04 00 … … 5525 5528 pop bp ; 5d 5526 5529 retn ; c3 5527 mov bx, 00 da0h ; bb a0 0d5530 mov bx, 00e02h ; bb 02 0e 5528 5531 mov cx, ds ; 8c d9 5529 5532 mov ax, strict word 00004h ; b8 04 00 … … 5613 5616 mov dx, ss ; 8c d2 5614 5617 lea ax, [bp-026h] ; 8d 46 da 5615 call 0a1 40h ; e8 9d 625618 call 0a1f0h ; e8 4d 63 5616 5619 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5617 5620 mov ax, strict word 00011h ; b8 11 00 … … 5676 5679 jnc short 03f51h ; 73 10 5677 5680 mov al, byte [bp+di-00825h] ; 8a 83 db f7 5678 cmp al, byte [di+00 da8h] ; 3a 85 a8 0d5681 cmp al, byte [di+00e0ah] ; 3a 85 0a 0e 5679 5682 je short 03f3bh ; 74 f0 5680 5683 mov ax, strict word 00005h ; b8 05 00 … … 5686 5689 jnc short 03f6bh ; 73 10 5687 5690 mov al, byte [bp+di-0081fh] ; 8a 83 e1 f7 5688 cmp al, byte [di+00 daeh] ; 3a 85 ae 0d5691 cmp al, byte [di+00e10h] ; 3a 85 10 0e 5689 5692 je short 03f55h ; 74 f0 5690 5693 mov ax, strict word 00006h ; b8 06 00 … … 5987 5990 cmp ax, dx ; 39 d0 5988 5991 je short 04308h ; 74 2a 5989 mov bx, 00 da0h ; bb a0 0d5992 mov bx, 00e02h ; bb 02 0e 5990 5993 mov cx, ds ; 8c d9 5991 5994 mov ax, strict word 00004h ; b8 04 00 … … 6105 6108 xor dl, dl ; 30 d2 6106 6109 xor cx, cx ; 31 c9 6107 call 0a 0d0h ; e8 b8 5c6110 call 0a180h ; e8 68 5d 6108 6111 xor bx, bx ; 31 db 6109 6112 add ax, si ; 01 f0 … … 6111 6114 mov bx, di ; 89 fb 6112 6115 xor cx, cx ; 31 c9 6113 call 0a 0d0h ; e8 ab 5c6116 call 0a180h ; e8 5b 5d 6114 6117 mov bx, ax ; 89 c3 6115 6118 mov ax, word [bp-00ah] ; 8b 46 f6 … … 6146 6149 mov dx, ss ; 8c d2 6147 6150 lea ax, [bp-030h] ; 8d 46 d0 6148 call 0a1 40h ; e8 c4 5c6151 call 0a1f0h ; e8 74 5d 6149 6152 mov word [bp-030h], strict word 00028h ; c7 46 d0 28 00 6150 6153 mov ax, word [bp-00eh] ; 8b 46 f2 … … 6216 6219 test al, al ; 84 c0 6217 6220 je short 0456dh ; 74 38 6218 mov bx, 00 da0h ; bb a0 0d6221 mov bx, 00e02h ; bb 02 0e 6219 6222 mov cx, ds ; 8c d9 6220 6223 mov ax, strict word 00004h ; b8 04 00 … … 6318 6321 mov word [bp+016h], bx ; 89 5e 16 6319 6322 jmp near 04571h ; e9 33 ff 6320 mov bx, 00 da0h ; bb a0 0d6323 mov bx, 00e02h ; bb 02 0e 6321 6324 mov cx, ds ; 8c d9 6322 6325 mov ax, strict word 00004h ; b8 04 00 … … 6442 6445 mov word [bp+016h], strict word 00007h ; c7 46 16 07 00 6443 6446 jmp near 04c0ch ; e9 49 04 6444 mov bx, 00 da0h ; bb a0 0d6447 mov bx, 00e02h ; bb 02 0e 6445 6448 mov cx, ds ; 8c d9 6446 6449 mov ax, strict word 00004h ; b8 04 00 … … 6500 6503 mov dx, ss ; 8c d2 6501 6504 lea ax, [bp-02eh] ; 8d 46 d2 6502 call 0a1 40h ; e8 dc 586505 call 0a1f0h ; e8 8c 59 6503 6506 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 6504 6507 mov ax, word [bp-014h] ; 8b 46 ec … … 6557 6560 cmp byte [bp-016h], 000h ; 80 7e ea 00 6558 6561 je short 04950h ; 74 57 6559 mov bx, 00 da0h ; bb a0 0d6562 mov bx, 00e02h ; bb 02 0e 6560 6563 mov cx, ds ; 8c d9 6561 6564 mov ax, strict word 00004h ; b8 04 00 … … 6867 6870 je short 04caah ; 74 27 6868 6871 mov dx, strict word 00001h ; ba 01 00 6869 mov bx, 00 da0h ; bb a0 0d6872 mov bx, 00e02h ; bb 02 0e 6870 6873 mov cx, ds ; 8c d9 6871 6874 mov ax, strict word 00004h ; b8 04 00 … … 6874 6877 mov dx, strict word 0000ah ; ba 0a 00 6875 6878 imul dx ; f7 ea 6876 add ax, 00 dc6h ; 05 c6 0d6879 add ax, 00e28h ; 05 28 0e 6877 6880 push ax ; 50 6878 6881 mov ax, 00494h ; b8 94 04 … … 6897 6900 test al, al ; 84 c0 6898 6901 je short 04ce2h ; 74 1f 6899 mov bx, 00 da0h ; bb a0 0d6902 mov bx, 00e02h ; bb 02 0e 6900 6903 mov cx, ds ; 8c d9 6901 6904 mov ax, strict word 00004h ; b8 04 00 6902 6905 call 01933h ; e8 65 cc 6903 mov cx, 00 ddah ; b9 da 0d6906 mov cx, 00e3ch ; b9 3c 0e 6904 6907 push cx ; 51 6905 6908 mov cx, 004a8h ; b9 a8 04 … … 6912 6915 test dl, dl ; 84 d2 6913 6916 je short 04cf6h ; 74 10 6914 mov bx, 00 da0h ; bb a0 0d6917 mov bx, 00e02h ; bb 02 0e 6915 6918 mov cx, ds ; 8c d9 6916 6919 mov ax, strict word 00004h ; b8 04 00 6917 6920 call 01933h ; e8 42 cc 6918 mov cx, 00 de4h ; b9 e4 0d6921 mov cx, 00e46h ; b9 46 0e 6919 6922 jmp short 04cd1h ; eb db 6920 6923 test bl, 080h ; f6 c3 80 6921 6924 je short 04d0ch ; 74 11 6922 mov bx, 00 da0h ; bb a0 0d6925 mov bx, 00e02h ; bb 02 0e 6923 6926 mov cx, ds ; 8c d9 6924 6927 mov ax, strict word 00004h ; b8 04 00 6925 6928 call 01933h ; e8 2d cc 6926 6929 push si ; 56 6927 mov cx, 00 dd0h ; b9 d0 0d6930 mov cx, 00e32h ; b9 32 0e 6928 6931 jmp short 04d1bh ; eb 0f 6929 mov bx, 00 da0h ; bb a0 0d6932 mov bx, 00e02h ; bb 02 0e 6930 6933 mov cx, ds ; 8c d9 6931 6934 mov ax, strict word 00004h ; b8 04 00 6932 6935 call 01933h ; e8 1c cc 6933 6936 push si ; 56 6934 mov cx, 00 dc6h ; b9 c6 0d6937 mov cx, 00e28h ; b9 28 0e 6935 6938 push cx ; 51 6936 6939 mov cx, 004bdh ; b9 bd 04 … … 6963 6966 push dx ; 52 6964 6967 mov dx, ax ; 89 c2 6965 mov bx, 00 da0h ; bb a0 0d6968 mov bx, 00e02h ; bb 02 0e 6966 6969 mov cx, ds ; 8c d9 6967 6970 mov ax, strict word 00004h ; b8 04 00 … … 7053 7056 mov byte [bp-008h], al ; 88 46 f8 7054 7057 mov byte [bp-00ah], al ; 88 46 f6 7055 mov bx, 00 da0h ; bb a0 0d7058 mov bx, 00e02h ; bb 02 0e 7056 7059 mov cx, ds ; 8c d9 7057 7060 mov ax, strict word 00004h ; b8 04 00 … … 7621 7624 test al, al ; 84 c0 7622 7625 jne short 05351h ; 75 1c 7623 mov bx, 00 da0h ; bb a0 0d7626 mov bx, 00e02h ; bb 02 0e 7624 7627 mov cx, ds ; 8c d9 7625 7628 mov ax, strict word 00004h ; b8 04 00 … … 7973 7976 cmp byte [bp-004h], 058h ; 80 7e fc 58 7974 7977 jbe short 056e7h ; 76 22 7975 mov bx, 00 da0h ; bb a0 0d7978 mov bx, 00e02h ; bb 02 0e 7976 7979 mov cx, ds ; 8c d9 7977 7980 mov ax, strict word 00004h ; b8 04 00 … … 7995 7998 imul bx ; f7 eb 7996 7999 mov bx, ax ; 89 c3 7997 mov al, byte [bx+00 df4h] ; 8a 87 f4 0d8000 mov al, byte [bx+00e56h] ; 8a 87 56 0e 7998 8001 mov byte [bp-012h], al ; 88 46 ee 7999 mov al, byte [bx+00 df5h] ; 8a 87 f5 0d8002 mov al, byte [bx+00e57h] ; 8a 87 57 0e 8000 8003 jmp near 057bah ; e9 b2 00 8001 8004 test AL, strict byte 004h ; a8 04 … … 8006 8009 imul dx ; f7 ea 8007 8010 mov bx, ax ; 89 c3 8008 mov al, byte [bx+00 df2h] ; 8a 87 f2 0d8011 mov al, byte [bx+00e54h] ; 8a 87 54 0e 8009 8012 mov byte [bp-012h], al ; 88 46 ee 8010 mov al, byte [bx+00 df3h] ; 8a 87 f3 0d8013 mov al, byte [bx+00e55h] ; 8a 87 55 0e 8011 8014 jmp near 057bah ; e9 94 00 8012 8015 mov al, byte [bp-010h] ; 8a 46 f0 … … 8032 8035 imul dx ; f7 ea 8033 8036 mov bx, ax ; 89 c3 8034 mov al, byte [bx+00 df6h] ; 8a 87 f6 0d8037 mov al, byte [bx+00e58h] ; 8a 87 58 0e 8035 8038 xor ah, ah ; 30 e4 8036 8039 mov dx, ax ; 89 c2 … … 8038 8041 test ax, dx ; 85 d0 8039 8042 je short 05777h ; 74 0d 8040 mov al, byte [bx+00 deeh] ; 8a 87 ee 0d8043 mov al, byte [bx+00e50h] ; 8a 87 50 0e 8041 8044 mov byte [bp-012h], al ; 88 46 ee 8042 mov al, byte [bx+00 defh] ; 8a 87 ef 0d8045 mov al, byte [bx+00e51h] ; 8a 87 51 0e 8043 8046 jmp short 05782h ; eb 0b 8044 mov al, byte [bx+00 df0h] ; 8a 87 f0 0d8047 mov al, byte [bx+00e52h] ; 8a 87 52 0e 8045 8048 mov byte [bp-012h], al ; 88 46 ee 8046 mov al, byte [bx+00 df1h] ; 8a 87 f1 0d8049 mov al, byte [bx+00e53h] ; 8a 87 53 0e 8047 8050 mov byte [bp-004h], al ; 88 46 fc 8048 8051 jmp short 057bdh ; eb 36 … … 8052 8055 imul bx ; f7 eb 8053 8056 mov bx, ax ; 89 c3 8054 mov al, byte [bx+00 df6h] ; 8a 87 f6 0d8057 mov al, byte [bx+00e58h] ; 8a 87 58 0e 8055 8058 xor ah, ah ; 30 e4 8056 8059 mov dx, ax ; 89 c2 … … 8058 8061 test ax, dx ; 85 d0 8059 8062 je short 057afh ; 74 0d 8060 mov al, byte [bx+00 df0h] ; 8a 87 f0 0d8063 mov al, byte [bx+00e52h] ; 8a 87 52 0e 8061 8064 mov byte [bp-012h], al ; 88 46 ee 8062 mov al, byte [bx+00 df1h] ; 8a 87 f1 0d8065 mov al, byte [bx+00e53h] ; 8a 87 53 0e 8063 8066 jmp short 057bah ; eb 0b 8064 mov al, byte [bx+00 deeh] ; 8a 87 ee 0d8067 mov al, byte [bx+00e50h] ; 8a 87 50 0e 8065 8068 mov byte [bp-012h], al ; 88 46 ee 8066 mov al, byte [bx+00 defh] ; 8a 87 ef 0d8069 mov al, byte [bx+00e51h] ; 8a 87 51 0e 8067 8070 mov byte [bp-004h], al ; 88 46 fc 8068 8071 cmp byte [bp-004h], 000h ; 80 7e fc 00 … … 8070 8073 cmp byte [bp-012h], 000h ; 80 7e ee 00 8071 8074 jne short 057e2h ; 75 19 8072 mov bx, 00 da0h ; bb a0 0d8075 mov bx, 00e02h ; bb 02 0e 8073 8076 mov cx, ds ; 8c d9 8074 8077 mov ax, strict word 00004h ; b8 04 00 … … 8273 8276 mov word [bp+012h], ax ; 89 46 12 8274 8277 jmp near 059d7h ; e9 4a 00 8275 mov bx, 00 da0h ; bb a0 0d8278 mov bx, 00e02h ; bb 02 0e 8276 8279 mov cx, ds ; 8c d9 8277 8280 mov ax, strict word 00004h ; b8 04 00 … … 8287 8290 call 01976h ; e8 cb bf 8288 8291 add sp, strict byte 00006h ; 83 c4 06 8289 mov bx, 00 da0h ; bb a0 0d8292 mov bx, 00e02h ; bb 02 0e 8290 8293 mov cx, ds ; 8c d9 8291 8294 mov ax, strict word 00004h ; b8 04 00 … … 8501 8504 mov dx, word [bp+00ch] ; 8b 56 0c 8502 8505 mov si, strict word 00020h ; be 20 00 8503 call 0a1 20h ; e8 72 458506 call 0a1d0h ; e8 22 46 8504 8507 test ax, ax ; 85 c0 8505 8508 jne short 05bbeh ; 75 0c … … 8539 8542 mov bx, strict word 0003fh ; bb 3f 00 8540 8543 xor cx, cx ; 31 c9 8541 call 0a 0d0h ; e8 c9 448544 call 0a180h ; e8 79 45 8542 8545 mov bx, ax ; 89 c3 8543 8546 mov cx, dx ; 89 d1 8544 8547 mov ax, word [bp-004h] ; 8b 46 fc 8545 8548 mov dx, si ; 89 f2 8546 call 0a 0f0h ; e8 dd 448549 call 0a1a0h ; e8 8d 45 8547 8550 mov word [es:di+002h], ax ; 26 89 45 02 8548 8551 cmp ax, 00400h ; 3d 00 04 … … 8695 8698 test ax, ax ; 85 c0 8696 8699 jne short 05d8eh ; 75 29 8697 mov bx, 00 da0h ; bb a0 0d8700 mov bx, 00e02h ; bb 02 0e 8698 8701 mov cx, ds ; 8c d9 8699 8702 mov ax, strict word 00004h ; b8 04 00 … … 8729 8732 cmp di, dx ; 39 d7 8730 8733 jbe short 05dedh ; 76 31 8731 mov bx, 00 da0h ; bb a0 0d8734 mov bx, 00e02h ; bb 02 0e 8732 8735 mov cx, ds ; 8c d9 8733 8736 mov ax, strict word 00004h ; b8 04 00 … … 8773 8776 mov bx, cx ; 89 cb 8774 8777 xor cx, cx ; 31 c9 8775 call 0a 0d0h ; e8 a4 428778 call 0a180h ; e8 54 43 8776 8779 xor bx, bx ; 31 db 8777 8780 add ax, word [bp-008h] ; 03 46 f8 … … 8779 8782 mov bx, word [bp-00eh] ; 8b 5e f2 8780 8783 xor cx, cx ; 31 c9 8781 call 0a 0d0h ; e8 95 428784 call 0a180h ; e8 45 43 8782 8785 xor bx, bx ; 31 db 8783 8786 add ax, di ; 01 f8 … … 8837 8840 test dl, dl ; 84 d2 8838 8841 je short 05f36h ; 74 4a 8839 mov bx, 00 da0h ; bb a0 0d8842 mov bx, 00e02h ; bb 02 0e 8840 8843 mov cx, ds ; 8c d9 8841 8844 mov ax, strict word 00004h ; b8 04 00 … … 8858 8861 or ah, 00ch ; 80 cc 0c 8859 8862 jmp near 0607ch ; e9 5f 01 8860 mov bx, 00 da0h ; bb a0 0d8863 mov bx, 00e02h ; bb 02 0e 8861 8864 mov cx, ds ; 8c d9 8862 8865 mov ax, strict word 00004h ; b8 04 00 … … 8953 8956 mov bx, word [bp-008h] ; 8b 5e f8 8954 8957 xor cx, cx ; 31 c9 8955 call 0a 0d0h ; e8 be 408958 call 0a180h ; e8 6e 41 8956 8959 mov bx, di ; 89 fb 8957 8960 xor cx, cx ; 31 c9 8958 call 0a 0d0h ; e8 b7 408961 call 0a180h ; e8 67 41 8959 8962 mov word [bp-010h], ax ; 89 46 f0 8960 8963 mov word [bp-004h], dx ; 89 56 fc … … 8966 8969 mov word [bp+016h], ax ; 89 46 16 8967 8970 jmp near 05f3ah ; e9 07 ff 8968 mov bx, 00 da0h ; bb a0 0d8971 mov bx, 00e02h ; bb 02 0e 8969 8972 mov cx, ds ; 8c d9 8970 8973 mov ax, strict word 00004h ; b8 04 00 … … 8982 8985 add sp, strict byte 00008h ; 83 c4 08 8983 8986 jmp near 05f36h ; e9 dd fe 8984 mov bx, 00 da0h ; bb a0 0d8987 mov bx, 00e02h ; bb 02 0e 8985 8988 mov cx, ds ; 8c d9 8986 8989 mov ax, strict word 00004h ; b8 04 00 … … 9089 9092 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 9090 9093 jmp near 06597h ; e9 31 04 9091 mov bx, 00 da0h ; bb a0 0d9094 mov bx, 00e02h ; bb 02 0e 9092 9095 mov cx, ds ; 8c d9 9093 9096 mov ax, strict word 00004h ; b8 04 00 … … 9115 9118 xor bx, bx ; 31 db 9116 9119 mov si, strict word 00020h ; be 20 00 9117 call 0a1 30h ; e8 7c 3f9120 call 0a1e0h ; e8 2c 40 9118 9121 mov word [bp-00eh], ax ; 89 46 f2 9119 9122 mov word [bp-010h], bx ; 89 5e f0 … … 9145 9148 cmp si, word [es:bx+036h] ; 26 3b 77 36 9146 9149 jc short 0622ch ; 72 26 9147 mov bx, 00 da0h ; bb a0 0d9150 mov bx, 00e02h ; bb 02 0e 9148 9151 mov cx, ds ; 8c d9 9149 9152 mov ax, strict word 00004h ; b8 04 00 … … 9207 9210 test dl, dl ; 84 d2 9208 9211 je short 0631ah ; 74 54 9209 mov bx, 00 da0h ; bb a0 0d9212 mov bx, 00e02h ; bb 02 0e 9210 9213 mov cx, ds ; 8c d9 9211 9214 mov ax, strict word 00004h ; b8 04 00 … … 9280 9283 mov dx, si ; 89 f2 9281 9284 mov si, strict word 00020h ; be 20 00 9282 call 0a1 20h ; e8 75 3d9285 call 0a1d0h ; e8 25 3e 9283 9286 mov bx, di ; 89 fb 9284 9287 mov word [es:bx+014h], dx ; 26 89 57 14 … … 9644 9647 mov bx, strict word 0000fh ; bb 0f 00 9645 9648 xor cx, cx ; 31 c9 9646 call 0a 0f0h ; e8 a7 399649 call 0a1a0h ; e8 57 3a 9647 9650 mov cx, ax ; 89 c1 9648 9651 mov bx, dx ; 89 d3 … … 9808 9811 mov word [bp+00ch], ax ; 89 46 0c 9809 9812 jmp near 0691bh ; e9 2e 00 9810 mov bx, 00 da0h ; bb a0 0d9813 mov bx, 00e02h ; bb 02 0e 9811 9814 mov cx, ds ; 8c d9 9812 9815 mov ax, strict word 00004h ; b8 04 00 … … 9997 10000 retf ; cb 9998 10001 jmp near 0691bh ; e9 53 fe 9999 mov bx, 00 da0h ; bb a0 0d10002 mov bx, 00e02h ; bb 02 0e 10000 10003 mov cx, ds ; 8c d9 10001 10004 mov ax, strict word 00004h ; b8 04 00 … … 10040 10043 or byte [bp+018h], 001h ; 80 4e 18 01 10041 10044 jmp near 0691bh ; e9 d8 fd 10042 mov bx, 00 da0h ; bb a0 0d10045 mov bx, 00e02h ; bb 02 0e 10043 10046 mov cx, ds ; 8c d9 10044 10047 mov ax, strict word 00004h ; b8 04 00 … … 10232 10235 mov word [bp+014h], strict word 00002h ; c7 46 14 02 00 10233 10236 jmp short 06d04h ; eb d3 10234 mov bx, 00 da0h ; bb a0 0d10237 mov bx, 00e02h ; bb 02 0e 10235 10238 mov cx, ds ; 8c d9 10236 10239 mov ax, strict word 00004h ; b8 04 00 … … 10879 10882 mov ax, 008eeh ; b8 ee 08 10880 10883 push ax ; 50 10881 mov ax, 011 68h ; b8 681110884 mov ax, 011cah ; b8 ca 11 10882 10885 push ax ; 50 10883 10886 mov ax, strict word 00007h ; b8 07 00 … … 10963 10966 mov ax, 008f8h ; b8 f8 08 10964 10967 push ax ; 50 10965 mov ax, 011 68h ; b8 681110968 mov ax, 011cah ; b8 ca 11 10966 10969 push ax ; 50 10967 10970 mov ax, strict word 00007h ; b8 07 00 … … 12526 12529 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12527 12530 jne short 08256h ; 75 23 12528 mov bx, 00 da0h ; bb a0 0d12531 mov bx, 00e02h ; bb 02 0e 12529 12532 mov cx, ds ; 8c d9 12530 12533 mov ax, strict word 00004h ; b8 04 00 … … 12689 12692 mov dx, ss ; 8c d2 12690 12693 lea ax, [bp-048h] ; 8d 46 b8 12691 call 0a1 40h ; e8 8d 1d12694 call 0a1f0h ; e8 3d 1e 12692 12695 mov byte [bp-048h], 09eh ; c6 46 b8 9e 12693 12696 mov byte [bp-047h], 010h ; c6 46 b9 10 … … 12759 12762 cmp bx, 00200h ; 81 fb 00 02 12760 12763 je short 08487h ; 74 23 12761 mov bx, 00 da0h ; bb a0 0d12764 mov bx, 00e02h ; bb 02 0e 12762 12765 mov cx, ds ; 8c d9 12763 12766 mov ax, strict word 00004h ; b8 04 00 … … 12827 12830 mov dx, word [bp-024h] ; 8b 56 dc 12828 12831 mov si, strict word 0000ch ; be 0c 00 12829 call 0a1 20h ; e8 1d 1c12832 call 0a1d0h ; e8 cd 1c 12830 12833 mov word [bp-02ah], ax ; 89 46 d6 12831 12834 mov word [bp-02ch], bx ; 89 5e d4 … … 12849 12852 mov dx, word [bp-024h] ; 8b 56 dc 12850 12853 mov si, strict word 00006h ; be 06 00 12851 call 0a1 20h ; e8 dc 1b12854 call 0a1d0h ; e8 8c 1c 12852 12855 mov si, word [bp-018h] ; 8b 76 e8 12853 12856 add si, dx ; 01 d6 … … 12867 12870 mov dx, si ; 89 f2 12868 12871 mov si, strict word 00008h ; be 08 00 12869 call 0a1 20h ; e8 ac 1b12872 call 0a1d0h ; e8 5c 1c 12870 12873 mov word [bp-02eh], bx ; 89 5e d2 12871 12874 mov word [bp-030h], cx ; 89 4e d0 … … 12876 12879 mov dx, word [bp-01eh] ; 8b 56 e2 12877 12880 mov si, strict word 00010h ; be 10 00 12878 call 0a1 20h ; e8 91 1b12881 call 0a1d0h ; e8 41 1c 12879 12882 mov si, word [bp-032h] ; 8b 76 ce 12880 12883 add si, dx ; 01 d6 … … 12901 12904 mov dx, word [bp-024h] ; 8b 56 dc 12902 12905 mov si, strict word 0000bh ; be 0b 00 12903 call 0a1 20h ; e8 47 1b12906 call 0a1d0h ; e8 f7 1b 12904 12907 mov si, dx ; 89 d6 12905 12908 mov word [bp-026h], cx ; 89 4e da … … 12946 12949 mov word [es:bx+02ch], si ; 26 89 77 2c 12947 12950 mov word [es:bx+032h], si ; 26 89 77 32 12948 mov bx, 00 da0h ; bb a0 0d12951 mov bx, 00e02h ; bb 02 0e 12949 12952 mov cx, ds ; 8c d9 12950 12953 mov ax, strict word 00004h ; b8 04 00 … … 13005 13008 inc byte [bp-00ch] ; fe 46 f4 13006 13009 jmp near 087a2h ; e9 97 00 13007 mov bx, 00 da0h ; bb a0 0d13010 mov bx, 00e02h ; bb 02 0e 13008 13011 mov cx, ds ; 8c d9 13009 13012 mov ax, strict word 00004h ; b8 04 00 … … 13122 13125 pop bp ; 5d 13123 13126 retn ; c3 13124 _scsi_init: ; 0xf8846 LB 0x66 13127 scsi_pci_init_: ; 0xf8846 LB 0x72 13128 push bp ; 55 13129 mov bp, sp ; 89 e5 13130 push bx ; 53 13131 push cx ; 51 13132 push si ; 56 13133 push di ; 57 13134 mov di, ax ; 89 c7 13135 mov si, dx ; 89 d6 13136 call 09fceh ; e8 7a 17 13137 mov dx, ax ; 89 c2 13138 cmp ax, strict word 0ffffh ; 3d ff ff 13139 jne short 0887ch ; 75 21 13140 mov bx, 00e02h ; bb 02 0e 13141 mov cx, ds ; 8c d9 13142 mov ax, strict word 00004h ; b8 04 00 13143 call 01933h ; e8 cd 90 13144 push si ; 56 13145 push di ; 57 13146 mov ax, 00c61h ; b8 61 0c 13147 push ax ; 50 13148 mov ax, 00c6fh ; b8 6f 0c 13149 push ax ; 50 13150 mov ax, strict word 00004h ; b8 04 00 13151 push ax ; 50 13152 call 01976h ; e8 ff 90 13153 add sp, strict byte 0000ah ; 83 c4 0a 13154 jmp short 088afh ; eb 33 13155 mov bx, 00e02h ; bb 02 0e 13156 mov cx, ds ; 8c d9 13157 mov ax, strict word 00004h ; b8 04 00 13158 call 01933h ; e8 ac 90 13159 push dx ; 52 13160 push si ; 56 13161 push di ; 57 13162 mov ax, 00c61h ; b8 61 0c 13163 push ax ; 50 13164 mov ax, 00c98h ; b8 98 0c 13165 push ax ; 50 13166 mov ax, strict word 00004h ; b8 04 00 13167 push ax ; 50 13168 call 01976h ; e8 dd 90 13169 add sp, strict byte 0000ch ; 83 c4 0c 13170 mov al, dl ; 88 d0 13171 xor ah, ah ; 30 e4 13172 mov si, ax ; 89 c6 13173 mov al, dh ; 88 f0 13174 mov cx, strict word 00007h ; b9 07 00 13175 mov bx, strict word 00004h ; bb 04 00 13176 mov dx, si ; 89 f2 13177 call 0a07ch ; e8 cd 17 13178 lea sp, [bp-008h] ; 8d 66 f8 13179 pop di ; 5f 13180 pop si ; 5e 13181 pop cx ; 59 13182 pop bx ; 5b 13183 pop bp ; 5d 13184 retn ; c3 13185 _scsi_init: ; 0xf88b8 LB 0x81 13125 13186 push bp ; 55 13126 13187 mov bp, sp ; 89 e5 13127 13188 mov dx, strict word 0000eh ; ba 0e 00 13128 13189 mov ax, strict word 00040h ; b8 40 00 13129 call 0166eh ; e8 1c 8e13190 call 0166eh ; e8 aa 8d 13130 13191 mov bx, 00122h ; bb 22 01 13131 13192 mov es, ax ; 8e c0 … … 13138 13199 ; sub ah, ah ; 2a e4 13139 13200 cmp AL, strict byte 055h ; 3c 55 13140 jne short 088 76h ; 75 0c13201 jne short 088f1h ; 75 15 13141 13202 xor al, al ; 30 c0 13142 13203 mov dx, 00433h ; ba 33 04 13143 13204 out DX, AL ; ee 13144 13205 mov ax, 00430h ; b8 30 04 13145 call 0837bh ; e8 05 fb 13206 call 0837bh ; e8 93 fa 13207 mov dx, 01040h ; ba 40 10 13208 mov ax, 0104bh ; b8 4b 10 13209 call 08846h ; e8 55 ff 13146 13210 mov AL, strict byte 055h ; b0 55 13147 13211 mov dx, 00436h ; ba 36 04 … … 13151 13215 ; sub ah, ah ; 2a e4 13152 13216 cmp AL, strict byte 055h ; 3c 55 13153 jne short 08 88fh ; 75 0c13217 jne short 08913h ; 75 15 13154 13218 xor al, al ; 30 c0 13155 13219 mov dx, 00437h ; ba 37 04 13156 13220 out DX, AL ; ee 13157 13221 mov ax, 00434h ; b8 34 04 13158 call 0837bh ; e8 ec fa 13222 call 0837bh ; e8 71 fa 13223 mov dx, strict word 00030h ; ba 30 00 13224 mov ax, 01000h ; b8 00 10 13225 call 08846h ; e8 33 ff 13159 13226 mov AL, strict byte 055h ; b0 55 13160 13227 mov dx, 0043ah ; ba 3a 04 … … 13164 13231 ; sub ah, ah ; 2a e4 13165 13232 cmp AL, strict byte 055h ; 3c 55 13166 jne short 08 8a8h ; 75 0c13233 jne short 08935h ; 75 15 13167 13234 xor al, al ; 30 c0 13168 13235 mov dx, 0043bh ; ba 3b 04 13169 13236 out DX, AL ; ee 13170 13237 mov ax, 00438h ; b8 38 04 13171 call 0837bh ; e8 d3 fa 13238 call 0837bh ; e8 4f fa 13239 mov dx, strict word 00054h ; ba 54 00 13240 mov ax, 01000h ; b8 00 10 13241 call 08846h ; e8 11 ff 13172 13242 mov sp, bp ; 89 ec 13173 13243 pop bp ; 5d 13174 13244 retn ; c3 13175 ahci_ctrl_extract_bits_: ; 0xf8 8acLB 0x1c13245 ahci_ctrl_extract_bits_: ; 0xf8939 LB 0x1c 13176 13246 push si ; 56 13177 13247 push bp ; 55 … … 13182 13252 mov cl, byte [bp+006h] ; 8a 4e 06 13183 13253 xor ch, ch ; 30 ed 13184 jcxz 08 8c3h ; e3 0613254 jcxz 08950h ; e3 06 13185 13255 shr dx, 1 ; d1 ea 13186 13256 rcr ax, 1 ; d1 d8 13187 loop 08 8bdh ; e2 fa13257 loop 0894ah ; e2 fa 13188 13258 pop bp ; 5d 13189 13259 pop si ; 5e 13190 13260 retn 00002h ; c2 02 00 13191 ahci_addr_to_phys_: ; 0xf8 8c8LB 0x1e13261 ahci_addr_to_phys_: ; 0xf8955 LB 0x1e 13192 13262 push bx ; 53 13193 13263 push cx ; 51 … … 13200 13270 sal ax, 1 ; d1 e0 13201 13271 rcl dx, 1 ; d1 d2 13202 loop 08 8d6h ; e2 fa13272 loop 08963h ; e2 fa 13203 13273 xor cx, cx ; 31 c9 13204 13274 add ax, bx ; 01 d8 … … 13208 13278 pop bx ; 5b 13209 13279 retn ; c3 13210 ahci_port_cmd_sync_: ; 0xf8 8e6LB 0x15913280 ahci_port_cmd_sync_: ; 0xf8973 LB 0x159 13211 13281 push bp ; 55 13212 13282 mov bp, sp ; 89 e5 … … 13223 13293 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 13224 13294 cmp AL, strict byte 0ffh ; 3c ff 13225 jne short 089 09h ; 75 0313226 jmp near 08a 37h ; e9 2e 0113295 jne short 08996h ; 75 03 13296 jmp near 08ac4h ; e9 2e 01 13227 13297 mov al, byte [es:si+00263h] ; 26 8a 84 63 02 13228 13298 xor ah, ah ; 30 e4 … … 13237 13307 lea ax, [si+00080h] ; 8d 84 80 00 13238 13308 mov dx, cx ; 89 ca 13239 call 08 8c8h ; e8 92 ff13309 call 08955h ; e8 92 ff 13240 13310 mov es, cx ; 8e c1 13241 13311 mov word [es:si+008h], ax ; 26 89 44 08 … … 13305 13375 xchg dx, ax ; 92 13306 13376 test dh, 040h ; f6 c6 40 13307 jne short 08 9c9h ; 75 0413377 jne short 08a56h ; 75 04 13308 13378 test AL, strict byte 001h ; a8 01 13309 je short 08 9cdh ; 74 0413379 je short 08a5ah ; 74 04 13310 13380 mov AL, strict byte 001h ; b0 01 13311 jmp short 08 9cfh ; eb 0213381 jmp short 08a5ch ; eb 02 13312 13382 xor al, al ; 30 c0 13313 13383 test al, al ; 84 c0 13314 je short 08 99bh ; 74 c813384 je short 08a28h ; 74 c8 13315 13385 mov al, byte [bp-008h] ; 8a 46 f8 13316 13386 xor ah, ah ; 30 e4 … … 13369 13439 pop bp ; 5d 13370 13440 retn ; c3 13371 ahci_cmd_data_: ; 0xf8a 3fLB 0x26213441 ahci_cmd_data_: ; 0xf8acc LB 0x262 13372 13442 push bp ; 55 13373 13443 mov bp, sp ; 89 e5 … … 13394 13464 mov ax, 00080h ; b8 80 00 13395 13465 mov dx, word [bp-00ah] ; 8b 56 f6 13396 call 0a1 40h ; e8 c31613466 call 0a1f0h ; e8 e6 16 13397 13467 mov es, [bp-00ah] ; 8e 46 f6 13398 13468 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 13412 13482 mov dx, word [es:si] ; 26 8b 14 13413 13483 mov si, strict word 00008h ; be 08 00 13414 call 0a1 20h ; e8 5f1613484 call 0a1d0h ; e8 82 16 13415 13485 mov es, [bp-00ah] ; 8e 46 f6 13416 13486 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 13423 13493 mov dx, word [es:si] ; 26 8b 14 13424 13494 mov si, strict word 00010h ; be 10 00 13425 call 0a1 20h ; e8 391613495 call 0a1d0h ; e8 5c 16 13426 13496 mov es, [bp-00ah] ; 8e 46 f6 13427 13497 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 13435 13505 mov dx, word [es:si] ; 26 8b 14 13436 13506 mov si, strict word 00018h ; be 18 00 13437 call 0a1 20h ; e8 0d1613507 call 0a1d0h ; e8 30 16 13438 13508 mov es, [bp-00ah] ; 8e 46 f6 13439 13509 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13446 13516 mov dx, word [es:si] ; 26 8b 14 13447 13517 mov si, strict word 00020h ; be 20 00 13448 call 0a1 20h ; e8 e7 1513518 call 0a1d0h ; e8 0a 16 13449 13519 mov es, [bp-00ah] ; 8e 46 f6 13450 13520 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13457 13527 mov dx, word [es:si] ; 26 8b 14 13458 13528 mov si, strict word 00028h ; be 28 00 13459 call 0a1 20h ; e8 c11513529 call 0a1d0h ; e8 e4 15 13460 13530 mov es, [bp-00ah] ; 8e 46 f6 13461 13531 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13470 13540 mov bx, word [bp-012h] ; 8b 5e ee 13471 13541 xor cx, cx ; 31 c9 13472 call 0a 0d0h ; e8 3f1513542 call 0a180h ; e8 62 15 13473 13543 push dx ; 52 13474 13544 push ax ; 50 … … 13480 13550 mov ax, 0026ah ; b8 6a 02 13481 13551 mov dx, word [bp-00ah] ; 8b 56 f6 13482 call 0a0 25h ; e8 781413552 call 0a0d5h ; e8 9b 14 13483 13553 mov es, [bp-00ah] ; 8e 46 f6 13484 13554 mov dx, word [es:di+0027eh] ; 26 8b 95 7e 02 … … 13504 13574 mov ax, word [es:bx+020h] ; 26 8b 47 20 13505 13575 test ax, ax ; 85 c0 13506 je short 08c 3dh ; 74 3913576 je short 08ccah ; 74 39 13507 13577 dec ax ; 48 13508 13578 mov es, [bp-00ah] ; 8e 46 f6 … … 13522 13592 mov al, byte [bp-008h] ; 8a 46 f8 13523 13593 cmp AL, strict byte 035h ; 3c 35 13524 jne short 08c 4ah ; 75 0613594 jne short 08cd7h ; 75 06 13525 13595 mov byte [bp-008h], 040h ; c6 46 f8 40 13526 jmp short 08c 61h ; eb 1713596 jmp short 08ceeh ; eb 17 13527 13597 cmp AL, strict byte 0a0h ; 3c a0 13528 jne short 08c 5dh ; 75 0f13598 jne short 08ceah ; 75 0f 13529 13599 or byte [bp-008h], 020h ; 80 4e f8 20 13530 13600 les bx, [bp-00eh] ; c4 5e f2 13531 13601 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 13532 jmp short 08c 61h ; eb 0413602 jmp short 08ceeh ; eb 04 13533 13603 mov byte [bp-008h], 000h ; c6 46 f8 00 13534 13604 or byte [bp-008h], 005h ; 80 4e f8 05 … … 13537 13607 mov ax, word [bp-00eh] ; 8b 46 f2 13538 13608 mov dx, word [bp-00ch] ; 8b 56 f4 13539 call 08 8e6h ; e8 73 fc13609 call 08973h ; e8 73 fc 13540 13610 mov cx, word [bp-00ch] ; 8b 4e f4 13541 13611 mov bx, word [bp-00eh] ; 8b 5e f2 … … 13544 13614 add ax, 0026ah ; 05 6a 02 13545 13615 mov dx, cx ; 89 ca 13546 call 0a 09ch ; e8 141413616 call 0a14ch ; e8 37 14 13547 13617 mov es, cx ; 8e c1 13548 13618 mov al, byte [es:bx+003h] ; 26 8a 47 03 13549 13619 test al, al ; 84 c0 13550 je short 08 c97h ; 74 0513620 je short 08d24h ; 74 05 13551 13621 mov ax, strict word 00004h ; b8 04 00 13552 jmp short 08 c99h ; eb 0213622 jmp short 08d26h ; eb 02 13553 13623 xor ah, ah ; 30 e4 13554 13624 lea sp, [bp-006h] ; 8d 66 fa … … 13558 13628 pop bp ; 5d 13559 13629 retn ; c3 13560 ahci_port_deinit_current_: ; 0xf8 ca1LB 0x18313630 ahci_port_deinit_current_: ; 0xf8d2e LB 0x183 13561 13631 push bp ; 55 13562 13632 mov bp, sp ; 89 e5 … … 13573 13643 mov byte [bp-00ah], al ; 88 46 f6 13574 13644 cmp AL, strict byte 0ffh ; 3c ff 13575 je short 08d 24h ; 74 6113645 je short 08db1h ; 74 61 13576 13646 xor ah, ah ; 30 e4 13577 13647 mov CL, strict byte 007h ; b1 07 … … 13619 13689 xchg dx, ax ; 92 13620 13690 test ax, 0c011h ; a9 11 c0 13621 je short 08d 27h ; 74 0713691 je short 08db4h ; 74 07 13622 13692 mov AL, strict byte 001h ; b0 01 13623 jmp short 08d 29h ; eb 0513624 jmp near 08e 1bh ; e9 f4 0013693 jmp short 08db6h ; eb 05 13694 jmp near 08ea8h ; e9 f4 00 13625 13695 xor al, al ; 30 c0 13626 13696 cmp AL, strict byte 001h ; 3c 01 13627 je short 08 cf6h ; 74 c913697 je short 08d83h ; 74 c9 13628 13698 mov cx, strict word 00020h ; b9 20 00 13629 13699 xor bx, bx ; 31 db 13630 13700 mov ax, di ; 89 f8 13631 13701 mov dx, word [bp-00eh] ; 8b 56 f2 13632 call 0a1 40h ; e8 061413702 call 0a1f0h ; e8 29 14 13633 13703 lea ax, [di+00080h] ; 8d 85 80 00 13634 13704 mov cx, strict word 00040h ; b9 40 00 13635 13705 xor bx, bx ; 31 db 13636 13706 mov dx, word [bp-00eh] ; 8b 56 f2 13637 call 0a1 40h ; e8 f7 1313707 call 0a1f0h ; e8 1a 14 13638 13708 lea ax, [di+00200h] ; 8d 85 00 02 13639 13709 mov cx, strict word 00060h ; b9 60 00 13640 13710 xor bx, bx ; 31 db 13641 13711 mov dx, word [bp-00eh] ; 8b 56 f2 13642 call 0a1 40h ; e8 e8 1313712 call 0a1f0h ; e8 0b 14 13643 13713 mov al, byte [bp-00ah] ; 8a 46 f6 13644 13714 xor ah, ah ; 30 e4 … … 13746 13816 pop bp ; 5d 13747 13817 retn ; c3 13748 ahci_port_init_: ; 0xf8e 24LB 0x25013818 ahci_port_init_: ; 0xf8eb1 LB 0x250 13749 13819 push bp ; 55 13750 13820 mov bp, sp ; 89 e5 … … 13756 13826 mov word [bp-00ah], dx ; 89 56 f6 13757 13827 mov byte [bp-008h], bl ; 88 5e f8 13758 call 08 ca1h ; e8 69 fe13828 call 08d2eh ; e8 69 fe 13759 13829 mov al, bl ; 88 d8 13760 13830 xor ah, ah ; 30 e4 … … 13807 13877 xchg dx, ax ; 92 13808 13878 test ax, 0c011h ; a9 11 c0 13809 je short 08 eabh ; 74 0413879 je short 08f38h ; 74 04 13810 13880 mov AL, strict byte 001h ; b0 01 13811 jmp short 08 eadh ; eb 0213881 jmp short 08f3ah ; eb 02 13812 13882 xor al, al ; 30 c0 13813 13883 cmp AL, strict byte 001h ; 3c 01 13814 je short 08 e75h ; 74 c413884 je short 08f02h ; 74 c4 13815 13885 mov cx, strict word 00020h ; b9 20 00 13816 13886 xor bx, bx ; 31 db 13817 13887 mov ax, si ; 89 f0 13818 13888 mov dx, word [bp-00ah] ; 8b 56 f6 13819 call 0a1 40h ; e8 821213889 call 0a1f0h ; e8 a5 12 13820 13890 lea ax, [si+00080h] ; 8d 84 80 00 13821 13891 mov cx, strict word 00040h ; b9 40 00 13822 13892 xor bx, bx ; 31 db 13823 13893 mov dx, word [bp-00ah] ; 8b 56 f6 13824 call 0a1 40h ; e8 731213894 call 0a1f0h ; e8 96 12 13825 13895 lea di, [si+00200h] ; 8d bc 00 02 13826 13896 mov cx, strict word 00060h ; b9 60 00 … … 13828 13898 mov ax, di ; 89 f8 13829 13899 mov dx, word [bp-00ah] ; 8b 56 f6 13830 call 0a1 40h ; e8 621213900 call 0a1f0h ; e8 85 12 13831 13901 mov bl, byte [bp-008h] ; 8a 5e f8 13832 13902 xor bh, bh ; 30 ff … … 13847 13917 mov ax, di ; 89 f8 13848 13918 mov dx, word [bp-00ah] ; 8b 56 f6 13849 call 08 8c8h ; e8 bb f913919 call 08955h ; e8 bb f9 13850 13920 mov es, [bp-00ah] ; 8e 46 f6 13851 13921 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13892 13962 mov ax, si ; 89 f0 13893 13963 mov dx, word [bp-00ah] ; 8b 56 f6 13894 call 08 8c8h ; e8 4f f913964 call 08955h ; e8 4f f9 13895 13965 mov es, [bp-00ah] ; 8e 46 f6 13896 13966 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13997 14067 pop bp ; 5d 13998 14068 retn ; c3 13999 @ahci_read_sectors: ; 0xf9 074LB 0xaa14069 @ahci_read_sectors: ; 0xf9101 LB 0xaa 14000 14070 push bp ; 55 14001 14071 mov bp, sp ; 89 e5 … … 14008 14078 sub di, strict byte 0000ch ; 83 ef 0c 14009 14079 cmp di, strict byte 00004h ; 83 ff 04 14010 jbe short 09 09fh ; 76 1314080 jbe short 0912ch ; 76 13 14011 14081 push di ; 57 14012 mov ax, 00c 62h ; b8 620c14013 push ax ; 50 14014 mov ax, 00c 74h ; b8 740c14082 mov ax, 00cc4h ; b8 c4 0c 14083 push ax ; 50 14084 mov ax, 00cd6h ; b8 d6 0c 14015 14085 push ax ; 50 14016 14086 mov ax, strict word 00007h ; b8 07 00 14017 14087 push ax ; 50 14018 call 01976h ; e8 da8814088 call 01976h ; e8 4d 88 14019 14089 add sp, strict byte 00008h ; 83 c4 08 14020 14090 xor bx, bx ; 31 db … … 14030 14100 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14031 14101 xor ax, ax ; 31 c0 14032 call 08e 24h ; e8 5a fd14102 call 08eb1h ; e8 5a fd 14033 14103 mov bx, strict word 00025h ; bb 25 00 14034 14104 mov ax, si ; 89 f0 14035 14105 mov dx, word [bp+006h] ; 8b 56 06 14036 call 08a 3fh ; e8 6a f914106 call 08acch ; e8 6a f9 14037 14107 mov bx, ax ; 89 c3 14038 14108 mov es, [bp+006h] ; 8e 46 06 … … 14064 14134 pop bp ; 5d 14065 14135 retn 00004h ; c2 04 00 14066 @ahci_write_sectors: ; 0xf91 1eLB 0x8814136 @ahci_write_sectors: ; 0xf91ab LB 0x88 14067 14137 push bp ; 55 14068 14138 mov bp, sp ; 89 e5 … … 14076 14146 sub bx, strict byte 0000ch ; 83 eb 0c 14077 14147 cmp bx, strict byte 00004h ; 83 fb 04 14078 jbe short 091 4ch ; 76 1314148 jbe short 091d9h ; 76 13 14079 14149 push bx ; 53 14080 mov ax, 00c 93h ; b8 930c14081 push ax ; 50 14082 mov ax, 00c 74h ; b8 740c14150 mov ax, 00cf5h ; b8 f5 0c 14151 push ax ; 50 14152 mov ax, 00cd6h ; b8 d6 0c 14083 14153 push ax ; 50 14084 14154 mov ax, strict word 00007h ; b8 07 00 14085 14155 push ax ; 50 14086 call 01976h ; e8 2d 8814156 call 01976h ; e8 a0 87 14087 14157 add sp, strict byte 00008h ; 83 c4 08 14088 14158 xor di, di ; 31 ff … … 14098 14168 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14099 14169 xor ax, ax ; 31 c0 14100 call 08e 24h ; e8 af fc14170 call 08eb1h ; e8 af fc 14101 14171 mov bx, strict word 00035h ; bb 35 00 14102 14172 mov ax, si ; 89 f0 14103 14173 mov dx, cx ; 89 ca 14104 call 08a 3fh ; e8 c0 f814174 call 08acch ; e8 c0 f8 14105 14175 mov dx, ax ; 89 c2 14106 14176 mov es, cx ; 8e c1 … … 14117 14187 pop bp ; 5d 14118 14188 retn 00004h ; c2 04 00 14119 ahci_cmd_packet_: ; 0xf9 1a6LB 0x18c14189 ahci_cmd_packet_: ; 0xf9233 LB 0x18c 14120 14190 push bp ; 55 14121 14191 mov bp, sp ; 89 e5 … … 14129 14199 mov dx, strict word 0000eh ; ba 0e 00 14130 14200 mov ax, strict word 00040h ; b8 40 00 14131 call 0166eh ; e8 ad8414201 call 0166eh ; e8 20 84 14132 14202 mov si, 00122h ; be 22 01 14133 14203 mov word [bp-008h], ax ; 89 46 f8 14134 14204 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 14135 jne short 09 1f0h ; 75 2314136 mov bx, 00 da0h ; bb a0 0d14205 jne short 0927dh ; 75 23 14206 mov bx, 00e02h ; bb 02 0e 14137 14207 mov cx, ds ; 8c d9 14138 14208 mov ax, strict word 00004h ; b8 04 00 14139 call 01933h ; e8 5b 8714140 mov ax, 00 ca6h ; b8 a6 0c14141 push ax ; 50 14142 mov ax, 00 cb6h ; b8 b6 0c14209 call 01933h ; e8 ce 86 14210 mov ax, 00d08h ; b8 08 0d 14211 push ax ; 50 14212 mov ax, 00d18h ; b8 18 0d 14143 14213 push ax ; 50 14144 14214 mov ax, strict word 00004h ; b8 04 00 14145 14215 push ax ; 50 14146 call 01976h ; e8 8f8714216 call 01976h ; e8 02 87 14147 14217 add sp, strict byte 00006h ; 83 c4 06 14148 14218 mov ax, strict word 00001h ; b8 01 00 14149 jmp near 093 29h ; e9 39 0114219 jmp near 093b6h ; e9 39 01 14150 14220 test byte [bp+004h], 001h ; f6 46 04 01 14151 jne short 09 1eah ; 75 f414221 jne short 09277h ; 75 f4 14152 14222 mov bx, word [bp+006h] ; 8b 5e 06 14153 14223 mov di, word [bp+008h] ; 8b 7e 08 … … 14155 14225 sal bx, 1 ; d1 e3 14156 14226 rcl di, 1 ; d1 d7 14157 loop 09 1ffh ; e2 fa14227 loop 0928ch ; e2 fa 14158 14228 mov es, [bp-008h] ; 8e 46 f8 14159 14229 mov word [es:si], bx ; 26 89 1c … … 14169 14239 mov dx, word [bp+008h] ; 8b 56 08 14170 14240 xor cx, cx ; 31 c9 14171 call 0a 0f0h ; e8 b80e14241 call 0a1a0h ; e8 db 0e 14172 14242 mov word [es:si+00eh], ax ; 26 89 44 0e 14173 14243 xor di, di ; 31 ff … … 14187 14257 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14188 14258 xor ax, ax ; 31 c0 14189 call 08e 24h ; e8 af fb14259 call 08eb1h ; e8 af fb 14190 14260 mov al, byte [bp-006h] ; 8a 46 fa 14191 14261 xor ah, ah ; 30 e4 … … 14195 14265 mov ax, 000c0h ; b8 c0 00 14196 14266 mov dx, word [bp-00ah] ; 8b 56 f6 14197 call 0a 150h ; e8 c60e14267 call 0a200h ; e8 e9 0e 14198 14268 mov es, [bp-008h] ; 8e 46 f8 14199 14269 mov word [es:si+018h], di ; 26 89 7c 18 … … 14202 14272 mov ax, word [es:si+01eh] ; 26 8b 44 1e 14203 14273 test ax, ax ; 85 c0 14204 je short 09 2c8h ; 74 2714274 je short 09355h ; 74 27 14205 14275 dec ax ; 48 14206 14276 mov es, [bp-00ah] ; 8e 46 f6 … … 14215 14285 mov ax, si ; 89 f0 14216 14286 mov dx, word [bp-008h] ; 8b 56 f8 14217 call 08a 3fh ; e8 6c f714287 call 08acch ; e8 6c f7 14218 14288 les bx, [bp-00eh] ; c4 5e f2 14219 14289 mov dx, word [es:bx+004h] ; 26 8b 57 04 … … 14242 14312 mov ax, word [es:bx+006h] ; 26 8b 47 06 14243 14313 or ax, word [es:bx+004h] ; 26 0b 47 04 14244 jne short 093 27h ; 75 0514314 jne short 093b4h ; 75 05 14245 14315 mov ax, strict word 00004h ; b8 04 00 14246 jmp short 093 29h ; eb 0214316 jmp short 093b6h ; eb 02 14247 14317 xor ax, ax ; 31 c0 14248 14318 lea sp, [bp-004h] ; 8d 66 fc … … 14251 14321 pop bp ; 5d 14252 14322 retn 0000ch ; c2 0c 00 14253 ahci_port_detect_device_: ; 0xf93 32LB 0x4fe14323 ahci_port_detect_device_: ; 0xf93bf LB 0x4fe 14254 14324 push bp ; 55 14255 14325 mov bp, sp ; 89 e5 … … 14267 14337 mov bx, word [bp-020h] ; 8b 5e e0 14268 14338 mov ax, si ; 89 f0 14269 call 08e 24h ; e8 ce fa14339 call 08eb1h ; e8 ce fa 14270 14340 mov dx, strict word 0000eh ; ba 0e 00 14271 14341 mov ax, strict word 00040h ; b8 40 00 14272 call 0166eh ; e8 0f 8314342 call 0166eh ; e8 82 82 14273 14343 mov word [bp-01ah], 00122h ; c7 46 e6 22 01 14274 14344 mov word [bp-00eh], ax ; 89 46 f2 … … 14342 14412 mov bx, strict word 0000fh ; bb 0f 00 14343 14413 xor cx, cx ; 31 c9 14344 call 08 8ach ; e8 9f f414414 call 08939h ; e8 9f f4 14345 14415 test ax, ax ; 85 c0 14346 jne short 094 14h ; 75 0314347 jmp near 098 28h ; e9 14 0414416 jne short 094a1h ; 75 03 14417 jmp near 098b5h ; e9 14 04 14348 14418 mov al, byte [bp-008h] ; 8a 46 f8 14349 14419 xor ah, ah ; 30 e4 … … 14377 14447 xor cx, cx ; 31 c9 14378 14448 mov ax, di ; 89 f8 14379 call 08 8ach ; e8 4d f414449 call 08939h ; e8 4d f4 14380 14450 cmp ax, strict word 00001h ; 3d 01 00 14381 je short 094 14h ; 74 b014451 je short 094a1h ; 74 b0 14382 14452 xor ax, ax ; 31 c0 14383 14453 push ax ; 50 … … 14386 14456 mov ax, di ; 89 f8 14387 14457 mov dx, word [bp-01ch] ; 8b 56 e4 14388 call 08 8ach ; e8 38 f414458 call 08939h ; e8 38 f4 14389 14459 cmp ax, strict word 00003h ; 3d 03 00 14390 jne short 094 11h ; 75 9814460 jne short 0949eh ; 75 98 14391 14461 mov ax, word [bp-016h] ; 8b 46 ea 14392 14462 add ax, 00130h ; 05 30 01 … … 14416 14486 mov byte [bp-00ch], al ; 88 46 f4 14417 14487 cmp AL, strict byte 004h ; 3c 04 14418 jc short 09 4c3h ; 72 0314419 jmp near 098 28h ; e9 65 0314488 jc short 09550h ; 72 03 14489 jmp near 098b5h ; e9 65 03 14420 14490 mov ax, word [bp-016h] ; 8b 46 ea 14421 14491 add ax, 00118h ; 05 18 01 … … 14469 14539 add cl, 00ch ; 80 c1 0c 14470 14540 test dx, dx ; 85 d2 14471 jne short 09 58eh ; 75 5514541 jne short 0961bh ; 75 55 14472 14542 cmp bx, 00101h ; 81 fb 01 01 14473 jne short 09 58eh ; 75 4f14543 jne short 0961bh ; 75 4f 14474 14544 mov es, [bp-00eh] ; 8e 46 f2 14475 14545 mov bx, word [bp-01ah] ; 8b 5e e6 … … 14486 14556 mov ax, word [bp-01ah] ; 8b 46 e6 14487 14557 mov dx, es ; 8c c2 14488 call 08a 3fh ; e8 c0 f414558 call 08acch ; e8 c0 f4 14489 14559 mov byte [bp-00ah], cl ; 88 4e f6 14490 14560 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14491 je short 09 591h ; 74 0814561 je short 0961eh ; 74 08 14492 14562 mov ax, strict word 00001h ; b8 01 00 14493 jmp short 09 593h ; eb 0514494 jmp near 097 63h ; e9 d2 0114563 jmp short 09620h ; eb 05 14564 jmp near 097f0h ; e9 d2 01 14495 14565 xor ax, ax ; 31 c0 14496 14566 mov cl, al ; 88 c1 … … 14508 14578 mov word [bp-012h], ax ; 89 46 ee 14509 14579 cmp di, 00fffh ; 81 ff ff 0f 14510 jne short 09 5e2h ; 75 1f14580 jne short 0966fh ; 75 1f 14511 14581 cmp word [bp-014h], strict byte 0ffffh ; 83 7e ec ff 14512 jne short 09 5e2h ; 75 1914582 jne short 0966fh ; 75 19 14513 14583 mov ax, word [bp-0015ch] ; 8b 86 a4 fe 14514 14584 mov word [bp-012h], ax ; 89 46 ee … … 14550 14620 mov al, byte [bp-00ch] ; 8a 46 f4 14551 14621 cmp AL, strict byte 001h ; 3c 01 14552 jc short 096 5fh ; 72 0c14553 jbe short 096 67h ; 76 1214622 jc short 096ech ; 72 0c 14623 jbe short 096f4h ; 76 12 14554 14624 cmp AL, strict byte 003h ; 3c 03 14555 je short 096 6fh ; 74 1614625 je short 096fch ; 74 16 14556 14626 cmp AL, strict byte 002h ; 3c 02 14557 je short 096 6bh ; 74 0e14558 jmp short 09 6b2h ; eb 5314627 je short 096f8h ; 74 0e 14628 jmp short 0973fh ; eb 53 14559 14629 test al, al ; 84 c0 14560 jne short 09 6b2h ; 75 4f14630 jne short 0973fh ; 75 4f 14561 14631 mov DL, strict byte 040h ; b2 40 14562 jmp short 096 71h ; eb 0a14632 jmp short 096feh ; eb 0a 14563 14633 mov DL, strict byte 048h ; b2 48 14564 jmp short 096 71h ; eb 0614634 jmp short 096feh ; eb 06 14565 14635 mov DL, strict byte 050h ; b2 50 14566 jmp short 096 71h ; eb 0214636 jmp short 096feh ; eb 02 14567 14637 mov DL, strict byte 058h ; b2 58 14568 14638 mov bl, dl ; 88 d3 … … 14570 14640 xor bh, bh ; 30 ff 14571 14641 mov ax, bx ; 89 d8 14572 call 016aeh ; e8 31 8014642 call 016aeh ; e8 a4 7f 14573 14643 test al, al ; 84 c0 14574 je short 09 6b2h ; 74 3114644 je short 0973fh ; 74 31 14575 14645 mov al, dl ; 88 d0 14576 14646 db 0feh, 0c0h 14577 14647 ; inc al ; fe c0 14578 14648 xor ah, ah ; 30 e4 14579 call 016aeh ; e8 24 8014649 call 016aeh ; e8 97 7f 14580 14650 mov ch, al ; 88 c5 14581 14651 mov al, dl ; 88 d0 14582 14652 xor ah, ah ; 30 e4 14583 call 016aeh ; e8 1b 8014653 call 016aeh ; e8 8e 7f 14584 14654 mov ah, ch ; 88 ec 14585 14655 mov word [bp-028h], ax ; 89 46 d8 … … 14587 14657 add AL, strict byte 002h ; 04 02 14588 14658 xor ah, ah ; 30 e4 14589 call 016aeh ; e8 0d 8014659 call 016aeh ; e8 80 7f 14590 14660 xor ah, ah ; 30 e4 14591 14661 mov word [bp-02ah], ax ; 89 46 d6 14592 14662 mov ax, bx ; 89 d8 14593 call 016aeh ; e8 03 8014663 call 016aeh ; e8 76 7f 14594 14664 xor ah, ah ; 30 e4 14595 14665 mov word [bp-026h], ax ; 89 46 da 14596 jmp short 09 6c4h ; eb 1214666 jmp short 09751h ; eb 12 14597 14667 push word [bp-012h] ; ff 76 ee 14598 14668 push word [bp-01eh] ; ff 76 e2 … … 14601 14671 mov dx, ss ; 8c d2 14602 14672 lea ax, [bp-02ah] ; 8d 46 d6 14603 call 05b7fh ; e8 bbc414604 mov bx, 00 da0h ; bb a0 0d14673 call 05b7fh ; e8 2e c4 14674 mov bx, 00e02h ; bb 02 0e 14605 14675 mov cx, ds ; 8c d9 14606 14676 mov ax, strict word 00004h ; b8 04 00 14607 call 01933h ; e8 64 8214677 call 01933h ; e8 d7 81 14608 14678 push word [bp-012h] ; ff 76 ee 14609 14679 push word [bp-01eh] ; ff 76 e2 … … 14624 14694 mov al, byte [bp-00ch] ; 8a 46 f4 14625 14695 push ax ; 50 14626 mov ax, 00 cd6h ; b8 d6 0c14696 mov ax, 00d38h ; b8 38 0d 14627 14697 push ax ; 50 14628 14698 mov ax, strict word 00004h ; b8 04 00 14629 14699 push ax ; 50 14630 call 01976h ; e8 73 8214700 call 01976h ; e8 e6 81 14631 14701 add sp, strict byte 0001ch ; 83 c4 1c 14632 14702 mov al, byte [bp-00ah] ; 8a 46 f6 … … 14660 14730 mov dx, strict word 00075h ; ba 75 00 14661 14731 mov ax, strict word 00040h ; b8 40 00 14662 call 01652h ; e8 01 7f14732 call 01652h ; e8 74 7e 14663 14733 mov bl, al ; 88 c3 14664 14734 db 0feh, 0c3h … … 14667 14737 mov dx, strict word 00075h ; ba 75 00 14668 14738 mov ax, strict word 00040h ; b8 40 00 14669 call 01660h ; e8 00 7f14670 jmp near 098 17h ; e9 b4 0014739 call 01660h ; e8 73 7e 14740 jmp near 098a4h ; e9 b4 00 14671 14741 cmp dx, 0eb14h ; 81 fa 14 eb 14672 jne short 09 7beh ; 75 5514742 jne short 0984bh ; 75 55 14673 14743 cmp bx, 00101h ; 81 fb 01 01 14674 jne short 09 7beh ; 75 4f14744 jne short 0984bh ; 75 4f 14675 14745 mov es, [bp-00eh] ; 8e 46 f2 14676 14746 mov bx, word [bp-01ah] ; 8b 5e e6 … … 14687 14757 mov ax, word [bp-01ah] ; 8b 46 e6 14688 14758 mov dx, es ; 8c c2 14689 call 08a 3fh ; e8 90 f214759 call 08acch ; e8 90 f2 14690 14760 mov byte [bp-00ah], cl ; 88 4e f6 14691 14761 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14692 je short 09 7c0h ; 74 0714762 je short 0984dh ; 74 07 14693 14763 mov cx, strict word 00001h ; b9 01 00 14694 jmp short 09 7c2h ; eb 0414695 jmp short 098 17h ; eb 5714764 jmp short 0984fh ; eb 04 14765 jmp short 098a4h ; eb 57 14696 14766 xor cx, cx ; 31 c9 14697 14767 mov bl, byte [bp-00ch] ; 8a 5e f4 … … 14733 14803 pop bp ; 5d 14734 14804 retn ; c3 14735 ahci_mem_alloc_: ; 0xf98 30LB 0x4314805 ahci_mem_alloc_: ; 0xf98bd LB 0x43 14736 14806 push bp ; 55 14737 14807 mov bp, sp ; 89 e5 … … 14743 14813 mov dx, 00413h ; ba 13 04 14744 14814 xor ax, ax ; 31 c0 14745 call 0166eh ; e8 2e 7e14815 call 0166eh ; e8 a1 7d 14746 14816 test ax, ax ; 85 c0 14747 je short 098 69h ; 74 2514817 je short 098f6h ; 74 25 14748 14818 dec ax ; 48 14749 14819 mov bx, ax ; 89 c3 … … 14752 14822 sal ax, 1 ; d1 e0 14753 14823 rcl dx, 1 ; d1 d2 14754 loop 098 4ch ; e2 fa14824 loop 098d9h ; e2 fa 14755 14825 mov si, ax ; 89 c6 14756 14826 mov di, dx ; 89 d7 … … 14758 14828 shr di, 1 ; d1 ef 14759 14829 rcr si, 1 ; d1 de 14760 loop 098 59h ; e2 fa14830 loop 098e6h ; e2 fa 14761 14831 mov dx, 00413h ; ba 13 04 14762 14832 xor ax, ax ; 31 c0 14763 call 0167ch ; e8 15 7e14833 call 0167ch ; e8 88 7d 14764 14834 mov ax, si ; 89 f0 14765 14835 lea sp, [bp-00ah] ; 8d 66 f6 … … 14771 14841 pop bp ; 5d 14772 14842 retn ; c3 14773 ahci_hba_init_: ; 0xf9 873LB 0x16e14843 ahci_hba_init_: ; 0xf9900 LB 0x16e 14774 14844 push bp ; 55 14775 14845 mov bp, sp ; 89 e5 … … 14783 14853 mov dx, strict word 0000eh ; ba 0e 00 14784 14854 mov ax, strict word 00040h ; b8 40 00 14785 call 0166eh ; e8 e57d14855 call 0166eh ; e8 58 7d 14786 14856 mov bx, 00122h ; bb 22 01 14787 14857 mov di, ax ; 89 c7 … … 14800 14870 shr eax, 010h ; 66 c1 e8 10 14801 14871 xchg dx, ax ; 92 14802 call 098 30h ; e8 83 ff14872 call 098bdh ; e8 83 ff 14803 14873 mov word [bp-010h], ax ; 89 46 f0 14804 14874 test ax, ax ; 85 c0 14805 jne short 09 8b7h ; 75 0314806 jmp near 09 9c0h ; e9 09 0114875 jne short 09944h ; 75 03 14876 jmp near 09a4dh ; e9 09 01 14807 14877 mov ax, word [bp-010h] ; 8b 46 f0 14808 14878 mov es, di ; 8e c7 … … 14854 14924 xchg dx, ax ; 92 14855 14925 test AL, strict byte 001h ; a8 01 14856 jne short 099 11h ; 75 de14926 jne short 0999eh ; 75 de 14857 14927 xor ax, ax ; 31 c0 14858 14928 xor cx, cx ; 31 c9 … … 14873 14943 mov bx, strict word 0001fh ; bb 1f 00 14874 14944 xor cx, cx ; 31 c9 14875 call 08 8ach ; e8 54 ef14945 call 08939h ; e8 54 ef 14876 14946 db 0feh, 0c0h 14877 14947 ; inc al ; fe c0 14878 14948 mov byte [bp-00eh], al ; 88 46 f2 14879 14949 mov byte [bp-00ch], 000h ; c6 46 f4 00 14880 jmp short 09 984h ; eb 2114950 jmp short 09a11h ; eb 21 14881 14951 xor al, al ; 30 c0 14882 14952 test al, al ; 84 c0 14883 je short 09 97bh ; 74 1214953 je short 09a08h ; 74 12 14884 14954 mov bl, byte [bp-00ch] ; 8a 5e f4 14885 14955 xor bh, bh ; 30 ff 14886 14956 xor ax, ax ; 31 c0 14887 14957 mov dx, word [bp-010h] ; 8b 56 f0 14888 call 093 32h ; e8 bc f914958 call 093bfh ; e8 bc f9 14889 14959 dec byte [bp-00eh] ; fe 4e f2 14890 je short 09 9beh ; 74 4314960 je short 09a4bh ; 74 43 14891 14961 inc byte [bp-00ch] ; fe 46 f4 14892 14962 cmp byte [bp-00ch], 020h ; 80 7e f4 20 14893 jnc short 09 9beh ; 73 3a14963 jnc short 09a4bh ; 73 3a 14894 14964 mov cl, byte [bp-00ch] ; 8a 4e f4 14895 14965 xor ch, ch ; 30 ed 14896 14966 mov bx, strict word 00001h ; bb 01 00 14897 14967 xor di, di ; 31 ff 14898 jcxz 09 996h ; e3 0614968 jcxz 09a23h ; e3 06 14899 14969 sal bx, 1 ; d1 e3 14900 14970 rcl di, 1 ; d1 d7 14901 loop 09 990h ; e2 fa14971 loop 09a1dh ; e2 fa 14902 14972 mov ax, strict word 0000ch ; b8 0c 00 14903 14973 xor cx, cx ; 31 c9 … … 14915 14985 xchg dx, ax ; 92 14916 14986 test dx, di ; 85 fa 14917 jne short 09 9bah ; 75 0414987 jne short 09a47h ; 75 04 14918 14988 test ax, bx ; 85 d8 14919 je short 099 63h ; 74 a914989 je short 099f0h ; 74 a9 14920 14990 mov AL, strict byte 001h ; b0 01 14921 jmp short 099 65h ; eb a714991 jmp short 099f2h ; eb a7 14922 14992 xor ax, ax ; 31 c0 14923 14993 lea sp, [bp-00ah] ; 8d 66 f6 … … 14929 14999 pop bp ; 5d 14930 15000 retn ; c3 14931 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 c7h, 09ah, 0a5h, 09ah, 0abh, 09ah, 0b1h, 09ah, 0b7h14932 db 09 ah, 0bdh, 09ah, 0c3h, 09ah, 0c7h, 09ah14933 _ahci_init: ; 0xf9 9e1LB 0x13915001 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 054h, 09bh, 032h, 09bh, 038h, 09bh, 03eh, 09bh, 044h 15002 db 09bh, 04ah, 09bh, 050h, 09bh, 054h, 09bh 15003 _ahci_init: ; 0xf9a6e LB 0x139 14934 15004 push bp ; 55 14935 15005 mov bp, sp ; 89 e5 … … 14939 15009 mov ax, 00601h ; b8 01 06 14940 15010 mov dx, strict word 00001h ; ba 01 00 14941 call 09f 39h ; e8 47 0515011 call 09fc6h ; e8 47 05 14942 15012 mov dx, ax ; 89 c2 14943 15013 cmp ax, strict word 0ffffh ; 3d ff ff 14944 je short 09a 42h ; 74 4915014 je short 09acfh ; 74 49 14945 15015 mov al, ah ; 88 e0 14946 15016 mov byte [bp-008h], ah ; 88 66 f8 … … 14949 15019 xor ah, ah ; 30 e4 14950 15020 mov bx, strict word 00034h ; bb 34 00 14951 call 09f 41h ; e8 360515021 call 09ff1h ; e8 59 05 14952 15022 mov cl, al ; 88 c1 14953 15023 test cl, cl ; 84 c9 14954 je short 09a 45h ; 74 3415024 je short 09ad2h ; 74 34 14955 15025 mov bl, cl ; 88 cb 14956 15026 xor bh, bh ; 30 ff … … 14963 15033 mov dx, word [bp-00ch] ; 8b 56 f4 14964 15034 mov ax, word [bp-012h] ; 8b 46 ee 14965 call 09f 41h ; e8 110515035 call 09ff1h ; e8 34 05 14966 15036 cmp AL, strict byte 012h ; 3c 12 14967 je short 09a 45h ; 74 1115037 je short 09ad2h ; 74 11 14968 15038 mov bl, cl ; 88 cb 14969 15039 db 0feh, 0c3h … … 14972 15042 mov dx, word [bp-00ch] ; 8b 56 f4 14973 15043 mov ax, word [bp-012h] ; 8b 46 ee 14974 jmp short 09a 08h ; eb c614975 jmp near 09b 13h ; e9 ce 0015044 jmp short 09a95h ; eb c6 15045 jmp near 09ba0h ; e9 ce 00 14976 15046 test cl, cl ; 84 c9 14977 je short 09a 42h ; 74 f915047 je short 09acfh ; 74 f9 14978 15048 add cl, 002h ; 80 c1 02 14979 15049 mov bl, cl ; 88 cb … … 14987 15057 mov dx, word [bp-00eh] ; 8b 56 f2 14988 15058 mov ax, word [bp-014h] ; 8b 46 ec 14989 call 09f 41h ; e8 d60415059 call 09ff1h ; e8 f9 04 14990 15060 cmp AL, strict byte 010h ; 3c 10 14991 jne short 09a 42h ; 75 d315061 jne short 09acfh ; 75 d3 14992 15062 mov byte [bp-006h], 000h ; c6 46 fa 00 14993 15063 mov bl, cl ; 88 cb … … 14996 15066 mov dx, word [bp-00eh] ; 8b 56 f2 14997 15067 mov ax, word [bp-014h] ; 8b 46 ec 14998 call 0 9f68h ; e8 e5 0415068 call 0a018h ; e8 08 05 14999 15069 mov dx, ax ; 89 c2 15000 15070 and ax, strict word 0000fh ; 25 0f 00 15001 15071 sub ax, strict word 00004h ; 2d 04 00 15002 15072 cmp ax, strict word 0000bh ; 3d 0b 00 15003 jnbe short 09 ac7h ; 77 3715073 jnbe short 09b54h ; 77 37 15004 15074 push CS ; 0e 15005 15075 pop ES ; 07 15006 15076 mov cx, strict word 00008h ; b9 08 00 15007 mov di, 09 9cah ; bf ca 9915077 mov di, 09a57h ; bf 57 9a 15008 15078 repne scasb ; f2 ae 15009 15079 sal cx, 1 ; d1 e1 15010 15080 mov di, cx ; 89 cf 15011 mov ax, word [cs:di-06 62fh] ; 2e 8b 85 d1 9915081 mov ax, word [cs:di-065a2h] ; 2e 8b 85 5e 9a 15012 15082 jmp ax ; ff e0 15013 15083 mov byte [bp-006h], 010h ; c6 46 fa 10 15014 jmp short 09 ac7h ; eb 1c15084 jmp short 09b54h ; eb 1c 15015 15085 mov byte [bp-006h], 014h ; c6 46 fa 14 15016 jmp short 09 ac7h ; eb 1615086 jmp short 09b54h ; eb 16 15017 15087 mov byte [bp-006h], 018h ; c6 46 fa 18 15018 jmp short 09 ac7h ; eb 1015088 jmp short 09b54h ; eb 10 15019 15089 mov byte [bp-006h], 01ch ; c6 46 fa 1c 15020 jmp short 09 ac7h ; eb 0a15090 jmp short 09b54h ; eb 0a 15021 15091 mov byte [bp-006h], 020h ; c6 46 fa 20 15022 jmp short 09 ac7h ; eb 0415092 jmp short 09b54h ; eb 04 15023 15093 mov byte [bp-006h], 024h ; c6 46 fa 24 15024 15094 mov CL, strict byte 004h ; b1 04 … … 15029 15099 mov al, byte [bp-006h] ; 8a 46 fa 15030 15100 test al, al ; 84 c0 15031 je short 09b 13h ; 74 3b15101 je short 09ba0h ; 74 3b 15032 15102 mov bl, al ; 88 c3 15033 15103 xor bh, bh ; 30 ff … … 15040 15110 mov dx, word [bp-010h] ; 8b 56 f0 15041 15111 mov ax, word [bp-016h] ; 8b 46 ea 15042 call 0 9f8dh ; e8 960415112 call 0a03dh ; e8 b9 04 15043 15113 test AL, strict byte 001h ; a8 01 15044 je short 09b 13h ; 74 1815114 je short 09ba0h ; 74 18 15045 15115 and AL, strict byte 0f0h ; 24 f0 15046 15116 add si, ax ; 01 c6 … … 15049 15119 mov dx, word [bp-010h] ; 8b 56 f0 15050 15120 mov ax, word [bp-016h] ; 8b 46 ea 15051 call 0 9fcch ; e8 be0415121 call 0a07ch ; e8 e1 04 15052 15122 mov ax, si ; 89 f0 15053 call 09 873h ; e8 60 fd15123 call 09900h ; e8 60 fd 15054 15124 lea sp, [bp-004h] ; 8d 66 fc 15055 15125 pop di ; 5f … … 15057 15127 pop bp ; 5d 15058 15128 retn ; c3 15059 apm_out_str_: ; 0xf9b 1aLB 0x3915129 apm_out_str_: ; 0xf9ba7 LB 0x39 15060 15130 push bp ; 55 15061 15131 mov bp, sp ; 89 e5 … … 15063 15133 mov bx, ax ; 89 c3 15064 15134 cmp byte [bx], 000h ; 80 3f 00 15065 je short 09b 2fh ; 74 0a15135 je short 09bbch ; 74 0a 15066 15136 mov al, byte [bx] ; 8a 07 15067 15137 out DX, AL ; ee … … 15070 15140 db 00ah, 0c0h 15071 15141 ; or al, al ; 0a c0 15072 jne short 09b 27h ; 75 f815142 jne short 09bb4h ; 75 f8 15073 15143 lea sp, [bp-002h] ; 8d 66 fe 15074 15144 pop bx ; 5b 15075 15145 pop bp ; 5d 15076 15146 retn ; c3 15077 je short 09ad2h ; 74 9b 15078 call far [bp+di-0647ah] ; ff 9b 86 9b 15079 mov ax, word [0ff9bh] ; a1 9b ff 15080 wait ; 9b 15081 int3 ; cc 15082 wait ; 9b 15083 call far [bp+di-063fbh] ; ff 9b 05 9c 15084 rcr word [bp+di-0642fh], 1 ; d1 9b d1 9b 15085 rcr word [bp+di-063bch], 1 ; d1 9b 44 9c 15086 rcr word [bp+di-0642fh], 1 ; d1 9b d1 9b 15087 db 03dh 15147 add word [si-06374h], bx ; 01 9c 8c 9c 15148 adc bx, word [si-063d2h] ; 13 9c 2e 9c 15149 mov [si-063a7h], ds ; 8c 9c 59 9c 15150 mov [si-0636eh], ds ; 8c 9c 92 9c 15151 pop si ; 5e 15088 15152 pushfw ; 9c 15089 _apm_function: ; 0xf9b53 LB 0xf6 15153 pop si ; 5e 15154 pushfw ; 9c 15155 pop si ; 5e 15156 pushfw ; 9c 15157 rcr word [si-063a2h], 1 ; d1 9c 5e 9c 15158 pop si ; 5e 15159 pushfw ; 9c 15160 db 0cah 15161 pushfw ; 9c 15162 _apm_function: ; 0xf9be0 LB 0xf6 15090 15163 push bp ; 55 15091 15164 mov bp, sp ; 89 e5 … … 15095 15168 xor ah, ah ; 30 e4 15096 15169 cmp ax, strict word 0000eh ; 3d 0e 00 15097 jnbe short 09 bd1h ; 77 6c15170 jnbe short 09c5eh ; 77 6c 15098 15171 mov bx, ax ; 89 c3 15099 15172 sal bx, 1 ; d1 e3 15100 15173 mov dx, word [bp+018h] ; 8b 56 18 15101 15174 or dl, 001h ; 80 ca 01 15102 jmp word [cs:bx-064 cbh] ; 2e ff a7 359b15175 jmp word [cs:bx-0643eh] ; 2e ff a7 c2 9b 15103 15176 mov word [bp+012h], 00102h ; c7 46 12 02 01 15104 15177 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 15105 15178 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 15106 jmp near 09 bffh ; e9 79 0015179 jmp near 09c8ch ; e9 79 00 15107 15180 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 15108 mov word [bp+00ch], 0a 1c4h ; c7 46 0c c4 a115181 mov word [bp+00ch], 0a274h ; c7 46 0c 74 a2 15109 15182 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 15110 15183 mov ax, strict word 0fff0h ; b8 f0 ff 15111 15184 mov word [bp+006h], ax ; 89 46 06 15112 15185 mov word [bp+004h], ax ; 89 46 04 15113 jmp near 09 bffh ; e9 5e 0015186 jmp near 09c8ch ; e9 5e 00 15114 15187 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 15115 15188 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 15124 15197 mov si, ax ; 89 c6 15125 15198 sal esi, 010h ; 66 c1 e6 10 15126 jmp near 09 bffh ; e9 33 0015199 jmp near 09c8ch ; e9 33 00 15127 15200 sti ; fb 15128 15201 hlt ; f4 15129 jmp near 09 bffh ; e9 2e 0015130 mov bx, 00 da0h ; bb a0 0d15202 jmp near 09c8ch ; e9 2e 00 15203 mov bx, 00e02h ; bb 02 0e 15131 15204 mov cx, ds ; 8c d9 15132 15205 mov ax, strict word 00004h ; b8 04 00 15133 call 01933h ; e8 57 7d15206 call 01933h ; e8 ca 7c 15134 15207 push word [bp+00ch] ; ff 76 0c 15135 15208 push word [bp+012h] ; ff 76 12 15136 mov ax, 00d 29h ; b8 290d15209 mov ax, 00d8bh ; b8 8b 0d 15137 15210 push ax ; 50 15138 15211 mov ax, strict word 00004h ; b8 04 00 15139 15212 push ax ; 50 15140 call 01976h ; e8 89 7d15213 call 01976h ; e8 fc 7c 15141 15214 add sp, strict byte 00008h ; 83 c4 08 15142 15215 mov ax, word [bp+012h] ; 8b 46 12 … … 15150 15223 retn ; c3 15151 15224 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 15152 je short 09c 2ah ; 74 1f15225 je short 09cb7h ; 74 1f 15153 15226 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 15154 je short 09c 22h ; 74 1115227 je short 09cafh ; 74 11 15155 15228 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 15156 jne short 09c 32h ; 75 1b15229 jne short 09cbfh ; 75 1b 15157 15230 mov dx, 0040fh ; ba 0f 04 15158 mov ax, 00d 10h ; b8 100d15159 call 09b 1ah ; e8 fa fe15160 jmp short 09 bffh ; eb dd15231 mov ax, 00d72h ; b8 72 0d 15232 call 09ba7h ; e8 fa fe 15233 jmp short 09c8ch ; eb dd 15161 15234 mov dx, 0040fh ; ba 0f 04 15162 mov ax, 00d 18h ; b8 180d15163 jmp short 09c 1dh ; eb f315235 mov ax, 00d7ah ; b8 7a 0d 15236 jmp short 09caah ; eb f3 15164 15237 mov dx, 0040fh ; ba 0f 04 15165 mov ax, 00d 20h ; b8 200d15166 jmp short 09c 1dh ; eb eb15238 mov ax, 00d82h ; b8 82 0d 15239 jmp short 09caah ; eb eb 15167 15240 or ah, 00ah ; 80 cc 0a 15168 15241 mov word [bp+012h], ax ; 89 46 12 15169 15242 mov word [bp+018h], dx ; 89 56 18 15170 jmp short 09 bffh ; eb c215243 jmp short 09c8ch ; eb c2 15171 15244 mov word [bp+012h], 00102h ; c7 46 12 02 01 15172 jmp short 09 bffh ; eb bb15245 jmp short 09c8ch ; eb bb 15173 15246 or ah, 080h ; 80 cc 80 15174 jmp short 09c 35h ; eb ec15175 pci16_select_reg_: ; 0xf9c 49LB 0x2415247 jmp short 09cc2h ; eb ec 15248 pci16_select_reg_: ; 0xf9cd6 LB 0x24 15176 15249 push bp ; 55 15177 15250 mov bp, sp ; 89 e5 … … 15190 15263 pop bp ; 5d 15191 15264 retn ; c3 15192 pci16_find_device_: ; 0xf9c 6dLB 0xf715265 pci16_find_device_: ; 0xf9cfa LB 0xf7 15193 15266 push bp ; 55 15194 15267 mov bp, sp ; 89 e5 … … 15204 15277 mov byte [bp-006h], 000h ; c6 46 fa 00 15205 15278 test bl, 007h ; f6 c3 07 15206 jne short 09 cb5h ; 75 2d15279 jne short 09d42h ; 75 2d 15207 15280 mov dx, strict word 0000eh ; ba 0e 00 15208 15281 mov ax, bx ; 89 d8 15209 call 09c 49h ; e8 b9 ff15282 call 09cd6h ; e8 b9 ff 15210 15283 mov dx, 00cfeh ; ba fe 0c 15211 15284 in AL, DX ; ec … … 15214 15287 mov byte [bp-008h], al ; 88 46 f8 15215 15288 cmp AL, strict byte 0ffh ; 3c ff 15216 jne short 09 ca3h ; 75 0615289 jne short 09d30h ; 75 06 15217 15290 add bx, strict byte 00008h ; 83 c3 08 15218 jmp near 09d 35h ; e9 92 0015291 jmp near 09dc2h ; e9 92 00 15219 15292 test byte [bp-008h], 080h ; f6 46 f8 80 15220 je short 09 cb0h ; 74 0715293 je short 09d3dh ; 74 07 15221 15294 mov word [bp-00eh], strict word 00001h ; c7 46 f2 01 00 15222 jmp short 09 cb5h ; eb 0515295 jmp short 09d42h ; eb 05 15223 15296 mov word [bp-00eh], strict word 00008h ; c7 46 f2 08 00 15224 15297 mov al, byte [bp-008h] ; 8a 46 f8 15225 15298 and AL, strict byte 007h ; 24 07 15226 15299 cmp AL, strict byte 001h ; 3c 01 15227 jne short 09 cdch ; 75 1e15300 jne short 09d69h ; 75 1e 15228 15301 mov al, bh ; 88 f8 15229 15302 xor ah, ah ; 30 e4 15230 15303 test ax, ax ; 85 c0 15231 jne short 09 cdch ; 75 1615304 jne short 09d69h ; 75 16 15232 15305 mov dx, strict word 0001ah ; ba 1a 00 15233 15306 mov ax, bx ; 89 d8 15234 call 09c 49h ; e8 7b ff15307 call 09cd6h ; e8 7b ff 15235 15308 mov dx, 00cfeh ; ba fe 0c 15236 15309 in AL, DX ; ec … … 15238 15311 ; sub ah, ah ; 2a e4 15239 15312 cmp al, byte [bp-006h] ; 3a 46 fa 15240 jbe short 09 cdch ; 76 0315313 jbe short 09d69h ; 76 03 15241 15314 mov byte [bp-006h], al ; 88 46 fa 15242 15315 test di, di ; 85 ff 15243 je short 09 ce5h ; 74 0515316 je short 09d72h ; 74 05 15244 15317 mov dx, strict word 00008h ; ba 08 00 15245 jmp short 09 ce7h ; eb 0215318 jmp short 09d74h ; eb 02 15246 15319 xor dx, dx ; 31 d2 15247 15320 mov ax, bx ; 89 d8 15248 call 09c 49h ; e8 5d ff15321 call 09cd6h ; e8 5d ff 15249 15322 mov dx, 00cfch ; ba fc 0c 15250 15323 in eax, DX ; 66 ed … … 15257 15330 mov word [bp-00ch], strict word 00000h ; c7 46 f4 00 00 15258 15331 test di, di ; 85 ff 15259 je short 09d 16h ; 74 0f15332 je short 09da3h ; 74 0f 15260 15333 mov cx, strict word 00008h ; b9 08 00 15261 15334 shr dx, 1 ; d1 ea 15262 15335 rcr ax, 1 ; d1 d8 15263 loop 09d 0ah ; e2 fa15336 loop 09d97h ; e2 fa 15264 15337 mov word [bp-00ah], ax ; 89 46 f6 15265 15338 mov word [bp-010h], dx ; 89 56 f0 15266 15339 mov ax, word [bp-010h] ; 8b 46 f0 15267 15340 cmp ax, word [bp-014h] ; 3b 46 ec 15268 jne short 09d 26h ; 75 0815341 jne short 09db3h ; 75 08 15269 15342 mov ax, word [bp-00ah] ; 8b 46 f6 15270 15343 cmp ax, word [bp-012h] ; 3b 46 ee 15271 je short 09d 2ch ; 74 0615344 je short 09db9h ; 74 06 15272 15345 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 15273 je short 09d 32h ; 74 0615346 je short 09dbfh ; 74 06 15274 15347 dec si ; 4e 15275 15348 cmp si, strict byte 0ffffh ; 83 fe ff 15276 je short 09d 45h ; 74 1315349 je short 09dd2h ; 74 13 15277 15350 add bx, word [bp-00eh] ; 03 5e f2 15278 15351 mov al, bh ; 88 f8 … … 15281 15354 xor dh, dh ; 30 f6 15282 15355 cmp ax, dx ; 39 d0 15283 jnbe short 09d 45h ; 77 0315284 jmp near 09 c83h ; e9 3e ff15356 jnbe short 09dd2h ; 77 03 15357 jmp near 09d10h ; e9 3e ff 15285 15358 cmp si, strict byte 0ffffh ; 83 fe ff 15286 jne short 09d 4eh ; 75 0415359 jne short 09ddbh ; 75 04 15287 15360 mov ax, bx ; 89 d8 15288 jmp short 09d 51h ; eb 0315361 jmp short 09ddeh ; eb 03 15289 15362 mov ax, strict word 0ffffh ; b8 ff ff 15290 15363 lea sp, [bp-004h] ; 8d 66 fc … … 15293 15366 pop bp ; 5d 15294 15367 retn ; c3 15295 inc bp ; 45 15368 rcr byte [bp-06115h], CL ; d2 9e eb 9e 15369 std ; fd 15296 15370 sahf ; 9e 15297 pop si ; 5e 15298 sahf ; 9e 15299 jo short 09cfch ; 70 9e 15300 test byte [bp-0616ah], bl ; 84 9e 96 9e 15301 db 0a9h 15302 sahf ; 9e 15303 _pci16_function: ; 0xf9d64 LB 0x1d5 15371 adc word [bx-060ddh], bx ; 11 9f 23 9f 15372 db 036h, 09fh 15373 ; ss lahf ; 36 9f 15374 _pci16_function: ; 0xf9df1 LB 0x1d5 15304 15375 push bp ; 55 15305 15376 mov bp, sp ; 89 e5 … … 15315 15386 xor ah, ah ; 30 e4 15316 15387 cmp bx, strict byte 00003h ; 83 fb 03 15317 jc short 09 d96h ; 72 1315318 jbe short 09 de9h ; 76 6415388 jc short 09e23h ; 72 13 15389 jbe short 09e76h ; 76 64 15319 15390 cmp bx, strict byte 0000eh ; 83 fb 0e 15320 je short 09 df1h ; 74 6715391 je short 09e7eh ; 74 67 15321 15392 cmp bx, strict byte 00008h ; 83 fb 08 15322 jc short 09 da0h ; 72 1115393 jc short 09e2dh ; 72 11 15323 15394 cmp bx, strict byte 0000dh ; 83 fb 0d 15324 jbe short 09 df4h ; 76 6015325 jmp short 09 da0h ; eb 0a15395 jbe short 09e81h ; 76 60 15396 jmp short 09e2dh ; eb 0a 15326 15397 cmp bx, strict byte 00002h ; 83 fb 02 15327 je short 09 dbfh ; 74 2415398 je short 09e4ch ; 74 24 15328 15399 cmp bx, strict byte 00001h ; 83 fb 01 15329 je short 09 da3h ; 74 0315330 jmp near 09f 02h ; e9 5f 0115400 je short 09e30h ; 74 03 15401 jmp near 09f8fh ; e9 5f 01 15331 15402 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 15332 15403 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 15334 15405 mov word [bp+018h], 04350h ; c7 46 18 50 43 15335 15406 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 15336 jmp near 09f 32h ; e9 73 0115407 jmp near 09fbfh ; e9 73 01 15337 15408 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 15338 jne short 09 dcbh ; 75 0615409 jne short 09e58h ; 75 06 15339 15410 or ah, 083h ; 80 cc 83 15340 jmp near 09f 2bh ; e9 60 0115411 jmp near 09fb8h ; e9 60 01 15341 15412 mov bx, word [bp+008h] ; 8b 5e 08 15342 15413 mov dx, word [bp+01ch] ; 8b 56 1c 15343 15414 mov ax, word [bp+018h] ; 8b 46 18 15344 15415 xor cx, cx ; 31 c9 15345 call 09c 6dh ; e8 94 fe15416 call 09cfah ; e8 94 fe 15346 15417 cmp ax, strict word 0ffffh ; 3d ff ff 15347 jne short 09 debh ; 75 0d15418 jne short 09e78h ; 75 0d 15348 15419 mov ax, word [bp+020h] ; 8b 46 20 15349 15420 xor ah, ah ; 30 e4 15350 15421 or ah, 086h ; 80 cc 86 15351 jmp near 09f 2bh ; e9 42 0115352 jmp short 09 df6h ; eb 0b15422 jmp near 09fb8h ; e9 42 01 15423 jmp short 09e83h ; eb 0b 15353 15424 mov word [bp+014h], ax ; 89 46 14 15354 jmp near 09f 32h ; e9 41 0115355 jmp near 09 ebdh ; e9 c9 0015356 jmp short 09e 1bh ; eb 2515425 jmp near 09fbfh ; e9 41 01 15426 jmp near 09f4ah ; e9 c9 00 15427 jmp short 09ea8h ; eb 25 15357 15428 mov bx, word [bp+008h] ; 8b 5e 08 15358 15429 mov ax, word [bp+01ch] ; 8b 46 1c 15359 15430 mov dx, word [bp+01eh] ; 8b 56 1e 15360 15431 mov cx, strict word 00001h ; b9 01 00 15361 call 09c 6dh ; e8 68 fe15432 call 09cfah ; e8 68 fe 15362 15433 cmp ax, strict word 0ffffh ; 3d ff ff 15363 jne short 09e 15h ; 75 0b15434 jne short 09ea2h ; 75 0b 15364 15435 mov ax, word [bp+020h] ; 8b 46 20 15365 15436 xor ah, ah ; 30 e4 15366 15437 or ah, 086h ; 80 cc 86 15367 jmp near 09f 2bh ; e9 16 0115438 jmp near 09fb8h ; e9 16 01 15368 15439 mov word [bp+014h], ax ; 89 46 14 15369 jmp near 09f 32h ; e9 17 0115440 jmp near 09fbfh ; e9 17 01 15370 15441 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 15371 jc short 09e 28h ; 72 0615442 jc short 09eb5h ; 72 06 15372 15443 or ah, 087h ; 80 cc 87 15373 jmp near 09f 2bh ; e9 03 0115444 jmp near 09fb8h ; e9 03 01 15374 15445 mov dx, word [bp+004h] ; 8b 56 04 15375 15446 mov ax, word [bp+014h] ; 8b 46 14 15376 call 09c 49h ; e8 18 fe15447 call 09cd6h ; e8 18 fe 15377 15448 mov bx, word [bp+020h] ; 8b 5e 20 15378 15449 xor bh, bh ; 30 ff 15379 15450 sub bx, strict byte 00008h ; 83 eb 08 15380 15451 cmp bx, strict byte 00005h ; 83 fb 05 15381 jnbe short 09 ea6h ; 77 6815452 jnbe short 09f33h ; 77 68 15382 15453 sal bx, 1 ; d1 e3 15383 jmp word [cs:bx-062 a8h] ; 2e ff a7 589d15454 jmp word [cs:bx-0621bh] ; 2e ff a7 e5 9d 15384 15455 mov bx, word [bp+01ch] ; 8b 5e 1c 15385 15456 xor bl, bl ; 30 db … … 15392 15463 or bx, ax ; 09 c3 15393 15464 mov word [bp+01ch], bx ; 89 5e 1c 15394 jmp short 09 ea6h ; eb 4815465 jmp short 09f33h ; eb 48 15395 15466 mov dx, word [bp+004h] ; 8b 56 04 15396 15467 xor dh, dh ; 30 f6 … … 15399 15470 in ax, DX ; ed 15400 15471 mov word [bp+01ch], ax ; 89 46 1c 15401 jmp short 09 ea6h ; eb 3615472 jmp short 09f33h ; eb 36 15402 15473 mov dx, 00cfch ; ba fc 0c 15403 15474 in eax, DX ; 66 ed … … 15408 15479 mov word [bp+01ch], ax ; 89 46 1c 15409 15480 mov word [bp+01eh], dx ; 89 56 1e 15410 jmp short 09 ea6h ; eb 2215481 jmp short 09f33h ; eb 22 15411 15482 mov ax, word [bp+01ch] ; 8b 46 1c 15412 15483 mov dx, word [bp+004h] ; 8b 56 04 … … 15415 15486 add dx, 00cfch ; 81 c2 fc 0c 15416 15487 out DX, AL ; ee 15417 jmp short 09 ea6h ; eb 1015488 jmp short 09f33h ; eb 10 15418 15489 mov ax, word [bp+01ch] ; 8b 46 1c 15419 15490 mov dx, word [bp+004h] ; 8b 56 04 … … 15422 15493 add dx, 00cfch ; 81 c2 fc 0c 15423 15494 out DX, ax ; ef 15424 jmp near 09f 32h ; e9 89 0015495 jmp near 09fbfh ; e9 89 00 15425 15496 mov ax, word [bp+01ch] ; 8b 46 1c 15426 15497 mov cx, word [bp+01eh] ; 8b 4e 1e … … 15431 15502 ; mov ax, cx ; 8b c1 15432 15503 out DX, eax ; 66 ef 15433 jmp short 09f 32h ; eb 7515504 jmp short 09fbfh ; eb 75 15434 15505 mov bx, word [bp+004h] ; 8b 5e 04 15435 15506 mov es, [bp+026h] ; 8e 46 26 … … 15438 15509 mov cx, word [0f380h] ; 8b 0e 80 f3 15439 15510 cmp cx, word [es:bx] ; 26 3b 0f 15440 jbe short 09 ee3h ; 76 1115511 jbe short 09f70h ; 76 11 15441 15512 mov ax, word [bp+020h] ; 8b 46 20 15442 15513 xor ah, ah ; 30 e4 … … 15444 15515 mov word [bp+020h], ax ; 89 46 20 15445 15516 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 15446 jmp short 09 ef7h ; eb 1415517 jmp short 09f84h ; eb 14 15447 15518 les di, [es:bx+002h] ; 26 c4 7f 02 15448 15519 mov si, 0f1a0h ; be a0 f1 … … 15456 15527 les bx, [bp-008h] ; c4 5e f8 15457 15528 mov word [es:bx], ax ; 26 89 07 15458 jmp short 09f 32h ; eb 3015459 mov bx, 00 da0h ; bb a0 0d15529 jmp short 09fbfh ; eb 30 15530 mov bx, 00e02h ; bb 02 0e 15460 15531 mov cx, ds ; 8c d9 15461 15532 mov ax, strict word 00004h ; b8 04 00 15462 call 01933h ; e8 26 7a15533 call 01933h ; e8 99 79 15463 15534 mov ax, word [bp+014h] ; 8b 46 14 15464 15535 push ax ; 50 15465 15536 mov ax, word [bp+020h] ; 8b 46 20 15466 15537 push ax ; 50 15467 mov ax, 00d 5ch ; b8 5c0d15538 mov ax, 00dbeh ; b8 be 0d 15468 15539 push ax ; 50 15469 15540 mov ax, strict word 00004h ; b8 04 00 15470 15541 push ax ; 50 15471 call 01976h ; e8 56 7a15542 call 01976h ; e8 c9 79 15472 15543 add sp, strict byte 00008h ; 83 c4 08 15473 15544 mov ax, word [bp+020h] ; 8b 46 20 … … 15481 15552 pop bp ; 5d 15482 15553 retn ; c3 15483 pci_find_classcode_: ; 0xf9f 39LB 0x815554 pci_find_classcode_: ; 0xf9fc6 LB 0x8 15484 15555 push bp ; 55 15485 15556 mov bp, sp ; 89 e5 … … 15487 15558 pop bp ; 5d 15488 15559 retn ; c3 15489 pci_read_config_byte_: ; 0xf9f41 LB 0x27 15560 pci_find_device_: ; 0xf9fce LB 0x23 15561 push bp ; 55 15562 mov bp, sp ; 89 e5 15563 push bx ; 53 15564 push cx ; 51 15565 push si ; 56 15566 mov cx, dx ; 89 d1 15567 xor si, si ; 31 f6 15568 mov dx, ax ; 89 c2 15569 mov ax, 0b102h ; b8 02 b1 15570 int 01ah ; cd 1a 15571 cmp ah, 000h ; 80 fc 00 15572 je short 09fe7h ; 74 03 15573 mov bx, strict word 0ffffh ; bb ff ff 15574 mov ax, bx ; 89 d8 15575 lea sp, [bp-006h] ; 8d 66 fa 15576 pop si ; 5e 15577 pop cx ; 59 15578 pop bx ; 5b 15579 pop bp ; 5d 15580 retn ; c3 15581 pci_read_config_byte_: ; 0xf9ff1 LB 0x27 15490 15582 push bp ; 55 15491 15583 mov bp, sp ; 89 e5 … … 15510 15602 pop bp ; 5d 15511 15603 retn ; c3 15512 pci_read_config_word_: ; 0xf 9f68 LB 0x2515604 pci_read_config_word_: ; 0xfa018 LB 0x25 15513 15605 push bp ; 55 15514 15606 mov bp, sp ; 89 e5 … … 15532 15624 pop bp ; 5d 15533 15625 retn ; c3 15534 pci_read_config_dword_: ; 0xf 9f8d LB 0x3f15626 pci_read_config_dword_: ; 0xfa03d LB 0x3f 15535 15627 push bp ; 55 15536 15628 mov bp, sp ; 89 e5 … … 15547 15639 int 01ah ; cd 1a 15548 15640 test cx, cx ; 85 c9 15549 jne short 0 9fbdh ; 75 1415641 jne short 0a06dh ; 75 14 15550 15642 mov al, byte [bp-006h] ; 8a 46 fa 15551 15643 xor ah, ah ; 30 e4 … … 15557 15649 int 01ah ; cd 1a 15558 15650 test cx, cx ; 85 c9 15559 je short 0 9fc2h ; 74 0515651 je short 0a072h ; 74 05 15560 15652 mov ax, strict word 00001h ; b8 01 00 15561 jmp short 0 9fc4h ; eb 0215653 jmp short 0a074h ; eb 02 15562 15654 xor ax, ax ; 31 c0 15563 15655 cwd ; 99 … … 15567 15659 pop bp ; 5d 15568 15660 retn ; c3 15569 pci_write_config_word_: ; 0xf 9fcc LB 0x1e15661 pci_write_config_word_: ; 0xfa07c LB 0x1e 15570 15662 push bp ; 55 15571 15663 mov bp, sp ; 89 e5 … … 15584 15676 pop bp ; 5d 15585 15677 retn ; c3 15586 vds_is_present_: ; 0xf 9fea LB 0x1d15678 vds_is_present_: ; 0xfa09a LB 0x1d 15587 15679 push bx ; 53 15588 15680 push bp ; 55 … … 15592 15684 mov es, ax ; 8e c0 15593 15685 test byte [es:bx], 020h ; 26 f6 07 20 15594 je short 0a0 02h ; 74 0615686 je short 0a0b2h ; 74 06 15595 15687 mov ax, strict word 00001h ; b8 01 00 15596 15688 pop bp ; 5d … … 15601 15693 pop bx ; 5b 15602 15694 retn ; c3 15603 vds_real_to_lin_: ; 0xfa0 07 LB 0x1e15695 vds_real_to_lin_: ; 0xfa0b7 LB 0x1e 15604 15696 push bx ; 53 15605 15697 push cx ; 51 … … 15612 15704 sal ax, 1 ; d1 e0 15613 15705 rcl dx, 1 ; d1 d2 15614 loop 0a0 15h ; e2 fa15706 loop 0a0c5h ; e2 fa 15615 15707 xor cx, cx ; 31 c9 15616 15708 add ax, bx ; 01 d8 … … 15620 15712 pop bx ; 5b 15621 15713 retn ; c3 15622 vds_build_sg_list_: ; 0xfa0 25 LB 0x7715714 vds_build_sg_list_: ; 0xfa0d5 LB 0x77 15623 15715 push bp ; 55 15624 15716 mov bp, sp ; 89 e5 … … 15634 15726 mov bx, word [bp+006h] ; 8b 5e 06 15635 15727 mov word [es:di+002h], bx ; 26 89 5d 02 15636 call 0a0 07h ; e8 c3 ff15728 call 0a0b7h ; e8 c3 ff 15637 15729 mov es, si ; 8e c6 15638 15730 mov word [es:di+004h], ax ; 26 89 45 04 15639 15731 mov word [es:di+006h], dx ; 26 89 55 06 15640 15732 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15641 call 0 9feah ; e8 93 ff15733 call 0a09ah ; e8 93 ff 15642 15734 test ax, ax ; 85 c0 15643 je short 0a 06ch ; 74 1115735 je short 0a11ch ; 74 11 15644 15736 mov es, si ; 8e c6 15645 15737 mov ax, 08105h ; b8 05 81 15646 15738 mov dx, strict word 00000h ; ba 00 00 15647 15739 int 04bh ; cd 4b 15648 jc short 0a 069h ; 72 0215740 jc short 0a119h ; 72 02 15649 15741 db 032h, 0c0h 15650 15742 ; xor al, al ; 32 c0 15651 15743 cbw ; 98 15652 jmp short 0a 093h ; eb 2715744 jmp short 0a143h ; eb 27 15653 15745 mov es, si ; 8e c6 15654 15746 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15667 15759 pop bp ; 5d 15668 15760 retn 00004h ; c2 04 00 15669 vds_free_sg_list_: ; 0xfa 09c LB 0x3415761 vds_free_sg_list_: ; 0xfa14c LB 0x34 15670 15762 push bp ; 55 15671 15763 mov bp, sp ; 89 e5 … … 15673 15765 push di ; 57 15674 15766 mov bx, ax ; 89 c3 15675 call 0 9feah ; e8 44 ff15767 call 0a09ah ; e8 44 ff 15676 15768 test ax, ax ; 85 c0 15677 je short 0a 0bbh ; 74 1115769 je short 0a16bh ; 74 11 15678 15770 mov di, bx ; 89 df 15679 15771 mov es, dx ; 8e c2 … … 15681 15773 mov dx, strict word 00000h ; ba 00 00 15682 15774 int 04bh ; cd 4b 15683 jc short 0a 0bah ; 72 0215775 jc short 0a16ah ; 72 02 15684 15776 db 032h, 0c0h 15685 15777 ; xor al, al ; 32 c0 … … 15693 15785 retn ; c3 15694 15786 times 0x6 db 0 15695 __U4M: ; 0xfa 0d0 LB 0x2015787 __U4M: ; 0xfa180 LB 0x20 15696 15788 pushfw ; 9c 15697 15789 push si ; 56 … … 15720 15812 retn ; c3 15721 15813 times 0x4 db 0 15722 __U4D: ; 0xfa 0f0 LB 0x3015814 __U4D: ; 0xfa1a0 LB 0x30 15723 15815 pushfw ; 9c 15724 15816 push DS ; 1e … … 15735 15827 push dx ; 52 15736 15828 push ax ; 50 15737 call 0a 1d5h ; e8 d0 0015829 call 0a285h ; e8 d0 00 15738 15830 mov cx, word [bp-002h] ; 8b 4e fe 15739 15831 mov bx, word [bp-004h] ; 8b 5e fc … … 15746 15838 retn ; c3 15747 15839 times 0xe db 0 15748 __U8RS: ; 0xfa1 20 LB 0x1015840 __U8RS: ; 0xfa1d0 LB 0x10 15749 15841 test si, si ; 85 f6 15750 je short 0a1 2fh ; 74 0b15842 je short 0a1dfh ; 74 0b 15751 15843 shr ax, 1 ; d1 e8 15752 15844 rcr bx, 1 ; d1 db … … 15754 15846 rcr dx, 1 ; d1 da 15755 15847 dec si ; 4e 15756 jne short 0a1 24h ; 75 f515848 jne short 0a1d4h ; 75 f5 15757 15849 retn ; c3 15758 __U8LS: ; 0xfa1 30 LB 0x1015850 __U8LS: ; 0xfa1e0 LB 0x10 15759 15851 test si, si ; 85 f6 15760 je short 0a1 3fh ; 74 0b15852 je short 0a1efh ; 74 0b 15761 15853 sal dx, 1 ; d1 e2 15762 15854 rcl cx, 1 ; d1 d1 … … 15764 15856 rcl ax, 1 ; d1 d0 15765 15857 dec si ; 4e 15766 jne short 0a1 34h ; 75 f515858 jne short 0a1e4h ; 75 f5 15767 15859 retn ; c3 15768 _fmemset_: ; 0xfa1 40 LB 0x1015860 _fmemset_: ; 0xfa1f0 LB 0x10 15769 15861 push di ; 57 15770 15862 mov es, dx ; 8e c2 … … 15777 15869 retn ; c3 15778 15870 times 0x3 db 0 15779 _fmemcpy_: ; 0xfa 150 LB 0x3a15871 _fmemcpy_: ; 0xfa200 LB 0x3a 15780 15872 push bp ; 55 15781 15873 db 08bh, 0ech … … 15802 15894 add byte [bx+si], al ; 00 00 15803 15895 add byte [bx+si], al ; 00 00 15804 mov AL, byte [0a2a1h] ; a0 a1 a2 15805 mov ax, word [0a1a6h] ; a1 a6 a1 15806 cmpsb ; a6 15807 mov ax, word [0a1a6h] ; a1 a6 a1 15808 test AL, strict byte 0a1h ; a8 a1 15809 test AL, strict byte 0a1h ; a8 a1 15810 stosb ; aa 15811 mov ax, word [0a1aeh] ; a1 ae a1 15812 scasb ; ae 15813 mov ax, word [0a1b0h] ; a1 b0 a1 15814 mov CH, strict byte 0a1h ; b5 a1 15815 mov BH, strict byte 0a1h ; b7 a1 15816 apm_worker: ; 0xfa18a LB 0x3a 15896 push ax ; 50 15897 mov byte [0a252h], AL ; a2 52 a2 15898 push si ; 56 15899 mov byte [0a256h], AL ; a2 56 a2 15900 push si ; 56 15901 mov byte [0a258h], AL ; a2 58 a2 15902 pop ax ; 58 15903 mov byte [0a25ah], AL ; a2 5a a2 15904 pop si ; 5e 15905 mov byte [0a25eh], AL ; a2 5e a2 15906 pushaw ; 60 15907 mov byte [0a265h], AL ; a2 65 a2 15908 db 067h 15909 db 0a2h 15910 apm_worker: ; 0xfa23a LB 0x3a 15817 15911 sti ; fb 15818 15912 push ax ; 50 … … 15826 15920 pop ax ; 58 15827 15921 mov AH, strict byte 053h ; b4 53 15828 jnc short 0a 1c0h ; 73 2515829 jmp word [cs:bp-05 e90h] ; 2e ff a6 70 a115830 jmp short 0a 1beh ; eb 1c15922 jnc short 0a270h ; 73 25 15923 jmp word [cs:bp-05de0h] ; 2e ff a6 20 a2 15924 jmp short 0a26eh ; eb 1c 15831 15925 sti ; fb 15832 15926 hlt ; f4 15833 jmp short 0a 1beh ; eb 1815834 jmp short 0a 1beh ; eb 1615835 jmp short 0a 1c0h ; eb 1615927 jmp short 0a26eh ; eb 18 15928 jmp short 0a26eh ; eb 16 15929 jmp short 0a270h ; eb 16 15836 15930 mov AH, strict byte 080h ; b4 80 15837 jmp short 0a 1c2h ; eb 1415838 jmp short 0a 1c0h ; eb 1015931 jmp short 0a272h ; eb 14 15932 jmp short 0a270h ; eb 10 15839 15933 mov ax, 00102h ; b8 02 01 15840 jmp short 0a 1beh ; eb 0915841 jmp short 0a 1beh ; eb 0715934 jmp short 0a26eh ; eb 09 15935 jmp short 0a26eh ; eb 07 15842 15936 mov BL, strict byte 000h ; b3 00 15843 15937 mov cx, strict word 00000h ; b9 00 00 15844 jmp short 0a 1beh ; eb 0015938 jmp short 0a26eh ; eb 00 15845 15939 clc ; f8 15846 15940 retn ; c3 … … 15848 15942 stc ; f9 15849 15943 retn ; c3 15850 apm_pm16_entry: ; 0xfa 1c4 LB 0x1115944 apm_pm16_entry: ; 0xfa274 LB 0x11 15851 15945 mov AH, strict byte 002h ; b4 02 15852 15946 push DS ; 1e … … 15856 15950 add bp, strict byte 00008h ; 83 c5 08 15857 15951 mov ds, bp ; 8e dd 15858 call 0a 18ah ; e8 b8 ff15952 call 0a23ah ; e8 b8 ff 15859 15953 pop bp ; 5d 15860 15954 pop DS ; 1f 15861 15955 retf ; cb 15862 _DoUInt32Div: ; 0xfa 1d5 LB 0x26b15956 _DoUInt32Div: ; 0xfa285 LB 0x26b 15863 15957 push bp ; 55 15864 15958 mov bp, sp ; 89 e5 … … 15878 15972 mov [bp-006h], ds ; 8c 5e fa 15879 15973 cmp word [bx+002h], strict byte 00000h ; 83 7f 02 00 15880 jne short 0a2 25h ; 75 2215974 jne short 0a2d5h ; 75 22 15881 15975 mov ax, word [bx] ; 8b 07 15882 15976 test ax, ax ; 85 c0 15883 je short 0a2 22h ; 74 1915977 je short 0a2d2h ; 74 19 15884 15978 cmp ax, strict word 00001h ; 3d 01 00 15885 jne short 0a2 25h ; 75 1715979 jne short 0a2d5h ; 75 17 15886 15980 xor ax, ax ; 31 c0 15887 15981 mov word [bp+00ah], ax ; 89 46 0a … … 15891 15985 mov ax, word [bp-01ah] ; 8b 46 e6 15892 15986 mov word [bp+006h], ax ; 89 46 06 15893 jmp near 0a4 2dh ; e9 08 0215987 jmp near 0a4ddh ; e9 08 02 15894 15988 lds bx, [bp-00ch] ; c5 5e f4 15895 15989 mov ax, word [bx+002h] ; 8b 47 02 15896 15990 mov ds, [bp-006h] ; 8e 5e fa 15897 15991 cmp ax, word [si+002h] ; 3b 44 02 15898 je short 0a2 4bh ; 74 1815992 je short 0a2fbh ; 74 18 15899 15993 mov ds, [bp-00ah] ; 8e 5e f6 15900 15994 mov ax, word [bx+002h] ; 8b 47 02 15901 15995 mov ds, [bp-006h] ; 8e 5e fa 15902 15996 cmp ax, word [si+002h] ; 3b 44 02 15903 jbe short 0a2 46h ; 76 0515997 jbe short 0a2f6h ; 76 05 15904 15998 mov ax, strict word 00001h ; b8 01 00 15905 jmp short 0a 26ch ; eb 2615999 jmp short 0a31ch ; eb 26 15906 16000 mov ax, strict word 0ffffh ; b8 ff ff 15907 jmp short 0a 26ch ; eb 2116001 jmp short 0a31ch ; eb 21 15908 16002 mov ds, [bp-00ah] ; 8e 5e f6 15909 16003 mov ax, word [bx] ; 8b 07 15910 16004 mov ds, [bp-006h] ; 8e 5e fa 15911 16005 cmp ax, word [si] ; 3b 04 15912 je short 0a 26ah ; 74 1316006 je short 0a31ah ; 74 13 15913 16007 mov ds, [bp-00ah] ; 8e 5e f6 15914 16008 mov ax, word [bx] ; 8b 07 15915 16009 mov ds, [bp-006h] ; 8e 5e fa 15916 16010 cmp ax, word [si] ; 3b 04 15917 jbe short 0a 265h ; 76 0215918 jmp short 0a2 41h ; eb dc16011 jbe short 0a315h ; 76 02 16012 jmp short 0a2f1h ; eb dc 15919 16013 mov ax, strict word 0ffffh ; b8 ff ff 15920 jmp short 0a 26ch ; eb 0216014 jmp short 0a31ch ; eb 02 15921 16015 xor ax, ax ; 31 c0 15922 16016 test ax, ax ; 85 c0 15923 jnl short 0a 28eh ; 7d 1e16017 jnl short 0a33eh ; 7d 1e 15924 16018 lds bx, [bp-00ch] ; c5 5e f4 15925 16019 mov ax, word [bx] ; 8b 07 … … 15931 16025 mov word [bx+002h], strict word 00000h ; c7 47 02 00 00 15932 16026 mov word [bx], strict word 00000h ; c7 07 00 00 15933 jmp short 0a2 22h ; eb 9415934 jne short 0a 2a5h ; 75 1516027 jmp short 0a2d2h ; eb 94 16028 jne short 0a355h ; 75 15 15935 16029 mov ds, [bp-008h] ; 8e 5e f8 15936 16030 mov word [di+002h], ax ; 89 45 02 … … 15939 16033 mov word [bx], strict word 00001h ; c7 07 01 00 15940 16034 mov word [bx+002h], ax ; 89 47 02 15941 jmp near 0a4 2dh ; e9 88 0116035 jmp near 0a4ddh ; e9 88 01 15942 16036 lds bx, [bp-00ch] ; c5 5e f4 15943 16037 mov ax, word [bx+002h] ; 8b 47 02 15944 16038 test ax, ax ; 85 c0 15945 je short 0a 2c0h ; 74 1116039 je short 0a370h ; 74 11 15946 16040 push ax ; 50 15947 16041 mov ax, 0f000h ; b8 00 f0 15948 16042 mov ds, ax ; 8e d8 15949 call 0a4 40h ; e8 88 0116043 call 0a4f0h ; e8 88 01 15950 16044 add sp, strict byte 00002h ; 83 c4 02 15951 16045 add ax, strict word 00010h ; 05 10 00 15952 jmp short 0a 2cdh ; eb 0d16046 jmp short 0a37dh ; eb 0d 15953 16047 push word [bx] ; ff 37 15954 16048 mov ax, 0f000h ; b8 00 f0 15955 16049 mov ds, ax ; 8e d8 15956 call 0a4 40h ; e8 76 0116050 call 0a4f0h ; e8 76 01 15957 16051 add sp, strict byte 00002h ; 83 c4 02 15958 16052 mov word [bp-014h], ax ; 89 46 ec … … 15960 16054 mov ax, word [si+002h] ; 8b 44 02 15961 16055 test ax, ax ; 85 c0 15962 je short 0a 2ebh ; 74 1116056 je short 0a39bh ; 74 11 15963 16057 push ax ; 50 15964 16058 mov ax, 0f000h ; b8 00 f0 15965 16059 mov ds, ax ; 8e d8 15966 call 0a4 40h ; e8 5d 0116060 call 0a4f0h ; e8 5d 01 15967 16061 add sp, strict byte 00002h ; 83 c4 02 15968 16062 add ax, strict word 00010h ; 05 10 00 15969 jmp short 0a 2f8h ; eb 0d16063 jmp short 0a3a8h ; eb 0d 15970 16064 push word [si] ; ff 34 15971 16065 mov ax, 0f000h ; b8 00 f0 15972 16066 mov ds, ax ; 8e d8 15973 call 0a4 40h ; e8 4b 0116067 call 0a4f0h ; e8 4b 01 15974 16068 add sp, strict byte 00002h ; 83 c4 02 15975 16069 mov dx, word [bp-014h] ; 8b 56 ec … … 15982 16076 mov word [bp-016h], ax ; 89 46 ea 15983 16077 test dx, dx ; 85 d2 15984 je short 0a 368h ; 74 5616078 je short 0a418h ; 74 56 15985 16079 mov cx, dx ; 89 d1 15986 16080 xor ch, dh ; 30 f5 … … 15988 16082 mov ax, word [si] ; 8b 04 15989 16083 mov dx, word [si+002h] ; 8b 54 02 15990 jcxz 0a3 26h ; e3 0616084 jcxz 0a3d6h ; e3 06 15991 16085 sal ax, 1 ; d1 e0 15992 16086 rcl dx, 1 ; d1 d2 15993 loop 0a3 20h ; e2 fa16087 loop 0a3d0h ; e2 fa 15994 16088 mov word [bp-018h], ax ; 89 46 e8 15995 16089 mov word [bp-016h], dx ; 89 56 ea … … 15997 16091 lds bx, [bp-00ch] ; c5 5e f4 15998 16092 cmp ax, word [bx+002h] ; 3b 47 02 15999 jnbe short 0a3 46h ; 77 0f16093 jnbe short 0a3f6h ; 77 0f 16000 16094 mov ax, word [bp-016h] ; 8b 46 ea 16001 16095 cmp ax, word [bx+002h] ; 3b 47 02 16002 jne short 0a3 4ah ; 75 0b16096 jne short 0a3fah ; 75 0b 16003 16097 mov ax, word [bp-018h] ; 8b 46 e8 16004 16098 cmp ax, word [bx] ; 3b 07 16005 jbe short 0a3 4ah ; 76 0416099 jbe short 0a3fah ; 76 04 16006 16100 mov AL, strict byte 001h ; b0 01 16007 jmp short 0a3 4ch ; eb 0216101 jmp short 0a3fch ; eb 02 16008 16102 xor al, al ; 30 c0 16009 16103 test al, al ; 84 c0 16010 je short 0a 373h ; 74 2316104 je short 0a423h ; 74 23 16011 16105 shr word [bp-016h], 1 ; d1 6e ea 16012 16106 rcr word [bp-018h], 1 ; d1 5e e8 16013 16107 dec word [bp-012h] ; ff 4e ee 16014 jmp short 0a 373h ; eb 1816108 jmp short 0a423h ; eb 18 16015 16109 mov cx, strict word 0001fh ; b9 1f 00 16016 16110 sal word [bp-018h], 1 ; d1 66 e8 16017 16111 rcl word [bp-016h], 1 ; d1 56 ea 16018 loop 0a 35eh ; e2 f816019 jmp short 0a 356h ; eb ee16112 loop 0a40eh ; e2 f8 16113 jmp short 0a406h ; eb ee 16020 16114 mov ax, word [si] ; 8b 04 16021 16115 mov word [bp-018h], ax ; 89 46 e8 … … 16034 16128 mov ds, [bp-006h] ; 8e 5e fa 16035 16129 cmp ax, word [si+002h] ; 3b 44 02 16036 jnbe short 0a 39fh ; 77 0616037 jne short 0a 3a3h ; 75 0816130 jnbe short 0a44fh ; 77 06 16131 jne short 0a453h ; 75 08 16038 16132 cmp dx, word [si] ; 3b 14 16039 jc short 0a 3a3h ; 72 0416133 jc short 0a453h ; 72 04 16040 16134 mov AL, strict byte 001h ; b0 01 16041 jmp short 0a 3a5h ; eb 0216135 jmp short 0a455h ; eb 02 16042 16136 xor al, al ; 30 c0 16043 16137 test al, al ; 84 c0 16044 je short 0a4 0ah ; 74 6116138 je short 0a4bah ; 74 61 16045 16139 mov ds, [bp-008h] ; 8e 5e f8 16046 16140 mov ax, word [di+002h] ; 8b 45 02 16047 16141 cmp ax, word [bp-016h] ; 3b 46 ea 16048 jnbe short 0a 3c0h ; 77 0c16142 jnbe short 0a470h ; 77 0c 16049 16143 cmp ax, word [bp-016h] ; 3b 46 ea 16050 jne short 0a 3c4h ; 75 0b16144 jne short 0a474h ; 75 0b 16051 16145 mov ax, word [di] ; 8b 05 16052 16146 cmp ax, word [bp-018h] ; 3b 46 e8 16053 jc short 0a 3c4h ; 72 0416147 jc short 0a474h ; 72 04 16054 16148 mov AL, strict byte 001h ; b0 01 16055 jmp short 0a 3c6h ; eb 0216149 jmp short 0a476h ; eb 02 16056 16150 xor al, al ; 30 c0 16057 16151 test al, al ; 84 c0 16058 je short 0a 3f0h ; 74 2616152 je short 0a4a0h ; 74 26 16059 16153 mov ax, word [bp-018h] ; 8b 46 e8 16060 16154 mov ds, [bp-008h] ; 8e 5e f8 … … 16065 16159 xor dx, dx ; 31 d2 16066 16160 mov cx, word [bp-012h] ; 8b 4e ee 16067 jcxz 0a 3e8h ; e3 0616161 jcxz 0a498h ; e3 06 16068 16162 sal ax, 1 ; d1 e0 16069 16163 rcl dx, 1 ; d1 d2 16070 loop 0a 3e2h ; e2 fa16164 loop 0a492h ; e2 fa 16071 16165 lds bx, [bp-010h] ; c5 5e f0 16072 16166 or word [bx], ax ; 09 07 … … 16077 16171 mov ds, [bp-006h] ; 8e 5e fa 16078 16172 cmp ax, word [si+002h] ; 3b 44 02 16079 jc short 0a4 06h ; 72 0616080 jne short 0a4 0ch ; 75 0a16173 jc short 0a4b6h ; 72 06 16174 jne short 0a4bch ; 75 0a 16081 16175 cmp dx, word [si] ; 3b 14 16082 jnc short 0a4 0ch ; 73 0616176 jnc short 0a4bch ; 73 06 16083 16177 mov AL, strict byte 001h ; b0 01 16084 jmp short 0a4 0eh ; eb 0416085 jmp short 0a4 2dh ; eb 2116178 jmp short 0a4beh ; eb 04 16179 jmp short 0a4ddh ; eb 21 16086 16180 xor al, al ; 30 c0 16087 16181 test al, al ; 84 c0 16088 je short 0a4 21h ; 74 0f16089 jmp short 0a4 2dh ; eb 1916182 je short 0a4d1h ; 74 0f 16183 jmp short 0a4ddh ; eb 19 16090 16184 mov cx, strict word 0001fh ; b9 1f 00 16091 16185 sal word [bp-018h], 1 ; d1 66 e8 16092 16186 rcl word [bp-016h], 1 ; d1 56 ea 16093 loop 0a4 17h ; e2 f816094 jmp short 0a4 27h ; eb 0616187 loop 0a4c7h ; e2 f8 16188 jmp short 0a4d7h ; eb 06 16095 16189 shr word [bp-016h], 1 ; d1 6e ea 16096 16190 rcr word [bp-018h], 1 ; d1 5e e8 16097 16191 dec word [bp-012h] ; ff 4e ee 16098 jmp near 0a 3a9h ; e9 7c ff16192 jmp near 0a459h ; e9 7c ff 16099 16193 mov ax, word [bp-01ch] ; 8b 46 e4 16100 16194 mov dx, word [bp-01ah] ; 8b 56 e6 … … 16105 16199 retn ; c3 16106 16200 times 0x6 db 0 16107 _ASMBitLastSetU16: ; 0xfa4 40 LB 0x1816201 _ASMBitLastSetU16: ; 0xfa4f0 LB 0x18 16108 16202 push bp ; 55 16109 16203 db 08bh, 0ech … … 16111 16205 mov cx, word [bp+004h] ; 8b 4e 04 16112 16206 test cx, cx ; 85 c9 16113 je short 0a 454h ; 74 0a16207 je short 0a504h ; 74 0a 16114 16208 mov ax, strict word 00010h ; b8 10 00 16115 16209 sal cx, 1 ; d1 e1 16116 jc short 0a 456h ; 72 0516210 jc short 0a506h ; 72 05 16117 16211 dec ax ; 48 16118 jmp short 0a4 4dh ; eb f916212 jmp short 0a4fdh ; eb f9 16119 16213 db 033h, 0c0h 16120 16214 ; xor ax, ax ; 33 c0 … … 16122 16216 retn ; c3 16123 16217 16124 ; Padding 0x3 5a8 bytes at 0xfa45816125 times 13 736db 016218 ; Padding 0x34f8 bytes at 0xfa508 16219 times 13560 db 0 16126 16220 16127 16221 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 16170 16264 add bp, strict byte 00008h ; 83 c5 08 16171 16265 push ebp ; 66 55 16172 mov bp, 0a 1c6h ; bd c6 a116266 mov bp, 0a276h ; bd 76 a2 16173 16267 add byte [bx+si], al ; 00 00 16174 16268 push ebp ; 66 55 … … 16900 16994 call 01cc5h ; e8 89 39 16901 16995 call 02154h ; e8 15 3e 16902 call 09 9e1h ; e8 9f b616903 call 088 46h ; e8 01a516996 call 09a6eh ; e8 2c b7 16997 call 088b8h ; e8 73 a5 16904 16998 call 0ed4ch ; e8 04 0a 16905 16999 call 0e2d2h ; e8 87 ff … … 17856 17950 popfw ; 9d 17857 17951 jmp short 0f8afh ; eb 1f 17858 call 09b 53h ; e8 c0 a217952 call 09be0h ; e8 4d a3 17859 17953 jmp short 0f883h ; eb ee 17860 17954 int15_handler_mouse: ; 0xff895 LB 0x5 … … 18180 18274 cpu_reset: ; 0xffff0 LB 0x10 18181 18275 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 18182 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0 bah18276 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 023h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum
r67789 r67807 1 79b54de42c733672f60fe280b4b26581*VBoxPcBios8086.rom1 269f62de83976f5a734bb5219dc89ba4 *VBoxPcBios8086.rom
Note:
See TracChangeset
for help on using the changeset viewer.