Changeset 43630 in vbox for trunk/src/VBox/Devices/PC/BIOS
- Timestamp:
- Oct 12, 2012 11:12:27 AM (12 years ago)
- Location:
- trunk/src/VBox/Devices/PC/BIOS
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm
r43316 r43630 794 794 section _DATA progbits vstart=0x0 align=1 ; size=0x30 class=DATA group=DGROUP 795 795 _dskacc: ; 0xf0000 LB 0x30 796 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0 59h, 027h, 0d0h, 027h, 000h, 000h, 000h, 000h797 db 0 38h, 073h, 0dah, 073h, 055h, 07eh, 0e6h, 07eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h796 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 039h, 027h, 0b0h, 027h, 000h, 000h, 000h, 000h 797 db 0c4h, 074h, 075h, 075h, 0c4h, 081h, 055h, 082h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h 798 798 db 05fh, 033h, 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 799 799 800 section CONST progbits vstart=0x30 align=1 ; size=0xc 94class=DATA group=DGROUP800 section CONST progbits vstart=0x30 align=1 ; size=0xcaa class=DATA group=DGROUP 801 801 db 'NMI Handler called', 00ah, 000h 802 802 db 'INT18: BOOT FAILURE', 00ah, 000h … … 895 895 db 'scsi_read_sectors: device_id out of range %d', 00ah, 000h 896 896 db 'scsi_write_sectors: device_id out of range %d', 00ah, 000h 897 db 'scsi_enumerate_attached_devices: SCSI_INQUIRY failed', 00ah, 000h 898 db 'scsi_enumerate_attached_devices: SCSI_READ_CAPACITY failed', 00ah, 000h 897 db 'scsi_cmd_packet', 000h 898 db '%s: DATA_OUT not supported yet', 00ah, 000h 899 db 'scsi_enumerate_attached_devices', 000h 900 db '%s: SCSI_INQUIRY failed', 00ah, 000h 901 db '%s: SCSI_READ_CAPACITY failed', 00ah, 000h 899 902 db 'Disk %d has an unsupported sector size of %u', 00ah, 000h, 000h 900 903 db 'ahci_read_sectors', 000h … … 910 913 db 'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h 911 914 912 section CONST2 progbits vstart=0xc c4align=1 ; size=0x3fa class=DATA group=DGROUP913 _bios_cvs_version_string: ; 0xf0c c4LB 0x12914 db 'VirtualBox 4.2. 0', 000h, 000h915 _bios_prefix_string: ; 0xf0c d6LB 0x8915 section CONST2 progbits vstart=0xcda align=1 ; size=0x3fa class=DATA group=DGROUP 916 _bios_cvs_version_string: ; 0xf0cda LB 0x12 917 db 'VirtualBox 4.2.51', 000h 918 _bios_prefix_string: ; 0xf0cec LB 0x8 916 919 db 'BIOS: ', 000h, 000h 917 _isotag: ; 0xf0c deLB 0x6920 _isotag: ; 0xf0cf4 LB 0x6 918 921 db 'CD001', 000h 919 _eltorito: ; 0xf0c e4LB 0x18922 _eltorito: ; 0xf0cfa LB 0x18 920 923 db 'EL TORITO SPECIFICATION', 000h 921 _drivetypes: ; 0xf0 cfcLB 0x28924 _drivetypes: ; 0xf0d12 LB 0x28 922 925 db 046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h 923 926 db 069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h 924 927 db 04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h 925 _scan_to_scanascii: ; 0xf0d 24LB 0x37a928 _scan_to_scanascii: ; 0xf0d3a LB 0x37a 926 929 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h 927 930 db 000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h … … 980 983 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h 981 984 db 000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h 982 _panic_msg_keyb_buffer_full: ; 0xf10 9eLB 0x20985 _panic_msg_keyb_buffer_full: ; 0xf10b4 LB 0x20 983 986 db '%s: keyboard input buffer full', 00ah, 000h 984 987 985 ; Padding 0x5 42 bytes at 0xf10be986 times 13 46db 0988 ; Padding 0x52c bytes at 0xf10d4 989 times 1324 db 0 987 990 988 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7 735 class=CODE group=AUTO991 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7ab5 class=CODE group=AUTO 989 992 read_byte_: ; 0xf1600 LB 0xe 990 993 push bx ; 53 … … 1148 1151 push bp ; 55 1149 1152 mov bp, sp ; 89 e5 1150 mov bx, 00c d6h ; bb d60c1153 mov bx, 00cech ; bb ec 0c 1151 1154 mov cx, ds ; 8c d9 1152 1155 mov ax, strict word 00004h ; b8 04 00 1153 1156 call 018aeh ; e8 99 01 1154 push 00c c4h ; 68 c40c1157 push 00cdah ; 68 da 0c 1155 1158 push strict word 00059h ; 68 59 00 1156 1159 push strict byte 00004h ; 6a 04 … … 1177 1180 pop bp ; 5d 1178 1181 retn ; c3 1179 call 0 6feeh ; e8 9f 581182 call 07130h ; e8 e1 59 1180 1183 pop bp ; 5d 1181 1184 retn ; c3 … … 1310 1313 mov bx, strict word 0000ah ; bb 0a 00 1311 1314 xor cx, cx ; 31 c9 1312 call 08 c40h ; e8 e7 731315 call 08fc0h ; e8 67 77 1313 1316 mov word [bp-004h], ax ; 89 46 fc 1314 1317 mov cx, dx ; 89 d1 … … 1787 1790 pop bx ; 5b 1788 1791 retn ; c3 1789 ata_cmd_data_in_: ; 0xf1cc0 LB 0x2 631792 ata_cmd_data_in_: ; 0xf1cc0 LB 0x253 1790 1793 push si ; 56 1791 1794 push di ; 57 … … 2021 2024 pop si ; 5e 2022 2025 retn ; c3 2023 dec bp ; 4d 2024 and word [di-076dfh], ax ; 21 85 21 89 2025 and word [di-06edfh], cx ; 21 8d 21 91 2026 and word [di-066dfh], dx ; 21 95 21 99 2027 db 021h 2028 popfw ; 9d 2029 db 021h 2030 _ata_detect: ; 0xf1f23 LB 0x621 2026 _ata_detect: ; 0xf1f13 LB 0x611 2031 2027 push si ; 56 2032 2028 push di ; 57 2033 enter 0025 ah, 000h ; c8 5a02 002029 enter 0025ch, 000h ; c8 5c 02 00 2034 2030 mov dx, strict word 0000eh ; ba 0e 00 2035 2031 mov ax, strict word 00040h ; b8 40 00 2036 call 0161ch ; e8 ea f6 2032 call 0161ch ; e8 fa f6 2033 mov word [bp-020h], ax ; 89 46 e0 2034 mov di, 00122h ; bf 22 01 2035 mov es, ax ; 8e c0 2036 mov word [bp-024h], di ; 89 7e dc 2037 2037 mov word [bp-022h], ax ; 89 46 de 2038 mov bx, 00122h ; bb 22 01 2039 mov es, ax ; 8e c0 2040 mov si, bx ; 89 de 2041 mov word [bp-026h], ax ; 89 46 da 2042 mov byte [es:bx+001c0h], 000h ; 26 c6 87 c0 01 00 2043 db 066h, 026h, 0c7h, 087h, 0c2h, 001h, 0f0h, 001h, 0f0h, 003h 2044 ; mov dword [es:bx+001c2h], strict dword 003f001f0h ; 66 26 c7 87 c2 01 f0 01 f0 03 2045 mov byte [es:bx+001c1h], 00eh ; 26 c6 87 c1 01 0e 2046 mov byte [es:bx+001c6h], 000h ; 26 c6 87 c6 01 00 2047 db 066h, 026h, 0c7h, 087h, 0c8h, 001h, 070h, 001h, 070h, 003h 2048 ; mov dword [es:bx+001c8h], strict dword 003700170h ; 66 26 c7 87 c8 01 70 01 70 03 2049 mov byte [es:bx+001c7h], 00fh ; 26 c6 87 c7 01 0f 2038 mov byte [es:di+001c0h], 000h ; 26 c6 85 c0 01 00 2039 db 066h, 026h, 0c7h, 085h, 0c2h, 001h, 0f0h, 001h, 0f0h, 003h 2040 ; mov dword [es:di+001c2h], strict dword 003f001f0h ; 66 26 c7 85 c2 01 f0 01 f0 03 2041 mov byte [es:di+001c1h], 00eh ; 26 c6 85 c1 01 0e 2042 mov byte [es:di+001c6h], 000h ; 26 c6 85 c6 01 00 2043 db 066h, 026h, 0c7h, 085h, 0c8h, 001h, 070h, 001h, 070h, 003h 2044 ; mov dword [es:di+001c8h], strict dword 003700170h ; 66 26 c7 85 c8 01 70 01 70 03 2045 mov byte [es:di+001c7h], 00fh ; 26 c6 85 c7 01 0f 2050 2046 xor al, al ; 30 c0 2051 2047 mov byte [bp-006h], al ; 88 46 fa 2052 mov byte [bp-0 14h], al ; 88 46 ec2053 mov byte [bp-0 16h], al ; 88 46 ea2054 jmp near 024 cfh ; e9 56052048 mov byte [bp-002h], al ; 88 46 fe 2049 mov byte [bp-00ah], al ; 88 46 f6 2050 jmp near 024b2h ; e9 48 05 2055 2051 mov ax, 000a0h ; b8 a0 00 2056 lea dx, [ bx+006h] ; 8d 57062057 out DX, AL ; ee 2058 lea di, [ bx+002h] ; 8d 7f022052 lea dx, [si+006h] ; 8d 54 06 2053 out DX, AL ; ee 2054 lea di, [si+002h] ; 8d 7c 02 2059 2055 mov AL, strict byte 055h ; b0 55 2060 2056 mov dx, di ; 89 fa 2061 2057 out DX, AL ; ee 2062 lea cx, [bx+003h] ; 8d 4f032058 lea bx, [si+003h] ; 8d 5c 03 2063 2059 mov AL, strict byte 0aah ; b0 aa 2064 mov dx, cx ; 89 ca2060 mov dx, bx ; 89 da 2065 2061 out DX, AL ; ee 2066 2062 mov dx, di ; 89 fa 2067 2063 out DX, AL ; ee 2068 2064 mov AL, strict byte 055h ; b0 55 2069 mov dx, cx ; 89 ca2065 mov dx, bx ; 89 da 2070 2066 out DX, AL ; ee 2071 2067 mov dx, di ; 89 fa 2072 2068 out DX, AL ; ee 2073 2069 mov AL, strict byte 0aah ; b0 aa 2074 mov dx, cx ; 89 ca2070 mov dx, bx ; 89 da 2075 2071 out DX, AL ; ee 2076 2072 mov dx, di ; 89 fa … … 2078 2074 db 02ah, 0e4h 2079 2075 ; sub ah, ah ; 2a e4 2080 mov word [bp-028h], ax ; 89 46 d82081 mov dx, cx ; 89 ca2076 mov cx, ax ; 89 c1 2077 mov dx, bx ; 89 da 2082 2078 in AL, DX ; ec 2083 2079 db 02ah, 0e4h 2084 2080 ; sub ah, ah ; 2a e4 2085 cmp byte [bp-028h], 055h ; 80 7e d8552086 jne near 020 84h ; 0f 85 cf002081 cmp cl, 055h ; 80 f9 55 2082 jne near 02064h ; 0f 85 c0 00 2087 2083 cmp AL, strict byte 0aah ; 3c aa 2088 jne near 020 84h ; 0f 85 c9002089 movzx ax, byte [bp-0 16h] ; 0f b6 46 ea2084 jne near 02064h ; 0f 85 ba 00 2085 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 2090 2086 imul ax, ax, strict byte 00018h ; 6b c0 18 2091 mov es, [bp-026h] ; 8e 46 da 2092 mov di, si ; 89 f7 2093 add di, ax ; 01 c7 2094 mov byte [es:di+01eh], 001h ; 26 c6 45 1e 01 2095 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2096 call 01be6h ; e8 11 fc 2087 les bx, [bp-024h] ; c4 5e dc 2088 add bx, ax ; 01 c3 2089 mov byte [es:bx+01eh], 001h ; 26 c6 47 1e 01 2090 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 2091 call 01be6h ; e8 24 fc 2097 2092 cmp byte [bp-004h], 000h ; 80 7e fc 00 2098 je short 01f e0h ; 74 052093 je short 01fcdh ; 74 05 2099 2094 mov ax, 000b0h ; b8 b0 00 2100 jmp short 01f e3h ; eb 032095 jmp short 01fd0h ; eb 03 2101 2096 mov ax, 000a0h ; b8 a0 00 2102 lea dx, [bx+006h] ; 8d 57 06 2103 out DX, AL ; ee 2104 lea dx, [bx+002h] ; 8d 57 02 2097 lea dx, [si+006h] ; 8d 54 06 2098 out DX, AL ; ee 2099 lea dx, [si+002h] ; 8d 54 02 2100 in AL, DX ; ec 2101 db 02ah, 0e4h 2102 ; sub ah, ah ; 2a e4 2103 mov bx, ax ; 89 c3 2104 lea dx, [si+003h] ; 8d 54 03 2105 in AL, DX ; ec 2106 db 02ah, 0e4h 2107 ; sub ah, ah ; 2a e4 2108 cmp bl, 001h ; 80 fb 01 2109 jne near 02064h ; 0f 85 7b 00 2110 cmp al, bl ; 38 d8 2111 jne near 02064h ; 0f 85 75 00 2112 lea dx, [si+004h] ; 8d 54 04 2113 in AL, DX ; ec 2114 db 02ah, 0e4h 2115 ; sub ah, ah ; 2a e4 2116 mov bx, ax ; 89 c3 2117 mov bh, al ; 88 c7 2118 lea dx, [si+005h] ; 8d 54 05 2105 2119 in AL, DX ; ec 2106 2120 db 02ah, 0e4h 2107 2121 ; sub ah, ah ; 2a e4 2108 2122 mov cx, ax ; 89 c1 2109 lea dx, [bx+003h] ; 8d 57 03 2123 mov byte [bp-008h], al ; 88 46 f8 2124 lea dx, [si+007h] ; 8d 54 07 2110 2125 in AL, DX ; ec 2111 2126 db 02ah, 0e4h 2112 2127 ; sub ah, ah ; 2a e4 2113 cmp cl, 001h ; 80 f9 01 2114 jne near 02084h ; 0f 85 88 00 2115 cmp al, cl ; 38 c8 2116 jne near 02084h ; 0f 85 82 00 2117 lea dx, [bx+004h] ; 8d 57 04 2118 in AL, DX ; ec 2119 db 02ah, 0e4h 2120 ; sub ah, ah ; 2a e4 2121 mov word [bp-028h], ax ; 89 46 d8 2122 mov al, byte [bp-028h] ; 8a 46 d8 2123 mov byte [bp-00ch], al ; 88 46 f4 2124 lea dx, [bx+005h] ; 8d 57 05 2125 in AL, DX ; ec 2126 db 02ah, 0e4h 2127 ; sub ah, ah ; 2a e4 2128 mov cx, ax ; 89 c1 2129 mov byte [bp-00ah], al ; 88 46 f6 2130 lea dx, [bx+007h] ; 8d 57 07 2131 in AL, DX ; ec 2132 db 02ah, 0e4h 2133 ; sub ah, ah ; 2a e4 2134 cmp byte [bp-028h], 014h ; 80 7e d8 14 2135 jne short 02040h ; 75 18 2128 cmp bl, 014h ; 80 fb 14 2129 jne short 02027h ; 75 18 2136 2130 cmp cl, 0ebh ; 80 f9 eb 2137 jne short 02040h ; 75 13 2138 movzx bx, byte [bp-016h] ; 0f b6 5e ea 2131 jne short 02027h ; 75 13 2132 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 2133 imul ax, ax, strict byte 00018h ; 6b c0 18 2134 les bx, [bp-024h] ; c4 5e dc 2135 add bx, ax ; 01 c3 2136 mov byte [es:bx+01eh], 003h ; 26 c6 47 1e 03 2137 jmp short 02064h ; eb 3d 2138 test bh, bh ; 84 ff 2139 jne short 02049h ; 75 1e 2140 cmp byte [bp-008h], 000h ; 80 7e f8 00 2141 jne short 02049h ; 75 18 2142 test al, al ; 84 c0 2143 je short 02049h ; 74 14 2144 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 2139 2145 imul bx, bx, strict byte 00018h ; 6b db 18 2140 mov es, [bp-026h] ; 8e 46 da 2141 add bx, si ; 01 f3 2142 mov byte [es:bx+01eh], 003h ; 26 c6 47 1e 03 2143 jmp short 02084h ; eb 44 2144 cmp byte [bp-00ch], 000h ; 80 7e f4 00 2145 jne short 02065h ; 75 1f 2146 cmp byte [bp-00ah], 000h ; 80 7e f6 00 2147 jne short 02065h ; 75 19 2148 test al, al ; 84 c0 2149 je short 02065h ; 74 15 2150 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2146 mov es, [bp-022h] ; 8e 46 de 2147 add bx, word [bp-024h] ; 03 5e dc 2148 mov byte [es:bx+01eh], 002h ; 26 c6 47 1e 02 2149 jmp short 02064h ; eb 1b 2150 cmp bh, 0ffh ; 80 ff ff 2151 jne short 02064h ; 75 16 2152 cmp bh, byte [bp-008h] ; 3a 7e f8 2153 jne short 02064h ; 75 11 2154 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 2151 2155 imul ax, ax, strict byte 00018h ; 6b c0 18 2152 mov es, [bp-026h] ; 8e 46 da 2153 mov bx, si ; 89 f3 2154 add bx, ax ; 01 c3 2155 mov byte [es:bx+01eh], 002h ; 26 c6 47 1e 02 2156 jmp short 02084h ; eb 1f 2157 cmp byte [bp-00ch], 0ffh ; 80 7e f4 ff 2158 jne short 02084h ; 75 19 2159 cmp byte [bp-00ah], 0ffh ; 80 7e f6 ff 2160 jne short 02084h ; 75 13 2161 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2162 imul ax, ax, strict byte 00018h ; 6b c0 18 2163 mov es, [bp-026h] ; 8e 46 da 2164 mov bx, si ; 89 f3 2156 les bx, [bp-024h] ; c4 5e dc 2165 2157 add bx, ax ; 01 c3 2166 2158 mov byte [es:bx+01eh], 000h ; 26 c6 47 1e 00 2167 mov dx, word [bp-02 ch] ; 8b 56 d42159 mov dx, word [bp-028h] ; 8b 56 d8 2168 2160 add dx, strict byte 00006h ; 83 c2 06 2169 2161 mov AL, strict byte 008h ; b0 08 2170 2162 out DX, AL ; ee 2171 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2172 imul ax, ax, strict byte 00018h ; 6b c0 18 2173 mov es, [bp-026h] ; 8e 46 da 2174 mov bx, si ; 89 f3 2175 add bx, ax ; 01 c3 2176 mov al, byte [es:bx+01eh] ; 26 8a 47 1e 2177 mov byte [bp-002h], al ; 88 46 fe 2163 movzx si, byte [bp-00ah] ; 0f b6 76 f6 2164 imul si, si, strict byte 00018h ; 6b f6 18 2165 mov es, [bp-022h] ; 8e 46 de 2166 add si, word [bp-024h] ; 03 76 dc 2167 mov al, byte [es:si+01eh] ; 26 8a 44 1e 2168 mov byte [bp-00ch], al ; 88 46 f4 2178 2169 cmp AL, strict byte 002h ; 3c 02 2179 jne near 022a3h ; 0f 85 fb 01 2180 mov byte [es:bx+01fh], 0ffh ; 26 c6 47 1f ff 2181 mov byte [es:bx+022h], 000h ; 26 c6 47 22 00 2182 lea dx, [bp-0025ah] ; 8d 96 a6 fd 2183 mov word [es:si+004h], dx ; 26 89 54 04 2184 mov [es:si+006h], ss ; 26 8c 54 06 2185 mov al, byte [bp-016h] ; 8a 46 ea 2186 mov byte [es:si+008h], al ; 26 88 44 08 2170 jne near 0228ah ; 0f 85 03 02 2171 mov byte [es:si+01fh], 0ffh ; 26 c6 44 1f ff 2172 mov byte [es:si+022h], 000h ; 26 c6 44 22 00 2173 lea dx, [bp-0025ch] ; 8d 96 a4 fd 2174 mov bx, word [bp-024h] ; 8b 5e dc 2175 mov word [es:bx+004h], dx ; 26 89 57 04 2176 mov [es:bx+006h], ss ; 26 8c 57 06 2177 mov al, byte [bp-00ah] ; 8a 46 f6 2178 mov byte [es:bx+008h], al ; 26 88 47 08 2187 2179 mov cx, strict word 00001h ; b9 01 00 2188 2180 mov bx, 000ech ; bb ec 00 2189 mov ax, si ; 89 f02181 mov ax, word [bp-024h] ; 8b 46 dc 2190 2182 mov dx, es ; 8c c2 2191 call 01cc0h ; e8 ee fb2183 call 01cc0h ; e8 0b fc 2192 2184 test ax, ax ; 85 c0 2193 je short 020 e1h ; 74 0b2185 je short 020c4h ; 74 0b 2194 2186 push 00084h ; 68 84 00 2195 2187 push strict byte 00007h ; 6a 07 2196 call 018e9h ; e8 0bf82188 call 018e9h ; e8 28 f8 2197 2189 add sp, strict byte 00004h ; 83 c4 04 2198 test byte [bp-0025 ah], 080h ; f6 86 a6fd 802190 test byte [bp-0025ch], 080h ; f6 86 a4 fd 80 2199 2191 db 00fh, 095h, 0c0h 2200 2192 ; setne al ; 0f 95 c0 2201 2193 xor ah, ah ; 30 e4 2202 mov byte [bp-0 08h], al ; 88 46 f82203 cmp byte [bp-001f ah], 000h ; 80 be 06fe 002194 mov byte [bp-010h], al ; 88 46 f0 2195 cmp byte [bp-001fch], 000h ; 80 be 04 fe 00 2204 2196 db 00fh, 095h, 0c0h 2205 2197 ; setne al ; 0f 95 c0 2206 2198 xor ah, ah ; 30 e4 2207 mov byte [bp-00eh], al ; 88 46 f2 2208 mov word [bp-024h], 00200h ; c7 46 dc 00 02 2209 mov ax, word [bp-00258h] ; 8b 86 a8 fd 2210 mov word [bp-01eh], ax ; 89 46 e2 2211 mov ax, word [bp-00254h] ; 8b 86 ac fd 2199 mov byte [bp-012h], al ; 88 46 ee 2200 mov word [bp-01eh], 00200h ; c7 46 e2 00 02 2201 mov ax, word [bp-0025ah] ; 8b 86 a6 fd 2202 mov word [bp-016h], ax ; 89 46 ea 2203 mov ax, word [bp-00256h] ; 8b 86 aa fd 2204 mov word [bp-018h], ax ; 89 46 e8 2205 mov ax, word [bp-00250h] ; 8b 86 b0 fd 2206 mov word [bp-01ah], ax ; 89 46 e6 2207 mov ax, word [bp-001e4h] ; 8b 86 1c fe 2212 2208 mov word [bp-01ch], ax ; 89 46 e4 2213 mov ax, word [bp-0024eh] ; 8b 86 b2 fd 2214 mov word [bp-018h], ax ; 89 46 e8 2215 mov ax, word [bp-001e2h] ; 8b 86 1e fe 2216 mov word [bp-020h], ax ; 89 46 e0 2217 mov ax, word [bp-001e0h] ; 8b 86 20 fe 2218 mov word [bp-02ah], ax ; 89 46 d6 2219 cmp ax, 00fffh ; 3d ff 0f 2220 jne short 0213ch ; 75 14 2221 cmp word [bp-020h], strict byte 0ffffh ; 83 7e e0 ff 2222 jne short 0213ch ; 75 0e 2223 mov ax, word [bp-00192h] ; 8b 86 6e fe 2224 mov word [bp-020h], ax ; 89 46 e0 2225 mov ax, word [bp-00190h] ; 8b 86 70 fe 2226 mov word [bp-02ah], ax ; 89 46 d6 2227 mov al, byte [bp-016h] ; 8a 46 ea 2228 cmp AL, strict byte 007h ; 3c 07 2229 jnbe short 021a1h ; 77 5e 2230 movzx bx, al ; 0f b6 d8 2231 add bx, bx ; 01 db 2232 jmp word [cs:bx+01f13h] ; 2e ff a7 13 1f 2209 mov si, word [bp-001e2h] ; 8b b6 1e fe 2210 cmp si, 00fffh ; 81 fe ff 0f 2211 jne short 02119h ; 75 10 2212 cmp ax, strict word 0ffffh ; 3d ff ff 2213 jne short 02119h ; 75 0b 2214 mov ax, word [bp-00194h] ; 8b 86 6c fe 2215 mov word [bp-01ch], ax ; 89 46 e4 2216 mov si, word [bp-00192h] ; 8b b6 6e fe 2217 mov al, byte [bp-00ah] ; 8a 46 f6 2218 cmp AL, strict byte 001h ; 3c 01 2219 jc short 0212ch ; 72 0c 2220 jbe short 02134h ; 76 12 2221 cmp AL, strict byte 003h ; 3c 03 2222 je short 0213ch ; 74 16 2223 cmp AL, strict byte 002h ; 3c 02 2224 je short 02138h ; 74 0e 2225 jmp short 02179h ; eb 4d 2226 test al, al ; 84 c0 2227 jne short 02179h ; 75 49 2233 2228 mov BL, strict byte 01eh ; b3 1e 2229 jmp short 0213eh ; eb 0a 2230 mov BL, strict byte 026h ; b3 26 2231 jmp short 0213eh ; eb 06 2232 mov BL, strict byte 067h ; b3 67 2233 jmp short 0213eh ; eb 02 2234 mov BL, strict byte 070h ; b3 70 2234 2235 mov al, bl ; 88 d8 2235 2236 db 0feh, 0c0h 2236 2237 ; inc al ; fe c0 2237 2238 xor ah, ah ; 30 e4 2238 call 0165ch ; e8 04f52239 call 0165ch ; e8 15 f5 2239 2240 xor ah, ah ; 30 e4 2240 mov d i, ax ; 89 c72241 sal d i, 008h ; c1 e7082241 mov dx, ax ; 89 c2 2242 sal dx, 008h ; c1 e2 08 2242 2243 movzx ax, bl ; 0f b6 c3 2243 call 0165ch ; e8 f7 f42244 call 0165ch ; e8 08 f5 2244 2245 xor ah, ah ; 30 e4 2245 add di, ax ; 01 c7 2246 add ax, dx ; 01 d0 2247 mov word [bp-030h], ax ; 89 46 d0 2246 2248 mov al, bl ; 88 d8 2247 2249 add AL, strict byte 002h ; 04 02 2248 2250 xor ah, ah ; 30 e4 2249 call 0165ch ; e8 ea f4 2250 movzx dx, al ; 0f b6 d0 2251 call 0165ch ; e8 f8 f4 2252 xor ah, ah ; 30 e4 2253 mov word [bp-032h], ax ; 89 46 ce 2251 2254 mov al, bl ; 88 d8 2252 2255 add AL, strict byte 007h ; 04 07 2253 2256 xor ah, ah ; 30 e4 2254 call 0165ch ; e8 def42257 call 0165ch ; e8 ea f4 2255 2258 xor ah, ah ; 30 e4 2256 mov word [bp-01ah], ax ; 89 46 e6 2257 jmp short 021a8h ; eb 23 2258 mov BL, strict byte 026h ; b3 26 2259 jmp short 0214fh ; eb c6 2260 mov BL, strict byte 067h ; b3 67 2261 jmp short 0214fh ; eb c2 2262 mov BL, strict byte 070h ; b3 70 2263 jmp short 0214fh ; eb be 2264 mov BL, strict byte 040h ; b3 40 2265 jmp short 0214fh ; eb ba 2266 mov BL, strict byte 048h ; b3 48 2267 jmp short 0214fh ; eb b6 2268 mov BL, strict byte 050h ; b3 50 2269 jmp short 0214fh ; eb b2 2270 mov BL, strict byte 058h ; b3 58 2271 jmp short 0214fh ; eb ae 2272 xor di, di ; 31 ff 2273 xor dx, dx ; 31 d2 2274 mov word [bp-01ah], di ; 89 7e e6 2275 mov bx, 00cd6h ; bb d6 0c 2259 mov word [bp-02eh], ax ; 89 46 d2 2260 jmp short 02186h ; eb 0d 2261 mov bx, word [bp-01ch] ; 8b 5e e4 2262 mov cx, si ; 89 f1 2263 mov dx, ss ; 8c d2 2264 lea ax, [bp-032h] ; 8d 46 ce 2265 call 0533dh ; e8 b7 31 2266 mov bx, 00cech ; bb ec 0c 2276 2267 mov cx, ds ; 8c d9 2277 2268 mov ax, strict word 00004h ; b8 04 00 2278 call 018aeh ; e8 fb f6 2269 call 018aeh ; e8 1d f7 2270 mov ax, word [bp-02eh] ; 8b 46 d2 2271 push ax ; 50 2272 mov ax, word [bp-032h] ; 8b 46 ce 2273 push ax ; 50 2274 mov ax, word [bp-030h] ; 8b 46 d0 2275 push ax ; 50 2279 2276 push word [bp-01ah] ; ff 76 e6 2280 push dx ; 522281 push di ; 572282 2277 push word [bp-018h] ; ff 76 e8 2283 push dword [bp-01eh] ; 66 ff 76 e22278 push word [bp-016h] ; ff 76 ea 2284 2279 movzx ax, byte [bp-004h] ; 0f b6 46 fc 2285 2280 push ax ; 50 2286 movzx ax, byte [bp-01 2h] ; 0f b6 46 ee2281 movzx ax, byte [bp-014h] ; 0f b6 46 ec 2287 2282 push ax ; 50 2288 2283 push 000adh ; 68 ad 00 2289 2284 push strict byte 00004h ; 6a 04 2290 call 018e9h ; e8 18f72285 call 018e9h ; e8 31 f7 2291 2286 add sp, strict byte 00014h ; 83 c4 14 2292 movzx ax, byte [bp-0 16h] ; 0f b6 46 ea2287 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 2293 2288 imul ax, ax, strict byte 00018h ; 6b c0 18 2294 mov es, [bp-026h] ; 8e 46 da 2295 mov bx, si ; 89 f3 2296 add bx, ax ; 01 c3 2297 mov byte [es:bx+01fh], 0ffh ; 26 c6 47 1f ff 2298 mov al, byte [bp-008h] ; 8a 46 f8 2299 mov byte [es:bx+020h], al ; 26 88 47 20 2300 mov al, byte [bp-00eh] ; 8a 46 f2 2301 mov byte [es:bx+022h], al ; 26 88 47 22 2302 mov ax, word [bp-024h] ; 8b 46 dc 2303 mov word [es:bx+024h], ax ; 26 89 47 24 2289 les di, [bp-024h] ; c4 7e dc 2290 add di, ax ; 01 c7 2291 mov byte [es:di+01fh], 0ffh ; 26 c6 45 1f ff 2292 mov al, byte [bp-010h] ; 8a 46 f0 2293 mov byte [es:di+020h], al ; 26 88 45 20 2294 mov al, byte [bp-012h] ; 8a 46 ee 2295 mov byte [es:di+022h], al ; 26 88 45 22 2296 mov ax, word [bp-01eh] ; 8b 46 e2 2297 mov word [es:di+024h], ax ; 26 89 45 24 2298 mov ax, word [bp-018h] ; 8b 46 e8 2299 mov word [es:di+02ch], ax ; 26 89 45 2c 2300 mov ax, word [bp-016h] ; 8b 46 ea 2301 mov word [es:di+02eh], ax ; 26 89 45 2e 2302 mov ax, word [bp-01ah] ; 8b 46 e6 2303 mov word [es:di+030h], ax ; 26 89 45 30 2304 2304 mov ax, word [bp-01ch] ; 8b 46 e4 2305 mov word [es:bx+02ch], ax ; 26 89 47 2c 2306 mov ax, word [bp-01eh] ; 8b 46 e2 2307 mov word [es:bx+02eh], ax ; 26 89 47 2e 2308 mov ax, word [bp-018h] ; 8b 46 e8 2309 mov word [es:bx+030h], ax ; 26 89 47 30 2310 mov ax, word [bp-020h] ; 8b 46 e0 2311 mov word [es:bx+032h], ax ; 26 89 47 32 2312 mov ax, word [bp-02ah] ; 8b 46 d6 2313 mov word [es:bx+034h], ax ; 26 89 47 34 2314 mov word [es:bx+026h], dx ; 26 89 57 26 2315 mov word [es:bx+028h], di ; 26 89 7f 28 2316 mov ax, word [bp-01ah] ; 8b 46 e6 2317 mov word [es:bx+02ah], ax ; 26 89 47 2a 2318 mov al, byte [bp-016h] ; 8a 46 ea 2305 mov word [es:di+032h], ax ; 26 89 45 32 2306 mov word [es:di+034h], si ; 26 89 75 34 2307 lea di, [di+026h] ; 8d 7d 26 2308 push DS ; 1e 2309 push SS ; 16 2310 pop DS ; 1f 2311 lea si, [bp-032h] ; 8d 76 ce 2312 movsw ; a5 2313 movsw ; a5 2314 movsw ; a5 2315 pop DS ; 1f 2316 mov al, byte [bp-00ah] ; 8a 46 f6 2319 2317 cmp AL, strict byte 002h ; 3c 02 2320 jnc short 022 8fh ; 73 5a2318 jnc short 02275h ; 73 60 2321 2319 test al, al ; 84 c0 2322 jne short 0223eh ; 75 05 2323 mov bx, strict word 0003dh ; bb 3d 00 2324 jmp short 02241h ; eb 03 2325 mov bx, strict word 0004dh ; bb 4d 00 2326 mov cx, word [bp-022h] ; 8b 4e de 2327 mov es, cx ; 8e c1 2328 mov word [es:bx], di ; 26 89 3f 2329 mov byte [es:bx+002h], dl ; 26 88 57 02 2330 mov byte [es:bx+003h], 0a0h ; 26 c6 47 03 a0 2320 jne short 0221eh ; 75 05 2321 mov di, strict word 0003dh ; bf 3d 00 2322 jmp short 02221h ; eb 03 2323 mov di, strict word 0004dh ; bf 4d 00 2324 mov dx, word [bp-020h] ; 8b 56 e0 2325 mov ax, word [bp-030h] ; 8b 46 d0 2326 mov es, dx ; 8e c2 2327 mov word [es:di], ax ; 26 89 05 2328 mov al, byte [bp-032h] ; 8a 46 ce 2329 mov byte [es:di+002h], al ; 26 88 45 02 2330 mov byte [es:di+003h], 0a0h ; 26 c6 45 03 a0 2331 mov al, byte [bp-01ah] ; 8a 46 e6 2332 mov byte [es:di+004h], al ; 26 88 45 04 2333 mov ax, word [bp-016h] ; 8b 46 ea 2334 mov word [es:di+009h], ax ; 26 89 45 09 2331 2335 mov al, byte [bp-018h] ; 8a 46 e8 2332 mov byte [es:bx+004h], al ; 26 88 47 04 2333 mov ax, word [bp-01eh] ; 8b 46 e2 2334 mov word [es:bx+009h], ax ; 26 89 47 09 2335 mov al, byte [bp-01ch] ; 8a 46 e4 2336 mov byte [es:bx+00bh], al ; 26 88 47 0b 2337 mov al, byte [bp-018h] ; 8a 46 e8 2338 mov byte [es:bx+00eh], al ; 26 88 47 0e 2336 mov byte [es:di+00bh], al ; 26 88 45 0b 2337 mov al, byte [bp-01ah] ; 8a 46 e6 2338 mov byte [es:di+00eh], al ; 26 88 45 0e 2339 2339 xor al, al ; 30 c0 2340 2340 xor ah, ah ; 30 e4 2341 jmp short 022 79h ; eb 052341 jmp short 0225fh ; eb 05 2342 2342 cmp ah, 00fh ; 80 fc 0f 2343 jnc short 022 87h ; 73 0e2344 movzx di, ah ; 0f b6 fc2345 mov es, cx ; 8e c12346 add di, bx ; 01 df2347 add al, byte [es: di] ; 26 02 052343 jnc short 0226dh ; 73 0e 2344 movzx bx, ah ; 0f b6 dc 2345 mov es, dx ; 8e c2 2346 add bx, di ; 01 fb 2347 add al, byte [es:bx] ; 26 02 07 2348 2348 db 0feh, 0c4h 2349 2349 ; inc ah ; fe c4 2350 jmp short 022 74h ; eb ed2350 jmp short 0225ah ; eb ed 2351 2351 neg al ; f6 d8 2352 mov es, cx ; 8e c12353 mov byte [es: bx+00fh], al ; 26 88 470f2354 movzx bx, byte [bp-0 14h] ; 0f b6 5e ec2355 mov es, [bp-02 6h] ; 8e 46 da2356 add bx, si ; 01 f32357 mov al, byte [bp-0 16h] ; 8a 46 ea2352 mov es, dx ; 8e c2 2353 mov byte [es:di+00fh], al ; 26 88 45 0f 2354 movzx bx, byte [bp-002h] ; 0f b6 5e fe 2355 mov es, [bp-022h] ; 8e 46 de 2356 add bx, word [bp-024h] ; 03 5e dc 2357 mov al, byte [bp-00ah] ; 8a 46 f6 2358 2358 mov byte [es:bx+0019fh], al ; 26 88 87 9f 01 2359 inc byte [bp-0 14h] ; fe 46 ec2360 cmp byte [bp-00 2h], 003h ; 80 7e fe032361 jne near 023 3eh ; 0f 85 93002362 movzx ax, byte [bp-0 16h] ; 0f b6 46 ea2359 inc byte [bp-002h] ; fe 46 fe 2360 cmp byte [bp-00ch], 003h ; 80 7e f4 03 2361 jne near 0232ah ; 0f 85 98 00 2362 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 2363 2363 imul ax, ax, strict byte 00018h ; 6b c0 18 2364 mov es, [bp-026h] ; 8e 46 da 2365 mov bx, si ; 89 f3 2364 les bx, [bp-024h] ; c4 5e dc 2366 2365 add bx, ax ; 01 c3 2367 2366 mov byte [es:bx+01fh], 005h ; 26 c6 47 1f 05 2368 2367 mov byte [es:bx+022h], 000h ; 26 c6 47 22 00 2369 lea dx, [bp-0025ah] ; 8d 96 a6 fd 2370 mov word [es:si+004h], dx ; 26 89 54 04 2371 mov [es:si+006h], ss ; 26 8c 54 06 2372 mov al, byte [bp-016h] ; 8a 46 ea 2373 mov byte [es:si+008h], al ; 26 88 44 08 2368 lea dx, [bp-0025ch] ; 8d 96 a4 fd 2369 mov bx, word [bp-024h] ; 8b 5e dc 2370 mov word [es:bx+004h], dx ; 26 89 57 04 2371 mov [es:bx+006h], ss ; 26 8c 57 06 2372 mov al, byte [bp-00ah] ; 8a 46 f6 2373 mov byte [es:bx+008h], al ; 26 88 47 08 2374 2374 mov cx, strict word 00001h ; b9 01 00 2375 2375 mov bx, 000a1h ; bb a1 00 2376 mov ax, si ; 89 f02376 mov ax, word [bp-024h] ; 8b 46 dc 2377 2377 mov dx, es ; 8c c2 2378 call 01cc0h ; e8 ddf92378 call 01cc0h ; e8 f4 f9 2379 2379 test ax, ax ; 85 c0 2380 je short 022 f2h ; 74 0b2380 je short 022dbh ; 74 0b 2381 2381 push 000d4h ; 68 d4 00 2382 2382 push strict byte 00007h ; 6a 07 2383 call 018e9h ; e8 fa f52383 call 018e9h ; e8 11 f6 2384 2384 add sp, strict byte 00004h ; 83 c4 04 2385 mov dl, byte [bp-00259h] ; 8a 96 a7fd2386 and dl, 01fh ; 80 e21f2387 test byte [bp-0025 ah], 080h ; f6 86 a6fd 802385 mov cl, byte [bp-0025bh] ; 8a 8e a5 fd 2386 and cl, 01fh ; 80 e1 1f 2387 test byte [bp-0025ch], 080h ; f6 86 a4 fd 80 2388 2388 db 00fh, 095h, 0c0h 2389 2389 ; setne al ; 0f 95 c0 2390 2390 xor ah, ah ; 30 e4 2391 mov cx, ax ; 89 c12392 cmp byte [bp-001f ah], 000h ; 80 be 06fe 002391 mov dx, ax ; 89 c2 2392 cmp byte [bp-001fch], 000h ; 80 be 04 fe 00 2393 2393 db 00fh, 095h, 0c0h 2394 2394 ; setne al ; 0f 95 c0 2395 2395 xor ah, ah ; 30 e4 2396 movzx bx, byte [bp-016h] ; 0f b6 5e ea 2397 imul bx, bx, strict byte 00018h ; 6b db 18 2398 mov es, [bp-026h] ; 8e 46 da 2399 add bx, si ; 01 f3 2400 mov byte [es:bx+01fh], dl ; 26 88 57 1f 2401 mov byte [es:bx+020h], cl ; 26 88 4f 20 2402 mov byte [es:bx+022h], al ; 26 88 47 22 2403 mov word [es:bx+024h], 00800h ; 26 c7 47 24 00 08 2396 mov bx, ax ; 89 c3 2397 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 2398 imul ax, ax, strict byte 00018h ; 6b c0 18 2399 les si, [bp-024h] ; c4 76 dc 2400 add si, ax ; 01 c6 2401 mov byte [es:si+01fh], cl ; 26 88 4c 1f 2402 mov byte [es:si+020h], dl ; 26 88 54 20 2403 mov byte [es:si+022h], bl ; 26 88 5c 22 2404 mov word [es:si+024h], 00800h ; 26 c7 44 24 00 08 2404 2405 movzx bx, byte [bp-006h] ; 0f b6 5e fa 2405 add bx, si ; 01 f32406 mov al, byte [bp-0 16h] ; 8a 46 ea2406 add bx, word [bp-024h] ; 03 5e dc 2407 mov al, byte [bp-00ah] ; 8a 46 f6 2407 2408 mov byte [es:bx+001b0h], al ; 26 88 87 b0 01 2408 2409 inc byte [bp-006h] ; fe 46 fa 2409 mov al, byte [bp-00 2h] ; 8a 46 fe2410 mov al, byte [bp-00ch] ; 8a 46 f4 2410 2411 cmp AL, strict byte 003h ; 3c 03 2411 je short 023 72h ; 74 2d2412 je short 0235dh ; 74 2c 2412 2413 cmp AL, strict byte 002h ; 3c 02 2413 jne near 023d7h ; 0f 85 8c 00 2414 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2415 imul ax, ax, strict byte 00018h ; 6b c0 18 2416 mov es, [bp-026h] ; 8e 46 da 2417 mov bx, si ; 89 f3 2418 add bx, ax ; 01 c3 2414 jne near 023c0h ; 0f 85 89 00 2415 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 2416 imul bx, bx, strict byte 00018h ; 6b db 18 2417 mov es, [bp-022h] ; 8e 46 de 2418 add bx, word [bp-024h] ; 03 5e dc 2419 2419 mov ax, word [es:bx+032h] ; 26 8b 47 32 2420 mov word [bp-0 30h], ax ; 89 46 d02420 mov word [bp-02ch], ax ; 89 46 d4 2421 2421 mov ax, word [es:bx+034h] ; 26 8b 47 34 2422 mov word [bp-02 eh], ax ; 89 46 d22422 mov word [bp-02ah], ax ; 89 46 d6 2423 2423 mov cx, strict word 0000bh ; b9 0b 00 2424 shr word [bp-02 eh], 1 ; d1 6e d22425 rcr word [bp-0 30h], 1 ; d1 5e d02426 loop 023 6ah ; e2 f82427 movzx dx, byte [bp-001b 9h] ; 0f b6 96 47fe2424 shr word [bp-02ah], 1 ; d1 6e d6 2425 rcr word [bp-02ch], 1 ; d1 5e d4 2426 loop 02355h ; e2 f8 2427 movzx dx, byte [bp-001bbh] ; 0f b6 96 45 fe 2428 2428 sal dx, 008h ; c1 e2 08 2429 movzx ax, byte [bp-001b ah] ; 0f b6 86 46fe2429 movzx ax, byte [bp-001bch] ; 0f b6 86 44 fe 2430 2430 or dx, ax ; 09 c2 2431 mov byte [bp-0 10h], 00fh ; c6 46 f00f2432 jmp short 023 90h ; eb 092433 dec byte [bp-0 10h] ; fe 4e f02434 cmp byte [bp-0 10h], 000h ; 80 7e f0002435 jbe short 023 9dh ; 76 0d2436 movzx cx, byte [bp-0 10h] ; 0f b6 4e f02431 mov byte [bp-00eh], 00fh ; c6 46 f2 0f 2432 jmp short 0237bh ; eb 09 2433 dec byte [bp-00eh] ; fe 4e f2 2434 cmp byte [bp-00eh], 000h ; 80 7e f2 00 2435 jbe short 02388h ; 76 0d 2436 movzx cx, byte [bp-00eh] ; 0f b6 4e f2 2437 2437 mov ax, strict word 00001h ; b8 01 00 2438 2438 sal ax, CL ; d3 e0 2439 2439 test dx, ax ; 85 c2 2440 je short 02387h ; 74 ea 2441 xor bx, bx ; 31 db 2442 jmp short 023a6h ; eb 05 2443 cmp bx, strict byte 00014h ; 83 fb 14 2444 jnl short 023bbh ; 7d 15 2445 mov di, bx ; 89 df 2446 add di, bx ; 01 df 2447 mov al, byte [bp+di-00223h] ; 8a 83 dd fd 2448 mov byte [bp+di-05ah], al ; 88 43 a6 2449 mov al, byte [bp+di-00224h] ; 8a 83 dc fd 2450 mov byte [bp+di-059h], al ; 88 43 a7 2451 inc bx ; 43 2452 jmp short 023a1h ; eb e6 2453 mov byte [bp-032h], 000h ; c6 46 ce 00 2454 mov bx, strict word 00027h ; bb 27 00 2455 jmp short 023c9h ; eb 05 2456 dec bx ; 4b 2457 test bx, bx ; 85 db 2458 jle short 023d7h ; 7e 0e 2459 mov di, bx ; 89 df 2460 cmp byte [bp+di-05ah], 020h ; 80 7b a6 20 2461 jne short 023d7h ; 75 06 2462 mov byte [bp+di-05ah], 000h ; c6 43 a6 00 2463 jmp short 023c4h ; eb ed 2464 mov al, byte [bp-002h] ; 8a 46 fe 2440 je short 02372h ; 74 ea 2441 xor di, di ; 31 ff 2442 jmp short 02391h ; eb 05 2443 cmp di, strict byte 00014h ; 83 ff 14 2444 jnl short 023a6h ; 7d 15 2445 mov si, di ; 89 fe 2446 add si, di ; 01 fe 2447 mov al, byte [bp+si-00225h] ; 8a 82 db fd 2448 mov byte [bp+si-05ch], al ; 88 42 a4 2449 mov al, byte [bp+si-00226h] ; 8a 82 da fd 2450 mov byte [bp+si-05bh], al ; 88 42 a5 2451 inc di ; 47 2452 jmp short 0238ch ; eb e6 2453 mov byte [bp-034h], 000h ; c6 46 cc 00 2454 mov di, strict word 00027h ; bf 27 00 2455 jmp short 023b4h ; eb 05 2456 dec di ; 4f 2457 test di, di ; 85 ff 2458 jle short 023c0h ; 7e 0c 2459 cmp byte [bp+di-05ch], 020h ; 80 7b a4 20 2460 jne short 023c0h ; 75 06 2461 mov byte [bp+di-05ch], 000h ; c6 43 a4 00 2462 jmp short 023afh ; eb ef 2463 mov al, byte [bp-00ch] ; 8a 46 f4 2465 2464 cmp AL, strict byte 003h ; 3c 03 2466 je short 024 3ch ; 74 5e2465 je short 02423h ; 74 5c 2467 2466 cmp AL, strict byte 002h ; 3c 02 2468 je short 023 ebh ; 74 092467 je short 023d4h ; 74 09 2469 2468 cmp AL, strict byte 001h ; 3c 01 2470 je near 024 a7h ; 0f 84 bf002471 jmp near 024 c6h ; e9 db002469 je near 0248ah ; 0f 84 b9 00 2470 jmp near 024a9h ; e9 d5 00 2472 2471 cmp byte [bp-004h], 000h ; 80 7e fc 00 2473 je short 023 f6h ; 74 052472 je short 023dfh ; 74 05 2474 2473 mov ax, 000ffh ; b8 ff 00 2475 jmp short 023 f9h ; eb 032474 jmp short 023e2h ; eb 03 2476 2475 mov ax, 00106h ; b8 06 01 2477 2476 push ax ; 50 2478 movzx ax, byte [bp-01 2h] ; 0f b6 46 ee2477 movzx ax, byte [bp-014h] ; 0f b6 46 ec 2479 2478 push ax ; 50 2480 2479 push 0010dh ; 68 0d 01 2481 2480 push strict byte 00002h ; 6a 02 2482 call 018e9h ; e8 e2f42481 call 018e9h ; e8 f9 f4 2483 2482 add sp, strict byte 00008h ; 83 c4 08 2484 xor bx, bx ; 31 db 2485 mov di, bx ; 89 df 2486 movzx ax, byte [bp+di-05ah] ; 0f b6 43 a6 2487 inc bx ; 43 2483 xor di, di ; 31 ff 2484 movzx ax, byte [bp+di-05ch] ; 0f b6 43 a4 2485 inc di ; 47 2488 2486 test ax, ax ; 85 c0 2489 je short 024 25h ; 74 0e2487 je short 0240ch ; 74 0e 2490 2488 push ax ; 50 2491 2489 push 00118h ; 68 18 01 2492 2490 push strict byte 00002h ; 6a 02 2493 call 018e9h ; e8 c9f42491 call 018e9h ; e8 e2 f4 2494 2492 add sp, strict byte 00006h ; 83 c4 06 2495 jmp short 02 40ch ; eb e72496 push dword [bp-0 30h] ; 66 ff 76 d02497 movzx ax, byte [bp-0 10h] ; 0f b6 46 f02493 jmp short 023f5h ; eb e9 2494 push dword [bp-02ch] ; 66 ff 76 d4 2495 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2498 2496 push ax ; 50 2499 2497 push 0011bh ; 68 1b 01 2500 2498 push strict byte 00002h ; 6a 02 2501 call 018e9h ; e8 b3f42499 call 018e9h ; e8 cc f4 2502 2500 add sp, strict byte 0000ah ; 83 c4 0a 2503 jmp near 024 c6h ; e9 8a002501 jmp near 024a9h ; e9 86 00 2504 2502 cmp byte [bp-004h], 000h ; 80 7e fc 00 2505 je short 024 47h ; 74 052503 je short 0242eh ; 74 05 2506 2504 mov ax, 000ffh ; b8 ff 00 2507 jmp short 024 4ah ; eb 032505 jmp short 02431h ; eb 03 2508 2506 mov ax, 00106h ; b8 06 01 2509 2507 push ax ; 50 2510 movzx ax, byte [bp-01 2h] ; 0f b6 46 ee2508 movzx ax, byte [bp-014h] ; 0f b6 46 ec 2511 2509 push ax ; 50 2512 2510 push 0010dh ; 68 0d 01 2513 2511 push strict byte 00002h ; 6a 02 2514 call 018e9h ; e8 91f42512 call 018e9h ; e8 aa f4 2515 2513 add sp, strict byte 00008h ; 83 c4 08 2516 xor bx, bx ; 31 db 2517 mov di, bx ; 89 df 2518 movzx ax, byte [bp+di-05ah] ; 0f b6 43 a6 2519 inc bx ; 43 2514 xor di, di ; 31 ff 2515 movzx ax, byte [bp+di-05ch] ; 0f b6 43 a4 2516 inc di ; 47 2520 2517 test ax, ax ; 85 c0 2521 je short 024 76h ; 74 0e2518 je short 0245bh ; 74 0e 2522 2519 push ax ; 50 2523 2520 push 00118h ; 68 18 01 2524 2521 push strict byte 00002h ; 6a 02 2525 call 018e9h ; e8 78f42522 call 018e9h ; e8 93 f4 2526 2523 add sp, strict byte 00006h ; 83 c4 06 2527 jmp short 024 5dh ; eb e72528 movzx ax, byte [bp-0 16h] ; 0f b6 46 ea2524 jmp short 02444h ; eb e9 2525 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 2529 2526 imul ax, ax, strict byte 00018h ; 6b c0 18 2530 mov es, [bp-026h] ; 8e 46 da 2531 mov bx, si ; 89 f3 2527 les bx, [bp-024h] ; c4 5e dc 2532 2528 add bx, ax ; 01 c3 2533 2529 cmp byte [es:bx+01fh], 005h ; 26 80 7f 1f 05 2534 jne short 024 95h ; 75 0a2535 movzx ax, byte [bp-0 10h] ; 0f b6 46 f02530 jne short 02478h ; 75 0a 2531 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2536 2532 push ax ; 50 2537 2533 push 0013bh ; 68 3b 01 2538 jmp short 024 9dh ; eb 082539 movzx ax, byte [bp-0 10h] ; 0f b6 46 f02534 jmp short 02480h ; eb 08 2535 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2540 2536 push ax ; 50 2541 2537 push 00155h ; 68 55 01 2542 2538 push strict byte 00002h ; 6a 02 2543 call 018e9h ; e8 47f42539 call 018e9h ; e8 64 f4 2544 2540 add sp, strict byte 00006h ; 83 c4 06 2545 jmp short 024 c6h ; eb 1f2541 jmp short 024a9h ; eb 1f 2546 2542 cmp byte [bp-004h], 000h ; 80 7e fc 00 2547 je short 024 b2h ; 74 052543 je short 02495h ; 74 05 2548 2544 mov ax, 000ffh ; b8 ff 00 2549 jmp short 024 b5h ; eb 032545 jmp short 02498h ; eb 03 2550 2546 mov ax, 00106h ; b8 06 01 2551 2547 push ax ; 50 2552 movzx ax, byte [bp-01 2h] ; 0f b6 46 ee2548 movzx ax, byte [bp-014h] ; 0f b6 46 ec 2553 2549 push ax ; 50 2554 2550 push 00167h ; 68 67 01 2555 2551 push strict byte 00002h ; 6a 02 2556 call 018e9h ; e8 26f42552 call 018e9h ; e8 43 f4 2557 2553 add sp, strict byte 00008h ; 83 c4 08 2558 inc byte [bp-0 16h] ; fe 46 ea2559 cmp byte [bp-0 16h], 008h ; 80 7e ea082560 jnc short 025 20h ; 73 512561 movzx bx, byte [bp-0 16h] ; 0f b6 5e ea2554 inc byte [bp-00ah] ; fe 46 f6 2555 cmp byte [bp-00ah], 008h ; 80 7e f6 08 2556 jnc short 02500h ; 73 4e 2557 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 2562 2558 mov ax, bx ; 89 d8 2563 2559 cwd ; 99 … … 2565 2561 ; sub ax, dx ; 2b c2 2566 2562 sar ax, 1 ; d1 f8 2567 mov cx, ax ; 89 c1 2568 mov byte [bp-012h], al ; 88 46 ee 2563 mov word [bp-026h], ax ; 89 46 da 2564 mov al, byte [bp-026h] ; 8a 46 da 2565 mov byte [bp-014h], al ; 88 46 ec 2569 2566 mov ax, bx ; 89 d8 2570 2567 cwd ; 99 2571 2568 mov bx, strict word 00002h ; bb 02 00 2572 2569 idiv bx ; f7 fb 2573 mov word [bp-028h], dx ; 89 56 d8 2574 mov al, byte [bp-028h] ; 8a 46 d8 2575 mov byte [bp-004h], al ; 88 46 fc 2576 movzx ax, cl ; 0f b6 c1 2570 mov cx, dx ; 89 d1 2571 mov byte [bp-004h], dl ; 88 56 fc 2572 movzx ax, byte [bp-026h] ; 0f b6 46 da 2577 2573 imul ax, ax, strict byte 00006h ; 6b c0 06 2578 mov es, [bp-026h] ; 8e 46 da 2579 mov di, si ; 89 f7 2580 add di, ax ; 01 c7 2581 mov bx, word [es:di+001c2h] ; 26 8b 9d c2 01 2582 mov ax, word [es:di+001c4h] ; 26 8b 85 c4 01 2583 mov word [bp-02ch], ax ; 89 46 d4 2574 les bx, [bp-024h] ; c4 5e dc 2575 add bx, ax ; 01 c3 2576 mov si, word [es:bx+001c2h] ; 26 8b b7 c2 01 2577 mov ax, word [es:bx+001c4h] ; 26 8b 87 c4 01 2578 mov word [bp-028h], ax ; 89 46 d8 2584 2579 mov dx, ax ; 89 c2 2585 2580 add dx, strict byte 00006h ; 83 c2 06 2586 2581 mov AL, strict byte 00ah ; b0 0a 2587 2582 out DX, AL ; ee 2588 cmp byte [bp-028h], 000h ; 80 7e d8 002589 je near 01f 79h ; 0f 84 5ffa2583 test cl, cl ; 84 c9 2584 je near 01f6ah ; 0f 84 70 fa 2590 2585 mov ax, 000b0h ; b8 b0 00 2591 jmp near 01f 7ch ; e9 5cfa2592 mov al, byte [bp-0 14h] ; 8a 46 ec2593 mov es, [bp-026h] ; 8e 46 da2594 mov byte [es: si+0019eh], al ; 26 88 849e 012586 jmp near 01f6dh ; e9 6d fa 2587 mov al, byte [bp-002h] ; 8a 46 fe 2588 les bx, [bp-024h] ; c4 5e dc 2589 mov byte [es:bx+0019eh], al ; 26 88 87 9e 01 2595 2590 mov al, byte [bp-006h] ; 8a 46 fa 2596 mov byte [es: si+001afh], al ; 26 88 84af 012597 movzx bx, byte [bp-0 14h] ; 0f b6 5e ec2591 mov byte [es:bx+001afh], al ; 26 88 87 af 01 2592 movzx bx, byte [bp-002h] ; 0f b6 5e fe 2598 2593 mov dx, strict word 00075h ; ba 75 00 2599 2594 mov ax, strict word 00040h ; b8 40 00 2600 call 0160eh ; e8 ce f02595 call 0160eh ; e8 ee f0 2601 2596 leave ; c9 2602 2597 pop di ; 5f 2603 2598 pop si ; 5e 2604 2599 retn ; c3 2605 ata_cmd_data_out_: ; 0xf25 44 LB 0x2152600 ata_cmd_data_out_: ; 0xf2524 LB 0x215 2606 2601 push si ; 56 2607 2602 push di ; 57 … … 2630 2625 mov byte [bp-004h], al ; 88 46 fc 2631 2626 cmp AL, strict byte 001h ; 3c 01 2632 jne short 025 96h ; 75 072627 jne short 02576h ; 75 07 2633 2628 mov word [bp-00eh], 00080h ; c7 46 f2 80 00 2634 jmp short 025 9bh ; eb 052629 jmp short 0257bh ; eb 05 2635 2630 mov word [bp-00eh], 00100h ; c7 46 f2 00 01 2636 2631 lea dx, [bx+007h] ; 8d 57 07 … … 2639 2634 ; sub ah, ah ; 2a e4 2640 2635 test AL, strict byte 080h ; a8 80 2641 je short 025 b4h ; 74 0f2636 je short 02594h ; 74 0f 2642 2637 mov dx, word [bp-008h] ; 8b 56 f8 2643 2638 add dx, strict byte 00006h ; 83 c2 06 … … 2645 2640 out DX, AL ; ee 2646 2641 mov dx, strict word 00001h ; ba 01 00 2647 jmp near 027 53h ; e9 9f 012642 jmp near 02733h ; e9 9f 01 2648 2643 mov es, [bp-006h] ; 8e 46 fa 2649 2644 mov ax, word [es:di] ; 26 8b 05 … … 2662 2657 mov ax, word [bp-00ch] ; 8b 46 f4 2663 2658 test ax, ax ; 85 c0 2664 jne short 026 52h ; 75 672659 jne short 02632h ; 75 67 2665 2660 mov dx, word [bp-01ah] ; 8b 56 e6 2666 2661 add dx, word [bp-00ah] ; 03 56 f6 2667 2662 adc ax, word [bp-018h] ; 13 46 e8 2668 2663 cmp ax, 01000h ; 3d 00 10 2669 jnbe short 025 fbh ; 77 022670 jne short 026 26h ; 75 2b2664 jnbe short 025dbh ; 77 02 2665 jne short 02606h ; 75 2b 2671 2666 mov ax, word [bp-018h] ; 8b 46 e8 2672 2667 xor al, al ; 30 c0 … … 2693 2688 shr word [bp-018h], 1 ; d1 6e e8 2694 2689 rcr word [bp-01ah], 1 ; d1 5e e6 2695 loop 026 31h ; e2 f82690 loop 02611h ; e2 f8 2696 2691 mov ax, word [bp-01ah] ; 8b 46 e6 2697 2692 mov word [bp-012h], ax ; 89 46 ee … … 2722 2717 out DX, AL ; ee 2723 2718 cmp byte [bp-002h], 000h ; 80 7e fe 00 2724 je short 026 88h ; 74 052719 je short 02668h ; 74 05 2725 2720 mov ax, 000b0h ; b8 b0 00 2726 jmp short 026 8bh ; eb 032721 jmp short 0266bh ; eb 03 2727 2722 mov ax, 000a0h ; b8 a0 00 2728 2723 movzx dx, byte [bp-010h] ; 0f b6 56 f0 … … 2739 2734 mov dl, al ; 88 c2 2740 2735 test AL, strict byte 080h ; a8 80 2741 jne short 026 9ch ; 75 f42736 jne short 0267ch ; 75 f4 2742 2737 test AL, strict byte 001h ; a8 01 2743 je short 026 bbh ; 74 0f2738 je short 0269bh ; 74 0f 2744 2739 mov dx, word [bp-008h] ; 8b 56 f8 2745 2740 add dx, strict byte 00006h ; 83 c2 06 … … 2747 2742 out DX, AL ; ee 2748 2743 mov dx, strict word 00002h ; ba 02 00 2749 jmp near 027 53h ; e9 98 002744 jmp near 02733h ; e9 98 00 2750 2745 test dl, 008h ; f6 c2 08 2751 jne short 026 cfh ; 75 0f2746 jne short 026afh ; 75 0f 2752 2747 mov dx, word [bp-008h] ; 8b 56 f8 2753 2748 add dx, strict byte 00006h ; 83 c2 06 … … 2755 2750 out DX, AL ; ee 2756 2751 mov dx, strict word 00003h ; ba 03 00 2757 jmp near 027 53h ; e9 84 002752 jmp near 02733h ; e9 84 00 2758 2753 sti ; fb 2759 2754 cmp si, 0f800h ; 81 fe 00 f8 2760 jc short 026 e3h ; 72 0d2755 jc short 026c3h ; 72 0d 2761 2756 sub si, 00800h ; 81 ee 00 08 2762 2757 mov ax, word [bp-014h] ; 8b 46 ec … … 2764 2759 mov word [bp-014h], ax ; 89 46 ec 2765 2760 cmp byte [bp-004h], 001h ; 80 7e fc 01 2766 jne short 026 f7h ; 75 0e2761 jne short 026d7h ; 75 0e 2767 2762 mov dx, bx ; 89 da 2768 2763 mov cx, word [bp-00eh] ; 8b 4e f2 … … 2770 2765 db 0f3h, 066h, 026h, 06fh 2771 2766 ; rep es outsd ; f3 66 26 6f 2772 jmp short 02 702h ; eb 0b2767 jmp short 026e2h ; eb 0b 2773 2768 mov dx, bx ; 89 da 2774 2769 mov cx, word [bp-00eh] ; 8b 4e f2 … … 2785 2780 mov dl, al ; 88 c2 2786 2781 test AL, strict byte 080h ; a8 80 2787 jne short 02 70ch ; 75 f42782 jne short 026ech ; 75 f4 2788 2783 cmp word [bp-00ah], strict byte 00000h ; 83 7e f6 00 2789 jne short 027 32h ; 75 142784 jne short 02712h ; 75 14 2790 2785 and AL, strict byte 0e9h ; 24 e9 2791 2786 cmp AL, strict byte 040h ; 3c 40 2792 je short 027 48h ; 74 242787 je short 02728h ; 74 24 2793 2788 mov dx, word [bp-008h] ; 8b 56 f8 2794 2789 add dx, strict byte 00006h ; 83 c2 06 … … 2796 2791 out DX, AL ; ee 2797 2792 mov dx, strict word 00006h ; ba 06 00 2798 jmp short 027 53h ; eb 212793 jmp short 02733h ; eb 21 2799 2794 mov al, dl ; 88 d0 2800 2795 and AL, strict byte 0c9h ; 24 c9 2801 2796 cmp AL, strict byte 048h ; 3c 48 2802 je short 026 d0h ; 74 962797 je short 026b0h ; 74 96 2803 2798 mov dx, word [bp-008h] ; 8b 56 f8 2804 2799 add dx, strict byte 00006h ; 83 c2 06 … … 2806 2801 out DX, AL ; ee 2807 2802 mov dx, strict word 00007h ; ba 07 00 2808 jmp short 027 53h ; eb 0b2803 jmp short 02733h ; eb 0b 2809 2804 mov dx, word [bp-008h] ; 8b 56 f8 2810 2805 add dx, strict byte 00006h ; 83 c2 06 … … 2817 2812 pop si ; 5e 2818 2813 retn ; c3 2819 @ata_read_sectors: ; 0xf27 59 LB 0x772814 @ata_read_sectors: ; 0xf2739 LB 0x77 2820 2815 push si ; 56 2821 2816 push di ; 57 … … 2829 2824 mov ax, word [es:si+012h] ; 26 8b 44 12 2830 2825 test ax, ax ; 85 c0 2831 je short 027 87h ; 74 0d2826 je short 02767h ; 74 0d 2832 2827 movzx di, bl ; 0f b6 fb 2833 2828 imul di, di, strict byte 00018h ; 6b ff 18 2834 2829 mov [bp-002h], es ; 8c 46 fe 2835 2830 add di, si ; 01 f7 2836 jmp short 027 b3h ; eb 2c2831 jmp short 02793h ; eb 2c 2837 2832 mov di, word [es:si] ; 26 8b 3c 2838 2833 add di, cx ; 01 cf … … 2840 2835 adc ax, word [es:si+002h] ; 26 13 44 02 2841 2836 cmp ax, 01000h ; 3d 00 10 2842 jnbe short 027 9ah ; 77 022843 jne short 027 a6h ; 75 0c2837 jnbe short 0277ah ; 77 02 2838 jne short 02786h ; 75 0c 2844 2839 mov bx, strict word 00024h ; bb 24 00 2845 2840 mov ax, si ; 89 f0 2846 2841 mov dx, es ; 8c c2 2847 call 01cc0h ; e8 1c f52848 jmp short 027 cah ; eb 242842 call 01cc0h ; e8 3c f5 2843 jmp short 027aah ; eb 24 2849 2844 movzx ax, bl ; 0f b6 c3 2850 2845 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 2856 2851 mov ax, si ; 89 f0 2857 2852 mov dx, es ; 8c c2 2858 call 01cc0h ; e8 ff f42853 call 01cc0h ; e8 1f f5 2859 2854 mov es, [bp-002h] ; 8e 46 fe 2860 2855 mov word [es:di+024h], 00200h ; 26 c7 45 24 00 02 … … 2863 2858 pop si ; 5e 2864 2859 retn 00004h ; c2 04 00 2865 @ata_write_sectors: ; 0xf27 d0 LB 0x3a2860 @ata_write_sectors: ; 0xf27b0 LB 0x3a 2866 2861 push si ; 56 2867 2862 push bp ; 55 … … 2870 2865 mov cx, word [es:si+00ah] ; 26 8b 4c 0a 2871 2866 cmp word [es:si+012h], strict byte 00000h ; 26 83 7c 12 00 2872 je short 027 eeh ; 74 0c2867 je short 027ceh ; 74 0c 2873 2868 mov bx, strict word 00030h ; bb 30 00 2874 2869 mov ax, si ; 89 f0 2875 2870 mov dx, es ; 8c c2 2876 call 025 44h ; e8 58 fd2877 jmp short 02 805h ; eb 172871 call 02524h ; e8 58 fd 2872 jmp short 027e5h ; eb 17 2878 2873 xor ax, ax ; 31 c0 2879 2874 mov dx, word [es:si] ; 26 8b 14 … … 2881 2876 adc ax, word [es:si+002h] ; 26 13 44 02 2882 2877 cmp ax, 01000h ; 3d 00 10 2883 jnbe short 02 800h ; 77 022884 jne short 027 e2h ; 75 e22878 jnbe short 027e0h ; 77 02 2879 jne short 027c2h ; 75 e2 2885 2880 mov bx, strict word 00034h ; bb 34 00 2886 jmp short 027 e5h ; eb e02881 jmp short 027c5h ; eb e0 2887 2882 pop bp ; 5d 2888 2883 pop si ; 5e 2889 2884 retn 00004h ; c2 04 00 2890 ata_cmd_packet_: ; 0xf2 80a LB 0x2e32885 ata_cmd_packet_: ; 0xf27ea LB 0x2e3 2891 2886 push si ; 56 2892 2887 push di ; 57 … … 2897 2892 mov dx, strict word 0000eh ; ba 0e 00 2898 2893 mov ax, strict word 00040h ; b8 40 00 2899 call 0161ch ; e8 fd ed2894 call 0161ch ; e8 1d ee 2900 2895 mov word [bp-00eh], 00122h ; c7 46 f2 22 01 2901 2896 mov word [bp-00ah], ax ; 89 46 f6 … … 2906 2901 mov byte [bp-002h], ah ; 88 66 fe 2907 2902 cmp byte [bp+00eh], 002h ; 80 7e 0e 02 2908 jne short 028 5ah ; 75 1f2909 mov bx, 00c d6h ; bb d60c2903 jne short 0283ah ; 75 1f 2904 mov bx, 00cech ; bb ec 0c 2910 2905 mov cx, ds ; 8c d9 2911 2906 mov ax, strict word 00004h ; b8 04 00 2912 call 018aeh ; e8 68 f02907 call 018aeh ; e8 88 f0 2913 2908 push 00181h ; 68 81 01 2914 2909 push 00190h ; 68 90 01 2915 2910 push strict byte 00004h ; 6a 04 2916 call 018e9h ; e8 98 f02911 call 018e9h ; e8 b8 f0 2917 2912 add sp, strict byte 00006h ; 83 c4 06 2918 2913 mov dx, strict word 00001h ; ba 01 00 2919 jmp near 02a e5h ; e9 8b 022914 jmp near 02ac5h ; e9 8b 02 2920 2915 test byte [bp+008h], 001h ; f6 46 08 01 2921 jne short 028 54h ; 75 f42916 jne short 02834h ; 75 f4 2922 2917 xor ah, ah ; 30 e4 2923 2918 imul ax, ax, strict byte 00006h ; 6b c0 06 … … 2937 2932 mov al, byte [bp-004h] ; 8a 46 fc 2938 2933 cmp AL, strict byte 00ch ; 3c 0c 2939 jnc short 028 9dh ; 73 062934 jnc short 0287dh ; 73 06 2940 2935 mov byte [bp-004h], 00ch ; c6 46 fc 0c 2941 jmp short 028 a3h ; eb 062942 jbe short 028 a3h ; 76 042936 jmp short 02883h ; eb 06 2937 jbe short 02883h ; 76 04 2943 2938 mov byte [bp-004h], 010h ; c6 46 fc 10 2944 2939 shr byte [bp-004h], 1 ; d0 6e fc … … 2953 2948 ; sub ah, ah ; 2a e4 2954 2949 test AL, strict byte 080h ; a8 80 2955 je short 028 cbh ; 74 062950 je short 028abh ; 74 06 2956 2951 mov dx, strict word 00002h ; ba 02 00 2957 jmp near 02a e5h ; e9 1a 022952 jmp near 02ac5h ; e9 1a 02 2958 2953 mov dx, word [bp-00ch] ; 8b 56 f4 2959 2954 add dx, strict byte 00006h ; 83 c2 06 … … 2967 2962 out DX, AL ; ee 2968 2963 cmp byte [bp-002h], 000h ; 80 7e fe 00 2969 je short 028 ebh ; 74 052964 je short 028cbh ; 74 05 2970 2965 mov ax, 000b0h ; b8 b0 00 2971 jmp short 028 eeh ; eb 032966 jmp short 028ceh ; eb 03 2972 2967 mov ax, 000a0h ; b8 a0 00 2973 2968 lea dx, [bx+006h] ; 8d 57 06 … … 2982 2977 mov dl, al ; 88 c2 2983 2978 test AL, strict byte 080h ; a8 80 2984 jne short 028 f8h ; 75 f42979 jne short 028d8h ; 75 f4 2985 2980 test AL, strict byte 001h ; a8 01 2986 je short 02 917h ; 74 0f2981 je short 028f7h ; 74 0f 2987 2982 mov dx, word [bp-00ch] ; 8b 56 f4 2988 2983 add dx, strict byte 00006h ; 83 c2 06 … … 2990 2985 out DX, AL ; ee 2991 2986 mov dx, strict word 00003h ; ba 03 00 2992 jmp near 02a e5h ; e9 ce 012987 jmp near 02ac5h ; e9 ce 01 2993 2988 test dl, 008h ; f6 c2 08 2994 jne short 029 2bh ; 75 0f2989 jne short 0290bh ; 75 0f 2995 2990 mov dx, word [bp-00ch] ; 8b 56 f4 2996 2991 add dx, strict byte 00006h ; 83 c2 06 … … 2998 2993 out DX, AL ; ee 2999 2994 mov dx, strict word 00004h ; ba 04 00 3000 jmp near 02a e5h ; e9 ba 012995 jmp near 02ac5h ; e9 ba 01 3001 2996 sti ; fb 3002 2997 mov ax, di ; 89 f8 … … 3011 3006 ; rep es outsw ; f3 26 6f 3012 3007 cmp byte [bp+00eh], 000h ; 80 7e 0e 00 3013 jne short 029 54h ; 75 0b3008 jne short 02934h ; 75 0b 3014 3009 lea dx, [bx+007h] ; 8d 57 07 3015 3010 in AL, DX ; ec … … 3017 3012 ; sub ah, ah ; 2a e4 3018 3013 mov dl, al ; 88 c2 3019 jmp near 02a c6h ; e9 72 013014 jmp near 02aa6h ; e9 72 01 3020 3015 lea dx, [bx+007h] ; 8d 57 07 3021 3016 in AL, DX ; ec … … 3024 3019 mov dl, al ; 88 c2 3025 3020 test AL, strict byte 080h ; a8 80 3026 jne short 029 54h ; 75 f43021 jne short 02934h ; 75 f4 3027 3022 test AL, strict byte 088h ; a8 88 3028 je near 02a c6h ; 0f 84 60 013023 je near 02aa6h ; 0f 84 60 01 3029 3024 test AL, strict byte 001h ; a8 01 3030 je short 029 75h ; 74 0b3025 je short 02955h ; 74 0b 3031 3026 mov dx, word [bp-00ch] ; 8b 56 f4 3032 3027 add dx, strict byte 00006h ; 83 c2 06 3033 3028 mov AL, strict byte 008h ; b0 08 3034 3029 out DX, AL ; ee 3035 jmp short 02 911h ; eb 9c3030 jmp short 028f1h ; eb 9c 3036 3031 mov al, dl ; 88 d0 3037 3032 and AL, strict byte 0c9h ; 24 c9 3038 3033 cmp AL, strict byte 048h ; 3c 48 3039 je short 029 88h ; 74 0b3034 je short 02968h ; 74 0b 3040 3035 mov dx, word [bp-00ch] ; 8b 56 f4 3041 3036 add dx, strict byte 00006h ; 83 c2 06 3042 3037 mov AL, strict byte 008h ; b0 08 3043 3038 out DX, AL ; ee 3044 jmp short 029 25h ; eb 9d3039 jmp short 02905h ; eb 9d 3045 3040 mov ax, word [bp+010h] ; 8b 46 10 3046 3041 shr ax, 004h ; c1 e8 04 … … 3065 3060 mov ax, word [bp+008h] ; 8b 46 08 3066 3061 cmp ax, cx ; 39 c8 3067 jbe short 029 c8h ; 76 0c3062 jbe short 029a8h ; 76 0c 3068 3063 mov ax, cx ; 89 c8 3069 3064 sub word [bp+008h], cx ; 29 4e 08 3070 3065 xor ax, cx ; 31 c8 3071 3066 mov word [bp-010h], ax ; 89 46 f0 3072 jmp short 029 d2h ; eb 0a3067 jmp short 029b2h ; eb 0a 3073 3068 mov cx, ax ; 89 c1 3074 3069 mov word [bp+008h], strict word 00000h ; c7 46 08 00 00 … … 3076 3071 xor ax, ax ; 31 c0 3077 3072 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 3078 jne short 029 fbh ; 75 213073 jne short 029dbh ; 75 21 3079 3074 mov dx, word [bp-010h] ; 8b 56 f0 3080 3075 cmp dx, word [bp+00ah] ; 3b 56 0a 3081 jbe short 029 fbh ; 76 193076 jbe short 029dbh ; 76 19 3082 3077 mov ax, word [bp-010h] ; 8b 46 f0 3083 3078 sub ax, word [bp+00ah] ; 2b 46 0a … … 3088 3083 mov word [bp+00ah], ax ; 89 46 0a 3089 3084 mov word [bp+00ch], ax ; 89 46 0c 3090 jmp short 02 a07h ; eb 0c3085 jmp short 029e7h ; eb 0c 3091 3086 mov word [bp-008h], ax ; 89 46 f8 3092 3087 mov dx, word [bp-010h] ; 8b 56 f0 … … 3096 3091 mov al, byte [bp-006h] ; 8a 46 fa 3097 3092 test cl, 003h ; f6 c1 03 3098 je short 02 a14h ; 74 023093 je short 029f4h ; 74 02 3099 3094 xor al, al ; 30 c0 3100 3095 test byte [bp-010h], 003h ; f6 46 f0 03 3101 je short 02 a1ch ; 74 023096 je short 029fch ; 74 02 3102 3097 xor al, al ; 30 c0 3103 3098 test byte [bp-008h], 003h ; f6 46 f8 03 3104 je short 02a 24h ; 74 023099 je short 02a04h ; 74 02 3105 3100 xor al, al ; 30 c0 3106 3101 test byte [bp-010h], 001h ; f6 46 f0 01 3107 je short 02a 3ch ; 74 123102 je short 02a1ch ; 74 12 3108 3103 inc word [bp-010h] ; ff 46 f0 3109 3104 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 3110 jbe short 02a 3ch ; 76 093105 jbe short 02a1ch ; 76 09 3111 3106 test byte [bp-008h], 001h ; f6 46 f8 01 3112 je short 02a 3ch ; 74 033107 je short 02a1ch ; 74 03 3113 3108 dec word [bp-008h] ; ff 4e f8 3114 3109 cmp AL, strict byte 001h ; 3c 01 3115 jne short 02a 4dh ; 75 0d3110 jne short 02a2dh ; 75 0d 3116 3111 shr word [bp-010h], 002h ; c1 6e f0 02 3117 3112 shr cx, 002h ; c1 e9 02 3118 3113 shr word [bp-008h], 002h ; c1 6e f8 02 3119 jmp short 02a 55h ; eb 083114 jmp short 02a35h ; eb 08 3120 3115 shr word [bp-010h], 1 ; d1 6e f0 3121 3116 shr cx, 1 ; d1 e9 3122 3117 shr word [bp-008h], 1 ; d1 6e f8 3123 3118 cmp AL, strict byte 001h ; 3c 01 3124 jne short 02a 85h ; 75 2c3119 jne short 02a65h ; 75 2c 3125 3120 test cx, cx ; 85 c9 3126 je short 02a 67h ; 74 0a3121 je short 02a47h ; 74 0a 3127 3122 mov dx, bx ; 89 da 3128 3123 push eax ; 66 50 3129 3124 in eax, DX ; 66 ed 3130 loop 02a 61h ; e2 fc3125 loop 02a41h ; e2 fc 3131 3126 pop eax ; 66 58 3132 3127 mov dx, bx ; 89 da … … 3137 3132 mov ax, word [bp-008h] ; 8b 46 f8 3138 3133 test ax, ax ; 85 c0 3139 je short 02a a4h ; 74 2b3134 je short 02a84h ; 74 2b 3140 3135 mov cx, ax ; 89 c1 3141 3136 push eax ; 66 50 3142 3137 in eax, DX ; 66 ed 3143 loop 02a 7dh ; e2 fc3138 loop 02a5dh ; e2 fc 3144 3139 pop eax ; 66 58 3145 jmp short 02a a4h ; eb 1f3140 jmp short 02a84h ; eb 1f 3146 3141 test cx, cx ; 85 c9 3147 je short 02a 8eh ; 74 053142 je short 02a6eh ; 74 05 3148 3143 mov dx, bx ; 89 da 3149 3144 in ax, DX ; ed 3150 loop 02a 8bh ; e2 fd3145 loop 02a6bh ; e2 fd 3151 3146 mov dx, bx ; 89 da 3152 3147 mov cx, word [bp-010h] ; 8b 4e f0 … … 3155 3150 mov ax, word [bp-008h] ; 8b 46 f8 3156 3151 test ax, ax ; 85 c0 3157 je short 02a a4h ; 74 053152 je short 02a84h ; 74 05 3158 3153 mov cx, ax ; 89 c1 3159 3154 in ax, DX ; ed 3160 loop 02a a1h ; e2 fd3155 loop 02a81h ; e2 fd 3161 3156 add word [bp+010h], si ; 01 76 10 3162 3157 xor ax, ax ; 31 c0 … … 3169 3164 mov ax, word [bp-012h] ; 8b 46 ee 3170 3165 mov word [es:si+018h], ax ; 26 89 44 18 3171 jmp near 029 54h ; e9 8e fe3166 jmp near 02934h ; e9 8e fe 3172 3167 mov al, dl ; 88 d0 3173 3168 and AL, strict byte 0e9h ; 24 e9 3174 3169 cmp AL, strict byte 040h ; 3c 40 3175 je short 02a dah ; 74 0c3170 je short 02abah ; 74 0c 3176 3171 mov dx, word [bp-00ch] ; 8b 56 f4 3177 3172 add dx, strict byte 00006h ; 83 c2 06 3178 3173 mov AL, strict byte 008h ; b0 08 3179 3174 out DX, AL ; ee 3180 jmp near 029 25h ; e9 4b fe3175 jmp near 02905h ; e9 4b fe 3181 3176 mov dx, word [bp-00ch] ; 8b 56 f4 3182 3177 add dx, strict byte 00006h ; 83 c2 06 … … 3189 3184 pop si ; 5e 3190 3185 retn 0000ch ; c2 0c 00 3191 set_diskette_ret_status_: ; 0xf2a ed LB 0x153186 set_diskette_ret_status_: ; 0xf2acd LB 0x15 3192 3187 push bx ; 53 3193 3188 push dx ; 52 … … 3197 3192 mov dx, strict word 00041h ; ba 41 00 3198 3193 mov ax, strict word 00040h ; b8 40 00 3199 call 0160eh ; e8 10 eb3194 call 0160eh ; e8 30 eb 3200 3195 pop bp ; 5d 3201 3196 pop dx ; 5a 3202 3197 pop bx ; 5b 3203 3198 retn ; c3 3204 set_diskette_current_cyl_: ; 0xf2 b02 LB 0x2a3199 set_diskette_current_cyl_: ; 0xf2ae2 LB 0x2a 3205 3200 push bx ; 53 3206 3201 push bp ; 55 … … 3208 3203 mov bl, al ; 88 c3 3209 3204 cmp AL, strict byte 001h ; 3c 01 3210 jbe short 02 b17h ; 76 0b3205 jbe short 02af7h ; 76 0b 3211 3206 push 001b0h ; 68 b0 01 3212 3207 push strict byte 00007h ; 6a 07 3213 call 018e9h ; e8 d5 ed3208 call 018e9h ; e8 f5 ed 3214 3209 add sp, strict byte 00004h ; 83 c4 04 3215 3210 movzx ax, dl ; 0f b6 c2 … … 3218 3213 mov bx, ax ; 89 c3 3219 3214 mov ax, strict word 00040h ; b8 40 00 3220 call 0160eh ; e8 e5 ea3215 call 0160eh ; e8 05 eb 3221 3216 pop bp ; 5d 3222 3217 pop bx ; 5b 3223 3218 retn ; c3 3224 floppy_reset_controller_: ; 0xf2b 2c LB 0x283219 floppy_reset_controller_: ; 0xf2b0c LB 0x28 3225 3220 push bx ; 53 3226 3221 push dx ; 52 … … 3244 3239 and AL, strict byte 0c0h ; 24 c0 3245 3240 cmp AL, strict byte 080h ; 3c 80 3246 jne short 02b 44h ; 75 f43241 jne short 02b24h ; 75 f4 3247 3242 pop bp ; 5d 3248 3243 pop dx ; 5a 3249 3244 pop bx ; 5b 3250 3245 retn ; c3 3251 floppy_prepare_controller_: ; 0xf2b 54 LB 0x8c3246 floppy_prepare_controller_: ; 0xf2b34 LB 0x8c 3252 3247 push bx ; 53 3253 3248 push cx ; 51 … … 3257 3252 mov dx, strict word 0003eh ; ba 3e 00 3258 3253 mov ax, strict word 00040h ; b8 40 00 3259 call 01600h ; e8 9a ea3254 call 01600h ; e8 ba ea 3260 3255 and AL, strict byte 07fh ; 24 7f 3261 3256 movzx bx, al ; 0f b6 d8 3262 3257 mov dx, strict word 0003eh ; ba 3e 00 3263 3258 mov ax, strict word 00040h ; b8 40 00 3264 call 0160eh ; e8 9a ea3259 call 0160eh ; e8 ba ea 3265 3260 mov dx, 003f2h ; ba f2 03 3266 3261 in AL, DX ; ec … … 3270 3265 mov byte [bp-002h], al ; 88 46 fe 3271 3266 test cx, cx ; 85 c9 3272 je short 02b 87h ; 74 043267 je short 02b67h ; 74 04 3273 3268 mov AL, strict byte 020h ; b0 20 3274 jmp short 02b 89h ; eb 023269 jmp short 02b69h ; eb 02 3275 3270 mov AL, strict byte 010h ; b0 10 3276 3271 or AL, strict byte 00ch ; 0c 0c … … 3281 3276 mov dx, strict word 00040h ; ba 40 00 3282 3277 mov ax, dx ; 89 d0 3283 call 0160eh ; e8 72 ea3278 call 0160eh ; e8 92 ea 3284 3279 mov dx, 0008bh ; ba 8b 00 3285 3280 mov ax, strict word 00040h ; b8 40 00 3286 call 01600h ; e8 5b ea3281 call 01600h ; e8 7b ea 3287 3282 shr al, 006h ; c0 e8 06 3288 3283 mov dx, 003f7h ; ba f7 03 … … 3294 3289 and AL, strict byte 0c0h ; 24 c0 3295 3290 cmp AL, strict byte 080h ; 3c 80 3296 jne short 02b ach ; 75 f43291 jne short 02b8ch ; 75 f4 3297 3292 cmp byte [bp-002h], 000h ; 80 7e fe 00 3298 jne short 02b dbh ; 75 1d3293 jne short 02bbbh ; 75 1d 3299 3294 sti ; fb 3300 3295 mov dx, strict word 0003eh ; ba 3e 00 3301 3296 mov ax, strict word 00040h ; b8 40 00 3302 call 01600h ; e8 38 ea3297 call 01600h ; e8 58 ea 3303 3298 test AL, strict byte 080h ; a8 80 3304 je short 02b bfh ; 74 f33299 je short 02b9fh ; 74 f3 3305 3300 and AL, strict byte 07fh ; 24 7f 3306 3301 cli ; fa … … 3308 3303 mov dx, strict word 0003eh ; ba 3e 00 3309 3304 mov ax, strict word 00040h ; b8 40 00 3310 call 0160eh ; e8 33 ea3305 call 0160eh ; e8 53 ea 3311 3306 leave ; c9 3312 3307 pop dx ; 5a … … 3314 3309 pop bx ; 5b 3315 3310 retn ; c3 3316 floppy_media_known_: ; 0xf2b e0 LB 0x403311 floppy_media_known_: ; 0xf2bc0 LB 0x40 3317 3312 push bx ; 53 3318 3313 push dx ; 52 … … 3322 3317 mov dx, strict word 0003eh ; ba 3e 00 3323 3318 mov ax, strict word 00040h ; b8 40 00 3324 call 01600h ; e8 10 ea3319 call 01600h ; e8 30 ea 3325 3320 mov ah, al ; 88 c4 3326 3321 test bx, bx ; 85 db 3327 je short 02b f8h ; 74 023322 je short 02bd8h ; 74 02 3328 3323 shr al, 1 ; d0 e8 3329 3324 and AL, strict byte 001h ; 24 01 3330 jne short 02 c00h ; 75 043325 jne short 02be0h ; 75 04 3331 3326 xor ah, ah ; 30 e4 3332 jmp short 02 c1ch ; eb 1c3327 jmp short 02bfch ; eb 1c 3333 3328 mov dx, 00090h ; ba 90 00 3334 3329 test bx, bx ; 85 db 3335 je short 02 c0ah ; 74 033330 je short 02beah ; 74 03 3336 3331 mov dx, 00091h ; ba 91 00 3337 3332 mov ax, strict word 00040h ; b8 40 00 3338 call 01600h ; e8 f0 e93333 call 01600h ; e8 10 ea 3339 3334 xor ah, ah ; 30 e4 3340 3335 sar ax, 004h ; c1 f8 04 3341 3336 and AL, strict byte 001h ; 24 01 3342 je short 02b fch ; 74 e33337 je short 02bdch ; 74 e3 3343 3338 mov ax, strict word 00001h ; b8 01 00 3344 3339 pop bp ; 5d … … 3346 3341 pop bx ; 5b 3347 3342 retn ; c3 3348 floppy_read_id_: ; 0xf2c 20 LB 0x493343 floppy_read_id_: ; 0xf2c00 LB 0x49 3349 3344 push bx ; 53 3350 3345 push dx ; 52 … … 3352 3347 enter 00008h, 000h ; c8 08 00 00 3353 3348 mov bx, ax ; 89 c3 3354 call 02b 54h ; e8 28 ff3349 call 02b34h ; e8 28 ff 3355 3350 mov AL, strict byte 04ah ; b0 4a 3356 3351 mov dx, 003f5h ; ba f5 03 … … 3361 3356 mov dx, strict word 0003eh ; ba 3e 00 3362 3357 mov ax, strict word 00040h ; b8 40 00 3363 call 01600h ; e8 c1 e93358 call 01600h ; e8 e1 e9 3364 3359 and AL, strict byte 080h ; 24 80 3365 3360 test al, al ; 84 c0 3366 je short 02c 36h ; 74 f13361 je short 02c16h ; 74 f1 3367 3362 cli ; fa 3368 3363 xor si, si ; 31 f6 3369 jmp short 02c 4fh ; eb 053364 jmp short 02c2fh ; eb 05 3370 3365 cmp si, strict byte 00007h ; 83 fe 07 3371 jnl short 02c 5bh ; 7d 0c3366 jnl short 02c3bh ; 7d 0c 3372 3367 mov dx, 003f5h ; ba f5 03 3373 3368 in AL, DX ; ec … … 3376 3371 mov byte [bp+si-008h], al ; 88 42 f8 3377 3372 inc si ; 46 3378 jmp short 02c 4ah ; eb ef3373 jmp short 02c2ah ; eb ef 3379 3374 test byte [bp-008h], 0c0h ; f6 46 f8 c0 3380 3375 db 00fh, 094h, 0c0h … … 3386 3381 pop bx ; 5b 3387 3382 retn ; c3 3388 floppy_drive_recal_: ; 0xf2c 69 LB 0x5e3383 floppy_drive_recal_: ; 0xf2c49 LB 0x5e 3389 3384 push bx ; 53 3390 3385 push cx ; 51 … … 3393 3388 mov bp, sp ; 89 e5 3394 3389 mov bx, ax ; 89 c3 3395 call 02b 54h ; e8 e0 fe3390 call 02b34h ; e8 e0 fe 3396 3391 mov AL, strict byte 007h ; b0 07 3397 3392 mov dx, 003f5h ; ba f5 03 … … 3402 3397 mov dx, strict word 0003eh ; ba 3e 00 3403 3398 mov ax, strict word 00040h ; b8 40 00 3404 call 01600h ; e8 79 e93399 call 01600h ; e8 99 e9 3405 3400 and AL, strict byte 080h ; 24 80 3406 3401 test al, al ; 84 c0 3407 je short 02c 7eh ; 74 f13402 je short 02c5eh ; 74 f1 3408 3403 cli ; fa 3409 3404 mov dx, strict word 0003eh ; ba 3e 00 3410 3405 mov ax, strict word 00040h ; b8 40 00 3411 call 01600h ; e8 69 e93406 call 01600h ; e8 89 e9 3412 3407 and AL, strict byte 07fh ; 24 7f 3413 3408 test bx, bx ; 85 db 3414 je short 02c a4h ; 74 073409 je short 02c84h ; 74 07 3415 3410 or AL, strict byte 002h ; 0c 02 3416 3411 mov cx, 00095h ; b9 95 00 3417 jmp short 02c a9h ; eb 053412 jmp short 02c89h ; eb 05 3418 3413 or AL, strict byte 001h ; 0c 01 3419 3414 mov cx, 00094h ; b9 94 00 … … 3421 3416 mov dx, strict word 0003eh ; ba 3e 00 3422 3417 mov ax, strict word 00040h ; b8 40 00 3423 call 0160eh ; e8 59 e93418 call 0160eh ; e8 79 e9 3424 3419 xor bx, bx ; 31 db 3425 3420 mov dx, cx ; 89 ca 3426 3421 mov ax, strict word 00040h ; b8 40 00 3427 call 0160eh ; e8 4f e93422 call 0160eh ; e8 6f e9 3428 3423 mov ax, strict word 00001h ; b8 01 00 3429 3424 pop bp ; 5d … … 3432 3427 pop bx ; 5b 3433 3428 retn ; c3 3434 floppy_media_sense_: ; 0xf2c c7 LB 0xfa3429 floppy_media_sense_: ; 0xf2ca7 LB 0xfa 3435 3430 push bx ; 53 3436 3431 push cx ; 51 … … 3441 3436 mov bp, sp ; 89 e5 3442 3437 mov di, ax ; 89 c7 3443 call 02c 69h ; e8 95 ff3438 call 02c49h ; e8 95 ff 3444 3439 test ax, ax ; 85 c0 3445 jne short 02c ddh ; 75 053440 jne short 02cbdh ; 75 05 3446 3441 xor cx, cx ; 31 c9 3447 jmp near 02d b8h ; e9 db 003442 jmp near 02d98h ; e9 db 00 3448 3443 mov ax, strict word 00010h ; b8 10 00 3449 call 0165ch ; e8 79 e93444 call 0165ch ; e8 99 e9 3450 3445 test di, di ; 85 ff 3451 jne short 02c eeh ; 75 073446 jne short 02cceh ; 75 07 3452 3447 mov cl, al ; 88 c1 3453 3448 shr cl, 004h ; c0 e9 04 3454 jmp short 02c f3h ; eb 053449 jmp short 02cd3h ; eb 05 3455 3450 mov cl, al ; 88 c1 3456 3451 and cl, 00fh ; 80 e1 0f 3457 3452 cmp cl, 001h ; 80 f9 01 3458 jne short 02 d01h ; 75 093453 jne short 02ce1h ; 75 09 3459 3454 xor cl, cl ; 30 c9 3460 3455 mov CH, strict byte 015h ; b5 15 3461 3456 mov si, strict word 00001h ; be 01 00 3462 jmp short 02d 4ch ; eb 4b3457 jmp short 02d2ch ; eb 4b 3463 3458 cmp cl, 002h ; 80 f9 02 3464 jne short 02 d0ch ; 75 063459 jne short 02cech ; 75 06 3465 3460 xor cl, cl ; 30 c9 3466 3461 mov CH, strict byte 035h ; b5 35 3467 jmp short 02c fch ; eb f03462 jmp short 02cdch ; eb f0 3468 3463 cmp cl, 003h ; 80 f9 03 3469 jne short 02 d17h ; 75 063464 jne short 02cf7h ; 75 06 3470 3465 xor cl, cl ; 30 c9 3471 3466 mov CH, strict byte 017h ; b5 17 3472 jmp short 02c fch ; eb e53467 jmp short 02cdch ; eb e5 3473 3468 cmp cl, 004h ; 80 f9 04 3474 jne short 02d 22h ; 75 063469 jne short 02d02h ; 75 06 3475 3470 xor cl, cl ; 30 c9 3476 3471 mov CH, strict byte 017h ; b5 17 3477 jmp short 02c fch ; eb da3472 jmp short 02cdch ; eb da 3478 3473 cmp cl, 005h ; 80 f9 05 3479 jne short 02d 2dh ; 75 063474 jne short 02d0dh ; 75 06 3480 3475 mov CL, strict byte 0cch ; b1 cc 3481 3476 mov CH, strict byte 0d7h ; b5 d7 3482 jmp short 02c fch ; eb cf3477 jmp short 02cdch ; eb cf 3483 3478 cmp cl, 006h ; 80 f9 06 3484 jne short 02d 38h ; 75 063479 jne short 02d18h ; 75 06 3485 3480 xor cl, cl ; 30 c9 3486 3481 mov CH, strict byte 027h ; b5 27 3487 jmp short 02c fch ; eb c43482 jmp short 02cdch ; eb c4 3488 3483 cmp cl, 007h ; 80 f9 07 3489 jne short 02d 3fh ; 75 023490 jmp short 02d 32h ; eb f33484 jne short 02d1fh ; 75 02 3485 jmp short 02d12h ; eb f3 3491 3486 cmp cl, 008h ; 80 f9 08 3492 jne short 02d 46h ; 75 023493 jmp short 02d 32h ; eb ec3487 jne short 02d26h ; 75 02 3488 jmp short 02d12h ; eb ec 3494 3489 xor cl, cl ; 30 c9 3495 3490 xor ch, ch ; 30 ed … … 3498 3493 mov dx, 0008bh ; ba 8b 00 3499 3494 mov ax, strict word 00040h ; b8 40 00 3500 call 0160eh ; e8 b6 e83495 call 0160eh ; e8 d6 e8 3501 3496 mov ax, di ; 89 f8 3502 call 02c 20h ; e8 c3 fe3497 call 02c00h ; e8 c3 fe 3503 3498 test ax, ax ; 85 c0 3504 jne short 02d 93h ; 75 323499 jne short 02d73h ; 75 32 3505 3500 mov al, cl ; 88 c8 3506 3501 and AL, strict byte 0c0h ; 24 c0 3507 3502 cmp AL, strict byte 080h ; 3c 80 3508 je short 02d 93h ; 74 2a3503 je short 02d73h ; 74 2a 3509 3504 mov al, cl ; 88 c8 3510 3505 and AL, strict byte 0c0h ; 24 c0 3511 3506 cmp AL, strict byte 0c0h ; 3c c0 3512 je short 02d 80h ; 74 0f3507 je short 02d60h ; 74 0f 3513 3508 mov ah, cl ; 88 cc 3514 3509 and ah, 03fh ; 80 e4 3f 3515 3510 cmp AL, strict byte 040h ; 3c 40 3516 je short 02d 8ch ; 74 123511 je short 02d6ch ; 74 12 3517 3512 test al, al ; 84 c0 3518 je short 02d 85h ; 74 073519 jmp short 02d 4ch ; eb cc3513 je short 02d65h ; 74 07 3514 jmp short 02d2ch ; eb cc 3520 3515 and cl, 03fh ; 80 e1 3f 3521 jmp short 02d 4ch ; eb c73516 jmp short 02d2ch ; eb c7 3522 3517 mov cl, ah ; 88 e1 3523 3518 or cl, 040h ; 80 c9 40 3524 jmp short 02d 4ch ; eb c03519 jmp short 02d2ch ; eb c0 3525 3520 mov cl, ah ; 88 e1 3526 3521 or cl, 080h ; 80 c9 80 3527 jmp short 02d 4ch ; eb b93522 jmp short 02d2ch ; eb b9 3528 3523 test di, di ; 85 ff 3529 3524 db 00fh, 095h, 0c0h … … 3534 3529 mov dx, 0008bh ; ba 8b 00 3535 3530 mov ax, strict word 00040h ; b8 40 00 3536 call 0160eh ; e8 63 e83531 call 0160eh ; e8 83 e8 3537 3532 movzx bx, ch ; 0f b6 dd 3538 3533 mov dx, di ; 89 fa 3539 3534 mov ax, strict word 00040h ; b8 40 00 3540 call 0160eh ; e8 58 e83535 call 0160eh ; e8 78 e8 3541 3536 mov cx, si ; 89 f1 3542 3537 mov ax, cx ; 89 c8 … … 3548 3543 pop bx ; 5b 3549 3544 retn ; c3 3550 floppy_drive_exists_: ; 0xf2d c1 LB 0x333545 floppy_drive_exists_: ; 0xf2da1 LB 0x33 3551 3546 push dx ; 52 3552 3547 push bp ; 55 … … 3554 3549 mov dx, ax ; 89 c2 3555 3550 mov ax, strict word 00010h ; b8 10 00 3556 call 0165ch ; e8 8f e83551 call 0165ch ; e8 af e8 3557 3552 test dx, dx ; 85 d2 3558 jne short 02d d6h ; 75 053553 jne short 02db6h ; 75 05 3559 3554 shr al, 004h ; c0 e8 04 3560 jmp short 02d d8h ; eb 023555 jmp short 02db8h ; eb 02 3561 3556 and AL, strict byte 00fh ; 24 0f 3562 3557 test al, al ; 84 c0 … … 3567 3562 pop dx ; 5a 3568 3563 retn ; c3 3569 test AL, strict byte 034h ; a8 34 3570 mov BL, strict byte 034h ; b3 34 3571 mov bp, 0c434h ; bd 34 c4 3572 xor AL, strict byte 0cbh ; 34 cb 3573 xor AL, strict byte 0d2h ; 34 d2 3574 xor AL, strict byte 0d9h ; 34 d9 3575 xor AL, strict byte 0e3h ; 34 e3 3576 xor AL, strict byte 0eah ; 34 ea 3564 mov byte [si], dh ; 88 34 3565 xchg bx, ax ; 93 3566 xor AL, strict byte 09dh ; 34 9d 3567 xor AL, strict byte 0a4h ; 34 a4 3568 xor AL, strict byte 0abh ; 34 ab 3569 xor AL, strict byte 0b2h ; 34 b2 3570 xor AL, strict byte 0b9h ; 34 b9 3571 xor AL, strict byte 0c3h ; 34 c3 3572 xor AL, strict byte 0cah ; 34 ca 3577 3573 db 034h 3578 _int13_diskette_function: ; 0xf2d f4 LB 0x7993574 _int13_diskette_function: ; 0xf2dd4 LB 0x799 3579 3575 push si ; 56 3580 3576 push di ; 57 … … 3587 3583 mov ah, byte [bp+012h] ; 8a 66 12 3588 3584 cmp bl, 008h ; 80 fb 08 3589 jc short 02e 4bh ; 72 3a3585 jc short 02e2bh ; 72 3a 3590 3586 mov dx, word [bp+020h] ; 8b 56 20 3591 3587 or dl, 001h ; 80 ca 01 3592 3588 cmp bl, 008h ; 80 fb 08 3593 jbe near 034 29h ; 0f 86 0b 063589 jbe near 03409h ; 0f 86 0b 06 3594 3590 cmp bl, 016h ; 80 fb 16 3595 jc short 02e 41h ; 72 1e3591 jc short 02e21h ; 72 1e 3596 3592 or si, 00100h ; 81 ce 00 01 3597 3593 mov cx, si ; 89 f1 3598 3594 cmp bl, 016h ; 80 fb 16 3599 jbe near 035 48h ; 0f 86 18 073595 jbe near 03528h ; 0f 86 18 07 3600 3596 cmp bl, 018h ; 80 fb 18 3601 je near 035 4dh ; 0f 84 16 073597 je near 0352dh ; 0f 84 16 07 3602 3598 cmp bl, 017h ; 80 fb 17 3603 je near 035 4dh ; 0f 84 0f 073604 jmp near 035 6ah ; e9 29 073599 je near 0352dh ; 0f 84 0f 07 3600 jmp near 0354ah ; e9 29 07 3605 3601 cmp bl, 015h ; 80 fb 15 3606 je near 03 50ch ; 0f 84 c4 063607 jmp near 035 6ah ; e9 1f 073602 je near 034ech ; 0f 84 c4 06 3603 jmp near 0354ah ; e9 1f 07 3608 3604 cmp bl, 001h ; 80 fb 01 3609 jc short 02e 65h ; 72 153610 jbe near 02e dbh ; 0f 86 87 003605 jc short 02e45h ; 72 15 3606 jbe near 02ebbh ; 0f 86 87 00 3611 3607 cmp bl, 005h ; 80 fb 05 3612 je near 032 82h ; 0f 84 27 043608 je near 03262h ; 0f 84 27 04 3613 3609 cmp bl, 004h ; 80 fb 04 3614 jbe near 02e f9h ; 0f 86 97 003615 jmp near 035 6ah ; e9 05 073610 jbe near 02ed9h ; 0f 86 97 00 3611 jmp near 0354ah ; e9 05 07 3616 3612 test bl, bl ; 84 db 3617 jne near 035 6ah ; 0f 85 ff 063613 jne near 0354ah ; 0f 85 ff 06 3618 3614 mov al, byte [bp+012h] ; 8a 46 12 3619 3615 mov byte [bp-00ah], al ; 88 46 f6 3620 3616 cmp AL, strict byte 001h ; 3c 01 3621 jbe short 02e 89h ; 76 143617 jbe short 02e69h ; 76 14 3622 3618 mov ax, word [bp+01ah] ; 8b 46 1a 3623 3619 xor ah, ah ; 30 e4 … … 3625 3621 mov word [bp+01ah], ax ; 89 46 1a 3626 3622 mov ax, strict word 00001h ; b8 01 00 3627 call 02a edh ; e8 67 fc3628 jmp near 032 54h ; e9 cb 033623 call 02acdh ; e8 67 fc 3624 jmp near 03234h ; e9 cb 03 3629 3625 mov ax, strict word 00010h ; b8 10 00 3630 call 0165ch ; e8 cd e73626 call 0165ch ; e8 ed e7 3631 3627 cmp byte [bp-00ah], 000h ; 80 7e f6 00 3632 jne short 02e 9ch ; 75 073628 jne short 02e7ch ; 75 07 3633 3629 mov bl, al ; 88 c3 3634 3630 shr bl, 004h ; c0 eb 04 3635 jmp short 02e a1h ; eb 053631 jmp short 02e81h ; eb 05 3636 3632 mov bl, al ; 88 c3 3637 3633 and bl, 00fh ; 80 e3 0f 3638 3634 test bl, bl ; 84 db 3639 jne short 02e b5h ; 75 103635 jne short 02e95h ; 75 10 3640 3636 mov ax, word [bp+01ah] ; 8b 46 1a 3641 3637 xor ah, ah ; 30 e4 … … 3643 3639 mov word [bp+01ah], ax ; 89 46 1a 3644 3640 mov ax, 00080h ; b8 80 00 3645 jmp short 02e 83h ; eb ce3641 jmp short 02e63h ; eb ce 3646 3642 xor bx, bx ; 31 db 3647 3643 mov dx, strict word 0003eh ; ba 3e 00 3648 3644 mov ax, strict word 00040h ; b8 40 00 3649 call 0160eh ; e8 4e e73645 call 0160eh ; e8 6e e7 3650 3646 xor al, al ; 30 c0 3651 3647 mov byte [bp+01bh], al ; 88 46 1b 3652 3648 xor ah, ah ; 30 e4 3653 call 02a edh ; e8 23 fc3649 call 02acdh ; e8 23 fc 3654 3650 and byte [bp+020h], 0feh ; 80 66 20 fe 3655 3651 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3656 3652 xor dx, dx ; 31 d2 3657 call 02 b02h ; e8 2b fc3653 call 02ae2h ; e8 2b fc 3658 3654 leave ; c9 3659 3655 pop di ; 5f … … 3663 3659 mov dx, 00441h ; ba 41 04 3664 3660 xor ax, ax ; 31 c0 3665 call 01600h ; e8 19 e73661 call 01600h ; e8 39 e7 3666 3662 movzx dx, al ; 0f b6 d0 3667 3663 sal dx, 008h ; c1 e2 08 … … 3669 3665 mov word [bp+01ah], si ; 89 76 1a 3670 3666 test al, al ; 84 c0 3671 je short 02e d7h ; 74 e13672 jmp near 032 54h ; e9 5b 033667 je short 02eb7h ; 74 e1 3668 jmp near 03234h ; e9 5b 03 3673 3669 mov al, byte [bp+01ah] ; 8a 46 1a 3674 3670 mov byte [bp-008h], al ; 88 46 f8 … … 3683 3679 mov byte [bp-00ah], ah ; 88 66 f6 3684 3680 cmp ah, 001h ; 80 fc 01 3685 jnbe short 02f 2fh ; 77 103681 jnbe short 02f0fh ; 77 10 3686 3682 cmp dl, 001h ; 80 fa 01 3687 jnbe short 02f 2fh ; 77 0b3683 jnbe short 02f0fh ; 77 0b 3688 3684 mov al, byte [bp-008h] ; 8a 46 f8 3689 3685 test al, al ; 84 c0 3690 je short 02f 2fh ; 74 043686 je short 02f0fh ; 74 04 3691 3687 cmp AL, strict byte 048h ; 3c 48 3692 jbe short 02f 58h ; 76 293693 mov bx, 00c d6h ; bb d60c3688 jbe short 02f38h ; 76 29 3689 mov bx, 00cech ; bb ec 0c 3694 3690 mov cx, ds ; 8c d9 3695 3691 mov ax, strict word 00004h ; b8 04 00 3696 call 018aeh ; e8 74 e93692 call 018aeh ; e8 94 e9 3697 3693 push 001d5h ; 68 d5 01 3698 3694 push 001edh ; 68 ed 01 3699 3695 push strict byte 00004h ; 6a 04 3700 call 018e9h ; e8 a4 e93696 call 018e9h ; e8 c4 e9 3701 3697 add sp, strict byte 00006h ; 83 c4 06 3702 3698 mov ax, word [bp+01ah] ; 8b 46 1a … … 3705 3701 mov word [bp+01ah], ax ; 89 46 1a 3706 3702 mov ax, strict word 00001h ; b8 01 00 3707 jmp short 02f c9h ; eb 713703 jmp short 02fa9h ; eb 71 3708 3704 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3709 call 02d c1h ; e8 62 fe3705 call 02da1h ; e8 62 fe 3710 3706 test ax, ax ; 85 c0 3711 je near 030 62h ; 0f 84 fd 003707 je near 03042h ; 0f 84 fd 00 3712 3708 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 3713 3709 mov ax, dx ; 89 d0 3714 call 02b e0h ; e8 72 fc3710 call 02bc0h ; e8 72 fc 3715 3711 test ax, ax ; 85 c0 3716 jne short 02f 8bh ; 75 193712 jne short 02f6bh ; 75 19 3717 3713 mov ax, dx ; 89 d0 3718 call 02c c7h ; e8 50 fd3714 call 02ca7h ; e8 50 fd 3719 3715 test ax, ax ; 85 c0 3720 jne short 02f 8bh ; 75 103716 jne short 02f6bh ; 75 10 3721 3717 mov ax, word [bp+01ah] ; 8b 46 1a 3722 3718 xor ah, ah ; 30 e4 … … 3724 3720 mov word [bp+01ah], ax ; 89 46 1a 3725 3721 mov ax, strict word 0000ch ; b8 0c 00 3726 jmp short 02f c9h ; eb 3e3722 jmp short 02fa9h ; eb 3e 3727 3723 cmp ch, 002h ; 80 fd 02 3728 jne near 031 20h ; 0f 85 8e 013724 jne near 03100h ; 0f 85 8e 01 3729 3725 mov dx, word [bp+00ah] ; 8b 56 0a 3730 3726 shr dx, 00ch ; c1 ea 0c … … 3735 3731 add bx, cx ; 01 cb 3736 3732 cmp bx, cx ; 39 cb 3737 jnc short 02f abh ; 73 023733 jnc short 02f8bh ; 73 02 3738 3734 db 0feh, 0c4h 3739 3735 ; inc ah ; fe c4 … … 3744 3740 add dx, cx ; 01 ca 3745 3741 cmp dx, bx ; 39 da 3746 jnc short 02f d3h ; 73 183742 jnc short 02fb3h ; 73 18 3747 3743 mov ax, word [bp+01ah] ; 8b 46 1a 3748 3744 xor ah, ah ; 30 e4 … … 3750 3746 mov word [bp+01ah], ax ; 89 46 1a 3751 3747 mov ax, strict word 00009h ; b8 09 00 3752 call 02a edh ; e8 21 fb3748 call 02acdh ; e8 21 fb 3753 3749 mov byte [bp+01ah], 000h ; c6 46 1a 00 3754 jmp near 032 54h ; e9 81 023750 jmp near 03234h ; e9 81 02 3755 3751 mov AL, strict byte 006h ; b0 06 3756 3752 mov dx, strict word 0000ah ; ba 0a 00 … … 3785 3781 out DX, AL ; ee 3786 3782 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3787 call 02b 54h ; e8 3d fb3783 call 02b34h ; e8 3d fb 3788 3784 mov AL, strict byte 0e6h ; b0 e6 3789 3785 mov dx, 003f5h ; ba f5 03 … … 3816 3812 mov dx, strict word 00040h ; ba 40 00 3817 3813 mov ax, dx ; 89 d0 3818 call 01600h ; e8 a5 e53814 call 01600h ; e8 c5 e5 3819 3815 test al, al ; 84 c0 3820 jne short 030 73h ; 75 143821 call 02b 2ch ; e8 ca fa3816 jne short 03053h ; 75 14 3817 call 02b0ch ; e8 ca fa 3822 3818 mov ax, word [bp+01ah] ; 8b 46 1a 3823 3819 xor ah, ah ; 30 e4 … … 3825 3821 mov word [bp+01ah], ax ; 89 46 1a 3826 3822 mov ax, 00080h ; b8 80 00 3827 jmp near 02f c9h ; e9 56 ff3823 jmp near 02fa9h ; e9 56 ff 3828 3824 mov dx, strict word 0003eh ; ba 3e 00 3829 3825 mov ax, strict word 00040h ; b8 40 00 3830 call 01600h ; e8 84 e53826 call 01600h ; e8 a4 e5 3831 3827 and AL, strict byte 080h ; 24 80 3832 3828 test al, al ; 84 c0 3833 je short 030 53h ; 74 d13829 je short 03033h ; 74 d1 3834 3830 cli ; fa 3835 3831 mov dx, strict word 0003eh ; ba 3e 00 3836 3832 mov ax, strict word 00040h ; b8 40 00 3837 call 01600h ; e8 74 e53833 call 01600h ; e8 94 e5 3838 3834 and AL, strict byte 07fh ; 24 7f 3839 3835 movzx bx, al ; 0f b6 d8 3840 3836 mov dx, strict word 0003eh ; ba 3e 00 3841 3837 mov ax, strict word 00040h ; b8 40 00 3842 call 0160eh ; e8 74 e53838 call 0160eh ; e8 94 e5 3843 3839 mov dx, 003f4h ; ba f4 03 3844 3840 in AL, DX ; ec … … 3847 3843 and AL, strict byte 0c0h ; 24 c0 3848 3844 cmp AL, strict byte 0c0h ; 3c c0 3849 je short 030 b4h ; 74 0e3845 je short 03094h ; 74 0e 3850 3846 push 001d5h ; 68 d5 01 3851 3847 push 00208h ; 68 08 02 3852 3848 push strict byte 00007h ; 6a 07 3853 call 018e9h ; e8 38 e83849 call 018e9h ; e8 58 e8 3854 3850 add sp, strict byte 00006h ; 83 c4 06 3855 3851 xor si, si ; 31 f6 3856 jmp short 030 bdh ; eb 053852 jmp short 0309dh ; eb 05 3857 3853 cmp si, strict byte 00007h ; 83 fe 07 3858 jnl short 030 d5h ; 7d 183854 jnl short 030b5h ; 7d 18 3859 3855 mov dx, 003f5h ; ba f5 03 3860 3856 in AL, DX ; ec … … 3865 3861 lea dx, [si+042h] ; 8d 54 42 3866 3862 mov ax, strict word 00040h ; b8 40 00 3867 call 0160eh ; e8 3c e53863 call 0160eh ; e8 5c e5 3868 3864 inc si ; 46 3869 jmp short 030 b8h ; eb e33865 jmp short 03098h ; eb e3 3870 3866 test byte [bp-012h], 0c0h ; f6 46 ee c0 3871 je short 030 ech ; 74 113867 je short 030cch ; 74 11 3872 3868 mov ax, word [bp+01ah] ; 8b 46 1a 3873 3869 xor ah, ah ; 30 e4 … … 3875 3871 mov word [bp+01ah], ax ; 89 46 1a 3876 3872 mov ax, strict word 00020h ; b8 20 00 3877 jmp near 02f c9h ; e9 dd fe3873 jmp near 02fa9h ; e9 dd fe 3878 3874 movzx ax, byte [bp-008h] ; 0f b6 46 f8 3879 3875 sal ax, 009h ; c1 e0 09 … … 3893 3889 movzx dx, byte [bp-004h] ; 0f b6 56 fc 3894 3890 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3895 call 02 b02h ; e8 ed f93891 call 02ae2h ; e8 ed f9 3896 3892 mov byte [bp+01bh], 000h ; c6 46 1b 00 3897 3893 and byte [bp+020h], 0feh ; 80 66 20 fe 3898 jmp near 02e d7h ; e9 b7 fd3894 jmp near 02eb7h ; e9 b7 fd 3899 3895 cmp ch, 003h ; 80 fd 03 3900 jne near 032 6ch ; 0f 85 45 013896 jne near 0324ch ; 0f 85 45 01 3901 3897 mov dx, word [bp+00ah] ; 8b 56 0a 3902 3898 shr dx, 00ch ; c1 ea 0c … … 3907 3903 add bx, cx ; 01 cb 3908 3904 cmp bx, cx ; 39 cb 3909 jnc short 031 40h ; 73 023905 jnc short 03120h ; 73 02 3910 3906 db 0feh, 0c4h 3911 3907 ; inc ah ; fe c4 … … 3916 3912 add dx, cx ; 01 ca 3917 3913 cmp dx, bx ; 39 da 3918 jc near 02f bbh ; 0f 82 69 fe3914 jc near 02f9bh ; 0f 82 69 fe 3919 3915 mov AL, strict byte 006h ; b0 06 3920 3916 mov dx, strict word 0000ah ; ba 0a 00 … … 3948 3944 out DX, AL ; ee 3949 3945 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3950 call 02b 54h ; e8 bf f93946 call 02b34h ; e8 bf f9 3951 3947 mov AL, strict byte 0c5h ; b0 c5 3952 3948 mov dx, 003f5h ; ba f5 03 … … 3979 3975 mov dx, strict word 00040h ; ba 40 00 3980 3976 mov ax, dx ; 89 d0 3981 call 01600h ; e8 27 e43977 call 01600h ; e8 47 e4 3982 3978 test al, al ; 84 c0 3983 je near 030 5fh ; 0f 84 80 fe3979 je near 0303fh ; 0f 84 80 fe 3984 3980 mov dx, strict word 0003eh ; ba 3e 00 3985 3981 mov ax, strict word 00040h ; b8 40 00 3986 call 01600h ; e8 18 e43982 call 01600h ; e8 38 e4 3987 3983 and AL, strict byte 080h ; 24 80 3988 3984 test al, al ; 84 c0 3989 je short 031 d1h ; 74 e33985 je short 031b1h ; 74 e3 3990 3986 cli ; fa 3991 3987 mov dx, strict word 0003eh ; ba 3e 00 3992 3988 mov ax, strict word 00040h ; b8 40 00 3993 call 01600h ; e8 08 e43989 call 01600h ; e8 28 e4 3994 3990 and AL, strict byte 07fh ; 24 7f 3995 3991 movzx bx, al ; 0f b6 d8 3996 3992 mov dx, strict word 0003eh ; ba 3e 00 3997 3993 mov ax, strict word 00040h ; b8 40 00 3998 call 0160eh ; e8 08 e43994 call 0160eh ; e8 28 e4 3999 3995 mov dx, 003f4h ; ba f4 03 4000 3996 in AL, DX ; ec … … 4003 3999 and AL, strict byte 0c0h ; 24 c0 4004 4000 cmp AL, strict byte 0c0h ; 3c c0 4005 je short 032 20h ; 74 0e4001 je short 03200h ; 74 0e 4006 4002 push 001d5h ; 68 d5 01 4007 4003 push 00208h ; 68 08 02 4008 4004 push strict byte 00007h ; 6a 07 4009 call 018e9h ; e8 cc e64005 call 018e9h ; e8 ec e6 4010 4006 add sp, strict byte 00006h ; 83 c4 06 4011 4007 xor si, si ; 31 f6 4012 jmp short 032 29h ; eb 054008 jmp short 03209h ; eb 05 4013 4009 cmp si, strict byte 00007h ; 83 fe 07 4014 jnl short 032 41h ; 7d 184010 jnl short 03221h ; 7d 18 4015 4011 mov dx, 003f5h ; ba f5 03 4016 4012 in AL, DX ; ec … … 4021 4017 lea dx, [si+042h] ; 8d 54 42 4022 4018 mov ax, strict word 00040h ; b8 40 00 4023 call 0160eh ; e8 d0 e34019 call 0160eh ; e8 f0 e3 4024 4020 inc si ; 46 4025 jmp short 032 24h ; eb e34021 jmp short 03204h ; eb e3 4026 4022 test byte [bp-012h], 0c0h ; f6 46 ee c0 4027 je near 03 10ah ; 0f 84 c1 fe4023 je near 030eah ; 0f 84 c1 fe 4028 4024 test byte [bp-011h], 002h ; f6 46 ef 02 4029 je short 032 5bh ; 74 0c4025 je short 0323bh ; 74 0c 4030 4026 mov word [bp+01ah], 00300h ; c7 46 1a 00 03 4031 4027 or byte [bp+020h], 001h ; 80 4e 20 01 4032 jmp near 02e d7h ; e9 7c fc4028 jmp near 02eb7h ; e9 7c fc 4033 4029 push 001d5h ; 68 d5 01 4034 4030 push 0021ch ; 68 1c 02 4035 4031 push strict byte 00007h ; 6a 07 4036 call 018e9h ; e8 83 e64032 call 018e9h ; e8 a3 e6 4037 4033 add sp, strict byte 00006h ; 83 c4 06 4038 jmp near 03 10ah ; e9 9e fe4034 jmp near 030eah ; e9 9e fe 4039 4035 movzx dx, byte [bp-004h] ; 0f b6 56 fc 4040 4036 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 4041 call 02 b02h ; e8 8b f84037 call 02ae2h ; e8 8b f8 4042 4038 and byte [bp+020h], 0feh ; 80 66 20 fe 4043 4039 mov byte [bp+01bh], 000h ; c6 46 1b 00 4044 jmp near 02e d7h ; e9 55 fc4040 jmp near 02eb7h ; e9 55 fc 4045 4041 mov al, byte [bp+01ah] ; 8a 46 1a 4046 4042 mov byte [bp-008h], al ; 88 46 f8 … … 4053 4049 mov byte [bp-00ah], bl ; 88 5e f6 4054 4050 cmp bl, 001h ; 80 fb 01 4055 jnbe short 032 b6h ; 77 144051 jnbe short 03296h ; 77 14 4056 4052 cmp AL, strict byte 001h ; 3c 01 4057 jnbe short 032 b6h ; 77 104053 jnbe short 03296h ; 77 10 4058 4054 cmp dl, 04fh ; 80 fa 4f 4059 jnbe short 032 b6h ; 77 0b4055 jnbe short 03296h ; 77 0b 4060 4056 mov al, byte [bp-008h] ; 8a 46 f8 4061 4057 test al, al ; 84 c0 4062 je short 032 b6h ; 74 044058 je short 03296h ; 74 04 4063 4059 cmp AL, strict byte 012h ; 3c 12 4064 jbe short 032 cbh ; 76 154060 jbe short 032abh ; 76 15 4065 4061 mov ax, word [bp+01ah] ; 8b 46 1a 4066 4062 xor ah, ah ; 30 e4 … … 4068 4064 mov word [bp+01ah], ax ; 89 46 1a 4069 4065 mov ax, strict word 00001h ; b8 01 00 4070 call 02a edh ; e8 26 f84066 call 02acdh ; e8 26 f8 4071 4067 or byte [bp+020h], 001h ; 80 4e 20 01 4072 4068 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 4073 call 02d c1h ; e8 ef fa4069 call 02da1h ; e8 ef fa 4074 4070 test ax, ax ; 85 c0 4075 je near 02e a5h ; 0f 84 cd fb4071 je near 02e85h ; 0f 84 cd fb 4076 4072 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 4077 4073 mov ax, dx ; 89 d0 4078 call 02b e0h ; e8 ff f84074 call 02bc0h ; e8 ff f8 4079 4075 test ax, ax ; 85 c0 4080 jne short 032 f0h ; 75 0b4076 jne short 032d0h ; 75 0b 4081 4077 mov ax, dx ; 89 d0 4082 call 02c c7h ; e8 dd f94078 call 02ca7h ; e8 dd f9 4083 4079 test ax, ax ; 85 c0 4084 je near 02f 7bh ; 0f 84 8b fc4080 je near 02f5bh ; 0f 84 8b fc 4085 4081 mov dx, word [bp+00ah] ; 8b 56 0a 4086 4082 shr dx, 00ch ; c1 ea 0c … … 4091 4087 add bx, cx ; 01 cb 4092 4088 cmp bx, cx ; 39 cb 4093 jnc short 03 309h ; 73 024089 jnc short 032e9h ; 73 02 4094 4090 db 0feh, 0c4h 4095 4091 ; inc ah ; fe c4 … … 4100 4096 add dx, cx ; 01 ca 4101 4097 cmp dx, bx ; 39 da 4102 jc near 02f bbh ; 0f 82 a0 fc4098 jc near 02f9bh ; 0f 82 a0 fc 4103 4099 mov AL, strict byte 006h ; b0 06 4104 4100 mov dx, strict word 0000ah ; ba 0a 00 … … 4132 4128 out DX, AL ; ee 4133 4129 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 4134 call 02b 54h ; e8 f6 f74130 call 02b34h ; e8 f6 f7 4135 4131 mov AL, strict byte 04dh ; b0 4d 4136 4132 mov dx, 003f5h ; ba f5 03 … … 4153 4149 mov dx, strict word 00040h ; ba 40 00 4154 4150 mov ax, dx ; 89 d0 4155 call 01600h ; e8 75 e24151 call 01600h ; e8 95 e2 4156 4152 test al, al ; 84 c0 4157 jne short 033 95h ; 75 064158 call 02b 2ch ; e8 9a f74159 jmp near 02e a5h ; e9 10 fb4153 jne short 03375h ; 75 06 4154 call 02b0ch ; e8 9a f7 4155 jmp near 02e85h ; e9 10 fb 4160 4156 mov dx, strict word 0003eh ; ba 3e 00 4161 4157 mov ax, strict word 00040h ; b8 40 00 4162 call 01600h ; e8 62 e24158 call 01600h ; e8 82 e2 4163 4159 and AL, strict byte 080h ; 24 80 4164 4160 test al, al ; 84 c0 4165 je short 033 83h ; 74 df4161 je short 03363h ; 74 df 4166 4162 cli ; fa 4167 4163 mov dx, strict word 0003eh ; ba 3e 00 4168 4164 mov ax, strict word 00040h ; b8 40 00 4169 call 01600h ; e8 52 e24165 call 01600h ; e8 72 e2 4170 4166 and AL, strict byte 07fh ; 24 7f 4171 4167 movzx bx, al ; 0f b6 d8 4172 4168 mov dx, strict word 0003eh ; ba 3e 00 4173 4169 mov ax, strict word 00040h ; b8 40 00 4174 call 0160eh ; e8 52 e24170 call 0160eh ; e8 72 e2 4175 4171 mov dx, 003f4h ; ba f4 03 4176 4172 in AL, DX ; ec … … 4179 4175 and AL, strict byte 0c0h ; 24 c0 4180 4176 cmp AL, strict byte 0c0h ; 3c c0 4181 je short 033 d6h ; 74 0e4177 je short 033b6h ; 74 0e 4182 4178 push 001d5h ; 68 d5 01 4183 4179 push 00208h ; 68 08 02 4184 4180 push strict byte 00007h ; 6a 07 4185 call 018e9h ; e8 16 e54181 call 018e9h ; e8 36 e5 4186 4182 add sp, strict byte 00006h ; 83 c4 06 4187 4183 xor si, si ; 31 f6 4188 jmp short 033 dfh ; eb 054184 jmp short 033bfh ; eb 05 4189 4185 cmp si, strict byte 00007h ; 83 fe 07 4190 jnl short 033 f7h ; 7d 184186 jnl short 033d7h ; 7d 18 4191 4187 mov dx, 003f5h ; ba f5 03 4192 4188 in AL, DX ; ec … … 4197 4193 lea dx, [si+042h] ; 8d 54 42 4198 4194 mov ax, strict word 00040h ; b8 40 00 4199 call 0160eh ; e8 1a e24195 call 0160eh ; e8 3a e2 4200 4196 inc si ; 46 4201 jmp short 033 dah ; eb e34197 jmp short 033bah ; eb e3 4202 4198 test byte [bp-012h], 0c0h ; f6 46 ee c0 4203 je short 03 413h ; 74 164199 je short 033f3h ; 74 16 4204 4200 test byte [bp-011h], 002h ; f6 46 ef 02 4205 jne near 032 4fh ; 0f 85 4a fe4201 jne near 0322fh ; 0f 85 4a fe 4206 4202 push 001d5h ; 68 d5 01 4207 4203 push 0022ch ; 68 2c 02 4208 4204 push strict byte 00007h ; 6a 07 4209 call 018e9h ; e8 d9 e44205 call 018e9h ; e8 f9 e4 4210 4206 add sp, strict byte 00006h ; 83 c4 06 4211 4207 xor al, al ; 30 c0 4212 4208 mov byte [bp+01bh], al ; 88 46 1b 4213 4209 xor ah, ah ; 30 e4 4214 call 02a edh ; e8 d0 f64210 call 02acdh ; e8 d0 f6 4215 4211 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 4216 4212 xor dx, dx ; 31 d2 4217 call 02 b02h ; e8 dc f64218 jmp near 03 119h ; e9 f0 fc4213 call 02ae2h ; e8 dc f6 4214 jmp near 030f9h ; e9 f0 fc 4219 4215 mov byte [bp-00ah], ah ; 88 66 f6 4220 4216 cmp ah, 001h ; 80 fc 01 4221 jbe short 034 51h ; 76 204217 jbe short 03431h ; 76 20 4222 4218 xor ax, ax ; 31 c0 4223 4219 mov word [bp+01ah], ax ; 89 46 1a … … 4230 4226 mov word [bp+016h], ax ; 89 46 16 4231 4227 mov word [bp+020h], dx ; 89 56 20 4232 jmp near 02e d7h ; e9 86 fa4228 jmp near 02eb7h ; e9 86 fa 4233 4229 mov ax, strict word 00010h ; b8 10 00 4234 call 0165ch ; e8 05 e24230 call 0165ch ; e8 25 e2 4235 4231 mov bl, al ; 88 c3 4236 4232 xor cl, cl ; 30 c9 4237 4233 test AL, strict byte 0f0h ; a8 f0 4238 je short 034 61h ; 74 024234 je short 03441h ; 74 02 4239 4235 mov CL, strict byte 001h ; b1 01 4240 4236 test bl, 00fh ; f6 c3 0f 4241 je short 034 68h ; 74 024237 je short 03448h ; 74 02 4242 4238 db 0feh, 0c1h 4243 4239 ; inc cl ; fe c1 4244 4240 cmp byte [bp-00ah], 000h ; 80 7e f6 00 4245 jne short 034 73h ; 75 054241 jne short 03453h ; 75 05 4246 4242 shr bl, 004h ; c0 eb 04 4247 jmp short 034 76h ; eb 034243 jmp short 03456h ; eb 03 4248 4244 and bl, 00fh ; 80 e3 0f 4249 4245 xor al, al ; 30 c0 … … 4259 4255 mov word [bp+016h], dx ; 89 56 16 4260 4256 cmp bl, 008h ; 80 fb 08 4261 jnbe short 034 f1h ; 77 594257 jnbe short 034d1h ; 77 59 4262 4258 add si, si ; 01 f6 4263 4259 mov ax, dx ; 89 d0 … … 4265 4261 mov bx, ax ; 89 c3 4266 4262 or bh, 001h ; 80 cf 01 4267 jmp word [cs:si+02d e2h] ; 2e ff a4 e2 2d4263 jmp word [cs:si+02dc2h] ; 2e ff a4 c2 2d 4268 4264 mov word [bp+018h], strict word 00000h ; c7 46 18 00 00 4269 4265 mov byte [bp+017h], 000h ; c6 46 17 00 4270 jmp short 034 ffh ; eb 4c4266 jmp short 034dfh ; eb 4c 4271 4267 mov word [bp+018h], 02709h ; c7 46 18 09 27 4272 4268 mov word [bp+016h], bx ; 89 5e 16 4273 jmp short 034 ffh ; eb 424269 jmp short 034dfh ; eb 42 4274 4270 mov word [bp+018h], 04f0fh ; c7 46 18 0f 4f 4275 jmp short 034 b8h ; eb f44271 jmp short 03498h ; eb f4 4276 4272 mov word [bp+018h], 04f09h ; c7 46 18 09 4f 4277 jmp short 034 b8h ; eb ed4273 jmp short 03498h ; eb ed 4278 4274 mov word [bp+018h], 04f12h ; c7 46 18 12 4f 4279 jmp short 034 b8h ; eb e64275 jmp short 03498h ; eb e6 4280 4276 mov word [bp+018h], 04f24h ; c7 46 18 24 4f 4281 jmp short 034 b8h ; eb df4277 jmp short 03498h ; eb df 4282 4278 mov word [bp+018h], 02708h ; c7 46 18 08 27 4283 4279 mov word [bp+016h], ax ; 89 46 16 4284 jmp short 034 ffh ; eb 1c4280 jmp short 034dfh ; eb 1c 4285 4281 mov word [bp+018h], 02709h ; c7 46 18 09 27 4286 jmp short 034 deh ; eb f44282 jmp short 034beh ; eb f4 4287 4283 mov word [bp+018h], 02708h ; c7 46 18 08 27 4288 jmp short 034 b8h ; eb c74284 jmp short 03498h ; eb c7 4289 4285 push 001d5h ; 68 d5 01 4290 4286 push 0023dh ; 68 3d 02 4291 4287 push strict byte 00007h ; 6a 07 4292 call 018e9h ; e8 ed e34288 call 018e9h ; e8 0d e4 4293 4289 add sp, strict byte 00006h ; 83 c4 06 4294 4290 mov word [bp+00ah], 0f000h ; c7 46 0a 00 f0 4295 4291 mov word [bp+00ch], 0efc7h ; c7 46 0c c7 ef 4296 jmp near 03 119h ; e9 0d fc4292 jmp near 030f9h ; e9 0d fc 4297 4293 mov byte [bp-00ah], ah ; 88 66 f6 4298 4294 cmp ah, 001h ; 80 fc 01 4299 jbe short 03 51ah ; 76 064295 jbe short 034fah ; 76 06 4300 4296 mov word [bp+01ah], si ; 89 76 1a 4301 jmp near 034 4bh ; e9 31 ff4297 jmp near 0342bh ; e9 31 ff 4302 4298 mov ax, strict word 00010h ; b8 10 00 4303 call 0165ch ; e8 3c e14299 call 0165ch ; e8 5c e1 4304 4300 cmp byte [bp-00ah], 000h ; 80 7e f6 00 4305 jne short 035 2dh ; 75 074301 jne short 0350dh ; 75 07 4306 4302 mov bl, al ; 88 c3 4307 4303 shr bl, 004h ; c0 eb 04 4308 jmp short 035 32h ; eb 054304 jmp short 03512h ; eb 05 4309 4305 mov bl, al ; 88 c3 4310 4306 and bl, 00fh ; 80 e3 0f … … 4313 4309 xor ah, ah ; 30 e4 4314 4310 test bl, bl ; 84 db 4315 je short 035 42h ; 74 034311 je short 03522h ; 74 03 4316 4312 or ah, 001h ; 80 cc 01 4317 4313 mov word [bp+01ah], ax ; 89 46 1a 4318 jmp near 02e d7h ; e9 8f f94314 jmp near 02eb7h ; e9 8f f9 4319 4315 cmp ah, 001h ; 80 fc 01 4320 jbe short 035 59h ; 76 0c4316 jbe short 03539h ; 76 0c 4321 4317 mov word [bp+01ah], si ; 89 76 1a 4322 4318 mov ax, strict word 00001h ; b8 01 00 4323 call 02a edh ; e8 97 f54324 jmp near 034 4bh ; e9 f2 fe4319 call 02acdh ; e8 97 f5 4320 jmp near 0342bh ; e9 f2 fe 4325 4321 mov ax, word [bp+01ah] ; 8b 46 1a 4326 4322 xor ah, ah ; 30 e4 … … 4328 4324 mov word [bp+01ah], ax ; 89 46 1a 4329 4325 mov ax, strict word 00006h ; b8 06 00 4330 jmp near 02e 83h ; e9 19 f94331 mov bx, 00c d6h ; bb d60c4326 jmp near 02e63h ; e9 19 f9 4327 mov bx, 00cech ; bb ec 0c 4332 4328 mov cx, ds ; 8c d9 4333 4329 mov ax, strict word 00004h ; b8 04 00 4334 call 018aeh ; e8 39 e34330 call 018aeh ; e8 59 e3 4335 4331 mov ax, word [bp+01ah] ; 8b 46 1a 4336 4332 shr ax, 008h ; c1 e8 08 … … 4339 4335 push 00252h ; 68 52 02 4340 4336 push strict byte 00004h ; 6a 04 4341 call 018e9h ; e8 62 e34337 call 018e9h ; e8 82 e3 4342 4338 add sp, strict byte 00008h ; 83 c4 08 4343 jmp near 02e 75h ; e9 e8 f84344 _cdemu_init: ; 0xf35 8d LB 0x164339 jmp near 02e55h ; e9 e8 f8 4340 _cdemu_init: ; 0xf356d LB 0x16 4345 4341 push bp ; 55 4346 4342 mov bp, sp ; 89 e5 4347 4343 mov dx, strict word 0000eh ; ba 0e 00 4348 4344 mov ax, strict word 00040h ; b8 40 00 4349 call 0161ch ; e8 83 e04345 call 0161ch ; e8 a3 e0 4350 4346 xor bx, bx ; 31 db 4351 4347 mov dx, 00322h ; ba 22 03 4352 call 0160eh ; e8 6d e04348 call 0160eh ; e8 8d e0 4353 4349 pop bp ; 5d 4354 4350 retn ; c3 4355 _cdemu_isactive: ; 0xf35 a3 LB 0x144351 _cdemu_isactive: ; 0xf3583 LB 0x14 4356 4352 push bp ; 55 4357 4353 mov bp, sp ; 89 e5 4358 4354 mov dx, strict word 0000eh ; ba 0e 00 4359 4355 mov ax, strict word 00040h ; b8 40 00 4360 call 0161ch ; e8 6d e04356 call 0161ch ; e8 8d e0 4361 4357 mov dx, 00322h ; ba 22 03 4362 call 01600h ; e8 4b e04358 call 01600h ; e8 6b e0 4363 4359 pop bp ; 5d 4364 4360 retn ; c3 4365 _cdemu_emulated_drive: ; 0xf35 b7 LB 0x144361 _cdemu_emulated_drive: ; 0xf3597 LB 0x14 4366 4362 push bp ; 55 4367 4363 mov bp, sp ; 89 e5 4368 4364 mov dx, strict word 0000eh ; ba 0e 00 4369 4365 mov ax, strict word 00040h ; b8 40 00 4370 call 0161ch ; e8 59 e04366 call 0161ch ; e8 79 e0 4371 4367 mov dx, 00324h ; ba 24 03 4372 call 01600h ; e8 37 e04368 call 01600h ; e8 57 e0 4373 4369 pop bp ; 5d 4374 4370 retn ; c3 4375 _int13_eltorito: ; 0xf35 cb LB 0x17d4371 _int13_eltorito: ; 0xf35ab LB 0x17d 4376 4372 push si ; 56 4377 4373 push di ; 57 … … 4380 4376 mov dx, strict word 0000eh ; ba 0e 00 4381 4377 mov ax, strict word 00040h ; b8 40 00 4382 call 0161ch ; e8 43 e04378 call 0161ch ; e8 63 e0 4383 4379 mov si, 00322h ; be 22 03 4384 4380 mov di, ax ; 89 c7 … … 4386 4382 shr ax, 008h ; c1 e8 08 4387 4383 cmp ax, strict word 0004bh ; 3d 4b 00 4388 jc short 035 f3h ; 72 0a4389 jbe short 03 60eh ; 76 234384 jc short 035d3h ; 72 0a 4385 jbe short 035eeh ; 76 23 4390 4386 cmp ax, strict word 0004dh ; 3d 4d 00 4391 jbe short 035 fah ; 76 0a4392 jmp near 03 70ah ; e9 17 014387 jbe short 035dah ; 76 0a 4388 jmp near 036eah ; e9 17 01 4393 4389 cmp ax, strict word 0004ah ; 3d 4a 00 4394 jne near 03 70ah ; 0f 85 10 014390 jne near 036eah ; 0f 85 10 01 4395 4391 push word [bp+01ah] ; ff 76 1a 4396 4392 push 0026ch ; 68 6c 02 4397 4393 push 0027bh ; 68 7b 02 4398 4394 push strict byte 00007h ; 6a 07 4399 call 018e9h ; e8 e1 e24395 call 018e9h ; e8 01 e3 4400 4396 add sp, strict byte 00008h ; 83 c4 08 4401 jmp near 037 27h ; e9 19 014397 jmp near 03707h ; e9 19 01 4402 4398 mov dx, word [bp+00eh] ; 8b 56 0e 4403 4399 mov ax, word [bp+008h] ; 8b 46 08 4404 4400 mov bx, strict word 00013h ; bb 13 00 4405 call 0160eh ; e8 f4 df4401 call 0160eh ; e8 14 e0 4406 4402 mov es, di ; 8e c7 4407 4403 movzx bx, byte [es:si+001h] ; 26 0f b6 5c 01 … … 4409 4405 inc dx ; 42 4410 4406 mov ax, word [bp+008h] ; 8b 46 08 4411 call 0160eh ; e8 e3 df4407 call 0160eh ; e8 03 e0 4412 4408 mov es, di ; 8e c7 4413 4409 movzx bx, byte [es:si+002h] ; 26 0f b6 5c 02 … … 4416 4412 inc dx ; 42 4417 4413 mov ax, word [bp+008h] ; 8b 46 08 4418 call 0160eh ; e8 d1 df4414 call 0160eh ; e8 f1 df 4419 4415 mov es, di ; 8e c7 4420 4416 movzx bx, byte [es:si+003h] ; 26 0f b6 5c 03 … … 4422 4418 add dx, strict byte 00003h ; 83 c2 03 4423 4419 mov ax, word [bp+008h] ; 8b 46 08 4424 call 0160eh ; e8 be df4420 call 0160eh ; e8 de df 4425 4421 mov es, di ; 8e c7 4426 4422 mov bx, word [es:si+008h] ; 26 8b 5c 08 … … 4429 4425 add dx, strict byte 00004h ; 83 c2 04 4430 4426 mov ax, word [bp+008h] ; 8b 46 08 4431 call 0164ah ; e8 e4 df4427 call 0164ah ; e8 04 e0 4432 4428 mov es, di ; 8e c7 4433 4429 mov bx, word [es:si+004h] ; 26 8b 5c 04 … … 4435 4431 add dx, strict byte 00008h ; 83 c2 08 4436 4432 mov ax, word [bp+008h] ; 8b 46 08 4437 call 0162ah ; e8 b2 df4433 call 0162ah ; e8 d2 df 4438 4434 mov es, di ; 8e c7 4439 4435 mov bx, word [es:si+006h] ; 26 8b 5c 06 … … 4441 4437 add dx, strict byte 0000ah ; 83 c2 0a 4442 4438 mov ax, word [bp+008h] ; 8b 46 08 4443 call 0162ah ; e8 a0 df4439 call 0162ah ; e8 c0 df 4444 4440 mov es, di ; 8e c7 4445 4441 mov bx, word [es:si+00ch] ; 26 8b 5c 0c … … 4447 4443 add dx, strict byte 0000ch ; 83 c2 0c 4448 4444 mov ax, word [bp+008h] ; 8b 46 08 4449 call 0162ah ; e8 8e df4445 call 0162ah ; e8 ae df 4450 4446 mov es, di ; 8e c7 4451 4447 mov bx, word [es:si+00eh] ; 26 8b 5c 0e … … 4453 4449 add dx, strict byte 0000eh ; 83 c2 0e 4454 4450 mov ax, word [bp+008h] ; 8b 46 08 4455 call 0162ah ; e8 7c df4451 call 0162ah ; e8 9c df 4456 4452 mov es, di ; 8e c7 4457 4453 movzx bx, byte [es:si+012h] ; 26 0f b6 5c 12 … … 4459 4455 add dx, strict byte 00010h ; 83 c2 10 4460 4456 mov ax, word [bp+008h] ; 8b 46 08 4461 call 0160eh ; e8 4d df4457 call 0160eh ; e8 6d df 4462 4458 mov es, di ; 8e c7 4463 4459 movzx bx, byte [es:si+014h] ; 26 0f b6 5c 14 … … 4465 4461 add dx, strict byte 00011h ; 83 c2 11 4466 4462 mov ax, word [bp+008h] ; 8b 46 08 4467 call 0160eh ; e8 3a df4463 call 0160eh ; e8 5a df 4468 4464 mov es, di ; 8e c7 4469 4465 movzx bx, byte [es:si+010h] ; 26 0f b6 5c 10 … … 4471 4467 add dx, strict byte 00012h ; 83 c2 12 4472 4468 mov ax, word [bp+008h] ; 8b 46 08 4473 call 0160eh ; e8 27 df4469 call 0160eh ; e8 47 df 4474 4470 test byte [bp+01ah], 0ffh ; f6 46 1a ff 4475 jne short 036 f3h ; 75 064471 jne short 036d3h ; 75 06 4476 4472 mov es, di ; 8e c7 4477 4473 mov byte [es:si], 000h ; 26 c6 04 00 … … 4480 4476 mov dx, strict word 00074h ; ba 74 00 4481 4477 mov ax, strict word 00040h ; b8 40 00 4482 call 0160eh ; e8 0c df4478 call 0160eh ; e8 2c df 4483 4479 and byte [bp+020h], 0feh ; 80 66 20 fe 4484 4480 pop bp ; 5d … … 4486 4482 pop si ; 5e 4487 4483 retn ; c3 4488 mov bx, 00c d6h ; bb d60c4484 mov bx, 00cech ; bb ec 0c 4489 4485 mov cx, ds ; 8c d9 4490 4486 mov ax, strict word 00004h ; b8 04 00 4491 call 018aeh ; e8 99 e14487 call 018aeh ; e8 b9 e1 4492 4488 mov ax, word [bp+01ah] ; 8b 46 1a 4493 4489 shr ax, 008h ; c1 e8 08 … … 4496 4492 push 002a1h ; 68 a1 02 4497 4493 push strict byte 00004h ; 6a 04 4498 jmp near 03 605h ; e9 de fe4494 jmp near 035e5h ; e9 de fe 4499 4495 mov ax, word [bp+01ah] ; 8b 46 1a 4500 4496 xor ah, ah ; 30 e4 … … 4506 4502 mov dx, strict word 00074h ; ba 74 00 4507 4503 mov ax, strict word 00040h ; b8 40 00 4508 call 0160eh ; e8 cc de4504 call 0160eh ; e8 ec de 4509 4505 or byte [bp+020h], 001h ; 80 4e 20 01 4510 jmp short 03 706h ; eb be4511 device_is_cdrom_: ; 0xf37 48 LB 0x324506 jmp short 036e6h ; eb be 4507 device_is_cdrom_: ; 0xf3728 LB 0x32 4512 4508 push bx ; 53 4513 4509 push dx ; 52 … … 4517 4513 mov dx, strict word 0000eh ; ba 0e 00 4518 4514 mov ax, strict word 00040h ; b8 40 00 4519 call 0161ch ; e8 c4 de4515 call 0161ch ; e8 e4 de 4520 4516 cmp bl, 010h ; 80 fb 10 4521 jc short 037 61h ; 72 044517 jc short 03741h ; 72 04 4522 4518 xor ax, ax ; 31 c0 4523 jmp short 037 76h ; eb 154519 jmp short 03756h ; eb 15 4524 4520 xor bh, bh ; 30 ff 4525 4521 imul bx, bx, strict byte 00018h ; 6b db 18 … … 4527 4523 add bx, 00122h ; 81 c3 22 01 4528 4524 cmp byte [es:bx+01fh], 005h ; 26 80 7f 1f 05 4529 jne short 037 5dh ; 75 ea4525 jne short 0373dh ; 75 ea 4530 4526 mov ax, strict word 00001h ; b8 01 00 4531 4527 pop bp ; 5d … … 4533 4529 pop bx ; 5b 4534 4530 retn ; c3 4535 cdrom_boot_: ; 0xf37 7a LB 0x42f4531 cdrom_boot_: ; 0xf375a LB 0x4ac 4536 4532 push bx ; 53 4537 4533 push cx ; 51 … … 4542 4538 mov dx, strict word 0000eh ; ba 0e 00 4543 4539 mov ax, strict word 00040h ; b8 40 00 4544 call 0161ch ; e8 90 de4545 mov word [bp-00 ch], ax ; 89 46 f44540 call 0161ch ; e8 b0 de 4541 mov word [bp-00eh], ax ; 89 46 f2 4546 4542 mov si, 00322h ; be 22 03 4547 mov word [bp-00eh], ax ; 89 46 f24548 mov word [bp-008h], 00122h ; c7 46 f8 22 014549 4543 mov word [bp-006h], ax ; 89 46 fa 4544 mov word [bp-00ch], 00122h ; c7 46 f4 22 01 4545 mov word [bp-008h], ax ; 89 46 f8 4550 4546 mov byte [bp-004h], 000h ; c6 46 fc 00 4551 jmp short 037 ach ; eb 094547 jmp short 0378ch ; eb 09 4552 4548 inc byte [bp-004h] ; fe 46 fc 4553 4549 cmp byte [bp-004h], 010h ; 80 7e fc 10 4554 jnc short 037 b7h ; 73 0b4550 jnc short 03797h ; 73 0b 4555 4551 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4556 call 037 48h ; e8 95 ff4552 call 03728h ; e8 95 ff 4557 4553 test ax, ax ; 85 c0 4558 je short 037 a3h ; 74 ec4554 je short 03783h ; 74 ec 4559 4555 cmp byte [bp-004h], 010h ; 80 7e fc 10 4560 jc short 037 c3h ; 72 064556 jc short 037a3h ; 72 06 4561 4557 mov ax, strict word 00002h ; b8 02 00 4562 jmp near 03b 49h ; e9 86 034558 jmp near 03ba6h ; e9 03 04 4563 4559 mov cx, strict word 0000ch ; b9 0c 00 4564 4560 xor bx, bx ; 31 db 4565 4561 mov dx, ss ; 8c d2 4566 4562 lea ax, [bp-01ah] ; 8d 46 e6 4567 call 0 8caah ; e8 da 544563 call 0902ah ; e8 7a 58 4568 4564 mov word [bp-01ah], strict word 00028h ; c7 46 e6 28 00 4569 4565 mov ax, strict word 00011h ; b8 11 00 … … 4577 4573 xchg ah, al ; 86 c4 4578 4574 mov word [bp-013h], ax ; 89 46 ed 4579 les bx, [bp-008h] ; c4 5e f8 4575 mov es, [bp-008h] ; 8e 46 f8 4576 mov bx, word [bp-00ch] ; 8b 5e f4 4580 4577 db 066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 008h 4581 4578 ; mov dword [es:bx+00ah], strict dword 008000001h ; 66 26 c7 47 0a 01 00 00 08 4582 4579 mov byte [bp-002h], 000h ; c6 46 fe 00 4583 jmp short 0382ah ; eb 2b 4580 jmp short 03831h ; eb 4f 4581 cmp AL, strict byte 008h ; 3c 08 4582 jc short 03806h ; 72 20 4584 4583 lea dx, [bp-0081ah] ; 8d 96 e6 f7 4585 4584 push SS ; 16 … … 4593 4592 lea bx, [bp-01ah] ; 8d 5e e6 4594 4593 mov dx, strict word 0000ch ; ba 0c 00 4595 call 0280ah ; e8 ed ef 4596 test ax, ax ; 85 c0 4597 je short 03850h ; 74 2f 4598 inc byte [bp-002h] ; fe 46 fe 4599 cmp byte [bp-002h], 004h ; 80 7e fe 04 4600 jnbe short 03850h ; 77 26 4601 cmp byte [bp-004h], 008h ; 80 7e fc 08 4602 jbe short 037ffh ; 76 cf 4594 call 07626h ; e8 22 3e 4595 jmp short 03824h ; eb 1e 4603 4596 lea dx, [bp-0081ah] ; 8d 96 e6 f7 4604 4597 push SS ; 16 … … 4612 4605 lea bx, [bp-01ah] ; 8d 5e e6 4613 4606 mov dx, strict word 0000ch ; ba 0c 00 4614 call 07f53h ; e8 05 47 4615 jmp short 0381dh ; eb cd 4607 call 027eah ; e8 c6 ef 4616 4608 test ax, ax ; 85 c0 4617 je short 0385ah ; 74 06 4609 je short 03858h ; 74 30 4610 inc byte [bp-002h] ; fe 46 fe 4611 cmp byte [bp-002h], 004h ; 80 7e fe 04 4612 jnbe short 03858h ; 77 27 4613 mov al, byte [bp-004h] ; 8a 46 fc 4614 cmp AL, strict byte 00ch ; 3c 0c 4615 jc short 037e2h ; 72 aa 4616 lea dx, [bp-0081ah] ; 8d 96 e6 f7 4617 push SS ; 16 4618 push dx ; 52 4619 push strict byte 00001h ; 6a 01 4620 push strict byte 00000h ; 6a 00 4621 push 00800h ; 68 00 08 4622 push strict byte 00000h ; 6a 00 4623 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4624 mov cx, ss ; 8c d1 4625 lea bx, [bp-01ah] ; 8d 5e e6 4626 mov dx, strict word 0000ch ; ba 0c 00 4627 call 082c2h ; e8 6c 4a 4628 jmp short 03824h ; eb cc 4629 test ax, ax ; 85 c0 4630 je short 03862h ; 74 06 4618 4631 mov ax, strict word 00003h ; b8 03 00 4619 jmp near 03b 49h ; e9 ef 024632 jmp near 03ba6h ; e9 44 03 4620 4633 cmp byte [bp-0081ah], 000h ; 80 be e6 f7 00 4621 je short 0386 7h ; 74 064634 je short 0386fh ; 74 06 4622 4635 mov ax, strict word 00004h ; b8 04 00 4623 jmp near 03b 49h ; e9 e2 024636 jmp near 03ba6h ; e9 37 03 4624 4637 xor di, di ; 31 ff 4625 jmp short 0387 1h ; eb 064638 jmp short 03879h ; eb 06 4626 4639 inc di ; 47 4627 4640 cmp di, strict byte 00005h ; 83 ff 05 4628 jnc short 0388 1h ; 73 104641 jnc short 03889h ; 73 10 4629 4642 mov al, byte [bp+di-00819h] ; 8a 83 e7 f7 4630 cmp al, byte [di+00c deh] ; 3a 85 de0c4631 je short 038 6bh ; 74 f04643 cmp al, byte [di+00cf4h] ; 3a 85 f4 0c 4644 je short 03873h ; 74 f0 4632 4645 mov ax, strict word 00005h ; b8 05 00 4633 jmp near 03b 49h ; e9 c8 024646 jmp near 03ba6h ; e9 1d 03 4634 4647 xor di, di ; 31 ff 4635 jmp short 038 8bh ; eb 064648 jmp short 03893h ; eb 06 4636 4649 inc di ; 47 4637 4650 cmp di, strict byte 00017h ; 83 ff 17 4638 jnc short 038 9bh ; 73 104651 jnc short 038a3h ; 73 10 4639 4652 mov al, byte [bp+di-00813h] ; 8a 83 ed f7 4640 cmp al, byte [di+00c e4h] ; 3a 85 e40c4641 je short 0388 5h ; 74 f04653 cmp al, byte [di+00cfah] ; 3a 85 fa 0c 4654 je short 0388dh ; 74 f0 4642 4655 mov ax, strict word 00006h ; b8 06 00 4643 jmp near 03b 49h ; e9 ae 024656 jmp near 03ba6h ; e9 03 03 4644 4657 mov ax, word [bp-007d3h] ; 8b 86 2d f8 4645 4658 mov dx, word [bp-007d1h] ; 8b 96 2f f8 … … 4653 4666 xchg ah, al ; 86 c4 4654 4667 mov word [bp-013h], ax ; 89 46 ed 4655 cmp byte [bp-004h], 008h ; 80 7e fc 08 4656 jbe short 038e1h ; 76 20 4668 mov al, byte [bp-004h] ; 8a 46 fc 4669 cmp AL, strict byte 00ch ; 3c 0c 4670 jc short 038eah ; 72 20 4657 4671 lea dx, [bp-0081ah] ; 8d 96 e6 f7 4658 4672 push SS ; 16 … … 4666 4680 lea bx, [bp-01ah] ; 8d 5e e6 4667 4681 mov dx, strict word 0000ch ; ba 0c 00 4668 call 07f53h ; e8 74 46 4669 jmp short 038ffh ; eb 1e 4682 call 082c2h ; e8 da 49 4683 jmp short 0392ch ; eb 42 4684 cmp AL, strict byte 008h ; 3c 08 4685 jc short 0390eh ; 72 20 4670 4686 lea dx, [bp-0081ah] ; 8d 96 e6 f7 4671 4687 push SS ; 16 … … 4679 4695 lea bx, [bp-01ah] ; 8d 5e e6 4680 4696 mov dx, strict word 0000ch ; ba 0c 00 4681 call 0280ah ; e8 0b ef 4697 call 07626h ; e8 1a 3d 4698 jmp short 0392ch ; eb 1e 4699 lea dx, [bp-0081ah] ; 8d 96 e6 f7 4700 push SS ; 16 4701 push dx ; 52 4702 push strict byte 00001h ; 6a 01 4703 push strict byte 00000h ; 6a 00 4704 push 00800h ; 68 00 08 4705 push strict byte 00000h ; 6a 00 4706 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4707 mov cx, ss ; 8c d1 4708 lea bx, [bp-01ah] ; 8d 5e e6 4709 mov dx, strict word 0000ch ; ba 0c 00 4710 call 027eah ; e8 be ee 4682 4711 test ax, ax ; 85 c0 4683 je short 039 09h ; 74 064712 je short 03936h ; 74 06 4684 4713 mov ax, strict word 00007h ; b8 07 00 4685 jmp near 03b 49h ; e9 40 024714 jmp near 03ba6h ; e9 70 02 4686 4715 cmp byte [bp-0081ah], 001h ; 80 be e6 f7 01 4687 je short 039 16h ; 74 064716 je short 03943h ; 74 06 4688 4717 mov ax, strict word 00008h ; b8 08 00 4689 jmp near 03b 49h ; e9 33 024718 jmp near 03ba6h ; e9 63 02 4690 4719 cmp byte [bp-00819h], 000h ; 80 be e7 f7 00 4691 je short 039 23h ; 74 064720 je short 03950h ; 74 06 4692 4721 mov ax, strict word 00009h ; b8 09 00 4693 jmp near 03b 49h ; e9 26 024722 jmp near 03ba6h ; e9 56 02 4694 4723 cmp byte [bp-007fch], 055h ; 80 be 04 f8 55 4695 je short 039 30h ; 74 064724 je short 0395dh ; 74 06 4696 4725 mov ax, strict word 0000ah ; b8 0a 00 4697 jmp near 03b 49h ; e9 19 024726 jmp near 03ba6h ; e9 49 02 4698 4727 cmp byte [bp-007fbh], 0aah ; 80 be 05 f8 aa 4699 jne short 039 2ah ; 75 f34728 jne short 03957h ; 75 f3 4700 4729 cmp byte [bp-007fah], 088h ; 80 be 06 f8 88 4701 je short 039 44h ; 74 064730 je short 03971h ; 74 06 4702 4731 mov ax, strict word 0000bh ; b8 0b 00 4703 jmp near 03b 49h ; e9 05 024732 jmp near 03ba6h ; e9 35 02 4704 4733 mov al, byte [bp-007f9h] ; 8a 86 07 f8 4705 mov es, [bp-00 eh] ; 8e 46 f24734 mov es, [bp-006h] ; 8e 46 fa 4706 4735 mov byte [es:si+001h], al ; 26 88 44 01 4707 4736 cmp byte [bp-007f9h], 000h ; 80 be 07 f8 00 4708 jne short 039 5dh ; 75 074737 jne short 0398ah ; 75 07 4709 4738 mov byte [es:si+002h], 0e0h ; 26 c6 44 02 e0 4710 jmp short 039 70h ; eb 134739 jmp short 0399dh ; eb 13 4711 4740 cmp byte [bp-007f9h], 004h ; 80 be 07 f8 04 4712 jnc short 039 6bh ; 73 074741 jnc short 03998h ; 73 07 4713 4742 mov byte [es:si+002h], 000h ; 26 c6 44 02 00 4714 jmp short 039 70h ; eb 054743 jmp short 0399dh ; eb 05 4715 4744 mov byte [es:si+002h], 080h ; 26 c6 44 02 80 4716 4745 movzx di, byte [bp-004h] ; 0f b6 7e fc … … 4720 4749 ; sub ax, dx ; 2b c2 4721 4750 sar ax, 1 ; d1 f8 4722 mov es, [bp-00 eh] ; 8e 46 f24751 mov es, [bp-006h] ; 8e 46 fa 4723 4752 mov byte [es:si+003h], al ; 26 88 44 03 4724 4753 mov ax, di ; 89 f8 … … 4729 4758 mov di, word [bp-007f8h] ; 8b be 08 f8 4730 4759 test di, di ; 85 ff 4731 jne short 039 99h ; 75 034760 jne short 039c6h ; 75 03 4732 4761 mov di, 007c0h ; bf c0 07 4733 mov es, [bp-00 eh] ; 8e 46 f24762 mov es, [bp-006h] ; 8e 46 fa 4734 4763 mov word [es:si+00ch], di ; 26 89 7c 0c 4735 4764 mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00 … … 4754 4783 xchg ah, al ; 86 c4 4755 4784 mov word [bp-013h], ax ; 89 46 ed 4756 les bx, [bp-008h] ; c4 5e f8 4785 mov es, [bp-008h] ; 8e 46 f8 4786 mov bx, word [bp-00ch] ; 8b 5e f4 4757 4787 mov word [es:bx+00ah], dx ; 26 89 57 0a 4758 4788 mov word [es:bx+00ch], 00200h ; 26 c7 47 0c 00 02 … … 4763 4793 sub dx, ax ; 29 c2 4764 4794 mov word [es:bx+01ch], dx ; 26 89 57 1c 4765 cmp byte [bp-004h], 008h ; 80 7e fc 08 4766 jbe short 03a2ch ; 76 27 4795 mov al, byte [bp-004h] ; 8a 46 fc 4796 cmp AL, strict byte 00ch ; 3c 0c 4797 jc short 03a5dh ; 72 27 4767 4798 push di ; 57 4768 4799 push dword 000000001h ; 66 6a 01 … … 4772 4803 sal ax, 1 ; d1 e0 4773 4804 rcl dx, 1 ; d1 d2 4774 loop 03a 11h ; e2 fa4805 loop 03a42h ; e2 fa 4775 4806 push dx ; 52 4776 4807 push ax ; 50 … … 4780 4811 lea bx, [bp-01ah] ; 8d 5e e6 4781 4812 mov dx, strict word 0000ch ; ba 0c 00 4782 call 07f53h ; e8 29 45 4783 jmp short 03a51h ; eb 25 4813 call 082c2h ; e8 67 48 4814 jmp short 03aadh ; eb 50 4815 cmp AL, strict byte 008h ; 3c 08 4816 jc short 03a88h ; 72 27 4784 4817 push di ; 57 4785 4818 push dword 000000001h ; 66 6a 01 … … 4789 4822 sal ax, 1 ; d1 e0 4790 4823 rcl dx, 1 ; d1 d2 4791 loop 03a 38h ; e2 fa4824 loop 03a6dh ; e2 fa 4792 4825 push dx ; 52 4793 4826 push ax ; 50 … … 4797 4830 lea bx, [bp-01ah] ; 8d 5e e6 4798 4831 mov dx, strict word 0000ch ; ba 0c 00 4799 call 0280ah ; e8 b9 ed 4800 les bx, [bp-008h] ; c4 5e f8 4832 call 07626h ; e8 a0 3b 4833 jmp short 03aadh ; eb 25 4834 push di ; 57 4835 push dword 000000001h ; 66 6a 01 4836 mov ax, word [bp-00ah] ; 8b 46 f6 4837 xor dx, dx ; 31 d2 4838 mov cx, strict word 00009h ; b9 09 00 4839 sal ax, 1 ; d1 e0 4840 rcl dx, 1 ; d1 d2 4841 loop 03a94h ; e2 fa 4842 push dx ; 52 4843 push ax ; 50 4844 push strict byte 00000h ; 6a 00 4845 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4846 mov cx, ss ; 8c d1 4847 lea bx, [bp-01ah] ; 8d 5e e6 4848 mov dx, strict word 0000ch ; ba 0c 00 4849 call 027eah ; e8 3d ed 4850 mov es, [bp-008h] ; 8e 46 f8 4851 mov bx, word [bp-00ch] ; 8b 5e f4 4801 4852 mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00 4802 4853 test ax, ax ; 85 c0 4803 je short 03a 64h ; 74 064854 je short 03ac3h ; 74 06 4804 4855 mov ax, strict word 0000ch ; b8 0c 00 4805 jmp near 03b 49h ; e9 e5004806 mov es, [bp-00 eh] ; 8e 46 f24856 jmp near 03ba6h ; e9 e3 00 4857 mov es, [bp-006h] ; 8e 46 fa 4807 4858 mov al, byte [es:si+001h] ; 26 8a 44 01 4808 4859 cmp AL, strict byte 002h ; 3c 02 4809 jc short 03a 7ch ; 72 0d4810 jbe short 03a 94h ; 76 234860 jc short 03adah ; 72 0c 4861 jbe short 03af2h ; 76 22 4811 4862 cmp AL, strict byte 004h ; 3c 04 4812 je short 03 aaah ; 74 354863 je short 03b08h ; 74 34 4813 4864 cmp AL, strict byte 003h ; 3c 03 4814 je short 03a 9fh ; 74 264815 jmp near 03af2h ; e9 76 004865 je short 03afdh ; 74 25 4866 jmp short 03b4fh ; eb 75 4816 4867 cmp AL, strict byte 001h ; 3c 01 4817 jne short 03 af2h ; 75 724818 mov es, [bp-00 eh] ; 8e 46 f24868 jne short 03b4fh ; 75 71 4869 mov es, [bp-006h] ; 8e 46 fa 4819 4870 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h 4820 4871 ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00 4821 4872 mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00 4822 jmp short 03 af2h ; eb 5e4873 jmp short 03b4fh ; eb 5d 4823 4874 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h 4824 4875 ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00 4825 jmp short 03a 8ch ; eb ed4876 jmp short 03aeah ; eb ed 4826 4877 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h 4827 4878 ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00 4828 jmp short 03a 8ch ; eb e24879 jmp short 03aeah ; eb e2 4829 4880 mov dx, 001c4h ; ba c4 01 4830 4881 mov ax, di ; 89 f8 4831 call 01600h ; e8 4e db4882 call 01600h ; e8 f0 da 4832 4883 and AL, strict byte 03fh ; 24 3f 4833 4884 xor ah, ah ; 30 e4 4834 mov es, [bp-00 eh] ; 8e 46 f24885 mov es, [bp-006h] ; 8e 46 fa 4835 4886 mov word [es:si+014h], ax ; 26 89 44 14 4836 4887 mov dx, 001c4h ; ba c4 01 4837 4888 mov ax, di ; 89 f8 4838 call 01600h ; e8 3b db 4839 xor ah, ah ; 30 e4 4840 mov bx, ax ; 89 c3 4889 call 01600h ; e8 dd da 4890 movzx bx, al ; 0f b6 d8 4841 4891 sal bx, 002h ; c1 e3 02 4842 4892 mov dx, 001c5h ; ba c5 01 4843 4893 mov ax, di ; 89 f8 4844 call 01600h ; e8 2c db4894 call 01600h ; e8 cf da 4845 4895 xor ah, ah ; 30 e4 4846 4896 add ax, bx ; 01 d8 4847 4897 inc ax ; 40 4848 mov es, [bp-00 eh] ; 8e 46 f24898 mov es, [bp-006h] ; 8e 46 fa 4849 4899 mov word [es:si+012h], ax ; 26 89 44 12 4850 4900 mov dx, 001c3h ; ba c3 01 4851 4901 mov ax, di ; 89 f8 4852 call 01600h ; e8 18 db4902 call 01600h ; e8 bb da 4853 4903 xor ah, ah ; 30 e4 4854 4904 inc ax ; 40 4855 mov es, [bp-00 eh] ; 8e 46 f24905 mov es, [bp-006h] ; 8e 46 fa 4856 4906 mov word [es:si+010h], ax ; 26 89 44 10 4857 mov es, [bp-00 eh] ; 8e 46 f24907 mov es, [bp-006h] ; 8e 46 fa 4858 4908 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 4859 je short 03b 30h ; 74 344909 je short 03b8dh ; 74 34 4860 4910 cmp byte [es:si+002h], 000h ; 26 80 7c 02 00 4861 jne short 03b 19h ; 75 164911 jne short 03b76h ; 75 16 4862 4912 mov dx, strict word 00010h ; ba 10 00 4863 4913 mov ax, strict word 00040h ; b8 40 00 4864 call 01600h ; e8 f4da4914 call 01600h ; e8 97 da 4865 4915 or AL, strict byte 041h ; 0c 41 4866 4916 movzx bx, al ; 0f b6 d8 4867 4917 mov dx, strict word 00010h ; ba 10 00 4868 4918 mov ax, strict word 00040h ; b8 40 00 4869 jmp short 03b 2dh ; eb 144919 jmp short 03b8ah ; eb 14 4870 4920 mov dx, 002c0h ; ba c0 02 4871 mov ax, word [bp-00 ch] ; 8b 46 f44872 call 01600h ; e8 deda4921 mov ax, word [bp-00eh] ; 8b 46 f2 4922 call 01600h ; e8 81 da 4873 4923 db 0feh, 0c0h 4874 4924 ; inc al ; fe c0 4875 4925 movzx bx, al ; 0f b6 d8 4876 4926 mov dx, 002c0h ; ba c0 02 4877 mov ax, word [bp-00 ch] ; 8b 46 f44878 call 0160eh ; e8 deda4879 mov es, [bp-00 eh] ; 8e 46 f24927 mov ax, word [bp-00eh] ; 8b 46 f2 4928 call 0160eh ; e8 81 da 4929 mov es, [bp-006h] ; 8e 46 fa 4880 4930 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 4881 je short 03b 3eh ; 74 044931 je short 03b9bh ; 74 04 4882 4932 mov byte [es:si], 001h ; 26 c6 04 01 4883 mov es, [bp-00 eh] ; 8e 46 f24933 mov es, [bp-006h] ; 8e 46 fa 4884 4934 movzx ax, byte [es:si+002h] ; 26 0f b6 44 02 4885 4935 sal ax, 008h ; c1 e0 08 … … 4909 4959 add AL, strict byte 003h ; 04 03 4910 4960 add al, byte [bx+di] ; 02 01 4911 add byte [ di], ch ; 00 2d4961 add byte [bx+si-067c1h], bh ; 00 b8 3f 98 4912 4962 aas ; 3f 4913 push CS ; 0e 4963 mov BH, strict byte 03ch ; b7 3c 4964 loope 03c0eh ; e1 3c 4965 lodsb ; ac 4966 cmp AL, strict byte 0e1h ; 3c e1 4967 cmp AL, strict byte 0ach ; 3c ac 4968 cmp AL, strict byte 002h ; 3c 02 4914 4969 aas ; 3f 4915 pop ax ; 58 4916 cmp AL, strict byte 082h ; 3c 82 4917 cmp AL, strict byte 04dh ; 3c 4d 4918 cmp AL, strict byte 082h ; 3c 82 4919 cmp AL, strict byte 04dh ; 3c 4d 4920 cmp AL, strict byte 074h ; 3c 74 4921 db 03eh, 00eh 4922 ; ds push CS ; 3e 0e 4970 cbw ; 98 4923 4971 aas ; 3f 4924 sub ax, 02d3fh ; 2d 3f 2d4972 mov ax, 0b83fh ; b8 3f b8 4925 4973 aas ; 3f 4926 push CS ; 0e4974 cbw ; 98 4927 4975 aas ; 3f 4928 push CS ; 0e4976 cbw ; 98 4929 4977 aas ; 3f 4930 push CS ; 0e4978 cbw ; 98 4931 4979 aas ; 3f 4932 push CS ; 0e4980 cbw ; 98 4933 4981 aas ; 3f 4934 push CS ; 0e4982 cbw ; 98 4935 4983 aas ; 3f 4936 and ax, 00e3fh ; 25 3f 0e4984 scasw ; af 4937 4985 aas ; 3f 4938 sub ax, 02d3fh ; 2d 3f 2d4986 cbw ; 98 4939 4987 aas ; 3f 4940 sub ax, 02d3fh ; 2d 3f 2d4988 mov ax, 0b83fh ; b8 3f b8 4941 4989 aas ; 3f 4942 sub ax, 02d3fh ; 2d 3f 2d4990 mov ax, 0b83fh ; b8 3f b8 4943 4991 aas ; 3f 4944 sub ax, 02d3fh ; 2d 3f 2d4992 mov ax, 0b83fh ; b8 3f b8 4945 4993 aas ; 3f 4946 sub ax, 02d3fh ; 2d 3f 2d4994 mov ax, 0b83fh ; b8 3f b8 4947 4995 aas ; 3f 4948 sub ax, 02d3fh ; 2d 3f 2d4996 mov ax, 0b83fh ; b8 3f b8 4949 4997 aas ; 3f 4950 _int13_cdemu: ; 0xf3ba9 LB 0x41f 4998 mov ax, 0b83fh ; b8 3f b8 4999 aas ; 3f 5000 _int13_cdemu: ; 0xf3c06 LB 0x44d 4951 5001 push si ; 56 4952 5002 push di ; 57 … … 4954 5004 mov dx, strict word 0000eh ; ba 0e 00 4955 5005 mov ax, strict word 00040h ; b8 40 00 4956 call 0161ch ; e8 64da5006 call 0161ch ; e8 07 da 4957 5007 mov di, 00322h ; bf 22 03 4958 5008 mov cx, ax ; 89 c1 4959 5009 mov si, di ; 89 fe 4960 5010 mov word [bp-004h], ax ; 89 46 fc 4961 mov word [bp-00 8h], 00122h ; c7 46 f822 014962 mov word [bp-00 6h], ax ; 89 46 fa5011 mov word [bp-00ah], 00122h ; c7 46 f6 22 01 5012 mov word [bp-008h], ax ; 89 46 f8 4963 5013 mov es, ax ; 8e c0 4964 5014 mov al, byte [es:di+003h] ; 26 8a 45 03 … … 4970 5020 mov dx, strict word 00074h ; ba 74 00 4971 5021 mov ax, strict word 00040h ; b8 40 00 4972 call 0160eh ; e8 27 da5022 call 0160eh ; e8 ca d9 4973 5023 mov es, cx ; 8e c1 4974 5024 cmp byte [es:di], 000h ; 26 80 3d 00 4975 je short 03 bfdh ; 74 0e4976 movzx ax, byte [es:di+002h] ; 26 0f b6 45 024977 mov dx, word [bp+016h] ; 8b 56 164978 xor dh, dh ; 30 f64979 cmp ax, dx ; 39 d04980 je short 03c 26h ; 74 294981 mov bx, 00c d6h ; bb d60c5025 je short 03c5ah ; 74 0e 5026 movzx dx, byte [es:di+002h] ; 26 0f b6 55 02 5027 mov ax, word [bp+016h] ; 8b 46 16 5028 xor ah, ah ; 30 e4 5029 cmp dx, ax ; 39 c2 5030 je short 03c83h ; 74 29 5031 mov bx, 00cech ; bb ec 0c 4982 5032 mov cx, ds ; 8c d9 4983 5033 mov ax, strict word 00004h ; b8 04 00 4984 call 018aeh ; e8 a6dc5034 call 018aeh ; e8 49 dc 4985 5035 mov ax, word [bp+016h] ; 8b 46 16 4986 5036 xor ah, ah ; 30 e4 … … 4992 5042 push 002c6h ; 68 c6 02 4993 5043 push strict byte 00004h ; 6a 04 4994 call 018e9h ; e8 c9dc5044 call 018e9h ; e8 6c dc 4995 5045 add sp, strict byte 0000ah ; 83 c4 0a 4996 jmp near 03f 4dh ; e9 27035046 jmp near 03fd8h ; e9 55 03 4997 5047 mov ax, word [bp+01ah] ; 8b 46 1a 4998 5048 shr ax, 008h ; c1 e8 08 4999 5049 cmp ax, strict word 00050h ; 3d 50 00 5000 jnbe near 03f 2dh ; 0f 87 fa 025050 jnbe near 03fb8h ; 0f 87 28 03 5001 5051 push CS ; 0e 5002 5052 pop ES ; 07 5003 5053 mov cx, strict word 0001eh ; b9 1e 00 5004 mov di, 03b 50h ; bf 503b5054 mov di, 03badh ; bf ad 3b 5005 5055 repne scasb ; f2 ae 5006 5056 sal cx, 1 ; d1 e1 5007 5057 mov di, cx ; 89 cf 5008 mov ax, word [cs:di+03b 6dh] ; 2e 8b 85 6d3b5009 mov bx, word [bp+01ah] ; 8b 5e 1a5010 xor bh, bh ; 30 ff5058 mov ax, word [cs:di+03bcah] ; 2e 8b 85 ca 3b 5059 mov di, word [bp+01ah] ; 8b 7e 1a 5060 and di, 000ffh ; 81 e7 ff 00 5011 5061 jmp ax ; ff e0 5012 5062 mov ax, word [bp+01ah] ; 8b 46 1a 5013 5063 xor ah, ah ; 30 e4 5014 5064 or ah, 003h ; 80 cc 03 5015 jmp near 03f 55h ; e9 fd 025065 jmp near 03fe0h ; e9 29 03 5016 5066 mov dx, strict word 00074h ; ba 74 00 5017 5067 mov ax, strict word 00040h ; b8 40 00 5018 call 01600h ; e8 9fd95068 call 01600h ; e8 40 d9 5019 5069 mov cl, al ; 88 c1 5020 5070 movzx ax, cl ; 0f b6 c1 5021 5071 sal ax, 008h ; c1 e0 08 5022 or bx, ax ; 09 c35023 mov word [bp+01ah], bx ; 89 5e 1a5072 or di, ax ; 09 c7 5073 mov word [bp+01ah], di ; 89 7e 1a 5024 5074 xor bx, bx ; 31 db 5025 5075 mov dx, strict word 00074h ; ba 74 00 5026 5076 mov ax, strict word 00040h ; b8 40 00 5027 call 0160eh ; e8 95d95077 call 0160eh ; e8 36 d9 5028 5078 test cl, cl ; 84 c9 5029 je near 03f 12h ; 0f 84 93025030 jmp near 03f 69h ; e9 e7 025079 je near 03f9ch ; 0f 84 be 02 5080 jmp near 03ff4h ; e9 13 03 5031 5081 mov es, [bp-004h] ; 8e 46 fc 5032 mov di, word [es:si+014h] ; 26 8b 7c 14 5082 mov ax, word [es:si+014h] ; 26 8b 44 14 5083 mov word [bp-00ch], ax ; 89 46 f4 5033 5084 mov dx, word [es:si+012h] ; 26 8b 54 12 5034 mov bx, word [es:si+010h] ; 26 8b 5c 105085 mov di, word [es:si+010h] ; 26 8b 7c 10 5035 5086 mov ax, word [es:si+008h] ; 26 8b 44 08 5036 mov word [bp-01 4h], ax ; 89 46 ec5087 mov word [bp-018h], ax ; 89 46 e8 5037 5088 mov ax, word [es:si+00ah] ; 26 8b 44 0a 5038 mov word [bp-01 2h], ax ; 89 46 ee5089 mov word [bp-016h], ax ; 89 46 ea 5039 5090 mov ax, word [bp+018h] ; 8b 46 18 5040 5091 and ax, strict word 0003fh ; 25 3f 00 5041 mov word [bp-01 0h], ax ; 89 46 f05092 mov word [bp-012h], ax ; 89 46 ee 5042 5093 mov ax, word [bp+018h] ; 8b 46 18 5043 5094 xor ah, ah ; 30 e4 5044 5095 and AL, strict byte 0c0h ; 24 c0 5045 5096 sal ax, 002h ; c1 e0 02 5046 mov cx, word [bp+018h] ; 8b 4e 185047 shr cx, 008h ; c1 e9085048 or ax, cx ; 09 c85097 mov bx, word [bp+018h] ; 8b 5e 18 5098 shr bx, 008h ; c1 eb 08 5099 or ax, bx ; 09 d8 5049 5100 mov si, word [bp+016h] ; 8b 76 16 5050 5101 shr si, 008h ; c1 ee 08 5051 mov cx, word [bp+01ah] ; 8b 4e 1a 5052 xor ch, ch ; 30 ed 5053 mov word [bp-00ah], cx ; 89 4e f6 5054 test cx, cx ; 85 c9 5055 je near 03f0eh ; 0f 84 40 02 5056 cmp di, word [bp-010h] ; 3b 7e f0 5057 jc near 03f4dh ; 0f 82 78 02 5102 mov bx, word [bp+01ah] ; 8b 5e 1a 5103 xor bh, bh ; 30 ff 5104 mov word [bp-006h], bx ; 89 5e fa 5105 test bx, bx ; 85 db 5106 je near 03f98h ; 0f 84 68 02 5107 mov bx, word [bp-012h] ; 8b 5e ee 5108 cmp bx, word [bp-00ch] ; 3b 5e f4 5109 jnbe near 03fd8h ; 0f 87 9e 02 5058 5110 cmp ax, dx ; 39 d0 5059 jnc near 03f 4dh ; 0f 83 72025060 cmp si, bx ; 39 de5061 jnc near 03f 4dh ; 0f 83 6c025111 jnc near 03fd8h ; 0f 83 98 02 5112 cmp si, di ; 39 fe 5113 jnc near 03fd8h ; 0f 83 92 02 5062 5114 mov dx, word [bp+01ah] ; 8b 56 1a 5063 5115 shr dx, 008h ; c1 ea 08 5064 5116 cmp dx, strict byte 00004h ; 83 fa 04 5065 je near 03f 0eh ; 0f 84 20025117 je near 03f98h ; 0f 84 45 02 5066 5118 mov dx, word [bp+014h] ; 8b 56 14 5067 5119 shr dx, 004h ; c1 ea 04 5068 mov cx, word [bp+00ah] ; 8b 4e 0a5069 add cx, dx ; 01 d15070 mov word [bp-00eh], cx ; 89 4e f25120 mov bx, word [bp+00ah] ; 8b 5e 0a 5121 add bx, dx ; 01 d3 5122 mov word [bp-00eh], bx ; 89 5e f2 5071 5123 mov dx, word [bp+014h] ; 8b 56 14 5072 5124 and dx, strict byte 0000fh ; 83 e2 0f 5073 mov word [bp-0 0ch], dx ; 89 56 f45125 mov word [bp-010h], dx ; 89 56 f0 5074 5126 xor dl, dl ; 30 d2 5127 mov bx, di ; 89 fb 5075 5128 xor cx, cx ; 31 c9 5076 call 08 c79h ; e8 6d 4f5129 call 08ff9h ; e8 86 52 5077 5130 xor bx, bx ; 31 db 5078 5131 add ax, si ; 01 f0 5079 5132 adc dx, bx ; 11 da 5080 mov bx, di ; 89 fb5133 mov bx, word [bp-00ch] ; 8b 5e f4 5081 5134 xor cx, cx ; 31 c9 5082 call 08 c79h ; e8 60 4f5083 mov bx, word [bp-01 0h] ; 8b 5e f05135 call 08ff9h ; e8 78 52 5136 mov bx, word [bp-012h] ; 8b 5e ee 5084 5137 dec bx ; 4b 5085 5138 xor cx, cx ; 31 c9 … … 5088 5141 mov bx, word [bp+01ah] ; 8b 5e 1a 5089 5142 xor bl, bl ; 30 db 5090 mov cx, word [bp-00 ah] ; 8b 4e f65143 mov cx, word [bp-006h] ; 8b 4e fa 5091 5144 or cx, bx ; 09 d9 5092 5145 mov word [bp+01ah], cx ; 89 4e 1a … … 5097 5150 shr di, 1 ; d1 ef 5098 5151 rcr si, 1 ; d1 de 5099 mov word [bp-01ah], di ; 89 7e e6 5100 mov di, ax ; 89 c7 5101 and di, strict byte 00003h ; 83 e7 03 5102 xor bh, bh ; 30 ff 5103 add ax, word [bp-00ah] ; 03 46 f6 5152 mov bx, ax ; 89 c3 5153 xor bh, ah ; 30 e7 5154 and bl, 003h ; 80 e3 03 5155 mov word [bp-014h], bx ; 89 5e ec 5156 xor bx, bx ; 31 db 5157 add ax, word [bp-006h] ; 03 46 fa 5104 5158 adc dx, bx ; 11 da 5105 mov bx, ax ; 89 c3 5106 add bx, strict byte 0ffffh ; 83 c3 ff 5107 mov ax, dx ; 89 d0 5108 adc ax, strict word 0ffffh ; 15 ff ff 5109 mov word [bp-01eh], bx ; 89 5e e2 5110 mov word [bp-01ch], ax ; 89 46 e4 5159 add ax, strict word 0ffffh ; 05 ff ff 5160 adc dx, strict byte 0ffffh ; 83 d2 ff 5161 mov word [bp-01eh], ax ; 89 46 e2 5162 mov word [bp-01ch], dx ; 89 56 e4 5111 5163 shr word [bp-01ch], 1 ; d1 6e e4 5112 5164 rcr word [bp-01eh], 1 ; d1 5e e2 … … 5114 5166 rcr word [bp-01eh], 1 ; d1 5e e2 5115 5167 mov cx, strict word 0000ch ; b9 0c 00 5116 xor bx, bx ; 31 db5117 5168 mov dx, ss ; 8c d2 5118 5169 lea ax, [bp-02ah] ; 8d 46 d6 5119 call 0 8caah ; e8 36 4f5170 call 0902ah ; e8 52 52 5120 5171 mov word [bp-02ah], strict word 00028h ; c7 46 d6 28 00 5121 mov ax, word [bp-01 4h] ; 8b 46 ec5172 mov ax, word [bp-018h] ; 8b 46 e8 5122 5173 add ax, si ; 01 f0 5123 mov dx, word [bp-01 2h] ; 8b 56 ee5124 adc dx, word [bp-01ah] ; 13 56 e65174 mov dx, word [bp-016h] ; 8b 56 ea 5175 adc dx, di ; 11 fa 5125 5176 xchg ah, al ; 86 c4 5126 5177 xchg dh, dl ; 86 d6 … … 5134 5185 xchg ah, al ; 86 c4 5135 5186 mov word [bp-023h], ax ; 89 46 dd 5136 les bx, [bp-00 8h] ; c4 5e f85187 les bx, [bp-00ah] ; c4 5e f6 5137 5188 mov word [es:bx+00ah], dx ; 26 89 57 0a 5138 5189 mov word [es:bx+00ch], 00200h ; 26 c7 47 0c 00 02 5139 mov ax, di ; 89 f85190 mov ax, word [bp-014h] ; 8b 46 ec 5140 5191 sal ax, 009h ; c1 e0 09 5141 5192 mov word [es:bx+01ah], ax ; 26 89 47 1a 5142 mov dx, word [bp-00 ah] ; 8b 56 f65193 mov dx, word [bp-006h] ; 8b 56 fa 5143 5194 sal dx, 009h ; c1 e2 09 5144 5195 and dh, 007h ; 80 e6 07 … … 5146 5197 sub bx, dx ; 29 d3 5147 5198 mov dx, bx ; 89 da 5148 mov bx, word [bp-00 8h] ; 8b 5e f85199 mov bx, word [bp-00ah] ; 8b 5e f6 5149 5200 mov bx, word [es:bx+01ah] ; 26 8b 5f 1a 5150 5201 sub dx, bx ; 29 da 5151 mov bx, word [bp-00 8h] ; 8b 5e f85202 mov bx, word [bp-00ah] ; 8b 5e f6 5152 5203 mov word [es:bx+01ch], dx ; 26 89 57 1c 5153 cmp byte [bp-002h], 008h ; 80 7e fe 08 5154 jbe short 03e02h ; 76 2a 5155 push word [bp-00eh] ; ff 76 f2 5156 push word [bp-00ch] ; ff 76 f4 5204 cmp byte [bp-002h], 00ch ; 80 7e fe 0c 5205 jc short 03e64h ; 72 28 5206 push dword [bp-010h] ; 66 ff 76 f0 5157 5207 push strict byte 00001h ; 6a 01 5158 mov si, word [bp-00 ah] ; 8b 76 f65208 mov si, word [bp-006h] ; 8b 76 fa 5159 5209 xor di, di ; 31 ff 5160 5210 mov cx, strict word 00009h ; b9 09 00 5161 5211 sal si, 1 ; d1 e6 5162 5212 rcl di, 1 ; d1 d7 5163 loop 03 de8h ; e2 fa5213 loop 03e4ah ; e2 fa 5164 5214 push di ; 57 5165 5215 push si ; 56 … … 5169 5219 lea bx, [bp-02ah] ; 8d 5e d6 5170 5220 mov dx, strict word 0000ch ; ba 0c 00 5171 call 07f53h ; e8 53 41 5172 jmp short 03e2ah ; eb 28 5173 push word [bp-00eh] ; ff 76 f2 5174 push word [bp-00ch] ; ff 76 f4 5221 call 082c2h ; e8 60 44 5222 jmp short 03eb8h ; eb 54 5223 cmp byte [bp-002h], 008h ; 80 7e fe 08 5224 jc short 03e92h ; 72 28 5225 push dword [bp-010h] ; 66 ff 76 f0 5175 5226 push strict byte 00001h ; 6a 01 5176 mov si, word [bp-00 ah] ; 8b 76 f65227 mov si, word [bp-006h] ; 8b 76 fa 5177 5228 xor di, di ; 31 ff 5178 5229 mov cx, strict word 00009h ; b9 09 00 5179 5230 sal si, 1 ; d1 e6 5180 5231 rcl di, 1 ; d1 d7 5181 loop 03e 12h ; e2 fa5232 loop 03e78h ; e2 fa 5182 5233 push di ; 57 5183 5234 push si ; 56 … … 5187 5238 lea bx, [bp-02ah] ; 8d 5e d6 5188 5239 mov dx, strict word 0000ch ; ba 0c 00 5189 call 0280ah ; e8 e0 e9 5240 call 07626h ; e8 96 37 5241 jmp short 03eb8h ; eb 26 5242 push dword [bp-010h] ; 66 ff 76 f0 5243 push strict byte 00001h ; 6a 01 5244 mov si, word [bp-006h] ; 8b 76 fa 5245 xor di, di ; 31 ff 5246 mov cx, strict word 00009h ; b9 09 00 5247 sal si, 1 ; d1 e6 5248 rcl di, 1 ; d1 d7 5249 loop 03ea0h ; e2 fa 5250 push di ; 57 5251 push si ; 56 5252 push ax ; 50 5253 movzx ax, byte [bp-002h] ; 0f b6 46 fe 5254 mov cx, ss ; 8c d1 5255 lea bx, [bp-02ah] ; 8d 5e d6 5256 mov dx, strict word 0000ch ; ba 0c 00 5257 call 027eah ; e8 32 e9 5190 5258 mov dl, al ; 88 c2 5191 les bx, [bp-00 8h] ; c4 5e f85259 les bx, [bp-00ah] ; c4 5e f6 5192 5260 db 066h, 026h, 0c7h, 047h, 01ah, 000h, 000h, 000h, 000h 5193 5261 ; mov dword [es:bx+01ah], strict dword 000000000h ; 66 26 c7 47 1a 00 00 00 00 5194 5262 test dl, dl ; 84 d2 5195 je near 03f 0eh ; 0f 84 d0005196 mov bx, 00c d6h ; bb d60c5263 je near 03f98h ; 0f 84 cc 00 5264 mov bx, 00cech ; bb ec 0c 5197 5265 mov cx, ds ; 8c d9 5198 5266 mov ax, strict word 00004h ; b8 04 00 5199 call 018aeh ; e8 65 da5267 call 018aeh ; e8 d7 d9 5200 5268 movzx ax, dl ; 0f b6 c2 5201 5269 push ax ; 50 … … 5206 5274 push 002fch ; 68 fc 02 5207 5275 push strict byte 00004h ; 6a 04 5208 call 018e9h ; e8 8a da5276 call 018e9h ; e8 fc d9 5209 5277 add sp, strict byte 0000ah ; 83 c4 0a 5210 5278 mov ax, word [bp+01ah] ; 8b 46 1a … … 5213 5281 mov word [bp+01ah], ax ; 89 46 1a 5214 5282 mov byte [bp+01ah], 000h ; c6 46 1a 00 5215 jmp near 03f 58h ; e9 e4005283 jmp near 03fe3h ; e9 e1 00 5216 5284 mov es, [bp-004h] ; 8e 46 fc 5217 mov di, word [es:si+014h] ; 26 8b 7c 14 5285 mov ax, word [es:si+014h] ; 26 8b 44 14 5286 mov word [bp-00ch], ax ; 89 46 f4 5218 5287 mov dx, word [es:si+012h] ; 26 8b 54 12 5219 5288 dec dx ; 4a 5220 mov bx, word [es:si+010h] ; 26 8b 5c 105221 dec bx ; 4b5289 mov di, word [es:si+010h] ; 26 8b 7c 10 5290 dec di ; 4f 5222 5291 mov byte [bp+01ah], 000h ; c6 46 1a 00 5223 mov ax, word [bp+014h] ; 8b 46 14 5224 xor al, al ; 30 c0 5225 mov cx, word [bp+018h] ; 8b 4e 18 5226 xor ch, ch ; 30 ed 5227 mov word [bp-018h], cx ; 89 4e e8 5228 mov cx, dx ; 89 d1 5229 xor ch, dh ; 30 f5 5230 sal cx, 008h ; c1 e1 08 5231 mov word [bp-016h], cx ; 89 4e ea 5232 mov cx, word [bp-018h] ; 8b 4e e8 5233 or cx, word [bp-016h] ; 0b 4e ea 5234 mov word [bp+018h], cx ; 89 4e 18 5292 mov cx, word [bp+014h] ; 8b 4e 14 5293 xor cl, cl ; 30 c9 5294 mov ax, word [bp+018h] ; 8b 46 18 5295 xor ah, ah ; 30 e4 5296 mov word [bp-01ah], ax ; 89 46 e6 5297 mov ax, dx ; 89 d0 5298 xor ah, dh ; 30 f4 5299 sal ax, 008h ; c1 e0 08 5300 mov bx, word [bp-01ah] ; 8b 5e e6 5301 or bx, ax ; 09 c3 5302 mov word [bp+018h], bx ; 89 5e 18 5235 5303 shr dx, 002h ; c1 ea 02 5236 5304 xor dh, dh ; 30 f6 5237 5305 and dl, 0c0h ; 80 e2 c0 5238 mov word [bp-016h], dx ; 89 56 ea 5239 mov dx, di ; 89 fa 5240 xor dh, dh ; 30 f6 5241 and dl, 03fh ; 80 e2 3f 5242 or dx, word [bp-016h] ; 0b 56 ea 5243 xor cl, cl ; 30 c9 5244 or cx, dx ; 09 d1 5245 mov word [bp+018h], cx ; 89 4e 18 5246 mov dx, word [bp+016h] ; 8b 56 16 5247 xor dh, dh ; 30 f6 5248 sal bx, 008h ; c1 e3 08 5249 or dx, bx ; 09 da 5250 mov word [bp+016h], dx ; 89 56 16 5251 xor dl, dl ; 30 d2 5252 or dl, 002h ; 80 ca 02 5253 mov word [bp+016h], dx ; 89 56 16 5254 mov dl, byte [es:si+001h] ; 26 8a 54 01 5255 mov word [bp+014h], ax ; 89 46 14 5256 cmp dl, 003h ; 80 fa 03 5257 je short 03f00h ; 74 1a 5258 cmp dl, 002h ; 80 fa 02 5259 je short 03efch ; 74 11 5260 cmp dl, 001h ; 80 fa 01 5261 jne short 03f04h ; 75 14 5306 mov ax, word [bp-00ch] ; 8b 46 f4 5307 and AL, strict byte 03fh ; 24 3f 5308 or dl, al ; 08 c2 5309 mov ax, bx ; 89 d8 5310 xor al, bl ; 30 d8 5311 or ax, dx ; 09 d0 5312 mov word [bp+018h], ax ; 89 46 18 5313 mov ax, word [bp+016h] ; 8b 46 16 5314 xor ah, ah ; 30 e4 5315 sal di, 008h ; c1 e7 08 5316 or ax, di ; 09 f8 5317 mov word [bp+016h], ax ; 89 46 16 5318 xor al, al ; 30 c0 5319 or AL, strict byte 002h ; 0c 02 5320 mov word [bp+016h], ax ; 89 46 16 5321 mov al, byte [es:si+001h] ; 26 8a 44 01 5322 mov word [bp+014h], cx ; 89 4e 14 5323 cmp AL, strict byte 003h ; 3c 03 5324 je short 03f89h ; 74 1c 5325 cmp AL, strict byte 002h ; 3c 02 5326 je short 03f81h ; 74 10 5327 cmp AL, strict byte 001h ; 3c 01 5328 jne short 03f8eh ; 75 19 5262 5329 mov ax, word [bp+014h] ; 8b 46 14 5263 5330 xor al, al ; 30 c0 5264 5331 or AL, strict byte 002h ; 0c 02 5265 5332 mov word [bp+014h], ax ; 89 46 14 5266 jmp short 03f04h ; eb 08 5267 or AL, strict byte 004h ; 0c 04 5268 jmp short 03ef7h ; eb f7 5269 or AL, strict byte 006h ; 0c 06 5270 jmp short 03ef7h ; eb f3 5333 jmp short 03f8eh ; eb 0d 5334 or cl, 004h ; 80 c9 04 5335 mov word [bp+014h], cx ; 89 4e 14 5336 jmp short 03f8eh ; eb 05 5337 or cl, 006h ; 80 c9 06 5338 jmp short 03f84h ; eb f6 5271 5339 mov word [bp+00ch], 0efc7h ; c7 46 0c c7 ef 5272 5340 mov word [bp+00ah], 0f000h ; c7 46 0a 00 f0 … … 5275 5343 mov dx, strict word 00074h ; ba 74 00 5276 5344 mov ax, strict word 00040h ; b8 40 00 5277 call 0160eh ; e8 f1d65345 call 0160eh ; e8 67 d6 5278 5346 and byte [bp+020h], 0feh ; 80 66 20 fe 5279 5347 leave ; c9 … … 5281 5349 pop si ; 5e 5282 5350 retn ; c3 5283 or bh, 003h ; 80 cf035284 mov word [bp+01ah], bx ; 89 5e 1a5285 jmp short 03f 12h ; eb e55286 mov bx, 00c d6h ; bb d60c5351 or di, 00300h ; 81 cf 00 03 5352 mov word [bp+01ah], di ; 89 7e 1a 5353 jmp short 03f9ch ; eb e4 5354 mov bx, 00cech ; bb ec 0c 5287 5355 mov cx, ds ; 8c d9 5288 5356 mov ax, strict word 00004h ; b8 04 00 5289 call 018aeh ; e8 76 d95357 call 018aeh ; e8 eb d8 5290 5358 mov ax, word [bp+01ah] ; 8b 46 1a 5291 5359 shr ax, 008h ; c1 e8 08 … … 5294 5362 push 0031dh ; 68 1d 03 5295 5363 push strict byte 00004h ; 6a 04 5296 call 018e9h ; e8 9fd95364 call 018e9h ; e8 14 d9 5297 5365 add sp, strict byte 00008h ; 83 c4 08 5298 5366 mov ax, word [bp+01ah] ; 8b 46 1a … … 5305 5373 mov dx, strict word 00074h ; ba 74 00 5306 5374 mov ax, strict word 00040h ; b8 40 00 5307 call 0160eh ; e8 a5d65375 call 0160eh ; e8 1a d6 5308 5376 or byte [bp+020h], 001h ; 80 4e 20 01 5309 jmp short 03f 21h ; eb b25377 jmp short 03fabh ; eb b1 5310 5378 push ax ; 50 5311 5379 dec si ; 4e … … 5326 5394 add AL, strict byte 003h ; 04 03 5327 5395 add al, byte [bx+di] ; 02 01 5328 add byte [bx+si], bl ; 00 185396 add dh, ch ; 00 ee 5329 5397 inc bp ; 45 5330 xchg si, ax ; 96 5398 xchg di, ax ; 97 5399 inc bp ; 45 5400 inc byte [bx+si-012h] ; fe 40 ee 5401 inc bp ; 45 5402 rep inc ax ; f3 40 5403 out DX, AL ; ee 5404 inc bp ; 45 5405 rep inc ax ; f3 40 5406 out DX, AL ; ee 5407 inc bp ; 45 5408 xchg di, ax ; 97 5409 inc bp ; 45 5410 out DX, AL ; ee 5411 inc bp ; 45 5412 out DX, AL ; ee 5413 inc bp ; 45 5414 xchg di, ax ; 97 5415 inc bp ; 45 5416 xchg di, ax ; 97 5417 inc bp ; 45 5418 xchg di, ax ; 97 5419 inc bp ; 45 5420 xchg di, ax ; 97 5421 inc bp ; 45 5422 xchg di, ax ; 97 5423 inc bp ; 45 5424 sub byte [bx+di-069h], al ; 28 41 97 5425 inc bp ; 45 5426 out DX, AL ; ee 5427 inc bp ; 45 5428 xor word [bx+di+044h], ax ; 31 41 44 5429 inc cx ; 41 5430 rep inc ax ; f3 40 5431 inc sp ; 44 5432 inc cx ; 41 5433 iret ; cf 5331 5434 inc dx ; 42 5332 jnc short 03fd2h ; 73 40 5333 sbb byte [di+068h], al ; 18 45 68 5334 inc ax ; 40 5335 sbb byte [di+068h], al ; 18 45 68 5336 inc ax ; 40 5337 sbb byte [di-06ah], al ; 18 45 96 5338 inc dx ; 42 5339 sbb byte [di+018h], al ; 18 45 18 5435 jc short 0408ch ; 72 43 5436 inc sp ; 44 5437 inc cx ; 41 5438 lahf ; 9f 5439 inc bx ; 43 5440 scasb ; ae 5340 5441 inc bp ; 45 5341 xchg si, ax ; 96 5342 inc dx ; 42 5343 xchg si, ax ; 96 5344 inc dx ; 42 5345 xchg si, ax ; 96 5346 inc dx ; 42 5347 xchg si, ax ; 96 5348 inc dx ; 42 5349 xchg si, ax ; 96 5350 inc dx ; 42 5351 popfw ; 9d 5352 inc ax ; 40 5353 xchg si, ax ; 96 5354 inc dx ; 42 5355 sbb byte [di-05ah], al ; 18 45 a6 5356 inc ax ; 40 5357 mov cx, 06840h ; b9 40 68 5358 inc ax ; 40 5359 mov cx, 00740h ; b9 40 07 5360 inc dx ; 42 5361 lodsw ; ad 5362 inc dx ; 42 5363 mov cx, 0d840h ; b9 40 d8 5364 inc dx ; 42 5365 rol word [si-027h], 1 ; d1 44 d9 5366 inc sp ; 44 5367 db 018h 5442 mov DH, strict byte 045h ; b6 45 5443 out DX, AL ; ee 5368 5444 inc bp ; 45 5369 _int13_cdrom: ; 0xf 3fc8 LB 0x56d5445 _int13_cdrom: ; 0xf4053 LB 0x5b8 5370 5446 push si ; 56 5371 5447 push di ; 57 … … 5373 5449 mov dx, strict word 0000eh ; ba 0e 00 5374 5450 mov ax, strict word 00040h ; b8 40 00 5375 call 0161ch ; e8 45 d65451 call 0161ch ; e8 ba d5 5376 5452 mov word [bp-018h], ax ; 89 46 e8 5377 5453 mov si, 00122h ; be 22 01 … … 5380 5456 mov dx, strict word 00074h ; ba 74 00 5381 5457 mov ax, strict word 00040h ; b8 40 00 5382 call 0160eh ; e8 23 d65458 call 0160eh ; e8 98 d5 5383 5459 mov ax, word [bp+014h] ; 8b 46 14 5384 5460 xor ah, ah ; 30 e4 5385 5461 cmp ax, 000e0h ; 3d e0 00 5386 jc short 0 3ffah ; 72 055462 jc short 04085h ; 72 05 5387 5463 cmp ax, 000f0h ; 3d f0 00 5388 jc short 040 18h ; 72 1e5464 jc short 040a3h ; 72 1e 5389 5465 mov ax, word [bp+014h] ; 8b 46 14 5390 5466 xor ah, ah ; 30 e4 … … 5396 5472 push 00359h ; 68 59 03 5397 5473 push strict byte 00004h ; 6a 04 5398 call 018e9h ; e8 d7d85474 call 018e9h ; e8 4c d8 5399 5475 add sp, strict byte 0000ah ; 83 c4 0a 5400 jmp near 04 4f5h ; e9 dd 045476 jmp near 045cch ; e9 29 05 5401 5477 mov ax, word [bp+014h] ; 8b 46 14 5402 5478 xor ah, ah ; 30 e4 … … 5405 5481 add bx, ax ; 01 c3 5406 5482 mov dl, byte [es:bx+000d0h] ; 26 8a 97 d0 00 5407 mov byte [bp-00 6h], dl ; 88 56 fa5483 mov byte [bp-002h], dl ; 88 56 fe 5408 5484 cmp dl, 010h ; 80 fa 10 5409 jc short 040 41h ; 72 105485 jc short 040cch ; 72 10 5410 5486 push ax ; 50 5411 5487 mov ax, word [bp+01ch] ; 8b 46 1c … … 5414 5490 push 0034dh ; 68 4d 03 5415 5491 push 00384h ; 68 84 03 5416 jmp short 040 0dh ; eb cc5492 jmp short 04098h ; eb cc 5417 5493 mov ax, word [bp+01ch] ; 8b 46 1c 5418 5494 shr ax, 008h ; c1 e8 08 5419 5495 cmp ax, strict word 00050h ; 3d 50 00 5420 jnbe near 045 18h ; 0f 87 ca 045496 jnbe near 045eeh ; 0f 87 15 05 5421 5497 push CS ; 0e 5422 5498 pop ES ; 07 5423 5499 mov cx, strict word 0001eh ; b9 1e 00 5424 mov di, 03f 6fh ; bf 6f3f5500 mov di, 03ffah ; bf fa 3f 5425 5501 repne scasb ; f2 ae 5426 5502 sal cx, 1 ; d1 e1 5427 5503 mov di, cx ; 89 cf 5428 mov ax, word [cs:di+0 3f8ch] ; 2e 8b 85 8c 3f5504 mov ax, word [cs:di+04017h] ; 2e 8b 85 17 40 5429 5505 mov bx, word [bp+01ch] ; 8b 5e 1c 5430 5506 xor bh, bh ; 30 ff … … 5433 5509 xor ah, ah ; 30 e4 5434 5510 or ah, 003h ; 80 cc 03 5435 jmp near 04 4fdh ; e9 8a045511 jmp near 045d4h ; e9 d6 04 5436 5512 mov dx, strict word 00074h ; ba 74 00 5437 5513 mov ax, strict word 00040h ; b8 40 00 5438 call 01600h ; e8 84 d55514 call 01600h ; e8 f9 d4 5439 5515 mov cl, al ; 88 c1 5440 5516 movzx ax, cl ; 0f b6 c1 … … 5445 5521 mov dx, strict word 00074h ; ba 74 00 5446 5522 mov ax, strict word 00040h ; b8 40 00 5447 call 0160eh ; e8 7a d55523 call 0160eh ; e8 ef d4 5448 5524 test cl, cl ; 84 c9 5449 je near 04 29ah ; 0f 84 00 025450 jmp near 045 11h ; e9 74045525 je near 0459bh ; 0f 84 76 04 5526 jmp near 045e8h ; e9 c0 04 5451 5527 or bh, 002h ; 80 cf 02 5452 5528 mov word [bp+01ch], bx ; 89 5e 1c 5453 jmp near 045 00h ; e9 5a045529 jmp near 045d7h ; e9 a6 04 5454 5530 mov word [bp+016h], 0aa55h ; c7 46 16 55 aa 5455 5531 or bh, 030h ; 80 cf 30 5456 5532 mov word [bp+01ch], bx ; 89 5e 1c 5457 5533 mov word [bp+01ah], strict word 00007h ; c7 46 1a 07 00 5458 jmp near 04 29ah ; e9 e1 015534 jmp near 0459bh ; e9 57 04 5459 5535 mov bx, word [bp+010h] ; 8b 5e 10 5460 5536 mov es, [bp+00ah] ; 8e 46 0a 5461 5537 mov di, bx ; 89 df 5462 mov [bp-01 2h], es ; 8c 46 ee5538 mov [bp-016h], es ; 8c 46 ea 5463 5539 mov ax, word [es:bx+002h] ; 26 8b 47 02 5464 mov word [bp-0 0ch], ax ; 89 46 f45540 mov word [bp-01ch], ax ; 89 46 e4 5465 5541 mov ax, word [es:bx+006h] ; 26 8b 47 06 5542 mov word [bp-012h], ax ; 89 46 ee 5543 mov ax, word [es:bx+004h] ; 26 8b 47 04 5544 mov word [bp-010h], ax ; 89 46 f0 5545 mov ax, word [es:bx+00ch] ; 26 8b 47 0c 5466 5546 mov word [bp-014h], ax ; 89 46 ec 5467 mov ax, word [es:bx+004h] ; 26 8b 47 045468 mov word [bp-016h], ax ; 89 46 ea5469 mov ax, word [es:bx+00ch] ; 26 8b 47 0c5470 mov word [bp-010h], ax ; 89 46 f05471 5547 mov ax, word [es:bx+00eh] ; 26 8b 47 0e 5472 mov word [bp-0 1ch], ax ; 89 46 e45473 or ax, word [bp-01 0h] ; 0b 46 f05474 je short 041 04h ; 74 185548 mov word [bp-00eh], ax ; 89 46 f2 5549 or ax, word [bp-014h] ; 0b 46 ec 5550 je short 0418fh ; 74 18 5475 5551 mov ax, word [bp+01ch] ; 8b 46 1c 5476 5552 shr ax, 008h ; c1 e8 08 … … 5479 5555 push 003b6h ; 68 b6 03 5480 5556 push strict byte 00007h ; 6a 07 5481 call 018e9h ; e8 ebd75557 call 018e9h ; e8 60 d7 5482 5558 add sp, strict byte 00008h ; 83 c4 08 5483 jmp near 04 4f5h ; e9 f1 035484 mov es, [bp-01 2h] ; 8e 46 ee5559 jmp near 045cch ; e9 3d 04 5560 mov es, [bp-016h] ; 8e 46 ea 5485 5561 mov ax, word [es:di+008h] ; 26 8b 45 08 5486 mov word [bp-01 0h], ax ; 89 46 f05562 mov word [bp-014h], ax ; 89 46 ec 5487 5563 mov ax, word [es:di+00ah] ; 26 8b 45 0a 5488 mov word [bp-0 1ch], ax ; 89 46 e45564 mov word [bp-00eh], ax ; 89 46 f2 5489 5565 mov ax, word [bp+01ch] ; 8b 46 1c 5490 5566 shr ax, 008h ; c1 e8 08 5491 5567 cmp ax, strict word 00044h ; 3d 44 00 5492 je near 04 296h ; 0f 84 74 015568 je near 04597h ; 0f 84 ea 03 5493 5569 cmp ax, strict word 00047h ; 3d 47 00 5494 je near 04 296h ; 0f 84 6d 015570 je near 04597h ; 0f 84 e3 03 5495 5571 mov cx, strict word 0000ch ; b9 0c 00 5496 5572 xor bx, bx ; 31 db 5497 5573 mov dx, ss ; 8c d2 5498 5574 lea ax, [bp-028h] ; 8d 46 d8 5499 call 0 8caah ; e8 74 4b5575 call 0902ah ; e8 69 4e 5500 5576 mov word [bp-028h], strict word 00028h ; c7 46 d8 28 00 5501 mov ax, word [bp-01 0h] ; 8b 46 f05502 mov dx, word [bp-0 1ch] ; 8b 56 e45577 mov ax, word [bp-014h] ; 8b 46 ec 5578 mov dx, word [bp-00eh] ; 8b 56 f2 5503 5579 xchg ah, al ; 86 c4 5504 5580 xchg dh, dl ; 86 d6 … … 5506 5582 mov word [bp-026h], ax ; 89 46 da 5507 5583 mov word [bp-024h], dx ; 89 56 dc 5508 mov ax, word [bp-0 0ch] ; 8b 46 f45584 mov ax, word [bp-01ch] ; 8b 46 e4 5509 5585 xchg ah, al ; 86 c4 5510 5586 mov word [bp-021h], ax ; 89 46 df 5511 les ax, [bp-00ch] ; c4 46 f4 5587 mov ax, word [bp-01ch] ; 8b 46 e4 5588 mov es, [bp-00ah] ; 8e 46 f6 5512 5589 mov word [es:si+00ah], ax ; 26 89 44 0a 5513 5590 mov word [es:si+00ch], 00800h ; 26 c7 44 0c 00 08 5514 cmp byte [bp-006h], 008h ; 80 7e fa 08 5515 jbe short 0418dh ; 76 26 5516 push dword [bp-016h] ; 66 ff 76 ea 5591 mov al, byte [bp-002h] ; 8a 46 fe 5592 cmp AL, strict byte 00ch ; 3c 0c 5593 jc short 04221h ; 72 2b 5594 push word [bp-012h] ; ff 76 ee 5595 push word [bp-010h] ; ff 76 f0 5517 5596 push strict byte 00001h ; 6a 01 5597 mov ax, word [bp-01ch] ; 8b 46 e4 5518 5598 xor bx, bx ; 31 db 5519 5599 mov cx, strict word 0000bh ; b9 0b 00 5520 5600 sal ax, 1 ; d1 e0 5521 5601 rcl bx, 1 ; d1 d3 5522 loop 04 172h ; e2 fa5602 loop 04206h ; e2 fa 5523 5603 push bx ; 53 5524 5604 push ax ; 50 5525 5605 push strict byte 00000h ; 6a 00 5526 movzx ax, byte [bp-00 6h] ; 0f b6 46 fa5606 movzx ax, byte [bp-002h] ; 0f b6 46 fe 5527 5607 mov cx, ss ; 8c d1 5528 5608 lea bx, [bp-028h] ; 8d 5e d8 5529 5609 mov dx, strict word 0000ch ; ba 0c 00 5530 call 07f53h ; e8 c8 3d 5531 jmp short 041b1h ; eb 24 5532 push dword [bp-016h] ; 66 ff 76 ea 5610 call 082c2h ; e8 a3 40 5611 jmp short 04279h ; eb 58 5612 cmp AL, strict byte 008h ; 3c 08 5613 jc short 04250h ; 72 2b 5614 push word [bp-012h] ; ff 76 ee 5615 push word [bp-010h] ; ff 76 f0 5533 5616 push strict byte 00001h ; 6a 01 5617 mov ax, word [bp-01ch] ; 8b 46 e4 5534 5618 xor bx, bx ; 31 db 5535 5619 mov cx, strict word 0000bh ; b9 0b 00 5536 5620 sal ax, 1 ; d1 e0 5537 5621 rcl bx, 1 ; d1 d3 5538 loop 04 198h ; e2 fa5622 loop 04235h ; e2 fa 5539 5623 push bx ; 53 5540 5624 push ax ; 50 5541 5625 push strict byte 00000h ; 6a 00 5542 movzx ax, byte [bp-00 6h] ; 0f b6 46 fa5626 movzx ax, byte [bp-002h] ; 0f b6 46 fe 5543 5627 mov cx, ss ; 8c d1 5544 5628 lea bx, [bp-028h] ; 8d 5e d8 5545 5629 mov dx, strict word 0000ch ; ba 0c 00 5546 call 0280ah ; e8 59 e6 5547 mov byte [bp-004h], al ; 88 46 fc 5630 call 07626h ; e8 d8 33 5631 jmp short 04279h ; eb 29 5632 push word [bp-012h] ; ff 76 ee 5633 push word [bp-010h] ; ff 76 f0 5634 push strict byte 00001h ; 6a 01 5635 mov ax, word [bp-01ch] ; 8b 46 e4 5636 xor bx, bx ; 31 db 5637 mov cx, strict word 0000bh ; b9 0b 00 5638 sal ax, 1 ; d1 e0 5639 rcl bx, 1 ; d1 d3 5640 loop 04260h ; e2 fa 5641 push bx ; 53 5642 push ax ; 50 5643 push strict byte 00000h ; 6a 00 5644 movzx ax, byte [bp-002h] ; 0f b6 46 fe 5645 mov cx, ss ; 8c d1 5646 lea bx, [bp-028h] ; 8d 5e d8 5647 mov dx, strict word 0000ch ; ba 0c 00 5648 call 027eah ; e8 71 e5 5649 mov byte [bp-006h], al ; 88 46 fa 5548 5650 mov es, [bp-00ah] ; 8e 46 f6 5549 5651 mov ax, word [es:si+016h] ; 26 8b 44 16 … … 5552 5654 shr bx, 1 ; d1 eb 5553 5655 rcr ax, 1 ; d1 d8 5554 loop 04 1c2h ; e2 fa5555 mov es, [bp-01 2h] ; 8e 46 ee5656 loop 0428ah ; e2 fa 5657 mov es, [bp-016h] ; 8e 46 ea 5556 5658 mov word [es:di+002h], ax ; 26 89 45 02 5557 cmp byte [bp-00 4h], 000h ; 80 7e fc005558 je near 04 296h ; 0f 84 bf 005559 mov bx, 00c d6h ; bb d60c5659 cmp byte [bp-006h], 000h ; 80 7e fa 00 5660 je near 04597h ; 0f 84 f8 02 5661 mov bx, 00cech ; bb ec 0c 5560 5662 mov cx, ds ; 8c d9 5561 5663 mov ax, strict word 00004h ; b8 04 00 5562 call 018aeh ; e8 ccd65563 movzx ax, byte [bp-00 4h] ; 0f b6 46 fc5664 call 018aeh ; e8 04 d6 5665 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5564 5666 push ax ; 50 5565 5667 mov ax, word [bp+01ch] ; 8b 46 1c … … 5569 5671 push 003dfh ; 68 df 03 5570 5672 push strict byte 00004h ; 6a 04 5571 call 018e9h ; e8 f0d65673 call 018e9h ; e8 28 d6 5572 5674 add sp, strict byte 0000ah ; 83 c4 0a 5573 5675 mov ax, word [bp+01ch] ; 8b 46 1c 5574 5676 xor ah, ah ; 30 e4 5575 5677 or ah, 00ch ; 80 cc 0c 5576 jmp near 04 4fdh ; e9 f6 025678 jmp near 045d4h ; e9 05 03 5577 5679 cmp bx, strict byte 00002h ; 83 fb 02 5578 jnbe near 04 4f5h ; 0f 87 e7025579 movzx ax, byte [bp-00 6h] ; 0f b6 46 fa5680 jnbe near 045cch ; 0f 87 f6 02 5681 movzx ax, byte [bp-002h] ; 0f b6 46 fe 5580 5682 imul ax, ax, strict byte 00018h ; 6b c0 18 5581 5683 mov es, [bp-00ah] ; 8e 46 f6 … … 5584 5686 mov al, byte [es:di+021h] ; 26 8a 45 21 5585 5687 cmp bx, strict byte 00002h ; 83 fb 02 5586 je short 04 287h ; 74 625688 je short 04361h ; 74 74 5587 5689 cmp bx, strict byte 00001h ; 83 fb 01 5588 je short 04 265h ; 74 3b5690 je short 0432dh ; 74 3b 5589 5691 test bx, bx ; 85 db 5590 jne near 04 296h ; 0f 85 66 005692 jne near 04597h ; 0f 85 9f 02 5591 5693 cmp AL, strict byte 0ffh ; 3c ff 5592 jne short 04 246h ; 75 125694 jne short 0430eh ; 75 12 5593 5695 mov ax, word [bp+01ch] ; 8b 46 1c 5594 5696 xor ah, ah ; 30 e4 … … 5597 5699 xor al, al ; 30 c0 5598 5700 or AL, strict byte 001h ; 0c 01 5599 jmp near 04 4fdh ; e9 b7025600 movzx dx, byte [bp-00 6h] ; 0f b6 56 fa5701 jmp near 045d4h ; e9 c6 02 5702 movzx dx, byte [bp-002h] ; 0f b6 56 fe 5601 5703 imul dx, dx, strict byte 00018h ; 6b d2 18 5602 5704 db 0feh, 0c0h … … 5609 5711 or AL, strict byte 001h ; 0c 01 5610 5712 mov word [bp+01ch], ax ; 89 46 1c 5611 jmp near 04 296h ; e9 31 005713 jmp near 04597h ; e9 6a 02 5612 5714 test al, al ; 84 c0 5613 jne short 04 275h ; 75 0c5715 jne short 0433dh ; 75 0c 5614 5716 or bh, 0b0h ; 80 cf b0 5615 5717 mov word [bp+01ch], bx ; 89 5e 1c 5616 5718 mov byte [bp+01ch], al ; 88 46 1c 5617 jmp near 045 00h ; e9 8b025618 movzx dx, byte [bp-00 6h] ; 0f b6 56 fa5719 jmp near 045d7h ; e9 9a 02 5720 movzx dx, byte [bp-002h] ; 0f b6 56 fe 5619 5721 imul dx, dx, strict byte 00018h ; 6b d2 18 5620 5722 db 0feh, 0c8h … … 5630 5732 mov dl, al ; 88 c2 5631 5733 mov word [bp+01ch], dx ; 89 56 1c 5632 mov byte [bp+01dh], 000h ; c6 46 1d 00 5633 xor bx, bx ; 31 db 5634 mov dx, strict word 00074h ; ba 74 00 5635 mov ax, strict word 00040h ; b8 40 00 5636 call 0160eh ; e8 69 d3 5637 and byte [bp+022h], 0feh ; 80 66 22 fe 5638 leave ; c9 5639 pop di ; 5f 5640 pop si ; 5e 5641 retn ; c3 5642 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5734 jmp near 04597h ; e9 36 02 5735 test al, al ; 84 c0 5736 db 00fh, 095h, 0c0h 5737 ; setne al ; 0f 95 c0 5738 movzx dx, al ; 0f b6 d0 5739 mov ax, word [bp+01ch] ; 8b 46 1c 5740 xor al, al ; 30 c0 5741 or ax, dx ; 09 d0 5742 jmp short 04327h ; eb b5 5743 movzx ax, byte [bp-002h] ; 0f b6 46 fe 5643 5744 imul ax, ax, strict byte 00018h ; 6b c0 18 5644 5745 mov es, [bp-00ah] ; 8e 46 f6 … … 5646 5747 mov al, byte [es:si+021h] ; 26 8a 44 21 5647 5748 test al, al ; 84 c0 5648 je short 04 2c7h ; 74 065749 je short 0438ch ; 74 06 5649 5750 or bh, 0b1h ; 80 cf b1 5650 jmp near 04 0a0h ; e9 d9fd5651 cmp byte [bp-00 4h], 000h ; 80 7e fc005652 je short 04296h ; 74 c95751 jmp near 0412bh ; e9 9f fd 5752 cmp byte [bp-006h], 000h ; 80 7e fa 00 5753 je near 04597h ; 0f 84 03 02 5653 5754 mov ax, word [bp+01ch] ; 8b 46 1c 5654 5755 xor ah, ah ; 30 e4 5655 5756 or ah, 0b1h ; 80 cc b1 5656 jmp near 04 4fdh ; e9 25 025757 jmp near 045d4h ; e9 35 02 5657 5758 mov dx, word [bp+010h] ; 8b 56 10 5658 5759 mov cx, word [bp+00ah] ; 8b 4e 0a … … 5662 5763 mov di, dx ; 89 d7 5663 5764 mov ax, word [es:di] ; 26 8b 05 5664 mov word [bp-00 eh], ax ; 89 46 f25765 mov word [bp-00ch], ax ; 89 46 f4 5665 5766 cmp ax, strict word 0001ah ; 3d 1a 00 5666 jc near 04 4f5h ; 0f 82 01 025667 jc short 04 343h ; 72 4d5668 movzx di, byte [bp-00 6h] ; 0f b6 7e fa5767 jc near 045cch ; 0f 82 11 02 5768 jc short 0440ah ; 72 4d 5769 movzx di, byte [bp-002h] ; 0f b6 7e fe 5669 5770 imul di, di, strict byte 00018h ; 6b ff 18 5670 5771 mov es, [bp-00ah] ; 8e 46 f6 … … 5686 5787 db 066h, 026h, 0c7h, 045h, 014h, 0ffh, 0ffh, 0ffh, 0ffh 5687 5788 ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff 5688 cmp word [bp-00 eh], strict byte 0001eh ; 83 7e f21e5689 jc near 044 19h ; 0f 82 ce005789 cmp word [bp-00ch], strict byte 0001eh ; 83 7e f4 1e 5790 jc near 044e2h ; 0f 82 d0 00 5690 5791 mov es, [bp-008h] ; 8e 46 f8 5691 5792 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 … … 5693 5794 mov word [es:bx+01ch], ax ; 26 89 47 1c 5694 5795 mov word [es:bx+01ah], 00312h ; 26 c7 47 1a 12 03 5695 movzx cx, byte [bp-00 6h] ; 0f b6 4e fa5796 movzx cx, byte [bp-002h] ; 0f b6 4e fe 5696 5797 mov ax, cx ; 89 c8 5697 5798 cwd ; 99 … … 5704 5805 mov di, si ; 89 f7 5705 5806 add di, ax ; 01 c7 5706 mov dx, word [es:di+001c2h] ; 26 8b 95 c2 01 5707 mov ax, word [es:di+001c4h] ; 26 8b 85 c4 01 5807 mov ax, word [es:di+001c2h] ; 26 8b 85 c2 01 5708 5808 mov word [bp-01ah], ax ; 89 46 e6 5809 mov dx, word [es:di+001c4h] ; 26 8b 95 c4 01 5709 5810 mov al, byte [es:di+001c1h] ; 26 8a 85 c1 01 5710 mov byte [bp-00 2h], al ; 88 46 fe5811 mov byte [bp-004h], al ; 88 46 fc 5711 5812 imul cx, cx, strict byte 00018h ; 6b c9 18 5712 5813 mov di, si ; 89 f7 … … 5716 5817 db 00fh, 094h, 0c0h 5717 5818 ; sete al ; 0f 94 c0 5718 xor ah, ah ; 30 e4 5719 or AL, strict byte 070h ; 0c 70 5720 mov di, ax ; 89 c7 5721 mov word [es:si+001f0h], dx ; 26 89 94 f0 01 5819 movzx cx, al ; 0f b6 c8 5820 or cl, 070h ; 80 c9 70 5722 5821 mov ax, word [bp-01ah] ; 8b 46 e6 5723 mov word [es:si+001f2h], ax ; 26 89 84 f2 01 5724 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5822 mov word [es:si+001f0h], ax ; 26 89 84 f0 01 5823 mov word [es:si+001f2h], dx ; 26 89 94 f2 01 5824 movzx ax, byte [bp-002h] ; 0f b6 46 fe 5725 5825 cwd ; 99 5726 mov cx, strict word 00002h ; b902 005727 idiv cx ; f7 f95826 mov di, strict word 00002h ; bf 02 00 5827 idiv di ; f7 ff 5728 5828 or dl, 00eh ; 80 ca 0e 5729 sal dx, 004h ; c1 e2 04 5730 mov byte [es:si+001f4h], dl ; 26 88 94 f4 01 5829 mov ax, dx ; 89 d0 5830 sal ax, 004h ; c1 e0 04 5831 mov byte [es:si+001f4h], al ; 26 88 84 f4 01 5731 5832 mov byte [es:si+001f5h], 0cbh ; 26 c6 84 f5 01 cb 5732 mov al, byte [bp-00 2h] ; 8a 46 fe5833 mov al, byte [bp-004h] ; 8a 46 fc 5733 5834 mov byte [es:si+001f6h], al ; 26 88 84 f6 01 5734 5835 mov word [es:si+001f7h], strict word 00001h ; 26 c7 84 f7 01 01 00 5735 5836 mov byte [es:si+001f9h], 000h ; 26 c6 84 f9 01 00 5736 mov word [es:si+001fah], di ; 26 89 bc fa 015837 mov word [es:si+001fah], cx ; 26 89 8c fa 01 5737 5838 mov word [es:si+001fch], strict word 00000h ; 26 c7 84 fc 01 00 00 5738 5839 mov byte [es:si+001feh], 011h ; 26 c6 84 fe 01 11 5739 5840 xor cl, cl ; 30 c9 5740 5841 xor ch, ch ; 30 ed 5741 jmp short 04 3fch ; eb 055842 jmp short 044c5h ; eb 05 5742 5843 cmp ch, 00fh ; 80 fd 0f 5743 jnc short 044 0fh ; 73 135844 jnc short 044d8h ; 73 13 5744 5845 movzx dx, ch ; 0f b6 d5 5745 5846 add dx, 00312h ; 81 c2 12 03 5746 5847 mov ax, word [bp-018h] ; 8b 46 e8 5747 call 01600h ; e8 f7d15848 call 01600h ; e8 2e d1 5748 5849 add cl, al ; 00 c1 5749 5850 db 0feh, 0c5h 5750 5851 ; inc ch ; fe c5 5751 jmp short 04 3f7h ; eb e85852 jmp short 044c0h ; eb e8 5752 5853 neg cl ; f6 d9 5753 5854 mov es, [bp-00ah] ; 8e 46 f6 5754 5855 mov byte [es:si+001ffh], cl ; 26 88 8c ff 01 5755 cmp word [bp-00 eh], strict byte 00042h ; 83 7e f2425756 jc near 04 296h ; 0f 82 75 fe5757 movzx ax, byte [bp-00 6h] ; 0f b6 46 fa5856 cmp word [bp-00ch], strict byte 00042h ; 83 7e f4 42 5857 jc near 04597h ; 0f 82 ad 00 5858 movzx ax, byte [bp-002h] ; 0f b6 46 fe 5758 5859 cwd ; 99 5759 5860 db 02bh, 0c2h … … 5772 5873 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 5773 5874 test al, al ; 84 c0 5774 jne short 04 462h ; 75 095875 jne short 0452bh ; 75 09 5775 5876 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 5776 5877 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 … … 5781 5882 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 5782 5883 test al, al ; 84 c0 5783 jne short 04 48eh ; 75 135884 jne short 04557h ; 75 13 5784 5885 mov word [es:bx+030h], dx ; 26 89 57 30 5785 5886 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h 5786 5887 ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00 5787 5888 mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00 5788 mov al, byte [bp-00 6h] ; 8a 46 fa5889 mov al, byte [bp-002h] ; 8a 46 fe 5789 5890 and AL, strict byte 001h ; 24 01 5790 5891 xor ah, ah ; 30 e4 … … 5796 5897 xor al, al ; 30 c0 5797 5898 mov AH, strict byte 01eh ; b4 1e 5798 jmp short 04 4b6h ; eb 055899 jmp short 0457fh ; eb 05 5799 5900 cmp ah, 040h ; 80 fc 40 5800 jnc short 04 4c5h ; 73 0f5901 jnc short 0458eh ; 73 0f 5801 5902 movzx si, ah ; 0f b6 f4 5802 5903 mov es, [bp-008h] ; 8e 46 f8 … … 5805 5906 db 0feh, 0c4h 5806 5907 ; inc ah ; fe c4 5807 jmp short 04 4b1h ; eb ec5908 jmp short 0457ah ; eb ec 5808 5909 neg al ; f6 d8 5809 5910 mov es, [bp-008h] ; 8e 46 f8 5810 5911 mov byte [es:bx+041h], al ; 26 88 47 41 5811 jmp near 04296h ; e9 c5 fd 5912 mov byte [bp+01dh], 000h ; c6 46 1d 00 5913 xor bx, bx ; 31 db 5914 mov dx, strict word 00074h ; ba 74 00 5915 mov ax, strict word 00040h ; b8 40 00 5916 call 0160eh ; e8 68 d0 5917 and byte [bp+022h], 0feh ; 80 66 22 fe 5918 leave ; c9 5919 pop di ; 5f 5920 pop si ; 5e 5921 retn ; c3 5812 5922 or bh, 006h ; 80 cf 06 5813 5923 mov word [bp+01ch], bx ; 89 5e 1c 5814 jmp short 045 11h ; eb 385924 jmp short 045e8h ; eb 32 5815 5925 cmp bx, strict byte 00006h ; 83 fb 06 5816 je near 04296h ; 0f 84 b6 fd5926 je short 04597h ; 74 dc 5817 5927 cmp bx, strict byte 00001h ; 83 fb 01 5818 jc short 04 4f5h ; 72 105819 jbe near 04296h ; 0f 86 ad fd5928 jc short 045cch ; 72 0c 5929 jbe short 04597h ; 76 d5 5820 5930 cmp bx, strict byte 00003h ; 83 fb 03 5821 jc short 04 4f5h ; 72 075931 jc short 045cch ; 72 05 5822 5932 cmp bx, strict byte 00004h ; 83 fb 04 5823 jbe near 04296h ; 0f 86 a1 fd5933 jbe short 04597h ; 76 cb 5824 5934 mov ax, word [bp+01ch] ; 8b 46 1c 5825 5935 xor ah, ah ; 30 e4 … … 5831 5941 mov dx, strict word 00074h ; ba 74 00 5832 5942 mov ax, strict word 00040h ; b8 40 00 5833 call 0160eh ; e8 fdd05943 call 0160eh ; e8 26 d0 5834 5944 or byte [bp+022h], 001h ; 80 4e 22 01 5835 jmp near 042a9h ; e9 91 fd5836 mov bx, 00c d6h ; bb d60c5945 jmp short 045aah ; eb bc 5946 mov bx, 00cech ; bb ec 0c 5837 5947 mov cx, ds ; 8c d9 5838 5948 mov ax, strict word 00004h ; b8 04 00 5839 call 018aeh ; e8 8b d35949 call 018aeh ; e8 b5 d2 5840 5950 mov ax, word [bp+01ch] ; 8b 46 1c 5841 5951 shr ax, 008h ; c1 e8 08 … … 5844 5954 push 002a1h ; 68 a1 02 5845 5955 push strict byte 00004h ; 6a 04 5846 jmp near 04 0fbh ; e9 c6fb5847 print_boot_device_: ; 0xf4 535LB 0x485956 jmp near 04186h ; e9 7b fb 5957 print_boot_device_: ; 0xf460b LB 0x48 5848 5958 push cx ; 51 5849 5959 push bp ; 55 5850 5960 mov bp, sp ; 89 e5 5851 5961 test al, al ; 84 c0 5852 je short 04 542h ; 74 055962 je short 04618h ; 74 05 5853 5963 mov dx, strict word 00002h ; ba 02 00 5854 jmp short 04 55ch ; eb 1a5964 jmp short 04632h ; eb 1a 5855 5965 test dl, dl ; 84 d2 5856 je short 04 54bh ; 74 055966 je short 04621h ; 74 05 5857 5967 mov dx, strict word 00003h ; ba 03 00 5858 jmp short 04 55ch ; eb 115968 jmp short 04632h ; eb 11 5859 5969 test bl, 080h ; f6 c3 80 5860 jne short 04 554h ; 75 045970 jne short 0462ah ; 75 04 5861 5971 xor dh, dh ; 30 f6 5862 jmp short 04 55ch ; eb 085972 jmp short 04632h ; eb 08 5863 5973 test bl, 080h ; f6 c3 80 5864 je short 04 57ah ; 74 215974 je short 04650h ; 74 21 5865 5975 mov dx, strict word 00001h ; ba 01 00 5866 mov bx, 00c d6h ; bb d60c5976 mov bx, 00cech ; bb ec 0c 5867 5977 mov cx, ds ; 8c d9 5868 5978 mov ax, strict word 00004h ; b8 04 00 5869 call 018aeh ; e8 47 d35979 call 018aeh ; e8 71 d2 5870 5980 imul dx, dx, strict byte 0000ah ; 6b d2 0a 5871 add dx, 00 cfch ; 81 c2 fc 0c5981 add dx, 00d12h ; 81 c2 12 0d 5872 5982 push dx ; 52 5873 5983 push 00402h ; 68 02 04 5874 5984 push strict byte 00004h ; 6a 04 5875 call 018e9h ; e8 72 d35985 call 018e9h ; e8 9c d2 5876 5986 add sp, strict byte 00006h ; 83 c4 06 5877 5987 pop bp ; 5d 5878 5988 pop cx ; 59 5879 5989 retn ; c3 5880 print_boot_failure_: ; 0xf4 57dLB 0x905990 print_boot_failure_: ; 0xf4653 LB 0x90 5881 5991 push si ; 56 5882 5992 push bp ; 55 … … 5887 5997 movzx si, ah ; 0f b6 f4 5888 5998 test al, al ; 84 c0 5889 je short 04 5aah ; 74 1b5890 mov bx, 00c d6h ; bb d60c5999 je short 04680h ; 74 1b 6000 mov bx, 00cech ; bb ec 0c 5891 6001 mov cx, ds ; 8c d9 5892 6002 mov ax, strict word 00004h ; b8 04 00 5893 call 018aeh ; e8 14 d35894 push 00d 10h ; 68 100d6003 call 018aeh ; e8 3e d2 6004 push 00d26h ; 68 26 0d 5895 6005 push 00416h ; 68 16 04 5896 6006 push strict byte 00004h ; 6a 04 5897 call 018e9h ; e8 44 d36007 call 018e9h ; e8 6e d2 5898 6008 add sp, strict byte 00006h ; 83 c4 06 5899 jmp short 04 5eeh ; eb 446009 jmp short 046c4h ; eb 44 5900 6010 test dl, dl ; 84 d2 5901 je short 04 5beh ; 74 105902 mov bx, 00c d6h ; bb d60c6011 je short 04694h ; 74 10 6012 mov bx, 00cech ; bb ec 0c 5903 6013 mov cx, ds ; 8c d9 5904 6014 mov ax, strict word 00004h ; b8 04 00 5905 call 018aeh ; e8 f5d25906 push 00d 1ah ; 68 1a0d5907 jmp short 04 59dh ; eb df6015 call 018aeh ; e8 1f d2 6016 push 00d30h ; 68 30 0d 6017 jmp short 04673h ; eb df 5908 6018 test bl, 080h ; f6 c3 80 5909 je short 04 5d4h ; 74 115910 mov bx, 00c d6h ; bb d60c6019 je short 046aah ; 74 11 6020 mov bx, 00cech ; bb ec 0c 5911 6021 mov cx, ds ; 8c d9 5912 6022 mov ax, strict word 00004h ; b8 04 00 5913 call 018aeh ; e8 e0d26023 call 018aeh ; e8 0a d2 5914 6024 push si ; 56 5915 push 00d 06h ; 68 060d5916 jmp short 04 5e3h ; eb 0f5917 mov bx, 00c d6h ; bb d60c6025 push 00d1ch ; 68 1c 0d 6026 jmp short 046b9h ; eb 0f 6027 mov bx, 00cech ; bb ec 0c 5918 6028 mov cx, ds ; 8c d9 5919 6029 mov ax, strict word 00004h ; b8 04 00 5920 call 018aeh ; e8 cf d26030 call 018aeh ; e8 f9 d1 5921 6031 push si ; 56 5922 push 00 cfch ; 68 fc 0c6032 push 00d12h ; 68 12 0d 5923 6033 push 0042bh ; 68 2b 04 5924 6034 push strict byte 00004h ; 6a 04 5925 call 018e9h ; e8 fed26035 call 018e9h ; e8 28 d2 5926 6036 add sp, strict byte 00008h ; 83 c4 08 5927 6037 cmp byte [bp+006h], 001h ; 80 7e 06 01 5928 jne short 046 08h ; 75 146038 jne short 046deh ; 75 14 5929 6039 test dh, dh ; 84 f6 5930 jne short 04 5fdh ; 75 056040 jne short 046d3h ; 75 05 5931 6041 push 00443h ; 68 43 04 5932 jmp short 046 00h ; eb 036042 jmp short 046d6h ; eb 03 5933 6043 push 0046dh ; 68 6d 04 5934 6044 push strict byte 00007h ; 6a 07 5935 call 018e9h ; e8 e4d26045 call 018e9h ; e8 0e d2 5936 6046 add sp, strict byte 00004h ; 83 c4 04 5937 6047 pop bp ; 5d 5938 6048 pop si ; 5e 5939 6049 retn 00002h ; c2 02 00 5940 print_cdromboot_failure_: ; 0xf46 0dLB 0x246050 print_cdromboot_failure_: ; 0xf46e3 LB 0x24 5941 6051 push bx ; 53 5942 6052 push cx ; 51 … … 5945 6055 mov bp, sp ; 89 e5 5946 6056 mov dx, ax ; 89 c2 5947 mov bx, 00c d6h ; bb d60c6057 mov bx, 00cech ; bb ec 0c 5948 6058 mov cx, ds ; 8c d9 5949 6059 mov ax, strict word 00004h ; b8 04 00 5950 call 018aeh ; e8 8e d26060 call 018aeh ; e8 b8 d1 5951 6061 push dx ; 52 5952 6062 push 004a2h ; 68 a2 04 5953 6063 push strict byte 00004h ; 6a 04 5954 call 018e9h ; e8 c0 d26064 call 018e9h ; e8 ea d1 5955 6065 add sp, strict byte 00006h ; 83 c4 06 5956 6066 pop bp ; 5d … … 5959 6069 pop bx ; 5b 5960 6070 retn ; c3 5961 _int19_function: ; 0xf4 631LB 0x2516071 _int19_function: ; 0xf4707 LB 0x251 5962 6072 push si ; 56 5963 6073 push di ; 57 … … 5965 6075 mov dx, strict word 0000eh ; ba 0e 00 5966 6076 mov ax, strict word 00040h ; b8 40 00 5967 call 0161ch ; e8 dccf6077 call 0161ch ; e8 06 cf 5968 6078 mov bx, ax ; 89 c3 5969 6079 mov word [bp-00ah], ax ; 89 46 f6 5970 6080 mov byte [bp-004h], 000h ; c6 46 fc 00 5971 6081 mov ax, strict word 0003dh ; b8 3d 00 5972 call 0165ch ; e8 0d d06082 call 0165ch ; e8 37 cf 5973 6083 movzx si, al ; 0f b6 f0 5974 6084 mov ax, strict word 00038h ; b8 38 00 5975 call 0165ch ; e8 04 d06085 call 0165ch ; e8 2e cf 5976 6086 and AL, strict byte 0f0h ; 24 f0 5977 6087 xor ah, ah ; 30 e4 … … 5979 6089 or si, ax ; 09 c6 5980 6090 mov ax, strict word 0003ch ; b8 3c 00 5981 call 0165ch ; e8 f5cf6091 call 0165ch ; e8 1f cf 5982 6092 and AL, strict byte 00fh ; 24 0f 5983 6093 xor ah, ah ; 30 e4 … … 5986 6096 mov dx, 00339h ; ba 39 03 5987 6097 mov ax, bx ; 89 d8 5988 call 01600h ; e8 88 cf6098 call 01600h ; e8 b2 ce 5989 6099 test al, al ; 84 c0 5990 je short 04 687h ; 74 0b6100 je short 0475dh ; 74 0b 5991 6101 mov dx, 00339h ; ba 39 03 5992 6102 mov ax, bx ; 89 d8 5993 call 01600h ; e8 7c cf6103 call 01600h ; e8 a6 ce 5994 6104 movzx si, al ; 0f b6 f0 5995 6105 cmp byte [bp+008h], 001h ; 80 7e 08 01 5996 jne short 04 69dh ; 75 106106 jne short 04773h ; 75 10 5997 6107 mov ax, strict word 0003ch ; b8 3c 00 5998 call 0165ch ; e8 c9 cf6108 call 0165ch ; e8 f3 ce 5999 6109 and AL, strict byte 0f0h ; 24 f0 6000 6110 xor ah, ah ; 30 e4 6001 6111 sar ax, 004h ; c1 f8 04 6002 call 07 20dh ; e8 702b6112 call 0734fh ; e8 dc 2b 6003 6113 cmp byte [bp+008h], 002h ; 80 7e 08 02 6004 jne short 04 6a6h ; 75 036114 jne short 0477ch ; 75 03 6005 6115 shr si, 004h ; c1 ee 04 6006 6116 cmp byte [bp+008h], 003h ; 80 7e 08 03 6007 jne short 04 6afh ; 75 036117 jne short 04785h ; 75 03 6008 6118 shr si, 008h ; c1 ee 08 6009 6119 cmp byte [bp+008h], 004h ; 80 7e 08 04 6010 jne short 04 6b8h ; 75 036120 jne short 0478eh ; 75 03 6011 6121 shr si, 00ch ; c1 ee 0c 6012 6122 cmp si, strict byte 00010h ; 83 fe 10 6013 jnc short 04 6c1h ; 73 046123 jnc short 04797h ; 73 04 6014 6124 mov byte [bp-004h], 001h ; c6 46 fc 01 6015 6125 xor al, al ; 30 c0 … … 6017 6127 mov byte [bp-006h], al ; 88 46 fa 6018 6128 mov byte [bp-008h], al ; 88 46 f8 6019 mov bx, 00c d6h ; bb d60c6129 mov bx, 00cech ; bb ec 0c 6020 6130 mov cx, ds ; 8c d9 6021 6131 mov ax, strict word 00004h ; b8 04 00 6022 call 018aeh ; e8 d7d16132 call 018aeh ; e8 01 d1 6023 6133 push si ; 56 6024 6134 movzx ax, byte [bp+008h] ; 0f b6 46 08 … … 6026 6136 push 004c2h ; 68 c2 04 6027 6137 push strict byte 00004h ; 6a 04 6028 call 018e9h ; e8 04 d26138 call 018e9h ; e8 2e d1 6029 6139 add sp, strict byte 00008h ; 83 c4 08 6030 6140 and si, strict byte 0000fh ; 83 e6 0f 6031 6141 cmp si, strict byte 00002h ; 83 fe 02 6032 jc short 04 6feh ; 72 0e6033 jbe short 047 0dh ; 76 1b6142 jc short 047d4h ; 72 0e 6143 jbe short 047e3h ; 76 1b 6034 6144 cmp si, strict byte 00004h ; 83 fe 04 6035 je short 04 72bh ; 74 346145 je short 04801h ; 74 34 6036 6146 cmp si, strict byte 00003h ; 83 fe 03 6037 je short 047 21h ; 74 256038 jmp short 04 758h ; eb 5a6147 je short 047f7h ; 74 25 6148 jmp short 0482eh ; eb 5a 6039 6149 cmp si, strict byte 00001h ; 83 fe 01 6040 jne short 04 758h ; 75 556150 jne short 0482eh ; 75 55 6041 6151 xor al, al ; 30 c0 6042 6152 mov byte [bp-002h], al ; 88 46 fe 6043 6153 mov byte [bp-006h], al ; 88 46 fa 6044 jmp short 04 770h ; eb 636154 jmp short 04846h ; eb 63 6045 6155 mov dx, 00338h ; ba 38 03 6046 6156 mov ax, word [bp-00ah] ; 8b 46 f6 6047 call 01600h ; e8 eace6157 call 01600h ; e8 14 ce 6048 6158 add AL, strict byte 080h ; 04 80 6049 6159 mov byte [bp-002h], al ; 88 46 fe 6050 6160 mov byte [bp-006h], 000h ; c6 46 fa 00 6051 jmp short 04 770h ; eb 4f6161 jmp short 04846h ; eb 4f 6052 6162 mov byte [bp-002h], 000h ; c6 46 fe 00 6053 6163 mov byte [bp-006h], 001h ; c6 46 fa 01 6054 jmp short 04 735h ; eb 0a6164 jmp short 0480bh ; eb 0a 6055 6165 mov byte [bp-008h], 001h ; c6 46 f8 01 6056 6166 cmp byte [bp-006h], 000h ; 80 7e fa 00 6057 je short 04 770h ; 74 3b6058 call 037 7ah ; e8 42 f06167 je short 04846h ; 74 3b 6168 call 0375ah ; e8 4c ef 6059 6169 mov bx, ax ; 89 c3 6060 6170 test AL, strict byte 0ffh ; a8 ff 6061 je short 04 75fh ; 74 216062 call 046 0dh ; e8 cc fe6171 je short 04835h ; 74 21 6172 call 046e3h ; e8 cc fe 6063 6173 movzx ax, byte [bp-004h] ; 0f b6 46 fc 6064 6174 push ax ; 50 … … 6067 6177 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6068 6178 mov cx, strict word 00001h ; b9 01 00 6069 call 04 57dh ; e8 25 fe6179 call 04653h ; e8 25 fe 6070 6180 xor ax, ax ; 31 c0 6071 6181 xor dx, dx ; 31 d2 6072 jmp near 04 87eh ; e9 1f 016182 jmp near 04954h ; e9 1f 01 6073 6183 mov dx, 0032eh ; ba 2e 03 6074 6184 mov ax, word [bp-00ah] ; 8b 46 f6 6075 call 0161ch ; e8 b4 ce6185 call 0161ch ; e8 de cd 6076 6186 mov di, ax ; 89 c7 6077 6187 shr bx, 008h ; c1 eb 08 6078 6188 mov byte [bp-002h], bl ; 88 5e fe 6079 6189 cmp byte [bp-008h], 001h ; 80 7e f8 01 6080 jne near 04 7ech ; 0f 85 74 006190 jne near 048c2h ; 0f 85 74 00 6081 6191 xor si, si ; 31 f6 6082 6192 mov ax, 0e200h ; b8 00 e2 6083 6193 mov es, ax ; 8e c0 6084 6194 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 6085 jne short 04 741h ; 75 bb6195 jne short 04817h ; 75 bb 6086 6196 mov cx, ax ; 89 c1 6087 6197 mov si, word [es:si+01ah] ; 26 8b 74 1a 6088 6198 cmp word [es:si+002h], 0506eh ; 26 81 7c 02 6e 50 6089 jne short 04 741h ; 75 ad6199 jne short 04817h ; 75 ad 6090 6200 cmp word [es:si], 05024h ; 26 81 3c 24 50 6091 jne short 04 741h ; 75 a66201 jne short 04817h ; 75 a6 6092 6202 mov di, word [es:si+00eh] ; 26 8b 7c 0e 6093 6203 mov dx, word [es:di] ; 26 8b 15 6094 6204 mov ax, word [es:di+002h] ; 26 8b 45 02 6095 6205 cmp ax, 06568h ; 3d 68 65 6096 jne short 04 7cah ; 75 1f6206 jne short 048a0h ; 75 1f 6097 6207 cmp dx, 07445h ; 81 fa 45 74 6098 jne short 04 7cah ; 75 196208 jne short 048a0h ; 75 19 6099 6209 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6100 6210 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6101 6211 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6102 call 04 535h ; e8 75 fd6212 call 0460bh ; e8 75 fd 6103 6213 mov word [bp-00eh], strict word 00006h ; c7 46 f2 06 00 6104 6214 mov word [bp-00ch], cx ; 89 4e f4 6105 jmp short 04 7e6h ; eb 1c6215 jmp short 048bch ; eb 1c 6106 6216 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6107 6217 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6108 6218 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6109 call 04 535h ; e8 5c fd6219 call 0460bh ; e8 5c fd 6110 6220 sti ; fb 6111 6221 mov word [bp-00ch], cx ; 89 4e f4 … … 6114 6224 mov word [bp-00eh], ax ; 89 46 f2 6115 6225 call far [bp-00eh] ; ff 5e f2 6116 jmp near 04 741h ; e9 55 ff6226 jmp near 04817h ; e9 55 ff 6117 6227 cmp byte [bp-006h], 000h ; 80 7e fa 00 6118 jne short 048 18h ; 75 266228 jne short 048eeh ; 75 26 6119 6229 cmp byte [bp-008h], 000h ; 80 7e f8 00 6120 jne short 048 18h ; 75 206230 jne short 048eeh ; 75 20 6121 6231 mov di, 007c0h ; bf c0 07 6122 6232 mov es, di ; 8e c7 … … 6131 6241 sbb ax, strict byte 00000h ; 83 d8 00 6132 6242 test ax, ax ; 85 c0 6133 jne near 04 741h ; 0f 85 29 ff6243 jne near 04817h ; 0f 85 29 ff 6134 6244 cmp byte [bp-002h], 000h ; 80 7e fe 00 6135 6245 db 00fh, 094h, 0c1h 6136 6246 ; sete cl ; 0f 94 c1 6137 6247 cmp byte [bp-006h], 000h ; 80 7e fa 00 6138 je short 048 27h ; 74 026248 je short 048fdh ; 74 02 6139 6249 mov CL, strict byte 001h ; b1 01 6140 6250 xor dx, dx ; 31 d2 6141 6251 mov ax, di ; 89 f8 6142 call 0161ch ; e8 eecd6252 call 0161ch ; e8 18 cd 6143 6253 mov bx, ax ; 89 c3 6144 6254 mov dx, strict word 00002h ; ba 02 00 6145 6255 mov ax, di ; 89 f8 6146 call 0161ch ; e8 e4cd6256 call 0161ch ; e8 0e cd 6147 6257 cmp bx, ax ; 39 c3 6148 je short 04 84dh ; 74 116258 je short 04923h ; 74 11 6149 6259 test cl, cl ; 84 c9 6150 jne short 04 863h ; 75 236260 jne short 04939h ; 75 23 6151 6261 mov dx, 001feh ; ba fe 01 6152 6262 mov ax, di ; 89 f8 6153 call 0161ch ; e8 d4 cd6263 call 0161ch ; e8 fe cc 6154 6264 cmp ax, 0aa55h ; 3d 55 aa 6155 je short 04 863h ; 74 166265 je short 04939h ; 74 16 6156 6266 movzx ax, byte [bp-004h] ; 0f b6 46 fc 6157 6267 push ax ; 50 … … 6160 6270 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6161 6271 xor cx, cx ; 31 c9 6162 jmp near 04 755h ; e9 f2 fe6272 jmp near 0482bh ; e9 f2 fe 6163 6273 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6164 6274 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6165 6275 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6166 call 04 535h ; e8 c3 fc6276 call 0460bh ; e8 c3 fc 6167 6277 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6168 6278 xor dx, dx ; 31 d2 … … 6174 6284 pop si ; 5e 6175 6285 retn ; c3 6176 keyboard_panic_: ; 0xf4 882LB 0x116286 keyboard_panic_: ; 0xf4958 LB 0x11 6177 6287 push bp ; 55 6178 6288 mov bp, sp ; 89 e5 … … 6180 6290 push 004e2h ; 68 e2 04 6181 6291 push strict byte 00007h ; 6a 07 6182 call 018e9h ; e8 5b d06292 call 018e9h ; e8 85 cf 6183 6293 add sp, strict byte 00006h ; 83 c4 06 6184 6294 pop bp ; 5d 6185 6295 retn ; c3 6186 _keyboard_init: ; 0xf4 893LB 0x27a6296 _keyboard_init: ; 0xf4969 LB 0x27a 6187 6297 push bp ; 55 6188 6298 mov bp, sp ; 89 e5 … … 6196 6306 ; sub ah, ah ; 2a e4 6197 6307 test AL, strict byte 002h ; a8 02 6198 je short 04 8b6h ; 74 0d6308 je short 0498ch ; 74 0d 6199 6309 dec bx ; 4b 6200 6310 test bx, bx ; 85 db 6201 jbe short 04 8b6h ; 76 086311 jbe short 0498ch ; 76 08 6202 6312 xor al, al ; 30 c0 6203 6313 mov dx, 00080h ; ba 80 00 6204 6314 out DX, AL ; ee 6205 jmp short 04 89fh ; eb e96315 jmp short 04975h ; eb e9 6206 6316 test bx, bx ; 85 db 6207 jne short 04 8bfh ; 75 056317 jne short 04995h ; 75 05 6208 6318 xor ax, ax ; 31 c0 6209 call 04 882h ; e8 c3 ff6319 call 04958h ; e8 c3 ff 6210 6320 mov bx, strict word 0ffffh ; bb ff ff 6211 6321 mov dx, strict word 00064h ; ba 64 00 … … 6214 6324 ; sub ah, ah ; 2a e4 6215 6325 test AL, strict byte 001h ; a8 01 6216 jne short 04 8d9h ; 75 0d6326 jne short 049afh ; 75 0d 6217 6327 dec bx ; 4b 6218 6328 test bx, bx ; 85 db 6219 jbe short 04 8d9h ; 76 086329 jbe short 049afh ; 76 08 6220 6330 mov AL, strict byte 001h ; b0 01 6221 6331 mov dx, 00080h ; ba 80 00 6222 6332 out DX, AL ; ee 6223 jmp short 04 8c2h ; eb e96333 jmp short 04998h ; eb e9 6224 6334 test bx, bx ; 85 db 6225 jne short 04 8e3h ; 75 066335 jne short 049b9h ; 75 06 6226 6336 mov ax, strict word 00001h ; b8 01 00 6227 call 04 882h ; e8 9f ff6337 call 04958h ; e8 9f ff 6228 6338 mov dx, strict word 00060h ; ba 60 00 6229 6339 in AL, DX ; ec … … 6231 6341 ; sub ah, ah ; 2a e4 6232 6342 cmp ax, strict word 00055h ; 3d 55 00 6233 je short 04 8f4h ; 74 066343 je short 049cah ; 74 06 6234 6344 mov ax, 003dfh ; b8 df 03 6235 call 04 882h ; e8 8e ff6345 call 04958h ; e8 8e ff 6236 6346 mov AL, strict byte 0abh ; b0 ab 6237 6347 mov dx, strict word 00064h ; ba 64 00 … … 6243 6353 ; sub ah, ah ; 2a e4 6244 6354 test AL, strict byte 002h ; a8 02 6245 je short 049 14h ; 74 0d6355 je short 049eah ; 74 0d 6246 6356 dec bx ; 4b 6247 6357 test bx, bx ; 85 db 6248 jbe short 049 14h ; 76 086358 jbe short 049eah ; 76 08 6249 6359 mov AL, strict byte 010h ; b0 10 6250 6360 mov dx, 00080h ; ba 80 00 6251 6361 out DX, AL ; ee 6252 jmp short 04 8fdh ; eb e96362 jmp short 049d3h ; eb e9 6253 6363 test bx, bx ; 85 db 6254 jne short 049 1eh ; 75 066364 jne short 049f4h ; 75 06 6255 6365 mov ax, strict word 0000ah ; b8 0a 00 6256 call 04 882h ; e8 64 ff6366 call 04958h ; e8 64 ff 6257 6367 mov bx, strict word 0ffffh ; bb ff ff 6258 6368 mov dx, strict word 00064h ; ba 64 00 … … 6261 6371 ; sub ah, ah ; 2a e4 6262 6372 test AL, strict byte 001h ; a8 01 6263 jne short 04 938h ; 75 0d6373 jne short 04a0eh ; 75 0d 6264 6374 dec bx ; 4b 6265 6375 test bx, bx ; 85 db 6266 jbe short 04 938h ; 76 086376 jbe short 04a0eh ; 76 08 6267 6377 mov AL, strict byte 011h ; b0 11 6268 6378 mov dx, 00080h ; ba 80 00 6269 6379 out DX, AL ; ee 6270 jmp short 049 21h ; eb e96380 jmp short 049f7h ; eb e9 6271 6381 test bx, bx ; 85 db 6272 jne short 04 942h ; 75 066382 jne short 04a18h ; 75 06 6273 6383 mov ax, strict word 0000bh ; b8 0b 00 6274 call 04 882h ; e8 40 ff6384 call 04958h ; e8 40 ff 6275 6385 mov dx, strict word 00060h ; ba 60 00 6276 6386 in AL, DX ; ec … … 6278 6388 ; sub ah, ah ; 2a e4 6279 6389 test ax, ax ; 85 c0 6280 je short 04 952h ; 74 066390 je short 04a28h ; 74 06 6281 6391 mov ax, 003e0h ; b8 e0 03 6282 call 04 882h ; e8 30 ff6392 call 04958h ; e8 30 ff 6283 6393 mov AL, strict byte 0ffh ; b0 ff 6284 6394 mov dx, strict word 00060h ; ba 60 00 … … 6290 6400 ; sub ah, ah ; 2a e4 6291 6401 test AL, strict byte 002h ; a8 02 6292 je short 04 972h ; 74 0d6402 je short 04a48h ; 74 0d 6293 6403 dec bx ; 4b 6294 6404 test bx, bx ; 85 db 6295 jbe short 04 972h ; 76 086405 jbe short 04a48h ; 76 08 6296 6406 mov AL, strict byte 020h ; b0 20 6297 6407 mov dx, 00080h ; ba 80 00 6298 6408 out DX, AL ; ee 6299 jmp short 04 95bh ; eb e96409 jmp short 04a31h ; eb e9 6300 6410 test bx, bx ; 85 db 6301 jne short 04 97ch ; 75 066411 jne short 04a52h ; 75 06 6302 6412 mov ax, strict word 00014h ; b8 14 00 6303 call 04 882h ; e8 06 ff6413 call 04958h ; e8 06 ff 6304 6414 mov bx, strict word 0ffffh ; bb ff ff 6305 6415 mov dx, strict word 00064h ; ba 64 00 … … 6308 6418 ; sub ah, ah ; 2a e4 6309 6419 test AL, strict byte 001h ; a8 01 6310 jne short 04 996h ; 75 0d6420 jne short 04a6ch ; 75 0d 6311 6421 dec bx ; 4b 6312 6422 test bx, bx ; 85 db 6313 jbe short 04 996h ; 76 086423 jbe short 04a6ch ; 76 08 6314 6424 mov AL, strict byte 021h ; b0 21 6315 6425 mov dx, 00080h ; ba 80 00 6316 6426 out DX, AL ; ee 6317 jmp short 04 97fh ; eb e96427 jmp short 04a55h ; eb e9 6318 6428 test bx, bx ; 85 db 6319 jne short 04 9a0h ; 75 066429 jne short 04a76h ; 75 06 6320 6430 mov ax, strict word 00015h ; b8 15 00 6321 call 04 882h ; e8 e2 fe6431 call 04958h ; e8 e2 fe 6322 6432 mov dx, strict word 00060h ; ba 60 00 6323 6433 in AL, DX ; ec … … 6325 6435 ; sub ah, ah ; 2a e4 6326 6436 cmp ax, 000fah ; 3d fa 00 6327 je short 04 9b1h ; 74 066437 je short 04a87h ; 74 06 6328 6438 mov ax, 003e1h ; b8 e1 03 6329 call 04 882h ; e8 d1 fe6439 call 04958h ; e8 d1 fe 6330 6440 mov bx, strict word 0ffffh ; bb ff ff 6331 6441 mov dx, strict word 00064h ; ba 64 00 … … 6334 6444 ; sub ah, ah ; 2a e4 6335 6445 test AL, strict byte 001h ; a8 01 6336 jne short 04 9cbh ; 75 0d6446 jne short 04aa1h ; 75 0d 6337 6447 dec bx ; 4b 6338 6448 test bx, bx ; 85 db 6339 jbe short 04 9cbh ; 76 086449 jbe short 04aa1h ; 76 08 6340 6450 mov AL, strict byte 031h ; b0 31 6341 6451 mov dx, 00080h ; ba 80 00 6342 6452 out DX, AL ; ee 6343 jmp short 04 9b4h ; eb e96453 jmp short 04a8ah ; eb e9 6344 6454 test bx, bx ; 85 db 6345 jne short 04 9d5h ; 75 066455 jne short 04aabh ; 75 06 6346 6456 mov ax, strict word 0001fh ; b8 1f 00 6347 call 04 882h ; e8 ad fe6457 call 04958h ; e8 ad fe 6348 6458 mov dx, strict word 00060h ; ba 60 00 6349 6459 in AL, DX ; ec … … 6351 6461 ; sub ah, ah ; 2a e4 6352 6462 cmp ax, 000aah ; 3d aa 00 6353 je short 04 9eeh ; 74 0e6463 je short 04ac4h ; 74 0e 6354 6464 in AL, DX ; ec 6355 6465 db 02ah, 0e4h 6356 6466 ; sub ah, ah ; 2a e4 6357 6467 cmp ax, 000aah ; 3d aa 00 6358 je short 04 9eeh ; 74 066468 je short 04ac4h ; 74 06 6359 6469 mov ax, 003e2h ; b8 e2 03 6360 call 04 882h ; e8 94 fe6470 call 04958h ; e8 94 fe 6361 6471 mov AL, strict byte 0f5h ; b0 f5 6362 6472 mov dx, strict word 00060h ; ba 60 00 … … 6368 6478 ; sub ah, ah ; 2a e4 6369 6479 test AL, strict byte 002h ; a8 02 6370 je short 04a 0eh ; 74 0d6480 je short 04ae4h ; 74 0d 6371 6481 dec bx ; 4b 6372 6482 test bx, bx ; 85 db 6373 jbe short 04a 0eh ; 76 086483 jbe short 04ae4h ; 76 08 6374 6484 mov AL, strict byte 040h ; b0 40 6375 6485 mov dx, 00080h ; ba 80 00 6376 6486 out DX, AL ; ee 6377 jmp short 04 9f7h ; eb e96487 jmp short 04acdh ; eb e9 6378 6488 test bx, bx ; 85 db 6379 jne short 04a 18h ; 75 066489 jne short 04aeeh ; 75 06 6380 6490 mov ax, strict word 00028h ; b8 28 00 6381 call 04 882h ; e8 6a fe6491 call 04958h ; e8 6a fe 6382 6492 mov bx, strict word 0ffffh ; bb ff ff 6383 6493 mov dx, strict word 00064h ; ba 64 00 … … 6386 6496 ; sub ah, ah ; 2a e4 6387 6497 test AL, strict byte 001h ; a8 01 6388 jne short 04 a32h ; 75 0d6498 jne short 04b08h ; 75 0d 6389 6499 dec bx ; 4b 6390 6500 test bx, bx ; 85 db 6391 jbe short 04 a32h ; 76 086501 jbe short 04b08h ; 76 08 6392 6502 mov AL, strict byte 041h ; b0 41 6393 6503 mov dx, 00080h ; ba 80 00 6394 6504 out DX, AL ; ee 6395 jmp short 04a 1bh ; eb e96505 jmp short 04af1h ; eb e9 6396 6506 test bx, bx ; 85 db 6397 jne short 04 a3ch ; 75 066507 jne short 04b12h ; 75 06 6398 6508 mov ax, strict word 00029h ; b8 29 00 6399 call 04 882h ; e8 46 fe6509 call 04958h ; e8 46 fe 6400 6510 mov dx, strict word 00060h ; ba 60 00 6401 6511 in AL, DX ; ec … … 6403 6513 ; sub ah, ah ; 2a e4 6404 6514 cmp ax, 000fah ; 3d fa 00 6405 je short 04 a4dh ; 74 066515 je short 04b23h ; 74 06 6406 6516 mov ax, 003e3h ; b8 e3 03 6407 call 04 882h ; e8 35 fe6517 call 04958h ; e8 35 fe 6408 6518 mov AL, strict byte 060h ; b0 60 6409 6519 mov dx, strict word 00064h ; ba 64 00 … … 6415 6525 ; sub ah, ah ; 2a e4 6416 6526 test AL, strict byte 002h ; a8 02 6417 je short 04 a6dh ; 74 0d6527 je short 04b43h ; 74 0d 6418 6528 dec bx ; 4b 6419 6529 test bx, bx ; 85 db 6420 jbe short 04 a6dh ; 76 086530 jbe short 04b43h ; 76 08 6421 6531 mov AL, strict byte 050h ; b0 50 6422 6532 mov dx, 00080h ; ba 80 00 6423 6533 out DX, AL ; ee 6424 jmp short 04 a56h ; eb e96534 jmp short 04b2ch ; eb e9 6425 6535 test bx, bx ; 85 db 6426 jne short 04 a77h ; 75 066536 jne short 04b4dh ; 75 06 6427 6537 mov ax, strict word 00032h ; b8 32 00 6428 call 04 882h ; e8 0b fe6538 call 04958h ; e8 0b fe 6429 6539 mov AL, strict byte 065h ; b0 65 6430 6540 mov dx, strict word 00060h ; ba 60 00 … … 6436 6546 ; sub ah, ah ; 2a e4 6437 6547 test AL, strict byte 002h ; a8 02 6438 je short 04 a97h ; 74 0d6548 je short 04b6dh ; 74 0d 6439 6549 dec bx ; 4b 6440 6550 test bx, bx ; 85 db 6441 jbe short 04 a97h ; 76 086551 jbe short 04b6dh ; 76 08 6442 6552 mov AL, strict byte 060h ; b0 60 6443 6553 mov dx, 00080h ; ba 80 00 6444 6554 out DX, AL ; ee 6445 jmp short 04 a80h ; eb e96555 jmp short 04b56h ; eb e9 6446 6556 test bx, bx ; 85 db 6447 jne short 04 aa1h ; 75 066557 jne short 04b77h ; 75 06 6448 6558 mov ax, strict word 0003ch ; b8 3c 00 6449 call 04 882h ; e8 e1 fd6559 call 04958h ; e8 e1 fd 6450 6560 mov AL, strict byte 0f4h ; b0 f4 6451 6561 mov dx, strict word 00060h ; ba 60 00 … … 6457 6567 ; sub ah, ah ; 2a e4 6458 6568 test AL, strict byte 002h ; a8 02 6459 je short 04 ac1h ; 74 0d6569 je short 04b97h ; 74 0d 6460 6570 dec bx ; 4b 6461 6571 test bx, bx ; 85 db 6462 jbe short 04 ac1h ; 76 086572 jbe short 04b97h ; 76 08 6463 6573 mov AL, strict byte 070h ; b0 70 6464 6574 mov dx, 00080h ; ba 80 00 6465 6575 out DX, AL ; ee 6466 jmp short 04 aaah ; eb e96576 jmp short 04b80h ; eb e9 6467 6577 test bx, bx ; 85 db 6468 jne short 04 acbh ; 75 066578 jne short 04ba1h ; 75 06 6469 6579 mov ax, strict word 00046h ; b8 46 00 6470 call 04 882h ; e8 b7 fd6580 call 04958h ; e8 b7 fd 6471 6581 mov bx, strict word 0ffffh ; bb ff ff 6472 6582 mov dx, strict word 00064h ; ba 64 00 … … 6475 6585 ; sub ah, ah ; 2a e4 6476 6586 test AL, strict byte 001h ; a8 01 6477 jne short 04 ae5h ; 75 0d6587 jne short 04bbbh ; 75 0d 6478 6588 dec bx ; 4b 6479 6589 test bx, bx ; 85 db 6480 jbe short 04 ae5h ; 76 086590 jbe short 04bbbh ; 76 08 6481 6591 mov AL, strict byte 071h ; b0 71 6482 6592 mov dx, 00080h ; ba 80 00 6483 6593 out DX, AL ; ee 6484 jmp short 04 aceh ; eb e96594 jmp short 04ba4h ; eb e9 6485 6595 test bx, bx ; 85 db 6486 jne short 04 aefh ; 75 066596 jne short 04bc5h ; 75 06 6487 6597 mov ax, strict word 00046h ; b8 46 00 6488 call 04 882h ; e8 93 fd6598 call 04958h ; e8 93 fd 6489 6599 mov dx, strict word 00060h ; ba 60 00 6490 6600 in AL, DX ; ec … … 6492 6602 ; sub ah, ah ; 2a e4 6493 6603 cmp ax, 000fah ; 3d fa 00 6494 je short 04b 00h ; 74 066604 je short 04bd6h ; 74 06 6495 6605 mov ax, 003e4h ; b8 e4 03 6496 call 04 882h ; e8 82 fd6606 call 04958h ; e8 82 fd 6497 6607 mov AL, strict byte 0a8h ; b0 a8 6498 6608 mov dx, strict word 00064h ; ba 64 00 6499 6609 out DX, AL ; ee 6500 6610 xor ax, ax ; 31 c0 6501 call 05 cf1h ; e8 e6 116611 call 05e33h ; e8 52 12 6502 6612 pop bp ; 5d 6503 6613 retn ; c3 6504 enqueue_key_: ; 0xf4b 0dLB 0x906614 enqueue_key_: ; 0xf4be3 LB 0x90 6505 6615 push bx ; 53 6506 6616 push cx ; 51 … … 6512 6622 mov dx, strict word 0001ah ; ba 1a 00 6513 6623 mov ax, strict word 00040h ; b8 40 00 6514 call 0161ch ; e8 f9ca6624 call 0161ch ; e8 23 ca 6515 6625 mov di, ax ; 89 c7 6516 6626 mov dx, strict word 0001ch ; ba 1c 00 6517 6627 mov ax, strict word 00040h ; b8 40 00 6518 call 0161ch ; e8 eeca6628 call 0161ch ; e8 18 ca 6519 6629 mov si, ax ; 89 c6 6520 6630 lea cx, [si+002h] ; 8d 4c 02 6521 6631 cmp cx, strict byte 0003eh ; 83 f9 3e 6522 jc short 04 b3bh ; 72 036632 jc short 04c11h ; 72 03 6523 6633 mov cx, strict word 0001eh ; b9 1e 00 6524 6634 cmp cx, di ; 39 f9 6525 jne short 04 b43h ; 75 046635 jne short 04c19h ; 75 04 6526 6636 xor ax, ax ; 31 c0 6527 jmp short 04 b68h ; eb 256637 jmp short 04c3eh ; eb 25 6528 6638 xor bh, bh ; 30 ff 6529 6639 mov dx, si ; 89 f2 6530 6640 mov ax, strict word 00040h ; b8 40 00 6531 call 0160eh ; e8 c1 ca6641 call 0160eh ; e8 eb c9 6532 6642 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6533 6643 lea dx, [si+001h] ; 8d 54 01 6534 6644 mov ax, strict word 00040h ; b8 40 00 6535 call 0160eh ; e8 b4 ca6645 call 0160eh ; e8 de c9 6536 6646 mov bx, cx ; 89 cb 6537 6647 mov dx, strict word 0001ch ; ba 1c 00 6538 6648 mov ax, strict word 00040h ; b8 40 00 6539 call 0162ah ; e8 c5 ca6649 call 0162ah ; e8 ef c9 6540 6650 mov ax, strict word 00001h ; b8 01 00 6541 6651 leave ; c9 … … 6554 6664 cmp bh, byte [bx+si] ; 3a 38 6555 6665 sub bl, byte [ss:di] ; 36 2a 1d 6556 aad 04dh ; d5 4d 6557 bound cx, [si+031h] ; 62 4c 31 6666 stosw ; ab 6667 dec si ; 4e 6668 cmp byte [di+007h], cl ; 38 4d 07 6669 dec bp ; 4d 6670 pop ES ; 07 6671 dec bp ; 4d 6672 mov dx, 0e04dh ; ba 4d e0 6558 6673 dec sp ; 4c 6559 xor word [si-01ch], cx ; 31 4c e4 6674 sub AL, strict byte 04eh ; 2c 4e 6675 jnp short 04cb1h ; 7b 4e 6676 sahf ; 9e 6677 dec si ; 4e 6678 jns short 04cb4h ; 79 4d 6679 pop ES ; 07 6680 dec bp ; 4d 6681 pop ES ; 07 6682 dec bp ; 4d 6683 rep dec bp ; f3 4d 6684 stc ; f9 6560 6685 dec sp ; 4c 6561 or cl, byte [si+056h] ; 0a 4c 56 6562 dec bp ; 4d 6563 movsw ; a5 6564 dec bp ; 4d 6565 enter 0a34dh, 04ch ; c8 4d a3 4c 6566 xor word [si+031h], cx ; 31 4c 31 6567 dec sp ; 4c 6568 sbb ax, 0234dh ; 1d 4d 23 6569 dec sp ; 4c 6570 xchg byte [di-03fh], cl ; 86 4d c1 6571 dec bp ; 4d 6572 _int09_function: ; 0xf4b9d LB 0x358 6686 pop sp ; 5c 6687 dec si ; 4e 6688 xchg di, ax ; 97 6689 dec si ; 4e 6690 _int09_function: ; 0xf4c73 LB 0x358 6573 6691 push si ; 56 6574 6692 push di ; 57 … … 6577 6695 mov byte [bp-006h], al ; 88 46 fa 6578 6696 test al, al ; 84 c0 6579 jne short 04 bc6h ; 75 196580 mov bx, 00c d6h ; bb d60c6697 jne short 04c9ch ; 75 19 6698 mov bx, 00cech ; bb ec 0c 6581 6699 mov cx, ds ; 8c d9 6582 6700 mov ax, strict word 00004h ; b8 04 00 6583 call 018aeh ; e8 f6cc6701 call 018aeh ; e8 20 cc 6584 6702 push 004f5h ; 68 f5 04 6585 6703 push strict byte 00004h ; 6a 04 6586 call 018e9h ; e8 29 cd6704 call 018e9h ; e8 53 cc 6587 6705 add sp, strict byte 00004h ; 83 c4 04 6588 jmp near 04 ef1h ; e9 2b 036706 jmp near 04fc7h ; e9 2b 03 6589 6707 mov dx, strict word 00017h ; ba 17 00 6590 6708 mov ax, strict word 00040h ; b8 40 00 6591 call 01600h ; e8 31 ca6709 call 01600h ; e8 5b c9 6592 6710 mov byte [bp-00ah], al ; 88 46 f6 6593 6711 mov bl, al ; 88 c3 6594 6712 mov dx, strict word 00018h ; ba 18 00 6595 6713 mov ax, strict word 00040h ; b8 40 00 6596 call 01600h ; e8 23 ca6714 call 01600h ; e8 4d c9 6597 6715 mov byte [bp-00ch], al ; 88 46 f4 6598 6716 mov byte [bp-008h], al ; 88 46 f8 6599 6717 mov dx, 00096h ; ba 96 00 6600 6718 mov ax, strict word 00040h ; b8 40 00 6601 call 01600h ; e8 14 ca6719 call 01600h ; e8 3e c9 6602 6720 mov byte [bp-004h], al ; 88 46 fc 6603 6721 mov byte [bp-002h], al ; 88 46 fe … … 6606 6724 pop ES ; 07 6607 6725 mov cx, strict word 00010h ; b9 10 00 6608 mov di, 04 b6eh ; bf 6e 4b6726 mov di, 04c44h ; bf 44 4c 6609 6727 repne scasb ; f2 ae 6610 6728 sal cx, 1 ; d1 e1 6611 6729 mov di, cx ; 89 cf 6612 mov ax, word [cs:di+04 b7dh] ; 2e 8b 85 7d 4b6730 mov ax, word [cs:di+04c53h] ; 2e 8b 85 53 4c 6613 6731 jmp ax ; ff e0 6614 6732 xor bl, 040h ; 80 f3 40 … … 6616 6734 mov dx, strict word 00017h ; ba 17 00 6617 6735 mov ax, strict word 00040h ; b8 40 00 6618 call 0160eh ; e8 f6c96736 call 0160eh ; e8 20 c9 6619 6737 or byte [bp-008h], 040h ; 80 4e f8 40 6620 6738 movzx bx, byte [bp-008h] ; 0f b6 5e f8 6621 jmp near 04 d99h ; e9 76 016739 jmp near 04e6fh ; e9 76 01 6622 6740 mov al, byte [bp-00ch] ; 8a 46 f4 6623 6741 and AL, strict byte 0bfh ; 24 bf 6624 6742 mov byte [bp-008h], al ; 88 46 f8 6625 6743 movzx bx, al ; 0f b6 d8 6626 jmp near 04 d99h ; e9 68 016744 jmp near 04e6fh ; e9 68 01 6627 6745 test byte [bp-002h], 002h ; f6 46 fe 02 6628 jne near 04 ed3h ; 0f 85 9a 026746 jne near 04fa9h ; 0f 85 9a 02 6629 6747 mov al, byte [bp-006h] ; 8a 46 fa 6630 6748 and AL, strict byte 07fh ; 24 7f … … 6635 6753 inc ax ; 40 6636 6754 test byte [bp-006h], 080h ; f6 46 fa 80 6637 je short 04 c52h ; 74 066755 je short 04d28h ; 74 06 6638 6756 not al ; f6 d0 6639 6757 and bl, al ; 20 c3 6640 jmp short 04 c54h ; eb 026758 jmp short 04d2ah ; eb 02 6641 6759 or bl, al ; 08 c3 6642 6760 xor bh, bh ; 30 ff 6643 6761 mov dx, strict word 00017h ; ba 17 00 6644 6762 mov ax, strict word 00040h ; b8 40 00 6645 call 0160eh ; e8 af c96646 jmp near 04 ed3h ; e9 71 026763 call 0160eh ; e8 d9 c8 6764 jmp near 04fa9h ; e9 71 02 6647 6765 test byte [bp-004h], 001h ; f6 46 fc 01 6648 jne near 04 ed3h ; 0f 85 69 026766 jne near 04fa9h ; 0f 85 69 02 6649 6767 or bl, 004h ; 80 cb 04 6650 6768 xor bh, bh ; 30 ff 6651 6769 mov dx, strict word 00017h ; ba 17 00 6652 6770 mov ax, strict word 00040h ; b8 40 00 6653 call 0160eh ; e8 96 c96771 call 0160eh ; e8 c0 c8 6654 6772 mov al, byte [bp-004h] ; 8a 46 fc 6655 6773 test AL, strict byte 002h ; a8 02 6656 je short 04 c8ch ; 74 0d6774 je short 04d62h ; 74 0d 6657 6775 or AL, strict byte 004h ; 0c 04 6658 6776 mov byte [bp-002h], al ; 88 46 fe 6659 6777 movzx bx, al ; 0f b6 d8 6660 6778 mov dx, 00096h ; ba 96 00 6661 jmp short 04 c9ah ; eb 0e6779 jmp short 04d70h ; eb 0e 6662 6780 mov al, byte [bp-00ch] ; 8a 46 f4 6663 6781 or AL, strict byte 001h ; 0c 01 … … 6666 6784 mov dx, strict word 00018h ; ba 18 00 6667 6785 mov ax, strict word 00040h ; b8 40 00 6668 call 0160eh ; e8 6e c96669 jmp near 04 ed3h ; e9 30 026786 call 0160eh ; e8 98 c8 6787 jmp near 04fa9h ; e9 30 02 6670 6788 test byte [bp-004h], 001h ; f6 46 fc 01 6671 jne near 04 ed3h ; 0f 85 28 026789 jne near 04fa9h ; 0f 85 28 02 6672 6790 and bl, 0fbh ; 80 e3 fb 6673 6791 xor bh, bh ; 30 ff 6674 6792 mov dx, strict word 00017h ; ba 17 00 6675 6793 mov ax, strict word 00040h ; b8 40 00 6676 call 0160eh ; e8 55 c96794 call 0160eh ; e8 7f c8 6677 6795 mov al, byte [bp-004h] ; 8a 46 fc 6678 6796 test AL, strict byte 002h ; a8 02 6679 je short 04 ccdh ; 74 0d6797 je short 04da3h ; 74 0d 6680 6798 and AL, strict byte 0fbh ; 24 fb 6681 6799 mov byte [bp-002h], al ; 88 46 fe 6682 6800 movzx bx, al ; 0f b6 d8 6683 6801 mov dx, 00096h ; ba 96 00 6684 jmp short 04 cdbh ; eb 0e6802 jmp short 04db1h ; eb 0e 6685 6803 mov al, byte [bp-00ch] ; 8a 46 f4 6686 6804 and AL, strict byte 0feh ; 24 fe … … 6689 6807 mov dx, strict word 00018h ; ba 18 00 6690 6808 mov ax, strict word 00040h ; b8 40 00 6691 call 0160eh ; e8 2d c96692 jmp near 04 ed3h ; e9 ef 016809 call 0160eh ; e8 57 c8 6810 jmp near 04fa9h ; e9 ef 01 6693 6811 or bl, 008h ; 80 cb 08 6694 6812 xor bh, bh ; 30 ff 6695 6813 mov dx, strict word 00017h ; ba 17 00 6696 6814 mov ax, strict word 00040h ; b8 40 00 6697 call 0160eh ; e8 1c c96815 call 0160eh ; e8 46 c8 6698 6816 mov al, byte [bp-004h] ; 8a 46 fc 6699 6817 test AL, strict byte 002h ; a8 02 6700 je short 04d 06h ; 74 0d6818 je short 04ddch ; 74 0d 6701 6819 or AL, strict byte 008h ; 0c 08 6702 6820 mov byte [bp-002h], al ; 88 46 fe 6703 6821 movzx bx, al ; 0f b6 d8 6704 6822 mov dx, 00096h ; ba 96 00 6705 jmp short 04d 14h ; eb 0e6823 jmp short 04deah ; eb 0e 6706 6824 mov al, byte [bp-00ch] ; 8a 46 f4 6707 6825 or AL, strict byte 002h ; 0c 02 … … 6710 6828 mov dx, strict word 00018h ; ba 18 00 6711 6829 mov ax, strict word 00040h ; b8 40 00 6712 call 0160eh ; e8 f4c86713 jmp near 04 ed3h ; e9 b6 016830 call 0160eh ; e8 1e c8 6831 jmp near 04fa9h ; e9 b6 01 6714 6832 and bl, 0f7h ; 80 e3 f7 6715 6833 xor bh, bh ; 30 ff 6716 6834 mov dx, strict word 00017h ; ba 17 00 6717 6835 mov ax, strict word 00040h ; b8 40 00 6718 call 0160eh ; e8 e3c86836 call 0160eh ; e8 0d c8 6719 6837 mov al, byte [bp-004h] ; 8a 46 fc 6720 6838 test AL, strict byte 002h ; a8 02 6721 je short 04 d3fh ; 74 0d6839 je short 04e15h ; 74 0d 6722 6840 and AL, strict byte 0f7h ; 24 f7 6723 6841 mov byte [bp-002h], al ; 88 46 fe 6724 6842 movzx bx, al ; 0f b6 d8 6725 6843 mov dx, 00096h ; ba 96 00 6726 jmp short 04 d4dh ; eb 0e6844 jmp short 04e23h ; eb 0e 6727 6845 mov al, byte [bp-00ch] ; 8a 46 f4 6728 6846 and AL, strict byte 0fdh ; 24 fd … … 6731 6849 mov dx, strict word 00018h ; ba 18 00 6732 6850 mov ax, strict word 00040h ; b8 40 00 6733 call 0160eh ; e8 bb c86734 jmp near 04 ed3h ; e9 7d 016851 call 0160eh ; e8 e5 c7 6852 jmp near 04fa9h ; e9 7d 01 6735 6853 test byte [bp-004h], 003h ; f6 46 fc 03 6736 jne near 04 ed3h ; 0f 85 75 016854 jne near 04fa9h ; 0f 85 75 01 6737 6855 mov al, byte [bp-00ch] ; 8a 46 f4 6738 6856 or AL, strict byte 020h ; 0c 20 … … 6741 6859 mov dx, strict word 00018h ; ba 18 00 6742 6860 mov ax, strict word 00040h ; b8 40 00 6743 call 0160eh ; e8 9c c86861 call 0160eh ; e8 c6 c7 6744 6862 mov bl, byte [bp-00ah] ; 8a 5e f6 6745 6863 xor bl, 020h ; 80 f3 20 … … 6747 6865 mov dx, strict word 00017h ; ba 17 00 6748 6866 mov ax, strict word 00040h ; b8 40 00 6749 call 0160eh ; e8 8b c86750 jmp near 04 ed3h ; e9 4d 016867 call 0160eh ; e8 b5 c7 6868 jmp near 04fa9h ; e9 4d 01 6751 6869 test byte [bp-004h], 003h ; f6 46 fc 03 6752 jne near 04 ed3h ; 0f 85 45 016870 jne near 04fa9h ; 0f 85 45 01 6753 6871 mov al, byte [bp-00ch] ; 8a 46 f4 6754 6872 and AL, strict byte 0dfh ; 24 df … … 6757 6875 mov dx, strict word 00018h ; ba 18 00 6758 6876 mov ax, strict word 00040h ; b8 40 00 6759 call 0160eh ; e8 6c c86760 jmp near 04 ed3h ; e9 2e 016877 call 0160eh ; e8 96 c7 6878 jmp near 04fa9h ; e9 2e 01 6761 6879 mov al, byte [bp-00ch] ; 8a 46 f4 6762 6880 or AL, strict byte 010h ; 0c 10 … … 6765 6883 mov dx, strict word 00018h ; ba 18 00 6766 6884 mov ax, strict word 00040h ; b8 40 00 6767 call 0160eh ; e8 55 c86885 call 0160eh ; e8 7f c7 6768 6886 mov bl, byte [bp-00ah] ; 8a 5e f6 6769 6887 xor bl, 010h ; 80 f3 10 6770 jmp short 04 d78h ; eb b76888 jmp short 04e4eh ; eb b7 6771 6889 mov al, byte [bp-00ch] ; 8a 46 f4 6772 6890 and AL, strict byte 0efh ; 24 ef 6773 jmp short 04 d93h ; eb cb6891 jmp short 04e69h ; eb cb 6774 6892 mov al, bl ; 88 d8 6775 6893 and AL, strict byte 00ch ; 24 0c 6776 6894 cmp AL, strict byte 00ch ; 3c 0c 6777 jne short 04 dd5h ; 75 056895 jne short 04eabh ; 75 05 6778 6896 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 6779 6897 test byte [bp-006h], 080h ; f6 46 fa 80 6780 jne near 04 ed3h ; 0f 85 f6 006898 jne near 04fa9h ; 0f 85 f6 00 6781 6899 cmp byte [bp-006h], 058h ; 80 7e fa 58 6782 jbe short 04e 01h ; 76 1e6783 mov bx, 00c d6h ; bb d60c6900 jbe short 04ed7h ; 76 1e 6901 mov bx, 00cech ; bb ec 0c 6784 6902 mov cx, ds ; 8c d9 6785 6903 mov ax, strict word 00004h ; b8 04 00 6786 call 018aeh ; e8 c0 ca6904 call 018aeh ; e8 ea c9 6787 6905 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6788 6906 push ax ; 50 6789 6907 push 0050fh ; 68 0f 05 6790 6908 push strict byte 00004h ; 6a 04 6791 call 018e9h ; e8 eeca6909 call 018e9h ; e8 18 ca 6792 6910 add sp, strict byte 00006h ; 83 c4 06 6793 jmp near 04 ef1h ; e9 f0 006911 jmp near 04fc7h ; e9 f0 00 6794 6912 test bl, 008h ; f6 c3 08 6795 je short 04e 18h ; 74 126913 je short 04eeeh ; 74 12 6796 6914 movzx si, byte [bp-006h] ; 0f b6 76 fa 6797 6915 imul si, si, strict byte 0000ah ; 6b f6 0a 6798 mov dl, byte [si+00d 2ah] ; 8a 94 2a0d6799 mov ax, word [si+00d 2ah] ; 8b 84 2a0d6800 jmp near 04 ea4h ; e9 8c 006916 mov dl, byte [si+00d40h] ; 8a 94 40 0d 6917 mov ax, word [si+00d40h] ; 8b 84 40 0d 6918 jmp near 04f7ah ; e9 8c 00 6801 6919 test bl, 004h ; f6 c3 04 6802 je short 04 e2fh ; 74 126920 je short 04f05h ; 74 12 6803 6921 movzx si, byte [bp-006h] ; 0f b6 76 fa 6804 6922 imul si, si, strict byte 0000ah ; 6b f6 0a 6805 mov dl, byte [si+00d 28h] ; 8a 94 280d6806 mov ax, word [si+00d 28h] ; 8b 84 280d6807 jmp near 04 ea4h ; e9 75 006923 mov dl, byte [si+00d3eh] ; 8a 94 3e 0d 6924 mov ax, word [si+00d3eh] ; 8b 84 3e 0d 6925 jmp near 04f7ah ; e9 75 00 6808 6926 mov al, byte [bp-002h] ; 8a 46 fe 6809 6927 and AL, strict byte 002h ; 24 02 6810 6928 test al, al ; 84 c0 6811 jbe short 04 e4dh ; 76 156929 jbe short 04f23h ; 76 15 6812 6930 mov al, byte [bp-006h] ; 8a 46 fa 6813 6931 cmp AL, strict byte 047h ; 3c 47 6814 jc short 04 e4dh ; 72 0e6932 jc short 04f23h ; 72 0e 6815 6933 cmp AL, strict byte 053h ; 3c 53 6816 jnbe short 04 e4dh ; 77 0a6934 jnbe short 04f23h ; 77 0a 6817 6935 mov DL, strict byte 0e0h ; b2 e0 6818 6936 movzx si, al ; 0f b6 f0 6819 6937 imul si, si, strict byte 0000ah ; 6b f6 0a 6820 jmp short 04 ea0h ; eb 536938 jmp short 04f76h ; eb 53 6821 6939 test bl, 003h ; f6 c3 03 6822 je short 04 e7fh ; 74 2d6940 je short 04f55h ; 74 2d 6823 6941 movzx si, byte [bp-006h] ; 0f b6 76 fa 6824 6942 imul si, si, strict byte 0000ah ; 6b f6 0a 6825 movzx ax, byte [si+00d 2ch] ; 0f b6 84 2c0d6943 movzx ax, byte [si+00d42h] ; 0f b6 84 42 0d 6826 6944 movzx dx, bl ; 0f b6 d3 6827 6945 test dx, ax ; 85 c2 6828 je short 04 e6fh ; 74 0a6829 mov dl, byte [si+00d 24h] ; 8a 94 240d6830 mov ax, word [si+00d 24h] ; 8b 84 240d6831 jmp short 04 e77h ; eb 086832 mov dl, byte [si+00d 26h] ; 8a 94 260d6833 mov ax, word [si+00d 26h] ; 8b 84 260d6946 je short 04f45h ; 74 0a 6947 mov dl, byte [si+00d3ah] ; 8a 94 3a 0d 6948 mov ax, word [si+00d3ah] ; 8b 84 3a 0d 6949 jmp short 04f4dh ; eb 08 6950 mov dl, byte [si+00d3ch] ; 8a 94 3c 0d 6951 mov ax, word [si+00d3ch] ; 8b 84 3c 0d 6834 6952 shr ax, 008h ; c1 e8 08 6835 6953 mov byte [bp-006h], al ; 88 46 fa 6836 jmp short 04 eaah ; eb 2b6954 jmp short 04f80h ; eb 2b 6837 6955 movzx si, byte [bp-006h] ; 0f b6 76 fa 6838 6956 imul si, si, strict byte 0000ah ; 6b f6 0a 6839 movzx ax, byte [si+00d 2ch] ; 0f b6 84 2c0d6957 movzx ax, byte [si+00d42h] ; 0f b6 84 42 0d 6840 6958 movzx dx, bl ; 0f b6 d3 6841 6959 test dx, ax ; 85 c2 6842 je short 04 e9ch ; 74 0a6843 mov dl, byte [si+00d 26h] ; 8a 94 260d6844 mov ax, word [si+00d 26h] ; 8b 84 260d6845 jmp short 04 ea4h ; eb 086846 mov dl, byte [si+00d 24h] ; 8a 94 240d6847 mov ax, word [si+00d 24h] ; 8b 84 240d6960 je short 04f72h ; 74 0a 6961 mov dl, byte [si+00d3ch] ; 8a 94 3c 0d 6962 mov ax, word [si+00d3ch] ; 8b 84 3c 0d 6963 jmp short 04f7ah ; eb 08 6964 mov dl, byte [si+00d3ah] ; 8a 94 3a 0d 6965 mov ax, word [si+00d3ah] ; 8b 84 3a 0d 6848 6966 shr ax, 008h ; c1 e8 08 6849 6967 mov byte [bp-006h], al ; 88 46 fa 6850 6968 cmp byte [bp-006h], 000h ; 80 7e fa 00 6851 jne short 04 ecah ; 75 1a6969 jne short 04fa0h ; 75 1a 6852 6970 test dl, dl ; 84 d2 6853 jne short 04 ecah ; 75 166854 mov bx, 00c d6h ; bb d60c6971 jne short 04fa0h ; 75 16 6972 mov bx, 00cech ; bb ec 0c 6855 6973 mov cx, ds ; 8c d9 6856 6974 mov ax, strict word 00004h ; b8 04 00 6857 call 018aeh ; e8 efc96975 call 018aeh ; e8 19 c9 6858 6976 push 00546h ; 68 46 05 6859 6977 push strict byte 00004h ; 6a 04 6860 call 018e9h ; e8 22 ca6978 call 018e9h ; e8 4c c9 6861 6979 add sp, strict byte 00004h ; 83 c4 04 6862 6980 xor dh, dh ; 30 f6 6863 6981 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6864 call 04b 0dh ; e8 3a fc6982 call 04be3h ; e8 3a fc 6865 6983 mov al, byte [bp-006h] ; 8a 46 fa 6866 6984 and AL, strict byte 07fh ; 24 7f 6867 6985 cmp AL, strict byte 01dh ; 3c 1d 6868 je short 04 ee0h ; 74 046986 je short 04fb6h ; 74 04 6869 6987 and byte [bp-002h], 0feh ; 80 66 fe fe 6870 6988 and byte [bp-002h], 0fdh ; 80 66 fe fd … … 6872 6990 mov dx, 00096h ; ba 96 00 6873 6991 mov ax, strict word 00040h ; b8 40 00 6874 call 0160eh ; e8 1d c76992 call 0160eh ; e8 47 c6 6875 6993 leave ; c9 6876 6994 pop di ; 5f 6877 6995 pop si ; 5e 6878 6996 retn ; c3 6879 dequeue_key_: ; 0xf4 ef5LB 0x906997 dequeue_key_: ; 0xf4fcb LB 0x90 6880 6998 push si ; 56 6881 6999 push di ; 57 … … 6887 7005 mov dx, strict word 0001ah ; ba 1a 00 6888 7006 mov ax, strict word 00040h ; b8 40 00 6889 call 0161ch ; e8 0e c77007 call 0161ch ; e8 38 c6 6890 7008 mov bx, ax ; 89 c3 6891 7009 mov dx, strict word 0001ch ; ba 1c 00 6892 7010 mov ax, strict word 00040h ; b8 40 00 6893 call 0161ch ; e8 03 c77011 call 0161ch ; e8 2d c6 6894 7012 cmp bx, ax ; 39 c3 6895 je short 0 4f5ah ; 74 3d7013 je short 05030h ; 74 3d 6896 7014 mov dx, bx ; 89 da 6897 7015 mov ax, strict word 00040h ; b8 40 00 6898 call 01600h ; e8 dbc67016 call 01600h ; e8 05 c6 6899 7017 mov cl, al ; 88 c1 6900 7018 lea dx, [bx+001h] ; 8d 57 01 6901 7019 mov ax, strict word 00040h ; b8 40 00 6902 call 01600h ; e8 d0 c67020 call 01600h ; e8 fa c5 6903 7021 mov es, [bp-004h] ; 8e 46 fc 6904 7022 mov byte [es:si], cl ; 26 88 0c … … 6906 7024 mov byte [es:di], al ; 26 88 05 6907 7025 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 6908 je short 0 4f55h ; 74 137026 je short 0502bh ; 74 13 6909 7027 inc bx ; 43 6910 7028 inc bx ; 43 6911 7029 cmp bx, strict byte 0003eh ; 83 fb 3e 6912 jc short 0 4f4ch ; 72 037030 jc short 05022h ; 72 03 6913 7031 mov bx, strict word 0001eh ; bb 1e 00 6914 7032 mov dx, strict word 0001ah ; ba 1a 00 6915 7033 mov ax, strict word 00040h ; b8 40 00 6916 call 0162ah ; e8 d5 c67034 call 0162ah ; e8 ff c5 6917 7035 mov ax, strict word 00001h ; b8 01 00 6918 jmp short 0 4f5ch ; eb 027036 jmp short 05032h ; eb 02 6919 7037 xor ax, ax ; 31 c0 6920 7038 leave ; c9 … … 6926 7044 or cl, byte [bx+di] ; 0a 09 6927 7045 add ax, 00102h ; 05 02 01 6928 add b yte [bx+di], ah ; 00 217046 add bh, dh ; 00 f7 6929 7047 push dx ; 52 6930 aaa ; 37 6931 push ax ; 50 6932 jle short 04fc3h ; 7e 50 6933 retf 0da50h ; ca 50 da 6934 push ax ; 50 6935 add AL, strict byte 051h ; 04 51 6936 or ax, 07e51h ; 0d 51 7e 7048 or ax, 05451h ; 0d 51 54 6937 7049 push cx ; 51 6938 scasw ; af7050 mov AL, byte [0b051h] ; a0 51 b0 6939 7051 push cx ; 51 6940 fcom qword [bx+di+016h] ; dc 51 16 7052 ficom dword [bx+di-01dh] ; da 51 e3 7053 push cx ; 51 7054 push sp ; 54 6941 7055 push dx ; 52 6942 db 064h, 052h 6943 ; fs push dx ; 64 52 6944 _int16_function: ; 0xf4f85 LB 0x314 7056 test word [bp+si-04eh], dx ; 85 52 b2 7057 push dx ; 52 7058 in AL, DX ; ec 7059 push dx ; 52 7060 db 03ah 7061 push bx ; 53 7062 _int16_function: ; 0xf505b LB 0x2e2 6945 7063 push di ; 57 6946 7064 enter 00006h, 000h ; c8 06 00 00 6947 7065 mov dx, strict word 00017h ; ba 17 00 6948 7066 mov ax, strict word 00040h ; b8 40 00 6949 call 01600h ; e8 6d c67067 call 01600h ; e8 97 c5 6950 7068 mov cl, al ; 88 c1 6951 7069 mov bh, al ; 88 c7 6952 7070 mov dx, 00097h ; ba 97 00 6953 7071 mov ax, strict word 00040h ; b8 40 00 6954 call 01600h ; e8 60 c67072 call 01600h ; e8 8a c5 6955 7073 mov bl, al ; 88 c3 6956 7074 movzx dx, cl ; 0f b6 d1 … … 6961 7079 xor al, dl ; 30 d0 6962 7080 test ax, ax ; 85 c0 6963 je short 050 15h ; 74 607081 je short 050ebh ; 74 60 6964 7082 cli ; fa 6965 7083 mov AL, strict byte 0edh ; b0 ed … … 6971 7089 ; sub ah, ah ; 2a e4 6972 7090 test AL, strict byte 001h ; a8 01 6973 jne short 0 4fceh ; 75 087091 jne short 050a4h ; 75 08 6974 7092 mov AL, strict byte 021h ; b0 21 6975 7093 mov dx, 00080h ; ba 80 00 6976 7094 out DX, AL ; ee 6977 jmp short 0 4fbch ; eb ee7095 jmp short 05092h ; eb ee 6978 7096 mov dx, strict word 00060h ; ba 60 00 6979 7097 in AL, DX ; ec … … 6981 7099 ; sub ah, ah ; 2a e4 6982 7100 cmp ax, 000fah ; 3d fa 00 6983 jne short 050 14h ; 75 3b7101 jne short 050eah ; 75 3b 6984 7102 and bl, 0f8h ; 80 e3 f8 6985 7103 movzx ax, bh ; 0f b6 c7 … … 6997 7115 ; sub ah, ah ; 2a e4 6998 7116 test AL, strict byte 001h ; a8 01 6999 jne short 050 03h ; 75 087117 jne short 050d9h ; 75 08 7000 7118 mov AL, strict byte 021h ; b0 21 7001 7119 mov dx, 00080h ; ba 80 00 7002 7120 out DX, AL ; ee 7003 jmp short 0 4ff1h ; eb ee7121 jmp short 050c7h ; eb ee 7004 7122 mov dx, strict word 00060h ; ba 60 00 7005 7123 in AL, DX ; ec … … 7009 7127 mov dx, 00097h ; ba 97 00 7010 7128 mov ax, strict word 00040h ; b8 40 00 7011 call 0160eh ; e8 fac57129 call 0160eh ; e8 24 c5 7012 7130 sti ; fb 7013 7131 mov ax, word [bp+014h] ; 8b 46 14 7014 7132 shr ax, 008h ; c1 e8 08 7015 7133 cmp ax, 000a2h ; 3d a2 00 7016 jnbe near 052 21h ; 0f 87 ff 017134 jnbe near 052f7h ; 0f 87 ff 01 7017 7135 push CS ; 0e 7018 7136 pop ES ; 07 7019 7137 mov cx, strict word 0000ch ; b9 0c 00 7020 mov di, 0 4f62h ; bf 62 4f7138 mov di, 05038h ; bf 38 50 7021 7139 repne scasb ; f2 ae 7022 7140 sal cx, 1 ; d1 e1 7023 7141 mov di, cx ; 89 cf 7024 mov ax, word [cs:di+0 4f6dh] ; 2e 8b 85 6d 4f7142 mov ax, word [cs:di+05043h] ; 2e 8b 85 43 50 7025 7143 jmp ax ; ff e0 7026 7144 push strict byte 00001h ; 6a 01 … … 7029 7147 mov dx, ss ; 8c d2 7030 7148 lea ax, [bp-004h] ; 8d 46 fc 7031 call 04 ef5h ; e8 af fe7149 call 04fcbh ; e8 af fe 7032 7150 test ax, ax ; 85 c0 7033 jne short 05 055h ; 75 0b7151 jne short 0512bh ; 75 0b 7034 7152 push 0057dh ; 68 7d 05 7035 7153 push strict byte 00007h ; 6a 07 7036 call 018e9h ; e8 97 c87154 call 018e9h ; e8 c1 c7 7037 7155 add sp, strict byte 00004h ; 83 c4 04 7038 7156 cmp byte [bp-004h], 000h ; 80 7e fc 00 7039 je short 05 061h ; 74 067157 je short 05137h ; 74 06 7040 7158 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 7041 je short 05 067h ; 74 067159 je short 0513dh ; 74 06 7042 7160 cmp byte [bp-006h], 0e0h ; 80 7e fa e0 7043 jne short 05 06bh ; 75 047161 jne short 05141h ; 75 04 7044 7162 mov byte [bp-006h], 000h ; c6 46 fa 00 7045 7163 movzx dx, byte [bp-004h] ; 0f b6 56 fc … … 7057 7175 mov dx, ss ; 8c d2 7058 7176 lea ax, [bp-004h] ; 8d 46 fc 7059 call 04 ef5h ; e8 63 fe7177 call 04fcbh ; e8 63 fe 7060 7178 test ax, ax ; 85 c0 7061 jne short 05 09dh ; 75 077179 jne short 05173h ; 75 07 7062 7180 or word [bp+01eh], strict byte 00040h ; 83 4e 1e 40 7063 7181 leave ; c9 … … 7065 7183 retn ; c3 7066 7184 cmp byte [bp-004h], 000h ; 80 7e fc 00 7067 je short 05 0a9h ; 74 067185 je short 0517fh ; 74 06 7068 7186 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 7069 je short 05 0afh ; 74 067187 je short 05185h ; 74 06 7070 7188 cmp byte [bp-006h], 0e0h ; 80 7e fa e0 7071 jne short 05 0b3h ; 75 047189 jne short 05189h ; 75 04 7072 7190 mov byte [bp-006h], 000h ; c6 46 fa 00 7073 7191 movzx dx, byte [bp-004h] ; 0f b6 56 fc … … 7082 7200 mov dx, strict word 00017h ; ba 17 00 7083 7201 mov ax, strict word 00040h ; b8 40 00 7084 call 01600h ; e8 2d c57202 call 01600h ; e8 57 c4 7085 7203 mov dx, word [bp+014h] ; 8b 56 14 7086 7204 mov dl, al ; 88 c2 7087 jmp short 05 078h ; eb 9e7205 jmp short 0514eh ; eb 9e 7088 7206 mov al, byte [bp+012h] ; 8a 46 12 7089 7207 movzx dx, al ; 0f b6 d0 … … 7091 7209 shr ax, 008h ; c1 e8 08 7092 7210 xor ah, ah ; 30 e4 7093 call 04b 0dh ; e8 22 fa7211 call 04be3h ; e8 22 fa 7094 7212 test ax, ax ; 85 c0 7095 jne short 05 0fch ; 75 0d7213 jne short 051d2h ; 75 0d 7096 7214 mov ax, word [bp+014h] ; 8b 46 14 7097 7215 xor al, al ; 30 c0 … … 7108 7226 xor al, al ; 30 c0 7109 7227 or AL, strict byte 030h ; 0c 30 7110 jmp short 05 0f6h ; eb e97228 jmp short 051cch ; eb e9 7111 7229 mov byte [bp-002h], 002h ; c6 46 fe 02 7112 7230 xor cx, cx ; 31 c9 … … 7121 7239 ; sub ah, ah ; 2a e4 7122 7240 test AL, strict byte 001h ; a8 01 7123 jne short 05 134h ; 75 0d7241 jne short 0520ah ; 75 0d 7124 7242 dec bx ; 4b 7125 7243 test bx, bx ; 85 db 7126 jbe short 05 134h ; 76 087244 jbe short 0520ah ; 76 08 7127 7245 mov dx, 00080h ; ba 80 00 7128 7246 in AL, DX ; ec 7129 7247 db 02ah, 0e4h 7130 7248 ; sub ah, ah ; 2a e4 7131 jmp short 051 1dh ; eb e97249 jmp short 051f3h ; eb e9 7132 7250 test bx, bx ; 85 db 7133 jbe short 05 178h ; 76 407251 jbe short 0524eh ; 76 40 7134 7252 mov dx, strict word 00060h ; ba 60 00 7135 7253 in AL, DX ; ec … … 7137 7255 ; sub ah, ah ; 2a e4 7138 7256 cmp ax, 000fah ; 3d fa 00 7139 jne short 05 178h ; 75 357257 jne short 0524eh ; 75 35 7140 7258 mov bx, strict word 0ffffh ; bb ff ff 7141 7259 mov dx, strict word 00064h ; ba 64 00 … … 7144 7262 ; sub ah, ah ; 2a e4 7145 7263 test AL, strict byte 001h ; a8 01 7146 jne short 05 15dh ; 75 0d7264 jne short 05233h ; 75 0d 7147 7265 dec bx ; 4b 7148 7266 test bx, bx ; 85 db 7149 jbe short 05 15dh ; 76 087267 jbe short 05233h ; 76 08 7150 7268 mov dx, 00080h ; ba 80 00 7151 7269 in AL, DX ; ec 7152 7270 db 02ah, 0e4h 7153 7271 ; sub ah, ah ; 2a e4 7154 jmp short 05 146h ; eb e97272 jmp short 0521ch ; eb e9 7155 7273 test bx, bx ; 85 db 7156 jbe short 05 16fh ; 76 0e7274 jbe short 05245h ; 76 0e 7157 7275 shr cx, 008h ; c1 e9 08 7158 7276 mov dx, strict word 00060h ; ba 60 00 … … 7164 7282 dec byte [bp-002h] ; fe 4e fe 7165 7283 cmp byte [bp-002h], 000h ; 80 7e fe 00 7166 jnbe short 05 143h ; 77 cb7284 jnbe short 05219h ; 77 cb 7167 7285 mov word [bp+00eh], cx ; 89 4e 0e 7168 7286 leave ; c9 … … 7174 7292 mov dx, ss ; 8c d2 7175 7293 lea ax, [bp-004h] ; 8d 46 fc 7176 call 04 ef5h ; e8 68 fd7294 call 04fcbh ; e8 68 fd 7177 7295 test ax, ax ; 85 c0 7178 jne short 05 19ch ; 75 0b7296 jne short 05272h ; 75 0b 7179 7297 push 0057dh ; 68 7d 05 7180 7298 push strict byte 00007h ; 6a 07 7181 call 018e9h ; e8 50 c77299 call 018e9h ; e8 7a c6 7182 7300 add sp, strict byte 00004h ; 83 c4 04 7183 7301 cmp byte [bp-004h], 000h ; 80 7e fc 00 7184 je near 05 06bh ; 0f 84 c7 fe7302 je near 05141h ; 0f 84 c7 fe 7185 7303 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 7186 je near 05 067h ; 0f 84 bb fe7187 jmp near 05 06bh ; e9 bc fe7304 je near 0513dh ; 0f 84 bb fe 7305 jmp near 05141h ; e9 bc fe 7188 7306 or word [bp+01eh], 00200h ; 81 4e 1e 00 02 7189 7307 push strict byte 00000h ; 6a 00 … … 7192 7310 mov dx, ss ; 8c d2 7193 7311 lea ax, [bp-004h] ; 8d 46 fc 7194 call 04 ef5h ; e8 32 fd7312 call 04fcbh ; e8 32 fd 7195 7313 test ax, ax ; 85 c0 7196 je near 05 096h ; 0f 84 cd fe7314 je near 0516ch ; 0f 84 cd fe 7197 7315 cmp byte [bp-004h], 000h ; 80 7e fc 00 7198 je near 05 0b3h ; 0f 84 e2 fe7316 je near 05189h ; 0f 84 e2 fe 7199 7317 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 7200 je near 05 0afh ; 0f 84 d6 fe7201 jmp near 05 0b3h ; e9 d7 fe7318 je near 05185h ; 0f 84 d6 fe 7319 jmp near 05189h ; e9 d7 fe 7202 7320 mov dx, strict word 00017h ; ba 17 00 7203 7321 mov ax, strict word 00040h ; b8 40 00 7204 call 01600h ; e8 1b c47322 call 01600h ; e8 45 c3 7205 7323 mov dx, word [bp+014h] ; 8b 56 14 7206 7324 mov dl, al ; 88 c2 … … 7208 7326 mov dx, strict word 00018h ; ba 18 00 7209 7327 mov ax, strict word 00040h ; b8 40 00 7210 call 01600h ; e8 0a c47328 call 01600h ; e8 34 c3 7211 7329 mov bh, al ; 88 c7 7212 7330 and bh, 073h ; 80 e7 73 7213 7331 mov dx, 00096h ; ba 96 00 7214 7332 mov ax, strict word 00040h ; b8 40 00 7215 call 01600h ; e8 fcc37333 call 01600h ; e8 26 c3 7216 7334 and AL, strict byte 00ch ; 24 0c 7217 7335 or bh, al ; 08 c7 … … 7220 7338 movzx ax, bh ; 0f b6 c7 7221 7339 sal ax, 008h ; c1 e0 08 7222 jmp near 05 076h ; e9 60 fe7340 jmp near 0514ch ; e9 60 fe 7223 7341 mov ax, word [bp+014h] ; 8b 46 14 7224 7342 xor ah, ah ; 30 e4 7225 7343 or ah, 080h ; 80 cc 80 7226 jmp near 05 0f6h ; e9 d5 fe7227 mov bx, 00c d6h ; bb d60c7344 jmp near 051cch ; e9 d5 fe 7345 mov bx, 00cech ; bb ec 0c 7228 7346 mov cx, ds ; 8c d9 7229 7347 mov ax, strict word 00004h ; b8 04 00 7230 call 018aeh ; e8 82 c67348 call 018aeh ; e8 ac c5 7231 7349 mov ax, word [bp+014h] ; 8b 46 14 7232 7350 shr ax, 008h ; c1 e8 08 … … 7234 7352 push 005a1h ; 68 a1 05 7235 7353 push strict byte 00004h ; 6a 04 7236 call 018e9h ; e8 ae c67354 call 018e9h ; e8 d8 c5 7237 7355 add sp, strict byte 00006h ; 83 c4 06 7238 mov bx, 00c d6h ; bb d60c7356 mov bx, 00cech ; bb ec 0c 7239 7357 mov cx, ds ; 8c d9 7240 7358 mov ax, strict word 00004h ; b8 04 00 7241 call 018aeh ; e8 65 c67359 call 018aeh ; e8 8f c5 7242 7360 mov ax, word [bp+010h] ; 8b 46 10 7243 7361 push ax ; 50 … … 7250 7368 push 005c9h ; 68 c9 05 7251 7369 push strict byte 00004h ; 6a 04 7252 call 018e9h ; e8 88 c67370 call 018e9h ; e8 b2 c5 7253 7371 add sp, strict byte 0000ch ; 83 c4 0c 7254 7372 leave ; c9 7255 7373 pop di ; 5f 7256 7374 retn ; c3 7257 and word [bp+di+045h], dx ; 21 53 45 7258 push bx ; 53 7259 jc short 052c0h ; 72 53 7260 jc short 052c2h ; 72 53 7261 jc short 052c4h ; 72 53 7262 dec dx ; 4a 7263 push bp ; 55 7264 js short 052cbh ; 78 56 7265 js short 052cdh ; 78 56 7266 arpl word [di+055h], dx ; 63 55 55 7375 set_geom_lba_: ; 0xf533d LB 0x9e 7267 7376 push si ; 56 7268 js short 052d3h ; 78 56 7269 js short 052d5h ; 78 56 7270 push bp ; 55 7377 push di ; 57 7378 enter 00004h, 000h ; c8 04 00 00 7379 mov si, ax ; 89 c6 7380 mov es, dx ; 8e c2 7381 mov word [bp-004h], bx ; 89 5e fc 7382 mov word [bp-002h], cx ; 89 4e fe 7383 xor ax, ax ; 31 c0 7384 mov dx, strict word 0007eh ; ba 7e 00 7385 mov di, 000ffh ; bf ff 00 7386 xor bx, bx ; 31 db 7387 jmp short 0535eh ; eb 05 7388 cmp bx, strict byte 00004h ; 83 fb 04 7389 jnl short 05374h ; 7d 16 7390 cmp dx, word [bp-002h] ; 3b 56 fe 7391 jnbe short 0536ah ; 77 07 7392 jne short 0536dh ; 75 08 7393 cmp ax, word [bp-004h] ; 3b 46 fc 7394 jc short 0536dh ; 72 03 7395 inc di ; 47 7396 shr di, 1 ; d1 ef 7397 shr dx, 1 ; d1 ea 7398 rcr ax, 1 ; d1 d8 7399 inc bx ; 43 7400 jmp short 05359h ; eb e5 7401 mov ax, di ; 89 f8 7402 xor dx, dx ; 31 d2 7403 mov bx, strict word 0003fh ; bb 3f 00 7404 xor cx, cx ; 31 c9 7405 call 08ff9h ; e8 79 3c 7406 mov bx, ax ; 89 c3 7407 mov cx, dx ; 89 d1 7408 mov ax, word [bp-004h] ; 8b 46 fc 7409 mov dx, word [bp-002h] ; 8b 56 fe 7410 call 08fc0h ; e8 33 3c 7411 mov word [es:si+002h], ax ; 26 89 44 02 7412 cmp ax, 00400h ; 3d 00 04 7413 jbe short 0539ch ; 76 06 7414 mov word [es:si+002h], 00400h ; 26 c7 44 02 00 04 7415 mov word [es:si], di ; 26 89 3c 7416 mov word [es:si+004h], strict word 0003fh ; 26 c7 44 04 3f 00 7417 leave ; c9 7418 pop di ; 5f 7419 pop si ; 5e 7420 retn ; c3 7421 arpl word [si-079h], dx ; 63 54 87 7422 push sp ; 54 7423 mov AH, strict byte 054h ; b4 54 7424 mov AH, strict byte 054h ; b4 54 7425 mov AH, strict byte 054h ; b4 54 7426 mov [bp-046h], ss ; 8c 56 ba 7427 push di ; 57 7428 mov dx, 0a557h ; ba 57 a5 7271 7429 push si ; 56 7272 push bp ; 55 7273 push si ; 56 7274 js short 052dbh ; 78 56 7275 js short 052ddh ; 78 56 7276 fst dword [di+055h] ; d9 55 55 7277 push si ; 56 7278 js short 052e3h ; 78 56 7279 js short 052e5h ; 78 56 7280 push bp ; 55 7281 push si ; 56 7282 or word [bp+078h], dx ; 09 56 78 7283 push si ; 56 7284 js short 052edh ; 78 56 7285 js short 052efh ; 78 56 7286 _int13_harddisk: ; 0xf5299 LB 0x43c 7430 xchg di, ax ; 97 7431 push di ; 57 7432 mov dx, 0ba57h ; ba 57 ba 7433 push di ; 57 7434 xchg di, ax ; 97 7435 push di ; 57 7436 xchg di, ax ; 97 7437 push di ; 57 7438 mov dx, 0ba57h ; ba 57 ba 7439 push di ; 57 7440 sbb dx, word [bx-069h] ; 1b 57 97 7441 push di ; 57 7442 mov dx, 0ba57h ; ba 57 ba 7443 push di ; 57 7444 xchg di, ax ; 97 7445 push di ; 57 7446 dec bx ; 4b 7447 push di ; 57 7448 mov dx, 0ba57h ; ba 57 ba 7449 push di ; 57 7450 db 0bah 7451 push di ; 57 7452 _int13_harddisk: ; 0xf53db LB 0x43c 7287 7453 enter 00010h, 000h ; c8 10 00 00 7288 7454 mov dx, strict word 0000eh ; ba 0e 00 7289 7455 mov ax, strict word 00040h ; b8 40 00 7290 call 0161ch ; e8 76 c37456 call 0161ch ; e8 34 c2 7291 7457 mov si, 00122h ; be 22 01 7292 7458 mov word [bp-004h], ax ; 89 46 fc … … 7294 7460 mov dx, 0008eh ; ba 8e 00 7295 7461 mov ax, strict word 00040h ; b8 40 00 7296 call 0160eh ; e8 57 c37462 call 0160eh ; e8 15 c2 7297 7463 mov ax, word [bp+00eh] ; 8b 46 0e 7298 7464 xor ah, ah ; 30 e4 7299 7465 cmp ax, 00080h ; 3d 80 00 7300 jc short 05 2c6h ; 72 057466 jc short 05408h ; 72 05 7301 7467 cmp ax, 00090h ; 3d 90 00 7302 jc short 05 2e4h ; 72 1e7468 jc short 05426h ; 72 1e 7303 7469 mov ax, word [bp+00eh] ; 8b 46 0e 7304 7470 xor ah, ah ; 30 e4 … … 7310 7476 push 005fbh ; 68 fb 05 7311 7477 push strict byte 00004h ; 6a 04 7312 call 018e9h ; e8 0b c67478 call 018e9h ; e8 c9 c4 7313 7479 add sp, strict byte 0000ah ; 83 c4 0a 7314 jmp near 05 693h ; e9 af 037480 jmp near 057d5h ; e9 af 03 7315 7481 mov ax, word [bp+00eh] ; 8b 46 0e 7316 7482 xor ah, ah ; 30 e4 … … 7321 7487 mov byte [bp-002h], dl ; 88 56 fe 7322 7488 cmp dl, 010h ; 80 fa 10 7323 jc short 05 30dh ; 72 107489 jc short 0544fh ; 72 10 7324 7490 push ax ; 50 7325 7491 mov ax, word [bp+016h] ; 8b 46 16 … … 7328 7494 push 005ech ; 68 ec 05 7329 7495 push 00626h ; 68 26 06 7330 jmp short 05 2d9h ; eb cc7496 jmp short 0541bh ; eb cc 7331 7497 mov bx, word [bp+016h] ; 8b 5e 16 7332 7498 shr bx, 008h ; c1 eb 08 7333 7499 cmp bx, strict byte 00018h ; 83 fb 18 7334 jnbe near 05 678h ; 0f 87 5e 037500 jnbe near 057bah ; 0f 87 5e 03 7335 7501 add bx, bx ; 01 db 7336 jmp word [cs:bx+05 267h] ; 2e ff a7 67 527502 jmp word [cs:bx+053a9h] ; 2e ff a7 a9 53 7337 7503 cmp byte [bp-002h], 008h ; 80 7e fe 08 7338 jnc near 05 330h ; 0f 83 07 007504 jnc near 05472h ; 0f 83 07 00 7339 7505 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7340 call 01be6h ; e8 b6 c87506 call 01be6h ; e8 74 c7 7341 7507 mov byte [bp+017h], 000h ; c6 46 17 00 7342 7508 xor bx, bx ; 31 db 7343 7509 mov dx, strict word 00074h ; ba 74 00 7344 7510 mov ax, strict word 00040h ; b8 40 00 7345 call 0160eh ; e8 cf c27511 call 0160eh ; e8 8d c1 7346 7512 and byte [bp+01ch], 0feh ; 80 66 1c fe 7347 7513 leave ; c9 … … 7349 7515 mov dx, strict word 00074h ; ba 74 00 7350 7516 mov ax, strict word 00040h ; b8 40 00 7351 call 01600h ; e8 b2 c27517 call 01600h ; e8 70 c1 7352 7518 mov cl, al ; 88 c1 7353 7519 mov dx, word [bp+016h] ; 8b 56 16 … … 7360 7526 mov dx, strict word 00074h ; ba 74 00 7361 7527 mov ax, strict word 00040h ; b8 40 00 7362 call 0160eh ; e8 a3 c27528 call 0160eh ; e8 61 c1 7363 7529 test cl, cl ; 84 c9 7364 je short 05 334h ; 74 c57365 jmp near 05 6afh ; e9 3d 037530 je short 05476h ; 74 c5 7531 jmp near 057f1h ; e9 3d 03 7366 7532 mov ax, word [bp+016h] ; 8b 46 16 7367 7533 xor ah, ah ; 30 e4 … … 7383 7549 mov ax, word [bp-00ch] ; 8b 46 f4 7384 7550 cmp ax, 00080h ; 3d 80 00 7385 jnbe short 05 3adh ; 77 047551 jnbe short 054efh ; 77 04 7386 7552 test ax, ax ; 85 c0 7387 jne short 05 3d0h ; 75 237388 mov bx, 00c d6h ; bb d60c7553 jne short 05512h ; 75 23 7554 mov bx, 00cech ; bb ec 0c 7389 7555 mov cx, ds ; 8c d9 7390 7556 mov ax, strict word 00004h ; b8 04 00 7391 call 018aeh ; e8 f6 c47557 call 018aeh ; e8 b4 c3 7392 7558 mov ax, word [bp+016h] ; 8b 46 16 7393 7559 shr ax, 008h ; c1 e8 08 … … 7396 7562 push 00658h ; 68 58 06 7397 7563 push strict byte 00004h ; 6a 04 7398 call 018e9h ; e8 1f c57564 call 018e9h ; e8 dd c3 7399 7565 add sp, strict byte 00008h ; 83 c4 08 7400 jmp near 05 693h ; e9 c3 027566 jmp near 057d5h ; e9 c3 02 7401 7567 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7402 7568 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7409 7575 mov word [bp-00ah], dx ; 89 56 f6 7410 7576 cmp di, ax ; 39 c7 7411 jnc short 05 3fdh ; 73 0c7577 jnc short 0553fh ; 73 0c 7412 7578 cmp cx, word [bp-008h] ; 3b 4e f8 7413 jbe short 05 3fdh ; 76 077579 jbe short 0553fh ; 76 07 7414 7580 mov ax, word [bp-006h] ; 8b 46 fa 7415 7581 cmp ax, dx ; 39 d0 7416 jbe short 05 42bh ; 76 2e7417 mov bx, 00c d6h ; bb d60c7582 jbe short 0556dh ; 76 2e 7583 mov bx, 00cech ; bb ec 0c 7418 7584 mov cx, ds ; 8c d9 7419 7585 mov ax, strict word 00004h ; b8 04 00 7420 call 018aeh ; e8 a6 c47586 call 018aeh ; e8 64 c3 7421 7587 push dword [bp-008h] ; 66 ff 76 f8 7422 7588 push di ; 57 … … 7430 7596 push 00680h ; 68 80 06 7431 7597 push strict byte 00004h ; 6a 04 7432 call 018e9h ; e8 c4 c47598 call 018e9h ; e8 82 c3 7433 7599 add sp, strict byte 00010h ; 83 c4 10 7434 jmp near 05 693h ; e9 68 027600 jmp near 057d5h ; e9 68 02 7435 7601 mov ax, word [bp+016h] ; 8b 46 16 7436 7602 shr ax, 008h ; c1 e8 08 7437 7603 cmp ax, strict word 00004h ; 3d 04 00 7438 jne short 05 439h ; 75 037439 jmp near 05 330h ; e9 f7 fe7604 jne short 0557bh ; 75 03 7605 jmp near 05472h ; e9 f7 fe 7440 7606 movzx bx, byte [bp-002h] ; 0f b6 5e fe 7441 7607 imul bx, bx, strict byte 00018h ; 6b db 18 … … 7443 7609 add bx, si ; 01 f3 7444 7610 cmp cx, word [es:bx+02ch] ; 26 3b 4f 2c 7445 jne short 05 45ah ; 75 0f7611 jne short 0559ch ; 75 0f 7446 7612 mov ax, word [es:bx+030h] ; 26 8b 47 30 7447 7613 cmp ax, word [bp-00ah] ; 3b 46 f6 7448 jne short 05 45ah ; 75 067614 jne short 0559ch ; 75 06 7449 7615 cmp byte [bp-002h], 008h ; 80 7e fe 08 7450 jc short 05 48ah ; 72 307616 jc short 055cch ; 72 30 7451 7617 mov ax, di ; 89 f8 7452 7618 xor dx, dx ; 31 d2 7453 7619 mov bx, cx ; 89 cb 7454 7620 xor cx, cx ; 31 c9 7455 call 08 c79h ; e8 14 387621 call 08ff9h ; e8 52 3a 7456 7622 xor bx, bx ; 31 db 7457 7623 add ax, word [bp-008h] ; 03 46 f8 … … 7459 7625 mov bx, word [bp-00ah] ; 8b 5e f6 7460 7626 xor cx, cx ; 31 c9 7461 call 08 c79h ; e8 05 387627 call 08ff9h ; e8 43 3a 7462 7628 xor bx, bx ; 31 db 7463 7629 add ax, word [bp-006h] ; 03 46 fa 7464 db 011h, 0dah, 005h, 0ffh, 0ffh, 089h, 046h, 0f0h, 083h, 0d2h, 0ffh, 089h, 056h, 0f2h, 089h, 05eh 7465 db 0fah, 08eh, 046h, 0fch, 066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h, 026h, 0c7h, 044h 7466 db 018h, 000h, 000h, 08bh, 046h, 0f0h, 026h, 089h, 004h, 08bh, 046h, 0f2h, 026h, 089h, 044h, 002h 7467 db 08bh, 046h, 010h, 08bh, 056h, 006h, 026h, 089h, 044h, 004h, 026h, 089h, 054h, 006h, 08bh, 046h 7468 db 0f4h, 026h, 089h, 044h, 00ah, 026h, 0c7h, 044h, 00ch, 000h, 002h, 026h, 089h, 07ch, 00eh, 08bh 7469 db 046h, 0f8h, 026h, 089h, 044h, 010h, 08bh, 046h, 0fah, 026h, 089h, 044h, 012h, 08ah, 046h, 0feh 7470 db 026h, 088h, 044h, 008h, 00fh, 0b6h, 046h, 0feh, 06bh, 0c0h, 018h, 089h, 0f3h, 001h, 0c3h, 026h 7471 db 00fh, 0b6h, 047h, 01eh, 089h, 0c3h, 0c1h, 0e3h, 002h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h, 001h 7472 db 0c0h, 001h, 0c3h, 006h, 056h, 0ffh, 097h, 0fch, 0ffh, 089h, 0c2h, 08bh, 046h, 016h, 030h, 0c0h 7473 db 08eh, 046h, 0fch, 026h, 08bh, 05ch, 014h, 009h, 0c3h, 089h, 05eh, 016h, 084h, 0d2h, 00fh, 084h 7474 db 015h, 0feh, 0bbh, 0d6h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 088h, 0c3h, 00fh, 0b6h, 0c2h 7475 db 050h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h, 050h, 068h, 0ech, 005h, 068h, 0c7h, 006h, 06ah, 004h 7476 db 0e8h, 0adh, 0c3h, 083h, 0c4h, 00ah, 08bh, 046h, 016h, 030h, 0e4h, 080h, 0cch, 00ch, 0e9h, 051h 7477 db 001h, 0bbh, 0d6h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 059h, 0c3h, 068h, 0e8h, 006h, 06ah 7478 db 004h, 0e8h, 08ch, 0c3h, 083h, 0c4h, 004h, 0e9h, 0cdh, 0fdh, 00fh, 0b6h, 046h, 0feh, 06bh, 0c0h 7479 db 018h, 08eh, 046h, 0fch, 089h, 0f3h, 001h, 0c3h, 026h, 08bh, 07fh, 028h, 026h, 08bh, 04fh, 026h 7480 db 026h, 08bh, 047h, 02ah, 089h, 046h, 0f6h, 026h, 00fh, 0b6h, 084h, 09eh, 001h, 089h, 046h, 0f4h 7481 db 0c6h, 046h, 016h, 000h, 08bh, 056h, 014h, 030h, 0f6h, 04fh, 089h, 0f8h, 030h, 0e4h, 0c1h, 0e0h 7482 db 008h, 009h, 0c2h, 089h, 056h, 014h, 0c1h, 0efh, 002h, 081h, 0e7h, 0c0h, 000h, 08bh, 046h, 0f6h 7483 db 030h, 0e4h, 024h, 03fh, 009h, 0c7h, 089h, 0d0h, 030h, 0d0h, 009h, 0f8h, 089h, 046h, 014h, 08bh 7484 db 056h, 012h, 030h, 0f6h, 089h, 0c8h, 0c1h, 0e0h, 008h, 02dh, 000h, 001h, 009h, 0c2h, 089h, 056h 7485 db 012h, 089h, 0d0h, 030h, 0d0h, 08bh, 056h, 0f4h, 009h, 0c2h, 089h, 056h, 012h, 0e9h, 057h, 0fdh 7486 db 00fh, 0b6h, 046h, 0feh, 099h, 02bh, 0c2h, 0d1h, 0f8h, 06bh, 0c0h, 006h, 08eh, 046h, 0fch, 001h 7487 db 0c6h, 026h, 08bh, 094h, 0c2h, 001h, 083h, 0c2h, 007h, 0ech, 02ah, 0e4h, 024h, 0c0h, 03ch, 040h 7488 db 075h, 003h, 0e9h, 032h, 0fdh, 08bh, 046h, 016h, 030h, 0e4h, 080h, 0cch, 0aah, 0e9h, 092h, 000h 7489 db 00fh, 0b6h, 046h, 0feh, 06bh, 0c0h, 018h, 08eh, 046h, 0fch, 001h, 0c6h, 026h, 08bh, 07ch, 02eh 7490 db 026h, 08bh, 044h, 02ch, 089h, 046h, 0f8h, 026h, 08bh, 044h, 030h, 089h, 046h, 0fah, 089h, 0f8h 7491 db 031h, 0d2h, 08bh, 05eh, 0f8h, 031h, 0c9h, 0e8h, 046h, 036h, 08bh, 05eh, 0fah, 031h, 0c9h, 0e8h 7492 db 03eh, 036h, 089h, 046h, 0f0h, 089h, 056h, 0f2h, 089h, 056h, 014h, 089h, 046h, 012h, 08bh, 046h 7493 db 016h, 030h, 0e4h, 080h, 0cch, 003h, 089h, 046h, 016h, 0e9h, 0dfh, 0fch, 0bbh, 0d6h, 00ch, 08ch 7494 db 0d9h, 0b8h, 004h, 000h, 0e8h, 04eh, 0c2h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h, 050h, 068h, 0ech 7495 db 005h, 068h, 002h, 007h, 06ah, 004h, 0e8h, 077h, 0c2h, 083h, 0c4h, 008h, 0e9h, 0b8h, 0fch, 0bbh 7496 db 0d6h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 02bh, 0c2h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h 7497 db 050h, 068h, 0ech, 005h, 068h, 035h, 007h, 0e9h, 032h, 0fdh, 08bh, 046h, 016h, 030h, 0e4h, 080h 7498 db 0cch, 001h, 089h, 046h, 016h, 08bh, 05eh, 016h, 0c1h, 0ebh, 008h, 030h, 0ffh, 0bah, 074h, 000h 7499 db 0b8h, 040h, 000h, 0e8h, 05fh, 0bfh, 080h, 04eh, 01ch, 001h, 0c9h, 0c3h, 06eh, 057h, 086h, 057h 7500 db 086h, 057h, 086h, 057h, 035h, 05bh, 0c9h, 058h, 086h, 057h, 0cfh, 058h, 035h, 05bh, 082h, 05bh 7501 db 082h, 05bh, 082h, 05bh, 082h, 05bh, 04ah, 05bh, 082h, 05bh, 082h, 05bh 7502 _int13_harddisk_ext: ; 0xf56d5 LB 0x4c8 7630 adc dx, bx ; 11 da 7631 add ax, strict word 0ffffh ; 05 ff ff 7632 mov word [bp-010h], ax ; 89 46 f0 7633 adc dx, strict byte 0ffffh ; 83 d2 ff 7634 mov word [bp-00eh], dx ; 89 56 f2 7635 mov word [bp-006h], bx ; 89 5e fa 7636 mov es, [bp-004h] ; 8e 46 fc 7637 db 066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h 7638 ; mov dword [es:si+014h], strict dword 000000000h ; 66 26 c7 44 14 00 00 00 00 7639 mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00 7640 mov ax, word [bp-010h] ; 8b 46 f0 7641 mov word [es:si], ax ; 26 89 04 7642 mov ax, word [bp-00eh] ; 8b 46 f2 7643 mov word [es:si+002h], ax ; 26 89 44 02 7644 mov ax, word [bp+010h] ; 8b 46 10 7645 mov dx, word [bp+006h] ; 8b 56 06 7646 mov word [es:si+004h], ax ; 26 89 44 04 7647 mov word [es:si+006h], dx ; 26 89 54 06 7648 mov ax, word [bp-00ch] ; 8b 46 f4 7649 mov word [es:si+00ah], ax ; 26 89 44 0a 7650 mov word [es:si+00ch], 00200h ; 26 c7 44 0c 00 02 7651 mov word [es:si+00eh], di ; 26 89 7c 0e 7652 mov ax, word [bp-008h] ; 8b 46 f8 7653 mov word [es:si+010h], ax ; 26 89 44 10 7654 mov ax, word [bp-006h] ; 8b 46 fa 7655 mov word [es:si+012h], ax ; 26 89 44 12 7656 mov al, byte [bp-002h] ; 8a 46 fe 7657 mov byte [es:si+008h], al ; 26 88 44 08 7658 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7659 imul ax, ax, strict byte 00018h ; 6b c0 18 7660 mov bx, si ; 89 f3 7661 add bx, ax ; 01 c3 7662 movzx ax, byte [es:bx+01eh] ; 26 0f b6 47 1e 7663 mov bx, ax ; 89 c3 7664 sal bx, 002h ; c1 e3 02 7665 mov ax, word [bp+016h] ; 8b 46 16 7666 shr ax, 008h ; c1 e8 08 7667 add ax, ax ; 01 c0 7668 add bx, ax ; 01 c3 7669 push ES ; 06 7670 push si ; 56 7671 call word [word bx-00004h] ; ff 97 fc ff 7672 mov dx, ax ; 89 c2 7673 mov ax, word [bp+016h] ; 8b 46 16 7674 xor al, al ; 30 c0 7675 mov es, [bp-004h] ; 8e 46 fc 7676 mov bx, word [es:si+014h] ; 26 8b 5c 14 7677 or bx, ax ; 09 c3 7678 mov word [bp+016h], bx ; 89 5e 16 7679 test dl, dl ; 84 d2 7680 je near 05472h ; 0f 84 15 fe 7681 mov bx, 00cech ; bb ec 0c 7682 mov cx, ds ; 8c d9 7683 mov ax, strict word 00004h ; b8 04 00 7684 call 018aeh ; e8 46 c2 7685 movzx ax, dl ; 0f b6 c2 7686 push ax ; 50 7687 mov ax, word [bp+016h] ; 8b 46 16 7688 shr ax, 008h ; c1 e8 08 7689 push ax ; 50 7690 push 005ech ; 68 ec 05 7691 push 006c7h ; 68 c7 06 7692 push strict byte 00004h ; 6a 04 7693 call 018e9h ; e8 6b c2 7694 add sp, strict byte 0000ah ; 83 c4 0a 7695 mov ax, word [bp+016h] ; 8b 46 16 7696 xor ah, ah ; 30 e4 7697 or ah, 00ch ; 80 cc 0c 7698 jmp near 057ddh ; e9 51 01 7699 mov bx, 00cech ; bb ec 0c 7700 mov cx, ds ; 8c d9 7701 mov ax, strict word 00004h ; b8 04 00 7702 call 018aeh ; e8 17 c2 7703 push 006e8h ; 68 e8 06 7704 push strict byte 00004h ; 6a 04 7705 call 018e9h ; e8 4a c2 7706 add sp, strict byte 00004h ; 83 c4 04 7707 jmp near 05472h ; e9 cd fd 7708 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7709 imul ax, ax, strict byte 00018h ; 6b c0 18 7710 mov es, [bp-004h] ; 8e 46 fc 7711 mov bx, si ; 89 f3 7712 add bx, ax ; 01 c3 7713 mov di, word [es:bx+028h] ; 26 8b 7f 28 7714 mov cx, word [es:bx+026h] ; 26 8b 4f 26 7715 mov ax, word [es:bx+02ah] ; 26 8b 47 2a 7716 mov word [bp-00ah], ax ; 89 46 f6 7717 movzx ax, byte [es:si+0019eh] ; 26 0f b6 84 9e 01 7718 mov word [bp-00ch], ax ; 89 46 f4 7719 mov byte [bp+016h], 000h ; c6 46 16 00 7720 mov dx, word [bp+014h] ; 8b 56 14 7721 xor dh, dh ; 30 f6 7722 dec di ; 4f 7723 mov ax, di ; 89 f8 7724 xor ah, ah ; 30 e4 7725 sal ax, 008h ; c1 e0 08 7726 or dx, ax ; 09 c2 7727 mov word [bp+014h], dx ; 89 56 14 7728 shr di, 002h ; c1 ef 02 7729 and di, 000c0h ; 81 e7 c0 00 7730 mov ax, word [bp-00ah] ; 8b 46 f6 7731 xor ah, ah ; 30 e4 7732 and AL, strict byte 03fh ; 24 3f 7733 or di, ax ; 09 c7 7734 mov ax, dx ; 89 d0 7735 xor al, dl ; 30 d0 7736 or ax, di ; 09 f8 7737 mov word [bp+014h], ax ; 89 46 14 7738 mov dx, word [bp+012h] ; 8b 56 12 7739 xor dh, dh ; 30 f6 7740 mov ax, cx ; 89 c8 7741 sal ax, 008h ; c1 e0 08 7742 sub ax, 00100h ; 2d 00 01 7743 or dx, ax ; 09 c2 7744 mov word [bp+012h], dx ; 89 56 12 7745 mov ax, dx ; 89 d0 7746 xor al, dl ; 30 d0 7747 mov dx, word [bp-00ch] ; 8b 56 f4 7748 or dx, ax ; 09 c2 7749 mov word [bp+012h], dx ; 89 56 12 7750 jmp near 05472h ; e9 57 fd 7751 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7752 cwd ; 99 7753 db 02bh, 0c2h 7754 ; sub ax, dx ; 2b c2 7755 sar ax, 1 ; d1 f8 7756 imul ax, ax, strict byte 00006h ; 6b c0 06 7757 mov es, [bp-004h] ; 8e 46 fc 7758 add si, ax ; 01 c6 7759 mov dx, word [es:si+001c2h] ; 26 8b 94 c2 01 7760 add dx, strict byte 00007h ; 83 c2 07 7761 in AL, DX ; ec 7762 db 02ah, 0e4h 7763 ; sub ah, ah ; 2a e4 7764 and AL, strict byte 0c0h ; 24 c0 7765 cmp AL, strict byte 040h ; 3c 40 7766 jne short 05740h ; 75 03 7767 jmp near 05472h ; e9 32 fd 7768 mov ax, word [bp+016h] ; 8b 46 16 7769 xor ah, ah ; 30 e4 7770 or ah, 0aah ; 80 cc aa 7771 jmp near 057ddh ; e9 92 00 7772 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7773 imul ax, ax, strict byte 00018h ; 6b c0 18 7774 mov es, [bp-004h] ; 8e 46 fc 7775 add si, ax ; 01 c6 7776 mov di, word [es:si+02eh] ; 26 8b 7c 2e 7777 mov ax, word [es:si+02ch] ; 26 8b 44 2c 7778 mov word [bp-008h], ax ; 89 46 f8 7779 mov ax, word [es:si+030h] ; 26 8b 44 30 7780 mov word [bp-006h], ax ; 89 46 fa 7781 mov ax, di ; 89 f8 7782 xor dx, dx ; 31 d2 7783 mov bx, word [bp-008h] ; 8b 5e f8 7784 xor cx, cx ; 31 c9 7785 call 08ff9h ; e8 84 38 7786 mov bx, word [bp-006h] ; 8b 5e fa 7787 xor cx, cx ; 31 c9 7788 call 08ff9h ; e8 7c 38 7789 mov word [bp-010h], ax ; 89 46 f0 7790 mov word [bp-00eh], dx ; 89 56 f2 7791 mov word [bp+014h], dx ; 89 56 14 7792 mov word [bp+012h], ax ; 89 46 12 7793 mov ax, word [bp+016h] ; 8b 46 16 7794 xor ah, ah ; 30 e4 7795 or ah, 003h ; 80 cc 03 7796 mov word [bp+016h], ax ; 89 46 16 7797 jmp near 05476h ; e9 df fc 7798 mov bx, 00cech ; bb ec 0c 7799 mov cx, ds ; 8c d9 7800 mov ax, strict word 00004h ; b8 04 00 7801 call 018aeh ; e8 0c c1 7802 mov ax, word [bp+016h] ; 8b 46 16 7803 shr ax, 008h ; c1 e8 08 7804 push ax ; 50 7805 push 005ech ; 68 ec 05 7806 push 00702h ; 68 02 07 7807 push strict byte 00004h ; 6a 04 7808 call 018e9h ; e8 35 c1 7809 add sp, strict byte 00008h ; 83 c4 08 7810 jmp near 05472h ; e9 b8 fc 7811 mov bx, 00cech ; bb ec 0c 7812 mov cx, ds ; 8c d9 7813 mov ax, strict word 00004h ; b8 04 00 7814 call 018aeh ; e8 e9 c0 7815 mov ax, word [bp+016h] ; 8b 46 16 7816 shr ax, 008h ; c1 e8 08 7817 push ax ; 50 7818 push 005ech ; 68 ec 05 7819 push 00735h ; 68 35 07 7820 jmp near 05507h ; e9 32 fd 7821 mov ax, word [bp+016h] ; 8b 46 16 7822 xor ah, ah ; 30 e4 7823 or ah, 001h ; 80 cc 01 7824 mov word [bp+016h], ax ; 89 46 16 7825 mov bx, word [bp+016h] ; 8b 5e 16 7826 shr bx, 008h ; c1 eb 08 7827 xor bh, bh ; 30 ff 7828 mov dx, strict word 00074h ; ba 74 00 7829 mov ax, strict word 00040h ; b8 40 00 7830 call 0160eh ; e8 1d be 7831 or byte [bp+01ch], 001h ; 80 4e 1c 01 7832 leave ; c9 7833 retn ; c3 7834 db 0b0h, 058h, 0c8h, 058h, 0c8h, 058h, 0c8h, 058h, 077h, 05ch, 00bh, 05ah, 0c8h, 058h, 011h, 05ah 7835 db 077h, 05ch, 0c4h, 05ch, 0c4h, 05ch, 0c4h, 05ch, 0c4h, 05ch, 08ch, 05ch, 0c4h, 05ch, 0c4h, 05ch 7836 _int13_harddisk_ext: ; 0xf5817 LB 0x4c8 7503 7837 enter 00028h, 000h ; c8 28 00 00 7504 7838 mov dx, strict word 0000eh ; ba 0e 00 7505 7839 mov ax, strict word 00040h ; b8 40 00 7506 call 0161ch ; e8 3a bf7840 call 0161ch ; e8 f8 bd 7507 7841 mov word [bp-014h], ax ; 89 46 ec 7508 7842 mov dx, strict word 0000eh ; ba 0e 00 7509 7843 mov ax, strict word 00040h ; b8 40 00 7510 call 0161ch ; e8 2e bf7844 call 0161ch ; e8 ec bd 7511 7845 mov si, 00122h ; be 22 01 7512 7846 mov word [bp-026h], ax ; 89 46 da … … 7514 7848 mov dx, 0008eh ; ba 8e 00 7515 7849 mov ax, strict word 00040h ; b8 40 00 7516 call 0160eh ; e8 0f bf7850 call 0160eh ; e8 cd bd 7517 7851 mov ax, word [bp+00eh] ; 8b 46 0e 7518 7852 xor ah, ah ; 30 e4 7519 7853 cmp ax, 00080h ; 3d 80 00 7520 jc short 05 70eh ; 72 057854 jc short 05850h ; 72 05 7521 7855 cmp ax, 00090h ; 3d 90 00 7522 jc short 05 72ch ; 72 1e7856 jc short 0586eh ; 72 1e 7523 7857 mov ax, word [bp+00eh] ; 8b 46 0e 7524 7858 xor ah, ah ; 30 e4 … … 7530 7864 push 005fbh ; 68 fb 05 7531 7865 push strict byte 00004h ; 6a 04 7532 call 018e9h ; e8 c3 c17866 call 018e9h ; e8 81 c0 7533 7867 add sp, strict byte 0000ah ; 83 c4 0a 7534 jmp near 05 b60h ; e9 34 047868 jmp near 05ca2h ; e9 34 04 7535 7869 mov ax, word [bp+00eh] ; 8b 46 0e 7536 7870 xor ah, ah ; 30 e4 … … 7540 7874 mov cl, byte [es:bx+0011fh] ; 26 8a 8f 1f 01 7541 7875 cmp cl, 010h ; 80 f9 10 7542 jc short 05 752h ; 72 107876 jc short 05894h ; 72 10 7543 7877 push ax ; 50 7544 7878 mov ax, word [bp+016h] ; 8b 46 16 … … 7547 7881 push 00763h ; 68 63 07 7548 7882 push 00626h ; 68 26 06 7549 jmp short 05 721h ; eb cf7883 jmp short 05863h ; eb cf 7550 7884 mov bx, word [bp+016h] ; 8b 5e 16 7551 7885 shr bx, 008h ; c1 eb 08 7552 7886 sub bx, strict byte 00041h ; 83 eb 41 7553 7887 cmp bx, strict byte 0000fh ; 83 fb 0f 7554 jnbe near 05 b82h ; 0f 87 20 047888 jnbe near 05cc4h ; 0f 87 20 04 7555 7889 add bx, bx ; 01 db 7556 7890 mov ax, word [bp+016h] ; 8b 46 16 7557 7891 xor ah, ah ; 30 e4 7558 jmp word [cs:bx+05 6b5h] ; 2e ff a7 b5 567892 jmp word [cs:bx+057f7h] ; 2e ff a7 f7 57 7559 7893 mov word [bp+010h], 0aa55h ; c7 46 10 55 aa 7560 7894 mov ax, word [bp+016h] ; 8b 46 16 … … 7563 7897 mov word [bp+016h], ax ; 89 46 16 7564 7898 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 7565 jmp near 05 b39h ; e9 b3 037899 jmp near 05c7bh ; e9 b3 03 7566 7900 mov bx, word [bp+00ah] ; 8b 5e 0a 7567 7901 mov es, [bp+004h] ; 8e 46 04 … … 7578 7912 mov ax, word [es:bx+00eh] ; 26 8b 47 0e 7579 7913 or ax, word [bp-00ah] ; 0b 46 f6 7580 je short 05 7c7h ; 74 117914 je short 05909h ; 74 11 7581 7915 mov ax, word [bp+016h] ; 8b 46 16 7582 7916 shr ax, 008h ; c1 e8 08 … … 7585 7919 push 00776h ; 68 76 07 7586 7920 push strict byte 00007h ; 6a 07 7587 jmp short 05 811h ; eb 4a7921 jmp short 05953h ; eb 4a 7588 7922 mov es, [bp-010h] ; 8e 46 f0 7589 7923 mov ax, word [es:di+008h] ; 26 8b 45 08 … … 7597 7931 mov ch, byte [es:bx+01eh] ; 26 8a 6f 1e 7598 7932 cmp ax, word [es:bx+034h] ; 26 3b 47 34 7599 jnbe short 05 7f7h ; 77 0b7600 jne short 05 81ah ; 75 2c7933 jnbe short 05939h ; 77 0b 7934 jne short 0595ch ; 75 2c 7601 7935 mov dx, word [bp-00ah] ; 8b 56 f6 7602 7936 cmp dx, word [es:bx+032h] ; 26 3b 57 32 7603 jc short 05 81ah ; 72 237604 mov bx, 00c d6h ; bb d60c7937 jc short 0595ch ; 72 23 7938 mov bx, 00cech ; bb ec 0c 7605 7939 mov cx, ds ; 8c d9 7606 7940 mov ax, strict word 00004h ; b8 04 00 7607 call 018aeh ; e8 ac c07941 call 018aeh ; e8 6a bf 7608 7942 mov ax, word [bp+016h] ; 8b 46 16 7609 7943 shr ax, 008h ; c1 e8 08 … … 7612 7946 push 0079fh ; 68 9f 07 7613 7947 push strict byte 00004h ; 6a 04 7614 call 018e9h ; e8 d5 c07948 call 018e9h ; e8 93 bf 7615 7949 add sp, strict byte 00008h ; 83 c4 08 7616 jmp near 05 b60h ; e9 46 037950 jmp near 05ca2h ; e9 46 03 7617 7951 mov dx, word [bp+016h] ; 8b 56 16 7618 7952 shr dx, 008h ; c1 ea 08 7619 7953 mov word [bp-00ch], dx ; 89 56 f4 7620 7954 cmp dx, strict byte 00044h ; 83 fa 44 7621 je near 05 b35h ; 0f 84 0b 037955 je near 05c77h ; 0f 84 0b 03 7622 7956 cmp dx, strict byte 00047h ; 83 fa 47 7623 je near 05 b35h ; 0f 84 04 037957 je near 05c77h ; 0f 84 04 03 7624 7958 mov es, [bp-026h] ; 8e 46 da 7625 7959 db 066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h … … 7653 7987 mov word [es:di+002h], ax ; 26 89 45 02 7654 7988 test dl, dl ; 84 d2 7655 je near 05 b35h ; 0f 84 97 027656 mov bx, 00c d6h ; bb d60c7989 je near 05c77h ; 0f 84 97 02 7990 mov bx, 00cech ; bb ec 0c 7657 7991 mov cx, ds ; 8c d9 7658 7992 mov ax, strict word 00004h ; b8 04 00 7659 call 018aeh ; e8 05 c07993 call 018aeh ; e8 c3 be 7660 7994 movzx ax, dl ; 0f b6 c2 7661 7995 push ax ; 50 … … 7664 7998 push 006c7h ; 68 c7 06 7665 7999 push strict byte 00004h ; 6a 04 7666 call 018e9h ; e8 2e c08000 call 018e9h ; e8 ec be 7667 8001 add sp, strict byte 0000ah ; 83 c4 0a 7668 8002 mov ax, word [bp+016h] ; 8b 46 16 7669 8003 xor ah, ah ; 30 e4 7670 8004 or ah, 00ch ; 80 cc 0c 7671 jmp near 05 b68h ; e9 9f 028005 jmp near 05caah ; e9 9f 02 7672 8006 or ah, 0b2h ; 80 cc b2 7673 jmp near 05 b68h ; e9 99 028007 jmp near 05caah ; e9 99 02 7674 8008 mov bx, word [bp+00ah] ; 8b 5e 0a 7675 8009 mov ax, word [bp+004h] ; 8b 46 04 … … 7681 8015 mov word [bp-00eh], ax ; 89 46 f2 7682 8016 cmp ax, strict word 0001ah ; 3d 1a 00 7683 jc near 05 b60h ; 0f 82 74 027684 jc near 05 973h ; 0f 82 83 008017 jc near 05ca2h ; 0f 82 74 02 8018 jc near 05ab5h ; 0f 82 83 00 7685 8019 movzx ax, cl ; 0f b6 c1 7686 8020 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7720 8054 ; mov dword [es:di+014h], strict dword 000000000h ; 66 26 c7 45 14 00 00 00 00 7721 8055 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 7722 jc near 05 a7fh ; 0f 82 04 018056 jc near 05bc1h ; 0f 82 04 01 7723 8057 mov es, [bp-004h] ; 8e 46 fc 7724 8058 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 … … 7746 8080 mov al, byte [es:di+023h] ; 26 8a 45 23 7747 8081 test al, al ; 84 c0 7748 jne short 05 9d1h ; 75 048082 jne short 05b13h ; 75 04 7749 8083 xor dx, dx ; 31 d2 7750 jmp short 05 9d4h ; eb 038084 jmp short 05b16h ; eb 03 7751 8085 mov dx, strict word 00008h ; ba 08 00 7752 8086 or dl, 010h ; 80 ca 10 … … 7763 8097 or word [bp-008h], dx ; 09 56 f8 7764 8098 cmp AL, strict byte 003h ; 3c 03 7765 jne short 05 9fah ; 75 058099 jne short 05b3ch ; 75 05 7766 8100 mov ax, strict word 00003h ; b8 03 00 7767 jmp short 05 9fch ; eb 028101 jmp short 05b3eh ; eb 02 7768 8102 xor ax, ax ; 31 c0 7769 8103 or word [bp-008h], ax ; 09 46 f8 … … 7790 8124 xor ch, ch ; 30 ed 7791 8125 mov byte [bp-002h], ch ; 88 6e fe 7792 jmp short 05 a60h ; eb 068126 jmp short 05ba2h ; eb 06 7793 8127 cmp byte [bp-002h], 00fh ; 80 7e fe 0f 7794 jnc short 05 a75h ; 73 158128 jnc short 05bb7h ; 73 15 7795 8129 movzx dx, byte [bp-002h] ; 0f b6 56 fe 7796 8130 add dx, 00312h ; 81 c2 12 03 7797 8131 mov ax, word [bp-014h] ; 8b 46 ec 7798 call 01600h ; e8 92 bb8132 call 01600h ; e8 50 ba 7799 8133 add ch, al ; 00 c5 7800 8134 inc byte [bp-002h] ; fe 46 fe 7801 jmp short 05 a5ah ; eb e58135 jmp short 05b9ch ; eb e5 7802 8136 neg ch ; f6 dd 7803 8137 mov es, [bp-026h] ; 8e 46 da 7804 8138 mov byte [es:si+001ffh], ch ; 26 88 ac ff 01 7805 8139 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 7806 jc near 05 b35h ; 0f 82 ae 008140 jc near 05c77h ; 0f 82 ae 00 7807 8141 movzx ax, cl ; 0f b6 c1 7808 8142 cwd ; 99 … … 7822 8156 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 7823 8157 test al, al ; 84 c0 7824 jne short 05 ac7h ; 75 098158 jne short 05c09h ; 75 09 7825 8159 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 7826 8160 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 … … 7831 8165 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 7832 8166 test al, al ; 84 c0 7833 jne short 05 af3h ; 75 138167 jne short 05c35h ; 75 13 7834 8168 mov word [es:bx+030h], dx ; 26 89 57 30 7835 8169 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h … … 7846 8180 xor cl, cl ; 30 c9 7847 8181 mov CH, strict byte 01eh ; b5 1e 7848 jmp short 05 b1ah ; eb 058182 jmp short 05c5ch ; eb 05 7849 8183 cmp ch, 040h ; 80 fd 40 7850 jnc short 05 b2ch ; 73 128184 jnc short 05c6eh ; 73 12 7851 8185 movzx dx, ch ; 0f b6 d5 7852 8186 add dx, word [bp+00ah] ; 03 56 0a 7853 8187 mov ax, word [bp+004h] ; 8b 46 04 7854 call 01600h ; e8 da ba8188 call 01600h ; e8 98 b9 7855 8189 add cl, al ; 00 c1 7856 8190 db 0feh, 0c5h 7857 8191 ; inc ch ; fe c5 7858 jmp short 05 b15h ; eb e98192 jmp short 05c57h ; eb e9 7859 8193 neg cl ; f6 d9 7860 8194 mov es, [bp-004h] ; 8e 46 fc … … 7864 8198 mov dx, strict word 00074h ; ba 74 00 7865 8199 mov ax, strict word 00040h ; b8 40 00 7866 call 0160eh ; e8 ca ba8200 call 0160eh ; e8 88 b9 7867 8201 and byte [bp+01ch], 0feh ; 80 66 1c fe 7868 8202 leave ; c9 7869 8203 retn ; c3 7870 8204 cmp ax, strict word 00006h ; 3d 06 00 7871 je short 05 b35h ; 74 e68205 je short 05c77h ; 74 e6 7872 8206 cmp ax, strict word 00001h ; 3d 01 00 7873 jc short 05 b60h ; 72 0c7874 jbe short 05 b35h ; 76 df8207 jc short 05ca2h ; 72 0c 8208 jbe short 05c77h ; 76 df 7875 8209 cmp ax, strict word 00003h ; 3d 03 00 7876 jc short 05 b60h ; 72 058210 jc short 05ca2h ; 72 05 7877 8211 cmp ax, strict word 00004h ; 3d 04 00 7878 jbe short 05 b35h ; 76 d58212 jbe short 05c77h ; 76 d5 7879 8213 mov ax, word [bp+016h] ; 8b 46 16 7880 8214 xor ah, ah ; 30 e4 … … 7886 8220 mov dx, strict word 00074h ; ba 74 00 7887 8221 mov ax, strict word 00040h ; b8 40 00 7888 call 0160eh ; e8 92 ba8222 call 0160eh ; e8 50 b9 7889 8223 or byte [bp+01ch], 001h ; 80 4e 1c 01 7890 8224 leave ; c9 7891 8225 retn ; c3 7892 mov bx, 00c d6h ; bb d60c8226 mov bx, 00cech ; bb ec 0c 7893 8227 mov cx, ds ; 8c d9 7894 8228 mov ax, strict word 00004h ; b8 04 00 7895 call 018aeh ; e8 21 bd8229 call 018aeh ; e8 df bb 7896 8230 mov ax, word [bp+016h] ; 8b 46 16 7897 8231 shr ax, 008h ; c1 e8 08 … … 7899 8233 push 00763h ; 68 63 07 7900 8234 push 00735h ; 68 35 07 7901 jmp near 05 80fh ; e9 72 fc7902 _int14_function: ; 0xf5 b9dLB 0x1548235 jmp near 05951h ; e9 72 fc 8236 _int14_function: ; 0xf5cdf LB 0x154 7903 8237 push si ; 56 7904 8238 push bp ; 55 … … 7908 8242 add dx, dx ; 01 d2 7909 8243 mov ax, strict word 00040h ; b8 40 00 7910 call 0161ch ; e8 6f ba8244 call 0161ch ; e8 2d b9 7911 8245 mov si, ax ; 89 c6 7912 8246 mov bx, ax ; 89 c3 … … 7914 8248 add dx, strict byte 0007ch ; 83 c2 7c 7915 8249 mov ax, strict word 00040h ; b8 40 00 7916 call 01600h ; e8 43 ba8250 call 01600h ; e8 01 b9 7917 8251 mov cl, al ; 88 c1 7918 8252 cmp word [bp+010h], strict byte 00004h ; 83 7e 10 04 7919 jnc near 05 ceah ; 0f 83 23 018253 jnc near 05e2ch ; 0f 83 23 01 7920 8254 test si, si ; 85 f6 7921 jbe near 05 ceah ; 0f 86 1d 018255 jbe near 05e2ch ; 0f 86 1d 01 7922 8256 mov al, byte [bp+015h] ; 8a 46 15 7923 8257 cmp AL, strict byte 001h ; 3c 01 7924 jc short 05 be5h ; 72 117925 jbe short 05 c39h ; 76 638258 jc short 05d27h ; 72 11 8259 jbe short 05d7bh ; 76 63 7926 8260 cmp AL, strict byte 003h ; 3c 03 7927 je near 05 cd2h ; 0f 84 f6 008261 je near 05e14h ; 0f 84 f6 00 7928 8262 cmp AL, strict byte 002h ; 3c 02 7929 je near 05 c87h ; 0f 84 a5 007930 jmp near 05 ce3h ; e9 fe 008263 je near 05dc9h ; 0f 84 a5 00 8264 jmp near 05e25h ; e9 fe 00 7931 8265 test al, al ; 84 c0 7932 jne near 05 ce3h ; 0f 85 f8 008266 jne near 05e25h ; 0f 85 f8 00 7933 8267 lea dx, [bx+003h] ; 8d 57 03 7934 8268 in AL, DX ; ec … … 7962 8296 ; sub ah, ah ; 2a e4 7963 8297 mov byte [bp+014h], al ; 88 46 14 7964 jmp near 05 cc3h ; e9 97 008298 jmp near 05e05h ; e9 97 00 7965 8299 mov AL, strict byte 017h ; b0 17 7966 8300 mov dx, bx ; 89 da … … 7969 8303 mov AL, strict byte 004h ; b0 04 7970 8304 out DX, AL ; ee 7971 jmp short 05 c0eh ; eb d58305 jmp short 05d50h ; eb d5 7972 8306 mov dx, strict word 0006ch ; ba 6c 00 7973 8307 mov ax, strict word 00040h ; b8 40 00 7974 call 0161ch ; e8 da b98308 call 0161ch ; e8 98 b8 7975 8309 mov si, ax ; 89 c6 7976 8310 lea dx, [bx+005h] ; 8d 57 05 … … 7980 8314 and ax, strict word 00060h ; 25 60 00 7981 8315 cmp ax, strict word 00060h ; 3d 60 00 7982 je short 05 c69h ; 74 178316 je short 05dabh ; 74 17 7983 8317 test cl, cl ; 84 c9 7984 je short 05 c69h ; 74 138318 je short 05dabh ; 74 13 7985 8319 mov dx, strict word 0006ch ; ba 6c 00 7986 8320 mov ax, strict word 00040h ; b8 40 00 7987 call 0161ch ; e8 bd b98321 call 0161ch ; e8 7b b8 7988 8322 cmp ax, si ; 39 f0 7989 je short 05 c44h ; 74 e18323 je short 05d86h ; 74 e1 7990 8324 mov si, ax ; 89 c6 7991 8325 db 0feh, 0c9h 7992 8326 ; dec cl ; fe c9 7993 jmp short 05 c44h ; eb db8327 jmp short 05d86h ; eb db 7994 8328 test cl, cl ; 84 c9 7995 je short 05 c73h ; 74 068329 je short 05db5h ; 74 06 7996 8330 mov al, byte [bp+014h] ; 8a 46 14 7997 8331 mov dx, bx ; 89 da … … 8003 8337 mov byte [bp+015h], al ; 88 46 15 8004 8338 test cl, cl ; 84 c9 8005 jne short 05 cc3h ; 75 438339 jne short 05e05h ; 75 43 8006 8340 or AL, strict byte 080h ; 0c 80 8007 8341 mov byte [bp+015h], al ; 88 46 15 8008 jmp short 05 cc3h ; eb 3c8342 jmp short 05e05h ; eb 3c 8009 8343 mov dx, strict word 0006ch ; ba 6c 00 8010 8344 mov ax, strict word 00040h ; b8 40 00 8011 call 0161ch ; e8 8c b98345 call 0161ch ; e8 4a b8 8012 8346 mov si, ax ; 89 c6 8013 8347 lea dx, [bx+005h] ; 8d 57 05 … … 8016 8350 ; sub ah, ah ; 2a e4 8017 8351 test AL, strict byte 001h ; a8 01 8018 jne short 05 cb3h ; 75 178352 jne short 05df5h ; 75 17 8019 8353 test cl, cl ; 84 c9 8020 je short 05 cb3h ; 74 138354 je short 05df5h ; 74 13 8021 8355 mov dx, strict word 0006ch ; ba 6c 00 8022 8356 mov ax, strict word 00040h ; b8 40 00 8023 call 0161ch ; e8 73 b98357 call 0161ch ; e8 31 b8 8024 8358 cmp ax, si ; 39 f0 8025 je short 05 c92h ; 74 e58359 je short 05dd4h ; 74 e5 8026 8360 mov si, ax ; 89 c6 8027 8361 db 0feh, 0c9h 8028 8362 ; dec cl ; fe c9 8029 jmp short 05 c92h ; eb df8363 jmp short 05dd4h ; eb df 8030 8364 test cl, cl ; 84 c9 8031 je short 05 ccah ; 74 138365 je short 05e0ch ; 74 13 8032 8366 mov byte [bp+015h], 000h ; c6 46 15 00 8033 8367 mov dx, bx ; 89 da … … 8044 8378 db 02ah, 0e4h 8045 8379 ; sub ah, ah ; 2a e4 8046 jmp short 05 c82h ; eb b08380 jmp short 05dc4h ; eb b0 8047 8381 lea dx, [si+005h] ; 8d 54 05 8048 8382 in AL, DX ; ec … … 8054 8388 db 02ah, 0e4h 8055 8389 ; sub ah, ah ; 2a e4 8056 jmp short 05 cc0h ; eb dd8390 jmp short 05e02h ; eb dd 8057 8391 or byte [bp+01eh], 001h ; 80 4e 1e 01 8058 8392 pop bp ; 5d … … 8063 8397 pop si ; 5e 8064 8398 retn ; c3 8065 set_enable_a20_: ; 0xf5 cf1LB 0x298399 set_enable_a20_: ; 0xf5e33 LB 0x29 8066 8400 push bx ; 53 8067 8401 push cx ; 51 … … 8076 8410 mov cl, al ; 88 c1 8077 8411 test bx, bx ; 85 db 8078 je short 05 d0ah ; 74 058412 je short 05e4ch ; 74 05 8079 8413 or AL, strict byte 002h ; 0c 02 8080 8414 out DX, AL ; ee 8081 jmp short 05 d0dh ; eb 038415 jmp short 05e4fh ; eb 03 8082 8416 and AL, strict byte 0fdh ; 24 fd 8083 8417 out DX, AL ; ee … … 8091 8425 pop bx ; 5b 8092 8426 retn ; c3 8093 set_e820_range_: ; 0xf5 d1aLB 0x8c8427 set_e820_range_: ; 0xf5e5c LB 0x8c 8094 8428 push si ; 56 8095 8429 push bp ; 55 … … 8120 8454 retn 0000ah ; c2 0a 00 8121 8455 in AL, DX ; ec 8122 jmp near 0 1f4dh ; e9 d8 c18456 jmp near 0208fh ; e9 d8 c1 8123 8457 sar byte [bx-06f6fh], 089h ; c0 bf 91 90 89 8124 8458 mov byte [bx+05283h], al ; 88 87 83 52 … … 8126 8460 inc cx ; 41 8127 8461 and AL, strict byte 000h ; 24 00 8128 inc cx ; 41 8462 and word [bp+di+026h], strict byte 0005fh ; 83 63 26 5f 8463 cmp word [bx-035h], bx ; 39 5f cb 8464 pop di ; 5f 8465 rcr word [bx-02ah], 1 ; d1 5f d6 8466 pop di ; 5f 8467 fistp dword [bx+07dh] ; db 5f 7d 8468 pushaw ; 60 8469 sbb ah, byte [bp+si+040h] ; 1a 62 40 8129 8470 db 062h 8130 in AL, strict byte 05dh ; e4 5d 8131 neg word [di-077h] ; f7 5d 89 8471 db 0c7h, 05fh, 0c7h, 05fh, 00dh 8472 ; mov word [bx-039h], 00d5fh ; c7 5f c7 5f 0d 8473 arpl word [di], si ; 63 35 8474 arpl word [bx+si+063h], cx ; 63 48 63 8475 push di ; 57 8476 arpl bx, cx ; 63 cb 8477 pop di ; 5f 8132 8478 pop si ; 5e 8133 db 08fh, 05eh, 094h 8134 ; pop word [bp-06ch] ; 8f 5e 94 8135 pop si ; 5e 8136 cwd ; 99 8137 pop si ; 5e 8138 cmp bx, word [bx-028h] ; 3b 5f d8 8139 pushaw ; 60 8140 db 0feh 8141 pushaw ; 60 8142 test word [bp-07bh], bx ; 85 5e 85 8143 pop si ; 5e 8144 retf ; cb 8145 popaw ; 61 8146 db 0f3h, 061h 8147 ; rep popaw ; f3 61 8148 push ES ; 06 8149 bound dx, [di] ; 62 15 8150 bound cx, [bx+di+01c5eh] ; 62 89 5e 1c 8151 db 062h 8152 _int15_function: ; 0xf5da6 LB 0x4c9 8479 db 063h 8480 _int15_function: ; 0xf5ee8 LB 0x4c9 8153 8481 push si ; 56 8154 8482 push di ; 57 … … 8157 8485 shr ax, 008h ; c1 e8 08 8158 8486 cmp ax, 000ech ; 3d ec 00 8159 jnbe near 06 241h ; 0f 87 88 048487 jnbe near 06383h ; 0f 87 88 04 8160 8488 push CS ; 0e 8161 8489 pop ES ; 07 8162 8490 mov cx, strict word 00012h ; b9 12 00 8163 mov di, 05 d71h ; bf 71 5d8491 mov di, 05eb3h ; bf b3 5e 8164 8492 repne scasb ; f2 ae 8165 8493 sal cx, 1 ; d1 e1 8166 8494 mov di, cx ; 89 cf 8167 mov si, word [cs:di+05 d82h] ; 2e 8b b5 82 5d8495 mov si, word [cs:di+05ec4h] ; 2e 8b b5 c4 5e 8168 8496 mov ax, word [bp+016h] ; 8b 46 16 8169 8497 xor ah, ah ; 30 e4 … … 8178 8506 xor ah, ah ; 30 e4 8179 8507 cmp ax, 000c0h ; 3d c0 00 8180 jne near 06 241h ; 0f 85 51 048508 jne near 06383h ; 0f 85 51 04 8181 8509 or byte [bp+01ch], 001h ; 80 4e 1c 01 8182 jmp near 06 1eah ; e9 f3 038510 jmp near 0632ch ; e9 f3 03 8183 8511 mov dx, ax ; 89 c2 8184 8512 cmp ax, strict word 00001h ; 3d 01 00 8185 jc short 05 e0ch ; 72 0e8186 jbe short 05 e20h ; 76 208513 jc short 05f4eh ; 72 0e 8514 jbe short 05f62h ; 76 20 8187 8515 cmp ax, strict word 00003h ; 3d 03 00 8188 je short 05 e4dh ; 74 488516 je short 05f8fh ; 74 48 8189 8517 cmp ax, strict word 00002h ; 3d 02 00 8190 je short 05 e30h ; 74 268191 jmp short 05 e5ah ; eb 4e8518 je short 05f72h ; 74 26 8519 jmp short 05f9ch ; eb 4e 8192 8520 test ax, ax ; 85 c0 8193 jne short 05 e5ah ; 75 4a8521 jne short 05f9ch ; 75 4a 8194 8522 xor ax, ax ; 31 c0 8195 call 05 cf1h ; e8 dc fe8523 call 05e33h ; e8 dc fe 8196 8524 and byte [bp+01ch], 0feh ; 80 66 1c fe 8197 8525 mov byte [bp+017h], 000h ; c6 46 17 00 8198 jmp near 05 e85h ; e9 65 008526 jmp near 05fc7h ; e9 65 00 8199 8527 mov ax, strict word 00001h ; b8 01 00 8200 call 05 cf1h ; e8 cb fe8528 call 05e33h ; e8 cb fe 8201 8529 and byte [bp+01ch], 0feh ; 80 66 1c fe 8202 8530 mov byte [bp+017h], dh ; 88 76 17 8203 jmp near 05 e85h ; e9 55 008531 jmp near 05fc7h ; e9 55 00 8204 8532 mov dx, 00092h ; ba 92 00 8205 8533 in AL, DX ; ec … … 8213 8541 and byte [bp+01ch], 0feh ; 80 66 1c fe 8214 8542 mov byte [bp+017h], ah ; 88 66 17 8215 jmp near 05 e85h ; e9 38 008543 jmp near 05fc7h ; e9 38 00 8216 8544 and byte [bp+01ch], 0feh ; 80 66 1c fe 8217 8545 mov byte [bp+017h], ah ; 88 66 17 8218 8546 mov word [bp+010h], ax ; 89 46 10 8219 jmp near 05 e85h ; e9 2b 008220 mov bx, 00c d6h ; bb d60c8547 jmp near 05fc7h ; e9 2b 00 8548 mov bx, 00cech ; bb ec 0c 8221 8549 mov cx, ds ; 8c d9 8222 8550 mov ax, strict word 00004h ; b8 04 00 8223 call 018aeh ; e8 49 ba8551 call 018aeh ; e8 07 b9 8224 8552 mov ax, word [bp+016h] ; 8b 46 16 8225 8553 xor ah, ah ; 30 e4 … … 8227 8555 push 007c4h ; 68 c4 07 8228 8556 push strict byte 00004h ; 6a 04 8229 call 018e9h ; e8 76 ba8557 call 018e9h ; e8 34 b9 8230 8558 add sp, strict byte 00006h ; 83 c4 06 8231 8559 or byte [bp+01ch], 001h ; 80 4e 1c 01 … … 8239 8567 retn ; c3 8240 8568 mov word [bp+01ch], bx ; 89 5e 1c 8241 jmp near 0 5f35h ; e9 a6 008569 jmp near 06077h ; e9 a6 00 8242 8570 mov word [bp+01ch], bx ; 89 5e 1c 8243 jmp short 05 e85h ; eb f18571 jmp short 05fc7h ; eb f1 8244 8572 mov word [bp+01ch], cx ; 89 4e 1c 8245 jmp short 05 e82h ; eb e98573 jmp short 05fc4h ; eb e9 8246 8574 test byte [bp+016h], 0ffh ; f6 46 16 ff 8247 je short 0 5f0bh ; 74 6c8575 je short 0604dh ; 74 6c 8248 8576 mov dx, 000a0h ; ba a0 00 8249 8577 mov ax, strict word 00040h ; b8 40 00 8250 call 01600h ; e8 58 b78578 call 01600h ; e8 16 b6 8251 8579 test AL, strict byte 001h ; a8 01 8252 jne near 06 1e1h ; 0f 85 33 038580 jne near 06323h ; 0f 85 33 03 8253 8581 mov bx, strict word 00001h ; bb 01 00 8254 8582 mov dx, 000a0h ; ba a0 00 8255 8583 mov ax, strict word 00040h ; b8 40 00 8256 call 0160eh ; e8 54 b78584 call 0160eh ; e8 12 b6 8257 8585 mov bx, word [bp+018h] ; 8b 5e 18 8258 8586 mov dx, 00098h ; ba 98 00 8259 8587 mov ax, strict word 00040h ; b8 40 00 8260 call 0162ah ; e8 64 b78588 call 0162ah ; e8 22 b6 8261 8589 mov bx, word [bp+010h] ; 8b 5e 10 8262 8590 mov dx, 0009ah ; ba 9a 00 8263 8591 mov ax, strict word 00040h ; b8 40 00 8264 call 0162ah ; e8 58 b78592 call 0162ah ; e8 16 b6 8265 8593 mov bx, word [bp+012h] ; 8b 5e 12 8266 8594 mov dx, 0009ch ; ba 9c 00 8267 8595 mov ax, strict word 00040h ; b8 40 00 8268 call 0162ah ; e8 4c b78596 call 0162ah ; e8 0a b6 8269 8597 mov bx, word [bp+014h] ; 8b 5e 14 8270 8598 mov dx, 0009eh ; ba 9e 00 8271 8599 mov ax, strict word 00040h ; b8 40 00 8272 call 0162ah ; e8 40 b78600 call 0162ah ; e8 fe b5 8273 8601 and byte [bp+01ch], 0feh ; 80 66 1c fe 8274 8602 mov dx, 000a1h ; ba a1 00 … … 8279 8607 out DX, AL ; ee 8280 8608 mov ax, strict word 0000bh ; b8 0b 00 8281 call 0165ch ; e8 5f b78609 call 0165ch ; e8 1d b6 8282 8610 or AL, strict byte 040h ; 0c 40 8283 8611 movzx dx, al ; 0f b6 d0 8284 8612 mov ax, strict word 0000bh ; b8 0b 00 8285 call 0166dh ; e8 65 b78286 jmp near 05 e85h ; e9 7a ff8613 call 0166dh ; e8 23 b6 8614 jmp near 05fc7h ; e9 7a ff 8287 8615 cmp ax, strict word 00001h ; 3d 01 00 8288 jne short 0 5f29h ; 75 198616 jne short 0606bh ; 75 19 8289 8617 xor bx, bx ; 31 db 8290 8618 mov dx, 000a0h ; ba a0 00 8291 8619 mov ax, strict word 00040h ; b8 40 00 8292 call 0160eh ; e8 f3 b68620 call 0160eh ; e8 b1 b5 8293 8621 and byte [bp+01ch], 0feh ; 80 66 1c fe 8294 8622 mov ax, strict word 0000bh ; b8 0b 00 8295 call 0165ch ; e8 37 b78623 call 0165ch ; e8 f5 b5 8296 8624 and AL, strict byte 0bfh ; 24 bf 8297 jmp short 0 5effh ; eb d68625 jmp short 06041h ; eb d6 8298 8626 mov word [bp+01ch], bx ; 89 5e 1c 8299 8627 mov ax, dx ; 89 d0 … … 8303 8631 or dx, ax ; 09 c2 8304 8632 mov word [bp+016h], dx ; 89 56 16 8305 jmp near 05 e85h ; e9 4a ff8633 jmp near 05fc7h ; e9 4a ff 8306 8634 cli ; fa 8307 8635 mov ax, strict word 00001h ; b8 01 00 8308 call 05 cf1h ; e8 af fd8636 call 05e33h ; e8 af fd 8309 8637 mov di, ax ; 89 c7 8310 8638 mov ax, word [bp+018h] ; 8b 46 18 … … 8316 8644 mov byte [bp-002h], dl ; 88 56 fe 8317 8645 cmp cx, ax ; 39 c1 8318 jnc short 0 5f61h ; 73 058646 jnc short 060a3h ; 73 05 8319 8647 db 0feh, 0c2h 8320 8648 ; inc dl ; fe c2 … … 8324 8652 mov ax, word [bp+018h] ; 8b 46 18 8325 8653 mov bx, strict word 0002fh ; bb 2f 00 8326 call 0162ah ; e8 ba b68654 call 0162ah ; e8 78 b5 8327 8655 mov dx, word [bp+00ah] ; 8b 56 0a 8328 8656 add dx, strict byte 0000ah ; 83 c2 0a 8329 8657 mov ax, word [bp+018h] ; 8b 46 18 8330 8658 mov bx, cx ; 89 cb 8331 call 0162ah ; e8 ac b68659 call 0162ah ; e8 6a b5 8332 8660 movzx bx, byte [bp-002h] ; 0f b6 5e fe 8333 8661 mov dx, word [bp+00ah] ; 8b 56 0a 8334 8662 add dx, strict byte 0000ch ; 83 c2 0c 8335 8663 mov ax, word [bp+018h] ; 8b 46 18 8336 call 0160eh ; e8 80 b68664 call 0160eh ; e8 3e b5 8337 8665 mov dx, word [bp+00ah] ; 8b 56 0a 8338 8666 add dx, strict byte 0000dh ; 83 c2 0d 8339 8667 mov ax, word [bp+018h] ; 8b 46 18 8340 8668 mov bx, 00093h ; bb 93 00 8341 call 0160eh ; e8 71 b68669 call 0160eh ; e8 2f b5 8342 8670 mov dx, word [bp+00ah] ; 8b 56 0a 8343 8671 add dx, strict byte 0000eh ; 83 c2 0e 8344 8672 mov ax, word [bp+018h] ; 8b 46 18 8345 8673 xor bx, bx ; 31 db 8346 call 0162ah ; e8 7f b68674 call 0162ah ; e8 3d b5 8347 8675 mov dx, word [bp+00ah] ; 8b 56 0a 8348 8676 add dx, strict byte 00020h ; 83 c2 20 8349 8677 mov ax, word [bp+018h] ; 8b 46 18 8350 8678 mov bx, strict word 0ffffh ; bb ff ff 8351 call 0162ah ; e8 70 b68679 call 0162ah ; e8 2e b5 8352 8680 mov dx, word [bp+00ah] ; 8b 56 0a 8353 8681 add dx, strict byte 00022h ; 83 c2 22 8354 8682 mov ax, word [bp+018h] ; 8b 46 18 8355 8683 xor bx, bx ; 31 db 8356 call 0162ah ; e8 62 b68684 call 0162ah ; e8 20 b5 8357 8685 mov dx, word [bp+00ah] ; 8b 56 0a 8358 8686 add dx, strict byte 00024h ; 83 c2 24 8359 8687 mov ax, word [bp+018h] ; 8b 46 18 8360 8688 mov bx, strict word 0000fh ; bb 0f 00 8361 call 0160eh ; e8 37 b68689 call 0160eh ; e8 f5 b4 8362 8690 mov dx, word [bp+00ah] ; 8b 56 0a 8363 8691 add dx, strict byte 00025h ; 83 c2 25 8364 8692 mov ax, word [bp+018h] ; 8b 46 18 8365 8693 mov bx, 0009bh ; bb 9b 00 8366 call 0160eh ; e8 28 b68694 call 0160eh ; e8 e6 b4 8367 8695 mov dx, word [bp+00ah] ; 8b 56 0a 8368 8696 add dx, strict byte 00026h ; 83 c2 26 8369 8697 mov ax, word [bp+018h] ; 8b 46 18 8370 8698 xor bx, bx ; 31 db 8371 call 0162ah ; e8 36 b68699 call 0162ah ; e8 f4 b4 8372 8700 mov ax, ss ; 8c d0 8373 8701 mov cx, ax ; 89 c1 … … 8379 8707 mov ax, word [bp+018h] ; 8b 46 18 8380 8708 mov bx, strict word 0ffffh ; bb ff ff 8381 call 0162ah ; e8 1a b68709 call 0162ah ; e8 d8 b4 8382 8710 mov dx, word [bp+00ah] ; 8b 56 0a 8383 8711 add dx, strict byte 0002ah ; 83 c2 2a 8384 8712 mov ax, word [bp+018h] ; 8b 46 18 8385 8713 mov bx, cx ; 89 cb 8386 call 0162ah ; e8 0c b68714 call 0162ah ; e8 ca b4 8387 8715 movzx bx, byte [bp-004h] ; 0f b6 5e fc 8388 8716 mov dx, word [bp+00ah] ; 8b 56 0a 8389 8717 add dx, strict byte 0002ch ; 83 c2 2c 8390 8718 mov ax, word [bp+018h] ; 8b 46 18 8391 call 0160eh ; e8 e0 b58719 call 0160eh ; e8 9e b4 8392 8720 mov dx, word [bp+00ah] ; 8b 56 0a 8393 8721 add dx, strict byte 0002dh ; 83 c2 2d 8394 8722 mov ax, word [bp+018h] ; 8b 46 18 8395 8723 mov bx, 00093h ; bb 93 00 8396 call 0160eh ; e8 d1 b58724 call 0160eh ; e8 8f b4 8397 8725 mov dx, word [bp+00ah] ; 8b 56 0a 8398 8726 add dx, strict byte 0002eh ; 83 c2 2e 8399 8727 mov ax, word [bp+018h] ; 8b 46 18 8400 8728 xor bx, bx ; 31 db 8401 call 0162ah ; e8 df b58729 call 0162ah ; e8 9d b4 8402 8730 mov si, word [bp+00ah] ; 8b 76 0a 8403 8731 mov es, [bp+018h] ; 8e 46 18 … … 8410 8738 mov word [00467h], sp ; 89 26 67 04 8411 8739 mov [00469h], ss ; 8c 16 69 04 8412 call 06 067h ; e8 00 008740 call 061a9h ; e8 00 00 8413 8741 pop di ; 5f 8414 8742 add di, strict byte 0001bh ; 83 c7 1b … … 8433 8761 cld ; fc 8434 8762 rep movsw ; f3 a5 8435 call 06 09bh ; e8 00 008763 call 061ddh ; e8 00 00 8436 8764 pop ax ; 58 8437 8765 push 0f000h ; 68 00 f0 … … 8454 8782 pop DS ; 1f 8455 8783 mov ax, di ; 89 f8 8456 call 05 cf1h ; e8 25 fc8784 call 05e33h ; e8 25 fc 8457 8785 sti ; fb 8458 8786 mov byte [bp+017h], 000h ; c6 46 17 00 8459 8787 and byte [bp+01ch], 0feh ; 80 66 1c fe 8460 jmp near 05 e85h ; e9 ad fd8788 jmp near 05fc7h ; e9 ad fd 8461 8789 mov ax, strict word 00031h ; b8 31 00 8462 call 0165ch ; e8 7e b58790 call 0165ch ; e8 3c b4 8463 8791 xor ah, ah ; 30 e4 8464 8792 mov dx, ax ; 89 c2 8465 8793 sal dx, 008h ; c1 e2 08 8466 8794 mov ax, strict word 00030h ; b8 30 00 8467 call 0165ch ; e8 71 b58795 call 0165ch ; e8 2f b4 8468 8796 xor ah, ah ; 30 e4 8469 8797 or dx, ax ; 09 c2 8470 8798 mov word [bp+016h], dx ; 89 56 16 8471 8799 cmp dx, strict byte 0ffc0h ; 83 fa c0 8472 jbe short 06 0d1h ; 76 da8800 jbe short 06213h ; 76 da 8473 8801 mov word [bp+016h], strict word 0ffc0h ; c7 46 16 c0 ff 8474 jmp short 06 0d1h ; eb d38802 jmp short 06213h ; eb d3 8475 8803 cli ; fa 8476 8804 mov ax, strict word 00001h ; b8 01 00 8477 call 05 cf1h ; e8 ec fb8805 call 05e33h ; e8 ec fb 8478 8806 mov dx, word [bp+00ah] ; 8b 56 0a 8479 8807 add dx, strict byte 00038h ; 83 c2 38 8480 8808 mov ax, word [bp+018h] ; 8b 46 18 8481 8809 mov bx, strict word 0ffffh ; bb ff ff 8482 call 0162ah ; e8 16 b58810 call 0162ah ; e8 d4 b3 8483 8811 mov dx, word [bp+00ah] ; 8b 56 0a 8484 8812 add dx, strict byte 0003ah ; 83 c2 3a 8485 8813 mov ax, word [bp+018h] ; 8b 46 18 8486 8814 xor bx, bx ; 31 db 8487 call 0162ah ; e8 08 b58815 call 0162ah ; e8 c6 b3 8488 8816 mov dx, word [bp+00ah] ; 8b 56 0a 8489 8817 add dx, strict byte 0003ch ; 83 c2 3c 8490 8818 mov ax, word [bp+018h] ; 8b 46 18 8491 8819 mov bx, strict word 0000fh ; bb 0f 00 8492 call 0160eh ; e8 dd b48820 call 0160eh ; e8 9b b3 8493 8821 mov dx, word [bp+00ah] ; 8b 56 0a 8494 8822 add dx, strict byte 0003dh ; 83 c2 3d 8495 8823 mov ax, word [bp+018h] ; 8b 46 18 8496 8824 mov bx, 0009bh ; bb 9b 00 8497 call 0160eh ; e8 ce b48825 call 0160eh ; e8 8c b3 8498 8826 mov dx, word [bp+00ah] ; 8b 56 0a 8499 8827 add dx, strict byte 0003eh ; 83 c2 3e 8500 8828 mov ax, word [bp+018h] ; 8b 46 18 8501 8829 xor bx, bx ; 31 db 8502 call 0162ah ; e8 dc b48830 call 0162ah ; e8 9a b3 8503 8831 mov AL, strict byte 011h ; b0 11 8504 8832 mov dx, strict word 00020h ; ba 20 00 … … 8530 8858 out DX, AL ; ee 8531 8859 mov si, word [bp+00ah] ; 8b 76 0a 8532 call 06 18fh ; e8 00 008860 call 062d1h ; e8 00 00 8533 8861 pop di ; 5f 8534 8862 add di, strict byte 00018h ; 83 c7 18 … … 8558 8886 push cx ; 51 8559 8887 retf ; cb 8560 jmp near 05 e85h ; e9 ba fc8561 mov bx, 00c d6h ; bb d60c8888 jmp near 05fc7h ; e9 ba fc 8889 mov bx, 00cech ; bb ec 0c 8562 8890 mov cx, ds ; 8c d9 8563 8891 mov ax, strict word 00004h ; b8 04 00 8564 call 018aeh ; e8 d8 b68892 call 018aeh ; e8 96 b5 8565 8893 push 00804h ; 68 04 08 8566 8894 push strict byte 00004h ; 6a 04 8567 call 018e9h ; e8 0b b78895 call 018e9h ; e8 c9 b5 8568 8896 add sp, strict byte 00004h ; 83 c4 04 8569 8897 or byte [bp+01ch], 001h ; 80 4e 1c 01 … … 8572 8900 or ah, 086h ; 80 cc 86 8573 8901 mov word [bp+016h], ax ; 89 46 16 8574 jmp near 05 e85h ; e9 92 fc8902 jmp near 05fc7h ; e9 92 fc 8575 8903 mov word [bp+01ch], cx ; 89 4e 1c 8576 8904 mov word [bp+016h], ax ; 89 46 16 8577 8905 mov word [bp+010h], 0e6f5h ; c7 46 10 f5 e6 8578 8906 mov word [bp+018h], 0f000h ; c7 46 18 00 f0 8579 jmp near 05 e85h ; e9 7f fc8907 jmp near 05fc7h ; e9 7f fc 8580 8908 mov dx, strict word 0000eh ; ba 0e 00 8581 8909 mov ax, strict word 00040h ; b8 40 00 8582 call 0161ch ; e8 0d b48910 call 0161ch ; e8 cb b2 8583 8911 mov word [bp+018h], ax ; 89 46 18 8584 jmp near 06 0d1h ; e9 bc fe8912 jmp near 06213h ; e9 bc fe 8585 8913 push 00833h ; 68 33 08 8586 8914 push strict byte 00008h ; 6a 08 8587 jmp short 06 1dbh ; eb bf8915 jmp short 0631dh ; eb bf 8588 8916 test byte [bp+016h], 0ffh ; f6 46 16 ff 8589 jne short 06 241h ; 75 1f8917 jne short 06383h ; 75 1f 8590 8918 mov word [bp+016h], ax ; 89 46 16 8591 8919 mov ax, word [bp+010h] ; 8b 46 10 8592 8920 xor ah, ah ; 30 e4 8593 8921 cmp ax, strict word 00001h ; 3d 01 00 8594 jc short 06 23ah ; 72 0b8922 jc short 0637ch ; 72 0b 8595 8923 cmp ax, strict word 00003h ; 3d 03 00 8596 jnbe short 06 23ah ; 77 068924 jnbe short 0637ch ; 77 06 8597 8925 mov word [bp+01ch], cx ; 89 4e 1c 8598 jmp near 05 e85h ; e9 4b fc8926 jmp near 05fc7h ; e9 4b fc 8599 8927 or byte [bp+01ch], 001h ; 80 4e 1c 01 8600 jmp near 05 e85h ; e9 44 fc8601 mov bx, 00c d6h ; bb d60c8928 jmp near 05fc7h ; e9 44 fc 8929 mov bx, 00cech ; bb ec 0c 8602 8930 mov cx, ds ; 8c d9 8603 8931 mov ax, strict word 00004h ; b8 04 00 8604 call 018aeh ; e8 62 b68932 call 018aeh ; e8 20 b5 8605 8933 push word [bp+010h] ; ff 76 10 8606 8934 push word [bp+016h] ; ff 76 16 8607 8935 push 0084ah ; 68 4a 08 8608 8936 push strict byte 00004h ; 6a 04 8609 call 018e9h ; e8 8f b68937 call 018e9h ; e8 4d b5 8610 8938 add sp, strict byte 00008h ; 83 c4 08 8611 jmp short 061e1h ; eb 82 8612 mov ax, word [0d763h] ; a1 63 d7 8613 arpl cx, di ; 63 f9 8614 arpl word [bp+si], bx ; 63 1a 8615 cmp word [fs:si+058h], sp ; 64 39 64 58 8616 db 064h 8617 db 09ah 8618 db 064h 8619 db 0c7h 8620 db 064h 8621 _int15_function32: ; 0xf626f LB 0x309 8939 jmp short 06323h ; eb 82 8940 jcxz 06407h ; e3 64 8941 sbb word [di+03bh], sp ; 19 65 3b 8942 db 065h, 05ch 8943 ; gs pop sp ; 65 5c 8944 db 065h, 07bh, 065h 8945 ; gs jnp short 06410h ; 65 7b 65 8946 call far 00965h:0dc65h ; 9a 65 dc 65 09 8947 db 066h 8948 _int15_function32: ; 0xf63b1 LB 0x309 8622 8949 push si ; 56 8623 8950 enter 00008h, 000h ; c8 08 00 00 … … 8625 8952 shr ax, 008h ; c1 e8 08 8626 8953 cmp ax, 000e8h ; 3d e8 00 8627 je short 06 2c0h ; 74 418954 je short 06402h ; 74 41 8628 8955 cmp ax, 00086h ; 3d 86 00 8629 jne near 06 54bh ; 0f 85 c5 028956 jne near 0668dh ; 0f 85 c5 02 8630 8957 sti ; fb 8631 8958 mov ax, word [bp+01eh] ; 8b 46 1e … … 8646 8973 db 066h, 00bh, 0c9h 8647 8974 ; or ecx, ecx ; 66 0b c9 8648 je near 06 2bdh ; 0f 84 0e 008975 je near 063ffh ; 0f 84 0e 00 8649 8976 in AL, strict byte 061h ; e4 61 8650 8977 and AL, strict byte 010h ; 24 10 8651 8978 db 03ah, 0c4h 8652 8979 ; cmp al, ah ; 3a c4 8653 je short 06 2afh ; 74 f88980 je short 063f1h ; 74 f8 8654 8981 db 08ah, 0e0h 8655 8982 ; mov ah, al ; 8a e0 8656 8983 dec ecx ; 66 49 8657 jne short 06 2afh ; 75 f28984 jne short 063f1h ; 75 f2 8658 8985 leave ; c9 8659 8986 pop si ; 5e … … 8662 8989 xor ah, ah ; 30 e4 8663 8990 cmp ax, strict word 00020h ; 3d 20 00 8664 je short 06 2d4h ; 74 0a8991 je short 06416h ; 74 0a 8665 8992 cmp ax, strict word 00001h ; 3d 01 00 8666 je near 06 4fdh ; 0f 84 2c 028667 jmp near 06 54bh ; e9 77 028993 je near 0663fh ; 0f 84 2c 02 8994 jmp near 0668dh ; e9 77 02 8668 8995 cmp word [bp+01ch], 0534dh ; 81 7e 1c 4d 53 8669 jne near 06 54bh ; 0f 85 6e 028996 jne near 0668dh ; 0f 85 6e 02 8670 8997 cmp word [bp+01ah], 04150h ; 81 7e 1a 50 41 8671 jne near 06 54bh ; 0f 85 65 028998 jne near 0668dh ; 0f 85 65 02 8672 8999 mov ax, strict word 00035h ; b8 35 00 8673 call 0165ch ; e8 70 b39000 call 0165ch ; e8 2e b2 8674 9001 movzx bx, al ; 0f b6 d8 8675 9002 xor dx, dx ; 31 d2 … … 8677 9004 sal bx, 1 ; d1 e3 8678 9005 rcl dx, 1 ; d1 d2 8679 loop 06 2f4h ; e2 fa9006 loop 06436h ; e2 fa 8680 9007 mov ax, strict word 00034h ; b8 34 00 8681 call 0165ch ; e8 5c b39008 call 0165ch ; e8 1a b2 8682 9009 xor ah, ah ; 30 e4 8683 9010 mov dx, bx ; 89 da … … 8687 9014 adc dx, 00100h ; 81 d2 00 01 8688 9015 cmp dx, 00100h ; 81 fa 00 01 8689 jc short 06 31ah ; 72 068690 jne short 06 347h ; 75 319016 jc short 0645ch ; 72 06 9017 jne short 06489h ; 75 31 8691 9018 test bx, bx ; 85 db 8692 jnbe short 06 347h ; 77 2d9019 jnbe short 06489h ; 77 2d 8693 9020 mov ax, strict word 00031h ; b8 31 00 8694 call 0165ch ; e8 3c b39021 call 0165ch ; e8 fa b1 8695 9022 movzx bx, al ; 0f b6 d8 8696 9023 xor dx, dx ; 31 d2 … … 8698 9025 sal bx, 1 ; d1 e3 8699 9026 rcl dx, 1 ; d1 d2 8700 loop 06 328h ; e2 fa9027 loop 0646ah ; e2 fa 8701 9028 mov ax, strict word 00030h ; b8 30 00 8702 call 0165ch ; e8 28 b39029 call 0165ch ; e8 e6 b1 8703 9030 xor ah, ah ; 30 e4 8704 9031 or bx, ax ; 09 c3 … … 8706 9033 sal bx, 1 ; d1 e3 8707 9034 rcl dx, 1 ; d1 d2 8708 loop 06 33bh ; e2 fa9035 loop 0647dh ; e2 fa 8709 9036 add bx, strict byte 00000h ; 83 c3 00 8710 9037 adc dx, strict byte 00010h ; 83 d2 10 8711 9038 mov ax, strict word 00062h ; b8 62 00 8712 call 0165ch ; e8 0f b39039 call 0165ch ; e8 cd b1 8713 9040 xor ah, ah ; 30 e4 8714 9041 mov word [bp-008h], ax ; 89 46 f8 … … 8718 9045 sal word [bp-008h], 1 ; d1 66 f8 8719 9046 rcl word [bp-006h], 1 ; d1 56 fa 8720 loop 06 35ah ; e2 f89047 loop 0649ch ; e2 f8 8721 9048 mov ax, strict word 00061h ; b8 61 00 8722 call 0165ch ; e8 f4 b29049 call 0165ch ; e8 b2 b1 8723 9050 xor ah, ah ; 30 e4 8724 9051 or word [bp-008h], ax ; 09 46 f8 … … 8727 9054 mov word [bp-008h], strict word 00000h ; c7 46 f8 00 00 8728 9055 mov ax, strict word 00063h ; b8 63 00 8729 call 0165ch ; e8 de b29056 call 0165ch ; e8 9c b1 8730 9057 mov byte [bp-004h], al ; 88 46 fc 8731 9058 mov byte [bp-002h], al ; 88 46 fe 8732 9059 mov ax, word [bp+016h] ; 8b 46 16 8733 9060 cmp ax, strict word 00007h ; 3d 07 00 8734 jnbe near 06 54bh ; 0f 87 bd 019061 jnbe near 0668dh ; 0f 87 bd 01 8735 9062 mov si, ax ; 89 c6 8736 9063 add si, ax ; 01 c6 … … 8739 9066 mov cx, dx ; 89 d1 8740 9067 adc cx, strict byte 0ffffh ; 83 d1 ff 8741 jmp word [cs:si+06 25fh] ; 2e ff a4 5f 629068 jmp word [cs:si+063a1h] ; 2e ff a4 a1 63 8742 9069 push strict byte 00001h ; 6a 01 8743 9070 push dword 000000000h ; 66 6a 00 … … 8748 9075 xor bx, bx ; 31 db 8749 9076 xor cx, cx ; 31 c9 8750 call 05 d1ah ; e8 62 f99077 call 05e5ch ; e8 62 f9 8751 9078 mov dword [bp+016h], strict dword 000000001h ; 66 c7 46 16 01 00 00 00 8752 9079 mov dword [bp+022h], strict dword 0534d4150h ; 66 c7 46 22 50 41 4d 53 … … 8764 9091 mov bx, 0fc00h ; bb 00 fc 8765 9092 mov cx, strict word 00009h ; b9 09 00 8766 call 05 d1ah ; e8 2b f99093 call 05e5ch ; e8 2b f9 8767 9094 mov dword [bp+016h], strict dword 000000002h ; 66 c7 46 16 02 00 00 00 8768 jmp short 06 3c0h ; eb c79095 jmp short 06502h ; eb c7 8769 9096 push strict byte 00002h ; 6a 02 8770 9097 push dword 000000000h ; 66 6a 00 … … 8775 9102 xor bx, bx ; 31 db 8776 9103 mov cx, strict word 0000fh ; b9 0f 00 8777 call 05 d1ah ; e8 0a f99104 call 05e5ch ; e8 0a f9 8778 9105 mov dword [bp+016h], strict dword 000000003h ; 66 c7 46 16 03 00 00 00 8779 jmp short 06 3c0h ; eb a69106 jmp short 06502h ; eb a6 8780 9107 push strict byte 00001h ; 6a 01 8781 9108 push dword 000000000h ; 66 6a 00 … … 8786 9113 xor bx, bx ; 31 db 8787 9114 mov cx, strict word 00010h ; b9 10 00 8788 call 05 d1ah ; e8 eb f89115 call 05e5ch ; e8 eb f8 8789 9116 mov dword [bp+016h], strict dword 000000004h ; 66 c7 46 16 04 00 00 00 8790 jmp short 06 3c0h ; eb 879117 jmp short 06502h ; eb 87 8791 9118 push strict byte 00003h ; 6a 03 8792 9119 push dword 000000000h ; 66 6a 00 … … 8797 9124 mov bx, ax ; 89 c3 8798 9125 mov ax, si ; 89 f0 8799 call 05 d1ah ; e8 cd f89126 call 05e5ch ; e8 cd f8 8800 9127 mov dword [bp+016h], strict dword 000000005h ; 66 c7 46 16 05 00 00 00 8801 jmp near 06 3c0h ; e9 68 ff9128 jmp near 06502h ; e9 68 ff 8802 9129 push strict byte 00002h ; 6a 02 8803 9130 push dword 000000000h ; 66 6a 00 … … 8807 9134 xor bx, bx ; 31 db 8808 9135 mov cx, strict word 0fffch ; b9 fc ff 8809 call 05 d1ah ; e8 ac f89136 call 05e5ch ; e8 ac f8 8810 9137 cmp byte [bp-004h], 000h ; 80 7e fc 00 8811 jne short 06 47bh ; 75 079138 jne short 065bdh ; 75 07 8812 9139 mov ax, word [bp-006h] ; 8b 46 fa 8813 9140 test ax, ax ; 85 c0 8814 je short 06 491h ; 74 169141 je short 065d3h ; 74 16 8815 9142 mov dword [bp+016h], strict dword 000000007h ; 66 c7 46 16 07 00 00 00 8816 jmp near 06 3c0h ; e9 3a ff9143 jmp near 06502h ; e9 3a ff 8817 9144 mov dword [bp+016h], strict dword 000000006h ; 66 c7 46 16 06 00 00 00 8818 jmp near 06 3c0h ; e9 2f ff9145 jmp near 06502h ; e9 2f ff 8819 9146 mov word [bp+016h], ax ; 89 46 16 8820 9147 mov word [bp+018h], ax ; 89 46 18 8821 jmp near 06 3c0h ; e9 26 ff9148 jmp near 06502h ; e9 26 ff 8822 9149 push strict byte 00002h ; 6a 02 8823 9150 push dword 000000000h ; 66 6a 00 … … 8827 9154 xor bx, bx ; 31 db 8828 9155 xor cx, cx ; 31 c9 8829 call 05 d1ah ; e8 6b f89156 call 05e5ch ; e8 6b f8 8830 9157 cmp byte [bp-004h], 000h ; 80 7e fc 00 8831 jne short 06 4bch ; 75 079158 jne short 065feh ; 75 07 8832 9159 mov ax, word [bp-006h] ; 8b 46 fa 8833 9160 test ax, ax ; 85 c0 8834 je short 06 4beh ; 74 028835 jmp short 06 47bh ; eb bd9161 je short 06600h ; 74 02 9162 jmp short 065bdh ; eb bd 8836 9163 mov word [bp+016h], ax ; 89 46 16 8837 9164 mov word [bp+018h], ax ; 89 46 18 8838 jmp near 06 3c0h ; e9 f9 fe9165 jmp near 06502h ; e9 f9 fe 8839 9166 cmp byte [bp-004h], 000h ; 80 7e fc 00 8840 jne short 06 4d5h ; 75 089167 jne short 06617h ; 75 08 8841 9168 cmp word [bp-006h], strict byte 00000h ; 83 7e fa 00 8842 je near 06 3c0h ; 0f 84 eb fe9169 je near 06502h ; 0f 84 eb fe 8843 9170 push strict byte 00001h ; 6a 01 8844 9171 mov al, byte [bp-002h] ; 8a 46 fe … … 8853 9180 xor bx, bx ; 31 db 8854 9181 xor cx, cx ; 31 c9 8855 call 05 d1ah ; e8 28 f89182 call 05e5ch ; e8 28 f8 8856 9183 xor ax, ax ; 31 c0 8857 9184 mov word [bp+016h], ax ; 89 46 16 8858 9185 mov word [bp+018h], ax ; 89 46 18 8859 jmp near 06 3c0h ; e9 c3 fe9186 jmp near 06502h ; e9 c3 fe 8860 9187 and byte [bp+02ah], 0feh ; 80 66 2a fe 8861 9188 mov ax, strict word 00031h ; b8 31 00 8862 call 0165ch ; e8 55 b19189 call 0165ch ; e8 13 b0 8863 9190 xor ah, ah ; 30 e4 8864 9191 mov dx, ax ; 89 c2 8865 9192 sal dx, 008h ; c1 e2 08 8866 9193 mov ax, strict word 00030h ; b8 30 00 8867 call 0165ch ; e8 48 b19194 call 0165ch ; e8 06 b0 8868 9195 xor ah, ah ; 30 e4 8869 9196 or dx, ax ; 09 c2 8870 9197 mov word [bp+01eh], dx ; 89 56 1e 8871 9198 cmp dx, 03c00h ; 81 fa 00 3c 8872 jbe short 06 526h ; 76 059199 jbe short 06668h ; 76 05 8873 9200 mov word [bp+01eh], 03c00h ; c7 46 1e 00 3c 8874 9201 mov ax, strict word 00035h ; b8 35 00 8875 call 0165ch ; e8 30 b19202 call 0165ch ; e8 ee af 8876 9203 movzx dx, al ; 0f b6 d0 8877 9204 sal dx, 008h ; c1 e2 08 8878 9205 mov ax, strict word 00034h ; b8 34 00 8879 call 0165ch ; e8 24 b19206 call 0165ch ; e8 e2 af 8880 9207 xor ah, ah ; 30 e4 8881 9208 or dx, ax ; 09 c2 … … 8887 9214 pop si ; 5e 8888 9215 retn ; c3 8889 mov bx, 00c d6h ; bb d60c9216 mov bx, 00cech ; bb ec 0c 8890 9217 mov cx, ds ; 8c d9 8891 9218 mov ax, strict word 00004h ; b8 04 00 8892 call 018aeh ; e8 58 b39219 call 018aeh ; e8 16 b2 8893 9220 push word [bp+016h] ; ff 76 16 8894 9221 push word [bp+022h] ; ff 76 22 8895 9222 push 0084ah ; 68 4a 08 8896 9223 push strict byte 00004h ; 6a 04 8897 call 018e9h ; e8 85 b39224 call 018e9h ; e8 43 b2 8898 9225 add sp, strict byte 00008h ; 83 c4 08 8899 9226 or byte [bp+02ah], 001h ; 80 4e 2a 01 … … 8905 9232 pop si ; 5e 8906 9233 retn ; c3 8907 init_rtc_: ; 0xf6 578LB 0x259234 init_rtc_: ; 0xf66ba LB 0x25 8908 9235 push dx ; 52 8909 9236 push bp ; 55 … … 8911 9238 mov dx, strict word 00026h ; ba 26 00 8912 9239 mov ax, strict word 0000ah ; b8 0a 00 8913 call 0166dh ; e8 e8 b09240 call 0166dh ; e8 a6 af 8914 9241 mov dx, strict word 00002h ; ba 02 00 8915 9242 mov ax, strict word 0000bh ; b8 0b 00 8916 call 0166dh ; e8 df b09243 call 0166dh ; e8 9d af 8917 9244 mov ax, strict word 0000ch ; b8 0c 00 8918 call 0165ch ; e8 c8 b09245 call 0165ch ; e8 86 af 8919 9246 mov ax, strict word 0000dh ; b8 0d 00 8920 call 0165ch ; e8 c2 b09247 call 0165ch ; e8 80 af 8921 9248 pop bp ; 5d 8922 9249 pop dx ; 5a 8923 9250 retn ; c3 8924 rtc_updating_: ; 0xf6 59dLB 0x1f9251 rtc_updating_: ; 0xf66df LB 0x1f 8925 9252 push dx ; 52 8926 9253 push bp ; 55 … … 8928 9255 mov dx, 061a8h ; ba a8 61 8929 9256 dec dx ; 4a 8930 je short 06 5b6h ; 74 0f9257 je short 066f8h ; 74 0f 8931 9258 mov ax, strict word 0000ah ; b8 0a 00 8932 call 0165ch ; e8 af b09259 call 0165ch ; e8 6d af 8933 9260 test AL, strict byte 080h ; a8 80 8934 jne short 06 5a4h ; 75 f39261 jne short 066e6h ; 75 f3 8935 9262 xor ax, ax ; 31 c0 8936 9263 pop bp ; 5d … … 8941 9268 pop dx ; 5a 8942 9269 retn ; c3 8943 _int70_function: ; 0xf6 5bcLB 0xbb9270 _int70_function: ; 0xf66fe LB 0xbb 8944 9271 push si ; 56 8945 9272 enter 00002h, 000h ; c8 02 00 00 8946 9273 mov ax, strict word 0000bh ; b8 0b 00 8947 call 0165ch ; e8 95 b09274 call 0165ch ; e8 53 af 8948 9275 mov dl, al ; 88 c2 8949 9276 mov byte [bp-002h], al ; 88 46 fe 8950 9277 mov ax, strict word 0000ch ; b8 0c 00 8951 call 0165ch ; e8 8a b09278 call 0165ch ; e8 48 af 8952 9279 mov dh, al ; 88 c6 8953 9280 test dl, 060h ; f6 c2 60 8954 je near 06 661h ; 0f 84 86 009281 je near 067a3h ; 0f 84 86 00 8955 9282 test AL, strict byte 020h ; a8 20 8956 je short 06 5e3h ; 74 049283 je short 06725h ; 74 04 8957 9284 sti ; fb 8958 9285 int 04ah ; cd 4a 8959 9286 cli ; fa 8960 9287 test dh, 040h ; f6 c6 40 8961 je near 06 661h ; 0f 84 77 009288 je near 067a3h ; 0f 84 77 00 8962 9289 mov dx, 000a0h ; ba a0 00 8963 9290 mov ax, strict word 00040h ; b8 40 00 8964 call 01600h ; e8 0d b09291 call 01600h ; e8 cb ae 8965 9292 test al, al ; 84 c0 8966 je short 06 661h ; 74 6a9293 je short 067a3h ; 74 6a 8967 9294 mov dx, 0009ch ; ba 9c 00 8968 9295 mov ax, strict word 00040h ; b8 40 00 8969 call 01638h ; e8 38 b09296 call 01638h ; e8 f6 ae 8970 9297 test dx, dx ; 85 d2 8971 jne short 06 64dh ; 75 499298 jne short 0678fh ; 75 49 8972 9299 cmp ax, 003d1h ; 3d d1 03 8973 jnc short 06 64dh ; 73 449300 jnc short 0678fh ; 73 44 8974 9301 mov dx, 00098h ; ba 98 00 8975 9302 mov ax, strict word 00040h ; b8 40 00 8976 call 0161ch ; e8 0a b09303 call 0161ch ; e8 c8 ae 8977 9304 mov si, ax ; 89 c6 8978 9305 mov dx, 0009ah ; ba 9a 00 8979 9306 mov ax, strict word 00040h ; b8 40 00 8980 call 0161ch ; e8 ff af9307 call 0161ch ; e8 bd ae 8981 9308 mov cx, ax ; 89 c1 8982 9309 xor bx, bx ; 31 db 8983 9310 mov dx, 000a0h ; ba a0 00 8984 9311 mov ax, strict word 00040h ; b8 40 00 8985 call 0160eh ; e8 e4 af9312 call 0160eh ; e8 a2 ae 8986 9313 mov al, byte [bp-002h] ; 8a 46 fe 8987 9314 and AL, strict byte 037h ; 24 37 8988 9315 movzx dx, al ; 0f b6 d0 8989 9316 mov ax, strict word 0000bh ; b8 0b 00 8990 call 0166dh ; e8 35 b09317 call 0166dh ; e8 f3 ae 8991 9318 mov dx, cx ; 89 ca 8992 9319 mov ax, si ; 89 f0 8993 call 01600h ; e8 c1 af9320 call 01600h ; e8 7f ae 8994 9321 or AL, strict byte 080h ; 0c 80 8995 9322 movzx bx, al ; 0f b6 d8 8996 9323 mov dx, cx ; 89 ca 8997 9324 mov ax, si ; 89 f0 8998 call 0160eh ; e8 c3 af8999 jmp short 06 661h ; eb 149325 call 0160eh ; e8 81 ae 9326 jmp short 067a3h ; eb 14 9000 9327 mov bx, ax ; 89 c3 9001 9328 add bx, 0fc2fh ; 81 c3 2f fc … … 9004 9331 mov dx, 0009ch ; ba 9c 00 9005 9332 mov ax, strict word 00040h ; b8 40 00 9006 call 0164ah ; e8 e9 af9007 call 0e03bh ; e8 d7 799333 call 0164ah ; e8 a7 ae 9334 call 0e03bh ; e8 95 78 9008 9335 leave ; c9 9009 9336 pop si ; 5e 9010 9337 retn ; c3 9011 mov fs, [bp-04bh] ; 8e 66 b5 9012 db 066h, 0dah, 066h, 00ch 9013 ; fisub dword [bp+00ch] ; 66 da 66 0c 9014 db 067h, 05ah 9015 ; pop dx ; 67 5a 9016 db 067h, 090h 9017 ; nop ; 67 90 9018 sal byte [edi+027h], CL ; 67 d2 67 27 9019 db 068h 9020 _int1a_function: ; 0xf6677 LB 0x1c0 9338 db 0d0h, 067h, 0f7h, 067h, 01ch, 068h, 04eh, 068h, 09ch, 068h, 0d2h, 068h, 014h, 069h, 069h, 069h 9339 _int1a_function: ; 0xf67b9 LB 0x1c0 9021 9340 push bp ; 55 9022 9341 mov bp, sp ; 89 e5 … … 9024 9343 mov al, byte [bp+013h] ; 8a 46 13 9025 9344 cmp AL, strict byte 007h ; 3c 07 9026 jnbe near 06 6b3h ; 0f 87 2f 009345 jnbe near 067f5h ; 0f 87 2f 00 9027 9346 movzx bx, al ; 0f b6 d8 9028 9347 add bx, bx ; 01 db 9029 jmp word [cs:bx+06 667h] ; 2e ff a7 67 669348 jmp word [cs:bx+067a9h] ; 2e ff a7 a9 67 9030 9349 cli ; fa 9031 9350 mov bx, 0046eh ; bb 6e 04 … … 9059 9378 pop bp ; 5d 9060 9379 retn ; c3 9061 call 06 59dh ; e8 c0 fe9380 call 066dfh ; e8 c0 fe 9062 9381 test ax, ax ; 85 c0 9063 je short 06 6e3h ; 74 029382 je short 06825h ; 74 02 9064 9383 pop bp ; 5d 9065 9384 retn ; c3 9066 9385 xor ax, ax ; 31 c0 9067 call 0165ch ; e8 74 af9386 call 0165ch ; e8 32 ae 9068 9387 mov byte [bp+00fh], al ; 88 46 0f 9069 9388 mov ax, strict word 00002h ; b8 02 00 9070 call 0165ch ; e8 6b af9389 call 0165ch ; e8 29 ae 9071 9390 mov byte [bp+010h], al ; 88 46 10 9072 9391 mov ax, strict word 00004h ; b8 04 00 9073 call 0165ch ; e8 62 af9392 call 0165ch ; e8 20 ae 9074 9393 mov bl, al ; 88 c3 9075 9394 mov byte [bp+011h], al ; 88 46 11 9076 9395 mov ax, strict word 0000bh ; b8 0b 00 9077 call 0165ch ; e8 57 af9396 call 0165ch ; e8 15 ae 9078 9397 and AL, strict byte 001h ; 24 01 9079 9398 mov byte [bp+00eh], al ; 88 46 0e 9080 jmp short 06 751h ; eb 459081 call 06 59dh ; e8 8e fe9399 jmp short 06893h ; eb 45 9400 call 066dfh ; e8 8e fe 9082 9401 test ax, ax ; 85 c0 9083 je short 06 716h ; 74 039084 call 06 578h ; e8 62 fe9402 je short 06858h ; 74 03 9403 call 066bah ; e8 62 fe 9085 9404 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9086 9405 xor ax, ax ; 31 c0 9087 call 0166dh ; e8 4e af9406 call 0166dh ; e8 0c ae 9088 9407 movzx dx, byte [bp+010h] ; 0f b6 56 10 9089 9408 mov ax, strict word 00002h ; b8 02 00 9090 call 0166dh ; e8 44 af9409 call 0166dh ; e8 02 ae 9091 9410 movzx dx, byte [bp+011h] ; 0f b6 56 11 9092 9411 mov ax, strict word 00004h ; b8 04 00 9093 call 0166dh ; e8 3a af9412 call 0166dh ; e8 f8 ad 9094 9413 mov ax, strict word 0000bh ; b8 0b 00 9095 call 0165ch ; e8 23 af9414 call 0165ch ; e8 e1 ad 9096 9415 mov bl, al ; 88 c3 9097 9416 and bl, 060h ; 80 e3 60 … … 9102 9421 movzx dx, bl ; 0f b6 d3 9103 9422 mov ax, strict word 0000bh ; b8 0b 00 9104 call 0166dh ; e8 1c af9423 call 0166dh ; e8 da ad 9105 9424 mov byte [bp+013h], 000h ; c6 46 13 00 9106 9425 mov byte [bp+012h], bl ; 88 5e 12 … … 9108 9427 retn ; c3 9109 9428 mov byte [bp+013h], 000h ; c6 46 13 00 9110 call 06 59dh ; e8 3c fe9429 call 066dfh ; e8 3c fe 9111 9430 test ax, ax ; 85 c0 9112 je short 06 767h ; 74 029431 je short 068a9h ; 74 02 9113 9432 pop bp ; 5d 9114 9433 retn ; c3 9115 9434 mov ax, strict word 00009h ; b8 09 00 9116 call 0165ch ; e8 ef ae9435 call 0165ch ; e8 ad ad 9117 9436 mov byte [bp+010h], al ; 88 46 10 9118 9437 mov ax, strict word 00008h ; b8 08 00 9119 call 0165ch ; e8 e6 ae9438 call 0165ch ; e8 a4 ad 9120 9439 mov byte [bp+00fh], al ; 88 46 0f 9121 9440 mov ax, strict word 00007h ; b8 07 00 9122 call 0165ch ; e8 dd ae9441 call 0165ch ; e8 9b ad 9123 9442 mov byte [bp+00eh], al ; 88 46 0e 9124 9443 mov ax, strict word 00032h ; b8 32 00 9125 call 0165ch ; e8 d4 ae9444 call 0165ch ; e8 92 ad 9126 9445 mov byte [bp+011h], al ; 88 46 11 9127 9446 mov byte [bp+012h], al ; 88 46 12 9128 9447 pop bp ; 5d 9129 9448 retn ; c3 9130 call 06 59dh ; e8 0a fe9449 call 066dfh ; e8 0a fe 9131 9450 test ax, ax ; 85 c0 9132 je short 06 79ch ; 74 059133 call 06 578h ; e8 de fd9451 je short 068deh ; 74 05 9452 call 066bah ; e8 de fd 9134 9453 pop bp ; 5d 9135 9454 retn ; c3 9136 9455 movzx dx, byte [bp+010h] ; 0f b6 56 10 9137 9456 mov ax, strict word 00009h ; b8 09 00 9138 call 0166dh ; e8 c7 ae9457 call 0166dh ; e8 85 ad 9139 9458 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9140 9459 mov ax, strict word 00008h ; b8 08 00 9141 call 0166dh ; e8 bd ae9460 call 0166dh ; e8 7b ad 9142 9461 movzx dx, byte [bp+00eh] ; 0f b6 56 0e 9143 9462 mov ax, strict word 00007h ; b8 07 00 9144 call 0166dh ; e8 b3 ae9463 call 0166dh ; e8 71 ad 9145 9464 movzx dx, byte [bp+011h] ; 0f b6 56 11 9146 9465 mov ax, strict word 00032h ; b8 32 00 9147 call 0166dh ; e8 a9 ae9466 call 0166dh ; e8 67 ad 9148 9467 mov ax, strict word 0000bh ; b8 0b 00 9149 call 0165ch ; e8 92 ae9468 call 0165ch ; e8 50 ad 9150 9469 mov bl, al ; 88 c3 9151 9470 and bl, 07fh ; 80 e3 7f 9152 jmp near 06 748h ; e9 76 ff9471 jmp near 0688ah ; e9 76 ff 9153 9472 mov ax, strict word 0000bh ; b8 0b 00 9154 call 0165ch ; e8 84 ae9473 call 0165ch ; e8 42 ad 9155 9474 mov bl, al ; 88 c3 9156 9475 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 9157 9476 test AL, strict byte 020h ; a8 20 9158 je short 06 7e5h ; 74 029477 je short 06927h ; 74 02 9159 9478 pop bp ; 5d 9160 9479 retn ; c3 9161 call 06 59dh ; e8 b5 fd9480 call 066dfh ; e8 b5 fd 9162 9481 test ax, ax ; 85 c0 9163 je short 06 7efh ; 74 039164 call 06 578h ; e8 89 fd9482 je short 06931h ; 74 03 9483 call 066bah ; e8 89 fd 9165 9484 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9166 9485 mov ax, strict word 00001h ; b8 01 00 9167 call 0166dh ; e8 74 ae9486 call 0166dh ; e8 32 ad 9168 9487 movzx dx, byte [bp+010h] ; 0f b6 56 10 9169 9488 mov ax, strict word 00003h ; b8 03 00 9170 call 0166dh ; e8 6a ae9489 call 0166dh ; e8 28 ad 9171 9490 movzx dx, byte [bp+011h] ; 0f b6 56 11 9172 9491 mov ax, strict word 00005h ; b8 05 00 9173 call 0166dh ; e8 60 ae9492 call 0166dh ; e8 1e ad 9174 9493 mov dx, 000a1h ; ba a1 00 9175 9494 in AL, DX ; ec … … 9183 9502 movzx dx, al ; 0f b6 d0 9184 9503 mov ax, strict word 0000bh ; b8 0b 00 9185 call 0166dh ; e8 48 ae9504 call 0166dh ; e8 06 ad 9186 9505 pop bp ; 5d 9187 9506 retn ; c3 9188 9507 mov ax, strict word 0000bh ; b8 0b 00 9189 call 0165ch ; e8 2f ae9508 call 0165ch ; e8 ed ac 9190 9509 mov bl, al ; 88 c3 9191 9510 and AL, strict byte 057h ; 24 57 9192 9511 movzx dx, al ; 0f b6 d0 9193 jmp near 06 74bh ; e9 14 ff9194 send_to_mouse_ctrl_: ; 0xf6 837LB 0x319512 jmp near 0688dh ; e9 14 ff 9513 send_to_mouse_ctrl_: ; 0xf6979 LB 0x31 9195 9514 push bx ; 53 9196 9515 push dx ; 52 … … 9203 9522 ; sub ah, ah ; 2a e4 9204 9523 test AL, strict byte 002h ; a8 02 9205 je short 06 856h ; 74 0e9524 je short 06998h ; 74 0e 9206 9525 push 00884h ; 68 84 08 9207 push 010 9eh ; 68 9e109526 push 010b4h ; 68 b4 10 9208 9527 push strict byte 00007h ; 6a 07 9209 call 018e9h ; e8 96 b09528 call 018e9h ; e8 54 af 9210 9529 add sp, strict byte 00006h ; 83 c4 06 9211 9530 mov AL, strict byte 0d4h ; b0 d4 … … 9220 9539 pop bx ; 5b 9221 9540 retn ; c3 9222 get_mouse_data_: ; 0xf6 868LB 0x389541 get_mouse_data_: ; 0xf69aa LB 0x38 9223 9542 push bx ; 53 9224 9543 push cx ; 51 … … 9234 9553 and ax, strict word 00021h ; 25 21 00 9235 9554 cmp ax, strict word 00021h ; 3d 21 00 9236 je short 06 889h ; 74 079555 je short 069cbh ; 74 07 9237 9556 test cx, cx ; 85 c9 9238 je short 06 889h ; 74 039557 je short 069cbh ; 74 03 9239 9558 dec cx ; 49 9240 jmp short 06 874h ; eb eb9559 jmp short 069b6h ; eb eb 9241 9560 test cx, cx ; 85 c9 9242 jne short 06 891h ; 75 049561 jne short 069d3h ; 75 04 9243 9562 mov AL, strict byte 001h ; b0 01 9244 jmp short 06 89ch ; eb 0b9563 jmp short 069deh ; eb 0b 9245 9564 mov dx, strict word 00060h ; ba 60 00 9246 9565 in AL, DX ; ec … … 9253 9572 pop bx ; 5b 9254 9573 retn ; c3 9255 set_kbd_command_byte_: ; 0xf6 8a0LB 0x2f9574 set_kbd_command_byte_: ; 0xf69e2 LB 0x2f 9256 9575 push bx ; 53 9257 9576 push dx ; 52 … … 9264 9583 ; sub ah, ah ; 2a e4 9265 9584 test AL, strict byte 002h ; a8 02 9266 je short 06 8bfh ; 74 0e9585 je short 06a01h ; 74 0e 9267 9586 push 0088eh ; 68 8e 08 9268 push 010 9eh ; 68 9e109587 push 010b4h ; 68 b4 10 9269 9588 push strict byte 00007h ; 6a 07 9270 call 018e9h ; e8 2d b09589 call 018e9h ; e8 eb ae 9271 9590 add sp, strict byte 00006h ; 83 c4 06 9272 9591 mov AL, strict byte 060h ; b0 60 … … 9280 9599 pop bx ; 5b 9281 9600 retn ; c3 9282 _int74_function: ; 0xf6 8cfLB 0xc69601 _int74_function: ; 0xf6a11 LB 0xc6 9283 9602 enter 00008h, 000h ; c8 08 00 00 9284 9603 mov dx, strict word 0000eh ; ba 0e 00 9285 9604 mov ax, strict word 00040h ; b8 40 00 9286 call 0161ch ; e8 40 ad9605 call 0161ch ; e8 fe ab 9287 9606 mov cx, ax ; 89 c1 9288 9607 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 9293 9612 and AL, strict byte 021h ; 24 21 9294 9613 cmp AL, strict byte 021h ; 3c 21 9295 jne near 06 983h ; 0f 85 92 009614 jne near 06ac5h ; 0f 85 92 00 9296 9615 mov dx, strict word 00060h ; ba 60 00 9297 9616 in AL, DX ; ec … … 9301 9620 mov dx, strict word 00026h ; ba 26 00 9302 9621 mov ax, cx ; 89 c8 9303 call 01600h ; e8 ff ac9622 call 01600h ; e8 bd ab 9304 9623 mov byte [bp-006h], al ; 88 46 fa 9305 9624 mov dx, strict word 00027h ; ba 27 00 9306 9625 mov ax, cx ; 89 c8 9307 call 01600h ; e8 f4 ac9626 call 01600h ; e8 b2 ab 9308 9627 mov byte [bp-008h], al ; 88 46 f8 9309 9628 test AL, strict byte 080h ; a8 80 9310 je short 06 983h ; 74 709629 je short 06ac5h ; 74 70 9311 9630 mov al, byte [bp-008h] ; 8a 46 f8 9312 9631 and AL, strict byte 007h ; 24 07 … … 9319 9638 add dx, strict byte 00028h ; 83 c2 28 9320 9639 mov ax, cx ; 89 c8 9321 call 0160eh ; e8 de ac9640 call 0160eh ; e8 9c ab 9322 9641 mov al, byte [bp-004h] ; 8a 46 fc 9323 9642 cmp al, byte [bp-002h] ; 3a 46 fe 9324 jc short 06 974h ; 72 3c9643 jc short 06ab6h ; 72 3c 9325 9644 mov dx, strict word 00028h ; ba 28 00 9326 9645 mov ax, cx ; 89 c8 9327 call 01600h ; e8 c0 ac9646 call 01600h ; e8 7e ab 9328 9647 xor ah, ah ; 30 e4 9329 9648 mov word [bp+00ch], ax ; 89 46 0c 9330 9649 mov dx, strict word 00029h ; ba 29 00 9331 9650 mov ax, cx ; 89 c8 9332 call 01600h ; e8 b3 ac9651 call 01600h ; e8 71 ab 9333 9652 xor ah, ah ; 30 e4 9334 9653 mov word [bp+00ah], ax ; 89 46 0a 9335 9654 mov dx, strict word 0002ah ; ba 2a 00 9336 9655 mov ax, cx ; 89 c8 9337 call 01600h ; e8 a6 ac9656 call 01600h ; e8 64 ab 9338 9657 xor ah, ah ; 30 e4 9339 9658 mov word [bp+008h], ax ; 89 46 08 … … 9342 9661 mov byte [bp-006h], ah ; 88 66 fa 9343 9662 test byte [bp-008h], 080h ; f6 46 f8 80 9344 je short 06 977h ; 74 0a9663 je short 06ab9h ; 74 0a 9345 9664 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 9346 jmp short 06 977h ; eb 039665 jmp short 06ab9h ; eb 03 9347 9666 inc byte [bp-006h] ; fe 46 fa 9348 9667 movzx bx, byte [bp-006h] ; 0f b6 5e fa 9349 9668 mov dx, strict word 00026h ; ba 26 00 9350 9669 mov ax, cx ; 89 c8 9351 call 0160eh ; e8 8b ac9670 call 0160eh ; e8 49 ab 9352 9671 leave ; c9 9353 9672 retn ; c3 9354 xlatb ; d7 9355 imul cx, word [di+06ah], 06ad0h ; 69 4d 6a d0 6a 9356 popaw ; 61 9357 imul cx, di, strict byte 0006bh ; 6b cf 6b 9358 and bp, word [bp+si-009h] ; 23 6a f7 9359 db 06bh 9360 db 0bch 9361 insb ; 6c 9362 _int15_function_mouse: ; 0xf6995 LB 0x386 9673 sbb word [bp+di-071h], bp ; 19 6b 8f 9674 imul dx, word [bp+si], strict byte 0006ch ; 6b 12 6c 9675 mov word [0116ch], ax ; a3 6c 11 9676 insw ; 6d 9677 imul di, word [gs:bx+di], strict byte 0006dh ; 65 6b 39 6d 9678 db 0feh 9679 insw ; 6d 9680 _int15_function_mouse: ; 0xf6ad7 LB 0x386 9363 9681 push si ; 56 9364 9682 enter 00006h, 000h ; c8 06 00 00 9365 9683 mov dx, strict word 0000eh ; ba 0e 00 9366 9684 mov ax, strict word 00040h ; b8 40 00 9367 call 0161ch ; e8 79 ac9685 call 0161ch ; e8 37 ab 9368 9686 mov cx, ax ; 89 c1 9369 9687 cmp byte [bp+014h], 007h ; 80 7e 14 07 9370 jbe short 06 9b6h ; 76 0b9688 jbe short 06af8h ; 76 0b 9371 9689 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9372 9690 mov byte [bp+015h], 001h ; c6 46 15 01 … … 9375 9693 retn ; c3 9376 9694 mov ax, strict word 00065h ; b8 65 00 9377 call 06 8a0h ; e8 e4 fe9695 call 069e2h ; e8 e4 fe 9378 9696 and word [bp+01ah], strict byte 0fffeh ; 83 66 1a fe 9379 9697 mov byte [bp+015h], 000h ; c6 46 15 00 9380 9698 mov al, byte [bp+014h] ; 8a 46 14 9381 9699 cmp AL, strict byte 007h ; 3c 07 9382 jnbe near 06 cffh ; 0f 87 32 039700 jnbe near 06e41h ; 0f 87 32 03 9383 9701 movzx si, al ; 0f b6 f0 9384 9702 add si, si ; 01 f6 9385 jmp word [cs:si+06 985h] ; 2e ff a4 85 699703 jmp word [cs:si+06ac7h] ; 2e ff a4 c7 6a 9386 9704 cmp byte [bp+00fh], 001h ; 80 7e 0f 01 9387 jnbe near 06 d0ah ; 0f 87 2b 039705 jnbe near 06e4ch ; 0f 87 2b 03 9388 9706 mov dx, strict word 00027h ; ba 27 00 9389 9707 mov ax, cx ; 89 c8 9390 call 01600h ; e8 19 ac9708 call 01600h ; e8 d7 aa 9391 9709 test AL, strict byte 080h ; a8 80 9392 jne short 06 9f6h ; 75 0b9710 jne short 06b38h ; 75 0b 9393 9711 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9394 9712 mov byte [bp+015h], 005h ; c6 46 15 05 9395 jmp near 06 d12h ; e9 1c 039713 jmp near 06e54h ; e9 1c 03 9396 9714 cmp byte [bp+00fh], 000h ; 80 7e 0f 00 9397 9715 db 00fh, 094h, 0c0h … … 9399 9717 add AL, strict byte 0f4h ; 04 f4 9400 9718 xor ah, ah ; 30 e4 9401 call 06 837h ; e8 33 fe9719 call 06979h ; e8 33 fe 9402 9720 test al, al ; 84 c0 9403 jne near 06 c98h ; 0f 85 8e 029721 jne near 06ddah ; 0f 85 8e 02 9404 9722 mov dx, ss ; 8c d2 9405 9723 lea ax, [bp-006h] ; 8d 46 fa 9406 call 06 868h ; e8 56 fe9724 call 069aah ; e8 56 fe 9407 9725 test al, al ; 84 c0 9408 je near 06 d12h ; 0f 84 fa 029726 je near 06e54h ; 0f 84 fa 02 9409 9727 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9410 jne near 06 c98h ; 0f 85 78 029411 jmp near 06 d12h ; e9 ef 029728 jne near 06ddah ; 0f 85 78 02 9729 jmp near 06e54h ; e9 ef 02 9412 9730 mov al, byte [bp+00fh] ; 8a 46 0f 9413 9731 cmp AL, strict byte 001h ; 3c 01 9414 jc short 06 a2eh ; 72 049732 jc short 06b70h ; 72 04 9415 9733 cmp AL, strict byte 008h ; 3c 08 9416 jbe short 06 a31h ; 76 039417 jmp near 06 bc4h ; e9 93 019734 jbe short 06b73h ; 76 03 9735 jmp near 06d06h ; e9 93 01 9418 9736 mov dx, strict word 00027h ; ba 27 00 9419 9737 mov ax, cx ; 89 c8 9420 call 01600h ; e8 c7 ab9738 call 01600h ; e8 85 aa 9421 9739 mov ah, byte [bp+00fh] ; 8a 66 0f 9422 9740 db 0feh, 0cch … … 9427 9745 mov dx, strict word 00027h ; ba 27 00 9428 9746 mov ax, cx ; 89 c8 9429 call 0160eh ; e8 c1 ab9747 call 0160eh ; e8 7f aa 9430 9748 mov dx, strict word 00026h ; ba 26 00 9431 9749 mov ax, cx ; 89 c8 9432 call 01600h ; e8 ab ab9750 call 01600h ; e8 69 aa 9433 9751 and AL, strict byte 0f8h ; 24 f8 9434 9752 movzx bx, al ; 0f b6 d8 9435 9753 mov dx, strict word 00026h ; ba 26 00 9436 9754 mov ax, cx ; 89 c8 9437 call 0160eh ; e8 ac ab9755 call 0160eh ; e8 6a aa 9438 9756 mov ax, 000ffh ; b8 ff 00 9439 call 06 837h ; e8 cf fd9757 call 06979h ; e8 cf fd 9440 9758 test al, al ; 84 c0 9441 jne near 06 c98h ; 0f 85 2a 029759 jne near 06ddah ; 0f 85 2a 02 9442 9760 mov dx, ss ; 8c d2 9443 9761 lea ax, [bp-002h] ; 8d 46 fe 9444 call 06 868h ; e8 f2 fd9762 call 069aah ; e8 f2 fd 9445 9763 mov cl, al ; 88 c1 9446 9764 cmp byte [bp-002h], 0feh ; 80 7e fe fe 9447 jne short 06 a89h ; 75 0b9765 jne short 06bcbh ; 75 0b 9448 9766 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9449 9767 mov byte [bp+015h], 004h ; c6 46 15 04 9450 jmp near 06 d12h ; e9 89 029768 jmp near 06e54h ; e9 89 02 9451 9769 cmp byte [bp-002h], 0fah ; 80 7e fe fa 9452 je short 06 a9fh ; 74 109770 je short 06be1h ; 74 10 9453 9771 movzx ax, byte [bp-002h] ; 0f b6 46 fe 9454 9772 push ax ; 50 9455 9773 push 00899h ; 68 99 08 9456 9774 push strict byte 00007h ; 6a 07 9457 call 018e9h ; e8 4d ae9775 call 018e9h ; e8 0b ad 9458 9776 add sp, strict byte 00006h ; 83 c4 06 9459 9777 test cl, cl ; 84 c9 9460 jne near 06 c98h ; 0f 85 f3 019778 jne near 06ddah ; 0f 85 f3 01 9461 9779 mov dx, ss ; 8c d2 9462 9780 lea ax, [bp-006h] ; 8d 46 fa 9463 call 06 868h ; e8 bb fd9781 call 069aah ; e8 bb fd 9464 9782 test al, al ; 84 c0 9465 jne near 06 c98h ; 0f 85 e5 019783 jne near 06ddah ; 0f 85 e5 01 9466 9784 mov dx, ss ; 8c d2 9467 9785 lea ax, [bp-004h] ; 8d 46 fc 9468 call 06 868h ; e8 ad fd9786 call 069aah ; e8 ad fd 9469 9787 test al, al ; 84 c0 9470 jne near 06 c98h ; 0f 85 d7 019788 jne near 06ddah ; 0f 85 d7 01 9471 9789 mov al, byte [bp-006h] ; 8a 46 fa 9472 9790 mov byte [bp+00eh], al ; 88 46 0e 9473 9791 mov al, byte [bp-004h] ; 8a 46 fc 9474 9792 mov byte [bp+00fh], al ; 88 46 0f 9475 jmp near 06 d12h ; e9 42 029793 jmp near 06e54h ; e9 42 02 9476 9794 mov al, byte [bp+00fh] ; 8a 46 0f 9477 9795 cmp AL, strict byte 003h ; 3c 03 9478 jc short 06 ae7h ; 72 109479 jbe short 06 b05h ; 76 2c9796 jc short 06c29h ; 72 10 9797 jbe short 06c47h ; 76 2c 9480 9798 cmp AL, strict byte 006h ; 3c 06 9481 je short 06 b17h ; 74 3a9799 je short 06c59h ; 74 3a 9482 9800 cmp AL, strict byte 005h ; 3c 05 9483 je short 06 b11h ; 74 309801 je short 06c53h ; 74 30 9484 9802 cmp AL, strict byte 004h ; 3c 04 9485 je short 06 b0bh ; 74 269486 jmp short 06 b1dh ; eb 369803 je short 06c4dh ; 74 26 9804 jmp short 06c5fh ; eb 36 9487 9805 cmp AL, strict byte 002h ; 3c 02 9488 je short 06 affh ; 74 149806 je short 06c41h ; 74 14 9489 9807 cmp AL, strict byte 001h ; 3c 01 9490 je short 06 af9h ; 74 0a9808 je short 06c3bh ; 74 0a 9491 9809 test al, al ; 84 c0 9492 jne short 06 b1dh ; 75 2a9810 jne short 06c5fh ; 75 2a 9493 9811 mov byte [bp-006h], 00ah ; c6 46 fa 0a 9494 jmp short 06 b21h ; eb 289812 jmp short 06c63h ; eb 28 9495 9813 mov byte [bp-006h], 014h ; c6 46 fa 14 9496 jmp short 06 b21h ; eb 229814 jmp short 06c63h ; eb 22 9497 9815 mov byte [bp-006h], 028h ; c6 46 fa 28 9498 jmp short 06 b21h ; eb 1c9816 jmp short 06c63h ; eb 1c 9499 9817 mov byte [bp-006h], 03ch ; c6 46 fa 3c 9500 jmp short 06 b21h ; eb 169818 jmp short 06c63h ; eb 16 9501 9819 mov byte [bp-006h], 050h ; c6 46 fa 50 9502 jmp short 06 b21h ; eb 109820 jmp short 06c63h ; eb 10 9503 9821 mov byte [bp-006h], 064h ; c6 46 fa 64 9504 jmp short 06 b21h ; eb 0a9822 jmp short 06c63h ; eb 0a 9505 9823 mov byte [bp-006h], 0c8h ; c6 46 fa c8 9506 jmp short 06 b21h ; eb 049824 jmp short 06c63h ; eb 04 9507 9825 mov byte [bp-006h], 000h ; c6 46 fa 00 9508 9826 cmp byte [bp-006h], 000h ; 80 7e fa 00 9509 jbe short 06 b56h ; 76 2f9827 jbe short 06c98h ; 76 2f 9510 9828 mov ax, 000f3h ; b8 f3 00 9511 call 06 837h ; e8 0a fd9829 call 06979h ; e8 0a fd 9512 9830 test al, al ; 84 c0 9513 jne short 06 b4bh ; 75 1a9831 jne short 06c8dh ; 75 1a 9514 9832 mov dx, ss ; 8c d2 9515 9833 lea ax, [bp-004h] ; 8d 46 fc 9516 call 06 868h ; e8 2f fd9834 call 069aah ; e8 2f fd 9517 9835 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9518 call 06 837h ; e8 f7 fc9836 call 06979h ; e8 f7 fc 9519 9837 mov dx, ss ; 8c d2 9520 9838 lea ax, [bp-004h] ; 8d 46 fc 9521 call 06 868h ; e8 20 fd9522 jmp near 06 d12h ; e9 c7 019839 call 069aah ; e8 20 fd 9840 jmp near 06e54h ; e9 c7 01 9523 9841 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9524 9842 mov byte [bp+015h], 003h ; c6 46 15 03 9525 jmp near 06 d12h ; e9 bc 019843 jmp near 06e54h ; e9 bc 01 9526 9844 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9527 9845 mov byte [bp+015h], 002h ; c6 46 15 02 9528 jmp near 06 d12h ; e9 b1 019846 jmp near 06e54h ; e9 b1 01 9529 9847 cmp byte [bp+00fh], 004h ; 80 7e 0f 04 9530 jnc short 06 bc4h ; 73 5d9848 jnc short 06d06h ; 73 5d 9531 9849 mov ax, 000e8h ; b8 e8 00 9532 call 06 837h ; e8 ca fc9850 call 06979h ; e8 ca fc 9533 9851 test al, al ; 84 c0 9534 jne short 06 bb9h ; 75 489852 jne short 06cfbh ; 75 48 9535 9853 mov dx, ss ; 8c d2 9536 9854 lea ax, [bp-006h] ; 8d 46 fa 9537 call 06 868h ; e8 ef fc9855 call 069aah ; e8 ef fc 9538 9856 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9539 je short 06 b8fh ; 74 109857 je short 06cd1h ; 74 10 9540 9858 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9541 9859 push ax ; 50 9542 9860 push 008c4h ; 68 c4 08 9543 9861 push strict byte 00007h ; 6a 07 9544 call 018e9h ; e8 5d ad9862 call 018e9h ; e8 1b ac 9545 9863 add sp, strict byte 00006h ; 83 c4 06 9546 9864 movzx ax, byte [bp+00fh] ; 0f b6 46 0f 9547 call 06 837h ; e8 a1 fc9865 call 06979h ; e8 a1 fc 9548 9866 mov dx, ss ; 8c d2 9549 9867 lea ax, [bp-006h] ; 8d 46 fa 9550 call 06 868h ; e8 ca fc9868 call 069aah ; e8 ca fc 9551 9869 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9552 je near 06 d12h ; 0f 84 6c 019870 je near 06e54h ; 0f 84 6c 01 9553 9871 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9554 9872 push ax ; 50 9555 9873 push 008c4h ; 68 c4 08 9556 9874 push strict byte 00007h ; 6a 07 9557 call 018e9h ; e8 36 ad9875 call 018e9h ; e8 f4 ab 9558 9876 add sp, strict byte 00006h ; 83 c4 06 9559 jmp near 06 d12h ; e9 59 019877 jmp near 06e54h ; e9 59 01 9560 9878 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9561 9879 mov byte [bp+015h], 003h ; c6 46 15 03 9562 jmp near 06 d12h ; e9 4e 019880 jmp near 06e54h ; e9 4e 01 9563 9881 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9564 9882 mov byte [bp+015h], 002h ; c6 46 15 02 9565 jmp near 06 d12h ; e9 43 019883 jmp near 06e54h ; e9 43 01 9566 9884 mov ax, 000f2h ; b8 f2 00 9567 call 06 837h ; e8 62 fc9885 call 06979h ; e8 62 fc 9568 9886 test al, al ; 84 c0 9569 jne short 06 bech ; 75 139887 jne short 06d2eh ; 75 13 9570 9888 mov dx, ss ; 8c d2 9571 9889 lea ax, [bp-006h] ; 8d 46 fa 9572 call 06 868h ; e8 87 fc9890 call 069aah ; e8 87 fc 9573 9891 mov dx, ss ; 8c d2 9574 9892 lea ax, [bp-004h] ; 8d 46 fc 9575 call 06 868h ; e8 7f fc9576 jmp near 06 ac7h ; e9 db fe9893 call 069aah ; e8 7f fc 9894 jmp near 06c09h ; e9 db fe 9577 9895 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9578 9896 mov byte [bp+015h], 003h ; c6 46 15 03 9579 jmp near 06 d12h ; e9 1b 019897 jmp near 06e54h ; e9 1b 01 9580 9898 mov al, byte [bp+00fh] ; 8a 46 0f 9581 9899 test al, al ; 84 c0 9582 jbe short 06 c05h ; 76 079900 jbe short 06d47h ; 76 07 9583 9901 cmp AL, strict byte 002h ; 3c 02 9584 jbe short 06 c6eh ; 76 6c9585 jmp near 06 ca2h ; e9 9d 009902 jbe short 06db0h ; 76 6c 9903 jmp near 06de4h ; e9 9d 00 9586 9904 mov ax, 000e9h ; b8 e9 00 9587 call 06 837h ; e8 2c fc9905 call 06979h ; e8 2c fc 9588 9906 test al, al ; 84 c0 9589 jne near 06 c98h ; 0f 85 87 009907 jne near 06ddah ; 0f 85 87 00 9590 9908 mov dx, ss ; 8c d2 9591 9909 lea ax, [bp-006h] ; 8d 46 fa 9592 call 06 868h ; e8 4f fc9910 call 069aah ; e8 4f fc 9593 9911 mov cl, al ; 88 c1 9594 9912 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9595 je short 06 c31h ; 74 109913 je short 06d73h ; 74 10 9596 9914 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9597 9915 push ax ; 50 9598 9916 push 008c4h ; 68 c4 08 9599 9917 push strict byte 00007h ; 6a 07 9600 call 018e9h ; e8 bb ac9918 call 018e9h ; e8 79 ab 9601 9919 add sp, strict byte 00006h ; 83 c4 06 9602 9920 test cl, cl ; 84 c9 9603 jne short 06 c98h ; 75 639921 jne short 06ddah ; 75 63 9604 9922 mov dx, ss ; 8c d2 9605 9923 lea ax, [bp-006h] ; 8d 46 fa 9606 call 06 868h ; e8 2b fc9924 call 069aah ; e8 2b fc 9607 9925 test al, al ; 84 c0 9608 jne short 06 c98h ; 75 579926 jne short 06ddah ; 75 57 9609 9927 mov dx, ss ; 8c d2 9610 9928 lea ax, [bp-004h] ; 8d 46 fc 9611 call 06 868h ; e8 1f fc9929 call 069aah ; e8 1f fc 9612 9930 test al, al ; 84 c0 9613 jne short 06 c98h ; 75 4b9931 jne short 06ddah ; 75 4b 9614 9932 mov dx, ss ; 8c d2 9615 9933 lea ax, [bp-002h] ; 8d 46 fe 9616 call 06 868h ; e8 13 fc9934 call 069aah ; e8 13 fc 9617 9935 test al, al ; 84 c0 9618 jne short 06 c98h ; 75 3f9936 jne short 06ddah ; 75 3f 9619 9937 mov al, byte [bp-006h] ; 8a 46 fa 9620 9938 mov byte [bp+00eh], al ; 88 46 0e … … 9623 9941 mov al, byte [bp-002h] ; 8a 46 fe 9624 9942 mov byte [bp+010h], al ; 88 46 10 9625 jmp near 06 d12h ; e9 a4 009943 jmp near 06e54h ; e9 a4 00 9626 9944 cmp AL, strict byte 001h ; 3c 01 9627 jne short 06 c77h ; 75 059945 jne short 06db9h ; 75 05 9628 9946 mov ax, 000e6h ; b8 e6 00 9629 jmp short 06 c7ah ; eb 039947 jmp short 06dbch ; eb 03 9630 9948 mov ax, 000e7h ; b8 e7 00 9631 call 06 837h ; e8 ba fb9949 call 06979h ; e8 ba fb 9632 9950 mov cl, al ; 88 c1 9633 9951 test cl, cl ; 84 c9 9634 jne short 06 c92h ; 75 0f9952 jne short 06dd4h ; 75 0f 9635 9953 mov dx, ss ; 8c d2 9636 9954 lea ax, [bp-006h] ; 8d 46 fa 9637 call 06 868h ; e8 dd fb9955 call 069aah ; e8 dd fb 9638 9956 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9639 9957 db 00fh, 095h, 0c1h 9640 9958 ; setne cl ; 0f 95 c1 9641 9959 test cl, cl ; 84 c9 9642 je near 06 d12h ; 0f 84 7a 009960 je near 06e54h ; 0f 84 7a 00 9643 9961 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9644 9962 mov byte [bp+015h], 003h ; c6 46 15 03 9645 jmp short 06 d12h ; eb 709963 jmp short 06e54h ; eb 70 9646 9964 movzx ax, byte [bp+00fh] ; 0f b6 46 0f 9647 9965 push ax ; 50 9648 9966 push 008f0h ; 68 f0 08 9649 9967 push strict byte 00007h ; 6a 07 9650 call 018e9h ; e8 3a ac9968 call 018e9h ; e8 f8 aa 9651 9969 add sp, strict byte 00006h ; 83 c4 06 9652 9970 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9653 9971 mov byte [bp+015h], 001h ; c6 46 15 01 9654 jmp short 06 d12h ; eb 569972 jmp short 06e54h ; eb 56 9655 9973 mov si, word [bp+00eh] ; 8b 76 0e 9656 9974 mov bx, si ; 89 f3 9657 9975 mov dx, strict word 00022h ; ba 22 00 9658 9976 mov ax, cx ; 89 c8 9659 call 0162ah ; e8 61 a99977 call 0162ah ; e8 1f a8 9660 9978 mov bx, word [bp+016h] ; 8b 5e 16 9661 9979 mov dx, strict word 00024h ; ba 24 00 9662 9980 mov ax, cx ; 89 c8 9663 call 0162ah ; e8 56 a99981 call 0162ah ; e8 14 a8 9664 9982 mov dx, strict word 00027h ; ba 27 00 9665 9983 mov ax, cx ; 89 c8 9666 call 01600h ; e8 24 a99984 call 01600h ; e8 e2 a7 9667 9985 mov ah, al ; 88 c4 9668 9986 test si, si ; 85 f6 9669 jne short 06 cf0h ; 75 0e9987 jne short 06e32h ; 75 0e 9670 9988 cmp word [bp+016h], strict byte 00000h ; 83 7e 16 00 9671 jne short 06 cf0h ; 75 089989 jne short 06e32h ; 75 08 9672 9990 test AL, strict byte 080h ; a8 80 9673 je short 06 cf2h ; 74 069991 je short 06e34h ; 74 06 9674 9992 and AL, strict byte 07fh ; 24 7f 9675 jmp short 06 cf2h ; eb 029993 jmp short 06e34h ; eb 02 9676 9994 or AL, strict byte 080h ; 0c 80 9677 9995 movzx bx, al ; 0f b6 d8 9678 9996 mov dx, strict word 00027h ; ba 27 00 9679 9997 mov ax, cx ; 89 c8 9680 call 0160eh ; e8 11 a99681 jmp short 06 d12h ; eb 139998 call 0160eh ; e8 cf a7 9999 jmp short 06e54h ; eb 13 9682 10000 push 0090ah ; 68 0a 09 9683 10001 push strict byte 00007h ; 6a 07 9684 call 018e9h ; e8 e2 ab10002 call 018e9h ; e8 a0 aa 9685 10003 add sp, strict byte 00004h ; 83 c4 04 9686 10004 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9687 10005 mov byte [bp+015h], 001h ; c6 46 15 01 9688 10006 mov ax, strict word 00047h ; b8 47 00 9689 call 06 8a0h ; e8 88 fb10007 call 069e2h ; e8 88 fb 9690 10008 leave ; c9 9691 10009 pop si ; 5e 9692 10010 retn ; c3 9693 _int17_function: ; 0xf6 d1bLB 0xb110011 _int17_function: ; 0xf6e5d LB 0xb1 9694 10012 push si ; 56 9695 10013 enter 00002h, 000h ; c8 02 00 00 … … 9699 10017 add dx, strict byte 00008h ; 83 c2 08 9700 10018 mov ax, strict word 00040h ; b8 40 00 9701 call 0161ch ; e8 ed a810019 call 0161ch ; e8 ab a7 9702 10020 mov bx, ax ; 89 c3 9703 10021 mov si, ax ; 89 c6 9704 10022 cmp byte [bp+015h], 003h ; 80 7e 15 03 9705 jnc near 06 dc5h ; 0f 83 8a 0010023 jnc near 06f07h ; 0f 83 8a 00 9706 10024 mov ax, word [bp+010h] ; 8b 46 10 9707 10025 cmp ax, strict word 00003h ; 3d 03 00 9708 jnc near 06 dc5h ; 0f 83 80 0010026 jnc near 06f07h ; 0f 83 80 00 9709 10027 test bx, bx ; 85 db 9710 jbe near 06 dc5h ; 0f 86 7a 0010028 jbe near 06f07h ; 0f 86 7a 00 9711 10029 mov dx, ax ; 89 c2 9712 10030 add dx, strict byte 00078h ; 83 c2 78 9713 10031 mov ax, strict word 00040h ; b8 40 00 9714 call 01600h ; e8 aa a810032 call 01600h ; e8 68 a7 9715 10033 movzx cx, al ; 0f b6 c8 9716 10034 sal cx, 008h ; c1 e1 08 9717 10035 cmp byte [bp+015h], 000h ; 80 7e 15 00 9718 jne short 06 d8fh ; 75 2d10036 jne short 06ed1h ; 75 2d 9719 10037 mov al, byte [bp+014h] ; 8a 46 14 9720 10038 mov dx, bx ; 89 da … … 9736 10054 ; sub ah, ah ; 2a e4 9737 10055 test AL, strict byte 040h ; a8 40 9738 je short 06 d8fh ; 74 0710056 je short 06ed1h ; 74 07 9739 10057 test cx, cx ; 85 c9 9740 je short 06 d8fh ; 74 0310058 je short 06ed1h ; 74 03 9741 10059 dec cx ; 49 9742 jmp short 06 d7eh ; eb ef10060 jmp short 06ec0h ; eb ef 9743 10061 cmp byte [bp+015h], 001h ; 80 7e 15 01 9744 jne short 06 dabh ; 75 1610062 jne short 06eedh ; 75 16 9745 10063 lea dx, [si+002h] ; 8d 54 02 9746 10064 in AL, DX ; ec … … 9761 10079 mov byte [bp+015h], al ; 88 46 15 9762 10080 test cx, cx ; 85 c9 9763 jne short 06 dbeh ; 75 0410081 jne short 06f00h ; 75 04 9764 10082 or byte [bp+015h], 001h ; 80 4e 15 01 9765 10083 and byte [bp+01eh], 0feh ; 80 66 1e fe … … 9771 10089 pop si ; 5e 9772 10090 retn ; c3 9773 wait_: ; 0xf6 dccLB 0xad10091 wait_: ; 0xf6f0e LB 0xad 9774 10092 push bx ; 53 9775 10093 push cx ; 51 … … 9787 10105 mov dx, 0046ch ; ba 6c 04 9788 10106 xor ax, ax ; 31 c0 9789 call 01638h ; e8 4b a810107 call 01638h ; e8 09 a7 9790 10108 mov word [bp-006h], ax ; 89 46 fa 9791 10109 mov bx, dx ; 89 d3 … … 9793 10111 mov dx, 0046ch ; ba 6c 04 9794 10112 xor ax, ax ; 31 c0 9795 call 01638h ; e8 3d a810113 call 01638h ; e8 fb a6 9796 10114 mov word [bp-00ah], ax ; 89 46 f6 9797 10115 mov di, dx ; 89 d7 9798 10116 cmp dx, bx ; 39 da 9799 jnbe short 06 e0bh ; 77 079800 jne short 06 e12h ; 75 0c10117 jnbe short 06f4dh ; 77 07 10118 jne short 06f54h ; 75 0c 9801 10119 cmp ax, word [bp-006h] ; 3b 46 fa 9802 jbe short 06 e12h ; 76 0710120 jbe short 06f54h ; 76 07 9803 10121 sub ax, word [bp-006h] ; 2b 46 fa 9804 10122 sbb dx, bx ; 19 da 9805 jmp short 06 e1dh ; eb 0b10123 jmp short 06f5fh ; eb 0b 9806 10124 cmp dx, bx ; 39 da 9807 jc short 06 e1dh ; 72 079808 jne short 06 e21h ; 75 0910125 jc short 06f5fh ; 72 07 10126 jne short 06f63h ; 75 09 9809 10127 cmp ax, word [bp-006h] ; 3b 46 fa 9810 jnc short 06 e21h ; 73 0410128 jnc short 06f63h ; 73 04 9811 10129 sub si, ax ; 29 c6 9812 10130 sbb cx, dx ; 19 d1 … … 9816 10134 mov ax, 00100h ; b8 00 01 9817 10135 int 016h ; cd 16 9818 je near 06 e37h ; 0f 84 05 0010136 je near 06f79h ; 0f 84 05 00 9819 10137 mov AL, strict byte 001h ; b0 01 9820 jmp near 06 e39h ; e9 02 0010138 jmp near 06f7bh ; e9 02 00 9821 10139 db 032h, 0c0h 9822 10140 ; xor al, al ; 32 c0 9823 10141 test al, al ; 84 c0 9824 je short 06 e61h ; 74 2410142 je short 06fa3h ; 74 24 9825 10143 db 033h, 0c0h 9826 10144 ; xor ax, ax ; 33 c0 … … 9833 10151 push 0092ch ; 68 2c 09 9834 10152 push strict byte 00004h ; 6a 04 9835 call 018e9h ; e8 95 aa10153 call 018e9h ; e8 53 a9 9836 10154 add sp, strict byte 00006h ; 83 c4 06 9837 10155 cmp byte [bp-004h], 000h ; 80 7e fc 00 9838 je short 06 e61h ; 74 0410156 je short 06fa3h ; 74 04 9839 10157 mov al, dl ; 88 d0 9840 jmp short 06 e73h ; eb 1210158 jmp short 06fb5h ; eb 12 9841 10159 test cx, cx ; 85 c9 9842 jnle short 06 df2h ; 7f 8d9843 jne short 06 e6bh ; 75 0410160 jnle short 06f34h ; 7f 8d 10161 jne short 06fadh ; 75 04 9844 10162 test si, si ; 85 f6 9845 jnbe short 06 df2h ; 77 8710163 jnbe short 06f34h ; 77 87 9846 10164 mov ax, word [bp-008h] ; 8b 46 f8 9847 10165 push ax ; 50 … … 9854 10172 pop bx ; 5b 9855 10173 retn ; c3 9856 read_logo_byte_: ; 0xf6 e79LB 0x1310174 read_logo_byte_: ; 0xf6fbb LB 0x13 9857 10175 push dx ; 52 9858 10176 push bp ; 55 … … 9868 10186 pop dx ; 5a 9869 10187 retn ; c3 9870 read_logo_word_: ; 0xf6 e8cLB 0x1110188 read_logo_word_: ; 0xf6fce LB 0x11 9871 10189 push dx ; 52 9872 10190 push bp ; 55 … … 9880 10198 pop dx ; 5a 9881 10199 retn ; c3 9882 print_detected_harddisks_: ; 0xf6 e9dLB 0x12c10200 print_detected_harddisks_: ; 0xf6fdf LB 0x12c 9883 10201 push bx ; 53 9884 10202 push cx ; 51 … … 9889 10207 mov dx, strict word 0000eh ; ba 0e 00 9890 10208 mov ax, strict word 00040h ; b8 40 00 9891 call 0161ch ; e8 6d a710209 call 0161ch ; e8 2b a6 9892 10210 mov si, ax ; 89 c6 9893 10211 mov byte [bp-002h], 000h ; c6 46 fe 00 … … 9895 10213 xor ch, ch ; 30 ed 9896 10214 mov dx, 002c0h ; ba c0 02 9897 call 01600h ; e8 41 a710215 call 01600h ; e8 ff a5 9898 10216 mov byte [bp-004h], al ; 88 46 fc 9899 10217 xor bl, bl ; 30 db 9900 10218 cmp bl, byte [bp-004h] ; 3a 5e fc 9901 jnc near 0 6f9eh ; 0f 83 d3 0010219 jnc near 070e0h ; 0f 83 d3 00 9902 10220 movzx dx, bl ; 0f b6 d3 9903 10221 add dx, 002c1h ; 81 c2 c1 02 9904 10222 mov ax, si ; 89 f0 9905 call 01600h ; e8 29 a710223 call 01600h ; e8 e7 a5 9906 10224 mov bh, al ; 88 c7 9907 10225 cmp AL, strict byte 00ch ; 3c 0c 9908 jc short 0 6f01h ; 72 2410226 jc short 07043h ; 72 24 9909 10227 test cl, cl ; 84 c9 9910 jne short 0 6eeeh ; 75 0d10228 jne short 07030h ; 75 0d 9911 10229 push 0093dh ; 68 3d 09 9912 10230 push strict byte 00002h ; 6a 02 9913 call 018e9h ; e8 00 aa10231 call 018e9h ; e8 be a8 9914 10232 add sp, strict byte 00004h ; 83 c4 04 9915 10233 mov CL, strict byte 001h ; b1 01 … … 9919 10237 push 00951h ; 68 51 09 9920 10238 push strict byte 00002h ; 6a 02 9921 call 018e9h ; e8 ee a910239 call 018e9h ; e8 ac a8 9922 10240 add sp, strict byte 00006h ; 83 c4 06 9923 jmp near 0 6f99h ; e9 98 0010241 jmp near 070dbh ; e9 98 00 9924 10242 cmp AL, strict byte 008h ; 3c 08 9925 jc short 0 6f18h ; 72 1310243 jc short 0705ah ; 72 13 9926 10244 test ch, ch ; 84 ed 9927 jne short 0 6f16h ; 75 0d10245 jne short 07058h ; 75 0d 9928 10246 push 00964h ; 68 64 09 9929 10247 push strict byte 00002h ; 6a 02 9930 call 018e9h ; e8 d8 a910248 call 018e9h ; e8 96 a8 9931 10249 add sp, strict byte 00004h ; 83 c4 04 9932 10250 mov CH, strict byte 001h ; b5 01 9933 jmp short 0 6eeeh ; eb d610251 jmp short 07030h ; eb d6 9934 10252 cmp AL, strict byte 004h ; 3c 04 9935 jnc short 0 6f33h ; 73 1710253 jnc short 07075h ; 73 17 9936 10254 cmp byte [bp-002h], 000h ; 80 7e fe 00 9937 jne short 0 6f33h ; 75 1110255 jne short 07075h ; 75 11 9938 10256 push 00978h ; 68 78 09 9939 10257 push strict byte 00002h ; 6a 02 9940 call 018e9h ; e8 bf a910258 call 018e9h ; e8 7d a8 9941 10259 add sp, strict byte 00004h ; 83 c4 04 9942 10260 mov byte [bp-002h], 001h ; c6 46 fe 01 9943 jmp short 0 6f49h ; eb 1610261 jmp short 0708bh ; eb 16 9944 10262 cmp bh, 004h ; 80 ff 04 9945 jc short 0 6f49h ; 72 1110263 jc short 0708bh ; 72 11 9946 10264 test cl, cl ; 84 c9 9947 jne short 0 6f49h ; 75 0d10265 jne short 0708bh ; 75 0d 9948 10266 push 0093dh ; 68 3d 09 9949 10267 push strict byte 00002h ; 6a 02 9950 call 018e9h ; e8 a5 a910268 call 018e9h ; e8 63 a8 9951 10269 add sp, strict byte 00004h ; 83 c4 04 9952 10270 mov CL, strict byte 001h ; b1 01 … … 9956 10274 push 00989h ; 68 89 09 9957 10275 push strict byte 00002h ; 6a 02 9958 call 018e9h ; e8 93 a910276 call 018e9h ; e8 51 a8 9959 10277 add sp, strict byte 00006h ; 83 c4 06 9960 10278 cmp bh, 004h ; 80 ff 04 9961 jc short 0 6f61h ; 72 0310279 jc short 070a3h ; 72 03 9962 10280 sub bh, 004h ; 80 ef 04 9963 10281 movzx ax, bh ; 0f b6 c7 … … 9967 10285 sar ax, 1 ; d1 f8 9968 10286 test ax, ax ; 85 c0 9969 je short 0 6f72h ; 74 0510287 je short 070b4h ; 74 05 9970 10288 push 00993h ; 68 93 09 9971 jmp short 0 6f75h ; eb 0310289 jmp short 070b7h ; eb 03 9972 10290 push 0099eh ; 68 9e 09 9973 10291 push strict byte 00002h ; 6a 02 9974 call 018e9h ; e8 6f a910292 call 018e9h ; e8 2d a8 9975 10293 add sp, strict byte 00004h ; 83 c4 04 9976 10294 movzx ax, bh ; 0f b6 c7 … … 9979 10297 idiv di ; f7 ff 9980 10298 test dx, dx ; 85 d2 9981 je short 0 6f8fh ; 74 0510299 je short 070d1h ; 74 05 9982 10300 push 009a7h ; 68 a7 09 9983 jmp short 0 6f92h ; eb 0310301 jmp short 070d4h ; eb 03 9984 10302 push 009adh ; 68 ad 09 9985 10303 push di ; 57 9986 call 018e9h ; e8 53 a910304 call 018e9h ; e8 11 a8 9987 10305 add sp, strict byte 00004h ; 83 c4 04 9988 10306 db 0feh, 0c3h 9989 10307 ; inc bl ; fe c3 9990 jmp near 0 6ec4h ; e9 26 ff10308 jmp near 07006h ; e9 26 ff 9991 10309 cmp byte [bp-002h], 000h ; 80 7e fe 00 9992 jne short 0 6fb7h ; 75 1310310 jne short 070f9h ; 75 13 9993 10311 test cl, cl ; 84 c9 9994 jne short 0 6fb7h ; 75 0f10312 jne short 070f9h ; 75 0f 9995 10313 test ch, ch ; 84 ed 9996 jne short 0 6fb7h ; 75 0b10314 jne short 070f9h ; 75 0b 9997 10315 push 009b4h ; 68 b4 09 9998 10316 push strict byte 00002h ; 6a 02 9999 call 018e9h ; e8 35 a910317 call 018e9h ; e8 f3 a7 10000 10318 add sp, strict byte 00004h ; 83 c4 04 10001 10319 push 009c8h ; 68 c8 09 10002 10320 push strict byte 00002h ; 6a 02 10003 call 018e9h ; e8 2a a910321 call 018e9h ; e8 e8 a7 10004 10322 add sp, strict byte 00004h ; 83 c4 04 10005 10323 leave ; c9 … … 10010 10328 pop bx ; 5b 10011 10329 retn ; c3 10012 get_boot_drive_: ; 0xf 6fc9LB 0x2510330 get_boot_drive_: ; 0xf710b LB 0x25 10013 10331 push bx ; 53 10014 10332 push dx ; 52 … … 10018 10336 mov dx, strict word 0000eh ; ba 0e 00 10019 10337 mov ax, strict word 00040h ; b8 40 00 10020 call 0161ch ; e8 43 a610338 call 0161ch ; e8 01 a5 10021 10339 mov dx, 002c0h ; ba c0 02 10022 call 01600h ; e8 21 a610340 call 01600h ; e8 df a4 10023 10341 sub bl, 002h ; 80 eb 02 10024 10342 cmp bl, al ; 38 c3 10025 jc short 0 6fe8h ; 72 0210343 jc short 0712ah ; 72 02 10026 10344 mov BL, strict byte 0ffh ; b3 ff 10027 10345 mov al, bl ; 88 d8 … … 10030 10348 pop bx ; 5b 10031 10349 retn ; c3 10032 show_logo_: ; 0xf 6feeLB 0x21f10350 show_logo_: ; 0xf7130 LB 0x21f 10033 10351 push bx ; 53 10034 10352 push cx ; 51 … … 10039 10357 mov dx, strict word 0000eh ; ba 0e 00 10040 10358 mov ax, strict word 00040h ; b8 40 00 10041 call 0161ch ; e8 1c a610359 call 0161ch ; e8 da a4 10042 10360 mov si, ax ; 89 c6 10043 10361 xor cl, cl ; 30 c9 … … 10050 10368 out strict byte 040h, AL ; e6 40 10051 10369 movzx ax, dl ; 0f b6 c2 10052 call 06 e8ch ; e8 74 fe10370 call 06fceh ; e8 74 fe 10053 10371 cmp ax, 066bbh ; 3d bb 66 10054 jne near 07 0f0h ; 0f 85 d1 0010372 jne near 07232h ; 0f 85 d1 00 10055 10373 push SS ; 16 10056 10374 pop ES ; 07 … … 10060 10378 mov word [es:di], bx ; 26 89 1d 10061 10379 cmp ax, strict word 0004fh ; 3d 4f 00 10062 jne near 07 0f0h ; 0f 85 bd 0010380 jne near 07232h ; 0f 85 bd 00 10063 10381 mov al, dl ; 88 d0 10064 10382 add AL, strict byte 004h ; 04 04 10065 10383 xor ah, ah ; 30 e4 10066 call 06 e79h ; e8 3d fe10384 call 06fbbh ; e8 3d fe 10067 10385 mov ch, al ; 88 c5 10068 10386 mov byte [bp-002h], al ; 88 46 fe … … 10070 10388 add AL, strict byte 005h ; 04 05 10071 10389 xor ah, ah ; 30 e4 10072 call 06 e79h ; e8 2f fe10390 call 06fbbh ; e8 2f fe 10073 10391 mov dh, al ; 88 c6 10074 10392 mov byte [bp-006h], al ; 88 46 fa … … 10076 10394 add AL, strict byte 002h ; 04 02 10077 10395 xor ah, ah ; 30 e4 10078 call 06 e8ch ; e8 34 fe10396 call 06fceh ; e8 34 fe 10079 10397 mov bx, ax ; 89 c3 10080 10398 mov word [bp-00ah], ax ; 89 46 f6 … … 10082 10400 add AL, strict byte 006h ; 04 06 10083 10401 xor ah, ah ; 30 e4 10084 call 06 e79h ; e8 13 fe10402 call 06fbbh ; e8 13 fe 10085 10403 mov byte [bp-008h], al ; 88 46 f8 10086 10404 test ch, ch ; 84 ed 10087 jne short 07 077h ; 75 0a10405 jne short 071b9h ; 75 0a 10088 10406 test dh, dh ; 84 f6 10089 jne short 07 077h ; 75 0610407 jne short 071b9h ; 75 06 10090 10408 test bx, bx ; 85 db 10091 je near 07 0f0h ; 0f 84 79 0010409 je near 07232h ; 0f 84 79 00 10092 10410 mov bx, 00142h ; bb 42 01 10093 10411 mov ax, 04f02h ; b8 02 4f 10094 10412 int 010h ; cd 10 10095 10413 cmp byte [bp-002h], 000h ; 80 7e fe 00 10096 je short 07 0a8h ; 74 2310414 je short 071eah ; 74 23 10097 10415 xor bx, bx ; 31 db 10098 jmp short 07 08fh ; eb 0610416 jmp short 071d1h ; eb 06 10099 10417 inc bx ; 43 10100 10418 cmp bx, strict byte 00010h ; 83 fb 10 10101 jnbe short 07 0afh ; 77 2010419 jnbe short 071f1h ; 77 20 10102 10420 mov ax, bx ; 89 d8 10103 10421 or ah, 002h ; 80 cc 02 … … 10106 10424 xor dx, dx ; 31 d2 10107 10425 mov ax, strict word 00001h ; b8 01 00 10108 call 06 dcch ; e8 2c fd10426 call 06f0eh ; e8 2c fd 10109 10427 cmp AL, strict byte 086h ; 3c 86 10110 jne short 07 089h ; 75 e510428 jne short 071cbh ; 75 e5 10111 10429 mov CL, strict byte 001h ; b1 01 10112 jmp short 07 0afh ; eb 0710430 jmp short 071f1h ; eb 07 10113 10431 mov ax, 00210h ; b8 10 02 10114 10432 mov dx, 003b8h ; ba b8 03 10115 10433 out DX, ax ; ef 10116 10434 test cl, cl ; 84 c9 10117 jne short 07 0c5h ; 75 1210435 jne short 07207h ; 75 12 10118 10436 mov ax, word [bp-00ah] ; 8b 46 f6 10119 10437 shr ax, 004h ; c1 e8 04 10120 10438 mov dx, strict word 00001h ; ba 01 00 10121 call 06 dcch ; e8 0d fd10439 call 06f0eh ; e8 0d fd 10122 10440 cmp AL, strict byte 086h ; 3c 86 10123 jne short 07 0c5h ; 75 0210441 jne short 07207h ; 75 02 10124 10442 mov CL, strict byte 001h ; b1 01 10125 10443 cmp byte [bp-006h], 000h ; 80 7e fa 00 10126 je short 07 0f0h ; 74 2510444 je short 07232h ; 74 25 10127 10445 test cl, cl ; 84 c9 10128 jne short 07 0f0h ; 75 2110446 jne short 07232h ; 75 21 10129 10447 mov bx, strict word 00010h ; bb 10 00 10130 jmp short 07 0d9h ; eb 0510448 jmp short 0721bh ; eb 05 10131 10449 dec bx ; 4b 10132 10450 test bx, bx ; 85 db 10133 jbe short 07 0f0h ; 76 1710451 jbe short 07232h ; 76 17 10134 10452 mov ax, bx ; 89 d8 10135 10453 or ah, 002h ; 80 cc 02 … … 10138 10456 xor dx, dx ; 31 d2 10139 10457 mov ax, strict word 00001h ; b8 01 00 10140 call 06 dcch ; e8 e2 fc10458 call 06f0eh ; e8 e2 fc 10141 10459 cmp AL, strict byte 086h ; 3c 86 10142 jne short 07 0d4h ; 75 e610460 jne short 07216h ; 75 e6 10143 10461 mov CL, strict byte 001h ; b1 01 10144 10462 xor bx, bx ; 31 db 10145 10463 mov dx, 00339h ; ba 39 03 10146 10464 mov ax, si ; 89 f0 10147 call 0160eh ; e8 14 a510465 call 0160eh ; e8 d2 a3 10148 10466 mov AL, strict byte 003h ; b0 03 10149 10467 mov AH, strict byte 000h ; b4 00 10150 10468 int 010h ; cd 10 10151 10469 cmp byte [bp-008h], 000h ; 80 7e f8 00 10152 je near 07 1f1h ; 0f 84 e9 0010470 je near 07333h ; 0f 84 e9 00 10153 10471 cmp byte [bp-002h], 000h ; 80 7e fe 00 10154 jne short 07 13eh ; 75 3010472 jne short 07280h ; 75 30 10155 10473 cmp byte [bp-006h], 000h ; 80 7e fa 00 10156 jne short 07 13eh ; 75 2a10474 jne short 07280h ; 75 2a 10157 10475 cmp word [bp-00ah], strict byte 00000h ; 83 7e f6 00 10158 jne short 07 13eh ; 75 2410476 jne short 07280h ; 75 24 10159 10477 cmp byte [bp-008h], 002h ; 80 7e f8 02 10160 jne short 07 12bh ; 75 0b10478 jne short 0726dh ; 75 0b 10161 10479 push 009cah ; 68 ca 09 10162 10480 push strict byte 00002h ; 6a 02 10163 call 018e9h ; e8 c1 a710481 call 018e9h ; e8 7f a6 10164 10482 add sp, strict byte 00004h ; 83 c4 04 10165 10483 test cl, cl ; 84 c9 10166 jne short 07 13eh ; 75 0f10484 jne short 07280h ; 75 0f 10167 10485 mov dx, strict word 00001h ; ba 01 00 10168 10486 mov ax, 000c0h ; b8 c0 00 10169 call 06 dcch ; e8 94 fc10487 call 06f0eh ; e8 94 fc 10170 10488 cmp AL, strict byte 086h ; 3c 86 10171 jne short 07 13eh ; 75 0210489 jne short 07280h ; 75 02 10172 10490 mov CL, strict byte 001h ; b1 01 10173 10491 test cl, cl ; 84 c9 10174 je near 07 1f1h ; 0f 84 ad 0010492 je near 07333h ; 0f 84 ad 00 10175 10493 mov byte [bp-004h], 000h ; c6 46 fc 00 10176 10494 mov ax, 00100h ; b8 00 01 … … 10191 10509 push 009ech ; 68 ec 09 10192 10510 push strict byte 00002h ; 6a 02 10193 call 018e9h ; e8 7c a710511 call 018e9h ; e8 3a a6 10194 10512 add sp, strict byte 00004h ; 83 c4 04 10195 call 06 e9dh ; e8 2a fd10513 call 06fdfh ; e8 2a fd 10196 10514 push 00a30h ; 68 30 0a 10197 10515 push strict byte 00002h ; 6a 02 10198 call 018e9h ; e8 6e a710516 call 018e9h ; e8 2c a6 10199 10517 add sp, strict byte 00004h ; 83 c4 04 10200 10518 mov dx, strict word 00001h ; ba 01 00 10201 10519 mov ax, strict word 00040h ; b8 40 00 10202 call 06 dcch ; e8 45 fc10520 call 06f0eh ; e8 45 fc 10203 10521 mov bl, al ; 88 c3 10204 10522 test al, al ; 84 c0 10205 je short 07 17eh ; 74 f110523 je short 072c0h ; 74 f1 10206 10524 cmp AL, strict byte 030h ; 3c 30 10207 je short 07 1dfh ; 74 4e10525 je short 07321h ; 74 4e 10208 10526 cmp bl, 002h ; 80 fb 02 10209 jc short 07 1b8h ; 72 2210527 jc short 072fah ; 72 22 10210 10528 cmp bl, 009h ; 80 fb 09 10211 jnbe short 07 1b8h ; 77 1d10529 jnbe short 072fah ; 77 1d 10212 10530 movzx ax, bl ; 0f b6 c3 10213 call 0 6fc9h ; e8 28 fe10531 call 0710bh ; e8 28 fe 10214 10532 cmp AL, strict byte 0ffh ; 3c ff 10215 jne short 07 1a7h ; 75 0210216 jmp short 07 17eh ; eb d710533 jne short 072e9h ; 75 02 10534 jmp short 072c0h ; eb d7 10217 10535 movzx bx, al ; 0f b6 d8 10218 10536 mov dx, 00338h ; ba 38 03 10219 10537 mov ax, si ; 89 f0 10220 call 0160eh ; e8 5c a410538 call 0160eh ; e8 1a a3 10221 10539 mov byte [bp-004h], 002h ; c6 46 fc 02 10222 jmp short 07 1dfh ; eb 2710540 jmp short 07321h ; eb 27 10223 10541 cmp bl, 02eh ; 80 fb 2e 10224 je short 07 1cdh ; 74 1010542 je short 0730fh ; 74 10 10225 10543 cmp bl, 026h ; 80 fb 26 10226 je short 07 1d3h ; 74 1110544 je short 07315h ; 74 11 10227 10545 cmp bl, 021h ; 80 fb 21 10228 jne short 07 1d9h ; 75 1210546 jne short 0731bh ; 75 12 10229 10547 mov byte [bp-004h], 001h ; c6 46 fc 01 10230 jmp short 07 1dfh ; eb 1210548 jmp short 07321h ; eb 12 10231 10549 mov byte [bp-004h], 003h ; c6 46 fc 03 10232 jmp short 07 1dfh ; eb 0c10550 jmp short 07321h ; eb 0c 10233 10551 mov byte [bp-004h], 004h ; c6 46 fc 04 10234 jmp short 07 1dfh ; eb 0610552 jmp short 07321h ; eb 06 10235 10553 cmp byte [bp-004h], 000h ; 80 7e fc 00 10236 je short 07 17eh ; 74 9f10554 je short 072c0h ; 74 9f 10237 10555 movzx bx, byte [bp-004h] ; 0f b6 5e fc 10238 10556 mov dx, 00339h ; ba 39 03 10239 10557 mov ax, si ; 89 f0 10240 call 0160eh ; e8 23 a410558 call 0160eh ; e8 e1 a2 10241 10559 mov AL, strict byte 003h ; b0 03 10242 10560 mov AH, strict byte 000h ; b4 00 … … 10251 10569 push DS ; 1e 10252 10570 mov ds, ax ; 8e d8 10253 call 0edbfh ; e8 bc 7b10571 call 0edbfh ; e8 7a 7a 10254 10572 pop DS ; 1f 10255 10573 popad ; 66 61 … … 10261 10579 pop bx ; 5b 10262 10580 retn ; c3 10263 delay_boot_: ; 0xf7 20dLB 0x6410581 delay_boot_: ; 0xf734f LB 0x64 10264 10582 push bx ; 53 10265 10583 push dx ; 52 … … 10268 10586 mov dx, ax ; 89 c2 10269 10587 test ax, ax ; 85 c0 10270 je short 07 26dh ; 74 5510588 je short 073afh ; 74 55 10271 10589 mov AL, strict byte 034h ; b0 34 10272 10590 out strict byte 043h, AL ; e6 43 … … 10278 10596 push 00a7ah ; 68 7a 0a 10279 10597 push strict byte 00002h ; 6a 02 10280 call 018e9h ; e8 bc a610598 call 018e9h ; e8 7a a5 10281 10599 add sp, strict byte 00006h ; 83 c4 06 10282 10600 mov bx, dx ; 89 d3 10283 10601 test bx, bx ; 85 db 10284 jbe short 07 24dh ; 76 1710602 jbe short 0738fh ; 76 17 10285 10603 push bx ; 53 10286 10604 push 00a98h ; 68 98 0a 10287 10605 push strict byte 00002h ; 6a 02 10288 call 018e9h ; e8 aa a610606 call 018e9h ; e8 68 a5 10289 10607 add sp, strict byte 00006h ; 83 c4 06 10290 10608 xor dx, dx ; 31 d2 10291 10609 mov ax, strict word 00040h ; b8 40 00 10292 call 06 dcch ; e8 82 fb10610 call 06f0eh ; e8 82 fb 10293 10611 dec bx ; 4b 10294 jmp short 07 232h ; eb e510612 jmp short 07374h ; eb e5 10295 10613 push 009c8h ; 68 c8 09 10296 10614 push strict byte 00002h ; 6a 02 10297 call 018e9h ; e8 94 a610615 call 018e9h ; e8 52 a5 10298 10616 add sp, strict byte 00004h ; 83 c4 04 10299 10617 mov AL, strict byte 034h ; b0 34 … … 10306 10624 push DS ; 1e 10307 10625 mov ds, ax ; 8e d8 10308 call 0edbfh ; e8 55 7b10626 call 0edbfh ; e8 13 7a 10309 10627 pop DS ; 1f 10310 10628 popad ; 66 61 … … 10313 10631 pop bx ; 5b 10314 10632 retn ; c3 10315 scsi_cmd_data_in_: ; 0xf7 271 LB 0x6310633 scsi_cmd_data_in_: ; 0xf73b3 LB 0x88 10316 10634 push si ; 56 10317 10635 push di ; 57 10318 enter 0000 4h, 000h ; c8 0400 0010636 enter 00006h, 000h ; c8 06 00 00 10319 10637 mov si, ax ; 89 c6 10320 10638 mov byte [bp-002h], dl ; 88 56 fe 10321 mov word [bp-004h], bx ; 89 5e fc 10639 mov word [bp-006h], bx ; 89 5e fa 10640 mov word [bp-004h], cx ; 89 4e fc 10322 10641 mov dx, si ; 89 f2 10323 10642 in AL, DX ; ec … … 10325 10644 ; sub ah, ah ; 2a e4 10326 10645 test AL, strict byte 001h ; a8 01 10327 jne short 0727fh ; 75 f7 10646 jne short 073c4h ; 75 f7 10647 mov ax, word [bp+00eh] ; 8b 46 0e 10648 mov dx, word [bp+010h] ; 8b 56 10 10649 mov cx, strict word 0000ch ; b9 0c 00 10650 shr dx, 1 ; d1 ea 10651 rcr ax, 1 ; d1 d8 10652 loop 073d6h ; e2 fa 10653 and ax, 000f0h ; 25 f0 00 10654 movzx bx, byte [bp+008h] ; 0f b6 5e 08 10655 or bx, ax ; 09 c3 10328 10656 mov al, byte [bp-002h] ; 8a 46 fe 10657 mov dx, si ; 89 f2 10329 10658 out DX, AL ; ee 10330 10659 xor al, al ; 30 c0 10331 10660 out DX, AL ; ee 10332 mov al, b yte [bp+008h] ; 8a 46 0810661 mov al, bl ; 88 d8 10333 10662 out DX, AL ; ee 10334 10663 mov al, byte [bp+00eh] ; 8a 46 0e 10335 10664 out DX, AL ; ee 10336 10665 mov ax, word [bp+00eh] ; 8b 46 0e 10337 shr ax, 008h ; c1 e8 08 10666 mov dx, word [bp+010h] ; 8b 56 10 10667 mov cx, strict word 00008h ; b9 08 00 10668 shr dx, 1 ; d1 ea 10669 rcr ax, 1 ; d1 d8 10670 loop 073feh ; e2 fa 10671 mov dx, si ; 89 f2 10338 10672 out DX, AL ; ee 10339 10673 xor bx, bx ; 31 db 10340 10674 movzx ax, byte [bp+008h] ; 0f b6 46 08 10341 10675 cmp bx, ax ; 39 c3 10342 jnc short 072b8h ; 73 10 10343 mov es, cx ; 8e c1 10344 mov di, word [bp-004h] ; 8b 7e fc 10676 jnc short 0741fh ; 73 0e 10677 les di, [bp-006h] ; c4 7e fa 10345 10678 add di, bx ; 01 df 10346 10679 mov al, byte [es:di] ; 26 8a 05 … … 10348 10681 out DX, AL ; ee 10349 10682 inc bx ; 43 10350 jmp short 07 2a0h ; eb e810683 jmp short 07409h ; eb ea 10351 10684 mov dx, si ; 89 f2 10352 10685 in AL, DX ; ec … … 10354 10687 ; sub ah, ah ; 2a e4 10355 10688 test AL, strict byte 001h ; a8 01 10356 jne short 07 2b8h ; 75 f710689 jne short 0741fh ; 75 f7 10357 10690 lea dx, [si+001h] ; 8d 54 01 10358 10691 mov cx, word [bp+00eh] ; 8b 4e 0e … … 10363 10696 pop di ; 5f 10364 10697 pop si ; 5e 10365 retn 0000 8h ; c2 080010366 scsi_cmd_data_out_: ; 0xf7 2d4 LB 0x6410698 retn 0000ah ; c2 0a 00 10699 scsi_cmd_data_out_: ; 0xf743b LB 0x89 10367 10700 push si ; 56 10368 10701 push di ; 57 10369 enter 0000 4h, 000h ; c8 0400 0010702 enter 00006h, 000h ; c8 06 00 00 10370 10703 mov di, ax ; 89 c7 10371 10704 mov byte [bp-002h], dl ; 88 56 fe 10372 mov word [bp-004h], bx ; 89 5e fc 10705 mov word [bp-006h], bx ; 89 5e fa 10706 mov word [bp-004h], cx ; 89 4e fc 10373 10707 mov dx, di ; 89 fa 10374 10708 in AL, DX ; ec … … 10376 10710 ; sub ah, ah ; 2a e4 10377 10711 test AL, strict byte 001h ; a8 01 10378 jne short 072e2h ; 75 f7 10712 jne short 0744ch ; 75 f7 10713 mov ax, word [bp+00eh] ; 8b 46 0e 10714 mov dx, word [bp+010h] ; 8b 56 10 10715 mov cx, strict word 0000ch ; b9 0c 00 10716 shr dx, 1 ; d1 ea 10717 rcr ax, 1 ; d1 d8 10718 loop 0745eh ; e2 fa 10719 and ax, 000f0h ; 25 f0 00 10720 movzx bx, byte [bp+008h] ; 0f b6 5e 08 10721 or bx, ax ; 09 c3 10379 10722 mov al, byte [bp-002h] ; 8a 46 fe 10723 mov dx, di ; 89 fa 10380 10724 out DX, AL ; ee 10381 10725 mov AL, strict byte 001h ; b0 01 10382 10726 out DX, AL ; ee 10383 mov al, b yte [bp+008h] ; 8a 46 0810727 mov al, bl ; 88 d8 10384 10728 out DX, AL ; ee 10385 10729 mov al, byte [bp+00eh] ; 8a 46 0e 10386 10730 out DX, AL ; ee 10387 10731 mov ax, word [bp+00eh] ; 8b 46 0e 10388 shr ax, 008h ; c1 e8 08 10732 mov dx, word [bp+010h] ; 8b 56 10 10733 mov cx, strict word 00008h ; b9 08 00 10734 shr dx, 1 ; d1 ea 10735 rcr ax, 1 ; d1 d8 10736 loop 07486h ; e2 fa 10737 mov dx, di ; 89 fa 10389 10738 out DX, AL ; ee 10390 10739 xor bx, bx ; 31 db 10391 10740 movzx ax, byte [bp+008h] ; 0f b6 46 08 10392 10741 cmp bx, ax ; 39 c3 10393 jnc short 0731bh ; 73 10 10394 mov es, cx ; 8e c1 10395 mov si, word [bp-004h] ; 8b 76 fc 10742 jnc short 074a7h ; 73 0e 10743 les si, [bp-006h] ; c4 76 fa 10396 10744 add si, bx ; 01 de 10397 10745 mov al, byte [es:si] ; 26 8a 04 … … 10399 10747 out DX, AL ; ee 10400 10748 inc bx ; 43 10401 jmp short 07 303h ; eb e810749 jmp short 07491h ; eb ea 10402 10750 lea dx, [di+001h] ; 8d 55 01 10403 10751 mov cx, word [bp+00eh] ; 8b 4e 0e … … 10410 10758 ; sub ah, ah ; 2a e4 10411 10759 test AL, strict byte 001h ; a8 01 10412 jne short 07 327h ; 75 f710760 jne short 074b3h ; 75 f7 10413 10761 xor ax, ax ; 31 c0 10414 10762 leave ; c9 10415 10763 pop di ; 5f 10416 10764 pop si ; 5e 10417 retn 0000 8h ; c2 080010418 @scsi_read_sectors: ; 0xf7 338 LB 0xa210765 retn 0000ah ; c2 0a 00 10766 @scsi_read_sectors: ; 0xf74c4 LB 0xb1 10419 10767 push si ; 56 10420 10768 push di ; 57 10421 enter 0000 ch, 000h ; c8 0c00 0010769 enter 0000eh, 000h ; c8 0e 00 00 10422 10770 mov si, word [bp+008h] ; 8b 76 08 10423 10771 mov es, [bp+00ah] ; 8e 46 0a … … 10425 10773 sub bl, 008h ; 80 eb 08 10426 10774 cmp bl, 004h ; 80 fb 04 10427 jbe short 07 35fh ; 76 0f10775 jbe short 074ebh ; 76 0f 10428 10776 movzx ax, bl ; 0f b6 c3 10429 10777 push ax ; 50 10430 10778 push 00a9ch ; 68 9c 0a 10431 10779 push strict byte 00007h ; 6a 07 10432 call 018e9h ; e8 8d a510780 call 018e9h ; e8 01 a4 10433 10781 add sp, strict byte 00006h ; 83 c4 06 10434 10782 mov es, [bp+00ah] ; 8e 46 0a 10435 10783 mov di, word [es:si+00ah] ; 26 8b 7c 0a 10436 mov word [bp-00 ch], strict word 00028h ; c7 46 f428 0010784 mov word [bp-00eh], strict word 00028h ; c7 46 f2 28 00 10437 10785 mov ax, word [es:si] ; 26 8b 04 10438 10786 mov dx, word [es:si+002h] ; 26 8b 54 02 … … 10440 10788 xchg dh, dl ; 86 d6 10441 10789 xchg dx, ax ; 92 10442 mov word [bp-00 ah], ax ; 89 46 f610443 mov word [bp-00 8h], dx ; 89 56 f810444 mov byte [bp-00 6h], 000h ; c6 46 fa0010790 mov word [bp-00ch], ax ; 89 46 f4 10791 mov word [bp-00ah], dx ; 89 56 f6 10792 mov byte [bp-008h], 000h ; c6 46 f8 00 10445 10793 mov ax, di ; 89 f8 10446 10794 xchg ah, al ; 86 c4 10447 mov word [bp-00 5h], ax ; 89 46 fb10448 mov byte [bp-00 3h], 000h ; c6 46 fd0010795 mov word [bp-007h], ax ; 89 46 f9 10796 mov byte [bp-005h], 000h ; c6 46 fb 00 10449 10797 xor bh, bh ; 30 ff 10450 10798 sal bx, 002h ; c1 e3 02 … … 10452 10800 mov ax, word [es:bx+001d8h] ; 26 8b 87 d8 01 10453 10801 mov dl, byte [es:bx+001dah] ; 26 8a 97 da 01 10454 mov bx, di ; 89 fb 10455 sal bx, 009h ; c1 e3 09 10456 mov word [bp-002h], bx ; 89 5e fe 10457 push bx ; 53 10802 mov word [bp-004h], di ; 89 7e fc 10803 mov word [bp-002h], strict word 00000h ; c7 46 fe 00 00 10804 mov cx, strict word 00009h ; b9 09 00 10805 sal word [bp-004h], 1 ; d1 66 fc 10806 rcl word [bp-002h], 1 ; d1 56 fe 10807 loop 07534h ; e2 f8 10808 push dword [bp-004h] ; 66 ff 76 fc 10458 10809 db 066h, 026h, 0ffh, 074h, 004h 10459 10810 ; push dword [es:si+004h] ; 66 26 ff 74 04 … … 10461 10812 xor dh, dh ; 30 f6 10462 10813 mov cx, ss ; 8c d1 10463 lea bx, [bp-00 ch] ; 8d 5e f410464 call 07 271h ; e8 bafe10814 lea bx, [bp-00eh] ; 8d 5e f2 10815 call 073b3h ; e8 62 fe 10465 10816 mov ah, al ; 88 c4 10466 10817 test al, al ; 84 c0 10467 jne short 07 3d1h ; 75 1410818 jne short 0756ch ; 75 15 10468 10819 mov es, [bp+00ah] ; 8e 46 0a 10469 10820 mov word [es:si+014h], di ; 26 89 7c 14 10821 mov dx, word [bp-004h] ; 8b 56 fc 10822 mov word [es:si+016h], dx ; 26 89 54 16 10470 10823 mov dx, word [bp-002h] ; 8b 56 fe 10471 mov word [es:si+016h], dx ; 26 89 54 16 10472 mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00 10824 mov word [es:si+018h], dx ; 26 89 54 18 10473 10825 movzx ax, ah ; 0f b6 c4 10474 10826 leave ; c9 … … 10476 10828 pop si ; 5e 10477 10829 retn 00004h ; c2 04 00 10478 @scsi_write_sectors: ; 0xf7 3da LB 0xa210830 @scsi_write_sectors: ; 0xf7575 LB 0xb1 10479 10831 push si ; 56 10480 10832 push di ; 57 10481 enter 0000 ch, 000h ; c8 0c00 0010833 enter 0000eh, 000h ; c8 0e 00 00 10482 10834 mov si, word [bp+008h] ; 8b 76 08 10483 10835 mov es, [bp+00ah] ; 8e 46 0a … … 10485 10837 sub bl, 008h ; 80 eb 08 10486 10838 cmp bl, 004h ; 80 fb 04 10487 jbe short 07 401h ; 76 0f10839 jbe short 0759ch ; 76 0f 10488 10840 movzx ax, bl ; 0f b6 c3 10489 10841 push ax ; 50 10490 10842 push 00acah ; 68 ca 0a 10491 10843 push strict byte 00007h ; 6a 07 10492 call 018e9h ; e8 eb a410844 call 018e9h ; e8 50 a3 10493 10845 add sp, strict byte 00006h ; 83 c4 06 10494 10846 mov es, [bp+00ah] ; 8e 46 0a 10495 10847 mov di, word [es:si+00ah] ; 26 8b 7c 0a 10496 mov word [bp-00 ch], strict word 0002ah ; c7 46 f42a 0010848 mov word [bp-00eh], strict word 0002ah ; c7 46 f2 2a 00 10497 10849 mov ax, word [es:si] ; 26 8b 04 10498 10850 mov dx, word [es:si+002h] ; 26 8b 54 02 … … 10500 10852 xchg dh, dl ; 86 d6 10501 10853 xchg dx, ax ; 92 10502 mov word [bp-00 ah], ax ; 89 46 f610503 mov word [bp-00 8h], dx ; 89 56 f810504 mov byte [bp-00 6h], 000h ; c6 46 fa0010854 mov word [bp-00ch], ax ; 89 46 f4 10855 mov word [bp-00ah], dx ; 89 56 f6 10856 mov byte [bp-008h], 000h ; c6 46 f8 00 10505 10857 mov ax, di ; 89 f8 10506 10858 xchg ah, al ; 86 c4 10507 mov word [bp-00 5h], ax ; 89 46 fb10508 mov byte [bp-00 3h], 000h ; c6 46 fd0010859 mov word [bp-007h], ax ; 89 46 f9 10860 mov byte [bp-005h], 000h ; c6 46 fb 00 10509 10861 xor bh, bh ; 30 ff 10510 10862 sal bx, 002h ; c1 e3 02 … … 10512 10864 mov ax, word [es:bx+001d8h] ; 26 8b 87 d8 01 10513 10865 mov dl, byte [es:bx+001dah] ; 26 8a 97 da 01 10514 mov bx, di ; 89 fb 10515 sal bx, 009h ; c1 e3 09 10516 mov word [bp-002h], bx ; 89 5e fe 10517 push bx ; 53 10866 mov word [bp-004h], di ; 89 7e fc 10867 mov word [bp-002h], strict word 00000h ; c7 46 fe 00 00 10868 mov cx, strict word 00009h ; b9 09 00 10869 sal word [bp-004h], 1 ; d1 66 fc 10870 rcl word [bp-002h], 1 ; d1 56 fe 10871 loop 075e5h ; e2 f8 10872 push dword [bp-004h] ; 66 ff 76 fc 10518 10873 db 066h, 026h, 0ffh, 074h, 004h 10519 10874 ; push dword [es:si+004h] ; 66 26 ff 74 04 … … 10521 10876 xor dh, dh ; 30 f6 10522 10877 mov cx, ss ; 8c d1 10523 lea bx, [bp-00 ch] ; 8d 5e f410524 call 07 2d4h ; e8 7bfe10878 lea bx, [bp-00eh] ; 8d 5e f2 10879 call 0743bh ; e8 39 fe 10525 10880 mov ah, al ; 88 c4 10526 10881 test al, al ; 84 c0 10527 jne short 07 473h ; 75 1410882 jne short 0761dh ; 75 15 10528 10883 mov es, [bp+00ah] ; 8e 46 0a 10529 10884 mov word [es:si+014h], di ; 26 89 7c 14 10885 mov dx, word [bp-004h] ; 8b 56 fc 10886 mov word [es:si+016h], dx ; 26 89 54 16 10530 10887 mov dx, word [bp-002h] ; 8b 56 fe 10531 mov word [es:si+016h], dx ; 26 89 54 16 10532 mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00 10888 mov word [es:si+018h], dx ; 26 89 54 18 10533 10889 movzx ax, ah ; 0f b6 c4 10534 10890 leave ; c9 … … 10536 10892 pop si ; 5e 10537 10893 retn 00004h ; c2 04 00 10538 scsi_enumerate_attached_devices_: ; 0xf747c LB 0x285 10894 scsi_cmd_packet_: ; 0xf7626 LB 0x131 10895 push si ; 56 10896 push di ; 57 10897 enter 0000ch, 000h ; c8 0c 00 00 10898 mov di, ax ; 89 c7 10899 mov byte [bp-002h], dl ; 88 56 fe 10900 mov word [bp-00ch], bx ; 89 5e f4 10901 mov word [bp-006h], cx ; 89 4e fa 10902 mov dx, strict word 0000eh ; ba 0e 00 10903 mov ax, strict word 00040h ; b8 40 00 10904 call 0161ch ; e8 dc 9f 10905 mov si, 00122h ; be 22 01 10906 mov word [bp-00ah], ax ; 89 46 f6 10907 cmp byte [bp+00eh], 002h ; 80 7e 0e 02 10908 jne short 0766bh ; 75 1f 10909 mov bx, 00cech ; bb ec 0c 10910 mov cx, ds ; 8c d9 10911 mov ax, strict word 00004h ; b8 04 00 10912 call 018aeh ; e8 57 a2 10913 push 00af9h ; 68 f9 0a 10914 push 00b09h ; 68 09 0b 10915 push strict byte 00004h ; 6a 04 10916 call 018e9h ; e8 87 a2 10917 add sp, strict byte 00006h ; 83 c4 06 10918 mov dx, strict word 00001h ; ba 01 00 10919 jmp near 0774fh ; e9 e4 00 10920 sub di, strict byte 00008h ; 83 ef 08 10921 sal di, 002h ; c1 e7 02 10922 sub byte [bp-002h], 002h ; 80 6e fe 02 10923 mov es, [bp-00ah] ; 8e 46 f6 10924 add di, si ; 01 f7 10925 mov bx, word [es:di+001d8h] ; 26 8b 9d d8 01 10926 mov al, byte [es:di+001dah] ; 26 8a 85 da 01 10927 mov byte [bp-004h], al ; 88 46 fc 10928 mov dx, bx ; 89 da 10929 in AL, DX ; ec 10930 db 02ah, 0e4h 10931 ; sub ah, ah ; 2a e4 10932 test AL, strict byte 001h ; a8 01 10933 jne short 07687h ; 75 f7 10934 xor di, di ; 31 ff 10935 mov ax, word [bp+00ah] ; 8b 46 0a 10936 add ax, word [bp+008h] ; 03 46 08 10937 mov word [bp-008h], ax ; 89 46 f8 10938 adc di, word [bp+00ch] ; 13 7e 0c 10939 mov dx, di ; 89 fa 10940 mov cx, strict word 0000ch ; b9 0c 00 10941 shr dx, 1 ; d1 ea 10942 rcr ax, 1 ; d1 d8 10943 loop 076a3h ; e2 fa 10944 and ax, 000f0h ; 25 f0 00 10945 movzx cx, byte [bp-002h] ; 0f b6 4e fe 10946 or cx, ax ; 09 c1 10947 mov al, byte [bp-004h] ; 8a 46 fc 10948 mov dx, bx ; 89 da 10949 out DX, AL ; ee 10950 xor al, al ; 30 c0 10951 out DX, AL ; ee 10952 mov al, cl ; 88 c8 10953 out DX, AL ; ee 10954 mov ax, word [bp+00ah] ; 8b 46 0a 10955 add ax, word [bp+008h] ; 03 46 08 10956 out DX, AL ; ee 10957 mov ax, word [bp-008h] ; 8b 46 f8 10958 mov dx, di ; 89 fa 10959 mov cx, strict word 00008h ; b9 08 00 10960 shr dx, 1 ; d1 ea 10961 rcr ax, 1 ; d1 d8 10962 loop 076cdh ; e2 fa 10963 mov dx, bx ; 89 da 10964 out DX, AL ; ee 10965 xor cx, cx ; 31 c9 10966 movzx ax, byte [bp-002h] ; 0f b6 46 fe 10967 cmp cx, ax ; 39 c1 10968 jnc short 076f1h ; 73 11 10969 mov es, [bp-006h] ; 8e 46 fa 10970 mov di, word [bp-00ch] ; 8b 7e f4 10971 add di, cx ; 01 cf 10972 mov al, byte [es:di] ; 26 8a 05 10973 mov dx, bx ; 89 da 10974 out DX, AL ; ee 10975 inc cx ; 41 10976 jmp short 076d8h ; eb e7 10977 mov dx, bx ; 89 da 10978 in AL, DX ; ec 10979 db 02ah, 0e4h 10980 ; sub ah, ah ; 2a e4 10981 test AL, strict byte 001h ; a8 01 10982 jne short 076f1h ; 75 f7 10983 mov ax, word [bp+008h] ; 8b 46 08 10984 test ax, ax ; 85 c0 10985 je short 07709h ; 74 08 10986 lea dx, [bx+001h] ; 8d 57 01 10987 mov cx, ax ; 89 c1 10988 in AL, DX ; ec 10989 loop 07706h ; e2 fd 10990 mov ax, word [bp+00ah] ; 8b 46 0a 10991 mov es, [bp-00ah] ; 8e 46 f6 10992 mov word [es:si+016h], ax ; 26 89 44 16 10993 mov ax, word [bp+00ch] ; 8b 46 0c 10994 mov word [es:si+018h], ax ; 26 89 44 18 10995 lea dx, [bx+001h] ; 8d 57 01 10996 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 10997 jne short 0772ah ; 75 07 10998 cmp word [bp+00ah], 08000h ; 81 7e 0a 00 80 10999 jbe short 07745h ; 76 1b 11000 mov cx, 08000h ; b9 00 80 11001 les di, [bp+010h] ; c4 7e 10 11002 rep insb ; f3 6c 11003 add word [bp+00ah], 08000h ; 81 46 0a 00 80 11004 adc word [bp+00ch], strict byte 0ffffh ; 83 56 0c ff 11005 mov ax, es ; 8c c0 11006 add ax, 00800h ; 05 00 08 11007 mov word [bp+012h], ax ; 89 46 12 11008 jmp short 0771ah ; eb d5 11009 mov cx, word [bp+00ah] ; 8b 4e 0a 11010 les di, [bp+010h] ; c4 7e 10 11011 rep insb ; f3 6c 11012 xor dx, dx ; 31 d2 11013 mov ax, dx ; 89 d0 11014 leave ; c9 11015 pop di ; 5f 11016 pop si ; 5e 11017 retn 0000ch ; c2 0c 00 11018 scsi_enumerate_attached_devices_: ; 0xf7757 LB 0x319 10539 11019 push bx ; 53 10540 11020 push cx ; 51 … … 10542 11022 push si ; 56 10543 11023 push di ; 57 10544 enter 0021 ah, 000h ; c8 1a02 0010545 push ax ; 5011024 enter 0021eh, 000h ; c8 1e 02 00 11025 mov di, ax ; 89 c7 10546 11026 mov dx, strict word 0000eh ; ba 0e 00 10547 11027 mov ax, strict word 00040h ; b8 40 00 10548 call 0161ch ; e8 8d a111028 call 0161ch ; e8 b1 9e 10549 11029 mov si, 00122h ; be 22 01 10550 mov word [bp-00 6h], ax ; 89 46 fa10551 mov word [bp-00 8h], strict word 00000h ; c7 46 f800 0010552 jmp near 07 6a9h ; e9 0c0210553 mov es, [bp-00 6h] ; 8e 46 fa11030 mov word [bp-00ah], ax ; 89 46 f6 11031 mov word [bp-006h], strict word 00000h ; c7 46 fa 00 00 11032 jmp near 07a03h ; e9 8a 02 11033 mov es, [bp-00ah] ; 8e 46 f6 10554 11034 cmp byte [es:si+001e8h], 004h ; 26 80 bc e8 01 04 10555 jnc near 07 6fah ; 0f 83 500211035 jnc near 07a69h ; 0f 83 e3 02 10556 11036 mov cx, strict word 0000ah ; b9 0a 00 10557 11037 xor bx, bx ; 31 db 10558 11038 mov dx, ss ; 8c d2 10559 lea ax, [bp-01 ah] ; 8d 46 e610560 call 0 8caah ; e8 f3 1710561 mov byte [bp-01 ah], 025h ; c6 46 e62510562 push strict byte 00008h ;6a 0810563 lea dx, [bp-0021 ah] ; 8d 96 e6fd11039 lea ax, [bp-01eh] ; 8d 46 e2 11040 call 0902ah ; e8 97 18 11041 mov byte [bp-01eh], 025h ; c6 46 e2 25 11042 push dword 000000008h ; 66 6a 08 11043 lea dx, [bp-0021eh] ; 8d 96 e2 fd 10564 11044 push SS ; 16 10565 11045 push dx ; 52 10566 11046 push strict byte 0000ah ; 6a 0a 10567 movzx dx, byte [bp-00 8h] ; 0f b6 56 f811047 movzx dx, byte [bp-006h] ; 0f b6 56 fa 10568 11048 mov cx, ss ; 8c d1 10569 lea bx, [bp-01 ah] ; 8d 5e e610570 mov ax, word [bp-0021ch] ; 8b 86 e4 fd10571 call 07 271h ; e8 9c fd11049 lea bx, [bp-01eh] ; 8d 5e e2 11050 mov ax, di ; 89 f8 11051 call 073b3h ; e8 03 fc 10572 11052 test al, al ; 84 c0 10573 je short 074e4h ; 74 0b 10574 push 00b2fh ; 68 2f 0b 11053 je short 077c2h ; 74 0e 11054 push 00b29h ; 68 29 0b 11055 push 00b62h ; 68 62 0b 10575 11056 push strict byte 00007h ; 6a 07 10576 call 018e9h ; e8 08 a410577 add sp, strict byte 0000 4h ; 83 c4 0410578 movzx dx, byte [bp-0021 9h] ; 0f b6 96 e7fd10579 movzx di, byte [bp-0021ah] ; 0f b6 be e6fd10580 sal di, 008h ; c1 e70811057 call 018e9h ; e8 2a a1 11058 add sp, strict byte 00006h ; 83 c4 06 11059 movzx dx, byte [bp-0021dh] ; 0f b6 96 e3 fd 11060 movzx ax, byte [bp-0021eh] ; 0f b6 86 e2 fd 11061 sal ax, 008h ; c1 e0 08 10581 11062 xor bx, bx ; 31 db 10582 or di, dx ; 09 d7 11063 or ax, dx ; 09 d0 11064 mov word [bp-014h], ax ; 89 46 ec 11065 movzx ax, byte [bp-0021ch] ; 0f b6 86 e4 fd 11066 xor dx, dx ; 31 d2 11067 mov cx, strict word 00008h ; b9 08 00 11068 sal ax, 1 ; d1 e0 11069 rcl dx, 1 ; d1 d2 11070 loop 077e0h ; e2 fa 11071 or bx, ax ; 09 c3 11072 or dx, word [bp-014h] ; 0b 56 ec 11073 movzx ax, byte [bp-0021bh] ; 0f b6 86 e5 fd 11074 or bx, ax ; 09 c3 11075 mov word [bp-010h], bx ; 89 5e f0 11076 mov word [bp-008h], dx ; 89 56 f8 11077 movzx dx, byte [bp-0021ah] ; 0f b6 96 e6 fd 11078 sal dx, 008h ; c1 e2 08 11079 movzx ax, byte [bp-00219h] ; 0f b6 86 e7 fd 11080 xor bx, bx ; 31 db 11081 or dx, ax ; 09 c2 11082 mov word [bp-014h], dx ; 89 56 ec 10583 11083 movzx ax, byte [bp-00218h] ; 0f b6 86 e8 fd 10584 11084 xor dx, dx ; 31 d2 … … 10586 11086 sal ax, 1 ; d1 e0 10587 11087 rcl dx, 1 ; d1 d2 10588 loop 07 4ffh ; e2 fa11088 loop 07816h ; e2 fa 10589 11089 or bx, ax ; 09 c3 10590 or d i, dx ; 09 d711090 or dx, word [bp-014h] ; 0b 56 ec 10591 11091 movzx ax, byte [bp-00217h] ; 0f b6 86 e9 fd 10592 11092 or bx, ax ; 09 c3 10593 mov word [bp-00ah], bx ; 89 5e f6 10594 movzx ax, byte [bp-00216h] ; 0f b6 86 ea fd 10595 sal ax, 008h ; c1 e0 08 10596 movzx bx, byte [bp-00215h] ; 0f b6 9e eb fd 10597 mov word [bp-010h], strict word 00000h ; c7 46 f0 00 00 10598 or bx, ax ; 09 c3 10599 movzx ax, byte [bp-00214h] ; 0f b6 86 ec fd 10600 xor dx, dx ; 31 d2 10601 mov cx, strict word 00008h ; b9 08 00 10602 sal ax, 1 ; d1 e0 10603 rcl dx, 1 ; d1 d2 10604 loop 07531h ; e2 fa 10605 mov cx, word [bp-010h] ; 8b 4e f0 10606 or cx, ax ; 09 c1 10607 or dx, bx ; 09 da 10608 movzx ax, byte [bp-00213h] ; 0f b6 86 ed fd 10609 mov bx, cx ; 89 cb 10610 or bx, ax ; 09 c3 10611 mov word [bp-00ch], bx ; 89 5e f4 11093 mov word [bp-012h], bx ; 89 5e ee 10612 11094 test dx, dx ; 85 d2 10613 jne short 07 554h ; 75 0611095 jne short 07835h ; 75 06 10614 11096 cmp bx, 00200h ; 81 fb 00 02 10615 je short 07 574h ; 74 2010616 mov bx, 00c d6h ; bb d60c11097 je short 07855h ; 74 20 11098 mov bx, 00cech ; bb ec 0c 10617 11099 mov cx, ds ; 8c d9 10618 11100 mov ax, strict word 00004h ; b8 04 00 10619 call 018aeh ; e8 4f a311101 call 018aeh ; e8 6e a0 10620 11102 push dx ; 52 10621 push word [bp-0 0ch] ; ff 76 f410622 push word [bp-00 8h] ; ff 76 f810623 push 00b 6bh ; 68 6b0b11103 push word [bp-012h] ; ff 76 ee 11104 push word [bp-006h] ; ff 76 fa 11105 push 00b81h ; 68 81 0b 10624 11106 push strict byte 00004h ; 6a 04 10625 call 018e9h ; e8 7b a311107 call 018e9h ; e8 9a a0 10626 11108 add sp, strict byte 0000ah ; 83 c4 0a 10627 jmp near 076a0h ; e9 2c 01 10628 cmp di, strict byte 00040h ; 83 ff 40 10629 jnbe short 0757bh ; 77 02 10630 jne short 07585h ; 75 0a 10631 mov dword [bp-004h], strict dword 000ff003fh ; 66 c7 46 fc 3f 00 ff 00 10632 jmp short 0759eh ; eb 19 10633 cmp di, strict byte 00020h ; 83 ff 20 10634 jnbe short 0758ch ; 77 02 10635 jne short 07596h ; 75 0a 10636 mov dword [bp-004h], strict dword 000800020h ; 66 c7 46 fc 20 00 80 00 10637 jmp short 0759eh ; eb 08 10638 mov dword [bp-004h], strict dword 000400020h ; 66 c7 46 fc 20 00 40 00 10639 mov bx, word [bp-002h] ; 8b 5e fe 10640 imul bx, word [bp-004h] ; 0f af 5e fc 10641 mov ax, word [bp-00ah] ; 8b 46 f6 10642 mov dx, di ; 89 fa 11109 jmp near 079fah ; e9 a5 01 11110 mov ax, word [bp-008h] ; 8b 46 f8 11111 cmp ax, strict word 00040h ; 3d 40 00 11112 jnbe short 0785fh ; 77 02 11113 jne short 07869h ; 75 0a 11114 mov dword [bp-00eh], strict dword 000ff003fh ; 66 c7 46 f2 3f 00 ff 00 11115 jmp short 07882h ; eb 19 11116 cmp ax, strict word 00020h ; 3d 20 00 11117 jnbe short 07870h ; 77 02 11118 jne short 0787ah ; 75 0a 11119 mov dword [bp-00eh], strict dword 000800020h ; 66 c7 46 f2 20 00 80 00 11120 jmp short 07882h ; eb 08 11121 mov dword [bp-00eh], strict dword 000400020h ; 66 c7 46 f2 20 00 40 00 11122 mov bx, word [bp-00ch] ; 8b 5e f4 11123 imul bx, word [bp-00eh] ; 0f af 5e f2 11124 mov ax, word [bp-010h] ; 8b 46 f0 11125 mov dx, word [bp-008h] ; 8b 56 f8 10643 11126 xor cx, cx ; 31 c9 10644 call 08c40h ; e8 91 16 10645 mov word [bp-00eh], dx ; 89 56 f2 10646 mov es, [bp-006h] ; 8e 46 fa 10647 mov cl, byte [es:si+001e8h] ; 26 8a 8c e8 01 10648 mov ch, cl ; 88 cd 10649 add ch, 008h ; 80 c5 08 10650 movzx dx, cl ; 0f b6 d1 10651 sal dx, 002h ; c1 e2 02 10652 mov bx, si ; 89 f3 10653 add bx, dx ; 01 d3 10654 mov dx, word [bp-0021ch] ; 8b 96 e4 fd 10655 mov word [es:bx+001d8h], dx ; 26 89 97 d8 01 10656 mov dl, byte [bp-008h] ; 8a 56 f8 10657 mov byte [es:bx+001dah], dl ; 26 88 97 da 01 10658 movzx dx, ch ; 0f b6 d5 11127 call 08fc0h ; e8 2c 17 11128 mov cx, ax ; 89 c1 11129 mov word [bp-004h], dx ; 89 56 fc 11130 mov es, [bp-00ah] ; 8e 46 f6 11131 mov al, byte [es:si+001e8h] ; 26 8a 84 e8 01 11132 mov byte [bp-002h], al ; 88 46 fe 11133 add AL, strict byte 008h ; 04 08 11134 movzx bx, byte [bp-002h] ; 0f b6 5e fe 11135 sal bx, 002h ; c1 e3 02 11136 add bx, si ; 01 f3 11137 mov word [es:bx+001d8h], di ; 26 89 bf d8 01 11138 mov ah, byte [bp-006h] ; 8a 66 fa 11139 mov byte [es:bx+001dah], ah ; 26 88 a7 da 01 11140 movzx dx, al ; 0f b6 d0 10659 11141 imul dx, dx, strict byte 00018h ; 6b d2 18 10660 11142 mov bx, si ; 89 f3 … … 10662 11144 db 066h, 026h, 0c7h, 047h, 01eh, 004h, 0ffh, 000h, 000h 10663 11145 ; mov dword [es:bx+01eh], strict dword 00000ff04h ; 66 26 c7 47 1e 04 ff 00 00 10664 mov dx, word [bp-0 0ch] ; 8b 56 f411146 mov dx, word [bp-012h] ; 8b 56 ee 10665 11147 mov word [es:bx+024h], dx ; 26 89 57 24 10666 11148 mov byte [es:bx+023h], 001h ; 26 c6 47 23 01 10667 mov dx, word [bp-00 2h] ; 8b 56 fe11149 mov dx, word [bp-00ch] ; 8b 56 f4 10668 11150 mov word [es:bx+026h], dx ; 26 89 57 26 10669 mov dx, word [bp-00 4h] ; 8b 56 fc11151 mov dx, word [bp-00eh] ; 8b 56 f2 10670 11152 mov word [es:bx+02ah], dx ; 26 89 57 2a 10671 cmp word [bp-00 eh], strict byte 00000h ; 83 7e f20010672 jne short 07 612h ; 75 0510673 cmp ax, 00400h ; 3d00 0410674 jbe short 07 61ah ; 76 0811153 cmp word [bp-004h], strict byte 00000h ; 83 7e fc 00 11154 jne short 078f5h ; 75 06 11155 cmp cx, 00400h ; 81 f9 00 04 11156 jbe short 078fdh ; 76 08 10675 11157 mov word [es:bx+028h], 00400h ; 26 c7 47 28 00 04 10676 jmp short 0761eh ; eb 04 10677 mov word [es:bx+028h], ax ; 26 89 47 28 10678 movzx bx, ch ; 0f b6 dd 10679 imul bx, bx, strict byte 00018h ; 6b db 18 10680 mov es, [bp-006h] ; 8e 46 fa 10681 add bx, si ; 01 f3 10682 mov dx, word [bp-002h] ; 8b 56 fe 11158 jmp short 07901h ; eb 04 11159 mov word [es:bx+028h], cx ; 26 89 4f 28 11160 movzx dx, al ; 0f b6 d0 11161 imul dx, dx, strict byte 00018h ; 6b d2 18 11162 mov es, [bp-00ah] ; 8e 46 f6 11163 mov bx, si ; 89 f3 11164 add bx, dx ; 01 d3 11165 mov dx, word [bp-00ch] ; 8b 56 f4 10683 11166 mov word [es:bx+02ch], dx ; 26 89 57 2c 10684 mov dx, word [bp-00 4h] ; 8b 56 fc11167 mov dx, word [bp-00eh] ; 8b 56 f2 10685 11168 mov word [es:bx+030h], dx ; 26 89 57 30 10686 cmp word [bp-00 eh], strict byte 00000h ; 83 7e f20010687 jne short 07 642h ; 75 0510688 cmp ax, 00400h ; 3d00 0410689 jbe short 07 64ah ; 76 0811169 cmp word [bp-004h], strict byte 00000h ; 83 7e fc 00 11170 jne short 07928h ; 75 06 11171 cmp cx, 00400h ; 81 f9 00 04 11172 jbe short 07930h ; 76 08 10690 11173 mov word [es:bx+02eh], 00400h ; 26 c7 47 2e 00 04 10691 jmp short 0764eh ; eb 04 10692 mov word [es:bx+02eh], ax ; 26 89 47 2e 10693 movzx bx, ch ; 0f b6 dd 10694 imul bx, bx, strict byte 00018h ; 6b db 18 10695 mov es, [bp-006h] ; 8e 46 fa 10696 add bx, si ; 01 f3 10697 mov ax, word [bp-00ah] ; 8b 46 f6 11174 jmp short 07934h ; eb 04 11175 mov word [es:bx+02eh], cx ; 26 89 4f 2e 11176 xor ah, ah ; 30 e4 11177 imul ax, ax, strict byte 00018h ; 6b c0 18 11178 mov es, [bp-00ah] ; 8e 46 f6 11179 mov bx, si ; 89 f3 11180 add bx, ax ; 01 c3 11181 mov ax, word [bp-010h] ; 8b 46 f0 10698 11182 mov word [es:bx+032h], ax ; 26 89 47 32 10699 mov word [es:bx+034h], di ; 26 89 7f 34 11183 mov ax, word [bp-008h] ; 8b 46 f8 11184 mov word [es:bx+034h], ax ; 26 89 47 34 10700 11185 mov al, byte [es:si+0019eh] ; 26 8a 84 9e 01 10701 mov ah, cl ; 88 cc11186 mov ah, byte [bp-002h] ; 8a 66 fe 10702 11187 add ah, 008h ; 80 c4 08 10703 11188 movzx bx, al ; 0f b6 d8 … … 10709 11194 mov dx, strict word 00075h ; ba 75 00 10710 11195 mov ax, strict word 00040h ; b8 40 00 10711 call 01600h ; e8 78 9f11196 call 01600h ; e8 8d 9c 10712 11197 db 0feh, 0c0h 10713 11198 ; inc al ; fe c0 … … 10715 11200 mov dx, strict word 00075h ; ba 75 00 10716 11201 mov ax, strict word 00040h ; b8 40 00 10717 call 0160eh ; e8 78 9f 10718 db 0feh, 0c1h 10719 ; inc cl ; fe c1 10720 mov es, [bp-006h] ; 8e 46 fa 10721 mov byte [es:si+001e8h], cl ; 26 88 8c e8 01 10722 inc word [bp-008h] ; ff 46 f8 10723 cmp word [bp-008h], strict byte 00010h ; 83 7e f8 10 10724 jnl short 076fah ; 7d 51 10725 mov byte [bp-01ah], 012h ; c6 46 e6 12 11202 call 0160eh ; e8 8d 9c 11203 inc byte [bp-002h] ; fe 46 fe 11204 mov al, byte [bp-002h] ; 8a 46 fe 11205 mov es, [bp-00ah] ; 8e 46 f6 11206 mov byte [es:si+001e8h], al ; 26 88 84 e8 01 11207 jmp short 079fah ; eb 69 11208 mov al, byte [bp-002h] ; 8a 46 fe 11209 add AL, strict byte 008h ; 04 08 11210 test byte [bp-0021dh], 080h ; f6 86 e3 fd 80 11211 db 00fh, 095h, 0c4h 11212 ; setne ah ; 0f 95 c4 11213 movzx dx, ah ; 0f b6 d4 11214 movzx bx, byte [bp-002h] ; 0f b6 5e fe 11215 sal bx, 002h ; c1 e3 02 11216 mov es, [bp-00ah] ; 8e 46 f6 11217 add bx, si ; 01 f3 11218 mov word [es:bx+001d8h], di ; 26 89 bf d8 01 11219 mov ah, byte [bp-006h] ; 8a 66 fa 11220 mov byte [es:bx+001dah], ah ; 26 88 a7 da 01 11221 xor ah, ah ; 30 e4 11222 imul ax, ax, strict byte 00018h ; 6b c0 18 11223 mov bx, si ; 89 f3 11224 add bx, ax ; 01 c3 11225 mov word [es:bx+01eh], 00504h ; 26 c7 47 1e 04 05 11226 mov byte [es:bx+020h], dl ; 26 88 57 20 11227 mov word [es:bx+024h], 00800h ; 26 c7 47 24 00 08 11228 mov al, byte [es:si+001afh] ; 26 8a 84 af 01 11229 mov ah, byte [bp-002h] ; 8a 66 fe 11230 add ah, 008h ; 80 c4 08 11231 movzx bx, al ; 0f b6 d8 11232 add bx, si ; 01 f3 11233 mov byte [es:bx+001b0h], ah ; 26 88 a7 b0 01 11234 db 0feh, 0c0h 11235 ; inc al ; fe c0 11236 mov byte [es:si+001afh], al ; 26 88 84 af 01 11237 inc byte [bp-002h] ; fe 46 fe 11238 mov al, byte [bp-002h] ; 8a 46 fe 11239 mov byte [es:si+001e8h], al ; 26 88 84 e8 01 11240 inc word [bp-006h] ; ff 46 fa 11241 cmp word [bp-006h], strict byte 00010h ; 83 7e fa 10 11242 jnl short 07a69h ; 7d 66 11243 mov byte [bp-01eh], 012h ; c6 46 e2 12 10726 11244 xor al, al ; 30 c0 11245 mov byte [bp-01dh], al ; 88 46 e3 11246 mov byte [bp-01ch], al ; 88 46 e4 11247 mov byte [bp-01bh], al ; 88 46 e5 11248 mov byte [bp-01ah], 005h ; c6 46 e6 05 10727 11249 mov byte [bp-019h], al ; 88 46 e7 10728 mov byte [bp-018h], al ; 88 46 e8 10729 mov byte [bp-017h], al ; 88 46 e9 10730 mov byte [bp-016h], 005h ; c6 46 ea 05 10731 mov byte [bp-015h], al ; 88 46 eb 10732 push strict byte 00005h ; 6a 05 10733 lea dx, [bp-0021ah] ; 8d 96 e6 fd 11250 push dword 000000005h ; 66 6a 05 11251 lea dx, [bp-0021eh] ; 8d 96 e2 fd 10734 11252 push SS ; 16 10735 11253 push dx ; 52 10736 11254 push strict byte 00006h ; 6a 06 10737 movzx dx, byte [bp-00 8h] ; 0f b6 56 f811255 movzx dx, byte [bp-006h] ; 0f b6 56 fa 10738 11256 mov cx, ss ; 8c d1 10739 lea bx, [bp-01 ah] ; 8d 5e e610740 mov ax, word [bp-0021ch] ; 8b 86 e4 fd10741 call 07 271h ; e8 98 fb11257 lea bx, [bp-01eh] ; 8d 5e e2 11258 mov ax, di ; 89 f8 11259 call 073b3h ; e8 81 f9 10742 11260 test al, al ; 84 c0 10743 je short 076e8h ; 74 0b 10744 push 00af9h ; 68 f9 0a 11261 je short 07a44h ; 74 0e 11262 push 00b29h ; 68 29 0b 11263 push 00b49h ; 68 49 0b 10745 11264 push strict byte 00007h ; 6a 07 10746 call 018e9h ; e8 04 a2 10747 add sp, strict byte 00004h ; 83 c4 04 10748 test byte [bp-0021ah], 0e0h ; f6 86 e6 fd e0 10749 jne short 076a0h ; 75 b1 10750 test byte [bp-0021ah], 01fh ; f6 86 e6 fd 1f 10751 je near 0749dh ; 0f 84 a5 fd 10752 jmp short 076a0h ; eb a6 11265 call 018e9h ; e8 a8 9e 11266 add sp, strict byte 00006h ; 83 c4 06 11267 test byte [bp-0021eh], 0e0h ; f6 86 e2 fd e0 11268 jne short 07a54h ; 75 09 11269 test byte [bp-0021eh], 01fh ; f6 86 e2 fd 1f 11270 je near 07779h ; 0f 84 25 fd 11271 test byte [bp-0021eh], 0e0h ; f6 86 e2 fd e0 11272 jne short 079fah ; 75 9f 11273 mov al, byte [bp-0021eh] ; 8a 86 e2 fd 11274 and AL, strict byte 01fh ; 24 1f 11275 cmp AL, strict byte 005h ; 3c 05 11276 je near 07991h ; 0f 84 2a ff 11277 jmp short 079fah ; eb 91 10753 11278 leave ; c9 10754 11279 pop di ; 5f … … 10758 11283 pop bx ; 5b 10759 11284 retn ; c3 10760 _scsi_init: ; 0xf7 701LB 0x6411285 _scsi_init: ; 0xf7a70 LB 0x64 10761 11286 push bp ; 55 10762 11287 mov bp, sp ; 89 e5 10763 11288 mov dx, strict word 0000eh ; ba 0e 00 10764 11289 mov ax, strict word 00040h ; b8 40 00 10765 call 0161ch ; e8 0f 9f11290 call 0161ch ; e8 a0 9b 10766 11291 mov bx, 00122h ; bb 22 01 10767 11292 mov es, ax ; 8e c0 … … 10774 11299 ; sub ah, ah ; 2a e4 10775 11300 cmp AL, strict byte 055h ; 3c 55 10776 jne short 07 731h ; 75 0c11301 jne short 07aa0h ; 75 0c 10777 11302 xor al, al ; 30 c0 10778 11303 mov dx, 00333h ; ba 33 03 10779 11304 out DX, AL ; ee 10780 11305 mov ax, 00330h ; b8 30 03 10781 call 07 47ch ; e8 4b fd11306 call 07757h ; e8 b7 fc 10782 11307 mov AL, strict byte 055h ; b0 55 10783 11308 mov dx, 00342h ; ba 42 03 … … 10787 11312 ; sub ah, ah ; 2a e4 10788 11313 cmp AL, strict byte 055h ; 3c 55 10789 jne short 07 74ah ; 75 0c11314 jne short 07ab9h ; 75 0c 10790 11315 xor al, al ; 30 c0 10791 11316 mov dx, 00343h ; ba 43 03 10792 11317 out DX, AL ; ee 10793 11318 mov ax, 00340h ; b8 40 03 10794 call 07 47ch ; e8 32 fd11319 call 07757h ; e8 9e fc 10795 11320 mov AL, strict byte 055h ; b0 55 10796 11321 mov dx, 00352h ; ba 52 03 … … 10800 11325 ; sub ah, ah ; 2a e4 10801 11326 cmp AL, strict byte 055h ; 3c 55 10802 jne short 07 763h ; 75 0c11327 jne short 07ad2h ; 75 0c 10803 11328 xor al, al ; 30 c0 10804 11329 mov dx, 00353h ; ba 53 03 10805 11330 out DX, AL ; ee 10806 11331 mov ax, 00350h ; b8 50 03 10807 call 07 47ch ; e8 19 fd11332 call 07757h ; e8 85 fc 10808 11333 pop bp ; 5d 10809 11334 retn ; c3 10810 high_bits_save_: ; 0xf7 765LB 0x1411335 high_bits_save_: ; 0xf7ad4 LB 0x14 10811 11336 push bx ; 53 10812 11337 push bp ; 55 … … 10819 11344 pop bx ; 5b 10820 11345 retn ; c3 10821 high_bits_restore_: ; 0xf7 779LB 0x1411346 high_bits_restore_: ; 0xf7ae8 LB 0x14 10822 11347 push bx ; 53 10823 11348 push bp ; 55 … … 10830 11355 pop bx ; 5b 10831 11356 retn ; c3 10832 ahci_ctrl_set_bits_: ; 0xf7 78dLB 0x4011357 ahci_ctrl_set_bits_: ; 0xf7afc LB 0x40 10833 11358 push si ; 56 10834 11359 push di ; 57 … … 10865 11390 pop si ; 5e 10866 11391 retn ; c3 10867 ahci_ctrl_clear_bits_: ; 0xf7 7cdLB 0x4411392 ahci_ctrl_clear_bits_: ; 0xf7b3c LB 0x44 10868 11393 push si ; 56 10869 11394 push di ; 57 … … 10902 11427 pop si ; 5e 10903 11428 retn ; c3 10904 ahci_ctrl_is_bit_set_: ; 0xf7 811LB 0x3611429 ahci_ctrl_is_bit_set_: ; 0xf7b80 LB 0x36 10905 11430 push si ; 56 10906 11431 push di ; 57 … … 10924 11449 xchg dx, ax ; 92 10925 11450 test dx, di ; 85 fa 10926 jne short 07 83dh ; 75 0411451 jne short 07bach ; 75 04 10927 11452 test ax, bx ; 85 d8 10928 je short 07 841h ; 74 0411453 je short 07bb0h ; 74 04 10929 11454 mov AL, strict byte 001h ; b0 01 10930 jmp short 07 843h ; eb 0211455 jmp short 07bb2h ; eb 02 10931 11456 xor al, al ; 30 c0 10932 11457 pop bp ; 5d … … 10934 11459 pop si ; 5e 10935 11460 retn ; c3 10936 ahci_ctrl_extract_bits_: ; 0xf7 847LB 0x1b11461 ahci_ctrl_extract_bits_: ; 0xf7bb6 LB 0x1b 10937 11462 push si ; 56 10938 11463 push bp ; 55 … … 10942 11467 and dx, cx ; 21 ca 10943 11468 movzx cx, byte [bp+006h] ; 0f b6 4e 06 10944 jcxz 07 85dh ; e3 0611469 jcxz 07bcch ; e3 06 10945 11470 shr dx, 1 ; d1 ea 10946 11471 rcr ax, 1 ; d1 d8 10947 loop 07 857h ; e2 fa11472 loop 07bc6h ; e2 fa 10948 11473 pop bp ; 5d 10949 11474 pop si ; 5e 10950 11475 retn 00002h ; c2 02 00 10951 ahci_addr_to_phys_: ; 0xf7 862LB 0x1e11476 ahci_addr_to_phys_: ; 0xf7bd1 LB 0x1e 10952 11477 push bx ; 53 10953 11478 push cx ; 51 … … 10960 11485 sal ax, 1 ; d1 e0 10961 11486 rcl dx, 1 ; d1 d2 10962 loop 07 870h ; e2 fa11487 loop 07bdfh ; e2 fa 10963 11488 xor cx, cx ; 31 c9 10964 11489 add ax, bx ; 01 d8 … … 10968 11493 pop bx ; 5b 10969 11494 retn ; c3 10970 ahci_port_cmd_sync_: ; 0xf7 880LB 0xd011495 ahci_port_cmd_sync_: ; 0xf7bef LB 0xd0 10971 11496 push cx ; 51 10972 11497 push si ; 56 … … 10980 11505 mov di, word [es:si+00260h] ; 26 8b bc 60 02 10981 11506 cmp AL, strict byte 0ffh ; 3c ff 10982 je near 07 94bh ; 0f 84 aa 0011507 je near 07cbah ; 0f 84 aa 00 10983 11508 movzx cx, byte [es:si+00263h] ; 26 0f b6 8c 63 02 10984 11509 xor dx, dx ; 31 d2 … … 10992 11517 lea ax, [si+00080h] ; 8d 84 80 00 10993 11518 mov dx, es ; 8c c2 10994 call 07 862h ; e8 98 ff11519 call 07bd1h ; e8 98 ff 10995 11520 mov es, [bp-004h] ; 8e 46 fc 10996 11521 mov word [es:si+008h], ax ; 26 89 44 08 … … 11002 11527 xor cx, cx ; 31 c9 11003 11528 mov ax, di ; 89 f8 11004 call 07 78dh ; e8 a3 fe11529 call 07afch ; e8 a3 fe 11005 11530 lea ax, [si+00138h] ; 8d 84 38 01 11006 11531 cwd ; 99 … … 11029 11554 mov dx, si ; 89 f2 11030 11555 mov ax, di ; 89 f8 11031 call 07 811h ; e8 e7 fe11556 call 07b80h ; e8 e7 fe 11032 11557 test al, al ; 84 c0 11033 je short 07 90dh ; 74 df11558 je short 07c7ch ; 74 df 11034 11559 mov bx, strict word 00001h ; bb 01 00 11035 11560 xor cx, cx ; 31 c9 11036 11561 mov dx, si ; 89 f2 11037 11562 mov ax, di ; 89 f8 11038 call 07 78dh ; e8 53 fe11563 call 07afch ; e8 53 fe 11039 11564 mov dx, word [bp-006h] ; 8b 56 fa 11040 11565 add dx, 00118h ; 81 c2 18 01 … … 11042 11567 xor cx, cx ; 31 c9 11043 11568 mov ax, di ; 89 f8 11044 call 07 7cdh ; e8 82 fe11569 call 07b3ch ; e8 82 fe 11045 11570 leave ; c9 11046 11571 pop di ; 5f … … 11048 11573 pop cx ; 59 11049 11574 retn ; c3 11050 ahci_cmd_data_: ; 0xf7 950LB 0x1c511575 ahci_cmd_data_: ; 0xf7cbf LB 0x1c5 11051 11576 push cx ; 51 11052 11577 push si ; 56 … … 11070 11595 mov ax, 00080h ; b8 80 00 11071 11596 mov dx, word [bp-004h] ; 8b 56 fc 11072 call 0 8caah ; e8 1d1311597 call 0902ah ; e8 2e 13 11073 11598 mov es, [bp-004h] ; 8e 46 fc 11074 11599 mov word [es:si+00080h], 08027h ; 26 c7 84 80 00 27 80 … … 11086 11611 shr bx, 1 ; d1 eb 11087 11612 rcr ax, 1 ; d1 d8 11088 loop 07 9c0h ; e2 fa11613 loop 07d2fh ; e2 fa 11089 11614 mov es, [bp-004h] ; 8e 46 fc 11090 11615 mov byte [es:si+00085h], al ; 26 88 84 85 00 … … 11111 11636 mov bx, word [bp-010h] ; 8b 5e f0 11112 11637 xor cx, cx ; 31 c9 11113 call 08 c79h ; e8 501211638 call 08ff9h ; e8 61 12 11114 11639 push dx ; 52 11115 11640 push ax ; 50 … … 11119 11644 mov ax, 0026ah ; b8 6a 02 11120 11645 mov dx, word [bp-004h] ; 8b 56 fc 11121 call 08 b9dh ; e8 5e1111646 call 08f14h ; e8 66 11 11122 11647 mov es, [bp-004h] ; 8e 46 fc 11123 11648 movzx ax, byte [es:si+00263h] ; 26 0f b6 84 63 02 … … 11139 11664 mov es, [bp-00ch] ; 8e 46 f4 11140 11665 cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00 11141 je short 07 ab8h ; 74 2c11666 je short 07e27h ; 74 2c 11142 11667 mov dx, word [es:di+01ch] ; 26 8b 55 1c 11143 11668 dec dx ; 4a … … 11158 11683 movzx dx, byte [es:bx+00263h] ; 26 0f b6 97 63 02 11159 11684 cmp ax, dx ; 39 d0 11160 jnc short 07 ad2h ; 73 0311685 jnc short 07e41h ; 73 03 11161 11686 inc ax ; 40 11162 jmp short 07 ac2h ; eb f011687 jmp short 07e31h ; eb f0 11163 11688 mov al, byte [bp-002h] ; 8a 46 fe 11164 11689 cmp AL, strict byte 035h ; 3c 35 11165 jne short 07 adfh ; 75 0611690 jne short 07e4eh ; 75 06 11166 11691 mov byte [bp-002h], 040h ; c6 46 fe 40 11167 jmp short 07 af3h ; eb 1411692 jmp short 07e62h ; eb 14 11168 11693 cmp AL, strict byte 0a0h ; 3c a0 11169 jne short 07 aefh ; 75 0c11694 jne short 07e5eh ; 75 0c 11170 11695 or byte [bp-002h], 020h ; 80 4e fe 20 11171 11696 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 11172 jmp short 07 af3h ; eb 0411697 jmp short 07e62h ; eb 04 11173 11698 mov byte [bp-002h], 000h ; c6 46 fe 00 11174 11699 or byte [bp-002h], 005h ; 80 4e fe 05 … … 11176 11701 mov ax, word [bp-008h] ; 8b 46 f8 11177 11702 mov dx, word [bp-006h] ; 8b 56 fa 11178 call 07 880h ; e8 7c fd11703 call 07befh ; e8 7c fd 11179 11704 mov ax, word [bp-008h] ; 8b 46 f8 11180 11705 add ax, 0026ah ; 05 6a 02 11181 11706 mov dx, word [bp-006h] ; 8b 56 fa 11182 call 08 c13h ; e8 031111707 call 08f8ah ; e8 0b 11 11183 11708 leave ; c9 11184 11709 pop di ; 5f … … 11186 11711 pop cx ; 59 11187 11712 retn ; c3 11188 ahci_port_deinit_current_: ; 0xf7 b15LB 0x13f11713 ahci_port_deinit_current_: ; 0xf7e84 LB 0x13f 11189 11714 push bx ; 53 11190 11715 push cx ; 51 … … 11199 11724 mov byte [bp-002h], al ; 88 46 fe 11200 11725 cmp AL, strict byte 0ffh ; 3c ff 11201 je near 07 c4eh ; 0f 84 17 0111726 je near 07fbdh ; 0f 84 17 01 11202 11727 movzx dx, al ; 0f b6 d0 11203 11728 sal dx, 007h ; c1 e2 07 … … 11206 11731 xor cx, cx ; 31 c9 11207 11732 mov ax, si ; 89 f0 11208 call 07 7cdh ; e8 82 fc11733 call 07b3ch ; e8 82 fc 11209 11734 movzx ax, byte [bp-002h] ; 0f b6 46 fe 11210 11735 sal ax, 007h ; c1 e0 07 … … 11215 11740 xor cx, cx ; 31 c9 11216 11741 mov ax, si ; 89 f0 11217 call 07 811h ; e8 ac fc11742 call 07b80h ; e8 ac fc 11218 11743 cmp AL, strict byte 001h ; 3c 01 11219 je short 07 b4bh ; 74 e211744 je short 07ebah ; 74 e2 11220 11745 mov cx, strict word 00020h ; b9 20 00 11221 11746 xor bx, bx ; 31 db 11222 11747 mov ax, di ; 89 f8 11223 11748 mov dx, word [bp-004h] ; 8b 56 fc 11224 call 0 8caah ; e8 341111749 call 0902ah ; e8 45 11 11225 11750 lea ax, [di+00080h] ; 8d 85 80 00 11226 11751 mov cx, strict word 00040h ; b9 40 00 11227 11752 xor bx, bx ; 31 db 11228 11753 mov dx, word [bp-004h] ; 8b 56 fc 11229 call 0 8caah ; e8 251111754 call 0902ah ; e8 36 11 11230 11755 lea ax, [di+00200h] ; 8d 85 00 02 11231 11756 mov cx, strict word 00060h ; b9 60 00 11232 11757 xor bx, bx ; 31 db 11233 11758 mov dx, word [bp-004h] ; 8b 56 fc 11234 call 0 8caah ; e8 161111759 call 0902ah ; e8 27 11 11235 11760 mov ax, word [bp-006h] ; 8b 46 fa 11236 11761 add ax, 00108h ; 05 08 01 … … 11333 11858 pop bx ; 5b 11334 11859 retn ; c3 11335 ahci_port_init_: ; 0xf7 c54LB 0x20111860 ahci_port_init_: ; 0xf7fc3 LB 0x201 11336 11861 push cx ; 51 11337 11862 push si ; 56 … … 11341 11866 mov word [bp-004h], dx ; 89 56 fc 11342 11867 mov byte [bp-002h], bl ; 88 5e fe 11343 call 07 b15h ; e8 af fe11868 call 07e84h ; e8 af fe 11344 11869 movzx dx, bl ; 0f b6 d3 11345 11870 sal dx, 007h ; c1 e2 07 … … 11349 11874 mov bx, strict word 00011h ; bb 11 00 11350 11875 xor cx, cx ; 31 c9 11351 call 07 7cdh ; e8 4d fb11876 call 07b3ch ; e8 4d fb 11352 11877 movzx di, byte [bp-002h] ; 0f b6 7e fe 11353 11878 sal di, 007h ; c1 e7 07 … … 11357 11882 mov bx, 0c011h ; bb 11 c0 11358 11883 xor cx, cx ; 31 c9 11359 call 07 811h ; e8 76 fb11884 call 07b80h ; e8 76 fb 11360 11885 cmp AL, strict byte 001h ; 3c 01 11361 je short 07 c80h ; 74 e111886 je short 07fefh ; 74 e1 11362 11887 mov cx, strict word 00020h ; b9 20 00 11363 11888 xor bx, bx ; 31 db 11364 11889 mov ax, si ; 89 f0 11365 11890 mov dx, word [bp-004h] ; 8b 56 fc 11366 call 0 8caah ; e8 fe 0f11891 call 0902ah ; e8 0f 10 11367 11892 lea ax, [si+00080h] ; 8d 84 80 00 11368 11893 mov cx, strict word 00040h ; b9 40 00 11369 11894 xor bx, bx ; 31 db 11370 11895 mov dx, word [bp-004h] ; 8b 56 fc 11371 call 0 8caah ; e8 ef 0f11896 call 0902ah ; e8 00 10 11372 11897 mov ax, si ; 89 f0 11373 11898 add ah, 002h ; 80 c4 02 … … 11376 11901 xor bx, bx ; 31 db 11377 11902 mov dx, word [bp-004h] ; 8b 56 fc 11378 call 0 8caah ; e8 dc0f11903 call 0902ah ; e8 ed 0f 11379 11904 lea ax, [di+00108h] ; 8d 85 08 01 11380 11905 cwd ; 99 … … 11390 11915 mov ax, word [bp-006h] ; 8b 46 fa 11391 11916 mov dx, word [bp-004h] ; 8b 56 fc 11392 call 07 862h ; e8 71 fb11917 call 07bd1h ; e8 71 fb 11393 11918 mov es, [bp-004h] ; 8e 46 fc 11394 11919 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 … … 11435 11960 mov ax, si ; 89 f0 11436 11961 mov dx, word [bp-004h] ; 8b 56 fc 11437 call 07 862h ; e8 05 fb11962 call 07bd1h ; e8 05 fb 11438 11963 mov es, [bp-004h] ; 8e 46 fc 11439 11964 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 … … 11539 12064 pop cx ; 59 11540 12065 retn ; c3 11541 @ahci_read_sectors: ; 0xf 7e55LB 0x9112066 @ahci_read_sectors: ; 0xf81c4 LB 0x91 11542 12067 push si ; 56 11543 12068 push di ; 57 … … 11548 12073 sub di, strict byte 0000ch ; 83 ef 0c 11549 12074 cmp di, strict byte 00004h ; 83 ff 04 11550 jbe short 0 7e79h ; 76 0f12075 jbe short 081e8h ; 76 0f 11551 12076 push di ; 57 11552 push 00b 9ah ; 68 9a0b11553 push 00b ach ; 68 ac0b12077 push 00bb0h ; 68 b0 0b 12078 push 00bc2h ; 68 c2 0b 11554 12079 push strict byte 00007h ; 6a 07 11555 call 018e9h ; e8 73 9a12080 call 018e9h ; e8 04 97 11556 12081 add sp, strict byte 00008h ; 83 c4 08 11557 12082 les bx, [bp+008h] ; c4 5e 08 11558 12083 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 11559 12084 xor ax, ax ; 31 c0 11560 call 07 765h ; e8 df f812085 call 07ad4h ; e8 df f8 11561 12086 mov es, [bp+00ah] ; 8e 46 0a 11562 12087 add di, bx ; 01 df … … 11565 12090 mov dx, word [es:di+001eeh] ; 26 8b 95 ee 01 11566 12091 xor ax, ax ; 31 c0 11567 call 07 c54h ; e8 b6 fd12092 call 07fc3h ; e8 b6 fd 11568 12093 mov bx, strict word 00025h ; bb 25 00 11569 12094 mov ax, di ; 89 f8 11570 12095 mov dx, word [bp+00ah] ; 8b 56 0a 11571 call 07 950h ; e8 a7 fa12096 call 07cbfh ; e8 a7 fa 11572 12097 mov es, [bp+00ah] ; 8e 46 0a 11573 12098 mov bx, di ; 89 fb … … 11589 12114 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 11590 12115 xor ax, ax ; 31 c0 11591 call 07 779h ; e8 9b f812116 call 07ae8h ; e8 9b f8 11592 12117 xor ax, ax ; 31 c0 11593 12118 pop bp ; 5d … … 11595 12120 pop si ; 5e 11596 12121 retn 00004h ; c2 04 00 11597 @ahci_write_sectors: ; 0xf 7ee6LB 0x6d12122 @ahci_write_sectors: ; 0xf8255 LB 0x6d 11598 12123 push si ; 56 11599 12124 push bp ; 55 … … 11605 12130 sub bx, strict byte 0000ch ; 83 eb 0c 11606 12131 cmp bx, strict byte 00004h ; 83 fb 04 11607 jbe short 0 7f0eh ; 76 0f12132 jbe short 0827dh ; 76 0f 11608 12133 push bx ; 53 11609 push 00b cbh ; 68 cb0b11610 push 00b ach ; 68 ac0b12134 push 00be1h ; 68 e1 0b 12135 push 00bc2h ; 68 c2 0b 11611 12136 push strict byte 00007h ; 6a 07 11612 call 018e9h ; e8 de 9912137 call 018e9h ; e8 6f 96 11613 12138 add sp, strict byte 00008h ; 83 c4 08 11614 12139 mov es, cx ; 8e c1 11615 12140 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 11616 12141 xor ax, ax ; 31 c0 11617 call 07 765h ; e8 4b f812142 call 07ad4h ; e8 4b f8 11618 12143 mov es, cx ; 8e c1 11619 12144 add bx, si ; 01 f3 … … 11621 12146 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 11622 12147 xor ax, ax ; 31 c0 11623 call 07 c54h ; e8 26 fd12148 call 07fc3h ; e8 26 fd 11624 12149 mov bx, strict word 00035h ; bb 35 00 11625 12150 mov ax, si ; 89 f0 11626 12151 mov dx, cx ; 89 ca 11627 call 07 950h ; e8 18 fa12152 call 07cbfh ; e8 18 fa 11628 12153 mov es, cx ; 8e c1 11629 12154 mov dx, word [es:si+00ah] ; 26 8b 54 0a … … 11631 12156 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 11632 12157 xor ax, ax ; 31 c0 11633 call 07 779h ; e8 2d f812158 call 07ae8h ; e8 2d f8 11634 12159 xor ax, ax ; 31 c0 11635 12160 pop bp ; 5d 11636 12161 pop si ; 5e 11637 12162 retn 00004h ; c2 04 00 11638 ahci_cmd_packet_: ; 0xf 7f53LB 0x16e12163 ahci_cmd_packet_: ; 0xf82c2 LB 0x16e 11639 12164 push si ; 56 11640 12165 push di ; 57 … … 11646 12171 mov dx, strict word 0000eh ; ba 0e 00 11647 12172 mov ax, strict word 00040h ; b8 40 00 11648 call 0161ch ; e8 b0 9612173 call 0161ch ; e8 41 93 11649 12174 mov si, 00122h ; be 22 01 11650 12175 mov word [bp-004h], ax ; 89 46 fc 11651 12176 cmp byte [bp+00eh], 002h ; 80 7e 0e 02 11652 jne short 0 7f97h ; 75 1f11653 mov bx, 00c d6h ; bb d60c12177 jne short 08306h ; 75 1f 12178 mov bx, 00cech ; bb ec 0c 11654 12179 mov cx, ds ; 8c d9 11655 12180 mov ax, strict word 00004h ; b8 04 00 11656 call 018aeh ; e8 2b 9911657 push 00b deh ; 68 de0b11658 push 00 beeh ; 68 ee 0b12181 call 018aeh ; e8 bc 95 12182 push 00bf4h ; 68 f4 0b 12183 push 00c04h ; 68 04 0c 11659 12184 push strict byte 00004h ; 6a 04 11660 call 018e9h ; e8 5b 9912185 call 018e9h ; e8 ec 95 11661 12186 add sp, strict byte 00006h ; 83 c4 06 11662 12187 mov ax, strict word 00001h ; b8 01 00 11663 jmp near 08 0bbh ; e9 24 0112188 jmp near 0842ah ; e9 24 01 11664 12189 test byte [bp+008h], 001h ; f6 46 08 01 11665 jne short 0 7f91h ; 75 f412190 jne short 08300h ; 75 f4 11666 12191 mov ax, word [bp+00ah] ; 8b 46 0a 11667 12192 mov dx, word [bp+00ch] ; 8b 56 0c … … 11669 12194 sal ax, 1 ; d1 e0 11670 12195 rcl dx, 1 ; d1 d2 11671 loop 0 7fa6h ; e2 fa12196 loop 08315h ; e2 fa 11672 12197 mov es, [bp-004h] ; 8e 46 fc 11673 12198 mov word [es:si], ax ; 26 89 04 … … 11681 12206 mov dx, word [bp+00ch] ; 8b 56 0c 11682 12207 xor cx, cx ; 31 c9 11683 call 08 c40h ; e8 6d0c12208 call 08fc0h ; e8 7e 0c 11684 12209 mov word [es:si+00ah], ax ; 26 89 44 0a 11685 12210 xor di, di ; 31 ff … … 11691 12216 xor ax, ax ; 31 c0 11692 12217 mov dx, word [bp-006h] ; 8b 56 fa 11693 call 07 765h ; e8 72 f712218 call 07ad4h ; e8 72 f7 11694 12219 mov es, [bp-004h] ; 8e 46 fc 11695 12220 mov bx, word [bp-010h] ; 8b 5e f0 … … 11698 12223 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 11699 12224 xor ax, ax ; 31 c0 11700 call 07 c54h ; e8 49 fc12225 call 07fc3h ; e8 49 fc 11701 12226 movzx ax, byte [bp-002h] ; 0f b6 46 fe 11702 12227 push ax ; 50 … … 11705 12230 mov ax, 000c0h ; b8 c0 00 11706 12231 mov dx, word [bp-006h] ; 8b 56 fa 11707 call 0 8cb7h ; e8 980c12232 call 09037h ; e8 a9 0c 11708 12233 mov es, [bp-004h] ; 8e 46 fc 11709 12234 mov word [es:si+014h], di ; 26 89 7c 14 … … 11712 12237 mov ax, word [es:si+01ah] ; 26 8b 44 1a 11713 12238 test ax, ax ; 85 c0 11714 je short 08 05dh ; 74 2712239 je short 083cch ; 74 27 11715 12240 dec ax ; 48 11716 12241 mov es, [bp-006h] ; 8e 46 fa … … 11725 12250 mov ax, si ; 89 f0 11726 12251 mov dx, word [bp-004h] ; 8b 56 fc 11727 call 07 950h ; e8 e8 f812252 call 07cbfh ; e8 e8 f8 11728 12253 les bx, [bp-00ah] ; c4 5e f6 11729 12254 mov ax, word [es:bx+004h] ; 26 8b 47 04 … … 11748 12273 mov ax, word [bp-00ah] ; 8b 46 f6 11749 12274 mov dx, word [bp-008h] ; 8b 56 f8 11750 call 07 779h ; e8 d2 f612275 call 07ae8h ; e8 d2 f6 11751 12276 les bx, [bp-00ah] ; c4 5e f6 11752 12277 mov ax, word [es:bx+006h] ; 26 8b 47 06 11753 12278 or ax, word [es:bx+004h] ; 26 0b 47 04 11754 jne short 08 0b9h ; 75 0512279 jne short 08428h ; 75 05 11755 12280 mov ax, strict word 00004h ; b8 04 00 11756 jmp short 08 0bbh ; eb 0212281 jmp short 0842ah ; eb 02 11757 12282 xor ax, ax ; 31 c0 11758 12283 leave ; c9 … … 11760 12285 pop si ; 5e 11761 12286 retn 0000ch ; c2 0c 00 11762 ahci_port_detect_device_: ; 0xf8 0c1 LB 0x3c312287 ahci_port_detect_device_: ; 0xf8430 LB 0x3cb 11763 12288 push cx ; 51 11764 12289 push si ; 56 11765 12290 push di ; 57 11766 enter 0022 0h, 000h ; c8 2002 0012291 enter 00222h, 000h ; c8 22 02 00 11767 12292 mov di, ax ; 89 c7 11768 12293 mov word [bp-00ah], dx ; 89 56 f6 … … 11770 12295 movzx cx, bl ; 0f b6 cb 11771 12296 mov bx, cx ; 89 cb 11772 call 07 c54h ; e8 7c fb12297 call 07fc3h ; e8 7c fb 11773 12298 mov dx, strict word 0000eh ; ba 0e 00 11774 12299 mov ax, strict word 00040h ; b8 40 00 11775 call 0161ch ; e8 3b 9511776 mov word [bp-01 eh], ax ; 89 46 e212300 call 0161ch ; e8 cc 91 12301 mov word [bp-01ah], ax ; 89 46 e6 11777 12302 mov si, 00122h ; be 22 01 11778 12303 mov word [bp-008h], ax ; 89 46 f8 11779 mov word [bp-0 0eh], si ; 89 76 f212304 mov word [bp-01ch], si ; 89 76 e4 11780 12305 mov word [bp-00ch], ax ; 89 46 f4 11781 12306 sal cx, 007h ; c1 e1 07 11782 mov word [bp-01 2h], cx ; 89 4e ee12307 mov word [bp-016h], cx ; 89 4e ea 11783 12308 mov ax, cx ; 89 c8 11784 12309 add ax, 0012ch ; 05 2c 01 11785 12310 cwd ; 99 11786 mov word [bp-0 20h], ax ; 89 46 e012311 mov word [bp-018h], ax ; 89 46 e8 11787 12312 mov bx, dx ; 89 d3 11788 12313 mov es, [bp-00ah] ; 8e 46 f6 … … 11806 12331 mov es, [bp-00ah] ; 8e 46 f6 11807 12332 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 11808 mov ax, word [bp-0 20h] ; 8b 46 e012333 mov ax, word [bp-018h] ; 8b 46 e8 11809 12334 mov cx, bx ; 89 d9 11810 12335 xchg cx, ax ; 91 … … 11823 12348 ; mov ax, cx ; 8b c1 11824 12349 out DX, eax ; 66 ef 11825 mov ax, word [bp-01 2h] ; 8b 46 ee12350 mov ax, word [bp-016h] ; 8b 46 ea 11826 12351 add ax, 00128h ; 05 28 01 11827 12352 cwd ; 99 … … 11846 12371 mov bx, strict word 0000fh ; bb 0f 00 11847 12372 xor cx, cx ; 31 c9 11848 call 07 847h ; e8 b2 f612373 call 07bb6h ; e8 b2 f6 11849 12374 cmp ax, strict word 00003h ; 3d 03 00 11850 jne near 08 47fh ; 0f 85 e30212375 jne near 087f6h ; 0f 85 eb 02 11851 12376 mov es, [bp-008h] ; 8e 46 f8 11852 12377 mov al, byte [es:si+001edh] ; 26 8a 84 ed 01 11853 12378 mov byte [bp-004h], al ; 88 46 fc 11854 12379 cmp AL, strict byte 004h ; 3c 04 11855 jnc near 08 47fh ; 0f 83 d20211856 mov dx, word [bp-01 2h] ; 8b 56 ee12380 jnc near 087f6h ; 0f 83 da 02 12381 mov dx, word [bp-016h] ; 8b 56 ea 11857 12382 add dx, 00118h ; 81 c2 18 01 11858 12383 mov es, [bp-00ah] ; 8e 46 f6 … … 11860 12385 mov bx, strict word 00010h ; bb 10 00 11861 12386 xor cx, cx ; 31 c9 11862 call 07 78dh ; e8 c9 f511863 mov ax, word [bp-01 2h] ; 8b 46 ee12387 call 07afch ; e8 c9 f5 12388 mov ax, word [bp-016h] ; 8b 46 ea 11864 12389 add ax, 00124h ; 05 24 01 11865 12390 cwd ; 99 12391 mov es, [bp-00ah] ; 8e 46 f6 12392 mov bx, word [es:di+00260h] ; 26 8b 9d 60 02 11866 12393 mov cx, dx ; 89 d1 11867 mov es, [bp-00ah] ; 8e 46 f6 11868 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 12394 mov dx, bx ; 89 da 11869 12395 xchg cx, ax ; 91 11870 12396 sal eax, 010h ; 66 c1 e0 10 … … 11885 12411 add cl, 00ch ; 80 c1 0c 11886 12412 test dx, dx ; 85 d2 11887 jne near 08 3d9h ; 0f 85 d70112413 jne near 08748h ; 0f 85 d5 01 11888 12414 cmp bx, 00101h ; 81 fb 01 01 11889 jne near 08 3d9h ; 0f 85 cf0112415 jne near 08748h ; 0f 85 cd 01 11890 12416 mov es, [bp-008h] ; 8e 46 f8 11891 12417 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h 11892 12418 ; mov dword [es:si], strict dword 000000000h ; 66 26 c7 04 00 00 00 00 11893 lea dx, [bp-0022 0h] ; 8d 96 e0fd12419 lea dx, [bp-00222h] ; 8d 96 de fd 11894 12420 mov word [es:si+004h], dx ; 26 89 54 04 11895 12421 mov [es:si+006h], ss ; 26 8c 54 06 … … 11898 12424 mov bx, 000ech ; bb ec 00 11899 12425 mov ax, si ; 89 f0 11900 mov dx, word [bp-01 eh] ; 8b 56 e211901 call 07 950h ; e8 1bf712426 mov dx, word [bp-01ah] ; 8b 56 e6 12427 call 07cbfh ; e8 19 f7 11902 12428 mov byte [bp-006h], cl ; 88 4e fa 11903 test byte [bp-0022 0h], 080h ; f6 86 e0fd 8012429 test byte [bp-00222h], 080h ; f6 86 de fd 80 11904 12430 db 00fh, 095h, 0c0h 11905 12431 ; setne al ; 0f 95 c0 11906 12432 xor ah, ah ; 30 e4 11907 mov dx, word [bp-0021eh] ; 8b 96 e2 fd 11908 mov word [bp-018h], dx ; 89 56 e8 11909 mov dx, word [bp-0021ah] ; 8b 96 e6 fd 12433 mov dx, word [bp-00220h] ; 8b 96 e0 fd 11910 12434 mov word [bp-014h], dx ; 89 56 ec 11911 mov dx, word [bp-00214h] ; 8b 96 ec fd 11912 mov word [bp-01ah], dx ; 89 56 e6 12435 mov dx, word [bp-0021ch] ; 8b 96 e4 fd 12436 mov word [bp-012h], dx ; 89 56 ee 12437 mov dx, word [bp-00216h] ; 8b 96 ea fd 12438 mov word [bp-010h], dx ; 89 56 f0 12439 mov di, word [bp-001aah] ; 8b be 56 fe 11913 12440 mov dx, word [bp-001a8h] ; 8b 96 58 fe 11914 mov word [bp-0 10h], dx ; 89 56 f011915 mov di, word [bp-001a6h] ; 8b be 5a fe11916 cmp di, 00fffh ; 81 ff ff 0f11917 jne short 08278h ; 75 1011918 cmp dx, strict byte 0ffffh ; 83 fa ff11919 jne short 08278h ; 75 0b12441 mov word [bp-00eh], dx ; 89 56 f2 12442 cmp dx, 00fffh ; 81 fa ff 0f 12443 jne short 085e9h ; 75 10 12444 cmp di, strict byte 0ffffh ; 83 ff ff 12445 jne short 085e9h ; 75 0b 12446 mov di, word [bp-0015ah] ; 8b be a6 fe 11920 12447 mov dx, word [bp-00158h] ; 8b 96 a8 fe 11921 mov word [bp-010h], dx ; 89 56 f0 11922 mov di, word [bp-00156h] ; 8b be aa fe 12448 mov word [bp-00eh], dx ; 89 56 f2 11923 12449 movzx bx, byte [bp-004h] ; 0f b6 5e fc 11924 12450 mov es, [bp-00ch] ; 8e 46 f4 11925 add bx, word [bp-0 0eh] ; 03 5e f212451 add bx, word [bp-01ch] ; 03 5e e4 11926 12452 mov ah, byte [bp-002h] ; 8a 66 fe 11927 12453 mov byte [es:bx+001e9h], ah ; 26 88 a7 e9 01 11928 12454 movzx dx, byte [bp-006h] ; 0f b6 56 fa 11929 12455 imul dx, dx, strict byte 00018h ; 6b d2 18 11930 mov si, word [bp-0 0eh] ; 8b 76 f212456 mov si, word [bp-01ch] ; 8b 76 e4 11931 12457 add si, dx ; 01 d6 11932 12458 mov word [es:si+01eh], 0ff05h ; 26 c7 44 1e 05 ff … … 11935 12461 mov word [es:si+024h], 00200h ; 26 c7 44 24 00 02 11936 12462 mov byte [es:si+023h], 001h ; 26 c6 44 23 01 12463 mov word [es:si+032h], di ; 26 89 7c 32 12464 mov ax, word [bp-00eh] ; 8b 46 f2 12465 mov word [es:si+034h], ax ; 26 89 44 34 12466 mov ax, word [bp-012h] ; 8b 46 ee 12467 mov word [es:si+02ch], ax ; 26 89 44 2c 12468 mov ax, word [bp-014h] ; 8b 46 ec 12469 mov word [es:si+02eh], ax ; 26 89 44 2e 11937 12470 mov ax, word [bp-010h] ; 8b 46 f0 11938 mov word [es:si+032h], ax ; 26 89 44 3211939 mov word [es:si+034h], di ; 26 89 7c 3411940 mov ax, word [bp-014h] ; 8b 46 ec11941 mov word [es:si+02ch], ax ; 26 89 44 2c11942 mov ax, word [bp-018h] ; 8b 46 e811943 mov word [es:si+02eh], ax ; 26 89 44 2e11944 mov ax, word [bp-01ah] ; 8b 46 e611945 12471 mov word [es:si+030h], ax ; 26 89 44 30 11946 12472 mov al, byte [bp-004h] ; 8a 46 fc 11947 12473 cmp AL, strict byte 001h ; 3c 01 11948 jc short 08 2e3h ; 72 0c11949 jbe short 08 2ebh ; 76 1212474 jc short 08654h ; 72 0c 12475 jbe short 0865ch ; 76 12 11950 12476 cmp AL, strict byte 003h ; 3c 03 11951 je short 08 2f3h ; 74 1612477 je short 08664h ; 74 16 11952 12478 cmp AL, strict byte 002h ; 3c 02 11953 je short 08 2efh ; 74 0e11954 jmp short 08 33ah ; eb 5712479 je short 08660h ; 74 0e 12480 jmp short 086adh ; eb 59 11955 12481 test al, al ; 84 c0 11956 jne short 08 33ah ; 75 5312482 jne short 086adh ; 75 55 11957 12483 mov DL, strict byte 040h ; b2 40 11958 jmp short 08 2f5h ; eb 0a12484 jmp short 08666h ; eb 0a 11959 12485 mov DL, strict byte 048h ; b2 48 11960 jmp short 08 2f5h ; eb 0612486 jmp short 08666h ; eb 06 11961 12487 mov DL, strict byte 050h ; b2 50 11962 jmp short 08 2f5h ; eb 0212488 jmp short 08666h ; eb 02 11963 12489 mov DL, strict byte 058h ; b2 58 11964 12490 mov al, dl ; 88 d0 … … 11966 12492 movzx bx, al ; 0f b6 d8 11967 12493 mov ax, bx ; 89 d8 11968 call 0165ch ; e8 5b 9312494 call 0165ch ; e8 ea 8f 11969 12495 test al, al ; 84 c0 11970 je short 08 33ah ; 74 3512496 je short 086adh ; 74 37 11971 12497 mov al, dl ; 88 d0 11972 12498 db 0feh, 0c0h 11973 12499 ; inc al ; fe c0 11974 12500 xor ah, ah ; 30 e4 11975 call 0165ch ; e8 4e 9312501 call 0165ch ; e8 dd 8f 11976 12502 xor ah, ah ; 30 e4 11977 12503 mov cx, ax ; 89 c1 11978 12504 sal cx, 008h ; c1 e1 08 11979 12505 movzx ax, dl ; 0f b6 c2 11980 call 0165ch ; e8 41 9312506 call 0165ch ; e8 d0 8f 11981 12507 xor ah, ah ; 30 e4 11982 12508 add ax, cx ; 01 c8 11983 mov word [bp-0 1ch], ax ; 89 46 e412509 mov word [bp-020h], ax ; 89 46 e0 11984 12510 mov al, dl ; 88 d0 11985 12511 add AL, strict byte 002h ; 04 02 11986 12512 xor ah, ah ; 30 e4 11987 call 0165ch ; e8 31 9312513 call 0165ch ; e8 c0 8f 11988 12514 xor ah, ah ; 30 e4 11989 mov word [bp-0 16h], ax ; 89 46 ea12515 mov word [bp-022h], ax ; 89 46 de 11990 12516 mov ax, bx ; 89 d8 11991 call 0165ch ; e8 27 93 11992 movzx dx, al ; 0f b6 d0 11993 jmp short 08349h ; eb 0f 11994 mov ax, word [bp-018h] ; 8b 46 e8 11995 mov word [bp-01ch], ax ; 89 46 e4 11996 mov ax, word [bp-014h] ; 8b 46 ec 11997 mov word [bp-016h], ax ; 89 46 ea 11998 mov dx, word [bp-01ah] ; 8b 56 e6 11999 mov bx, 00cd6h ; bb d6 0c 12517 call 0165ch ; e8 b6 8f 12518 xor ah, ah ; 30 e4 12519 mov word [bp-01eh], ax ; 89 46 e2 12520 jmp short 086bah ; eb 0d 12521 mov bx, di ; 89 fb 12522 mov cx, word [bp-00eh] ; 8b 4e f2 12523 mov dx, ss ; 8c d2 12524 lea ax, [bp-022h] ; 8d 46 de 12525 call 0533dh ; e8 83 cc 12526 mov bx, 00cech ; bb ec 0c 12000 12527 mov cx, ds ; 8c d9 12001 12528 mov ax, strict word 00004h ; b8 04 00 12002 call 018aeh ; e8 5a 95 12529 call 018aeh ; e8 e9 91 12530 push word [bp-00eh] ; ff 76 f2 12003 12531 push di ; 57 12004 push word [bp-010h] ; ff 76 f0 12005 push dx ; 52 12006 push word [bp-016h] ; ff 76 ea 12007 push word [bp-01ch] ; ff 76 e4 12008 push word [bp-01ah] ; ff 76 e6 12532 mov ax, word [bp-01eh] ; 8b 46 e2 12533 push ax ; 50 12534 mov ax, word [bp-022h] ; 8b 46 de 12535 push ax ; 50 12536 mov ax, word [bp-020h] ; 8b 46 e0 12537 push ax ; 50 12538 push dword [bp-012h] ; 66 ff 76 ee 12009 12539 push word [bp-014h] ; ff 76 ec 12010 push word [bp-018h] ; ff 76 e812011 12540 movzx ax, byte [bp-002h] ; 0f b6 46 fe 12012 12541 push ax ; 50 12013 12542 movzx ax, byte [bp-004h] ; 0f b6 46 fc 12014 12543 push ax ; 50 12015 push 00c 0eh ; 68 0e0c12544 push 00c24h ; 68 24 0c 12016 12545 push strict byte 00004h ; 6a 04 12017 call 018e9h ; e8 6f 9512546 call 018e9h ; e8 fb 91 12018 12547 add sp, strict byte 00018h ; 83 c4 18 12019 movzx ax, byte [bp-006h] ; 0f b6 46 fa 12020 imul ax, ax, strict byte 00018h ; 6b c0 18 12021 les si, [bp-00eh] ; c4 76 f2 12022 add si, ax ; 01 c6 12023 mov ax, word [bp-016h] ; 8b 46 ea 12024 mov word [es:si+026h], ax ; 26 89 44 26 12025 mov ax, word [bp-01ch] ; 8b 46 e4 12026 mov word [es:si+028h], ax ; 26 89 44 28 12027 mov word [es:si+02ah], dx ; 26 89 54 2a 12028 mov bx, word [bp-00eh] ; 8b 5e f2 12029 mov dl, byte [es:bx+0019eh] ; 26 8a 97 9e 01 12030 mov al, byte [bp-004h] ; 8a 46 fc 12031 add AL, strict byte 00ch ; 04 0c 12032 movzx bx, dl ; 0f b6 da 12033 add bx, word [bp-00eh] ; 03 5e f2 12034 mov byte [es:bx+0019fh], al ; 26 88 87 9f 01 12035 db 0feh, 0c2h 12036 ; inc dl ; fe c2 12037 mov bx, word [bp-00eh] ; 8b 5e f2 12038 mov byte [es:bx+0019eh], dl ; 26 88 97 9e 01 12548 movzx di, byte [bp-006h] ; 0f b6 7e fa 12549 imul di, di, strict byte 00018h ; 6b ff 18 12550 add di, word [bp-01ch] ; 03 7e e4 12551 mov es, [bp-00ch] ; 8e 46 f4 12552 lea di, [di+026h] ; 8d 7d 26 12553 push DS ; 1e 12554 push SS ; 16 12555 pop DS ; 1f 12556 lea si, [bp-022h] ; 8d 76 de 12557 movsw ; a5 12558 movsw ; a5 12559 movsw ; a5 12560 pop DS ; 1f 12561 mov bx, word [bp-01ch] ; 8b 5e e4 12562 mov al, byte [es:bx+0019eh] ; 26 8a 87 9e 01 12563 mov ah, byte [bp-004h] ; 8a 66 fc 12564 add ah, 00ch ; 80 c4 0c 12565 movzx bx, al ; 0f b6 d8 12566 add bx, word [bp-01ch] ; 03 5e e4 12567 mov byte [es:bx+0019fh], ah ; 26 88 a7 9f 01 12568 db 0feh, 0c0h 12569 ; inc al ; fe c0 12570 mov bx, word [bp-01ch] ; 8b 5e e4 12571 mov byte [es:bx+0019eh], al ; 26 88 87 9e 01 12039 12572 mov dx, strict word 00075h ; ba 75 00 12040 12573 mov ax, strict word 00040h ; b8 40 00 12041 call 01600h ; e8 3a 92 12042 mov dl, al ; 88 c2 12043 db 0feh, 0c2h 12044 ; inc dl ; fe c2 12045 movzx bx, dl ; 0f b6 da 12574 call 01600h ; e8 c9 8e 12575 db 0feh, 0c0h 12576 ; inc al ; fe c0 12577 movzx bx, al ; 0f b6 d8 12046 12578 mov dx, strict word 00075h ; ba 75 00 12047 12579 mov ax, strict word 00040h ; b8 40 00 12048 call 0160eh ; e8 38 9212049 jmp near 08 471h ; e9 980012580 call 0160eh ; e8 c9 8e 12581 jmp near 087e5h ; e9 9d 00 12050 12582 cmp dx, 0eb14h ; 81 fa 14 eb 12051 jne near 08 471h ; 0f 85 900012583 jne near 087e5h ; 0f 85 95 00 12052 12584 cmp bx, 00101h ; 81 fb 01 01 12053 jne near 08 471h ; 0f 85 880012585 jne near 087e5h ; 0f 85 8d 00 12054 12586 mov es, [bp-008h] ; 8e 46 f8 12055 12587 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h 12056 12588 ; mov dword [es:si], strict dword 000000000h ; 66 26 c7 04 00 00 00 00 12057 lea dx, [bp-0022 0h] ; 8d 96 e0fd12589 lea dx, [bp-00222h] ; 8d 96 de fd 12058 12590 mov word [es:si+004h], dx ; 26 89 54 04 12059 12591 mov [es:si+006h], ss ; 26 8c 54 06 … … 12062 12594 mov bx, 000a1h ; bb a1 00 12063 12595 mov ax, si ; 89 f0 12064 mov dx, word [bp-01 eh] ; 8b 56 e212065 call 07 950h ; e8 3c f512066 test byte [bp-0022 0h], 080h ; f6 86 e0fd 8012596 mov dx, word [bp-01ah] ; 8b 56 e6 12597 call 07cbfh ; e8 3c f5 12598 test byte [bp-00222h], 080h ; f6 86 de fd 80 12067 12599 db 00fh, 095h, 0c0h 12068 12600 ; setne al ; 0f 95 c0 12069 12601 xor ah, ah ; 30 e4 12070 mov dx, ax ; 89 c212071 12602 movzx bx, byte [bp-004h] ; 0f b6 5e fc 12072 mov es, [bp-01 eh] ; 8e 46 e212603 mov es, [bp-01ah] ; 8e 46 e6 12073 12604 add bx, si ; 01 f3 12074 mov a l, byte [bp-002h] ; 8a 46 fe12075 mov byte [es:bx+001e9h], a l ; 26 88 87 e9 0112605 mov ah, byte [bp-002h] ; 8a 66 fe 12606 mov byte [es:bx+001e9h], ah ; 26 88 a7 e9 01 12076 12607 movzx si, cl ; 0f b6 f1 12077 12608 imul si, si, strict byte 00018h ; 6b f6 18 12078 12609 add si, 00122h ; 81 c6 22 01 12079 12610 mov word [es:si+01eh], 00505h ; 26 c7 44 1e 05 05 12080 mov byte [es:si+020h], dl ; 26 88 54 2012611 mov byte [es:si+020h], al ; 26 88 44 20 12081 12612 mov word [es:si+024h], 00800h ; 26 c7 44 24 00 08 12082 les bx, [bp-00eh] ; c4 5e f2 12083 mov dl, byte [es:bx+001afh] ; 26 8a 97 af 01 12084 mov al, byte [bp-004h] ; 8a 46 fc 12085 add AL, strict byte 00ch ; 04 0c 12086 movzx bx, dl ; 0f b6 da 12087 mov es, [bp-01eh] ; 8e 46 e2 12613 mov es, [bp-00ch] ; 8e 46 f4 12614 mov bx, word [bp-01ch] ; 8b 5e e4 12615 mov al, byte [es:bx+001afh] ; 26 8a 87 af 01 12616 mov ah, byte [bp-004h] ; 8a 66 fc 12617 add ah, 00ch ; 80 c4 0c 12618 movzx bx, al ; 0f b6 d8 12619 mov es, [bp-01ah] ; 8e 46 e6 12088 12620 add bx, 00122h ; 81 c3 22 01 12089 mov byte [es:bx+001b0h], al ; 26 88 87 b0 01 12090 db 0feh, 0c2h 12091 ; inc dl ; fe c2 12092 les bx, [bp-00eh] ; c4 5e f2 12093 mov byte [es:bx+001afh], dl ; 26 88 97 af 01 12621 mov byte [es:bx+001b0h], ah ; 26 88 a7 b0 01 12622 db 0feh, 0c0h 12623 ; inc al ; fe c0 12624 mov es, [bp-00ch] ; 8e 46 f4 12625 mov bx, word [bp-01ch] ; 8b 5e e4 12626 mov byte [es:bx+001afh], al ; 26 88 87 af 01 12094 12627 inc byte [bp-004h] ; fe 46 fc 12095 12628 mov al, byte [bp-004h] ; 8a 46 fc 12096 les bx, [bp-00eh] ; c4 5e f2 12629 mov es, [bp-00ch] ; 8e 46 f4 12630 mov bx, word [bp-01ch] ; 8b 5e e4 12097 12631 mov byte [es:bx+001edh], al ; 26 88 87 ed 01 12098 12632 leave ; c9 … … 12101 12635 pop cx ; 59 12102 12636 retn ; c3 12103 ahci_mem_alloc_: ; 0xf8 484LB 0x4012637 ahci_mem_alloc_: ; 0xf87fb LB 0x40 12104 12638 push bx ; 53 12105 12639 push cx ; 51 … … 12111 12645 mov dx, 00413h ; ba 13 04 12112 12646 xor ax, ax ; 31 c0 12113 call 0161ch ; e8 88 9112647 call 0161ch ; e8 11 8e 12114 12648 test ax, ax ; 85 c0 12115 je short 08 4bdh ; 74 2512649 je short 08834h ; 74 25 12116 12650 dec ax ; 48 12117 12651 mov bx, ax ; 89 c3 … … 12120 12654 sal ax, 1 ; d1 e0 12121 12655 rcl dx, 1 ; d1 d2 12122 loop 08 4a0h ; e2 fa12656 loop 08817h ; e2 fa 12123 12657 mov si, ax ; 89 c6 12124 12658 mov di, dx ; 89 d7 … … 12126 12660 shr di, 1 ; d1 ef 12127 12661 rcr si, 1 ; d1 de 12128 loop 08 4adh ; e2 fa12662 loop 08824h ; e2 fa 12129 12663 mov dx, 00413h ; ba 13 04 12130 12664 xor ax, ax ; 31 c0 12131 call 0162ah ; e8 6f 9112665 call 0162ah ; e8 f8 8d 12132 12666 mov ax, si ; 89 f0 12133 12667 pop bp ; 5d … … 12138 12672 pop bx ; 5b 12139 12673 retn ; c3 12140 ahci_hba_init_: ; 0xf8 4c4LB 0x12012674 ahci_hba_init_: ; 0xf883b LB 0x120 12141 12675 push bx ; 53 12142 12676 push cx ; 51 … … 12148 12682 mov dx, strict word 0000eh ; ba 0e 00 12149 12683 mov ax, strict word 00040h ; b8 40 00 12150 call 0161ch ; e8 44 9112684 call 0161ch ; e8 cd 8d 12151 12685 mov bx, 00122h ; bb 22 01 12152 12686 mov word [bp-006h], ax ; 89 46 fa … … 12165 12699 shr eax, 010h ; 66 c1 e8 10 12166 12700 xchg dx, ax ; 92 12167 call 08 484h ; e8 87 ff12701 call 087fbh ; e8 87 ff 12168 12702 mov di, ax ; 89 c7 12169 12703 test ax, ax ; 85 c0 12170 je near 08 5c6h ; 0f 84 c1 0012704 je near 0893dh ; 0f 84 c1 00 12171 12705 mov es, [bp-006h] ; 8e 46 fa 12172 12706 mov word [es:bx+001eeh], di ; 26 89 bf ee 01 … … 12182 12716 mov dx, strict word 00004h ; ba 04 00 12183 12717 mov ax, si ; 89 f0 12184 call 07 78dh ; e8 54f212718 call 07afch ; e8 4c f2 12185 12719 mov ax, strict word 00004h ; b8 04 00 12186 12720 xor cx, cx ; 31 c9 … … 12199 12733 xchg dx, ax ; 92 12200 12734 test AL, strict byte 001h ; a8 01 12201 jne short 08 539h ; 75 de12735 jne short 088b0h ; 75 de 12202 12736 xor ax, ax ; 31 c0 12203 12737 xor cx, cx ; 31 c9 … … 12217 12751 mov bx, strict word 0001fh ; bb 1f 00 12218 12752 xor cx, cx ; 31 c9 12219 call 07 847h ; e8 c8f212753 call 07bb6h ; e8 c0 f2 12220 12754 db 0feh, 0c0h 12221 12755 ; inc al ; fe c0 12222 12756 mov byte [bp-004h], al ; 88 46 fc 12223 12757 mov byte [bp-002h], 000h ; c6 46 fe 00 12224 jmp short 08 593h ; eb 0912758 jmp short 0890ah ; eb 09 12225 12759 inc byte [bp-002h] ; fe 46 fe 12226 12760 cmp byte [bp-002h], 020h ; 80 7e fe 20 12227 jnc short 08 5c4h ; 73 3112761 jnc short 0893bh ; 73 31 12228 12762 movzx cx, byte [bp-002h] ; 0f b6 4e fe 12229 12763 mov ax, strict word 00001h ; b8 01 00 12230 12764 xor dx, dx ; 31 d2 12231 jcxz 08 5a4h ; e3 0612765 jcxz 0891bh ; e3 06 12232 12766 sal ax, 1 ; d1 e0 12233 12767 rcl dx, 1 ; d1 d2 12234 loop 08 59eh ; e2 fa12768 loop 08915h ; e2 fa 12235 12769 mov bx, ax ; 89 c3 12236 12770 mov cx, dx ; 89 d1 12237 12771 mov dx, strict word 0000ch ; ba 0c 00 12238 12772 mov ax, si ; 89 f0 12239 call 07 811h ; e8 61f212773 call 07b80h ; e8 59 f2 12240 12774 test al, al ; 84 c0 12241 je short 08 58ah ; 74 d612775 je short 08901h ; 74 d6 12242 12776 movzx bx, byte [bp-002h] ; 0f b6 5e fe 12243 12777 xor ax, ax ; 31 c0 12244 12778 mov dx, di ; 89 fa 12245 call 08 0c1h ; e8 02 fb12779 call 08430h ; e8 fa fa 12246 12780 dec byte [bp-004h] ; fe 4e fc 12247 jne short 08 58ah ; 75 c612781 jne short 08901h ; 75 c6 12248 12782 xor ax, ax ; 31 c0 12249 12783 leave ; c9 … … 12254 12788 pop bx ; 5b 12255 12789 retn ; c3 12256 or ax, word [di] ; 0b 05 12257 add AL, strict byte 003h ; 04 03 12258 add al, byte [bx+di] ; 02 01 12259 add byte [bx+di-0707ah], dh ; 00 b1 86 8f 12260 xchg byte [di-0647ah], dl ; 86 95 86 9b 12261 xchg byte [bx+di-0587ah], ah ; 86 a1 86 a7 12262 xchg byte [di-04e7ah], ch ; 86 ad 86 b1 12263 db 086h 12264 _ahci_init: ; 0xf85e4 LB 0xf9 12790 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 028h, 08ah, 006h, 08ah, 00ch, 08ah, 012h, 08ah, 018h 12791 db 08ah, 01eh, 08ah, 024h, 08ah, 028h, 08ah 12792 _ahci_init: ; 0xf895b LB 0xf9 12265 12793 push si ; 56 12266 12794 push di ; 57 … … 12268 12796 mov ax, 00601h ; b8 01 06 12269 12797 mov dx, strict word 00001h ; ba 01 00 12270 call 08 ad6h ; e8 e3 0412798 call 08e4dh ; e8 e3 04 12271 12799 mov dx, ax ; 89 c2 12272 12800 cmp ax, strict word 0ffffh ; 3d ff ff 12273 je near 08 6d9h ; 0f 84 dd 0012801 je near 08a50h ; 0f 84 dd 00 12274 12802 xor al, al ; 30 c0 12275 12803 shr ax, 008h ; c1 e8 08 … … 12279 12807 xor ah, ah ; 30 e4 12280 12808 mov bx, strict word 00034h ; bb 34 00 12281 call 08 afeh ; e8 ed 0412809 call 08e75h ; e8 ed 04 12282 12810 mov cl, al ; 88 c1 12283 12811 test cl, cl ; 84 c9 12284 je short 08 63ah ; 74 2312812 je short 089b1h ; 74 23 12285 12813 movzx bx, cl ; 0f b6 d9 12286 12814 movzx di, byte [bp-004h] ; 0f b6 7e fc … … 12288 12816 mov dx, di ; 89 fa 12289 12817 mov ax, si ; 89 f0 12290 call 08 afeh ; e8 d5 0412818 call 08e75h ; e8 d5 04 12291 12819 cmp AL, strict byte 012h ; 3c 12 12292 je short 08 63ah ; 74 0d12820 je short 089b1h ; 74 0d 12293 12821 mov al, cl ; 88 c8 12294 12822 db 0feh, 0c0h … … 12297 12825 mov dx, di ; 89 fa 12298 12826 mov ax, si ; 89 f0 12299 jmp short 08 60eh ; eb d412827 jmp short 08985h ; eb d4 12300 12828 test cl, cl ; 84 c9 12301 je near 08 6d9h ; 0f 84 99 0012829 je near 08a50h ; 0f 84 99 00 12302 12830 add cl, 002h ; 80 c1 02 12303 12831 movzx bx, cl ; 0f b6 d9 … … 12306 12834 mov dx, di ; 89 fa 12307 12835 mov ax, si ; 89 f0 12308 call 08 afeh ; e8 a9 0412836 call 08e75h ; e8 a9 04 12309 12837 cmp AL, strict byte 010h ; 3c 10 12310 jne near 08 6d9h ; 0f 85 7e 0012838 jne near 08a50h ; 0f 85 7e 00 12311 12839 mov byte [bp-002h], 000h ; c6 46 fe 00 12312 12840 mov al, cl ; 88 c8 … … 12315 12843 mov dx, di ; 89 fa 12316 12844 mov ax, si ; 89 f0 12317 call 08 b1fh ; e8 b2 0412845 call 08e96h ; e8 b2 04 12318 12846 mov dx, ax ; 89 c2 12319 12847 and ax, strict word 0000fh ; 25 0f 00 12320 12848 sub ax, strict word 00004h ; 2d 04 00 12321 12849 cmp ax, strict word 0000bh ; 3d 0b 00 12322 jnbe short 08 6b1h ; 77 3712850 jnbe short 08a28h ; 77 37 12323 12851 push CS ; 0e 12324 12852 pop ES ; 07 12325 12853 mov cx, strict word 00008h ; b9 08 00 12326 mov di, 08 5cdh ; bf cd 8512854 mov di, 08944h ; bf 44 89 12327 12855 repne scasb ; f2 ae 12328 12856 sal cx, 1 ; d1 e1 12329 12857 mov di, cx ; 89 cf 12330 mov ax, word [cs:di-07 a2ch] ; 2e 8b 85 d4 8512858 mov ax, word [cs:di-076b5h] ; 2e 8b 85 4b 89 12331 12859 jmp ax ; ff e0 12332 12860 mov byte [bp-002h], 010h ; c6 46 fe 10 12333 jmp short 08 6b1h ; eb 1c12861 jmp short 08a28h ; eb 1c 12334 12862 mov byte [bp-002h], 014h ; c6 46 fe 14 12335 jmp short 08 6b1h ; eb 1612863 jmp short 08a28h ; eb 16 12336 12864 mov byte [bp-002h], 018h ; c6 46 fe 18 12337 jmp short 08 6b1h ; eb 1012865 jmp short 08a28h ; eb 10 12338 12866 mov byte [bp-002h], 01ch ; c6 46 fe 1c 12339 jmp short 08 6b1h ; eb 0a12867 jmp short 08a28h ; eb 0a 12340 12868 mov byte [bp-002h], 020h ; c6 46 fe 20 12341 jmp short 08 6b1h ; eb 0412869 jmp short 08a28h ; eb 04 12342 12870 mov byte [bp-002h], 024h ; c6 46 fe 24 12343 12871 mov si, dx ; 89 d6 … … 12346 12874 mov al, byte [bp-002h] ; 8a 46 fe 12347 12875 test al, al ; 84 c0 12348 je short 08 6d9h ; 74 1912876 je short 08a50h ; 74 19 12349 12877 movzx bx, al ; 0f b6 d8 12350 12878 movzx dx, byte [bp-004h] ; 0f b6 56 fc 12351 12879 movzx ax, byte [bp-006h] ; 0f b6 46 fa 12352 call 08 b3eh ; e8 70 0412880 call 08eb5h ; e8 70 04 12353 12881 test AL, strict byte 001h ; a8 01 12354 je short 08 6d9h ; 74 0712882 je short 08a50h ; 74 07 12355 12883 and AL, strict byte 0f0h ; 24 f0 12356 12884 add ax, si ; 01 f0 12357 call 08 4c4h ; e8 eb fd12885 call 0883bh ; e8 eb fd 12358 12886 leave ; c9 12359 12887 pop di ; 5f 12360 12888 pop si ; 5e 12361 12889 retn ; c3 12362 apm_out_str_: ; 0xf8 6ddLB 0x3612890 apm_out_str_: ; 0xf8a54 LB 0x36 12363 12891 push bx ; 53 12364 12892 push bp ; 55 … … 12366 12894 mov bx, ax ; 89 c3 12367 12895 cmp byte [bx], 000h ; 80 3f 00 12368 je short 08 6f2h ; 74 0a12896 je short 08a69h ; 74 0a 12369 12897 mov al, byte [bx] ; 8a 07 12370 12898 out DX, AL ; ee … … 12373 12901 db 00ah, 0c0h 12374 12902 ; or al, al ; 0a c0 12375 jne short 08 6eah ; 75 f812903 jne short 08a61h ; 75 f8 12376 12904 pop bp ; 5d 12377 12905 pop bx ; 5b 12378 12906 retn ; c3 12379 xchg word [ss:di], ax ; 36 87 0512380 mov b yte [bx+si-079h], cl ; 88 48 8712381 arpl word [bx-077fbh], ax ; 63 87 05 8812382 mov es, [bx-077fbh] ; 8e 87 05 8812383 xchg bx, ax ; 9312384 xchg dx, bx ; 87 da12385 xchg dx, bx ; 87 da12386 xchg dx, bx ; 87 da12387 xchg bp, dx ; 87 d512388 xchg dx, bx ; 87 da12389 xchg dx, bx ; 87 da12390 xchg bp, cx ; 87 cd12391 db 087h12392 _apm_function: ; 0xf8 713LB 0xf512907 lodsw ; ad 12908 mov bh, byte [si-075h] ; 8a 7c 8b 12909 mov di, 0da8ah ; bf 8a da 12910 mov bh, byte [si-075h] ; 8a 7c 8b 12911 add ax, 07c8bh ; 05 8b 7c 12912 mov cx, word [bp+si] ; 8b 0a 12913 mov dx, word [bx+di-075h] ; 8b 51 8b 12914 push cx ; 51 12915 mov dx, word [bx+di-075h] ; 8b 51 8b 12916 dec sp ; 4c 12917 mov dx, word [bx+di-075h] ; 8b 51 8b 12918 push cx ; 51 12919 mov ax, word [si-075h] ; 8b 44 8b 12920 _apm_function: ; 0xf8a8a LB 0xf5 12393 12921 push si ; 56 12394 12922 push bp ; 55 … … 12398 12926 xor ah, ah ; 30 e4 12399 12927 cmp ax, strict word 0000eh ; 3d 0e 00 12400 jnbe near 08 7dah ; 0f 87 b3 0012928 jnbe near 08b51h ; 0f 87 b3 00 12401 12929 mov bx, ax ; 89 c3 12402 12930 add bx, ax ; 01 c3 12403 12931 mov dx, word [bp+01ah] ; 8b 56 1a 12404 12932 or dl, 001h ; 80 ca 01 12405 jmp word [cs:bx-07 90bh] ; 2e ff a7 f5 8612933 jmp word [cs:bx-07594h] ; 2e ff a7 6c 8a 12406 12934 mov word [bp+014h], 00102h ; c7 46 14 02 01 12407 12935 mov word [bp+00eh], 0504dh ; c7 46 0e 4d 50 … … 12411 12939 retn ; c3 12412 12940 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 12413 mov word [bp+00eh], 0 8d24h ; c7 46 0e 24 8d12941 mov word [bp+00eh], 090a4h ; c7 46 0e a4 90 12414 12942 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 12415 12943 mov ax, strict word 0fff0h ; b8 f0 ff … … 12440 12968 retn ; c3 12441 12969 cmp word [bp+012h], strict byte 00003h ; 83 7e 12 03 12442 je short 08 7b9h ; 74 2012970 je short 08b30h ; 74 20 12443 12971 cmp word [bp+012h], strict byte 00002h ; 83 7e 12 02 12444 je short 08 7b1h ; 74 1212972 je short 08b28h ; 74 12 12445 12973 cmp word [bp+012h], strict byte 00001h ; 83 7e 12 01 12446 jne short 08 7c1h ; 75 1c12974 jne short 08b38h ; 75 1c 12447 12975 mov dx, 08900h ; ba 00 89 12448 mov ax, 00c 46h ; b8 460c12449 call 08 6ddh ; e8 2f ff12976 mov ax, 00c5ch ; b8 5c 0c 12977 call 08a54h ; e8 2f ff 12450 12978 pop bp ; 5d 12451 12979 pop si ; 5e 12452 12980 retn ; c3 12453 12981 mov dx, 08900h ; ba 00 89 12454 mov ax, 00c 4eh ; b8 4e0c12455 jmp short 08 7abh ; eb f212982 mov ax, 00c64h ; b8 64 0c 12983 jmp short 08b22h ; eb f2 12456 12984 mov dx, 08900h ; ba 00 89 12457 mov ax, 00c 56h ; b8 560c12458 jmp short 08 7abh ; eb ea12985 mov ax, 00c6ch ; b8 6c 0c 12986 jmp short 08b22h ; eb ea 12459 12987 or ah, 00ah ; 80 cc 0a 12460 12988 mov word [bp+014h], ax ; 89 46 14 … … 12468 12996 retn ; c3 12469 12997 or ah, 080h ; 80 cc 80 12470 jmp short 08 7c4h ; eb ea12471 mov bx, 00c d6h ; bb d60c12998 jmp short 08b3bh ; eb ea 12999 mov bx, 00cech ; bb ec 0c 12472 13000 mov cx, ds ; 8c d9 12473 13001 mov ax, strict word 00004h ; b8 04 00 12474 call 018aeh ; e8 c9 9013002 call 018aeh ; e8 52 8d 12475 13003 push word [bp+00eh] ; ff 76 0e 12476 13004 push word [bp+014h] ; ff 76 14 12477 push 00c 5fh ; 68 5f0c13005 push 00c75h ; 68 75 0c 12478 13006 push strict byte 00004h ; 6a 04 12479 call 018e9h ; e8 f6 9013007 call 018e9h ; e8 7f 8d 12480 13008 add sp, strict byte 00008h ; 83 c4 08 12481 13009 mov ax, word [bp+014h] ; 8b 46 14 … … 12487 13015 pop si ; 5e 12488 13016 retn ; c3 12489 pci16_select_reg_: ; 0xf8 808LB 0x2113017 pci16_select_reg_: ; 0xf8b7f LB 0x21 12490 13018 push bx ; 53 12491 13019 push bp ; 55 … … 12503 13031 pop bx ; 5b 12504 13032 retn ; c3 12505 pci16_find_device_: ; 0xf8 829LB 0xf213033 pci16_find_device_: ; 0xf8ba0 LB 0xf2 12506 13034 push si ; 56 12507 13035 push di ; 57 … … 12515 13043 mov byte [bp-004h], 000h ; c6 46 fc 00 12516 13044 test bl, 007h ; f6 c3 07 12517 jne short 08 86fh ; 75 2d13045 jne short 08be6h ; 75 2d 12518 13046 mov dx, strict word 0000eh ; ba 0e 00 12519 13047 mov ax, bx ; 89 d8 12520 call 08 808h ; e8 be ff13048 call 08b7fh ; e8 be ff 12521 13049 mov dx, 00cfeh ; ba fe 0c 12522 13050 in AL, DX ; ec … … 12525 13053 mov byte [bp-002h], al ; 88 46 fe 12526 13054 cmp AL, strict byte 0ffh ; 3c ff 12527 jne short 08 85dh ; 75 0613055 jne short 08bd4h ; 75 06 12528 13056 add bx, strict byte 00008h ; 83 c3 08 12529 jmp near 08 8f0h ; e9 93 0013057 jmp near 08c67h ; e9 93 00 12530 13058 test byte [bp-002h], 080h ; f6 46 fe 80 12531 je short 08 86ah ; 74 0713059 je short 08be1h ; 74 07 12532 13060 mov word [bp-006h], strict word 00001h ; c7 46 fa 01 00 12533 jmp short 08 86fh ; eb 0513061 jmp short 08be6h ; eb 05 12534 13062 mov word [bp-006h], strict word 00008h ; c7 46 fa 08 00 12535 13063 mov al, byte [bp-002h] ; 8a 46 fe 12536 13064 and AL, strict byte 007h ; 24 07 12537 13065 cmp AL, strict byte 001h ; 3c 01 12538 jne short 08 897h ; 75 1f13066 jne short 08c0eh ; 75 1f 12539 13067 mov ax, bx ; 89 d8 12540 13068 shr ax, 008h ; c1 e8 08 12541 13069 test ax, ax ; 85 c0 12542 jne short 08 897h ; 75 1613070 jne short 08c0eh ; 75 16 12543 13071 mov dx, strict word 0001ah ; ba 1a 00 12544 13072 mov ax, bx ; 89 d8 12545 call 08 808h ; e8 7f ff13073 call 08b7fh ; e8 7f ff 12546 13074 mov dx, 00cfeh ; ba fe 0c 12547 13075 in AL, DX ; ec … … 12549 13077 ; sub ah, ah ; 2a e4 12550 13078 cmp al, byte [bp-004h] ; 3a 46 fc 12551 jbe short 08 897h ; 76 0313079 jbe short 08c0eh ; 76 03 12552 13080 mov byte [bp-004h], al ; 88 46 fc 12553 13081 test di, di ; 85 ff 12554 je short 08 8a0h ; 74 0513082 je short 08c17h ; 74 05 12555 13083 mov dx, strict word 00008h ; ba 08 00 12556 jmp short 08 8a2h ; eb 0213084 jmp short 08c19h ; eb 02 12557 13085 xor dx, dx ; 31 d2 12558 13086 mov ax, bx ; 89 d8 12559 call 08 808h ; e8 61 ff13087 call 08b7fh ; e8 61 ff 12560 13088 mov dx, 00cfch ; ba fc 0c 12561 13089 in eax, DX ; 66 ed … … 12568 13096 mov word [bp-00ch], strict word 00000h ; c7 46 f4 00 00 12569 13097 test di, di ; 85 ff 12570 je short 08 8d1h ; 74 0f13098 je short 08c48h ; 74 0f 12571 13099 mov cx, strict word 00008h ; b9 08 00 12572 13100 shr dx, 1 ; d1 ea 12573 13101 rcr ax, 1 ; d1 d8 12574 loop 08 8c5h ; e2 fa13102 loop 08c3ch ; e2 fa 12575 13103 mov word [bp-00ah], ax ; 89 46 f6 12576 13104 mov word [bp-008h], dx ; 89 56 f8 12577 13105 mov ax, word [bp-008h] ; 8b 46 f8 12578 13106 cmp ax, word [bp-010h] ; 3b 46 f0 12579 jne short 08 8e1h ; 75 0813107 jne short 08c58h ; 75 08 12580 13108 mov ax, word [bp-00ah] ; 8b 46 f6 12581 13109 cmp ax, word [bp-00eh] ; 3b 46 f2 12582 je short 08 8e7h ; 74 0613110 je short 08c5eh ; 74 06 12583 13111 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 12584 je short 08 8edh ; 74 0613112 je short 08c64h ; 74 06 12585 13113 dec si ; 4e 12586 13114 cmp si, strict byte 0ffffh ; 83 fe ff 12587 je short 08 8ffh ; 74 1213115 je short 08c76h ; 74 12 12588 13116 add bx, word [bp-006h] ; 03 5e fa 12589 13117 mov dx, bx ; 89 da … … 12591 13119 movzx ax, byte [bp-004h] ; 0f b6 46 fc 12592 13120 cmp dx, ax ; 39 c2 12593 jbe near 08 83dh ; 0f 86 3e ff13121 jbe near 08bb4h ; 0f 86 3e ff 12594 13122 cmp si, strict byte 0ffffh ; 83 fe ff 12595 jne short 08 908h ; 75 0413123 jne short 08c7fh ; 75 04 12596 13124 mov ax, bx ; 89 d8 12597 jmp short 08 90bh ; eb 0313125 jmp short 08c82h ; eb 03 12598 13126 mov ax, strict word 0ffffh ; b8 ff ff 12599 13127 leave ; c9 … … 12601 13129 pop si ; 5e 12602 13130 retn ; c3 12603 sti ; fb 12604 mov word [di], dx ; 89 15 12605 mov ch, byte [bx+si] ; 8a 28 12606 mov bh, byte [di] ; 8a 3d 12607 mov dl, byte [bx+si-076h] ; 8a 50 8a 12608 db 062h 12609 db 08ah 12610 _pci16_function: ; 0xf891b LB 0x1bb 13131 db 072h, 08dh, 08ch, 08dh, 09fh, 08dh, 0b4h, 08dh, 0c7h, 08dh, 0d9h, 08dh 13132 _pci16_function: ; 0xf8c92 LB 0x1bb 12611 13133 push si ; 56 12612 13134 push di ; 57 … … 12620 13142 xor ah, ah ; 30 e4 12621 13143 cmp bx, strict byte 00003h ; 83 fb 03 12622 jc short 08 952h ; 72 1a12623 jbe short 08 9aah ; 76 7013144 jc short 08cc9h ; 72 1a 13145 jbe short 08d21h ; 76 70 12624 13146 cmp bx, strict byte 0000eh ; 83 fb 0e 12625 je near 08 a76h ; 0f 84 35 0113147 je near 08dedh ; 0f 84 35 01 12626 13148 cmp bx, strict byte 00008h ; 83 fb 08 12627 jc near 08 aa5h ; 0f 82 5d 0113149 jc near 08e1ch ; 0f 82 5d 01 12628 13150 cmp bx, strict byte 0000dh ; 83 fb 0d 12629 jbe near 08 9cfh ; 0f 86 80 0012630 jmp near 08 aa5h ; e9 53 0113151 jbe near 08d46h ; 0f 86 80 00 13152 jmp near 08e1ch ; e9 53 01 12631 13153 cmp bx, strict byte 00002h ; 83 fb 02 12632 je short 08 97ah ; 74 2313154 je short 08cf1h ; 74 23 12633 13155 cmp bx, strict byte 00001h ; 83 fb 01 12634 jne near 08 aa5h ; 0f 85 47 0113156 jne near 08e1ch ; 0f 85 47 01 12635 13157 mov word [bp+024h], strict word 00001h ; c7 46 24 01 00 12636 13158 mov word [bp+018h], 00210h ; c7 46 18 10 02 … … 12638 13160 mov word [bp+01ch], 04350h ; c7 46 1c 50 43 12639 13161 mov word [bp+01eh], 02049h ; c7 46 1e 49 20 12640 jmp near 08 ad2h ; e9 58 0113162 jmp near 08e49h ; e9 58 01 12641 13163 cmp word [bp+01ch], strict byte 0ffffh ; 83 7e 1c ff 12642 jne short 08 986h ; 75 0613164 jne short 08cfdh ; 75 06 12643 13165 or ah, 083h ; 80 cc 83 12644 jmp near 08 acbh ; e9 45 0113166 jmp near 08e42h ; e9 45 01 12645 13167 mov bx, word [bp+00ch] ; 8b 5e 0c 12646 13168 mov dx, word [bp+020h] ; 8b 56 20 12647 13169 mov ax, word [bp+01ch] ; 8b 46 1c 12648 13170 xor cx, cx ; 31 c9 12649 call 08 829h ; e8 95 fe13171 call 08ba0h ; e8 95 fe 12650 13172 cmp ax, strict word 0ffffh ; 3d ff ff 12651 jne short 08 9a4h ; 75 0b13173 jne short 08d1bh ; 75 0b 12652 13174 mov ax, word [bp+024h] ; 8b 46 24 12653 13175 xor ah, ah ; 30 e4 12654 13176 or ah, 086h ; 80 cc 86 12655 jmp near 08 acbh ; e9 27 0113177 jmp near 08e42h ; e9 27 01 12656 13178 mov word [bp+018h], ax ; 89 46 18 12657 jmp near 08 ad2h ; e9 28 0113179 jmp near 08e49h ; e9 28 01 12658 13180 mov bx, word [bp+00ch] ; 8b 5e 0c 12659 13181 mov ax, word [bp+020h] ; 8b 46 20 12660 13182 mov dx, word [bp+022h] ; 8b 56 22 12661 13183 mov cx, strict word 00001h ; b9 01 00 12662 call 08 829h ; e8 70 fe13184 call 08ba0h ; e8 70 fe 12663 13185 cmp ax, strict word 0ffffh ; 3d ff ff 12664 jne short 08 9c9h ; 75 0b13186 jne short 08d40h ; 75 0b 12665 13187 mov ax, word [bp+024h] ; 8b 46 24 12666 13188 xor ah, ah ; 30 e4 12667 13189 or ah, 086h ; 80 cc 86 12668 jmp near 08 acbh ; e9 02 0113190 jmp near 08e42h ; e9 02 01 12669 13191 mov word [bp+018h], ax ; 89 46 18 12670 jmp near 08 ad2h ; e9 03 0113192 jmp near 08e49h ; e9 03 01 12671 13193 cmp word [bp+008h], 00100h ; 81 7e 08 00 01 12672 jc short 08 9dch ; 72 0613194 jc short 08d53h ; 72 06 12673 13195 or ah, 087h ; 80 cc 87 12674 jmp near 08 acbh ; e9 ef 0013196 jmp near 08e42h ; e9 ef 00 12675 13197 mov dx, word [bp+008h] ; 8b 56 08 12676 13198 mov ax, word [bp+018h] ; 8b 46 18 12677 call 08 808h ; e8 23 fe13199 call 08b7fh ; e8 23 fe 12678 13200 mov bx, word [bp+024h] ; 8b 5e 24 12679 13201 xor bh, bh ; 30 ff 12680 13202 sub bx, strict byte 00008h ; 83 eb 08 12681 13203 cmp bx, strict byte 00005h ; 83 fb 05 12682 jnbe near 08 ad2h ; 0f 87 de 0013204 jnbe near 08e49h ; 0f 87 de 00 12683 13205 add bx, bx ; 01 db 12684 jmp word [cs:bx-07 6f1h] ; 2e ff a7 0f 8913206 jmp word [cs:bx-0737ah] ; 2e ff a7 86 8c 12685 13207 mov bx, word [bp+020h] ; 8b 5e 20 12686 13208 xor bl, bl ; 30 db … … 12693 13215 or bx, ax ; 09 c3 12694 13216 mov word [bp+020h], bx ; 89 5e 20 12695 jmp near 08 ad2h ; e9 bd 0013217 jmp near 08e49h ; e9 bd 00 12696 13218 mov dx, word [bp+008h] ; 8b 56 08 12697 13219 xor dh, dh ; 30 f6 … … 12700 13222 in ax, DX ; ed 12701 13223 mov word [bp+020h], ax ; 89 46 20 12702 jmp near 08 ad2h ; e9 aa 0013224 jmp near 08e49h ; e9 aa 00 12703 13225 mov dx, 00cfch ; ba fc 0c 12704 13226 in eax, DX ; 66 ed … … 12709 13231 mov word [bp+020h], ax ; 89 46 20 12710 13232 mov word [bp+022h], dx ; 89 56 22 12711 jmp near 08 ad2h ; e9 95 0013233 jmp near 08e49h ; e9 95 00 12712 13234 mov ax, word [bp+020h] ; 8b 46 20 12713 13235 mov dx, word [bp+008h] ; 8b 56 08 … … 12716 13238 add dx, 00cfch ; 81 c2 fc 0c 12717 13239 out DX, AL ; ee 12718 jmp near 08 ad2h ; e9 82 0013240 jmp near 08e49h ; e9 82 00 12719 13241 mov ax, word [bp+020h] ; 8b 46 20 12720 13242 mov dx, word [bp+008h] ; 8b 56 08 … … 12723 13245 add dx, 00cfch ; 81 c2 fc 0c 12724 13246 out DX, ax ; ef 12725 jmp short 08 ad2h ; eb 7013247 jmp short 08e49h ; eb 70 12726 13248 mov ax, word [bp+020h] ; 8b 46 20 12727 13249 mov cx, word [bp+022h] ; 8b 4e 22 … … 12732 13254 ; mov ax, cx ; 8b c1 12733 13255 out DX, eax ; 66 ef 12734 jmp short 08 ad2h ; eb 5c13256 jmp short 08e49h ; eb 5c 12735 13257 mov bx, word [bp+008h] ; 8b 5e 08 12736 13258 mov es, [bp+028h] ; 8e 46 28 12737 13259 mov cx, word [word 00000h] ; 8b 0e 00 00 12738 13260 cmp cx, word [es:bx] ; 26 3b 0f 12739 jbe short 08 a8fh ; 76 0a13261 jbe short 08e06h ; 76 0a 12740 13262 mov ax, word [bp+024h] ; 8b 46 24 12741 13263 xor ah, ah ; 30 e4 12742 13264 or ah, 089h ; 80 cc 89 12743 jmp short 08 acbh ; eb 3c13265 jmp short 08e42h ; eb 3c 12744 13266 les di, [es:bx+002h] ; 26 c4 7f 02 12745 13267 mov si, 0f2c0h ; be c0 f2 … … 12750 13272 pop DS ; 1f 12751 13273 mov word [bp+018h], 00a00h ; c7 46 18 00 0a 12752 jmp short 08 ad2h ; eb 2d12753 mov bx, 00c d6h ; bb d60c13274 jmp short 08e49h ; eb 2d 13275 mov bx, 00cech ; bb ec 0c 12754 13276 mov cx, ds ; 8c d9 12755 13277 mov ax, strict word 00004h ; b8 04 00 12756 call 018aeh ; e8 fe 8d13278 call 018aeh ; e8 87 8a 12757 13279 mov ax, word [bp+018h] ; 8b 46 18 12758 13280 push ax ; 50 12759 13281 mov ax, word [bp+024h] ; 8b 46 24 12760 13282 push ax ; 50 12761 push 00c 92h ; 68 920c13283 push 00ca8h ; 68 a8 0c 12762 13284 push strict byte 00004h ; 6a 04 12763 call 018e9h ; e8 29 8e13285 call 018e9h ; e8 b2 8a 12764 13286 add sp, strict byte 00008h ; 83 c4 08 12765 13287 mov ax, word [bp+024h] ; 8b 46 24 … … 12772 13294 pop si ; 5e 12773 13295 retn ; c3 12774 pci_find_classcode_: ; 0xf8 ad6LB 0x2813296 pci_find_classcode_: ; 0xf8e4d LB 0x28 12775 13297 push bx ; 53 12776 13298 push cx ; 51 … … 12787 13309 int 01ah ; cd 1a 12788 13310 cmp ah, 000h ; 80 fc 00 12789 je near 08 af7h ; 0f 84 03 0013311 je near 08e6eh ; 0f 84 03 00 12790 13312 mov bx, strict word 0ffffh ; bb ff ff 12791 13313 mov ax, bx ; 89 d8 … … 12795 13317 pop bx ; 5b 12796 13318 retn ; c3 12797 pci_read_config_byte_: ; 0xf8 afeLB 0x2113319 pci_read_config_byte_: ; 0xf8e75 LB 0x21 12798 13320 push cx ; 51 12799 13321 push di ; 57 … … 12813 13335 pop cx ; 59 12814 13336 retn ; c3 12815 pci_read_config_word_: ; 0xf8 b1fLB 0x1f13337 pci_read_config_word_: ; 0xf8e96 LB 0x1f 12816 13338 push cx ; 51 12817 13339 push di ; 57 … … 12831 13353 pop cx ; 59 12832 13354 retn ; c3 12833 pci_read_config_dword_: ; 0xf8 b3eLB 0x2413355 pci_read_config_dword_: ; 0xf8eb5 LB 0x24 12834 13356 push cx ; 51 12835 13357 push di ; 57 … … 12851 13373 pop cx ; 59 12852 13374 retn ; c3 12853 vds_is_present_: ; 0xf8 b62LB 0x1d13375 vds_is_present_: ; 0xf8ed9 LB 0x1d 12854 13376 push bx ; 53 12855 13377 push bp ; 55 … … 12859 13381 mov es, ax ; 8e c0 12860 13382 test byte [es:bx], 020h ; 26 f6 07 20 12861 je short 08 b7ah ; 74 0613383 je short 08ef1h ; 74 06 12862 13384 mov ax, strict word 00001h ; b8 01 00 12863 13385 pop bp ; 5d … … 12868 13390 pop bx ; 5b 12869 13391 retn ; c3 12870 vds_real_to_lin_: ; 0xf8 b7fLB 0x1e13392 vds_real_to_lin_: ; 0xf8ef6 LB 0x1e 12871 13393 push bx ; 53 12872 13394 push cx ; 51 … … 12879 13401 sal ax, 1 ; d1 e0 12880 13402 rcl dx, 1 ; d1 d2 12881 loop 08 b8dh ; e2 fa13403 loop 08f04h ; e2 fa 12882 13404 xor cx, cx ; 31 c9 12883 13405 add ax, bx ; 01 d8 … … 12887 13409 pop bx ; 5b 12888 13410 retn ; c3 12889 vds_build_sg_list_: ; 0xf8 b9dLB 0x7613411 vds_build_sg_list_: ; 0xf8f14 LB 0x76 12890 13412 push si ; 56 12891 13413 push di ; 57 … … 12901 13423 mov bx, word [bp+00ah] ; 8b 5e 0a 12902 13424 mov word [es:di+002h], bx ; 26 89 5d 02 12903 call 08 b7fh ; e8 c3 ff13425 call 08ef6h ; e8 c3 ff 12904 13426 mov es, si ; 8e c6 12905 13427 mov word [es:di+004h], ax ; 26 89 45 04 12906 13428 mov word [es:di+006h], dx ; 26 89 55 06 12907 13429 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 12908 call 08 b62h ; e8 93 ff13430 call 08ed9h ; e8 93 ff 12909 13431 test ax, ax ; 85 c0 12910 je short 08 be6h ; 74 1313432 je short 08f5dh ; 74 13 12911 13433 mov es, si ; 8e c6 12912 13434 mov ax, 08105h ; b8 05 81 12913 13435 mov dx, strict word 00000h ; ba 00 00 12914 13436 int 04bh ; cd 4b 12915 jc near 08 be3h ; 0f 82 02 0013437 jc near 08f5ah ; 0f 82 02 00 12916 13438 db 032h, 0c0h 12917 13439 ; xor al, al ; 32 c0 12918 13440 cbw ; 98 12919 jmp short 08 c0dh ; eb 2713441 jmp short 08f84h ; eb 27 12920 13442 mov es, si ; 8e c6 12921 13443 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 12933 13455 pop si ; 5e 12934 13456 retn 00004h ; c2 04 00 12935 vds_free_sg_list_: ; 0xf8 c13 LB 0x2d13457 vds_free_sg_list_: ; 0xf8f8a LB 0x36 12936 13458 push bx ; 53 12937 13459 push di ; 57 … … 12939 13461 mov bp, sp ; 89 e5 12940 13462 mov bx, ax ; 89 c3 12941 call 08 b62h ; e8 45 ff13463 call 08ed9h ; e8 45 ff 12942 13464 test ax, ax ; 85 c0 12943 je short 08 c34h ; 74 1313465 je short 08fabh ; 74 13 12944 13466 mov di, bx ; 89 df 12945 13467 mov es, dx ; 8e c2 … … 12947 13469 mov dx, strict word 00000h ; ba 00 00 12948 13470 int 04bh ; cd 4b 12949 jc near 08 c33h ; 0f 82 02 0013471 jc near 08faah ; 0f 82 02 00 12950 13472 db 032h, 0c0h 12951 13473 ; xor al, al ; 32 c0 … … 12957 13479 pop bx ; 5b 12958 13480 retn ; c3 12959 __U4D: ; 0xf8c40 LB 0x39 13481 times 0x9 db 0 13482 __U4D: ; 0xf8fc0 LB 0x39 12960 13483 pushfw ; 9c 12961 13484 push eax ; 66 50 … … 12987 13510 popfw ; 9d 12988 13511 retn ; c3 12989 __U4M: ; 0xf8 c79 LB 0x3113512 __U4M: ; 0xf8ff9 LB 0x31 12990 13513 pushfw ; 9c 12991 13514 push eax ; 66 50 … … 13012 13535 popfw ; 9d 13013 13536 retn ; c3 13014 _fmemset_: ; 0xf 8caa LB 0xd13537 _fmemset_: ; 0xf902a LB 0xd 13015 13538 push di ; 57 13016 13539 mov es, dx ; 8e c2 … … 13022 13545 pop di ; 5f 13023 13546 retn ; c3 13024 _fmemcpy_: ; 0xf 8cb7 LB 0x3313547 _fmemcpy_: ; 0xf9037 LB 0x33 13025 13548 push bp ; 55 13026 13549 db 08bh, 0ech … … 13042 13565 leave ; c9 13043 13566 retn ; c3 13044 add byte [bx+si], al ; 00 00 13045 lea ax, [bp+si] ; 8d 02 13046 lea ax, [0068dh] ; 8d 06 8d 06 13047 lea ax, [0088dh] ; 8d 06 8d 08 13048 lea cx, [bx+si] ; 8d 08 13049 lea cx, [bp+si] ; 8d 0a 13050 lea cx, [00e8dh] ; 8d 0e 8d 0e 13051 lea dx, [bx+si] ; 8d 10 13052 lea dx, [di] ; 8d 15 13053 lea dx, [bx] ; 8d 17 13054 db 08dh 13055 apm_worker: ; 0xf8cea LB 0x3a 13567 add byte [bx+si-07d70h], al ; 00 80 90 82 13568 nop ; 90 13569 xchg byte [bx+si-06f7ah], dl ; 86 90 86 90 13570 xchg byte [bx+si-06f78h], dl ; 86 90 88 90 13571 mov byte [bx+si-06f76h], dl ; 88 90 8a 90 13572 mov ss, [bx+si-06f72h] ; 8e 90 8e 90 13573 nop ; 90 13574 nop ; 90 13575 xchg bp, ax ; 95 13576 nop ; 90 13577 xchg di, ax ; 97 13578 nop ; 90 13579 apm_worker: ; 0xf906a LB 0x3a 13056 13580 sti ; fb 13057 13581 push ax ; 50 … … 13065 13589 pop ax ; 58 13066 13590 mov AH, strict byte 053h ; b4 53 13067 jnc short 0 8d20h ; 73 2513068 jmp word [cs:bp-0 7330h] ; 2e ff a6 d0 8c13069 jmp short 0 8d1eh ; eb 1c13591 jnc short 090a0h ; 73 25 13592 jmp word [cs:bp-06fb0h] ; 2e ff a6 50 90 13593 jmp short 0909eh ; eb 1c 13070 13594 sti ; fb 13071 13595 hlt ; f4 13072 jmp short 0 8d1eh ; eb 1813073 jmp short 0 8d1eh ; eb 1613074 jmp short 0 8d20h ; eb 1613596 jmp short 0909eh ; eb 18 13597 jmp short 0909eh ; eb 16 13598 jmp short 090a0h ; eb 16 13075 13599 mov AH, strict byte 080h ; b4 80 13076 jmp short 0 8d22h ; eb 1413077 jmp short 0 8d20h ; eb 1013600 jmp short 090a2h ; eb 14 13601 jmp short 090a0h ; eb 10 13078 13602 mov ax, 00102h ; b8 02 01 13079 jmp short 0 8d1eh ; eb 0913080 jmp short 0 8d1eh ; eb 0713603 jmp short 0909eh ; eb 09 13604 jmp short 0909eh ; eb 07 13081 13605 mov BL, strict byte 000h ; b3 00 13082 13606 mov cx, strict word 00000h ; b9 00 00 13083 jmp short 0 8d1eh ; eb 0013607 jmp short 0909eh ; eb 00 13084 13608 clc ; f8 13085 13609 retn ; c3 … … 13087 13611 stc ; f9 13088 13612 retn ; c3 13089 apm_pm16_entry: ; 0xf 8d24 LB 0x1113613 apm_pm16_entry: ; 0xf90a4 LB 0x11 13090 13614 mov AH, strict byte 002h ; b4 02 13091 13615 push DS ; 1e … … 13095 13619 add bp, strict byte 00008h ; 83 c5 08 13096 13620 mov ds, bp ; 8e dd 13097 call 0 8ceah ; e8 b8 ff13621 call 0906ah ; e8 b8 ff 13098 13622 pop bp ; 5d 13099 13623 pop DS ; 1f 13100 13624 retf ; cb 13101 13625 13102 ; Padding 0x4 ccb bytes at 0xf8d3513103 times 1 9659db 013626 ; Padding 0x494b bytes at 0xf90b5 13627 times 18763 db 0 13104 13628 13105 13629 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3aa class=CODE group=AUTO … … 13148 13672 add bp, strict byte 00008h ; 83 c5 08 13149 13673 push ebp ; 66 55 13150 mov bp, 0 8d26h ; bd 26 8d13674 mov bp, 090a6h ; bd a6 90 13151 13675 add byte [bx+si], al ; 00 00 13152 13676 push ebp ; 66 55 … … 13649 14173 db 033h, 0ffh 13650 14174 ; xor di, di ; 33 ff 13651 mov cx, 07 e00h ; b9 00 7e14175 mov cx, 07ff8h ; b9 f8 7f 13652 14176 rep stosw ; f3 ab 13653 14177 db 033h, 0dbh … … 13736 14260 pop DS ; 1f 13737 14261 cld ; fc 13738 call 04 893h ; e8 da 6614262 call 04969h ; e8 b0 67 13739 14263 pop DS ; 1f 13740 14264 mov AL, strict byte 014h ; b0 14 … … 13824 14348 cld ; fc 13825 14349 call 01b25h ; e8 89 38 13826 call 01f 23h ; e8 84 3c13827 call 08 5e4h ; e8 42 a313828 call 07 701h ; e8 5c 9414350 call 01f13h ; e8 74 3c 14351 call 0895bh ; e8 b9 a6 14352 call 07a70h ; e8 cb 97 13829 14353 call 0ed2fh ; e8 87 0a 13830 14354 call 0e2d2h ; e8 27 00 … … 13833 14357 cld ; fc 13834 14358 call 01725h ; e8 74 34 13835 call 035 8dh ; e8 d9 5214359 call 0356dh ; e8 b9 52 13836 14360 sti ; fb 13837 14361 int 019h ; cd 19 … … 13958 14482 pop DS ; 1f 13959 14483 cld ; fc 13960 call 05 b9dh ; e8 5b 7414484 call 05cdfh ; e8 9d 75 13961 14485 popaw ; 61 13962 14486 pop ES ; 07 … … 14074 14598 pop DS ; 1f 14075 14599 cld ; fc 14076 call 0 4f85h ; e8 43 6714600 call 0505bh ; e8 19 68 14077 14601 popaw ; 61 14078 14602 pop DS ; 1f … … 14091 14615 pop DS ; 1f 14092 14616 cld ; fc 14093 call 0 4f85h ; e8 256714617 call 0505bh ; e8 fb 67 14094 14618 popaw ; 61 14095 14619 pop DS ; 1f … … 14190 14714 pop DS ; 1f 14191 14715 cld ; fc 14192 call 04 b9dh ; e8 ce 6114716 call 04c73h ; e8 a4 62 14193 14717 pop ES ; 07 14194 14718 popaw ; 61 … … 14216 14740 cld ; fc 14217 14741 push 0ece9h ; 68 e9 ec 14218 jmp near 035 cbh ; e9 5a 4914742 jmp near 035abh ; e9 3a 49 14219 14743 push ES ; 06 14220 14744 push ax ; 50 … … 14222 14746 push cx ; 51 14223 14747 push dx ; 52 14224 call 035 a3h ; e8 2a 4914748 call 03583h ; e8 0a 49 14225 14749 cmp AL, strict byte 000h ; 3c 00 14226 14750 je short 0ecabh ; 74 2e 14227 call 035 b7h ; e8 37 4914751 call 03597h ; e8 17 49 14228 14752 pop dx ; 5a 14229 14753 push dx ; 52 … … 14243 14767 cld ; fc 14244 14768 push 0ece9h ; 68 e9 ec 14245 jmp near 03 ba9h ; e9 124f14769 jmp near 03c06h ; e9 6f 4f 14246 14770 and dl, 0e0h ; 80 e2 e0 14247 14771 db 03ah, 0c2h … … 14283 14807 jne short 0ecc8h ; 75 06 14284 14808 push 0ece9h ; 68 e9 ec 14285 jmp near 02d f4h ; e9 2c 4114809 jmp near 02dd4h ; e9 0c 41 14286 14810 int13_notfloppy: ; 0xfecc8 LB 0x14 14287 14811 cmp dl, 0e0h ; 80 fa e0 … … 14289 14813 shr ebx, 010h ; 66 c1 eb 10 14290 14814 push bx ; 53 14291 call 0 3fc8h ; e8 f3 5214815 call 04053h ; e8 7e 53 14292 14816 pop bx ; 5b 14293 14817 sal ebx, 010h ; 66 c1 e3 10 … … 14296 14820 cmp ah, 040h ; 80 fc 40 14297 14821 jnbe short 0ece6h ; 77 05 14298 call 05 299h ; e8 b5 6514822 call 053dbh ; e8 f7 66 14299 14823 jmp short 0ece9h ; eb 03 14300 call 05 6d5h ; e8 ec 6914824 call 05817h ; e8 2e 6b 14301 14825 int13_out: ; 0xfece9 LB 0x4 14302 14826 pop DS ; 1f … … 14510 15034 pop DS ; 1f 14511 15035 cld ; fc 14512 call 06 d1bh ; e8 40 7d15036 call 06e5dh ; e8 82 7e 14513 15037 popaw ; 61 14514 15038 pop ES ; 07 … … 14558 15082 mov ax, strict word 00001h ; b8 01 00 14559 15083 push ax ; 50 14560 call 04 631h ; e8 61 5515084 call 04707h ; e8 37 56 14561 15085 inc sp ; 44 14562 15086 inc sp ; 44 … … 14565 15089 mov ax, strict word 00002h ; b8 02 00 14566 15090 push ax ; 50 14567 call 04 631h ; e8 54 5515091 call 04707h ; e8 2a 56 14568 15092 inc sp ; 44 14569 15093 inc sp ; 44 … … 14572 15096 mov ax, strict word 00003h ; b8 03 00 14573 15097 push strict byte 00003h ; 6a 03 14574 call 04 631h ; e8 46 5515098 call 04707h ; e8 1c 56 14575 15099 inc sp ; 44 14576 15100 inc sp ; 44 … … 14579 15103 mov ax, strict word 00004h ; b8 04 00 14580 15104 push ax ; 50 14581 call 04 631h ; e8 39 5515105 call 04707h ; e8 0f 56 14582 15106 inc sp ; 44 14583 15107 inc sp ; 44 … … 14923 15447 cmp ah, 0c2h ; 80 fc c2 14924 15448 je short 0f882h ; 74 0e 14925 call 05 da6h ; e8 2f 6515449 call 05ee8h ; e8 71 66 14926 15450 popaw ; 61 14927 15451 pop ES ; 07 … … 14929 15453 popfw ; 9d 14930 15454 jmp short 0f890h ; eb 13 14931 call 08 713h ; e8 93 8e15455 call 08a8ah ; e8 0a 92 14932 15456 jmp short 0f877h ; eb f5 14933 15457 int15_handler_mouse: ; 0xff882 LB 0x5 14934 call 06 995h ; e8 10 7115458 call 06ad7h ; e8 52 72 14935 15459 jmp short 0f877h ; eb f0 14936 15460 int15_handler32: ; 0xff887 LB 0x9 14937 15461 pushad ; 66 60 14938 call 06 26fh ; e8 e3 6915462 call 063b1h ; e8 25 6b 14939 15463 popad ; 66 61 14940 15464 jmp short 0f878h ; eb e8 … … 14966 15490 pop DS ; 1f 14967 15491 cld ; fc 14968 call 06 8cfh ; e8 17 7015492 call 06a11h ; e8 59 71 14969 15493 pop cx ; 59 14970 15494 jcxz 0f8c7h ; e3 0c … … 15058 15582 db 018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h 15059 15583 db 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h 15060 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 0 9eh, 08ah, 066h15061 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 0 ech, 067h, 061h, 01fh, 007h15584 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 015h, 08eh, 066h 15585 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 02eh, 069h, 061h, 01fh, 007h 15062 15586 db 0cfh 15063 15587 int70_handler: ; 0xffe8f LB 0x16 … … 15068 15592 pop DS ; 1f 15069 15593 cld ; fc 15070 call 06 5bch ; e8 24 6715594 call 066feh ; e8 66 68 15071 15595 popaw ; 61 15072 15596 pop DS ; 1f … … 15164 15688 cpu_reset: ; 0xffff0 LB 0x10 15165 15689 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 15166 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 f5h15690 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 03bh -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum
r43316 r43630 1 57dac3e8f20bd1918af25a3b6b5e6cfb*VBoxPcBios.rom1 0c14a3e4d7b29dba2a7e66be9479e668 *VBoxPcBios.rom
Note:
See TracChangeset
for help on using the changeset viewer.