Changeset 50317 in vbox for trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm
- Timestamp:
- Feb 4, 2014 10:30:36 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm
r50167 r50317 856 856 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 857 857 _pktacc: ; 0xf006a LB 0xc 858 db 000h, 000h, 000h, 000h, 000h, 000h, 08fh, 028h, 0 2ah, 079h, 0f2h, 086h858 db 000h, 000h, 000h, 000h, 000h, 000h, 08fh, 028h, 030h, 079h, 0f8h, 086h 859 859 _softrst: ; 0xf0076 LB 0xc 860 860 db 000h, 000h, 000h, 000h, 000h, 000h, 077h, 02bh, 091h, 036h, 091h, 036h 861 861 _dskacc: ; 0xf0082 LB 0x2e 862 862 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0d8h, 027h, 052h, 028h, 000h, 000h, 000h, 000h 863 db 0beh, 077h, 07 4h, 078h, 0eeh, 085h, 082h, 086h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h863 db 0beh, 077h, 077h, 078h, 0f4h, 085h, 088h, 086h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 864 864 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 865 865 866 section CONST progbits vstart=0xb0 align=1 ; size=0xc e0class=DATA group=DGROUP866 section CONST progbits vstart=0xb0 align=1 ; size=0xcc8 class=DATA group=DGROUP 867 867 db 'NMI Handler called', 00ah, 000h 868 868 db 'INT18: BOOT FAILURE', 00ah, 000h … … 958 958 db 'Delaying boot for %d seconds:', 000h 959 959 db ' %d', 000h 960 db 'scsi_read_sectors: device_id out of range %d', 00ah, 000h 961 db 'scsi_write_sectors: device_id out of range %d', 00ah, 000h 960 db 'scsi_read_sectors', 000h 961 db '%s: device_id out of range %d', 00ah, 000h 962 db 'scsi_write_sectors', 000h 962 963 db 'scsi_cmd_packet', 000h 963 964 db '%s: DATA_OUT not supported yet', 00ah, 000h … … 967 968 db 'Disk %d has an unsupported sector size of %u', 00ah, 000h 968 969 db 'SCSI %d-ID#%d: LCHS=%u/%u/%u %ld sectors', 00ah, 000h 969 db 'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h 970 db 'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h, 000h 970 971 db 'ahci_read_sectors', 000h 971 972 db '%s: device_id out of range %d', 00ah, 000h … … 980 981 db 'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h 981 982 982 section CONST2 progbits vstart=0xd 90align=1 ; size=0x3fa class=DATA group=DGROUP983 _bios_cvs_version_string: ; 0xf0d 90LB 0x12983 section CONST2 progbits vstart=0xd78 align=1 ; size=0x3fa class=DATA group=DGROUP 984 _bios_cvs_version_string: ; 0xf0d78 LB 0x12 984 985 db 'VirtualBox 4.3.53', 000h 985 _bios_prefix_string: ; 0xf0d a2LB 0x8986 _bios_prefix_string: ; 0xf0d8a LB 0x8 986 987 db 'BIOS: ', 000h, 000h 987 _isotag: ; 0xf0d aaLB 0x6988 _isotag: ; 0xf0d92 LB 0x6 988 989 db 'CD001', 000h 989 _eltorito: ; 0xf0d b0LB 0x18990 _eltorito: ; 0xf0d98 LB 0x18 990 991 db 'EL TORITO SPECIFICATION', 000h 991 _drivetypes: ; 0xf0d c8LB 0x28992 _drivetypes: ; 0xf0db0 LB 0x28 992 993 db 046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h 993 994 db 069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h 994 995 db 04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h 995 _scan_to_scanascii: ; 0xf0d f0LB 0x37a996 _scan_to_scanascii: ; 0xf0dd8 LB 0x37a 996 997 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h 997 998 db 000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h … … 1050 1051 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h 1051 1052 db 000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h 1052 _panic_msg_keyb_buffer_full: ; 0xf11 6aLB 0x201053 _panic_msg_keyb_buffer_full: ; 0xf1152 LB 0x20 1053 1054 db '%s: keyboard input buffer full', 00ah, 000h 1054 1055 1055 ; Padding 0x4 76 bytes at 0xf118a1056 times 11 42db 01056 ; Padding 0x48e bytes at 0xf1172 1057 times 1166 db 0 1057 1058 1058 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7f 35 class=CODE group=AUTO1059 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7f65 class=CODE group=AUTO 1059 1060 rom_scan_: ; 0xf1600 LB 0x50 1060 1061 push bp ; 55 … … 1278 1279 push bp ; 55 1279 1280 mov bp, sp ; 89 e5 1280 mov bx, 00d a2h ; bb a20d1281 mov bx, 00d8ah ; bb 8a 0d 1281 1282 mov cx, ds ; 8c d9 1282 1283 mov ax, strict word 00004h ; b8 04 00 1283 1284 call 01931h ; e8 ac 01 1284 push 00d 90h ; 68 900d1285 push 00d78h ; 68 78 0d 1285 1286 push 000d9h ; 68 d9 00 1286 1287 push strict byte 00004h ; 6a 04 … … 1453 1454 mov bx, strict word 0000ah ; bb 0a 00 1454 1455 xor cx, cx ; 31 c9 1455 call 094 40h ; e8 67 7b1456 call 09470h ; e8 97 7b 1456 1457 mov word [bp-008h], ax ; 89 46 f8 1457 1458 mov cx, dx ; 89 d1 … … 2417 2418 lea ax, [bp-036h] ; 8d 46 ca 2418 2419 call 05389h ; e8 6c 31 2419 mov bx, 00d a2h ; bb a20d2420 mov bx, 00d8ah ; bb 8a 0d 2420 2421 mov cx, ds ; 8c d9 2421 2422 mov ax, strict word 00004h ; b8 04 00 … … 3065 3066 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 3066 3067 jne short 028e1h ; 75 1f 3067 mov bx, 00d a2h ; bb a20d3068 mov bx, 00d8ah ; bb 8a 0d 3068 3069 mov cx, ds ; 8c d9 3069 3070 mov ax, strict word 00004h ; b8 04 00 … … 3944 3945 cmp AL, strict byte 048h ; 3c 48 3945 3946 jbe short 03095h ; 76 29 3946 mov bx, 00d a2h ; bb a20d3947 mov bx, 00d8ah ; bb 8a 0d 3947 3948 mov cx, ds ; 8c d9 3948 3949 mov ax, strict word 00004h ; b8 04 00 … … 4544 4545 mov ax, strict word 00006h ; b8 06 00 4545 4546 jmp near 02fbdh ; e9 7e f9 4546 mov bx, 00d a2h ; bb a20d4547 mov bx, 00d8ah ; bb 8a 0d 4547 4548 mov cx, ds ; 8c d9 4548 4549 mov ax, strict word 00004h ; b8 04 00 … … 4641 4642 cmp ax, strict word 0004ah ; 3d 4a 00 4642 4643 jne near 03829h ; 0f 85 1e 01 4643 mov bx, 00d a2h ; bb a20d4644 mov bx, 00d8ah ; bb 8a 0d 4644 4645 mov cx, ds ; 8c d9 4645 4646 mov ax, strict word 00004h ; b8 04 00 … … 4739 4740 pop bp ; 5d 4740 4741 retn ; c3 4741 mov bx, 00d a2h ; bb a20d4742 mov bx, 00d8ah ; bb 8a 0d 4742 4743 mov cx, ds ; 8c d9 4743 4744 mov ax, strict word 00004h ; b8 04 00 … … 4820 4821 mov dx, ss ; 8c d2 4821 4822 lea ax, [bp-026h] ; 8d 46 da 4822 call 094 aah ; e8 b7 5b4823 call 094dah ; e8 e7 5b 4823 4824 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 4824 4825 mov ax, strict word 00011h ; b8 11 00 … … 4874 4875 jnc short 03993h ; 73 10 4875 4876 mov al, byte [bp+di-00825h] ; 8a 83 db f7 4876 cmp al, byte [di+00d aah] ; 3a 85 aa0d4877 cmp al, byte [di+00d92h] ; 3a 85 92 0d 4877 4878 je short 0397dh ; 74 f0 4878 4879 mov ax, strict word 00005h ; b8 05 00 … … 4884 4885 jnc short 039adh ; 73 10 4885 4886 mov al, byte [bp+di-0081fh] ; 8a 83 e1 f7 4886 cmp al, byte [di+00d b0h] ; 3a 85 b00d4887 cmp al, byte [di+00d98h] ; 3a 85 98 0d 4887 4888 je short 03997h ; 74 f0 4888 4889 mov ax, strict word 00006h ; b8 06 00 … … 5162 5163 cmp dx, ax ; 39 c2 5163 5164 je short 03d2fh ; 74 29 5164 mov bx, 00d a2h ; bb a20d5165 mov bx, 00d8ah ; bb 8a 0d 5165 5166 mov cx, ds ; 8c d9 5166 5167 mov ax, strict word 00004h ; b8 04 00 … … 5279 5280 xor dl, dl ; 30 d2 5280 5281 xor cx, cx ; 31 c9 5281 call 094 79h ; e8 25 565282 call 094a9h ; e8 55 56 5282 5283 xor bx, bx ; 31 db 5283 5284 add ax, si ; 01 f0 … … 5285 5286 mov bx, di ; 89 fb 5286 5287 xor cx, cx ; 31 c9 5287 call 094 79h ; e8 18 565288 call 094a9h ; e8 48 56 5288 5289 mov bx, ax ; 89 c3 5289 5290 mov ax, word [bp-010h] ; 8b 46 f0 … … 5320 5321 mov dx, ss ; 8c d2 5321 5322 lea ax, [bp-02eh] ; 8d 46 d2 5322 call 094 aah ; e8 f2 555323 call 094dah ; e8 22 56 5323 5324 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 5324 5325 mov ax, word [bp-014h] ; 8b 46 ec … … 5384 5385 test al, al ; 84 c0 5385 5386 je near 03d7bh ; 0f 84 13 fe 5386 mov bx, 00d a2h ; bb a20d5387 mov bx, 00d8ah ; bb 8a 0d 5387 5388 mov cx, ds ; 8c d9 5388 5389 mov ax, strict word 00004h ; b8 04 00 … … 5465 5466 mov word [bp+016h], bx ; 89 5e 16 5466 5467 jmp near 03d7fh ; e9 37 fd 5467 mov bx, 00d a2h ; bb a20d5468 mov bx, 00d8ah ; bb 8a 0d 5468 5469 mov cx, ds ; 8c d9 5469 5470 mov ax, strict word 00004h ; b8 04 00 … … 5627 5628 mov dx, ss ; 8c d2 5628 5629 lea ax, [bp-02ch] ; 8d 46 d4 5629 call 094 aah ; e8 57 525630 call 094dah ; e8 87 52 5630 5631 mov word [bp-02ch], strict word 00028h ; c7 46 d4 28 00 5631 5632 mov ax, word [bp-018h] ; 8b 46 e8 … … 5676 5677 test dl, dl ; 84 d2 5677 5678 je near 043a5h ; 0f 84 cb 00 5678 mov bx, 00d a2h ; bb a20d5679 mov bx, 00d8ah ; bb 8a 0d 5679 5680 mov cx, ds ; 8c d9 5680 5681 mov ax, strict word 00004h ; b8 04 00 … … 5960 5961 or byte [bp+01eh], 001h ; 80 4e 1e 01 5961 5962 jmp near 043b8h ; e9 8f fd 5962 mov bx, 00d a2h ; bb a20d5963 mov bx, 00d8ah ; bb 8a 0d 5963 5964 mov cx, ds ; 8c d9 5964 5965 mov ax, strict word 00004h ; b8 04 00 … … 5990 5991 je short 0468bh ; 74 21 5991 5992 mov dx, strict word 00001h ; ba 01 00 5992 mov bx, 00d a2h ; bb a20d5993 mov bx, 00d8ah ; bb 8a 0d 5993 5994 mov cx, ds ; 8c d9 5994 5995 mov ax, strict word 00004h ; b8 04 00 5995 5996 call 01931h ; e8 b9 d2 5996 5997 imul dx, dx, strict byte 0000ah ; 6b d2 0a 5997 add dx, 00d c8h ; 81 c2 c80d5998 add dx, 00db0h ; 81 c2 b0 0d 5998 5999 push dx ; 52 5999 6000 push 00474h ; 68 74 04 … … 6015 6016 test al, al ; 84 c0 6016 6017 je short 046beh ; 74 1b 6017 mov bx, 00d a2h ; bb a20d6018 mov bx, 00d8ah ; bb 8a 0d 6018 6019 mov cx, ds ; 8c d9 6019 6020 mov ax, strict word 00004h ; b8 04 00 6020 6021 call 01931h ; e8 83 d2 6021 push 00d dch ; 68 dc0d6022 push 00dc4h ; 68 c4 0d 6022 6023 push 00488h ; 68 88 04 6023 6024 push strict byte 00004h ; 6a 04 … … 6027 6028 test dl, dl ; 84 d2 6028 6029 je short 046d2h ; 74 10 6029 mov bx, 00d a2h ; bb a20d6030 mov bx, 00d8ah ; bb 8a 0d 6030 6031 mov cx, ds ; 8c d9 6031 6032 mov ax, strict word 00004h ; b8 04 00 6032 6033 call 01931h ; e8 64 d2 6033 push 00d e6h ; 68 e60d6034 push 00dceh ; 68 ce 0d 6034 6035 jmp short 046b1h ; eb df 6035 6036 test bl, 080h ; f6 c3 80 6036 6037 je short 046e8h ; 74 11 6037 mov bx, 00d a2h ; bb a20d6038 mov bx, 00d8ah ; bb 8a 0d 6038 6039 mov cx, ds ; 8c d9 6039 6040 mov ax, strict word 00004h ; b8 04 00 6040 6041 call 01931h ; e8 4f d2 6041 6042 push si ; 56 6042 push 00d d2h ; 68 d20d6043 push 00dbah ; 68 ba 0d 6043 6044 jmp short 046f7h ; eb 0f 6044 mov bx, 00d a2h ; bb a20d6045 mov bx, 00d8ah ; bb 8a 0d 6045 6046 mov cx, ds ; 8c d9 6046 6047 mov ax, strict word 00004h ; b8 04 00 6047 6048 call 01931h ; e8 3e d2 6048 6049 push si ; 56 6049 push 00d c8h ; 68 c80d6050 push 00db0h ; 68 b0 0d 6050 6051 push 0049dh ; 68 9d 04 6051 6052 push strict byte 00004h ; 6a 04 … … 6073 6074 push dx ; 52 6074 6075 mov dx, ax ; 89 c2 6075 mov bx, 00d a2h ; bb a20d6076 mov bx, 00d8ah ; bb 8a 0d 6076 6077 mov cx, ds ; 8c d9 6077 6078 mov ax, strict word 00004h ; b8 04 00 … … 6148 6149 mov byte [bp-00ah], al ; 88 46 f6 6149 6150 mov byte [bp-00ch], al ; 88 46 f4 6150 mov bx, 00d a2h ; bb a20d6151 mov bx, 00d8ah ; bb 8a 0d 6151 6152 mov cx, ds ; 8c d9 6152 6153 mov ax, strict word 00004h ; b8 04 00 … … 6715 6716 test al, al ; 84 c0 6716 6717 jne short 04cdch ; 75 19 6717 mov bx, 00d a2h ; bb a20d6718 mov bx, 00d8ah ; bb 8a 0d 6718 6719 mov cx, ds ; 8c d9 6719 6720 mov ax, strict word 00004h ; b8 04 00 … … 6918 6919 cmp byte [bp-00ah], 058h ; 80 7e f6 58 6919 6920 jbe short 04f17h ; 76 1e 6920 mov bx, 00d a2h ; bb a20d6921 mov bx, 00d8ah ; bb 8a 0d 6921 6922 mov cx, ds ; 8c d9 6922 6923 mov ax, strict word 00004h ; b8 04 00 … … 6933 6934 movzx si, byte [bp-00ah] ; 0f b6 76 f6 6934 6935 imul si, si, strict byte 0000ah ; 6b f6 0a 6935 mov dl, byte [si+00d f6h] ; 8a 94 f60d6936 mov ax, word [si+00d f6h] ; 8b 84 f60d6936 mov dl, byte [si+00ddeh] ; 8a 94 de 0d 6937 mov ax, word [si+00ddeh] ; 8b 84 de 0d 6937 6938 jmp near 04fbah ; e9 8c 00 6938 6939 test bl, 004h ; f6 c3 04 … … 6940 6941 movzx si, byte [bp-00ah] ; 0f b6 76 f6 6941 6942 imul si, si, strict byte 0000ah ; 6b f6 0a 6942 mov dl, byte [si+00d f4h] ; 8a 94 f40d6943 mov ax, word [si+00d f4h] ; 8b 84 f40d6943 mov dl, byte [si+00ddch] ; 8a 94 dc 0d 6944 mov ax, word [si+00ddch] ; 8b 84 dc 0d 6944 6945 jmp near 04fbah ; e9 75 00 6945 6946 mov al, byte [bp-006h] ; 8a 46 fa … … 6960 6961 movzx si, byte [bp-00ah] ; 0f b6 76 f6 6961 6962 imul si, si, strict byte 0000ah ; 6b f6 0a 6962 movzx ax, byte [si+00d f8h] ; 0f b6 84 f80d6963 movzx ax, byte [si+00de0h] ; 0f b6 84 e0 0d 6963 6964 movzx dx, bl ; 0f b6 d3 6964 6965 test dx, ax ; 85 c2 6965 6966 je short 04f85h ; 74 0a 6966 mov dl, byte [si+00d f0h] ; 8a 94 f00d6967 mov ax, word [si+00d f0h] ; 8b 84 f00d6967 mov dl, byte [si+00dd8h] ; 8a 94 d8 0d 6968 mov ax, word [si+00dd8h] ; 8b 84 d8 0d 6968 6969 jmp short 04f8dh ; eb 08 6969 mov dl, byte [si+00d f2h] ; 8a 94 f20d6970 mov ax, word [si+00d f2h] ; 8b 84 f20d6970 mov dl, byte [si+00ddah] ; 8a 94 da 0d 6971 mov ax, word [si+00ddah] ; 8b 84 da 0d 6971 6972 shr ax, 008h ; c1 e8 08 6972 6973 mov byte [bp-00ah], al ; 88 46 f6 … … 6974 6975 movzx si, byte [bp-00ah] ; 0f b6 76 f6 6975 6976 imul si, si, strict byte 0000ah ; 6b f6 0a 6976 movzx ax, byte [si+00d f8h] ; 0f b6 84 f80d6977 movzx ax, byte [si+00de0h] ; 0f b6 84 e0 0d 6977 6978 movzx dx, bl ; 0f b6 d3 6978 6979 test dx, ax ; 85 c2 6979 6980 je short 04fb2h ; 74 0a 6980 mov dl, byte [si+00d f2h] ; 8a 94 f20d6981 mov ax, word [si+00d f2h] ; 8b 84 f20d6981 mov dl, byte [si+00ddah] ; 8a 94 da 0d 6982 mov ax, word [si+00ddah] ; 8b 84 da 0d 6982 6983 jmp short 04fbah ; eb 08 6983 mov dl, byte [si+00d f0h] ; 8a 94 f00d6984 mov ax, word [si+00d f0h] ; 8b 84 f00d6984 mov dl, byte [si+00dd8h] ; 8a 94 d8 0d 6985 mov ax, word [si+00dd8h] ; 8b 84 d8 0d 6985 6986 shr ax, 008h ; c1 e8 08 6986 6987 mov byte [bp-00ah], al ; 88 46 f6 … … 6989 6990 test dl, dl ; 84 d2 6990 6991 jne short 04fe0h ; 75 16 6991 mov bx, 00d a2h ; bb a20d6992 mov bx, 00d8ah ; bb 8a 0d 6992 6993 mov cx, ds ; 8c d9 6993 6994 mov ax, strict word 00004h ; b8 04 00 … … 7358 7359 or ah, 080h ; 80 cc 80 7359 7360 jmp near 05215h ; e9 d5 fe 7360 mov bx, 00d a2h ; bb a20d7361 mov bx, 00d8ah ; bb 8a 0d 7361 7362 mov cx, ds ; 8c d9 7362 7363 mov ax, strict word 00004h ; b8 04 00 … … 7369 7370 call 01972h ; e8 18 c6 7370 7371 add sp, strict byte 00006h ; 83 c4 06 7371 mov bx, 00d a2h ; bb a20d7372 mov bx, 00d8ah ; bb 8a 0d 7372 7373 mov cx, ds ; 8c d9 7373 7374 mov ax, strict word 00004h ; b8 04 00 … … 7419 7420 mov bx, strict word 0003fh ; bb 3f 00 7420 7421 xor cx, cx ; 31 c9 7421 call 094 79h ; e8 ad 407422 call 094a9h ; e8 dd 40 7422 7423 mov bx, ax ; 89 c3 7423 7424 mov cx, dx ; 89 d1 7424 7425 mov ax, word [bp-004h] ; 8b 46 fc 7425 7426 mov dx, word [bp-002h] ; 8b 56 fe 7426 call 094 40h ; e8 67 407427 call 09470h ; e8 97 40 7427 7428 mov word [es:si+002h], ax ; 26 89 44 02 7428 7429 cmp ax, 00400h ; 3d 00 04 … … 7567 7568 test ax, ax ; 85 c0 7568 7569 jne short 05562h ; 75 23 7569 mov bx, 00d a2h ; bb a20d7570 mov bx, 00d8ah ; bb 8a 0d 7570 7571 mov cx, ds ; 8c d9 7571 7572 mov ax, strict word 00004h ; b8 04 00 … … 7596 7597 cmp ax, dx ; 39 d0 7597 7598 jbe short 055bdh ; 76 2e 7598 mov bx, 00d a2h ; bb a20d7599 mov bx, 00d8ah ; bb 8a 0d 7599 7600 mov cx, ds ; 8c d9 7600 7601 mov ax, strict word 00004h ; b8 04 00 … … 7634 7635 mov bx, cx ; 89 cb 7635 7636 xor cx, cx ; 31 c9 7636 call 094 79h ; e8 82 3e7637 call 094a9h ; e8 b2 3e 7637 7638 xor bx, bx ; 31 db 7638 7639 add ax, word [bp-008h] ; 03 46 f8 … … 7640 7641 mov bx, word [bp-00ah] ; 8b 5e f6 7641 7642 xor cx, cx ; 31 c9 7642 call 094 79h ; e8 73 3e7643 call 094a9h ; e8 a3 3e 7643 7644 xor bx, bx ; 31 db 7644 7645 add ax, word [bp-006h] ; 03 46 fa … … 7694 7695 test dl, dl ; 84 d2 7695 7696 je near 054c0h ; 0f 84 13 fe 7696 mov bx, 00d a2h ; bb a20d7697 mov bx, 00d8ah ; bb 8a 0d 7697 7698 mov cx, ds ; 8c d9 7698 7699 mov ax, strict word 00004h ; b8 04 00 … … 7712 7713 or ah, 00ch ; 80 cc 0c 7713 7714 jmp near 0582dh ; e9 51 01 7714 mov bx, 00d a2h ; bb a20d7715 mov bx, 00d8ah ; bb 8a 0d 7715 7716 mov cx, ds ; 8c d9 7716 7717 mov ax, strict word 00004h ; b8 04 00 … … 7798 7799 mov bx, word [bp-008h] ; 8b 5e f8 7799 7800 xor cx, cx ; 31 c9 7800 call 094 79h ; e8 b4 3c7801 call 094a9h ; e8 e4 3c 7801 7802 mov bx, word [bp-006h] ; 8b 5e fa 7802 7803 xor cx, cx ; 31 c9 7803 call 094 79h ; e8 ac 3c7804 call 094a9h ; e8 dc 3c 7804 7805 mov word [bp-010h], ax ; 89 46 f0 7805 7806 mov word [bp-00eh], dx ; 89 56 f2 … … 7811 7812 mov word [bp+016h], ax ; 89 46 16 7812 7813 jmp near 054c4h ; e9 dd fc 7813 mov bx, 00d a2h ; bb a20d7814 mov bx, 00d8ah ; bb 8a 0d 7814 7815 mov cx, ds ; 8c d9 7815 7816 mov ax, strict word 00004h ; b8 04 00 … … 7824 7825 add sp, strict byte 00008h ; 83 c4 08 7825 7826 jmp near 054c0h ; e9 b6 fc 7826 mov bx, 00d a2h ; bb a20d7827 mov bx, 00d8ah ; bb 8a 0d 7827 7828 mov cx, ds ; 8c d9 7828 7829 mov ax, strict word 00004h ; b8 04 00 … … 7966 7967 cmp dx, word [es:bx+032h] ; 26 3b 57 32 7967 7968 jc short 059afh ; 72 23 7968 mov bx, 00d a2h ; bb a20d7969 mov bx, 00d8ah ; bb 8a 0d 7969 7970 mov cx, ds ; 8c d9 7970 7971 mov ax, strict word 00004h ; b8 04 00 … … 8018 8019 test dl, dl ; 84 d2 8019 8020 je near 05ccah ; 0f 84 97 02 8020 mov bx, 00d a2h ; bb a20d8021 mov bx, 00d8ah ; bb 8a 0d 8021 8022 mov cx, ds ; 8c d9 8022 8023 mov ax, strict word 00004h ; b8 04 00 … … 8254 8255 or byte [bp+01ch], 001h ; 80 4e 1c 01 8255 8256 jmp short 05cddh ; eb c4 8256 mov bx, 00d a2h ; bb a20d8257 mov bx, 00d8ah ; bb 8a 0d 8257 8258 mov cx, ds ; 8c d9 8258 8259 mov ax, strict word 00004h ; b8 04 00 … … 8574 8575 mov word [bp+00ch], ax ; 89 46 0c 8575 8576 jmp near 06021h ; e9 2b 00 8576 mov bx, 00d a2h ; bb a20d8577 mov bx, 00d8ah ; bb 8a 0d 8577 8578 mov cx, ds ; 8c d9 8578 8579 mov ax, strict word 00004h ; b8 04 00 … … 8916 8917 retf ; cb 8917 8918 jmp near 06021h ; e9 b7 fc 8918 mov bx, 00d a2h ; bb a20d8919 mov bx, 00d8ah ; bb 8a 0d 8919 8920 mov cx, ds ; 8c d9 8920 8921 mov ax, strict word 00004h ; b8 04 00 … … 8956 8957 or byte [bp+018h], 001h ; 80 4e 18 01 8957 8958 jmp near 06021h ; e9 41 fc 8958 mov bx, 00d a2h ; bb a20d8959 mov bx, 00d8ah ; bb 8a 0d 8959 8960 mov cx, ds ; 8c d9 8960 8961 mov ax, strict word 00004h ; b8 04 00 … … 9269 9270 mov word [bp+014h], dx ; 89 56 14 9270 9271 jmp short 06786h ; eb 2a 9271 mov bx, 00d a2h ; bb a20d9272 mov bx, 00d8ah ; bb 8a 0d 9272 9273 mov cx, ds ; 8c d9 9273 9274 mov ax, strict word 00004h ; b8 04 00 … … 9720 9721 je short 06c0fh ; 74 0e 9721 9722 push 008f6h ; 68 f6 08 9722 push 011 6ah ; 68 6a119723 push 01152h ; 68 52 11 9723 9724 push strict byte 00007h ; 6a 07 9724 9725 call 01972h ; e8 66 ad … … 9783 9784 je short 06c7eh ; 74 0e 9784 9785 push 00900h ; 68 00 09 9785 push 011 6ah ; 68 6a119786 push 01152h ; 68 52 11 9786 9787 push strict byte 00007h ; 6a 07 9787 9788 call 01972h ; e8 f7 ac … … 11019 11020 pop bp ; 5d 11020 11021 retn 0000ah ; c2 0a 00 11021 @scsi_read_sectors: ; 0xf77be LB 0xb 611022 @scsi_read_sectors: ; 0xf77be LB 0xb9 11022 11023 push bp ; 55 11023 11024 mov bp, sp ; 89 e5 … … 11030 11031 sub bl, 008h ; 80 eb 08 11031 11032 cmp bl, 004h ; 80 fb 04 11032 jbe short 077e 7h ; 76 0f11033 jbe short 077eah ; 76 12 11033 11034 movzx ax, bl ; 0f b6 c3 11034 11035 push ax ; 50 11035 11036 push 00b0eh ; 68 0e 0b 11037 push 00b20h ; 68 20 0b 11036 11038 push strict byte 00007h ; 6a 07 11037 call 01972h ; e8 8 ea111038 add sp, strict byte 0000 6h ; 83 c4 0611039 call 01972h ; e8 8b a1 11040 add sp, strict byte 00008h ; 83 c4 08 11039 11041 mov es, [bp+006h] ; 8e 46 06 11040 11042 mov di, word [es:si+00ah] ; 26 8b 7c 0a … … 11062 11064 sal word [bp-008h], 1 ; d1 66 f8 11063 11065 rcl word [bp-006h], 1 ; d1 56 fa 11064 loop 0783 0h ; e2 f811066 loop 07833h ; e2 f8 11065 11067 push dword [bp-008h] ; 66 ff 76 f8 11066 11068 db 066h, 026h, 0ffh, 074h, 004h … … 11070 11072 mov cx, ss ; 8c d1 11071 11073 lea bx, [bp-012h] ; 8d 5e ee 11072 call 07658h ; e8 0 bfe11074 call 07658h ; e8 08 fe 11073 11075 mov ah, al ; 88 c4 11074 11076 test al, al ; 84 c0 11075 jne short 0786 8h ; 75 1511077 jne short 0786bh ; 75 15 11076 11078 mov es, [bp+006h] ; 8e 46 06 11077 11079 mov word [es:si+014h], di ; 26 89 7c 14 … … 11086 11088 pop bp ; 5d 11087 11089 retn 00004h ; c2 04 00 11088 @scsi_write_sectors: ; 0xf787 4 LB 0xb611090 @scsi_write_sectors: ; 0xf7877 LB 0xb9 11089 11091 push bp ; 55 11090 11092 mov bp, sp ; 89 e5 … … 11097 11099 sub bl, 008h ; 80 eb 08 11098 11100 cmp bl, 004h ; 80 fb 04 11099 jbe short 078 9dh ; 76 0f11101 jbe short 078a3h ; 76 12 11100 11102 movzx ax, bl ; 0f b6 c3 11101 11103 push ax ; 50 11102 push 00b3ch ; 68 3c 0b 11104 push 00b3fh ; 68 3f 0b 11105 push 00b20h ; 68 20 0b 11103 11106 push strict byte 00007h ; 6a 07 11104 call 01972h ; e8 d 8a011105 add sp, strict byte 0000 6h ; 83 c4 0611107 call 01972h ; e8 d2 a0 11108 add sp, strict byte 00008h ; 83 c4 08 11106 11109 mov es, [bp+006h] ; 8e 46 06 11107 11110 mov di, word [es:si+00ah] ; 26 8b 7c 0a … … 11129 11132 sal word [bp-008h], 1 ; d1 66 f8 11130 11133 rcl word [bp-006h], 1 ; d1 56 fa 11131 loop 078e 6h ; e2 f811134 loop 078ech ; e2 f8 11132 11135 push dword [bp-008h] ; 66 ff 76 f8 11133 11136 db 066h, 026h, 0ffh, 074h, 004h … … 11137 11140 mov cx, ss ; 8c d1 11138 11141 lea bx, [bp-012h] ; 8d 5e ee 11139 call 0770ah ; e8 0 7fe11142 call 0770ah ; e8 01 fe 11140 11143 mov ah, al ; 88 c4 11141 11144 test al, al ; 84 c0 11142 jne short 079 1eh ; 75 1511145 jne short 07924h ; 75 15 11143 11146 mov es, [bp+006h] ; 8e 46 06 11144 11147 mov word [es:si+014h], di ; 26 89 7c 14 … … 11153 11156 pop bp ; 5d 11154 11157 retn 00004h ; c2 04 00 11155 scsi_cmd_packet_: ; 0xf79 2aLB 0x16611158 scsi_cmd_packet_: ; 0xf7930 LB 0x166 11156 11159 push bp ; 55 11157 11160 mov bp, sp ; 89 e5 … … 11165 11168 mov dx, strict word 0000eh ; ba 0e 00 11166 11169 mov ax, strict word 00040h ; b8 40 00 11167 call 0166ch ; e8 2 69d11170 call 0166ch ; e8 20 9d 11168 11171 mov si, 00122h ; be 22 01 11169 11172 mov word [bp-00eh], ax ; 89 46 f2 11170 11173 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 11171 jne short 0797 1h ; 75 1f11172 mov bx, 00d a2h ; bb a20d11174 jne short 07977h ; 75 1f 11175 mov bx, 00d8ah ; bb 8a 0d 11173 11176 mov cx, ds ; 8c d9 11174 11177 mov ax, strict word 00004h ; b8 04 00 11175 call 01931h ; e8 d49f11176 push 00b 6bh ; 68 6b0b11177 push 00b 7bh ; 68 7b0b11178 call 01931h ; e8 ce 9f 11179 push 00b52h ; 68 52 0b 11180 push 00b62h ; 68 62 0b 11178 11181 push strict byte 00004h ; 6a 04 11179 call 01972h ; e8 0 aa011182 call 01972h ; e8 04 a0 11180 11183 add sp, strict byte 00006h ; 83 c4 06 11181 11184 mov dx, strict word 00001h ; ba 01 00 11182 jmp near 07a8 5h ; e9 14 0111185 jmp near 07a8bh ; e9 14 01 11183 11186 sub di, strict byte 00008h ; 83 ef 08 11184 11187 sal di, 002h ; c1 e7 02 … … 11194 11197 ; sub ah, ah ; 2a e4 11195 11198 test AL, strict byte 001h ; a8 01 11196 jne short 079 8dh ; 75 f711199 jne short 07993h ; 75 f7 11197 11200 xor ax, ax ; 31 c0 11198 11201 mov dx, word [bp+006h] ; 8b 56 06 … … 11210 11213 shr dx, 1 ; d1 ea 11211 11214 rcr ax, 1 ; d1 d8 11212 loop 079b 8h ; e2 fa11215 loop 079beh ; e2 fa 11213 11216 and ax, 000f0h ; 25 f0 00 11214 11217 movzx cx, byte [bp-006h] ; 0f b6 4e fa … … 11228 11231 shr dx, 1 ; d1 ea 11229 11232 rcr ax, 1 ; d1 d8 11230 loop 079 dfh ; e2 fa11233 loop 079e5h ; e2 fa 11231 11234 mov dx, bx ; 89 da 11232 11235 out DX, AL ; ee … … 11234 11237 movzx ax, byte [bp-006h] ; 0f b6 46 fa 11235 11238 cmp cx, ax ; 39 c1 11236 jnc short 07a0 0h ; 73 0e11239 jnc short 07a06h ; 73 0e 11237 11240 les di, [bp-00ch] ; c4 7e f4 11238 11241 add di, cx ; 01 cf … … 11241 11244 out DX, AL ; ee 11242 11245 inc cx ; 41 11243 jmp short 079 eah ; eb ea11246 jmp short 079f0h ; eb ea 11244 11247 mov dx, bx ; 89 da 11245 11248 in AL, DX ; ec … … 11247 11250 ; sub ah, ah ; 2a e4 11248 11251 test AL, strict byte 001h ; a8 01 11249 jne short 07a0 0h ; 75 f711252 jne short 07a06h ; 75 f7 11250 11253 test AL, strict byte 002h ; a8 02 11251 je short 07a 1bh ; 74 0e11254 je short 07a21h ; 74 0e 11252 11255 lea dx, [bx+003h] ; 8d 57 03 11253 11256 xor al, al ; 30 c0 … … 11257 11260 ; sub ah, ah ; 2a e4 11258 11261 mov dx, strict word 00003h ; ba 03 00 11259 jmp short 07a8 5h ; eb 6a11262 jmp short 07a8bh ; eb 6a 11260 11263 mov ax, word [bp+004h] ; 8b 46 04 11261 11264 test ax, ax ; 85 c0 11262 je short 07a 2ah ; 74 0811265 je short 07a30h ; 74 08 11263 11266 lea dx, [bx+001h] ; 8d 57 01 11264 11267 mov cx, ax ; 89 c1 11265 11268 in AL, DX ; ec 11266 loop 07a2 7h ; e2 fd11269 loop 07a2dh ; e2 fd 11267 11270 mov ax, word [bp+006h] ; 8b 46 06 11268 11271 mov es, [bp-00eh] ; 8e 46 f2 … … 11272 11275 lea ax, [bx+001h] ; 8d 47 01 11273 11276 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 11274 jne short 07a 4bh ; 75 0711277 jne short 07a51h ; 75 07 11275 11278 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 11276 jbe short 07a6 8h ; 76 1d11279 jbe short 07a6eh ; 76 1d 11277 11280 mov dx, ax ; 89 c2 11278 11281 mov cx, 08000h ; b9 00 80 … … 11284 11287 add ax, 00800h ; 05 00 08 11285 11288 mov word [bp+00eh], ax ; 89 46 0e 11286 jmp short 07a 3bh ; eb d311289 jmp short 07a41h ; eb d3 11287 11290 mov dx, ax ; 89 c2 11288 11291 mov cx, word [bp+006h] ; 8b 4e 06 … … 11291 11294 mov es, [bp-00eh] ; 8e 46 f2 11292 11295 cmp word [es:si+01ch], strict byte 00000h ; 26 83 7c 1c 00 11293 je short 07a8 3h ; 74 0711296 je short 07a89h ; 74 07 11294 11297 mov cx, word [es:si+01ch] ; 26 8b 4c 1c 11295 11298 in AL, DX ; ec 11296 loop 07a8 0h ; e2 fd11299 loop 07a86h ; e2 fd 11297 11300 xor dx, dx ; 31 d2 11298 11301 mov ax, dx ; 89 d0 … … 11302 11305 pop bp ; 5d 11303 11306 retn 0000ch ; c2 0c 00 11304 scsi_enumerate_attached_devices_: ; 0xf7a9 0LB 0x3e511307 scsi_enumerate_attached_devices_: ; 0xf7a96 LB 0x3e5 11305 11308 push bp ; 55 11306 11309 mov bp, sp ; 89 e5 … … 11314 11317 mov dx, strict word 0000eh ; ba 0e 00 11315 11318 mov ax, strict word 00040h ; b8 40 00 11316 call 0166ch ; e8 c 69b11319 call 0166ch ; e8 c0 9b 11317 11320 mov si, 00122h ; be 22 01 11318 11321 mov word [bp-01ah], ax ; 89 46 e6 11319 11322 mov word [bp-010h], strict word 00000h ; c7 46 f0 00 00 11320 jmp near 07e0 3h ; e9 4f 0311323 jmp near 07e09h ; e9 4f 03 11321 11324 mov es, [bp-01ah] ; 8e 46 e6 11322 11325 cmp byte [es:si+001e8h], 004h ; 26 80 bc e8 01 04 11323 jnc near 07e 6bh ; 0f 83 aa 0311326 jnc near 07e71h ; 0f 83 aa 03 11324 11327 mov cx, strict word 0000ah ; b9 0a 00 11325 11328 xor bx, bx ; 31 db 11326 11329 mov dx, ss ; 8c d2 11327 11330 lea ax, [bp-026h] ; 8d 46 da 11328 call 094 aah ; e8 dc 1911331 call 094dah ; e8 06 1a 11329 11332 mov byte [bp-026h], 025h ; c6 46 da 25 11330 11333 push dword 000000008h ; 66 6a 08 … … 11337 11340 lea bx, [bp-026h] ; 8d 5e da 11338 11341 mov ax, word [bp-00228h] ; 8b 86 d8 fd 11339 call 07658h ; e8 6 bfb11342 call 07658h ; e8 65 fb 11340 11343 test al, al ; 84 c0 11341 je short 07 affh ; 74 0e11342 push 00b 9bh ; 68 9b0b11343 push 00b d4h ; 68 d40b11344 je short 07b05h ; 74 0e 11345 push 00b82h ; 68 82 0b 11346 push 00bbbh ; 68 bb 0b 11344 11347 push strict byte 00007h ; 6a 07 11345 call 01972h ; e8 7 69e11348 call 01972h ; e8 70 9e 11346 11349 add sp, strict byte 00006h ; 83 c4 06 11347 11350 movzx ax, byte [bp-00225h] ; 0f b6 86 db fd … … 11355 11358 sal ax, 1 ; d1 e0 11356 11359 rcl dx, 1 ; d1 d2 11357 loop 07b 1ah ; e2 fa11360 loop 07b20h ; e2 fa 11358 11361 or bx, ax ; 09 c3 11359 11362 or dx, di ; 09 fa … … 11372 11375 sal ax, 1 ; d1 e0 11373 11376 rcl dx, 1 ; d1 d2 11374 loop 07b 4ch ; e2 fa11377 loop 07b52h ; e2 fa 11375 11378 or ax, bx ; 09 d8 11376 11379 or dx, di ; 09 fa … … 11379 11382 mov word [bp-016h], ax ; 89 46 ea 11380 11383 test dx, dx ; 85 d2 11381 jne short 07b6 9h ; 75 0511384 jne short 07b6fh ; 75 05 11382 11385 cmp ax, 00200h ; 3d 00 02 11383 je short 07b8 9h ; 74 2011384 mov bx, 00d a2h ; bb a20d11386 je short 07b8fh ; 74 20 11387 mov bx, 00d8ah ; bb 8a 0d 11385 11388 mov cx, ds ; 8c d9 11386 11389 mov ax, strict word 00004h ; b8 04 00 11387 call 01931h ; e8 b d9d11390 call 01931h ; e8 b7 9d 11388 11391 push dx ; 52 11389 11392 push word [bp-016h] ; ff 76 ea 11390 11393 push word [bp-010h] ; ff 76 f0 11391 push 00b f3h ; 68 f30b11394 push 00bdah ; 68 da 0b 11392 11395 push strict byte 00004h ; 6a 04 11393 call 01972h ; e8 e f9d11396 call 01972h ; e8 e9 9d 11394 11397 add sp, strict byte 0000ah ; 83 c4 0a 11395 jmp near 07 dfah ; e9 71 0211398 jmp near 07e00h ; e9 71 02 11396 11399 mov es, [bp-01ah] ; 8e 46 e6 11397 11400 mov al, byte [es:si+001e8h] ; 26 8a 84 e8 01 11398 11401 mov byte [bp-00ch], al ; 88 46 f4 11399 11402 cmp AL, strict byte 001h ; 3c 01 11400 jc short 07ba 4h ; 72 0c11401 jbe short 07b ach ; 76 1211403 jc short 07baah ; 72 0c 11404 jbe short 07bb2h ; 76 12 11402 11405 cmp AL, strict byte 003h ; 3c 03 11403 je short 07bb 4h ; 74 1611406 je short 07bbah ; 74 16 11404 11407 cmp AL, strict byte 002h ; 3c 02 11405 je short 07bb 0h ; 74 0e11406 jmp short 07c0 0h ; eb 5c11408 je short 07bb6h ; 74 0e 11409 jmp short 07c06h ; eb 5c 11407 11410 test al, al ; 84 c0 11408 jne short 07c0 0h ; 75 5811411 jne short 07c06h ; 75 58 11409 11412 mov BL, strict byte 090h ; b3 90 11410 jmp short 07bb 6h ; eb 0a11413 jmp short 07bbch ; eb 0a 11411 11414 mov BL, strict byte 098h ; b3 98 11412 jmp short 07bb 6h ; eb 0611415 jmp short 07bbch ; eb 06 11413 11416 mov BL, strict byte 0a0h ; b3 a0 11414 jmp short 07bb 6h ; eb 0211417 jmp short 07bbch ; eb 02 11415 11418 mov BL, strict byte 0a8h ; b3 a8 11416 11419 mov al, bl ; 88 d8 … … 11418 11421 movzx cx, al ; 0f b6 c8 11419 11422 mov ax, cx ; 89 c8 11420 call 016ach ; e8 e a9a11423 call 016ach ; e8 e4 9a 11421 11424 test al, al ; 84 c0 11422 je short 07c0 0h ; 74 3a11425 je short 07c06h ; 74 3a 11423 11426 mov al, bl ; 88 d8 11424 11427 db 0feh, 0c0h 11425 11428 ; inc al ; fe c0 11426 11429 xor ah, ah ; 30 e4 11427 call 016ach ; e8 d d9a11430 call 016ach ; e8 d7 9a 11428 11431 xor ah, ah ; 30 e4 11429 11432 mov dx, ax ; 89 c2 11430 11433 sal dx, 008h ; c1 e2 08 11431 11434 movzx ax, bl ; 0f b6 c3 11432 call 016ach ; e8 d09a11435 call 016ach ; e8 ca 9a 11433 11436 xor ah, ah ; 30 e4 11434 11437 add ax, dx ; 01 d0 … … 11439 11442 add AL, strict byte 002h ; 04 02 11440 11443 xor ah, ah ; 30 e4 11441 call 016ach ; e8 b d9a11444 call 016ach ; e8 b7 9a 11442 11445 xor ah, ah ; 30 e4 11443 11446 mov word [bp-014h], ax ; 89 46 ec 11444 11447 mov ax, cx ; 89 c8 11445 call 016ach ; e8 b39a11448 call 016ach ; e8 ad 9a 11446 11449 xor ah, ah ; 30 e4 11447 11450 mov word [bp-01ch], ax ; 89 46 e4 11448 jmp short 07c4 5h ; eb 4511451 jmp short 07c4bh ; eb 45 11449 11452 mov ax, word [bp-018h] ; 8b 46 e8 11450 11453 cmp ax, strict word 00040h ; 3d 40 00 11451 jnbe short 07c 0ah ; 77 0211452 jne short 07c1 6h ; 75 0c11454 jnbe short 07c10h ; 77 02 11455 jne short 07c1ch ; 75 0c 11453 11456 mov word [bp-014h], 000ffh ; c7 46 ec ff 00 11454 11457 mov word [bp-01ch], strict word 0003fh ; c7 46 e4 3f 00 11455 jmp short 07c 2eh ; eb 1811458 jmp short 07c34h ; eb 18 11456 11459 cmp ax, strict word 00020h ; 3d 20 00 11457 jnbe short 07c 1dh ; 77 0211458 jne short 07c2 4h ; 75 0711460 jnbe short 07c23h ; 77 02 11461 jne short 07c2ah ; 75 07 11459 11462 mov word [bp-014h], 00080h ; c7 46 ec 80 00 11460 jmp short 07c2 9h ; eb 0511463 jmp short 07c2fh ; eb 05 11461 11464 mov word [bp-014h], strict word 00040h ; c7 46 ec 40 00 11462 11465 mov word [bp-01ch], strict word 00020h ; c7 46 e4 20 00 … … 11466 11469 mov dx, word [bp-018h] ; 8b 56 e8 11467 11470 xor cx, cx ; 31 c9 11468 call 094 40h ; e8 001811471 call 09470h ; e8 2a 18 11469 11472 mov di, ax ; 89 c7 11470 11473 mov word [bp-012h], dx ; 89 56 ee … … 11493 11496 mov word [es:bx+02ah], ax ; 26 89 47 2a 11494 11497 cmp word [bp-012h], strict byte 00000h ; 83 7e ee 00 11495 jne short 07ca 1h ; 75 0611498 jne short 07ca7h ; 75 06 11496 11499 cmp di, 00400h ; 81 ff 00 04 11497 jbe short 07ca 9h ; 76 0811500 jbe short 07cafh ; 76 08 11498 11501 mov word [es:bx+028h], 00400h ; 26 c7 47 28 00 04 11499 jmp short 07c adh ; eb 0411502 jmp short 07cb3h ; eb 04 11500 11503 mov word [es:bx+028h], di ; 26 89 7f 28 11501 mov bx, 00d a2h ; bb a20d11504 mov bx, 00d8ah ; bb 8a 0d 11502 11505 mov cx, ds ; 8c d9 11503 11506 mov ax, strict word 00004h ; b8 04 00 11504 call 01931h ; e8 7 99c11507 call 01931h ; e8 73 9c 11505 11508 push word [bp-018h] ; ff 76 e8 11506 11509 push word [bp-00eh] ; ff 76 f2 … … 11511 11514 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 11512 11515 push ax ; 50 11513 push 00c 21h ; 68 210c11516 push 00c08h ; 68 08 0c 11514 11517 push strict byte 00004h ; 6a 04 11515 call 01972h ; e8 9 d9c11518 call 01972h ; e8 97 9c 11516 11519 add sp, strict byte 00012h ; 83 c4 12 11517 11520 movzx ax, dl ; 0f b6 c2 … … 11525 11528 mov word [es:bx+030h], ax ; 26 89 47 30 11526 11529 cmp word [bp-012h], strict byte 00000h ; 83 7e ee 00 11527 jne short 07 cffh ; 75 0611530 jne short 07d05h ; 75 06 11528 11531 cmp di, 00400h ; 81 ff 00 04 11529 jbe short 07d0 7h ; 76 0811532 jbe short 07d0dh ; 76 08 11530 11533 mov word [es:bx+02eh], 00400h ; 26 c7 47 2e 00 04 11531 jmp short 07d 0bh ; eb 0411534 jmp short 07d11h ; eb 04 11532 11535 mov word [es:bx+02eh], di ; 26 89 7f 2e 11533 11536 movzx ax, dl ; 0f b6 c2 … … 11551 11554 mov dx, strict word 00075h ; ba 75 00 11552 11555 mov ax, strict word 00040h ; b8 40 00 11553 call 01650h ; e8 05 9911556 call 01650h ; e8 ff 98 11554 11557 db 0feh, 0c0h 11555 11558 ; inc al ; fe c0 … … 11557 11560 mov dx, strict word 00075h ; ba 75 00 11558 11561 mov ax, strict word 00040h ; b8 40 00 11559 call 0165eh ; e8 05 9911562 call 0165eh ; e8 ff 98 11560 11563 inc byte [bp-00ch] ; fe 46 f4 11561 11564 mov al, byte [bp-00ch] ; 8a 46 f4 11562 11565 mov es, [bp-01ah] ; 8e 46 e6 11563 11566 mov byte [es:si+001e8h], al ; 26 88 84 e8 01 11564 jmp near 07 dfah ; e9 90 0011565 mov bx, 00d a2h ; bb a20d11567 jmp near 07e00h ; e9 90 00 11568 mov bx, 00d8ah ; bb 8a 0d 11566 11569 mov cx, ds ; 8c d9 11567 11570 mov ax, strict word 00004h ; b8 04 00 11568 call 01931h ; e8 b c9b11571 call 01931h ; e8 b6 9b 11569 11572 push word [bp-010h] ; ff 76 f0 11570 11573 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 11571 11574 push ax ; 50 11572 push 00c 4bh ; 68 4b0c11575 push 00c32h ; 68 32 0c 11573 11576 push strict byte 00004h ; 6a 04 11574 call 01972h ; e8 e d9b11577 call 01972h ; e8 e7 9b 11575 11578 add sp, strict byte 00008h ; 83 c4 08 11576 11579 mov dl, byte [bp-00ch] ; 8a 56 f4 … … 11611 11614 inc word [bp-010h] ; ff 46 f0 11612 11615 cmp word [bp-010h], strict byte 00010h ; 83 7e f0 10 11613 jnl short 07e 6bh ; 7d 6811616 jnl short 07e71h ; 7d 68 11614 11617 mov byte [bp-026h], 012h ; c6 46 da 12 11615 11618 xor al, al ; 30 c0 … … 11628 11631 lea bx, [bp-026h] ; 8d 5e da 11629 11632 mov ax, word [bp-00228h] ; 8b 86 d8 fd 11630 call 07658h ; e8 24f811633 call 07658h ; e8 1e f8 11631 11634 test al, al ; 84 c0 11632 je short 07e4 6h ; 74 0e11633 push 00b 9bh ; 68 9b0b11634 push 00b bbh ; 68 bb0b11635 je short 07e4ch ; 74 0e 11636 push 00b82h ; 68 82 0b 11637 push 00ba2h ; 68 a2 0b 11635 11638 push strict byte 00007h ; 6a 07 11636 call 01972h ; e8 2 f9b11639 call 01972h ; e8 29 9b 11637 11640 add sp, strict byte 00006h ; 83 c4 06 11638 11641 test byte [bp-00226h], 0e0h ; f6 86 da fd e0 11639 jne short 07e5 6h ; 75 0911642 jne short 07e5ch ; 75 09 11640 11643 test byte [bp-00226h], 01fh ; f6 86 da fd 1f 11641 je near 07ab 4h ; 0f 84 5e fc11644 je near 07abah ; 0f 84 5e fc 11642 11645 test byte [bp-00226h], 0e0h ; f6 86 da fd e0 11643 jne short 07 dfah ; 75 9d11646 jne short 07e00h ; 75 9d 11644 11647 mov al, byte [bp-00226h] ; 8a 86 da fd 11645 11648 and AL, strict byte 01fh ; 24 1f 11646 11649 cmp AL, strict byte 005h ; 3c 05 11647 je near 07d 6ah ; 0f 84 01 ff11648 jmp short 07 dfah ; eb 8f11650 je near 07d70h ; 0f 84 01 ff 11651 jmp short 07e00h ; eb 8f 11649 11652 lea sp, [bp-00ah] ; 8d 66 f6 11650 11653 pop di ; 5f … … 11655 11658 pop bp ; 5d 11656 11659 retn ; c3 11657 _scsi_init: ; 0xf7e7 5LB 0x6611660 _scsi_init: ; 0xf7e7b LB 0x66 11658 11661 push bp ; 55 11659 11662 mov bp, sp ; 89 e5 11660 11663 mov dx, strict word 0000eh ; ba 0e 00 11661 11664 mov ax, strict word 00040h ; b8 40 00 11662 call 0166ch ; e8 e b9711665 call 0166ch ; e8 e5 97 11663 11666 mov bx, 00122h ; bb 22 01 11664 11667 mov es, ax ; 8e c0 … … 11671 11674 ; sub ah, ah ; 2a e4 11672 11675 cmp AL, strict byte 055h ; 3c 55 11673 jne short 07ea 5h ; 75 0c11676 jne short 07eabh ; 75 0c 11674 11677 xor al, al ; 30 c0 11675 11678 mov dx, 00433h ; ba 33 04 11676 11679 out DX, AL ; ee 11677 11680 mov ax, 00430h ; b8 30 04 11678 call 07a9 0h ; e8 eb fb11681 call 07a96h ; e8 eb fb 11679 11682 mov AL, strict byte 055h ; b0 55 11680 11683 mov dx, 00436h ; ba 36 04 … … 11684 11687 ; sub ah, ah ; 2a e4 11685 11688 cmp AL, strict byte 055h ; 3c 55 11686 jne short 07e beh ; 75 0c11689 jne short 07ec4h ; 75 0c 11687 11690 xor al, al ; 30 c0 11688 11691 mov dx, 00437h ; ba 37 04 11689 11692 out DX, AL ; ee 11690 11693 mov ax, 00434h ; b8 34 04 11691 call 07a9 0h ; e8 d2 fb11694 call 07a96h ; e8 d2 fb 11692 11695 mov AL, strict byte 055h ; b0 55 11693 11696 mov dx, 0043ah ; ba 3a 04 … … 11697 11700 ; sub ah, ah ; 2a e4 11698 11701 cmp AL, strict byte 055h ; 3c 55 11699 jne short 07ed 7h ; 75 0c11702 jne short 07eddh ; 75 0c 11700 11703 xor al, al ; 30 c0 11701 11704 mov dx, 0043bh ; ba 3b 04 11702 11705 out DX, AL ; ee 11703 11706 mov ax, 00438h ; b8 38 04 11704 call 07a9 0h ; e8 b9 fb11707 call 07a96h ; e8 b9 fb 11705 11708 mov sp, bp ; 89 ec 11706 11709 pop bp ; 5d 11707 11710 retn ; c3 11708 high_bits_save_: ; 0xf7e dbLB 0x1711711 high_bits_save_: ; 0xf7ee1 LB 0x17 11709 11712 push bp ; 55 11710 11713 mov bp, sp ; 89 e5 … … 11718 11721 pop bp ; 5d 11719 11722 retn ; c3 11720 high_bits_restore_: ; 0xf7ef 2LB 0x1711723 high_bits_restore_: ; 0xf7ef8 LB 0x17 11721 11724 push bp ; 55 11722 11725 mov bp, sp ; 89 e5 … … 11730 11733 pop bp ; 5d 11731 11734 retn ; c3 11732 ahci_ctrl_set_bits_: ; 0xf7f0 9LB 0x4311735 ahci_ctrl_set_bits_: ; 0xf7f0f LB 0x43 11733 11736 push bp ; 55 11734 11737 mov bp, sp ; 89 e5 … … 11768 11771 pop bp ; 5d 11769 11772 retn ; c3 11770 ahci_ctrl_clear_bits_: ; 0xf7f 4cLB 0x4711773 ahci_ctrl_clear_bits_: ; 0xf7f52 LB 0x47 11771 11774 push bp ; 55 11772 11775 mov bp, sp ; 89 e5 … … 11808 11811 pop bp ; 5d 11809 11812 retn ; c3 11810 ahci_ctrl_is_bit_set_: ; 0xf7f9 3LB 0x3911813 ahci_ctrl_is_bit_set_: ; 0xf7f99 LB 0x39 11811 11814 push bp ; 55 11812 11815 mov bp, sp ; 89 e5 … … 11830 11833 xchg dx, ax ; 92 11831 11834 test dx, di ; 85 fa 11832 jne short 07f bfh ; 75 0411835 jne short 07fc5h ; 75 04 11833 11836 test ax, bx ; 85 d8 11834 je short 07fc 3h ; 74 0411837 je short 07fc9h ; 74 04 11835 11838 mov AL, strict byte 001h ; b0 01 11836 jmp short 07fc 5h ; eb 0211839 jmp short 07fcbh ; eb 02 11837 11840 xor al, al ; 30 c0 11838 11841 lea sp, [bp-004h] ; 8d 66 fc … … 11841 11844 pop bp ; 5d 11842 11845 retn ; c3 11843 ahci_ctrl_extract_bits_: ; 0xf7f ccLB 0x1b11846 ahci_ctrl_extract_bits_: ; 0xf7fd2 LB 0x1b 11844 11847 push si ; 56 11845 11848 push bp ; 55 … … 11849 11852 and dx, cx ; 21 ca 11850 11853 movzx cx, byte [bp+006h] ; 0f b6 4e 06 11851 jcxz 07fe 2h ; e3 0611854 jcxz 07fe8h ; e3 06 11852 11855 shr dx, 1 ; d1 ea 11853 11856 rcr ax, 1 ; d1 d8 11854 loop 07f dch ; e2 fa11857 loop 07fe2h ; e2 fa 11855 11858 pop bp ; 5d 11856 11859 pop si ; 5e 11857 11860 retn 00002h ; c2 02 00 11858 ahci_addr_to_phys_: ; 0xf7fe 7LB 0x1e11861 ahci_addr_to_phys_: ; 0xf7fed LB 0x1e 11859 11862 push bx ; 53 11860 11863 push cx ; 51 … … 11867 11870 sal ax, 1 ; d1 e0 11868 11871 rcl dx, 1 ; d1 d2 11869 loop 07ff 5h ; e2 fa11872 loop 07ffbh ; e2 fa 11870 11873 xor cx, cx ; 31 c9 11871 11874 add ax, bx ; 01 d8 … … 11875 11878 pop bx ; 5b 11876 11879 retn ; c3 11877 ahci_port_cmd_sync_: ; 0xf800 5LB 0xd511880 ahci_port_cmd_sync_: ; 0xf800b LB 0xd5 11878 11881 push bp ; 55 11879 11882 mov bp, sp ; 89 e5 … … 11889 11892 mov di, word [es:si+00260h] ; 26 8b bc 60 02 11890 11893 cmp AL, strict byte 0ffh ; 3c ff 11891 je near 080d 2h ; 0f 84 aa 0011894 je near 080d8h ; 0f 84 aa 00 11892 11895 movzx cx, byte [es:si+00263h] ; 26 0f b6 8c 63 02 11893 11896 xor dx, dx ; 31 d2 … … 11901 11904 lea ax, [si+00080h] ; 8d 84 80 00 11902 11905 mov dx, es ; 8c c2 11903 call 07fe 7h ; e8 96 ff11906 call 07fedh ; e8 96 ff 11904 11907 mov es, [bp-00ah] ; 8e 46 f6 11905 11908 mov word [es:si+008h], ax ; 26 89 44 08 … … 11911 11914 xor cx, cx ; 31 c9 11912 11915 mov ax, di ; 89 f8 11913 call 07f0 9h ; e8 98 fe11916 call 07f0fh ; e8 98 fe 11914 11917 lea ax, [si+00138h] ; 8d 84 38 01 11915 11918 cwd ; 99 … … 11938 11941 mov dx, si ; 89 f2 11939 11942 mov ax, di ; 89 f8 11940 call 07f9 3h ; e8 e2 fe11943 call 07f99h ; e8 e2 fe 11941 11944 test al, al ; 84 c0 11942 je short 0809 4h ; 74 df11945 je short 0809ah ; 74 df 11943 11946 mov bx, strict word 00001h ; bb 01 00 11944 11947 xor cx, cx ; 31 c9 11945 11948 mov dx, si ; 89 f2 11946 11949 mov ax, di ; 89 f8 11947 call 07f0 9h ; e8 48 fe11950 call 07f0fh ; e8 48 fe 11948 11951 mov dx, word [bp-00ch] ; 8b 56 f4 11949 11952 add dx, 00118h ; 81 c2 18 01 … … 11951 11954 xor cx, cx ; 31 c9 11952 11955 mov ax, di ; 89 f8 11953 call 07f 4ch ; e8 7a fe11956 call 07f52h ; e8 7a fe 11954 11957 lea sp, [bp-006h] ; 8d 66 fa 11955 11958 pop di ; 5f … … 11958 11961 pop bp ; 5d 11959 11962 retn ; c3 11960 ahci_cmd_data_: ; 0xf80 daLB 0x1ca11963 ahci_cmd_data_: ; 0xf80e0 LB 0x1ca 11961 11964 push bp ; 55 11962 11965 mov bp, sp ; 89 e5 … … 11982 11985 mov ax, 00080h ; b8 80 00 11983 11986 mov dx, word [bp-00ah] ; 8b 56 f6 11984 call 094 aah ; e8 911311987 call 094dah ; e8 bb 13 11985 11988 mov es, [bp-00ah] ; 8e 46 f6 11986 11989 mov word [es:si+00080h], 08027h ; 26 c7 84 80 00 27 80 … … 11998 12001 shr bx, 1 ; d1 eb 11999 12002 rcr ax, 1 ; d1 d8 12000 loop 081 4ch ; e2 fa12003 loop 08152h ; e2 fa 12001 12004 mov es, [bp-00ah] ; 8e 46 f6 12002 12005 mov byte [es:si+00085h], al ; 26 88 84 85 00 … … 12023 12026 mov bx, word [bp-016h] ; 8b 5e ea 12024 12027 xor cx, cx ; 31 c9 12025 call 094 79h ; e8 c41212028 call 094a9h ; e8 ee 12 12026 12029 push dx ; 52 12027 12030 push ax ; 50 … … 12031 12034 mov ax, 0026ah ; b8 6a 02 12032 12035 mov dx, word [bp-00ah] ; 8b 56 f6 12033 call 093 8fh ; e8 c4 1112036 call 093c5h ; e8 f4 11 12034 12037 mov es, [bp-00ah] ; 8e 46 f6 12035 12038 movzx ax, byte [es:si+00263h] ; 26 0f b6 84 63 02 … … 12051 12054 mov es, [bp-012h] ; 8e 46 ee 12052 12055 cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00 12053 je short 0824 4h ; 74 2c12056 je short 0824ah ; 74 2c 12054 12057 mov dx, word [es:di+01ch] ; 26 8b 55 1c 12055 12058 dec dx ; 4a … … 12070 12073 movzx dx, byte [es:bx+00263h] ; 26 0f b6 97 63 02 12071 12074 cmp ax, dx ; 39 d0 12072 jnc short 082 5eh ; 73 0312075 jnc short 08264h ; 73 03 12073 12076 inc ax ; 40 12074 jmp short 082 4eh ; eb f012077 jmp short 08254h ; eb f0 12075 12078 mov al, byte [bp-008h] ; 8a 46 f8 12076 12079 cmp AL, strict byte 035h ; 3c 35 12077 jne short 082 6bh ; 75 0612080 jne short 08271h ; 75 06 12078 12081 mov byte [bp-008h], 040h ; c6 46 f8 40 12079 jmp short 082 7fh ; eb 1412082 jmp short 08285h ; eb 14 12080 12083 cmp AL, strict byte 0a0h ; 3c a0 12081 jne short 082 7bh ; 75 0c12084 jne short 08281h ; 75 0c 12082 12085 or byte [bp-008h], 020h ; 80 4e f8 20 12083 12086 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 12084 jmp short 082 7fh ; eb 0412087 jmp short 08285h ; eb 04 12085 12088 mov byte [bp-008h], 000h ; c6 46 f8 00 12086 12089 or byte [bp-008h], 005h ; 80 4e f8 05 … … 12088 12091 mov ax, word [bp-00eh] ; 8b 46 f2 12089 12092 mov dx, word [bp-00ch] ; 8b 56 f4 12090 call 0800 5h ; e8 75 fd12093 call 0800bh ; e8 75 fd 12091 12094 mov ax, word [bp-00eh] ; 8b 46 f2 12092 12095 add ax, 0026ah ; 05 6a 02 12093 12096 mov dx, word [bp-00ch] ; 8b 56 f4 12094 call 094 08h ; e8 6c 1112097 call 0943eh ; e8 9c 11 12095 12098 lea sp, [bp-006h] ; 8d 66 fa 12096 12099 pop di ; 5f … … 12099 12102 pop bp ; 5d 12100 12103 retn ; c3 12101 ahci_port_deinit_current_: ; 0xf82a 4LB 0x14412104 ahci_port_deinit_current_: ; 0xf82aa LB 0x144 12102 12105 push bp ; 55 12103 12106 mov bp, sp ; 89 e5 … … 12114 12117 mov byte [bp-00ah], al ; 88 46 f6 12115 12118 cmp AL, strict byte 0ffh ; 3c ff 12116 je near 083 dfh ; 0f 84 17 0112119 je near 083e5h ; 0f 84 17 01 12117 12120 movzx dx, al ; 0f b6 d0 12118 12121 sal dx, 007h ; c1 e2 07 … … 12121 12124 xor cx, cx ; 31 c9 12122 12125 mov ax, si ; 89 f0 12123 call 07f 4ch ; e8 70 fc12126 call 07f52h ; e8 70 fc 12124 12127 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 12125 12128 sal ax, 007h ; c1 e0 07 … … 12130 12133 xor cx, cx ; 31 c9 12131 12134 mov ax, si ; 89 f0 12132 call 07f9 3h ; e8 9d fc12135 call 07f99h ; e8 9d fc 12133 12136 cmp AL, strict byte 001h ; 3c 01 12134 je short 082 dch ; 74 e212137 je short 082e2h ; 74 e2 12135 12138 mov cx, strict word 00020h ; b9 20 00 12136 12139 xor bx, bx ; 31 db 12137 12140 mov ax, di ; 89 f8 12138 12141 mov dx, word [bp-00ch] ; 8b 56 f4 12139 call 094 aah ; e8 a31112142 call 094dah ; e8 cd 11 12140 12143 lea ax, [di+00080h] ; 8d 85 80 00 12141 12144 mov cx, strict word 00040h ; b9 40 00 12142 12145 xor bx, bx ; 31 db 12143 12146 mov dx, word [bp-00ch] ; 8b 56 f4 12144 call 094 aah ; e8 941112147 call 094dah ; e8 be 11 12145 12148 lea ax, [di+00200h] ; 8d 85 00 02 12146 12149 mov cx, strict word 00060h ; b9 60 00 12147 12150 xor bx, bx ; 31 db 12148 12151 mov dx, word [bp-00ch] ; 8b 56 f4 12149 call 094 aah ; e8 851112152 call 094dah ; e8 af 11 12150 12153 mov ax, word [bp-00eh] ; 8b 46 f2 12151 12154 add ax, 00108h ; 05 08 01 … … 12249 12252 pop bp ; 5d 12250 12253 retn ; c3 12251 ahci_port_init_: ; 0xf83e 8LB 0x20612254 ahci_port_init_: ; 0xf83ee LB 0x206 12252 12255 push bp ; 55 12253 12256 mov bp, sp ; 89 e5 … … 12259 12262 mov word [bp-00ah], dx ; 89 56 f6 12260 12263 mov byte [bp-008h], bl ; 88 5e f8 12261 call 082a 4h ; e8 a8 fe12264 call 082aah ; e8 a8 fe 12262 12265 movzx dx, bl ; 0f b6 d3 12263 12266 sal dx, 007h ; c1 e2 07 … … 12267 12270 mov bx, strict word 00011h ; bb 11 00 12268 12271 xor cx, cx ; 31 c9 12269 call 07f 4ch ; e8 36 fb12272 call 07f52h ; e8 36 fb 12270 12273 movzx di, byte [bp-008h] ; 0f b6 7e f8 12271 12274 sal di, 007h ; c1 e7 07 … … 12275 12278 mov bx, 0c011h ; bb 11 c0 12276 12279 xor cx, cx ; 31 c9 12277 call 07f9 3h ; e8 62 fb12280 call 07f99h ; e8 62 fb 12278 12281 cmp AL, strict byte 001h ; 3c 01 12279 je short 0841 6h ; 74 e112282 je short 0841ch ; 74 e1 12280 12283 mov cx, strict word 00020h ; b9 20 00 12281 12284 xor bx, bx ; 31 db 12282 12285 mov ax, si ; 89 f0 12283 12286 mov dx, word [bp-00ah] ; 8b 56 f6 12284 call 094 aah ; e8 681012287 call 094dah ; e8 92 10 12285 12288 lea ax, [si+00080h] ; 8d 84 80 00 12286 12289 mov cx, strict word 00040h ; b9 40 00 12287 12290 xor bx, bx ; 31 db 12288 12291 mov dx, word [bp-00ah] ; 8b 56 f6 12289 call 094 aah ; e8 591012292 call 094dah ; e8 83 10 12290 12293 mov ax, si ; 89 f0 12291 12294 add ah, 002h ; 80 c4 02 … … 12294 12297 xor bx, bx ; 31 db 12295 12298 mov dx, word [bp-00ah] ; 8b 56 f6 12296 call 094 aah ; e8 461012299 call 094dah ; e8 70 10 12297 12300 lea ax, [di+00108h] ; 8d 85 08 01 12298 12301 cwd ; 99 … … 12308 12311 mov ax, word [bp-00ch] ; 8b 46 f4 12309 12312 mov dx, word [bp-00ah] ; 8b 56 f6 12310 call 07fe 7h ; e8 60 fb12313 call 07fedh ; e8 60 fb 12311 12314 mov es, [bp-00ah] ; 8e 46 f6 12312 12315 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 … … 12353 12356 mov ax, si ; 89 f0 12354 12357 mov dx, word [bp-00ah] ; 8b 56 f6 12355 call 07fe 7h ; e8 f4 fa12358 call 07fedh ; e8 f4 fa 12356 12359 mov es, [bp-00ah] ; 8e 46 f6 12357 12360 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 … … 12458 12461 pop bp ; 5d 12459 12462 retn ; c3 12460 @ahci_read_sectors: ; 0xf85 eeLB 0x9412463 @ahci_read_sectors: ; 0xf85f4 LB 0x94 12461 12464 push bp ; 55 12462 12465 mov bp, sp ; 89 e5 … … 12467 12470 sub di, strict byte 0000ch ; 83 ef 0c 12468 12471 cmp di, strict byte 00004h ; 83 ff 04 12469 jbe short 0861 2h ; 76 0f12472 jbe short 08618h ; 76 0f 12470 12473 push di ; 57 12471 push 00c 66h ; 68 660c12472 push 00c 78h ; 68 780c12474 push 00c4eh ; 68 4e 0c 12475 push 00c60h ; 68 60 0c 12473 12476 push strict byte 00007h ; 6a 07 12474 call 01972h ; e8 639312477 call 01972h ; e8 5d 93 12475 12478 add sp, strict byte 00008h ; 83 c4 08 12476 12479 les bx, [bp+004h] ; c4 5e 04 12477 12480 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 12478 12481 xor ax, ax ; 31 c0 12479 call 07e dbh ; e8 bc f812482 call 07ee1h ; e8 bc f8 12480 12483 mov es, [bp+006h] ; 8e 46 06 12481 12484 add di, bx ; 01 df … … 12484 12487 mov dx, word [es:di+001eeh] ; 26 8b 95 ee 01 12485 12488 xor ax, ax ; 31 c0 12486 call 083e 8h ; e8 b1 fd12489 call 083eeh ; e8 b1 fd 12487 12490 mov bx, strict word 00025h ; bb 25 00 12488 12491 mov ax, di ; 89 f8 12489 12492 mov dx, word [bp+006h] ; 8b 56 06 12490 call 080 dah ; e8 98 fa12493 call 080e0h ; e8 98 fa 12491 12494 mov es, [bp+006h] ; 8e 46 06 12492 12495 mov bx, di ; 89 fb … … 12508 12511 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 12509 12512 xor ax, ax ; 31 c0 12510 call 07ef 2h ; e8 7b f812513 call 07ef8h ; e8 7b f8 12511 12514 xor ax, ax ; 31 c0 12512 12515 lea sp, [bp-004h] ; 8d 66 fc … … 12515 12518 pop bp ; 5d 12516 12519 retn 00004h ; c2 04 00 12517 @ahci_write_sectors: ; 0xf868 2LB 0x7012520 @ahci_write_sectors: ; 0xf8688 LB 0x70 12518 12521 push bp ; 55 12519 12522 mov bp, sp ; 89 e5 … … 12525 12528 sub bx, strict byte 0000ch ; 83 eb 0c 12526 12529 cmp bx, strict byte 00004h ; 83 fb 04 12527 jbe short 086 aah ; 76 0f12530 jbe short 086b0h ; 76 0f 12528 12531 push bx ; 53 12529 push 00c 97h ; 68 970c12530 push 00c 78h ; 68 780c12532 push 00c7fh ; 68 7f 0c 12533 push 00c60h ; 68 60 0c 12531 12534 push strict byte 00007h ; 6a 07 12532 call 01972h ; e8 c b9212535 call 01972h ; e8 c5 92 12533 12536 add sp, strict byte 00008h ; 83 c4 08 12534 12537 mov es, cx ; 8e c1 12535 12538 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12536 12539 xor ax, ax ; 31 c0 12537 call 07e dbh ; e8 25 f812540 call 07ee1h ; e8 25 f8 12538 12541 mov es, cx ; 8e c1 12539 12542 add bx, si ; 01 f3 … … 12541 12544 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12542 12545 xor ax, ax ; 31 c0 12543 call 083e 8h ; e8 1e fd12546 call 083eeh ; e8 1e fd 12544 12547 mov bx, strict word 00035h ; bb 35 00 12545 12548 mov ax, si ; 89 f0 12546 12549 mov dx, cx ; 89 ca 12547 call 080 dah ; e8 06 fa12550 call 080e0h ; e8 06 fa 12548 12551 mov es, cx ; 8e c1 12549 12552 mov dx, word [es:si+00ah] ; 26 8b 54 0a … … 12551 12554 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12552 12555 xor ax, ax ; 31 c0 12553 call 07ef 2h ; e8 0a f812556 call 07ef8h ; e8 0a f8 12554 12557 xor ax, ax ; 31 c0 12555 12558 lea sp, [bp-002h] ; 8d 66 fe … … 12557 12560 pop bp ; 5d 12558 12561 retn 00004h ; c2 04 00 12559 ahci_cmd_packet_: ; 0xf86f 2LB 0x17312562 ahci_cmd_packet_: ; 0xf86f8 LB 0x173 12560 12563 push bp ; 55 12561 12564 mov bp, sp ; 89 e5 … … 12569 12572 mov dx, strict word 0000eh ; ba 0e 00 12570 12573 mov ax, strict word 00040h ; b8 40 00 12571 call 0166ch ; e8 5 f8f12574 call 0166ch ; e8 59 8f 12572 12575 mov si, 00122h ; be 22 01 12573 12576 mov word [bp-008h], ax ; 89 46 f8 12574 12577 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12575 jne short 0873 8h ; 75 1f12576 mov bx, 00d a2h ; bb a20d12578 jne short 0873eh ; 75 1f 12579 mov bx, 00d8ah ; bb 8a 0d 12577 12580 mov cx, ds ; 8c d9 12578 12581 mov ax, strict word 00004h ; b8 04 00 12579 call 01931h ; e8 0 d9212580 push 00c aah ; 68 aa0c12581 push 00c bah ; 68 ba0c12582 call 01931h ; e8 07 92 12583 push 00c92h ; 68 92 0c 12584 push 00ca2h ; 68 a2 0c 12582 12585 push strict byte 00004h ; 6a 04 12583 call 01972h ; e8 439212586 call 01972h ; e8 3d 92 12584 12587 add sp, strict byte 00006h ; 83 c4 06 12585 12588 mov ax, strict word 00001h ; b8 01 00 12586 jmp near 088 5ch ; e9 24 0112589 jmp near 08862h ; e9 24 01 12587 12590 test byte [bp+004h], 001h ; f6 46 04 01 12588 jne short 0873 2h ; 75 f412591 jne short 08738h ; 75 f4 12589 12592 mov ax, word [bp+006h] ; 8b 46 06 12590 12593 mov dx, word [bp+008h] ; 8b 56 08 … … 12592 12595 sal ax, 1 ; d1 e0 12593 12596 rcl dx, 1 ; d1 d2 12594 loop 0874 7h ; e2 fa12597 loop 0874dh ; e2 fa 12595 12598 mov es, [bp-008h] ; 8e 46 f8 12596 12599 mov word [es:si], ax ; 26 89 04 … … 12604 12607 mov dx, word [bp+008h] ; 8b 56 08 12605 12608 xor cx, cx ; 31 c9 12606 call 094 40h ; e8 cc0c12609 call 09470h ; e8 f6 0c 12607 12610 mov word [es:si+00ah], ax ; 26 89 44 0a 12608 12611 xor di, di ; 31 ff … … 12614 12617 xor ax, ax ; 31 c0 12615 12618 mov dx, word [bp-00ah] ; 8b 56 f6 12616 call 07e dbh ; e8 47 f712619 call 07ee1h ; e8 47 f7 12617 12620 mov es, [bp-008h] ; 8e 46 f8 12618 12621 mov bx, word [bp-014h] ; 8b 5e ec … … 12621 12624 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12622 12625 xor ax, ax ; 31 c0 12623 call 083e 8h ; e8 3c fc12626 call 083eeh ; e8 3c fc 12624 12627 movzx ax, byte [bp-006h] ; 0f b6 46 fa 12625 12628 push ax ; 50 … … 12628 12631 mov ax, 000c0h ; b8 c0 00 12629 12632 mov dx, word [bp-00ah] ; 8b 56 f6 12630 call 094 b7h ; e8 f7 0c12633 call 094e7h ; e8 21 0d 12631 12634 mov es, [bp-008h] ; 8e 46 f8 12632 12635 mov word [es:si+014h], di ; 26 89 7c 14 … … 12635 12638 mov ax, word [es:si+01ah] ; 26 8b 44 1a 12636 12639 test ax, ax ; 85 c0 12637 je short 08 7feh ; 74 2712640 je short 08804h ; 74 27 12638 12641 dec ax ; 48 12639 12642 mov es, [bp-00ah] ; 8e 46 f6 … … 12648 12651 mov ax, si ; 89 f0 12649 12652 mov dx, word [bp-008h] ; 8b 56 f8 12650 call 080 dah ; e8 d1 f812653 call 080e0h ; e8 d1 f8 12651 12654 les bx, [bp-00eh] ; c4 5e f2 12652 12655 mov ax, word [es:bx+004h] ; 26 8b 47 04 … … 12671 12674 mov ax, word [bp-00eh] ; 8b 46 f2 12672 12675 mov dx, word [bp-00ch] ; 8b 56 f4 12673 call 07ef 2h ; e8 aa f612676 call 07ef8h ; e8 aa f6 12674 12677 les bx, [bp-00eh] ; c4 5e f2 12675 12678 mov ax, word [es:bx+006h] ; 26 8b 47 06 12676 12679 or ax, word [es:bx+004h] ; 26 0b 47 04 12677 jne short 088 5ah ; 75 0512680 jne short 08860h ; 75 05 12678 12681 mov ax, strict word 00004h ; b8 04 00 12679 jmp short 088 5ch ; eb 0212682 jmp short 08862h ; eb 02 12680 12683 xor ax, ax ; 31 c0 12681 12684 lea sp, [bp-004h] ; 8d 66 fc … … 12684 12687 pop bp ; 5d 12685 12688 retn 0000ch ; c2 0c 00 12686 ahci_port_detect_device_: ; 0xf886 5 LB 0x3d112689 ahci_port_detect_device_: ; 0xf886b LB 0x401 12687 12690 push bp ; 55 12688 12691 mov bp, sp ; 89 e5 … … 12693 12696 mov di, ax ; 89 c7 12694 12697 mov word [bp-010h], dx ; 89 56 f0 12695 mov byte [bp-00 8h], bl ; 88 5e f812698 mov byte [bp-00ch], bl ; 88 5e f4 12696 12699 movzx cx, bl ; 0f b6 cb 12697 12700 mov bx, cx ; 89 cb 12698 call 083e 8h ; e8 69 fb12701 call 083eeh ; e8 69 fb 12699 12702 mov dx, strict word 0000eh ; ba 0e 00 12700 12703 mov ax, strict word 00040h ; b8 40 00 12701 call 0166ch ; e8 e48d12704 call 0166ch ; e8 de 8d 12702 12705 mov word [bp-020h], ax ; 89 46 e0 12703 12706 mov si, 00122h ; be 22 01 12704 12707 mov word [bp-00eh], ax ; 89 46 f2 12705 mov word [bp-0 22h], si ; 89 76 de12706 mov word [bp-01 2h], ax ; 89 46 ee12708 mov word [bp-012h], si ; 89 76 ee 12709 mov word [bp-01eh], ax ; 89 46 e2 12707 12710 sal cx, 007h ; c1 e1 07 12708 mov word [bp-01 ch], cx ; 89 4e e412711 mov word [bp-016h], cx ; 89 4e ea 12709 12712 mov ax, cx ; 89 c8 12710 12713 add ax, 0012ch ; 05 2c 01 12711 12714 cwd ; 99 12712 mov word [bp-0 1eh], ax ; 89 46 e212715 mov word [bp-022h], ax ; 89 46 de 12713 12716 mov bx, dx ; 89 d3 12714 12717 mov es, [bp-010h] ; 8e 46 f0 … … 12732 12735 mov es, [bp-010h] ; 8e 46 f0 12733 12736 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 12734 mov ax, word [bp-0 1eh] ; 8b 46 e212737 mov ax, word [bp-022h] ; 8b 46 de 12735 12738 mov cx, bx ; 89 d9 12736 12739 xchg cx, ax ; 91 … … 12749 12752 ; mov ax, cx ; 8b c1 12750 12753 out DX, eax ; 66 ef 12751 mov ax, word [bp-01 ch] ; 8b 46 e412754 mov ax, word [bp-016h] ; 8b 46 ea 12752 12755 add ax, 00128h ; 05 28 01 12753 12756 cwd ; 99 … … 12772 12775 mov bx, strict word 0000fh ; bb 0f 00 12773 12776 xor cx, cx ; 31 c9 12774 call 07f cch ; e8 90 f612777 call 07fd2h ; e8 90 f6 12775 12778 cmp ax, strict word 00003h ; 3d 03 00 12776 jne near 08c2eh ; 0f 85 eb 02 12779 jne near 08c64h ; 0f 85 1b 03 12780 mov ax, word [bp-016h] ; 8b 46 ea 12781 add ax, 00130h ; 05 30 01 12782 cwd ; 99 12783 mov es, [bp-010h] ; 8e 46 f0 12784 mov bx, word [es:di+00260h] ; 26 8b 9d 60 02 12785 mov cx, dx ; 89 d1 12786 mov dx, bx ; 89 da 12787 xchg cx, ax ; 91 12788 sal eax, 010h ; 66 c1 e0 10 12789 db 08bh, 0c1h 12790 ; mov ax, cx ; 8b c1 12791 out DX, eax ; 66 ef 12792 mov es, [bp-010h] ; 8e 46 f0 12793 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 12794 add dx, strict byte 00004h ; 83 c2 04 12795 mov ax, strict word 0ffffh ; b8 ff ff 12796 mov cx, ax ; 89 c1 12797 xchg cx, ax ; 91 12798 sal eax, 010h ; 66 c1 e0 10 12799 db 08bh, 0c1h 12800 ; mov ax, cx ; 8b c1 12801 out DX, eax ; 66 ef 12777 12802 mov es, [bp-00eh] ; 8e 46 f2 12778 12803 mov al, byte [es:si+001edh] ; 26 8a 84 ed 01 12779 mov byte [bp-00 ah], al ; 88 46 f612804 mov byte [bp-008h], al ; 88 46 f8 12780 12805 cmp AL, strict byte 004h ; 3c 04 12781 jnc near 08c 2eh ; 0f 83 da0212782 mov dx, word [bp-01 ch] ; 8b 56 e412806 jnc near 08c64h ; 0f 83 d5 02 12807 mov dx, word [bp-016h] ; 8b 56 ea 12783 12808 add dx, 00118h ; 81 c2 18 01 12784 12809 mov es, [bp-010h] ; 8e 46 f0 … … 12786 12811 mov bx, strict word 00010h ; bb 10 00 12787 12812 xor cx, cx ; 31 c9 12788 call 07f0 9h ; e8 9ef512789 mov ax, word [bp-01 ch] ; 8b 46 e412813 call 07f0fh ; e8 69 f5 12814 mov ax, word [bp-016h] ; 8b 46 ea 12790 12815 add ax, 00124h ; 05 24 01 12791 12816 cwd ; 99 … … 12807 12832 shr eax, 010h ; 66 c1 e8 10 12808 12833 xchg dx, ax ; 92 12809 mov bx, ax ; 89 c3 12810 mov ax, dx ; 89 d0 12811 mov cl, byte [bp-00ah] ; 8a 4e f6 12834 mov cl, byte [bp-008h] ; 8a 4e f8 12812 12835 add cl, 00ch ; 80 c1 0c 12813 12836 test dx, dx ; 85 d2 12814 jne near 08b 80h ; 0f 85 d50112815 cmp bx, 00101h ; 81 fb01 0112816 jne near 08b 80h ; 0f 85 cd 0112837 jne near 08bb6h ; 0f 85 d4 01 12838 cmp ax, 00101h ; 3d 01 01 12839 jne near 08bb6h ; 0f 85 cd 01 12817 12840 mov es, [bp-00eh] ; 8e 46 f2 12818 12841 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h … … 12826 12849 mov ax, si ; 89 f0 12827 12850 mov dx, word [bp-020h] ; 8b 56 e0 12828 call 080 dah ; e8 fc f612829 mov byte [bp-00 ch], cl ; 88 4e f412851 call 080e0h ; e8 cc f6 12852 mov byte [bp-00ah], cl ; 88 4e f6 12830 12853 test byte [bp-00228h], 080h ; f6 86 d8 fd 80 12831 12854 db 00fh, 095h, 0c0h … … 12833 12856 xor ah, ah ; 30 e4 12834 12857 mov dx, word [bp-00226h] ; 8b 96 da fd 12858 mov word [bp-018h], dx ; 89 56 e8 12859 mov dx, word [bp-00222h] ; 8b 96 de fd 12860 mov word [bp-01ch], dx ; 89 56 e4 12861 mov dx, word [bp-0021ch] ; 8b 96 e4 fd 12835 12862 mov word [bp-01ah], dx ; 89 56 e6 12836 mov dx, word [bp-00222h] ; 8b 96 de fd12837 mov word [bp-018h], dx ; 89 56 e812838 mov dx, word [bp-0021ch] ; 8b 96 e4 fd12839 mov word [bp-016h], dx ; 89 56 ea12840 12863 mov di, word [bp-001b0h] ; 8b be 50 fe 12841 12864 mov dx, word [bp-001aeh] ; 8b 96 52 fe 12842 12865 mov word [bp-014h], dx ; 89 56 ec 12843 12866 cmp dx, 00fffh ; 81 fa ff 0f 12844 jne short 08a 21h ; 75 1012867 jne short 08a57h ; 75 10 12845 12868 cmp di, strict byte 0ffffh ; 83 ff ff 12846 jne short 08a 21h ; 75 0b12869 jne short 08a57h ; 75 0b 12847 12870 mov di, word [bp-00160h] ; 8b be a0 fe 12848 12871 mov dx, word [bp-0015eh] ; 8b 96 a2 fe 12849 12872 mov word [bp-014h], dx ; 89 56 ec 12850 movzx bx, byte [bp-00 ah] ; 0f b6 5e f612851 mov es, [bp-01 2h] ; 8e 46 ee12852 add bx, word [bp-0 22h] ; 03 5e de12853 mov ah, byte [bp-00 8h] ; 8a 66 f812873 movzx bx, byte [bp-008h] ; 0f b6 5e f8 12874 mov es, [bp-01eh] ; 8e 46 e2 12875 add bx, word [bp-012h] ; 03 5e ee 12876 mov ah, byte [bp-00ch] ; 8a 66 f4 12854 12877 mov byte [es:bx+001e9h], ah ; 26 88 a7 e9 01 12855 movzx dx, byte [bp-00 ch] ; 0f b6 56 f412878 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 12856 12879 imul dx, dx, strict byte 00018h ; 6b d2 18 12857 mov si, word [bp-0 22h] ; 8b 76 de12880 mov si, word [bp-012h] ; 8b 76 ee 12858 12881 add si, dx ; 01 d6 12859 12882 mov word [es:si+01eh], 0ff05h ; 26 c7 44 1e 05 ff … … 12865 12888 mov ax, word [bp-014h] ; 8b 46 ec 12866 12889 mov word [es:si+034h], ax ; 26 89 44 34 12890 mov ax, word [bp-01ch] ; 8b 46 e4 12891 mov word [es:si+02ch], ax ; 26 89 44 2c 12867 12892 mov ax, word [bp-018h] ; 8b 46 e8 12868 mov word [es:si+02 ch], ax ; 26 89 44 2c12893 mov word [es:si+02eh], ax ; 26 89 44 2e 12869 12894 mov ax, word [bp-01ah] ; 8b 46 e6 12870 mov word [es:si+02eh], ax ; 26 89 44 2e12871 mov ax, word [bp-016h] ; 8b 46 ea12872 12895 mov word [es:si+030h], ax ; 26 89 44 30 12873 mov al, byte [bp-00 ah] ; 8a 46 f612896 mov al, byte [bp-008h] ; 8a 46 f8 12874 12897 cmp AL, strict byte 001h ; 3c 01 12875 jc short 08a 8ch ; 72 0c12876 jbe short 08a 94h ; 76 1212898 jc short 08ac2h ; 72 0c 12899 jbe short 08acah ; 76 12 12877 12900 cmp AL, strict byte 003h ; 3c 03 12878 je short 08a 9ch ; 74 1612901 je short 08ad2h ; 74 16 12879 12902 cmp AL, strict byte 002h ; 3c 02 12880 je short 08a 98h ; 74 0e12881 jmp short 08 ae5h ; eb 5912903 je short 08aceh ; 74 0e 12904 jmp short 08b1bh ; eb 59 12882 12905 test al, al ; 84 c0 12883 jne short 08 ae5h ; 75 5512906 jne short 08b1bh ; 75 55 12884 12907 mov DL, strict byte 040h ; b2 40 12885 jmp short 08a 9eh ; eb 0a12908 jmp short 08ad4h ; eb 0a 12886 12909 mov DL, strict byte 048h ; b2 48 12887 jmp short 08a 9eh ; eb 0612910 jmp short 08ad4h ; eb 06 12888 12911 mov DL, strict byte 050h ; b2 50 12889 jmp short 08a 9eh ; eb 0212912 jmp short 08ad4h ; eb 02 12890 12913 mov DL, strict byte 058h ; b2 58 12891 12914 mov al, dl ; 88 d0 … … 12893 12916 movzx bx, al ; 0f b6 d8 12894 12917 mov ax, bx ; 89 d8 12895 call 016ach ; e8 02 8c12918 call 016ach ; e8 cc 8b 12896 12919 test al, al ; 84 c0 12897 je short 08 ae5h ; 74 3712920 je short 08b1bh ; 74 37 12898 12921 mov al, dl ; 88 d0 12899 12922 db 0feh, 0c0h 12900 12923 ; inc al ; fe c0 12901 12924 xor ah, ah ; 30 e4 12902 call 016ach ; e8 f58b12925 call 016ach ; e8 bf 8b 12903 12926 xor ah, ah ; 30 e4 12904 12927 mov cx, ax ; 89 c1 12905 12928 sal cx, 008h ; c1 e1 08 12906 12929 movzx ax, dl ; 0f b6 c2 12907 call 016ach ; e8 e88b12930 call 016ach ; e8 b2 8b 12908 12931 xor ah, ah ; 30 e4 12909 12932 add ax, cx ; 01 c8 … … 12912 12935 add AL, strict byte 002h ; 04 02 12913 12936 xor ah, ah ; 30 e4 12914 call 016ach ; e8 d88b12937 call 016ach ; e8 a2 8b 12915 12938 xor ah, ah ; 30 e4 12916 12939 mov word [bp-028h], ax ; 89 46 d8 12917 12940 mov ax, bx ; 89 d8 12918 call 016ach ; e8 ce8b12941 call 016ach ; e8 98 8b 12919 12942 xor ah, ah ; 30 e4 12920 12943 mov word [bp-024h], ax ; 89 46 dc 12921 jmp short 08 af2h ; eb 0d12944 jmp short 08b28h ; eb 0d 12922 12945 mov bx, di ; 89 fb 12923 12946 mov cx, word [bp-014h] ; 8b 4e ec 12924 12947 mov dx, ss ; 8c d2 12925 12948 lea ax, [bp-028h] ; 8d 46 d8 12926 call 05389h ; e8 97c812927 mov bx, 00d a2h ; bb a20d12949 call 05389h ; e8 61 c8 12950 mov bx, 00d8ah ; bb 8a 0d 12928 12951 mov cx, ds ; 8c d9 12929 12952 mov ax, strict word 00004h ; b8 04 00 12930 call 01931h ; e8 34 8e12953 call 01931h ; e8 fe 8d 12931 12954 push word [bp-014h] ; ff 76 ec 12932 12955 push di ; 57 … … 12937 12960 mov ax, word [bp-026h] ; 8b 46 da 12938 12961 push ax ; 50 12939 push dword [bp-018h] ; 66 ff 76 e8 12940 push word [bp-01ah] ; ff 76 e6 12962 push dword [bp-01ch] ; 66 ff 76 e4 12963 push word [bp-018h] ; ff 76 e8 12964 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 12965 push ax ; 50 12941 12966 movzx ax, byte [bp-008h] ; 0f b6 46 f8 12942 12967 push ax ; 50 12943 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 12944 push ax ; 50 12945 push 00cdah ; 68 da 0c 12968 push 00cc2h ; 68 c2 0c 12946 12969 push strict byte 00004h ; 6a 04 12947 call 01972h ; e8 4c8e12970 call 01972h ; e8 16 8e 12948 12971 add sp, strict byte 00018h ; 83 c4 18 12949 movzx di, byte [bp-00 ch] ; 0f b6 7e f412972 movzx di, byte [bp-00ah] ; 0f b6 7e f6 12950 12973 imul di, di, strict byte 00018h ; 6b ff 18 12951 add di, word [bp-0 22h] ; 03 7e de12952 mov es, [bp-01 2h] ; 8e 46 ee12974 add di, word [bp-012h] ; 03 7e ee 12975 mov es, [bp-01eh] ; 8e 46 e2 12953 12976 lea di, [di+026h] ; 8d 7d 26 12954 12977 push DS ; 1e … … 12960 12983 movsw ; a5 12961 12984 pop DS ; 1f 12962 mov bx, word [bp-0 22h] ; 8b 5e de12985 mov bx, word [bp-012h] ; 8b 5e ee 12963 12986 mov al, byte [es:bx+0019eh] ; 26 8a 87 9e 01 12964 mov ah, byte [bp-00 ah] ; 8a 66 f612987 mov ah, byte [bp-008h] ; 8a 66 f8 12965 12988 add ah, 00ch ; 80 c4 0c 12966 12989 movzx bx, al ; 0f b6 d8 12967 add bx, word [bp-0 22h] ; 03 5e de12990 add bx, word [bp-012h] ; 03 5e ee 12968 12991 mov byte [es:bx+0019fh], ah ; 26 88 a7 9f 01 12969 12992 db 0feh, 0c0h 12970 12993 ; inc al ; fe c0 12971 mov bx, word [bp-0 22h] ; 8b 5e de12994 mov bx, word [bp-012h] ; 8b 5e ee 12972 12995 mov byte [es:bx+0019eh], al ; 26 88 87 9e 01 12973 12996 mov dx, strict word 00075h ; ba 75 00 12974 12997 mov ax, strict word 00040h ; b8 40 00 12975 call 01650h ; e8 e18a12998 call 01650h ; e8 ab 8a 12976 12999 db 0feh, 0c0h 12977 13000 ; inc al ; fe c0 … … 12979 13002 mov dx, strict word 00075h ; ba 75 00 12980 13003 mov ax, strict word 00040h ; b8 40 00 12981 call 0165eh ; e8 e18a12982 jmp near 08c 1dh ; e9 9d 0013004 call 0165eh ; e8 ab 8a 13005 jmp near 08c53h ; e9 9d 00 12983 13006 cmp dx, 0eb14h ; 81 fa 14 eb 12984 jne near 08c 1dh ; 0f 85 95 0012985 cmp bx, 00101h ; 81 fb01 0112986 jne near 08c 1dh ; 0f 85 8d0013007 jne near 08c53h ; 0f 85 95 00 13008 cmp ax, 00101h ; 3d 01 01 13009 jne near 08c53h ; 0f 85 8e 00 12987 13010 mov es, [bp-00eh] ; 8e 46 f2 12988 13011 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h … … 12996 13019 mov ax, si ; 89 f0 12997 13020 mov dx, word [bp-020h] ; 8b 56 e0 12998 call 080 dah ; e8 1f f513021 call 080e0h ; e8 f0 f4 12999 13022 test byte [bp-00228h], 080h ; f6 86 d8 fd 80 13000 13023 db 00fh, 095h, 0c0h 13001 13024 ; setne al ; 0f 95 c0 13002 xor ah, ah ; 30 e413003 movzx bx, byte [bp-00 ah] ; 0f b6 5e f613025 movzx dx, al ; 0f b6 d0 13026 movzx bx, byte [bp-008h] ; 0f b6 5e f8 13004 13027 mov es, [bp-020h] ; 8e 46 e0 13005 13028 add bx, si ; 01 f3 13006 mov a h, byte [bp-008h] ; 8a 66 f813007 mov byte [es:bx+001e9h], a h ; 26 88 a7 e9 0113029 mov al, byte [bp-00ch] ; 8a 46 f4 13030 mov byte [es:bx+001e9h], al ; 26 88 87 e9 01 13008 13031 movzx si, cl ; 0f b6 f1 13009 13032 imul si, si, strict byte 00018h ; 6b f6 18 13010 13033 add si, 00122h ; 81 c6 22 01 13011 13034 mov word [es:si+01eh], 00505h ; 26 c7 44 1e 05 05 13012 mov byte [es:si+020h], al ; 26 88 44 2013035 mov byte [es:si+020h], dl ; 26 88 54 20 13013 13036 mov word [es:si+024h], 00800h ; 26 c7 44 24 00 08 13014 mov es, [bp-01 2h] ; 8e 46 ee13015 mov bx, word [bp-0 22h] ; 8b 5e de13037 mov es, [bp-01eh] ; 8e 46 e2 13038 mov bx, word [bp-012h] ; 8b 5e ee 13016 13039 mov al, byte [es:bx+001afh] ; 26 8a 87 af 01 13017 mov ah, byte [bp-00 ah] ; 8a 66 f613040 mov ah, byte [bp-008h] ; 8a 66 f8 13018 13041 add ah, 00ch ; 80 c4 0c 13019 13042 movzx bx, al ; 0f b6 d8 … … 13023 13046 db 0feh, 0c0h 13024 13047 ; inc al ; fe c0 13025 mov es, [bp-01 2h] ; 8e 46 ee13026 mov bx, word [bp-0 22h] ; 8b 5e de13048 mov es, [bp-01eh] ; 8e 46 e2 13049 mov bx, word [bp-012h] ; 8b 5e ee 13027 13050 mov byte [es:bx+001afh], al ; 26 88 87 af 01 13028 inc byte [bp-00 ah] ; fe 46 f613029 mov al, byte [bp-00 ah] ; 8a 46 f613030 mov es, [bp-01 2h] ; 8e 46 ee13031 mov bx, word [bp-0 22h] ; 8b 5e de13051 inc byte [bp-008h] ; fe 46 f8 13052 mov al, byte [bp-008h] ; 8a 46 f8 13053 mov es, [bp-01eh] ; 8e 46 e2 13054 mov bx, word [bp-012h] ; 8b 5e ee 13032 13055 mov byte [es:bx+001edh], al ; 26 88 87 ed 01 13033 13056 lea sp, [bp-006h] ; 8d 66 fa … … 13037 13060 pop bp ; 5d 13038 13061 retn ; c3 13039 ahci_mem_alloc_: ; 0xf8c 36LB 0x4313062 ahci_mem_alloc_: ; 0xf8c6c LB 0x43 13040 13063 push bp ; 55 13041 13064 mov bp, sp ; 89 e5 … … 13047 13070 mov dx, 00413h ; ba 13 04 13048 13071 xor ax, ax ; 31 c0 13049 call 0166ch ; e8 26 8a13072 call 0166ch ; e8 f0 89 13050 13073 test ax, ax ; 85 c0 13051 je short 08c 6fh ; 74 2513074 je short 08ca5h ; 74 25 13052 13075 dec ax ; 48 13053 13076 mov bx, ax ; 89 c3 … … 13056 13079 sal ax, 1 ; d1 e0 13057 13080 rcl dx, 1 ; d1 d2 13058 loop 08c 52h ; e2 fa13081 loop 08c88h ; e2 fa 13059 13082 mov si, ax ; 89 c6 13060 13083 mov di, dx ; 89 d7 … … 13062 13085 shr di, 1 ; d1 ef 13063 13086 rcr si, 1 ; d1 de 13064 loop 08c 5fh ; e2 fa13087 loop 08c95h ; e2 fa 13065 13088 mov dx, 00413h ; ba 13 04 13066 13089 xor ax, ax ; 31 c0 13067 call 0167ah ; e8 0d 8a13090 call 0167ah ; e8 d7 89 13068 13091 mov ax, si ; 89 f0 13069 13092 lea sp, [bp-00ah] ; 8d 66 f6 … … 13075 13098 pop bp ; 5d 13076 13099 retn ; c3 13077 ahci_hba_init_: ; 0xf8c 79LB 0x12513100 ahci_hba_init_: ; 0xf8caf LB 0x125 13078 13101 push bp ; 55 13079 13102 mov bp, sp ; 89 e5 … … 13087 13110 mov dx, strict word 0000eh ; ba 0e 00 13088 13111 mov ax, strict word 00040h ; b8 40 00 13089 call 0166ch ; e8 dd8913112 call 0166ch ; e8 a7 89 13090 13113 mov bx, 00122h ; bb 22 01 13091 13114 mov word [bp-010h], ax ; 89 46 f0 … … 13104 13127 shr eax, 010h ; 66 c1 e8 10 13105 13128 xchg dx, ax ; 92 13106 call 08c 36h ; e8 82 ff13129 call 08c6ch ; e8 82 ff 13107 13130 mov di, ax ; 89 c7 13108 13131 test ax, ax ; 85 c0 13109 je near 08d 7dh ; 0f 84 c1 0013132 je near 08db3h ; 0f 84 c1 00 13110 13133 mov es, [bp-010h] ; 8e 46 f0 13111 13134 mov word [es:bx+001eeh], di ; 26 89 bf ee 01 … … 13121 13144 mov dx, strict word 00004h ; ba 04 00 13122 13145 mov ax, si ; 89 f0 13123 call 07f0 9h ; e8 19 f213146 call 07f0fh ; e8 e9 f1 13124 13147 mov ax, strict word 00004h ; b8 04 00 13125 13148 xor cx, cx ; 31 c9 … … 13138 13161 xchg dx, ax ; 92 13139 13162 test AL, strict byte 001h ; a8 01 13140 jne short 08 cf0h ; 75 de13163 jne short 08d26h ; 75 de 13141 13164 xor ax, ax ; 31 c0 13142 13165 xor cx, cx ; 31 c9 … … 13156 13179 mov bx, strict word 0001fh ; bb 1f 00 13157 13180 xor cx, cx ; 31 c9 13158 call 07f cch ; e8 96 f213181 call 07fd2h ; e8 66 f2 13159 13182 db 0feh, 0c0h 13160 13183 ; inc al ; fe c0 13161 13184 mov byte [bp-00eh], al ; 88 46 f2 13162 13185 mov byte [bp-00ch], 000h ; c6 46 f4 00 13163 jmp short 08d 4ah ; eb 0913186 jmp short 08d80h ; eb 09 13164 13187 inc byte [bp-00ch] ; fe 46 f4 13165 13188 cmp byte [bp-00ch], 020h ; 80 7e f4 20 13166 jnc short 08d 7bh ; 73 3113189 jnc short 08db1h ; 73 31 13167 13190 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 13168 13191 mov ax, strict word 00001h ; b8 01 00 13169 13192 xor dx, dx ; 31 d2 13170 jcxz 08d 5bh ; e3 0613193 jcxz 08d91h ; e3 06 13171 13194 sal ax, 1 ; d1 e0 13172 13195 rcl dx, 1 ; d1 d2 13173 loop 08d 55h ; e2 fa13196 loop 08d8bh ; e2 fa 13174 13197 mov bx, ax ; 89 c3 13175 13198 mov cx, dx ; 89 d1 13176 13199 mov dx, strict word 0000ch ; ba 0c 00 13177 13200 mov ax, si ; 89 f0 13178 call 07f9 3h ; e8 2c f213201 call 07f99h ; e8 fc f1 13179 13202 test al, al ; 84 c0 13180 je short 08d 41h ; 74 d613203 je short 08d77h ; 74 d6 13181 13204 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 13182 13205 xor ax, ax ; 31 c0 13183 13206 mov dx, di ; 89 fa 13184 call 0886 5h ; e8 ef fa13207 call 0886bh ; e8 bf fa 13185 13208 dec byte [bp-00eh] ; fe 4e f2 13186 jne short 08d 41h ; 75 c613209 jne short 08d77h ; 75 c6 13187 13210 xor ax, ax ; 31 c0 13188 13211 lea sp, [bp-00ah] ; 8d 66 f6 … … 13194 13217 pop bp ; 5d 13195 13218 retn ; c3 13196 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 6dh, 08eh, 04bh, 08eh, 051h, 08eh, 057h, 08eh, 05dh13197 db 08eh, 0 63h, 08eh, 069h, 08eh, 06dh, 08eh13198 _ahci_init: ; 0xf8d 9eLB 0xfe13219 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0a3h, 08eh, 081h, 08eh, 087h, 08eh, 08dh, 08eh, 093h 13220 db 08eh, 099h, 08eh, 09fh, 08eh, 0a3h, 08eh 13221 _ahci_init: ; 0xf8dd4 LB 0xfe 13199 13222 push bp ; 55 13200 13223 mov bp, sp ; 89 e5 … … 13204 13227 mov ax, 00601h ; b8 01 06 13205 13228 mov dx, strict word 00001h ; ba 01 00 13206 call 092 bch ; e8 0d 0513229 call 092f2h ; e8 0d 05 13207 13230 mov dx, ax ; 89 c2 13208 13231 cmp ax, strict word 0ffffh ; 3d ff ff 13209 je near 08e 95h ; 0f 84 dd 0013232 je near 08ecbh ; 0f 84 dd 00 13210 13233 xor al, al ; 30 c0 13211 13234 shr ax, 008h ; c1 e8 08 … … 13215 13238 xor ah, ah ; 30 e4 13216 13239 mov bx, strict word 00034h ; bb 34 00 13217 call 09 2e7h ; e8 1a 0513240 call 0931dh ; e8 1a 05 13218 13241 mov cl, al ; 88 c1 13219 13242 test cl, cl ; 84 c9 13220 je short 08 df6h ; 74 2313243 je short 08e2ch ; 74 23 13221 13244 movzx bx, cl ; 0f b6 d9 13222 13245 movzx di, byte [bp-008h] ; 0f b6 7e f8 … … 13224 13247 mov dx, di ; 89 fa 13225 13248 mov ax, si ; 89 f0 13226 call 09 2e7h ; e8 02 0513249 call 0931dh ; e8 02 05 13227 13250 cmp AL, strict byte 012h ; 3c 12 13228 je short 08 df6h ; 74 0d13251 je short 08e2ch ; 74 0d 13229 13252 mov al, cl ; 88 c8 13230 13253 db 0feh, 0c0h … … 13233 13256 mov dx, di ; 89 fa 13234 13257 mov ax, si ; 89 f0 13235 jmp short 08 dcah ; eb d413258 jmp short 08e00h ; eb d4 13236 13259 test cl, cl ; 84 c9 13237 je near 08e 95h ; 0f 84 99 0013260 je near 08ecbh ; 0f 84 99 00 13238 13261 add cl, 002h ; 80 c1 02 13239 13262 movzx bx, cl ; 0f b6 d9 … … 13242 13265 mov dx, di ; 89 fa 13243 13266 mov ax, si ; 89 f0 13244 call 09 2e7h ; e8 d6 0413267 call 0931dh ; e8 d6 04 13245 13268 cmp AL, strict byte 010h ; 3c 10 13246 jne near 08e 95h ; 0f 85 7e 0013269 jne near 08ecbh ; 0f 85 7e 00 13247 13270 mov byte [bp-006h], 000h ; c6 46 fa 00 13248 13271 mov al, cl ; 88 c8 … … 13251 13274 mov dx, di ; 89 fa 13252 13275 mov ax, si ; 89 f0 13253 call 093 0bh ; e8 e2 0413276 call 09341h ; e8 e2 04 13254 13277 mov dx, ax ; 89 c2 13255 13278 and ax, strict word 0000fh ; 25 0f 00 13256 13279 sub ax, strict word 00004h ; 2d 04 00 13257 13280 cmp ax, strict word 0000bh ; 3d 0b 00 13258 jnbe short 08e 6dh ; 77 3713281 jnbe short 08ea3h ; 77 37 13259 13282 push CS ; 0e 13260 13283 pop ES ; 07 13261 13284 mov cx, strict word 00008h ; b9 08 00 13262 mov di, 08d 87h ; bf 878d13285 mov di, 08dbdh ; bf bd 8d 13263 13286 repne scasb ; f2 ae 13264 13287 sal cx, 1 ; d1 e1 13265 13288 mov di, cx ; 89 cf 13266 mov ax, word [cs:di-072 72h] ; 2e 8b 85 8e8d13289 mov ax, word [cs:di-0723ch] ; 2e 8b 85 c4 8d 13267 13290 jmp ax ; ff e0 13268 13291 mov byte [bp-006h], 010h ; c6 46 fa 10 13269 jmp short 08e 6dh ; eb 1c13292 jmp short 08ea3h ; eb 1c 13270 13293 mov byte [bp-006h], 014h ; c6 46 fa 14 13271 jmp short 08e 6dh ; eb 1613294 jmp short 08ea3h ; eb 16 13272 13295 mov byte [bp-006h], 018h ; c6 46 fa 18 13273 jmp short 08e 6dh ; eb 1013296 jmp short 08ea3h ; eb 10 13274 13297 mov byte [bp-006h], 01ch ; c6 46 fa 1c 13275 jmp short 08e 6dh ; eb 0a13298 jmp short 08ea3h ; eb 0a 13276 13299 mov byte [bp-006h], 020h ; c6 46 fa 20 13277 jmp short 08e 6dh ; eb 0413300 jmp short 08ea3h ; eb 04 13278 13301 mov byte [bp-006h], 024h ; c6 46 fa 24 13279 13302 mov si, dx ; 89 d6 … … 13282 13305 mov al, byte [bp-006h] ; 8a 46 fa 13283 13306 test al, al ; 84 c0 13284 je short 08e 95h ; 74 1913307 je short 08ecbh ; 74 19 13285 13308 movzx bx, al ; 0f b6 d8 13286 13309 movzx dx, byte [bp-008h] ; 0f b6 56 f8 13287 13310 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13288 call 093 2dh ; e8 a3 0413311 call 09363h ; e8 a3 04 13289 13312 test AL, strict byte 001h ; a8 01 13290 je short 08e 95h ; 74 0713313 je short 08ecbh ; 74 07 13291 13314 and AL, strict byte 0f0h ; 24 f0 13292 13315 add ax, si ; 01 f0 13293 call 08c 79h ; e8 e4 fd13316 call 08cafh ; e8 e4 fd 13294 13317 lea sp, [bp-004h] ; 8d 66 fc 13295 13318 pop di ; 5f … … 13297 13320 pop bp ; 5d 13298 13321 retn ; c3 13299 apm_out_str_: ; 0xf8e 9cLB 0x3913322 apm_out_str_: ; 0xf8ed2 LB 0x39 13300 13323 push bp ; 55 13301 13324 mov bp, sp ; 89 e5 … … 13303 13326 mov bx, ax ; 89 c3 13304 13327 cmp byte [bx], 000h ; 80 3f 00 13305 je short 08e b1h ; 74 0a13328 je short 08ee7h ; 74 0a 13306 13329 mov al, byte [bx] ; 8a 07 13307 13330 out DX, AL ; ee … … 13310 13333 db 00ah, 0c0h 13311 13334 ; or al, al ; 0a c0 13312 jne short 08e a9h ; 75 f813335 jne short 08edfh ; 75 f8 13313 13336 lea sp, [bp-002h] ; 8d 66 fe 13314 13337 pop bx ; 5b 13315 13338 pop bp ; 5d 13316 13339 retn ; c3 13317 clc ; f8 13318 mov es, sp ; 8e c4 13319 db 08fh, 00ah 13320 ; pop word [bp+si] ; 8f 0a 13321 db 08fh, 025h 13322 ; pop word [di] ; 8f 25 13323 db 08fh, 0c4h 13324 ; pop sp ; 8f c4 13325 db 08fh, 050h, 08fh 13326 ; pop word [bx+si-071h] ; 8f 50 8f 13327 les cx, [bx-070abh] ; c4 8f 55 8f 13328 cwd ; 99 13329 db 08fh, 099h, 08fh, 099h 13330 ; pop word [bx+di-06671h] ; 8f 99 8f 99 13331 db 08fh, 094h, 08fh, 099h 13332 ; pop word [si-06671h] ; 8f 94 8f 99 13333 db 08fh, 099h, 08fh, 08dh 13334 ; pop word [bx+di-07271h] ; 8f 99 8f 8d 13340 db 02eh, 08fh, 0fah 13341 ; cs pop dx ; 2e 8f fa 13342 pop word [bx+si-071h] ; 8f 40 8f 13343 pop bx ; 5b 13344 db 08fh, 0fah 13345 ; pop dx ; 8f fa 13346 pop word [bp-00571h] ; 8f 86 8f fa 13347 db 08fh, 08bh, 08fh, 0cfh 13348 ; pop word [bp+di-03071h] ; 8f 8b 8f cf 13349 db 08fh, 0cfh 13350 ; pop di ; 8f cf 13351 db 08fh, 0cfh 13352 ; pop di ; 8f cf 13353 db 08fh, 0cah 13354 ; pop dx ; 8f ca 13355 db 08fh, 0cfh 13356 ; pop di ; 8f cf 13357 db 08fh, 0cfh 13358 ; pop di ; 8f cf 13359 db 08fh, 0c3h 13360 ; pop bx ; 8f c3 13335 13361 db 08fh 13336 _apm_function: ; 0xf8 ed5LB 0xf513362 _apm_function: ; 0xf8f0b LB 0xf5 13337 13363 push bp ; 55 13338 13364 mov bp, sp ; 89 e5 … … 13342 13368 xor ah, ah ; 30 e4 13343 13369 cmp ax, strict word 0000eh ; 3d 0e 00 13344 jnbe near 08f 99h ; 0f 87 b0 0013370 jnbe near 08fcfh ; 0f 87 b0 00 13345 13371 mov bx, ax ; 89 c3 13346 13372 add bx, ax ; 01 c3 13347 13373 mov dx, word [bp+018h] ; 8b 56 18 13348 13374 or dl, 001h ; 80 ca 01 13349 jmp word [cs:bx-071 49h] ; 2e ff a7 b78e13375 jmp word [cs:bx-07113h] ; 2e ff a7 ed 8e 13350 13376 mov word [bp+012h], 00102h ; c7 46 12 02 01 13351 13377 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 13352 13378 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 13353 jmp near 08f c4h ; e9 ba 0013379 jmp near 08ffah ; e9 ba 00 13354 13380 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 13355 mov word [bp+00ch], 095 24h ; c7 46 0c 24 9513381 mov word [bp+00ch], 09554h ; c7 46 0c 54 95 13356 13382 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 13357 13383 mov ax, strict word 0fff0h ; b8 f0 ff 13358 13384 mov word [bp+006h], ax ; 89 46 06 13359 13385 mov word [bp+004h], ax ; 89 46 04 13360 jmp near 08f c4h ; e9 9f 0013386 jmp near 08ffah ; e9 9f 00 13361 13387 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 13362 13388 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 13371 13397 mov si, ax ; 89 c6 13372 13398 sal esi, 010h ; 66 c1 e6 10 13373 jmp near 08f c4h ; e9 74 0013399 jmp near 08ffah ; e9 74 00 13374 13400 sti ; fb 13375 13401 hlt ; f4 13376 jmp near 08f c4h ; e9 6f 0013402 jmp near 08ffah ; e9 6f 00 13377 13403 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 13378 je short 08f 7ah ; 74 1f13404 je short 08fb0h ; 74 1f 13379 13405 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 13380 je short 08f 72h ; 74 1113406 je short 08fa8h ; 74 11 13381 13407 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 13382 jne short 08f 82h ; 75 1b13408 jne short 08fb8h ; 75 1b 13383 13409 mov dx, 08900h ; ba 00 89 13384 mov ax, 00 d12h ; b8 12 0d13385 call 08e 9ch ; e8 2c ff13386 jmp short 08f c4h ; eb 5213410 mov ax, 00cfah ; b8 fa 0c 13411 call 08ed2h ; e8 2c ff 13412 jmp short 08ffah ; eb 52 13387 13413 mov dx, 08900h ; ba 00 89 13388 mov ax, 00d 1ah ; b8 1a0d13389 jmp short 08f 6dh ; eb f313414 mov ax, 00d02h ; b8 02 0d 13415 jmp short 08fa3h ; eb f3 13390 13416 mov dx, 08900h ; ba 00 89 13391 mov ax, 00d 22h ; b8 220d13392 jmp short 08f 6dh ; eb eb13417 mov ax, 00d0ah ; b8 0a 0d 13418 jmp short 08fa3h ; eb eb 13393 13419 or ah, 00ah ; 80 cc 0a 13394 13420 mov word [bp+012h], ax ; 89 46 12 13395 13421 mov word [bp+018h], dx ; 89 56 18 13396 jmp short 08f c4h ; eb 3713422 jmp short 08ffah ; eb 37 13397 13423 mov word [bp+012h], 00102h ; c7 46 12 02 01 13398 jmp short 08f c4h ; eb 3013424 jmp short 08ffah ; eb 30 13399 13425 or ah, 080h ; 80 cc 80 13400 jmp short 08f 85h ; eb ec13401 mov bx, 00d a2h ; bb a20d13426 jmp short 08fbbh ; eb ec 13427 mov bx, 00d8ah ; bb 8a 0d 13402 13428 mov cx, ds ; 8c d9 13403 13429 mov ax, strict word 00004h ; b8 04 00 13404 call 01931h ; e8 8d8913430 call 01931h ; e8 57 89 13405 13431 push word [bp+00ch] ; ff 76 0c 13406 13432 push word [bp+012h] ; ff 76 12 13407 push 00d 2bh ; 68 2b0d13433 push 00d13h ; 68 13 0d 13408 13434 push strict byte 00004h ; 6a 04 13409 call 01972h ; e8 c08913435 call 01972h ; e8 8a 89 13410 13436 add sp, strict byte 00008h ; 83 c4 08 13411 13437 mov ax, word [bp+012h] ; 8b 46 12 … … 13418 13444 pop bp ; 5d 13419 13445 retn ; c3 13420 pci16_select_reg_: ; 0xf 8fcaLB 0x2413446 pci16_select_reg_: ; 0xf9000 LB 0x24 13421 13447 push bp ; 55 13422 13448 mov bp, sp ; 89 e5 … … 13435 13461 pop bp ; 5d 13436 13462 retn ; c3 13437 pci16_find_device_: ; 0xf 8feeLB 0xf713463 pci16_find_device_: ; 0xf9024 LB 0xf7 13438 13464 push bp ; 55 13439 13465 mov bp, sp ; 89 e5 … … 13449 13475 mov byte [bp-008h], 000h ; c6 46 f8 00 13450 13476 test bl, 007h ; f6 c3 07 13451 jne short 090 36h ; 75 2d13477 jne short 0906ch ; 75 2d 13452 13478 mov dx, strict word 0000eh ; ba 0e 00 13453 13479 mov ax, bx ; 89 d8 13454 call 0 8fcah ; e8 b9 ff13480 call 09000h ; e8 b9 ff 13455 13481 mov dx, 00cfeh ; ba fe 0c 13456 13482 in AL, DX ; ec … … 13459 13485 mov byte [bp-006h], al ; 88 46 fa 13460 13486 cmp AL, strict byte 0ffh ; 3c ff 13461 jne short 090 24h ; 75 0613487 jne short 0905ah ; 75 06 13462 13488 add bx, strict byte 00008h ; 83 c3 08 13463 jmp near 090 b7h ; e9 93 0013489 jmp near 090edh ; e9 93 00 13464 13490 test byte [bp-006h], 080h ; f6 46 fa 80 13465 je short 090 31h ; 74 0713491 je short 09067h ; 74 07 13466 13492 mov word [bp-00ah], strict word 00001h ; c7 46 f6 01 00 13467 jmp short 090 36h ; eb 0513493 jmp short 0906ch ; eb 05 13468 13494 mov word [bp-00ah], strict word 00008h ; c7 46 f6 08 00 13469 13495 mov al, byte [bp-006h] ; 8a 46 fa 13470 13496 and AL, strict byte 007h ; 24 07 13471 13497 cmp AL, strict byte 001h ; 3c 01 13472 jne short 090 5eh ; 75 1f13498 jne short 09094h ; 75 1f 13473 13499 mov ax, bx ; 89 d8 13474 13500 shr ax, 008h ; c1 e8 08 13475 13501 test ax, ax ; 85 c0 13476 jne short 090 5eh ; 75 1613502 jne short 09094h ; 75 16 13477 13503 mov dx, strict word 0001ah ; ba 1a 00 13478 13504 mov ax, bx ; 89 d8 13479 call 0 8fcah ; e8 7a ff13505 call 09000h ; e8 7a ff 13480 13506 mov dx, 00cfeh ; ba fe 0c 13481 13507 in AL, DX ; ec … … 13483 13509 ; sub ah, ah ; 2a e4 13484 13510 cmp al, byte [bp-008h] ; 3a 46 f8 13485 jbe short 090 5eh ; 76 0313511 jbe short 09094h ; 76 03 13486 13512 mov byte [bp-008h], al ; 88 46 f8 13487 13513 test di, di ; 85 ff 13488 je short 090 67h ; 74 0513514 je short 0909dh ; 74 05 13489 13515 mov dx, strict word 00008h ; ba 08 00 13490 jmp short 090 69h ; eb 0213516 jmp short 0909fh ; eb 02 13491 13517 xor dx, dx ; 31 d2 13492 13518 mov ax, bx ; 89 d8 13493 call 0 8fcah ; e8 5c ff13519 call 09000h ; e8 5c ff 13494 13520 mov dx, 00cfch ; ba fc 0c 13495 13521 in eax, DX ; 66 ed … … 13502 13528 mov word [bp-010h], strict word 00000h ; c7 46 f0 00 00 13503 13529 test di, di ; 85 ff 13504 je short 090 98h ; 74 0f13530 je short 090ceh ; 74 0f 13505 13531 mov cx, strict word 00008h ; b9 08 00 13506 13532 shr dx, 1 ; d1 ea 13507 13533 rcr ax, 1 ; d1 d8 13508 loop 090 8ch ; e2 fa13534 loop 090c2h ; e2 fa 13509 13535 mov word [bp-00eh], ax ; 89 46 f2 13510 13536 mov word [bp-00ch], dx ; 89 56 f4 13511 13537 mov ax, word [bp-00ch] ; 8b 46 f4 13512 13538 cmp ax, word [bp-014h] ; 3b 46 ec 13513 jne short 090 a8h ; 75 0813539 jne short 090deh ; 75 08 13514 13540 mov ax, word [bp-00eh] ; 8b 46 f2 13515 13541 cmp ax, word [bp-012h] ; 3b 46 ee 13516 je short 090 aeh ; 74 0613542 je short 090e4h ; 74 06 13517 13543 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 13518 je short 090 b4h ; 74 0613544 je short 090eah ; 74 06 13519 13545 dec si ; 4e 13520 13546 cmp si, strict byte 0ffffh ; 83 fe ff 13521 je short 090 c6h ; 74 1213547 je short 090fch ; 74 12 13522 13548 add bx, word [bp-00ah] ; 03 5e f6 13523 13549 mov dx, bx ; 89 da … … 13525 13551 movzx ax, byte [bp-008h] ; 0f b6 46 f8 13526 13552 cmp dx, ax ; 39 c2 13527 jbe near 090 04h ; 0f 86 3e ff13553 jbe near 0903ah ; 0f 86 3e ff 13528 13554 cmp si, strict byte 0ffffh ; 83 fe ff 13529 jne short 09 0cfh ; 75 0413555 jne short 09105h ; 75 04 13530 13556 mov ax, bx ; 89 d8 13531 jmp short 09 0d2h ; eb 0313557 jmp short 09108h ; eb 03 13532 13558 mov ax, strict word 0ffffh ; b8 ff ff 13533 13559 lea sp, [bp-004h] ; 8d 66 fc … … 13536 13562 pop bp ; 5d 13537 13563 retn ; c3 13538 db 0c7h, 091h, 0e1h, 091h, 0f4h, 091h 13539 ; mov word [bx+di-06e1fh], 091f4h ; c7 91 e1 91 f4 91 13540 or word [bp+si-06de4h], dx ; 09 92 1c 92 13541 das ; 2f 13564 std ; fd 13565 xchg cx, ax ; 91 13566 pop SS ; 17 13542 13567 xchg dx, ax ; 92 13543 _pci16_function: ; 0xf90e5 LB 0x1d7 13568 sub dl, byte [bp+si-06dc1h] ; 2a 92 3f 92 13569 push dx ; 52 13570 xchg dx, ax ; 92 13571 db 065h, 092h 13572 ; gs xchg dx, ax ; 65 92 13573 _pci16_function: ; 0xf911b LB 0x1d7 13544 13574 push bp ; 55 13545 13575 mov bp, sp ; 89 e5 … … 13555 13585 xor ah, ah ; 30 e4 13556 13586 cmp bx, strict byte 00003h ; 83 fb 03 13557 jc short 091 1eh ; 72 1a13558 jbe short 091 76h ; 76 7013587 jc short 09154h ; 72 1a 13588 jbe short 091ach ; 76 70 13559 13589 cmp bx, strict byte 0000eh ; 83 fb 0e 13560 je near 092 43h ; 0f 84 36 0113590 je near 09279h ; 0f 84 36 01 13561 13591 cmp bx, strict byte 00008h ; 83 fb 08 13562 jc near 092 88h ; 0f 82 74 0113592 jc near 092beh ; 0f 82 74 01 13563 13593 cmp bx, strict byte 0000dh ; 83 fb 0d 13564 jbe near 091 9bh ; 0f 86 80 0013565 jmp near 092 88h ; e9 6a 0113594 jbe near 091d1h ; 0f 86 80 00 13595 jmp near 092beh ; e9 6a 01 13566 13596 cmp bx, strict byte 00002h ; 83 fb 02 13567 je short 091 46h ; 74 2313597 je short 0917ch ; 74 23 13568 13598 cmp bx, strict byte 00001h ; 83 fb 01 13569 jne near 092 88h ; 0f 85 5e 0113599 jne near 092beh ; 0f 85 5e 01 13570 13600 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 13571 13601 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 13573 13603 mov word [bp+018h], 04350h ; c7 46 18 50 43 13574 13604 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 13575 jmp near 092 b5h ; e9 6f 0113605 jmp near 092ebh ; e9 6f 01 13576 13606 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 13577 jne short 091 52h ; 75 0613607 jne short 09188h ; 75 06 13578 13608 or ah, 083h ; 80 cc 83 13579 jmp near 092 aeh ; e9 5c 0113609 jmp near 092e4h ; e9 5c 01 13580 13610 mov bx, word [bp+008h] ; 8b 5e 08 13581 13611 mov dx, word [bp+01ch] ; 8b 56 1c 13582 13612 mov ax, word [bp+018h] ; 8b 46 18 13583 13613 xor cx, cx ; 31 c9 13584 call 0 8feeh ; e8 8e fe13614 call 09024h ; e8 8e fe 13585 13615 cmp ax, strict word 0ffffh ; 3d ff ff 13586 jne short 091 70h ; 75 0b13616 jne short 091a6h ; 75 0b 13587 13617 mov ax, word [bp+020h] ; 8b 46 20 13588 13618 xor ah, ah ; 30 e4 13589 13619 or ah, 086h ; 80 cc 86 13590 jmp near 092 aeh ; e9 3e 0113620 jmp near 092e4h ; e9 3e 01 13591 13621 mov word [bp+014h], ax ; 89 46 14 13592 jmp near 092 b5h ; e9 3f 0113622 jmp near 092ebh ; e9 3f 01 13593 13623 mov bx, word [bp+008h] ; 8b 5e 08 13594 13624 mov ax, word [bp+01ch] ; 8b 46 1c 13595 13625 mov dx, word [bp+01eh] ; 8b 56 1e 13596 13626 mov cx, strict word 00001h ; b9 01 00 13597 call 0 8feeh ; e8 69 fe13627 call 09024h ; e8 69 fe 13598 13628 cmp ax, strict word 0ffffh ; 3d ff ff 13599 jne short 091 95h ; 75 0b13629 jne short 091cbh ; 75 0b 13600 13630 mov ax, word [bp+020h] ; 8b 46 20 13601 13631 xor ah, ah ; 30 e4 13602 13632 or ah, 086h ; 80 cc 86 13603 jmp near 092 aeh ; e9 19 0113633 jmp near 092e4h ; e9 19 01 13604 13634 mov word [bp+014h], ax ; 89 46 14 13605 jmp near 092 b5h ; e9 1a 0113635 jmp near 092ebh ; e9 1a 01 13606 13636 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 13607 jc short 091 a8h ; 72 0613637 jc short 091deh ; 72 06 13608 13638 or ah, 087h ; 80 cc 87 13609 jmp near 092 aeh ; e9 06 0113639 jmp near 092e4h ; e9 06 01 13610 13640 mov dx, word [bp+004h] ; 8b 56 04 13611 13641 mov ax, word [bp+014h] ; 8b 46 14 13612 call 0 8fcah ; e8 19 fe13642 call 09000h ; e8 19 fe 13613 13643 mov bx, word [bp+020h] ; 8b 5e 20 13614 13644 xor bh, bh ; 30 ff 13615 13645 sub bx, strict byte 00008h ; 83 eb 08 13616 13646 cmp bx, strict byte 00005h ; 83 fb 05 13617 jnbe near 092 b5h ; 0f 87 f5 0013647 jnbe near 092ebh ; 0f 87 f5 00 13618 13648 add bx, bx ; 01 db 13619 jmp word [cs:bx-06 f27h] ; 2e ff a7 d9 9013649 jmp word [cs:bx-06ef1h] ; 2e ff a7 0f 91 13620 13650 mov bx, word [bp+01ch] ; 8b 5e 1c 13621 13651 xor bl, bl ; 30 db … … 13628 13658 or bx, ax ; 09 c3 13629 13659 mov word [bp+01ch], bx ; 89 5e 1c 13630 jmp near 092 b5h ; e9 d4 0013660 jmp near 092ebh ; e9 d4 00 13631 13661 mov dx, word [bp+004h] ; 8b 56 04 13632 13662 xor dh, dh ; 30 f6 … … 13635 13665 in ax, DX ; ed 13636 13666 mov word [bp+01ch], ax ; 89 46 1c 13637 jmp near 092 b5h ; e9 c1 0013667 jmp near 092ebh ; e9 c1 00 13638 13668 mov dx, 00cfch ; ba fc 0c 13639 13669 in eax, DX ; 66 ed … … 13644 13674 mov word [bp+01ch], ax ; 89 46 1c 13645 13675 mov word [bp+01eh], dx ; 89 56 1e 13646 jmp near 092 b5h ; e9 ac 0013676 jmp near 092ebh ; e9 ac 00 13647 13677 mov ax, word [bp+01ch] ; 8b 46 1c 13648 13678 mov dx, word [bp+004h] ; 8b 56 04 … … 13651 13681 add dx, 00cfch ; 81 c2 fc 0c 13652 13682 out DX, AL ; ee 13653 jmp near 092 b5h ; e9 99 0013683 jmp near 092ebh ; e9 99 00 13654 13684 mov ax, word [bp+01ch] ; 8b 46 1c 13655 13685 mov dx, word [bp+004h] ; 8b 56 04 … … 13658 13688 add dx, 00cfch ; 81 c2 fc 0c 13659 13689 out DX, ax ; ef 13660 jmp near 092 b5h ; e9 86 0013690 jmp near 092ebh ; e9 86 00 13661 13691 mov ax, word [bp+01ch] ; 8b 46 1c 13662 13692 mov cx, word [bp+01eh] ; 8b 4e 1e … … 13667 13697 ; mov ax, cx ; 8b c1 13668 13698 out DX, eax ; 66 ef 13669 jmp short 092 b5h ; eb 7213699 jmp short 092ebh ; eb 72 13670 13700 mov bx, word [bp+004h] ; 8b 5e 04 13671 13701 mov es, [bp+026h] ; 8e 46 26 … … 13674 13704 mov cx, word [0f4a0h] ; 8b 0e a0 f4 13675 13705 cmp cx, word [es:bx] ; 26 3b 0f 13676 jbe short 092 69h ; 76 1113706 jbe short 0929fh ; 76 11 13677 13707 mov ax, word [bp+020h] ; 8b 46 20 13678 13708 xor ah, ah ; 30 e4 … … 13680 13710 mov word [bp+020h], ax ; 89 46 20 13681 13711 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 13682 jmp short 092 7dh ; eb 1413712 jmp short 092b3h ; eb 14 13683 13713 les di, [es:bx+002h] ; 26 c4 7f 02 13684 13714 mov si, 0f2c0h ; be c0 f2 … … 13692 13722 les bx, [bp-008h] ; c4 5e f8 13693 13723 mov word [es:bx], ax ; 26 89 07 13694 jmp short 092 b5h ; eb 2d13695 mov bx, 00d a2h ; bb a20d13724 jmp short 092ebh ; eb 2d 13725 mov bx, 00d8ah ; bb 8a 0d 13696 13726 mov cx, ds ; 8c d9 13697 13727 mov ax, strict word 00004h ; b8 04 00 13698 call 01931h ; e8 9e8613728 call 01931h ; e8 68 86 13699 13729 mov ax, word [bp+014h] ; 8b 46 14 13700 13730 push ax ; 50 13701 13731 mov ax, word [bp+020h] ; 8b 46 20 13702 13732 push ax ; 50 13703 push 00d 5eh ; 68 5e0d13733 push 00d46h ; 68 46 0d 13704 13734 push strict byte 00004h ; 6a 04 13705 call 01972h ; e8 cf8613735 call 01972h ; e8 99 86 13706 13736 add sp, strict byte 00008h ; 83 c4 08 13707 13737 mov ax, word [bp+020h] ; 8b 46 20 … … 13715 13745 pop bp ; 5d 13716 13746 retn ; c3 13717 pci_find_classcode_: ; 0xf92 bcLB 0x2b13747 pci_find_classcode_: ; 0xf92f2 LB 0x2b 13718 13748 push bp ; 55 13719 13749 mov bp, sp ; 89 e5 … … 13730 13760 int 01ah ; cd 1a 13731 13761 cmp ah, 000h ; 80 fc 00 13732 je near 09 2ddh ; 0f 84 03 0013762 je near 09313h ; 0f 84 03 00 13733 13763 mov bx, strict word 0ffffh ; bb ff ff 13734 13764 mov ax, bx ; 89 d8 … … 13739 13769 pop bp ; 5d 13740 13770 retn ; c3 13741 pci_read_config_byte_: ; 0xf9 2e7LB 0x2413771 pci_read_config_byte_: ; 0xf931d LB 0x24 13742 13772 push bp ; 55 13743 13773 mov bp, sp ; 89 e5 … … 13758 13788 pop bp ; 5d 13759 13789 retn ; c3 13760 pci_read_config_word_: ; 0xf93 0bLB 0x2213790 pci_read_config_word_: ; 0xf9341 LB 0x22 13761 13791 push bp ; 55 13762 13792 mov bp, sp ; 89 e5 … … 13777 13807 pop bp ; 5d 13778 13808 retn ; c3 13779 pci_read_config_dword_: ; 0xf93 2dLB 0x2713809 pci_read_config_dword_: ; 0xf9363 LB 0x27 13780 13810 push bp ; 55 13781 13811 mov bp, sp ; 89 e5 … … 13798 13828 pop bp ; 5d 13799 13829 retn ; c3 13800 vds_is_present_: ; 0xf93 54LB 0x1d13830 vds_is_present_: ; 0xf938a LB 0x1d 13801 13831 push bx ; 53 13802 13832 push bp ; 55 … … 13806 13836 mov es, ax ; 8e c0 13807 13837 test byte [es:bx], 020h ; 26 f6 07 20 13808 je short 093 6ch ; 74 0613838 je short 093a2h ; 74 06 13809 13839 mov ax, strict word 00001h ; b8 01 00 13810 13840 pop bp ; 5d … … 13815 13845 pop bx ; 5b 13816 13846 retn ; c3 13817 vds_real_to_lin_: ; 0xf93 71LB 0x1e13847 vds_real_to_lin_: ; 0xf93a7 LB 0x1e 13818 13848 push bx ; 53 13819 13849 push cx ; 51 … … 13826 13856 sal ax, 1 ; d1 e0 13827 13857 rcl dx, 1 ; d1 d2 13828 loop 093 7fh ; e2 fa13858 loop 093b5h ; e2 fa 13829 13859 xor cx, cx ; 31 c9 13830 13860 add ax, bx ; 01 d8 … … 13834 13864 pop bx ; 5b 13835 13865 retn ; c3 13836 vds_build_sg_list_: ; 0xf93 8fLB 0x7913866 vds_build_sg_list_: ; 0xf93c5 LB 0x79 13837 13867 push bp ; 55 13838 13868 mov bp, sp ; 89 e5 … … 13848 13878 mov bx, word [bp+006h] ; 8b 5e 06 13849 13879 mov word [es:di+002h], bx ; 26 89 5d 02 13850 call 093 71h ; e8 c3 ff13880 call 093a7h ; e8 c3 ff 13851 13881 mov es, si ; 8e c6 13852 13882 mov word [es:di+004h], ax ; 26 89 45 04 13853 13883 mov word [es:di+006h], dx ; 26 89 55 06 13854 13884 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 13855 call 093 54h ; e8 93 ff13885 call 0938ah ; e8 93 ff 13856 13886 test ax, ax ; 85 c0 13857 je short 09 3d8h ; 74 1313887 je short 0940eh ; 74 13 13858 13888 mov es, si ; 8e c6 13859 13889 mov ax, 08105h ; b8 05 81 13860 13890 mov dx, strict word 00000h ; ba 00 00 13861 13891 int 04bh ; cd 4b 13862 jc near 09 3d5h ; 0f 82 02 0013892 jc near 0940bh ; 0f 82 02 00 13863 13893 db 032h, 0c0h 13864 13894 ; xor al, al ; 32 c0 13865 13895 cbw ; 98 13866 jmp short 09 3ffh ; eb 2713896 jmp short 09435h ; eb 27 13867 13897 mov es, si ; 8e c6 13868 13898 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 13881 13911 pop bp ; 5d 13882 13912 retn 00004h ; c2 04 00 13883 vds_free_sg_list_: ; 0xf94 08 LB 0x3813913 vds_free_sg_list_: ; 0xf943e LB 0x32 13884 13914 push bp ; 55 13885 13915 mov bp, sp ; 89 e5 … … 13887 13917 push di ; 57 13888 13918 mov bx, ax ; 89 c3 13889 call 093 54h ; e8 42 ff13919 call 0938ah ; e8 42 ff 13890 13920 test ax, ax ; 85 c0 13891 je short 094 29h ; 74 1313921 je short 0945fh ; 74 13 13892 13922 mov di, bx ; 89 df 13893 13923 mov es, dx ; 8e c2 … … 13895 13925 mov dx, strict word 00000h ; ba 00 00 13896 13926 int 04bh ; cd 4b 13897 jc near 094 28h ; 0f 82 02 0013927 jc near 0945eh ; 0f 82 02 00 13898 13928 db 032h, 0c0h 13899 13929 ; xor al, al ; 32 c0 … … 13906 13936 pop bp ; 5d 13907 13937 retn ; c3 13908 times 0x 8db 013909 __U4D: ; 0xf94 40 LB 0x3913938 times 0x2 db 0 13939 __U4D: ; 0xf9470 LB 0x39 13910 13940 pushfw ; 9c 13911 13941 push eax ; 66 50 … … 13937 13967 popfw ; 9d 13938 13968 retn ; c3 13939 __U4M: ; 0xf94 79 LB 0x3113969 __U4M: ; 0xf94a9 LB 0x31 13940 13970 pushfw ; 9c 13941 13971 push eax ; 66 50 … … 13962 13992 popfw ; 9d 13963 13993 retn ; c3 13964 _fmemset_: ; 0xf94 aa LB 0xd13994 _fmemset_: ; 0xf94da LB 0xd 13965 13995 push di ; 57 13966 13996 mov es, dx ; 8e c2 … … 13972 14002 pop di ; 5f 13973 14003 retn ; c3 13974 _fmemcpy_: ; 0xf94 b7 LB 0x3314004 _fmemcpy_: ; 0xf94e7 LB 0x33 13975 14005 push bp ; 55 13976 14006 db 08bh, 0ech … … 13992 14022 leave ; c9 13993 14023 retn ; c3 13994 add byte [bx+si], al ; 00 0014024 add byte [bx+si], dh ; 00 30 13995 14025 xchg bp, ax ; 95 13996 add dl, byte [di-06afah] ; 02 95 06 95 13997 push ES ; 06 14026 xor dl, byte [di-06acah] ; 32 95 36 95 14027 db 036h, 095h 14028 ; ss xchg bp, ax ; 36 95 14029 db 036h, 095h 14030 ; ss xchg bp, ax ; 36 95 14031 cmp byte [di-06ac8h], dl ; 38 95 38 95 14032 cmp dl, byte [di-06ac2h] ; 3a 95 3e 95 14033 db 03eh, 095h 14034 ; ds xchg bp, ax ; 3e 95 14035 inc ax ; 40 13998 14036 xchg bp, ax ; 95 13999 push ES ; 0614037 inc bp ; 45 14000 14038 xchg bp, ax ; 95 14001 or byte [di-06af8h], dl ; 08 95 08 95 14002 or dl, byte [di-06af2h] ; 0a 95 0e 95 14003 push CS ; 0e 14039 inc di ; 47 14004 14040 xchg bp, ax ; 95 14005 adc byte [di-06aebh], dl ; 10 95 15 95 14006 pop SS ; 17 14007 xchg bp, ax ; 95 14008 apm_worker: ; 0xf94ea LB 0x3a 14041 apm_worker: ; 0xf951a LB 0x3a 14009 14042 sti ; fb 14010 14043 push ax ; 50 … … 14018 14051 pop ax ; 58 14019 14052 mov AH, strict byte 053h ; b4 53 14020 jnc short 095 20h ; 73 2514021 jmp word [cs:bp-06b 30h] ; 2e ff a6 d0 9414022 jmp short 095 1eh ; eb 1c14053 jnc short 09550h ; 73 25 14054 jmp word [cs:bp-06b00h] ; 2e ff a6 00 95 14055 jmp short 0954eh ; eb 1c 14023 14056 sti ; fb 14024 14057 hlt ; f4 14025 jmp short 095 1eh ; eb 1814026 jmp short 095 1eh ; eb 1614027 jmp short 095 20h ; eb 1614058 jmp short 0954eh ; eb 18 14059 jmp short 0954eh ; eb 16 14060 jmp short 09550h ; eb 16 14028 14061 mov AH, strict byte 080h ; b4 80 14029 jmp short 095 22h ; eb 1414030 jmp short 095 20h ; eb 1014062 jmp short 09552h ; eb 14 14063 jmp short 09550h ; eb 10 14031 14064 mov ax, 00102h ; b8 02 01 14032 jmp short 095 1eh ; eb 0914033 jmp short 095 1eh ; eb 0714065 jmp short 0954eh ; eb 09 14066 jmp short 0954eh ; eb 07 14034 14067 mov BL, strict byte 000h ; b3 00 14035 14068 mov cx, strict word 00000h ; b9 00 00 14036 jmp short 095 1eh ; eb 0014069 jmp short 0954eh ; eb 00 14037 14070 clc ; f8 14038 14071 retn ; c3 … … 14040 14073 stc ; f9 14041 14074 retn ; c3 14042 apm_pm16_entry: ; 0xf95 24 LB 0x1114075 apm_pm16_entry: ; 0xf9554 LB 0x11 14043 14076 mov AH, strict byte 002h ; b4 02 14044 14077 push DS ; 1e … … 14048 14081 add bp, strict byte 00008h ; 83 c5 08 14049 14082 mov ds, bp ; 8e dd 14050 call 09 4eah ; e8 b8 ff14083 call 0951ah ; e8 b8 ff 14051 14084 pop bp ; 5d 14052 14085 pop DS ; 1f 14053 14086 retf ; cb 14054 14087 14055 ; Padding 0x44 cb bytes at 0xf953514056 times 17 611db 014088 ; Padding 0x449b bytes at 0xf9565 14089 times 17563 db 0 14057 14090 14058 14091 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 14101 14134 add bp, strict byte 00008h ; 83 c5 08 14102 14135 push ebp ; 66 55 14103 mov bp, 095 26h ; bd 26 9514136 mov bp, 09556h ; bd 56 95 14104 14137 add byte [bx+si], al ; 00 00 14105 14138 push ebp ; 66 55 … … 14810 14843 call 01badh ; e8 8c 38 14811 14844 call 01fa7h ; e8 83 3c 14812 call 08d 9eh ; e8 77aa14813 call 07e7 5h ; e8 4b9b14845 call 08dd4h ; e8 ad aa 14846 call 07e7bh ; e8 51 9b 14814 14847 call 0ed2fh ; e8 02 0a 14815 14848 call 0e2d2h ; e8 a2 ff … … 15808 15841 popfw ; 9d 15809 15842 jmp short 0f895h ; eb 13 15810 call 08 ed5h ; e8 509615843 call 08f0bh ; e8 86 96 15811 15844 jmp short 0f87ch ; eb f5 15812 15845 int15_handler_mouse: ; 0xff887 LB 0x5 … … 15937 15970 db 018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h 15938 15971 db 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h 15939 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 0 68h, 092h, 066h15972 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 09eh, 092h, 066h 15940 15973 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 09dh, 06bh, 061h, 01fh, 007h 15941 15974 db 0cfh … … 16046 16079 cpu_reset: ; 0xffff0 LB 0x10 16047 16080 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 16048 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 43h16081 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0c9h
Note:
See TracChangeset
for help on using the changeset viewer.