Changeset 47937 in vbox for trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm
- Timestamp:
- Aug 20, 2013 4:17:35 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm
r45670 r47937 794 794 section _DATA progbits vstart=0x0 align=1 ; size=0x40 class=DATA group=DGROUP 795 795 _pktacc: ; 0xf0000 LB 0xc 796 db 000h, 000h, 000h, 000h, 000h, 000h, 0 e4h, 027h, 0f9h, 075h, 019h, 083h796 db 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 028h, 044h, 077h, 09ah, 084h 797 797 _softrst: ; 0xf000c LB 0xc 798 db 000h, 000h, 000h, 000h, 000h, 000h, 0 c7h, 02ah, 000h, 000h, 000h, 000h798 db 000h, 000h, 000h, 000h, 000h, 000h, 012h, 02bh, 02eh, 036h, 02eh, 036h 799 799 _dskacc: ; 0xf0018 LB 0x28 800 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0 33h, 027h, 0aah, 027h, 000h, 000h, 000h, 000h801 db 0 97h, 074h, 048h, 075h, 01bh, 082h, 0ach, 082h, 05fh, 033h, 032h, 05fh, 000h, 0dah, 00fh, 000h800 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 073h, 027h, 0edh, 027h, 000h, 000h, 000h, 000h 801 db 0d8h, 075h, 08eh, 076h, 096h, 083h, 02ah, 084h, 05fh, 033h, 032h, 05fh, 000h, 0dah, 00fh, 000h 802 802 db 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 803 803 … … 918 918 db 'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h 919 919 920 section CONST2 progbits vstart=0xd20 align=1 ; size=0x 3faclass=DATA group=DGROUP921 _bios_cvs_version_string: ; 0xf0d20 LB 0x1 2922 db 'VirtualBox 4. 2.51', 000h923 _bios_prefix_string: ; 0xf0d3 2LB 0x8920 section CONST2 progbits vstart=0xd20 align=1 ; size=0x400 class=DATA group=DGROUP 921 _bios_cvs_version_string: ; 0xf0d20 LB 0x18 922 db 'VirtualBox 4.3.0_BETA1', 000h, 000h 923 _bios_prefix_string: ; 0xf0d38 LB 0x8 924 924 db 'BIOS: ', 000h, 000h 925 _isotag: ; 0xf0d 3aLB 0x6925 _isotag: ; 0xf0d40 LB 0x6 926 926 db 'CD001', 000h 927 _eltorito: ; 0xf0d4 0LB 0x18927 _eltorito: ; 0xf0d46 LB 0x18 928 928 db 'EL TORITO SPECIFICATION', 000h 929 _drivetypes: ; 0xf0d5 8LB 0x28929 _drivetypes: ; 0xf0d5e LB 0x28 930 930 db 046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h 931 931 db 069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h 932 932 db 04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h 933 _scan_to_scanascii: ; 0xf0d8 0LB 0x37a933 _scan_to_scanascii: ; 0xf0d86 LB 0x37a 934 934 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h 935 935 db 000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h … … 988 988 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h 989 989 db 000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h 990 _panic_msg_keyb_buffer_full: ; 0xf1 0faLB 0x20990 _panic_msg_keyb_buffer_full: ; 0xf1100 LB 0x20 991 991 db '%s: keyboard input buffer full', 00ah, 000h 992 992 993 ; Padding 0x4e 6 bytes at 0xf111a994 times 12 54db 0993 ; Padding 0x4e0 bytes at 0xf1120 994 times 1248 db 0 995 995 996 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7 b05 class=CODE group=AUTO996 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7cd5 class=CODE group=AUTO 997 997 read_byte_: ; 0xf1600 LB 0xe 998 998 push bx ; 53 … … 1057 1057 pop si ; 5e 1058 1058 retn ; c3 1059 inb_cmos_: ; 0xf165c LB 0x11 1060 push dx ; 52 1059 inb_cmos_: ; 0xf165c LB 0x14 1061 1060 push bp ; 55 1062 1061 mov bp, sp ; 89 e5 1062 push dx ; 52 1063 1063 mov dx, strict word 00070h ; ba 70 00 1064 1064 out DX, AL ; ee … … 1067 1067 db 02ah, 0e4h 1068 1068 ; sub ah, ah ; 2a e4 1069 lea sp, [bp-002h] ; 8d 66 fe 1070 pop dx ; 5a 1069 1071 pop bp ; 5d 1070 pop dx ; 5a1071 1072 retn ; c3 1072 outb_cmos_: ; 0xf16 6d LB 0x111073 outb_cmos_: ; 0xf1670 LB 0x13 1073 1074 push bp ; 55 1074 1075 mov bp, sp ; 89 e5 … … 1079 1080 mov dx, strict word 00071h ; ba 71 00 1080 1081 out DX, AL ; ee 1082 mov sp, bp ; 89 ec 1081 1083 pop bp ; 5d 1082 1084 retn ; c3 1083 _dummy_isr_function: ; 0xf167e LB 0x69 1084 enter 00002h, 000h ; c8 02 00 00 1085 _dummy_isr_function: ; 0xf1683 LB 0x6b 1086 push bp ; 55 1087 mov bp, sp ; 89 e5 1088 push ax ; 50 1085 1089 mov CL, strict byte 0ffh ; b1 ff 1086 1090 mov AL, strict byte 00bh ; b0 0b … … 1093 1097 mov byte [bp-002h], al ; 88 46 fe 1094 1098 test al, al ; 84 c0 1095 je short 016d 9h ; 74 431099 je short 016deh ; 74 43 1096 1100 mov AL, strict byte 00bh ; b0 0b 1097 1101 mov dx, 000a0h ; ba a0 00 … … 1102 1106 mov cx, ax ; 89 c1 1103 1107 test al, al ; 84 c0 1104 je short 016 bbh ; 74 161108 je short 016c0h ; 74 16 1105 1109 mov dx, 000a1h ; ba a1 00 1106 1110 in AL, DX ; ec … … 1114 1118 mov dx, 000a0h ; ba a0 00 1115 1119 out DX, AL ; ee 1116 jmp short 016d 0h ; eb 151120 jmp short 016d5h ; eb 15 1117 1121 mov dx, strict word 00021h ; ba 21 00 1118 1122 in AL, DX ; ec … … 1132 1136 mov dx, strict word 0006bh ; ba 6b 00 1133 1137 mov ax, strict word 00040h ; b8 40 00 1134 call 0160eh ; e8 29 ff 1135 leave ; c9 1138 call 0160eh ; e8 24 ff 1139 mov sp, bp ; 89 ec 1140 pop bp ; 5d 1136 1141 retn ; c3 1137 _nmi_handler_msg: ; 0xf16e 7 LB 0x101142 _nmi_handler_msg: ; 0xf16ee LB 0x12 1138 1143 push bp ; 55 1139 1144 mov bp, sp ; 89 e5 1140 1145 push strict word 00040h ; 68 40 00 1141 1146 push strict byte 00007h ; 6a 07 1142 call 01 8e9h ; e8 f7 011147 call 0190dh ; e8 14 02 1143 1148 add sp, strict byte 00004h ; 83 c4 04 1149 mov sp, bp ; 89 ec 1144 1150 pop bp ; 5d 1145 1151 retn ; c3 1146 _int18_panic_msg: ; 0xf1 6f7 LB 0x101152 _int18_panic_msg: ; 0xf1700 LB 0x12 1147 1153 push bp ; 55 1148 1154 mov bp, sp ; 89 e5 1149 1155 push strict word 00054h ; 68 54 00 1150 1156 push strict byte 00007h ; 6a 07 1151 call 01 8e9h ; e8 e7 011157 call 0190dh ; e8 02 02 1152 1158 add sp, strict byte 00004h ; 83 c4 04 1159 mov sp, bp ; 89 ec 1153 1160 pop bp ; 5d 1154 1161 retn ; c3 1155 _log_bios_start: ; 0xf17 07 LB 0x1e1162 _log_bios_start: ; 0xf1712 LB 0x20 1156 1163 push bp ; 55 1157 1164 mov bp, sp ; 89 e5 1158 mov bx, 00d3 2h ; bb 320d1165 mov bx, 00d38h ; bb 38 0d 1159 1166 mov cx, ds ; 8c d9 1160 1167 mov ax, strict word 00004h ; b8 04 00 1161 call 018 aeh ; e8 99011168 call 018cch ; e8 ac 01 1162 1169 push 00d20h ; 68 20 0d 1163 1170 push strict word 00069h ; 68 69 00 1164 1171 push strict byte 00004h ; 6a 04 1165 call 01 8e9h ; e8 c9011172 call 0190dh ; e8 e2 01 1166 1173 add sp, strict byte 00006h ; 83 c4 06 1174 mov sp, bp ; 89 ec 1167 1175 pop bp ; 5d 1168 1176 retn ; c3 1169 _print_bios_banner: ; 0xf17 25 LB 0x2c1177 _print_bios_banner: ; 0xf1732 LB 0x2e 1170 1178 push bp ; 55 1171 1179 mov bp, sp ; 89 e5 1172 1180 mov dx, strict word 00072h ; ba 72 00 1173 1181 mov ax, strict word 00040h ; b8 40 00 1174 call 0161ch ; e8 ebfe1182 call 0161ch ; e8 de fe 1175 1183 mov cx, ax ; 89 c1 1176 1184 xor bx, bx ; 31 db 1177 1185 mov dx, strict word 00072h ; ba 72 00 1178 1186 mov ax, strict word 00040h ; b8 40 00 1179 call 0162ah ; e8 ecfe1187 call 0162ah ; e8 df fe 1180 1188 cmp cx, 01234h ; 81 f9 34 12 1181 jne short 017 4ch ; 75 081189 jne short 01759h ; 75 08 1182 1190 mov AL, strict byte 003h ; b0 03 1183 1191 mov AH, strict byte 000h ; b4 00 1184 1192 int 010h ; cd 10 1193 jmp short 0175ch ; eb 03 1194 call 071e7h ; e8 8b 5a 1195 mov sp, bp ; 89 ec 1185 1196 pop bp ; 5d 1186 1197 retn ; c3 1187 call 07103h ; e8 b4 59 1188 pop bp ; 5d 1189 retn ; c3 1190 send_: ; 0xf1751 LB 0x38 1198 send_: ; 0xf1760 LB 0x3b 1199 push bp ; 55 1200 mov bp, sp ; 89 e5 1191 1201 push bx ; 53 1192 1202 push cx ; 51 1193 push bp ; 551194 mov bp, sp ; 89 e51195 1203 mov bx, ax ; 89 c3 1196 1204 mov cl, dl ; 88 d1 1197 1205 test AL, strict byte 008h ; a8 08 1198 je short 017 64h ; 74 061206 je short 01773h ; 74 06 1199 1207 mov al, dl ; 88 d0 1200 1208 mov dx, 00403h ; ba 03 04 1201 1209 out DX, AL ; ee 1202 1210 test bl, 004h ; f6 c3 04 1203 je short 017 6fh ; 74 061211 je short 0177eh ; 74 06 1204 1212 mov al, cl ; 88 c8 1205 1213 mov dx, 00504h ; ba 04 05 1206 1214 out DX, AL ; ee 1207 1215 test bl, 002h ; f6 c3 02 1208 je short 017 85h ; 74 111216 je short 01794h ; 74 11 1209 1217 cmp cl, 00ah ; 80 f9 0a 1210 jne short 017 7fh ; 75 061218 jne short 0178eh ; 75 06 1211 1219 mov AL, strict byte 00dh ; b0 0d 1212 1220 mov AH, strict byte 00eh ; b4 0e … … 1215 1223 mov AH, strict byte 00eh ; b4 0e 1216 1224 int 010h ; cd 10 1217 pop bp ; 5d1225 lea sp, [bp-004h] ; 8d 66 fc 1218 1226 pop cx ; 59 1219 1227 pop bx ; 5b 1228 pop bp ; 5d 1220 1229 retn ; c3 1221 put_int_: ; 0xf1789 LB 0x5b 1230 put_int_: ; 0xf179b LB 0x5f 1231 push bp ; 55 1232 mov bp, sp ; 89 e5 1222 1233 push si ; 56 1223 1234 push di ; 57 1224 enter 00004h, 000h ; c8 04 00 00 1235 push ax ; 50 1236 push ax ; 50 1225 1237 mov si, ax ; 89 c6 1226 mov word [bp-00 4h], dx ; 89 56 fc1238 mov word [bp-008h], dx ; 89 56 f8 1227 1239 mov di, strict word 0000ah ; bf 0a 00 1228 1240 mov ax, dx ; 89 d0 1229 1241 cwd ; 99 1230 1242 idiv di ; f7 ff 1231 mov word [bp-00 2h], ax ; 89 46 fe1243 mov word [bp-006h], ax ; 89 46 fa 1232 1244 test ax, ax ; 85 c0 1233 je short 017 adh ; 74 0a1245 je short 017c0h ; 74 0a 1234 1246 dec bx ; 4b 1235 1247 mov dx, ax ; 89 c2 1236 1248 mov ax, si ; 89 f0 1237 call 017 89h ; e8 deff1238 jmp short 017 c8h ; eb 1b1249 call 0179bh ; e8 dd ff 1250 jmp short 017dbh ; eb 1b 1239 1251 dec bx ; 4b 1240 1252 test bx, bx ; 85 db 1241 jle short 017 bch ; 7e 0a1253 jle short 017cfh ; 7e 0a 1242 1254 mov dx, strict word 00020h ; ba 20 00 1243 1255 mov ax, si ; 89 f0 1244 call 017 51h ; e8 97ff1245 jmp short 017 adh ; eb f11256 call 01760h ; e8 93 ff 1257 jmp short 017c0h ; eb f1 1246 1258 test cx, cx ; 85 c9 1247 je short 017 c8h ; 74 081259 je short 017dbh ; 74 08 1248 1260 mov dx, strict word 0002dh ; ba 2d 00 1249 1261 mov ax, si ; 89 f0 1250 call 017 51h ; e8 89ff1251 mov al, byte [bp-00 2h] ; 8a 46 fe1262 call 01760h ; e8 85 ff 1263 mov al, byte [bp-006h] ; 8a 46 fa 1252 1264 mov DL, strict byte 00ah ; b2 0a 1253 1265 mul dl ; f6 e2 1254 mov dl, byte [bp-00 4h] ; 8a 56 fc1266 mov dl, byte [bp-008h] ; 8a 56 f8 1255 1267 sub dl, al ; 28 c2 1256 1268 mov al, dl ; 88 d0 … … 1258 1270 movzx dx, al ; 0f b6 d0 1259 1271 mov ax, si ; 89 f0 1260 call 017 51h ; e8 71ff1261 lea ve ; c91272 call 01760h ; e8 6d ff 1273 lea sp, [bp-004h] ; 8d 66 fc 1262 1274 pop di ; 5f 1263 1275 pop si ; 5e 1276 pop bp ; 5d 1264 1277 retn ; c3 1265 put_uint_: ; 0xf17e4 LB 0x5c 1278 put_uint_: ; 0xf17fa LB 0x60 1279 push bp ; 55 1280 mov bp, sp ; 89 e5 1266 1281 push si ; 56 1267 1282 push di ; 57 1268 enter 00004h, 000h ; c8 04 00 00 1283 push ax ; 50 1284 push ax ; 50 1269 1285 mov si, ax ; 89 c6 1270 mov word [bp-00 4h], dx ; 89 56 fc1286 mov word [bp-008h], dx ; 89 56 f8 1271 1287 mov ax, dx ; 89 d0 1272 1288 xor dx, dx ; 31 d2 1273 1289 mov di, strict word 0000ah ; bf 0a 00 1274 1290 div di ; f7 f7 1275 mov word [bp-00 2h], ax ; 89 46 fe1291 mov word [bp-006h], ax ; 89 46 fa 1276 1292 test ax, ax ; 85 c0 1277 je short 018 09h ; 74 0a1293 je short 01820h ; 74 0a 1278 1294 dec bx ; 4b 1279 1295 mov dx, ax ; 89 c2 1280 1296 mov ax, si ; 89 f0 1281 call 017 e4h ; e8 ddff1282 jmp short 018 24h ; eb 1b1297 call 017fah ; e8 dc ff 1298 jmp short 0183bh ; eb 1b 1283 1299 dec bx ; 4b 1284 1300 test bx, bx ; 85 db 1285 jle short 018 18h ; 7e 0a1301 jle short 0182fh ; 7e 0a 1286 1302 mov dx, strict word 00020h ; ba 20 00 1287 1303 mov ax, si ; 89 f0 1288 call 017 51h ; e8 3bff1289 jmp short 018 09h ; eb f11304 call 01760h ; e8 33 ff 1305 jmp short 01820h ; eb f1 1290 1306 test cx, cx ; 85 c9 1291 je short 018 24h ; 74 081307 je short 0183bh ; 74 08 1292 1308 mov dx, strict word 0002dh ; ba 2d 00 1293 1309 mov ax, si ; 89 f0 1294 call 017 51h ; e8 2dff1295 mov al, byte [bp-00 2h] ; 8a 46 fe1310 call 01760h ; e8 25 ff 1311 mov al, byte [bp-006h] ; 8a 46 fa 1296 1312 mov DL, strict byte 00ah ; b2 0a 1297 1313 mul dl ; f6 e2 1298 mov dl, byte [bp-00 4h] ; 8a 56 fc1314 mov dl, byte [bp-008h] ; 8a 56 f8 1299 1315 sub dl, al ; 28 c2 1300 1316 mov al, dl ; 88 d0 … … 1302 1318 movzx dx, al ; 0f b6 d0 1303 1319 mov ax, si ; 89 f0 1304 call 017 51h ; e8 15ff1305 lea ve ; c91320 call 01760h ; e8 0d ff 1321 lea sp, [bp-004h] ; 8d 66 fc 1306 1322 pop di ; 5f 1307 1323 pop si ; 5e 1324 pop bp ; 5d 1308 1325 retn ; c3 1309 put_luint_: ; 0xf1840 LB 0x6e 1326 put_luint_: ; 0xf185a LB 0x72 1327 push bp ; 55 1328 mov bp, sp ; 89 e5 1310 1329 push si ; 56 1311 1330 push di ; 57 1312 enter 00004h, 000h ; c8 04 00 00 1331 push ax ; 50 1332 push ax ; 50 1313 1333 mov si, ax ; 89 c6 1314 mov word [bp-00 2h], bx ; 89 5e fe1334 mov word [bp-006h], bx ; 89 5e fa 1315 1335 mov di, dx ; 89 d7 1316 1336 mov ax, bx ; 89 d8 … … 1318 1338 mov bx, strict word 0000ah ; bb 0a 00 1319 1339 xor cx, cx ; 31 c9 1320 call 09 010h ; e8 b7 771321 mov word [bp-00 4h], ax ; 89 46 fc1340 call 091e0h ; e8 6c 79 1341 mov word [bp-008h], ax ; 89 46 f8 1322 1342 mov cx, dx ; 89 d1 1323 1343 mov dx, ax ; 89 c2 1324 1344 or dx, cx ; 09 ca 1325 je short 018 73h ; 74 0f1326 push word [bp+00 8h] ; ff 76 081345 je short 0188eh ; 74 0f 1346 push word [bp+004h] ; ff 76 04 1327 1347 lea dx, [di-001h] ; 8d 55 ff 1328 1348 mov bx, ax ; 89 c3 1329 1349 mov ax, si ; 89 f0 1330 call 018 40h ; e8 cfff1331 jmp short 018 90h ; eb 1d1350 call 0185ah ; e8 ce ff 1351 jmp short 018abh ; eb 1d 1332 1352 dec di ; 4f 1333 1353 test di, di ; 85 ff 1334 jle short 018 82h ; 7e 0a1354 jle short 0189dh ; 7e 0a 1335 1355 mov dx, strict word 00020h ; ba 20 00 1336 1356 mov ax, si ; 89 f0 1337 call 017 51h ; e8 d1fe1338 jmp short 018 73h ; eb f11339 cmp word [bp+00 8h], strict byte 00000h ; 83 7e 08001340 je short 018 90h ; 74 081357 call 01760h ; e8 c5 fe 1358 jmp short 0188eh ; eb f1 1359 cmp word [bp+004h], strict byte 00000h ; 83 7e 04 00 1360 je short 018abh ; 74 08 1341 1361 mov dx, strict word 0002dh ; ba 2d 00 1342 1362 mov ax, si ; 89 f0 1343 call 017 51h ; e8 c1fe1344 mov al, byte [bp-00 4h] ; 8a 46 fc1363 call 01760h ; e8 b5 fe 1364 mov al, byte [bp-008h] ; 8a 46 f8 1345 1365 mov DL, strict byte 00ah ; b2 0a 1346 1366 mul dl ; f6 e2 1347 mov dl, byte [bp-00 2h] ; 8a 56 fe1367 mov dl, byte [bp-006h] ; 8a 56 fa 1348 1368 sub dl, al ; 28 c2 1349 1369 mov al, dl ; 88 d0 … … 1351 1371 movzx dx, al ; 0f b6 d0 1352 1372 mov ax, si ; 89 f0 1353 call 017 51h ; e8 a9fe1354 lea ve ; c91373 call 01760h ; e8 9d fe 1374 lea sp, [bp-004h] ; 8d 66 fc 1355 1375 pop di ; 5f 1356 1376 pop si ; 5e 1377 pop bp ; 5d 1357 1378 retn 00002h ; c2 02 00 1358 put_str_: ; 0xf18ae LB 0x1e 1379 put_str_: ; 0xf18cc LB 0x21 1380 push bp ; 55 1381 mov bp, sp ; 89 e5 1359 1382 push dx ; 52 1360 1383 push si ; 56 1361 push bp ; 551362 mov bp, sp ; 89 e51363 1384 mov si, ax ; 89 c6 1364 1385 mov es, cx ; 8e c1 1365 1386 mov dl, byte [es:bx] ; 26 8a 17 1366 1387 test dl, dl ; 84 d2 1367 je short 018 c8h ; 74 0a1388 je short 018e6h ; 74 0a 1368 1389 xor dh, dh ; 30 f6 1369 1390 mov ax, si ; 89 f0 1370 call 017 51h ; e8 8cfe1391 call 01760h ; e8 7d fe 1371 1392 inc bx ; 43 1372 jmp short 018 b5h ; eb ed1373 pop bp ; 5d1393 jmp short 018d3h ; eb ed 1394 lea sp, [bp-004h] ; 8d 66 fc 1374 1395 pop si ; 5e 1375 1396 pop dx ; 5a 1397 pop bp ; 5d 1376 1398 retn ; c3 1377 put_str_near_: ; 0xf18cc LB 0x1d 1399 put_str_near_: ; 0xf18ed LB 0x20 1400 push bp ; 55 1401 mov bp, sp ; 89 e5 1378 1402 push bx ; 53 1379 1403 push cx ; 51 1380 push bp ; 551381 mov bp, sp ; 89 e51382 1404 mov cx, ax ; 89 c1 1383 1405 mov bx, dx ; 89 d3 1384 1406 mov dl, byte [bx] ; 8a 17 1385 1407 test dl, dl ; 84 d2 1386 je short 01 8e5h ; 74 0a1408 je short 01906h ; 74 0a 1387 1409 xor dh, dh ; 30 f6 1388 1410 mov ax, cx ; 89 c8 1389 call 017 51h ; e8 6ffe1411 call 01760h ; e8 5d fe 1390 1412 inc bx ; 43 1391 jmp short 018 d5h ; eb f01392 pop bp ; 5d1413 jmp short 018f6h ; eb f0 1414 lea sp, [bp-004h] ; 8d 66 fc 1393 1415 pop cx ; 59 1394 1416 pop bx ; 5b 1417 pop bp ; 5d 1395 1418 retn ; c3 1396 bios_printf_: ; 0xf18e9 LB 0x236 1419 bios_printf_: ; 0xf190d LB 0x23b 1420 push bp ; 55 1421 mov bp, sp ; 89 e5 1397 1422 push bx ; 53 1398 1423 push cx ; 51 … … 1400 1425 push si ; 56 1401 1426 push di ; 57 1402 enter 00008h, 000h ; c8 08 00 001403 lea bx, [bp+0 12h] ; 8d 5e 121404 mov word [bp-0 08h], bx ; 89 5e f81405 mov [bp-0 06h], ss ; 8c 56 fa1427 sub sp, strict byte 00008h ; 83 ec 08 1428 lea bx, [bp+008h] ; 8d 5e 08 1429 mov word [bp-012h], bx ; 89 5e ee 1430 mov [bp-010h], ss ; 8c 56 f0 1406 1431 xor cx, cx ; 31 c9 1407 1432 xor si, si ; 31 f6 1408 mov ax, word [bp+00 eh] ; 8b 46 0e1433 mov ax, word [bp+004h] ; 8b 46 04 1409 1434 and ax, strict word 00007h ; 25 07 00 1410 1435 cmp ax, strict word 00007h ; 3d 07 00 1411 jne short 019 15h ; 75 0b1436 jne short 0193bh ; 75 0b 1412 1437 push strict word 0006eh ; 68 6e 00 1413 1438 push strict byte 00002h ; 6a 02 1414 call 01 8e9h ; e8 d7ff1439 call 0190dh ; e8 d5 ff 1415 1440 add sp, strict byte 00004h ; 83 c4 04 1416 mov bx, word [bp+0 10h] ; 8b 5e 101441 mov bx, word [bp+006h] ; 8b 5e 06 1417 1442 mov dl, byte [bx] ; 8a 17 1418 1443 test dl, dl ; 84 d2 1419 je near 01b 06h ; 0f 84 e6 011444 je near 01b2ch ; 0f 84 e6 01 1420 1445 cmp dl, 025h ; 80 fa 25 1421 jne short 019 2dh ; 75 081446 jne short 01953h ; 75 08 1422 1447 mov cx, strict word 00001h ; b9 01 00 1423 1448 xor si, si ; 31 f6 1424 jmp near 01b 00h ; e9 d3 011449 jmp near 01b26h ; e9 d3 01 1425 1450 test cx, cx ; 85 c9 1426 je near 01 af8h ; 0f 84 c5 011451 je near 01b1eh ; 0f 84 c5 01 1427 1452 cmp dl, 030h ; 80 fa 30 1428 jc short 019 4bh ; 72 131453 jc short 01971h ; 72 13 1429 1454 cmp dl, 039h ; 80 fa 39 1430 jnbe short 019 4bh ; 77 0e1455 jnbe short 01971h ; 77 0e 1431 1456 movzx ax, dl ; 0f b6 c2 1432 1457 imul si, si, strict byte 0000ah ; 6b f6 0a 1433 1458 sub ax, strict word 00030h ; 2d 30 00 1434 1459 add si, ax ; 01 c6 1435 jmp near 01b 00h ; e9 b5 011436 mov ax, word [bp-0 06h] ; 8b 46 fa1437 mov word [bp-0 06h], ax ; 89 46 fa1438 add word [bp-0 08h], strict byte 00002h ; 83 46 f8021439 les bx, [bp-0 08h] ; c4 5e f81460 jmp near 01b26h ; e9 b5 01 1461 mov ax, word [bp-010h] ; 8b 46 f0 1462 mov word [bp-010h], ax ; 89 46 f0 1463 add word [bp-012h], strict byte 00002h ; 83 46 ee 02 1464 les bx, [bp-012h] ; c4 5e ee 1440 1465 mov ax, word [es:bx-002h] ; 26 8b 47 fe 1441 mov word [bp-00 2h], ax ; 89 46 fe1466 mov word [bp-00ch], ax ; 89 46 f4 1442 1467 cmp dl, 078h ; 80 fa 78 1443 je short 019 69h ; 74 051468 je short 0198fh ; 74 05 1444 1469 cmp dl, 058h ; 80 fa 58 1445 jne short 019 b2h ; 75 491470 jne short 019d8h ; 75 49 1446 1471 test si, si ; 85 f6 1447 jne short 019 70h ; 75 031472 jne short 01996h ; 75 03 1448 1473 mov si, strict word 00004h ; be 04 00 1449 1474 cmp dl, 078h ; 80 fa 78 1450 jne short 019 7ah ; 75 051475 jne short 019a0h ; 75 05 1451 1476 mov di, strict word 00061h ; bf 61 00 1452 jmp short 019 7dh ; eb 031477 jmp short 019a3h ; eb 03 1453 1478 mov di, strict word 00041h ; bf 41 00 1454 1479 lea bx, [si-001h] ; 8d 5c ff 1455 1480 test bx, bx ; 85 db 1456 jl near 01 af4h ; 0f 8c 6e 011481 jl near 01b1ah ; 0f 8c 6e 01 1457 1482 mov cx, bx ; 89 d9 1458 1483 sal cx, 002h ; c1 e1 02 1459 mov ax, word [bp-00 2h] ; 8b 46 fe1484 mov ax, word [bp-00ch] ; 8b 46 f4 1460 1485 shr ax, CL ; d3 e8 1461 1486 xor ah, ah ; 30 e4 1462 1487 and AL, strict byte 00fh ; 24 0f 1463 1488 cmp ax, strict word 00009h ; 3d 09 00 1464 jnbe short 019 a0h ; 77 071489 jnbe short 019c6h ; 77 07 1465 1490 mov dx, ax ; 89 c2 1466 1491 add dx, strict byte 00030h ; 83 c2 30 1467 jmp short 019 a7h ; eb 071492 jmp short 019cdh ; eb 07 1468 1493 mov dx, ax ; 89 c2 1469 1494 sub dx, strict byte 0000ah ; 83 ea 0a 1470 1495 add dx, di ; 01 fa 1471 1496 xor dh, dh ; 30 f6 1472 mov ax, word [bp+00 eh] ; 8b 46 0e1473 call 017 51h ; e8 a2fd1497 mov ax, word [bp+004h] ; 8b 46 04 1498 call 01760h ; e8 8b fd 1474 1499 dec bx ; 4b 1475 jmp short 019 80h ; eb ce1500 jmp short 019a6h ; eb ce 1476 1501 cmp dl, 075h ; 80 fa 75 1477 jne short 019 c6h ; 75 0f1502 jne short 019ech ; 75 0f 1478 1503 xor cx, cx ; 31 c9 1479 1504 mov bx, si ; 89 f3 1480 1505 mov dx, ax ; 89 c2 1481 mov ax, word [bp+00 eh] ; 8b 46 0e1482 call 017 e4h ; e8 21 fe1483 jmp near 01 af4h ; e9 2e 011506 mov ax, word [bp+004h] ; 8b 46 04 1507 call 017fah ; e8 11 fe 1508 jmp near 01b1ah ; e9 2e 01 1484 1509 lea bx, [si-001h] ; 8d 5c ff 1485 1510 cmp dl, 06ch ; 80 fa 6c 1486 jne near 01a 82h ; 0f 85 b2 001487 inc word [bp+0 10h] ; ff 46 101488 mov di, word [bp+0 10h] ; 8b 7e 101511 jne near 01aa8h ; 0f 85 b2 00 1512 inc word [bp+006h] ; ff 46 06 1513 mov di, word [bp+006h] ; 8b 7e 06 1489 1514 mov dl, byte [di] ; 8a 15 1490 mov ax, word [bp-0 06h] ; 8b 46 fa1491 mov word [bp-0 06h], ax ; 89 46 fa1492 add word [bp-0 08h], strict byte 00002h ; 83 46 f8021493 les di, [bp-0 08h] ; c4 7e f81515 mov ax, word [bp-010h] ; 8b 46 f0 1516 mov word [bp-010h], ax ; 89 46 f0 1517 add word [bp-012h], strict byte 00002h ; 83 46 ee 02 1518 les di, [bp-012h] ; c4 7e ee 1494 1519 mov ax, word [es:di-002h] ; 26 8b 45 fe 1495 mov word [bp-00 4h], ax ; 89 46 fc1520 mov word [bp-00eh], ax ; 89 46 f2 1496 1521 cmp dl, 064h ; 80 fa 64 1497 jne short 01a 1eh ; 75 2d1498 test byte [bp-00 3h], 080h ; f6 46 fd801499 je short 01a 0ch ; 74 151522 jne short 01a44h ; 75 2d 1523 test byte [bp-00dh], 080h ; f6 46 f3 80 1524 je short 01a32h ; 74 15 1500 1525 push strict byte 00001h ; 6a 01 1501 mov ax, word [bp-00 2h] ; 8b 46 fe1502 mov cx, word [bp-00 4h] ; 8b 4e fc1526 mov ax, word [bp-00ch] ; 8b 46 f4 1527 mov cx, word [bp-00eh] ; 8b 4e f2 1503 1528 neg cx ; f7 d9 1504 1529 neg ax ; f7 d8 … … 1506 1531 mov dx, bx ; 89 da 1507 1532 mov bx, ax ; 89 c3 1508 jmp short 01a 15h ; eb 091533 jmp short 01a3bh ; eb 09 1509 1534 push strict byte 00000h ; 6a 00 1510 mov bx, word [bp-00 2h] ; 8b 5e fe1535 mov bx, word [bp-00ch] ; 8b 5e f4 1511 1536 mov dx, si ; 89 f2 1512 1537 mov cx, ax ; 89 c1 1513 mov ax, word [bp+00 eh] ; 8b 46 0e1514 call 018 40h ; e8 25fe1515 jmp near 01 af4h ; e9 d6 001538 mov ax, word [bp+004h] ; 8b 46 04 1539 call 0185ah ; e8 19 fe 1540 jmp near 01b1ah ; e9 d6 00 1516 1541 cmp dl, 075h ; 80 fa 75 1517 jne short 01a 25h ; 75 021518 jmp short 01a 0ch ; eb e71542 jne short 01a4bh ; 75 02 1543 jmp short 01a32h ; eb e7 1519 1544 cmp dl, 078h ; 80 fa 78 1520 je short 01a 31h ; 74 071545 je short 01a57h ; 74 07 1521 1546 cmp dl, 058h ; 80 fa 58 1522 jne near 01 af4h ; 0f 85 c3 001547 jne near 01b1ah ; 0f 85 c3 00 1523 1548 test si, si ; 85 f6 1524 jne short 01a 38h ; 75 031549 jne short 01a5eh ; 75 03 1525 1550 mov si, strict word 00008h ; be 08 00 1526 1551 cmp dl, 078h ; 80 fa 78 1527 jne short 01a 42h ; 75 051552 jne short 01a68h ; 75 05 1528 1553 mov di, strict word 00061h ; bf 61 00 1529 jmp short 01a 45h ; eb 031554 jmp short 01a6bh ; eb 03 1530 1555 mov di, strict word 00041h ; bf 41 00 1531 1556 lea bx, [si-001h] ; 8d 5c ff 1532 1557 test bx, bx ; 85 db 1533 jl near 01 af4h ; 0f 8c a6 001534 mov ax, word [bp-00 2h] ; 8b 46 fe1558 jl near 01b1ah ; 0f 8c a6 00 1559 mov ax, word [bp-00ch] ; 8b 46 f4 1535 1560 mov cx, bx ; 89 d9 1536 1561 sal cx, 002h ; c1 e1 02 1537 mov dx, word [bp-00 4h] ; 8b 56 fc1538 jcxz 01a 61h ; e3 061562 mov dx, word [bp-00eh] ; 8b 56 f2 1563 jcxz 01a87h ; e3 06 1539 1564 shr dx, 1 ; d1 ea 1540 1565 rcr ax, 1 ; d1 d8 1541 loop 01a 5bh ; e2 fa1566 loop 01a81h ; e2 fa 1542 1567 and ax, strict word 0000fh ; 25 0f 00 1543 1568 cmp ax, strict word 00009h ; 3d 09 00 1544 jnbe short 01a 70h ; 77 071569 jnbe short 01a96h ; 77 07 1545 1570 mov dx, ax ; 89 c2 1546 1571 add dx, strict byte 00030h ; 83 c2 30 1547 jmp short 01a 77h ; eb 071572 jmp short 01a9dh ; eb 07 1548 1573 mov dx, ax ; 89 c2 1549 1574 sub dx, strict byte 0000ah ; 83 ea 0a 1550 1575 add dx, di ; 01 fa 1551 1576 xor dh, dh ; 30 f6 1552 mov ax, word [bp+00 eh] ; 8b 46 0e1553 call 017 51h ; e8 d2fc1577 mov ax, word [bp+004h] ; 8b 46 04 1578 call 01760h ; e8 bb fc 1554 1579 dec bx ; 4b 1555 jmp short 01a 48h ; eb c61580 jmp short 01a6eh ; eb c6 1556 1581 cmp dl, 064h ; 80 fa 64 1557 jne short 01a a4h ; 75 1d1558 test byte [bp-00 1h], 080h ; f6 46 ff801559 je short 01a 96h ; 74 091582 jne short 01acah ; 75 1d 1583 test byte [bp-00bh], 080h ; f6 46 f5 80 1584 je short 01abch ; 74 09 1560 1585 mov dx, ax ; 89 c2 1561 1586 neg dx ; f7 da 1562 1587 mov cx, strict word 00001h ; b9 01 00 1563 jmp short 01a 9ch ; eb 061588 jmp short 01ac2h ; eb 06 1564 1589 xor cx, cx ; 31 c9 1565 1590 mov bx, si ; 89 f3 1566 1591 mov dx, ax ; 89 c2 1567 mov ax, word [bp+00 eh] ; 8b 46 0e1568 call 017 89h ; e8 e7fc1569 jmp short 01 af4h ; eb 501592 mov ax, word [bp+004h] ; 8b 46 04 1593 call 0179bh ; e8 d3 fc 1594 jmp short 01b1ah ; eb 50 1570 1595 cmp dl, 073h ; 80 fa 73 1571 jne short 01a b5h ; 75 0c1596 jne short 01adbh ; 75 0c 1572 1597 mov cx, ds ; 8c d9 1573 1598 mov bx, ax ; 89 c3 1574 mov ax, word [bp+00 eh] ; 8b 46 0e1575 call 018 aeh ; e8 fbfd1576 jmp short 01 af4h ; eb 3f1599 mov ax, word [bp+004h] ; 8b 46 04 1600 call 018cch ; e8 f3 fd 1601 jmp short 01b1ah ; eb 3f 1577 1602 cmp dl, 053h ; 80 fa 53 1578 jne short 01a d8h ; 75 1e1579 mov word [bp-00 4h], ax ; 89 46 fc1580 mov ax, word [bp-0 06h] ; 8b 46 fa1581 mov word [bp-0 06h], ax ; 89 46 fa1582 add word [bp-0 08h], strict byte 00002h ; 83 46 f8021583 les bx, [bp-0 08h] ; c4 5e f81603 jne short 01afeh ; 75 1e 1604 mov word [bp-00eh], ax ; 89 46 f2 1605 mov ax, word [bp-010h] ; 8b 46 f0 1606 mov word [bp-010h], ax ; 89 46 f0 1607 add word [bp-012h], strict byte 00002h ; 83 46 ee 02 1608 les bx, [bp-012h] ; c4 5e ee 1584 1609 mov ax, word [es:bx-002h] ; 26 8b 47 fe 1585 mov word [bp-00 2h], ax ; 89 46 fe1610 mov word [bp-00ch], ax ; 89 46 f4 1586 1611 mov bx, ax ; 89 c3 1587 mov cx, word [bp-00 4h] ; 8b 4e fc1588 jmp short 01a adh ; eb d51612 mov cx, word [bp-00eh] ; 8b 4e f2 1613 jmp short 01ad3h ; eb d5 1589 1614 cmp dl, 063h ; 80 fa 63 1590 jne short 01 ae9h ; 75 0c1591 movzx dx, byte [bp-00 2h] ; 0f b6 56 fe1592 mov ax, word [bp+00 eh] ; 8b 46 0e1593 call 017 51h ; e8 6afc1594 jmp short 01 af4h ; eb 0b1615 jne short 01b0fh ; 75 0c 1616 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 1617 mov ax, word [bp+004h] ; 8b 46 04 1618 call 01760h ; e8 53 fc 1619 jmp short 01b1ah ; eb 0b 1595 1620 push strict word 00076h ; 68 76 00 1596 1621 push strict byte 00007h ; 6a 07 1597 call 01 8e9h ; e8 f8fd1622 call 0190dh ; e8 f6 fd 1598 1623 add sp, strict byte 00004h ; 83 c4 04 1599 1624 xor cx, cx ; 31 c9 1600 jmp short 01b 00h ; eb 081625 jmp short 01b26h ; eb 08 1601 1626 xor dh, dh ; 30 f6 1602 mov ax, word [bp+00 eh] ; 8b 46 0e1603 call 017 51h ; e8 51fc1604 inc word [bp+0 10h] ; ff 46 101605 jmp near 019 15h ; e9 0f fe1627 mov ax, word [bp+004h] ; 8b 46 04 1628 call 01760h ; e8 3a fc 1629 inc word [bp+006h] ; ff 46 06 1630 jmp near 0193bh ; e9 0f fe 1606 1631 xor ax, ax ; 31 c0 1607 mov word [bp-0 08h], ax ; 89 46 f81608 mov word [bp-0 06h], ax ; 89 46 fa1609 test byte [bp+00 eh], 001h ; f6 46 0e011610 je short 01b 18h ; 74 041632 mov word [bp-012h], ax ; 89 46 ee 1633 mov word [bp-010h], ax ; 89 46 f0 1634 test byte [bp+004h], 001h ; f6 46 04 01 1635 je short 01b3eh ; 74 04 1611 1636 cli ; fa 1612 1637 hlt ; f4 1613 jmp short 01b 15h ; eb fd1614 lea ve ; c91638 jmp short 01b3bh ; eb fd 1639 lea sp, [bp-00ah] ; 8d 66 f6 1615 1640 pop di ; 5f 1616 1641 pop si ; 5e … … 1618 1643 pop cx ; 59 1619 1644 pop bx ; 5b 1645 pop bp ; 5d 1620 1646 retn ; c3 1621 _ata_init: ; 0xf1b1f LB 0xc1 1622 push si ; 56 1647 _ata_init: ; 0xf1b48 LB 0xc4 1623 1648 push bp ; 55 1624 1649 mov bp, sp ; 89 e5 1650 push si ; 56 1625 1651 mov dx, strict word 0000eh ; ba 0e 00 1626 1652 mov ax, strict word 00040h ; b8 40 00 1627 call 0161ch ; e8 f0fa1653 call 0161ch ; e8 c7 fa 1628 1654 mov si, 00122h ; be 22 01 1629 1655 mov dx, ax ; 89 c2 1630 1656 xor al, al ; 30 c0 1631 jmp short 01b 39h ; eb 041657 jmp short 01b62h ; eb 04 1632 1658 cmp AL, strict byte 004h ; 3c 04 1633 jnc short 01b 5dh ; 73 241659 jnc short 01b86h ; 73 24 1634 1660 movzx bx, al ; 0f b6 d8 1635 1661 imul bx, bx, strict byte 00006h ; 6b db 06 … … 1642 1668 db 0feh, 0c0h 1643 1669 ; inc al ; fe c0 1644 jmp short 01b 35h ; eb d81670 jmp short 01b5eh ; eb d8 1645 1671 xor al, al ; 30 c0 1646 jmp short 01b 65h ; eb 041672 jmp short 01b8eh ; eb 04 1647 1673 cmp AL, strict byte 008h ; 3c 08 1648 jnc short 01b b0h ; 73 4b1674 jnc short 01bd9h ; 73 4b 1649 1675 movzx bx, al ; 0f b6 d8 1650 1676 imul bx, bx, strict byte 00018h ; 6b db 18 … … 1666 1692 db 0feh, 0c0h 1667 1693 ; inc al ; fe c0 1668 jmp short 01b 61h ; eb b11694 jmp short 01b8ah ; eb b1 1669 1695 xor al, al ; 30 c0 1670 jmp short 01b b8h ; eb 041696 jmp short 01be1h ; eb 04 1671 1697 cmp AL, strict byte 010h ; 3c 10 1672 jnc short 01b cfh ; 73 171698 jnc short 01bf8h ; 73 17 1673 1699 movzx bx, al ; 0f b6 d8 1674 1700 mov es, dx ; 8e c2 … … 1678 1704 db 0feh, 0c0h 1679 1705 ; inc al ; fe c0 1680 jmp short 01b b4h ; eb e51706 jmp short 01bddh ; eb e5 1681 1707 mov es, dx ; 8e c2 1682 1708 mov byte [es:si+0019eh], 000h ; 26 c6 84 9e 01 00 1683 1709 mov byte [es:si+001afh], 000h ; 26 c6 84 af 01 00 1710 lea sp, [bp-002h] ; 8d 66 fe 1711 pop si ; 5e 1684 1712 pop bp ; 5d 1685 pop si ; 5e1686 1713 retn ; c3 1687 ata_reset_: ; 0xf1be0 LB 0xda 1714 ata_reset_: ; 0xf1c0c LB 0xde 1715 push bp ; 55 1716 mov bp, sp ; 89 e5 1688 1717 push bx ; 53 1689 1718 push cx ; 51 … … 1691 1720 push si ; 56 1692 1721 push di ; 57 1693 enter 00004h, 000h ; c8 04 00 00 1722 push ax ; 50 1723 push ax ; 50 1694 1724 push ax ; 50 1695 1725 mov dx, strict word 0000eh ; ba 0e 00 1696 1726 mov ax, strict word 00040h ; b8 40 00 1697 call 0161ch ; e8 29 fa1698 mov word [bp-00 4h], 00122h ; c7 46 fc22 011727 call 0161ch ; e8 fc f9 1728 mov word [bp-00eh], 00122h ; c7 46 f2 22 01 1699 1729 mov di, ax ; 89 c7 1700 mov bx, word [bp-0 06h] ; 8b 5e fa1730 mov bx, word [bp-010h] ; 8b 5e f0 1701 1731 shr bx, 1 ; d1 eb 1702 mov dl, byte [bp-0 06h] ; 8a 56 fa1732 mov dl, byte [bp-010h] ; 8a 56 f0 1703 1733 and dl, 001h ; 80 e2 01 1704 mov byte [bp-00 2h], dl ; 88 56 fe1734 mov byte [bp-00ch], dl ; 88 56 f4 1705 1735 xor bh, bh ; 30 ff 1706 1736 imul bx, bx, strict byte 00006h ; 6b db 06 … … 1715 1745 dec bx ; 4b 1716 1746 test bx, bx ; 85 db 1717 jbe short 01c 37h ; 76 0c1747 jbe short 01c64h ; 76 0c 1718 1748 mov dx, cx ; 89 ca 1719 1749 add dx, strict byte 00007h ; 83 c2 07 … … 1722 1752 ; sub ah, ah ; 2a e4 1723 1753 test AL, strict byte 080h ; a8 80 1724 je short 01c 26h ; 74 ef1754 je short 01c53h ; 74 ef 1725 1755 lea dx, [si+006h] ; 8d 54 06 1726 1756 mov AL, strict byte 00ah ; b0 0a 1727 1757 out DX, AL ; ee 1728 imul bx, word [bp-0 06h], strict byte 00018h ; 6b 5e fa181758 imul bx, word [bp-010h], strict byte 00018h ; 6b 5e f0 18 1729 1759 mov es, di ; 8e c7 1730 add bx, word [bp-00 4h] ; 03 5e fc1760 add bx, word [bp-00eh] ; 03 5e f2 1731 1761 cmp byte [es:bx+01eh], 000h ; 26 80 7f 1e 00 1732 je short 01c 99h ; 74 4c1733 cmp byte [bp-00 2h], 000h ; 80 7e fe001734 je short 01c 58h ; 74 051762 je short 01cc6h ; 74 4c 1763 cmp byte [bp-00ch], 000h ; 80 7e f4 00 1764 je short 01c85h ; 74 05 1735 1765 mov ax, 000b0h ; b8 b0 00 1736 jmp short 01c 5bh ; eb 031766 jmp short 01c88h ; eb 03 1737 1767 mov ax, 000a0h ; b8 a0 00 1738 1768 mov dx, cx ; 89 ca … … 1752 1782 ; sub ah, ah ; 2a e4 1753 1783 cmp bl, 001h ; 80 fb 01 1754 jne short 01c 99h ; 75 221784 jne short 01cc6h ; 75 22 1755 1785 cmp al, bl ; 38 d8 1756 jne short 01c 99h ; 75 1e1786 jne short 01cc6h ; 75 1e 1757 1787 mov bx, strict word 0ffffh ; bb ff ff 1758 1788 dec bx ; 4b 1759 1789 test bx, bx ; 85 db 1760 jbe short 01c 99h ; 76 161790 jbe short 01cc6h ; 76 16 1761 1791 mov dx, cx ; 89 ca 1762 1792 add dx, strict byte 00007h ; 83 c2 07 … … 1765 1795 ; sub ah, ah ; 2a e4 1766 1796 test AL, strict byte 080h ; a8 80 1767 je short 01c 99h ; 74 0a1797 je short 01cc6h ; 74 0a 1768 1798 mov ax, strict word 0ffffh ; b8 ff ff 1769 1799 dec ax ; 48 1770 1800 test ax, ax ; 85 c0 1771 jnbe short 01c 92h ; 77 fb1772 jmp short 01c 7eh ; eb e51801 jnbe short 01cbfh ; 77 fb 1802 jmp short 01cabh ; eb e5 1773 1803 mov bx, strict word 00010h ; bb 10 00 1774 1804 dec bx ; 4b 1775 1805 test bx, bx ; 85 db 1776 jbe short 01c adh ; 76 0c1806 jbe short 01cdah ; 76 0c 1777 1807 mov dx, cx ; 89 ca 1778 1808 add dx, strict byte 00007h ; 83 c2 07 … … 1781 1811 ; sub ah, ah ; 2a e4 1782 1812 test AL, strict byte 040h ; a8 40 1783 je short 01c 9ch ; 74 ef1813 je short 01cc9h ; 74 ef 1784 1814 lea dx, [si+006h] ; 8d 54 06 1785 1815 mov AL, strict byte 008h ; b0 08 1786 1816 out DX, AL ; ee 1787 lea ve ; c91817 lea sp, [bp-00ah] ; 8d 66 f6 1788 1818 pop di ; 5f 1789 1819 pop si ; 5e … … 1791 1821 pop cx ; 59 1792 1822 pop bx ; 5b 1823 pop bp ; 5d 1793 1824 retn ; c3 1794 ata_cmd_data_in_: ; 0xf1cba LB 0x253 1825 ata_cmd_data_in_: ; 0xf1cea LB 0x258 1826 push bp ; 55 1827 mov bp, sp ; 89 e5 1795 1828 push si ; 56 1796 1829 push di ; 57 1797 enter 0001ch, 000h ; c8 1c 00 001830 sub sp, strict byte 0001ch ; 83 ec 1c 1798 1831 mov si, ax ; 89 c6 1799 mov word [bp-00 6h], dx ; 89 56 fa1800 mov word [bp-01 2h], bx ; 89 5e ee1801 mov word [bp-01 0h], cx ; 89 4e f01832 mov word [bp-00ah], dx ; 89 56 f6 1833 mov word [bp-016h], bx ; 89 5e ea 1834 mov word [bp-014h], cx ; 89 4e ec 1802 1835 mov es, dx ; 8e c2 1803 1836 movzx ax, byte [es:si+008h] ; 26 0f b6 44 08 … … 1806 1839 mov dh, al ; 88 c6 1807 1840 and dh, 001h ; 80 e6 01 1808 mov byte [bp-00 4h], dh ; 88 76 fc1841 mov byte [bp-008h], dh ; 88 76 f8 1809 1842 movzx di, dl ; 0f b6 fa 1810 1843 imul di, di, strict byte 00006h ; 6b ff 06 … … 1812 1845 mov bx, word [es:di+001c2h] ; 26 8b 9d c2 01 1813 1846 mov dx, word [es:di+001c4h] ; 26 8b 95 c4 01 1814 mov word [bp-01 8h], dx ; 89 56 e81847 mov word [bp-01ch], dx ; 89 56 e4 1815 1848 imul ax, ax, strict byte 00018h ; 6b c0 18 1816 1849 mov di, si ; 89 f7 1817 1850 add di, ax ; 01 c7 1818 1851 mov al, byte [es:di+022h] ; 26 8a 45 22 1819 mov byte [bp-00 2h], al ; 88 46 fe1852 mov byte [bp-006h], al ; 88 46 fa 1820 1853 mov ax, word [es:di+024h] ; 26 8b 45 24 1821 mov word [bp-00 8h], ax ; 89 46 f81854 mov word [bp-00ch], ax ; 89 46 f4 1822 1855 test ax, ax ; 85 c0 1823 jne short 01d 20h ; 75 141824 cmp byte [bp-00 2h], 001h ; 80 7e fe011825 jne short 01d 19h ; 75 071826 mov word [bp-00 8h], 04000h ; c7 46 f800 401827 jmp short 01d 2fh ; eb 161828 mov word [bp-00 8h], 08000h ; c7 46 f800 801829 jmp short 01d 2fh ; eb 0f1830 cmp byte [bp-00 2h], 001h ; 80 7e fe011831 jne short 01d 2ch ; 75 061832 shr word [bp-00 8h], 002h ; c1 6e f8021833 jmp short 01d 2fh ; eb 031834 shr word [bp-00 8h], 1 ; d1 6e f81856 jne short 01d52h ; 75 14 1857 cmp byte [bp-006h], 001h ; 80 7e fa 01 1858 jne short 01d4bh ; 75 07 1859 mov word [bp-00ch], 04000h ; c7 46 f4 00 40 1860 jmp short 01d61h ; eb 16 1861 mov word [bp-00ch], 08000h ; c7 46 f4 00 80 1862 jmp short 01d61h ; eb 0f 1863 cmp byte [bp-006h], 001h ; 80 7e fa 01 1864 jne short 01d5eh ; 75 06 1865 shr word [bp-00ch], 002h ; c1 6e f4 02 1866 jmp short 01d61h ; eb 03 1867 shr word [bp-00ch], 1 ; d1 6e f4 1835 1868 lea dx, [bx+007h] ; 8d 57 07 1836 1869 in AL, DX ; ec … … 1838 1871 ; sub ah, ah ; 2a e4 1839 1872 test AL, strict byte 080h ; a8 80 1840 je short 01d 48h ; 74 0f1841 mov dx, word [bp-01 8h] ; 8b 56 e81873 je short 01d7ah ; 74 0f 1874 mov dx, word [bp-01ch] ; 8b 56 e4 1842 1875 add dx, strict byte 00006h ; 83 c2 06 1843 1876 mov AL, strict byte 008h ; b0 08 1844 1877 out DX, AL ; ee 1845 1878 mov dx, strict word 00001h ; ba 01 00 1846 jmp near 01f 07h ; e9 bf 011847 mov es, [bp-00 6h] ; 8e 46 fa1879 jmp near 01f39h ; e9 bf 01 1880 mov es, [bp-00ah] ; 8e 46 f6 1848 1881 mov ax, word [es:si] ; 26 8b 04 1849 mov word [bp-0 1ch], ax ; 89 46 e41882 mov word [bp-020h], ax ; 89 46 e0 1850 1883 mov ax, word [es:si+002h] ; 26 8b 44 02 1851 mov word [bp-01 ah], ax ; 89 46 e61884 mov word [bp-01eh], ax ; 89 46 e2 1852 1885 mov di, word [es:si+004h] ; 26 8b 7c 04 1853 1886 mov ax, word [es:si+006h] ; 26 8b 44 06 1854 mov word [bp-00 ah], ax ; 89 46 f61887 mov word [bp-00eh], ax ; 89 46 f2 1855 1888 mov ax, word [es:si+012h] ; 26 8b 44 12 1856 mov word [bp-0 0ch], ax ; 89 46 f41889 mov word [bp-010h], ax ; 89 46 f0 1857 1890 mov ax, word [es:si+00eh] ; 26 8b 44 0e 1858 mov word [bp-0 0eh], ax ; 89 46 f21891 mov word [bp-012h], ax ; 89 46 ee 1859 1892 mov ax, word [es:si+010h] ; 26 8b 44 10 1860 mov word [bp-01 4h], ax ; 89 46 ec1861 mov ax, word [bp-0 0ch] ; 8b 46 f41893 mov word [bp-018h], ax ; 89 46 e8 1894 mov ax, word [bp-010h] ; 8b 46 f0 1862 1895 test ax, ax ; 85 c0 1863 jne short 01 de6h ; 75 671864 mov dx, word [bp-0 1ch] ; 8b 56 e41865 add dx, word [bp-01 0h] ; 03 56 f01866 adc ax, word [bp-01 ah] ; 13 46 e61896 jne short 01e18h ; 75 67 1897 mov dx, word [bp-020h] ; 8b 56 e0 1898 add dx, word [bp-014h] ; 03 56 ec 1899 adc ax, word [bp-01eh] ; 13 46 e2 1867 1900 cmp ax, 01000h ; 3d 00 10 1868 jnbe short 01d 8fh ; 77 021869 jne short 01d bah ; 75 2b1870 mov ax, word [bp-01 ah] ; 8b 46 e61901 jnbe short 01dc1h ; 77 02 1902 jne short 01dech ; 75 2b 1903 mov ax, word [bp-01eh] ; 8b 46 e2 1871 1904 xor al, al ; 30 c0 1872 1905 shr ax, 008h ; c1 e8 08 1873 mov word [bp-0 0ch], ax ; 89 46 f41874 mov ax, word [bp-01 0h] ; 8b 46 f01906 mov word [bp-010h], ax ; 89 46 f0 1907 mov ax, word [bp-014h] ; 8b 46 ec 1875 1908 xor al, al ; 30 c0 1876 1909 shr ax, 008h ; c1 e8 08 … … 1878 1911 out DX, AL ; ee 1879 1912 lea dx, [bx+003h] ; 8d 57 03 1880 mov al, byte [bp-0 0ch] ; 8a 46 f41913 mov al, byte [bp-010h] ; 8a 46 f0 1881 1914 out DX, AL ; ee 1882 1915 lea dx, [bx+004h] ; 8d 57 04 … … 1885 1918 lea dx, [bx+005h] ; 8d 57 05 1886 1919 out DX, AL ; ee 1887 mov byte [bp-01 9h], al ; 88 46 e71888 mov ax, word [bp-0 1ch] ; 8b 46 e41920 mov byte [bp-01dh], al ; 88 46 e3 1921 mov ax, word [bp-020h] ; 8b 46 e0 1889 1922 xor ah, ah ; 30 e4 1890 mov word [bp-0 0ch], ax ; 89 46 f41923 mov word [bp-010h], ax ; 89 46 f0 1891 1924 mov cx, strict word 00008h ; b9 08 00 1892 shr word [bp-01 ah], 1 ; d1 6e e61893 rcr word [bp-0 1ch], 1 ; d1 5e e41894 loop 01d c5h ; e2 f81895 mov ax, word [bp-0 1ch] ; 8b 46 e41896 mov word [bp-0 0eh], ax ; 89 46 f21897 mov ax, word [bp-01 ah] ; 8b 46 e61898 mov word [bp-0 1ch], ax ; 89 46 e41899 mov word [bp-01 ah], strict word 00000h ; c7 46 e600 001925 shr word [bp-01eh], 1 ; d1 6e e2 1926 rcr word [bp-020h], 1 ; d1 5e e0 1927 loop 01df7h ; e2 f8 1928 mov ax, word [bp-020h] ; 8b 46 e0 1929 mov word [bp-012h], ax ; 89 46 ee 1930 mov ax, word [bp-01eh] ; 8b 46 e2 1931 mov word [bp-020h], ax ; 89 46 e0 1932 mov word [bp-01eh], strict word 00000h ; c7 46 e2 00 00 1900 1933 and ax, strict word 0000fh ; 25 0f 00 1901 1934 or AL, strict byte 040h ; 0c 40 1902 mov word [bp-01 4h], ax ; 89 46 ec1903 mov dx, word [bp-01 8h] ; 8b 56 e81935 mov word [bp-018h], ax ; 89 46 e8 1936 mov dx, word [bp-01ch] ; 8b 56 e4 1904 1937 add dx, strict byte 00006h ; 83 c2 06 1905 1938 mov AL, strict byte 00ah ; b0 0a … … 1909 1942 out DX, AL ; ee 1910 1943 lea dx, [bx+002h] ; 8d 57 02 1944 mov al, byte [bp-014h] ; 8a 46 ec 1945 out DX, AL ; ee 1946 lea dx, [bx+003h] ; 8d 57 03 1911 1947 mov al, byte [bp-010h] ; 8a 46 f0 1912 1948 out DX, AL ; ee 1913 lea dx, [bx+003h] ; 8d 57 03 1914 mov al, byte [bp-00ch] ; 8a 46 f4 1915 out DX, AL ; ee 1916 mov ax, word [bp-00eh] ; 8b 46 f2 1949 mov ax, word [bp-012h] ; 8b 46 ee 1917 1950 lea dx, [bx+004h] ; 8d 57 04 1918 1951 out DX, AL ; ee … … 1920 1953 lea dx, [bx+005h] ; 8d 57 05 1921 1954 out DX, AL ; ee 1922 cmp byte [bp-00 4h], 000h ; 80 7e fc001923 je short 01e 1ch ; 74 051955 cmp byte [bp-008h], 000h ; 80 7e f8 00 1956 je short 01e4eh ; 74 05 1924 1957 mov ax, 000b0h ; b8 b0 00 1925 jmp short 01e 1fh ; eb 031958 jmp short 01e51h ; eb 03 1926 1959 mov ax, 000a0h ; b8 a0 00 1927 movzx dx, byte [bp-01 4h] ; 0f b6 56 ec1960 movzx dx, byte [bp-018h] ; 0f b6 56 e8 1928 1961 or ax, dx ; 09 d0 1929 1962 lea dx, [bx+006h] ; 8d 57 06 1930 1963 out DX, AL ; ee 1931 1964 lea dx, [bx+007h] ; 8d 57 07 1932 mov al, byte [bp-01 2h] ; 8a 46 ee1933 out DX, AL ; ee 1934 mov ax, word [bp-01 2h] ; 8b 46 ee1965 mov al, byte [bp-016h] ; 8a 46 ea 1966 out DX, AL ; ee 1967 mov ax, word [bp-016h] ; 8b 46 ea 1935 1968 cmp ax, 000c4h ; 3d c4 00 1936 je short 01e 3dh ; 74 051969 je short 01e6fh ; 74 05 1937 1970 cmp ax, strict word 00029h ; 3d 29 00 1938 jne short 01e 4ah ; 75 0d1939 mov ax, word [bp-01 0h] ; 8b 46 f01940 mov word [bp-01 6h], ax ; 89 46 ea1941 mov word [bp-01 0h], strict word 00001h ; c7 46 f001 001942 jmp short 01e 4fh ; eb 051943 mov word [bp-01 6h], strict word 00001h ; c7 46 ea01 001971 jne short 01e7ch ; 75 0d 1972 mov ax, word [bp-014h] ; 8b 46 ec 1973 mov word [bp-01ah], ax ; 89 46 e6 1974 mov word [bp-014h], strict word 00001h ; c7 46 ec 01 00 1975 jmp short 01e81h ; eb 05 1976 mov word [bp-01ah], strict word 00001h ; c7 46 e6 01 00 1944 1977 lea dx, [bx+007h] ; 8d 57 07 1945 1978 in AL, DX ; ec … … 1948 1981 mov dl, al ; 88 c2 1949 1982 test AL, strict byte 080h ; a8 80 1950 jne short 01e 4fh ; 75 f41983 jne short 01e81h ; 75 f4 1951 1984 test AL, strict byte 001h ; a8 01 1952 je short 01e 6eh ; 74 0f1953 mov dx, word [bp-01 8h] ; 8b 56 e81985 je short 01ea0h ; 74 0f 1986 mov dx, word [bp-01ch] ; 8b 56 e4 1954 1987 add dx, strict byte 00006h ; 83 c2 06 1955 1988 mov AL, strict byte 008h ; b0 08 1956 1989 out DX, AL ; ee 1957 1990 mov dx, strict word 00002h ; ba 02 00 1958 jmp near 01f 07h ; e9 99 001991 jmp near 01f39h ; e9 99 00 1959 1992 test dl, 008h ; f6 c2 08 1960 jne short 01e 82h ; 75 0f1961 mov dx, word [bp-01 8h] ; 8b 56 e81993 jne short 01eb4h ; 75 0f 1994 mov dx, word [bp-01ch] ; 8b 56 e4 1962 1995 add dx, strict byte 00006h ; 83 c2 06 1963 1996 mov AL, strict byte 008h ; b0 08 1964 1997 out DX, AL ; ee 1965 1998 mov dx, strict word 00003h ; ba 03 00 1966 jmp near 01f 07h ; e9 85 001999 jmp near 01f39h ; e9 85 00 1967 2000 sti ; fb 1968 2001 cmp di, 0f800h ; 81 ff 00 f8 1969 jc short 01e 96h ; 72 0d2002 jc short 01ec8h ; 72 0d 1970 2003 sub di, 00800h ; 81 ef 00 08 1971 mov ax, word [bp-00 ah] ; 8b 46 f62004 mov ax, word [bp-00eh] ; 8b 46 f2 1972 2005 add ax, 00080h ; 05 80 00 1973 mov word [bp-00 ah], ax ; 89 46 f61974 cmp byte [bp-00 2h], 001h ; 80 7e fe011975 jne short 01e a9h ; 75 0d2006 mov word [bp-00eh], ax ; 89 46 f2 2007 cmp byte [bp-006h], 001h ; 80 7e fa 01 2008 jne short 01edbh ; 75 0d 1976 2009 mov dx, bx ; 89 da 1977 mov cx, word [bp-00 8h] ; 8b 4e f81978 mov es, [bp-00 ah] ; 8e 46 f62010 mov cx, word [bp-00ch] ; 8b 4e f4 2011 mov es, [bp-00eh] ; 8e 46 f2 1979 2012 db 0f3h, 066h, 06dh 1980 2013 ; rep insd ; f3 66 6d 1981 jmp short 01e b3h ; eb 0a2014 jmp short 01ee5h ; eb 0a 1982 2015 mov dx, bx ; 89 da 1983 mov cx, word [bp-008h] ; 8b 4e f8 2016 mov cx, word [bp-00ch] ; 8b 4e f4 2017 mov es, [bp-00eh] ; 8e 46 f2 2018 rep insw ; f3 6d 2019 mov ax, word [bp-01ah] ; 8b 46 e6 1984 2020 mov es, [bp-00ah] ; 8e 46 f6 1985 rep insw ; f3 6d1986 mov ax, word [bp-016h] ; 8b 46 ea1987 mov es, [bp-006h] ; 8e 46 fa1988 2021 add word [es:si+014h], ax ; 26 01 44 14 1989 dec word [bp-01 0h] ; ff 4e f02022 dec word [bp-014h] ; ff 4e ec 1990 2023 lea dx, [bx+007h] ; 8d 57 07 1991 2024 in AL, DX ; ec … … 1994 2027 mov dl, al ; 88 c2 1995 2028 test AL, strict byte 080h ; a8 80 1996 jne short 01e c0h ; 75 f41997 cmp word [bp-01 0h], strict byte 00000h ; 83 7e f0001998 jne short 01 ee6h ; 75 142029 jne short 01ef2h ; 75 f4 2030 cmp word [bp-014h], strict byte 00000h ; 83 7e ec 00 2031 jne short 01f18h ; 75 14 1999 2032 and AL, strict byte 0c9h ; 24 c9 2000 2033 cmp AL, strict byte 040h ; 3c 40 2001 je short 01 efch ; 74 242002 mov dx, word [bp-01 8h] ; 8b 56 e82034 je short 01f2eh ; 74 24 2035 mov dx, word [bp-01ch] ; 8b 56 e4 2003 2036 add dx, strict byte 00006h ; 83 c2 06 2004 2037 mov AL, strict byte 008h ; b0 08 2005 2038 out DX, AL ; ee 2006 2039 mov dx, strict word 00004h ; ba 04 00 2007 jmp short 01f 07h ; eb 212040 jmp short 01f39h ; eb 21 2008 2041 mov al, dl ; 88 d0 2009 2042 and AL, strict byte 0c9h ; 24 c9 2010 2043 cmp AL, strict byte 048h ; 3c 48 2011 je short 01e 83h ; 74 952012 mov dx, word [bp-01 8h] ; 8b 56 e82044 je short 01eb5h ; 74 95 2045 mov dx, word [bp-01ch] ; 8b 56 e4 2013 2046 add dx, strict byte 00006h ; 83 c2 06 2014 2047 mov AL, strict byte 008h ; b0 08 2015 2048 out DX, AL ; ee 2016 2049 mov dx, strict word 00005h ; ba 05 00 2017 jmp short 01f 07h ; eb 0b2018 mov dx, word [bp-01 8h] ; 8b 56 e82050 jmp short 01f39h ; eb 0b 2051 mov dx, word [bp-01ch] ; 8b 56 e4 2019 2052 add dx, strict byte 00006h ; 83 c2 06 2020 2053 mov AL, strict byte 008h ; b0 08 … … 2022 2055 xor dx, dx ; 31 d2 2023 2056 mov ax, dx ; 89 d0 2024 lea ve ; c92057 lea sp, [bp-004h] ; 8d 66 fc 2025 2058 pop di ; 5f 2026 2059 pop si ; 5e 2060 pop bp ; 5d 2027 2061 retn ; c3 2028 _ata_detect: ; 0xf1f0d LB 0x611 2062 _ata_detect: ; 0xf1f42 LB 0x617 2063 push bp ; 55 2064 mov bp, sp ; 89 e5 2029 2065 push si ; 56 2030 2066 push di ; 57 2031 enter 0025ch, 000h ; c8 5c 02 002067 sub sp, 0025ch ; 81 ec 5c 02 2032 2068 mov dx, strict word 0000eh ; ba 0e 00 2033 2069 mov ax, strict word 00040h ; b8 40 00 2034 call 0161ch ; e8 00 f72035 mov word [bp-02 0h], ax ; 89 46 e02070 call 0161ch ; e8 c8 f6 2071 mov word [bp-024h], ax ; 89 46 dc 2036 2072 mov di, 00122h ; bf 22 01 2037 2073 mov es, ax ; 8e c0 2038 mov word [bp-02 4h], di ; 89 7e dc2039 mov word [bp-02 2h], ax ; 89 46 de2074 mov word [bp-028h], di ; 89 7e d8 2075 mov word [bp-026h], ax ; 89 46 da 2040 2076 mov byte [es:di+001c0h], 000h ; 26 c6 85 c0 01 00 2041 2077 db 066h, 026h, 0c7h, 085h, 0c2h, 001h, 0f0h, 001h, 0f0h, 003h … … 2047 2083 mov byte [es:di+001c7h], 00fh ; 26 c6 85 c7 01 0f 2048 2084 xor al, al ; 30 c0 2085 mov byte [bp-00ah], al ; 88 46 f6 2049 2086 mov byte [bp-006h], al ; 88 46 fa 2050 mov byte [bp-002h], al ; 88 46 fe 2051 mov byte [bp-00ah], al ; 88 46 f6 2052 jmp near 024ach ; e9 48 05 2087 mov byte [bp-00eh], al ; 88 46 f2 2088 jmp near 024e4h ; e9 48 05 2053 2089 mov ax, 000a0h ; b8 a0 00 2054 2090 lea dx, [si+006h] ; 8d 54 06 … … 2082 2118 ; sub ah, ah ; 2a e4 2083 2119 cmp cl, 055h ; 80 f9 55 2084 jne near 020 5eh ; 0f 85 c0 002120 jne near 02096h ; 0f 85 c0 00 2085 2121 cmp AL, strict byte 0aah ; 3c aa 2086 jne near 020 5eh ; 0f 85 ba 002087 movzx ax, byte [bp-00 ah] ; 0f b6 46 f62122 jne near 02096h ; 0f 85 ba 00 2123 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2088 2124 imul ax, ax, strict byte 00018h ; 6b c0 18 2089 les bx, [bp-02 4h] ; c4 5e dc2125 les bx, [bp-028h] ; c4 5e d8 2090 2126 add bx, ax ; 01 c3 2091 2127 mov byte [es:bx+01eh], 001h ; 26 c6 47 1e 01 2092 movzx ax, byte [bp-00 ah] ; 0f b6 46 f62093 call 01 be0h ; e8 24fc2094 cmp byte [bp-00 4h], 000h ; 80 7e fc002095 je short 01f c7h ; 74 052128 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2129 call 01c0ch ; e8 18 fc 2130 cmp byte [bp-008h], 000h ; 80 7e f8 00 2131 je short 01fffh ; 74 05 2096 2132 mov ax, 000b0h ; b8 b0 00 2097 jmp short 0 1fcah ; eb 032133 jmp short 02002h ; eb 03 2098 2134 mov ax, 000a0h ; b8 a0 00 2099 2135 lea dx, [si+006h] ; 8d 54 06 … … 2109 2145 ; sub ah, ah ; 2a e4 2110 2146 cmp bl, 001h ; 80 fb 01 2111 jne near 020 5eh ; 0f 85 7b 002147 jne near 02096h ; 0f 85 7b 00 2112 2148 cmp al, bl ; 38 d8 2113 jne near 020 5eh ; 0f 85 75 002149 jne near 02096h ; 0f 85 75 00 2114 2150 lea dx, [si+004h] ; 8d 54 04 2115 2151 in AL, DX ; ec … … 2123 2159 ; sub ah, ah ; 2a e4 2124 2160 mov cx, ax ; 89 c1 2125 mov byte [bp-00 8h], al ; 88 46 f82161 mov byte [bp-00ch], al ; 88 46 f4 2126 2162 lea dx, [si+007h] ; 8d 54 07 2127 2163 in AL, DX ; ec … … 2129 2165 ; sub ah, ah ; 2a e4 2130 2166 cmp bl, 014h ; 80 fb 14 2131 jne short 020 21h ; 75 182167 jne short 02059h ; 75 18 2132 2168 cmp cl, 0ebh ; 80 f9 eb 2133 jne short 020 21h ; 75 132134 movzx ax, byte [bp-00 ah] ; 0f b6 46 f62169 jne short 02059h ; 75 13 2170 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2135 2171 imul ax, ax, strict byte 00018h ; 6b c0 18 2136 les bx, [bp-02 4h] ; c4 5e dc2172 les bx, [bp-028h] ; c4 5e d8 2137 2173 add bx, ax ; 01 c3 2138 2174 mov byte [es:bx+01eh], 003h ; 26 c6 47 1e 03 2139 jmp short 020 5eh ; eb 3d2175 jmp short 02096h ; eb 3d 2140 2176 test bh, bh ; 84 ff 2141 jne short 020 43h ; 75 1e2142 cmp byte [bp-00 8h], 000h ; 80 7e f8002143 jne short 020 43h ; 75 182177 jne short 0207bh ; 75 1e 2178 cmp byte [bp-00ch], 000h ; 80 7e f4 00 2179 jne short 0207bh ; 75 18 2144 2180 test al, al ; 84 c0 2145 je short 020 43h ; 74 142146 movzx bx, byte [bp-00 ah] ; 0f b6 5e f62181 je short 0207bh ; 74 14 2182 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 2147 2183 imul bx, bx, strict byte 00018h ; 6b db 18 2148 mov es, [bp-02 2h] ; 8e 46 de2149 add bx, word [bp-02 4h] ; 03 5e dc2184 mov es, [bp-026h] ; 8e 46 da 2185 add bx, word [bp-028h] ; 03 5e d8 2150 2186 mov byte [es:bx+01eh], 002h ; 26 c6 47 1e 02 2151 jmp short 020 5eh ; eb 1b2187 jmp short 02096h ; eb 1b 2152 2188 cmp bh, 0ffh ; 80 ff ff 2153 jne short 020 5eh ; 75 162154 cmp bh, byte [bp-00 8h] ; 3a 7e f82155 jne short 020 5eh ; 75 112156 movzx ax, byte [bp-00 ah] ; 0f b6 46 f62189 jne short 02096h ; 75 16 2190 cmp bh, byte [bp-00ch] ; 3a 7e f4 2191 jne short 02096h ; 75 11 2192 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2157 2193 imul ax, ax, strict byte 00018h ; 6b c0 18 2158 les bx, [bp-02 4h] ; c4 5e dc2194 les bx, [bp-028h] ; c4 5e d8 2159 2195 add bx, ax ; 01 c3 2160 2196 mov byte [es:bx+01eh], 000h ; 26 c6 47 1e 00 2161 mov dx, word [bp-02 8h] ; 8b 56 d82197 mov dx, word [bp-02ch] ; 8b 56 d4 2162 2198 add dx, strict byte 00006h ; 83 c2 06 2163 2199 mov AL, strict byte 008h ; b0 08 2164 2200 out DX, AL ; ee 2165 movzx si, byte [bp-00 ah] ; 0f b6 76 f62201 movzx si, byte [bp-00eh] ; 0f b6 76 f2 2166 2202 imul si, si, strict byte 00018h ; 6b f6 18 2167 mov es, [bp-02 2h] ; 8e 46 de2168 add si, word [bp-02 4h] ; 03 76 dc2203 mov es, [bp-026h] ; 8e 46 da 2204 add si, word [bp-028h] ; 03 76 d8 2169 2205 mov al, byte [es:si+01eh] ; 26 8a 44 1e 2170 mov byte [bp-0 0ch], al ; 88 46 f42206 mov byte [bp-010h], al ; 88 46 f0 2171 2207 cmp AL, strict byte 002h ; 3c 02 2172 jne near 022 84h ; 0f 85 03 022208 jne near 022bch ; 0f 85 03 02 2173 2209 mov byte [es:si+01fh], 0ffh ; 26 c6 44 1f ff 2174 2210 mov byte [es:si+022h], 000h ; 26 c6 44 22 00 2175 lea dx, [bp-002 5ch] ; 8d 96 a4fd2176 mov bx, word [bp-02 4h] ; 8b 5e dc2211 lea dx, [bp-00260h] ; 8d 96 a0 fd 2212 mov bx, word [bp-028h] ; 8b 5e d8 2177 2213 mov word [es:bx+004h], dx ; 26 89 57 04 2178 2214 mov [es:bx+006h], ss ; 26 8c 57 06 2179 mov al, byte [bp-00 ah] ; 8a 46 f62215 mov al, byte [bp-00eh] ; 8a 46 f2 2180 2216 mov byte [es:bx+008h], al ; 26 88 47 08 2181 2217 mov cx, strict word 00001h ; b9 01 00 2182 2218 mov bx, 000ech ; bb ec 00 2183 mov ax, word [bp-02 4h] ; 8b 46 dc2219 mov ax, word [bp-028h] ; 8b 46 d8 2184 2220 mov dx, es ; 8c c2 2185 call 01c bah ; e8 0bfc2221 call 01ceah ; e8 03 fc 2186 2222 test ax, ax ; 85 c0 2187 je short 020 beh ; 74 0b2223 je short 020f6h ; 74 0b 2188 2224 push 00094h ; 68 94 00 2189 2225 push strict byte 00007h ; 6a 07 2190 call 01 8e9h ; e8 2ef82226 call 0190dh ; e8 1a f8 2191 2227 add sp, strict byte 00004h ; 83 c4 04 2192 test byte [bp-002 5ch], 080h ; f6 86 a4fd 802228 test byte [bp-00260h], 080h ; f6 86 a0 fd 80 2193 2229 db 00fh, 095h, 0c0h 2194 2230 ; setne al ; 0f 95 c0 2195 2231 xor ah, ah ; 30 e4 2196 mov byte [bp-01 0h], al ; 88 46 f02197 cmp byte [bp-00 1fch], 000h ; 80 be 04fe 002232 mov byte [bp-014h], al ; 88 46 ec 2233 cmp byte [bp-00200h], 000h ; 80 be 00 fe 00 2198 2234 db 00fh, 095h, 0c0h 2199 2235 ; setne al ; 0f 95 c0 2200 2236 xor ah, ah ; 30 e4 2201 mov byte [bp-012h], al ; 88 46 ee 2202 mov word [bp-01eh], 00200h ; c7 46 e2 00 02 2237 mov byte [bp-016h], al ; 88 46 ea 2238 mov word [bp-022h], 00200h ; c7 46 de 00 02 2239 mov ax, word [bp-0025eh] ; 8b 86 a2 fd 2240 mov word [bp-01ah], ax ; 89 46 e6 2203 2241 mov ax, word [bp-0025ah] ; 8b 86 a6 fd 2204 mov word [bp-016h], ax ; 89 46 ea2205 mov ax, word [bp-00256h] ; 8b 86 aa fd2206 mov word [bp-018h], ax ; 89 46 e82207 mov ax, word [bp-00250h] ; 8b 86 b0 fd2208 mov word [bp-01ah], ax ; 89 46 e62209 mov ax, word [bp-001e4h] ; 8b 86 1c fe2210 2242 mov word [bp-01ch], ax ; 89 46 e4 2211 mov si, word [bp-001e2h] ; 8b b6 1e fe 2243 mov ax, word [bp-00254h] ; 8b 86 ac fd 2244 mov word [bp-01eh], ax ; 89 46 e2 2245 mov ax, word [bp-001e8h] ; 8b 86 18 fe 2246 mov word [bp-020h], ax ; 89 46 e0 2247 mov si, word [bp-001e6h] ; 8b b6 1a fe 2212 2248 cmp si, 00fffh ; 81 fe ff 0f 2213 jne short 021 13h ; 75 102249 jne short 0214bh ; 75 10 2214 2250 cmp ax, strict word 0ffffh ; 3d ff ff 2215 jne short 021 13h ; 75 0b2216 mov ax, word [bp-0019 4h] ; 8b 86 6cfe2217 mov word [bp-0 1ch], ax ; 89 46 e42218 mov si, word [bp-0019 2h] ; 8b b6 6efe2219 mov al, byte [bp-00 ah] ; 8a 46 f62251 jne short 0214bh ; 75 0b 2252 mov ax, word [bp-00198h] ; 8b 86 68 fe 2253 mov word [bp-020h], ax ; 89 46 e0 2254 mov si, word [bp-00196h] ; 8b b6 6a fe 2255 mov al, byte [bp-00eh] ; 8a 46 f2 2220 2256 cmp AL, strict byte 001h ; 3c 01 2221 jc short 021 26h ; 72 0c2222 jbe short 021 2eh ; 76 122257 jc short 0215eh ; 72 0c 2258 jbe short 02166h ; 76 12 2223 2259 cmp AL, strict byte 003h ; 3c 03 2224 je short 021 36h ; 74 162260 je short 0216eh ; 74 16 2225 2261 cmp AL, strict byte 002h ; 3c 02 2226 je short 021 32h ; 74 0e2227 jmp short 021 73h ; eb 4d2262 je short 0216ah ; 74 0e 2263 jmp short 021abh ; eb 4d 2228 2264 test al, al ; 84 c0 2229 jne short 021 73h ; 75 492265 jne short 021abh ; 75 49 2230 2266 mov BL, strict byte 01eh ; b3 1e 2231 jmp short 021 38h ; eb 0a2267 jmp short 02170h ; eb 0a 2232 2268 mov BL, strict byte 026h ; b3 26 2233 jmp short 021 38h ; eb 062269 jmp short 02170h ; eb 06 2234 2270 mov BL, strict byte 067h ; b3 67 2235 jmp short 021 38h ; eb 022271 jmp short 02170h ; eb 02 2236 2272 mov BL, strict byte 070h ; b3 70 2237 2273 mov al, bl ; 88 d8 … … 2239 2275 ; inc al ; fe c0 2240 2276 xor ah, ah ; 30 e4 2241 call 0165ch ; e8 1b f52277 call 0165ch ; e8 e3 f4 2242 2278 xor ah, ah ; 30 e4 2243 2279 mov dx, ax ; 89 c2 2244 2280 sal dx, 008h ; c1 e2 08 2245 2281 movzx ax, bl ; 0f b6 c3 2246 call 0165ch ; e8 0e f52282 call 0165ch ; e8 d6 f4 2247 2283 xor ah, ah ; 30 e4 2248 2284 add ax, dx ; 01 d0 2249 mov word [bp-03 0h], ax ; 89 46 d02285 mov word [bp-034h], ax ; 89 46 cc 2250 2286 mov al, bl ; 88 d8 2251 2287 add AL, strict byte 002h ; 04 02 2252 2288 xor ah, ah ; 30 e4 2253 call 0165ch ; e8 fef42289 call 0165ch ; e8 c6 f4 2254 2290 xor ah, ah ; 30 e4 2255 mov word [bp-03 2h], ax ; 89 46 ce2291 mov word [bp-036h], ax ; 89 46 ca 2256 2292 mov al, bl ; 88 d8 2257 2293 add AL, strict byte 007h ; 04 07 2258 2294 xor ah, ah ; 30 e4 2259 call 0165ch ; e8 f0f42295 call 0165ch ; e8 b8 f4 2260 2296 xor ah, ah ; 30 e4 2261 mov word [bp-0 2eh], ax ; 89 46 d22262 jmp short 021 80h ; eb 0d2263 mov bx, word [bp-0 1ch] ; 8b 5e e42297 mov word [bp-032h], ax ; 89 46 ce 2298 jmp short 021b8h ; eb 0d 2299 mov bx, word [bp-020h] ; 8b 5e e0 2264 2300 mov cx, si ; 89 f1 2265 2301 mov dx, ss ; 8c d2 2266 lea ax, [bp-03 2h] ; 8d 46 ce2267 call 05 29eh ; e8 1e312268 mov bx, 00d3 2h ; bb 320d2302 lea ax, [bp-036h] ; 8d 46 ca 2303 call 05338h ; e8 80 31 2304 mov bx, 00d38h ; bb 38 0d 2269 2305 mov cx, ds ; 8c d9 2270 2306 mov ax, strict word 00004h ; b8 04 00 2271 call 018aeh ; e8 23 f7 2272 mov ax, word [bp-02eh] ; 8b 46 d2 2273 push ax ; 50 2307 call 018cch ; e8 09 f7 2274 2308 mov ax, word [bp-032h] ; 8b 46 ce 2275 2309 push ax ; 50 2276 mov ax, word [bp-03 0h] ; 8b 46 d02310 mov ax, word [bp-036h] ; 8b 46 ca 2277 2311 push ax ; 50 2312 mov ax, word [bp-034h] ; 8b 46 cc 2313 push ax ; 50 2314 push word [bp-01eh] ; ff 76 e2 2315 push word [bp-01ch] ; ff 76 e4 2278 2316 push word [bp-01ah] ; ff 76 e6 2279 push word [bp-018h] ; ff 76 e8 2280 push word [bp-016h] ; ff 76 ea 2281 movzx ax, byte [bp-004h] ; 0f b6 46 fc 2317 movzx ax, byte [bp-008h] ; 0f b6 46 f8 2282 2318 push ax ; 50 2283 movzx ax, byte [bp-01 4h] ; 0f b6 46 ec2319 movzx ax, byte [bp-018h] ; 0f b6 46 e8 2284 2320 push ax ; 50 2285 2321 push 000bdh ; 68 bd 00 2286 2322 push strict byte 00004h ; 6a 04 2287 call 01 8e9h ; e8 37f72323 call 0190dh ; e8 23 f7 2288 2324 add sp, strict byte 00014h ; 83 c4 14 2289 movzx ax, byte [bp-00 ah] ; 0f b6 46 f62325 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2290 2326 imul ax, ax, strict byte 00018h ; 6b c0 18 2291 les di, [bp-02 4h] ; c4 7e dc2327 les di, [bp-028h] ; c4 7e d8 2292 2328 add di, ax ; 01 c7 2293 2329 mov byte [es:di+01fh], 0ffh ; 26 c6 45 1f ff 2294 mov al, byte [bp-01 0h] ; 8a 46 f02330 mov al, byte [bp-014h] ; 8a 46 ec 2295 2331 mov byte [es:di+020h], al ; 26 88 45 20 2296 mov al, byte [bp-01 2h] ; 8a 46 ee2332 mov al, byte [bp-016h] ; 8a 46 ea 2297 2333 mov byte [es:di+022h], al ; 26 88 45 22 2334 mov ax, word [bp-022h] ; 8b 46 de 2335 mov word [es:di+024h], ax ; 26 89 45 24 2336 mov ax, word [bp-01ch] ; 8b 46 e4 2337 mov word [es:di+02ch], ax ; 26 89 45 2c 2338 mov ax, word [bp-01ah] ; 8b 46 e6 2339 mov word [es:di+02eh], ax ; 26 89 45 2e 2298 2340 mov ax, word [bp-01eh] ; 8b 46 e2 2299 mov word [es:di+024h], ax ; 26 89 45 242300 mov ax, word [bp-018h] ; 8b 46 e82301 mov word [es:di+02ch], ax ; 26 89 45 2c2302 mov ax, word [bp-016h] ; 8b 46 ea2303 mov word [es:di+02eh], ax ; 26 89 45 2e2304 mov ax, word [bp-01ah] ; 8b 46 e62305 2341 mov word [es:di+030h], ax ; 26 89 45 30 2306 mov ax, word [bp-0 1ch] ; 8b 46 e42342 mov ax, word [bp-020h] ; 8b 46 e0 2307 2343 mov word [es:di+032h], ax ; 26 89 45 32 2308 2344 mov word [es:di+034h], si ; 26 89 75 34 … … 2311 2347 push SS ; 16 2312 2348 pop DS ; 1f 2313 lea si, [bp-03 2h] ; 8d 76 ce2349 lea si, [bp-036h] ; 8d 76 ca 2314 2350 movsw ; a5 2315 2351 movsw ; a5 2316 2352 movsw ; a5 2317 2353 pop DS ; 1f 2318 mov al, byte [bp-00 ah] ; 8a 46 f62354 mov al, byte [bp-00eh] ; 8a 46 f2 2319 2355 cmp AL, strict byte 002h ; 3c 02 2320 jnc short 022 6fh ; 73 602356 jnc short 022a7h ; 73 60 2321 2357 test al, al ; 84 c0 2322 jne short 022 18h ; 75 052358 jne short 02250h ; 75 05 2323 2359 mov di, strict word 0003dh ; bf 3d 00 2324 jmp short 022 1bh ; eb 032360 jmp short 02253h ; eb 03 2325 2361 mov di, strict word 0004dh ; bf 4d 00 2326 mov dx, word [bp-02 0h] ; 8b 56 e02327 mov ax, word [bp-03 0h] ; 8b 46 d02362 mov dx, word [bp-024h] ; 8b 56 dc 2363 mov ax, word [bp-034h] ; 8b 46 cc 2328 2364 mov es, dx ; 8e c2 2329 2365 mov word [es:di], ax ; 26 89 05 2330 mov al, byte [bp-03 2h] ; 8a 46 ce2366 mov al, byte [bp-036h] ; 8a 46 ca 2331 2367 mov byte [es:di+002h], al ; 26 88 45 02 2332 2368 mov byte [es:di+003h], 0a0h ; 26 c6 45 03 a0 2333 mov al, byte [bp-01 ah] ; 8a 46 e62369 mov al, byte [bp-01eh] ; 8a 46 e2 2334 2370 mov byte [es:di+004h], al ; 26 88 45 04 2335 mov ax, word [bp-01 6h] ; 8b 46 ea2371 mov ax, word [bp-01ah] ; 8b 46 e6 2336 2372 mov word [es:di+009h], ax ; 26 89 45 09 2337 mov al, byte [bp-01 8h] ; 8a 46 e82373 mov al, byte [bp-01ch] ; 8a 46 e4 2338 2374 mov byte [es:di+00bh], al ; 26 88 45 0b 2339 mov al, byte [bp-01 ah] ; 8a 46 e62375 mov al, byte [bp-01eh] ; 8a 46 e2 2340 2376 mov byte [es:di+00eh], al ; 26 88 45 0e 2341 2377 xor al, al ; 30 c0 2342 2378 xor ah, ah ; 30 e4 2343 jmp short 022 59h ; eb 052379 jmp short 02291h ; eb 05 2344 2380 cmp ah, 00fh ; 80 fc 0f 2345 jnc short 022 67h ; 73 0e2381 jnc short 0229fh ; 73 0e 2346 2382 movzx bx, ah ; 0f b6 dc 2347 2383 mov es, dx ; 8e c2 … … 2350 2386 db 0feh, 0c4h 2351 2387 ; inc ah ; fe c4 2352 jmp short 022 54h ; eb ed2388 jmp short 0228ch ; eb ed 2353 2389 neg al ; f6 d8 2354 2390 mov es, dx ; 8e c2 2355 2391 mov byte [es:di+00fh], al ; 26 88 45 0f 2356 movzx bx, byte [bp-00 2h] ; 0f b6 5e fe2357 mov es, [bp-02 2h] ; 8e 46 de2358 add bx, word [bp-02 4h] ; 03 5e dc2359 mov al, byte [bp-00 ah] ; 8a 46 f62392 movzx bx, byte [bp-006h] ; 0f b6 5e fa 2393 mov es, [bp-026h] ; 8e 46 da 2394 add bx, word [bp-028h] ; 03 5e d8 2395 mov al, byte [bp-00eh] ; 8a 46 f2 2360 2396 mov byte [es:bx+0019fh], al ; 26 88 87 9f 01 2361 inc byte [bp-00 2h] ; fe 46 fe2362 cmp byte [bp-0 0ch], 003h ; 80 7e f4032363 jne near 023 24h ; 0f 85 98 002364 movzx ax, byte [bp-00 ah] ; 0f b6 46 f62397 inc byte [bp-006h] ; fe 46 fa 2398 cmp byte [bp-010h], 003h ; 80 7e f0 03 2399 jne near 0235ch ; 0f 85 98 00 2400 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2365 2401 imul ax, ax, strict byte 00018h ; 6b c0 18 2366 les bx, [bp-02 4h] ; c4 5e dc2402 les bx, [bp-028h] ; c4 5e d8 2367 2403 add bx, ax ; 01 c3 2368 2404 mov byte [es:bx+01fh], 005h ; 26 c6 47 1f 05 2369 2405 mov byte [es:bx+022h], 000h ; 26 c6 47 22 00 2370 lea dx, [bp-002 5ch] ; 8d 96 a4fd2371 mov bx, word [bp-02 4h] ; 8b 5e dc2406 lea dx, [bp-00260h] ; 8d 96 a0 fd 2407 mov bx, word [bp-028h] ; 8b 5e d8 2372 2408 mov word [es:bx+004h], dx ; 26 89 57 04 2373 2409 mov [es:bx+006h], ss ; 26 8c 57 06 2374 mov al, byte [bp-00 ah] ; 8a 46 f62410 mov al, byte [bp-00eh] ; 8a 46 f2 2375 2411 mov byte [es:bx+008h], al ; 26 88 47 08 2376 2412 mov cx, strict word 00001h ; b9 01 00 2377 2413 mov bx, 000a1h ; bb a1 00 2378 mov ax, word [bp-02 4h] ; 8b 46 dc2414 mov ax, word [bp-028h] ; 8b 46 d8 2379 2415 mov dx, es ; 8c c2 2380 call 01c bah ; e8 f4f92416 call 01ceah ; e8 ec f9 2381 2417 test ax, ax ; 85 c0 2382 je short 02 2d5h ; 74 0b2418 je short 0230dh ; 74 0b 2383 2419 push 000e4h ; 68 e4 00 2384 2420 push strict byte 00007h ; 6a 07 2385 call 01 8e9h ; e8 17f62421 call 0190dh ; e8 03 f6 2386 2422 add sp, strict byte 00004h ; 83 c4 04 2387 mov cl, byte [bp-0025 bh] ; 8a 8e a5fd2423 mov cl, byte [bp-0025fh] ; 8a 8e a1 fd 2388 2424 and cl, 01fh ; 80 e1 1f 2389 test byte [bp-002 5ch], 080h ; f6 86 a4fd 802425 test byte [bp-00260h], 080h ; f6 86 a0 fd 80 2390 2426 db 00fh, 095h, 0c0h 2391 2427 ; setne al ; 0f 95 c0 2392 2428 xor ah, ah ; 30 e4 2393 2429 mov dx, ax ; 89 c2 2394 cmp byte [bp-00 1fch], 000h ; 80 be 04fe 002430 cmp byte [bp-00200h], 000h ; 80 be 00 fe 00 2395 2431 db 00fh, 095h, 0c0h 2396 2432 ; setne al ; 0f 95 c0 2397 2433 xor ah, ah ; 30 e4 2398 2434 mov bx, ax ; 89 c3 2399 movzx ax, byte [bp-00 ah] ; 0f b6 46 f62435 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2400 2436 imul ax, ax, strict byte 00018h ; 6b c0 18 2401 les si, [bp-02 4h] ; c4 76 dc2437 les si, [bp-028h] ; c4 76 d8 2402 2438 add si, ax ; 01 c6 2403 2439 mov byte [es:si+01fh], cl ; 26 88 4c 1f … … 2405 2441 mov byte [es:si+022h], bl ; 26 88 5c 22 2406 2442 mov word [es:si+024h], 00800h ; 26 c7 44 24 00 08 2407 movzx bx, byte [bp-00 6h] ; 0f b6 5e fa2408 add bx, word [bp-02 4h] ; 03 5e dc2409 mov al, byte [bp-00 ah] ; 8a 46 f62443 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 2444 add bx, word [bp-028h] ; 03 5e d8 2445 mov al, byte [bp-00eh] ; 8a 46 f2 2410 2446 mov byte [es:bx+001b0h], al ; 26 88 87 b0 01 2411 inc byte [bp-00 6h] ; fe 46 fa2412 mov al, byte [bp-0 0ch] ; 8a 46 f42447 inc byte [bp-00ah] ; fe 46 f6 2448 mov al, byte [bp-010h] ; 8a 46 f0 2413 2449 cmp AL, strict byte 003h ; 3c 03 2414 je short 023 57h ; 74 2c2450 je short 0238fh ; 74 2c 2415 2451 cmp AL, strict byte 002h ; 3c 02 2416 jne near 023 bah ; 0f 85 89 002417 movzx bx, byte [bp-00 ah] ; 0f b6 5e f62452 jne near 023f2h ; 0f 85 89 00 2453 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 2418 2454 imul bx, bx, strict byte 00018h ; 6b db 18 2419 mov es, [bp-02 2h] ; 8e 46 de2420 add bx, word [bp-02 4h] ; 03 5e dc2455 mov es, [bp-026h] ; 8e 46 da 2456 add bx, word [bp-028h] ; 03 5e d8 2421 2457 mov ax, word [es:bx+032h] ; 26 8b 47 32 2422 mov word [bp-0 2ch], ax ; 89 46 d42458 mov word [bp-030h], ax ; 89 46 d0 2423 2459 mov ax, word [es:bx+034h] ; 26 8b 47 34 2424 mov word [bp-02 ah], ax ; 89 46 d62460 mov word [bp-02eh], ax ; 89 46 d2 2425 2461 mov cx, strict word 0000bh ; b9 0b 00 2426 shr word [bp-02 ah], 1 ; d1 6e d62427 rcr word [bp-0 2ch], 1 ; d1 5e d42428 loop 023 4fh ; e2 f82429 movzx dx, byte [bp-001b bh] ; 0f b6 96 45fe2462 shr word [bp-02eh], 1 ; d1 6e d2 2463 rcr word [bp-030h], 1 ; d1 5e d0 2464 loop 02387h ; e2 f8 2465 movzx dx, byte [bp-001bfh] ; 0f b6 96 41 fe 2430 2466 sal dx, 008h ; c1 e2 08 2431 movzx ax, byte [bp-001 bch] ; 0f b6 86 44fe2467 movzx ax, byte [bp-001c0h] ; 0f b6 86 40 fe 2432 2468 or dx, ax ; 09 c2 2433 mov byte [bp-0 0eh], 00fh ; c6 46 f20f2434 jmp short 023 75h ; eb 092435 dec byte [bp-0 0eh] ; fe 4e f22436 cmp byte [bp-0 0eh], 000h ; 80 7e f2002437 jbe short 023 82h ; 76 0d2438 movzx cx, byte [bp-0 0eh] ; 0f b6 4e f22469 mov byte [bp-012h], 00fh ; c6 46 ee 0f 2470 jmp short 023adh ; eb 09 2471 dec byte [bp-012h] ; fe 4e ee 2472 cmp byte [bp-012h], 000h ; 80 7e ee 00 2473 jbe short 023bah ; 76 0d 2474 movzx cx, byte [bp-012h] ; 0f b6 4e ee 2439 2475 mov ax, strict word 00001h ; b8 01 00 2440 2476 sal ax, CL ; d3 e0 2441 2477 test dx, ax ; 85 c2 2442 je short 023 6ch ; 74 ea2478 je short 023a4h ; 74 ea 2443 2479 xor di, di ; 31 ff 2444 jmp short 023 8bh ; eb 052480 jmp short 023c3h ; eb 05 2445 2481 cmp di, strict byte 00014h ; 83 ff 14 2446 jnl short 023 a0h ; 7d 152482 jnl short 023d8h ; 7d 15 2447 2483 mov si, di ; 89 fe 2448 2484 add si, di ; 01 fe 2449 mov al, byte [bp+si-0022 5h] ; 8a 82 dbfd2450 mov byte [bp+si-0 5ch], al ; 88 42 a42451 mov al, byte [bp+si-0022 6h] ; 8a 82 dafd2452 mov byte [bp+si-05 bh], al ; 88 42 a52485 mov al, byte [bp+si-00229h] ; 8a 82 d7 fd 2486 mov byte [bp+si-060h], al ; 88 42 a0 2487 mov al, byte [bp+si-0022ah] ; 8a 82 d6 fd 2488 mov byte [bp+si-05fh], al ; 88 42 a1 2453 2489 inc di ; 47 2454 jmp short 023 86h ; eb e62455 mov byte [bp-03 4h], 000h ; c6 46 cc002490 jmp short 023beh ; eb e6 2491 mov byte [bp-038h], 000h ; c6 46 c8 00 2456 2492 mov di, strict word 00027h ; bf 27 00 2457 jmp short 023 aeh ; eb 052493 jmp short 023e6h ; eb 05 2458 2494 dec di ; 4f 2459 2495 test di, di ; 85 ff 2460 jle short 023 bah ; 7e 0c2461 cmp byte [bp+di-0 5ch], 020h ; 80 7b a4202462 jne short 023 bah ; 75 062463 mov byte [bp+di-0 5ch], 000h ; c6 43 a4002464 jmp short 023 a9h ; eb ef2465 mov al, byte [bp-0 0ch] ; 8a 46 f42496 jle short 023f2h ; 7e 0c 2497 cmp byte [bp+di-060h], 020h ; 80 7b a0 20 2498 jne short 023f2h ; 75 06 2499 mov byte [bp+di-060h], 000h ; c6 43 a0 00 2500 jmp short 023e1h ; eb ef 2501 mov al, byte [bp-010h] ; 8a 46 f0 2466 2502 cmp AL, strict byte 003h ; 3c 03 2467 je short 024 1dh ; 74 5c2503 je short 02455h ; 74 5c 2468 2504 cmp AL, strict byte 002h ; 3c 02 2469 je short 02 3ceh ; 74 092505 je short 02406h ; 74 09 2470 2506 cmp AL, strict byte 001h ; 3c 01 2471 je near 024 84h ; 0f 84 b9 002472 jmp near 024 a3h ; e9 d5 002473 cmp byte [bp-00 4h], 000h ; 80 7e fc002474 je short 02 3d9h ; 74 052507 je near 024bch ; 0f 84 b9 00 2508 jmp near 024dbh ; e9 d5 00 2509 cmp byte [bp-008h], 000h ; 80 7e f8 00 2510 je short 02411h ; 74 05 2475 2511 mov ax, 0010fh ; b8 0f 01 2476 jmp short 02 3dch ; eb 032512 jmp short 02414h ; eb 03 2477 2513 mov ax, 00116h ; b8 16 01 2478 2514 push ax ; 50 2479 movzx ax, byte [bp-01 4h] ; 0f b6 46 ec2515 movzx ax, byte [bp-018h] ; 0f b6 46 e8 2480 2516 push ax ; 50 2481 2517 push 0011dh ; 68 1d 01 2482 2518 push strict byte 00002h ; 6a 02 2483 call 01 8e9h ; e8 fff42519 call 0190dh ; e8 eb f4 2484 2520 add sp, strict byte 00008h ; 83 c4 08 2485 2521 xor di, di ; 31 ff 2486 movzx ax, byte [bp+di-0 5ch] ; 0f b6 43 a42522 movzx ax, byte [bp+di-060h] ; 0f b6 43 a0 2487 2523 inc di ; 47 2488 2524 test ax, ax ; 85 c0 2489 je short 024 06h ; 74 0e2525 je short 0243eh ; 74 0e 2490 2526 push ax ; 50 2491 2527 push 00128h ; 68 28 01 2492 2528 push strict byte 00002h ; 6a 02 2493 call 01 8e9h ; e8 e8f42529 call 0190dh ; e8 d4 f4 2494 2530 add sp, strict byte 00006h ; 83 c4 06 2495 jmp short 02 3efh ; eb e92496 push dword [bp-0 2ch] ; 66 ff 76 d42497 movzx ax, byte [bp-0 0eh] ; 0f b6 46 f22531 jmp short 02427h ; eb e9 2532 push dword [bp-030h] ; 66 ff 76 d0 2533 movzx ax, byte [bp-012h] ; 0f b6 46 ee 2498 2534 push ax ; 50 2499 2535 push 0012bh ; 68 2b 01 2500 2536 push strict byte 00002h ; 6a 02 2501 call 01 8e9h ; e8 d2f42537 call 0190dh ; e8 be f4 2502 2538 add sp, strict byte 0000ah ; 83 c4 0a 2503 jmp near 024 a3h ; e9 86 002504 cmp byte [bp-00 4h], 000h ; 80 7e fc002505 je short 024 28h ; 74 052539 jmp near 024dbh ; e9 86 00 2540 cmp byte [bp-008h], 000h ; 80 7e f8 00 2541 je short 02460h ; 74 05 2506 2542 mov ax, 0010fh ; b8 0f 01 2507 jmp short 024 2bh ; eb 032543 jmp short 02463h ; eb 03 2508 2544 mov ax, 00116h ; b8 16 01 2509 2545 push ax ; 50 2510 movzx ax, byte [bp-01 4h] ; 0f b6 46 ec2546 movzx ax, byte [bp-018h] ; 0f b6 46 e8 2511 2547 push ax ; 50 2512 2548 push 0011dh ; 68 1d 01 2513 2549 push strict byte 00002h ; 6a 02 2514 call 01 8e9h ; e8 b0f42550 call 0190dh ; e8 9c f4 2515 2551 add sp, strict byte 00008h ; 83 c4 08 2516 2552 xor di, di ; 31 ff 2517 movzx ax, byte [bp+di-0 5ch] ; 0f b6 43 a42553 movzx ax, byte [bp+di-060h] ; 0f b6 43 a0 2518 2554 inc di ; 47 2519 2555 test ax, ax ; 85 c0 2520 je short 024 55h ; 74 0e2556 je short 0248dh ; 74 0e 2521 2557 push ax ; 50 2522 2558 push 00128h ; 68 28 01 2523 2559 push strict byte 00002h ; 6a 02 2524 call 01 8e9h ; e8 99f42560 call 0190dh ; e8 85 f4 2525 2561 add sp, strict byte 00006h ; 83 c4 06 2526 jmp short 024 3eh ; eb e92527 movzx ax, byte [bp-00 ah] ; 0f b6 46 f62562 jmp short 02476h ; eb e9 2563 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2528 2564 imul ax, ax, strict byte 00018h ; 6b c0 18 2529 les bx, [bp-02 4h] ; c4 5e dc2565 les bx, [bp-028h] ; c4 5e d8 2530 2566 add bx, ax ; 01 c3 2531 2567 cmp byte [es:bx+01fh], 005h ; 26 80 7f 1f 05 2532 jne short 024 72h ; 75 0a2533 movzx ax, byte [bp-0 0eh] ; 0f b6 46 f22568 jne short 024aah ; 75 0a 2569 movzx ax, byte [bp-012h] ; 0f b6 46 ee 2534 2570 push ax ; 50 2535 2571 push 0014bh ; 68 4b 01 2536 jmp short 024 7ah ; eb 082537 movzx ax, byte [bp-0 0eh] ; 0f b6 46 f22572 jmp short 024b2h ; eb 08 2573 movzx ax, byte [bp-012h] ; 0f b6 46 ee 2538 2574 push ax ; 50 2539 2575 push 00165h ; 68 65 01 2540 2576 push strict byte 00002h ; 6a 02 2541 call 01 8e9h ; e8 6af42577 call 0190dh ; e8 56 f4 2542 2578 add sp, strict byte 00006h ; 83 c4 06 2543 jmp short 024 a3h ; eb 1f2544 cmp byte [bp-00 4h], 000h ; 80 7e fc002545 je short 024 8fh ; 74 052579 jmp short 024dbh ; eb 1f 2580 cmp byte [bp-008h], 000h ; 80 7e f8 00 2581 je short 024c7h ; 74 05 2546 2582 mov ax, 0010fh ; b8 0f 01 2547 jmp short 024 92h ; eb 032583 jmp short 024cah ; eb 03 2548 2584 mov ax, 00116h ; b8 16 01 2549 2585 push ax ; 50 2550 movzx ax, byte [bp-01 4h] ; 0f b6 46 ec2586 movzx ax, byte [bp-018h] ; 0f b6 46 e8 2551 2587 push ax ; 50 2552 2588 push 00177h ; 68 77 01 2553 2589 push strict byte 00002h ; 6a 02 2554 call 01 8e9h ; e8 49f42590 call 0190dh ; e8 35 f4 2555 2591 add sp, strict byte 00008h ; 83 c4 08 2556 inc byte [bp-00 ah] ; fe 46 f62557 cmp byte [bp-00 ah], 008h ; 80 7e f6082558 jnc short 02 4fah ; 73 4e2559 movzx bx, byte [bp-00 ah] ; 0f b6 5e f62592 inc byte [bp-00eh] ; fe 46 f2 2593 cmp byte [bp-00eh], 008h ; 80 7e f2 08 2594 jnc short 02532h ; 73 4e 2595 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 2560 2596 mov ax, bx ; 89 d8 2561 2597 cwd ; 99 … … 2563 2599 ; sub ax, dx ; 2b c2 2564 2600 sar ax, 1 ; d1 f8 2565 mov word [bp-02 6h], ax ; 89 46 da2566 mov al, byte [bp-02 6h] ; 8a 46 da2567 mov byte [bp-01 4h], al ; 88 46 ec2601 mov word [bp-02ah], ax ; 89 46 d6 2602 mov al, byte [bp-02ah] ; 8a 46 d6 2603 mov byte [bp-018h], al ; 88 46 e8 2568 2604 mov ax, bx ; 89 d8 2569 2605 cwd ; 99 … … 2571 2607 idiv bx ; f7 fb 2572 2608 mov cx, dx ; 89 d1 2573 mov byte [bp-00 4h], dl ; 88 56 fc2574 movzx ax, byte [bp-02 6h] ; 0f b6 46 da2609 mov byte [bp-008h], dl ; 88 56 f8 2610 movzx ax, byte [bp-02ah] ; 0f b6 46 d6 2575 2611 imul ax, ax, strict byte 00006h ; 6b c0 06 2576 les bx, [bp-02 4h] ; c4 5e dc2612 les bx, [bp-028h] ; c4 5e d8 2577 2613 add bx, ax ; 01 c3 2578 2614 mov si, word [es:bx+001c2h] ; 26 8b b7 c2 01 2579 2615 mov ax, word [es:bx+001c4h] ; 26 8b 87 c4 01 2580 mov word [bp-02 8h], ax ; 89 46 d82616 mov word [bp-02ch], ax ; 89 46 d4 2581 2617 mov dx, ax ; 89 c2 2582 2618 add dx, strict byte 00006h ; 83 c2 06 … … 2584 2620 out DX, AL ; ee 2585 2621 test cl, cl ; 84 c9 2586 je near 01f 64h ; 0f 84 70 fa2622 je near 01f9ch ; 0f 84 70 fa 2587 2623 mov ax, 000b0h ; b8 b0 00 2588 jmp near 01f 67h ; e9 6d fa2589 mov al, byte [bp-00 2h] ; 8a 46 fe2590 les bx, [bp-02 4h] ; c4 5e dc2624 jmp near 01f9fh ; e9 6d fa 2625 mov al, byte [bp-006h] ; 8a 46 fa 2626 les bx, [bp-028h] ; c4 5e d8 2591 2627 mov byte [es:bx+0019eh], al ; 26 88 87 9e 01 2592 mov al, byte [bp-00 6h] ; 8a 46 fa2628 mov al, byte [bp-00ah] ; 8a 46 f6 2593 2629 mov byte [es:bx+001afh], al ; 26 88 87 af 01 2594 movzx bx, byte [bp-00 2h] ; 0f b6 5e fe2630 movzx bx, byte [bp-006h] ; 0f b6 5e fa 2595 2631 mov dx, strict word 00075h ; ba 75 00 2596 2632 mov ax, strict word 00040h ; b8 40 00 2597 call 0160eh ; e8 f4f02598 lea ve ; c92633 call 0160eh ; e8 bc f0 2634 lea sp, [bp-004h] ; 8d 66 fc 2599 2635 pop di ; 5f 2600 2636 pop si ; 5e 2637 pop bp ; 5d 2601 2638 retn ; c3 2602 ata_cmd_data_out_: ; 0xf251e LB 0x215 2639 ata_cmd_data_out_: ; 0xf2559 LB 0x21a 2640 push bp ; 55 2641 mov bp, sp ; 89 e5 2603 2642 push si ; 56 2604 2643 push di ; 57 2605 enter 0001ah, 000h ; c8 1a 00 002644 sub sp, strict byte 0001ah ; 83 ec 1a 2606 2645 mov di, ax ; 89 c7 2607 mov word [bp-00 6h], dx ; 89 56 fa2608 mov word [bp-01 6h], bx ; 89 5e ea2609 mov word [bp-00 ah], cx ; 89 4e f62646 mov word [bp-00ah], dx ; 89 56 f6 2647 mov word [bp-01ah], bx ; 89 5e e6 2648 mov word [bp-00eh], cx ; 89 4e f2 2610 2649 mov es, dx ; 8e c2 2611 2650 movzx ax, byte [es:di+008h] ; 26 0f b6 45 08 … … 2614 2653 mov dh, al ; 88 c6 2615 2654 and dh, 001h ; 80 e6 01 2616 mov byte [bp-00 2h], dh ; 88 76 fe2655 mov byte [bp-006h], dh ; 88 76 fa 2617 2656 movzx si, dl ; 0f b6 f2 2618 2657 imul si, si, strict byte 00006h ; 6b f6 06 … … 2620 2659 mov bx, word [es:si+001c2h] ; 26 8b 9c c2 01 2621 2660 mov dx, word [es:si+001c4h] ; 26 8b 94 c4 01 2622 mov word [bp-00 8h], dx ; 89 56 f82661 mov word [bp-00ch], dx ; 89 56 f4 2623 2662 imul ax, ax, strict byte 00018h ; 6b c0 18 2624 2663 mov si, di ; 89 fe 2625 2664 add si, ax ; 01 c6 2626 2665 mov al, byte [es:si+022h] ; 26 8a 44 22 2627 mov byte [bp-00 4h], al ; 88 46 fc2666 mov byte [bp-008h], al ; 88 46 f8 2628 2667 cmp AL, strict byte 001h ; 3c 01 2629 jne short 025 70h ; 75 072630 mov word [bp-0 0eh], 00080h ; c7 46 f280 002631 jmp short 025 75h ; eb 052632 mov word [bp-0 0eh], 00100h ; c7 46 f200 012668 jne short 025adh ; 75 07 2669 mov word [bp-012h], 00080h ; c7 46 ee 80 00 2670 jmp short 025b2h ; eb 05 2671 mov word [bp-012h], 00100h ; c7 46 ee 00 01 2633 2672 lea dx, [bx+007h] ; 8d 57 07 2634 2673 in AL, DX ; ec … … 2636 2675 ; sub ah, ah ; 2a e4 2637 2676 test AL, strict byte 080h ; a8 80 2638 je short 025 8eh ; 74 0f2639 mov dx, word [bp-00 8h] ; 8b 56 f82677 je short 025cbh ; 74 0f 2678 mov dx, word [bp-00ch] ; 8b 56 f4 2640 2679 add dx, strict byte 00006h ; 83 c2 06 2641 2680 mov AL, strict byte 008h ; b0 08 2642 2681 out DX, AL ; ee 2643 2682 mov dx, strict word 00001h ; ba 01 00 2644 jmp near 027 2dh ; e9 9f 012645 mov es, [bp-00 6h] ; 8e 46 fa2683 jmp near 0276ah ; e9 9f 01 2684 mov es, [bp-00ah] ; 8e 46 f6 2646 2685 mov ax, word [es:di] ; 26 8b 05 2647 mov word [bp-01 ah], ax ; 89 46 e62686 mov word [bp-01eh], ax ; 89 46 e2 2648 2687 mov ax, word [es:di+002h] ; 26 8b 45 02 2649 mov word [bp-01 8h], ax ; 89 46 e82688 mov word [bp-01ch], ax ; 89 46 e4 2650 2689 mov si, word [es:di+004h] ; 26 8b 75 04 2651 2690 mov ax, word [es:di+006h] ; 26 8b 45 06 2691 mov word [bp-018h], ax ; 89 46 e8 2692 mov ax, word [es:di+012h] ; 26 8b 45 12 2693 mov word [bp-010h], ax ; 89 46 f0 2694 mov ax, word [es:di+00eh] ; 26 8b 45 0e 2695 mov word [bp-016h], ax ; 89 46 ea 2696 mov ax, word [es:di+010h] ; 26 8b 45 10 2652 2697 mov word [bp-014h], ax ; 89 46 ec 2653 mov ax, word [es:di+012h] ; 26 8b 45 12 2654 mov word [bp-00ch], ax ; 89 46 f4 2655 mov ax, word [es:di+00eh] ; 26 8b 45 0e 2656 mov word [bp-012h], ax ; 89 46 ee 2657 mov ax, word [es:di+010h] ; 26 8b 45 10 2658 mov word [bp-010h], ax ; 89 46 f0 2659 mov ax, word [bp-00ch] ; 8b 46 f4 2698 mov ax, word [bp-010h] ; 8b 46 f0 2660 2699 test ax, ax ; 85 c0 2661 jne short 026 2ch ; 75 672662 mov dx, word [bp-01 ah] ; 8b 56 e62663 add dx, word [bp-00 ah] ; 03 56 f62664 adc ax, word [bp-01 8h] ; 13 46 e82700 jne short 02669h ; 75 67 2701 mov dx, word [bp-01eh] ; 8b 56 e2 2702 add dx, word [bp-00eh] ; 03 56 f2 2703 adc ax, word [bp-01ch] ; 13 46 e4 2665 2704 cmp ax, 01000h ; 3d 00 10 2666 jnbe short 02 5d5h ; 77 022667 jne short 026 00h ; 75 2b2668 mov ax, word [bp-01 8h] ; 8b 46 e82705 jnbe short 02612h ; 77 02 2706 jne short 0263dh ; 75 2b 2707 mov ax, word [bp-01ch] ; 8b 46 e4 2669 2708 xor al, al ; 30 c0 2670 2709 shr ax, 008h ; c1 e8 08 2671 mov word [bp-0 0ch], ax ; 89 46 f42672 mov ax, word [bp-00 ah] ; 8b 46 f62710 mov word [bp-010h], ax ; 89 46 f0 2711 mov ax, word [bp-00eh] ; 8b 46 f2 2673 2712 xor al, al ; 30 c0 2674 2713 shr ax, 008h ; c1 e8 08 … … 2676 2715 out DX, AL ; ee 2677 2716 lea dx, [bx+003h] ; 8d 57 03 2678 mov al, byte [bp-0 0ch] ; 8a 46 f42717 mov al, byte [bp-010h] ; 8a 46 f0 2679 2718 out DX, AL ; ee 2680 2719 lea dx, [bx+004h] ; 8d 57 04 … … 2683 2722 lea dx, [bx+005h] ; 8d 57 05 2684 2723 out DX, AL ; ee 2685 mov byte [bp-01 7h], al ; 88 46 e92686 mov ax, word [bp-01 ah] ; 8b 46 e62724 mov byte [bp-01bh], al ; 88 46 e5 2725 mov ax, word [bp-01eh] ; 8b 46 e2 2687 2726 xor ah, ah ; 30 e4 2688 mov word [bp-0 0ch], ax ; 89 46 f42727 mov word [bp-010h], ax ; 89 46 f0 2689 2728 mov cx, strict word 00008h ; b9 08 00 2690 shr word [bp-01 8h], 1 ; d1 6e e82691 rcr word [bp-01 ah], 1 ; d1 5e e62692 loop 026 0bh ; e2 f82693 mov ax, word [bp-01 ah] ; 8b 46 e62694 mov word [bp-01 2h], ax ; 89 46 ee2695 mov ax, word [bp-01 8h] ; 8b 46 e82696 mov word [bp-01 ah], ax ; 89 46 e62697 mov word [bp-01 8h], strict word 00000h ; c7 46 e800 002729 shr word [bp-01ch], 1 ; d1 6e e4 2730 rcr word [bp-01eh], 1 ; d1 5e e2 2731 loop 02648h ; e2 f8 2732 mov ax, word [bp-01eh] ; 8b 46 e2 2733 mov word [bp-016h], ax ; 89 46 ea 2734 mov ax, word [bp-01ch] ; 8b 46 e4 2735 mov word [bp-01eh], ax ; 89 46 e2 2736 mov word [bp-01ch], strict word 00000h ; c7 46 e4 00 00 2698 2737 and ax, strict word 0000fh ; 25 0f 00 2699 2738 or AL, strict byte 040h ; 0c 40 2700 mov word [bp-01 0h], ax ; 89 46 f02701 mov dx, word [bp-00 8h] ; 8b 56 f82739 mov word [bp-014h], ax ; 89 46 ec 2740 mov dx, word [bp-00ch] ; 8b 56 f4 2702 2741 add dx, strict byte 00006h ; 83 c2 06 2703 2742 mov AL, strict byte 00ah ; b0 0a … … 2707 2746 out DX, AL ; ee 2708 2747 lea dx, [bx+002h] ; 8d 57 02 2709 mov al, byte [bp-00 ah] ; 8a 46 f62748 mov al, byte [bp-00eh] ; 8a 46 f2 2710 2749 out DX, AL ; ee 2711 2750 lea dx, [bx+003h] ; 8d 57 03 2712 mov al, byte [bp-0 0ch] ; 8a 46 f42713 out DX, AL ; ee 2714 mov ax, word [bp-01 2h] ; 8b 46 ee2751 mov al, byte [bp-010h] ; 8a 46 f0 2752 out DX, AL ; ee 2753 mov ax, word [bp-016h] ; 8b 46 ea 2715 2754 lea dx, [bx+004h] ; 8d 57 04 2716 2755 out DX, AL ; ee … … 2718 2757 lea dx, [bx+005h] ; 8d 57 05 2719 2758 out DX, AL ; ee 2720 cmp byte [bp-00 2h], 000h ; 80 7e fe002721 je short 026 62h ; 74 052759 cmp byte [bp-006h], 000h ; 80 7e fa 00 2760 je short 0269fh ; 74 05 2722 2761 mov ax, 000b0h ; b8 b0 00 2723 jmp short 026 65h ; eb 032762 jmp short 026a2h ; eb 03 2724 2763 mov ax, 000a0h ; b8 a0 00 2725 movzx dx, byte [bp-01 0h] ; 0f b6 56 f02764 movzx dx, byte [bp-014h] ; 0f b6 56 ec 2726 2765 or ax, dx ; 09 d0 2727 2766 lea dx, [bx+006h] ; 8d 57 06 2728 2767 out DX, AL ; ee 2729 2768 lea dx, [bx+007h] ; 8d 57 07 2730 mov al, byte [bp-01 6h] ; 8a 46 ea2769 mov al, byte [bp-01ah] ; 8a 46 e6 2731 2770 out DX, AL ; ee 2732 2771 lea dx, [bx+007h] ; 8d 57 07 … … 2736 2775 mov dl, al ; 88 c2 2737 2776 test AL, strict byte 080h ; a8 80 2738 jne short 026 76h ; 75 f42777 jne short 026b3h ; 75 f4 2739 2778 test AL, strict byte 001h ; a8 01 2740 je short 026 95h ; 74 0f2741 mov dx, word [bp-00 8h] ; 8b 56 f82779 je short 026d2h ; 74 0f 2780 mov dx, word [bp-00ch] ; 8b 56 f4 2742 2781 add dx, strict byte 00006h ; 83 c2 06 2743 2782 mov AL, strict byte 008h ; b0 08 2744 2783 out DX, AL ; ee 2745 2784 mov dx, strict word 00002h ; ba 02 00 2746 jmp near 027 2dh ; e9 98 002785 jmp near 0276ah ; e9 98 00 2747 2786 test dl, 008h ; f6 c2 08 2748 jne short 026 a9h ; 75 0f2749 mov dx, word [bp-00 8h] ; 8b 56 f82787 jne short 026e6h ; 75 0f 2788 mov dx, word [bp-00ch] ; 8b 56 f4 2750 2789 add dx, strict byte 00006h ; 83 c2 06 2751 2790 mov AL, strict byte 008h ; b0 08 2752 2791 out DX, AL ; ee 2753 2792 mov dx, strict word 00003h ; ba 03 00 2754 jmp near 027 2dh ; e9 84 002793 jmp near 0276ah ; e9 84 00 2755 2794 sti ; fb 2756 2795 cmp si, 0f800h ; 81 fe 00 f8 2757 jc short 026 bdh ; 72 0d2796 jc short 026fah ; 72 0d 2758 2797 sub si, 00800h ; 81 ee 00 08 2759 mov ax, word [bp-01 4h] ; 8b 46 ec2798 mov ax, word [bp-018h] ; 8b 46 e8 2760 2799 add ax, 00080h ; 05 80 00 2761 mov word [bp-01 4h], ax ; 89 46 ec2762 cmp byte [bp-00 4h], 001h ; 80 7e fc012763 jne short 02 6d1h ; 75 0e2800 mov word [bp-018h], ax ; 89 46 e8 2801 cmp byte [bp-008h], 001h ; 80 7e f8 01 2802 jne short 0270eh ; 75 0e 2764 2803 mov dx, bx ; 89 da 2765 mov cx, word [bp-0 0eh] ; 8b 4e f22766 mov es, [bp-01 4h] ; 8e 46 ec2804 mov cx, word [bp-012h] ; 8b 4e ee 2805 mov es, [bp-018h] ; 8e 46 e8 2767 2806 db 0f3h, 066h, 026h, 06fh 2768 2807 ; rep es outsd ; f3 66 26 6f 2769 jmp short 02 6dch ; eb 0b2808 jmp short 02719h ; eb 0b 2770 2809 mov dx, bx ; 89 da 2771 mov cx, word [bp-0 0eh] ; 8b 4e f22772 mov es, [bp-01 4h] ; 8e 46 ec2810 mov cx, word [bp-012h] ; 8b 4e ee 2811 mov es, [bp-018h] ; 8e 46 e8 2773 2812 db 0f3h, 026h, 06fh 2774 2813 ; rep es outsw ; f3 26 6f 2775 mov es, [bp-00 6h] ; 8e 46 fa2814 mov es, [bp-00ah] ; 8e 46 f6 2776 2815 inc word [es:di+014h] ; 26 ff 45 14 2777 dec word [bp-00 ah] ; ff 4e f62816 dec word [bp-00eh] ; ff 4e f2 2778 2817 lea dx, [bx+007h] ; 8d 57 07 2779 2818 in AL, DX ; ec … … 2782 2821 mov dl, al ; 88 c2 2783 2822 test AL, strict byte 080h ; a8 80 2784 jne short 02 6e6h ; 75 f42785 cmp word [bp-00 ah], strict byte 00000h ; 83 7e f6002786 jne short 027 0ch ; 75 142823 jne short 02723h ; 75 f4 2824 cmp word [bp-00eh], strict byte 00000h ; 83 7e f2 00 2825 jne short 02749h ; 75 14 2787 2826 and AL, strict byte 0e9h ; 24 e9 2788 2827 cmp AL, strict byte 040h ; 3c 40 2789 je short 027 22h ; 74 242790 mov dx, word [bp-00 8h] ; 8b 56 f82828 je short 0275fh ; 74 24 2829 mov dx, word [bp-00ch] ; 8b 56 f4 2791 2830 add dx, strict byte 00006h ; 83 c2 06 2792 2831 mov AL, strict byte 008h ; b0 08 2793 2832 out DX, AL ; ee 2794 2833 mov dx, strict word 00006h ; ba 06 00 2795 jmp short 027 2dh ; eb 212834 jmp short 0276ah ; eb 21 2796 2835 mov al, dl ; 88 d0 2797 2836 and AL, strict byte 0c9h ; 24 c9 2798 2837 cmp AL, strict byte 048h ; 3c 48 2799 je short 026 aah ; 74 962800 mov dx, word [bp-00 8h] ; 8b 56 f82838 je short 026e7h ; 74 96 2839 mov dx, word [bp-00ch] ; 8b 56 f4 2801 2840 add dx, strict byte 00006h ; 83 c2 06 2802 2841 mov AL, strict byte 008h ; b0 08 2803 2842 out DX, AL ; ee 2804 2843 mov dx, strict word 00007h ; ba 07 00 2805 jmp short 027 2dh ; eb 0b2806 mov dx, word [bp-00 8h] ; 8b 56 f82844 jmp short 0276ah ; eb 0b 2845 mov dx, word [bp-00ch] ; 8b 56 f4 2807 2846 add dx, strict byte 00006h ; 83 c2 06 2808 2847 mov AL, strict byte 008h ; b0 08 … … 2810 2849 xor dx, dx ; 31 d2 2811 2850 mov ax, dx ; 89 d0 2812 lea ve ; c92851 lea sp, [bp-004h] ; 8d 66 fc 2813 2852 pop di ; 5f 2814 2853 pop si ; 5e 2854 pop bp ; 5d 2815 2855 retn ; c3 2816 @ata_read_sectors: ; 0xf2733 LB 0x77 2856 @ata_read_sectors: ; 0xf2773 LB 0x7a 2857 push bp ; 55 2858 mov bp, sp ; 89 e5 2817 2859 push si ; 56 2818 2860 push di ; 57 2819 enter 00002h, 000h ; c8 02 00 002820 mov si, word [bp+00 8h] ; 8b 76 082821 mov es, [bp+00 ah] ; 8e 46 0a2861 push ax ; 50 2862 mov si, word [bp+004h] ; 8b 76 04 2863 mov es, [bp+006h] ; 8e 46 06 2822 2864 mov bl, byte [es:si+008h] ; 26 8a 5c 08 2823 2865 mov cx, word [es:si+00ah] ; 26 8b 4c 0a … … 2826 2868 mov ax, word [es:si+012h] ; 26 8b 44 12 2827 2869 test ax, ax ; 85 c0 2828 je short 027 61h ; 74 0d2870 je short 027a1h ; 74 0d 2829 2871 movzx di, bl ; 0f b6 fb 2830 2872 imul di, di, strict byte 00018h ; 6b ff 18 2831 mov [bp-00 2h], es ; 8c 46 fe2873 mov [bp-006h], es ; 8c 46 fa 2832 2874 add di, si ; 01 f7 2833 jmp short 027 8dh ; eb 2c2875 jmp short 027cdh ; eb 2c 2834 2876 mov di, word [es:si] ; 26 8b 3c 2835 2877 add di, cx ; 01 cf 2836 mov word [bp-00 2h], di ; 89 7e fe2878 mov word [bp-006h], di ; 89 7e fa 2837 2879 adc ax, word [es:si+002h] ; 26 13 44 02 2838 2880 cmp ax, 01000h ; 3d 00 10 2839 jnbe short 027 74h ; 77 022840 jne short 027 80h ; 75 0c2881 jnbe short 027b4h ; 77 02 2882 jne short 027c0h ; 75 0c 2841 2883 mov bx, strict word 00024h ; bb 24 00 2842 2884 mov ax, si ; 89 f0 2843 2885 mov dx, es ; 8c c2 2844 call 01c bah ; e8 3c f52845 jmp short 027 a4h ; eb 242886 call 01ceah ; e8 2c f5 2887 jmp short 027e4h ; eb 24 2846 2888 movzx ax, bl ; 0f b6 c3 2847 2889 imul ax, ax, strict byte 00018h ; 6b c0 18 2848 mov [bp-00 2h], es ; 8c 46 fe2890 mov [bp-006h], es ; 8c 46 fa 2849 2891 mov di, si ; 89 f7 2850 2892 add di, ax ; 01 c7 … … 2853 2895 mov ax, si ; 89 f0 2854 2896 mov dx, es ; 8c c2 2855 call 01c bah ; e8 1f f52856 mov es, [bp-00 2h] ; 8e 46 fe2897 call 01ceah ; e8 0f f5 2898 mov es, [bp-006h] ; 8e 46 fa 2857 2899 mov word [es:di+024h], 00200h ; 26 c7 45 24 00 02 2858 lea ve ; c92900 lea sp, [bp-004h] ; 8d 66 fc 2859 2901 pop di ; 5f 2860 2902 pop si ; 5e 2903 pop bp ; 5d 2861 2904 retn 00004h ; c2 04 00 2862 @ata_write_sectors: ; 0xf27aa LB 0x3a 2863 push si ; 56 2905 @ata_write_sectors: ; 0xf27ed LB 0x3d 2864 2906 push bp ; 55 2865 2907 mov bp, sp ; 89 e5 2866 les si, [bp+006h] ; c4 76 06 2908 push si ; 56 2909 les si, [bp+004h] ; c4 76 04 2867 2910 mov cx, word [es:si+00ah] ; 26 8b 4c 0a 2868 2911 cmp word [es:si+012h], strict byte 00000h ; 26 83 7c 12 00 2869 je short 02 7c8h ; 74 0c2912 je short 0280bh ; 74 0c 2870 2913 mov bx, strict word 00030h ; bb 30 00 2871 2914 mov ax, si ; 89 f0 2872 2915 mov dx, es ; 8c c2 2873 call 025 1eh ; e8 58fd2874 jmp short 02 7dfh ; eb 172916 call 02559h ; e8 50 fd 2917 jmp short 02822h ; eb 17 2875 2918 xor ax, ax ; 31 c0 2876 2919 mov dx, word [es:si] ; 26 8b 14 … … 2878 2921 adc ax, word [es:si+002h] ; 26 13 44 02 2879 2922 cmp ax, 01000h ; 3d 00 10 2880 jnbe short 02 7dah ; 77 022881 jne short 027 bch ; 75 e22923 jnbe short 0281dh ; 77 02 2924 jne short 027ffh ; 75 e2 2882 2925 mov bx, strict word 00034h ; bb 34 00 2883 jmp short 027bfh ; eb e0 2926 jmp short 02802h ; eb e0 2927 lea sp, [bp-002h] ; 8d 66 fe 2928 pop si ; 5e 2884 2929 pop bp ; 5d 2885 pop si ; 5e2886 2930 retn 00004h ; c2 04 00 2887 ata_cmd_packet_: ; 0xf27e4 LB 0x2e3 2931 ata_cmd_packet_: ; 0xf282a LB 0x2e8 2932 push bp ; 55 2933 mov bp, sp ; 89 e5 2888 2934 push si ; 56 2889 2935 push di ; 57 2890 enter 00014h, 000h ; c8 14 00 002936 sub sp, strict byte 00014h ; 83 ec 14 2891 2937 push ax ; 50 2892 mov byte [bp-00 4h], dl ; 88 56 fc2938 mov byte [bp-008h], dl ; 88 56 f8 2893 2939 mov di, bx ; 89 df 2894 2940 mov dx, strict word 0000eh ; ba 0e 00 2895 2941 mov ax, strict word 00040h ; b8 40 00 2896 call 0161ch ; e8 23 ee2897 mov word [bp-0 0eh], 00122h ; c7 46 f222 012898 mov word [bp-00 ah], ax ; 89 46 f62899 mov ax, word [bp-01 6h] ; 8b 46 ea2942 call 0161ch ; e8 db ed 2943 mov word [bp-012h], 00122h ; c7 46 ee 22 01 2944 mov word [bp-00eh], ax ; 89 46 f2 2945 mov ax, word [bp-01ah] ; 8b 46 e6 2900 2946 shr ax, 1 ; d1 e8 2901 mov ah, byte [bp-01 6h] ; 8a 66 ea2947 mov ah, byte [bp-01ah] ; 8a 66 e6 2902 2948 and ah, 001h ; 80 e4 01 2903 mov byte [bp-00 2h], ah ; 88 66 fe2904 cmp byte [bp+00 eh], 002h ; 80 7e 0e022905 jne short 028 34h ; 75 1f2906 mov bx, 00d3 2h ; bb 320d2949 mov byte [bp-006h], ah ; 88 66 fa 2950 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 2951 jne short 0287ch ; 75 1f 2952 mov bx, 00d38h ; bb 38 0d 2907 2953 mov cx, ds ; 8c d9 2908 2954 mov ax, strict word 00004h ; b8 04 00 2909 call 018 aeh ; e8 8ef02955 call 018cch ; e8 64 f0 2910 2956 push 00191h ; 68 91 01 2911 2957 push 001a0h ; 68 a0 01 2912 2958 push strict byte 00004h ; 6a 04 2913 call 01 8e9h ; e8 bef02959 call 0190dh ; e8 9a f0 2914 2960 add sp, strict byte 00006h ; 83 c4 06 2915 2961 mov dx, strict word 00001h ; ba 01 00 2916 jmp near 02 abfh ; e9 8b 022917 test byte [bp+00 8h], 001h ; f6 46 08012918 jne short 028 2eh ; 75 f42962 jmp near 02b07h ; e9 8b 02 2963 test byte [bp+004h], 001h ; f6 46 04 01 2964 jne short 02876h ; 75 f4 2919 2965 xor ah, ah ; 30 e4 2920 2966 imul ax, ax, strict byte 00006h ; 6b c0 06 2921 mov es, [bp-00 ah] ; 8e 46 f62922 mov si, word [bp-0 0eh] ; 8b 76 f22967 mov es, [bp-00eh] ; 8e 46 f2 2968 mov si, word [bp-012h] ; 8b 76 ee 2923 2969 add si, ax ; 01 c6 2924 2970 mov bx, word [es:si+001c2h] ; 26 8b 9c c2 01 2925 2971 mov ax, word [es:si+001c4h] ; 26 8b 84 c4 01 2926 mov word [bp-0 0ch], ax ; 89 46 f42927 imul si, word [bp-01 6h], strict byte 00018h ; 6b 76 ea182928 add si, word [bp-0 0eh] ; 03 76 f22972 mov word [bp-010h], ax ; 89 46 f0 2973 imul si, word [bp-01ah], strict byte 00018h ; 6b 76 e6 18 2974 add si, word [bp-012h] ; 03 76 ee 2929 2975 mov al, byte [es:si+022h] ; 26 8a 44 22 2930 mov byte [bp-00 6h], al ; 88 46 fa2976 mov byte [bp-00ah], al ; 88 46 f6 2931 2977 xor ax, ax ; 31 c0 2932 mov word [bp-01 4h], ax ; 89 46 ec2933 mov word [bp-01 2h], ax ; 89 46 ee2934 mov al, byte [bp-00 4h] ; 8a 46 fc2978 mov word [bp-018h], ax ; 89 46 e8 2979 mov word [bp-016h], ax ; 89 46 ea 2980 mov al, byte [bp-008h] ; 8a 46 f8 2935 2981 cmp AL, strict byte 00ch ; 3c 0c 2936 jnc short 028 77h ; 73 062937 mov byte [bp-00 4h], 00ch ; c6 46 fc0c2938 jmp short 028 7dh ; eb 062939 jbe short 028 7dh ; 76 042940 mov byte [bp-00 4h], 010h ; c6 46 fc102941 shr byte [bp-00 4h], 1 ; d0 6e fc2942 mov es, [bp-00 ah] ; 8e 46 f62943 mov si, word [bp-0 0eh] ; 8b 76 f22982 jnc short 028bfh ; 73 06 2983 mov byte [bp-008h], 00ch ; c6 46 f8 0c 2984 jmp short 028c5h ; eb 06 2985 jbe short 028c5h ; 76 04 2986 mov byte [bp-008h], 010h ; c6 46 f8 10 2987 shr byte [bp-008h], 1 ; d0 6e f8 2988 mov es, [bp-00eh] ; 8e 46 f2 2989 mov si, word [bp-012h] ; 8b 76 ee 2944 2990 db 066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h 2945 2991 ; mov dword [es:si+014h], strict dword 000000000h ; 66 26 c7 44 14 00 00 00 00 … … 2950 2996 ; sub ah, ah ; 2a e4 2951 2997 test AL, strict byte 080h ; a8 80 2952 je short 028 a5h ; 74 062998 je short 028edh ; 74 06 2953 2999 mov dx, strict word 00002h ; ba 02 00 2954 jmp near 02 abfh ; e9 1a 022955 mov dx, word [bp-0 0ch] ; 8b 56 f43000 jmp near 02b07h ; e9 1a 02 3001 mov dx, word [bp-010h] ; 8b 56 f0 2956 3002 add dx, strict byte 00006h ; 83 c2 06 2957 3003 mov AL, strict byte 00ah ; b0 0a … … 2963 3009 mov AL, strict byte 0ffh ; b0 ff 2964 3010 out DX, AL ; ee 2965 cmp byte [bp-00 2h], 000h ; 80 7e fe002966 je short 02 8c5h ; 74 053011 cmp byte [bp-006h], 000h ; 80 7e fa 00 3012 je short 0290dh ; 74 05 2967 3013 mov ax, 000b0h ; b8 b0 00 2968 jmp short 02 8c8h ; eb 033014 jmp short 02910h ; eb 03 2969 3015 mov ax, 000a0h ; b8 a0 00 2970 3016 lea dx, [bx+006h] ; 8d 57 06 … … 2979 3025 mov dl, al ; 88 c2 2980 3026 test AL, strict byte 080h ; a8 80 2981 jne short 02 8d2h ; 75 f43027 jne short 0291ah ; 75 f4 2982 3028 test AL, strict byte 001h ; a8 01 2983 je short 02 8f1h ; 74 0f2984 mov dx, word [bp-0 0ch] ; 8b 56 f43029 je short 02939h ; 74 0f 3030 mov dx, word [bp-010h] ; 8b 56 f0 2985 3031 add dx, strict byte 00006h ; 83 c2 06 2986 3032 mov AL, strict byte 008h ; b0 08 2987 3033 out DX, AL ; ee 2988 3034 mov dx, strict word 00003h ; ba 03 00 2989 jmp near 02 abfh ; e9 ce 013035 jmp near 02b07h ; e9 ce 01 2990 3036 test dl, 008h ; f6 c2 08 2991 jne short 029 05h ; 75 0f2992 mov dx, word [bp-0 0ch] ; 8b 56 f43037 jne short 0294dh ; 75 0f 3038 mov dx, word [bp-010h] ; 8b 56 f0 2993 3039 add dx, strict byte 00006h ; 83 c2 06 2994 3040 mov AL, strict byte 008h ; b0 08 2995 3041 out DX, AL ; ee 2996 3042 mov dx, strict word 00004h ; ba 04 00 2997 jmp near 02 abfh ; e9 ba 013043 jmp near 02b07h ; e9 ba 01 2998 3044 sti ; fb 2999 3045 mov ax, di ; 89 f8 … … 3002 3048 mov si, di ; 89 fe 3003 3049 and si, strict byte 0000fh ; 83 e6 0f 3004 movzx cx, byte [bp-00 4h] ; 0f b6 4e fc3050 movzx cx, byte [bp-008h] ; 0f b6 4e f8 3005 3051 mov dx, bx ; 89 da 3006 3052 mov es, ax ; 8e c0 3007 3053 db 0f3h, 026h, 06fh 3008 3054 ; rep es outsw ; f3 26 6f 3009 cmp byte [bp+00 eh], 000h ; 80 7e 0e003010 jne short 029 2eh ; 75 0b3055 cmp byte [bp+00ah], 000h ; 80 7e 0a 00 3056 jne short 02976h ; 75 0b 3011 3057 lea dx, [bx+007h] ; 8d 57 07 3012 3058 in AL, DX ; ec … … 3014 3060 ; sub ah, ah ; 2a e4 3015 3061 mov dl, al ; 88 c2 3016 jmp near 02a a0h ; e9 72 013062 jmp near 02ae8h ; e9 72 01 3017 3063 lea dx, [bx+007h] ; 8d 57 07 3018 3064 in AL, DX ; ec … … 3021 3067 mov dl, al ; 88 c2 3022 3068 test AL, strict byte 080h ; a8 80 3023 jne short 029 2eh ; 75 f43069 jne short 02976h ; 75 f4 3024 3070 test AL, strict byte 088h ; a8 88 3025 je near 02a a0h ; 0f 84 60 013071 je near 02ae8h ; 0f 84 60 01 3026 3072 test AL, strict byte 001h ; a8 01 3027 je short 029 4fh ; 74 0b3028 mov dx, word [bp-0 0ch] ; 8b 56 f43073 je short 02997h ; 74 0b 3074 mov dx, word [bp-010h] ; 8b 56 f0 3029 3075 add dx, strict byte 00006h ; 83 c2 06 3030 3076 mov AL, strict byte 008h ; b0 08 3031 3077 out DX, AL ; ee 3032 jmp short 02 8ebh ; eb 9c3078 jmp short 02933h ; eb 9c 3033 3079 mov al, dl ; 88 d0 3034 3080 and AL, strict byte 0c9h ; 24 c9 3035 3081 cmp AL, strict byte 048h ; 3c 48 3036 je short 029 62h ; 74 0b3037 mov dx, word [bp-0 0ch] ; 8b 56 f43082 je short 029aah ; 74 0b 3083 mov dx, word [bp-010h] ; 8b 56 f0 3038 3084 add dx, strict byte 00006h ; 83 c2 06 3039 3085 mov AL, strict byte 008h ; b0 08 3040 3086 out DX, AL ; ee 3041 jmp short 02 8ffh ; eb 9d3042 mov ax, word [bp+0 10h] ; 8b 46 103087 jmp short 02947h ; eb 9d 3088 mov ax, word [bp+00ch] ; 8b 46 0c 3043 3089 shr ax, 004h ; c1 e8 04 3044 mov dx, word [bp+0 12h] ; 8b 56 123090 mov dx, word [bp+00eh] ; 8b 56 0e 3045 3091 add dx, ax ; 01 c2 3046 mov ax, word [bp+0 10h] ; 8b 46 103092 mov ax, word [bp+00ch] ; 8b 46 0c 3047 3093 and ax, strict word 0000fh ; 25 0f 00 3048 mov word [bp+0 10h], ax ; 89 46 103049 mov word [bp+0 12h], dx ; 89 56 123094 mov word [bp+00ch], ax ; 89 46 0c 3095 mov word [bp+00eh], dx ; 89 56 0e 3050 3096 lea dx, [bx+005h] ; 8d 57 05 3051 3097 in AL, DX ; ec … … 3059 3105 ; sub ah, ah ; 2a e4 3060 3106 add cx, ax ; 01 c1 3061 mov word [bp-01 0h], cx ; 89 4e f03062 mov ax, word [bp+00 8h] ; 8b 46 083107 mov word [bp-014h], cx ; 89 4e ec 3108 mov ax, word [bp+004h] ; 8b 46 04 3063 3109 cmp ax, cx ; 39 c8 3064 jbe short 029 a2h ; 76 0c3110 jbe short 029eah ; 76 0c 3065 3111 mov ax, cx ; 89 c8 3066 sub word [bp+00 8h], cx ; 29 4e 083112 sub word [bp+004h], cx ; 29 4e 04 3067 3113 xor ax, cx ; 31 c8 3068 mov word [bp-01 0h], ax ; 89 46 f03069 jmp short 029 ach ; eb 0a3114 mov word [bp-014h], ax ; 89 46 ec 3115 jmp short 029f4h ; eb 0a 3070 3116 mov cx, ax ; 89 c1 3071 mov word [bp+00 8h], strict word 00000h ; c7 46 0800 003072 sub word [bp-01 0h], ax ; 29 46 f03117 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 3118 sub word [bp-014h], ax ; 29 46 ec 3073 3119 xor ax, ax ; 31 c0 3074 cmp word [bp+00 ch], strict byte 00000h ; 83 7e 0c003075 jne short 02 9d5h ; 75 213076 mov dx, word [bp-01 0h] ; 8b 56 f03077 cmp dx, word [bp+00 ah] ; 3b 56 0a3078 jbe short 02 9d5h ; 76 193079 mov ax, word [bp-01 0h] ; 8b 46 f03080 sub ax, word [bp+00 ah] ; 2b 46 0a3081 mov word [bp-00 8h], ax ; 89 46 f83082 mov ax, word [bp+00 ah] ; 8b 46 0a3083 mov word [bp-01 0h], ax ; 89 46 f03120 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 3121 jne short 02a1dh ; 75 21 3122 mov dx, word [bp-014h] ; 8b 56 ec 3123 cmp dx, word [bp+006h] ; 3b 56 06 3124 jbe short 02a1dh ; 76 19 3125 mov ax, word [bp-014h] ; 8b 46 ec 3126 sub ax, word [bp+006h] ; 2b 46 06 3127 mov word [bp-00ch], ax ; 89 46 f4 3128 mov ax, word [bp+006h] ; 8b 46 06 3129 mov word [bp-014h], ax ; 89 46 ec 3084 3130 xor ax, ax ; 31 c0 3085 mov word [bp+00 ah], ax ; 89 46 0a3086 mov word [bp+00 ch], ax ; 89 46 0c3087 jmp short 02 9e1h ; eb 0c3088 mov word [bp-00 8h], ax ; 89 46 f83089 mov dx, word [bp-01 0h] ; 8b 56 f03090 sub word [bp+00 ah], dx ; 29 56 0a3091 sbb word [bp+00 ch], ax ; 19 46 0c3092 mov si, word [bp-01 0h] ; 8b 76 f03093 mov al, byte [bp-00 6h] ; 8a 46 fa3131 mov word [bp+006h], ax ; 89 46 06 3132 mov word [bp+008h], ax ; 89 46 08 3133 jmp short 02a29h ; eb 0c 3134 mov word [bp-00ch], ax ; 89 46 f4 3135 mov dx, word [bp-014h] ; 8b 56 ec 3136 sub word [bp+006h], dx ; 29 56 06 3137 sbb word [bp+008h], ax ; 19 46 08 3138 mov si, word [bp-014h] ; 8b 76 ec 3139 mov al, byte [bp-00ah] ; 8a 46 f6 3094 3140 test cl, 003h ; f6 c1 03 3095 je short 02 9eeh ; 74 023141 je short 02a36h ; 74 02 3096 3142 xor al, al ; 30 c0 3097 test byte [bp-01 0h], 003h ; f6 46 f0033098 je short 02 9f6h ; 74 023143 test byte [bp-014h], 003h ; f6 46 ec 03 3144 je short 02a3eh ; 74 02 3099 3145 xor al, al ; 30 c0 3100 test byte [bp-00 8h], 003h ; f6 46 f8033101 je short 02 9feh ; 74 023146 test byte [bp-00ch], 003h ; f6 46 f4 03 3147 je short 02a46h ; 74 02 3102 3148 xor al, al ; 30 c0 3103 test byte [bp-01 0h], 001h ; f6 46 f0013104 je short 02a 16h ; 74 123105 inc word [bp-01 0h] ; ff 46 f03106 cmp word [bp-00 8h], strict byte 00000h ; 83 7e f8003107 jbe short 02a 16h ; 76 093108 test byte [bp-00 8h], 001h ; f6 46 f8013109 je short 02a 16h ; 74 033110 dec word [bp-00 8h] ; ff 4e f83149 test byte [bp-014h], 001h ; f6 46 ec 01 3150 je short 02a5eh ; 74 12 3151 inc word [bp-014h] ; ff 46 ec 3152 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 3153 jbe short 02a5eh ; 76 09 3154 test byte [bp-00ch], 001h ; f6 46 f4 01 3155 je short 02a5eh ; 74 03 3156 dec word [bp-00ch] ; ff 4e f4 3111 3157 cmp AL, strict byte 001h ; 3c 01 3112 jne short 02a 27h ; 75 0d3113 shr word [bp-01 0h], 002h ; c1 6e f0023158 jne short 02a6fh ; 75 0d 3159 shr word [bp-014h], 002h ; c1 6e ec 02 3114 3160 shr cx, 002h ; c1 e9 02 3115 shr word [bp-00 8h], 002h ; c1 6e f8023116 jmp short 02a 2fh ; eb 083117 shr word [bp-01 0h], 1 ; d1 6e f03161 shr word [bp-00ch], 002h ; c1 6e f4 02 3162 jmp short 02a77h ; eb 08 3163 shr word [bp-014h], 1 ; d1 6e ec 3118 3164 shr cx, 1 ; d1 e9 3119 shr word [bp-00 8h], 1 ; d1 6e f83165 shr word [bp-00ch], 1 ; d1 6e f4 3120 3166 cmp AL, strict byte 001h ; 3c 01 3121 jne short 02a 5fh ; 75 2c3167 jne short 02aa7h ; 75 2c 3122 3168 test cx, cx ; 85 c9 3123 je short 02a 41h ; 74 0a3169 je short 02a89h ; 74 0a 3124 3170 mov dx, bx ; 89 da 3125 3171 push eax ; 66 50 3126 3172 in eax, DX ; 66 ed 3127 loop 02a 3bh ; e2 fc3173 loop 02a83h ; e2 fc 3128 3174 pop eax ; 66 58 3129 3175 mov dx, bx ; 89 da 3130 mov cx, word [bp-01 0h] ; 8b 4e f03131 les di, [bp+0 10h] ; c4 7e 103176 mov cx, word [bp-014h] ; 8b 4e ec 3177 les di, [bp+00ch] ; c4 7e 0c 3132 3178 db 0f3h, 066h, 06dh 3133 3179 ; rep insd ; f3 66 6d 3134 mov ax, word [bp-00 8h] ; 8b 46 f83180 mov ax, word [bp-00ch] ; 8b 46 f4 3135 3181 test ax, ax ; 85 c0 3136 je short 02a 7eh ; 74 2b3182 je short 02ac6h ; 74 2b 3137 3183 mov cx, ax ; 89 c1 3138 3184 push eax ; 66 50 3139 3185 in eax, DX ; 66 ed 3140 loop 02a 57h ; e2 fc3186 loop 02a9fh ; e2 fc 3141 3187 pop eax ; 66 58 3142 jmp short 02a 7eh ; eb 1f3188 jmp short 02ac6h ; eb 1f 3143 3189 test cx, cx ; 85 c9 3144 je short 02a 68h ; 74 053190 je short 02ab0h ; 74 05 3145 3191 mov dx, bx ; 89 da 3146 3192 in ax, DX ; ed 3147 loop 02a 65h ; e2 fd3193 loop 02aadh ; e2 fd 3148 3194 mov dx, bx ; 89 da 3149 mov cx, word [bp-01 0h] ; 8b 4e f03150 les di, [bp+0 10h] ; c4 7e 103195 mov cx, word [bp-014h] ; 8b 4e ec 3196 les di, [bp+00ch] ; c4 7e 0c 3151 3197 rep insw ; f3 6d 3152 mov ax, word [bp-00 8h] ; 8b 46 f83198 mov ax, word [bp-00ch] ; 8b 46 f4 3153 3199 test ax, ax ; 85 c0 3154 je short 02a 7eh ; 74 053200 je short 02ac6h ; 74 05 3155 3201 mov cx, ax ; 89 c1 3156 3202 in ax, DX ; ed 3157 loop 02a 7bh ; e2 fd3158 add word [bp+0 10h], si ; 01 76 103203 loop 02ac3h ; e2 fd 3204 add word [bp+00ch], si ; 01 76 0c 3159 3205 xor ax, ax ; 31 c0 3160 add word [bp-01 4h], si ; 01 76 ec3161 adc word [bp-01 2h], ax ; 11 46 ee3162 mov ax, word [bp-01 4h] ; 8b 46 ec3163 mov es, [bp-00 ah] ; 8e 46 f63164 mov si, word [bp-0 0eh] ; 8b 76 f23206 add word [bp-018h], si ; 01 76 e8 3207 adc word [bp-016h], ax ; 11 46 ea 3208 mov ax, word [bp-018h] ; 8b 46 e8 3209 mov es, [bp-00eh] ; 8e 46 f2 3210 mov si, word [bp-012h] ; 8b 76 ee 3165 3211 mov word [es:si+016h], ax ; 26 89 44 16 3166 mov ax, word [bp-01 2h] ; 8b 46 ee3212 mov ax, word [bp-016h] ; 8b 46 ea 3167 3213 mov word [es:si+018h], ax ; 26 89 44 18 3168 jmp near 029 2eh ; e9 8e fe3214 jmp near 02976h ; e9 8e fe 3169 3215 mov al, dl ; 88 d0 3170 3216 and AL, strict byte 0e9h ; 24 e9 3171 3217 cmp AL, strict byte 040h ; 3c 40 3172 je short 02a b4h ; 74 0c3173 mov dx, word [bp-0 0ch] ; 8b 56 f43218 je short 02afch ; 74 0c 3219 mov dx, word [bp-010h] ; 8b 56 f0 3174 3220 add dx, strict byte 00006h ; 83 c2 06 3175 3221 mov AL, strict byte 008h ; b0 08 3176 3222 out DX, AL ; ee 3177 jmp near 02 8ffh ; e9 4b fe3178 mov dx, word [bp-0 0ch] ; 8b 56 f43223 jmp near 02947h ; e9 4b fe 3224 mov dx, word [bp-010h] ; 8b 56 f0 3179 3225 add dx, strict byte 00006h ; 83 c2 06 3180 3226 mov AL, strict byte 008h ; b0 08 … … 3182 3228 xor dx, dx ; 31 d2 3183 3229 mov ax, dx ; 89 d0 3184 lea ve ; c93230 lea sp, [bp-004h] ; 8d 66 fc 3185 3231 pop di ; 5f 3186 3232 pop si ; 5e 3233 pop bp ; 5d 3187 3234 retn 0000ch ; c2 0c 00 3188 ata_soft_reset_: ; 0xf2ac7 LB 0x7d 3235 ata_soft_reset_: ; 0xf2b12 LB 0x80 3236 push bp ; 55 3237 mov bp, sp ; 89 e5 3189 3238 push bx ; 53 3190 3239 push cx ; 51 3191 3240 push dx ; 52 3192 enter 00002h, 000h ; c8 02 00 003241 push ax ; 50 3193 3242 mov bx, ax ; 89 c3 3194 3243 mov dx, strict word 0000eh ; ba 0e 00 3195 3244 mov ax, strict word 00040h ; b8 40 00 3196 call 0161ch ; e8 43 eb3245 call 0161ch ; e8 f8 ea 3197 3246 mov dx, bx ; 89 da 3198 3247 shr dx, 1 ; d1 ea 3199 3248 and bl, 001h ; 80 e3 01 3200 mov byte [bp-00 2h], bl ; 88 5e fe3249 mov byte [bp-008h], bl ; 88 5e f8 3201 3250 xor dh, dh ; 30 f6 3202 3251 imul bx, dx, strict byte 00006h ; 6b da 06 … … 3208 3257 mov AL, strict byte 00ah ; b0 0a 3209 3258 out DX, AL ; ee 3210 cmp byte [bp-00 2h], 000h ; 80 7e fe003211 je short 02b 09h ; 74 053259 cmp byte [bp-008h], 000h ; 80 7e f8 00 3260 je short 02b54h ; 74 05 3212 3261 mov ax, 000b0h ; b8 b0 00 3213 jmp short 02b 0ch ; eb 033262 jmp short 02b57h ; eb 03 3214 3263 mov ax, 000a0h ; b8 a0 00 3215 3264 mov dx, cx ; 89 ca … … 3226 3275 ; sub ah, ah ; 2a e4 3227 3276 test AL, strict byte 080h ; a8 80 3228 jne short 02b 1ah ; 75 f43277 jne short 02b65h ; 75 f4 3229 3278 and AL, strict byte 0e9h ; 24 e9 3230 3279 cmp AL, strict byte 040h ; 3c 40 3231 je short 02b 37h ; 74 0b3280 je short 02b82h ; 74 0b 3232 3281 lea dx, [bx+006h] ; 8d 57 06 3233 3282 mov AL, strict byte 008h ; b0 08 3234 3283 out DX, AL ; ee 3235 3284 mov ax, strict word 00001h ; b8 01 00 3236 jmp short 02b 3fh ; eb 083285 jmp short 02b8ah ; eb 08 3237 3286 lea dx, [bx+006h] ; 8d 57 06 3238 3287 mov AL, strict byte 008h ; b0 08 3239 3288 out DX, AL ; ee 3240 3289 xor ax, ax ; 31 c0 3241 lea ve ; c93290 lea sp, [bp-006h] ; 8d 66 fa 3242 3291 pop dx ; 5a 3243 3292 pop cx ; 59 3244 3293 pop bx ; 5b 3294 pop bp ; 5d 3245 3295 retn ; c3 3246 set_diskette_ret_status_: ; 0xf2b44 LB 0x15 3296 set_diskette_ret_status_: ; 0xf2b92 LB 0x18 3297 push bp ; 55 3298 mov bp, sp ; 89 e5 3247 3299 push bx ; 53 3248 3300 push dx ; 52 3249 push bp ; 553250 mov bp, sp ; 89 e53251 3301 movzx bx, al ; 0f b6 d8 3252 3302 mov dx, strict word 00041h ; ba 41 00 3253 3303 mov ax, strict word 00040h ; b8 40 00 3254 call 0160eh ; e8 b9ea3255 pop bp ; 5d3304 call 0160eh ; e8 6b ea 3305 lea sp, [bp-004h] ; 8d 66 fc 3256 3306 pop dx ; 5a 3257 3307 pop bx ; 5b 3308 pop bp ; 5d 3258 3309 retn ; c3 3259 set_diskette_current_cyl_: ; 0xf2b59 LB 0x2a 3260 push bx ; 53 3310 set_diskette_current_cyl_: ; 0xf2baa LB 0x2d 3261 3311 push bp ; 55 3262 3312 mov bp, sp ; 89 e5 3313 push bx ; 53 3263 3314 mov bl, al ; 88 c3 3264 3315 cmp AL, strict byte 001h ; 3c 01 3265 jbe short 02b 6eh ; 76 0b3316 jbe short 02bbfh ; 76 0b 3266 3317 push 001c0h ; 68 c0 01 3267 3318 push strict byte 00007h ; 6a 07 3268 call 01 8e9h ; e8 7eed3319 call 0190dh ; e8 51 ed 3269 3320 add sp, strict byte 00004h ; 83 c4 04 3270 3321 movzx ax, dl ; 0f b6 c2 … … 3273 3324 mov bx, ax ; 89 c3 3274 3325 mov ax, strict word 00040h ; b8 40 00 3275 call 0160eh ; e8 8e ea 3326 call 0160eh ; e8 3d ea 3327 lea sp, [bp-002h] ; 8d 66 fe 3328 pop bx ; 5b 3276 3329 pop bp ; 5d 3330 retn ; c3 3331 floppy_wait_for_interrupt_: ; 0xf2bd7 LB 0x21 3332 push bp ; 55 3333 mov bp, sp ; 89 e5 3334 push dx ; 52 3335 cli ; fa 3336 mov dx, strict word 0003eh ; ba 3e 00 3337 mov ax, strict word 00040h ; b8 40 00 3338 call 01600h ; e8 1b ea 3339 test AL, strict byte 080h ; a8 80 3340 je short 02bedh ; 74 04 3341 and AL, strict byte 080h ; 24 80 3342 jmp short 02bf2h ; eb 05 3343 sti ; fb 3344 hlt ; f4 3345 cli ; fa 3346 jmp short 02bdch ; eb ea 3347 lea sp, [bp-002h] ; 8d 66 fe 3348 pop dx ; 5a 3349 pop bp ; 5d 3350 retn ; c3 3351 floppy_wait_for_interrupt_or_timeout_: ; 0xf2bf8 LB 0x46 3352 push bp ; 55 3353 mov bp, sp ; 89 e5 3354 push bx ; 53 3355 push cx ; 51 3356 push dx ; 52 3357 cli ; fa 3358 mov dx, strict word 00040h ; ba 40 00 3359 mov ax, dx ; 89 d0 3360 call 01600h ; e8 f9 e9 3361 test al, al ; 84 c0 3362 jne short 02c10h ; 75 05 3363 sti ; fb 3364 xor cl, cl ; 30 c9 3365 jmp short 02c34h ; eb 24 3366 mov dx, strict word 0003eh ; ba 3e 00 3367 mov ax, strict word 00040h ; b8 40 00 3368 call 01600h ; e8 e7 e9 3369 mov cl, al ; 88 c1 3370 test AL, strict byte 080h ; a8 80 3371 je short 02c2fh ; 74 10 3372 and AL, strict byte 07fh ; 24 7f 3373 movzx bx, al ; 0f b6 d8 3374 mov dx, strict word 0003eh ; ba 3e 00 3375 mov ax, strict word 00040h ; b8 40 00 3376 call 0160eh ; e8 e1 e9 3377 jmp short 02c34h ; eb 05 3378 sti ; fb 3379 hlt ; f4 3380 cli ; fa 3381 jmp short 02bffh ; eb cb 3382 mov al, cl ; 88 c8 3383 lea sp, [bp-006h] ; 8d 66 fa 3384 pop dx ; 5a 3385 pop cx ; 59 3277 3386 pop bx ; 5b 3387 pop bp ; 5d 3278 3388 retn ; c3 3279 floppy_reset_controller_: ; 0xf2b83 LB 0x28 3389 floppy_reset_controller_: ; 0xf2c3e LB 0x2b 3390 push bp ; 55 3391 mov bp, sp ; 89 e5 3280 3392 push bx ; 53 3281 3393 push dx ; 52 3282 push bp ; 553283 mov bp, sp ; 89 e53284 3394 mov dx, 003f2h ; ba f2 03 3285 3395 in AL, DX ; ec … … 3299 3409 and AL, strict byte 0c0h ; 24 c0 3300 3410 cmp AL, strict byte 080h ; 3c 80 3301 jne short 02 b9bh ; 75 f43302 pop bp ; 5d3411 jne short 02c56h ; 75 f4 3412 lea sp, [bp-004h] ; 8d 66 fc 3303 3413 pop dx ; 5a 3304 3414 pop bx ; 5b 3415 pop bp ; 5d 3305 3416 retn ; c3 3306 floppy_prepare_controller_: ; 0xf2bab LB 0x8c 3417 floppy_prepare_controller_: ; 0xf2c69 LB 0x81 3418 push bp ; 55 3419 mov bp, sp ; 89 e5 3307 3420 push bx ; 53 3308 3421 push cx ; 51 3309 3422 push dx ; 52 3310 enter 00002h, 000h ; c8 02 00 003423 push ax ; 50 3311 3424 mov cx, ax ; 89 c1 3312 3425 mov dx, strict word 0003eh ; ba 3e 00 3313 3426 mov ax, strict word 00040h ; b8 40 00 3314 call 01600h ; e8 43 ea3427 call 01600h ; e8 85 e9 3315 3428 and AL, strict byte 07fh ; 24 7f 3316 3429 movzx bx, al ; 0f b6 d8 3317 3430 mov dx, strict word 0003eh ; ba 3e 00 3318 3431 mov ax, strict word 00040h ; b8 40 00 3319 call 0160eh ; e8 43 ea3432 call 0160eh ; e8 85 e9 3320 3433 mov dx, 003f2h ; ba f2 03 3321 3434 in AL, DX ; ec … … 3323 3436 ; sub ah, ah ; 2a e4 3324 3437 and AL, strict byte 004h ; 24 04 3325 mov byte [bp-00 2h], al ; 88 46 fe3438 mov byte [bp-008h], al ; 88 46 f8 3326 3439 test cx, cx ; 85 c9 3327 je short 02 bdeh ; 74 043440 je short 02c9ch ; 74 04 3328 3441 mov AL, strict byte 020h ; b0 20 3329 jmp short 02 be0h ; eb 023442 jmp short 02c9eh ; eb 02 3330 3443 mov AL, strict byte 010h ; b0 10 3331 3444 or AL, strict byte 00ch ; 0c 0c … … 3336 3449 mov dx, strict word 00040h ; ba 40 00 3337 3450 mov ax, dx ; 89 d0 3338 call 0160eh ; e8 1b ea3451 call 0160eh ; e8 5d e9 3339 3452 mov dx, 0008bh ; ba 8b 00 3340 3453 mov ax, strict word 00040h ; b8 40 00 3341 call 01600h ; e8 04 ea3454 call 01600h ; e8 46 e9 3342 3455 shr al, 006h ; c0 e8 06 3343 3456 mov dx, 003f7h ; ba f7 03 … … 3349 3462 and AL, strict byte 0c0h ; 24 c0 3350 3463 cmp AL, strict byte 080h ; 3c 80 3351 jne short 02c03h ; 75 f4 3352 cmp byte [bp-002h], 000h ; 80 7e fe 00 3353 jne short 02c32h ; 75 1d 3354 sti ; fb 3355 mov dx, strict word 0003eh ; ba 3e 00 3356 mov ax, strict word 00040h ; b8 40 00 3357 call 01600h ; e8 e1 e9 3358 test AL, strict byte 080h ; a8 80 3359 je short 02c16h ; 74 f3 3360 and AL, strict byte 07fh ; 24 7f 3361 cli ; fa 3464 jne short 02cc1h ; 75 f4 3465 cmp byte [bp-008h], 000h ; 80 7e f8 00 3466 jne short 02ce2h ; 75 0f 3467 call 02bd7h ; e8 01 ff 3362 3468 movzx bx, al ; 0f b6 d8 3363 3469 mov dx, strict word 0003eh ; ba 3e 00 3364 3470 mov ax, strict word 00040h ; b8 40 00 3365 call 0160eh ; e8 dc e93366 lea ve ; c93471 call 0160eh ; e8 2c e9 3472 lea sp, [bp-006h] ; 8d 66 fa 3367 3473 pop dx ; 5a 3368 3474 pop cx ; 59 3369 3475 pop bx ; 5b 3476 pop bp ; 5d 3370 3477 retn ; c3 3371 floppy_media_known_: ; 0xf2c37 LB 0x40 3478 floppy_media_known_: ; 0xf2cea LB 0x43 3479 push bp ; 55 3480 mov bp, sp ; 89 e5 3372 3481 push bx ; 53 3373 3482 push dx ; 52 3374 push bp ; 553375 mov bp, sp ; 89 e53376 3483 mov bx, ax ; 89 c3 3377 3484 mov dx, strict word 0003eh ; ba 3e 00 3378 3485 mov ax, strict word 00040h ; b8 40 00 3379 call 01600h ; e8 b9e93486 call 01600h ; e8 06 e9 3380 3487 mov ah, al ; 88 c4 3381 3488 test bx, bx ; 85 db 3382 je short 02 c4fh ; 74 023489 je short 02d02h ; 74 02 3383 3490 shr al, 1 ; d0 e8 3384 3491 and AL, strict byte 001h ; 24 01 3385 jne short 02 c57h ; 75 043492 jne short 02d0ah ; 75 04 3386 3493 xor ah, ah ; 30 e4 3387 jmp short 02 c73h ; eb 1c3494 jmp short 02d26h ; eb 1c 3388 3495 mov dx, 00090h ; ba 90 00 3389 3496 test bx, bx ; 85 db 3390 je short 02 c61h ; 74 033497 je short 02d14h ; 74 03 3391 3498 mov dx, 00091h ; ba 91 00 3392 3499 mov ax, strict word 00040h ; b8 40 00 3393 call 01600h ; e8 99 e93500 call 01600h ; e8 e6 e8 3394 3501 xor ah, ah ; 30 e4 3395 3502 sar ax, 004h ; c1 f8 04 3396 3503 and AL, strict byte 001h ; 24 01 3397 je short 02 c53h ; 74 e33504 je short 02d06h ; 74 e3 3398 3505 mov ax, strict word 00001h ; b8 01 00 3399 pop bp ; 5d3506 lea sp, [bp-004h] ; 8d 66 fc 3400 3507 pop dx ; 5a 3401 3508 pop bx ; 5b 3509 pop bp ; 5d 3402 3510 retn ; c3 3403 floppy_read_id_: ; 0xf2c77 LB 0x49 3511 floppy_read_id_: ; 0xf2d2d LB 0x40 3512 push bp ; 55 3513 mov bp, sp ; 89 e5 3404 3514 push bx ; 53 3405 3515 push dx ; 52 3406 3516 push si ; 56 3407 enter 00008h, 000h ; c8 08 00 003517 sub sp, strict byte 00008h ; 83 ec 08 3408 3518 mov bx, ax ; 89 c3 3409 call 02 babh ; e8 28ff3519 call 02c69h ; e8 2e ff 3410 3520 mov AL, strict byte 04ah ; b0 4a 3411 3521 mov dx, 003f5h ; ba f5 03 … … 3413 3523 mov al, bl ; 88 d8 3414 3524 out DX, AL ; ee 3415 sti ; fb 3416 mov dx, strict word 0003eh ; ba 3e 00 3417 mov ax, strict word 00040h ; b8 40 00 3418 call 01600h ; e8 6a e9 3419 and AL, strict byte 080h ; 24 80 3420 test al, al ; 84 c0 3421 je short 02c8dh ; 74 f1 3422 cli ; fa 3525 call 02bd7h ; e8 90 fe 3423 3526 xor si, si ; 31 f6 3424 jmp short 02 ca6h ; eb 053527 jmp short 02d50h ; eb 05 3425 3528 cmp si, strict byte 00007h ; 83 fe 07 3426 jnl short 02 cb2h ; 7d 0c3529 jnl short 02d5ch ; 7d 0c 3427 3530 mov dx, 003f5h ; ba f5 03 3428 3531 in AL, DX ; ec 3429 3532 db 02ah, 0e4h 3430 3533 ; sub ah, ah ; 2a e4 3431 mov byte [bp+si-00 8h], al ; 88 42 f83534 mov byte [bp+si-00eh], al ; 88 42 f2 3432 3535 inc si ; 46 3433 jmp short 02 ca1h ; eb ef3434 test byte [bp-00 8h], 0c0h ; f6 46 f8c03536 jmp short 02d4bh ; eb ef 3537 test byte [bp-00eh], 0c0h ; f6 46 f2 c0 3435 3538 db 00fh, 094h, 0c0h 3436 3539 ; sete al ; 0f 94 c0 3437 3540 xor ah, ah ; 30 e4 3438 lea ve ; c93541 lea sp, [bp-006h] ; 8d 66 fa 3439 3542 pop si ; 5e 3440 3543 pop dx ; 5a 3441 3544 pop bx ; 5b 3545 pop bp ; 5d 3442 3546 retn ; c3 3443 floppy_drive_recal_: ; 0xf2cc0 LB 0x5e 3547 floppy_drive_recal_: ; 0xf2d6d LB 0x48 3548 push bp ; 55 3549 mov bp, sp ; 89 e5 3444 3550 push bx ; 53 3445 3551 push cx ; 51 3446 3552 push dx ; 52 3447 push bp ; 553448 mov bp, sp ; 89 e53449 3553 mov bx, ax ; 89 c3 3450 call 02 babh ; e8 e0fe3554 call 02c69h ; e8 f1 fe 3451 3555 mov AL, strict byte 007h ; b0 07 3452 3556 mov dx, 003f5h ; ba f5 03 … … 3454 3558 mov al, bl ; 88 d8 3455 3559 out DX, AL ; ee 3456 sti ; fb 3457 mov dx, strict word 0003eh ; ba 3e 00 3458 mov ax, strict word 00040h ; b8 40 00 3459 call 01600h ; e8 22 e9 3460 and AL, strict byte 080h ; 24 80 3461 test al, al ; 84 c0 3462 je short 02cd5h ; 74 f1 3463 cli ; fa 3464 mov dx, strict word 0003eh ; ba 3e 00 3465 mov ax, strict word 00040h ; b8 40 00 3466 call 01600h ; e8 12 e9 3467 and AL, strict byte 07fh ; 24 7f 3560 call 02bd7h ; e8 53 fe 3468 3561 test bx, bx ; 85 db 3469 je short 02 cfbh ; 74 073562 je short 02d8fh ; 74 07 3470 3563 or AL, strict byte 002h ; 0c 02 3471 3564 mov cx, 00095h ; b9 95 00 3472 jmp short 02d 00h ; eb 053565 jmp short 02d94h ; eb 05 3473 3566 or AL, strict byte 001h ; 0c 01 3474 3567 mov cx, 00094h ; b9 94 00 … … 3476 3569 mov dx, strict word 0003eh ; ba 3e 00 3477 3570 mov ax, strict word 00040h ; b8 40 00 3478 call 0160eh ; e8 02 e93571 call 0160eh ; e8 6e e8 3479 3572 xor bx, bx ; 31 db 3480 3573 mov dx, cx ; 89 ca 3481 3574 mov ax, strict word 00040h ; b8 40 00 3482 call 0160eh ; e8 f8e83575 call 0160eh ; e8 64 e8 3483 3576 mov ax, strict word 00001h ; b8 01 00 3484 pop bp ; 5d3577 lea sp, [bp-006h] ; 8d 66 fa 3485 3578 pop dx ; 5a 3486 3579 pop cx ; 59 3487 3580 pop bx ; 5b 3581 pop bp ; 5d 3488 3582 retn ; c3 3489 floppy_media_sense_: ; 0xf2d1e LB 0xfa 3583 floppy_media_sense_: ; 0xf2db5 LB 0x115 3584 push bp ; 55 3585 mov bp, sp ; 89 e5 3490 3586 push bx ; 53 3491 3587 push cx ; 51 … … 3493 3589 push si ; 56 3494 3590 push di ; 57 3495 push bp ; 553496 mov bp, sp ; 89 e53497 3591 mov di, ax ; 89 c7 3498 call 02 cc0h ; e8 95ff3592 call 02d6dh ; e8 ab ff 3499 3593 test ax, ax ; 85 c0 3500 jne short 02d 34h ; 75 053594 jne short 02dcbh ; 75 05 3501 3595 xor cx, cx ; 31 c9 3502 jmp near 02e 0fh ; e9 db003596 jmp near 02ebeh ; e9 f3 00 3503 3597 mov ax, strict word 00010h ; b8 10 00 3504 call 0165ch ; e8 22 e93598 call 0165ch ; e8 8b e8 3505 3599 test di, di ; 85 ff 3506 jne short 02d 45h ; 75 073600 jne short 02ddch ; 75 07 3507 3601 mov cl, al ; 88 c1 3508 3602 shr cl, 004h ; c0 e9 04 3509 jmp short 02d 4ah ; eb 053603 jmp short 02de1h ; eb 05 3510 3604 mov cl, al ; 88 c1 3511 3605 and cl, 00fh ; 80 e1 0f 3512 3606 cmp cl, 001h ; 80 f9 01 3513 jne short 02d 58h ; 75 093607 jne short 02defh ; 75 09 3514 3608 xor cl, cl ; 30 c9 3515 3609 mov CH, strict byte 015h ; b5 15 3516 3610 mov si, strict word 00001h ; be 01 00 3517 jmp short 02 da3h ; eb 4b3611 jmp short 02e52h ; eb 63 3518 3612 cmp cl, 002h ; 80 f9 02 3519 jne short 02d 63h ; 75 063613 jne short 02dfah ; 75 06 3520 3614 xor cl, cl ; 30 c9 3521 3615 mov CH, strict byte 035h ; b5 35 3522 jmp short 02d 53h ; eb f03616 jmp short 02deah ; eb f0 3523 3617 cmp cl, 003h ; 80 f9 03 3524 jne short 02 d6eh ; 75 063618 jne short 02e05h ; 75 06 3525 3619 xor cl, cl ; 30 c9 3526 3620 mov CH, strict byte 017h ; b5 17 3527 jmp short 02d 53h ; eb e53621 jmp short 02deah ; eb e5 3528 3622 cmp cl, 004h ; 80 f9 04 3529 jne short 02 d79h ; 75 063623 jne short 02e10h ; 75 06 3530 3624 xor cl, cl ; 30 c9 3531 3625 mov CH, strict byte 017h ; b5 17 3532 jmp short 02d 53h ; eb da3626 jmp short 02deah ; eb da 3533 3627 cmp cl, 005h ; 80 f9 05 3534 jne short 02 d84h ; 75 063628 jne short 02e1bh ; 75 06 3535 3629 mov CL, strict byte 0cch ; b1 cc 3536 3630 mov CH, strict byte 0d7h ; b5 d7 3537 jmp short 02d 53h ; eb cf3631 jmp short 02deah ; eb cf 3538 3632 cmp cl, 006h ; 80 f9 06 3539 jne short 02 d8fh ; 75 063633 jne short 02e26h ; 75 06 3540 3634 xor cl, cl ; 30 c9 3541 3635 mov CH, strict byte 027h ; b5 27 3542 jmp short 02d 53h ; eb c43636 jmp short 02deah ; eb c4 3543 3637 cmp cl, 007h ; 80 f9 07 3544 jne short 02d96h ; 75 02 3545 jmp short 02d89h ; eb f3 3638 jne short 02e31h ; 75 06 3639 xor cl, cl ; 30 c9 3640 mov CH, strict byte 027h ; b5 27 3641 jmp short 02deah ; eb b9 3546 3642 cmp cl, 008h ; 80 f9 08 3547 jne short 02d9dh ; 75 02 3548 jmp short 02d89h ; eb ec 3643 jne short 02e3ch ; 75 06 3644 xor cl, cl ; 30 c9 3645 mov CH, strict byte 027h ; b5 27 3646 jmp short 02deah ; eb ae 3647 cmp cl, 00eh ; 80 f9 0e 3648 je short 02e46h ; 74 05 3649 cmp cl, 00fh ; 80 f9 0f 3650 jne short 02e4ch ; 75 06 3651 mov CL, strict byte 0cch ; b1 cc 3652 mov CH, strict byte 0d7h ; b5 d7 3653 jmp short 02deah ; eb 9e 3549 3654 xor cl, cl ; 30 c9 3550 3655 xor ch, ch ; 30 ed … … 3553 3658 mov dx, 0008bh ; ba 8b 00 3554 3659 mov ax, strict word 00040h ; b8 40 00 3555 call 0160eh ; e8 5f e83660 call 0160eh ; e8 b0 e7 3556 3661 mov ax, di ; 89 f8 3557 call 02 c77h ; e8 c3fe3662 call 02d2dh ; e8 ca fe 3558 3663 test ax, ax ; 85 c0 3559 jne short 02 deah ; 75 323664 jne short 02e99h ; 75 32 3560 3665 mov al, cl ; 88 c8 3561 3666 and AL, strict byte 0c0h ; 24 c0 3562 3667 cmp AL, strict byte 080h ; 3c 80 3563 je short 02 deah ; 74 2a3668 je short 02e99h ; 74 2a 3564 3669 mov al, cl ; 88 c8 3565 3670 and AL, strict byte 0c0h ; 24 c0 3566 3671 cmp AL, strict byte 0c0h ; 3c c0 3567 je short 02 dd7h ; 74 0f3672 je short 02e86h ; 74 0f 3568 3673 mov ah, cl ; 88 cc 3569 3674 and ah, 03fh ; 80 e4 3f 3570 3675 cmp AL, strict byte 040h ; 3c 40 3571 je short 02 de3h ; 74 123676 je short 02e92h ; 74 12 3572 3677 test al, al ; 84 c0 3573 je short 02 ddch ; 74 073574 jmp short 02 da3h ; eb cc3678 je short 02e8bh ; 74 07 3679 jmp short 02e52h ; eb cc 3575 3680 and cl, 03fh ; 80 e1 3f 3576 jmp short 02 da3h ; eb c73681 jmp short 02e52h ; eb c7 3577 3682 mov cl, ah ; 88 e1 3578 3683 or cl, 040h ; 80 c9 40 3579 jmp short 02 da3h ; eb c03684 jmp short 02e52h ; eb c0 3580 3685 mov cl, ah ; 88 e1 3581 3686 or cl, 080h ; 80 c9 80 3582 jmp short 02 da3h ; eb b93687 jmp short 02e52h ; eb b9 3583 3688 test di, di ; 85 ff 3584 3689 db 00fh, 095h, 0c0h … … 3589 3694 mov dx, 0008bh ; ba 8b 00 3590 3695 mov ax, strict word 00040h ; b8 40 00 3591 call 0160eh ; e8 0c e83696 call 0160eh ; e8 5d e7 3592 3697 movzx bx, ch ; 0f b6 dd 3593 3698 mov dx, di ; 89 fa 3594 3699 mov ax, strict word 00040h ; b8 40 00 3595 call 0160eh ; e8 01 e83700 call 0160eh ; e8 52 e7 3596 3701 mov cx, si ; 89 f1 3597 3702 mov ax, cx ; 89 c8 3598 pop bp ; 5d3703 lea sp, [bp-00ah] ; 8d 66 f6 3599 3704 pop di ; 5f 3600 3705 pop si ; 5e … … 3602 3707 pop cx ; 59 3603 3708 pop bx ; 5b 3709 pop bp ; 5d 3604 3710 retn ; c3 3605 floppy_drive_exists_: ; 0xf2e18 LB 0x33 3606 push dx ; 52 3711 floppy_drive_exists_: ; 0xf2eca LB 0x24 3607 3712 push bp ; 55 3608 3713 mov bp, sp ; 89 e5 3714 push dx ; 52 3609 3715 mov dx, ax ; 89 c2 3610 3716 mov ax, strict word 00010h ; b8 10 00 3611 call 0165ch ; e8 38 e83717 call 0165ch ; e8 86 e7 3612 3718 test dx, dx ; 85 d2 3613 jne short 02e 2dh ; 75 053719 jne short 02edfh ; 75 05 3614 3720 shr al, 004h ; c0 e8 04 3615 jmp short 02e 2fh ; eb 023721 jmp short 02ee1h ; eb 02 3616 3722 and AL, strict byte 00fh ; 24 0f 3617 3723 test al, al ; 84 c0 … … 3619 3725 ; setne al ; 0f 95 c0 3620 3726 xor ah, ah ; 30 e4 3727 lea sp, [bp-002h] ; 8d 66 fe 3728 pop dx ; 5a 3621 3729 pop bp ; 5d 3622 pop dx ; 5a3623 3730 retn ; c3 3624 cmc ; f5 3625 xor AL, strict byte 000h ; 34 00 3626 xor ax, 0350ah ; 35 0a 35 3627 adc word [di], si ; 11 35 3628 sbb byte [di], dh ; 18 35 3629 pop DS ; 1f 3630 xor ax, 03526h ; 35 26 35 3631 xor byte [di], dh ; 30 35 3632 aaa ; 37 3633 db 035h 3634 _int13_diskette_function: ; 0xf2e4b LB 0x78f 3731 _int13_diskette_function: ; 0xf2eee LB 0x740 3732 push bp ; 55 3733 mov bp, sp ; 89 e5 3635 3734 push si ; 56 3636 3735 push di ; 57 3637 enter 00012h, 000h ; c8 12 00 003638 mov bx, word [bp+01 ah] ; 8b 5e 1a3736 sub sp, strict byte 00012h ; 83 ec 12 3737 mov bx, word [bp+016h] ; 8b 5e 16 3639 3738 shr bx, 008h ; c1 eb 08 3640 mov c h, bl ; 88 dd3641 mov si, word [bp+01 ah] ; 8b 76 1a3739 mov cl, bl ; 88 d9 3740 mov si, word [bp+016h] ; 8b 76 16 3642 3741 and si, 000ffh ; 81 e6 ff 00 3643 mov a h, byte [bp+012h] ; 8a 66 123742 mov al, byte [bp+00eh] ; 8a 46 0e 3644 3743 cmp bl, 008h ; 80 fb 08 3645 jc short 02 ea2h ; 72 3a3646 mov dx, word [bp+0 20h] ; 8b 56 203744 jc short 02f45h ; 72 38 3745 mov dx, word [bp+01ch] ; 8b 56 1c 3647 3746 or dl, 001h ; 80 ca 01 3648 3747 cmp bl, 008h ; 80 fb 08 3649 jbe near 034 76h ; 0f 86 01 063748 jbe near 0348fh ; 0f 86 75 05 3650 3749 cmp bl, 016h ; 80 fb 16 3651 jc short 02 e98h ; 72 1e3750 jc short 02f3bh ; 72 1c 3652 3751 or si, 00100h ; 81 ce 00 01 3653 mov cx, si ; 89 f13654 3752 cmp bl, 016h ; 80 fb 16 3655 jbe near 035 95h ; 0f 86 0e 073753 jbe near 035eah ; 0f 86 c0 06 3656 3754 cmp bl, 018h ; 80 fb 18 3657 je near 035 9ah ; 0f 84 0c 073755 je near 035eeh ; 0f 84 bd 06 3658 3756 cmp bl, 017h ; 80 fb 17 3659 je near 035 9ah ; 0f 84 05 073660 jmp near 03 5b7h ; e9 1f 073757 je near 035eeh ; 0f 84 b6 06 3758 jmp near 0360bh ; e9 d0 06 3661 3759 cmp bl, 015h ; 80 fb 15 3662 je near 035 59h ; 0f 84 ba063663 jmp near 03 5b7h ; e9 15 073760 je near 035abh ; 0f 84 69 06 3761 jmp near 0360bh ; e9 c6 06 3664 3762 cmp bl, 001h ; 80 fb 01 3665 jc short 02 ebch ; 72 153666 jbe near 02f 32h ; 0f 86 87003763 jc short 02f5fh ; 72 15 3764 jbe near 02fd3h ; 0f 86 85 00 3667 3765 cmp bl, 005h ; 80 fb 05 3668 je near 03 2cfh ; 0f 84 1d 043766 je near 03315h ; 0f 84 c0 03 3669 3767 cmp bl, 004h ; 80 fb 04 3670 jbe near 02f 50h ; 0f 86 97003671 jmp near 03 5b7h ; e9 fb063768 jbe near 02ff1h ; 0f 86 95 00 3769 jmp near 0360bh ; e9 ac 06 3672 3770 test bl, bl ; 84 db 3673 jne near 03 5b7h ; 0f 85 f5063674 mov al, byte [bp+0 12h] ; 8a 46 123675 mov byte [bp-00 ah], al ; 88 46 f63771 jne near 0360bh ; 0f 85 a6 06 3772 mov al, byte [bp+00eh] ; 8a 46 0e 3773 mov byte [bp-00eh], al ; 88 46 f2 3676 3774 cmp AL, strict byte 001h ; 3c 01 3677 jbe short 02 ee0h ; 76 143678 mov ax, word [bp+01 ah] ; 8b 46 1a3775 jbe short 02f83h ; 76 14 3776 mov ax, word [bp+016h] ; 8b 46 16 3679 3777 xor ah, ah ; 30 e4 3680 3778 or ah, 001h ; 80 cc 01 3681 mov word [bp+01 ah], ax ; 89 46 1a3779 mov word [bp+016h], ax ; 89 46 16 3682 3780 mov ax, strict word 00001h ; b8 01 00 3683 call 02b 44h ; e8 67fc3684 jmp near 032 abh ; e9 cb033781 call 02b92h ; e8 12 fc 3782 jmp near 032f1h ; e9 6e 03 3685 3783 mov ax, strict word 00010h ; b8 10 00 3686 call 0165ch ; e8 76 e7 3687 cmp byte [bp-00ah], 000h ; 80 7e f6 00 3688 jne short 02ef3h ; 75 07 3689 mov bl, al ; 88 c3 3690 shr bl, 004h ; c0 eb 04 3691 jmp short 02ef8h ; eb 05 3692 mov bl, al ; 88 c3 3693 and bl, 00fh ; 80 e3 0f 3694 test bl, bl ; 84 db 3695 jne short 02f0ch ; 75 10 3696 mov ax, word [bp+01ah] ; 8b 46 1a 3784 call 0165ch ; e8 d3 e6 3785 cmp byte [bp-00eh], 000h ; 80 7e f2 00 3786 jne short 02f94h ; 75 05 3787 shr al, 004h ; c0 e8 04 3788 jmp short 02f96h ; eb 02 3789 and AL, strict byte 00fh ; 24 0f 3790 test al, al ; 84 c0 3791 jne short 02faah ; 75 10 3792 mov ax, word [bp+016h] ; 8b 46 16 3697 3793 xor ah, ah ; 30 e4 3698 3794 or ah, 080h ; 80 cc 80 3699 mov word [bp+01 ah], ax ; 89 46 1a3795 mov word [bp+016h], ax ; 89 46 16 3700 3796 mov ax, 00080h ; b8 80 00 3701 jmp short 02 edah ; eb ce3797 jmp short 02f7dh ; eb d3 3702 3798 xor bx, bx ; 31 db 3703 3799 mov dx, strict word 0003eh ; ba 3e 00 3704 3800 mov ax, strict word 00040h ; b8 40 00 3705 call 0160eh ; e8 f7e63801 call 0160eh ; e8 59 e6 3706 3802 xor al, al ; 30 c0 3707 mov byte [bp+01 bh], al ; 88 46 1b3803 mov byte [bp+017h], al ; 88 46 17 3708 3804 xor ah, ah ; 30 e4 3709 call 02b 44h ; e8 23 fc3710 and byte [bp+0 20h], 0feh ; 80 66 20fe3711 movzx ax, byte [bp-00 ah] ; 0f b6 46 f63805 call 02b92h ; e8 d3 fb 3806 and byte [bp+01ch], 0feh ; 80 66 1c fe 3807 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 3712 3808 xor dx, dx ; 31 d2 3713 call 02b 59h ; e8 2b fc3714 lea ve ; c93809 call 02baah ; e8 de fb 3810 lea sp, [bp-004h] ; 8d 66 fc 3715 3811 pop di ; 5f 3716 3812 pop si ; 5e 3813 pop bp ; 5d 3717 3814 retn ; c3 3718 and byte [bp+0 20h], 0feh ; 80 66 20fe3815 and byte [bp+01ch], 0feh ; 80 66 1c fe 3719 3816 mov dx, 00441h ; ba 41 04 3720 3817 xor ax, ax ; 31 c0 3721 call 01600h ; e8 c2e63818 call 01600h ; e8 21 e6 3722 3819 movzx dx, al ; 0f b6 d0 3723 3820 sal dx, 008h ; c1 e2 08 3724 3821 or si, dx ; 09 d6 3725 mov word [bp+01 ah], si ; 89 76 1a3822 mov word [bp+016h], si ; 89 76 16 3726 3823 test al, al ; 84 c0 3727 je short 02f 2eh ; 74 e13728 jmp near 032 abh ; e9 5b033729 mov a l, byte [bp+01ah] ; 8a 46 1a3730 mov byte [bp-00 8h], al ; 88 46 f83731 mov dx, word [bp+01 8h] ; 8b 56 183824 je short 02fcch ; 74 de 3825 jmp near 032f1h ; e9 00 03 3826 mov ah, byte [bp+016h] ; 8a 66 16 3827 mov byte [bp-00ch], ah ; 88 66 f4 3828 mov dx, word [bp+014h] ; 8b 56 14 3732 3829 shr dx, 008h ; c1 ea 08 3733 mov byte [bp-00 4h], dl ; 88 56 fc3734 mov a l, byte [bp+018h] ; 8a 46 183735 mov byte [bp-00 6h], al ; 88 46 fa3736 mov dx, word [bp+01 6h] ; 8b 56 163830 mov byte [bp-008h], dl ; 88 56 f8 3831 mov ah, byte [bp+014h] ; 8a 66 14 3832 mov byte [bp-00ah], ah ; 88 66 f6 3833 mov dx, word [bp+012h] ; 8b 56 12 3737 3834 shr dx, 008h ; c1 ea 08 3738 mov byte [bp-00 2h], dl ; 88 56 fe3739 mov byte [bp-00 ah], ah ; 88 66 f63740 cmp ah, 001h ; 80 fc 013741 jnbe short 0 2f86h ; 77 103835 mov byte [bp-006h], dl ; 88 56 fa 3836 mov byte [bp-00eh], al ; 88 46 f2 3837 cmp AL, strict byte 001h ; 3c 01 3838 jnbe short 03026h ; 77 10 3742 3839 cmp dl, 001h ; 80 fa 01 3743 jnbe short 0 2f86h ; 77 0b3744 mov al, byte [bp-00 8h] ; 8a 46 f83840 jnbe short 03026h ; 77 0b 3841 mov al, byte [bp-00ch] ; 8a 46 f4 3745 3842 test al, al ; 84 c0 3746 je short 0 2f86h ; 74 043843 je short 03026h ; 74 04 3747 3844 cmp AL, strict byte 048h ; 3c 48 3748 jbe short 0 2fafh ; 76 293749 mov bx, 00d3 2h ; bb 320d3845 jbe short 0304fh ; 76 29 3846 mov bx, 00d38h ; bb 38 0d 3750 3847 mov cx, ds ; 8c d9 3751 3848 mov ax, strict word 00004h ; b8 04 00 3752 call 018 aeh ; e8 1d e93849 call 018cch ; e8 9b e8 3753 3850 push 001e5h ; 68 e5 01 3754 3851 push 001fdh ; 68 fd 01 3755 3852 push strict byte 00004h ; 6a 04 3756 call 01 8e9h ; e8 4d e93853 call 0190dh ; e8 d1 e8 3757 3854 add sp, strict byte 00006h ; 83 c4 06 3758 mov ax, word [bp+01 ah] ; 8b 46 1a3855 mov ax, word [bp+016h] ; 8b 46 16 3759 3856 xor ah, ah ; 30 e4 3760 3857 or ah, 001h ; 80 cc 01 3761 mov word [bp+01 ah], ax ; 89 46 1a3858 mov word [bp+016h], ax ; 89 46 16 3762 3859 mov ax, strict word 00001h ; b8 01 00 3763 jmp short 030 20h ; eb 713764 movzx ax, byte [bp-00 ah] ; 0f b6 46 f63765 call 02e 18h ; e8 62fe3860 jmp short 030c0h ; eb 71 3861 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 3862 call 02ecah ; e8 74 fe 3766 3863 test ax, ax ; 85 c0 3767 je near 03 0b9h ; 0f 84 fd003768 movzx dx, byte [bp-00 ah] ; 0f b6 56 f63864 je near 03153h ; 0f 84 f7 00 3865 movzx dx, byte [bp-00eh] ; 0f b6 56 f2 3769 3866 mov ax, dx ; 89 d0 3770 call 02c 37h ; e8 72fc3867 call 02ceah ; e8 85 fc 3771 3868 test ax, ax ; 85 c0 3772 jne short 0 2fe2h ; 75 193869 jne short 03082h ; 75 19 3773 3870 mov ax, dx ; 89 d0 3774 call 02d 1eh ; e8 50fd3871 call 02db5h ; e8 47 fd 3775 3872 test ax, ax ; 85 c0 3776 jne short 0 2fe2h ; 75 103777 mov ax, word [bp+01 ah] ; 8b 46 1a3873 jne short 03082h ; 75 10 3874 mov ax, word [bp+016h] ; 8b 46 16 3778 3875 xor ah, ah ; 30 e4 3779 3876 or ah, 00ch ; 80 cc 0c 3780 mov word [bp+01 ah], ax ; 89 46 1a3877 mov word [bp+016h], ax ; 89 46 16 3781 3878 mov ax, strict word 0000ch ; b8 0c 00 3782 jmp short 030 20h ; eb 3e3783 cmp c h, 002h ; 80 fd023784 jne near 031 77h ; 0f 85 8e013785 mov dx, word [bp+00ah] ; 8b 56 0a3786 shr dx, 00ch ; c1 ea0c3787 mov ah, dl ; 88 d43788 mov cx, word [bp+00ah] ; 8b 4e 0a3789 sal cx, 004h ; c1 e1043790 mov bx, word [bp+01 4h] ; 8b 5e 143791 add bx, cx ; 01 cb3792 cmp bx, cx ; 39 cb3793 jnc short 030 02h ; 73 023879 jmp short 030c0h ; eb 3e 3880 cmp cl, 002h ; 80 f9 02 3881 jne near 031eah ; 0f 85 61 01 3882 mov cx, word [bp+006h] ; 8b 4e 06 3883 shr cx, 00ch ; c1 e9 0c 3884 mov ah, cl ; 88 cc 3885 mov dx, word [bp+006h] ; 8b 56 06 3886 sal dx, 004h ; c1 e2 04 3887 mov bx, word [bp+010h] ; 8b 5e 10 3888 add bx, dx ; 01 d3 3889 cmp bx, dx ; 39 d3 3890 jnc short 030a2h ; 73 02 3794 3891 db 0feh, 0c4h 3795 3892 ; inc ah ; fe c4 3796 movzx cx, byte [bp-00 8h] ; 0f b6 4e f83893 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 3797 3894 sal cx, 009h ; c1 e1 09 3798 3895 dec cx ; 49 … … 3800 3897 add dx, cx ; 01 ca 3801 3898 cmp dx, bx ; 39 da 3802 jnc short 030 2ah ; 73 183803 mov ax, word [bp+01 ah] ; 8b 46 1a3899 jnc short 030cah ; 73 18 3900 mov ax, word [bp+016h] ; 8b 46 16 3804 3901 xor ah, ah ; 30 e4 3805 3902 or ah, 009h ; 80 cc 09 3806 mov word [bp+01 ah], ax ; 89 46 1a3903 mov word [bp+016h], ax ; 89 46 16 3807 3904 mov ax, strict word 00009h ; b8 09 00 3808 call 02b 44h ; e8 21 fb3809 mov byte [bp+01 ah], 000h ; c6 46 1a003810 jmp near 032 abh ; e9 81023905 call 02b92h ; e8 cf fa 3906 mov byte [bp+016h], 000h ; c6 46 16 00 3907 jmp near 032f1h ; e9 27 02 3811 3908 mov AL, strict byte 006h ; b0 06 3812 3909 mov dx, strict word 0000ah ; ba 0a 00 … … 3840 3937 out DX, AL ; ee 3841 3938 out DX, AL ; ee 3842 movzx ax, byte [bp-00 ah] ; 0f b6 46 f63843 call 02 babh ; e8 3dfb3939 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 3940 call 02c69h ; e8 5b fb 3844 3941 mov AL, strict byte 0e6h ; b0 e6 3845 3942 mov dx, 003f5h ; ba f5 03 3846 3943 out DX, AL ; ee 3847 movzx dx, byte [bp-00 2h] ; 0f b6 56 fe3944 movzx dx, byte [bp-006h] ; 0f b6 56 fa 3848 3945 sal dx, 002h ; c1 e2 02 3849 movzx ax, byte [bp-00 ah] ; 0f b6 46 f63946 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 3850 3947 or ax, dx ; 09 d0 3851 3948 mov dx, 003f5h ; ba f5 03 3852 3949 out DX, AL ; ee 3853 mov al, byte [bp-004h] ; 8a 46 fc 3854 out DX, AL ; ee 3855 mov al, byte [bp-002h] ; 8a 46 fe 3950 mov al, byte [bp-008h] ; 8a 46 f8 3856 3951 out DX, AL ; ee 3857 3952 mov al, byte [bp-006h] ; 8a 46 fa 3858 3953 out DX, AL ; ee 3954 mov al, byte [bp-00ah] ; 8a 46 f6 3955 out DX, AL ; ee 3859 3956 mov AL, strict byte 002h ; b0 02 3860 3957 out DX, AL ; ee 3861 movzx ax, byte [bp-00 6h] ; 0f b6 46 fa3862 movzx dx, byte [bp-00 8h] ; 0f b6 56 f83958 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3959 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 3863 3960 add ax, dx ; 01 d0 3864 3961 dec ax ; 48 … … 3869 3966 mov AL, strict byte 0ffh ; b0 ff 3870 3967 out DX, AL ; ee 3871 sti ; fb 3872 mov dx, strict word 00040h ; ba 40 00 3873 mov ax, dx ; 89 d0 3874 call 01600h ; e8 4e e5 3968 call 02bf8h ; e8 ac fa 3875 3969 test al, al ; 84 c0 3876 jne short 03 0cah ; 75 143877 call 02 b83h ; e8 cafa3878 mov ax, word [bp+01 ah] ; 8b 46 1a3970 jne short 03164h ; 75 14 3971 call 02c3eh ; e8 eb fa 3972 mov ax, word [bp+016h] ; 8b 46 16 3879 3973 xor ah, ah ; 30 e4 3880 3974 or ah, 080h ; 80 cc 80 3881 mov word [bp+01 ah], ax ; 89 46 1a3975 mov word [bp+016h], ax ; 89 46 16 3882 3976 mov ax, 00080h ; b8 80 00 3883 jmp near 03020h ; e9 56 ff 3884 mov dx, strict word 0003eh ; ba 3e 00 3885 mov ax, strict word 00040h ; b8 40 00 3886 call 01600h ; e8 2d e5 3887 and AL, strict byte 080h ; 24 80 3888 test al, al ; 84 c0 3889 je short 030aah ; 74 d1 3890 cli ; fa 3891 mov dx, strict word 0003eh ; ba 3e 00 3892 mov ax, strict word 00040h ; b8 40 00 3893 call 01600h ; e8 1d e5 3894 and AL, strict byte 07fh ; 24 7f 3895 movzx bx, al ; 0f b6 d8 3896 mov dx, strict word 0003eh ; ba 3e 00 3897 mov ax, strict word 00040h ; b8 40 00 3898 call 0160eh ; e8 1d e5 3977 jmp near 030c0h ; e9 5c ff 3899 3978 mov dx, 003f4h ; ba f4 03 3900 3979 in AL, DX ; ec … … 3903 3982 and AL, strict byte 0c0h ; 24 c0 3904 3983 cmp AL, strict byte 0c0h ; 3c c0 3905 je short 031 0bh ; 74 0e3984 je short 0317eh ; 74 0e 3906 3985 push 001e5h ; 68 e5 01 3907 3986 push 00218h ; 68 18 02 3908 3987 push strict byte 00007h ; 6a 07 3909 call 01 8e9h ; e8 e1e73988 call 0190dh ; e8 92 e7 3910 3989 add sp, strict byte 00006h ; 83 c4 06 3911 3990 xor si, si ; 31 f6 3912 jmp short 031 14h ; eb 053991 jmp short 03187h ; eb 05 3913 3992 cmp si, strict byte 00007h ; 83 fe 07 3914 jnl short 031 2ch ; 7d 183993 jnl short 0319fh ; 7d 18 3915 3994 mov dx, 003f5h ; ba f5 03 3916 3995 in AL, DX ; ec 3917 3996 db 02ah, 0e4h 3918 3997 ; sub ah, ah ; 2a e4 3919 mov byte [bp+si-01 2h], al ; 88 42 ee3998 mov byte [bp+si-016h], al ; 88 42 ea 3920 3999 movzx bx, al ; 0f b6 d8 3921 4000 lea dx, [si+042h] ; 8d 54 42 3922 4001 mov ax, strict word 00040h ; b8 40 00 3923 call 0160eh ; e8 e5e44002 call 0160eh ; e8 72 e4 3924 4003 inc si ; 46 3925 jmp short 031 0fh ; eb e33926 test byte [bp-01 2h], 0c0h ; f6 46 eec03927 je short 031 43h ; 74 113928 mov ax, word [bp+01 ah] ; 8b 46 1a4004 jmp short 03182h ; eb e3 4005 test byte [bp-016h], 0c0h ; f6 46 ea c0 4006 je short 031b6h ; 74 11 4007 mov ax, word [bp+016h] ; 8b 46 16 3929 4008 xor ah, ah ; 30 e4 3930 4009 or ah, 020h ; 80 cc 20 3931 mov word [bp+01 ah], ax ; 89 46 1a4010 mov word [bp+016h], ax ; 89 46 16 3932 4011 mov ax, strict word 00020h ; b8 20 00 3933 jmp near 030 20h ; e9 dd fe3934 movzx ax, byte [bp-00 8h] ; 0f b6 46 f84012 jmp near 030c0h ; e9 0a ff 4013 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 3935 4014 sal ax, 009h ; c1 e0 09 3936 4015 cwd ; 99 … … 3938 4017 ; sub ax, dx ; 2b c2 3939 4018 sar ax, 1 ; d1 f8 3940 mov cx, ax ; 89 c1 3941 mov si, word [bp+014h] ; 8b 76 14 3942 mov dx, word [bp+00ah] ; 8b 56 0a 4019 mov si, word [bp+010h] ; 8b 76 10 4020 mov dx, word [bp+006h] ; 8b 56 06 3943 4021 mov di, si ; 89 f7 3944 4022 mov es, dx ; 8e c2 4023 mov cx, ax ; 89 c1 3945 4024 push DS ; 1e 3946 4025 mov ds, dx ; 8e da 3947 4026 rep movsw ; f3 a5 3948 4027 pop DS ; 1f 3949 movzx dx, byte [bp-00 4h] ; 0f b6 56 fc3950 movzx ax, byte [bp-00 ah] ; 0f b6 46 f63951 call 02b 59h ; e8 edf93952 mov byte [bp+01 bh], 000h ; c6 46 1b003953 and byte [bp+0 20h], 0feh ; 80 66 20fe3954 jmp near 02f 2eh ; e9 b7fd3955 cmp c h, 003h ; 80 fd033956 jne near 032 b9h ; 0f 85 3b013957 mov dx, word [bp+00 ah] ; 8b 56 0a4028 movzx dx, byte [bp-008h] ; 0f b6 56 f8 4029 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4030 call 02baah ; e8 cb f9 4031 mov byte [bp+017h], 000h ; c6 46 17 00 4032 and byte [bp+01ch], 0feh ; 80 66 1c fe 4033 jmp near 02fcch ; e9 e2 fd 4034 cmp cl, 003h ; 80 f9 03 4035 jne near 032ffh ; 0f 85 0e 01 4036 mov dx, word [bp+006h] ; 8b 56 06 3958 4037 shr dx, 00ch ; c1 ea 0c 3959 4038 mov ah, dl ; 88 d4 3960 mov cx, word [bp+00 ah] ; 8b 4e 0a4039 mov cx, word [bp+006h] ; 8b 4e 06 3961 4040 sal cx, 004h ; c1 e1 04 3962 mov bx, word [bp+01 4h] ; 8b 5e 144041 mov bx, word [bp+010h] ; 8b 5e 10 3963 4042 add bx, cx ; 01 cb 3964 4043 cmp bx, cx ; 39 cb 3965 jnc short 03 197h ; 73 024044 jnc short 0320ah ; 73 02 3966 4045 db 0feh, 0c4h 3967 4046 ; inc ah ; fe c4 3968 movzx cx, byte [bp-00 8h] ; 0f b6 4e f84047 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 3969 4048 sal cx, 009h ; c1 e1 09 3970 4049 dec cx ; 49 … … 3972 4051 add dx, cx ; 01 ca 3973 4052 cmp dx, bx ; 39 da 3974 jc near 030 12h ; 0f 82 69fe4053 jc near 030b2h ; 0f 82 96 fe 3975 4054 mov AL, strict byte 006h ; b0 06 3976 4055 mov dx, strict word 0000ah ; ba 0a 00 … … 4003 4082 mov dx, strict word 0000ah ; ba 0a 00 4004 4083 out DX, AL ; ee 4005 movzx ax, byte [bp-00 ah] ; 0f b6 46 f64006 call 02 babh ; e8 bf f94084 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4085 call 02c69h ; e8 0a fa 4007 4086 mov AL, strict byte 0c5h ; b0 c5 4008 4087 mov dx, 003f5h ; ba f5 03 4009 4088 out DX, AL ; ee 4010 movzx dx, byte [bp-00 2h] ; 0f b6 56 fe4089 movzx dx, byte [bp-006h] ; 0f b6 56 fa 4011 4090 sal dx, 002h ; c1 e2 02 4012 movzx ax, byte [bp-00 ah] ; 0f b6 46 f64091 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4013 4092 or ax, dx ; 09 d0 4014 4093 mov dx, 003f5h ; ba f5 03 4015 4094 out DX, AL ; ee 4016 mov al, byte [bp-004h] ; 8a 46 fc 4017 out DX, AL ; ee 4018 mov al, byte [bp-002h] ; 8a 46 fe 4095 mov al, byte [bp-008h] ; 8a 46 f8 4019 4096 out DX, AL ; ee 4020 4097 mov al, byte [bp-006h] ; 8a 46 fa 4021 4098 out DX, AL ; ee 4099 mov al, byte [bp-00ah] ; 8a 46 f6 4100 out DX, AL ; ee 4022 4101 mov AL, strict byte 002h ; b0 02 4023 4102 out DX, AL ; ee 4024 movzx dx, byte [bp-00 6h] ; 0f b6 56 fa4025 movzx ax, byte [bp-00 8h] ; 0f b6 46 f84103 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 4104 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4026 4105 add ax, dx ; 01 d0 4027 4106 dec ax ; 48 … … 4032 4111 mov AL, strict byte 0ffh ; b0 ff 4033 4112 out DX, AL ; ee 4034 sti ; fb 4035 mov dx, strict word 00040h ; ba 40 00 4036 mov ax, dx ; 89 d0 4037 call 01600h ; e8 d0 e3 4113 call 02bf8h ; e8 5b f9 4038 4114 test al, al ; 84 c0 4039 je near 030b6h ; 0f 84 80 fe 4040 mov dx, strict word 0003eh ; ba 3e 00 4041 mov ax, strict word 00040h ; b8 40 00 4042 call 01600h ; e8 c1 e3 4043 and AL, strict byte 080h ; 24 80 4044 test al, al ; 84 c0 4045 je short 03228h ; 74 e3 4046 cli ; fa 4047 mov dx, strict word 0003eh ; ba 3e 00 4048 mov ax, strict word 00040h ; b8 40 00 4049 call 01600h ; e8 b1 e3 4050 and AL, strict byte 07fh ; 24 7f 4051 movzx bx, al ; 0f b6 d8 4052 mov dx, strict word 0003eh ; ba 3e 00 4053 mov ax, strict word 00040h ; b8 40 00 4054 call 0160eh ; e8 b1 e3 4115 je near 03150h ; 0f 84 ad fe 4055 4116 mov dx, 003f4h ; ba f4 03 4056 4117 in AL, DX ; ec … … 4059 4120 and AL, strict byte 0c0h ; 24 c0 4060 4121 cmp AL, strict byte 0c0h ; 3c c0 4061 je short 032 77h ; 74 0e4122 je short 032bdh ; 74 0e 4062 4123 push 001e5h ; 68 e5 01 4063 4124 push 00218h ; 68 18 02 4064 4125 push strict byte 00007h ; 6a 07 4065 call 01 8e9h ; e8 75e64126 call 0190dh ; e8 53 e6 4066 4127 add sp, strict byte 00006h ; 83 c4 06 4067 4128 xor si, si ; 31 f6 4068 jmp short 032 80h ; eb 054129 jmp short 032c6h ; eb 05 4069 4130 cmp si, strict byte 00007h ; 83 fe 07 4070 jnl short 032 98h ; 7d 184131 jnl short 032deh ; 7d 18 4071 4132 mov dx, 003f5h ; ba f5 03 4072 4133 in AL, DX ; ec 4073 4134 db 02ah, 0e4h 4074 4135 ; sub ah, ah ; 2a e4 4075 mov byte [bp+si-01 2h], al ; 88 42 ee4136 mov byte [bp+si-016h], al ; 88 42 ea 4076 4137 movzx bx, al ; 0f b6 d8 4077 4138 lea dx, [si+042h] ; 8d 54 42 4078 4139 mov ax, strict word 00040h ; b8 40 00 4079 call 0160eh ; e8 79e34140 call 0160eh ; e8 33 e3 4080 4141 inc si ; 46 4081 jmp short 032 7bh ; eb e34082 test byte [bp-01 2h], 0c0h ; f6 46 eec04083 je near 031 61h ; 0f 84 c1fe4084 test byte [bp-01 1h], 002h ; f6 46 ef024085 je short 032 b2h ; 74 0c4086 mov word [bp+01 ah], 00300h ; c7 46 1a00 034087 or byte [bp+0 20h], 001h ; 80 4e 20014088 jmp near 02f 2eh ; e9 7cfc4089 mov word [bp+01 ah], 00100h ; c7 46 1a00 014090 jmp short 032 abh ; eb f24091 movzx dx, byte [bp-00 4h] ; 0f b6 56 fc4092 movzx ax, byte [bp-00 ah] ; 0f b6 46 f64093 call 02b 59h ; e8 95f84094 and byte [bp+0 20h], 0feh ; 80 66 20fe4095 mov byte [bp+01 bh], 000h ; c6 46 1b004096 jmp near 02f 2eh ; e9 5ffc4097 mov al, byte [bp+01 ah] ; 8a 46 1a4098 mov byte [bp-00 8h], al ; 88 46 f84099 mov dx, word [bp+01 8h] ; 8b 56 184142 jmp short 032c1h ; eb e3 4143 test byte [bp-016h], 0c0h ; f6 46 ea c0 4144 je near 031d4h ; 0f 84 ee fe 4145 test byte [bp-015h], 002h ; f6 46 eb 02 4146 je short 032f8h ; 74 0c 4147 mov word [bp+016h], 00300h ; c7 46 16 00 03 4148 or byte [bp+01ch], 001h ; 80 4e 1c 01 4149 jmp near 02fcch ; e9 d4 fc 4150 mov word [bp+016h], 00100h ; c7 46 16 00 01 4151 jmp short 032f1h ; eb f2 4152 movzx dx, byte [bp-008h] ; 0f b6 56 f8 4153 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4154 call 02baah ; e8 a0 f8 4155 and byte [bp+01ch], 0feh ; 80 66 1c fe 4156 mov byte [bp+017h], 000h ; c6 46 17 00 4157 jmp near 02fcch ; e9 b7 fc 4158 mov al, byte [bp+016h] ; 8a 46 16 4159 mov byte [bp-00ch], al ; 88 46 f4 4160 mov dx, word [bp+014h] ; 8b 56 14 4100 4161 shr dx, 008h ; c1 ea 08 4162 mov ax, word [bp+012h] ; 8b 46 12 4163 shr ax, 008h ; c1 e8 08 4164 mov byte [bp-006h], al ; 88 46 fa 4165 mov bl, byte [bp+00eh] ; 8a 5e 0e 4166 mov byte [bp-00eh], bl ; 88 5e f2 4167 cmp bl, 001h ; 80 fb 01 4168 jnbe short 03349h ; 77 14 4169 cmp AL, strict byte 001h ; 3c 01 4170 jnbe short 03349h ; 77 10 4171 cmp dl, 04fh ; 80 fa 4f 4172 jnbe short 03349h ; 77 0b 4173 mov al, byte [bp-00ch] ; 8a 46 f4 4174 test al, al ; 84 c0 4175 je short 03349h ; 74 04 4176 cmp AL, strict byte 012h ; 3c 12 4177 jbe short 0335eh ; 76 15 4101 4178 mov ax, word [bp+016h] ; 8b 46 16 4102 shr ax, 008h ; c1 e8 084103 mov byte [bp-002h], al ; 88 46 fe4104 mov bl, byte [bp+012h] ; 8a 5e 124105 mov byte [bp-00ah], bl ; 88 5e f64106 cmp bl, 001h ; 80 fb 014107 jnbe short 03303h ; 77 144108 cmp AL, strict byte 001h ; 3c 014109 jnbe short 03303h ; 77 104110 cmp dl, 04fh ; 80 fa 4f4111 jnbe short 03303h ; 77 0b4112 mov al, byte [bp-008h] ; 8a 46 f84113 test al, al ; 84 c04114 je short 03303h ; 74 044115 cmp AL, strict byte 012h ; 3c 124116 jbe short 03318h ; 76 154117 mov ax, word [bp+01ah] ; 8b 46 1a4118 4179 xor ah, ah ; 30 e4 4119 4180 or ah, 001h ; 80 cc 01 4120 mov word [bp+01 ah], ax ; 89 46 1a4181 mov word [bp+016h], ax ; 89 46 16 4121 4182 mov ax, strict word 00001h ; b8 01 00 4122 call 02b 44h ; e8 30f84123 or byte [bp+0 20h], 001h ; 80 4e 20014124 movzx ax, byte [bp-00 ah] ; 0f b6 46 f64125 call 02e 18h ; e8 f9 fa4183 call 02b92h ; e8 38 f8 4184 or byte [bp+01ch], 001h ; 80 4e 1c 01 4185 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4186 call 02ecah ; e8 65 fb 4126 4187 test ax, ax ; 85 c0 4127 je near 02 efch ; 0f 84 d7 fb4128 movzx dx, byte [bp-00 ah] ; 0f b6 56 f64188 je near 02f9ah ; 0f 84 2f fc 4189 movzx dx, byte [bp-00eh] ; 0f b6 56 f2 4129 4190 mov ax, dx ; 89 d0 4130 call 02c 37h ; e8 09f94191 call 02ceah ; e8 76 f9 4131 4192 test ax, ax ; 85 c0 4132 jne short 033 3dh ; 75 0b4193 jne short 03383h ; 75 0b 4133 4194 mov ax, dx ; 89 d0 4134 call 02d 1eh ; e8 e7 f94195 call 02db5h ; e8 38 fa 4135 4196 test ax, ax ; 85 c0 4136 je near 0 2fd2h ; 0f 84 95fc4137 mov dx, word [bp+00 ah] ; 8b 56 0a4197 je near 03072h ; 0f 84 ef fc 4198 mov dx, word [bp+006h] ; 8b 56 06 4138 4199 shr dx, 00ch ; c1 ea 0c 4139 4200 mov ah, dl ; 88 d4 4140 mov cx, word [bp+00 ah] ; 8b 4e 0a4201 mov cx, word [bp+006h] ; 8b 4e 06 4141 4202 sal cx, 004h ; c1 e1 04 4142 mov bx, word [bp+01 4h] ; 8b 5e 144203 mov bx, word [bp+010h] ; 8b 5e 10 4143 4204 add bx, cx ; 01 cb 4144 4205 cmp bx, cx ; 39 cb 4145 jnc short 033 56h ; 73 024206 jnc short 0339ch ; 73 02 4146 4207 db 0feh, 0c4h 4147 4208 ; inc ah ; fe c4 4148 movzx cx, byte [bp-00 8h] ; 0f b6 4e f84209 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 4149 4210 sal cx, 002h ; c1 e1 02 4150 4211 dec cx ; 49 … … 4152 4213 add dx, cx ; 01 ca 4153 4214 cmp dx, bx ; 39 da 4154 jc near 030 12h ; 0f 82 aa fc4215 jc near 030b2h ; 0f 82 04 fd 4155 4216 mov AL, strict byte 006h ; b0 06 4156 4217 mov dx, strict word 0000ah ; ba 0a 00 … … 4183 4244 mov dx, strict word 0000ah ; ba 0a 00 4184 4245 out DX, AL ; ee 4185 movzx ax, byte [bp-00 ah] ; 0f b6 46 f64186 call 02 babh ; e8 00f84246 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4247 call 02c69h ; e8 78 f8 4187 4248 mov AL, strict byte 04dh ; b0 4d 4188 4249 mov dx, 003f5h ; ba f5 03 4189 4250 out DX, AL ; ee 4190 movzx dx, byte [bp-002h] ; 0f b6 56 fe4191 sal dx, 002h ; c1 e2024192 movzx ax, byte [bp-00ah] ; 0f b6 46 f64251 movzx ax, byte [bp-006h] ; 0f b6 46 fa 4252 sal ax, 002h ; c1 e0 02 4253 movzx dx, byte [bp-00eh] ; 0f b6 56 f2 4193 4254 or ax, dx ; 09 d0 4194 4255 mov dx, 003f5h ; ba f5 03 … … 4196 4257 mov AL, strict byte 002h ; b0 02 4197 4258 out DX, AL ; ee 4198 mov al, byte [bp-00 8h] ; 8a 46 f84259 mov al, byte [bp-00ch] ; 8a 46 f4 4199 4260 out DX, AL ; ee 4200 4261 xor al, al ; 30 c0 … … 4202 4263 mov AL, strict byte 0f6h ; b0 f6 4203 4264 out DX, AL ; ee 4204 sti ; fb 4205 mov dx, strict word 00040h ; ba 40 00 4206 mov ax, dx ; 89 d0 4207 call 01600h ; e8 28 e2 4265 call 02bf8h ; e8 e0 f7 4208 4266 test al, al ; 84 c0 4209 jne short 033e2h ; 75 06 4210 call 02b83h ; e8 a4 f7 4211 jmp near 02efch ; e9 1a fb 4212 mov dx, strict word 0003eh ; ba 3e 00 4213 mov ax, strict word 00040h ; b8 40 00 4214 call 01600h ; e8 15 e2 4215 and AL, strict byte 080h ; 24 80 4216 test al, al ; 84 c0 4217 je short 033d0h ; 74 df 4218 cli ; fa 4219 mov dx, strict word 0003eh ; ba 3e 00 4220 mov ax, strict word 00040h ; b8 40 00 4221 call 01600h ; e8 05 e2 4222 and AL, strict byte 07fh ; 24 7f 4223 movzx bx, al ; 0f b6 d8 4224 mov dx, strict word 0003eh ; ba 3e 00 4225 mov ax, strict word 00040h ; b8 40 00 4226 call 0160eh ; e8 05 e2 4267 jne short 03422h ; 75 06 4268 call 02c3eh ; e8 1f f8 4269 jmp near 02f9ah ; e9 78 fb 4227 4270 mov dx, 003f4h ; ba f4 03 4228 4271 in AL, DX ; ec … … 4231 4274 and AL, strict byte 0c0h ; 24 c0 4232 4275 cmp AL, strict byte 0c0h ; 3c c0 4233 je short 034 23h ; 74 0e4276 je short 0343ch ; 74 0e 4234 4277 push 001e5h ; 68 e5 01 4235 4278 push 00218h ; 68 18 02 4236 4279 push strict byte 00007h ; 6a 07 4237 call 01 8e9h ; e8 c9e44280 call 0190dh ; e8 d4 e4 4238 4281 add sp, strict byte 00006h ; 83 c4 06 4239 4282 xor si, si ; 31 f6 4240 jmp short 034 2ch ; eb 054283 jmp short 03445h ; eb 05 4241 4284 cmp si, strict byte 00007h ; 83 fe 07 4242 jnl short 034 44h ; 7d 184285 jnl short 0345dh ; 7d 18 4243 4286 mov dx, 003f5h ; ba f5 03 4244 4287 in AL, DX ; ec 4245 4288 db 02ah, 0e4h 4246 4289 ; sub ah, ah ; 2a e4 4247 mov byte [bp+si-01 2h], al ; 88 42 ee4290 mov byte [bp+si-016h], al ; 88 42 ea 4248 4291 movzx bx, al ; 0f b6 d8 4249 4292 lea dx, [si+042h] ; 8d 54 42 4250 4293 mov ax, strict word 00040h ; b8 40 00 4251 call 0160eh ; e8 cde14294 call 0160eh ; e8 b4 e1 4252 4295 inc si ; 46 4253 jmp short 034 27h ; eb e34254 test byte [bp-01 2h], 0c0h ; f6 46 eec04255 je short 034 60h ; 74 164256 test byte [bp-01 1h], 002h ; f6 46 ef024257 jne near 032 a6h ; 0f 85 54fe4296 jmp short 03440h ; eb e3 4297 test byte [bp-016h], 0c0h ; f6 46 ea c0 4298 je short 03479h ; 74 16 4299 test byte [bp-015h], 002h ; f6 46 eb 02 4300 jne near 032ech ; 0f 85 81 fe 4258 4301 push 001e5h ; 68 e5 01 4259 4302 push 0022ch ; 68 2c 02 4260 4303 push strict byte 00007h ; 6a 07 4261 call 01 8e9h ; e8 8ce44304 call 0190dh ; e8 97 e4 4262 4305 add sp, strict byte 00006h ; 83 c4 06 4263 4306 xor al, al ; 30 c0 4264 mov byte [bp+01 bh], al ; 88 46 1b4307 mov byte [bp+017h], al ; 88 46 17 4265 4308 xor ah, ah ; 30 e4 4266 call 02b 44h ; e8 da f64267 movzx ax, byte [bp-00 ah] ; 0f b6 46 f64309 call 02b92h ; e8 0f f7 4310 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4268 4311 xor dx, dx ; 31 d2 4269 call 02b59h ; e8 e6 f6 4270 jmp near 03170h ; e9 fa fc 4271 mov byte [bp-00ah], ah ; 88 66 f6 4272 cmp ah, 001h ; 80 fc 01 4273 jbe short 0349eh ; 76 20 4274 xor ax, ax ; 31 c0 4275 mov word [bp+01ah], ax ; 89 46 1a 4276 mov word [bp+014h], ax ; 89 46 14 4277 mov word [bp+018h], ax ; 89 46 18 4278 mov word [bp+016h], ax ; 89 46 16 4279 mov word [bp+00ah], ax ; 89 46 0a 4280 mov word [bp+00ch], ax ; 89 46 0c 4281 movzx ax, cl ; 0f b6 c1 4282 mov word [bp+016h], ax ; 89 46 16 4283 mov word [bp+020h], dx ; 89 56 20 4284 jmp near 02f2eh ; e9 90 fa 4312 call 02baah ; e8 1e f7 4313 jmp near 031e3h ; e9 54 fd 4314 mov byte [bp-00eh], al ; 88 46 f2 4315 cmp AL, strict byte 001h ; 3c 01 4316 jbe short 034bch ; 76 26 4317 mov word [bp+016h], strict word 00000h ; c7 46 16 00 00 4318 mov word [bp+010h], strict word 00000h ; c7 46 10 00 00 4319 mov dword [bp+012h], strict dword 000000000h ; 66 c7 46 12 00 00 00 00 4320 mov dword [bp+006h], strict dword 000000000h ; 66 c7 46 06 00 00 00 00 4321 movzx ax, ah ; 0f b6 c4 4322 mov word [bp+012h], ax ; 89 46 12 4323 mov word [bp+01ch], dx ; 89 56 1c 4324 jmp near 02fcch ; e9 10 fb 4285 4325 mov ax, strict word 00010h ; b8 10 00 4286 call 0165ch ; e8 b8 e1 4287 mov bl, al ; 88 c3 4288 xor cl, cl ; 30 c9 4326 call 0165ch ; e8 9a e1 4327 xor ah, ah ; 30 e4 4289 4328 test AL, strict byte 0f0h ; a8 f0 4290 je short 034aeh ; 74 02 4291 mov CL, strict byte 001h ; b1 01 4292 test bl, 00fh ; f6 c3 0f 4293 je short 034b5h ; 74 02 4294 db 0feh, 0c1h 4295 ; inc cl ; fe c1 4296 cmp byte [bp-00ah], 000h ; 80 7e f6 00 4297 jne short 034c0h ; 75 05 4298 shr bl, 004h ; c0 eb 04 4299 jmp short 034c3h ; eb 03 4300 and bl, 00fh ; 80 e3 0f 4301 xor al, al ; 30 c0 4302 mov byte [bp+015h], al ; 88 46 15 4303 movzx si, bl ; 0f b6 f3 4304 mov word [bp+014h], si ; 89 76 14 4305 xor ah, ah ; 30 e4 4306 mov word [bp+01ah], ax ; 89 46 1a 4307 mov dx, word [bp+016h] ; 8b 56 16 4308 xor dl, dl ; 30 d2 4309 movzx ax, cl ; 0f b6 c1 4310 or dx, ax ; 09 c2 4311 mov word [bp+016h], dx ; 89 56 16 4312 cmp bl, 008h ; 80 fb 08 4313 jnbe short 0353eh ; 77 59 4314 add si, si ; 01 f6 4315 mov ax, dx ; 89 d0 4316 xor ah, dh ; 30 f4 4317 mov bx, ax ; 89 c3 4318 or bh, 001h ; 80 cf 01 4319 jmp word [cs:si+02e39h] ; 2e ff a4 39 2e 4320 mov word [bp+018h], strict word 00000h ; c7 46 18 00 00 4321 mov byte [bp+017h], 000h ; c6 46 17 00 4322 jmp short 0354ch ; eb 4c 4323 mov word [bp+018h], 02709h ; c7 46 18 09 27 4324 mov word [bp+016h], bx ; 89 5e 16 4325 jmp short 0354ch ; eb 42 4326 mov word [bp+018h], 04f0fh ; c7 46 18 0f 4f 4327 jmp short 03505h ; eb f4 4328 mov word [bp+018h], 04f09h ; c7 46 18 09 4f 4329 jmp short 03505h ; eb ed 4330 mov word [bp+018h], 04f12h ; c7 46 18 12 4f 4331 jmp short 03505h ; eb e6 4332 mov word [bp+018h], 04f24h ; c7 46 18 24 4f 4333 jmp short 03505h ; eb df 4334 mov word [bp+018h], 02708h ; c7 46 18 08 27 4335 mov word [bp+016h], ax ; 89 46 16 4336 jmp short 0354ch ; eb 1c 4337 mov word [bp+018h], 02709h ; c7 46 18 09 27 4338 jmp short 0352bh ; eb f4 4339 mov word [bp+018h], 02708h ; c7 46 18 08 27 4340 jmp short 03505h ; eb c7 4329 je short 034cah ; 74 02 4330 mov AH, strict byte 001h ; b4 01 4331 test AL, strict byte 00fh ; a8 0f 4332 je short 034d0h ; 74 02 4333 db 0feh, 0c4h 4334 ; inc ah ; fe c4 4335 cmp byte [bp-00eh], 000h ; 80 7e f2 00 4336 jne short 034dbh ; 75 05 4337 shr al, 004h ; c0 e8 04 4338 jmp short 034ddh ; eb 02 4339 and AL, strict byte 00fh ; 24 0f 4340 mov byte [bp+011h], 000h ; c6 46 11 00 4341 movzx dx, al ; 0f b6 d0 4342 mov word [bp+010h], dx ; 89 56 10 4343 mov word [bp+016h], strict word 00000h ; c7 46 16 00 00 4344 mov bx, word [bp+012h] ; 8b 5e 12 4345 xor bl, bl ; 30 db 4346 movzx dx, ah ; 0f b6 d4 4347 or bx, dx ; 09 d3 4348 mov word [bp+012h], bx ; 89 5e 12 4349 mov dx, bx ; 89 da 4350 xor dh, bh ; 30 fe 4351 or dh, 001h ; 80 ce 01 4352 mov word [bp+012h], dx ; 89 56 12 4353 cmp AL, strict byte 005h ; 3c 05 4354 jc short 03528h ; 72 21 4355 jbe short 03563h ; 76 5a 4356 cmp AL, strict byte 008h ; 3c 08 4357 jc short 03520h ; 72 13 4358 jbe near 0357bh ; 0f 86 6a 00 4359 cmp AL, strict byte 00fh ; 3c 0f 4360 je near 03589h ; 0f 84 72 00 4361 cmp AL, strict byte 00eh ; 3c 0e 4362 je near 03582h ; 0f 84 65 00 4363 jmp near 03590h ; e9 70 00 4364 xor dh, dh ; 30 f6 4365 cmp AL, strict byte 007h ; 3c 07 4366 je short 03574h ; 74 4e 4367 jmp short 0356ah ; eb 42 4368 cmp AL, strict byte 002h ; 3c 02 4369 jc short 03534h ; 72 08 4370 jbe short 0354eh ; 76 20 4371 cmp AL, strict byte 004h ; 3c 04 4372 je short 0355ch ; 74 2a 4373 jmp short 03555h ; eb 21 4374 cmp AL, strict byte 001h ; 3c 01 4375 je short 03547h ; 74 0f 4376 test al, al ; 84 c0 4377 jne short 03590h ; 75 54 4378 mov word [bp+014h], strict word 00000h ; c7 46 14 00 00 4379 mov byte [bp+013h], 000h ; c6 46 13 00 4380 jmp short 0359eh ; eb 57 4381 mov word [bp+014h], 02709h ; c7 46 14 09 27 4382 jmp short 0359eh ; eb 50 4383 mov word [bp+014h], 04f0fh ; c7 46 14 0f 4f 4384 jmp short 0359eh ; eb 49 4385 mov word [bp+014h], 04f09h ; c7 46 14 09 4f 4386 jmp short 0359eh ; eb 42 4387 mov word [bp+014h], 04f12h ; c7 46 14 12 4f 4388 jmp short 0359eh ; eb 3b 4389 mov word [bp+014h], 04f24h ; c7 46 14 24 4f 4390 jmp short 0359eh ; eb 34 4391 mov word [bp+014h], 02708h ; c7 46 14 08 27 4392 mov word [bp+012h], dx ; 89 56 12 4393 jmp short 0359eh ; eb 2a 4394 mov word [bp+014h], 02709h ; c7 46 14 09 27 4395 jmp short 0356fh ; eb f4 4396 mov word [bp+014h], 02708h ; c7 46 14 08 27 4397 jmp short 0359eh ; eb 1c 4398 mov word [bp+014h], 0fe3fh ; c7 46 14 3f fe 4399 jmp short 0359eh ; eb 15 4400 mov word [bp+014h], 0feffh ; c7 46 14 ff fe 4401 jmp short 0359eh ; eb 0e 4341 4402 push 001e5h ; 68 e5 01 4342 4403 push 0023dh ; 68 3d 02 4343 4404 push strict byte 00007h ; 6a 07 4344 call 01 8e9h ; e8 a0e34405 call 0190dh ; e8 72 e3 4345 4406 add sp, strict byte 00006h ; 83 c4 06 4346 mov word [bp+00 ah], 0f000h ; c7 46 0a00 f04347 mov word [bp+00 ch], 0efc7h ; c7 46 0cc7 ef4348 jmp near 031 70h ; e9 17fc4349 mov byte [bp-00 ah], ah ; 88 66 f64350 cmp ah, 001h ; 80 fc 014351 jbe short 035 67h ; 76 064352 mov word [bp+01 ah], si ; 89 76 1a4353 jmp near 034 98h ; e9 31 ff4407 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 4408 mov word [bp+008h], 0efc7h ; c7 46 08 c7 ef 4409 jmp near 031e3h ; e9 38 fc 4410 mov byte [bp-00eh], al ; 88 46 f2 4411 cmp AL, strict byte 001h ; 3c 01 4412 jbe short 035b8h ; 76 06 4413 mov word [bp+016h], si ; 89 76 16 4414 jmp near 034b6h ; e9 fe fe 4354 4415 mov ax, strict word 00010h ; b8 10 00 4355 call 0165ch ; e8 ef e0 4356 cmp byte [bp-00ah], 000h ; 80 7e f6 00 4357 jne short 0357ah ; 75 07 4358 mov bl, al ; 88 c3 4359 shr bl, 004h ; c0 eb 04 4360 jmp short 0357fh ; eb 05 4361 mov bl, al ; 88 c3 4362 and bl, 00fh ; 80 e3 0f 4363 and byte [bp+020h], 0feh ; 80 66 20 fe 4364 mov ax, word [bp+01ah] ; 8b 46 1a 4365 xor ah, ah ; 30 e4 4366 test bl, bl ; 84 db 4367 je short 0358fh ; 74 03 4368 or ah, 001h ; 80 cc 01 4369 mov word [bp+01ah], ax ; 89 46 1a 4370 jmp near 02f2eh ; e9 99 f9 4371 cmp ah, 001h ; 80 fc 01 4372 jbe short 035a6h ; 76 0c 4373 mov word [bp+01ah], si ; 89 76 1a 4416 call 0165ch ; e8 9e e0 4417 cmp byte [bp-00eh], 000h ; 80 7e f2 00 4418 jne short 035c9h ; 75 05 4419 shr al, 004h ; c0 e8 04 4420 jmp short 035cbh ; eb 02 4421 and AL, strict byte 00fh ; 24 0f 4422 and byte [bp+01ch], 0feh ; 80 66 1c fe 4423 mov dx, word [bp+016h] ; 8b 56 16 4424 xor dh, dh ; 30 f6 4425 test al, al ; 84 c0 4426 je short 035e4h ; 74 0c 4427 cmp AL, strict byte 001h ; 3c 01 4428 jbe short 035e1h ; 76 05 4429 or dh, 002h ; 80 ce 02 4430 jmp short 035e4h ; eb 03 4431 or dh, 001h ; 80 ce 01 4432 mov word [bp+016h], dx ; 89 56 16 4433 jmp near 02fcch ; e9 e2 f9 4434 cmp AL, strict byte 001h ; 3c 01 4435 jbe short 035fah ; 76 0c 4436 mov word [bp+016h], si ; 89 76 16 4374 4437 mov ax, strict word 00001h ; b8 01 00 4375 call 02b 44h ; e8 a1f54376 jmp near 034 98h ; e9 f2fe4377 mov ax, word [bp+01 ah] ; 8b 46 1a4438 call 02b92h ; e8 9b f5 4439 jmp near 034b6h ; e9 bc fe 4440 mov ax, word [bp+016h] ; 8b 46 16 4378 4441 xor ah, ah ; 30 e4 4379 4442 or ah, 006h ; 80 cc 06 4380 mov word [bp+01 ah], ax ; 89 46 1a4443 mov word [bp+016h], ax ; 89 46 16 4381 4444 mov ax, strict word 00006h ; b8 06 00 4382 jmp near 02 edah ; e9 23f94383 mov bx, 00d3 2h ; bb 320d4445 jmp near 02f7dh ; e9 72 f9 4446 mov bx, 00d38h ; bb 38 0d 4384 4447 mov cx, ds ; 8c d9 4385 4448 mov ax, strict word 00004h ; b8 04 00 4386 call 018 aeh ; e8 ece24387 mov ax, word [bp+01 ah] ; 8b 46 1a4449 call 018cch ; e8 b6 e2 4450 mov ax, word [bp+016h] ; 8b 46 16 4388 4451 shr ax, 008h ; c1 e8 08 4389 4452 push ax ; 50 … … 4391 4454 push 00252h ; 68 52 02 4392 4455 push strict byte 00004h ; 6a 04 4393 call 01 8e9h ; e8 15 e34456 call 0190dh ; e8 e5 e2 4394 4457 add sp, strict byte 00008h ; 83 c4 08 4395 jmp near 02ecch ; e9 f2 f8 4396 _cdemu_init: ; 0xf35da LB 0x16 4458 jmp near 02f6fh ; e9 41 f9 4459 dummy_soft_reset_: ; 0xf362e LB 0x7 4460 push bp ; 55 4461 mov bp, sp ; 89 e5 4462 xor ax, ax ; 31 c0 4463 pop bp ; 5d 4464 retn ; c3 4465 _cdemu_init: ; 0xf3635 LB 0x18 4397 4466 push bp ; 55 4398 4467 mov bp, sp ; 89 e5 4399 4468 mov dx, strict word 0000eh ; ba 0e 00 4400 4469 mov ax, strict word 00040h ; b8 40 00 4401 call 0161ch ; e8 36 e04470 call 0161ch ; e8 db df 4402 4471 xor bx, bx ; 31 db 4403 4472 mov dx, 00322h ; ba 22 03 4404 call 0160eh ; e8 20 e0 4473 call 0160eh ; e8 c5 df 4474 mov sp, bp ; 89 ec 4405 4475 pop bp ; 5d 4406 4476 retn ; c3 4407 _cdemu_isactive: ; 0xf3 5f0 LB 0x144477 _cdemu_isactive: ; 0xf364d LB 0x16 4408 4478 push bp ; 55 4409 4479 mov bp, sp ; 89 e5 4410 4480 mov dx, strict word 0000eh ; ba 0e 00 4411 4481 mov ax, strict word 00040h ; b8 40 00 4412 call 0161ch ; e8 20 e04482 call 0161ch ; e8 c3 df 4413 4483 mov dx, 00322h ; ba 22 03 4414 call 01600h ; e8 fe df 4484 call 01600h ; e8 a1 df 4485 mov sp, bp ; 89 ec 4415 4486 pop bp ; 5d 4416 4487 retn ; c3 4417 _cdemu_emulated_drive: ; 0xf36 04 LB 0x144488 _cdemu_emulated_drive: ; 0xf3663 LB 0x16 4418 4489 push bp ; 55 4419 4490 mov bp, sp ; 89 e5 4420 4491 mov dx, strict word 0000eh ; ba 0e 00 4421 4492 mov ax, strict word 00040h ; b8 40 00 4422 call 0161ch ; e8 0c e04493 call 0161ch ; e8 ad df 4423 4494 mov dx, 00324h ; ba 24 03 4424 call 01600h ; e8 ea df 4495 call 01600h ; e8 8b df 4496 mov sp, bp ; 89 ec 4425 4497 pop bp ; 5d 4426 4498 retn ; c3 4427 _int13_eltorito: ; 0xf3618 LB 0x186 4499 _int13_eltorito: ; 0xf3679 LB 0x189 4500 push bp ; 55 4501 mov bp, sp ; 89 e5 4428 4502 push si ; 56 4429 4503 push di ; 57 4430 push bp ; 554431 mov bp, sp ; 89 e54432 4504 mov dx, strict word 0000eh ; ba 0e 00 4433 4505 mov ax, strict word 00040h ; b8 40 00 4434 call 0161ch ; e8 f6df4506 call 0161ch ; e8 95 df 4435 4507 mov si, 00322h ; be 22 03 4436 4508 mov di, ax ; 89 c7 4437 mov ax, word [bp+01 ah] ; 8b 46 1a4509 mov ax, word [bp+016h] ; 8b 46 16 4438 4510 shr ax, 008h ; c1 e8 08 4439 4511 cmp ax, strict word 0004bh ; 3d 4b 00 4440 jc short 036 40h ; 72 0a4441 jbe short 036 66h ; 76 2e4512 jc short 036a1h ; 72 0a 4513 jbe short 036c7h ; 76 2e 4442 4514 cmp ax, strict word 0004dh ; 3d 4d 00 4443 jbe short 036 47h ; 76 0a4444 jmp near 037 62h ; e9 22014515 jbe short 036a8h ; 76 0a 4516 jmp near 037c6h ; e9 25 01 4445 4517 cmp ax, strict word 0004ah ; 3d 4a 00 4446 jne near 037 62h ; 0f 85 1b014447 mov bx, 00d3 2h ; bb 320d4518 jne near 037c6h ; 0f 85 1e 01 4519 mov bx, 00d38h ; bb 38 0d 4448 4520 mov cx, ds ; 8c d9 4449 4521 mov ax, strict word 00004h ; b8 04 00 4450 call 018 aeh ; e8 5ce24451 push word [bp+01 ah] ; ff 76 1a4522 call 018cch ; e8 19 e2 4523 push word [bp+016h] ; ff 76 16 4452 4524 push 0026ch ; 68 6c 02 4453 4525 push 0027bh ; 68 7b 02 4454 4526 push strict byte 00004h ; 6a 04 4455 call 01 8e9h ; e8 89e24527 call 0190dh ; e8 4c e2 4456 4528 add sp, strict byte 00008h ; 83 c4 08 4457 jmp near 037 7dh ; e9 17014458 mov dx, word [bp+00 eh] ; 8b 56 0e4459 mov ax, word [bp+00 8h] ; 8b 46 084529 jmp near 037e1h ; e9 1a 01 4530 mov dx, word [bp+00ah] ; 8b 56 0a 4531 mov ax, word [bp+004h] ; 8b 46 04 4460 4532 mov bx, strict word 00013h ; bb 13 00 4461 call 0160eh ; e8 9cdf4533 call 0160eh ; e8 3b df 4462 4534 mov es, di ; 8e c7 4463 4535 movzx bx, byte [es:si+001h] ; 26 0f b6 5c 01 4464 mov dx, word [bp+00 eh] ; 8b 56 0e4536 mov dx, word [bp+00ah] ; 8b 56 0a 4465 4537 inc dx ; 42 4466 mov ax, word [bp+00 8h] ; 8b 46 084467 call 0160eh ; e8 8bdf4538 mov ax, word [bp+004h] ; 8b 46 04 4539 call 0160eh ; e8 2a df 4468 4540 mov es, di ; 8e c7 4469 4541 movzx bx, byte [es:si+002h] ; 26 0f b6 5c 02 4470 mov dx, word [bp+00 eh] ; 8b 56 0e4542 mov dx, word [bp+00ah] ; 8b 56 0a 4471 4543 inc dx ; 42 4472 4544 inc dx ; 42 4473 mov ax, word [bp+00 8h] ; 8b 46 084474 call 0160eh ; e8 79df4545 mov ax, word [bp+004h] ; 8b 46 04 4546 call 0160eh ; e8 18 df 4475 4547 mov es, di ; 8e c7 4476 4548 movzx bx, byte [es:si+003h] ; 26 0f b6 5c 03 4477 mov dx, word [bp+00 eh] ; 8b 56 0e4549 mov dx, word [bp+00ah] ; 8b 56 0a 4478 4550 add dx, strict byte 00003h ; 83 c2 03 4479 mov ax, word [bp+00 8h] ; 8b 46 084480 call 0160eh ; e8 66df4551 mov ax, word [bp+004h] ; 8b 46 04 4552 call 0160eh ; e8 05 df 4481 4553 mov es, di ; 8e c7 4482 4554 mov bx, word [es:si+008h] ; 26 8b 5c 08 4483 4555 mov cx, word [es:si+00ah] ; 26 8b 4c 0a 4484 mov dx, word [bp+00 eh] ; 8b 56 0e4556 mov dx, word [bp+00ah] ; 8b 56 0a 4485 4557 add dx, strict byte 00004h ; 83 c2 04 4486 mov ax, word [bp+00 8h] ; 8b 46 084487 call 0164ah ; e8 8cdf4558 mov ax, word [bp+004h] ; 8b 46 04 4559 call 0164ah ; e8 2b df 4488 4560 mov es, di ; 8e c7 4489 4561 mov bx, word [es:si+004h] ; 26 8b 5c 04 4490 mov dx, word [bp+00 eh] ; 8b 56 0e4562 mov dx, word [bp+00ah] ; 8b 56 0a 4491 4563 add dx, strict byte 00008h ; 83 c2 08 4492 mov ax, word [bp+00 8h] ; 8b 46 084493 call 0162ah ; e8 5a df4564 mov ax, word [bp+004h] ; 8b 46 04 4565 call 0162ah ; e8 f9 de 4494 4566 mov es, di ; 8e c7 4495 4567 mov bx, word [es:si+006h] ; 26 8b 5c 06 4496 mov dx, word [bp+00 eh] ; 8b 56 0e4568 mov dx, word [bp+00ah] ; 8b 56 0a 4497 4569 add dx, strict byte 0000ah ; 83 c2 0a 4498 mov ax, word [bp+00 8h] ; 8b 46 084499 call 0162ah ; e8 48 df4570 mov ax, word [bp+004h] ; 8b 46 04 4571 call 0162ah ; e8 e7 de 4500 4572 mov es, di ; 8e c7 4501 4573 mov bx, word [es:si+00ch] ; 26 8b 5c 0c 4502 mov dx, word [bp+00 eh] ; 8b 56 0e4574 mov dx, word [bp+00ah] ; 8b 56 0a 4503 4575 add dx, strict byte 0000ch ; 83 c2 0c 4504 mov ax, word [bp+00 8h] ; 8b 46 084505 call 0162ah ; e8 36 df4576 mov ax, word [bp+004h] ; 8b 46 04 4577 call 0162ah ; e8 d5 de 4506 4578 mov es, di ; 8e c7 4507 4579 mov bx, word [es:si+00eh] ; 26 8b 5c 0e 4508 mov dx, word [bp+00 eh] ; 8b 56 0e4580 mov dx, word [bp+00ah] ; 8b 56 0a 4509 4581 add dx, strict byte 0000eh ; 83 c2 0e 4510 mov ax, word [bp+00 8h] ; 8b 46 084511 call 0162ah ; e8 24 df4582 mov ax, word [bp+004h] ; 8b 46 04 4583 call 0162ah ; e8 c3 de 4512 4584 mov es, di ; 8e c7 4513 4585 movzx bx, byte [es:si+012h] ; 26 0f b6 5c 12 4514 mov dx, word [bp+00 eh] ; 8b 56 0e4586 mov dx, word [bp+00ah] ; 8b 56 0a 4515 4587 add dx, strict byte 00010h ; 83 c2 10 4516 mov ax, word [bp+00 8h] ; 8b 46 084517 call 0160eh ; e8 f5de4588 mov ax, word [bp+004h] ; 8b 46 04 4589 call 0160eh ; e8 94 de 4518 4590 mov es, di ; 8e c7 4519 4591 movzx bx, byte [es:si+014h] ; 26 0f b6 5c 14 4520 mov dx, word [bp+00 eh] ; 8b 56 0e4592 mov dx, word [bp+00ah] ; 8b 56 0a 4521 4593 add dx, strict byte 00011h ; 83 c2 11 4522 mov ax, word [bp+00 8h] ; 8b 46 084523 call 0160eh ; e8 e2de4594 mov ax, word [bp+004h] ; 8b 46 04 4595 call 0160eh ; e8 81 de 4524 4596 mov es, di ; 8e c7 4525 4597 movzx bx, byte [es:si+010h] ; 26 0f b6 5c 10 4526 mov dx, word [bp+00 eh] ; 8b 56 0e4598 mov dx, word [bp+00ah] ; 8b 56 0a 4527 4599 add dx, strict byte 00012h ; 83 c2 12 4528 mov ax, word [bp+00 8h] ; 8b 46 084529 call 0160eh ; e8 cfde4530 test byte [bp+01 ah], 0ffh ; f6 46 1aff4531 jne short 037 4bh ; 75 064600 mov ax, word [bp+004h] ; 8b 46 04 4601 call 0160eh ; e8 6e de 4602 test byte [bp+016h], 0ffh ; f6 46 16 ff 4603 jne short 037ach ; 75 06 4532 4604 mov es, di ; 8e c7 4533 4605 mov byte [es:si], 000h ; 26 c6 04 00 4534 mov byte [bp+01 bh], 000h ; c6 46 1b004606 mov byte [bp+017h], 000h ; c6 46 17 00 4535 4607 xor bx, bx ; 31 db 4536 4608 mov dx, strict word 00074h ; ba 74 00 4537 4609 mov ax, strict word 00040h ; b8 40 00 4538 call 0160eh ; e8 b4de4539 and byte [bp+0 20h], 0feh ; 80 66 20fe4540 pop bp ; 5d4610 call 0160eh ; e8 53 de 4611 and byte [bp+01ch], 0feh ; 80 66 1c fe 4612 lea sp, [bp-004h] ; 8d 66 fc 4541 4613 pop di ; 5f 4542 4614 pop si ; 5e 4615 pop bp ; 5d 4543 4616 retn ; c3 4544 mov bx, 00d3 2h ; bb 320d4617 mov bx, 00d38h ; bb 38 0d 4545 4618 mov cx, ds ; 8c d9 4546 4619 mov ax, strict word 00004h ; b8 04 00 4547 call 018 aeh ; e8 41 e14548 mov ax, word [bp+01 ah] ; 8b 46 1a4620 call 018cch ; e8 fb e0 4621 mov ax, word [bp+016h] ; 8b 46 16 4549 4622 shr ax, 008h ; c1 e8 08 4550 4623 push ax ; 50 4551 4624 push 0026ch ; 68 6c 02 4552 4625 push 002a3h ; 68 a3 02 4553 jmp near 036 5bh ; e9 defe4554 mov ax, word [bp+01 ah] ; 8b 46 1a4626 jmp near 036bch ; e9 db fe 4627 mov ax, word [bp+016h] ; 8b 46 16 4555 4628 xor ah, ah ; 30 e4 4556 4629 or ah, 001h ; 80 cc 01 4557 mov word [bp+01 ah], ax ; 89 46 1a4630 mov word [bp+016h], ax ; 89 46 16 4558 4631 mov bx, ax ; 89 c3 4559 4632 shr bx, 008h ; c1 eb 08 … … 4561 4634 mov dx, strict word 00074h ; ba 74 00 4562 4635 mov ax, strict word 00040h ; b8 40 00 4563 call 0160eh ; e8 76 de 4564 or byte [bp+020h], 001h ; 80 4e 20 01 4565 jmp short 0375eh ; eb c0 4566 device_is_cdrom_: ; 0xf379e LB 0x32 4636 call 0160eh ; e8 12 de 4637 or byte [bp+01ch], 001h ; 80 4e 1c 01 4638 jmp short 037bfh ; eb bd 4639 device_is_cdrom_: ; 0xf3802 LB 0x35 4640 push bp ; 55 4641 mov bp, sp ; 89 e5 4567 4642 push bx ; 53 4568 4643 push dx ; 52 4569 push bp ; 554570 mov bp, sp ; 89 e54571 4644 mov bl, al ; 88 c3 4572 4645 mov dx, strict word 0000eh ; ba 0e 00 4573 4646 mov ax, strict word 00040h ; b8 40 00 4574 call 0161ch ; e8 6ede4647 call 0161ch ; e8 0a de 4575 4648 cmp bl, 010h ; 80 fb 10 4576 jc short 03 7b7h ; 72 044649 jc short 0381bh ; 72 04 4577 4650 xor ax, ax ; 31 c0 4578 jmp short 03 7cch ; eb 154651 jmp short 03830h ; eb 15 4579 4652 xor bh, bh ; 30 ff 4580 4653 imul bx, bx, strict byte 00018h ; 6b db 18 … … 4582 4655 add bx, 00122h ; 81 c3 22 01 4583 4656 cmp byte [es:bx+01fh], 005h ; 26 80 7f 1f 05 4584 jne short 03 7b3h ; 75 ea4657 jne short 03817h ; 75 ea 4585 4658 mov ax, strict word 00001h ; b8 01 00 4586 pop bp ; 5d4659 lea sp, [bp-004h] ; 8d 66 fc 4587 4660 pop dx ; 5a 4588 4661 pop bx ; 5b 4662 pop bp ; 5d 4589 4663 retn ; c3 4590 cdrom_boot_: ; 0xf37d0 LB 0x410 4664 cdrom_boot_: ; 0xf3837 LB 0x416 4665 push bp ; 55 4666 mov bp, sp ; 89 e5 4591 4667 push bx ; 53 4592 4668 push cx ; 51 … … 4594 4670 push si ; 56 4595 4671 push di ; 57 4596 enter 0081ch, 000h ; c8 1c 08 004672 sub sp, 0081ch ; 81 ec 1c 08 4597 4673 mov dx, strict word 0000eh ; ba 0e 00 4598 4674 mov ax, strict word 00040h ; b8 40 00 4599 call 0161ch ; e8 3a de4600 mov word [bp-0 0eh], ax ; 89 46 f24675 call 0161ch ; e8 d0 dd 4676 mov word [bp-018h], ax ; 89 46 e8 4601 4677 mov si, 00322h ; be 22 03 4602 mov word [bp-0 06h], ax ; 89 46 fa4603 mov word [bp-0 0ah], 00122h ; c7 46 f622 014604 mov word [bp-0 08h], ax ; 89 46 f84605 mov byte [bp-00 2h], 000h ; c6 46 fe004606 jmp short 038 02h ; eb 094607 inc byte [bp-00 2h] ; fe 46 fe4608 cmp byte [bp-00 2h], 010h ; 80 7e fe104609 jnc short 038 0dh ; 73 0b4610 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe4611 call 03 79eh ; e8 95ff4678 mov word [bp-010h], ax ; 89 46 f0 4679 mov word [bp-014h], 00122h ; c7 46 ec 22 01 4680 mov word [bp-012h], ax ; 89 46 ee 4681 mov byte [bp-00ch], 000h ; c6 46 f4 00 4682 jmp short 0386ch ; eb 09 4683 inc byte [bp-00ch] ; fe 46 f4 4684 cmp byte [bp-00ch], 010h ; 80 7e f4 10 4685 jnc short 03877h ; 73 0b 4686 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4687 call 03802h ; e8 8f ff 4612 4688 test ax, ax ; 85 c0 4613 je short 03 7f9h ; 74 ec4614 cmp byte [bp-00 2h], 010h ; 80 7e fe104615 jc short 038 19h ; 72 064689 je short 03863h ; 74 ec 4690 cmp byte [bp-00ch], 010h ; 80 7e f4 10 4691 jc short 03883h ; 72 06 4616 4692 mov ax, strict word 00002h ; b8 02 00 4617 jmp near 03b 80h ; e9 67 034693 jmp near 03beah ; e9 67 03 4618 4694 mov cx, strict word 0000ch ; b9 0c 00 4619 4695 xor bx, bx ; 31 db 4620 4696 mov dx, ss ; 8c d2 4621 lea ax, [bp-0 1ch] ; 8d 46 e44622 call 09 07ah ; e8 54 584623 mov word [bp-0 1ch], strict word 00028h ; c7 46 e428 004697 lea ax, [bp-026h] ; 8d 46 da 4698 call 0924ah ; e8 ba 59 4699 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 4624 4700 mov ax, strict word 00011h ; b8 11 00 4625 4701 xor dx, dx ; 31 d2 … … 4627 4703 xchg dh, dl ; 86 d6 4628 4704 xchg dx, ax ; 92 4629 mov word [bp-0 1ah], ax ; 89 46 e64630 mov word [bp-0 18h], dx ; 89 56 e84705 mov word [bp-024h], ax ; 89 46 dc 4706 mov word [bp-022h], dx ; 89 56 de 4631 4707 mov ax, strict word 00001h ; b8 01 00 4632 4708 xchg ah, al ; 86 c4 4633 mov word [bp-01 5h], ax ; 89 46 eb4634 les bx, [bp-0 0ah] ; c4 5e f64709 mov word [bp-01fh], ax ; 89 46 e1 4710 les bx, [bp-014h] ; c4 5e ec 4635 4711 db 066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 008h 4636 4712 ; mov dword [es:bx+00ah], strict dword 008000001h ; 66 26 c7 47 0a 01 00 00 08 4637 mov byte [bp-00 4h], 000h ; c6 46 fc004638 jmp short 038 5eh ; eb 094639 inc byte [bp-00 4h] ; fe 46 fc4640 cmp byte [bp-00 4h], 004h ; 80 7e fc044641 jnbe short 038 95h ; 77 374642 movzx di, byte [bp-00 2h] ; 0f b6 7e fe4713 mov byte [bp-00eh], 000h ; c6 46 f2 00 4714 jmp short 038c8h ; eb 09 4715 inc byte [bp-00eh] ; fe 46 f2 4716 cmp byte [bp-00eh], 004h ; 80 7e f2 04 4717 jnbe short 038ffh ; 77 37 4718 movzx di, byte [bp-00ch] ; 0f b6 7e f4 4643 4719 imul di, di, strict byte 00018h ; 6b ff 18 4644 mov es, [bp-0 08h] ; 8e 46 f84645 add di, word [bp-0 0ah] ; 03 7e f64720 mov es, [bp-012h] ; 8e 46 ee 4721 add di, word [bp-014h] ; 03 7e ec 4646 4722 movzx di, byte [es:di+01eh] ; 26 0f b6 7d 1e 4647 4723 add di, di ; 01 ff 4648 lea dx, [bp-008 1ch] ; 8d 96 e4f74724 lea dx, [bp-00826h] ; 8d 96 da f7 4649 4725 push SS ; 16 4650 4726 push dx ; 52 … … 4653 4729 push 00800h ; 68 00 08 4654 4730 push strict byte 00000h ; 6a 00 4655 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe4731 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4656 4732 mov cx, ss ; 8c d1 4657 lea bx, [bp-0 1ch] ; 8d 5e e44733 lea bx, [bp-026h] ; 8d 5e da 4658 4734 mov dx, strict word 0000ch ; ba 0c 00 4659 4735 call word [word di+00000h] ; ff 95 00 00 4660 4736 test ax, ax ; 85 c0 4661 jne short 038 55h ; 75 c04737 jne short 038bfh ; 75 c0 4662 4738 test ax, ax ; 85 c0 4663 je short 03 89fh ; 74 064739 je short 03909h ; 74 06 4664 4740 mov ax, strict word 00003h ; b8 03 00 4665 jmp near 03b 80h ; e9 e1 024666 cmp byte [bp-008 1ch], 000h ; 80 be e4f7 004667 je short 03 8ach ; 74 064741 jmp near 03beah ; e9 e1 02 4742 cmp byte [bp-00826h], 000h ; 80 be da f7 00 4743 je short 03916h ; 74 06 4668 4744 mov ax, strict word 00004h ; b8 04 00 4669 jmp near 03b 80h ; e9 d4 024745 jmp near 03beah ; e9 d4 02 4670 4746 xor di, di ; 31 ff 4671 jmp short 03 8b6h ; eb 064747 jmp short 03920h ; eb 06 4672 4748 inc di ; 47 4673 4749 cmp di, strict byte 00005h ; 83 ff 05 4674 jnc short 03 8c6h ; 73 104675 mov al, byte [bp+di-008 1bh] ; 8a 83 e5f74676 cmp al, byte [di+00d 3ah] ; 3a 85 3a0d4677 je short 03 8b0h ; 74 f04750 jnc short 03930h ; 73 10 4751 mov al, byte [bp+di-00825h] ; 8a 83 db f7 4752 cmp al, byte [di+00d40h] ; 3a 85 40 0d 4753 je short 0391ah ; 74 f0 4678 4754 mov ax, strict word 00005h ; b8 05 00 4679 jmp near 03b 80h ; e9 ba 024755 jmp near 03beah ; e9 ba 02 4680 4756 xor di, di ; 31 ff 4681 jmp short 03 8d0h ; eb 064757 jmp short 0393ah ; eb 06 4682 4758 inc di ; 47 4683 4759 cmp di, strict byte 00017h ; 83 ff 17 4684 jnc short 03 8e0h ; 73 104685 mov al, byte [bp+di-0081 5h] ; 8a 83 ebf74686 cmp al, byte [di+00d4 0h] ; 3a 85 400d4687 je short 03 8cah ; 74 f04760 jnc short 0394ah ; 73 10 4761 mov al, byte [bp+di-0081fh] ; 8a 83 e1 f7 4762 cmp al, byte [di+00d46h] ; 3a 85 46 0d 4763 je short 03934h ; 74 f0 4688 4764 mov ax, strict word 00006h ; b8 06 00 4689 jmp near 03b 80h ; e9 a0 024690 mov ax, word [bp-007d 5h] ; 8b 86 2bf84691 mov dx, word [bp-007d 3h] ; 8b 96 2df84692 mov word [bp-0 1ch], strict word 00028h ; c7 46 e428 004765 jmp near 03beah ; e9 a0 02 4766 mov ax, word [bp-007dfh] ; 8b 86 21 f8 4767 mov dx, word [bp-007ddh] ; 8b 96 23 f8 4768 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 4693 4769 xchg ah, al ; 86 c4 4694 4770 xchg dh, dl ; 86 d6 4695 4771 xchg dx, ax ; 92 4696 mov word [bp-0 1ah], ax ; 89 46 e64697 mov word [bp-0 18h], dx ; 89 56 e84772 mov word [bp-024h], ax ; 89 46 dc 4773 mov word [bp-022h], dx ; 89 56 de 4698 4774 mov ax, strict word 00001h ; b8 01 00 4699 4775 xchg ah, al ; 86 c4 4700 mov word [bp-01 5h], ax ; 89 46 eb4701 movzx di, byte [bp-00 2h] ; 0f b6 7e fe4776 mov word [bp-01fh], ax ; 89 46 e1 4777 movzx di, byte [bp-00ch] ; 0f b6 7e f4 4702 4778 imul di, di, strict byte 00018h ; 6b ff 18 4703 mov es, [bp-0 08h] ; 8e 46 f84704 add di, word [bp-0 0ah] ; 03 7e f64779 mov es, [bp-012h] ; 8e 46 ee 4780 add di, word [bp-014h] ; 03 7e ec 4705 4781 movzx di, byte [es:di+01eh] ; 26 0f b6 7d 1e 4706 4782 add di, di ; 01 ff 4707 lea dx, [bp-008 1ch] ; 8d 96 e4f74783 lea dx, [bp-00826h] ; 8d 96 da f7 4708 4784 push SS ; 16 4709 4785 push dx ; 52 … … 4712 4788 push 00800h ; 68 00 08 4713 4789 push strict byte 00000h ; 6a 00 4714 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe4790 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4715 4791 mov cx, ss ; 8c d1 4716 lea bx, [bp-0 1ch] ; 8d 5e e44792 lea bx, [bp-026h] ; 8d 5e da 4717 4793 mov dx, strict word 0000ch ; ba 0c 00 4718 4794 call word [word di+00000h] ; ff 95 00 00 4719 4795 test ax, ax ; 85 c0 4720 je short 039 3dh ; 74 064796 je short 039a7h ; 74 06 4721 4797 mov ax, strict word 00007h ; b8 07 00 4722 jmp near 03b 80h ; e9 43 024723 cmp byte [bp-008 1ch], 001h ; 80 be e4f7 014724 je short 039 4ah ; 74 064798 jmp near 03beah ; e9 43 02 4799 cmp byte [bp-00826h], 001h ; 80 be da f7 01 4800 je short 039b4h ; 74 06 4725 4801 mov ax, strict word 00008h ; b8 08 00 4726 jmp near 03b 80h ; e9 36 024727 cmp byte [bp-008 1bh], 000h ; 80 be e5f7 004728 je short 039 57h ; 74 064802 jmp near 03beah ; e9 36 02 4803 cmp byte [bp-00825h], 000h ; 80 be db f7 00 4804 je short 039c1h ; 74 06 4729 4805 mov ax, strict word 00009h ; b8 09 00 4730 jmp near 03b 80h ; e9 29 024731 cmp byte [bp-00 7feh], 055h ; 80 be 02 f8554732 je short 039 64h ; 74 064806 jmp near 03beah ; e9 29 02 4807 cmp byte [bp-00808h], 055h ; 80 be f8 f7 55 4808 je short 039ceh ; 74 06 4733 4809 mov ax, strict word 0000ah ; b8 0a 00 4734 jmp near 03b 80h ; e9 1c 024735 cmp byte [bp-00 7fdh], 0aah ; 80 be 03 f8aa4736 jne short 039 5eh ; 75 f34737 cmp byte [bp-00 7fch], 088h ; 80 be 04 f8884738 je short 039 78h ; 74 064810 jmp near 03beah ; e9 1c 02 4811 cmp byte [bp-00807h], 0aah ; 80 be f9 f7 aa 4812 jne short 039c8h ; 75 f3 4813 cmp byte [bp-00806h], 088h ; 80 be fa f7 88 4814 je short 039e2h ; 74 06 4739 4815 mov ax, strict word 0000bh ; b8 0b 00 4740 jmp near 03b 80h ; e9 08 024741 mov al, byte [bp-00 7fbh] ; 8a 86 05 f84742 mov es, [bp-0 06h] ; 8e 46 fa4816 jmp near 03beah ; e9 08 02 4817 mov al, byte [bp-00805h] ; 8a 86 fb f7 4818 mov es, [bp-010h] ; 8e 46 f0 4743 4819 mov byte [es:si+001h], al ; 26 88 44 01 4744 cmp byte [bp-00 7fbh], 000h ; 80 be 05 f8004745 jne short 039 91h ; 75 074820 cmp byte [bp-00805h], 000h ; 80 be fb f7 00 4821 jne short 039fbh ; 75 07 4746 4822 mov byte [es:si+002h], 0e0h ; 26 c6 44 02 e0 4747 jmp short 03 9a4h ; eb 134748 cmp byte [bp-00 7fbh], 004h ; 80 be 05 f8044749 jnc short 03 99fh ; 73 074823 jmp short 03a0eh ; eb 13 4824 cmp byte [bp-00805h], 004h ; 80 be fb f7 04 4825 jnc short 03a09h ; 73 07 4750 4826 mov byte [es:si+002h], 000h ; 26 c6 44 02 00 4751 jmp short 03 9a4h ; eb 054827 jmp short 03a0eh ; eb 05 4752 4828 mov byte [es:si+002h], 080h ; 26 c6 44 02 80 4753 movzx di, byte [bp-00 2h] ; 0f b6 7e fe4829 movzx di, byte [bp-00ch] ; 0f b6 7e f4 4754 4830 mov ax, di ; 89 f8 4755 4831 cwd ; 99 … … 4757 4833 ; sub ax, dx ; 2b c2 4758 4834 sar ax, 1 ; d1 f8 4759 mov es, [bp-0 06h] ; 8e 46 fa4835 mov es, [bp-010h] ; 8e 46 f0 4760 4836 mov byte [es:si+003h], al ; 26 88 44 03 4761 4837 mov ax, di ; 89 f8 … … 4764 4840 idiv bx ; f7 fb 4765 4841 mov word [es:si+004h], dx ; 26 89 54 04 4766 mov ax, word [bp-00 7fah] ; 8b 86 06 f84767 mov word [bp-0 0ch], ax ; 89 46 f44842 mov ax, word [bp-00804h] ; 8b 86 fc f7 4843 mov word [bp-016h], ax ; 89 46 ea 4768 4844 test ax, ax ; 85 c0 4769 jne short 03 9d2h ; 75 054770 mov word [bp-0 0ch], 007c0h ; c7 46 f4c0 074771 mov ax, word [bp-0 0ch] ; 8b 46 f44772 mov es, [bp-0 06h] ; 8e 46 fa4845 jne short 03a3ch ; 75 05 4846 mov word [bp-016h], 007c0h ; c7 46 ea c0 07 4847 mov ax, word [bp-016h] ; 8b 46 ea 4848 mov es, [bp-010h] ; 8e 46 f0 4773 4849 mov word [es:si+00ch], ax ; 26 89 44 0c 4774 4850 mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00 4775 mov di, word [bp-00 7f6h] ; 8b be 0af84851 mov di, word [bp-00800h] ; 8b be 00 f8 4776 4852 mov word [es:si+00eh], di ; 26 89 7c 0e 4777 4853 test di, di ; 85 ff 4778 je short 03 9f4h ; 74 064854 je short 03a5eh ; 74 06 4779 4855 cmp di, 00400h ; 81 ff 00 04 4780 jbe short 03 9fah ; 76 064856 jbe short 03a64h ; 76 06 4781 4857 mov ax, strict word 0000ch ; b8 0c 00 4782 jmp near 03b 80h ; e9 86 014783 mov ax, word [bp-007f 4h] ; 8b 86 0cf84784 mov dx, word [bp-007f 2h] ; 8b 96 0ef84858 jmp near 03beah ; e9 86 01 4859 mov ax, word [bp-007feh] ; 8b 86 02 f8 4860 mov dx, word [bp-007fch] ; 8b 96 04 f8 4785 4861 mov word [es:si+008h], ax ; 26 89 44 08 4786 4862 mov word [es:si+00ah], dx ; 26 89 54 0a 4787 mov word [bp-0 1ch], strict word 00028h ; c7 46 e428 004863 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 4788 4864 xchg ah, al ; 86 c4 4789 4865 xchg dh, dl ; 86 d6 4790 4866 xchg dx, ax ; 92 4791 mov word [bp-0 1ah], ax ; 89 46 e64792 mov word [bp-0 18h], dx ; 89 56 e84867 mov word [bp-024h], ax ; 89 46 dc 4868 mov word [bp-022h], dx ; 89 56 de 4793 4869 lea dx, [di-001h] ; 8d 55 ff 4794 4870 shr dx, 002h ; c1 ea 02 … … 4796 4872 mov ax, dx ; 89 d0 4797 4873 xchg ah, al ; 86 c4 4798 mov word [bp-01 5h], ax ; 89 46 eb4799 les bx, [bp-0 0ah] ; c4 5e f64874 mov word [bp-01fh], ax ; 89 46 e1 4875 les bx, [bp-014h] ; c4 5e ec 4800 4876 mov word [es:bx+00ah], dx ; 26 89 57 0a 4801 4877 mov word [es:bx+00ch], 00200h ; 26 c7 47 0c 00 02 … … 4807 4883 and ah, 007h ; 80 e4 07 4808 4884 mov word [es:bx+01ch], ax ; 26 89 47 1c 4809 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe4885 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4810 4886 imul ax, ax, strict byte 00018h ; 6b c0 18 4811 4887 add bx, ax ; 01 c3 4812 4888 movzx ax, byte [es:bx+01eh] ; 26 0f b6 47 1e 4813 4889 add ax, ax ; 01 c0 4814 mov word [bp-01 0h], ax ; 89 46 f04815 push word [bp-0 0ch] ; ff 76 f44890 mov word [bp-01ah], ax ; 89 46 e6 4891 push word [bp-016h] ; ff 76 ea 4816 4892 push dword 000000001h ; 66 6a 01 4817 4893 mov ax, di ; 89 f8 … … 4820 4896 sal ax, 1 ; d1 e0 4821 4897 rcl di, 1 ; d1 d7 4822 loop 03a 68h ; e2 fa4898 loop 03ad2h ; e2 fa 4823 4899 push di ; 57 4824 4900 push ax ; 50 4825 4901 push strict byte 00000h ; 6a 00 4826 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe4902 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4827 4903 mov cx, ss ; 8c d1 4828 lea bx, [bp-0 1ch] ; 8d 5e e44904 lea bx, [bp-026h] ; 8d 5e da 4829 4905 mov dx, strict word 0000ch ; ba 0c 00 4830 mov di, word [bp-01 0h] ; 8b 7e f04906 mov di, word [bp-01ah] ; 8b 7e e6 4831 4907 call word [word di+00000h] ; ff 95 00 00 4832 les bx, [bp-0 0ah] ; c4 5e f64908 les bx, [bp-014h] ; c4 5e ec 4833 4909 mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00 4834 4910 test ax, ax ; 85 c0 4835 je short 03 a98h ; 74 064911 je short 03b02h ; 74 06 4836 4912 mov ax, strict word 0000dh ; b8 0d 00 4837 jmp near 03b 80h ; e9 e8 004838 mov es, [bp-0 06h] ; 8e 46 fa4913 jmp near 03beah ; e9 e8 00 4914 mov es, [bp-010h] ; 8e 46 f0 4839 4915 mov al, byte [es:si+001h] ; 26 8a 44 01 4840 4916 cmp AL, strict byte 002h ; 3c 02 4841 jc short 03 ab0h ; 72 0d4842 jbe short 03 ac8h ; 76 234917 jc short 03b1ah ; 72 0d 4918 jbe short 03b32h ; 76 23 4843 4919 cmp AL, strict byte 004h ; 3c 04 4844 je short 03 adeh ; 74 354920 je short 03b48h ; 74 35 4845 4921 cmp AL, strict byte 003h ; 3c 03 4846 je short 03 ad3h ; 74 264847 jmp near 03b 29h ; e9 79 004922 je short 03b3dh ; 74 26 4923 jmp near 03b93h ; e9 79 00 4848 4924 cmp AL, strict byte 001h ; 3c 01 4849 jne short 03b 29h ; 75 754850 mov es, [bp-0 06h] ; 8e 46 fa4925 jne short 03b93h ; 75 75 4926 mov es, [bp-010h] ; 8e 46 f0 4851 4927 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h 4852 4928 ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00 4853 4929 mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00 4854 jmp short 03b 29h ; eb 614930 jmp short 03b93h ; eb 61 4855 4931 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h 4856 4932 ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00 4857 jmp short 03 ac0h ; eb ed4933 jmp short 03b2ah ; eb ed 4858 4934 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h 4859 4935 ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00 4860 jmp short 03 ac0h ; eb e24936 jmp short 03b2ah ; eb e2 4861 4937 mov dx, 001c4h ; ba c4 01 4862 mov ax, word [bp-0 0ch] ; 8b 46 f44863 call 01600h ; e8 19 db4938 mov ax, word [bp-016h] ; 8b 46 ea 4939 call 01600h ; e8 af da 4864 4940 and AL, strict byte 03fh ; 24 3f 4865 4941 xor ah, ah ; 30 e4 4866 mov es, [bp-0 06h] ; 8e 46 fa4942 mov es, [bp-010h] ; 8e 46 f0 4867 4943 mov word [es:si+014h], ax ; 26 89 44 14 4868 4944 mov dx, 001c4h ; ba c4 01 4869 mov ax, word [bp-0 0ch] ; 8b 46 f44870 call 01600h ; e8 05 db4945 mov ax, word [bp-016h] ; 8b 46 ea 4946 call 01600h ; e8 9b da 4871 4947 movzx bx, al ; 0f b6 d8 4872 4948 sal bx, 002h ; c1 e3 02 4873 4949 mov dx, 001c5h ; ba c5 01 4874 mov ax, word [bp-0 0ch] ; 8b 46 f44875 call 01600h ; e8 f6da4950 mov ax, word [bp-016h] ; 8b 46 ea 4951 call 01600h ; e8 8c da 4876 4952 xor ah, ah ; 30 e4 4877 4953 add ax, bx ; 01 d8 4878 4954 inc ax ; 40 4879 mov es, [bp-0 06h] ; 8e 46 fa4955 mov es, [bp-010h] ; 8e 46 f0 4880 4956 mov word [es:si+012h], ax ; 26 89 44 12 4881 4957 mov dx, 001c3h ; ba c3 01 4882 mov ax, word [bp-0 0ch] ; 8b 46 f44883 call 01600h ; e8 e1da4958 mov ax, word [bp-016h] ; 8b 46 ea 4959 call 01600h ; e8 77 da 4884 4960 xor ah, ah ; 30 e4 4885 4961 inc ax ; 40 4886 mov es, [bp-0 06h] ; 8e 46 fa4962 mov es, [bp-010h] ; 8e 46 f0 4887 4963 mov word [es:si+010h], ax ; 26 89 44 10 4888 mov es, [bp-0 06h] ; 8e 46 fa4964 mov es, [bp-010h] ; 8e 46 f0 4889 4965 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 4890 je short 03b 67h ; 74 344966 je short 03bd1h ; 74 34 4891 4967 cmp byte [es:si+002h], 000h ; 26 80 7c 02 00 4892 jne short 03b 50h ; 75 164968 jne short 03bbah ; 75 16 4893 4969 mov dx, strict word 00010h ; ba 10 00 4894 4970 mov ax, strict word 00040h ; b8 40 00 4895 call 01600h ; e8 bdda4971 call 01600h ; e8 53 da 4896 4972 or AL, strict byte 041h ; 0c 41 4897 4973 movzx bx, al ; 0f b6 d8 4898 4974 mov dx, strict word 00010h ; ba 10 00 4899 4975 mov ax, strict word 00040h ; b8 40 00 4900 jmp short 03b 64h ; eb 144976 jmp short 03bceh ; eb 14 4901 4977 mov dx, 002c0h ; ba c0 02 4902 mov ax, word [bp-0 0eh] ; 8b 46 f24903 call 01600h ; e8 a7da4978 mov ax, word [bp-018h] ; 8b 46 e8 4979 call 01600h ; e8 3d da 4904 4980 db 0feh, 0c0h 4905 4981 ; inc al ; fe c0 4906 4982 movzx bx, al ; 0f b6 d8 4907 4983 mov dx, 002c0h ; ba c0 02 4908 mov ax, word [bp-0 0eh] ; 8b 46 f24909 call 0160eh ; e8 a7da4910 mov es, [bp-0 06h] ; 8e 46 fa4984 mov ax, word [bp-018h] ; 8b 46 e8 4985 call 0160eh ; e8 3d da 4986 mov es, [bp-010h] ; 8e 46 f0 4911 4987 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 4912 je short 03b 75h ; 74 044988 je short 03bdfh ; 74 04 4913 4989 mov byte [es:si], 001h ; 26 c6 04 01 4914 mov es, [bp-0 06h] ; 8e 46 fa4990 mov es, [bp-010h] ; 8e 46 f0 4915 4991 movzx ax, byte [es:si+002h] ; 26 0f b6 44 02 4916 4992 sal ax, 008h ; c1 e0 08 4917 lea ve ; c94993 lea sp, [bp-00ah] ; 8d 66 f6 4918 4994 pop di ; 5f 4919 4995 pop si ; 5e … … 4921 4997 pop cx ; 59 4922 4998 pop bx ; 5b 4999 pop bp ; 5d 4923 5000 retn ; c3 4924 push ax ; 50 4925 dec si ; 4e 4926 dec cx ; 49 4927 dec ax ; 48 4928 inc di ; 47 4929 inc si ; 46 4930 inc bp ; 45 4931 inc sp ; 44 4932 inc bx ; 43 4933 inc dx ; 42 4934 inc cx ; 41 4935 sbb byte [01415h], dl ; 18 16 15 14 4936 adc word [bx+si], dx ; 11 10 4937 or ax, 00b0ch ; 0d 0c 0b 4938 or cl, byte [bx+di] ; 0a 09 4939 or byte [di], al ; 08 05 4940 add AL, strict byte 003h ; 04 03 4941 add al, byte [bx+di] ; 02 01 4942 add byte [bp+di+03fh], dh ; 00 73 3f 4943 test byte [si], bh ; 84 3c 4944 retf ; cb 4945 cmp AL, strict byte 0f3h ; 3c f3 4946 cmp AL, strict byte 0c0h ; 3c c0 4947 cmp AL, strict byte 0f3h ; 3c f3 4948 cmp AL, strict byte 0c0h ; 3c c0 4949 cmp AL, strict byte 0c9h ; 3c c9 4950 db 03eh, 0a9h, 03ch, 073h 4951 ; ds test ax, 0733ch ; 3e a9 3c 73 4952 aas ; 3f 4953 jnc short 03bf9h ; 73 3f 4954 test ax, 0a93ch ; a9 3c a9 4955 cmp AL, strict byte 0a9h ; 3c a9 4956 cmp AL, strict byte 0a9h ; 3c a9 4957 cmp AL, strict byte 0a9h ; 3c a9 4958 cmp AL, strict byte 06ah ; 3c 6a 4959 aas ; 3f 4960 test ax, 0733ch ; a9 3c 73 4961 aas ; 3f 4962 jnc short 03c0bh ; 73 3f 4963 jnc short 03c0dh ; 73 3f 4964 jnc short 03c0fh ; 73 3f 4965 jnc short 03c11h ; 73 3f 4966 jnc short 03c13h ; 73 3f 4967 jnc short 03c15h ; 73 3f 4968 jnc short 03c17h ; 73 3f 4969 jnc short 03c19h ; 73 3f 4970 jnc short 03c1bh ; 73 3f 4971 jnc short 03c1dh ; 73 3f 4972 jnc short 03c1fh ; 73 3f 4973 _int13_cdemu: ; 0xf3be0 LB 0x42f 5001 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 5002 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0e5h, 03fh, 0f3h 5003 db 03ch, 03dh, 03dh, 065h, 03dh, 032h, 03dh, 065h, 03dh, 032h, 03dh, 03bh, 03fh, 018h, 03dh, 0e5h 5004 db 03fh, 0e5h, 03fh, 018h, 03dh, 018h, 03dh, 018h, 03dh, 018h, 03dh, 018h, 03dh, 0dch, 03fh, 018h 5005 db 03dh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h 5006 db 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh 5007 _int13_cdemu: ; 0xf3c4d LB 0x434 5008 push bp ; 55 5009 mov bp, sp ; 89 e5 4974 5010 push si ; 56 4975 5011 push di ; 57 4976 enter 0002ah, 000h ; c8 2a 00 005012 sub sp, strict byte 0002ah ; 83 ec 2a 4977 5013 mov dx, strict word 0000eh ; ba 0e 00 4978 5014 mov ax, strict word 00040h ; b8 40 00 4979 call 0161ch ; e8 2d da5015 call 0161ch ; e8 be d9 4980 5016 mov di, 00322h ; bf 22 03 4981 5017 mov cx, ax ; 89 c1 4982 5018 mov si, di ; 89 fe 4983 mov word [bp-004h], ax ; 89 46 fc4984 mov word [bp-00ah], 00122h ; c7 46 f6 22 014985 5019 mov word [bp-008h], ax ; 89 46 f8 5020 mov word [bp-00eh], 00122h ; c7 46 f2 22 01 5021 mov word [bp-00ch], ax ; 89 46 f4 4986 5022 mov es, ax ; 8e c0 4987 5023 mov al, byte [es:di+003h] ; 26 8a 45 03 4988 5024 add al, al ; 00 c0 4989 mov byte [bp-00 2h], al ; 88 46 fe5025 mov byte [bp-006h], al ; 88 46 fa 4990 5026 mov al, byte [es:di+004h] ; 26 8a 45 04 4991 add byte [bp-00 2h], al ; 00 46 fe5027 add byte [bp-006h], al ; 00 46 fa 4992 5028 xor bx, bx ; 31 db 4993 5029 mov dx, strict word 00074h ; ba 74 00 4994 5030 mov ax, strict word 00040h ; b8 40 00 4995 call 0160eh ; e8 f0d95031 call 0160eh ; e8 81 d9 4996 5032 mov es, cx ; 8e c1 4997 5033 cmp byte [es:di], 000h ; 26 80 3d 00 4998 je short 03c 34h ; 74 0e5034 je short 03ca3h ; 74 0e 4999 5035 movzx dx, byte [es:di+002h] ; 26 0f b6 55 02 5000 mov ax, word [bp+01 6h] ; 8b 46 165036 mov ax, word [bp+012h] ; 8b 46 12 5001 5037 xor ah, ah ; 30 e4 5002 5038 cmp dx, ax ; 39 c2 5003 je short 03c 5dh ; 74 295004 mov bx, 00d3 2h ; bb 320d5039 je short 03ccch ; 74 29 5040 mov bx, 00d38h ; bb 38 0d 5005 5041 mov cx, ds ; 8c d9 5006 5042 mov ax, strict word 00004h ; b8 04 00 5007 call 018 aeh ; e8 6fdc5008 mov ax, word [bp+01 6h] ; 8b 46 165043 call 018cch ; e8 1e dc 5044 mov ax, word [bp+012h] ; 8b 46 12 5009 5045 xor ah, ah ; 30 e4 5010 5046 push ax ; 50 5011 mov ax, word [bp+01 ah] ; 8b 46 1a5047 mov ax, word [bp+016h] ; 8b 46 16 5012 5048 shr ax, 008h ; c1 e8 08 5013 5049 push ax ; 50 … … 5015 5051 push 002c8h ; 68 c8 02 5016 5052 push strict byte 00004h ; 6a 04 5017 call 01 8e9h ; e8 92dc5053 call 0190dh ; e8 47 dc 5018 5054 add sp, strict byte 0000ah ; 83 c4 0a 5019 jmp near 0 3f93h ; e9 36035020 mov ax, word [bp+01 ah] ; 8b 46 1a5055 jmp near 04005h ; e9 39 03 5056 mov ax, word [bp+016h] ; 8b 46 16 5021 5057 shr ax, 008h ; c1 e8 08 5022 5058 cmp ax, strict word 00050h ; 3d 50 00 5023 jnbe near 03f 73h ; 0f 87 09035059 jnbe near 03fe5h ; 0f 87 0c 03 5024 5060 push CS ; 0e 5025 5061 pop ES ; 07 5026 5062 mov cx, strict word 0001eh ; b9 1e 00 5027 mov di, 03b 87h ; bf 873b5063 mov di, 03bf4h ; bf f4 3b 5028 5064 repne scasb ; f2 ae 5029 5065 sal cx, 1 ; d1 e1 5030 5066 mov di, cx ; 89 cf 5031 mov ax, word [cs:di+03 ba4h] ; 2e 8b 85 a4 3b5032 mov bx, word [bp+01 ah] ; 8b 5e 1a5067 mov ax, word [cs:di+03c11h] ; 2e 8b 85 11 3c 5068 mov bx, word [bp+016h] ; 8b 5e 16 5033 5069 xor bh, bh ; 30 ff 5034 5070 jmp ax ; ff e0 5035 movzx bx, byte [bp-00 2h] ; 0f b6 5e fe5071 movzx bx, byte [bp-006h] ; 0f b6 5e fa 5036 5072 imul bx, bx, strict byte 00018h ; 6b db 18 5037 mov es, [bp-00 8h] ; 8e 46 f85038 add bx, word [bp-00 ah] ; 03 5e f65073 mov es, [bp-00ch] ; 8e 46 f4 5074 add bx, word [bp-00eh] ; 03 5e f2 5039 5075 movzx bx, byte [es:bx+01eh] ; 26 0f b6 5f 1e 5040 5076 add bx, bx ; 01 db 5041 5077 cmp word [word bx+00000h], strict byte 00000h ; 83 bf 00 00 00 5042 je near 03 ca9h ; 0f 84 08 005043 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe5078 je near 03d18h ; 0f 84 08 00 5079 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5044 5080 call word [word bx+0000ch] ; ff 97 0c 00 5045 mov byte [bp+01 bh], 000h ; c6 46 1b005081 mov byte [bp+017h], 000h ; c6 46 17 00 5046 5082 xor bx, bx ; 31 db 5047 5083 mov dx, strict word 00074h ; ba 74 00 5048 5084 mov ax, strict word 00040h ; b8 40 00 5049 call 0160eh ; e8 56 d95050 and byte [bp+0 20h], 0feh ; 80 66 20fe5051 lea ve ; c95085 call 0160eh ; e8 e7 d8 5086 and byte [bp+01ch], 0feh ; 80 66 1c fe 5087 lea sp, [bp-004h] ; 8d 66 fc 5052 5088 pop di ; 5f 5053 5089 pop si ; 5e 5090 pop bp ; 5d 5054 5091 retn ; c3 5055 mov ax, word [bp+01 ah] ; 8b 46 1a5092 mov ax, word [bp+016h] ; 8b 46 16 5056 5093 xor ah, ah ; 30 e4 5057 5094 or ah, 003h ; 80 cc 03 5058 jmp near 0 3f9bh ; e9 d0 025095 jmp near 0400dh ; e9 d0 02 5059 5096 mov dx, strict word 00074h ; ba 74 00 5060 5097 mov ax, strict word 00040h ; b8 40 00 5061 call 01600h ; e8 2c d95098 call 01600h ; e8 ba d8 5062 5099 mov cl, al ; 88 c1 5063 5100 movzx ax, cl ; 0f b6 c1 5064 5101 sal ax, 008h ; c1 e0 08 5065 5102 or bx, ax ; 09 c3 5066 mov word [bp+01 ah], bx ; 89 5e 1a5103 mov word [bp+016h], bx ; 89 5e 16 5067 5104 xor bx, bx ; 31 db 5068 5105 mov dx, strict word 00074h ; ba 74 00 5069 5106 mov ax, strict word 00040h ; b8 40 00 5070 call 0160eh ; e8 22 d95107 call 0160eh ; e8 b0 d8 5071 5108 test cl, cl ; 84 c9 5072 je short 03 cadh ; 74 bd5073 jmp near 0 3fafh ; e9 bc 025074 mov es, [bp-00 4h] ; 8e 46 fc5109 je short 03d1ch ; 74 ba 5110 jmp near 04021h ; e9 bc 02 5111 mov es, [bp-008h] ; 8e 46 f8 5075 5112 mov di, word [es:si+014h] ; 26 8b 7c 14 5076 5113 mov dx, word [es:si+012h] ; 26 8b 54 12 5077 5114 mov bx, word [es:si+010h] ; 26 8b 5c 10 5078 5115 mov ax, word [es:si+008h] ; 26 8b 44 08 5116 mov word [bp-014h], ax ; 89 46 ec 5117 mov ax, word [es:si+00ah] ; 26 8b 44 0a 5118 mov word [bp-012h], ax ; 89 46 ee 5119 mov ax, word [bp+014h] ; 8b 46 14 5120 and ax, strict word 0003fh ; 25 3f 00 5079 5121 mov word [bp-010h], ax ; 89 46 f0 5080 mov ax, word [es:si+00ah] ; 26 8b 44 0a 5081 mov word [bp-00eh], ax ; 89 46 f2 5082 mov ax, word [bp+018h] ; 8b 46 18 5083 and ax, strict word 0003fh ; 25 3f 00 5084 mov word [bp-00ch], ax ; 89 46 f4 5085 mov cx, word [bp+018h] ; 8b 4e 18 5122 mov cx, word [bp+014h] ; 8b 4e 14 5086 5123 and cx, 000c0h ; 81 e1 c0 00 5087 5124 sal cx, 002h ; c1 e1 02 5088 mov ax, word [bp+01 8h] ; 8b 46 185125 mov ax, word [bp+014h] ; 8b 46 14 5089 5126 shr ax, 008h ; c1 e8 08 5090 5127 or ax, cx ; 09 c8 5091 mov si, word [bp+01 6h] ; 8b 76 165128 mov si, word [bp+012h] ; 8b 76 12 5092 5129 shr si, 008h ; c1 ee 08 5093 mov cx, word [bp+01 ah] ; 8b 4e 1a5130 mov cx, word [bp+016h] ; 8b 4e 16 5094 5131 xor ch, ch ; 30 ed 5095 mov word [bp-00 6h], cx ; 89 4e fa5132 mov word [bp-00ah], cx ; 89 4e f6 5096 5133 test cx, cx ; 85 c9 5097 jne short 03d 40h ; 75 035098 jmp near 03 ca9h ; e9 69ff5099 cmp di, word [bp-0 0ch] ; 3b 7e f45100 jc near 0 3f93h ; 0f 82 4c 025134 jne short 03db2h ; 75 03 5135 jmp near 03d18h ; e9 66 ff 5136 cmp di, word [bp-010h] ; 3b 7e f0 5137 jc near 04005h ; 0f 82 4c 02 5101 5138 cmp ax, dx ; 39 d0 5102 jnc near 0 3f93h ; 0f 83 46 025139 jnc near 04005h ; 0f 83 46 02 5103 5140 cmp si, bx ; 39 de 5104 jnc near 0 3f93h ; 0f 83 40 025105 mov dx, word [bp+01 ah] ; 8b 56 1a5141 jnc near 04005h ; 0f 83 40 02 5142 mov dx, word [bp+016h] ; 8b 56 16 5106 5143 shr dx, 008h ; c1 ea 08 5107 5144 cmp dx, strict byte 00004h ; 83 fa 04 5108 jne short 03d 61h ; 75 035109 jmp near 03 ca9h ; e9 48ff5110 mov dx, word [bp+01 4h] ; 8b 56 145145 jne short 03dd3h ; 75 03 5146 jmp near 03d18h ; e9 45 ff 5147 mov dx, word [bp+010h] ; 8b 56 10 5111 5148 shr dx, 004h ; c1 ea 04 5112 mov cx, word [bp+00 ah] ; 8b 4e 0a5149 mov cx, word [bp+006h] ; 8b 4e 06 5113 5150 add cx, dx ; 01 d1 5114 mov word [bp-01 2h], cx ; 89 4e ee5115 mov dx, word [bp+01 4h] ; 8b 56 145151 mov word [bp-016h], cx ; 89 4e ea 5152 mov dx, word [bp+010h] ; 8b 56 10 5116 5153 and dx, strict byte 0000fh ; 83 e2 0f 5117 mov word [bp-01 8h], dx ; 89 56 e85154 mov word [bp-01ch], dx ; 89 56 e4 5118 5155 xor dl, dl ; 30 d2 5119 5156 xor cx, cx ; 31 c9 5120 call 09 049h ; e8 ca 525157 call 09219h ; e8 28 54 5121 5158 xor bx, bx ; 31 db 5122 5159 add ax, si ; 01 f0 … … 5124 5161 mov bx, di ; 89 fb 5125 5162 xor cx, cx ; 31 c9 5126 call 09 049h ; e8 bd 525163 call 09219h ; e8 1b 54 5127 5164 mov bx, ax ; 89 c3 5128 mov ax, word [bp-0 0ch] ; 8b 46 f45165 mov ax, word [bp-010h] ; 8b 46 f0 5129 5166 dec ax ; 48 5130 5167 xor cx, cx ; 31 c9 5131 5168 add ax, bx ; 01 d8 5132 5169 adc dx, cx ; 11 ca 5133 mov bx, word [bp+01 ah] ; 8b 5e 1a5170 mov bx, word [bp+016h] ; 8b 5e 16 5134 5171 xor bl, bl ; 30 db 5135 mov cx, word [bp-00 6h] ; 8b 4e fa5172 mov cx, word [bp-00ah] ; 8b 4e f6 5136 5173 or cx, bx ; 09 d9 5137 mov word [bp+01 ah], cx ; 89 4e 1a5174 mov word [bp+016h], cx ; 89 4e 16 5138 5175 mov si, ax ; 89 c6 5139 5176 mov di, dx ; 89 d7 … … 5142 5179 shr di, 1 ; d1 ef 5143 5180 rcr si, 1 ; d1 de 5144 mov word [bp-01 ah], di ; 89 7e e65181 mov word [bp-01eh], di ; 89 7e e2 5145 5182 mov di, ax ; 89 c7 5146 5183 and di, strict byte 00003h ; 83 e7 03 5147 5184 xor bh, bh ; 30 ff 5148 add ax, word [bp-00 6h] ; 03 46 fa5185 add ax, word [bp-00ah] ; 03 46 f6 5149 5186 adc dx, bx ; 11 da 5150 5187 add ax, strict word 0ffffh ; 05 ff ff 5151 5188 adc dx, strict byte 0ffffh ; 83 d2 ff 5152 mov word [bp-0 1eh], ax ; 89 46 e25153 mov word [bp-0 1ch], dx ; 89 56 e45154 shr word [bp-0 1ch], 1 ; d1 6e e45155 rcr word [bp-0 1eh], 1 ; d1 5e e25156 shr word [bp-0 1ch], 1 ; d1 6e e45157 rcr word [bp-0 1eh], 1 ; d1 5e e25189 mov word [bp-022h], ax ; 89 46 de 5190 mov word [bp-020h], dx ; 89 56 e0 5191 shr word [bp-020h], 1 ; d1 6e e0 5192 rcr word [bp-022h], 1 ; d1 5e de 5193 shr word [bp-020h], 1 ; d1 6e e0 5194 rcr word [bp-022h], 1 ; d1 5e de 5158 5195 mov cx, strict word 0000ch ; b9 0c 00 5159 5196 mov dx, ss ; 8c d2 5160 lea ax, [bp-02 ah] ; 8d 46 d65161 call 09 07ah ; e8 97 525162 mov word [bp-02 ah], strict word 00028h ; c7 46 d628 005163 mov ax, word [bp-01 0h] ; 8b 46 f05197 lea ax, [bp-02eh] ; 8d 46 d2 5198 call 0924ah ; e8 f5 53 5199 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 5200 mov ax, word [bp-014h] ; 8b 46 ec 5164 5201 add ax, si ; 01 f0 5165 mov dx, word [bp-0 0eh] ; 8b 56 f25166 adc dx, word [bp-01 ah] ; 13 56 e65202 mov dx, word [bp-012h] ; 8b 56 ee 5203 adc dx, word [bp-01eh] ; 13 56 e2 5167 5204 xchg ah, al ; 86 c4 5168 5205 xchg dh, dl ; 86 d6 5169 5206 xchg dx, ax ; 92 5170 mov word [bp-02 8h], ax ; 89 46 d85171 mov word [bp-02 6h], dx ; 89 56 da5172 mov ax, word [bp-0 1eh] ; 8b 46 e25207 mov word [bp-02ch], ax ; 89 46 d4 5208 mov word [bp-02ah], dx ; 89 56 d6 5209 mov ax, word [bp-022h] ; 8b 46 de 5173 5210 sub ax, si ; 29 f0 5174 5211 inc ax ; 40 5175 5212 xchg ah, al ; 86 c4 5176 mov word [bp-02 3h], ax ; 89 46 dd5177 mov ax, word [bp-00 6h] ; 8b 46 fa5178 les bx, [bp-00 ah] ; c4 5e f65213 mov word [bp-027h], ax ; 89 46 d9 5214 mov ax, word [bp-00ah] ; 8b 46 f6 5215 les bx, [bp-00eh] ; c4 5e f2 5179 5216 mov word [es:bx+00ah], ax ; 26 89 47 0a 5180 5217 mov word [es:bx+00ch], 00200h ; 26 c7 47 0c 00 02 … … 5182 5219 sal ax, 009h ; c1 e0 09 5183 5220 mov word [es:bx+01ah], ax ; 26 89 47 1a 5184 mov dx, word [bp-00 6h] ; 8b 56 fa5221 mov dx, word [bp-00ah] ; 8b 56 f6 5185 5222 xor dh, dh ; 30 f6 5186 5223 and dl, 003h ; 80 e2 03 … … 5191 5228 sal dx, 009h ; c1 e2 09 5192 5229 and dh, 007h ; 80 e6 07 5193 mov bx, word [bp-00 ah] ; 8b 5e f65230 mov bx, word [bp-00eh] ; 8b 5e f2 5194 5231 mov word [es:bx+01ch], dx ; 26 89 57 1c 5195 movzx dx, byte [bp-00 2h] ; 0f b6 56 fe5232 movzx dx, byte [bp-006h] ; 0f b6 56 fa 5196 5233 imul dx, dx, strict byte 00018h ; 6b d2 18 5197 5234 add bx, dx ; 01 d3 5198 5235 movzx dx, byte [es:bx+01eh] ; 26 0f b6 57 1e 5199 5236 add dx, dx ; 01 d2 5200 mov word [bp-01 6h], dx ; 89 56 ea5201 push word [bp-01 2h] ; ff 76 ee5202 push word [bp-01 8h] ; ff 76 e85237 mov word [bp-01ah], dx ; 89 56 e6 5238 push word [bp-016h] ; ff 76 ea 5239 push word [bp-01ch] ; ff 76 e4 5203 5240 push strict byte 00001h ; 6a 01 5204 mov si, word [bp-00 6h] ; 8b 76 fa5241 mov si, word [bp-00ah] ; 8b 76 f6 5205 5242 xor di, di ; 31 ff 5206 5243 mov cx, strict word 00009h ; b9 09 00 5207 5244 sal si, 1 ; d1 e6 5208 5245 rcl di, 1 ; d1 d7 5209 loop 03e 63h ; e2 fa5246 loop 03ed5h ; e2 fa 5210 5247 push di ; 57 5211 5248 push si ; 56 5212 5249 push ax ; 50 5213 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe5250 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5214 5251 mov cx, ss ; 8c d1 5215 lea bx, [bp-02 ah] ; 8d 5e d65252 lea bx, [bp-02eh] ; 8d 5e d2 5216 5253 mov dx, strict word 0000ch ; ba 0c 00 5217 mov si, word [bp-01 6h] ; 8b 76 ea5254 mov si, word [bp-01ah] ; 8b 76 e6 5218 5255 call word [word si+00000h] ; ff 94 00 00 5219 5256 mov dx, ax ; 89 c2 5220 les bx, [bp-00 ah] ; c4 5e f65257 les bx, [bp-00eh] ; c4 5e f2 5221 5258 db 066h, 026h, 0c7h, 047h, 01ah, 000h, 000h, 000h, 000h 5222 5259 ; mov dword [es:bx+01ah], strict dword 000000000h ; 66 26 c7 47 1a 00 00 00 00 5223 5260 test al, al ; 84 c0 5224 je near 03 ca9h ; 0f 84 16fe5225 mov bx, 00d3 2h ; bb 320d5261 je near 03d18h ; 0f 84 13 fe 5262 mov bx, 00d38h ; bb 38 0d 5226 5263 mov cx, ds ; 8c d9 5227 5264 mov ax, strict word 00004h ; b8 04 00 5228 call 018 aeh ; e8 10 da5265 call 018cch ; e8 bc d9 5229 5266 movzx ax, dl ; 0f b6 c2 5230 5267 push ax ; 50 5231 mov ax, word [bp+01 ah] ; 8b 46 1a5268 mov ax, word [bp+016h] ; 8b 46 16 5232 5269 shr ax, 008h ; c1 e8 08 5233 5270 push ax ; 50 … … 5235 5272 push 002feh ; 68 fe 02 5236 5273 push strict byte 00004h ; 6a 04 5237 call 01 8e9h ; e8 35 da5274 call 0190dh ; e8 e7 d9 5238 5275 add sp, strict byte 0000ah ; 83 c4 0a 5239 mov ax, word [bp+01 ah] ; 8b 46 1a5276 mov ax, word [bp+016h] ; 8b 46 16 5240 5277 xor ah, ah ; 30 e4 5241 5278 or ah, 002h ; 80 cc 02 5242 mov word [bp+01 ah], ax ; 89 46 1a5243 mov byte [bp+01 ah], 000h ; c6 46 1a005244 jmp near 0 3f9eh ; e9 d5 005245 mov es, [bp-00 4h] ; 8e 46 fc5279 mov word [bp+016h], ax ; 89 46 16 5280 mov byte [bp+016h], 000h ; c6 46 16 00 5281 jmp near 04010h ; e9 d5 00 5282 mov es, [bp-008h] ; 8e 46 f8 5246 5283 mov di, word [es:si+014h] ; 26 8b 7c 14 5247 5284 mov dx, word [es:si+012h] ; 26 8b 54 12 … … 5249 5286 mov bx, word [es:si+010h] ; 26 8b 5c 10 5250 5287 dec bx ; 4b 5251 mov byte [bp+01 ah], 000h ; c6 46 1a005252 mov ax, word [bp+01 4h] ; 8b 46 145288 mov byte [bp+016h], 000h ; c6 46 16 00 5289 mov ax, word [bp+010h] ; 8b 46 10 5253 5290 xor al, al ; 30 c0 5254 mov cx, word [bp+01 8h] ; 8b 4e 185291 mov cx, word [bp+014h] ; 8b 4e 14 5255 5292 xor ch, ch ; 30 ed 5256 mov word [bp-01 6h], cx ; 89 4e ea5293 mov word [bp-01ah], cx ; 89 4e e6 5257 5294 mov cx, dx ; 89 d1 5258 5295 xor ch, dh ; 30 f5 5259 5296 sal cx, 008h ; c1 e1 08 5260 mov word [bp-01 4h], cx ; 89 4e ec5261 mov cx, word [bp-01 6h] ; 8b 4e ea5262 or cx, word [bp-01 4h] ; 0b 4e ec5263 mov word [bp+01 8h], cx ; 89 4e 185297 mov word [bp-018h], cx ; 89 4e e8 5298 mov cx, word [bp-01ah] ; 8b 4e e6 5299 or cx, word [bp-018h] ; 0b 4e e8 5300 mov word [bp+014h], cx ; 89 4e 14 5264 5301 shr dx, 002h ; c1 ea 02 5265 5302 xor dh, dh ; 30 f6 … … 5269 5306 xor cl, cl ; 30 c9 5270 5307 or cx, dx ; 09 d1 5271 mov word [bp+01 8h], cx ; 89 4e 185272 mov dx, word [bp+01 6h] ; 8b 56 165308 mov word [bp+014h], cx ; 89 4e 14 5309 mov dx, word [bp+012h] ; 8b 56 12 5273 5310 xor dh, dh ; 30 f6 5274 5311 sal bx, 008h ; c1 e3 08 5275 5312 or dx, bx ; 09 da 5276 mov word [bp+01 6h], dx ; 89 56 165313 mov word [bp+012h], dx ; 89 56 12 5277 5314 xor dl, dl ; 30 d2 5278 5315 or dl, 002h ; 80 ca 02 5279 mov word [bp+01 6h], dx ; 89 56 165316 mov word [bp+012h], dx ; 89 56 12 5280 5317 mov dl, byte [es:si+001h] ; 26 8a 54 01 5281 mov word [bp+01 4h], ax ; 89 46 145318 mov word [bp+010h], ax ; 89 46 10 5282 5319 cmp dl, 003h ; 80 fa 03 5283 je short 03f 4dh ; 74 1a5320 je short 03fbfh ; 74 1a 5284 5321 cmp dl, 002h ; 80 fa 02 5285 je short 03f 49h ; 74 115322 je short 03fbbh ; 74 11 5286 5323 cmp dl, 001h ; 80 fa 01 5287 jne short 03f 51h ; 75 145288 mov ax, word [bp+01 4h] ; 8b 46 145324 jne short 03fc3h ; 75 14 5325 mov ax, word [bp+010h] ; 8b 46 10 5289 5326 xor al, al ; 30 c0 5290 5327 or AL, strict byte 002h ; 0c 02 5291 mov word [bp+01 4h], ax ; 89 46 145292 jmp short 03f 51h ; eb 085328 mov word [bp+010h], ax ; 89 46 10 5329 jmp short 03fc3h ; eb 08 5293 5330 or AL, strict byte 004h ; 0c 04 5294 jmp short 03f 44h ; eb f75331 jmp short 03fb6h ; eb f7 5295 5332 or AL, strict byte 005h ; 0c 05 5296 jmp short 03f 44h ; eb f35297 mov es, [bp-00 4h] ; 8e 46 fc5333 jmp short 03fb6h ; eb f3 5334 mov es, [bp-008h] ; 8e 46 f8 5298 5335 cmp byte [es:si+001h], 004h ; 26 80 7c 01 04 5299 jnc near 03 ca9h ; 0f 83 4cfd5300 mov word [bp+00 ch], 0efc7h ; c7 46 0cc7 ef5301 mov word [bp+00 ah], 0f000h ; c7 46 0a00 f05302 jmp near 03 ca9h ; e9 3ffd5336 jnc near 03d18h ; 0f 83 49 fd 5337 mov word [bp+008h], 0efc7h ; c7 46 08 c7 ef 5338 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 5339 jmp near 03d18h ; e9 3c fd 5303 5340 or bh, 003h ; 80 cf 03 5304 mov word [bp+01 ah], bx ; 89 5e 1a5305 jmp near 03 cadh ; e9 3afd5306 mov bx, 00d3 2h ; bb 320d5341 mov word [bp+016h], bx ; 89 5e 16 5342 jmp near 03d1ch ; e9 37 fd 5343 mov bx, 00d38h ; bb 38 0d 5307 5344 mov cx, ds ; 8c d9 5308 5345 mov ax, strict word 00004h ; b8 04 00 5309 call 018 aeh ; e8 30 d95310 mov ax, word [bp+01 ah] ; 8b 46 1a5346 call 018cch ; e8 dc d8 5347 mov ax, word [bp+016h] ; 8b 46 16 5311 5348 shr ax, 008h ; c1 e8 08 5312 5349 push ax ; 50 … … 5314 5351 push 0031fh ; 68 1f 03 5315 5352 push strict byte 00004h ; 6a 04 5316 call 01 8e9h ; e8 59d95353 call 0190dh ; e8 0b d9 5317 5354 add sp, strict byte 00008h ; 83 c4 08 5318 mov ax, word [bp+01 ah] ; 8b 46 1a5355 mov ax, word [bp+016h] ; 8b 46 16 5319 5356 xor ah, ah ; 30 e4 5320 5357 or ah, 001h ; 80 cc 01 5321 mov word [bp+01 ah], ax ; 89 46 1a5322 mov bx, word [bp+01 ah] ; 8b 5e 1a5358 mov word [bp+016h], ax ; 89 46 16 5359 mov bx, word [bp+016h] ; 8b 5e 16 5323 5360 shr bx, 008h ; c1 eb 08 5324 5361 xor bh, bh ; 30 ff 5325 5362 mov dx, strict word 00074h ; ba 74 00 5326 5363 mov ax, strict word 00040h ; b8 40 00 5327 call 0160eh ; e8 5f d6 5328 or byte [bp+020h], 001h ; 80 4e 20 01 5329 jmp near 03cbch ; e9 06 fd 5330 push ax ; 50 5331 dec si ; 4e 5332 dec cx ; 49 5333 dec ax ; 48 5334 inc di ; 47 5335 inc si ; 46 5336 inc bp ; 45 5337 inc sp ; 44 5338 inc bx ; 43 5339 inc dx ; 42 5340 inc cx ; 41 5341 sbb byte [01415h], dl ; 18 16 15 14 5342 adc word [bx+si], dx ; 11 10 5343 or ax, 00b0ch ; 0d 0c 0b 5344 or cl, byte [bx+di] ; 0a 09 5345 or byte [di], al ; 08 05 5346 add AL, strict byte 003h ; 04 03 5347 add al, byte [bx+di] ; 02 01 5348 add byte [bx+045h], cl ; 00 4f 45 5349 into ; ce 5350 inc dx ; 42 5351 mov dx, 04f40h ; ba 40 4f 5352 inc bp ; 45 5353 scasw ; af 5354 inc ax ; 40 5355 dec di ; 4f 5356 inc bp ; 45 5357 scasw ; af 5358 inc ax ; 40 5359 dec di ; 4f 5360 inc bp ; 45 5361 into ; ce 5362 inc dx ; 42 5363 dec di ; 4f 5364 inc bp ; 45 5365 dec di ; 4f 5366 inc bp ; 45 5367 into ; ce 5368 inc dx ; 42 5369 into ; ce 5370 inc dx ; 42 5371 into ; ce 5372 inc dx ; 42 5373 into ; ce 5374 inc dx ; 42 5375 into ; ce 5376 inc dx ; 42 5377 in AL, strict byte 040h ; e4 40 5378 into ; ce 5379 inc dx ; 42 5380 dec di ; 4f 5381 inc bp ; 45 5382 in ax, DX ; ed 5383 inc ax ; 40 5384 add byte [bx+di-051h], al ; 00 41 af 5385 inc ax ; 40 5386 add byte [bx+di+02eh], al ; 00 41 2e 5387 inc dx ; 42 5388 in ax, 042h ; e5 42 5389 add byte [bx+di+00ch], al ; 00 41 0c 5390 inc bx ; 43 5391 or byte [di+010h], al ; 08 45 10 5392 inc bp ; 45 5393 dec di ; 4f 5394 inc bp ; 45 5395 _int13_cdrom: ; 0xf400f LB 0x55d 5364 call 0160eh ; e8 ed d5 5365 or byte [bp+01ch], 001h ; 80 4e 1c 01 5366 jmp near 03d2bh ; e9 03 fd 5367 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 5368 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0c6h, 045h, 042h 5369 db 043h, 02eh, 041h, 0c6h, 045h, 023h, 041h, 0c6h, 045h, 023h, 041h, 0c6h, 045h, 042h, 043h, 0c6h 5370 db 045h, 0c6h, 045h, 042h, 043h, 042h, 043h, 042h, 043h, 042h, 043h, 042h, 043h, 058h, 041h, 042h 5371 db 043h, 0c6h, 045h, 061h, 041h, 074h, 041h, 023h, 041h, 074h, 041h, 0a2h, 042h, 05ch, 043h, 074h 5372 db 041h, 083h, 043h, 07fh, 045h, 087h, 045h, 0c6h, 045h 5373 _int13_cdrom: ; 0xf4081 LB 0x562 5374 push bp ; 55 5375 mov bp, sp ; 89 e5 5396 5376 push si ; 56 5397 5377 push di ; 57 5398 enter 00028h, 000h ; c8 28 00 005378 sub sp, strict byte 00028h ; 83 ec 28 5399 5379 mov dx, strict word 0000eh ; ba 0e 00 5400 5380 mov ax, strict word 00040h ; b8 40 00 5401 call 0161ch ; e8 fed55402 mov word [bp-01 6h], ax ; 89 46 ea5381 call 0161ch ; e8 8a d5 5382 mov word [bp-01ah], ax ; 89 46 e6 5403 5383 mov si, 00122h ; be 22 01 5404 mov word [bp-00 8h], ax ; 89 46 f85384 mov word [bp-00ch], ax ; 89 46 f4 5405 5385 xor bx, bx ; 31 db 5406 5386 mov dx, strict word 00074h ; ba 74 00 5407 5387 mov ax, strict word 00040h ; b8 40 00 5408 call 0160eh ; e8 dcd55409 mov ax, word [bp+01 4h] ; 8b 46 145388 call 0160eh ; e8 68 d5 5389 mov ax, word [bp+010h] ; 8b 46 10 5410 5390 xor ah, ah ; 30 e4 5411 5391 cmp ax, 000e0h ; 3d e0 00 5412 jc short 040 41h ; 72 055392 jc short 040b5h ; 72 05 5413 5393 cmp ax, 000f0h ; 3d f0 00 5414 jc short 040 5fh ; 72 1e5415 mov ax, word [bp+01 4h] ; 8b 46 145394 jc short 040d3h ; 72 1e 5395 mov ax, word [bp+010h] ; 8b 46 10 5416 5396 xor ah, ah ; 30 e4 5417 5397 push ax ; 50 5418 mov ax, word [bp+01 ch] ; 8b 46 1c5398 mov ax, word [bp+018h] ; 8b 46 18 5419 5399 shr ax, 008h ; c1 e8 08 5420 5400 push ax ; 50 … … 5422 5402 push 0035bh ; 68 5b 03 5423 5403 push strict byte 00004h ; 6a 04 5424 call 01 8e9h ; e8 90 d85404 call 0190dh ; e8 40 d8 5425 5405 add sp, strict byte 0000ah ; 83 c4 0a 5426 jmp near 045 2ch ; e9 cd045427 mov ax, word [bp+01 4h] ; 8b 46 145406 jmp near 045a3h ; e9 d0 04 5407 mov ax, word [bp+010h] ; 8b 46 10 5428 5408 xor ah, ah ; 30 e4 5429 mov es, [bp-00 8h] ; 8e 46 f85409 mov es, [bp-00ch] ; 8e 46 f4 5430 5410 mov bx, si ; 89 f3 5431 5411 add bx, ax ; 01 c3 5432 5412 mov dl, byte [es:bx+000d0h] ; 26 8a 97 d0 00 5433 mov byte [bp-00 4h], dl ; 88 56 fc5413 mov byte [bp-008h], dl ; 88 56 f8 5434 5414 cmp dl, 010h ; 80 fa 10 5435 jc short 040 88h ; 72 105415 jc short 040fch ; 72 10 5436 5416 push ax ; 50 5437 mov ax, word [bp+01 ch] ; 8b 46 1c5417 mov ax, word [bp+018h] ; 8b 46 18 5438 5418 shr ax, 008h ; c1 e8 08 5439 5419 push ax ; 50 5440 5420 push 0034fh ; 68 4f 03 5441 5421 push 00386h ; 68 86 03 5442 jmp short 040 54h ; eb cc5443 mov ax, word [bp+01 ch] ; 8b 46 1c5422 jmp short 040c8h ; eb cc 5423 mov ax, word [bp+018h] ; 8b 46 18 5444 5424 shr ax, 008h ; c1 e8 08 5445 5425 cmp ax, strict word 00050h ; 3d 50 00 5446 jnbe near 045 4fh ; 0f 87 ba045426 jnbe near 045c6h ; 0f 87 bd 04 5447 5427 push CS ; 0e 5448 5428 pop ES ; 07 5449 5429 mov cx, strict word 0001eh ; b9 1e 00 5450 mov di, 0 3fb6h ; bf b6 3f5430 mov di, 04028h ; bf 28 40 5451 5431 repne scasb ; f2 ae 5452 5432 sal cx, 1 ; d1 e1 5453 5433 mov di, cx ; 89 cf 5454 mov ax, word [cs:di+0 3fd3h] ; 2e 8b 85 d3 3f5455 mov bx, word [bp+01 ch] ; 8b 5e 1c5434 mov ax, word [cs:di+04045h] ; 2e 8b 85 45 40 5435 mov bx, word [bp+018h] ; 8b 5e 18 5456 5436 xor bh, bh ; 30 ff 5457 5437 jmp ax ; ff e0 5458 mov ax, word [bp+01 ch] ; 8b 46 1c5438 mov ax, word [bp+018h] ; 8b 46 18 5459 5439 xor ah, ah ; 30 e4 5460 5440 or ah, 003h ; 80 cc 03 5461 jmp near 045 34h ; e9 7a045441 jmp near 045abh ; e9 7d 04 5462 5442 mov dx, strict word 00074h ; ba 74 00 5463 5443 mov ax, strict word 00040h ; b8 40 00 5464 call 01600h ; e8 3d d55444 call 01600h ; e8 c9 d4 5465 5445 mov cl, al ; 88 c1 5466 5446 movzx ax, cl ; 0f b6 c1 5467 5447 sal ax, 008h ; c1 e0 08 5468 5448 or bx, ax ; 09 c3 5469 mov word [bp+01 ch], bx ; 89 5e 1c5449 mov word [bp+018h], bx ; 89 5e 18 5470 5450 xor bx, bx ; 31 db 5471 5451 mov dx, strict word 00074h ; ba 74 00 5472 5452 mov ax, strict word 00040h ; b8 40 00 5473 call 0160eh ; e8 33 d55453 call 0160eh ; e8 bf d4 5474 5454 test cl, cl ; 84 c9 5475 je near 04 2d2h ; 0f 84 f1 015476 jmp near 045 48h ; e9 64045455 je near 04346h ; 0f 84 f1 01 5456 jmp near 045bfh ; e9 67 04 5477 5457 or bh, 002h ; 80 cf 02 5478 mov word [bp+01 ch], bx ; 89 5e 1c5479 jmp near 045 37h ; e9 4a045480 mov word [bp+01 6h], 0aa55h ; c7 46 1655 aa5458 mov word [bp+018h], bx ; 89 5e 18 5459 jmp near 045aeh ; e9 4d 04 5460 mov word [bp+012h], 0aa55h ; c7 46 12 55 aa 5481 5461 or bh, 030h ; 80 cf 30 5482 mov word [bp+01 ch], bx ; 89 5e 1c5483 mov word [bp+01 ah], strict word 00007h ; c7 46 1a07 005484 jmp near 04 2d2h ; e9 d2 015485 mov bx, word [bp+0 10h] ; 8b 5e 105486 mov es, [bp+00 ah] ; 8e 46 0a5487 mov word [bp-01 0h], bx ; 89 5e f05488 mov [bp-0 0eh], es ; 8c 46 f25462 mov word [bp+018h], bx ; 89 5e 18 5463 mov word [bp+016h], strict word 00007h ; c7 46 16 07 00 5464 jmp near 04346h ; e9 d2 01 5465 mov bx, word [bp+00ch] ; 8b 5e 0c 5466 mov es, [bp+006h] ; 8e 46 06 5467 mov word [bp-014h], bx ; 89 5e ec 5468 mov [bp-012h], es ; 8c 46 ee 5489 5469 mov ax, word [es:bx+002h] ; 26 8b 47 02 5490 mov word [bp-0 0ch], ax ; 89 46 f45470 mov word [bp-010h], ax ; 89 46 f0 5491 5471 mov ax, word [es:bx+006h] ; 26 8b 47 06 5472 mov word [bp-01ch], ax ; 89 46 e4 5473 mov ax, word [es:bx+004h] ; 26 8b 47 04 5474 mov word [bp-020h], ax ; 89 46 e0 5475 mov ax, word [es:bx+00ch] ; 26 8b 47 0c 5492 5476 mov word [bp-018h], ax ; 89 46 e8 5493 mov ax, word [es:bx+004h] ; 26 8b 47 045494 mov word [bp-01ch], ax ; 89 46 e45495 mov ax, word [es:bx+00ch] ; 26 8b 47 0c5496 mov word [bp-014h], ax ; 89 46 ec5497 5477 mov di, word [es:bx+00eh] ; 26 8b 7f 0e 5498 5478 or di, ax ; 09 c7 5499 je short 041 48h ; 74 185500 mov ax, word [bp+01 ch] ; 8b 46 1c5479 je short 041bch ; 74 18 5480 mov ax, word [bp+018h] ; 8b 46 18 5501 5481 shr ax, 008h ; c1 e8 08 5502 5482 push ax ; 50 … … 5504 5484 push 003b8h ; 68 b8 03 5505 5485 push strict byte 00007h ; 6a 07 5506 call 01 8e9h ; e8 a7 d75486 call 0190dh ; e8 57 d7 5507 5487 add sp, strict byte 00008h ; 83 c4 08 5508 jmp near 045 2ch ; e9 e4035509 les bx, [bp-01 0h] ; c4 5e f05488 jmp near 045a3h ; e9 e7 03 5489 les bx, [bp-014h] ; c4 5e ec 5510 5490 mov ax, word [es:bx+008h] ; 26 8b 47 08 5511 mov word [bp-01 4h], ax ; 89 46 ec5491 mov word [bp-018h], ax ; 89 46 e8 5512 5492 mov di, bx ; 89 df 5513 5493 mov di, word [es:di+00ah] ; 26 8b 7d 0a 5514 mov ax, word [bp+01 ch] ; 8b 46 1c5494 mov ax, word [bp+018h] ; 8b 46 18 5515 5495 shr ax, 008h ; c1 e8 08 5516 mov word [bp-01 2h], ax ; 89 46 ee5496 mov word [bp-016h], ax ; 89 46 ea 5517 5497 cmp ax, strict word 00044h ; 3d 44 00 5518 je near 04 2ceh ; 0f 84 66 015498 je near 04342h ; 0f 84 66 01 5519 5499 cmp ax, strict word 00047h ; 3d 47 00 5520 je near 04 2ceh ; 0f 84 5f 015500 je near 04342h ; 0f 84 5f 01 5521 5501 mov cx, strict word 0000ch ; b9 0c 00 5522 5502 xor bx, bx ; 31 db 5523 5503 mov dx, ss ; 8c d2 5524 lea ax, [bp-02 8h] ; 8d 46 d85525 call 09 07ah ; e8 fe 4e5526 mov word [bp-02 8h], strict word 00028h ; c7 46 d828 005527 mov ax, word [bp-01 4h] ; 8b 46 ec5504 lea ax, [bp-02ch] ; 8d 46 d4 5505 call 0924ah ; e8 5a 50 5506 mov word [bp-02ch], strict word 00028h ; c7 46 d4 28 00 5507 mov ax, word [bp-018h] ; 8b 46 e8 5528 5508 mov dx, di ; 89 fa 5529 5509 xchg ah, al ; 86 c4 5530 5510 xchg dh, dl ; 86 d6 5531 5511 xchg dx, ax ; 92 5532 mov word [bp-02 6h], ax ; 89 46 da5533 mov word [bp-02 4h], dx ; 89 56 dc5534 mov ax, word [bp-0 0ch] ; 8b 46 f45512 mov word [bp-02ah], ax ; 89 46 d6 5513 mov word [bp-028h], dx ; 89 56 d8 5514 mov ax, word [bp-010h] ; 8b 46 f0 5535 5515 xchg ah, al ; 86 c4 5536 mov word [bp-02 1h], ax ; 89 46 df5537 mov ax, word [bp-0 0ch] ; 8b 46 f45538 mov es, [bp-00 8h] ; 8e 46 f85516 mov word [bp-025h], ax ; 89 46 db 5517 mov ax, word [bp-010h] ; 8b 46 f0 5518 mov es, [bp-00ch] ; 8e 46 f4 5539 5519 mov word [es:si+00ah], ax ; 26 89 44 0a 5540 5520 mov word [es:si+00ch], 00800h ; 26 c7 44 0c 00 08 5541 movzx bx, byte [bp-00 4h] ; 0f b6 5e fc5521 movzx bx, byte [bp-008h] ; 0f b6 5e f8 5542 5522 imul bx, bx, strict byte 00018h ; 6b db 18 5543 5523 add bx, si ; 01 f3 5544 5524 movzx di, byte [es:bx+01eh] ; 26 0f b6 7f 1e 5545 5525 add di, di ; 01 ff 5546 push word [bp-018h] ; ff 76 e85547 5526 push word [bp-01ch] ; ff 76 e4 5527 push word [bp-020h] ; ff 76 e0 5548 5528 push strict byte 00001h ; 6a 01 5549 5529 xor bx, bx ; 31 db … … 5551 5531 sal ax, 1 ; d1 e0 5552 5532 rcl bx, 1 ; d1 d3 5553 loop 04 1c6h ; e2 fa5533 loop 0423ah ; e2 fa 5554 5534 push bx ; 53 5555 5535 push ax ; 50 5556 5536 push strict byte 00000h ; 6a 00 5557 movzx ax, byte [bp-00 4h] ; 0f b6 46 fc5537 movzx ax, byte [bp-008h] ; 0f b6 46 f8 5558 5538 mov cx, ss ; 8c d1 5559 lea bx, [bp-02 8h] ; 8d 5e d85539 lea bx, [bp-02ch] ; 8d 5e d4 5560 5540 mov dx, strict word 0000ch ; ba 0c 00 5561 5541 call word [word di+00000h] ; ff 95 00 00 5562 5542 mov dx, ax ; 89 c2 5563 mov es, [bp-00 8h] ; 8e 46 f85543 mov es, [bp-00ch] ; 8e 46 f4 5564 5544 mov ax, word [es:si+016h] ; 26 8b 44 16 5565 5545 mov di, word [es:si+018h] ; 26 8b 7c 18 … … 5567 5547 shr di, 1 ; d1 ef 5568 5548 rcr ax, 1 ; d1 d8 5569 loop 04 1f0h ; e2 fa5570 les bx, [bp-01 0h] ; c4 5e f05549 loop 04264h ; e2 fa 5550 les bx, [bp-014h] ; c4 5e ec 5571 5551 mov word [es:bx+002h], ax ; 26 89 47 02 5572 5552 test dl, dl ; 84 d2 5573 je near 04 2ceh ; 0f 84 cb 005574 mov bx, 00d3 2h ; bb 320d5553 je near 04342h ; 0f 84 cb 00 5554 mov bx, 00d38h ; bb 38 0d 5575 5555 mov cx, ds ; 8c d9 5576 5556 mov ax, strict word 00004h ; b8 04 00 5577 call 018 aeh ; e8 a0d65557 call 018cch ; e8 4a d6 5578 5558 movzx ax, dl ; 0f b6 c2 5579 5559 push ax ; 50 5580 push word [bp-01 2h] ; ff 76 ee5560 push word [bp-016h] ; ff 76 ea 5581 5561 push 0034fh ; 68 4f 03 5582 5562 push 003e1h ; 68 e1 03 5583 5563 push strict byte 00004h ; 6a 04 5584 call 01 8e9h ; e8 c9 d65564 call 0190dh ; e8 79 d6 5585 5565 add sp, strict byte 0000ah ; 83 c4 0a 5586 mov ax, word [bp+01 ch] ; 8b 46 1c5566 mov ax, word [bp+018h] ; 8b 46 18 5587 5567 xor ah, ah ; 30 e4 5588 5568 or ah, 00ch ; 80 cc 0c 5589 jmp near 045 34h ; e9 06035569 jmp near 045abh ; e9 09 03 5590 5570 cmp bx, strict byte 00002h ; 83 fb 02 5591 jnbe near 045 2ch ; 0f 87 f7025592 movzx ax, byte [bp-00 4h] ; 0f b6 46 fc5571 jnbe near 045a3h ; 0f 87 fa 02 5572 movzx ax, byte [bp-008h] ; 0f b6 46 f8 5593 5573 imul ax, ax, strict byte 00018h ; 6b c0 18 5594 mov es, [bp-00 8h] ; 8e 46 f85574 mov es, [bp-00ch] ; 8e 46 f4 5595 5575 mov di, si ; 89 f7 5596 5576 add di, ax ; 01 c7 5597 5577 mov al, byte [es:di+021h] ; 26 8a 45 21 5598 5578 cmp bx, strict byte 00002h ; 83 fb 02 5599 je short 04 2bfh ; 74 735579 je short 04333h ; 74 73 5600 5580 cmp bx, strict byte 00001h ; 83 fb 01 5601 je short 04 28ch ; 74 3b5581 je short 04300h ; 74 3b 5602 5582 test bx, bx ; 85 db 5603 jne near 04 2ceh ; 0f 85 77 005583 jne near 04342h ; 0f 85 77 00 5604 5584 cmp AL, strict byte 0ffh ; 3c ff 5605 jne short 042 6dh ; 75 125606 mov ax, word [bp+01 ch] ; 8b 46 1c5585 jne short 042e1h ; 75 12 5586 mov ax, word [bp+018h] ; 8b 46 18 5607 5587 xor ah, ah ; 30 e4 5608 5588 or ah, 0b4h ; 80 cc b4 5609 mov word [bp+01 ch], ax ; 89 46 1c5589 mov word [bp+018h], ax ; 89 46 18 5610 5590 xor al, al ; 30 c0 5611 5591 or AL, strict byte 001h ; 0c 01 5612 jmp near 045 34h ; e9 c7025613 movzx dx, byte [bp-00 4h] ; 0f b6 56 fc5592 jmp near 045abh ; e9 ca 02 5593 movzx dx, byte [bp-008h] ; 0f b6 56 f8 5614 5594 imul dx, dx, strict byte 00018h ; 6b d2 18 5615 5595 db 0feh, 0c0h 5616 5596 ; inc al ; fe c0 5617 mov es, [bp-00 8h] ; 8e 46 f85597 mov es, [bp-00ch] ; 8e 46 f4 5618 5598 add si, dx ; 01 d6 5619 5599 mov byte [es:si+021h], al ; 26 88 44 21 5620 mov ax, word [bp+01 ch] ; 8b 46 1c5600 mov ax, word [bp+018h] ; 8b 46 18 5621 5601 xor al, al ; 30 c0 5622 5602 or AL, strict byte 001h ; 0c 01 5623 mov word [bp+01 ch], ax ; 89 46 1c5624 jmp near 04 2ceh ; e9 42 005603 mov word [bp+018h], ax ; 89 46 18 5604 jmp near 04342h ; e9 42 00 5625 5605 test al, al ; 84 c0 5626 jne short 04 29ch ; 75 0c5606 jne short 04310h ; 75 0c 5627 5607 or bh, 0b0h ; 80 cf b0 5628 mov word [bp+01 ch], bx ; 89 5e 1c5629 mov byte [bp+01 ch], al ; 88 46 1c5630 jmp near 045 37h ; e9 9b025631 movzx dx, byte [bp-00 4h] ; 0f b6 56 fc5608 mov word [bp+018h], bx ; 89 5e 18 5609 mov byte [bp+018h], al ; 88 46 18 5610 jmp near 045aeh ; e9 9e 02 5611 movzx dx, byte [bp-008h] ; 0f b6 56 f8 5632 5612 imul dx, dx, strict byte 00018h ; 6b d2 18 5633 5613 db 0feh, 0c8h 5634 5614 ; dec al ; fe c8 5635 mov es, [bp-00 8h] ; 8e 46 f85615 mov es, [bp-00ch] ; 8e 46 f4 5636 5616 add si, dx ; 01 d6 5637 5617 mov byte [es:si+021h], al ; 26 88 44 21 … … 5640 5620 ; setne al ; 0f 95 c0 5641 5621 movzx dx, al ; 0f b6 d0 5642 mov ax, word [bp+01 ch] ; 8b 46 1c5622 mov ax, word [bp+018h] ; 8b 46 18 5643 5623 xor al, al ; 30 c0 5644 5624 or ax, dx ; 09 d0 5645 jmp short 042 86h ; eb c75625 jmp short 042fah ; eb c7 5646 5626 test al, al ; 84 c0 5647 5627 db 00fh, 095h, 0c0h 5648 5628 ; setne al ; 0f 95 c0 5649 5629 xor ah, ah ; 30 e4 5650 mov dx, word [bp+01 ch] ; 8b 56 1c5630 mov dx, word [bp+018h] ; 8b 56 18 5651 5631 mov dl, al ; 88 c2 5652 mov word [bp+01 ch], dx ; 89 56 1c5653 mov byte [bp+01 dh], 000h ; c6 46 1d005632 mov word [bp+018h], dx ; 89 56 18 5633 mov byte [bp+019h], 000h ; c6 46 19 00 5654 5634 xor bx, bx ; 31 db 5655 5635 mov dx, strict word 00074h ; ba 74 00 5656 5636 mov ax, strict word 00040h ; b8 40 00 5657 call 0160eh ; e8 31 d35658 and byte [bp+0 22h], 0feh ; 80 66 22fe5659 lea ve ; c95637 call 0160eh ; e8 bd d2 5638 and byte [bp+01eh], 0feh ; 80 66 1e fe 5639 lea sp, [bp-004h] ; 8d 66 fc 5660 5640 pop di ; 5f 5661 5641 pop si ; 5e 5642 pop bp ; 5d 5662 5643 retn ; c3 5663 movzx ax, byte [bp-00 4h] ; 0f b6 46 fc5644 movzx ax, byte [bp-008h] ; 0f b6 46 f8 5664 5645 imul ax, ax, strict byte 00018h ; 6b c0 18 5665 mov es, [bp-00 8h] ; 8e 46 f85646 mov es, [bp-00ch] ; 8e 46 f4 5666 5647 add si, ax ; 01 c6 5667 5648 mov al, byte [es:si+021h] ; 26 8a 44 21 5668 5649 test al, al ; 84 c0 5669 je short 04 2ffh ; 74 065650 je short 04376h ; 74 06 5670 5651 or bh, 0b1h ; 80 cf b1 5671 jmp near 04 0e7h ; e9 e8fd5672 je short 04 2ceh ; 74 cd5673 mov ax, word [bp+01 ch] ; 8b 46 1c5652 jmp near 0415bh ; e9 e5 fd 5653 je short 04342h ; 74 ca 5654 mov ax, word [bp+018h] ; 8b 46 18 5674 5655 xor ah, ah ; 30 e4 5675 5656 or ah, 0b1h ; 80 cc b1 5676 jmp near 045 34h ; e9 28 025677 mov dx, word [bp+0 10h] ; 8b 56 105678 mov cx, word [bp+00 ah] ; 8b 4e 0a5657 jmp near 045abh ; e9 28 02 5658 mov dx, word [bp+00ch] ; 8b 56 0c 5659 mov cx, word [bp+006h] ; 8b 4e 06 5679 5660 mov bx, dx ; 89 d3 5680 mov word [bp-00 6h], cx ; 89 4e fa5661 mov word [bp-00ah], cx ; 89 4e f6 5681 5662 mov es, cx ; 8e c1 5682 5663 mov di, dx ; 89 d7 5683 5664 mov ax, word [es:di] ; 26 8b 05 5684 mov word [bp-00 ah], ax ; 89 46 f65665 mov word [bp-00eh], ax ; 89 46 f2 5685 5666 cmp ax, strict word 0001ah ; 3d 1a 00 5686 jc near 045 2ch ; 0f 82 04 025687 jc short 043 79h ; 72 4f5688 movzx ax, byte [bp-00 4h] ; 0f b6 46 fc5667 jc near 045a3h ; 0f 82 04 02 5668 jc short 043f0h ; 72 4f 5669 movzx ax, byte [bp-008h] ; 0f b6 46 f8 5689 5670 imul ax, ax, strict byte 00018h ; 6b c0 18 5690 mov es, [bp-00 8h] ; 8e 46 f85671 mov es, [bp-00ch] ; 8e 46 f4 5691 5672 mov di, si ; 89 f7 5692 5673 add di, ax ; 01 c7 … … 5707 5688 db 066h, 026h, 0c7h, 045h, 014h, 0ffh, 0ffh, 0ffh, 0ffh 5708 5689 ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff 5709 cmp word [bp-00 ah], strict byte 0001eh ; 83 7e f61e5710 jc near 044 50h ; 0f 82 cf 005711 mov es, [bp-00 6h] ; 8e 46 fa5690 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 5691 jc near 044c7h ; 0f 82 cf 00 5692 mov es, [bp-00ah] ; 8e 46 f6 5712 5693 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 5713 mov ax, word [bp-01 6h] ; 8b 46 ea5694 mov ax, word [bp-01ah] ; 8b 46 e6 5714 5695 mov word [es:bx+01ch], ax ; 26 89 47 1c 5715 5696 mov word [es:bx+01ah], 00312h ; 26 c7 47 1a 12 03 5716 movzx cx, byte [bp-00 4h] ; 0f b6 4e fc5697 movzx cx, byte [bp-008h] ; 0f b6 4e f8 5717 5698 mov ax, cx ; 89 c8 5718 5699 cwd ; 99 … … 5722 5703 movzx di, al ; 0f b6 f8 5723 5704 imul di, di, strict byte 00006h ; 6b ff 06 5724 mov es, [bp-00 8h] ; 8e 46 f85705 mov es, [bp-00ch] ; 8e 46 f4 5725 5706 add di, si ; 01 f7 5726 5707 mov ax, word [es:di+001c2h] ; 26 8b 85 c2 01 5727 mov word [bp-01 ah], ax ; 89 46 e65708 mov word [bp-01eh], ax ; 89 46 e2 5728 5709 mov dx, word [es:di+001c4h] ; 26 8b 95 c4 01 5729 5710 mov al, byte [es:di+001c1h] ; 26 8a 85 c1 01 5730 mov byte [bp-00 2h], al ; 88 46 fe5711 mov byte [bp-006h], al ; 88 46 fa 5731 5712 imul cx, cx, strict byte 00018h ; 6b c9 18 5732 5713 mov di, si ; 89 f7 … … 5739 5720 or AL, strict byte 070h ; 0c 70 5740 5721 mov di, ax ; 89 c7 5741 mov ax, word [bp-01 ah] ; 8b 46 e65722 mov ax, word [bp-01eh] ; 8b 46 e2 5742 5723 mov word [es:si+001f0h], ax ; 26 89 84 f0 01 5743 5724 mov word [es:si+001f2h], dx ; 26 89 94 f2 01 5744 movzx ax, byte [bp-00 4h] ; 0f b6 46 fc5725 movzx ax, byte [bp-008h] ; 0f b6 46 f8 5745 5726 cwd ; 99 5746 5727 mov cx, strict word 00002h ; b9 02 00 … … 5751 5732 mov byte [es:si+001f4h], al ; 26 88 84 f4 01 5752 5733 mov byte [es:si+001f5h], 0cbh ; 26 c6 84 f5 01 cb 5753 mov al, byte [bp-00 2h] ; 8a 46 fe5734 mov al, byte [bp-006h] ; 8a 46 fa 5754 5735 mov byte [es:si+001f6h], al ; 26 88 84 f6 01 5755 5736 mov word [es:si+001f7h], strict word 00001h ; 26 c7 84 f7 01 01 00 … … 5760 5741 xor cl, cl ; 30 c9 5761 5742 xor ch, ch ; 30 ed 5762 jmp short 044 33h ; eb 055743 jmp short 044aah ; eb 05 5763 5744 cmp ch, 00fh ; 80 fd 0f 5764 jnc short 044 46h ; 73 135745 jnc short 044bdh ; 73 13 5765 5746 movzx dx, ch ; 0f b6 d5 5766 5747 add dx, 00312h ; 81 c2 12 03 5767 mov ax, word [bp-01 6h] ; 8b 46 ea5768 call 01600h ; e8 c0d15748 mov ax, word [bp-01ah] ; 8b 46 e6 5749 call 01600h ; e8 49 d1 5769 5750 add cl, al ; 00 c1 5770 5751 db 0feh, 0c5h 5771 5752 ; inc ch ; fe c5 5772 jmp short 044 2eh ; eb e85753 jmp short 044a5h ; eb e8 5773 5754 neg cl ; f6 d9 5774 mov es, [bp-00 8h] ; 8e 46 f85755 mov es, [bp-00ch] ; 8e 46 f4 5775 5756 mov byte [es:si+001ffh], cl ; 26 88 8c ff 01 5776 cmp word [bp-00 ah], strict byte 00042h ; 83 7e f6425777 jc near 04 2ceh ; 0f 82 76fe5778 movzx ax, byte [bp-00 4h] ; 0f b6 46 fc5757 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 5758 jc near 04342h ; 0f 82 73 fe 5759 movzx ax, byte [bp-008h] ; 0f b6 46 f8 5779 5760 cwd ; 99 5780 5761 db 02bh, 0c2h … … 5783 5764 xor ah, ah ; 30 e4 5784 5765 imul ax, ax, strict byte 00006h ; 6b c0 06 5785 mov es, [bp-00 8h] ; 8e 46 f85766 mov es, [bp-00ch] ; 8e 46 f4 5786 5767 add si, ax ; 01 c6 5787 5768 mov al, byte [es:si+001c0h] ; 26 8a 84 c0 01 5788 5769 mov dx, word [es:si+001c2h] ; 26 8b 94 c2 01 5789 mov es, [bp-00 6h] ; 8e 46 fa5770 mov es, [bp-00ah] ; 8e 46 f6 5790 5771 mov word [es:bx], strict word 00042h ; 26 c7 07 42 00 5791 5772 db 066h, 026h, 0c7h, 047h, 01eh, 0ddh, 0beh, 024h, 000h … … 5793 5774 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 5794 5775 test al, al ; 84 c0 5795 jne short 04 499h ; 75 095776 jne short 04510h ; 75 09 5796 5777 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 5797 5778 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 5798 mov es, [bp-00 6h] ; 8e 46 fa5779 mov es, [bp-00ah] ; 8e 46 f6 5799 5780 db 066h, 026h, 0c7h, 047h, 028h, 041h, 054h, 041h, 020h 5800 5781 ; mov dword [es:bx+028h], strict dword 020415441h ; 66 26 c7 47 28 41 54 41 20 … … 5802 5783 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 5803 5784 test al, al ; 84 c0 5804 jne short 04 4c5h ; 75 135785 jne short 0453ch ; 75 13 5805 5786 mov word [es:bx+030h], dx ; 26 89 57 30 5806 5787 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h 5807 5788 ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00 5808 5789 mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00 5809 mov al, byte [bp-00 4h] ; 8a 46 fc5790 mov al, byte [bp-008h] ; 8a 46 f8 5810 5791 and AL, strict byte 001h ; 24 01 5811 5792 xor ah, ah ; 30 e4 5812 mov es, [bp-00 6h] ; 8e 46 fa5793 mov es, [bp-00ah] ; 8e 46 f6 5813 5794 mov word [es:bx+038h], ax ; 26 89 47 38 5814 5795 db 066h, 026h, 0c7h, 047h, 03ah, 000h, 000h, 000h, 000h … … 5817 5798 xor al, al ; 30 c0 5818 5799 mov AH, strict byte 01eh ; b4 1e 5819 jmp short 04 4edh ; eb 055800 jmp short 04564h ; eb 05 5820 5801 cmp ah, 040h ; 80 fc 40 5821 jnc short 04 4fch ; 73 0f5802 jnc short 04573h ; 73 0f 5822 5803 movzx si, ah ; 0f b6 f4 5823 mov es, [bp-00 6h] ; 8e 46 fa5804 mov es, [bp-00ah] ; 8e 46 f6 5824 5805 add si, bx ; 01 de 5825 5806 add al, byte [es:si] ; 26 02 04 5826 5807 db 0feh, 0c4h 5827 5808 ; inc ah ; fe c4 5828 jmp short 04 4e8h ; eb ec5809 jmp short 0455fh ; eb ec 5829 5810 neg al ; f6 d8 5830 mov es, [bp-00 6h] ; 8e 46 fa5811 mov es, [bp-00ah] ; 8e 46 f6 5831 5812 mov byte [es:bx+041h], al ; 26 88 47 41 5832 jmp near 04 2ceh ; e9 c6fd5813 jmp near 04342h ; e9 c3 fd 5833 5814 or bh, 006h ; 80 cf 06 5834 mov word [bp+01 ch], bx ; 89 5e 1c5835 jmp short 045 48h ; eb 385815 mov word [bp+018h], bx ; 89 5e 18 5816 jmp short 045bfh ; eb 38 5836 5817 cmp bx, strict byte 00006h ; 83 fb 06 5837 je near 04 2ceh ; 0f 84 b7fd5818 je near 04342h ; 0f 84 b4 fd 5838 5819 cmp bx, strict byte 00001h ; 83 fb 01 5839 jc short 045 2ch ; 72 105840 jbe near 04 2ceh ; 0f 86 aefd5820 jc short 045a3h ; 72 10 5821 jbe near 04342h ; 0f 86 ab fd 5841 5822 cmp bx, strict byte 00003h ; 83 fb 03 5842 jc short 045 2ch ; 72 075823 jc short 045a3h ; 72 07 5843 5824 cmp bx, strict byte 00004h ; 83 fb 04 5844 jbe near 04 2ceh ; 0f 86 a2fd5845 mov ax, word [bp+01 ch] ; 8b 46 1c5825 jbe near 04342h ; 0f 86 9f fd 5826 mov ax, word [bp+018h] ; 8b 46 18 5846 5827 xor ah, ah ; 30 e4 5847 5828 or ah, 001h ; 80 cc 01 5848 mov word [bp+01 ch], ax ; 89 46 1c5849 mov bx, word [bp+01 ch] ; 8b 5e 1c5829 mov word [bp+018h], ax ; 89 46 18 5830 mov bx, word [bp+018h] ; 8b 5e 18 5850 5831 shr bx, 008h ; c1 eb 08 5851 5832 xor bh, bh ; 30 ff 5852 5833 mov dx, strict word 00074h ; ba 74 00 5853 5834 mov ax, strict word 00040h ; b8 40 00 5854 call 0160eh ; e8 c6d05855 or byte [bp+0 22h], 001h ; 80 4e 22015856 jmp near 04 2e1h ; e9 92fd5857 mov bx, 00d3 2h ; bb 320d5835 call 0160eh ; e8 4f d0 5836 or byte [bp+01eh], 001h ; 80 4e 1e 01 5837 jmp near 04355h ; e9 8f fd 5838 mov bx, 00d38h ; bb 38 0d 5858 5839 mov cx, ds ; 8c d9 5859 5840 mov ax, strict word 00004h ; b8 04 00 5860 call 018 aeh ; e8 54 d35861 mov ax, word [bp+01 ch] ; 8b 46 1c5841 call 018cch ; e8 fb d2 5842 mov ax, word [bp+018h] ; 8b 46 18 5862 5843 shr ax, 008h ; c1 e8 08 5863 5844 push ax ; 50 … … 5865 5846 push 002a3h ; 68 a3 02 5866 5847 push strict byte 00004h ; 6a 04 5867 jmp near 0413fh ; e9 d3 fb 5868 print_boot_device_: ; 0xf456c LB 0x48 5869 push cx ; 51 5848 jmp near 041b3h ; e9 d0 fb 5849 print_boot_device_: ; 0xf45e3 LB 0x4b 5870 5850 push bp ; 55 5871 5851 mov bp, sp ; 89 e5 5852 push cx ; 51 5872 5853 test al, al ; 84 c0 5873 je short 045 79h ; 74 055854 je short 045f0h ; 74 05 5874 5855 mov dx, strict word 00002h ; ba 02 00 5875 jmp short 04 593h ; eb 1a5856 jmp short 0460ah ; eb 1a 5876 5857 test dl, dl ; 84 d2 5877 je short 045 82h ; 74 055858 je short 045f9h ; 74 05 5878 5859 mov dx, strict word 00003h ; ba 03 00 5879 jmp short 04 593h ; eb 115860 jmp short 0460ah ; eb 11 5880 5861 test bl, 080h ; f6 c3 80 5881 jne short 04 58bh ; 75 045862 jne short 04602h ; 75 04 5882 5863 xor dh, dh ; 30 f6 5883 jmp short 04 593h ; eb 085864 jmp short 0460ah ; eb 08 5884 5865 test bl, 080h ; f6 c3 80 5885 je short 04 5b1h ; 74 215866 je short 04628h ; 74 21 5886 5867 mov dx, strict word 00001h ; ba 01 00 5887 mov bx, 00d3 2h ; bb 320d5868 mov bx, 00d38h ; bb 38 0d 5888 5869 mov cx, ds ; 8c d9 5889 5870 mov ax, strict word 00004h ; b8 04 00 5890 call 018 aeh ; e8 10 d35871 call 018cch ; e8 b7 d2 5891 5872 imul dx, dx, strict byte 0000ah ; 6b d2 0a 5892 add dx, 00d5 8h ; 81 c2 580d5873 add dx, 00d5eh ; 81 c2 5e 0d 5893 5874 push dx ; 52 5894 5875 push 00404h ; 68 04 04 5895 5876 push strict byte 00004h ; 6a 04 5896 call 01 8e9h ; e8 3b d35877 call 0190dh ; e8 e8 d2 5897 5878 add sp, strict byte 00006h ; 83 c4 06 5879 lea sp, [bp-002h] ; 8d 66 fe 5880 pop cx ; 59 5898 5881 pop bp ; 5d 5899 pop cx ; 595900 5882 retn ; c3 5901 print_boot_failure_: ; 0xf45b4 LB 0x90 5902 push si ; 56 5883 print_boot_failure_: ; 0xf462e LB 0x93 5903 5884 push bp ; 55 5904 5885 mov bp, sp ; 89 e5 5886 push si ; 56 5905 5887 mov dh, cl ; 88 ce 5906 5888 mov ah, bl ; 88 dc … … 5908 5890 movzx si, ah ; 0f b6 f4 5909 5891 test al, al ; 84 c0 5910 je short 04 5e1h ; 74 1b5911 mov bx, 00d3 2h ; bb 320d5892 je short 0465bh ; 74 1b 5893 mov bx, 00d38h ; bb 38 0d 5912 5894 mov cx, ds ; 8c d9 5913 5895 mov ax, strict word 00004h ; b8 04 00 5914 call 018 aeh ; e8 ddd25915 push 00d 6ch ; 68 6c0d5896 call 018cch ; e8 81 d2 5897 push 00d72h ; 68 72 0d 5916 5898 push 00418h ; 68 18 04 5917 5899 push strict byte 00004h ; 6a 04 5918 call 01 8e9h ; e8 0d d35900 call 0190dh ; e8 b7 d2 5919 5901 add sp, strict byte 00006h ; 83 c4 06 5920 jmp short 046 25h ; eb 445902 jmp short 0469fh ; eb 44 5921 5903 test dl, dl ; 84 d2 5922 je short 04 5f5h ; 74 105923 mov bx, 00d3 2h ; bb 320d5904 je short 0466fh ; 74 10 5905 mov bx, 00d38h ; bb 38 0d 5924 5906 mov cx, ds ; 8c d9 5925 5907 mov ax, strict word 00004h ; b8 04 00 5926 call 018 aeh ; e8 bed25927 push 00d7 6h ; 68 760d5928 jmp short 04 5d4h ; eb df5908 call 018cch ; e8 62 d2 5909 push 00d7ch ; 68 7c 0d 5910 jmp short 0464eh ; eb df 5929 5911 test bl, 080h ; f6 c3 80 5930 je short 046 0bh ; 74 115931 mov bx, 00d3 2h ; bb 320d5912 je short 04685h ; 74 11 5913 mov bx, 00d38h ; bb 38 0d 5932 5914 mov cx, ds ; 8c d9 5933 5915 mov ax, strict word 00004h ; b8 04 00 5934 call 018 aeh ; e8 a9d25916 call 018cch ; e8 4d d2 5935 5917 push si ; 56 5936 push 00d6 2h ; 68 620d5937 jmp short 046 1ah ; eb 0f5938 mov bx, 00d3 2h ; bb 320d5918 push 00d68h ; 68 68 0d 5919 jmp short 04694h ; eb 0f 5920 mov bx, 00d38h ; bb 38 0d 5939 5921 mov cx, ds ; 8c d9 5940 5922 mov ax, strict word 00004h ; b8 04 00 5941 call 018 aeh ; e8 98d25923 call 018cch ; e8 3c d2 5942 5924 push si ; 56 5943 push 00d5 8h ; 68 580d5925 push 00d5eh ; 68 5e 0d 5944 5926 push 0042dh ; 68 2d 04 5945 5927 push strict byte 00004h ; 6a 04 5946 call 01 8e9h ; e8 c7d25928 call 0190dh ; e8 71 d2 5947 5929 add sp, strict byte 00008h ; 83 c4 08 5948 cmp byte [bp+00 6h], 001h ; 80 7e 06015949 jne short 046 3fh ; 75 145930 cmp byte [bp+004h], 001h ; 80 7e 04 01 5931 jne short 046b9h ; 75 14 5950 5932 test dh, dh ; 84 f6 5951 jne short 046 34h ; 75 055933 jne short 046aeh ; 75 05 5952 5934 push 00445h ; 68 45 04 5953 jmp short 046 37h ; eb 035935 jmp short 046b1h ; eb 03 5954 5936 push 0046fh ; 68 6f 04 5955 5937 push strict byte 00007h ; 6a 07 5956 call 01 8e9h ; e8 add25938 call 0190dh ; e8 57 d2 5957 5939 add sp, strict byte 00004h ; 83 c4 04 5940 lea sp, [bp-002h] ; 8d 66 fe 5941 pop si ; 5e 5958 5942 pop bp ; 5d 5959 pop si ; 5e5960 5943 retn 00002h ; c2 02 00 5961 print_cdromboot_failure_: ; 0xf4644 LB 0x24 5944 print_cdromboot_failure_: ; 0xf46c1 LB 0x27 5945 push bp ; 55 5946 mov bp, sp ; 89 e5 5962 5947 push bx ; 53 5963 5948 push cx ; 51 5964 5949 push dx ; 52 5965 push bp ; 555966 mov bp, sp ; 89 e55967 5950 mov dx, ax ; 89 c2 5968 mov bx, 00d3 2h ; bb 320d5951 mov bx, 00d38h ; bb 38 0d 5969 5952 mov cx, ds ; 8c d9 5970 5953 mov ax, strict word 00004h ; b8 04 00 5971 call 018 aeh ; e8 57 d25954 call 018cch ; e8 f8 d1 5972 5955 push dx ; 52 5973 5956 push 004a4h ; 68 a4 04 5974 5957 push strict byte 00004h ; 6a 04 5975 call 01 8e9h ; e8 89d25958 call 0190dh ; e8 30 d2 5976 5959 add sp, strict byte 00006h ; 83 c4 06 5977 pop bp ; 5d5960 lea sp, [bp-006h] ; 8d 66 fa 5978 5961 pop dx ; 5a 5979 5962 pop cx ; 59 5980 5963 pop bx ; 5b 5964 pop bp ; 5d 5981 5965 retn ; c3 5982 _int19_function: ; 0xf4668 LB 0x251 5966 _int19_function: ; 0xf46e8 LB 0x256 5967 push bp ; 55 5968 mov bp, sp ; 89 e5 5983 5969 push si ; 56 5984 5970 push di ; 57 5985 enter 0000eh, 000h ; c8 0e 00 005971 sub sp, strict byte 0000eh ; 83 ec 0e 5986 5972 mov dx, strict word 0000eh ; ba 0e 00 5987 5973 mov ax, strict word 00040h ; b8 40 00 5988 call 0161ch ; e8 a5cf5974 call 0161ch ; e8 23 cf 5989 5975 mov bx, ax ; 89 c3 5990 mov word [bp-00 ah], ax ; 89 46 f65991 mov byte [bp-00 4h], 000h ; c6 46 fc005976 mov word [bp-00eh], ax ; 89 46 f2 5977 mov byte [bp-008h], 000h ; c6 46 f8 00 5992 5978 mov ax, strict word 0003dh ; b8 3d 00 5993 call 0165ch ; e8 d6cf5979 call 0165ch ; e8 54 cf 5994 5980 movzx si, al ; 0f b6 f0 5995 5981 mov ax, strict word 00038h ; b8 38 00 5996 call 0165ch ; e8 cdcf5982 call 0165ch ; e8 4b cf 5997 5983 and AL, strict byte 0f0h ; 24 f0 5998 5984 xor ah, ah ; 30 e4 … … 6000 5986 or si, ax ; 09 c6 6001 5987 mov ax, strict word 0003ch ; b8 3c 00 6002 call 0165ch ; e8 becf5988 call 0165ch ; e8 3c cf 6003 5989 and AL, strict byte 00fh ; 24 0f 6004 5990 xor ah, ah ; 30 e4 … … 6007 5993 mov dx, 00339h ; ba 39 03 6008 5994 mov ax, bx ; 89 d8 6009 call 01600h ; e8 51 cf5995 call 01600h ; e8 cf ce 6010 5996 test al, al ; 84 c0 6011 je short 04 6beh ; 74 0b5997 je short 04740h ; 74 0b 6012 5998 mov dx, 00339h ; ba 39 03 6013 5999 mov ax, bx ; 89 d8 6014 call 01600h ; e8 45 cf6000 call 01600h ; e8 c3 ce 6015 6001 movzx si, al ; 0f b6 f0 6016 cmp byte [bp+00 8h], 001h ; 80 7e 08016017 jne short 04 6d4h ; 75 106002 cmp byte [bp+004h], 001h ; 80 7e 04 01 6003 jne short 04756h ; 75 10 6018 6004 mov ax, strict word 0003ch ; b8 3c 00 6019 call 0165ch ; e8 92cf6005 call 0165ch ; e8 10 cf 6020 6006 and AL, strict byte 0f0h ; 24 f0 6021 6007 xor ah, ah ; 30 e4 6022 6008 sar ax, 004h ; c1 f8 04 6023 call 07 322h ; e8 4e2c6024 cmp byte [bp+00 8h], 002h ; 80 7e 08026025 jne short 04 6ddh ; 75 036009 call 0740bh ; e8 b5 2c 6010 cmp byte [bp+004h], 002h ; 80 7e 04 02 6011 jne short 0475fh ; 75 03 6026 6012 shr si, 004h ; c1 ee 04 6027 cmp byte [bp+00 8h], 003h ; 80 7e 08036028 jne short 04 6e6h ; 75 036013 cmp byte [bp+004h], 003h ; 80 7e 04 03 6014 jne short 04768h ; 75 03 6029 6015 shr si, 008h ; c1 ee 08 6030 cmp byte [bp+00 8h], 004h ; 80 7e 08046031 jne short 04 6efh ; 75 036016 cmp byte [bp+004h], 004h ; 80 7e 04 04 6017 jne short 04771h ; 75 03 6032 6018 shr si, 00ch ; c1 ee 0c 6033 6019 cmp si, strict byte 00010h ; 83 fe 10 6034 jnc short 04 6f8h ; 73 046035 mov byte [bp-00 4h], 001h ; c6 46 fc016020 jnc short 0477ah ; 73 04 6021 mov byte [bp-008h], 001h ; c6 46 f8 01 6036 6022 xor al, al ; 30 c0 6037 mov byte [bp-002h], al ; 88 46 fe6038 6023 mov byte [bp-006h], al ; 88 46 fa 6039 mov byte [bp-008h], al ; 88 46 f8 6040 mov bx, 00d32h ; bb 32 0d 6024 mov byte [bp-00ah], al ; 88 46 f6 6025 mov byte [bp-00ch], al ; 88 46 f4 6026 mov bx, 00d38h ; bb 38 0d 6041 6027 mov cx, ds ; 8c d9 6042 6028 mov ax, strict word 00004h ; b8 04 00 6043 call 018 aeh ; e8 a0d16029 call 018cch ; e8 3c d1 6044 6030 push si ; 56 6045 movzx ax, byte [bp+00 8h] ; 0f b6 46 086031 movzx ax, byte [bp+004h] ; 0f b6 46 04 6046 6032 push ax ; 50 6047 6033 push 004c4h ; 68 c4 04 6048 6034 push strict byte 00004h ; 6a 04 6049 call 01 8e9h ; e8 cdd16035 call 0190dh ; e8 6f d1 6050 6036 add sp, strict byte 00008h ; 83 c4 08 6051 6037 and si, strict byte 0000fh ; 83 e6 0f 6052 6038 cmp si, strict byte 00002h ; 83 fe 02 6053 jc short 047 35h ; 72 0e6054 jbe short 047 44h ; 76 1b6039 jc short 047b7h ; 72 0e 6040 jbe short 047c6h ; 76 1b 6055 6041 cmp si, strict byte 00004h ; 83 fe 04 6056 je short 047 62h ; 74 346042 je short 047e4h ; 74 34 6057 6043 cmp si, strict byte 00003h ; 83 fe 03 6058 je short 047 58h ; 74 256059 jmp short 04 78fh ; eb 5a6044 je short 047dah ; 74 25 6045 jmp short 04811h ; eb 5a 6060 6046 cmp si, strict byte 00001h ; 83 fe 01 6061 jne short 04 78fh ; 75 556047 jne short 04811h ; 75 55 6062 6048 xor al, al ; 30 c0 6063 mov byte [bp-002h], al ; 88 46 fe6064 6049 mov byte [bp-006h], al ; 88 46 fa 6065 jmp short 047a7h ; eb 63 6050 mov byte [bp-00ah], al ; 88 46 f6 6051 jmp short 04829h ; eb 63 6066 6052 mov dx, 00338h ; ba 38 03 6067 mov ax, word [bp-00 ah] ; 8b 46 f66068 call 01600h ; e8 b3ce6053 mov ax, word [bp-00eh] ; 8b 46 f2 6054 call 01600h ; e8 31 ce 6069 6055 add AL, strict byte 080h ; 04 80 6070 mov byte [bp-002h], al ; 88 46 fe 6056 mov byte [bp-006h], al ; 88 46 fa 6057 mov byte [bp-00ah], 000h ; c6 46 f6 00 6058 jmp short 04829h ; eb 4f 6071 6059 mov byte [bp-006h], 000h ; c6 46 fa 00 6072 jmp short 047a7h ; eb 4f 6073 mov byte [bp-002h], 000h ; c6 46 fe 00 6074 mov byte [bp-006h], 001h ; c6 46 fa 01 6075 jmp short 0476ch ; eb 0a 6076 mov byte [bp-008h], 001h ; c6 46 f8 01 6077 cmp byte [bp-006h], 000h ; 80 7e fa 00 6078 je short 047a7h ; 74 3b 6079 call 037d0h ; e8 61 f0 6060 mov byte [bp-00ah], 001h ; c6 46 f6 01 6061 jmp short 047eeh ; eb 0a 6062 mov byte [bp-00ch], 001h ; c6 46 f4 01 6063 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6064 je short 04829h ; 74 3b 6065 call 03837h ; e8 46 f0 6080 6066 mov bx, ax ; 89 c3 6081 6067 test AL, strict byte 0ffh ; a8 ff 6082 je short 04 796h ; 74 216083 call 046 44h ; e8 ccfe6084 movzx ax, byte [bp-00 4h] ; 0f b6 46 fc6068 je short 04818h ; 74 21 6069 call 046c1h ; e8 c7 fe 6070 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6085 6071 push ax ; 50 6086 movzx bx, byte [bp-00 2h] ; 0f b6 5e fe6087 movzx dx, byte [bp-00 8h] ; 0f b6 56 f86088 movzx ax, byte [bp-00 6h] ; 0f b6 46 fa6072 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6073 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6074 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6089 6075 mov cx, strict word 00001h ; b9 01 00 6090 call 04 5b4h ; e8 25fe6076 call 0462eh ; e8 1d fe 6091 6077 xor ax, ax ; 31 c0 6092 6078 xor dx, dx ; 31 d2 6093 jmp near 04 8b5h ; e9 1f 016079 jmp near 04937h ; e9 1f 01 6094 6080 mov dx, 0032eh ; ba 2e 03 6095 mov ax, word [bp-00 ah] ; 8b 46 f66096 call 0161ch ; e8 7d ce6081 mov ax, word [bp-00eh] ; 8b 46 f2 6082 call 0161ch ; e8 fb cd 6097 6083 mov di, ax ; 89 c7 6098 6084 shr bx, 008h ; c1 eb 08 6099 mov byte [bp-00 2h], bl ; 88 5e fe6100 cmp byte [bp-00 8h], 001h ; 80 7e f8016101 jne near 048 23h ; 0f 85 74 006085 mov byte [bp-006h], bl ; 88 5e fa 6086 cmp byte [bp-00ch], 001h ; 80 7e f4 01 6087 jne near 048a5h ; 0f 85 74 00 6102 6088 xor si, si ; 31 f6 6103 6089 mov ax, 0e200h ; b8 00 e2 6104 6090 mov es, ax ; 8e c0 6105 6091 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 6106 jne short 047 78h ; 75 bb6092 jne short 047fah ; 75 bb 6107 6093 mov cx, ax ; 89 c1 6108 6094 mov si, word [es:si+01ah] ; 26 8b 74 1a 6109 6095 cmp word [es:si+002h], 0506eh ; 26 81 7c 02 6e 50 6110 jne short 047 78h ; 75 ad6096 jne short 047fah ; 75 ad 6111 6097 cmp word [es:si], 05024h ; 26 81 3c 24 50 6112 jne short 047 78h ; 75 a66098 jne short 047fah ; 75 a6 6113 6099 mov di, word [es:si+00eh] ; 26 8b 7c 0e 6114 6100 mov dx, word [es:di] ; 26 8b 15 6115 6101 mov ax, word [es:di+002h] ; 26 8b 45 02 6116 6102 cmp ax, 06568h ; 3d 68 65 6117 jne short 048 01h ; 75 1f6103 jne short 04883h ; 75 1f 6118 6104 cmp dx, 07445h ; 81 fa 45 74 6119 jne short 048 01h ; 75 196120 movzx bx, byte [bp-00 2h] ; 0f b6 5e fe6121 movzx dx, byte [bp-00 8h] ; 0f b6 56 f86122 movzx ax, byte [bp-00 6h] ; 0f b6 46 fa6123 call 045 6ch ; e8 75fd6124 mov word [bp-0 0eh], strict word 00006h ; c7 46 f206 006125 mov word [bp-0 0ch], cx ; 89 4e f46126 jmp short 048 1dh ; eb 1c6127 movzx bx, byte [bp-00 2h] ; 0f b6 5e fe6128 movzx dx, byte [bp-00 8h] ; 0f b6 56 f86129 movzx ax, byte [bp-00 6h] ; 0f b6 46 fa6130 call 045 6ch ; e8 5cfd6105 jne short 04883h ; 75 19 6106 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6107 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6108 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6109 call 045e3h ; e8 6a fd 6110 mov word [bp-012h], strict word 00006h ; c7 46 ee 06 00 6111 mov word [bp-010h], cx ; 89 4e f0 6112 jmp short 0489fh ; eb 1c 6113 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6114 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6115 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6116 call 045e3h ; e8 51 fd 6131 6117 sti ; fb 6132 mov word [bp-0 0ch], cx ; 89 4e f46118 mov word [bp-010h], cx ; 89 4e f0 6133 6119 mov es, cx ; 8e c1 6134 6120 mov ax, word [es:si+01ah] ; 26 8b 44 1a 6135 mov word [bp-0 0eh], ax ; 89 46 f26136 call far [bp-0 0eh] ; ff 5e f26137 jmp near 047 78h ; e9 55 ff6138 cmp byte [bp-00 6h], 000h ; 80 7e fa006139 jne short 048 4fh ; 75 266140 cmp byte [bp-00 8h], 000h ; 80 7e f8006141 jne short 048 4fh ; 75 206121 mov word [bp-012h], ax ; 89 46 ee 6122 call far [bp-012h] ; ff 5e ee 6123 jmp near 047fah ; e9 55 ff 6124 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6125 jne short 048d1h ; 75 26 6126 cmp byte [bp-00ch], 000h ; 80 7e f4 00 6127 jne short 048d1h ; 75 20 6142 6128 mov di, 007c0h ; bf c0 07 6143 6129 mov es, di ; 8e c7 6144 mov dl, byte [bp-00 2h] ; 8a 56 fe6130 mov dl, byte [bp-006h] ; 8a 56 fa 6145 6131 mov ax, 00201h ; b8 01 02 6146 6132 mov DH, strict byte 000h ; b6 00 … … 6152 6138 sbb ax, strict byte 00000h ; 83 d8 00 6153 6139 test ax, ax ; 85 c0 6154 jne near 047 78h ; 0f 85 29 ff6155 cmp byte [bp-00 2h], 000h ; 80 7e fe006140 jne near 047fah ; 0f 85 29 ff 6141 cmp byte [bp-006h], 000h ; 80 7e fa 00 6156 6142 db 00fh, 094h, 0c1h 6157 6143 ; sete cl ; 0f 94 c1 6158 cmp byte [bp-00 6h], 000h ; 80 7e fa006159 je short 048 5eh ; 74 026144 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6145 je short 048e0h ; 74 02 6160 6146 mov CL, strict byte 001h ; b1 01 6161 6147 xor dx, dx ; 31 d2 6162 6148 mov ax, di ; 89 f8 6163 call 0161ch ; e8 b7cd6149 call 0161ch ; e8 35 cd 6164 6150 mov bx, ax ; 89 c3 6165 6151 mov dx, strict word 00002h ; ba 02 00 6166 6152 mov ax, di ; 89 f8 6167 call 0161ch ; e8 adcd6153 call 0161ch ; e8 2b cd 6168 6154 cmp bx, ax ; 39 c3 6169 je short 04 884h ; 74 116155 je short 04906h ; 74 11 6170 6156 test cl, cl ; 84 c9 6171 jne short 04 89ah ; 75 236157 jne short 0491ch ; 75 23 6172 6158 mov dx, 001feh ; ba fe 01 6173 6159 mov ax, di ; 89 f8 6174 call 0161ch ; e8 9dcd6160 call 0161ch ; e8 1b cd 6175 6161 cmp ax, 0aa55h ; 3d 55 aa 6176 je short 04 89ah ; 74 166177 movzx ax, byte [bp-00 4h] ; 0f b6 46 fc6162 je short 0491ch ; 74 16 6163 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6178 6164 push ax ; 50 6179 movzx bx, byte [bp-00 2h] ; 0f b6 5e fe6180 movzx dx, byte [bp-00 8h] ; 0f b6 56 f86181 movzx ax, byte [bp-00 6h] ; 0f b6 46 fa6165 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6166 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6167 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6182 6168 xor cx, cx ; 31 c9 6183 jmp near 04 78ch ; e9 f2 fe6184 movzx bx, byte [bp-00 2h] ; 0f b6 5e fe6185 movzx dx, byte [bp-00 8h] ; 0f b6 56 f86186 movzx ax, byte [bp-00 6h] ; 0f b6 46 fa6187 call 045 6ch ; e8 c3fc6188 movzx bx, byte [bp-00 2h] ; 0f b6 5e fe6169 jmp near 0480eh ; e9 f2 fe 6170 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6171 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6172 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6173 call 045e3h ; e8 b8 fc 6174 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6189 6175 xor dx, dx ; 31 d2 6190 6176 xor ax, ax ; 31 c0 6191 6177 add ax, di ; 01 f8 6192 6178 adc dx, bx ; 11 da 6193 lea ve ; c96179 lea sp, [bp-004h] ; 8d 66 fc 6194 6180 pop di ; 5f 6195 6181 pop si ; 5e 6182 pop bp ; 5d 6196 6183 retn ; c3 6197 keyboard_panic_: ; 0xf4 8b9 LB 0x116184 keyboard_panic_: ; 0xf493e LB 0x13 6198 6185 push bp ; 55 6199 6186 mov bp, sp ; 89 e5 … … 6201 6188 push 004e4h ; 68 e4 04 6202 6189 push strict byte 00007h ; 6a 07 6203 call 01 8e9h ; e8 24 d06190 call 0190dh ; e8 c3 cf 6204 6191 add sp, strict byte 00006h ; 83 c4 06 6192 mov sp, bp ; 89 ec 6205 6193 pop bp ; 5d 6206 6194 retn ; c3 6207 _keyboard_init: ; 0xf4 8ca LB 0x27a6195 _keyboard_init: ; 0xf4951 LB 0x27c 6208 6196 push bp ; 55 6209 6197 mov bp, sp ; 89 e5 … … 6217 6205 ; sub ah, ah ; 2a e4 6218 6206 test AL, strict byte 002h ; a8 02 6219 je short 04 8edh ; 74 0d6207 je short 04974h ; 74 0d 6220 6208 dec bx ; 4b 6221 6209 test bx, bx ; 85 db 6222 jbe short 04 8edh ; 76 086210 jbe short 04974h ; 76 08 6223 6211 xor al, al ; 30 c0 6224 6212 mov dx, 00080h ; ba 80 00 6225 6213 out DX, AL ; ee 6226 jmp short 04 8d6h ; eb e96214 jmp short 0495dh ; eb e9 6227 6215 test bx, bx ; 85 db 6228 jne short 04 8f6h ; 75 056216 jne short 0497dh ; 75 05 6229 6217 xor ax, ax ; 31 c0 6230 call 04 8b9h ; e8 c3ff6218 call 0493eh ; e8 c1 ff 6231 6219 mov bx, strict word 0ffffh ; bb ff ff 6232 6220 mov dx, strict word 00064h ; ba 64 00 … … 6235 6223 ; sub ah, ah ; 2a e4 6236 6224 test AL, strict byte 001h ; a8 01 6237 jne short 049 10h ; 75 0d6225 jne short 04997h ; 75 0d 6238 6226 dec bx ; 4b 6239 6227 test bx, bx ; 85 db 6240 jbe short 049 10h ; 76 086228 jbe short 04997h ; 76 08 6241 6229 mov AL, strict byte 001h ; b0 01 6242 6230 mov dx, 00080h ; ba 80 00 6243 6231 out DX, AL ; ee 6244 jmp short 04 8f9h ; eb e96232 jmp short 04980h ; eb e9 6245 6233 test bx, bx ; 85 db 6246 jne short 049 1ah ; 75 066234 jne short 049a1h ; 75 06 6247 6235 mov ax, strict word 00001h ; b8 01 00 6248 call 04 8b9h ; e8 9fff6236 call 0493eh ; e8 9d ff 6249 6237 mov dx, strict word 00060h ; ba 60 00 6250 6238 in AL, DX ; ec … … 6252 6240 ; sub ah, ah ; 2a e4 6253 6241 cmp ax, strict word 00055h ; 3d 55 00 6254 je short 049 2bh ; 74 066242 je short 049b2h ; 74 06 6255 6243 mov ax, 003dfh ; b8 df 03 6256 call 04 8b9h ; e8 8eff6244 call 0493eh ; e8 8c ff 6257 6245 mov AL, strict byte 0abh ; b0 ab 6258 6246 mov dx, strict word 00064h ; ba 64 00 … … 6264 6252 ; sub ah, ah ; 2a e4 6265 6253 test AL, strict byte 002h ; a8 02 6266 je short 049 4bh ; 74 0d6254 je short 049d2h ; 74 0d 6267 6255 dec bx ; 4b 6268 6256 test bx, bx ; 85 db 6269 jbe short 049 4bh ; 76 086257 jbe short 049d2h ; 76 08 6270 6258 mov AL, strict byte 010h ; b0 10 6271 6259 mov dx, 00080h ; ba 80 00 6272 6260 out DX, AL ; ee 6273 jmp short 049 34h ; eb e96261 jmp short 049bbh ; eb e9 6274 6262 test bx, bx ; 85 db 6275 jne short 049 55h ; 75 066263 jne short 049dch ; 75 06 6276 6264 mov ax, strict word 0000ah ; b8 0a 00 6277 call 04 8b9h ; e8 64ff6265 call 0493eh ; e8 62 ff 6278 6266 mov bx, strict word 0ffffh ; bb ff ff 6279 6267 mov dx, strict word 00064h ; ba 64 00 … … 6282 6270 ; sub ah, ah ; 2a e4 6283 6271 test AL, strict byte 001h ; a8 01 6284 jne short 049 6fh ; 75 0d6272 jne short 049f6h ; 75 0d 6285 6273 dec bx ; 4b 6286 6274 test bx, bx ; 85 db 6287 jbe short 049 6fh ; 76 086275 jbe short 049f6h ; 76 08 6288 6276 mov AL, strict byte 011h ; b0 11 6289 6277 mov dx, 00080h ; ba 80 00 6290 6278 out DX, AL ; ee 6291 jmp short 049 58h ; eb e96279 jmp short 049dfh ; eb e9 6292 6280 test bx, bx ; 85 db 6293 jne short 04 979h ; 75 066281 jne short 04a00h ; 75 06 6294 6282 mov ax, strict word 0000bh ; b8 0b 00 6295 call 04 8b9h ; e8 40ff6283 call 0493eh ; e8 3e ff 6296 6284 mov dx, strict word 00060h ; ba 60 00 6297 6285 in AL, DX ; ec … … 6299 6287 ; sub ah, ah ; 2a e4 6300 6288 test ax, ax ; 85 c0 6301 je short 04 989h ; 74 066289 je short 04a10h ; 74 06 6302 6290 mov ax, 003e0h ; b8 e0 03 6303 call 04 8b9h ; e8 30ff6291 call 0493eh ; e8 2e ff 6304 6292 mov AL, strict byte 0ffh ; b0 ff 6305 6293 mov dx, strict word 00060h ; ba 60 00 … … 6311 6299 ; sub ah, ah ; 2a e4 6312 6300 test AL, strict byte 002h ; a8 02 6313 je short 04 9a9h ; 74 0d6301 je short 04a30h ; 74 0d 6314 6302 dec bx ; 4b 6315 6303 test bx, bx ; 85 db 6316 jbe short 04 9a9h ; 76 086304 jbe short 04a30h ; 76 08 6317 6305 mov AL, strict byte 020h ; b0 20 6318 6306 mov dx, 00080h ; ba 80 00 6319 6307 out DX, AL ; ee 6320 jmp short 04 992h ; eb e96308 jmp short 04a19h ; eb e9 6321 6309 test bx, bx ; 85 db 6322 jne short 04 9b3h ; 75 066310 jne short 04a3ah ; 75 06 6323 6311 mov ax, strict word 00014h ; b8 14 00 6324 call 04 8b9h ; e8 06ff6312 call 0493eh ; e8 04 ff 6325 6313 mov bx, strict word 0ffffh ; bb ff ff 6326 6314 mov dx, strict word 00064h ; ba 64 00 … … 6329 6317 ; sub ah, ah ; 2a e4 6330 6318 test AL, strict byte 001h ; a8 01 6331 jne short 04 9cdh ; 75 0d6319 jne short 04a54h ; 75 0d 6332 6320 dec bx ; 4b 6333 6321 test bx, bx ; 85 db 6334 jbe short 04 9cdh ; 76 086322 jbe short 04a54h ; 76 08 6335 6323 mov AL, strict byte 021h ; b0 21 6336 6324 mov dx, 00080h ; ba 80 00 6337 6325 out DX, AL ; ee 6338 jmp short 04 9b6h ; eb e96326 jmp short 04a3dh ; eb e9 6339 6327 test bx, bx ; 85 db 6340 jne short 04 9d7h ; 75 066328 jne short 04a5eh ; 75 06 6341 6329 mov ax, strict word 00015h ; b8 15 00 6342 call 04 8b9h ; e8 e2fe6330 call 0493eh ; e8 e0 fe 6343 6331 mov dx, strict word 00060h ; ba 60 00 6344 6332 in AL, DX ; ec … … 6346 6334 ; sub ah, ah ; 2a e4 6347 6335 cmp ax, 000fah ; 3d fa 00 6348 je short 04 9e8h ; 74 066336 je short 04a6fh ; 74 06 6349 6337 mov ax, 003e1h ; b8 e1 03 6350 call 04 8b9h ; e8 d1fe6338 call 0493eh ; e8 cf fe 6351 6339 mov bx, strict word 0ffffh ; bb ff ff 6352 6340 mov dx, strict word 00064h ; ba 64 00 … … 6355 6343 ; sub ah, ah ; 2a e4 6356 6344 test AL, strict byte 001h ; a8 01 6357 jne short 04a 02h ; 75 0d6345 jne short 04a89h ; 75 0d 6358 6346 dec bx ; 4b 6359 6347 test bx, bx ; 85 db 6360 jbe short 04a 02h ; 76 086348 jbe short 04a89h ; 76 08 6361 6349 mov AL, strict byte 031h ; b0 31 6362 6350 mov dx, 00080h ; ba 80 00 6363 6351 out DX, AL ; ee 6364 jmp short 04 9ebh ; eb e96352 jmp short 04a72h ; eb e9 6365 6353 test bx, bx ; 85 db 6366 jne short 04a 0ch ; 75 066354 jne short 04a93h ; 75 06 6367 6355 mov ax, strict word 0001fh ; b8 1f 00 6368 call 04 8b9h ; e8 adfe6356 call 0493eh ; e8 ab fe 6369 6357 mov dx, strict word 00060h ; ba 60 00 6370 6358 in AL, DX ; ec … … 6372 6360 ; sub ah, ah ; 2a e4 6373 6361 cmp ax, 000aah ; 3d aa 00 6374 je short 04a 25h ; 74 0e6362 je short 04aach ; 74 0e 6375 6363 in AL, DX ; ec 6376 6364 db 02ah, 0e4h 6377 6365 ; sub ah, ah ; 2a e4 6378 6366 cmp ax, 000aah ; 3d aa 00 6379 je short 04a 25h ; 74 066367 je short 04aach ; 74 06 6380 6368 mov ax, 003e2h ; b8 e2 03 6381 call 04 8b9h ; e8 94fe6369 call 0493eh ; e8 92 fe 6382 6370 mov AL, strict byte 0f5h ; b0 f5 6383 6371 mov dx, strict word 00060h ; ba 60 00 … … 6389 6377 ; sub ah, ah ; 2a e4 6390 6378 test AL, strict byte 002h ; a8 02 6391 je short 04a 45h ; 74 0d6379 je short 04acch ; 74 0d 6392 6380 dec bx ; 4b 6393 6381 test bx, bx ; 85 db 6394 jbe short 04a 45h ; 76 086382 jbe short 04acch ; 76 08 6395 6383 mov AL, strict byte 040h ; b0 40 6396 6384 mov dx, 00080h ; ba 80 00 6397 6385 out DX, AL ; ee 6398 jmp short 04a 2eh ; eb e96386 jmp short 04ab5h ; eb e9 6399 6387 test bx, bx ; 85 db 6400 jne short 04a 4fh ; 75 066388 jne short 04ad6h ; 75 06 6401 6389 mov ax, strict word 00028h ; b8 28 00 6402 call 04 8b9h ; e8 6afe6390 call 0493eh ; e8 68 fe 6403 6391 mov bx, strict word 0ffffh ; bb ff ff 6404 6392 mov dx, strict word 00064h ; ba 64 00 … … 6407 6395 ; sub ah, ah ; 2a e4 6408 6396 test AL, strict byte 001h ; a8 01 6409 jne short 04a 69h ; 75 0d6397 jne short 04af0h ; 75 0d 6410 6398 dec bx ; 4b 6411 6399 test bx, bx ; 85 db 6412 jbe short 04a 69h ; 76 086400 jbe short 04af0h ; 76 08 6413 6401 mov AL, strict byte 041h ; b0 41 6414 6402 mov dx, 00080h ; ba 80 00 6415 6403 out DX, AL ; ee 6416 jmp short 04a 52h ; eb e96404 jmp short 04ad9h ; eb e9 6417 6405 test bx, bx ; 85 db 6418 jne short 04a 73h ; 75 066406 jne short 04afah ; 75 06 6419 6407 mov ax, strict word 00029h ; b8 29 00 6420 call 04 8b9h ; e8 46fe6408 call 0493eh ; e8 44 fe 6421 6409 mov dx, strict word 00060h ; ba 60 00 6422 6410 in AL, DX ; ec … … 6424 6412 ; sub ah, ah ; 2a e4 6425 6413 cmp ax, 000fah ; 3d fa 00 6426 je short 04 a84h ; 74 066414 je short 04b0bh ; 74 06 6427 6415 mov ax, 003e3h ; b8 e3 03 6428 call 04 8b9h ; e8 35fe6416 call 0493eh ; e8 33 fe 6429 6417 mov AL, strict byte 060h ; b0 60 6430 6418 mov dx, strict word 00064h ; ba 64 00 … … 6436 6424 ; sub ah, ah ; 2a e4 6437 6425 test AL, strict byte 002h ; a8 02 6438 je short 04 aa4h ; 74 0d6426 je short 04b2bh ; 74 0d 6439 6427 dec bx ; 4b 6440 6428 test bx, bx ; 85 db 6441 jbe short 04 aa4h ; 76 086429 jbe short 04b2bh ; 76 08 6442 6430 mov AL, strict byte 050h ; b0 50 6443 6431 mov dx, 00080h ; ba 80 00 6444 6432 out DX, AL ; ee 6445 jmp short 04 a8dh ; eb e96433 jmp short 04b14h ; eb e9 6446 6434 test bx, bx ; 85 db 6447 jne short 04 aaeh ; 75 066435 jne short 04b35h ; 75 06 6448 6436 mov ax, strict word 00032h ; b8 32 00 6449 call 04 8b9h ; e8 0bfe6437 call 0493eh ; e8 09 fe 6450 6438 mov AL, strict byte 065h ; b0 65 6451 6439 mov dx, strict word 00060h ; ba 60 00 … … 6457 6445 ; sub ah, ah ; 2a e4 6458 6446 test AL, strict byte 002h ; a8 02 6459 je short 04 aceh ; 74 0d6447 je short 04b55h ; 74 0d 6460 6448 dec bx ; 4b 6461 6449 test bx, bx ; 85 db 6462 jbe short 04 aceh ; 76 086450 jbe short 04b55h ; 76 08 6463 6451 mov AL, strict byte 060h ; b0 60 6464 6452 mov dx, 00080h ; ba 80 00 6465 6453 out DX, AL ; ee 6466 jmp short 04 ab7h ; eb e96454 jmp short 04b3eh ; eb e9 6467 6455 test bx, bx ; 85 db 6468 jne short 04 ad8h ; 75 066456 jne short 04b5fh ; 75 06 6469 6457 mov ax, strict word 0003ch ; b8 3c 00 6470 call 04 8b9h ; e8 e1fd6458 call 0493eh ; e8 df fd 6471 6459 mov AL, strict byte 0f4h ; b0 f4 6472 6460 mov dx, strict word 00060h ; ba 60 00 … … 6478 6466 ; sub ah, ah ; 2a e4 6479 6467 test AL, strict byte 002h ; a8 02 6480 je short 04 af8h ; 74 0d6468 je short 04b7fh ; 74 0d 6481 6469 dec bx ; 4b 6482 6470 test bx, bx ; 85 db 6483 jbe short 04 af8h ; 76 086471 jbe short 04b7fh ; 76 08 6484 6472 mov AL, strict byte 070h ; b0 70 6485 6473 mov dx, 00080h ; ba 80 00 6486 6474 out DX, AL ; ee 6487 jmp short 04 ae1h ; eb e96475 jmp short 04b68h ; eb e9 6488 6476 test bx, bx ; 85 db 6489 jne short 04b 02h ; 75 066477 jne short 04b89h ; 75 06 6490 6478 mov ax, strict word 00046h ; b8 46 00 6491 call 04 8b9h ; e8 b7fd6479 call 0493eh ; e8 b5 fd 6492 6480 mov bx, strict word 0ffffh ; bb ff ff 6493 6481 mov dx, strict word 00064h ; ba 64 00 … … 6496 6484 ; sub ah, ah ; 2a e4 6497 6485 test AL, strict byte 001h ; a8 01 6498 jne short 04b 1ch ; 75 0d6486 jne short 04ba3h ; 75 0d 6499 6487 dec bx ; 4b 6500 6488 test bx, bx ; 85 db 6501 jbe short 04b 1ch ; 76 086489 jbe short 04ba3h ; 76 08 6502 6490 mov AL, strict byte 071h ; b0 71 6503 6491 mov dx, 00080h ; ba 80 00 6504 6492 out DX, AL ; ee 6505 jmp short 04b 05h ; eb e96493 jmp short 04b8ch ; eb e9 6506 6494 test bx, bx ; 85 db 6507 jne short 04b 26h ; 75 066495 jne short 04badh ; 75 06 6508 6496 mov ax, strict word 00046h ; b8 46 00 6509 call 04 8b9h ; e8 93fd6497 call 0493eh ; e8 91 fd 6510 6498 mov dx, strict word 00060h ; ba 60 00 6511 6499 in AL, DX ; ec … … 6513 6501 ; sub ah, ah ; 2a e4 6514 6502 cmp ax, 000fah ; 3d fa 00 6515 je short 04b 37h ; 74 066503 je short 04bbeh ; 74 06 6516 6504 mov ax, 003e4h ; b8 e4 03 6517 call 04 8b9h ; e8 82fd6505 call 0493eh ; e8 80 fd 6518 6506 mov AL, strict byte 0a8h ; b0 a8 6519 6507 mov dx, strict word 00064h ; ba 64 00 6520 6508 out DX, AL ; ee 6521 6509 xor ax, ax ; 31 c0 6522 call 05d94h ; e8 52 12 6510 call 05e38h ; e8 6f 12 6511 mov sp, bp ; 89 ec 6523 6512 pop bp ; 5d 6524 6513 retn ; c3 6525 enqueue_key_: ; 0xf4b44 LB 0x90 6514 enqueue_key_: ; 0xf4bcd LB 0x93 6515 push bp ; 55 6516 mov bp, sp ; 89 e5 6526 6517 push bx ; 53 6527 6518 push cx ; 51 6528 6519 push si ; 56 6529 6520 push di ; 57 6530 enter 00002h, 000h ; c8 02 00 006531 mov byte [bp-00 2h], al ; 88 46 fe6521 push ax ; 50 6522 mov byte [bp-00ah], al ; 88 46 f6 6532 6523 mov bl, dl ; 88 d3 6533 6524 mov dx, strict word 0001ah ; ba 1a 00 6534 6525 mov ax, strict word 00040h ; b8 40 00 6535 call 0161ch ; e8 c2ca6526 call 0161ch ; e8 39 ca 6536 6527 mov di, ax ; 89 c7 6537 6528 mov dx, strict word 0001ch ; ba 1c 00 6538 6529 mov ax, strict word 00040h ; b8 40 00 6539 call 0161ch ; e8 b7ca6530 call 0161ch ; e8 2e ca 6540 6531 mov si, ax ; 89 c6 6541 6532 lea cx, [si+002h] ; 8d 4c 02 6542 6533 cmp cx, strict byte 0003eh ; 83 f9 3e 6543 jc short 04b 72h ; 72 036534 jc short 04bfbh ; 72 03 6544 6535 mov cx, strict word 0001eh ; b9 1e 00 6545 6536 cmp cx, di ; 39 f9 6546 jne short 04 b7ah ; 75 046537 jne short 04c03h ; 75 04 6547 6538 xor ax, ax ; 31 c0 6548 jmp short 04 b9fh ; eb 256539 jmp short 04c28h ; eb 25 6549 6540 xor bh, bh ; 30 ff 6550 6541 mov dx, si ; 89 f2 6551 6542 mov ax, strict word 00040h ; b8 40 00 6552 call 0160eh ; e8 8aca6553 movzx bx, byte [bp-00 2h] ; 0f b6 5e fe6543 call 0160eh ; e8 01 ca 6544 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 6554 6545 lea dx, [si+001h] ; 8d 54 01 6555 6546 mov ax, strict word 00040h ; b8 40 00 6556 call 0160eh ; e8 7d ca6547 call 0160eh ; e8 f4 c9 6557 6548 mov bx, cx ; 89 cb 6558 6549 mov dx, strict word 0001ch ; ba 1c 00 6559 6550 mov ax, strict word 00040h ; b8 40 00 6560 call 0162ah ; e8 8eca6551 call 0162ah ; e8 05 ca 6561 6552 mov ax, strict word 00001h ; b8 01 00 6562 lea ve ; c96553 lea sp, [bp-008h] ; 8d 66 f8 6563 6554 pop di ; 5f 6564 6555 pop si ; 5e 6565 6556 pop cx ; 59 6566 6557 pop bx ; 5b 6558 pop bp ; 5d 6567 6559 retn ; c3 6568 6560 db 0c6h, 0c5h, 0bah … … 6575 6567 cmp bh, byte [bx+si] ; 3a 38 6576 6568 sub bl, byte [ss:di] ; 36 2a 1d 6577 or AL, strict byte 04eh ; 0c 4e 6578 cwd ; 99 6569 call far 0f64dh:0274eh ; 9a 4e 27 4d f6 6579 6570 dec sp ; 4c 6580 push 0684ch ; 68 4c 686571 db 0f6h 6581 6572 dec sp ; 4c 6582 sbb cx, word [di+041h] ; 1b 4d 416573 test ax, 0cf4dh ; a9 4d cf 6583 6574 dec sp ; 4c 6584 lea cx, [di-024h] ; 8d 4d dc 6575 sbb cx, word [bp+06ah] ; 1b 4e 6a 6576 dec si ; 4e 6577 lea cx, [bp+068h] ; 8d 4e 68 6585 6578 dec bp ; 4d 6586 d ec word [di-026h] ; ff 4d da6579 db 0f6h 6587 6580 dec sp ; 4c 6588 push 0684ch ; 68 4c 686581 db 0f6h 6589 6582 dec sp ; 4c 6590 push sp ; 54 6591 dec bp ; 4d 6592 pop dx ; 5a 6593 dec sp ; 4c 6594 mov bp, 0f84dh ; bd 4d f8 6595 dec bp ; 4d 6596 _int09_function: ; 0xf4bd4 LB 0x358 6583 loop 04ca7h ; e2 4d 6584 call 097a9h ; e8 4c 4b 6585 dec si ; 4e 6586 db 086h 6587 dec si ; 4e 6588 _int09_function: ; 0xf4c60 LB 0x35d 6589 push bp ; 55 6590 mov bp, sp ; 89 e5 6597 6591 push si ; 56 6598 6592 push di ; 57 6599 enter 0000ch, 000h ; c8 0c 00 006600 mov al, byte [bp+01 8h] ; 8a 46 186601 mov byte [bp-00 6h], al ; 88 46 fa6593 sub sp, strict byte 0000ch ; 83 ec 0c 6594 mov al, byte [bp+014h] ; 8a 46 14 6595 mov byte [bp-00ah], al ; 88 46 f6 6602 6596 test al, al ; 84 c0 6603 jne short 04 bfdh ; 75 196604 mov bx, 00d3 2h ; bb 320d6597 jne short 04c8bh ; 75 19 6598 mov bx, 00d38h ; bb 38 0d 6605 6599 mov cx, ds ; 8c d9 6606 6600 mov ax, strict word 00004h ; b8 04 00 6607 call 018 aeh ; e8 bf cc6601 call 018cch ; e8 4f cc 6608 6602 push 004f7h ; 68 f7 04 6609 6603 push strict byte 00004h ; 6a 04 6610 call 01 8e9h ; e8 f2cc6604 call 0190dh ; e8 88 cc 6611 6605 add sp, strict byte 00004h ; 83 c4 04 6612 jmp near 04f 28h ; e9 2b 036606 jmp near 04fb6h ; e9 2b 03 6613 6607 mov dx, strict word 00017h ; ba 17 00 6614 6608 mov ax, strict word 00040h ; b8 40 00 6615 call 01600h ; e8 fac96616 mov byte [bp-00 ah], al ; 88 46 f66609 call 01600h ; e8 6c c9 6610 mov byte [bp-00eh], al ; 88 46 f2 6617 6611 mov bl, al ; 88 c3 6618 6612 mov dx, strict word 00018h ; ba 18 00 6619 6613 mov ax, strict word 00040h ; b8 40 00 6620 call 01600h ; e8 ec c9 6614 call 01600h ; e8 5e c9 6615 mov byte [bp-010h], al ; 88 46 f0 6621 6616 mov byte [bp-00ch], al ; 88 46 f4 6622 mov byte [bp-008h], al ; 88 46 f86623 6617 mov dx, 00096h ; ba 96 00 6624 6618 mov ax, strict word 00040h ; b8 40 00 6625 call 01600h ; e8 ddc96626 mov byte [bp-00 4h], al ; 88 46 fc6627 mov byte [bp-00 2h], al ; 88 46 fe6628 mov al, byte [bp-00 6h] ; 8a 46 fa6619 call 01600h ; e8 4f c9 6620 mov byte [bp-008h], al ; 88 46 f8 6621 mov byte [bp-006h], al ; 88 46 fa 6622 mov al, byte [bp-00ah] ; 8a 46 f6 6629 6623 push CS ; 0e 6630 6624 pop ES ; 07 6631 6625 mov cx, strict word 00010h ; b9 10 00 6632 mov di, 04 ba5h ; bf a5 4b6626 mov di, 04c31h ; bf 31 4c 6633 6627 repne scasb ; f2 ae 6634 6628 sal cx, 1 ; d1 e1 6635 6629 mov di, cx ; 89 cf 6636 mov ax, word [cs:di+04 bb4h] ; 2e 8b 85 b4 4b6630 mov ax, word [cs:di+04c40h] ; 2e 8b 85 40 4c 6637 6631 jmp ax ; ff e0 6638 6632 xor bl, 040h ; 80 f3 40 … … 6640 6634 mov dx, strict word 00017h ; ba 17 00 6641 6635 mov ax, strict word 00040h ; b8 40 00 6642 call 0160eh ; e8 bfc96643 or byte [bp-00 8h], 040h ; 80 4e f8406644 movzx bx, byte [bp-00 8h] ; 0f b6 5e f86645 jmp near 04 dd0h ; e9 76 016646 mov al, byte [bp-0 0ch] ; 8a 46 f46636 call 0160eh ; e8 31 c9 6637 or byte [bp-00ch], 040h ; 80 4e f4 40 6638 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 6639 jmp near 04e5eh ; e9 76 01 6640 mov al, byte [bp-010h] ; 8a 46 f0 6647 6641 and AL, strict byte 0bfh ; 24 bf 6648 mov byte [bp-00 8h], al ; 88 46 f86642 mov byte [bp-00ch], al ; 88 46 f4 6649 6643 movzx bx, al ; 0f b6 d8 6650 jmp near 04 dd0h ; e9 68 016651 test byte [bp-00 2h], 002h ; f6 46 fe026652 jne near 04f 0ah ; 0f 85 9a 026653 mov al, byte [bp-00 6h] ; 8a 46 fa6644 jmp near 04e5eh ; e9 68 01 6645 test byte [bp-006h], 002h ; f6 46 fa 02 6646 jne near 04f98h ; 0f 85 9a 02 6647 mov al, byte [bp-00ah] ; 8a 46 f6 6654 6648 and AL, strict byte 07fh ; 24 7f 6655 6649 cmp AL, strict byte 02ah ; 3c 2a … … 6658 6652 xor ah, ah ; 30 e4 6659 6653 inc ax ; 40 6660 test byte [bp-00 6h], 080h ; f6 46 fa806661 je short 04 c89h ; 74 066654 test byte [bp-00ah], 080h ; f6 46 f6 80 6655 je short 04d17h ; 74 06 6662 6656 not al ; f6 d0 6663 6657 and bl, al ; 20 c3 6664 jmp short 04 c8bh ; eb 026658 jmp short 04d19h ; eb 02 6665 6659 or bl, al ; 08 c3 6666 6660 xor bh, bh ; 30 ff 6667 6661 mov dx, strict word 00017h ; ba 17 00 6668 6662 mov ax, strict word 00040h ; b8 40 00 6669 call 0160eh ; e8 78 c96670 jmp near 04f 0ah ; e9 71 026671 test byte [bp-00 4h], 001h ; f6 46 fc016672 jne near 04f 0ah ; 0f 85 69 026663 call 0160eh ; e8 ea c8 6664 jmp near 04f98h ; e9 71 02 6665 test byte [bp-008h], 001h ; f6 46 f8 01 6666 jne near 04f98h ; 0f 85 69 02 6673 6667 or bl, 004h ; 80 cb 04 6674 6668 xor bh, bh ; 30 ff 6675 6669 mov dx, strict word 00017h ; ba 17 00 6676 6670 mov ax, strict word 00040h ; b8 40 00 6677 call 0160eh ; e8 5f c96678 mov al, byte [bp-00 4h] ; 8a 46 fc6671 call 0160eh ; e8 d1 c8 6672 mov al, byte [bp-008h] ; 8a 46 f8 6679 6673 test AL, strict byte 002h ; a8 02 6680 je short 04 cc3h ; 74 0d6674 je short 04d51h ; 74 0d 6681 6675 or AL, strict byte 004h ; 0c 04 6682 mov byte [bp-00 2h], al ; 88 46 fe6676 mov byte [bp-006h], al ; 88 46 fa 6683 6677 movzx bx, al ; 0f b6 d8 6684 6678 mov dx, 00096h ; ba 96 00 6685 jmp short 04 cd1h ; eb 0e6686 mov al, byte [bp-0 0ch] ; 8a 46 f46679 jmp short 04d5fh ; eb 0e 6680 mov al, byte [bp-010h] ; 8a 46 f0 6687 6681 or AL, strict byte 001h ; 0c 01 6688 mov byte [bp-00 8h], al ; 88 46 f86682 mov byte [bp-00ch], al ; 88 46 f4 6689 6683 movzx bx, al ; 0f b6 d8 6690 6684 mov dx, strict word 00018h ; ba 18 00 6691 6685 mov ax, strict word 00040h ; b8 40 00 6692 call 0160eh ; e8 37 c96693 jmp near 04f 0ah ; e9 30 026694 test byte [bp-00 4h], 001h ; f6 46 fc016695 jne near 04f 0ah ; 0f 85 28 026686 call 0160eh ; e8 a9 c8 6687 jmp near 04f98h ; e9 30 02 6688 test byte [bp-008h], 001h ; f6 46 f8 01 6689 jne near 04f98h ; 0f 85 28 02 6696 6690 and bl, 0fbh ; 80 e3 fb 6697 6691 xor bh, bh ; 30 ff 6698 6692 mov dx, strict word 00017h ; ba 17 00 6699 6693 mov ax, strict word 00040h ; b8 40 00 6700 call 0160eh ; e8 1e c96701 mov al, byte [bp-00 4h] ; 8a 46 fc6694 call 0160eh ; e8 90 c8 6695 mov al, byte [bp-008h] ; 8a 46 f8 6702 6696 test AL, strict byte 002h ; a8 02 6703 je short 04d 04h ; 74 0d6697 je short 04d92h ; 74 0d 6704 6698 and AL, strict byte 0fbh ; 24 fb 6705 mov byte [bp-00 2h], al ; 88 46 fe6699 mov byte [bp-006h], al ; 88 46 fa 6706 6700 movzx bx, al ; 0f b6 d8 6707 6701 mov dx, 00096h ; ba 96 00 6708 jmp short 04d 12h ; eb 0e6709 mov al, byte [bp-0 0ch] ; 8a 46 f46702 jmp short 04da0h ; eb 0e 6703 mov al, byte [bp-010h] ; 8a 46 f0 6710 6704 and AL, strict byte 0feh ; 24 fe 6711 mov byte [bp-00 8h], al ; 88 46 f86705 mov byte [bp-00ch], al ; 88 46 f4 6712 6706 movzx bx, al ; 0f b6 d8 6713 6707 mov dx, strict word 00018h ; ba 18 00 6714 6708 mov ax, strict word 00040h ; b8 40 00 6715 call 0160eh ; e8 f6c86716 jmp near 04f 0ah ; e9 ef 016709 call 0160eh ; e8 68 c8 6710 jmp near 04f98h ; e9 ef 01 6717 6711 or bl, 008h ; 80 cb 08 6718 6712 xor bh, bh ; 30 ff 6719 6713 mov dx, strict word 00017h ; ba 17 00 6720 6714 mov ax, strict word 00040h ; b8 40 00 6721 call 0160eh ; e8 e5c86722 mov al, byte [bp-00 4h] ; 8a 46 fc6715 call 0160eh ; e8 57 c8 6716 mov al, byte [bp-008h] ; 8a 46 f8 6723 6717 test AL, strict byte 002h ; a8 02 6724 je short 04d 3dh ; 74 0d6718 je short 04dcbh ; 74 0d 6725 6719 or AL, strict byte 008h ; 0c 08 6726 mov byte [bp-00 2h], al ; 88 46 fe6720 mov byte [bp-006h], al ; 88 46 fa 6727 6721 movzx bx, al ; 0f b6 d8 6728 6722 mov dx, 00096h ; ba 96 00 6729 jmp short 04d 4bh ; eb 0e6730 mov al, byte [bp-0 0ch] ; 8a 46 f46723 jmp short 04dd9h ; eb 0e 6724 mov al, byte [bp-010h] ; 8a 46 f0 6731 6725 or AL, strict byte 002h ; 0c 02 6732 mov byte [bp-00 8h], al ; 88 46 f86726 mov byte [bp-00ch], al ; 88 46 f4 6733 6727 movzx bx, al ; 0f b6 d8 6734 6728 mov dx, strict word 00018h ; ba 18 00 6735 6729 mov ax, strict word 00040h ; b8 40 00 6736 call 0160eh ; e8 bdc86737 jmp near 04f 0ah ; e9 b6 016730 call 0160eh ; e8 2f c8 6731 jmp near 04f98h ; e9 b6 01 6738 6732 and bl, 0f7h ; 80 e3 f7 6739 6733 xor bh, bh ; 30 ff 6740 6734 mov dx, strict word 00017h ; ba 17 00 6741 6735 mov ax, strict word 00040h ; b8 40 00 6742 call 0160eh ; e8 acc86743 mov al, byte [bp-00 4h] ; 8a 46 fc6736 call 0160eh ; e8 1e c8 6737 mov al, byte [bp-008h] ; 8a 46 f8 6744 6738 test AL, strict byte 002h ; a8 02 6745 je short 04 d76h ; 74 0d6739 je short 04e04h ; 74 0d 6746 6740 and AL, strict byte 0f7h ; 24 f7 6747 mov byte [bp-00 2h], al ; 88 46 fe6741 mov byte [bp-006h], al ; 88 46 fa 6748 6742 movzx bx, al ; 0f b6 d8 6749 6743 mov dx, 00096h ; ba 96 00 6750 jmp short 04 d84h ; eb 0e6751 mov al, byte [bp-0 0ch] ; 8a 46 f46744 jmp short 04e12h ; eb 0e 6745 mov al, byte [bp-010h] ; 8a 46 f0 6752 6746 and AL, strict byte 0fdh ; 24 fd 6753 mov byte [bp-00 8h], al ; 88 46 f86747 mov byte [bp-00ch], al ; 88 46 f4 6754 6748 movzx bx, al ; 0f b6 d8 6755 6749 mov dx, strict word 00018h ; ba 18 00 6756 6750 mov ax, strict word 00040h ; b8 40 00 6757 call 0160eh ; e8 84 c86758 jmp near 04f 0ah ; e9 7d 016759 test byte [bp-00 4h], 003h ; f6 46 fc036760 jne near 04f 0ah ; 0f 85 75 016761 mov al, byte [bp-0 0ch] ; 8a 46 f46751 call 0160eh ; e8 f6 c7 6752 jmp near 04f98h ; e9 7d 01 6753 test byte [bp-008h], 003h ; f6 46 f8 03 6754 jne near 04f98h ; 0f 85 75 01 6755 mov al, byte [bp-010h] ; 8a 46 f0 6762 6756 or AL, strict byte 020h ; 0c 20 6763 mov byte [bp-00 8h], al ; 88 46 f86757 mov byte [bp-00ch], al ; 88 46 f4 6764 6758 movzx bx, al ; 0f b6 d8 6765 6759 mov dx, strict word 00018h ; ba 18 00 6766 6760 mov ax, strict word 00040h ; b8 40 00 6767 call 0160eh ; e8 65 c86768 mov bl, byte [bp-00 ah] ; 8a 5e f66761 call 0160eh ; e8 d7 c7 6762 mov bl, byte [bp-00eh] ; 8a 5e f2 6769 6763 xor bl, 020h ; 80 f3 20 6770 6764 xor bh, bh ; 30 ff 6771 6765 mov dx, strict word 00017h ; ba 17 00 6772 6766 mov ax, strict word 00040h ; b8 40 00 6773 call 0160eh ; e8 54 c86774 jmp near 04f 0ah ; e9 4d 016775 test byte [bp-00 4h], 003h ; f6 46 fc036776 jne near 04f 0ah ; 0f 85 45 016777 mov al, byte [bp-0 0ch] ; 8a 46 f46767 call 0160eh ; e8 c6 c7 6768 jmp near 04f98h ; e9 4d 01 6769 test byte [bp-008h], 003h ; f6 46 f8 03 6770 jne near 04f98h ; 0f 85 45 01 6771 mov al, byte [bp-010h] ; 8a 46 f0 6778 6772 and AL, strict byte 0dfh ; 24 df 6779 mov byte [bp-00 8h], al ; 88 46 f86773 mov byte [bp-00ch], al ; 88 46 f4 6780 6774 movzx bx, al ; 0f b6 d8 6781 6775 mov dx, strict word 00018h ; ba 18 00 6782 6776 mov ax, strict word 00040h ; b8 40 00 6783 call 0160eh ; e8 35 c86784 jmp near 04f 0ah ; e9 2e 016785 mov al, byte [bp-0 0ch] ; 8a 46 f46777 call 0160eh ; e8 a7 c7 6778 jmp near 04f98h ; e9 2e 01 6779 mov al, byte [bp-010h] ; 8a 46 f0 6786 6780 or AL, strict byte 010h ; 0c 10 6787 mov byte [bp-00 8h], al ; 88 46 f86781 mov byte [bp-00ch], al ; 88 46 f4 6788 6782 movzx bx, al ; 0f b6 d8 6789 6783 mov dx, strict word 00018h ; ba 18 00 6790 6784 mov ax, strict word 00040h ; b8 40 00 6791 call 0160eh ; e8 1e c86792 mov bl, byte [bp-00 ah] ; 8a 5e f66785 call 0160eh ; e8 90 c7 6786 mov bl, byte [bp-00eh] ; 8a 5e f2 6793 6787 xor bl, 010h ; 80 f3 10 6794 jmp short 04 dafh ; eb b76795 mov al, byte [bp-0 0ch] ; 8a 46 f46788 jmp short 04e3dh ; eb b7 6789 mov al, byte [bp-010h] ; 8a 46 f0 6796 6790 and AL, strict byte 0efh ; 24 ef 6797 jmp short 04 dcah ; eb cb6791 jmp short 04e58h ; eb cb 6798 6792 mov al, bl ; 88 d8 6799 6793 and AL, strict byte 00ch ; 24 0c 6800 6794 cmp AL, strict byte 00ch ; 3c 0c 6801 jne short 04e 0ch ; 75 056795 jne short 04e9ah ; 75 05 6802 6796 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 6803 test byte [bp-00 6h], 080h ; f6 46 fa806804 jne near 04f 0ah ; 0f 85 f6 006805 cmp byte [bp-00 6h], 058h ; 80 7e fa586806 jbe short 04e 38h ; 76 1e6807 mov bx, 00d3 2h ; bb 320d6797 test byte [bp-00ah], 080h ; f6 46 f6 80 6798 jne near 04f98h ; 0f 85 f6 00 6799 cmp byte [bp-00ah], 058h ; 80 7e f6 58 6800 jbe short 04ec6h ; 76 1e 6801 mov bx, 00d38h ; bb 38 0d 6808 6802 mov cx, ds ; 8c d9 6809 6803 mov ax, strict word 00004h ; b8 04 00 6810 call 018 aeh ; e8 89 ca6811 movzx ax, byte [bp-00 6h] ; 0f b6 46 fa6804 call 018cch ; e8 19 ca 6805 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6812 6806 push ax ; 50 6813 6807 push 00511h ; 68 11 05 6814 6808 push strict byte 00004h ; 6a 04 6815 call 01 8e9h ; e8 b7ca6809 call 0190dh ; e8 4d ca 6816 6810 add sp, strict byte 00006h ; 83 c4 06 6817 jmp near 04f 28h ; e9 f0 006811 jmp near 04fb6h ; e9 f0 00 6818 6812 test bl, 008h ; f6 c3 08 6819 je short 04e 4fh ; 74 126820 movzx si, byte [bp-00 6h] ; 0f b6 76 fa6813 je short 04eddh ; 74 12 6814 movzx si, byte [bp-00ah] ; 0f b6 76 f6 6821 6815 imul si, si, strict byte 0000ah ; 6b f6 0a 6822 mov dl, byte [si+00d8 6h] ; 8a 94 860d6823 mov ax, word [si+00d8 6h] ; 8b 84 860d6824 jmp near 04 edbh ; e9 8c 006816 mov dl, byte [si+00d8ch] ; 8a 94 8c 0d 6817 mov ax, word [si+00d8ch] ; 8b 84 8c 0d 6818 jmp near 04f69h ; e9 8c 00 6825 6819 test bl, 004h ; f6 c3 04 6826 je short 04e 66h ; 74 126827 movzx si, byte [bp-00 6h] ; 0f b6 76 fa6820 je short 04ef4h ; 74 12 6821 movzx si, byte [bp-00ah] ; 0f b6 76 f6 6828 6822 imul si, si, strict byte 0000ah ; 6b f6 0a 6829 mov dl, byte [si+00d8 4h] ; 8a 94 840d6830 mov ax, word [si+00d8 4h] ; 8b 84 840d6831 jmp near 04 edbh ; e9 75 006832 mov al, byte [bp-00 2h] ; 8a 46 fe6823 mov dl, byte [si+00d8ah] ; 8a 94 8a 0d 6824 mov ax, word [si+00d8ah] ; 8b 84 8a 0d 6825 jmp near 04f69h ; e9 75 00 6826 mov al, byte [bp-006h] ; 8a 46 fa 6833 6827 and AL, strict byte 002h ; 24 02 6834 6828 test al, al ; 84 c0 6835 jbe short 04 e84h ; 76 156836 mov al, byte [bp-00 6h] ; 8a 46 fa6829 jbe short 04f12h ; 76 15 6830 mov al, byte [bp-00ah] ; 8a 46 f6 6837 6831 cmp AL, strict byte 047h ; 3c 47 6838 jc short 04 e84h ; 72 0e6832 jc short 04f12h ; 72 0e 6839 6833 cmp AL, strict byte 053h ; 3c 53 6840 jnbe short 04 e84h ; 77 0a6834 jnbe short 04f12h ; 77 0a 6841 6835 mov DL, strict byte 0e0h ; b2 e0 6842 6836 movzx si, al ; 0f b6 f0 6843 6837 imul si, si, strict byte 0000ah ; 6b f6 0a 6844 jmp short 04 ed7h ; eb 536838 jmp short 04f65h ; eb 53 6845 6839 test bl, 003h ; f6 c3 03 6846 je short 04 eb6h ; 74 2d6847 movzx si, byte [bp-00 6h] ; 0f b6 76 fa6840 je short 04f44h ; 74 2d 6841 movzx si, byte [bp-00ah] ; 0f b6 76 f6 6848 6842 imul si, si, strict byte 0000ah ; 6b f6 0a 6849 movzx ax, byte [si+00d8 8h] ; 0f b6 84 880d6843 movzx ax, byte [si+00d8eh] ; 0f b6 84 8e 0d 6850 6844 movzx dx, bl ; 0f b6 d3 6851 6845 test dx, ax ; 85 c2 6852 je short 04 ea6h ; 74 0a6853 mov dl, byte [si+00d8 0h] ; 8a 94 800d6854 mov ax, word [si+00d8 0h] ; 8b 84 800d6855 jmp short 04 eaeh ; eb 086856 mov dl, byte [si+00d8 2h] ; 8a 94 820d6857 mov ax, word [si+00d8 2h] ; 8b 84 820d6846 je short 04f34h ; 74 0a 6847 mov dl, byte [si+00d86h] ; 8a 94 86 0d 6848 mov ax, word [si+00d86h] ; 8b 84 86 0d 6849 jmp short 04f3ch ; eb 08 6850 mov dl, byte [si+00d88h] ; 8a 94 88 0d 6851 mov ax, word [si+00d88h] ; 8b 84 88 0d 6858 6852 shr ax, 008h ; c1 e8 08 6859 mov byte [bp-00 6h], al ; 88 46 fa6860 jmp short 04 ee1h ; eb 2b6861 movzx si, byte [bp-00 6h] ; 0f b6 76 fa6853 mov byte [bp-00ah], al ; 88 46 f6 6854 jmp short 04f6fh ; eb 2b 6855 movzx si, byte [bp-00ah] ; 0f b6 76 f6 6862 6856 imul si, si, strict byte 0000ah ; 6b f6 0a 6863 movzx ax, byte [si+00d8 8h] ; 0f b6 84 880d6857 movzx ax, byte [si+00d8eh] ; 0f b6 84 8e 0d 6864 6858 movzx dx, bl ; 0f b6 d3 6865 6859 test dx, ax ; 85 c2 6866 je short 04 ed3h ; 74 0a6867 mov dl, byte [si+00d8 2h] ; 8a 94 820d6868 mov ax, word [si+00d8 2h] ; 8b 84 820d6869 jmp short 04 edbh ; eb 086870 mov dl, byte [si+00d8 0h] ; 8a 94 800d6871 mov ax, word [si+00d8 0h] ; 8b 84 800d6860 je short 04f61h ; 74 0a 6861 mov dl, byte [si+00d88h] ; 8a 94 88 0d 6862 mov ax, word [si+00d88h] ; 8b 84 88 0d 6863 jmp short 04f69h ; eb 08 6864 mov dl, byte [si+00d86h] ; 8a 94 86 0d 6865 mov ax, word [si+00d86h] ; 8b 84 86 0d 6872 6866 shr ax, 008h ; c1 e8 08 6873 mov byte [bp-00 6h], al ; 88 46 fa6874 cmp byte [bp-00 6h], 000h ; 80 7e fa006875 jne short 04f 01h ; 75 1a6867 mov byte [bp-00ah], al ; 88 46 f6 6868 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6869 jne short 04f8fh ; 75 1a 6876 6870 test dl, dl ; 84 d2 6877 jne short 04f 01h ; 75 166878 mov bx, 00d3 2h ; bb 320d6871 jne short 04f8fh ; 75 16 6872 mov bx, 00d38h ; bb 38 0d 6879 6873 mov cx, ds ; 8c d9 6880 6874 mov ax, strict word 00004h ; b8 04 00 6881 call 018 aeh ; e8 b8 c96875 call 018cch ; e8 48 c9 6882 6876 push 00548h ; 68 48 05 6883 6877 push strict byte 00004h ; 6a 04 6884 call 01 8e9h ; e8 ebc96878 call 0190dh ; e8 81 c9 6885 6879 add sp, strict byte 00004h ; 83 c4 04 6886 6880 xor dh, dh ; 30 f6 6887 movzx ax, byte [bp-00 6h] ; 0f b6 46 fa6888 call 04b 44h ; e8 3afc6889 mov al, byte [bp-00 6h] ; 8a 46 fa6881 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6882 call 04bcdh ; e8 35 fc 6883 mov al, byte [bp-00ah] ; 8a 46 f6 6890 6884 and AL, strict byte 07fh ; 24 7f 6891 6885 cmp AL, strict byte 01dh ; 3c 1d 6892 je short 04f 17h ; 74 046893 and byte [bp-00 2h], 0feh ; 80 66 fefe6894 and byte [bp-00 2h], 0fdh ; 80 66 fefd6895 movzx bx, byte [bp-00 2h] ; 0f b6 5e fe6886 je short 04fa5h ; 74 04 6887 and byte [bp-006h], 0feh ; 80 66 fa fe 6888 and byte [bp-006h], 0fdh ; 80 66 fa fd 6889 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6896 6890 mov dx, 00096h ; ba 96 00 6897 6891 mov ax, strict word 00040h ; b8 40 00 6898 call 0160eh ; e8 e6c66899 lea ve ; c96892 call 0160eh ; e8 58 c6 6893 lea sp, [bp-004h] ; 8d 66 fc 6900 6894 pop di ; 5f 6901 6895 pop si ; 5e 6896 pop bp ; 5d 6902 6897 retn ; c3 6903 dequeue_key_: ; 0xf4f2c LB 0x90 6898 dequeue_key_: ; 0xf4fbd LB 0x94 6899 push bp ; 55 6900 mov bp, sp ; 89 e5 6904 6901 push si ; 56 6905 6902 push di ; 57 6906 enter 00004h, 000h ; c8 04 00 00 6903 push ax ; 50 6904 push ax ; 50 6907 6905 mov di, ax ; 89 c7 6908 mov word [bp-00 2h], dx ; 89 56 fe6906 mov word [bp-006h], dx ; 89 56 fa 6909 6907 mov si, bx ; 89 de 6910 mov word [bp-00 4h], cx ; 89 4e fc6908 mov word [bp-008h], cx ; 89 4e f8 6911 6909 mov dx, strict word 0001ah ; ba 1a 00 6912 6910 mov ax, strict word 00040h ; b8 40 00 6913 call 0161ch ; e8 d7c66911 call 0161ch ; e8 45 c6 6914 6912 mov bx, ax ; 89 c3 6915 6913 mov dx, strict word 0001ch ; ba 1c 00 6916 6914 mov ax, strict word 00040h ; b8 40 00 6917 call 0161ch ; e8 ccc66915 call 0161ch ; e8 3a c6 6918 6916 cmp bx, ax ; 39 c3 6919 je short 0 4f91h ; 74 3d6917 je short 05023h ; 74 3d 6920 6918 mov dx, bx ; 89 da 6921 6919 mov ax, strict word 00040h ; b8 40 00 6922 call 01600h ; e8 a4c66920 call 01600h ; e8 12 c6 6923 6921 mov cl, al ; 88 c1 6924 6922 lea dx, [bx+001h] ; 8d 57 01 6925 6923 mov ax, strict word 00040h ; b8 40 00 6926 call 01600h ; e8 99c66927 mov es, [bp-00 4h] ; 8e 46 fc6924 call 01600h ; e8 07 c6 6925 mov es, [bp-008h] ; 8e 46 f8 6928 6926 mov byte [es:si], cl ; 26 88 0c 6929 mov es, [bp-00 2h] ; 8e 46 fe6927 mov es, [bp-006h] ; 8e 46 fa 6930 6928 mov byte [es:di], al ; 26 88 05 6931 cmp word [bp+00 8h], strict byte 00000h ; 83 7e 08006932 je short 0 4f8ch ; 74 136929 cmp word [bp+004h], strict byte 00000h ; 83 7e 04 00 6930 je short 0501eh ; 74 13 6933 6931 inc bx ; 43 6934 6932 inc bx ; 43 6935 6933 cmp bx, strict byte 0003eh ; 83 fb 3e 6936 jc short 0 4f83h ; 72 036934 jc short 05015h ; 72 03 6937 6935 mov bx, strict word 0001eh ; bb 1e 00 6938 6936 mov dx, strict word 0001ah ; ba 1a 00 6939 6937 mov ax, strict word 00040h ; b8 40 00 6940 call 0162ah ; e8 9ec66938 call 0162ah ; e8 0c c6 6941 6939 mov ax, strict word 00001h ; b8 01 00 6942 jmp short 0 4f93h ; eb 026940 jmp short 05025h ; eb 02 6943 6941 xor ax, ax ; 31 c0 6944 lea ve ; c96942 lea sp, [bp-004h] ; 8d 66 fc 6945 6943 pop di ; 5f 6946 6944 pop si ; 5e 6945 pop bp ; 5d 6947 6946 retn 00002h ; c2 02 00 6948 6947 mov byte [01292h], AL ; a2 92 12 … … 6950 6949 or cl, byte [bx+di] ; 0a 09 6951 6950 add ax, 00102h ; 05 02 01 6952 add byte [bx+si+052h], bl ; 00 58 52 6953 outsb ; 6e 6954 push ax ; 50 6955 mov CH, strict byte 050h ; b5 50 6956 add word [bx+di+011h], dx ; 01 51 11 6951 add bh, ch ; 00 ef 6952 push dx ; 52 6953 add ax, 04c51h ; 05 51 4c 6957 6954 push cx ; 51 6958 c mp dx, word [bx+di+044h] ; 3b 51 446955 cbw ; 98 6959 6956 push cx ; 51 6960 mov CH, strict byte 051h ; b5 51 6961 out strict byte 051h, AL ; e6 51 6962 adc dx, word [bp+si+04dh] ; 13 52 4d 6957 test AL, strict byte 051h ; a8 51 6958 rcl byte [bx+di-025h], CL ; d2 51 db 6959 push cx ; 51 6960 dec sp ; 4c 6963 6961 push dx ; 52 6964 wait ; 9b 6962 jnl short 0509dh ; 7d 52 6963 stosb ; aa 6965 6964 push dx ; 52 6966 _int16_function: ; 0xf4fbc LB 0x2e2 6965 in AL, strict byte 052h ; e4 52 6966 db 032h 6967 push bx ; 53 6968 _int16_function: ; 0xf5051 LB 0x2e7 6969 push bp ; 55 6970 mov bp, sp ; 89 e5 6967 6971 push di ; 57 6968 enter 00006h, 000h ; c8 06 00 006972 sub sp, strict byte 00006h ; 83 ec 06 6969 6973 mov dx, strict word 00017h ; ba 17 00 6970 6974 mov ax, strict word 00040h ; b8 40 00 6971 call 01600h ; e8 36 c66975 call 01600h ; e8 9f c5 6972 6976 mov cl, al ; 88 c1 6973 6977 mov bh, al ; 88 c7 6974 6978 mov dx, 00097h ; ba 97 00 6975 6979 mov ax, strict word 00040h ; b8 40 00 6976 call 01600h ; e8 29 c66980 call 01600h ; e8 92 c5 6977 6981 mov bl, al ; 88 c3 6978 6982 movzx dx, cl ; 0f b6 d1 … … 6983 6987 xor al, dl ; 30 d0 6984 6988 test ax, ax ; 85 c0 6985 je short 050 4ch ; 74 606989 je short 050e3h ; 74 60 6986 6990 cli ; fa 6987 6991 mov AL, strict byte 0edh ; b0 ed … … 6993 6997 ; sub ah, ah ; 2a e4 6994 6998 test AL, strict byte 001h ; a8 01 6995 jne short 050 05h ; 75 086999 jne short 0509ch ; 75 08 6996 7000 mov AL, strict byte 021h ; b0 21 6997 7001 mov dx, 00080h ; ba 80 00 6998 7002 out DX, AL ; ee 6999 jmp short 0 4ff3h ; eb ee7003 jmp short 0508ah ; eb ee 7000 7004 mov dx, strict word 00060h ; ba 60 00 7001 7005 in AL, DX ; ec … … 7003 7007 ; sub ah, ah ; 2a e4 7004 7008 cmp ax, 000fah ; 3d fa 00 7005 jne short 050 4bh ; 75 3b7009 jne short 050e2h ; 75 3b 7006 7010 and bl, 0f8h ; 80 e3 f8 7007 7011 movzx ax, bh ; 0f b6 c7 … … 7019 7023 ; sub ah, ah ; 2a e4 7020 7024 test AL, strict byte 001h ; a8 01 7021 jne short 050 3ah ; 75 087025 jne short 050d1h ; 75 08 7022 7026 mov AL, strict byte 021h ; b0 21 7023 7027 mov dx, 00080h ; ba 80 00 7024 7028 out DX, AL ; ee 7025 jmp short 050 28h ; eb ee7029 jmp short 050bfh ; eb ee 7026 7030 mov dx, strict word 00060h ; ba 60 00 7027 7031 in AL, DX ; ec … … 7031 7035 mov dx, 00097h ; ba 97 00 7032 7036 mov ax, strict word 00040h ; b8 40 00 7033 call 0160eh ; e8 c3c57037 call 0160eh ; e8 2c c5 7034 7038 sti ; fb 7035 mov ax, word [bp+01 4h] ; 8b 46 147039 mov ax, word [bp+012h] ; 8b 46 12 7036 7040 shr ax, 008h ; c1 e8 08 7037 7041 cmp ax, 000a2h ; 3d a2 00 7038 jnbe near 052 58h ; 0f 87 ff 017042 jnbe near 052efh ; 0f 87 ff 01 7039 7043 push CS ; 0e 7040 7044 pop ES ; 07 7041 7045 mov cx, strict word 0000ch ; b9 0c 00 7042 mov di, 0 4f99h ; bf 99 4f7046 mov di, 0502eh ; bf 2e 50 7043 7047 repne scasb ; f2 ae 7044 7048 sal cx, 1 ; d1 e1 7045 7049 mov di, cx ; 89 cf 7046 mov ax, word [cs:di+0 4fa4h] ; 2e 8b 85 a4 4f7050 mov ax, word [cs:di+05039h] ; 2e 8b 85 39 50 7047 7051 jmp ax ; ff e0 7048 7052 push strict byte 00001h ; 6a 01 7049 7053 mov cx, ss ; 8c d1 7050 lea bx, [bp-00 6h] ; 8d 5e fa7054 lea bx, [bp-008h] ; 8d 5e f8 7051 7055 mov dx, ss ; 8c d2 7052 lea ax, [bp-00 4h] ; 8d 46 fc7053 call 04f 2ch ; e8 affe7056 lea ax, [bp-006h] ; 8d 46 fa 7057 call 04fbdh ; e8 a9 fe 7054 7058 test ax, ax ; 85 c0 7055 jne short 05 08ch ; 75 0b7059 jne short 05123h ; 75 0b 7056 7060 push 0057fh ; 68 7f 05 7057 7061 push strict byte 00007h ; 6a 07 7058 call 01 8e9h ; e8 60 c87062 call 0190dh ; e8 ed c7 7059 7063 add sp, strict byte 00004h ; 83 c4 04 7060 cmp byte [bp-00 4h], 000h ; 80 7e fc007061 je short 05 098h ; 74 067062 cmp byte [bp-00 6h], 0f0h ; 80 7e faf07063 je short 05 09eh ; 74 067064 cmp byte [bp-00 6h], 0e0h ; 80 7e fae07065 jne short 05 0a2h ; 75 047066 mov byte [bp-00 6h], 000h ; c6 46 fa007067 movzx dx, byte [bp-00 4h] ; 0f b6 56 fc7064 cmp byte [bp-006h], 000h ; 80 7e fa 00 7065 je short 0512fh ; 74 06 7066 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7067 je short 05135h ; 74 06 7068 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 7069 jne short 05139h ; 75 04 7070 mov byte [bp-008h], 000h ; c6 46 f8 00 7071 movzx dx, byte [bp-006h] ; 0f b6 56 fa 7068 7072 sal dx, 008h ; c1 e2 08 7069 movzx ax, byte [bp-00 6h] ; 0f b6 46 fa7073 movzx ax, byte [bp-008h] ; 0f b6 46 f8 7070 7074 or dx, ax ; 09 c2 7071 mov word [bp+014h], dx ; 89 56 14 7072 leave ; c9 7073 pop di ; 5f 7074 retn ; c3 7075 or word [bp+01eh], 00200h ; 81 4e 1e 00 02 7075 mov word [bp+012h], dx ; 89 56 12 7076 jmp near 05332h ; e9 e6 01 7077 or word [bp+01ch], 00200h ; 81 4e 1c 00 02 7076 7078 push strict byte 00000h ; 6a 00 7077 7079 mov cx, ss ; 8c d1 7078 lea bx, [bp-00 6h] ; 8d 5e fa7080 lea bx, [bp-008h] ; 8d 5e f8 7079 7081 mov dx, ss ; 8c d2 7080 lea ax, [bp-00 4h] ; 8d 46 fc7081 call 04f 2ch ; e8 63fe7082 lea ax, [bp-006h] ; 8d 46 fa 7083 call 04fbdh ; e8 5d fe 7082 7084 test ax, ax ; 85 c0 7083 jne short 050d4h ; 75 07 7084 or word [bp+01eh], strict byte 00040h ; 83 4e 1e 40 7085 leave ; c9 7086 pop di ; 5f 7087 retn ; c3 7088 cmp byte [bp-004h], 000h ; 80 7e fc 00 7089 je short 050e0h ; 74 06 7090 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 7091 je short 050e6h ; 74 06 7092 cmp byte [bp-006h], 0e0h ; 80 7e fa e0 7093 jne short 050eah ; 75 04 7094 mov byte [bp-006h], 000h ; c6 46 fa 00 7095 movzx dx, byte [bp-004h] ; 0f b6 56 fc 7085 jne short 0516bh ; 75 07 7086 or word [bp+01ch], strict byte 00040h ; 83 4e 1c 40 7087 jmp near 05332h ; e9 c7 01 7088 cmp byte [bp-006h], 000h ; 80 7e fa 00 7089 je short 05177h ; 74 06 7090 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7091 je short 0517dh ; 74 06 7092 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 7093 jne short 05181h ; 75 04 7094 mov byte [bp-008h], 000h ; c6 46 f8 00 7095 movzx dx, byte [bp-006h] ; 0f b6 56 fa 7096 7096 sal dx, 008h ; c1 e2 08 7097 movzx ax, byte [bp-00 6h] ; 0f b6 46 fa7097 movzx ax, byte [bp-008h] ; 0f b6 46 f8 7098 7098 or dx, ax ; 09 c2 7099 mov word [bp+014h], dx ; 89 56 14 7100 and word [bp+01eh], strict byte 0ffbfh ; 83 66 1e bf 7101 leave ; c9 7102 pop di ; 5f 7103 retn ; c3 7099 mov word [bp+012h], dx ; 89 56 12 7100 and word [bp+01ch], strict byte 0ffbfh ; 83 66 1c bf 7101 jmp near 05332h ; e9 9a 01 7104 7102 mov dx, strict word 00017h ; ba 17 00 7105 7103 mov ax, strict word 00040h ; b8 40 00 7106 call 01600h ; e8 f6c47107 mov dx, word [bp+01 4h] ; 8b 56 147104 call 01600h ; e8 5f c4 7105 mov dx, word [bp+012h] ; 8b 56 12 7108 7106 mov dl, al ; 88 c2 7109 jmp short 05 0afh ; eb 9e7110 mov al, byte [bp+01 2h] ; 8a 46 127107 jmp short 05146h ; eb 9e 7108 mov al, byte [bp+010h] ; 8a 46 10 7111 7109 movzx dx, al ; 0f b6 d0 7112 mov ax, word [bp+01 2h] ; 8b 46 127110 mov ax, word [bp+010h] ; 8b 46 10 7113 7111 shr ax, 008h ; c1 e8 08 7114 7112 xor ah, ah ; 30 e4 7115 call 04b 44h ; e8 22fa7113 call 04bcdh ; e8 14 fa 7116 7114 test ax, ax ; 85 c0 7117 jne short 051 33h ; 75 0d7118 mov ax, word [bp+01 4h] ; 8b 46 147115 jne short 051cah ; 75 0d 7116 mov ax, word [bp+012h] ; 8b 46 12 7119 7117 xor al, al ; 30 c0 7120 7118 or AL, strict byte 001h ; 0c 01 7121 mov word [bp+014h], ax ; 89 46 14 7122 leave ; c9 7123 pop di ; 5f 7124 retn ; c3 7125 and word [bp+014h], 0ff00h ; 81 66 14 00 ff 7126 leave ; c9 7127 pop di ; 5f 7128 retn ; c3 7129 mov ax, word [bp+014h] ; 8b 46 14 7119 mov word [bp+012h], ax ; 89 46 12 7120 jmp near 05332h ; e9 68 01 7121 and word [bp+012h], 0ff00h ; 81 66 12 00 ff 7122 jmp near 05332h ; e9 60 01 7123 mov ax, word [bp+012h] ; 8b 46 12 7130 7124 xor al, al ; 30 c0 7131 7125 or AL, strict byte 030h ; 0c 30 7132 jmp short 051 2dh ; eb e97133 mov byte [bp-00 2h], 002h ; c6 46 fe027126 jmp short 051c4h ; eb e9 7127 mov byte [bp-004h], 002h ; c6 46 fc 02 7134 7128 xor cx, cx ; 31 c9 7135 7129 cli ; fa … … 7143 7137 ; sub ah, ah ; 2a e4 7144 7138 test AL, strict byte 001h ; a8 01 7145 jne short 05 16bh ; 75 0d7139 jne short 05202h ; 75 0d 7146 7140 dec bx ; 4b 7147 7141 test bx, bx ; 85 db 7148 jbe short 05 16bh ; 76 087142 jbe short 05202h ; 76 08 7149 7143 mov dx, 00080h ; ba 80 00 7150 7144 in AL, DX ; ec 7151 7145 db 02ah, 0e4h 7152 7146 ; sub ah, ah ; 2a e4 7153 jmp short 051 54h ; eb e97147 jmp short 051ebh ; eb e9 7154 7148 test bx, bx ; 85 db 7155 jbe short 05 1afh ; 76 407149 jbe short 05246h ; 76 40 7156 7150 mov dx, strict word 00060h ; ba 60 00 7157 7151 in AL, DX ; ec … … 7159 7153 ; sub ah, ah ; 2a e4 7160 7154 cmp ax, 000fah ; 3d fa 00 7161 jne short 05 1afh ; 75 357155 jne short 05246h ; 75 35 7162 7156 mov bx, strict word 0ffffh ; bb ff ff 7163 7157 mov dx, strict word 00064h ; ba 64 00 … … 7166 7160 ; sub ah, ah ; 2a e4 7167 7161 test AL, strict byte 001h ; a8 01 7168 jne short 05 194h ; 75 0d7162 jne short 0522bh ; 75 0d 7169 7163 dec bx ; 4b 7170 7164 test bx, bx ; 85 db 7171 jbe short 05 194h ; 76 087165 jbe short 0522bh ; 76 08 7172 7166 mov dx, 00080h ; ba 80 00 7173 7167 in AL, DX ; ec 7174 7168 db 02ah, 0e4h 7175 7169 ; sub ah, ah ; 2a e4 7176 jmp short 05 17dh ; eb e97170 jmp short 05214h ; eb e9 7177 7171 test bx, bx ; 85 db 7178 jbe short 05 1a6h ; 76 0e7172 jbe short 0523dh ; 76 0e 7179 7173 shr cx, 008h ; c1 e9 08 7180 7174 mov dx, strict word 00060h ; ba 60 00 … … 7184 7178 sal ax, 008h ; c1 e0 08 7185 7179 or cx, ax ; 09 c1 7186 dec byte [bp-002h] ; fe 4e fe 7187 cmp byte [bp-002h], 000h ; 80 7e fe 00 7188 jnbe short 0517ah ; 77 cb 7189 mov word [bp+00eh], cx ; 89 4e 0e 7190 leave ; c9 7191 pop di ; 5f 7192 retn ; c3 7180 dec byte [bp-004h] ; fe 4e fc 7181 cmp byte [bp-004h], 000h ; 80 7e fc 00 7182 jnbe short 05211h ; 77 cb 7183 mov word [bp+00ch], cx ; 89 4e 0c 7184 jmp near 05332h ; e9 e6 00 7193 7185 push strict byte 00001h ; 6a 01 7194 7186 mov cx, ss ; 8c d1 7195 lea bx, [bp-00 6h] ; 8d 5e fa7187 lea bx, [bp-008h] ; 8d 5e f8 7196 7188 mov dx, ss ; 8c d2 7197 lea ax, [bp-00 4h] ; 8d 46 fc7198 call 04f 2ch ; e8 68fd7189 lea ax, [bp-006h] ; 8d 46 fa 7190 call 04fbdh ; e8 62 fd 7199 7191 test ax, ax ; 85 c0 7200 jne short 05 1d3h ; 75 0b7192 jne short 0526ah ; 75 0b 7201 7193 push 0057fh ; 68 7f 05 7202 7194 push strict byte 00007h ; 6a 07 7203 call 01 8e9h ; e8 19 c77195 call 0190dh ; e8 a6 c6 7204 7196 add sp, strict byte 00004h ; 83 c4 04 7205 cmp byte [bp-00 4h], 000h ; 80 7e fc007206 je near 05 0a2h ; 0f 84 c7 fe7207 cmp byte [bp-00 6h], 0f0h ; 80 7e faf07208 je near 05 09eh ; 0f 84 bb fe7209 jmp near 05 0a2h ; e9 bc fe7210 or word [bp+01 eh], 00200h ; 81 4e 1e00 027197 cmp byte [bp-006h], 000h ; 80 7e fa 00 7198 je near 05139h ; 0f 84 c7 fe 7199 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7200 je near 05135h ; 0f 84 bb fe 7201 jmp near 05139h ; e9 bc fe 7202 or word [bp+01ch], 00200h ; 81 4e 1c 00 02 7211 7203 push strict byte 00000h ; 6a 00 7212 7204 mov cx, ss ; 8c d1 7213 lea bx, [bp-00 6h] ; 8d 5e fa7205 lea bx, [bp-008h] ; 8d 5e f8 7214 7206 mov dx, ss ; 8c d2 7215 lea ax, [bp-00 4h] ; 8d 46 fc7216 call 04f 2ch ; e8 32fd7207 lea ax, [bp-006h] ; 8d 46 fa 7208 call 04fbdh ; e8 2c fd 7217 7209 test ax, ax ; 85 c0 7218 je near 05 0cdh ; 0f 84 cd fe7219 cmp byte [bp-00 4h], 000h ; 80 7e fc007220 je near 05 0eah ; 0f 84 e2 fe7221 cmp byte [bp-00 6h], 0f0h ; 80 7e faf07222 je near 05 0e6h ; 0f 84 d6 fe7223 jmp near 05 0eah ; e9 d7 fe7210 je near 05164h ; 0f 84 cd fe 7211 cmp byte [bp-006h], 000h ; 80 7e fa 00 7212 je near 05181h ; 0f 84 e2 fe 7213 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7214 je near 0517dh ; 0f 84 d6 fe 7215 jmp near 05181h ; e9 d7 fe 7224 7216 mov dx, strict word 00017h ; ba 17 00 7225 7217 mov ax, strict word 00040h ; b8 40 00 7226 call 01600h ; e8 e4c37227 mov dx, word [bp+01 4h] ; 8b 56 147218 call 01600h ; e8 4d c3 7219 mov dx, word [bp+012h] ; 8b 56 12 7228 7220 mov dl, al ; 88 c2 7229 mov word [bp+01 4h], dx ; 89 56 147221 mov word [bp+012h], dx ; 89 56 12 7230 7222 mov dx, strict word 00018h ; ba 18 00 7231 7223 mov ax, strict word 00040h ; b8 40 00 7232 call 01600h ; e8 d3c37224 call 01600h ; e8 3c c3 7233 7225 mov bh, al ; 88 c7 7234 7226 and bh, 073h ; 80 e7 73 7235 7227 mov dx, 00096h ; ba 96 00 7236 7228 mov ax, strict word 00040h ; b8 40 00 7237 call 01600h ; e8 c5c37229 call 01600h ; e8 2e c3 7238 7230 and AL, strict byte 00ch ; 24 0c 7239 7231 or bh, al ; 08 c7 7240 mov dx, word [bp+01 4h] ; 8b 56 147232 mov dx, word [bp+012h] ; 8b 56 12 7241 7233 xor dh, dh ; 30 f6 7242 7234 movzx ax, bh ; 0f b6 c7 7243 7235 sal ax, 008h ; c1 e0 08 7244 jmp near 05 0adh ; e9 60 fe7245 mov ax, word [bp+01 4h] ; 8b 46 147236 jmp near 05144h ; e9 60 fe 7237 mov ax, word [bp+012h] ; 8b 46 12 7246 7238 xor ah, ah ; 30 e4 7247 7239 or ah, 080h ; 80 cc 80 7248 jmp near 051 2dh ; e9 d5 fe7249 mov bx, 00d3 2h ; bb 320d7240 jmp near 051c4h ; e9 d5 fe 7241 mov bx, 00d38h ; bb 38 0d 7250 7242 mov cx, ds ; 8c d9 7251 7243 mov ax, strict word 00004h ; b8 04 00 7252 call 018 aeh ; e8 4b c67253 mov ax, word [bp+01 4h] ; 8b 46 147244 call 018cch ; e8 d2 c5 7245 mov ax, word [bp+012h] ; 8b 46 12 7254 7246 shr ax, 008h ; c1 e8 08 7255 7247 push ax ; 50 7256 7248 push 005a3h ; 68 a3 05 7257 7249 push strict byte 00004h ; 6a 04 7258 call 01 8e9h ; e8 77c67250 call 0190dh ; e8 04 c6 7259 7251 add sp, strict byte 00006h ; 83 c4 06 7260 mov bx, 00d3 2h ; bb 320d7252 mov bx, 00d38h ; bb 38 0d 7261 7253 mov cx, ds ; 8c d9 7262 7254 mov ax, strict word 00004h ; b8 04 00 7263 call 018aeh ; e8 2e c6 7255 call 018cch ; e8 b5 c5 7256 mov ax, word [bp+00eh] ; 8b 46 0e 7257 push ax ; 50 7264 7258 mov ax, word [bp+010h] ; 8b 46 10 7259 push ax ; 50 7260 mov ax, word [bp+00ch] ; 8b 46 0c 7265 7261 push ax ; 50 7266 7262 mov ax, word [bp+012h] ; 8b 46 12 7267 7263 push ax ; 50 7268 mov ax, word [bp+00eh] ; 8b 46 0e7269 push ax ; 507270 mov ax, word [bp+014h] ; 8b 46 147271 push ax ; 507272 7264 push 005cbh ; 68 cb 05 7273 7265 push strict byte 00004h ; 6a 04 7274 call 01 8e9h ; e8 51 c67266 call 0190dh ; e8 de c5 7275 7267 add sp, strict byte 0000ch ; 83 c4 0c 7276 lea ve ; c97268 lea sp, [bp-002h] ; 8d 66 fe 7277 7269 pop di ; 5f 7270 pop bp ; 5d 7278 7271 retn ; c3 7279 set_geom_lba_: ; 0xf5 29eLB 0x9e7272 set_geom_lba_: ; 0xf5338 LB 0x9e 7280 7273 push si ; 56 7281 7274 push di ; 57 … … 7289 7282 mov di, 000ffh ; bf ff 00 7290 7283 xor bx, bx ; 31 db 7291 jmp short 05 2bfh ; eb 057284 jmp short 05359h ; eb 05 7292 7285 cmp bx, strict byte 00004h ; 83 fb 04 7293 jnl short 05 2d5h ; 7d 167286 jnl short 0536fh ; 7d 16 7294 7287 cmp dx, word [bp-002h] ; 3b 56 fe 7295 jnbe short 05 2cbh ; 77 077296 jne short 05 2ceh ; 75 087288 jnbe short 05365h ; 77 07 7289 jne short 05368h ; 75 08 7297 7290 cmp ax, word [bp-004h] ; 3b 46 fc 7298 jc short 05 2ceh ; 72 037291 jc short 05368h ; 72 03 7299 7292 inc di ; 47 7300 7293 shr di, 1 ; d1 ef … … 7302 7295 rcr ax, 1 ; d1 d8 7303 7296 inc bx ; 43 7304 jmp short 05 2bah ; eb e57297 jmp short 05354h ; eb e5 7305 7298 mov ax, di ; 89 f8 7306 7299 xor dx, dx ; 31 d2 7307 7300 mov bx, strict word 0003fh ; bb 3f 00 7308 7301 xor cx, cx ; 31 c9 7309 call 09 049h ; e8 68 3d7302 call 09219h ; e8 9e 3e 7310 7303 mov bx, ax ; 89 c3 7311 7304 mov cx, dx ; 89 d1 7312 7305 mov ax, word [bp-004h] ; 8b 46 fc 7313 7306 mov dx, word [bp-002h] ; 8b 56 fe 7314 call 09 010h ; e8 22 3d7307 call 091e0h ; e8 58 3e 7315 7308 mov word [es:si+002h], ax ; 26 89 44 02 7316 7309 cmp ax, 00400h ; 3d 00 04 7317 jbe short 05 2fdh ; 76 067310 jbe short 05397h ; 76 06 7318 7311 mov word [es:si+002h], 00400h ; 26 c7 44 02 00 04 7319 7312 mov word [es:si], di ; 26 89 3c … … 7323 7316 pop si ; 5e 7324 7317 retn ; c3 7325 les dx, [bp+di-018h] ; c4 53 e8 7326 push bx ; 53 7327 adc ax, 01554h ; 15 54 15 7318 pushaw ; 60 7328 7319 push sp ; 54 7329 adc ax, 0ed54h ; 15 54 ed 7320 xchg byte [si-04dh], dl ; 86 54 b3 7321 push sp ; 54 7322 mov BL, strict byte 054h ; b3 54 7323 mov BL, strict byte 054h ; b3 54 7324 mov dx, word [bp-047h] ; 8b 56 b9 7325 push di ; 57 7326 mov cx, 0a457h ; b9 57 a4 7327 push si ; 56 7328 xchg si, ax ; 96 7329 push di ; 57 7330 mov cx, 0b957h ; b9 57 b9 7331 push di ; 57 7332 xchg si, ax ; 96 7333 push di ; 57 7334 xchg si, ax ; 96 7335 push di ; 57 7336 mov cx, 0b957h ; b9 57 b9 7337 push di ; 57 7338 sbb dl, byte [bx-06ah] ; 1a 57 96 7339 push di ; 57 7340 mov cx, 0b957h ; b9 57 b9 7341 push di ; 57 7342 xchg si, ax ; 96 7343 push di ; 57 7344 dec dx ; 4a 7345 push di ; 57 7346 mov cx, 0b957h ; b9 57 b9 7347 push di ; 57 7348 db 0b9h 7349 push di ; 57 7350 _int13_harddisk: ; 0xf53d6 LB 0x441 7330 7351 push bp ; 55 7331 sbb dx, word [bx+01bh] ; 1b 57 1b 7332 push di ; 57 7333 push ES ; 06 7334 push si ; 56 7335 clc ; f8 7336 push si ; 56 7337 sbb dx, word [bx+01bh] ; 1b 57 1b 7338 push di ; 57 7339 clc ; f8 7340 push si ; 56 7341 clc ; f8 7342 push si ; 56 7343 sbb dx, word [bx+01bh] ; 1b 57 1b 7344 push di ; 57 7345 jl short 05382h ; 7c 56 7346 clc ; f8 7347 push si ; 56 7348 sbb dx, word [bx+01bh] ; 1b 57 1b 7349 push di ; 57 7350 clc ; f8 7351 push si ; 56 7352 lodsb ; ac 7353 push si ; 56 7354 sbb dx, word [bx+01bh] ; 1b 57 1b 7355 push di ; 57 7356 db 01bh 7357 push di ; 57 7358 _int13_harddisk: ; 0xf533c LB 0x43c 7359 enter 00010h, 000h ; c8 10 00 00 7352 mov bp, sp ; 89 e5 7353 sub sp, strict byte 00010h ; 83 ec 10 7360 7354 mov dx, strict word 0000eh ; ba 0e 00 7361 7355 mov ax, strict word 00040h ; b8 40 00 7362 call 0161ch ; e8 d3c27356 call 0161ch ; e8 37 c2 7363 7357 mov si, 00122h ; be 22 01 7364 7358 mov word [bp-004h], ax ; 89 46 fc … … 7366 7360 mov dx, 0008eh ; ba 8e 00 7367 7361 mov ax, strict word 00040h ; b8 40 00 7368 call 0160eh ; e8 b4c27362 call 0160eh ; e8 18 c2 7369 7363 mov ax, word [bp+00eh] ; 8b 46 0e 7370 7364 xor ah, ah ; 30 e4 7371 7365 cmp ax, 00080h ; 3d 80 00 7372 jc short 05 369h ; 72 057366 jc short 05405h ; 72 05 7373 7367 cmp ax, 00090h ; 3d 90 00 7374 jc short 05 387h ; 72 1e7368 jc short 05423h ; 72 1e 7375 7369 mov ax, word [bp+00eh] ; 8b 46 0e 7376 7370 xor ah, ah ; 30 e4 … … 7382 7376 push 005fdh ; 68 fd 05 7383 7377 push strict byte 00004h ; 6a 04 7384 call 01 8e9h ; e8 68 c57378 call 0190dh ; e8 f0 c4 7385 7379 add sp, strict byte 0000ah ; 83 c4 0a 7386 jmp near 057 36h ; e9 af037380 jmp near 057d4h ; e9 b1 03 7387 7381 mov ax, word [bp+00eh] ; 8b 46 0e 7388 7382 xor ah, ah ; 30 e4 … … 7393 7387 mov byte [bp-002h], dl ; 88 56 fe 7394 7388 cmp dl, 010h ; 80 fa 10 7395 jc short 05 3b0h ; 72 107389 jc short 0544ch ; 72 10 7396 7390 push ax ; 50 7397 7391 mov ax, word [bp+016h] ; 8b 46 16 … … 7400 7394 push 005eeh ; 68 ee 05 7401 7395 push 00628h ; 68 28 06 7402 jmp short 05 37ch ; eb cc7396 jmp short 05418h ; eb cc 7403 7397 mov bx, word [bp+016h] ; 8b 5e 16 7404 7398 shr bx, 008h ; c1 eb 08 7405 7399 cmp bx, strict byte 00018h ; 83 fb 18 7406 jnbe near 057 1bh ; 0f 87 5e037400 jnbe near 057b9h ; 0f 87 60 03 7407 7401 add bx, bx ; 01 db 7408 jmp word [cs:bx+053 0ah] ; 2e ff a7 0a537402 jmp word [cs:bx+053a4h] ; 2e ff a7 a4 53 7409 7403 cmp byte [bp-002h], 008h ; 80 7e fe 08 7410 jnc near 05 3d3h ; 0f 83 07 007404 jnc near 0546fh ; 0f 83 07 00 7411 7405 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7412 call 01 be0h ; e8 0d c87406 call 01c0ch ; e8 9d c7 7413 7407 mov byte [bp+017h], 000h ; c6 46 17 00 7414 7408 xor bx, bx ; 31 db 7415 7409 mov dx, strict word 00074h ; ba 74 00 7416 7410 mov ax, strict word 00040h ; b8 40 00 7417 call 0160eh ; e8 2c c27411 call 0160eh ; e8 90 c1 7418 7412 and byte [bp+01ch], 0feh ; 80 66 1c fe 7419 leave ; c9 7413 mov sp, bp ; 89 ec 7414 pop bp ; 5d 7420 7415 retn ; c3 7421 7416 mov dx, strict word 00074h ; ba 74 00 7422 7417 mov ax, strict word 00040h ; b8 40 00 7423 call 01600h ; e8 0f c27418 call 01600h ; e8 71 c1 7424 7419 mov cl, al ; 88 c1 7425 7420 mov dx, word [bp+016h] ; 8b 56 16 … … 7432 7427 mov dx, strict word 00074h ; ba 74 00 7433 7428 mov ax, strict word 00040h ; b8 40 00 7434 call 0160eh ; e8 00 c27429 call 0160eh ; e8 62 c1 7435 7430 test cl, cl ; 84 c9 7436 je short 05 3d7h ; 74 c57437 jmp near 057 52h ; e9 3d 037431 je short 05473h ; 74 c3 7432 jmp near 057f0h ; e9 3d 03 7438 7433 mov ax, word [bp+016h] ; 8b 46 16 7439 7434 xor ah, ah ; 30 e4 … … 7455 7450 mov ax, word [bp-00ch] ; 8b 46 f4 7456 7451 cmp ax, 00080h ; 3d 80 00 7457 jnbe short 054 50h ; 77 047452 jnbe short 054eeh ; 77 04 7458 7453 test ax, ax ; 85 c0 7459 jne short 05 473h ; 75 237460 mov bx, 00d3 2h ; bb 320d7454 jne short 05511h ; 75 23 7455 mov bx, 00d38h ; bb 38 0d 7461 7456 mov cx, ds ; 8c d9 7462 7457 mov ax, strict word 00004h ; b8 04 00 7463 call 018 aeh ; e8 53 c47458 call 018cch ; e8 d3 c3 7464 7459 mov ax, word [bp+016h] ; 8b 46 16 7465 7460 shr ax, 008h ; c1 e8 08 … … 7468 7463 push 0065ah ; 68 5a 06 7469 7464 push strict byte 00004h ; 6a 04 7470 call 01 8e9h ; e8 7cc47465 call 0190dh ; e8 02 c4 7471 7466 add sp, strict byte 00008h ; 83 c4 08 7472 jmp near 057 36h ; e9 c3 027467 jmp near 057d4h ; e9 c3 02 7473 7468 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7474 7469 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7481 7476 mov word [bp-00ah], dx ; 89 56 f6 7482 7477 cmp di, ax ; 39 c7 7483 jnc short 05 4a0h ; 73 0c7478 jnc short 0553eh ; 73 0c 7484 7479 cmp cx, word [bp-008h] ; 3b 4e f8 7485 jbe short 05 4a0h ; 76 077480 jbe short 0553eh ; 76 07 7486 7481 mov ax, word [bp-006h] ; 8b 46 fa 7487 7482 cmp ax, dx ; 39 d0 7488 jbe short 05 4ceh ; 76 2e7489 mov bx, 00d3 2h ; bb 320d7483 jbe short 0556ch ; 76 2e 7484 mov bx, 00d38h ; bb 38 0d 7490 7485 mov cx, ds ; 8c d9 7491 7486 mov ax, strict word 00004h ; b8 04 00 7492 call 018 aeh ; e8 03 c47487 call 018cch ; e8 83 c3 7493 7488 push dword [bp-008h] ; 66 ff 76 f8 7494 7489 push di ; 57 … … 7502 7497 push 00682h ; 68 82 06 7503 7498 push strict byte 00004h ; 6a 04 7504 call 01 8e9h ; e8 21 c47499 call 0190dh ; e8 a7 c3 7505 7500 add sp, strict byte 00010h ; 83 c4 10 7506 jmp near 057 36h ; e9 68 027501 jmp near 057d4h ; e9 68 02 7507 7502 mov ax, word [bp+016h] ; 8b 46 16 7508 7503 shr ax, 008h ; c1 e8 08 7509 7504 cmp ax, strict word 00004h ; 3d 04 00 7510 jne short 05 4dch ; 75 037511 jmp near 05 3d3h ; e9 f7fe7505 jne short 0557ah ; 75 03 7506 jmp near 0546fh ; e9 f5 fe 7512 7507 movzx bx, byte [bp-002h] ; 0f b6 5e fe 7513 7508 imul bx, bx, strict byte 00018h ; 6b db 18 … … 7515 7510 add bx, si ; 01 f3 7516 7511 cmp cx, word [es:bx+02ch] ; 26 3b 4f 2c 7517 jne short 05 4fdh ; 75 0f7512 jne short 0559bh ; 75 0f 7518 7513 mov ax, word [es:bx+030h] ; 26 8b 47 30 7519 7514 cmp ax, word [bp-00ah] ; 3b 46 f6 7520 jne short 05 4fdh ; 75 067515 jne short 0559bh ; 75 06 7521 7516 cmp byte [bp-002h], 008h ; 80 7e fe 08 7522 jc short 055 2dh ; 72 307517 jc short 055cbh ; 72 30 7523 7518 mov ax, di ; 89 f8 7524 7519 xor dx, dx ; 31 d2 7525 7520 mov bx, cx ; 89 cb 7526 7521 xor cx, cx ; 31 c9 7527 call 09 049h ; e8 41 3b7522 call 09219h ; e8 73 3c 7528 7523 xor bx, bx ; 31 db 7529 7524 add ax, word [bp-008h] ; 03 46 f8 … … 7531 7526 mov bx, word [bp-00ah] ; 8b 5e f6 7532 7527 xor cx, cx ; 31 c9 7533 call 09 049h ; e8 32 3b7528 call 09219h ; e8 64 3c 7534 7529 xor bx, bx ; 31 db 7535 7530 add ax, word [bp-006h] ; 03 46 fa … … 7584 7579 mov word [bp+016h], bx ; 89 5e 16 7585 7580 test dl, dl ; 84 d2 7586 je near 05 3d3h ; 0f 84 15fe7587 mov bx, 00d3 2h ; bb 320d7581 je near 0546fh ; 0f 84 13 fe 7582 mov bx, 00d38h ; bb 38 0d 7588 7583 mov cx, ds ; 8c d9 7589 7584 mov ax, strict word 00004h ; b8 04 00 7590 call 018 aeh ; e8 e5 c27585 call 018cch ; e8 65 c2 7591 7586 movzx ax, dl ; 0f b6 c2 7592 7587 push ax ; 50 … … 7597 7592 push 006c9h ; 68 c9 06 7598 7593 push strict byte 00004h ; 6a 04 7599 call 01 8e9h ; e8 0a c37594 call 0190dh ; e8 90 c2 7600 7595 add sp, strict byte 0000ah ; 83 c4 0a 7601 7596 mov ax, word [bp+016h] ; 8b 46 16 7602 7597 xor ah, ah ; 30 e4 7603 7598 or ah, 00ch ; 80 cc 0c 7604 jmp near 057 3eh ; e9 51 017605 mov bx, 00d3 2h ; bb 320d7599 jmp near 057dch ; e9 51 01 7600 mov bx, 00d38h ; bb 38 0d 7606 7601 mov cx, ds ; 8c d9 7607 7602 mov ax, strict word 00004h ; b8 04 00 7608 call 018 aeh ; e8 b6 c27603 call 018cch ; e8 36 c2 7609 7604 push 006eah ; 68 ea 06 7610 7605 push strict byte 00004h ; 6a 04 7611 call 01 8e9h ; e8 e9c27606 call 0190dh ; e8 6f c2 7612 7607 add sp, strict byte 00004h ; 83 c4 04 7613 jmp near 05 3d3h ; e9 cdfd7608 jmp near 0546fh ; e9 cb fd 7614 7609 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7615 7610 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7654 7649 or dx, ax ; 09 c2 7655 7650 mov word [bp+012h], dx ; 89 56 12 7656 jmp near 05 3d3h ; e9 57fd7651 jmp near 0546fh ; e9 55 fd 7657 7652 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7658 7653 cwd ; 99 … … 7670 7665 and AL, strict byte 0c0h ; 24 c0 7671 7666 cmp AL, strict byte 040h ; 3c 40 7672 jne short 05 6a1h ; 75 037673 jmp near 05 3d3h ; e9 32fd7667 jne short 0573fh ; 75 03 7668 jmp near 0546fh ; e9 30 fd 7674 7669 mov ax, word [bp+016h] ; 8b 46 16 7675 7670 xor ah, ah ; 30 e4 7676 7671 or ah, 0aah ; 80 cc aa 7677 jmp near 057 3eh ; e9 92 007672 jmp near 057dch ; e9 92 00 7678 7673 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7679 7674 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7689 7684 mov bx, word [bp-008h] ; 8b 5e f8 7690 7685 xor cx, cx ; 31 c9 7691 call 09 049h ; e8 73 397686 call 09219h ; e8 a5 3a 7692 7687 mov bx, word [bp-006h] ; 8b 5e fa 7693 7688 xor cx, cx ; 31 c9 7694 call 09 049h ; e8 6b 397689 call 09219h ; e8 9d 3a 7695 7690 mov word [bp-010h], ax ; 89 46 f0 7696 7691 mov word [bp-00eh], dx ; 89 56 f2 … … 7701 7696 or ah, 003h ; 80 cc 03 7702 7697 mov word [bp+016h], ax ; 89 46 16 7703 jmp near 05 3d7h ; e9 dffc7704 mov bx, 00d3 2h ; bb 320d7698 jmp near 05473h ; e9 dd fc 7699 mov bx, 00d38h ; bb 38 0d 7705 7700 mov cx, ds ; 8c d9 7706 7701 mov ax, strict word 00004h ; b8 04 00 7707 call 018 aeh ; e8 ab c17702 call 018cch ; e8 2b c1 7708 7703 mov ax, word [bp+016h] ; 8b 46 16 7709 7704 shr ax, 008h ; c1 e8 08 … … 7712 7707 push 00704h ; 68 04 07 7713 7708 push strict byte 00004h ; 6a 04 7714 call 01 8e9h ; e8 d4c17709 call 0190dh ; e8 5a c1 7715 7710 add sp, strict byte 00008h ; 83 c4 08 7716 jmp near 05 3d3h ; e9 b8fc7717 mov bx, 00d3 2h ; bb 320d7711 jmp near 0546fh ; e9 b6 fc 7712 mov bx, 00d38h ; bb 38 0d 7718 7713 mov cx, ds ; 8c d9 7719 7714 mov ax, strict word 00004h ; b8 04 00 7720 call 018 aeh ; e8 88 c17715 call 018cch ; e8 08 c1 7721 7716 mov ax, word [bp+016h] ; 8b 46 16 7722 7717 shr ax, 008h ; c1 e8 08 … … 7724 7719 push 005eeh ; 68 ee 05 7725 7720 push 00737h ; 68 37 07 7726 jmp near 05 468h ; e9 32 fd7721 jmp near 05506h ; e9 32 fd 7727 7722 mov ax, word [bp+016h] ; 8b 46 16 7728 7723 xor ah, ah ; 30 e4 … … 7734 7729 mov dx, strict word 00074h ; ba 74 00 7735 7730 mov ax, strict word 00040h ; b8 40 00 7736 call 0160eh ; e8 bcbe7731 call 0160eh ; e8 1e be 7737 7732 or byte [bp+01ch], 001h ; 80 4e 1c 01 7738 leave ; c97739 retn ; c37740 adc word [bx+si+029h], bx ; 11 58 297733 jmp near 05482h ; e9 8b fc 7734 mov DL, strict byte 058h ; b2 58 7735 retf 0ca58h ; ca 58 ca 7741 7736 pop ax ; 58 7742 sub word [bx+si+029h], bx ; 29 58 29 7737 retf 07958h ; ca 58 79 7738 pop sp ; 5c 7739 or ax, 0ca5ah ; 0d 5a ca 7743 7740 pop ax ; 58 7744 fcomp dword [bp+di+06ch] ; d8 5b 6c 7745 pop cx ; 59 7746 sub word [bx+si+072h], bx ; 29 58 72 7747 pop cx ; 59 7748 fcomp dword [bp+di+025h] ; d8 5b 25 7741 adc bx, word [bp+si+079h] ; 13 5a 79 7749 7742 pop sp ; 5c 7750 and ax, 0255ch ; 25 5c 25 7743 enter 0c85ch, 05ch ; c8 5c c8 5c 7744 enter 0c85ch, 05ch ; c8 5c c8 5c 7745 nop ; 90 7751 7746 pop sp ; 5c 7752 and ax, 0ed5ch ; 25 5c ed 7753 pop bx ; 5b 7754 and ax, 0255ch ; 25 5c 25 7755 pop sp ; 5c 7756 _int13_harddisk_ext: ; 0xf5778 LB 0x4c8 7757 enter 00028h, 000h ; c8 28 00 00 7747 enter 0c85ch, 05ch ; c8 5c c8 5c 7748 _int13_harddisk_ext: ; 0xf5817 LB 0x4cc 7749 push bp ; 55 7750 mov bp, sp ; 89 e5 7751 sub sp, strict byte 00028h ; 83 ec 28 7758 7752 mov dx, strict word 0000eh ; ba 0e 00 7759 7753 mov ax, strict word 00040h ; b8 40 00 7760 call 0161ch ; e8 97 be7754 call 0161ch ; e8 f6 bd 7761 7755 mov word [bp-014h], ax ; 89 46 ec 7762 7756 mov dx, strict word 0000eh ; ba 0e 00 7763 7757 mov ax, strict word 00040h ; b8 40 00 7764 call 0161ch ; e8 8b be7758 call 0161ch ; e8 ea bd 7765 7759 mov si, 00122h ; be 22 01 7766 7760 mov word [bp-026h], ax ; 89 46 da … … 7768 7762 mov dx, 0008eh ; ba 8e 00 7769 7763 mov ax, strict word 00040h ; b8 40 00 7770 call 0160eh ; e8 6c be7764 call 0160eh ; e8 cb bd 7771 7765 mov ax, word [bp+00eh] ; 8b 46 0e 7772 7766 xor ah, ah ; 30 e4 7773 7767 cmp ax, 00080h ; 3d 80 00 7774 jc short 05 7b1h ; 72 057768 jc short 05852h ; 72 05 7775 7769 cmp ax, 00090h ; 3d 90 00 7776 jc short 05 7cfh ; 72 1e7770 jc short 05870h ; 72 1e 7777 7771 mov ax, word [bp+00eh] ; 8b 46 0e 7778 7772 xor ah, ah ; 30 e4 … … 7784 7778 push 005fdh ; 68 fd 05 7785 7779 push strict byte 00004h ; 6a 04 7786 call 01 8e9h ; e8 20 c17780 call 0190dh ; e8 a3 c0 7787 7781 add sp, strict byte 0000ah ; 83 c4 0a 7788 jmp near 05c 03h ; e9 34047782 jmp near 05ca6h ; e9 36 04 7789 7783 mov ax, word [bp+00eh] ; 8b 46 0e 7790 7784 xor ah, ah ; 30 e4 … … 7794 7788 mov cl, byte [es:bx+0011fh] ; 26 8a 8f 1f 01 7795 7789 cmp cl, 010h ; 80 f9 10 7796 jc short 05 7f5h ; 72 107790 jc short 05896h ; 72 10 7797 7791 push ax ; 50 7798 7792 mov ax, word [bp+016h] ; 8b 46 16 … … 7801 7795 push 00765h ; 68 65 07 7802 7796 push 00628h ; 68 28 06 7803 jmp short 05 7c4h ; eb cf7797 jmp short 05865h ; eb cf 7804 7798 mov bx, word [bp+016h] ; 8b 5e 16 7805 7799 shr bx, 008h ; c1 eb 08 7806 7800 sub bx, strict byte 00041h ; 83 eb 41 7807 7801 cmp bx, strict byte 0000fh ; 83 fb 0f 7808 jnbe near 05c 25h ; 0f 87 20047802 jnbe near 05cc8h ; 0f 87 22 04 7809 7803 add bx, bx ; 01 db 7810 7804 mov ax, word [bp+016h] ; 8b 46 16 7811 7805 xor ah, ah ; 30 e4 7812 jmp word [cs:bx+057 58h] ; 2e ff a7 58577806 jmp word [cs:bx+057f7h] ; 2e ff a7 f7 57 7813 7807 mov word [bp+010h], 0aa55h ; c7 46 10 55 aa 7814 7808 mov ax, word [bp+016h] ; 8b 46 16 … … 7817 7811 mov word [bp+016h], ax ; 89 46 16 7818 7812 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 7819 jmp near 05 bdch ; e9 b3 037813 jmp near 05c7dh ; e9 b3 03 7820 7814 mov bx, word [bp+00ah] ; 8b 5e 0a 7821 7815 mov es, [bp+004h] ; 8e 46 04 … … 7832 7826 mov ax, word [es:bx+00eh] ; 26 8b 47 0e 7833 7827 or ax, word [bp-00ah] ; 0b 46 f6 7834 je short 05 86ah ; 74 117828 je short 0590bh ; 74 11 7835 7829 mov ax, word [bp+016h] ; 8b 46 16 7836 7830 shr ax, 008h ; c1 e8 08 … … 7839 7833 push 00778h ; 68 78 07 7840 7834 push strict byte 00007h ; 6a 07 7841 jmp short 05 8b4h ; eb 4a7835 jmp short 05955h ; eb 4a 7842 7836 mov es, [bp-010h] ; 8e 46 f0 7843 7837 mov ax, word [es:di+008h] ; 26 8b 45 08 … … 7851 7845 mov ch, byte [es:bx+01eh] ; 26 8a 6f 1e 7852 7846 cmp ax, word [es:bx+034h] ; 26 3b 47 34 7853 jnbe short 05 89ah ; 77 0b7854 jne short 05 8bdh ; 75 2c7847 jnbe short 0593bh ; 77 0b 7848 jne short 0595eh ; 75 2c 7855 7849 mov dx, word [bp-00ah] ; 8b 56 f6 7856 7850 cmp dx, word [es:bx+032h] ; 26 3b 57 32 7857 jc short 05 8bdh ; 72 237858 mov bx, 00d3 2h ; bb 320d7851 jc short 0595eh ; 72 23 7852 mov bx, 00d38h ; bb 38 0d 7859 7853 mov cx, ds ; 8c d9 7860 7854 mov ax, strict word 00004h ; b8 04 00 7861 call 018 aeh ; e8 09 c07855 call 018cch ; e8 86 bf 7862 7856 mov ax, word [bp+016h] ; 8b 46 16 7863 7857 shr ax, 008h ; c1 e8 08 … … 7866 7860 push 007a1h ; 68 a1 07 7867 7861 push strict byte 00004h ; 6a 04 7868 call 01 8e9h ; e8 32 c07862 call 0190dh ; e8 b5 bf 7869 7863 add sp, strict byte 00008h ; 83 c4 08 7870 jmp near 05c 03h ; e9 46037864 jmp near 05ca6h ; e9 48 03 7871 7865 mov dx, word [bp+016h] ; 8b 56 16 7872 7866 shr dx, 008h ; c1 ea 08 7873 7867 mov word [bp-00ch], dx ; 89 56 f4 7874 7868 cmp dx, strict byte 00044h ; 83 fa 44 7875 je near 05 bd8h ; 0f 84 0b 037869 je near 05c79h ; 0f 84 0b 03 7876 7870 cmp dx, strict byte 00047h ; 83 fa 47 7877 je near 05 bd8h ; 0f 84 04 037871 je near 05c79h ; 0f 84 04 03 7878 7872 mov es, [bp-026h] ; 8e 46 da 7879 7873 db 066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h … … 7907 7901 mov word [es:di+002h], ax ; 26 89 45 02 7908 7902 test dl, dl ; 84 d2 7909 je near 05 bd8h ; 0f 84 97 027910 mov bx, 00d3 2h ; bb 320d7903 je near 05c79h ; 0f 84 97 02 7904 mov bx, 00d38h ; bb 38 0d 7911 7905 mov cx, ds ; 8c d9 7912 7906 mov ax, strict word 00004h ; b8 04 00 7913 call 018 aeh ; e8 62 bf7907 call 018cch ; e8 df be 7914 7908 movzx ax, dl ; 0f b6 c2 7915 7909 push ax ; 50 … … 7918 7912 push 006c9h ; 68 c9 06 7919 7913 push strict byte 00004h ; 6a 04 7920 call 01 8e9h ; e8 8bbf7914 call 0190dh ; e8 0e bf 7921 7915 add sp, strict byte 0000ah ; 83 c4 0a 7922 7916 mov ax, word [bp+016h] ; 8b 46 16 7923 7917 xor ah, ah ; 30 e4 7924 7918 or ah, 00ch ; 80 cc 0c 7925 jmp near 05c 0bh ; e9 9f027919 jmp near 05caeh ; e9 a1 02 7926 7920 or ah, 0b2h ; 80 cc b2 7927 jmp near 05c 0bh ; e9 99027921 jmp near 05caeh ; e9 9b 02 7928 7922 mov bx, word [bp+00ah] ; 8b 5e 0a 7929 7923 mov ax, word [bp+004h] ; 8b 46 04 … … 7935 7929 mov word [bp-00eh], ax ; 89 46 f2 7936 7930 cmp ax, strict word 0001ah ; 3d 1a 00 7937 jc near 05c 03h ; 0f 82 74027938 jc near 05a 16h ; 0f 82 83 007931 jc near 05ca6h ; 0f 82 76 02 7932 jc near 05ab7h ; 0f 82 83 00 7939 7933 movzx ax, cl ; 0f b6 c1 7940 7934 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7974 7968 ; mov dword [es:di+014h], strict dword 000000000h ; 66 26 c7 45 14 00 00 00 00 7975 7969 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 7976 jc near 05b 22h ; 0f 82 04 017970 jc near 05bc3h ; 0f 82 04 01 7977 7971 mov es, [bp-004h] ; 8e 46 fc 7978 7972 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 … … 8000 7994 mov al, byte [es:di+023h] ; 26 8a 45 23 8001 7995 test al, al ; 84 c0 8002 jne short 05 a74h ; 75 047996 jne short 05b15h ; 75 04 8003 7997 xor dx, dx ; 31 d2 8004 jmp short 05 a77h ; eb 037998 jmp short 05b18h ; eb 03 8005 7999 mov dx, strict word 00008h ; ba 08 00 8006 8000 or dl, 010h ; 80 ca 10 … … 8017 8011 or word [bp-008h], dx ; 09 56 f8 8018 8012 cmp AL, strict byte 003h ; 3c 03 8019 jne short 05 a9dh ; 75 058013 jne short 05b3eh ; 75 05 8020 8014 mov ax, strict word 00003h ; b8 03 00 8021 jmp short 05 a9fh ; eb 028015 jmp short 05b40h ; eb 02 8022 8016 xor ax, ax ; 31 c0 8023 8017 or word [bp-008h], ax ; 09 46 f8 … … 8044 8038 xor ch, ch ; 30 ed 8045 8039 mov byte [bp-002h], ch ; 88 6e fe 8046 jmp short 05b 03h ; eb 068040 jmp short 05ba4h ; eb 06 8047 8041 cmp byte [bp-002h], 00fh ; 80 7e fe 0f 8048 jnc short 05b 18h ; 73 158042 jnc short 05bb9h ; 73 15 8049 8043 movzx dx, byte [bp-002h] ; 0f b6 56 fe 8050 8044 add dx, 00312h ; 81 c2 12 03 8051 8045 mov ax, word [bp-014h] ; 8b 46 ec 8052 call 01600h ; e8 efba8046 call 01600h ; e8 4e ba 8053 8047 add ch, al ; 00 c5 8054 8048 inc byte [bp-002h] ; fe 46 fe 8055 jmp short 05 afdh ; eb e58049 jmp short 05b9eh ; eb e5 8056 8050 neg ch ; f6 dd 8057 8051 mov es, [bp-026h] ; 8e 46 da 8058 8052 mov byte [es:si+001ffh], ch ; 26 88 ac ff 01 8059 8053 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 8060 jc near 05 bd8h ; 0f 82 ae 008054 jc near 05c79h ; 0f 82 ae 00 8061 8055 movzx ax, cl ; 0f b6 c1 8062 8056 cwd ; 99 … … 8076 8070 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 8077 8071 test al, al ; 84 c0 8078 jne short 05 b6ah ; 75 098072 jne short 05c0bh ; 75 09 8079 8073 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 8080 8074 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 … … 8085 8079 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 8086 8080 test al, al ; 84 c0 8087 jne short 05 b96h ; 75 138081 jne short 05c37h ; 75 13 8088 8082 mov word [es:bx+030h], dx ; 26 89 57 30 8089 8083 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h … … 8100 8094 xor cl, cl ; 30 c9 8101 8095 mov CH, strict byte 01eh ; b5 1e 8102 jmp short 05 bbdh ; eb 058096 jmp short 05c5eh ; eb 05 8103 8097 cmp ch, 040h ; 80 fd 40 8104 jnc short 05 bcfh ; 73 128098 jnc short 05c70h ; 73 12 8105 8099 movzx dx, ch ; 0f b6 d5 8106 8100 add dx, word [bp+00ah] ; 03 56 0a 8107 8101 mov ax, word [bp+004h] ; 8b 46 04 8108 call 01600h ; e8 37 ba8102 call 01600h ; e8 96 b9 8109 8103 add cl, al ; 00 c1 8110 8104 db 0feh, 0c5h 8111 8105 ; inc ch ; fe c5 8112 jmp short 05 bb8h ; eb e98106 jmp short 05c59h ; eb e9 8113 8107 neg cl ; f6 d9 8114 8108 mov es, [bp-004h] ; 8e 46 fc … … 8118 8112 mov dx, strict word 00074h ; ba 74 00 8119 8113 mov ax, strict word 00040h ; b8 40 00 8120 call 0160eh ; e8 27 ba8114 call 0160eh ; e8 86 b9 8121 8115 and byte [bp+01ch], 0feh ; 80 66 1c fe 8122 leave ; c9 8116 mov sp, bp ; 89 ec 8117 pop bp ; 5d 8123 8118 retn ; c3 8124 8119 cmp ax, strict word 00006h ; 3d 06 00 8125 je short 05 bd8h ; 74 e68120 je short 05c79h ; 74 e4 8126 8121 cmp ax, strict word 00001h ; 3d 01 00 8127 jc short 05c 03h ; 72 0c8128 jbe short 05 bd8h ; 76 df8122 jc short 05ca6h ; 72 0c 8123 jbe short 05c79h ; 76 dd 8129 8124 cmp ax, strict word 00003h ; 3d 03 00 8130 jc short 05c 03h ; 72 058125 jc short 05ca6h ; 72 05 8131 8126 cmp ax, strict word 00004h ; 3d 04 00 8132 jbe short 05 bd8h ; 76 d58127 jbe short 05c79h ; 76 d3 8133 8128 mov ax, word [bp+016h] ; 8b 46 16 8134 8129 xor ah, ah ; 30 e4 … … 8140 8135 mov dx, strict word 00074h ; ba 74 00 8141 8136 mov ax, strict word 00040h ; b8 40 00 8142 call 0160eh ; e8 efb98137 call 0160eh ; e8 4c b9 8143 8138 or byte [bp+01ch], 001h ; 80 4e 1c 01 8144 leave ; c9 8145 retn ; c3 8146 mov bx, 00d32h ; bb 32 0d 8139 jmp short 05c8ch ; eb c4 8140 mov bx, 00d38h ; bb 38 0d 8147 8141 mov cx, ds ; 8c d9 8148 8142 mov ax, strict word 00004h ; b8 04 00 8149 call 018 aeh ; e8 7e bc8143 call 018cch ; e8 f9 bb 8150 8144 mov ax, word [bp+016h] ; 8b 46 16 8151 8145 shr ax, 008h ; c1 e8 08 … … 8153 8147 push 00765h ; 68 65 07 8154 8148 push 00737h ; 68 37 07 8155 jmp near 058b2h ; e9 72 fc 8156 _int14_function: ; 0xf5c40 LB 0x154 8157 push si ; 56 8149 jmp near 05953h ; e9 70 fc 8150 _int14_function: ; 0xf5ce3 LB 0x155 8158 8151 push bp ; 55 8159 8152 mov bp, sp ; 89 e5 8153 push si ; 56 8160 8154 sti ; fb 8161 mov dx, word [bp+0 10h] ; 8b 56 108155 mov dx, word [bp+00eh] ; 8b 56 0e 8162 8156 add dx, dx ; 01 d2 8163 8157 mov ax, strict word 00040h ; b8 40 00 8164 call 0161ch ; e8 ccb98158 call 0161ch ; e8 29 b9 8165 8159 mov si, ax ; 89 c6 8166 8160 mov bx, ax ; 89 c3 8167 mov dx, word [bp+0 10h] ; 8b 56 108161 mov dx, word [bp+00eh] ; 8b 56 0e 8168 8162 add dx, strict byte 0007ch ; 83 c2 7c 8169 8163 mov ax, strict word 00040h ; b8 40 00 8170 call 01600h ; e8 a0 b98164 call 01600h ; e8 fd b8 8171 8165 mov cl, al ; 88 c1 8172 cmp word [bp+0 10h], strict byte 00004h ; 83 7e 10048173 jnc near 05 d8dh ; 0f 83 23018166 cmp word [bp+00eh], strict byte 00004h ; 83 7e 0e 04 8167 jnc near 05e2eh ; 0f 83 21 01 8174 8168 test si, si ; 85 f6 8175 jbe near 05 d8dh ; 0f 86 1d018176 mov al, byte [bp+01 5h] ; 8a 46 158169 jbe near 05e2eh ; 0f 86 1b 01 8170 mov al, byte [bp+013h] ; 8a 46 13 8177 8171 cmp AL, strict byte 001h ; 3c 01 8178 jc short 05 c88h ; 72 118179 jbe short 05 cdch ; 76 638172 jc short 05d2bh ; 72 11 8173 jbe short 05d7fh ; 76 63 8180 8174 cmp AL, strict byte 003h ; 3c 03 8181 je near 05 d75h ; 0f 84 f6008175 je near 05e17h ; 0f 84 f5 00 8182 8176 cmp AL, strict byte 002h ; 3c 02 8183 je near 05d 2ah ; 0f 84 a5 008184 jmp near 05 d86h ; e9 fe008177 je near 05dcdh ; 0f 84 a5 00 8178 jmp near 05e28h ; e9 fd 00 8185 8179 test al, al ; 84 c0 8186 jne near 05 d86h ; 0f 85 f8008180 jne near 05e28h ; 0f 85 f7 00 8187 8181 lea dx, [bx+003h] ; 8d 57 03 8188 8182 in AL, DX ; ec … … 8191 8185 or AL, strict byte 080h ; 0c 80 8192 8186 out DX, AL ; ee 8193 mov al, byte [bp+01 4h] ; 8a 46 148187 mov al, byte [bp+012h] ; 8a 46 12 8194 8188 and AL, strict byte 0e0h ; 24 e0 8195 8189 movzx cx, al ; 0f b6 c8 … … 8202 8196 lea dx, [bx+001h] ; 8d 57 01 8203 8197 out DX, AL ; ee 8204 mov al, byte [bp+01 4h] ; 8a 46 148198 mov al, byte [bp+012h] ; 8a 46 12 8205 8199 and AL, strict byte 01fh ; 24 1f 8206 8200 lea dx, [bx+003h] ; 8d 57 03 … … 8210 8204 db 02ah, 0e4h 8211 8205 ; sub ah, ah ; 2a e4 8212 mov byte [bp+01 5h], al ; 88 46 158206 mov byte [bp+013h], al ; 88 46 13 8213 8207 lea dx, [bx+006h] ; 8d 57 06 8214 8208 in AL, DX ; ec 8215 8209 db 02ah, 0e4h 8216 8210 ; sub ah, ah ; 2a e4 8217 mov byte [bp+01 4h], al ; 88 46 148218 jmp near 05 d66h ; e9 97 008211 mov byte [bp+012h], al ; 88 46 12 8212 jmp near 05e09h ; e9 97 00 8219 8213 mov AL, strict byte 017h ; b0 17 8220 8214 mov dx, bx ; 89 da … … 8223 8217 mov AL, strict byte 004h ; b0 04 8224 8218 out DX, AL ; ee 8225 jmp short 05 cb1h ; eb d58219 jmp short 05d54h ; eb d5 8226 8220 mov dx, strict word 0006ch ; ba 6c 00 8227 8221 mov ax, strict word 00040h ; b8 40 00 8228 call 0161ch ; e8 37 b98222 call 0161ch ; e8 94 b8 8229 8223 mov si, ax ; 89 c6 8230 8224 lea dx, [bx+005h] ; 8d 57 05 … … 8234 8228 and ax, strict word 00060h ; 25 60 00 8235 8229 cmp ax, strict word 00060h ; 3d 60 00 8236 je short 05d 0ch ; 74 178230 je short 05dafh ; 74 17 8237 8231 test cl, cl ; 84 c9 8238 je short 05d 0ch ; 74 138232 je short 05dafh ; 74 13 8239 8233 mov dx, strict word 0006ch ; ba 6c 00 8240 8234 mov ax, strict word 00040h ; b8 40 00 8241 call 0161ch ; e8 1a b98235 call 0161ch ; e8 77 b8 8242 8236 cmp ax, si ; 39 f0 8243 je short 05 ce7h ; 74 e18237 je short 05d8ah ; 74 e1 8244 8238 mov si, ax ; 89 c6 8245 8239 db 0feh, 0c9h 8246 8240 ; dec cl ; fe c9 8247 jmp short 05 ce7h ; eb db8241 jmp short 05d8ah ; eb db 8248 8242 test cl, cl ; 84 c9 8249 je short 05d 16h ; 74 068250 mov al, byte [bp+01 4h] ; 8a 46 148243 je short 05db9h ; 74 06 8244 mov al, byte [bp+012h] ; 8a 46 12 8251 8245 mov dx, bx ; 89 da 8252 8246 out DX, AL ; ee … … 8255 8249 db 02ah, 0e4h 8256 8250 ; sub ah, ah ; 2a e4 8257 mov byte [bp+01 5h], al ; 88 46 158251 mov byte [bp+013h], al ; 88 46 13 8258 8252 test cl, cl ; 84 c9 8259 jne short 05 d66h ; 75 438253 jne short 05e09h ; 75 43 8260 8254 or AL, strict byte 080h ; 0c 80 8261 mov byte [bp+01 5h], al ; 88 46 158262 jmp short 05 d66h ; eb 3c8255 mov byte [bp+013h], al ; 88 46 13 8256 jmp short 05e09h ; eb 3c 8263 8257 mov dx, strict word 0006ch ; ba 6c 00 8264 8258 mov ax, strict word 00040h ; b8 40 00 8265 call 0161ch ; e8 e9b88259 call 0161ch ; e8 46 b8 8266 8260 mov si, ax ; 89 c6 8267 8261 lea dx, [bx+005h] ; 8d 57 05 … … 8270 8264 ; sub ah, ah ; 2a e4 8271 8265 test AL, strict byte 001h ; a8 01 8272 jne short 05d 56h ; 75 178266 jne short 05df9h ; 75 17 8273 8267 test cl, cl ; 84 c9 8274 je short 05d 56h ; 74 138268 je short 05df9h ; 74 13 8275 8269 mov dx, strict word 0006ch ; ba 6c 00 8276 8270 mov ax, strict word 00040h ; b8 40 00 8277 call 0161ch ; e8 d0b88271 call 0161ch ; e8 2d b8 8278 8272 cmp ax, si ; 39 f0 8279 je short 05d 35h ; 74 e58273 je short 05dd8h ; 74 e5 8280 8274 mov si, ax ; 89 c6 8281 8275 db 0feh, 0c9h 8282 8276 ; dec cl ; fe c9 8283 jmp short 05d 35h ; eb df8277 jmp short 05dd8h ; eb df 8284 8278 test cl, cl ; 84 c9 8285 je short 05 d6dh ; 74 138286 mov byte [bp+01 5h], 000h ; c6 46 15008279 je short 05e0fh ; 74 12 8280 mov byte [bp+013h], 000h ; c6 46 13 00 8287 8281 mov dx, bx ; 89 da 8288 8282 in AL, DX ; ec 8289 8283 db 02ah, 0e4h 8290 8284 ; sub ah, ah ; 2a e4 8291 mov byte [bp+014h], al ; 88 46 14 8292 and byte [bp+01eh], 0feh ; 80 66 1e fe 8293 pop bp ; 5d 8294 pop si ; 5e 8295 retn ; c3 8285 mov byte [bp+012h], al ; 88 46 12 8286 and byte [bp+01ch], 0feh ; 80 66 1c fe 8287 jmp short 05e32h ; eb 23 8296 8288 lea dx, [bx+005h] ; 8d 57 05 8297 8289 in AL, DX ; ec 8298 8290 db 02ah, 0e4h 8299 8291 ; sub ah, ah ; 2a e4 8300 jmp short 05d 25h ; eb b08292 jmp short 05dc8h ; eb b1 8301 8293 lea dx, [si+005h] ; 8d 54 05 8302 8294 in AL, DX ; ec 8303 8295 db 02ah, 0e4h 8304 8296 ; sub ah, ah ; 2a e4 8305 mov byte [bp+01 5h], al ; 88 46 158297 mov byte [bp+013h], al ; 88 46 13 8306 8298 lea dx, [si+006h] ; 8d 54 06 8307 8299 in AL, DX ; ec 8308 8300 db 02ah, 0e4h 8309 8301 ; sub ah, ah ; 2a e4 8310 jmp short 05d63h ; eb dd 8311 or byte [bp+01eh], 001h ; 80 4e 1e 01 8302 jmp short 05e06h ; eb de 8303 or byte [bp+01ch], 001h ; 80 4e 1c 01 8304 jmp short 05e32h ; eb 04 8305 or byte [bp+01ch], 001h ; 80 4e 1c 01 8306 lea sp, [bp-002h] ; 8d 66 fe 8307 pop si ; 5e 8312 8308 pop bp ; 5d 8313 pop si ; 5e8314 8309 retn ; c3 8315 or byte [bp+01eh], 001h ; 80 4e 1e 01 8316 pop bp ; 5d 8317 pop si ; 5e 8318 retn ; c3 8319 set_enable_a20_: ; 0xf5d94 LB 0x29 8310 set_enable_a20_: ; 0xf5e38 LB 0x2c 8311 push bp ; 55 8312 mov bp, sp ; 89 e5 8320 8313 push bx ; 53 8321 8314 push cx ; 51 8322 8315 push dx ; 52 8323 push bp ; 558324 mov bp, sp ; 89 e58325 8316 mov bx, ax ; 89 c3 8326 8317 mov dx, 00092h ; ba 92 00 … … 8330 8321 mov cl, al ; 88 c1 8331 8322 test bx, bx ; 85 db 8332 je short 05 dadh ; 74 058323 je short 05e51h ; 74 05 8333 8324 or AL, strict byte 002h ; 0c 02 8334 8325 out DX, AL ; ee 8335 jmp short 05 db0h ; eb 038326 jmp short 05e54h ; eb 03 8336 8327 and AL, strict byte 0fdh ; 24 fd 8337 8328 out DX, AL ; ee … … 8340 8331 ; setne al ; 0f 95 c0 8341 8332 xor ah, ah ; 30 e4 8342 pop bp ; 5d8333 lea sp, [bp-006h] ; 8d 66 fa 8343 8334 pop dx ; 5a 8344 8335 pop cx ; 59 8345 8336 pop bx ; 5b 8337 pop bp ; 5d 8346 8338 retn ; c3 8347 set_e820_range_: ; 0xf5 dbdLB 0x8c8339 set_e820_range_: ; 0xf5e64 LB 0x8c 8348 8340 push si ; 56 8349 8341 push bp ; 55 … … 8374 8366 retn 0000ah ; c2 0a 00 8375 8367 in AL, DX ; ec 8376 jmp near 0 1ff0h ; e9 d8 c18368 jmp near 02097h ; e9 d8 c1 8377 8369 sar byte [bx-06f6fh], 089h ; c0 bf 91 90 89 8378 8370 mov byte [bx+05283h], al ; 88 87 83 52 … … 8380 8372 inc cx ; 41 8381 8373 and AL, strict byte 000h ; 24 00 8382 in AL, strict byte 062h ; e4 62 8383 xchg word [bp-066h], bx ; 87 5e 9a 8384 pop si ; 5e 8385 sub AL, strict byte 05fh ; 2c 5f 8386 xor bl, byte [bx+037h] ; 32 5f 37 8374 db 08fh, 063h, 02fh 8375 ; pop word [bp+di+02fh] ; 8f 63 2f 8387 8376 pop di ; 5f 8388 cmp AL, strict byte 05fh ; 3c 5f 8389 ficomp word [bx+07bh] ; de 5f 7b 8390 popaw ; 61 8391 mov ax, word [02861h] ; a1 61 28 8377 inc dx ; 42 8392 8378 pop di ; 5f 8393 sub byte [bx+06eh], bl ; 28 5f 6e 8394 bound dx, [bp-0569eh] ; 62 96 62 a9 8395 bound di, [bx+si+02c62h] ; 62 b8 62 2c 8379 xlatb ; d7 8396 8380 pop di ; 5f 8397 db 0bfh 8398 db 062h 8399 _int15_function: ; 0xf5e49 LB 0x4c9 8381 fstp qword [bx-01eh] ; dd 5f e2 8382 pop di ; 5f 8383 out 05fh, ax ; e7 5f 8384 mov word [bx+si+026h], sp ; 89 60 26 8385 bound cx, [si+062h] ; 62 4c 62 8386 rcr byte [bx-030h], 1 ; d0 5f d0 8387 pop di ; 5f 8388 sbb word [bp+di+041h], sp ; 19 63 41 8389 arpl word [si+063h], dx ; 63 54 63 8390 arpl word [bp+di-029h], sp ; 63 63 d7 8391 pop di ; 5f 8392 push strict byte 00063h ; 6a 63 8393 _int15_function: ; 0xf5ef0 LB 0x4cd 8394 push bp ; 55 8395 mov bp, sp ; 89 e5 8400 8396 push si ; 56 8401 8397 push di ; 57 8402 enter 00004h, 000h ; c8 04 00 00 8403 mov ax, word [bp+016h] ; 8b 46 16 8398 push ax ; 50 8399 push ax ; 50 8400 mov ax, word [bp+012h] ; 8b 46 12 8404 8401 shr ax, 008h ; c1 e8 08 8405 8402 cmp ax, 000ech ; 3d ec 00 8406 jnbe near 06 2e4h ; 0f 87 88048403 jnbe near 0638fh ; 0f 87 8b 04 8407 8404 push CS ; 0e 8408 8405 pop ES ; 07 8409 8406 mov cx, strict word 00012h ; b9 12 00 8410 mov di, 05e 14h ; bf 145e8407 mov di, 05ebbh ; bf bb 5e 8411 8408 repne scasb ; f2 ae 8412 8409 sal cx, 1 ; d1 e1 8413 8410 mov di, cx ; 89 cf 8414 mov si, word [cs:di+05e 25h] ; 2e 8b b5 255e8415 mov ax, word [bp+01 6h] ; 8b 46 168411 mov si, word [cs:di+05ecch] ; 2e 8b b5 cc 5e 8412 mov ax, word [bp+012h] ; 8b 46 12 8416 8413 xor ah, ah ; 30 e4 8417 mov cx, word [bp+01 ch] ; 8b 4e 1c8414 mov cx, word [bp+018h] ; 8b 4e 18 8418 8415 and cl, 0feh ; 80 e1 fe 8419 mov bx, word [bp+01 ch] ; 8b 5e 1c8416 mov bx, word [bp+018h] ; 8b 5e 18 8420 8417 or bl, 001h ; 80 cb 01 8421 8418 mov dx, ax ; 89 c2 8422 8419 or dh, 086h ; 80 ce 86 8423 8420 jmp si ; ff e6 8424 mov ax, word [bp+01 6h] ; 8b 46 168421 mov ax, word [bp+012h] ; 8b 46 12 8425 8422 xor ah, ah ; 30 e4 8426 8423 cmp ax, 000c0h ; 3d c0 00 8427 jne near 06 2e4h ; 0f 85 51048428 or byte [bp+01 ch], 001h ; 80 4e 1c018429 jmp near 06 28dh ; e9 f3038424 jne near 0638fh ; 0f 85 54 04 8425 or byte [bp+018h], 001h ; 80 4e 18 01 8426 jmp near 06338h ; e9 f6 03 8430 8427 mov dx, ax ; 89 c2 8431 8428 cmp ax, strict word 00001h ; 3d 01 00 8432 jc short 05 eafh ; 72 0e8433 jbe short 05 ec3h ; 76 208429 jc short 05f57h ; 72 0e 8430 jbe short 05f6bh ; 76 20 8434 8431 cmp ax, strict word 00003h ; 3d 03 00 8435 je short 05 ef0h ; 74 488432 je short 05f98h ; 74 48 8436 8433 cmp ax, strict word 00002h ; 3d 02 00 8437 je short 05 ed3h ; 74 268438 jmp short 05 efdh ; eb 4e8434 je short 05f7bh ; 74 26 8435 jmp short 05fa5h ; eb 4e 8439 8436 test ax, ax ; 85 c0 8440 jne short 05 efdh ; 75 4a8437 jne short 05fa5h ; 75 4a 8441 8438 xor ax, ax ; 31 c0 8442 call 05 d94h ; e8 dcfe8443 and byte [bp+01 ch], 0feh ; 80 66 1cfe8444 mov byte [bp+01 7h], 000h ; c6 46 17008445 jmp near 05f 28h ; e9 65 008439 call 05e38h ; e8 d8 fe 8440 and byte [bp+018h], 0feh ; 80 66 18 fe 8441 mov byte [bp+013h], 000h ; c6 46 13 00 8442 jmp near 05fd0h ; e9 65 00 8446 8443 mov ax, strict word 00001h ; b8 01 00 8447 call 05 d94h ; e8 cbfe8448 and byte [bp+01 ch], 0feh ; 80 66 1cfe8449 mov byte [bp+01 7h], dh ; 88 76 178450 jmp near 05f 28h ; e9 55 008444 call 05e38h ; e8 c7 fe 8445 and byte [bp+018h], 0feh ; 80 66 18 fe 8446 mov byte [bp+013h], dh ; 88 76 13 8447 jmp near 05fd0h ; e9 55 00 8451 8448 mov dx, 00092h ; ba 92 00 8452 8449 in AL, DX ; ec … … 8455 8452 shr ax, 1 ; d1 e8 8456 8453 and ax, strict word 00001h ; 25 01 00 8457 mov dx, word [bp+01 6h] ; 8b 56 168454 mov dx, word [bp+012h] ; 8b 56 12 8458 8455 mov dl, al ; 88 c2 8459 mov word [bp+01 6h], dx ; 89 56 168460 and byte [bp+01 ch], 0feh ; 80 66 1cfe8461 mov byte [bp+01 7h], ah ; 88 66 178462 jmp near 05f 28h ; e9 38 008463 and byte [bp+01 ch], 0feh ; 80 66 1cfe8464 mov byte [bp+01 7h], ah ; 88 66 178465 mov word [bp+0 10h], ax ; 89 46 108466 jmp near 05f 28h ; e9 2b 008467 mov bx, 00d3 2h ; bb 320d8456 mov word [bp+012h], dx ; 89 56 12 8457 and byte [bp+018h], 0feh ; 80 66 18 fe 8458 mov byte [bp+013h], ah ; 88 66 13 8459 jmp near 05fd0h ; e9 38 00 8460 and byte [bp+018h], 0feh ; 80 66 18 fe 8461 mov byte [bp+013h], ah ; 88 66 13 8462 mov word [bp+00ch], ax ; 89 46 0c 8463 jmp near 05fd0h ; e9 2b 00 8464 mov bx, 00d38h ; bb 38 0d 8468 8465 mov cx, ds ; 8c d9 8469 8466 mov ax, strict word 00004h ; b8 04 00 8470 call 018 aeh ; e8 a6b98471 mov ax, word [bp+01 6h] ; 8b 46 168467 call 018cch ; e8 1c b9 8468 mov ax, word [bp+012h] ; 8b 46 12 8472 8469 xor ah, ah ; 30 e4 8473 8470 push ax ; 50 8474 8471 push 007c6h ; 68 c6 07 8475 8472 push strict byte 00004h ; 6a 04 8476 call 01 8e9h ; e8 d3b98473 call 0190dh ; e8 4f b9 8477 8474 add sp, strict byte 00006h ; 83 c4 06 8478 or byte [bp+01 ch], 001h ; 80 4e 1c018479 mov ax, word [bp+01 6h] ; 8b 46 168475 or byte [bp+018h], 001h ; 80 4e 18 01 8476 mov ax, word [bp+012h] ; 8b 46 12 8480 8477 xor ah, ah ; 30 e4 8481 8478 or ah, 086h ; 80 cc 86 8482 mov word [bp+01 6h], ax ; 89 46 168483 lea ve ; c98479 mov word [bp+012h], ax ; 89 46 12 8480 lea sp, [bp-004h] ; 8d 66 fc 8484 8481 pop di ; 5f 8485 8482 pop si ; 5e 8483 pop bp ; 5d 8486 8484 retn ; c3 8487 mov word [bp+01 ch], bx ; 89 5e 1c8488 jmp near 0 5fd8h ; e9 a6 008489 mov word [bp+01 ch], bx ; 89 5e 1c8490 jmp short 05f 28h ; eb f18491 mov word [bp+01 ch], cx ; 89 4e 1c8492 jmp short 05f 25h ; eb e98493 test byte [bp+01 6h], 0ffh ; f6 46 16ff8494 je short 0 5faeh ; 74 6c8485 mov word [bp+018h], bx ; 89 5e 18 8486 jmp near 06083h ; e9 a6 00 8487 mov word [bp+018h], bx ; 89 5e 18 8488 jmp short 05fd0h ; eb ee 8489 mov word [bp+018h], cx ; 89 4e 18 8490 jmp short 05fcdh ; eb e6 8491 test byte [bp+012h], 0ffh ; f6 46 12 ff 8492 je short 06059h ; 74 6c 8495 8493 mov dx, 000a0h ; ba a0 00 8496 8494 mov ax, strict word 00040h ; b8 40 00 8497 call 01600h ; e8 b5b68495 call 01600h ; e8 0a b6 8498 8496 test AL, strict byte 001h ; a8 01 8499 jne near 06 284h ; 0f 85 33 038497 jne near 0632fh ; 0f 85 33 03 8500 8498 mov bx, strict word 00001h ; bb 01 00 8501 8499 mov dx, 000a0h ; ba a0 00 8502 8500 mov ax, strict word 00040h ; b8 40 00 8503 call 0160eh ; e8 b1b68504 mov bx, word [bp+01 8h] ; 8b 5e 188501 call 0160eh ; e8 06 b6 8502 mov bx, word [bp+014h] ; 8b 5e 14 8505 8503 mov dx, 00098h ; ba 98 00 8506 8504 mov ax, strict word 00040h ; b8 40 00 8507 call 0162ah ; e8 c1b68508 mov bx, word [bp+0 10h] ; 8b 5e 108505 call 0162ah ; e8 16 b6 8506 mov bx, word [bp+00ch] ; 8b 5e 0c 8509 8507 mov dx, 0009ah ; ba 9a 00 8510 8508 mov ax, strict word 00040h ; b8 40 00 8511 call 0162ah ; e8 b5b68512 mov bx, word [bp+0 12h] ; 8b 5e 128509 call 0162ah ; e8 0a b6 8510 mov bx, word [bp+00eh] ; 8b 5e 0e 8513 8511 mov dx, 0009ch ; ba 9c 00 8514 8512 mov ax, strict word 00040h ; b8 40 00 8515 call 0162ah ; e8 a9 b68516 mov bx, word [bp+01 4h] ; 8b 5e 148513 call 0162ah ; e8 fe b5 8514 mov bx, word [bp+010h] ; 8b 5e 10 8517 8515 mov dx, 0009eh ; ba 9e 00 8518 8516 mov ax, strict word 00040h ; b8 40 00 8519 call 0162ah ; e8 9d b68520 and byte [bp+01 ch], 0feh ; 80 66 1cfe8517 call 0162ah ; e8 f2 b5 8518 and byte [bp+018h], 0feh ; 80 66 18 fe 8521 8519 mov dx, 000a1h ; ba a1 00 8522 8520 in AL, DX ; ec … … 8526 8524 out DX, AL ; ee 8527 8525 mov ax, strict word 0000bh ; b8 0b 00 8528 call 0165ch ; e8 bcb68526 call 0165ch ; e8 11 b6 8529 8527 or AL, strict byte 040h ; 0c 40 8530 8528 movzx dx, al ; 0f b6 d0 8531 8529 mov ax, strict word 0000bh ; b8 0b 00 8532 call 016 6dh ; e8 c2b68533 jmp near 05f 28h ; e9 7aff8530 call 01670h ; e8 1a b6 8531 jmp near 05fd0h ; e9 77 ff 8534 8532 cmp ax, strict word 00001h ; 3d 01 00 8535 jne short 0 5fcch ; 75 198533 jne short 06077h ; 75 19 8536 8534 xor bx, bx ; 31 db 8537 8535 mov dx, 000a0h ; ba a0 00 8538 8536 mov ax, strict word 00040h ; b8 40 00 8539 call 0160eh ; e8 50 b68540 and byte [bp+01 ch], 0feh ; 80 66 1cfe8537 call 0160eh ; e8 a5 b5 8538 and byte [bp+018h], 0feh ; 80 66 18 fe 8541 8539 mov ax, strict word 0000bh ; b8 0b 00 8542 call 0165ch ; e8 94 b68540 call 0165ch ; e8 e9 b5 8543 8541 and AL, strict byte 0bfh ; 24 bf 8544 jmp short 0 5fa2h ; eb d68545 mov word [bp+01 ch], bx ; 89 5e 1c8542 jmp short 0604dh ; eb d6 8543 mov word [bp+018h], bx ; 89 5e 18 8546 8544 mov ax, dx ; 89 d0 8547 8545 xor ah, dh ; 30 f4 … … 8549 8547 dec ax ; 48 8550 8548 or dx, ax ; 09 c2 8551 mov word [bp+01 6h], dx ; 89 56 168552 jmp near 05f 28h ; e9 4aff8549 mov word [bp+012h], dx ; 89 56 12 8550 jmp near 05fd0h ; e9 47 ff 8553 8551 cli ; fa 8554 8552 mov ax, strict word 00001h ; b8 01 00 8555 call 05 d94h ; e8 affd8553 call 05e38h ; e8 a8 fd 8556 8554 mov di, ax ; 89 c7 8557 mov ax, word [bp+01 8h] ; 8b 46 188555 mov ax, word [bp+014h] ; 8b 46 14 8558 8556 sal ax, 004h ; c1 e0 04 8559 mov cx, word [bp+00 ah] ; 8b 4e 0a8557 mov cx, word [bp+006h] ; 8b 4e 06 8560 8558 add cx, ax ; 01 c1 8561 mov dx, word [bp+01 8h] ; 8b 56 188559 mov dx, word [bp+014h] ; 8b 56 14 8562 8560 shr dx, 00ch ; c1 ea 0c 8563 mov byte [bp-00 2h], dl ; 88 56 fe8561 mov byte [bp-006h], dl ; 88 56 fa 8564 8562 cmp cx, ax ; 39 c1 8565 jnc short 060 04h ; 73 058563 jnc short 060afh ; 73 05 8566 8564 db 0feh, 0c2h 8567 8565 ; inc dl ; fe c2 8568 mov byte [bp-00 2h], dl ; 88 56 fe8569 mov dx, word [bp+00 ah] ; 8b 56 0a8566 mov byte [bp-006h], dl ; 88 56 fa 8567 mov dx, word [bp+006h] ; 8b 56 06 8570 8568 add dx, strict byte 00008h ; 83 c2 08 8571 mov ax, word [bp+01 8h] ; 8b 46 188569 mov ax, word [bp+014h] ; 8b 46 14 8572 8570 mov bx, strict word 0002fh ; bb 2f 00 8573 call 0162ah ; e8 17 b68574 mov dx, word [bp+00 ah] ; 8b 56 0a8571 call 0162ah ; e8 6c b5 8572 mov dx, word [bp+006h] ; 8b 56 06 8575 8573 add dx, strict byte 0000ah ; 83 c2 0a 8576 mov ax, word [bp+01 8h] ; 8b 46 188574 mov ax, word [bp+014h] ; 8b 46 14 8577 8575 mov bx, cx ; 89 cb 8578 call 0162ah ; e8 09 b68579 movzx bx, byte [bp-00 2h] ; 0f b6 5e fe8580 mov dx, word [bp+00 ah] ; 8b 56 0a8576 call 0162ah ; e8 5e b5 8577 movzx bx, byte [bp-006h] ; 0f b6 5e fa 8578 mov dx, word [bp+006h] ; 8b 56 06 8581 8579 add dx, strict byte 0000ch ; 83 c2 0c 8582 mov ax, word [bp+01 8h] ; 8b 46 188583 call 0160eh ; e8 ddb58584 mov dx, word [bp+00 ah] ; 8b 56 0a8580 mov ax, word [bp+014h] ; 8b 46 14 8581 call 0160eh ; e8 32 b5 8582 mov dx, word [bp+006h] ; 8b 56 06 8585 8583 add dx, strict byte 0000dh ; 83 c2 0d 8586 mov ax, word [bp+01 8h] ; 8b 46 188584 mov ax, word [bp+014h] ; 8b 46 14 8587 8585 mov bx, 00093h ; bb 93 00 8588 call 0160eh ; e8 ceb58589 mov dx, word [bp+00 ah] ; 8b 56 0a8586 call 0160eh ; e8 23 b5 8587 mov dx, word [bp+006h] ; 8b 56 06 8590 8588 add dx, strict byte 0000eh ; 83 c2 0e 8591 mov ax, word [bp+01 8h] ; 8b 46 188589 mov ax, word [bp+014h] ; 8b 46 14 8592 8590 xor bx, bx ; 31 db 8593 call 0162ah ; e8 dcb58594 mov dx, word [bp+00 ah] ; 8b 56 0a8591 call 0162ah ; e8 31 b5 8592 mov dx, word [bp+006h] ; 8b 56 06 8595 8593 add dx, strict byte 00020h ; 83 c2 20 8596 mov ax, word [bp+01 8h] ; 8b 46 188594 mov ax, word [bp+014h] ; 8b 46 14 8597 8595 mov bx, strict word 0ffffh ; bb ff ff 8598 call 0162ah ; e8 cdb58599 mov dx, word [bp+00 ah] ; 8b 56 0a8596 call 0162ah ; e8 22 b5 8597 mov dx, word [bp+006h] ; 8b 56 06 8600 8598 add dx, strict byte 00022h ; 83 c2 22 8601 mov ax, word [bp+01 8h] ; 8b 46 188599 mov ax, word [bp+014h] ; 8b 46 14 8602 8600 xor bx, bx ; 31 db 8603 call 0162ah ; e8 bfb58604 mov dx, word [bp+00 ah] ; 8b 56 0a8601 call 0162ah ; e8 14 b5 8602 mov dx, word [bp+006h] ; 8b 56 06 8605 8603 add dx, strict byte 00024h ; 83 c2 24 8606 mov ax, word [bp+01 8h] ; 8b 46 188604 mov ax, word [bp+014h] ; 8b 46 14 8607 8605 mov bx, strict word 0000fh ; bb 0f 00 8608 call 0160eh ; e8 94 b58609 mov dx, word [bp+00 ah] ; 8b 56 0a8606 call 0160eh ; e8 e9 b4 8607 mov dx, word [bp+006h] ; 8b 56 06 8610 8608 add dx, strict byte 00025h ; 83 c2 25 8611 mov ax, word [bp+01 8h] ; 8b 46 188609 mov ax, word [bp+014h] ; 8b 46 14 8612 8610 mov bx, 0009bh ; bb 9b 00 8613 call 0160eh ; e8 85 b58614 mov dx, word [bp+00 ah] ; 8b 56 0a8611 call 0160eh ; e8 da b4 8612 mov dx, word [bp+006h] ; 8b 56 06 8615 8613 add dx, strict byte 00026h ; 83 c2 26 8616 mov ax, word [bp+01 8h] ; 8b 46 188614 mov ax, word [bp+014h] ; 8b 46 14 8617 8615 xor bx, bx ; 31 db 8618 call 0162ah ; e8 93 b58616 call 0162ah ; e8 e8 b4 8619 8617 mov ax, ss ; 8c d0 8620 8618 mov cx, ax ; 89 c1 8621 8619 sal cx, 004h ; c1 e1 04 8622 8620 shr ax, 00ch ; c1 e8 0c 8623 mov word [bp-00 4h], ax ; 89 46 fc8624 mov dx, word [bp+00 ah] ; 8b 56 0a8621 mov word [bp-008h], ax ; 89 46 f8 8622 mov dx, word [bp+006h] ; 8b 56 06 8625 8623 add dx, strict byte 00028h ; 83 c2 28 8626 mov ax, word [bp+01 8h] ; 8b 46 188624 mov ax, word [bp+014h] ; 8b 46 14 8627 8625 mov bx, strict word 0ffffh ; bb ff ff 8628 call 0162ah ; e8 77 b58629 mov dx, word [bp+00 ah] ; 8b 56 0a8626 call 0162ah ; e8 cc b4 8627 mov dx, word [bp+006h] ; 8b 56 06 8630 8628 add dx, strict byte 0002ah ; 83 c2 2a 8631 mov ax, word [bp+01 8h] ; 8b 46 188629 mov ax, word [bp+014h] ; 8b 46 14 8632 8630 mov bx, cx ; 89 cb 8633 call 0162ah ; e8 69 b58634 movzx bx, byte [bp-00 4h] ; 0f b6 5e fc8635 mov dx, word [bp+00 ah] ; 8b 56 0a8631 call 0162ah ; e8 be b4 8632 movzx bx, byte [bp-008h] ; 0f b6 5e f8 8633 mov dx, word [bp+006h] ; 8b 56 06 8636 8634 add dx, strict byte 0002ch ; 83 c2 2c 8637 mov ax, word [bp+01 8h] ; 8b 46 188638 call 0160eh ; e8 3d b58639 mov dx, word [bp+00 ah] ; 8b 56 0a8635 mov ax, word [bp+014h] ; 8b 46 14 8636 call 0160eh ; e8 92 b4 8637 mov dx, word [bp+006h] ; 8b 56 06 8640 8638 add dx, strict byte 0002dh ; 83 c2 2d 8641 mov ax, word [bp+01 8h] ; 8b 46 188639 mov ax, word [bp+014h] ; 8b 46 14 8642 8640 mov bx, 00093h ; bb 93 00 8643 call 0160eh ; e8 2e b58644 mov dx, word [bp+00 ah] ; 8b 56 0a8641 call 0160eh ; e8 83 b4 8642 mov dx, word [bp+006h] ; 8b 56 06 8645 8643 add dx, strict byte 0002eh ; 83 c2 2e 8646 mov ax, word [bp+01 8h] ; 8b 46 188644 mov ax, word [bp+014h] ; 8b 46 14 8647 8645 xor bx, bx ; 31 db 8648 call 0162ah ; e8 3c b58649 mov si, word [bp+00 ah] ; 8b 76 0a8650 mov es, [bp+01 8h] ; 8e 46 188651 mov cx, word [bp+01 4h] ; 8b 4e 148646 call 0162ah ; e8 91 b4 8647 mov si, word [bp+006h] ; 8b 76 06 8648 mov es, [bp+014h] ; 8e 46 14 8649 mov cx, word [bp+010h] ; 8b 4e 10 8652 8650 push DS ; 1e 8653 8651 push eax ; 66 50 … … 8657 8655 mov word [00467h], sp ; 89 26 67 04 8658 8656 mov [00469h], ss ; 8c 16 69 04 8659 call 061 0ah ; e8 00 008657 call 061b5h ; e8 00 00 8660 8658 pop di ; 5f 8661 8659 add di, strict byte 0001bh ; 83 c7 1b … … 8680 8678 cld ; fc 8681 8679 rep movsw ; f3 a5 8682 call 061 3eh ; e8 00 008680 call 061e9h ; e8 00 00 8683 8681 pop ax ; 58 8684 8682 push 0f000h ; 68 00 f0 … … 8701 8699 pop DS ; 1f 8702 8700 mov ax, di ; 89 f8 8703 call 05 d94h ; e8 25fc8701 call 05e38h ; e8 1e fc 8704 8702 sti ; fb 8705 mov byte [bp+01 7h], 000h ; c6 46 17008706 and byte [bp+01 ch], 0feh ; 80 66 1cfe8707 jmp near 05f 28h ; e9 adfd8703 mov byte [bp+013h], 000h ; c6 46 13 00 8704 and byte [bp+018h], 0feh ; 80 66 18 fe 8705 jmp near 05fd0h ; e9 aa fd 8708 8706 mov ax, strict word 00031h ; b8 31 00 8709 call 0165ch ; e8 dbb48707 call 0165ch ; e8 30 b4 8710 8708 xor ah, ah ; 30 e4 8711 8709 mov dx, ax ; 89 c2 8712 8710 sal dx, 008h ; c1 e2 08 8713 8711 mov ax, strict word 00030h ; b8 30 00 8714 call 0165ch ; e8 ceb48712 call 0165ch ; e8 23 b4 8715 8713 xor ah, ah ; 30 e4 8716 8714 or dx, ax ; 09 c2 8717 mov word [bp+01 6h], dx ; 89 56 168715 mov word [bp+012h], dx ; 89 56 12 8718 8716 cmp dx, strict byte 0ffc0h ; 83 fa c0 8719 jbe short 06 174h ; 76 da8720 mov word [bp+01 6h], strict word 0ffc0h ; c7 46 16c0 ff8721 jmp short 06 174h ; eb d38717 jbe short 0621fh ; 76 da 8718 mov word [bp+012h], strict word 0ffc0h ; c7 46 12 c0 ff 8719 jmp short 0621fh ; eb d3 8722 8720 cli ; fa 8723 8721 mov ax, strict word 00001h ; b8 01 00 8724 call 05 d94h ; e8 ecfb8725 mov dx, word [bp+00 ah] ; 8b 56 0a8722 call 05e38h ; e8 e5 fb 8723 mov dx, word [bp+006h] ; 8b 56 06 8726 8724 add dx, strict byte 00038h ; 83 c2 38 8727 mov ax, word [bp+01 8h] ; 8b 46 188725 mov ax, word [bp+014h] ; 8b 46 14 8728 8726 mov bx, strict word 0ffffh ; bb ff ff 8729 call 0162ah ; e8 73 b48730 mov dx, word [bp+00 ah] ; 8b 56 0a8727 call 0162ah ; e8 c8 b3 8728 mov dx, word [bp+006h] ; 8b 56 06 8731 8729 add dx, strict byte 0003ah ; 83 c2 3a 8732 mov ax, word [bp+01 8h] ; 8b 46 188730 mov ax, word [bp+014h] ; 8b 46 14 8733 8731 xor bx, bx ; 31 db 8734 call 0162ah ; e8 65 b48735 mov dx, word [bp+00 ah] ; 8b 56 0a8732 call 0162ah ; e8 ba b3 8733 mov dx, word [bp+006h] ; 8b 56 06 8736 8734 add dx, strict byte 0003ch ; 83 c2 3c 8737 mov ax, word [bp+01 8h] ; 8b 46 188735 mov ax, word [bp+014h] ; 8b 46 14 8738 8736 mov bx, strict word 0000fh ; bb 0f 00 8739 call 0160eh ; e8 3a b48740 mov dx, word [bp+00 ah] ; 8b 56 0a8737 call 0160eh ; e8 8f b3 8738 mov dx, word [bp+006h] ; 8b 56 06 8741 8739 add dx, strict byte 0003dh ; 83 c2 3d 8742 mov ax, word [bp+01 8h] ; 8b 46 188740 mov ax, word [bp+014h] ; 8b 46 14 8743 8741 mov bx, 0009bh ; bb 9b 00 8744 call 0160eh ; e8 2b b48745 mov dx, word [bp+00 ah] ; 8b 56 0a8742 call 0160eh ; e8 80 b3 8743 mov dx, word [bp+006h] ; 8b 56 06 8746 8744 add dx, strict byte 0003eh ; 83 c2 3e 8747 mov ax, word [bp+01 8h] ; 8b 46 188745 mov ax, word [bp+014h] ; 8b 46 14 8748 8746 xor bx, bx ; 31 db 8749 call 0162ah ; e8 39 b48747 call 0162ah ; e8 8e b3 8750 8748 mov AL, strict byte 011h ; b0 11 8751 8749 mov dx, strict word 00020h ; ba 20 00 … … 8753 8751 mov dx, 000a0h ; ba a0 00 8754 8752 out DX, AL ; ee 8755 mov ax, word [bp+0 10h] ; 8b 46 108753 mov ax, word [bp+00ch] ; 8b 46 0c 8756 8754 shr ax, 008h ; c1 e8 08 8757 8755 mov dx, strict word 00021h ; ba 21 00 8758 8756 out DX, AL ; ee 8759 mov ax, word [bp+0 10h] ; 8b 46 108757 mov ax, word [bp+00ch] ; 8b 46 0c 8760 8758 mov dx, 000a1h ; ba a1 00 8761 8759 out DX, AL ; ee … … 8776 8774 mov dx, 000a1h ; ba a1 00 8777 8775 out DX, AL ; ee 8778 mov si, word [bp+00 ah] ; 8b 76 0a8779 call 062 32h ; e8 00 008776 mov si, word [bp+006h] ; 8b 76 06 8777 call 062ddh ; e8 00 00 8780 8778 pop di ; 5f 8781 8779 add di, strict byte 00018h ; 83 c7 18 … … 8793 8791 mov ax, strict word 00020h ; b8 20 00 8794 8792 mov es, ax ; 8e c0 8795 lea ax, [bp+00 8h] ; 8d 46 088793 lea ax, [bp+004h] ; 8d 46 04 8796 8794 db 08bh, 0e0h 8797 8795 ; mov sp, ax ; 8b e0 … … 8805 8803 push cx ; 51 8806 8804 retf ; cb 8807 jmp near 05f 28h ; e9 bafc8808 mov bx, 00d3 2h ; bb 320d8805 jmp near 05fd0h ; e9 b7 fc 8806 mov bx, 00d38h ; bb 38 0d 8809 8807 mov cx, ds ; 8c d9 8810 8808 mov ax, strict word 00004h ; b8 04 00 8811 call 018 aeh ; e8 35 b68809 call 018cch ; e8 a8 b5 8812 8810 push 00806h ; 68 06 08 8813 8811 push strict byte 00004h ; 6a 04 8814 call 01 8e9h ; e8 68 b68812 call 0190dh ; e8 e1 b5 8815 8813 add sp, strict byte 00004h ; 83 c4 04 8816 or byte [bp+01 ch], 001h ; 80 4e 1c018817 mov ax, word [bp+01 6h] ; 8b 46 168814 or byte [bp+018h], 001h ; 80 4e 18 01 8815 mov ax, word [bp+012h] ; 8b 46 12 8818 8816 xor ah, ah ; 30 e4 8819 8817 or ah, 086h ; 80 cc 86 8820 mov word [bp+01 6h], ax ; 89 46 168821 jmp near 05f 28h ; e9 92fc8822 mov word [bp+01 ch], cx ; 89 4e 1c8823 mov word [bp+01 6h], ax ; 89 46 168824 mov word [bp+0 10h], 0e6f5h ; c7 46 10f5 e68825 mov word [bp+01 8h], 0f000h ; c7 46 1800 f08826 jmp near 05f 28h ; e9 7ffc8818 mov word [bp+012h], ax ; 89 46 12 8819 jmp near 05fd0h ; e9 8f fc 8820 mov word [bp+018h], cx ; 89 4e 18 8821 mov word [bp+012h], ax ; 89 46 12 8822 mov word [bp+00ch], 0e6f5h ; c7 46 0c f5 e6 8823 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 8824 jmp near 05fd0h ; e9 7c fc 8827 8825 mov dx, strict word 0000eh ; ba 0e 00 8828 8826 mov ax, strict word 00040h ; b8 40 00 8829 call 0161ch ; e8 6a b38830 mov word [bp+01 8h], ax ; 89 46 188831 jmp near 06 174h ; e9 bc fe8827 call 0161ch ; e8 bf b2 8828 mov word [bp+014h], ax ; 89 46 14 8829 jmp near 0621fh ; e9 bc fe 8832 8830 push 00835h ; 68 35 08 8833 8831 push strict byte 00008h ; 6a 08 8834 jmp short 06 27eh ; eb bf8835 test byte [bp+01 6h], 0ffh ; f6 46 16ff8836 jne short 06 2e4h ; 75 1f8837 mov word [bp+01 6h], ax ; 89 46 168838 mov ax, word [bp+0 10h] ; 8b 46 108832 jmp short 06329h ; eb bf 8833 test byte [bp+012h], 0ffh ; f6 46 12 ff 8834 jne short 0638fh ; 75 1f 8835 mov word [bp+012h], ax ; 89 46 12 8836 mov ax, word [bp+00ch] ; 8b 46 0c 8839 8837 xor ah, ah ; 30 e4 8840 8838 cmp ax, strict word 00001h ; 3d 01 00 8841 jc short 06 2ddh ; 72 0b8839 jc short 06388h ; 72 0b 8842 8840 cmp ax, strict word 00003h ; 3d 03 00 8843 jnbe short 06 2ddh ; 77 068844 mov word [bp+01 ch], cx ; 89 4e 1c8845 jmp near 05f 28h ; e9 4bfc8846 or byte [bp+01 ch], 001h ; 80 4e 1c018847 jmp near 05f 28h ; e9 44fc8848 mov bx, 00d3 2h ; bb 320d8841 jnbe short 06388h ; 77 06 8842 mov word [bp+018h], cx ; 89 4e 18 8843 jmp near 05fd0h ; e9 48 fc 8844 or byte [bp+018h], 001h ; 80 4e 18 01 8845 jmp near 05fd0h ; e9 41 fc 8846 mov bx, 00d38h ; bb 38 0d 8849 8847 mov cx, ds ; 8c d9 8850 8848 mov ax, strict word 00004h ; b8 04 00 8851 call 018 aeh ; e8 bfb58852 push word [bp+0 10h] ; ff 76 108853 push word [bp+01 6h] ; ff 76 168849 call 018cch ; e8 32 b5 8850 push word [bp+00ch] ; ff 76 0c 8851 push word [bp+012h] ; ff 76 12 8854 8852 push 0084ch ; 68 4c 08 8855 8853 push strict byte 00004h ; 6a 04 8856 call 01 8e9h ; e8 ecb58854 call 0190dh ; e8 65 b5 8857 8855 add sp, strict byte 00008h ; 83 c4 08 8858 jmp short 06284h ; eb 82 8859 mov cx, 0db64h ; b9 64 db 8860 db 064h 8861 db 0feh 8862 and byte [fs:di+040h], ah ; 64 20 65 40 8863 db 065h, 061h 8864 ; gs popaw ; 65 61 8865 mov AL, byte [gs:0cc65h] ; 65 a0 65 cc 8866 db 065h 8867 _int15_function32: ; 0xf6312 LB 0x37b 8856 jmp short 0632fh ; eb 82 8857 db 066h, 065h, 088h, 065h, 0abh 8858 ; mov byte [gs:di-055h], ah ; 66 65 88 65 ab 8859 db 065h, 0cdh, 065h 8860 ; gs int 065h ; 65 cd 65 8861 in ax, DX ; ed 8862 db 065h, 00eh 8863 ; gs push CS ; 65 0e 8864 dec ebp ; 66 4d 8865 db 066h, 079h, 066h 8866 ; jns short 06423h ; 66 79 66 8867 _int15_function32: ; 0xf63bd LB 0x37e 8868 push bp ; 55 8869 mov bp, sp ; 89 e5 8868 8870 push si ; 56 8869 enter 00008h, 000h ; c8 08 00 008870 mov dx, word [bp+02 2h] ; 8b 56 228871 sub sp, strict byte 00008h ; 83 ec 08 8872 mov dx, word [bp+020h] ; 8b 56 20 8871 8873 shr dx, 008h ; c1 ea 08 8872 mov bx, word [bp+02 ah] ; 8b 5e 2a8874 mov bx, word [bp+028h] ; 8b 5e 28 8873 8875 and bl, 0feh ; 80 e3 fe 8874 mov ax, word [bp+02 2h] ; 8b 46 228876 mov ax, word [bp+020h] ; 8b 46 20 8875 8877 xor ah, ah ; 30 e4 8876 8878 cmp dx, 000e8h ; 81 fa e8 00 8877 je near 06 3ddh ; 0f 84 ad 008879 je near 0648ah ; 0f 84 ad 00 8878 8880 cmp dx, 000d0h ; 81 fa d0 00 8879 je short 06 378h ; 74 428881 je short 06425h ; 74 42 8880 8882 cmp dx, 00086h ; 81 fa 86 00 8881 jne near 06 660h ; 0f 85 22038883 jne near 0670bh ; 0f 85 20 03 8882 8884 sti ; fb 8883 mov ax, word [bp+01 eh] ; 8b 46 1e8884 mov dx, word [bp+01 ah] ; 8b 56 1a8885 mov ax, word [bp+01ch] ; 8b 46 1c 8886 mov dx, word [bp+018h] ; 8b 56 18 8885 8887 sal eax, 010h ; 66 c1 e0 10 8886 8888 db 08bh, 0c2h … … 8898 8900 db 066h, 00bh, 0c9h 8899 8901 ; or ecx, ecx ; 66 0b c9 8900 je near 06 375h ; 0f 84 0e 008902 je near 06422h ; 0f 84 0e 00 8901 8903 in AL, strict byte 061h ; e4 61 8902 8904 and AL, strict byte 010h ; 24 10 8903 8905 db 03ah, 0c4h 8904 8906 ; cmp al, ah ; 3a c4 8905 je short 06 367h ; 74 f88907 je short 06414h ; 74 f8 8906 8908 db 08ah, 0e0h 8907 8909 ; mov ah, al ; 8a e0 8908 8910 dec ecx ; 66 49 8909 jne short 06367h ; 75 f2 8910 leave ; c9 8911 pop si ; 5e 8912 retn ; c3 8911 jne short 06414h ; 75 f2 8912 jmp near 06735h ; e9 10 03 8913 8913 cmp ax, strict word 0004fh ; 3d 4f 00 8914 jne near 06660h ; 0f 85 e1 02 8915 cmp word [bp+018h], 05052h ; 81 7e 18 52 50 8916 jne near 06660h ; 0f 85 d8 02 8917 cmp word [bp+016h], 04f43h ; 81 7e 16 43 4f 8918 jne near 06660h ; 0f 85 cf 02 8919 cmp word [bp+020h], 04d4fh ; 81 7e 20 4f 4d 8920 jne near 06660h ; 0f 85 c6 02 8921 cmp word [bp+01eh], 04445h ; 81 7e 1e 45 44 8922 jne near 06660h ; 0f 85 bd 02 8923 mov ax, word [bp+00ch] ; 8b 46 0c 8924 or ax, word [bp+00ah] ; 0b 46 0a 8925 jne near 06660h ; 0f 85 b3 02 8926 mov ax, word [bp+008h] ; 8b 46 08 8927 or ax, word [bp+006h] ; 0b 46 06 8928 jne near 06660h ; 0f 85 a9 02 8929 mov word [bp+02ah], bx ; 89 5e 2a 8914 jne near 0670bh ; 0f 85 df 02 8915 cmp word [bp+016h], 05052h ; 81 7e 16 52 50 8916 jne near 0670bh ; 0f 85 d6 02 8917 cmp word [bp+014h], 04f43h ; 81 7e 14 43 4f 8918 jne near 0670bh ; 0f 85 cd 02 8919 cmp word [bp+01eh], 04d4fh ; 81 7e 1e 4f 4d 8920 jne near 0670bh ; 0f 85 c4 02 8921 cmp word [bp+01ch], 04445h ; 81 7e 1c 45 44 8922 jne near 0670bh ; 0f 85 bb 02 8923 mov ax, word [bp+00ah] ; 8b 46 0a 8924 or ax, word [bp+008h] ; 0b 46 08 8925 jne near 0670bh ; 0f 85 b1 02 8926 mov ax, word [bp+006h] ; 8b 46 06 8927 or ax, word [bp+004h] ; 0b 46 04 8928 jne near 0670bh ; 0f 85 a7 02 8929 mov word [bp+028h], bx ; 89 5e 28 8930 mov ax, word [bp+014h] ; 8b 46 14 8931 mov word [bp+008h], ax ; 89 46 08 8930 8932 mov ax, word [bp+016h] ; 8b 46 16 8931 8933 mov word [bp+00ah], ax ; 89 46 0a 8932 mov ax, word [bp+01 8h] ; 8b 46 188933 mov word [bp+00 ch], ax ; 89 46 0c8934 mov ax, word [bp+01ch] ; 8b 46 1c 8935 mov word [bp+004h], ax ; 89 46 04 8934 8936 mov ax, word [bp+01eh] ; 8b 46 1e 8935 8937 mov word [bp+006h], ax ; 89 46 06 8936 mov ax, word [bp+020h] ; 8b 46 20 8937 mov word [bp+008h], ax ; 89 46 08 8938 mov dword [bp+022h], strict dword 049413332h ; 66 c7 46 22 32 33 41 49 8939 leave ; c9 8940 pop si ; 5e 8941 retn ; c3 8938 mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49 8939 jmp near 06735h ; e9 ab 02 8942 8940 cmp ax, strict word 00020h ; 3d 20 00 8943 je short 06 3ech ; 74 0a8941 je short 06499h ; 74 0a 8944 8942 cmp ax, strict word 00001h ; 3d 01 00 8945 je near 066 14h ; 0f 84 2b028946 jmp near 06 660h ; e9 74028947 cmp word [bp+01 ch], 0534dh ; 81 7e 1c4d 538948 jne near 06 660h ; 0f 85 6b028949 cmp word [bp+01 ah], 04150h ; 81 7e 1a50 418950 jne near 06 660h ; 0f 85 62028943 je near 066c0h ; 0f 84 2a 02 8944 jmp near 0670bh ; e9 72 02 8945 cmp word [bp+01ah], 0534dh ; 81 7e 1a 4d 53 8946 jne near 0670bh ; 0f 85 69 02 8947 cmp word [bp+018h], 04150h ; 81 7e 18 50 41 8948 jne near 0670bh ; 0f 85 60 02 8951 8949 mov ax, strict word 00035h ; b8 35 00 8952 call 0165ch ; e8 58 b28950 call 0165ch ; e8 ab b1 8953 8951 movzx bx, al ; 0f b6 d8 8954 8952 xor dx, dx ; 31 d2 … … 8956 8954 sal bx, 1 ; d1 e3 8957 8955 rcl dx, 1 ; d1 d2 8958 loop 064 0ch ; e2 fa8956 loop 064b9h ; e2 fa 8959 8957 mov ax, strict word 00034h ; b8 34 00 8960 call 0165ch ; e8 44 b28958 call 0165ch ; e8 97 b1 8961 8959 xor ah, ah ; 30 e4 8962 8960 mov dx, bx ; 89 da … … 8966 8964 adc dx, 00100h ; 81 d2 00 01 8967 8965 cmp dx, 00100h ; 81 fa 00 01 8968 jc short 064 32h ; 72 068969 jne short 06 45fh ; 75 318966 jc short 064dfh ; 72 06 8967 jne short 0650ch ; 75 31 8970 8968 test bx, bx ; 85 db 8971 jnbe short 06 45fh ; 77 2d8969 jnbe short 0650ch ; 77 2d 8972 8970 mov ax, strict word 00031h ; b8 31 00 8973 call 0165ch ; e8 24 b28971 call 0165ch ; e8 77 b1 8974 8972 movzx bx, al ; 0f b6 d8 8975 8973 xor dx, dx ; 31 d2 … … 8977 8975 sal bx, 1 ; d1 e3 8978 8976 rcl dx, 1 ; d1 d2 8979 loop 064 40h ; e2 fa8977 loop 064edh ; e2 fa 8980 8978 mov ax, strict word 00030h ; b8 30 00 8981 call 0165ch ; e8 10 b28979 call 0165ch ; e8 63 b1 8982 8980 xor ah, ah ; 30 e4 8983 8981 or bx, ax ; 09 c3 … … 8985 8983 sal bx, 1 ; d1 e3 8986 8984 rcl dx, 1 ; d1 d2 8987 loop 06 453h ; e2 fa8985 loop 06500h ; e2 fa 8988 8986 add bx, strict byte 00000h ; 83 c3 00 8989 8987 adc dx, strict byte 00010h ; 83 d2 10 8990 8988 mov ax, strict word 00062h ; b8 62 00 8991 call 0165ch ; e8 f7b18989 call 0165ch ; e8 4a b1 8992 8990 xor ah, ah ; 30 e4 8991 mov word [bp-00ah], ax ; 89 46 f6 8992 xor al, al ; 30 c0 8993 8993 mov word [bp-008h], ax ; 89 46 f8 8994 xor al, al ; 30 c08995 mov word [bp-006h], ax ; 89 46 fa8996 8994 mov cx, strict word 00008h ; b9 08 00 8997 sal word [bp-00 8h], 1 ; d1 66 f88998 rcl word [bp-00 6h], 1 ; d1 56 fa8999 loop 06 472h ; e2 f88995 sal word [bp-00ah], 1 ; d1 66 f6 8996 rcl word [bp-008h], 1 ; d1 56 f8 8997 loop 0651fh ; e2 f8 9000 8998 mov ax, strict word 00061h ; b8 61 00 9001 call 0165ch ; e8 dcb18999 call 0165ch ; e8 2f b1 9002 9000 xor ah, ah ; 30 e4 9003 or word [bp-00 8h], ax ; 09 46 f89004 mov ax, word [bp-00 8h] ; 8b 46 f89005 mov word [bp-00 6h], ax ; 89 46 fa9006 mov word [bp-00 8h], strict word 00000h ; c7 46 f800 009001 or word [bp-00ah], ax ; 09 46 f6 9002 mov ax, word [bp-00ah] ; 8b 46 f6 9003 mov word [bp-008h], ax ; 89 46 f8 9004 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 9007 9005 mov ax, strict word 00063h ; b8 63 00 9008 call 0165ch ; e8 c6 b1 9009 mov byte [bp-002h], al ; 88 46 fe 9006 call 0165ch ; e8 19 b1 9010 9007 mov byte [bp-004h], al ; 88 46 fc 9011 mov ax, word [bp+016h] ; 8b 46 16 9008 mov byte [bp-006h], al ; 88 46 fa 9009 mov ax, word [bp+014h] ; 8b 46 14 9012 9010 cmp ax, strict word 00007h ; 3d 07 00 9013 jnbe near 06 660h ; 0f 87 ba019011 jnbe near 0670bh ; 0f 87 b8 01 9014 9012 mov si, ax ; 89 c6 9015 9013 add si, ax ; 01 c6 … … 9018 9016 mov ax, dx ; 89 d0 9019 9017 adc ax, strict word 0ffffh ; 15 ff ff 9020 jmp word [cs:si+063 02h] ; 2e ff a4 02639018 jmp word [cs:si+063adh] ; 2e ff a4 ad 63 9021 9019 push strict byte 00001h ; 6a 01 9022 9020 push dword 000000000h ; 66 6a 00 9023 9021 push strict byte 00009h ; 6a 09 9024 9022 push 0fc00h ; 68 00 fc 9025 mov dx, word [bp+00 6h] ; 8b 56 069026 mov ax, word [bp+02 6h] ; 8b 46 269023 mov dx, word [bp+004h] ; 8b 56 04 9024 mov ax, word [bp+024h] ; 8b 46 24 9027 9025 xor bx, bx ; 31 db 9028 9026 xor cx, cx ; 31 c9 9029 call 05 dbdh ; e8 edf89030 mov dword [bp+01 6h], strict dword 000000001h ; 66 c7 46 1601 00 00 009031 jmp near 06 5fdh ; e9 22 019027 call 05e64h ; e8 e7 f8 9028 mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00 9029 jmp near 066aah ; e9 22 01 9032 9030 push strict byte 00002h ; 6a 02 9033 9031 push dword 000000000h ; 66 6a 00 9034 9032 push strict byte 0000ah ; 6a 0a 9035 9033 push strict byte 00000h ; 6a 00 9036 mov dx, word [bp+00 6h] ; 8b 56 069037 mov ax, word [bp+02 6h] ; 8b 46 269034 mov dx, word [bp+004h] ; 8b 56 04 9035 mov ax, word [bp+024h] ; 8b 46 24 9038 9036 mov bx, 0fc00h ; bb 00 fc 9039 9037 mov cx, strict word 00009h ; b9 09 00 9040 call 05 dbdh ; e8 caf89041 mov dword [bp+01 6h], strict dword 000000002h ; 66 c7 46 1602 00 00 009042 jmp near 06 5fdh ; e9 ff 009038 call 05e64h ; e8 c4 f8 9039 mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00 9040 jmp near 066aah ; e9 ff 00 9043 9041 push strict byte 00002h ; 6a 02 9044 9042 push dword 000000000h ; 66 6a 00 9045 9043 push strict byte 00010h ; 6a 10 9046 9044 push strict byte 00000h ; 6a 00 9047 mov dx, word [bp+00 6h] ; 8b 56 069048 mov ax, word [bp+02 6h] ; 8b 46 269045 mov dx, word [bp+004h] ; 8b 56 04 9046 mov ax, word [bp+024h] ; 8b 46 24 9049 9047 xor bx, bx ; 31 db 9050 9048 mov cx, strict word 0000fh ; b9 0f 00 9051 call 05 dbdh ; e8 a8f89052 mov dword [bp+01 6h], strict dword 000000003h ; 66 c7 46 1603 00 00 009053 jmp near 06 5fdh ; e9 dd 009049 call 05e64h ; e8 a2 f8 9050 mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00 9051 jmp near 066aah ; e9 dd 00 9054 9052 push strict byte 00001h ; 6a 01 9055 9053 push dword 000000000h ; 66 6a 00 9056 9054 push ax ; 50 9057 9055 push cx ; 51 9058 mov dx, word [bp+00 6h] ; 8b 56 069059 mov ax, word [bp+02 6h] ; 8b 46 269056 mov dx, word [bp+004h] ; 8b 56 04 9057 mov ax, word [bp+024h] ; 8b 46 24 9060 9058 xor bx, bx ; 31 db 9061 9059 mov cx, strict word 00010h ; b9 10 00 9062 call 05 dbdh ; e8 88f89063 mov dword [bp+01 6h], strict dword 000000004h ; 66 c7 46 1604 00 00 009064 jmp near 06 5fdh ; e9 bd 009060 call 05e64h ; e8 82 f8 9061 mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00 9062 jmp near 066aah ; e9 bd 00 9065 9063 push strict byte 00003h ; 6a 03 9066 9064 push dword 000000000h ; 66 6a 00 9067 9065 push dx ; 52 9068 9066 push bx ; 53 9069 mov dx, word [bp+00 6h] ; 8b 56 069070 mov si, word [bp+02 6h] ; 8b 76 269067 mov dx, word [bp+004h] ; 8b 56 04 9068 mov si, word [bp+024h] ; 8b 76 24 9071 9069 mov bx, cx ; 89 cb 9072 9070 mov cx, ax ; 89 c1 9073 9071 mov ax, si ; 89 f0 9074 call 05 dbdh ; e8 67f89075 mov dword [bp+01 6h], strict dword 000000005h ; 66 c7 46 1605 00 00 009076 jmp near 06 5fdh ; e9 9c 009072 call 05e64h ; e8 61 f8 9073 mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00 9074 jmp near 066aah ; e9 9c 00 9077 9075 push strict byte 00002h ; 6a 02 9078 9076 push dword 000000000h ; 66 6a 00 9079 9077 push dword 000000000h ; 66 6a 00 9080 mov dx, word [bp+00 6h] ; 8b 56 069081 mov ax, word [bp+02 6h] ; 8b 46 269078 mov dx, word [bp+004h] ; 8b 56 04 9079 mov ax, word [bp+024h] ; 8b 46 24 9082 9080 xor bx, bx ; 31 db 9083 9081 mov cx, strict word 0fffch ; b9 fc ff 9084 call 05 dbdh ; e8 46f89085 cmp byte [bp-00 2h], 000h ; 80 7e fe009086 jne short 06 584h ; 75 079087 mov ax, word [bp-00 6h] ; 8b 46 fa9082 call 05e64h ; e8 40 f8 9083 cmp byte [bp-004h], 000h ; 80 7e fc 00 9084 jne short 06631h ; 75 07 9085 mov ax, word [bp-008h] ; 8b 46 f8 9088 9086 test ax, ax ; 85 c0 9089 je short 06598h ; 74 14 9090 mov dword [bp+016h], strict dword 000000007h ; 66 c7 46 16 07 00 00 00 9091 jmp short 065fdh ; eb 6f 9092 mov dword [bp+016h], strict dword 000000006h ; 66 c7 46 16 06 00 00 00 9093 jmp short 065fdh ; eb 65 9087 je short 06645h ; 74 14 9088 mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00 9089 jmp short 066aah ; eb 6f 9090 mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00 9091 jmp short 066aah ; eb 65 9092 mov word [bp+014h], ax ; 89 46 14 9094 9093 mov word [bp+016h], ax ; 89 46 16 9095 mov word [bp+018h], ax ; 89 46 18 9096 jmp short 065fdh ; eb 5d 9094 jmp short 066aah ; eb 5d 9097 9095 push strict byte 00002h ; 6a 02 9098 9096 push dword 000000000h ; 66 6a 00 9099 9097 push dword 000000000h ; 66 6a 00 9100 mov dx, word [bp+00 6h] ; 8b 56 069101 mov ax, word [bp+02 6h] ; 8b 46 269098 mov dx, word [bp+004h] ; 8b 56 04 9099 mov ax, word [bp+024h] ; 8b 46 24 9102 9100 xor bx, bx ; 31 db 9103 9101 xor cx, cx ; 31 c9 9104 call 05 dbdh ; e8 08f89105 cmp byte [bp-00 2h], 000h ; 80 7e fe009106 jne short 06 5c2h ; 75 079107 mov ax, word [bp-00 6h] ; 8b 46 fa9102 call 05e64h ; e8 02 f8 9103 cmp byte [bp-004h], 000h ; 80 7e fc 00 9104 jne short 0666fh ; 75 07 9105 mov ax, word [bp-008h] ; 8b 46 f8 9108 9106 test ax, ax ; 85 c0 9109 je short 065c4h ; 74 02 9110 jmp short 06584h ; eb c0 9107 je short 06671h ; 74 02 9108 jmp short 06631h ; eb c0 9109 mov word [bp+014h], ax ; 89 46 14 9111 9110 mov word [bp+016h], ax ; 89 46 16 9112 mov word [bp+018h], ax ; 89 46 18 9113 jmp short 065fdh ; eb 31 9114 cmp byte [bp-002h], 000h ; 80 7e fe 00 9115 jne short 065d8h ; 75 06 9116 cmp word [bp-006h], strict byte 00000h ; 83 7e fa 00 9117 je short 065fdh ; 74 25 9111 jmp short 066aah ; eb 31 9112 cmp byte [bp-004h], 000h ; 80 7e fc 00 9113 jne short 06685h ; 75 06 9114 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 9115 je short 066aah ; 74 25 9118 9116 push strict byte 00001h ; 6a 01 9119 mov al, byte [bp-00 4h] ; 8a 46 fc9117 mov al, byte [bp-006h] ; 8a 46 fa 9120 9118 db 0feh, 0c0h 9121 9119 ; inc al ; fe c0 … … 9123 9121 push ax ; 50 9124 9122 push strict byte 00001h ; 6a 01 9125 push dword [bp-00 8h] ; 66 ff 76 f89126 mov dx, word [bp+00 6h] ; 8b 56 069127 mov ax, word [bp+02 6h] ; 8b 46 269123 push dword [bp-00ah] ; 66 ff 76 f6 9124 mov dx, word [bp+004h] ; 8b 56 04 9125 mov ax, word [bp+024h] ; 8b 46 24 9128 9126 xor bx, bx ; 31 db 9129 9127 xor cx, cx ; 31 c9 9130 call 05 dbdh ; e8 c8f79128 call 05e64h ; e8 c2 f7 9131 9129 xor ax, ax ; 31 c0 9130 mov word [bp+014h], ax ; 89 46 14 9132 9131 mov word [bp+016h], ax ; 89 46 16 9133 mov word [bp+018h], ax ; 89 46 18 9134 mov dword [bp+022h], strict dword 0534d4150h ; 66 c7 46 22 50 41 4d 53 9135 mov dword [bp+01eh], strict dword 000000014h ; 66 c7 46 1e 14 00 00 00 9136 and byte [bp+02ah], 0feh ; 80 66 2a fe 9137 leave ; c9 9138 pop si ; 5e 9139 retn ; c3 9140 mov word [bp+02ah], bx ; 89 5e 2a 9132 mov dword [bp+020h], strict dword 0534d4150h ; 66 c7 46 20 50 41 4d 53 9133 mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00 9134 and byte [bp+028h], 0feh ; 80 66 28 fe 9135 jmp short 06735h ; eb 75 9136 mov word [bp+028h], bx ; 89 5e 28 9141 9137 mov ax, strict word 00031h ; b8 31 00 9142 call 0165ch ; e8 3f b09138 call 0165ch ; e8 93 af 9143 9139 movzx dx, al ; 0f b6 d0 9144 9140 sal dx, 008h ; c1 e2 08 9145 9141 mov ax, strict word 00030h ; b8 30 00 9146 call 0165ch ; e8 33 b09142 call 0165ch ; e8 87 af 9147 9143 xor ah, ah ; 30 e4 9148 9144 or dx, ax ; 09 c2 9149 mov word [bp+01 eh], dx ; 89 56 1e9145 mov word [bp+01ch], dx ; 89 56 1c 9150 9146 cmp dx, 03c00h ; 81 fa 00 3c 9151 jbe short 066 3bh ; 76 059152 mov word [bp+01 eh], 03c00h ; c7 46 1e00 3c9147 jbe short 066e7h ; 76 05 9148 mov word [bp+01ch], 03c00h ; c7 46 1c 00 3c 9153 9149 mov ax, strict word 00035h ; b8 35 00 9154 call 0165ch ; e8 1b b09150 call 0165ch ; e8 6f af 9155 9151 movzx dx, al ; 0f b6 d0 9156 9152 sal dx, 008h ; c1 e2 08 9157 9153 mov ax, strict word 00034h ; b8 34 00 9158 call 0165ch ; e8 0f b09154 call 0165ch ; e8 63 af 9159 9155 xor ah, ah ; 30 e4 9160 9156 or dx, ax ; 09 c2 9161 mov word [bp+01ah], dx ; 89 56 1a 9162 mov ax, word [bp+01eh] ; 8b 46 1e 9163 mov word [bp+022h], ax ; 89 46 22 9164 mov word [bp+016h], dx ; 89 56 16 9165 leave ; c9 9166 pop si ; 5e 9167 retn ; c3 9168 mov bx, 00d32h ; bb 32 0d 9157 mov word [bp+018h], dx ; 89 56 18 9158 mov ax, word [bp+01ch] ; 8b 46 1c 9159 mov word [bp+020h], ax ; 89 46 20 9160 mov word [bp+014h], dx ; 89 56 14 9161 jmp short 06735h ; eb 2a 9162 mov bx, 00d38h ; bb 38 0d 9169 9163 mov cx, ds ; 8c d9 9170 9164 mov ax, strict word 00004h ; b8 04 00 9171 call 018 aeh ; e8 43 b29172 push word [bp+01 6h] ; ff 76 169173 push word [bp+02 2h] ; ff 76 229165 call 018cch ; e8 b6 b1 9166 push word [bp+014h] ; ff 76 14 9167 push word [bp+020h] ; ff 76 20 9174 9168 push 0084ch ; 68 4c 08 9175 9169 push strict byte 00004h ; 6a 04 9176 call 01 8e9h ; e8 70 b29170 call 0190dh ; e8 e9 b1 9177 9171 add sp, strict byte 00008h ; 83 c4 08 9178 or byte [bp+02 ah], 001h ; 80 4e 2a019179 mov ax, word [bp+02 2h] ; 8b 46 229172 or byte [bp+028h], 001h ; 80 4e 28 01 9173 mov ax, word [bp+020h] ; 8b 46 20 9180 9174 xor al, al ; 30 c0 9181 9175 or AL, strict byte 086h ; 0c 86 9182 mov word [bp+02 2h], ax ; 89 46 229183 lea ve ; c99176 mov word [bp+020h], ax ; 89 46 20 9177 lea sp, [bp-002h] ; 8d 66 fe 9184 9178 pop si ; 5e 9179 pop bp ; 5d 9185 9180 retn ; c3 9186 init_rtc_: ; 0xf668d LB 0x25 9187 push dx ; 52 9181 init_rtc_: ; 0xf673b LB 0x28 9188 9182 push bp ; 55 9189 9183 mov bp, sp ; 89 e5 9184 push dx ; 52 9190 9185 mov dx, strict word 00026h ; ba 26 00 9191 9186 mov ax, strict word 0000ah ; b8 0a 00 9192 call 016 6dh ; e8 d3af9187 call 01670h ; e8 28 af 9193 9188 mov dx, strict word 00002h ; ba 02 00 9194 9189 mov ax, strict word 0000bh ; b8 0b 00 9195 call 016 6dh ; e8 caaf9190 call 01670h ; e8 1f af 9196 9191 mov ax, strict word 0000ch ; b8 0c 00 9197 call 0165ch ; e8 b3af9192 call 0165ch ; e8 05 af 9198 9193 mov ax, strict word 0000dh ; b8 0d 00 9199 call 0165ch ; e8 ad af 9194 call 0165ch ; e8 ff ae 9195 lea sp, [bp-002h] ; 8d 66 fe 9196 pop dx ; 5a 9200 9197 pop bp ; 5d 9201 pop dx ; 5a9202 9198 retn ; c3 9203 rtc_updating_: ; 0xf66b2 LB 0x1f 9204 push dx ; 52 9199 rtc_updating_: ; 0xf6763 LB 0x21 9205 9200 push bp ; 55 9206 9201 mov bp, sp ; 89 e5 9202 push dx ; 52 9207 9203 mov dx, 061a8h ; ba a8 61 9208 9204 dec dx ; 4a 9209 je short 06 6cbh ; 74 0f9205 je short 0677bh ; 74 0e 9210 9206 mov ax, strict word 0000ah ; b8 0a 00 9211 call 0165ch ; e8 9a af9207 call 0165ch ; e8 e9 ae 9212 9208 test AL, strict byte 080h ; a8 80 9213 jne short 06 6b9h ; 75 f39209 jne short 0676ah ; 75 f3 9214 9210 xor ax, ax ; 31 c0 9211 jmp short 0677eh ; eb 03 9212 mov ax, strict word 00001h ; b8 01 00 9213 lea sp, [bp-002h] ; 8d 66 fe 9214 pop dx ; 5a 9215 9215 pop bp ; 5d 9216 pop dx ; 5a9217 9216 retn ; c3 9218 mov ax, strict word 00001h ; b8 01 00 9219 pop bp ; 5d 9220 pop dx ; 5a 9221 retn ; c3 9222 _int70_function: ; 0xf66d1 LB 0xbb 9217 _int70_function: ; 0xf6784 LB 0xbe 9218 push bp ; 55 9219 mov bp, sp ; 89 e5 9223 9220 push si ; 56 9224 enter 00002h, 000h ; c8 02 00 009221 push ax ; 50 9225 9222 mov ax, strict word 0000bh ; b8 0b 00 9226 call 0165ch ; e8 80 af9223 call 0165ch ; e8 cd ae 9227 9224 mov dl, al ; 88 c2 9228 mov byte [bp-00 2h], al ; 88 46 fe9225 mov byte [bp-004h], al ; 88 46 fc 9229 9226 mov ax, strict word 0000ch ; b8 0c 00 9230 call 0165ch ; e8 75 af9227 call 0165ch ; e8 c2 ae 9231 9228 mov dh, al ; 88 c6 9232 9229 test dl, 060h ; f6 c2 60 9233 je near 06 776h ; 0f 84 86 009230 je near 06829h ; 0f 84 86 00 9234 9231 test AL, strict byte 020h ; a8 20 9235 je short 06 6f8h ; 74 049232 je short 067abh ; 74 04 9236 9233 sti ; fb 9237 9234 int 04ah ; cd 4a 9238 9235 cli ; fa 9239 9236 test dh, 040h ; f6 c6 40 9240 je near 06 776h ; 0f 84 77 009237 je near 06829h ; 0f 84 77 00 9241 9238 mov dx, 000a0h ; ba a0 00 9242 9239 mov ax, strict word 00040h ; b8 40 00 9243 call 01600h ; e8 f8ae9240 call 01600h ; e8 45 ae 9244 9241 test al, al ; 84 c0 9245 je short 06 776h ; 74 6a9242 je short 06829h ; 74 6a 9246 9243 mov dx, 0009ch ; ba 9c 00 9247 9244 mov ax, strict word 00040h ; b8 40 00 9248 call 01638h ; e8 23 af9245 call 01638h ; e8 70 ae 9249 9246 test dx, dx ; 85 d2 9250 jne short 06 762h ; 75 499247 jne short 06815h ; 75 49 9251 9248 cmp ax, 003d1h ; 3d d1 03 9252 jnc short 06 762h ; 73 449249 jnc short 06815h ; 73 44 9253 9250 mov dx, 00098h ; ba 98 00 9254 9251 mov ax, strict word 00040h ; b8 40 00 9255 call 0161ch ; e8 f5ae9252 call 0161ch ; e8 42 ae 9256 9253 mov si, ax ; 89 c6 9257 9254 mov dx, 0009ah ; ba 9a 00 9258 9255 mov ax, strict word 00040h ; b8 40 00 9259 call 0161ch ; e8 eaae9256 call 0161ch ; e8 37 ae 9260 9257 mov cx, ax ; 89 c1 9261 9258 xor bx, bx ; 31 db 9262 9259 mov dx, 000a0h ; ba a0 00 9263 9260 mov ax, strict word 00040h ; b8 40 00 9264 call 0160eh ; e8 cfae9265 mov al, byte [bp-00 2h] ; 8a 46 fe9261 call 0160eh ; e8 1c ae 9262 mov al, byte [bp-004h] ; 8a 46 fc 9266 9263 and AL, strict byte 037h ; 24 37 9267 9264 movzx dx, al ; 0f b6 d0 9268 9265 mov ax, strict word 0000bh ; b8 0b 00 9269 call 016 6dh ; e8 20 af9266 call 01670h ; e8 70 ae 9270 9267 mov dx, cx ; 89 ca 9271 9268 mov ax, si ; 89 f0 9272 call 01600h ; e8 ac ae9269 call 01600h ; e8 f9 ad 9273 9270 or AL, strict byte 080h ; 0c 80 9274 9271 movzx bx, al ; 0f b6 d8 9275 9272 mov dx, cx ; 89 ca 9276 9273 mov ax, si ; 89 f0 9277 call 0160eh ; e8 ae ae9278 jmp short 06 776h ; eb 149274 call 0160eh ; e8 fb ad 9275 jmp short 06829h ; eb 14 9279 9276 mov bx, ax ; 89 c3 9280 9277 add bx, 0fc2fh ; 81 c3 2f fc … … 9283 9280 mov dx, 0009ch ; ba 9c 00 9284 9281 mov ax, strict word 00040h ; b8 40 00 9285 call 0164ah ; e8 d4ae9286 call 0e03bh ; e8 c2789287 lea ve ; c99282 call 0164ah ; e8 21 ae 9283 call 0e03bh ; e8 0f 78 9284 lea sp, [bp-002h] ; 8d 66 fe 9288 9285 pop si ; 5e 9286 pop bp ; 5d 9289 9287 retn ; c3 9290 db 0a3h, 067h, 0cah, 067h, 0efh, 067h, 021h, 068h, 06fh, 068h, 0a5h, 068h, 0e7h, 068h, 03ch, 069h 9291 _int1a_function: ; 0xf678c LB 0x1c0 9288 pop cx ; 59 9289 push 06882h ; 68 82 68 9290 cmpsw ; a7 9291 push 068d9h ; 68 d9 68 9292 sub byte [bx+di+060h], ch ; 28 69 60 9293 db 069h 9294 mov word [0fa69h], ax ; a3 69 fa 9295 db 069h 9296 _int1a_function: ; 0xf6842 LB 0x1c8 9292 9297 push bp ; 55 9293 9298 mov bp, sp ; 89 e5 … … 9295 9300 mov al, byte [bp+013h] ; 8a 46 13 9296 9301 cmp AL, strict byte 007h ; 3c 07 9297 jnbe near 06 7c8h ; 0f 87 2f 009302 jnbe near 0687eh ; 0f 87 2f 00 9298 9303 movzx bx, al ; 0f b6 d8 9299 9304 add bx, bx ; 01 db 9300 jmp word [cs:bx+06 77ch] ; 2e ff a7 7c 679305 jmp word [cs:bx+06832h] ; 2e ff a7 32 68 9301 9306 cli ; fa 9302 9307 mov bx, 0046eh ; bb 6e 04 … … 9313 9318 mov byte [es:bx], 000h ; 26 c6 07 00 9314 9319 sti ; fb 9320 mov sp, bp ; 89 ec 9315 9321 pop bp ; 5d 9316 9322 retn ; c3 … … 9328 9334 sti ; fb 9329 9335 mov byte [bp+013h], 000h ; c6 46 13 00 9330 pop bp ; 5d 9331 retn ; c3 9332 call 066b2h ; e8 c0 fe 9336 jmp short 0687eh ; eb d7 9337 call 06763h ; e8 b9 fe 9333 9338 test ax, ax ; 85 c0 9334 je short 067f8h ; 74 02 9335 pop bp ; 5d 9336 retn ; c3 9339 je short 068b0h ; 74 02 9340 jmp short 0687eh ; eb ce 9337 9341 xor ax, ax ; 31 c0 9338 call 0165ch ; e8 5f ae9342 call 0165ch ; e8 a7 ad 9339 9343 mov byte [bp+00fh], al ; 88 46 0f 9340 9344 mov ax, strict word 00002h ; b8 02 00 9341 call 0165ch ; e8 56 ae9345 call 0165ch ; e8 9e ad 9342 9346 mov byte [bp+010h], al ; 88 46 10 9343 9347 mov ax, strict word 00004h ; b8 04 00 9344 call 0165ch ; e8 4d ae9348 call 0165ch ; e8 95 ad 9345 9349 mov bl, al ; 88 c3 9346 9350 mov byte [bp+011h], al ; 88 46 11 9347 9351 mov ax, strict word 0000bh ; b8 0b 00 9348 call 0165ch ; e8 42 ae9352 call 0165ch ; e8 8a ad 9349 9353 and AL, strict byte 001h ; 24 01 9350 9354 mov byte [bp+00eh], al ; 88 46 0e 9351 jmp short 06 866h ; eb 459352 call 06 6b2h ; e8 8efe9355 jmp short 0691eh ; eb 45 9356 call 06763h ; e8 87 fe 9353 9357 test ax, ax ; 85 c0 9354 je short 068 2bh ; 74 039355 call 06 68dh ; e8 62fe9358 je short 068e3h ; 74 03 9359 call 0673bh ; e8 58 fe 9356 9360 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9357 9361 xor ax, ax ; 31 c0 9358 call 016 6dh ; e8 39 ae9362 call 01670h ; e8 84 ad 9359 9363 movzx dx, byte [bp+010h] ; 0f b6 56 10 9360 9364 mov ax, strict word 00002h ; b8 02 00 9361 call 016 6dh ; e8 2f ae9365 call 01670h ; e8 7a ad 9362 9366 movzx dx, byte [bp+011h] ; 0f b6 56 11 9363 9367 mov ax, strict word 00004h ; b8 04 00 9364 call 016 6dh ; e8 25 ae9368 call 01670h ; e8 70 ad 9365 9369 mov ax, strict word 0000bh ; b8 0b 00 9366 call 0165ch ; e8 0e ae9370 call 0165ch ; e8 56 ad 9367 9371 mov bl, al ; 88 c3 9368 9372 and bl, 060h ; 80 e3 60 … … 9373 9377 movzx dx, bl ; 0f b6 d3 9374 9378 mov ax, strict word 0000bh ; b8 0b 00 9375 call 016 6dh ; e8 07 ae9379 call 01670h ; e8 52 ad 9376 9380 mov byte [bp+013h], 000h ; c6 46 13 00 9377 9381 mov byte [bp+012h], bl ; 88 5e 12 9378 pop bp ; 5d 9379 retn ; c3 9382 jmp near 0687eh ; e9 56 ff 9380 9383 mov byte [bp+013h], 000h ; c6 46 13 00 9381 call 06 6b2h ; e8 3cfe9384 call 06763h ; e8 34 fe 9382 9385 test ax, ax ; 85 c0 9383 je short 0687ch ; 74 02 9384 pop bp ; 5d 9385 retn ; c3 9386 je short 06936h ; 74 03 9387 jmp near 0687eh ; e9 48 ff 9386 9388 mov ax, strict word 00009h ; b8 09 00 9387 call 0165ch ; e8 daad9389 call 0165ch ; e8 20 ad 9388 9390 mov byte [bp+010h], al ; 88 46 10 9389 9391 mov ax, strict word 00008h ; b8 08 00 9390 call 0165ch ; e8 d1ad9392 call 0165ch ; e8 17 ad 9391 9393 mov byte [bp+00fh], al ; 88 46 0f 9392 9394 mov ax, strict word 00007h ; b8 07 00 9393 call 0165ch ; e8 c8ad9395 call 0165ch ; e8 0e ad 9394 9396 mov byte [bp+00eh], al ; 88 46 0e 9395 9397 mov ax, strict word 00032h ; b8 32 00 9396 call 0165ch ; e8 bfad9398 call 0165ch ; e8 05 ad 9397 9399 mov byte [bp+011h], al ; 88 46 11 9398 9400 mov byte [bp+012h], al ; 88 46 12 9399 pop bp ; 5d 9400 retn ; c3 9401 call 066b2h ; e8 0a fe 9401 jmp near 0687eh ; e9 1e ff 9402 call 06763h ; e8 00 fe 9402 9403 test ax, ax ; 85 c0 9403 je short 068b1h ; 74 05 9404 call 0668dh ; e8 de fd 9405 pop bp ; 5d 9406 retn ; c3 9404 je short 0696dh ; 74 06 9405 call 0673bh ; e8 d1 fd 9406 jmp near 0687eh ; e9 11 ff 9407 9407 movzx dx, byte [bp+010h] ; 0f b6 56 10 9408 9408 mov ax, strict word 00009h ; b8 09 00 9409 call 016 6dh ; e8 b2 ad9409 call 01670h ; e8 f9 ac 9410 9410 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9411 9411 mov ax, strict word 00008h ; b8 08 00 9412 call 016 6dh ; e8 a8 ad9412 call 01670h ; e8 ef ac 9413 9413 movzx dx, byte [bp+00eh] ; 0f b6 56 0e 9414 9414 mov ax, strict word 00007h ; b8 07 00 9415 call 016 6dh ; e8 9e ad9415 call 01670h ; e8 e5 ac 9416 9416 movzx dx, byte [bp+011h] ; 0f b6 56 11 9417 9417 mov ax, strict word 00032h ; b8 32 00 9418 call 016 6dh ; e8 94 ad9418 call 01670h ; e8 db ac 9419 9419 mov ax, strict word 0000bh ; b8 0b 00 9420 call 0165ch ; e8 7d ad9420 call 0165ch ; e8 c1 ac 9421 9421 mov bl, al ; 88 c3 9422 9422 and bl, 07fh ; 80 e3 7f 9423 jmp near 06 85dh ; e9 76ff9423 jmp near 06915h ; e9 72 ff 9424 9424 mov ax, strict word 0000bh ; b8 0b 00 9425 call 0165ch ; e8 6f ad9425 call 0165ch ; e8 b3 ac 9426 9426 mov bl, al ; 88 c3 9427 9427 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 9428 9428 test AL, strict byte 020h ; a8 20 9429 je short 068fah ; 74 02 9430 pop bp ; 5d 9431 retn ; c3 9432 call 066b2h ; e8 b5 fd 9429 je short 069b7h ; 74 03 9430 jmp near 0687eh ; e9 c7 fe 9431 call 06763h ; e8 a9 fd 9433 9432 test ax, ax ; 85 c0 9434 je short 069 04h ; 74 039435 call 06 68dh ; e8 89fd9433 je short 069c1h ; 74 03 9434 call 0673bh ; e8 7a fd 9436 9435 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9437 9436 mov ax, strict word 00001h ; b8 01 00 9438 call 016 6dh ; e8 5f ad9437 call 01670h ; e8 a5 ac 9439 9438 movzx dx, byte [bp+010h] ; 0f b6 56 10 9440 9439 mov ax, strict word 00003h ; b8 03 00 9441 call 016 6dh ; e8 55 ad9440 call 01670h ; e8 9b ac 9442 9441 movzx dx, byte [bp+011h] ; 0f b6 56 11 9443 9442 mov ax, strict word 00005h ; b8 05 00 9444 call 016 6dh ; e8 4b ad9443 call 01670h ; e8 91 ac 9445 9444 mov dx, 000a1h ; ba a1 00 9446 9445 in AL, DX ; ec … … 9454 9453 movzx dx, al ; 0f b6 d0 9455 9454 mov ax, strict word 0000bh ; b8 0b 00 9456 call 0166dh ; e8 33 ad 9457 pop bp ; 5d 9458 retn ; c3 9455 call 01670h ; e8 79 ac 9456 jmp near 0687eh ; e9 84 fe 9459 9457 mov ax, strict word 0000bh ; b8 0b 00 9460 call 0165ch ; e8 1a ad9458 call 0165ch ; e8 5c ac 9461 9459 mov bl, al ; 88 c3 9462 9460 and AL, strict byte 057h ; 24 57 9463 9461 movzx dx, al ; 0f b6 d0 9464 jmp near 06860h ; e9 14 ff 9465 send_to_mouse_ctrl_: ; 0xf694c LB 0x31 9462 jmp near 06918h ; e9 0e ff 9463 send_to_mouse_ctrl_: ; 0xf6a0a LB 0x34 9464 push bp ; 55 9465 mov bp, sp ; 89 e5 9466 9466 push bx ; 53 9467 9467 push dx ; 52 9468 push bp ; 559469 mov bp, sp ; 89 e59470 9468 mov bl, al ; 88 c3 9471 9469 mov dx, strict word 00064h ; ba 64 00 … … 9474 9472 ; sub ah, ah ; 2a e4 9475 9473 test AL, strict byte 002h ; a8 02 9476 je short 06 96bh ; 74 0e9474 je short 06a29h ; 74 0e 9477 9475 push 00886h ; 68 86 08 9478 push 01 0fah ; 68 fa 109476 push 01100h ; 68 00 11 9479 9477 push strict byte 00007h ; 6a 07 9480 call 01 8e9h ; e8 81 af9478 call 0190dh ; e8 e7 ae 9481 9479 add sp, strict byte 00006h ; 83 c4 06 9482 9480 mov AL, strict byte 0d4h ; b0 d4 … … 9487 9485 out DX, AL ; ee 9488 9486 xor al, bl ; 30 d8 9489 pop bp ; 5d9487 lea sp, [bp-004h] ; 8d 66 fc 9490 9488 pop dx ; 5a 9491 9489 pop bx ; 5b 9490 pop bp ; 5d 9492 9491 retn ; c3 9493 get_mouse_data_: ; 0xf697d LB 0x38 9492 get_mouse_data_: ; 0xf6a3e LB 0x3b 9493 push bp ; 55 9494 mov bp, sp ; 89 e5 9494 9495 push bx ; 53 9495 9496 push cx ; 51 9496 push bp ; 559497 mov bp, sp ; 89 e59498 9497 mov bx, ax ; 89 c3 9499 9498 mov es, dx ; 8e c2 … … 9505 9504 and ax, strict word 00021h ; 25 21 00 9506 9505 cmp ax, strict word 00021h ; 3d 21 00 9507 je short 06 99eh ; 74 079506 je short 06a5fh ; 74 07 9508 9507 test cx, cx ; 85 c9 9509 je short 06 99eh ; 74 039508 je short 06a5fh ; 74 03 9510 9509 dec cx ; 49 9511 jmp short 06 989h ; eb eb9510 jmp short 06a4ah ; eb eb 9512 9511 test cx, cx ; 85 c9 9513 jne short 06 9a6h ; 75 049512 jne short 06a67h ; 75 04 9514 9513 mov AL, strict byte 001h ; b0 01 9515 jmp short 06 9b1h ; eb 0b9514 jmp short 06a72h ; eb 0b 9516 9515 mov dx, strict word 00060h ; ba 60 00 9517 9516 in AL, DX ; ec … … 9520 9519 mov byte [es:bx], al ; 26 88 07 9521 9520 xor al, al ; 30 c0 9522 pop bp ; 5d9521 lea sp, [bp-004h] ; 8d 66 fc 9523 9522 pop cx ; 59 9524 9523 pop bx ; 5b 9524 pop bp ; 5d 9525 9525 retn ; c3 9526 set_kbd_command_byte_: ; 0xf69b5 LB 0x2f 9526 set_kbd_command_byte_: ; 0xf6a79 LB 0x32 9527 push bp ; 55 9528 mov bp, sp ; 89 e5 9527 9529 push bx ; 53 9528 9530 push dx ; 52 9529 push bp ; 559530 mov bp, sp ; 89 e59531 9531 mov bl, al ; 88 c3 9532 9532 mov dx, strict word 00064h ; ba 64 00 … … 9535 9535 ; sub ah, ah ; 2a e4 9536 9536 test AL, strict byte 002h ; a8 02 9537 je short 06 9d4h ; 74 0e9537 je short 06a98h ; 74 0e 9538 9538 push 00890h ; 68 90 08 9539 push 01 0fah ; 68 fa 109539 push 01100h ; 68 00 11 9540 9540 push strict byte 00007h ; 6a 07 9541 call 01 8e9h ; e8 18 af9541 call 0190dh ; e8 78 ae 9542 9542 add sp, strict byte 00006h ; 83 c4 06 9543 9543 mov AL, strict byte 060h ; b0 60 … … 9547 9547 mov dx, strict word 00060h ; ba 60 00 9548 9548 out DX, AL ; ee 9549 pop bp ; 5d9549 lea sp, [bp-004h] ; 8d 66 fc 9550 9550 pop dx ; 5a 9551 9551 pop bx ; 5b 9552 pop bp ; 5d 9552 9553 retn ; c3 9553 _int74_function: ; 0xf69e4 LB 0xc6 9554 enter 00008h, 000h ; c8 08 00 00 9554 _int74_function: ; 0xf6aab LB 0xca 9555 push bp ; 55 9556 mov bp, sp ; 89 e5 9557 sub sp, strict byte 00008h ; 83 ec 08 9555 9558 mov dx, strict word 0000eh ; ba 0e 00 9556 9559 mov ax, strict word 00040h ; b8 40 00 9557 call 0161ch ; e8 2b ac9560 call 0161ch ; e8 62 ab 9558 9561 mov cx, ax ; 89 c1 9559 9562 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 9564 9567 and AL, strict byte 021h ; 24 21 9565 9568 cmp AL, strict byte 021h ; 3c 21 9566 jne near 06 a98h ; 0f 85 92 009569 jne near 06b61h ; 0f 85 92 00 9567 9570 mov dx, strict word 00060h ; ba 60 00 9568 9571 in AL, DX ; ec … … 9572 9575 mov dx, strict word 00026h ; ba 26 00 9573 9576 mov ax, cx ; 89 c8 9574 call 01600h ; e8 eaab9577 call 01600h ; e8 21 ab 9575 9578 mov byte [bp-006h], al ; 88 46 fa 9576 9579 mov dx, strict word 00027h ; ba 27 00 9577 9580 mov ax, cx ; 89 c8 9578 call 01600h ; e8 dfab9581 call 01600h ; e8 16 ab 9579 9582 mov byte [bp-008h], al ; 88 46 f8 9580 9583 test AL, strict byte 080h ; a8 80 9581 je short 06 a98h ; 74 709584 je short 06b61h ; 74 70 9582 9585 mov al, byte [bp-008h] ; 8a 46 f8 9583 9586 and AL, strict byte 007h ; 24 07 … … 9590 9593 add dx, strict byte 00028h ; 83 c2 28 9591 9594 mov ax, cx ; 89 c8 9592 call 0160eh ; e8 c9ab9595 call 0160eh ; e8 00 ab 9593 9596 mov al, byte [bp-004h] ; 8a 46 fc 9594 9597 cmp al, byte [bp-002h] ; 3a 46 fe 9595 jc short 06 a89h ; 72 3c9598 jc short 06b52h ; 72 3c 9596 9599 mov dx, strict word 00028h ; ba 28 00 9597 9600 mov ax, cx ; 89 c8 9598 call 01600h ; e8 ab ab9601 call 01600h ; e8 e2 aa 9599 9602 xor ah, ah ; 30 e4 9600 9603 mov word [bp+00ch], ax ; 89 46 0c 9601 9604 mov dx, strict word 00029h ; ba 29 00 9602 9605 mov ax, cx ; 89 c8 9603 call 01600h ; e8 9e ab9606 call 01600h ; e8 d5 aa 9604 9607 xor ah, ah ; 30 e4 9605 9608 mov word [bp+00ah], ax ; 89 46 0a 9606 9609 mov dx, strict word 0002ah ; ba 2a 00 9607 9610 mov ax, cx ; 89 c8 9608 call 01600h ; e8 91 ab9611 call 01600h ; e8 c8 aa 9609 9612 xor ah, ah ; 30 e4 9610 9613 mov word [bp+008h], ax ; 89 46 08 … … 9613 9616 mov byte [bp-006h], ah ; 88 66 fa 9614 9617 test byte [bp-008h], 080h ; f6 46 f8 80 9615 je short 06 a8ch ; 74 0a9618 je short 06b55h ; 74 0a 9616 9619 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 9617 jmp short 06 a8ch ; eb 039620 jmp short 06b55h ; eb 03 9618 9621 inc byte [bp-006h] ; fe 46 fa 9619 9622 movzx bx, byte [bp-006h] ; 0f b6 5e fa 9620 9623 mov dx, strict word 00026h ; ba 26 00 9621 9624 mov ax, cx ; 89 c8 9622 call 0160eh ; e8 76 ab 9623 leave ; c9 9625 call 0160eh ; e8 ad aa 9626 mov sp, bp ; 89 ec 9627 pop bp ; 5d 9624 9628 retn ; c3 9625 in AL, DX ; ec 9626 push strict byte 00062h ; 6a 62 9627 imul sp, bp, strict byte 0006bh ; 6b e5 6b 9628 jbe short 06b0eh ; 76 6c 9629 in AL, strict byte 06ch ; e4 6c 9630 cmp byte [bp+di+00ch], ch ; 38 6b 0c 9629 mov cx, 02f6bh ; b9 6b 2f 9630 insb ; 6c 9631 mov DL, strict byte 06ch ; b2 6c 9632 inc bx ; 43 9631 9633 insw ; 6d 9632 db 0d1h 9634 mov CL, strict byte 06dh ; b1 6d 9635 add ax, 0d96ch ; 05 6c d9 9633 9636 insw ; 6d 9634 _int15_function_mouse: ; 0xf6aaa LB 0x386 9637 sahf ; 9e 9638 outsb ; 6e 9639 _int15_function_mouse: ; 0xf6b75 LB 0x38b 9640 push bp ; 55 9641 mov bp, sp ; 89 e5 9635 9642 push si ; 56 9636 enter 00006h, 000h ; c8 06 00 009643 sub sp, strict byte 00006h ; 83 ec 06 9637 9644 mov dx, strict word 0000eh ; ba 0e 00 9638 9645 mov ax, strict word 00040h ; b8 40 00 9639 call 0161ch ; e8 64 ab9646 call 0161ch ; e8 97 aa 9640 9647 mov cx, ax ; 89 c1 9641 cmp byte [bp+014h], 007h ; 80 7e 14 07 9642 jbe short 06acbh ; 76 0b 9643 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9644 mov byte [bp+015h], 001h ; c6 46 15 01 9645 leave ; c9 9646 pop si ; 5e 9647 retn ; c3 9648 cmp byte [bp+012h], 007h ; 80 7e 12 07 9649 jbe short 06b98h ; 76 0b 9650 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9651 mov byte [bp+013h], 001h ; c6 46 13 01 9652 jmp near 06efah ; e9 62 03 9648 9653 mov ax, strict word 00065h ; b8 65 00 9649 call 06 9b5h ; e8 e4fe9650 and word [bp+01 ah], strict byte 0fffeh ; 83 66 1afe9651 mov byte [bp+01 5h], 000h ; c6 46 15009652 mov al, byte [bp+01 4h] ; 8a 46 149654 call 06a79h ; e8 db fe 9655 and word [bp+018h], strict byte 0fffeh ; 83 66 18 fe 9656 mov byte [bp+013h], 000h ; c6 46 13 00 9657 mov al, byte [bp+012h] ; 8a 46 12 9653 9658 cmp AL, strict byte 007h ; 3c 07 9654 jnbe near 06e 14h ; 0f 87 32 039659 jnbe near 06ee1h ; 0f 87 32 03 9655 9660 movzx si, al ; 0f b6 f0 9656 9661 add si, si ; 01 f6 9657 jmp word [cs:si+06 a9ah] ; 2e ff a4 9a 6a9658 cmp byte [bp+00 fh], 001h ; 80 7e 0f019659 jnbe near 06e 1fh ; 0f 87 2b 039662 jmp word [cs:si+06b65h] ; 2e ff a4 65 6b 9663 cmp byte [bp+00dh], 001h ; 80 7e 0d 01 9664 jnbe near 06eech ; 0f 87 2b 03 9660 9665 mov dx, strict word 00027h ; ba 27 00 9661 9666 mov ax, cx ; 89 c8 9662 call 01600h ; e8 04 ab9667 call 01600h ; e8 37 aa 9663 9668 test AL, strict byte 080h ; a8 80 9664 jne short 06b 0bh ; 75 0b9665 or word [bp+01 ah], strict byte 00001h ; 83 4e 1a019666 mov byte [bp+01 5h], 005h ; c6 46 15059667 jmp near 06e 27h ; e9 1c 039668 cmp byte [bp+00 fh], 000h ; 80 7e 0f009669 jne short 06bd8h ; 75 0b 9670 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9671 mov byte [bp+013h], 005h ; c6 46 13 05 9672 jmp near 06ef4h ; e9 1c 03 9673 cmp byte [bp+00dh], 000h ; 80 7e 0d 00 9669 9674 db 00fh, 094h, 0c0h 9670 9675 ; sete al ; 0f 94 c0 9671 9676 add AL, strict byte 0f4h ; 04 f4 9672 9677 xor ah, ah ; 30 e4 9673 call 06 94ch ; e8 33fe9678 call 06a0ah ; e8 24 fe 9674 9679 test al, al ; 84 c0 9675 jne near 06 dadh ; 0f 85 8e 029680 jne near 06e7ah ; 0f 85 8e 02 9676 9681 mov dx, ss ; 8c d2 9677 lea ax, [bp-00 6h] ; 8d 46 fa9678 call 06 97dh ; e8 56fe9682 lea ax, [bp-008h] ; 8d 46 f8 9683 call 06a3eh ; e8 4a fe 9679 9684 test al, al ; 84 c0 9680 je near 06e 27h ; 0f 84 fa 029681 cmp byte [bp-00 6h], 0fah ; 80 7e fafa9682 jne near 06 dadh ; 0f 85 78 029683 jmp near 06e 27h ; e9 ef 029684 mov al, byte [bp+00 fh] ; 8a 46 0f9685 je near 06ef4h ; 0f 84 fa 02 9686 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 9687 jne near 06e7ah ; 0f 85 78 02 9688 jmp near 06ef4h ; e9 ef 02 9689 mov al, byte [bp+00dh] ; 8a 46 0d 9685 9690 cmp AL, strict byte 001h ; 3c 01 9686 jc short 06 b43h ; 72 049691 jc short 06c10h ; 72 04 9687 9692 cmp AL, strict byte 008h ; 3c 08 9688 jbe short 06 b46h ; 76 039689 jmp near 06 cd9h ; e9 93 019693 jbe short 06c13h ; 76 03 9694 jmp near 06da6h ; e9 93 01 9690 9695 mov dx, strict word 00027h ; ba 27 00 9691 9696 mov ax, cx ; 89 c8 9692 call 01600h ; e8 b2 aa9693 mov ah, byte [bp+00 fh] ; 8a 66 0f9697 call 01600h ; e8 e5 a9 9698 mov ah, byte [bp+00dh] ; 8a 66 0d 9694 9699 db 0feh, 0cch 9695 9700 ; dec ah ; fe cc … … 9699 9704 mov dx, strict word 00027h ; ba 27 00 9700 9705 mov ax, cx ; 89 c8 9701 call 0160eh ; e8 ac aa9706 call 0160eh ; e8 df a9 9702 9707 mov dx, strict word 00026h ; ba 26 00 9703 9708 mov ax, cx ; 89 c8 9704 call 01600h ; e8 96 aa9709 call 01600h ; e8 c9 a9 9705 9710 and AL, strict byte 0f8h ; 24 f8 9706 9711 movzx bx, al ; 0f b6 d8 9707 9712 mov dx, strict word 00026h ; ba 26 00 9708 9713 mov ax, cx ; 89 c8 9709 call 0160eh ; e8 97 aa9714 call 0160eh ; e8 ca a9 9710 9715 mov ax, 000ffh ; b8 ff 00 9711 call 06 94ch ; e8 cffd9716 call 06a0ah ; e8 c0 fd 9712 9717 test al, al ; 84 c0 9713 jne near 06 dadh ; 0f 85 2a 029718 jne near 06e7ah ; 0f 85 2a 02 9714 9719 mov dx, ss ; 8c d2 9715 lea ax, [bp-00 2h] ; 8d 46 fe9716 call 06 97dh ; e8 f2fd9720 lea ax, [bp-004h] ; 8d 46 fc 9721 call 06a3eh ; e8 e6 fd 9717 9722 mov cl, al ; 88 c1 9718 cmp byte [bp-00 2h], 0feh ; 80 7e fefe9719 jne short 06 b9eh ; 75 0b9720 or word [bp+01 ah], strict byte 00001h ; 83 4e 1a019721 mov byte [bp+01 5h], 004h ; c6 46 15049722 jmp near 06e 27h ; e9 89 029723 cmp byte [bp-00 2h], 0fah ; 80 7e fefa9724 je short 06 bb4h ; 74 109725 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe9723 cmp byte [bp-004h], 0feh ; 80 7e fc fe 9724 jne short 06c6bh ; 75 0b 9725 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9726 mov byte [bp+013h], 004h ; c6 46 13 04 9727 jmp near 06ef4h ; e9 89 02 9728 cmp byte [bp-004h], 0fah ; 80 7e fc fa 9729 je short 06c81h ; 74 10 9730 movzx ax, byte [bp-004h] ; 0f b6 46 fc 9726 9731 push ax ; 50 9727 9732 push 0089bh ; 68 9b 08 9728 9733 push strict byte 00007h ; 6a 07 9729 call 01 8e9h ; e8 38 ad9734 call 0190dh ; e8 8f ac 9730 9735 add sp, strict byte 00006h ; 83 c4 06 9731 9736 test cl, cl ; 84 c9 9732 jne near 06dadh ; 0f 85 f3 01 9737 jne near 06e7ah ; 0f 85 f3 01 9738 mov dx, ss ; 8c d2 9739 lea ax, [bp-008h] ; 8d 46 f8 9740 call 06a3eh ; e8 af fd 9741 test al, al ; 84 c0 9742 jne near 06e7ah ; 0f 85 e5 01 9733 9743 mov dx, ss ; 8c d2 9734 9744 lea ax, [bp-006h] ; 8d 46 fa 9735 call 06 97dh ; e8 bbfd9745 call 06a3eh ; e8 a1 fd 9736 9746 test al, al ; 84 c0 9737 jne near 06dadh ; 0f 85 e5 01 9738 mov dx, ss ; 8c d2 9739 lea ax, [bp-004h] ; 8d 46 fc 9740 call 0697dh ; e8 ad fd 9747 jne near 06e7ah ; 0f 85 d7 01 9748 mov al, byte [bp-008h] ; 8a 46 f8 9749 mov byte [bp+00ch], al ; 88 46 0c 9750 mov al, byte [bp-006h] ; 8a 46 fa 9751 mov byte [bp+00dh], al ; 88 46 0d 9752 jmp near 06ef4h ; e9 42 02 9753 mov al, byte [bp+00dh] ; 8a 46 0d 9754 cmp AL, strict byte 003h ; 3c 03 9755 jc short 06cc9h ; 72 10 9756 jbe short 06ce7h ; 76 2c 9757 cmp AL, strict byte 006h ; 3c 06 9758 je short 06cf9h ; 74 3a 9759 cmp AL, strict byte 005h ; 3c 05 9760 je short 06cf3h ; 74 30 9761 cmp AL, strict byte 004h ; 3c 04 9762 je short 06cedh ; 74 26 9763 jmp short 06cffh ; eb 36 9764 cmp AL, strict byte 002h ; 3c 02 9765 je short 06ce1h ; 74 14 9766 cmp AL, strict byte 001h ; 3c 01 9767 je short 06cdbh ; 74 0a 9741 9768 test al, al ; 84 c0 9742 jne near 06dadh ; 0f 85 d7 01 9743 mov al, byte [bp-006h] ; 8a 46 fa 9744 mov byte [bp+00eh], al ; 88 46 0e 9745 mov al, byte [bp-004h] ; 8a 46 fc 9746 mov byte [bp+00fh], al ; 88 46 0f 9747 jmp near 06e27h ; e9 42 02 9748 mov al, byte [bp+00fh] ; 8a 46 0f 9749 cmp AL, strict byte 003h ; 3c 03 9750 jc short 06bfch ; 72 10 9751 jbe short 06c1ah ; 76 2c 9752 cmp AL, strict byte 006h ; 3c 06 9753 je short 06c2ch ; 74 3a 9754 cmp AL, strict byte 005h ; 3c 05 9755 je short 06c26h ; 74 30 9756 cmp AL, strict byte 004h ; 3c 04 9757 je short 06c20h ; 74 26 9758 jmp short 06c32h ; eb 36 9759 cmp AL, strict byte 002h ; 3c 02 9760 je short 06c14h ; 74 14 9761 cmp AL, strict byte 001h ; 3c 01 9762 je short 06c0eh ; 74 0a 9769 jne short 06cffh ; 75 2a 9770 mov byte [bp-008h], 00ah ; c6 46 f8 0a 9771 jmp short 06d03h ; eb 28 9772 mov byte [bp-008h], 014h ; c6 46 f8 14 9773 jmp short 06d03h ; eb 22 9774 mov byte [bp-008h], 028h ; c6 46 f8 28 9775 jmp short 06d03h ; eb 1c 9776 mov byte [bp-008h], 03ch ; c6 46 f8 3c 9777 jmp short 06d03h ; eb 16 9778 mov byte [bp-008h], 050h ; c6 46 f8 50 9779 jmp short 06d03h ; eb 10 9780 mov byte [bp-008h], 064h ; c6 46 f8 64 9781 jmp short 06d03h ; eb 0a 9782 mov byte [bp-008h], 0c8h ; c6 46 f8 c8 9783 jmp short 06d03h ; eb 04 9784 mov byte [bp-008h], 000h ; c6 46 f8 00 9785 cmp byte [bp-008h], 000h ; 80 7e f8 00 9786 jbe short 06d38h ; 76 2f 9787 mov ax, 000f3h ; b8 f3 00 9788 call 06a0ah ; e8 fb fc 9763 9789 test al, al ; 84 c0 9764 jne short 06c32h ; 75 2a 9765 mov byte [bp-006h], 00ah ; c6 46 fa 0a 9766 jmp short 06c36h ; eb 28 9767 mov byte [bp-006h], 014h ; c6 46 fa 14 9768 jmp short 06c36h ; eb 22 9769 mov byte [bp-006h], 028h ; c6 46 fa 28 9770 jmp short 06c36h ; eb 1c 9771 mov byte [bp-006h], 03ch ; c6 46 fa 3c 9772 jmp short 06c36h ; eb 16 9773 mov byte [bp-006h], 050h ; c6 46 fa 50 9774 jmp short 06c36h ; eb 10 9775 mov byte [bp-006h], 064h ; c6 46 fa 64 9776 jmp short 06c36h ; eb 0a 9777 mov byte [bp-006h], 0c8h ; c6 46 fa c8 9778 jmp short 06c36h ; eb 04 9779 mov byte [bp-006h], 000h ; c6 46 fa 00 9780 cmp byte [bp-006h], 000h ; 80 7e fa 00 9781 jbe short 06c6bh ; 76 2f 9782 mov ax, 000f3h ; b8 f3 00 9783 call 0694ch ; e8 0a fd 9784 test al, al ; 84 c0 9785 jne short 06c60h ; 75 1a 9786 mov dx, ss ; 8c d2 9787 lea ax, [bp-004h] ; 8d 46 fc 9788 call 0697dh ; e8 2f fd 9789 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9790 call 0694ch ; e8 f7 fc 9791 mov dx, ss ; 8c d2 9792 lea ax, [bp-004h] ; 8d 46 fc 9793 call 0697dh ; e8 20 fd 9794 jmp near 06e27h ; e9 c7 01 9795 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9796 mov byte [bp+015h], 003h ; c6 46 15 03 9797 jmp near 06e27h ; e9 bc 01 9798 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9799 mov byte [bp+015h], 002h ; c6 46 15 02 9800 jmp near 06e27h ; e9 b1 01 9801 cmp byte [bp+00fh], 004h ; 80 7e 0f 04 9802 jnc short 06cd9h ; 73 5d 9803 mov ax, 000e8h ; b8 e8 00 9804 call 0694ch ; e8 ca fc 9805 test al, al ; 84 c0 9806 jne short 06cceh ; 75 48 9790 jne short 06d2dh ; 75 1a 9807 9791 mov dx, ss ; 8c d2 9808 9792 lea ax, [bp-006h] ; 8d 46 fa 9809 call 0697dh ; e8 ef fc 9810 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9811 je short 06ca4h ; 74 10 9812 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9793 call 06a3eh ; e8 23 fd 9794 movzx ax, byte [bp-008h] ; 0f b6 46 f8 9795 call 06a0ah ; e8 e8 fc 9796 mov dx, ss ; 8c d2 9797 lea ax, [bp-006h] ; 8d 46 fa 9798 call 06a3eh ; e8 14 fd 9799 jmp near 06ef4h ; e9 c7 01 9800 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9801 mov byte [bp+013h], 003h ; c6 46 13 03 9802 jmp near 06ef4h ; e9 bc 01 9803 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9804 mov byte [bp+013h], 002h ; c6 46 13 02 9805 jmp near 06ef4h ; e9 b1 01 9806 cmp byte [bp+00dh], 004h ; 80 7e 0d 04 9807 jnc short 06da6h ; 73 5d 9808 mov ax, 000e8h ; b8 e8 00 9809 call 06a0ah ; e8 bb fc 9810 test al, al ; 84 c0 9811 jne short 06d9bh ; 75 48 9812 mov dx, ss ; 8c d2 9813 lea ax, [bp-008h] ; 8d 46 f8 9814 call 06a3eh ; e8 e3 fc 9815 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 9816 je short 06d71h ; 74 10 9817 movzx ax, byte [bp-008h] ; 0f b6 46 f8 9813 9818 push ax ; 50 9814 9819 push 008c6h ; 68 c6 08 9815 9820 push strict byte 00007h ; 6a 07 9816 call 01 8e9h ; e8 48 ac9821 call 0190dh ; e8 9f ab 9817 9822 add sp, strict byte 00006h ; 83 c4 06 9818 movzx ax, byte [bp+00 fh] ; 0f b6 46 0f9819 call 06 94ch ; e8 a1fc9823 movzx ax, byte [bp+00dh] ; 0f b6 46 0d 9824 call 06a0ah ; e8 92 fc 9820 9825 mov dx, ss ; 8c d2 9821 lea ax, [bp-00 6h] ; 8d 46 fa9822 call 06 97dh ; e8 cafc9823 cmp byte [bp-00 6h], 0fah ; 80 7e fafa9824 je near 06e 27h ; 0f 84 6c 019825 movzx ax, byte [bp-00 6h] ; 0f b6 46 fa9826 lea ax, [bp-008h] ; 8d 46 f8 9827 call 06a3eh ; e8 be fc 9828 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 9829 je near 06ef4h ; 0f 84 6c 01 9830 movzx ax, byte [bp-008h] ; 0f b6 46 f8 9826 9831 push ax ; 50 9827 9832 push 008c6h ; 68 c6 08 9828 9833 push strict byte 00007h ; 6a 07 9829 call 01 8e9h ; e8 21 ac9834 call 0190dh ; e8 78 ab 9830 9835 add sp, strict byte 00006h ; 83 c4 06 9831 jmp near 06e 27h ; e9 59 019832 or word [bp+01 ah], strict byte 00001h ; 83 4e 1a019833 mov byte [bp+01 5h], 003h ; c6 46 15039834 jmp near 06e 27h ; e9 4e 019835 or word [bp+01 ah], strict byte 00001h ; 83 4e 1a019836 mov byte [bp+01 5h], 002h ; c6 46 15029837 jmp near 06e 27h ; e9 43 019836 jmp near 06ef4h ; e9 59 01 9837 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9838 mov byte [bp+013h], 003h ; c6 46 13 03 9839 jmp near 06ef4h ; e9 4e 01 9840 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9841 mov byte [bp+013h], 002h ; c6 46 13 02 9842 jmp near 06ef4h ; e9 43 01 9838 9843 mov ax, 000f2h ; b8 f2 00 9839 call 06 94ch ; e8 62fc9844 call 06a0ah ; e8 53 fc 9840 9845 test al, al ; 84 c0 9841 jne short 06d01h ; 75 13 9846 jne short 06dceh ; 75 13 9847 mov dx, ss ; 8c d2 9848 lea ax, [bp-008h] ; 8d 46 f8 9849 call 06a3eh ; e8 7b fc 9842 9850 mov dx, ss ; 8c d2 9843 9851 lea ax, [bp-006h] ; 8d 46 fa 9844 call 0697dh ; e8 87 fc 9852 call 06a3eh ; e8 73 fc 9853 jmp near 06ca9h ; e9 db fe 9854 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9855 mov byte [bp+013h], 003h ; c6 46 13 03 9856 jmp near 06ef4h ; e9 1b 01 9857 mov al, byte [bp+00dh] ; 8a 46 0d 9858 test al, al ; 84 c0 9859 jbe short 06de7h ; 76 07 9860 cmp AL, strict byte 002h ; 3c 02 9861 jbe short 06e50h ; 76 6c 9862 jmp near 06e84h ; e9 9d 00 9863 mov ax, 000e9h ; b8 e9 00 9864 call 06a0ah ; e8 1d fc 9865 test al, al ; 84 c0 9866 jne near 06e7ah ; 0f 85 87 00 9845 9867 mov dx, ss ; 8c d2 9846 lea ax, [bp-004h] ; 8d 46 fc 9847 call 0697dh ; e8 7f fc 9848 jmp near 06bdch ; e9 db fe 9849 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9850 mov byte [bp+015h], 003h ; c6 46 15 03 9851 jmp near 06e27h ; e9 1b 01 9852 mov al, byte [bp+00fh] ; 8a 46 0f 9853 test al, al ; 84 c0 9854 jbe short 06d1ah ; 76 07 9855 cmp AL, strict byte 002h ; 3c 02 9856 jbe short 06d83h ; 76 6c 9857 jmp near 06db7h ; e9 9d 00 9858 mov ax, 000e9h ; b8 e9 00 9859 call 0694ch ; e8 2c fc 9860 test al, al ; 84 c0 9861 jne near 06dadh ; 0f 85 87 00 9862 mov dx, ss ; 8c d2 9863 lea ax, [bp-006h] ; 8d 46 fa 9864 call 0697dh ; e8 4f fc 9868 lea ax, [bp-008h] ; 8d 46 f8 9869 call 06a3eh ; e8 43 fc 9865 9870 mov cl, al ; 88 c1 9866 cmp byte [bp-00 6h], 0fah ; 80 7e fafa9867 je short 06 d46h ; 74 109868 movzx ax, byte [bp-00 6h] ; 0f b6 46 fa9871 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 9872 je short 06e13h ; 74 10 9873 movzx ax, byte [bp-008h] ; 0f b6 46 f8 9869 9874 push ax ; 50 9870 9875 push 008c6h ; 68 c6 08 9871 9876 push strict byte 00007h ; 6a 07 9872 call 01 8e9h ; e8 a6 ab9877 call 0190dh ; e8 fd aa 9873 9878 add sp, strict byte 00006h ; 83 c4 06 9874 9879 test cl, cl ; 84 c9 9875 jne short 06dadh ; 75 63 9880 jne short 06e7ah ; 75 63 9881 mov dx, ss ; 8c d2 9882 lea ax, [bp-008h] ; 8d 46 f8 9883 call 06a3eh ; e8 1f fc 9884 test al, al ; 84 c0 9885 jne short 06e7ah ; 75 57 9876 9886 mov dx, ss ; 8c d2 9877 9887 lea ax, [bp-006h] ; 8d 46 fa 9878 call 06 97dh ; e8 2bfc9888 call 06a3eh ; e8 13 fc 9879 9889 test al, al ; 84 c0 9880 jne short 06 dadh ; 75 579890 jne short 06e7ah ; 75 4b 9881 9891 mov dx, ss ; 8c d2 9882 9892 lea ax, [bp-004h] ; 8d 46 fc 9883 call 06 97dh ; e8 1ffc9893 call 06a3eh ; e8 07 fc 9884 9894 test al, al ; 84 c0 9885 jne short 06dadh ; 75 4b 9886 mov dx, ss ; 8c d2 9887 lea ax, [bp-002h] ; 8d 46 fe 9888 call 0697dh ; e8 13 fc 9889 test al, al ; 84 c0 9890 jne short 06dadh ; 75 3f 9895 jne short 06e7ah ; 75 3f 9896 mov al, byte [bp-008h] ; 8a 46 f8 9897 mov byte [bp+00ch], al ; 88 46 0c 9891 9898 mov al, byte [bp-006h] ; 8a 46 fa 9899 mov byte [bp+010h], al ; 88 46 10 9900 mov al, byte [bp-004h] ; 8a 46 fc 9892 9901 mov byte [bp+00eh], al ; 88 46 0e 9893 mov al, byte [bp-004h] ; 8a 46 fc 9894 mov byte [bp+012h], al ; 88 46 12 9895 mov al, byte [bp-002h] ; 8a 46 fe 9896 mov byte [bp+010h], al ; 88 46 10 9897 jmp near 06e27h ; e9 a4 00 9902 jmp near 06ef4h ; e9 a4 00 9898 9903 cmp AL, strict byte 001h ; 3c 01 9899 jne short 06 d8ch ; 75 059904 jne short 06e59h ; 75 05 9900 9905 mov ax, 000e6h ; b8 e6 00 9901 jmp short 06 d8fh ; eb 039906 jmp short 06e5ch ; eb 03 9902 9907 mov ax, 000e7h ; b8 e7 00 9903 call 06 94ch ; e8 bafb9908 call 06a0ah ; e8 ab fb 9904 9909 mov cl, al ; 88 c1 9905 9910 test cl, cl ; 84 c9 9906 jne short 06 da7h ; 75 0f9911 jne short 06e74h ; 75 0f 9907 9912 mov dx, ss ; 8c d2 9908 lea ax, [bp-00 6h] ; 8d 46 fa9909 call 06 97dh ; e8 ddfb9910 cmp byte [bp-00 6h], 0fah ; 80 7e fafa9913 lea ax, [bp-008h] ; 8d 46 f8 9914 call 06a3eh ; e8 d1 fb 9915 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 9911 9916 db 00fh, 095h, 0c1h 9912 9917 ; setne cl ; 0f 95 c1 9913 9918 test cl, cl ; 84 c9 9914 je near 06e 27h ; 0f 84 7a 009915 or word [bp+01 ah], strict byte 00001h ; 83 4e 1a019916 mov byte [bp+01 5h], 003h ; c6 46 15039917 jmp short 06e 27h ; eb 709918 movzx ax, byte [bp+00 fh] ; 0f b6 46 0f9919 je near 06ef4h ; 0f 84 7a 00 9920 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9921 mov byte [bp+013h], 003h ; c6 46 13 03 9922 jmp short 06ef4h ; eb 70 9923 movzx ax, byte [bp+00dh] ; 0f b6 46 0d 9919 9924 push ax ; 50 9920 9925 push 008f2h ; 68 f2 08 9921 9926 push strict byte 00007h ; 6a 07 9922 call 01 8e9h ; e8 25 ab9927 call 0190dh ; e8 7c aa 9923 9928 add sp, strict byte 00006h ; 83 c4 06 9924 or word [bp+01 ah], strict byte 00001h ; 83 4e 1a019925 mov byte [bp+01 5h], 001h ; c6 46 15019926 jmp short 06e 27h ; eb 569927 mov si, word [bp+00 eh] ; 8b 76 0e9929 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9930 mov byte [bp+013h], 001h ; c6 46 13 01 9931 jmp short 06ef4h ; eb 56 9932 mov si, word [bp+00ch] ; 8b 76 0c 9928 9933 mov bx, si ; 89 f3 9929 9934 mov dx, strict word 00022h ; ba 22 00 9930 9935 mov ax, cx ; 89 c8 9931 call 0162ah ; e8 4c a89932 mov bx, word [bp+01 6h] ; 8b 5e 169936 call 0162ah ; e8 7f a7 9937 mov bx, word [bp+014h] ; 8b 5e 14 9933 9938 mov dx, strict word 00024h ; ba 24 00 9934 9939 mov ax, cx ; 89 c8 9935 call 0162ah ; e8 41 a89940 call 0162ah ; e8 74 a7 9936 9941 mov dx, strict word 00027h ; ba 27 00 9937 9942 mov ax, cx ; 89 c8 9938 call 01600h ; e8 0f a89943 call 01600h ; e8 42 a7 9939 9944 mov ah, al ; 88 c4 9940 9945 test si, si ; 85 f6 9941 jne short 06e 05h ; 75 0e9942 cmp word [bp+01 6h], strict byte 00000h ; 83 7e 16009943 jne short 06e 05h ; 75 089946 jne short 06ed2h ; 75 0e 9947 cmp word [bp+014h], strict byte 00000h ; 83 7e 14 00 9948 jne short 06ed2h ; 75 08 9944 9949 test AL, strict byte 080h ; a8 80 9945 je short 06e 07h ; 74 069950 je short 06ed4h ; 74 06 9946 9951 and AL, strict byte 07fh ; 24 7f 9947 jmp short 06e 07h ; eb 029952 jmp short 06ed4h ; eb 02 9948 9953 or AL, strict byte 080h ; 0c 80 9949 9954 movzx bx, al ; 0f b6 d8 9950 9955 mov dx, strict word 00027h ; ba 27 00 9951 9956 mov ax, cx ; 89 c8 9952 call 0160eh ; e8 fca79953 jmp short 06e 27h ; eb 139957 call 0160eh ; e8 2f a7 9958 jmp short 06ef4h ; eb 13 9954 9959 push 0090ch ; 68 0c 09 9955 9960 push strict byte 00007h ; 6a 07 9956 call 01 8e9h ; e8 cdaa9961 call 0190dh ; e8 24 aa 9957 9962 add sp, strict byte 00004h ; 83 c4 04 9958 or word [bp+01 ah], strict byte 00001h ; 83 4e 1a019959 mov byte [bp+01 5h], 001h ; c6 46 15019963 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9964 mov byte [bp+013h], 001h ; c6 46 13 01 9960 9965 mov ax, strict word 00047h ; b8 47 00 9961 call 06 9b5h ; e8 88fb9962 lea ve ; c99966 call 06a79h ; e8 7f fb 9967 lea sp, [bp-002h] ; 8d 66 fe 9963 9968 pop si ; 5e 9969 pop bp ; 5d 9964 9970 retn ; c3 9965 _int17_function: ; 0xf6e30 LB 0xb1 9971 _int17_function: ; 0xf6f00 LB 0xb3 9972 push bp ; 55 9973 mov bp, sp ; 89 e5 9966 9974 push si ; 56 9967 enter 00002h, 000h ; c8 02 00 009975 push ax ; 50 9968 9976 sti ; fb 9969 mov dx, word [bp+0 10h] ; 8b 56 109977 mov dx, word [bp+00eh] ; 8b 56 0e 9970 9978 add dx, dx ; 01 d2 9971 9979 add dx, strict byte 00008h ; 83 c2 08 9972 9980 mov ax, strict word 00040h ; b8 40 00 9973 call 0161ch ; e8 d8 a79981 call 0161ch ; e8 08 a7 9974 9982 mov bx, ax ; 89 c3 9975 9983 mov si, ax ; 89 c6 9976 cmp byte [bp+01 5h], 003h ; 80 7e 15039977 jnc near 06 edah ; 0f 83 8a009978 mov ax, word [bp+0 10h] ; 8b 46 109984 cmp byte [bp+013h], 003h ; 80 7e 13 03 9985 jnc near 06fa9h ; 0f 83 89 00 9986 mov ax, word [bp+00eh] ; 8b 46 0e 9979 9987 cmp ax, strict word 00003h ; 3d 03 00 9980 jnc near 06 edah ; 0f 83 80009988 jnc near 06fa9h ; 0f 83 7f 00 9981 9989 test bx, bx ; 85 db 9982 jbe near 06 edah ; 0f 86 7a009990 jbe near 06fa9h ; 0f 86 79 00 9983 9991 mov dx, ax ; 89 c2 9984 9992 add dx, strict byte 00078h ; 83 c2 78 9985 9993 mov ax, strict word 00040h ; b8 40 00 9986 call 01600h ; e8 95 a79994 call 01600h ; e8 c5 a6 9987 9995 movzx cx, al ; 0f b6 c8 9988 9996 sal cx, 008h ; c1 e1 08 9989 cmp byte [bp+01 5h], 000h ; 80 7e 15009990 jne short 06 ea4h ; 75 2d9991 mov al, byte [bp+01 4h] ; 8a 46 149997 cmp byte [bp+013h], 000h ; 80 7e 13 00 9998 jne short 06f74h ; 75 2d 9999 mov al, byte [bp+012h] ; 8a 46 12 9992 10000 mov dx, bx ; 89 da 9993 10001 out DX, AL ; ee … … 9996 10004 db 02ah, 0e4h 9997 10005 ; sub ah, ah ; 2a e4 9998 mov word [bp-00 2h], ax ; 89 46 fe9999 mov al, byte [bp-00 2h] ; 8a 46 fe10006 mov word [bp-004h], ax ; 89 46 fc 10007 mov al, byte [bp-004h] ; 8a 46 fc 10000 10008 or AL, strict byte 001h ; 0c 01 10001 10009 out DX, AL ; ee 10002 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe10010 movzx ax, byte [bp-004h] ; 0f b6 46 fc 10003 10011 and AL, strict byte 0feh ; 24 fe 10004 10012 out DX, AL ; ee … … 10008 10016 ; sub ah, ah ; 2a e4 10009 10017 test AL, strict byte 040h ; a8 40 10010 je short 06 ea4h ; 74 0710018 je short 06f74h ; 74 07 10011 10019 test cx, cx ; 85 c9 10012 je short 06 ea4h ; 74 0310020 je short 06f74h ; 74 03 10013 10021 dec cx ; 49 10014 jmp short 06 e93h ; eb ef10015 cmp byte [bp+01 5h], 001h ; 80 7e 150110016 jne short 06 ec0h ; 75 1610022 jmp short 06f63h ; eb ef 10023 cmp byte [bp+013h], 001h ; 80 7e 13 01 10024 jne short 06f90h ; 75 16 10017 10025 lea dx, [si+002h] ; 8d 54 02 10018 10026 in AL, DX ; ec 10019 10027 db 02ah, 0e4h 10020 10028 ; sub ah, ah ; 2a e4 10021 mov word [bp-00 2h], ax ; 89 46 fe10022 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe10029 mov word [bp-004h], ax ; 89 46 fc 10030 movzx ax, byte [bp-004h] ; 0f b6 46 fc 10023 10031 and AL, strict byte 0fbh ; 24 fb 10024 10032 out DX, AL ; ee 10025 mov al, byte [bp-00 2h] ; 8a 46 fe10033 mov al, byte [bp-004h] ; 8a 46 fc 10026 10034 or AL, strict byte 004h ; 0c 04 10027 10035 out DX, AL ; ee … … 10031 10039 ; sub ah, ah ; 2a e4 10032 10040 xor AL, strict byte 048h ; 34 48 10033 mov byte [bp+01 5h], al ; 88 46 1510041 mov byte [bp+013h], al ; 88 46 13 10034 10042 test cx, cx ; 85 c9 10035 jne short 06ed3h ; 75 04 10036 or byte [bp+015h], 001h ; 80 4e 15 01 10037 and byte [bp+01eh], 0feh ; 80 66 1e fe 10038 leave ; c9 10043 jne short 06fa3h ; 75 04 10044 or byte [bp+013h], 001h ; 80 4e 13 01 10045 and byte [bp+01ch], 0feh ; 80 66 1c fe 10046 jmp short 06fadh ; eb 04 10047 or byte [bp+01ch], 001h ; 80 4e 1c 01 10048 lea sp, [bp-002h] ; 8d 66 fe 10039 10049 pop si ; 5e 10050 pop bp ; 5d 10040 10051 retn ; c3 10041 or byte [bp+01eh], 001h ; 80 4e 1e 01 10042 leave ; c9 10043 pop si ; 5e 10044 retn ; c3 10045 wait_: ; 0xf6ee1 LB 0xad 10052 wait_: ; 0xf6fb3 LB 0xb2 10053 push bp ; 55 10054 mov bp, sp ; 89 e5 10046 10055 push bx ; 53 10047 10056 push cx ; 51 10048 10057 push si ; 56 10049 10058 push di ; 57 10050 enter 0000ah, 000h ; c8 0a 00 0010059 sub sp, strict byte 0000ah ; 83 ec 0a 10051 10060 mov si, ax ; 89 c6 10052 mov byte [bp-00 4h], dl ; 88 56 fc10053 mov byte [bp-00 2h], 000h ; c6 46 fe0010061 mov byte [bp-00ch], dl ; 88 56 f4 10062 mov byte [bp-00ah], 000h ; c6 46 f6 00 10054 10063 pushfw ; 9c 10055 10064 pop ax ; 58 10056 mov word [bp-0 08h], ax ; 89 46 f810065 mov word [bp-010h], ax ; 89 46 f0 10057 10066 sti ; fb 10058 10067 xor cx, cx ; 31 c9 10059 10068 mov dx, 0046ch ; ba 6c 04 10060 10069 xor ax, ax ; 31 c0 10061 call 01638h ; e8 36 a710062 mov word [bp-00 6h], ax ; 89 46 fa10070 call 01638h ; e8 62 a6 10071 mov word [bp-00eh], ax ; 89 46 f2 10063 10072 mov bx, dx ; 89 d3 10064 10073 hlt ; f4 10065 10074 mov dx, 0046ch ; ba 6c 04 10066 10075 xor ax, ax ; 31 c0 10067 call 01638h ; e8 28 a710068 mov word [bp-0 0ah], ax ; 89 46 f610076 call 01638h ; e8 54 a6 10077 mov word [bp-012h], ax ; 89 46 ee 10069 10078 mov di, dx ; 89 d7 10070 10079 cmp dx, bx ; 39 da 10071 jnbe short 06f 20h ; 77 0710072 jne short 06f 27h ; 75 0c10073 cmp ax, word [bp-00 6h] ; 3b 46 fa10074 jbe short 06f 27h ; 76 0710075 sub ax, word [bp-00 6h] ; 2b 46 fa10080 jnbe short 06ff4h ; 77 07 10081 jne short 06ffbh ; 75 0c 10082 cmp ax, word [bp-00eh] ; 3b 46 f2 10083 jbe short 06ffbh ; 76 07 10084 sub ax, word [bp-00eh] ; 2b 46 f2 10076 10085 sbb dx, bx ; 19 da 10077 jmp short 0 6f32h ; eb 0b10086 jmp short 07006h ; eb 0b 10078 10087 cmp dx, bx ; 39 da 10079 jc short 0 6f32h ; 72 0710080 jne short 0 6f36h ; 75 0910081 cmp ax, word [bp-00 6h] ; 3b 46 fa10082 jnc short 0 6f36h ; 73 0410088 jc short 07006h ; 72 07 10089 jne short 0700ah ; 75 09 10090 cmp ax, word [bp-00eh] ; 3b 46 f2 10091 jnc short 0700ah ; 73 04 10083 10092 sub si, ax ; 29 c6 10084 10093 sbb cx, dx ; 19 d1 10085 mov ax, word [bp-0 0ah] ; 8b 46 f610086 mov word [bp-00 6h], ax ; 89 46 fa10094 mov ax, word [bp-012h] ; 8b 46 ee 10095 mov word [bp-00eh], ax ; 89 46 f2 10087 10096 mov bx, di ; 89 fb 10088 10097 mov ax, 00100h ; b8 00 01 10089 10098 int 016h ; cd 16 10090 je near 0 6f4ch ; 0f 84 05 0010099 je near 07020h ; 0f 84 05 00 10091 10100 mov AL, strict byte 001h ; b0 01 10092 jmp near 0 6f4eh ; e9 02 0010101 jmp near 07022h ; e9 02 00 10093 10102 db 032h, 0c0h 10094 10103 ; xor al, al ; 32 c0 10095 10104 test al, al ; 84 c0 10096 je short 0 6f76h ; 74 2410105 je short 0704ah ; 74 24 10097 10106 db 033h, 0c0h 10098 10107 ; xor ax, ax ; 33 c0 … … 10100 10109 xchg ah, al ; 86 c4 10101 10110 mov dl, al ; 88 c2 10102 mov byte [bp-00 2h], al ; 88 46 fe10111 mov byte [bp-00ah], al ; 88 46 f6 10103 10112 movzx ax, dl ; 0f b6 c2 10104 10113 push ax ; 50 10105 10114 push 0092eh ; 68 2e 09 10106 10115 push strict byte 00004h ; 6a 04 10107 call 01 8e9h ; e8 80 a910116 call 0190dh ; e8 d0 a8 10108 10117 add sp, strict byte 00006h ; 83 c4 06 10109 cmp byte [bp-00 4h], 000h ; 80 7e fc0010110 je short 0 6f76h ; 74 0410118 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10119 je short 0704ah ; 74 04 10111 10120 mov al, dl ; 88 d0 10112 jmp short 0 6f88h ; eb 1210121 jmp short 0705ch ; eb 12 10113 10122 test cx, cx ; 85 c9 10114 jnle short 06f 07h ; 7f 8d10115 jne short 0 6f80h ; 75 0410123 jnle short 06fdbh ; 7f 8d 10124 jne short 07054h ; 75 04 10116 10125 test si, si ; 85 f6 10117 jnbe short 06f 07h ; 77 8710118 mov ax, word [bp-0 08h] ; 8b 46 f810126 jnbe short 06fdbh ; 77 87 10127 mov ax, word [bp-010h] ; 8b 46 f0 10119 10128 push ax ; 50 10120 10129 popfw ; 9d 10121 mov al, byte [bp-00 2h] ; 8a 46 fe10122 lea ve ; c910130 mov al, byte [bp-00ah] ; 8a 46 f6 10131 lea sp, [bp-008h] ; 8d 66 f8 10123 10132 pop di ; 5f 10124 10133 pop si ; 5e 10125 10134 pop cx ; 59 10126 10135 pop bx ; 5b 10136 pop bp ; 5d 10127 10137 retn ; c3 10128 read_logo_byte_: ; 0xf6f8e LB 0x13 10129 push dx ; 52 10138 read_logo_byte_: ; 0xf7065 LB 0x16 10130 10139 push bp ; 55 10131 10140 mov bp, sp ; 89 e5 10141 push dx ; 52 10132 10142 xor ah, ah ; 30 e4 10133 10143 or ah, 001h ; 80 cc 01 … … 10137 10147 db 02ah, 0e4h 10138 10148 ; sub ah, ah ; 2a e4 10149 lea sp, [bp-002h] ; 8d 66 fe 10150 pop dx ; 5a 10139 10151 pop bp ; 5d 10140 pop dx ; 5a10141 10152 retn ; c3 10142 read_logo_word_: ; 0xf6fa1 LB 0x11 10143 push dx ; 52 10153 read_logo_word_: ; 0xf707b LB 0x14 10144 10154 push bp ; 55 10145 10155 mov bp, sp ; 89 e5 10156 push dx ; 52 10146 10157 xor ah, ah ; 30 e4 10147 10158 or ah, 001h ; 80 cc 01 … … 10149 10160 out DX, ax ; ef 10150 10161 in ax, DX ; ed 10162 lea sp, [bp-002h] ; 8d 66 fe 10163 pop dx ; 5a 10151 10164 pop bp ; 5d 10152 pop dx ; 5a10153 10165 retn ; c3 10154 print_detected_harddisks_: ; 0xf6fb2 LB 0x12c 10166 print_detected_harddisks_: ; 0xf708f LB 0x130 10167 push bp ; 55 10168 mov bp, sp ; 89 e5 10155 10169 push bx ; 53 10156 10170 push cx ; 51 … … 10158 10172 push si ; 56 10159 10173 push di ; 57 10160 enter 00004h, 000h ; c8 04 00 00 10174 push ax ; 50 10175 push ax ; 50 10161 10176 mov dx, strict word 0000eh ; ba 0e 00 10162 10177 mov ax, strict word 00040h ; b8 40 00 10163 call 0161ch ; e8 58 a610178 call 0161ch ; e8 7a a5 10164 10179 mov si, ax ; 89 c6 10165 mov byte [bp-00 2h], 000h ; c6 46 fe0010180 mov byte [bp-00ch], 000h ; c6 46 f4 00 10166 10181 xor cl, cl ; 30 c9 10167 10182 xor ch, ch ; 30 ed 10168 10183 mov dx, 002c0h ; ba c0 02 10169 call 01600h ; e8 2c a610170 mov byte [bp-00 4h], al ; 88 46 fc10184 call 01600h ; e8 4e a5 10185 mov byte [bp-00eh], al ; 88 46 f2 10171 10186 xor bl, bl ; 30 db 10172 cmp bl, byte [bp-00 4h] ; 3a 5e fc10173 jnc near 07 0b3h ; 0f 83 d3 0010187 cmp bl, byte [bp-00eh] ; 3a 5e f2 10188 jnc near 07191h ; 0f 83 d3 00 10174 10189 movzx dx, bl ; 0f b6 d3 10175 10190 add dx, 002c1h ; 81 c2 c1 02 10176 10191 mov ax, si ; 89 f0 10177 call 01600h ; e8 14 a610192 call 01600h ; e8 36 a5 10178 10193 mov bh, al ; 88 c7 10179 10194 cmp AL, strict byte 00ch ; 3c 0c 10180 jc short 070 16h ; 72 2410195 jc short 070f4h ; 72 24 10181 10196 test cl, cl ; 84 c9 10182 jne short 070 03h ; 75 0d10197 jne short 070e1h ; 75 0d 10183 10198 push 0093fh ; 68 3f 09 10184 10199 push strict byte 00002h ; 6a 02 10185 call 01 8e9h ; e8 eba810200 call 0190dh ; e8 31 a8 10186 10201 add sp, strict byte 00004h ; 83 c4 04 10187 10202 mov CL, strict byte 001h ; b1 01 … … 10191 10206 push 00953h ; 68 53 09 10192 10207 push strict byte 00002h ; 6a 02 10193 call 01 8e9h ; e8 d9a810208 call 0190dh ; e8 1f a8 10194 10209 add sp, strict byte 00006h ; 83 c4 06 10195 jmp near 07 0aeh ; e9 98 0010210 jmp near 0718ch ; e9 98 00 10196 10211 cmp AL, strict byte 008h ; 3c 08 10197 jc short 07 02dh ; 72 1310212 jc short 0710bh ; 72 13 10198 10213 test ch, ch ; 84 ed 10199 jne short 07 02bh ; 75 0d10214 jne short 07109h ; 75 0d 10200 10215 push 00966h ; 68 66 09 10201 10216 push strict byte 00002h ; 6a 02 10202 call 01 8e9h ; e8 c3a810217 call 0190dh ; e8 09 a8 10203 10218 add sp, strict byte 00004h ; 83 c4 04 10204 10219 mov CH, strict byte 001h ; b5 01 10205 jmp short 070 03h ; eb d610220 jmp short 070e1h ; eb d6 10206 10221 cmp AL, strict byte 004h ; 3c 04 10207 jnc short 07 048h ; 73 1710208 cmp byte [bp-00 2h], 000h ; 80 7e fe0010209 jne short 07 048h ; 75 1110222 jnc short 07126h ; 73 17 10223 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10224 jne short 07126h ; 75 11 10210 10225 push 0097ah ; 68 7a 09 10211 10226 push strict byte 00002h ; 6a 02 10212 call 01 8e9h ; e8 aa a810227 call 0190dh ; e8 f0 a7 10213 10228 add sp, strict byte 00004h ; 83 c4 04 10214 mov byte [bp-00 2h], 001h ; c6 46 fe0110215 jmp short 07 05eh ; eb 1610229 mov byte [bp-00ch], 001h ; c6 46 f4 01 10230 jmp short 0713ch ; eb 16 10216 10231 cmp bh, 004h ; 80 ff 04 10217 jc short 07 05eh ; 72 1110232 jc short 0713ch ; 72 11 10218 10233 test cl, cl ; 84 c9 10219 jne short 07 05eh ; 75 0d10234 jne short 0713ch ; 75 0d 10220 10235 push 0093fh ; 68 3f 09 10221 10236 push strict byte 00002h ; 6a 02 10222 call 01 8e9h ; e8 90 a810237 call 0190dh ; e8 d6 a7 10223 10238 add sp, strict byte 00004h ; 83 c4 04 10224 10239 mov CL, strict byte 001h ; b1 01 … … 10228 10243 push 0098bh ; 68 8b 09 10229 10244 push strict byte 00002h ; 6a 02 10230 call 01 8e9h ; e8 7e a810245 call 0190dh ; e8 c4 a7 10231 10246 add sp, strict byte 00006h ; 83 c4 06 10232 10247 cmp bh, 004h ; 80 ff 04 10233 jc short 07 076h ; 72 0310248 jc short 07154h ; 72 03 10234 10249 sub bh, 004h ; 80 ef 04 10235 10250 movzx ax, bh ; 0f b6 c7 … … 10239 10254 sar ax, 1 ; d1 f8 10240 10255 test ax, ax ; 85 c0 10241 je short 07 087h ; 74 0510256 je short 07165h ; 74 05 10242 10257 push 00995h ; 68 95 09 10243 jmp short 07 08ah ; eb 0310258 jmp short 07168h ; eb 03 10244 10259 push 009a0h ; 68 a0 09 10245 10260 push strict byte 00002h ; 6a 02 10246 call 01 8e9h ; e8 5a a810261 call 0190dh ; e8 a0 a7 10247 10262 add sp, strict byte 00004h ; 83 c4 04 10248 10263 movzx ax, bh ; 0f b6 c7 … … 10251 10266 idiv di ; f7 ff 10252 10267 test dx, dx ; 85 d2 10253 je short 07 0a4h ; 74 0510268 je short 07182h ; 74 05 10254 10269 push 009a9h ; 68 a9 09 10255 jmp short 07 0a7h ; eb 0310270 jmp short 07185h ; eb 03 10256 10271 push 009afh ; 68 af 09 10257 10272 push di ; 57 10258 call 01 8e9h ; e8 3e a810273 call 0190dh ; e8 84 a7 10259 10274 add sp, strict byte 00004h ; 83 c4 04 10260 10275 db 0feh, 0c3h 10261 10276 ; inc bl ; fe c3 10262 jmp near 0 6fd9h ; e9 26 ff10263 cmp byte [bp-00 2h], 000h ; 80 7e fe0010264 jne short 07 0cch ; 75 1310277 jmp near 070b7h ; e9 26 ff 10278 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10279 jne short 071aah ; 75 13 10265 10280 test cl, cl ; 84 c9 10266 jne short 07 0cch ; 75 0f10281 jne short 071aah ; 75 0f 10267 10282 test ch, ch ; 84 ed 10268 jne short 07 0cch ; 75 0b10283 jne short 071aah ; 75 0b 10269 10284 push 009b6h ; 68 b6 09 10270 10285 push strict byte 00002h ; 6a 02 10271 call 01 8e9h ; e8 20 a810286 call 0190dh ; e8 66 a7 10272 10287 add sp, strict byte 00004h ; 83 c4 04 10273 10288 push 009cah ; 68 ca 09 10274 10289 push strict byte 00002h ; 6a 02 10275 call 01 8e9h ; e8 15 a810290 call 0190dh ; e8 5b a7 10276 10291 add sp, strict byte 00004h ; 83 c4 04 10277 lea ve ; c910292 lea sp, [bp-00ah] ; 8d 66 f6 10278 10293 pop di ; 5f 10279 10294 pop si ; 5e … … 10281 10296 pop cx ; 59 10282 10297 pop bx ; 5b 10298 pop bp ; 5d 10283 10299 retn ; c3 10284 get_boot_drive_: ; 0xf70de LB 0x25 10300 get_boot_drive_: ; 0xf71bf LB 0x28 10301 push bp ; 55 10302 mov bp, sp ; 89 e5 10285 10303 push bx ; 53 10286 10304 push dx ; 52 10287 push bp ; 5510288 mov bp, sp ; 89 e510289 10305 mov bl, al ; 88 c3 10290 10306 mov dx, strict word 0000eh ; ba 0e 00 10291 10307 mov ax, strict word 00040h ; b8 40 00 10292 call 0161ch ; e8 2e a510308 call 0161ch ; e8 4d a4 10293 10309 mov dx, 002c0h ; ba c0 02 10294 call 01600h ; e8 0c a510310 call 01600h ; e8 2b a4 10295 10311 sub bl, 002h ; 80 eb 02 10296 10312 cmp bl, al ; 38 c3 10297 jc short 07 0fdh ; 72 0210313 jc short 071deh ; 72 02 10298 10314 mov BL, strict byte 0ffh ; b3 ff 10299 10315 mov al, bl ; 88 d8 10300 pop bp ; 5d10316 lea sp, [bp-004h] ; 8d 66 fc 10301 10317 pop dx ; 5a 10302 10318 pop bx ; 5b 10319 pop bp ; 5d 10303 10320 retn ; c3 10304 show_logo_: ; 0xf7103 LB 0x21f 10321 show_logo_: ; 0xf71e7 LB 0x224 10322 push bp ; 55 10323 mov bp, sp ; 89 e5 10305 10324 push bx ; 53 10306 10325 push cx ; 51 … … 10308 10327 push si ; 56 10309 10328 push di ; 57 10310 enter 0000ch, 000h ; c8 0c 00 0010329 sub sp, strict byte 0000ch ; 83 ec 0c 10311 10330 mov dx, strict word 0000eh ; ba 0e 00 10312 10331 mov ax, strict word 00040h ; b8 40 00 10313 call 0161ch ; e8 07 a510332 call 0161ch ; e8 21 a4 10314 10333 mov si, ax ; 89 c6 10315 10334 xor cl, cl ; 30 c9 … … 10322 10341 out strict byte 040h, AL ; e6 40 10323 10342 movzx ax, dl ; 0f b6 c2 10324 call 0 6fa1h ; e8 74fe10343 call 0707bh ; e8 68 fe 10325 10344 cmp ax, 066bbh ; 3d bb 66 10326 jne near 072 05h ; 0f 85 d1 0010345 jne near 072ebh ; 0f 85 d1 00 10327 10346 push SS ; 16 10328 10347 pop ES ; 07 10329 lea di, [bp-0 0ch] ; 8d 7e f410348 lea di, [bp-016h] ; 8d 7e ea 10330 10349 mov ax, 04f03h ; b8 03 4f 10331 10350 int 010h ; cd 10 10332 10351 mov word [es:di], bx ; 26 89 1d 10333 10352 cmp ax, strict word 0004fh ; 3d 4f 00 10334 jne near 072 05h ; 0f 85 bd 0010353 jne near 072ebh ; 0f 85 bd 00 10335 10354 mov al, dl ; 88 d0 10336 10355 add AL, strict byte 004h ; 04 04 10337 10356 xor ah, ah ; 30 e4 10338 call 0 6f8eh ; e8 3dfe10357 call 07065h ; e8 2e fe 10339 10358 mov ch, al ; 88 c5 10340 mov byte [bp-00 2h], al ; 88 46 fe10359 mov byte [bp-00ch], al ; 88 46 f4 10341 10360 mov al, dl ; 88 d0 10342 10361 add AL, strict byte 005h ; 04 05 10343 10362 xor ah, ah ; 30 e4 10344 call 0 6f8eh ; e8 2ffe10363 call 07065h ; e8 20 fe 10345 10364 mov dh, al ; 88 c6 10346 mov byte [bp-0 06h], al ; 88 46 fa10365 mov byte [bp-010h], al ; 88 46 f0 10347 10366 mov al, dl ; 88 d0 10348 10367 add AL, strict byte 002h ; 04 02 10349 10368 xor ah, ah ; 30 e4 10350 call 0 6fa1h ; e8 34fe10369 call 0707bh ; e8 28 fe 10351 10370 mov bx, ax ; 89 c3 10352 mov word [bp-0 0ah], ax ; 89 46 f610371 mov word [bp-014h], ax ; 89 46 ec 10353 10372 mov al, dl ; 88 d0 10354 10373 add AL, strict byte 006h ; 04 06 10355 10374 xor ah, ah ; 30 e4 10356 call 0 6f8eh ; e8 13fe10357 mov byte [bp-0 08h], al ; 88 46 f810375 call 07065h ; e8 04 fe 10376 mov byte [bp-012h], al ; 88 46 ee 10358 10377 test ch, ch ; 84 ed 10359 jne short 07 18ch ; 75 0a10378 jne short 07272h ; 75 0a 10360 10379 test dh, dh ; 84 f6 10361 jne short 07 18ch ; 75 0610380 jne short 07272h ; 75 06 10362 10381 test bx, bx ; 85 db 10363 je near 072 05h ; 0f 84 79 0010382 je near 072ebh ; 0f 84 79 00 10364 10383 mov bx, 00142h ; bb 42 01 10365 10384 mov ax, 04f02h ; b8 02 4f 10366 10385 int 010h ; cd 10 10367 cmp byte [bp-00 2h], 000h ; 80 7e fe0010368 je short 07 1bdh ; 74 2310386 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10387 je short 072a3h ; 74 23 10369 10388 xor bx, bx ; 31 db 10370 jmp short 07 1a4h ; eb 0610389 jmp short 0728ah ; eb 06 10371 10390 inc bx ; 43 10372 10391 cmp bx, strict byte 00010h ; 83 fb 10 10373 jnbe short 07 1c4h ; 77 2010392 jnbe short 072aah ; 77 20 10374 10393 mov ax, bx ; 89 d8 10375 10394 or ah, 002h ; 80 cc 02 … … 10378 10397 xor dx, dx ; 31 d2 10379 10398 mov ax, strict word 00001h ; b8 01 00 10380 call 06 ee1h ; e8 2cfd10399 call 06fb3h ; e8 18 fd 10381 10400 cmp AL, strict byte 086h ; 3c 86 10382 jne short 07 19eh ; 75 e510401 jne short 07284h ; 75 e5 10383 10402 mov CL, strict byte 001h ; b1 01 10384 jmp short 07 1c4h ; eb 0710403 jmp short 072aah ; eb 07 10385 10404 mov ax, 00210h ; b8 10 02 10386 10405 mov dx, 003b8h ; ba b8 03 10387 10406 out DX, ax ; ef 10388 10407 test cl, cl ; 84 c9 10389 jne short 07 1dah ; 75 1210390 mov ax, word [bp-0 0ah] ; 8b 46 f610408 jne short 072c0h ; 75 12 10409 mov ax, word [bp-014h] ; 8b 46 ec 10391 10410 shr ax, 004h ; c1 e8 04 10392 10411 mov dx, strict word 00001h ; ba 01 00 10393 call 06 ee1h ; e8 0d fd10412 call 06fb3h ; e8 f9 fc 10394 10413 cmp AL, strict byte 086h ; 3c 86 10395 jne short 07 1dah ; 75 0210414 jne short 072c0h ; 75 02 10396 10415 mov CL, strict byte 001h ; b1 01 10397 cmp byte [bp-0 06h], 000h ; 80 7e fa0010398 je short 072 05h ; 74 2510416 cmp byte [bp-010h], 000h ; 80 7e f0 00 10417 je short 072ebh ; 74 25 10399 10418 test cl, cl ; 84 c9 10400 jne short 072 05h ; 75 2110419 jne short 072ebh ; 75 21 10401 10420 mov bx, strict word 00010h ; bb 10 00 10402 jmp short 07 1eeh ; eb 0510421 jmp short 072d4h ; eb 05 10403 10422 dec bx ; 4b 10404 10423 test bx, bx ; 85 db 10405 jbe short 072 05h ; 76 1710424 jbe short 072ebh ; 76 17 10406 10425 mov ax, bx ; 89 d8 10407 10426 or ah, 002h ; 80 cc 02 … … 10410 10429 xor dx, dx ; 31 d2 10411 10430 mov ax, strict word 00001h ; b8 01 00 10412 call 06 ee1h ; e8 e2fc10431 call 06fb3h ; e8 ce fc 10413 10432 cmp AL, strict byte 086h ; 3c 86 10414 jne short 07 1e9h ; 75 e610433 jne short 072cfh ; 75 e6 10415 10434 mov CL, strict byte 001h ; b1 01 10416 10435 xor bx, bx ; 31 db 10417 10436 mov dx, 00339h ; ba 39 03 10418 10437 mov ax, si ; 89 f0 10419 call 0160eh ; e8 ffa310438 call 0160eh ; e8 19 a3 10420 10439 mov AL, strict byte 003h ; b0 03 10421 10440 mov AH, strict byte 000h ; b4 00 10422 10441 int 010h ; cd 10 10423 cmp byte [bp-0 08h], 000h ; 80 7e f80010424 je near 073 06h ; 0f 84 e9 0010425 cmp byte [bp-00 2h], 000h ; 80 7e fe0010426 jne short 07 253h ; 75 3010427 cmp byte [bp-0 06h], 000h ; 80 7e fa0010428 jne short 07 253h ; 75 2a10429 cmp word [bp-0 0ah], strict byte 00000h ; 83 7e f60010430 jne short 07 253h ; 75 2410431 cmp byte [bp-0 08h], 002h ; 80 7e f80210432 jne short 07 240h ; 75 0b10442 cmp byte [bp-012h], 000h ; 80 7e ee 00 10443 je near 073ech ; 0f 84 e9 00 10444 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10445 jne short 07339h ; 75 30 10446 cmp byte [bp-010h], 000h ; 80 7e f0 00 10447 jne short 07339h ; 75 2a 10448 cmp word [bp-014h], strict byte 00000h ; 83 7e ec 00 10449 jne short 07339h ; 75 24 10450 cmp byte [bp-012h], 002h ; 80 7e ee 02 10451 jne short 07326h ; 75 0b 10433 10452 push 009cch ; 68 cc 09 10434 10453 push strict byte 00002h ; 6a 02 10435 call 01 8e9h ; e8 ac a610454 call 0190dh ; e8 ea a5 10436 10455 add sp, strict byte 00004h ; 83 c4 04 10437 10456 test cl, cl ; 84 c9 10438 jne short 07 253h ; 75 0f10457 jne short 07339h ; 75 0f 10439 10458 mov dx, strict word 00001h ; ba 01 00 10440 10459 mov ax, 000c0h ; b8 c0 00 10441 call 06 ee1h ; e8 94fc10460 call 06fb3h ; e8 80 fc 10442 10461 cmp AL, strict byte 086h ; 3c 86 10443 jne short 07 253h ; 75 0210462 jne short 07339h ; 75 02 10444 10463 mov CL, strict byte 001h ; b1 01 10445 10464 test cl, cl ; 84 c9 10446 je near 073 06h ; 0f 84 ad 0010447 mov byte [bp-00 4h], 000h ; c6 46 fc0010465 je near 073ech ; 0f 84 ad 00 10466 mov byte [bp-00eh], 000h ; c6 46 f2 00 10448 10467 mov ax, 00100h ; b8 00 01 10449 10468 mov cx, 01000h ; b9 00 10 … … 10463 10482 push 009eeh ; 68 ee 09 10464 10483 push strict byte 00002h ; 6a 02 10465 call 01 8e9h ; e8 67 a610484 call 0190dh ; e8 a5 a5 10466 10485 add sp, strict byte 00004h ; 83 c4 04 10467 call 0 6fb2h ; e8 2afd10486 call 0708fh ; e8 21 fd 10468 10487 push 00a32h ; 68 32 0a 10469 10488 push strict byte 00002h ; 6a 02 10470 call 01 8e9h ; e8 59 a610489 call 0190dh ; e8 97 a5 10471 10490 add sp, strict byte 00004h ; 83 c4 04 10472 10491 mov dx, strict word 00001h ; ba 01 00 10473 10492 mov ax, strict word 00040h ; b8 40 00 10474 call 06 ee1h ; e8 45fc10493 call 06fb3h ; e8 31 fc 10475 10494 mov bl, al ; 88 c3 10476 10495 test al, al ; 84 c0 10477 je short 07 293h ; 74 f110496 je short 07379h ; 74 f1 10478 10497 cmp AL, strict byte 030h ; 3c 30 10479 je short 07 2f4h ; 74 4e10498 je short 073dah ; 74 4e 10480 10499 cmp bl, 002h ; 80 fb 02 10481 jc short 07 2cdh ; 72 2210500 jc short 073b3h ; 72 22 10482 10501 cmp bl, 009h ; 80 fb 09 10483 jnbe short 07 2cdh ; 77 1d10502 jnbe short 073b3h ; 77 1d 10484 10503 movzx ax, bl ; 0f b6 c3 10485 call 07 0deh ; e8 28fe10504 call 071bfh ; e8 23 fe 10486 10505 cmp AL, strict byte 0ffh ; 3c ff 10487 jne short 07 2bch ; 75 0210488 jmp short 07 293h ; eb d710506 jne short 073a2h ; 75 02 10507 jmp short 07379h ; eb d7 10489 10508 movzx bx, al ; 0f b6 d8 10490 10509 mov dx, 00338h ; ba 38 03 10491 10510 mov ax, si ; 89 f0 10492 call 0160eh ; e8 47 a310493 mov byte [bp-00 4h], 002h ; c6 46 fc0210494 jmp short 07 2f4h ; eb 2710511 call 0160eh ; e8 61 a2 10512 mov byte [bp-00eh], 002h ; c6 46 f2 02 10513 jmp short 073dah ; eb 27 10495 10514 cmp bl, 02eh ; 80 fb 2e 10496 je short 07 2e2h ; 74 1010515 je short 073c8h ; 74 10 10497 10516 cmp bl, 026h ; 80 fb 26 10498 je short 07 2e8h ; 74 1110517 je short 073ceh ; 74 11 10499 10518 cmp bl, 021h ; 80 fb 21 10500 jne short 07 2eeh ; 75 1210501 mov byte [bp-00 4h], 001h ; c6 46 fc0110502 jmp short 07 2f4h ; eb 1210503 mov byte [bp-00 4h], 003h ; c6 46 fc0310504 jmp short 07 2f4h ; eb 0c10505 mov byte [bp-00 4h], 004h ; c6 46 fc0410506 jmp short 07 2f4h ; eb 0610507 cmp byte [bp-00 4h], 000h ; 80 7e fc0010508 je short 07 293h ; 74 9f10509 movzx bx, byte [bp-00 4h] ; 0f b6 5e fc10519 jne short 073d4h ; 75 12 10520 mov byte [bp-00eh], 001h ; c6 46 f2 01 10521 jmp short 073dah ; eb 12 10522 mov byte [bp-00eh], 003h ; c6 46 f2 03 10523 jmp short 073dah ; eb 0c 10524 mov byte [bp-00eh], 004h ; c6 46 f2 04 10525 jmp short 073dah ; eb 06 10526 cmp byte [bp-00eh], 000h ; 80 7e f2 00 10527 je short 07379h ; 74 9f 10528 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 10510 10529 mov dx, 00339h ; ba 39 03 10511 10530 mov ax, si ; 89 f0 10512 call 0160eh ; e8 0e a310531 call 0160eh ; e8 28 a2 10513 10532 mov AL, strict byte 003h ; b0 03 10514 10533 mov AH, strict byte 000h ; b4 00 … … 10523 10542 push DS ; 1e 10524 10543 mov ds, ax ; 8e d8 10525 call 0edbfh ; e8 a7 7a10544 call 0edbfh ; e8 c1 79 10526 10545 pop DS ; 1f 10527 10546 popad ; 66 61 10528 lea ve ; c910547 lea sp, [bp-00ah] ; 8d 66 f6 10529 10548 pop di ; 5f 10530 10549 pop si ; 5e … … 10532 10551 pop cx ; 59 10533 10552 pop bx ; 5b 10553 pop bp ; 5d 10534 10554 retn ; c3 10535 delay_boot_: ; 0xf7322 LB 0x64 10555 delay_boot_: ; 0xf740b LB 0x67 10556 push bp ; 55 10557 mov bp, sp ; 89 e5 10536 10558 push bx ; 53 10537 10559 push dx ; 52 10538 push bp ; 5510539 mov bp, sp ; 89 e510540 10560 mov dx, ax ; 89 c2 10541 10561 test ax, ax ; 85 c0 10542 je short 07 382h ; 74 5510562 je short 0746bh ; 74 55 10543 10563 mov AL, strict byte 034h ; b0 34 10544 10564 out strict byte 043h, AL ; e6 43 … … 10550 10570 push 00a7ch ; 68 7c 0a 10551 10571 push strict byte 00002h ; 6a 02 10552 call 01 8e9h ; e8 a7 a510572 call 0190dh ; e8 e2 a4 10553 10573 add sp, strict byte 00006h ; 83 c4 06 10554 10574 mov bx, dx ; 89 d3 10555 10575 test bx, bx ; 85 db 10556 jbe short 07 362h ; 76 1710576 jbe short 0744bh ; 76 17 10557 10577 push bx ; 53 10558 10578 push 00a9ah ; 68 9a 0a 10559 10579 push strict byte 00002h ; 6a 02 10560 call 01 8e9h ; e8 95 a510580 call 0190dh ; e8 d0 a4 10561 10581 add sp, strict byte 00006h ; 83 c4 06 10562 10582 xor dx, dx ; 31 d2 10563 10583 mov ax, strict word 00040h ; b8 40 00 10564 call 06 ee1h ; e8 82fb10584 call 06fb3h ; e8 6b fb 10565 10585 dec bx ; 4b 10566 jmp short 07 347h ; eb e510586 jmp short 07430h ; eb e5 10567 10587 push 009cah ; 68 ca 09 10568 10588 push strict byte 00002h ; 6a 02 10569 call 01 8e9h ; e8 7f a510589 call 0190dh ; e8 ba a4 10570 10590 add sp, strict byte 00004h ; 83 c4 04 10571 10591 mov AL, strict byte 034h ; b0 34 … … 10578 10598 push DS ; 1e 10579 10599 mov ds, ax ; 8e d8 10580 call 0edbfh ; e8 40 7a10600 call 0edbfh ; e8 57 79 10581 10601 pop DS ; 1f 10582 10602 popad ; 66 61 10583 pop bp ; 5d10603 lea sp, [bp-004h] ; 8d 66 fc 10584 10604 pop dx ; 5a 10585 10605 pop bx ; 5b 10606 pop bp ; 5d 10586 10607 retn ; c3 10587 scsi_cmd_data_in_: ; 0xf7386 LB 0x88 10608 scsi_cmd_data_in_: ; 0xf7472 LB 0xb2 10609 push bp ; 55 10610 mov bp, sp ; 89 e5 10588 10611 push si ; 56 10589 10612 push di ; 57 10590 enter 00006h, 000h ; c8 06 00 0010613 sub sp, strict byte 00006h ; 83 ec 06 10591 10614 mov si, ax ; 89 c6 10592 mov byte [bp-002h], dl ; 88 56 fe 10593 mov word [bp-006h], bx ; 89 5e fa 10594 mov word [bp-004h], cx ; 89 4e fc 10615 mov byte [bp-006h], dl ; 88 56 fa 10616 mov word [bp-00ah], bx ; 89 5e f6 10617 mov word [bp-008h], cx ; 89 4e f8 10618 mov bx, word [bp+00ah] ; 8b 5e 0a 10595 10619 mov dx, si ; 89 f2 10596 10620 in AL, DX ; ec … … 10598 10622 ; sub ah, ah ; 2a e4 10599 10623 test AL, strict byte 001h ; a8 01 10600 jne short 07 397h ; 75 f710601 mov ax, word [bp+00eh] ; 8b 46 0e10602 mov dx, word [bp+0 10h] ; 8b 56 1010624 jne short 07488h ; 75 f7 10625 mov ax, bx ; 89 d8 10626 mov dx, word [bp+00ch] ; 8b 56 0c 10603 10627 mov cx, strict word 0000ch ; b9 0c 00 10604 10628 shr dx, 1 ; d1 ea 10605 10629 rcr ax, 1 ; d1 d8 10606 loop 07 3a9h ; e2 fa10630 loop 07499h ; e2 fa 10607 10631 and ax, 000f0h ; 25 f0 00 10608 movzx bx, byte [bp+008h] ; 0f b6 5e 0810609 or bx, ax ; 09 c310610 mov al, byte [bp-00 2h] ; 8a 46 fe10632 movzx cx, byte [bp+004h] ; 0f b6 4e 04 10633 or cx, ax ; 09 c1 10634 mov al, byte [bp-006h] ; 8a 46 fa 10611 10635 mov dx, si ; 89 f2 10612 10636 out DX, AL ; ee 10613 10637 xor al, al ; 30 c0 10614 10638 out DX, AL ; ee 10639 mov al, cl ; 88 c8 10640 out DX, AL ; ee 10615 10641 mov al, bl ; 88 d8 10616 10642 out DX, AL ; ee 10617 mov al, byte [bp+00eh] ; 8a 46 0e 10618 out DX, AL ; ee 10619 mov ax, word [bp+00eh] ; 8b 46 0e 10620 mov dx, word [bp+010h] ; 8b 56 10 10643 mov ax, bx ; 89 d8 10644 mov dx, word [bp+00ch] ; 8b 56 0c 10621 10645 mov cx, strict word 00008h ; b9 08 00 10622 10646 shr dx, 1 ; d1 ea 10623 10647 rcr ax, 1 ; d1 d8 10624 loop 07 3d1h ; e2 fa10648 loop 074bfh ; e2 fa 10625 10649 mov dx, si ; 89 f2 10626 10650 out DX, AL ; ee 10627 xor bx, bx ; 31 db10628 movzx ax, byte [bp+00 8h] ; 0f b6 46 0810629 cmp bx, ax ; 39 c310630 jnc short 07 3f2h ; 73 0e10631 les di, [bp-00 6h] ; c4 7e fa10632 add di, bx ; 01 df10651 xor cx, cx ; 31 c9 10652 movzx ax, byte [bp+004h] ; 0f b6 46 04 10653 cmp cx, ax ; 39 c1 10654 jnc short 074e0h ; 73 0e 10655 les di, [bp-00ah] ; c4 7e f6 10656 add di, cx ; 01 cf 10633 10657 mov al, byte [es:di] ; 26 8a 05 10634 10658 mov dx, si ; 89 f2 10635 10659 out DX, AL ; ee 10636 inc bx ; 4310637 jmp short 07 3dch ; eb ea10660 inc cx ; 41 10661 jmp short 074cah ; eb ea 10638 10662 mov dx, si ; 89 f2 10639 10663 in AL, DX ; ec … … 10641 10665 ; sub ah, ah ; 2a e4 10642 10666 test AL, strict byte 001h ; a8 01 10643 jne short 07 3f2h ; 75 f710667 jne short 074e0h ; 75 f7 10644 10668 lea dx, [si+001h] ; 8d 54 01 10645 mov cx, word [bp+00eh] ; 8b 4e 0e 10646 les di, [bp+00ah] ; c4 7e 0a 10669 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 10670 jne short 074f8h ; 75 06 10671 cmp bx, 08000h ; 81 fb 00 80 10672 jbe short 07512h ; 76 1a 10673 mov cx, 08000h ; b9 00 80 10674 les di, [bp+006h] ; c4 7e 06 10675 rep insb ; f3 6c 10676 add bx, 08000h ; 81 c3 00 80 10677 adc word [bp+00ch], strict byte 0ffffh ; 83 56 0c ff 10678 mov ax, es ; 8c c0 10679 add ax, 00800h ; 05 00 08 10680 mov word [bp+008h], ax ; 89 46 08 10681 jmp short 074e9h ; eb d7 10682 mov cx, bx ; 89 d9 10683 les di, [bp+006h] ; c4 7e 06 10647 10684 rep insb ; f3 6c 10648 10685 xor ax, ax ; 31 c0 10649 lea ve ; c910686 lea sp, [bp-004h] ; 8d 66 fc 10650 10687 pop di ; 5f 10651 10688 pop si ; 5e 10689 pop bp ; 5d 10652 10690 retn 0000ah ; c2 0a 00 10653 scsi_cmd_data_out_: ; 0xf740e LB 0x89 10691 scsi_cmd_data_out_: ; 0xf7524 LB 0xb4 10692 push bp ; 55 10693 mov bp, sp ; 89 e5 10654 10694 push si ; 56 10655 10695 push di ; 57 10656 enter 00006h, 000h ; c8 06 00 0010696 sub sp, strict byte 00006h ; 83 ec 06 10657 10697 mov di, ax ; 89 c7 10658 mov byte [bp-002h], dl ; 88 56 fe 10659 mov word [bp-006h], bx ; 89 5e fa 10660 mov word [bp-004h], cx ; 89 4e fc 10698 mov byte [bp-006h], dl ; 88 56 fa 10699 mov word [bp-00ah], bx ; 89 5e f6 10700 mov word [bp-008h], cx ; 89 4e f8 10701 mov bx, word [bp+00ah] ; 8b 5e 0a 10661 10702 mov dx, di ; 89 fa 10662 10703 in AL, DX ; ec … … 10664 10705 ; sub ah, ah ; 2a e4 10665 10706 test AL, strict byte 001h ; a8 01 10666 jne short 07 41fh ; 75 f710667 mov ax, word [bp+00eh] ; 8b 46 0e10668 mov dx, word [bp+0 10h] ; 8b 56 1010707 jne short 0753ah ; 75 f7 10708 mov ax, bx ; 89 d8 10709 mov dx, word [bp+00ch] ; 8b 56 0c 10669 10710 mov cx, strict word 0000ch ; b9 0c 00 10670 10711 shr dx, 1 ; d1 ea 10671 10712 rcr ax, 1 ; d1 d8 10672 loop 07 431h ; e2 fa10713 loop 0754bh ; e2 fa 10673 10714 and ax, 000f0h ; 25 f0 00 10674 movzx bx, byte [bp+008h] ; 0f b6 5e 0810675 or bx, ax ; 09 c310676 mov al, byte [bp-00 2h] ; 8a 46 fe10715 movzx cx, byte [bp+004h] ; 0f b6 4e 04 10716 or cx, ax ; 09 c1 10717 mov al, byte [bp-006h] ; 8a 46 fa 10677 10718 mov dx, di ; 89 fa 10678 10719 out DX, AL ; ee 10679 10720 mov AL, strict byte 001h ; b0 01 10680 10721 out DX, AL ; ee 10722 mov al, cl ; 88 c8 10723 out DX, AL ; ee 10681 10724 mov al, bl ; 88 d8 10682 10725 out DX, AL ; ee 10683 mov al, byte [bp+00eh] ; 8a 46 0e 10684 out DX, AL ; ee 10685 mov ax, word [bp+00eh] ; 8b 46 0e 10686 mov dx, word [bp+010h] ; 8b 56 10 10726 mov ax, bx ; 89 d8 10727 mov dx, word [bp+00ch] ; 8b 56 0c 10687 10728 mov cx, strict word 00008h ; b9 08 00 10688 10729 shr dx, 1 ; d1 ea 10689 10730 rcr ax, 1 ; d1 d8 10690 loop 07 459h ; e2 fa10731 loop 07571h ; e2 fa 10691 10732 mov dx, di ; 89 fa 10692 10733 out DX, AL ; ee 10693 xor bx, bx ; 31 db10694 movzx ax, byte [bp+00 8h] ; 0f b6 46 0810695 cmp bx, ax ; 39 c310696 jnc short 07 47ah ; 73 0e10697 les si, [bp-00 6h] ; c4 76 fa10698 add si, bx ; 01 de10734 xor cx, cx ; 31 c9 10735 movzx ax, byte [bp+004h] ; 0f b6 46 04 10736 cmp cx, ax ; 39 c1 10737 jnc short 07592h ; 73 0e 10738 les si, [bp-00ah] ; c4 76 f6 10739 add si, cx ; 01 ce 10699 10740 mov al, byte [es:si] ; 26 8a 04 10700 10741 mov dx, di ; 89 fa 10701 10742 out DX, AL ; ee 10702 inc bx ; 4310703 jmp short 07 464h ; eb ea10743 inc cx ; 41 10744 jmp short 0757ch ; eb ea 10704 10745 lea dx, [di+001h] ; 8d 55 01 10705 mov cx, word [bp+00eh] ; 8b 4e 0e 10706 les si, [bp+00ah] ; c4 76 0a 10746 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 10747 jne short 075a1h ; 75 06 10748 cmp bx, 08000h ; 81 fb 00 80 10749 jbe short 075bch ; 76 1b 10750 mov cx, 08000h ; b9 00 80 10751 les si, [bp+006h] ; c4 76 06 10752 db 0f3h, 026h, 06eh 10753 ; rep es outsb ; f3 26 6e 10754 add bx, 08000h ; 81 c3 00 80 10755 adc word [bp+00ch], strict byte 0ffffh ; 83 56 0c ff 10756 mov ax, es ; 8c c0 10757 add ax, 00800h ; 05 00 08 10758 mov word [bp+008h], ax ; 89 46 08 10759 jmp short 07592h ; eb d6 10760 mov cx, bx ; 89 d9 10761 les si, [bp+006h] ; c4 76 06 10707 10762 db 0f3h, 026h, 06eh 10708 10763 ; rep es outsb ; f3 26 6e … … 10712 10767 ; sub ah, ah ; 2a e4 10713 10768 test AL, strict byte 001h ; a8 01 10714 jne short 07 486h ; 75 f710769 jne short 075c4h ; 75 f7 10715 10770 xor ax, ax ; 31 c0 10716 lea ve ; c910771 lea sp, [bp-004h] ; 8d 66 fc 10717 10772 pop di ; 5f 10718 10773 pop si ; 5e 10774 pop bp ; 5d 10719 10775 retn 0000ah ; c2 0a 00 10720 @scsi_read_sectors: ; 0xf7497 LB 0xb1 10776 @scsi_read_sectors: ; 0xf75d8 LB 0xb6 10777 push bp ; 55 10778 mov bp, sp ; 89 e5 10721 10779 push si ; 56 10722 10780 push di ; 57 10723 enter 0000eh, 000h ; c8 0e 00 0010724 mov si, word [bp+00 8h] ; 8b 76 0810725 mov es, [bp+00 ah] ; 8e 46 0a10781 sub sp, strict byte 0000eh ; 83 ec 0e 10782 mov si, word [bp+004h] ; 8b 76 04 10783 mov es, [bp+006h] ; 8e 46 06 10726 10784 mov bl, byte [es:si+008h] ; 26 8a 5c 08 10727 10785 sub bl, 008h ; 80 eb 08 10728 10786 cmp bl, 004h ; 80 fb 04 10729 jbe short 07 4beh ; 76 0f10787 jbe short 07601h ; 76 0f 10730 10788 movzx ax, bl ; 0f b6 c3 10731 10789 push ax ; 50 10732 10790 push 00a9eh ; 68 9e 0a 10733 10791 push strict byte 00007h ; 6a 07 10734 call 01 8e9h ; e8 2e a410792 call 0190dh ; e8 0f a3 10735 10793 add sp, strict byte 00006h ; 83 c4 06 10736 mov es, [bp+00 ah] ; 8e 46 0a10794 mov es, [bp+006h] ; 8e 46 06 10737 10795 mov di, word [es:si+00ah] ; 26 8b 7c 0a 10738 mov word [bp-0 0eh], strict word 00028h ; c7 46 f228 0010796 mov word [bp-012h], strict word 00028h ; c7 46 ee 28 00 10739 10797 mov ax, word [es:si] ; 26 8b 04 10740 10798 mov dx, word [es:si+002h] ; 26 8b 54 02 … … 10742 10800 xchg dh, dl ; 86 d6 10743 10801 xchg dx, ax ; 92 10744 mov word [bp-0 0ch], ax ; 89 46 f410745 mov word [bp-00 ah], dx ; 89 56 f610746 mov byte [bp-00 8h], 000h ; c6 46 f80010802 mov word [bp-010h], ax ; 89 46 f0 10803 mov word [bp-00eh], dx ; 89 56 f2 10804 mov byte [bp-00ch], 000h ; c6 46 f4 00 10747 10805 mov ax, di ; 89 f8 10748 10806 xchg ah, al ; 86 c4 10749 mov word [bp-00 7h], ax ; 89 46 f910750 mov byte [bp-00 5h], 000h ; c6 46 fb0010807 mov word [bp-00bh], ax ; 89 46 f5 10808 mov byte [bp-009h], 000h ; c6 46 f7 00 10751 10809 xor bh, bh ; 30 ff 10752 10810 sal bx, 002h ; c1 e3 02 … … 10754 10812 mov ax, word [es:bx+001d8h] ; 26 8b 87 d8 01 10755 10813 mov dl, byte [es:bx+001dah] ; 26 8a 97 da 01 10756 mov word [bp-00 4h], di ; 89 7e fc10757 mov word [bp-00 2h], strict word 00000h ; c7 46 fe00 0010814 mov word [bp-008h], di ; 89 7e f8 10815 mov word [bp-006h], strict word 00000h ; c7 46 fa 00 00 10758 10816 mov cx, strict word 00009h ; b9 09 00 10759 sal word [bp-00 4h], 1 ; d1 66 fc10760 rcl word [bp-00 2h], 1 ; d1 56 fe10761 loop 07 507h ; e2 f810762 push dword [bp-00 4h] ; 66 ff 76 fc10817 sal word [bp-008h], 1 ; d1 66 f8 10818 rcl word [bp-006h], 1 ; d1 56 fa 10819 loop 0764ah ; e2 f8 10820 push dword [bp-008h] ; 66 ff 76 f8 10763 10821 db 066h, 026h, 0ffh, 074h, 004h 10764 10822 ; push dword [es:si+004h] ; 66 26 ff 74 04 … … 10766 10824 xor dh, dh ; 30 f6 10767 10825 mov cx, ss ; 8c d1 10768 lea bx, [bp-0 0eh] ; 8d 5e f210769 call 07 386h ; e8 62fe10826 lea bx, [bp-012h] ; 8d 5e ee 10827 call 07472h ; e8 0b fe 10770 10828 mov ah, al ; 88 c4 10771 10829 test al, al ; 84 c0 10772 jne short 07 53fh ; 75 1510773 mov es, [bp+00 ah] ; 8e 46 0a10830 jne short 07682h ; 75 15 10831 mov es, [bp+006h] ; 8e 46 06 10774 10832 mov word [es:si+014h], di ; 26 89 7c 14 10775 mov dx, word [bp-00 4h] ; 8b 56 fc10833 mov dx, word [bp-008h] ; 8b 56 f8 10776 10834 mov word [es:si+016h], dx ; 26 89 54 16 10777 mov dx, word [bp-00 2h] ; 8b 56 fe10835 mov dx, word [bp-006h] ; 8b 56 fa 10778 10836 mov word [es:si+018h], dx ; 26 89 54 18 10779 10837 movzx ax, ah ; 0f b6 c4 10780 lea ve ; c910838 lea sp, [bp-004h] ; 8d 66 fc 10781 10839 pop di ; 5f 10782 10840 pop si ; 5e 10841 pop bp ; 5d 10783 10842 retn 00004h ; c2 04 00 10784 @scsi_write_sectors: ; 0xf7548 LB 0xb1 10843 @scsi_write_sectors: ; 0xf768e LB 0xb6 10844 push bp ; 55 10845 mov bp, sp ; 89 e5 10785 10846 push si ; 56 10786 10847 push di ; 57 10787 enter 0000eh, 000h ; c8 0e 00 0010788 mov si, word [bp+00 8h] ; 8b 76 0810789 mov es, [bp+00 ah] ; 8e 46 0a10848 sub sp, strict byte 0000eh ; 83 ec 0e 10849 mov si, word [bp+004h] ; 8b 76 04 10850 mov es, [bp+006h] ; 8e 46 06 10790 10851 mov bl, byte [es:si+008h] ; 26 8a 5c 08 10791 10852 sub bl, 008h ; 80 eb 08 10792 10853 cmp bl, 004h ; 80 fb 04 10793 jbe short 07 56fh ; 76 0f10854 jbe short 076b7h ; 76 0f 10794 10855 movzx ax, bl ; 0f b6 c3 10795 10856 push ax ; 50 10796 10857 push 00acch ; 68 cc 0a 10797 10858 push strict byte 00007h ; 6a 07 10798 call 01 8e9h ; e8 7d a310859 call 0190dh ; e8 59 a2 10799 10860 add sp, strict byte 00006h ; 83 c4 06 10800 mov es, [bp+00 ah] ; 8e 46 0a10861 mov es, [bp+006h] ; 8e 46 06 10801 10862 mov di, word [es:si+00ah] ; 26 8b 7c 0a 10802 mov word [bp-0 0eh], strict word 0002ah ; c7 46 f22a 0010863 mov word [bp-012h], strict word 0002ah ; c7 46 ee 2a 00 10803 10864 mov ax, word [es:si] ; 26 8b 04 10804 10865 mov dx, word [es:si+002h] ; 26 8b 54 02 … … 10806 10867 xchg dh, dl ; 86 d6 10807 10868 xchg dx, ax ; 92 10808 mov word [bp-0 0ch], ax ; 89 46 f410809 mov word [bp-00 ah], dx ; 89 56 f610810 mov byte [bp-00 8h], 000h ; c6 46 f80010869 mov word [bp-010h], ax ; 89 46 f0 10870 mov word [bp-00eh], dx ; 89 56 f2 10871 mov byte [bp-00ch], 000h ; c6 46 f4 00 10811 10872 mov ax, di ; 89 f8 10812 10873 xchg ah, al ; 86 c4 10813 mov word [bp-00 7h], ax ; 89 46 f910814 mov byte [bp-00 5h], 000h ; c6 46 fb0010874 mov word [bp-00bh], ax ; 89 46 f5 10875 mov byte [bp-009h], 000h ; c6 46 f7 00 10815 10876 xor bh, bh ; 30 ff 10816 10877 sal bx, 002h ; c1 e3 02 … … 10818 10879 mov ax, word [es:bx+001d8h] ; 26 8b 87 d8 01 10819 10880 mov dl, byte [es:bx+001dah] ; 26 8a 97 da 01 10820 mov word [bp-00 4h], di ; 89 7e fc10821 mov word [bp-00 2h], strict word 00000h ; c7 46 fe00 0010881 mov word [bp-008h], di ; 89 7e f8 10882 mov word [bp-006h], strict word 00000h ; c7 46 fa 00 00 10822 10883 mov cx, strict word 00009h ; b9 09 00 10823 sal word [bp-00 4h], 1 ; d1 66 fc10824 rcl word [bp-00 2h], 1 ; d1 56 fe10825 loop 07 5b8h ; e2 f810826 push dword [bp-00 4h] ; 66 ff 76 fc10884 sal word [bp-008h], 1 ; d1 66 f8 10885 rcl word [bp-006h], 1 ; d1 56 fa 10886 loop 07700h ; e2 f8 10887 push dword [bp-008h] ; 66 ff 76 f8 10827 10888 db 066h, 026h, 0ffh, 074h, 004h 10828 10889 ; push dword [es:si+004h] ; 66 26 ff 74 04 … … 10830 10891 xor dh, dh ; 30 f6 10831 10892 mov cx, ss ; 8c d1 10832 lea bx, [bp-0 0eh] ; 8d 5e f210833 call 07 40eh ; e8 39fe10893 lea bx, [bp-012h] ; 8d 5e ee 10894 call 07524h ; e8 07 fe 10834 10895 mov ah, al ; 88 c4 10835 10896 test al, al ; 84 c0 10836 jne short 07 5f0h ; 75 1510837 mov es, [bp+00 ah] ; 8e 46 0a10897 jne short 07738h ; 75 15 10898 mov es, [bp+006h] ; 8e 46 06 10838 10899 mov word [es:si+014h], di ; 26 89 7c 14 10839 mov dx, word [bp-00 4h] ; 8b 56 fc10900 mov dx, word [bp-008h] ; 8b 56 f8 10840 10901 mov word [es:si+016h], dx ; 26 89 54 16 10841 mov dx, word [bp-00 2h] ; 8b 56 fe10902 mov dx, word [bp-006h] ; 8b 56 fa 10842 10903 mov word [es:si+018h], dx ; 26 89 54 18 10843 10904 movzx ax, ah ; 0f b6 c4 10844 lea ve ; c910905 lea sp, [bp-004h] ; 8d 66 fc 10845 10906 pop di ; 5f 10846 10907 pop si ; 5e 10908 pop bp ; 5d 10847 10909 retn 00004h ; c2 04 00 10848 scsi_cmd_packet_: ; 0xf75f9 LB 0x161 10910 scsi_cmd_packet_: ; 0xf7744 LB 0x166 10911 push bp ; 55 10912 mov bp, sp ; 89 e5 10849 10913 push si ; 56 10850 10914 push di ; 57 10851 enter 0000ch, 000h ; c8 0c 00 0010915 sub sp, strict byte 0000ch ; 83 ec 0c 10852 10916 mov di, ax ; 89 c7 10853 mov byte [bp-00 2h], dl ; 88 56 fe10854 mov word [bp-00 8h], bx ; 89 5e f810855 mov word [bp-00 6h], cx ; 89 4e fa10917 mov byte [bp-006h], dl ; 88 56 fa 10918 mov word [bp-00ch], bx ; 89 5e f4 10919 mov word [bp-00ah], cx ; 89 4e f6 10856 10920 mov dx, strict word 0000eh ; ba 0e 00 10857 10921 mov ax, strict word 00040h ; b8 40 00 10858 call 0161ch ; e8 09 a010922 call 0161ch ; e8 bc 9e 10859 10923 mov si, 00122h ; be 22 01 10860 mov word [bp-00 ah], ax ; 89 46 f610861 cmp byte [bp+00 eh], 002h ; 80 7e 0e0210862 jne short 07 63eh ; 75 1f10863 mov bx, 00d3 2h ; bb 320d10924 mov word [bp-00eh], ax ; 89 46 f2 10925 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 10926 jne short 0778bh ; 75 1f 10927 mov bx, 00d38h ; bb 38 0d 10864 10928 mov cx, ds ; 8c d9 10865 10929 mov ax, strict word 00004h ; b8 04 00 10866 call 018 aeh ; e8 84 a210930 call 018cch ; e8 55 a1 10867 10931 push 00afbh ; 68 fb 0a 10868 10932 push 00b0bh ; 68 0b 0b 10869 10933 push strict byte 00004h ; 6a 04 10870 call 01 8e9h ; e8 b4 a210934 call 0190dh ; e8 8b a1 10871 10935 add sp, strict byte 00006h ; 83 c4 06 10872 10936 mov dx, strict word 00001h ; ba 01 00 10873 jmp near 07 752h ; e9 14 0110937 jmp near 0789fh ; e9 14 01 10874 10938 sub di, strict byte 00008h ; 83 ef 08 10875 10939 sal di, 002h ; c1 e7 02 10876 sub byte [bp-00 2h], 002h ; 80 6e fe0210877 mov es, [bp-00 ah] ; 8e 46 f610940 sub byte [bp-006h], 002h ; 80 6e fa 02 10941 mov es, [bp-00eh] ; 8e 46 f2 10878 10942 add di, si ; 01 f7 10879 10943 mov bx, word [es:di+001d8h] ; 26 8b 9d d8 01 10880 10944 mov al, byte [es:di+001dah] ; 26 8a 85 da 01 10881 mov byte [bp-00 4h], al ; 88 46 fc10945 mov byte [bp-008h], al ; 88 46 f8 10882 10946 mov dx, bx ; 89 da 10883 10947 in AL, DX ; ec … … 10885 10949 ; sub ah, ah ; 2a e4 10886 10950 test AL, strict byte 001h ; a8 01 10887 jne short 07 65ah ; 75 f710951 jne short 077a7h ; 75 f7 10888 10952 xor ax, ax ; 31 c0 10889 mov dx, word [bp+00 ah] ; 8b 56 0a10890 add dx, word [bp+00 8h] ; 03 56 0810891 adc ax, word [bp+00 ch] ; 13 46 0c10892 mov es, [bp-00 ah] ; 8e 46 f610953 mov dx, word [bp+006h] ; 8b 56 06 10954 add dx, word [bp+004h] ; 03 56 04 10955 adc ax, word [bp+008h] ; 13 46 08 10956 mov es, [bp-00eh] ; 8e 46 f2 10893 10957 mov cx, word [es:si+01ch] ; 26 8b 4c 1c 10894 10958 xor di, di ; 31 ff 10895 10959 add cx, dx ; 01 d1 10896 mov word [bp-0 0ch], cx ; 89 4e f410960 mov word [bp-010h], cx ; 89 4e f0 10897 10961 adc di, ax ; 11 c7 10898 10962 mov ax, cx ; 89 c8 … … 10901 10965 shr dx, 1 ; d1 ea 10902 10966 rcr ax, 1 ; d1 d8 10903 loop 07 685h ; e2 fa10967 loop 077d2h ; e2 fa 10904 10968 and ax, 000f0h ; 25 f0 00 10905 movzx cx, byte [bp-00 2h] ; 0f b6 4e fe10969 movzx cx, byte [bp-006h] ; 0f b6 4e fa 10906 10970 or cx, ax ; 09 c1 10907 mov al, byte [bp-00 4h] ; 8a 46 fc10971 mov al, byte [bp-008h] ; 8a 46 f8 10908 10972 mov dx, bx ; 89 da 10909 10973 out DX, AL ; ee … … 10912 10976 mov al, cl ; 88 c8 10913 10977 out DX, AL ; ee 10914 mov al, byte [bp-0 0ch] ; 8a 46 f410915 out DX, AL ; ee 10916 mov ax, word [bp-0 0ch] ; 8b 46 f410978 mov al, byte [bp-010h] ; 8a 46 f0 10979 out DX, AL ; ee 10980 mov ax, word [bp-010h] ; 8b 46 f0 10917 10981 mov dx, di ; 89 fa 10918 10982 mov cx, strict word 00008h ; b9 08 00 10919 10983 shr dx, 1 ; d1 ea 10920 10984 rcr ax, 1 ; d1 d8 10921 loop 07 6ach ; e2 fa10985 loop 077f9h ; e2 fa 10922 10986 mov dx, bx ; 89 da 10923 10987 out DX, AL ; ee 10924 10988 xor cx, cx ; 31 c9 10925 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe10989 movzx ax, byte [bp-006h] ; 0f b6 46 fa 10926 10990 cmp cx, ax ; 39 c1 10927 jnc short 07 6cdh ; 73 0e10928 les di, [bp-00 8h] ; c4 7e f810991 jnc short 0781ah ; 73 0e 10992 les di, [bp-00ch] ; c4 7e f4 10929 10993 add di, cx ; 01 cf 10930 10994 mov al, byte [es:di] ; 26 8a 05 … … 10932 10996 out DX, AL ; ee 10933 10997 inc cx ; 41 10934 jmp short 07 6b7h ; eb ea10998 jmp short 07804h ; eb ea 10935 10999 mov dx, bx ; 89 da 10936 11000 in AL, DX ; ec … … 10938 11002 ; sub ah, ah ; 2a e4 10939 11003 test AL, strict byte 001h ; a8 01 10940 jne short 07 6cdh ; 75 f711004 jne short 0781ah ; 75 f7 10941 11005 test AL, strict byte 002h ; a8 02 10942 je short 07 6e8h ; 74 0e11006 je short 07835h ; 74 0e 10943 11007 lea dx, [bx+003h] ; 8d 57 03 10944 11008 xor al, al ; 30 c0 … … 10948 11012 ; sub ah, ah ; 2a e4 10949 11013 mov dx, strict word 00003h ; ba 03 00 10950 jmp short 07 752h ; eb 6a10951 mov ax, word [bp+00 8h] ; 8b 46 0811014 jmp short 0789fh ; eb 6a 11015 mov ax, word [bp+004h] ; 8b 46 04 10952 11016 test ax, ax ; 85 c0 10953 je short 07 6f7h ; 74 0811017 je short 07844h ; 74 08 10954 11018 lea dx, [bx+001h] ; 8d 57 01 10955 11019 mov cx, ax ; 89 c1 10956 11020 in AL, DX ; ec 10957 loop 07 6f4h ; e2 fd10958 mov ax, word [bp+00 ah] ; 8b 46 0a10959 mov es, [bp-00 ah] ; 8e 46 f611021 loop 07841h ; e2 fd 11022 mov ax, word [bp+006h] ; 8b 46 06 11023 mov es, [bp-00eh] ; 8e 46 f2 10960 11024 mov word [es:si+016h], ax ; 26 89 44 16 10961 mov ax, word [bp+00 ch] ; 8b 46 0c11025 mov ax, word [bp+008h] ; 8b 46 08 10962 11026 mov word [es:si+018h], ax ; 26 89 44 18 10963 11027 lea ax, [bx+001h] ; 8d 47 01 10964 cmp word [bp+00 ch], strict byte 00000h ; 83 7e 0c0010965 jne short 07 718h ; 75 0710966 cmp word [bp+00 ah], 08000h ; 81 7e 0a00 8010967 jbe short 07 735h ; 76 1d11028 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 11029 jne short 07865h ; 75 07 11030 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 11031 jbe short 07882h ; 76 1d 10968 11032 mov dx, ax ; 89 c2 10969 11033 mov cx, 08000h ; b9 00 80 10970 les di, [bp+0 10h] ; c4 7e 1011034 les di, [bp+00ch] ; c4 7e 0c 10971 11035 rep insb ; f3 6c 10972 add word [bp+00 ah], 08000h ; 81 46 0a00 8010973 adc word [bp+00 ch], strict byte 0ffffh ; 83 56 0cff11036 add word [bp+006h], 08000h ; 81 46 06 00 80 11037 adc word [bp+008h], strict byte 0ffffh ; 83 56 08 ff 10974 11038 mov ax, es ; 8c c0 10975 11039 add ax, 00800h ; 05 00 08 10976 mov word [bp+0 12h], ax ; 89 46 1210977 jmp short 07 708h ; eb d311040 mov word [bp+00eh], ax ; 89 46 0e 11041 jmp short 07855h ; eb d3 10978 11042 mov dx, ax ; 89 c2 10979 mov cx, word [bp+00 ah] ; 8b 4e 0a10980 les di, [bp+0 10h] ; c4 7e 1011043 mov cx, word [bp+006h] ; 8b 4e 06 11044 les di, [bp+00ch] ; c4 7e 0c 10981 11045 rep insb ; f3 6c 10982 mov es, [bp-00 ah] ; 8e 46 f611046 mov es, [bp-00eh] ; 8e 46 f2 10983 11047 cmp word [es:si+01ch], strict byte 00000h ; 26 83 7c 1c 00 10984 je short 07 750h ; 74 0711048 je short 0789dh ; 74 07 10985 11049 mov cx, word [es:si+01ch] ; 26 8b 4c 1c 10986 11050 in AL, DX ; ec 10987 loop 07 74dh ; e2 fd11051 loop 0789ah ; e2 fd 10988 11052 xor dx, dx ; 31 d2 10989 11053 mov ax, dx ; 89 d0 10990 lea ve ; c911054 lea sp, [bp-004h] ; 8d 66 fc 10991 11055 pop di ; 5f 10992 11056 pop si ; 5e 11057 pop bp ; 5d 10993 11058 retn 0000ch ; c2 0c 00 10994 scsi_enumerate_attached_devices_: ; 0xf775a LB 0x36d 11059 scsi_enumerate_attached_devices_: ; 0xf78aa LB 0x373 11060 push bp ; 55 11061 mov bp, sp ; 89 e5 10995 11062 push bx ; 53 10996 11063 push cx ; 51 … … 10998 11065 push si ; 56 10999 11066 push di ; 57 11000 enter 0021eh, 000h ; c8 1e 02 0011067 sub sp, 0021eh ; 81 ec 1e 02 11001 11068 push ax ; 50 11002 11069 mov dx, strict word 0000eh ; ba 0e 00 11003 11070 mov ax, strict word 00040h ; b8 40 00 11004 call 0161ch ; e8 af 9e11071 call 0161ch ; e8 5c 9d 11005 11072 mov si, 00122h ; be 22 01 11006 mov word [bp-0 08h], ax ; 89 46 f811007 mov word [bp-0 0ah], strict word 00000h ; c7 46 f600 0011008 jmp near 07 a58h ; e9 dd 0211009 mov es, [bp-0 08h] ; 8e 46 f811073 mov word [bp-012h], ax ; 89 46 ee 11074 mov word [bp-014h], strict word 00000h ; c7 46 ec 00 00 11075 jmp near 07babh ; e9 dd 02 11076 mov es, [bp-012h] ; 8e 46 ee 11010 11077 cmp byte [es:si+001e8h], 004h ; 26 80 bc e8 01 04 11011 jnc near 07 ac0h ; 0f 83 38 0311078 jnc near 07c13h ; 0f 83 38 03 11012 11079 mov cx, strict word 0000ah ; b9 0a 00 11013 11080 xor bx, bx ; 31 db 11014 11081 mov dx, ss ; 8c d2 11015 lea ax, [bp-0 1eh] ; 8d 46 e211016 call 09 07ah ; e8 e5 1811017 mov byte [bp-0 1eh], 025h ; c6 46 e22511082 lea ax, [bp-028h] ; 8d 46 d8 11083 call 0924ah ; e8 62 19 11084 mov byte [bp-028h], 025h ; c6 46 d8 25 11018 11085 push dword 000000008h ; 66 6a 08 11019 lea dx, [bp-002 1eh] ; 8d 96 e2fd11086 lea dx, [bp-00228h] ; 8d 96 d8 fd 11020 11087 push SS ; 16 11021 11088 push dx ; 52 11022 11089 push strict byte 0000ah ; 6a 0a 11023 movzx dx, byte [bp-0 0ah] ; 0f b6 56 f611090 movzx dx, byte [bp-014h] ; 0f b6 56 ec 11024 11091 mov cx, ss ; 8c d1 11025 lea bx, [bp-0 1eh] ; 8d 5e e211026 mov ax, word [bp-0022 0h] ; 8b 86 e0fd11027 call 07 386h ; e8 d2fb11092 lea bx, [bp-028h] ; 8d 5e d8 11093 mov ax, word [bp-0022ah] ; 8b 86 d6 fd 11094 call 07472h ; e8 6b fb 11028 11095 test al, al ; 84 c0 11029 je short 07 7c6h ; 74 0e11096 je short 07919h ; 74 0e 11030 11097 push 00b2bh ; 68 2b 0b 11031 11098 push 00b64h ; 68 64 0b 11032 11099 push strict byte 00007h ; 6a 07 11033 call 01 8e9h ; e8 26 a111100 call 0190dh ; e8 f7 9f 11034 11101 add sp, strict byte 00006h ; 83 c4 06 11035 movzx dx, byte [bp-002 1dh] ; 0f b6 96 e3fd11036 movzx di, byte [bp-002 1eh] ; 0f b6 be e2fd11102 movzx dx, byte [bp-00227h] ; 0f b6 96 d9 fd 11103 movzx di, byte [bp-00228h] ; 0f b6 be d8 fd 11037 11104 sal di, 008h ; c1 e7 08 11038 11105 xor bx, bx ; 31 db 11039 11106 or di, dx ; 09 d7 11040 movzx ax, byte [bp-002 1ch] ; 0f b6 86 e4fd11107 movzx ax, byte [bp-00226h] ; 0f b6 86 da fd 11041 11108 xor dx, dx ; 31 d2 11042 11109 mov cx, strict word 00008h ; b9 08 00 11043 11110 sal ax, 1 ; d1 e0 11044 11111 rcl dx, 1 ; d1 d2 11045 loop 07 7e1h ; e2 fa11112 loop 07934h ; e2 fa 11046 11113 or ax, bx ; 09 d8 11047 11114 or di, dx ; 09 d7 11048 movzx dx, byte [bp-002 1bh] ; 0f b6 96 e5fd11115 movzx dx, byte [bp-00225h] ; 0f b6 96 db fd 11049 11116 or ax, dx ; 09 d0 11050 mov word [bp-0 06h], ax ; 89 46 fa11051 movzx dx, byte [bp-002 1ah] ; 0f b6 96 e6fd11117 mov word [bp-010h], ax ; 89 46 f0 11118 movzx dx, byte [bp-00224h] ; 0f b6 96 dc fd 11052 11119 sal dx, 008h ; c1 e2 08 11053 movzx ax, byte [bp-002 19h] ; 0f b6 86 e7fd11120 movzx ax, byte [bp-00223h] ; 0f b6 86 dd fd 11054 11121 or dx, ax ; 09 c2 11055 mov word [bp-01 4h], dx ; 89 56 ec11056 movzx ax, byte [bp-002 18h] ; 0f b6 86 e8fd11122 mov word [bp-01eh], dx ; 89 56 e2 11123 movzx ax, byte [bp-00222h] ; 0f b6 86 de fd 11057 11124 xor dx, dx ; 31 d2 11058 11125 mov cx, strict word 00008h ; b9 08 00 11059 11126 sal ax, 1 ; d1 e0 11060 11127 rcl dx, 1 ; d1 d2 11061 loop 07 811h ; e2 fa11128 loop 07964h ; e2 fa 11062 11129 or bx, ax ; 09 c3 11063 or dx, word [bp-01 4h] ; 0b 56 ec11064 movzx ax, byte [bp-002 17h] ; 0f b6 86 e9fd11130 or dx, word [bp-01eh] ; 0b 56 e2 11131 movzx ax, byte [bp-00221h] ; 0f b6 86 df fd 11065 11132 or bx, ax ; 09 c3 11066 mov word [bp-00 4h], bx ; 89 5e fc11133 mov word [bp-00eh], bx ; 89 5e f2 11067 11134 test dx, dx ; 85 d2 11068 jne short 07 830h ; 75 0611135 jne short 07983h ; 75 06 11069 11136 cmp bx, 00200h ; 81 fb 00 02 11070 je short 07 850h ; 74 2011071 mov bx, 00d3 2h ; bb 320d11137 je short 079a3h ; 74 20 11138 mov bx, 00d38h ; bb 38 0d 11072 11139 mov cx, ds ; 8c d9 11073 11140 mov ax, strict word 00004h ; b8 04 00 11074 call 018 aeh ; e8 73 a011141 call 018cch ; e8 3e 9f 11075 11142 push dx ; 52 11076 push word [bp-00 4h] ; ff 76 fc11077 push word [bp-0 0ah] ; ff 76 f611143 push word [bp-00eh] ; ff 76 f2 11144 push word [bp-014h] ; ff 76 ec 11078 11145 push 00b83h ; 68 83 0b 11079 11146 push strict byte 00004h ; 6a 04 11080 call 01 8e9h ; e8 9f a011147 call 0190dh ; e8 70 9f 11081 11148 add sp, strict byte 0000ah ; 83 c4 0a 11082 jmp near 07 a4fh ; e9 ff 0111149 jmp near 07ba2h ; e9 ff 01 11083 11150 cmp di, strict byte 00040h ; 83 ff 40 11084 jnbe short 07 857h ; 77 0211085 jne short 07 861h ; 75 0a11086 mov dword [bp-0 0eh], strict dword 000ff003fh ; 66 c7 46 f23f 00 ff 0011087 jmp short 07 87ah ; eb 1911151 jnbe short 079aah ; 77 02 11152 jne short 079b4h ; 75 0a 11153 mov dword [bp-018h], strict dword 000ff003fh ; 66 c7 46 e8 3f 00 ff 00 11154 jmp short 079cdh ; eb 19 11088 11155 cmp di, strict byte 00020h ; 83 ff 20 11089 jnbe short 07 868h ; 77 0211090 jne short 07 872h ; 75 0a11091 mov dword [bp-0 0eh], strict dword 000800020h ; 66 c7 46 f220 00 80 0011092 jmp short 07 87ah ; eb 0811093 mov dword [bp-0 0eh], strict dword 000400020h ; 66 c7 46 f220 00 40 0011094 mov bx, word [bp-0 0ch] ; 8b 5e f411095 imul bx, word [bp-0 0eh] ; 0f af 5e f211096 mov ax, word [bp-0 06h] ; 8b 46 fa11156 jnbe short 079bbh ; 77 02 11157 jne short 079c5h ; 75 0a 11158 mov dword [bp-018h], strict dword 000800020h ; 66 c7 46 e8 20 00 80 00 11159 jmp short 079cdh ; eb 08 11160 mov dword [bp-018h], strict dword 000400020h ; 66 c7 46 e8 20 00 40 00 11161 mov bx, word [bp-016h] ; 8b 5e ea 11162 imul bx, word [bp-018h] ; 0f af 5e e8 11163 mov ax, word [bp-010h] ; 8b 46 f0 11097 11164 mov dx, di ; 89 fa 11098 11165 xor cx, cx ; 31 c9 11099 call 09 010h ; e8 85 1711100 mov word [bp-01 2h], ax ; 89 46 ee11101 mov word [bp-01 0h], dx ; 89 56 f011102 mov es, [bp-0 08h] ; 8e 46 f811166 call 091e0h ; e8 02 18 11167 mov word [bp-01ch], ax ; 89 46 e4 11168 mov word [bp-01ah], dx ; 89 56 e6 11169 mov es, [bp-012h] ; 8e 46 ee 11103 11170 mov al, byte [es:si+001e8h] ; 26 8a 84 e8 01 11104 mov byte [bp-00 2h], al ; 88 46 fe11171 mov byte [bp-00ch], al ; 88 46 f4 11105 11172 mov dl, al ; 88 c2 11106 11173 add dl, 008h ; 80 c2 08 … … 11108 11175 sal bx, 002h ; c1 e3 02 11109 11176 add bx, si ; 01 f3 11110 mov ax, word [bp-0022 0h] ; 8b 86 e0fd11177 mov ax, word [bp-0022ah] ; 8b 86 d6 fd 11111 11178 mov word [es:bx+001d8h], ax ; 26 89 87 d8 01 11112 mov al, byte [bp-0 0ah] ; 8a 46 f611179 mov al, byte [bp-014h] ; 8a 46 ec 11113 11180 mov byte [es:bx+001dah], al ; 26 88 87 da 01 11114 11181 movzx ax, dl ; 0f b6 c2 … … 11118 11185 db 066h, 026h, 0c7h, 047h, 01eh, 004h, 0ffh, 000h, 000h 11119 11186 ; mov dword [es:bx+01eh], strict dword 00000ff04h ; 66 26 c7 47 1e 04 ff 00 00 11120 mov ax, word [bp-00 4h] ; 8b 46 fc11187 mov ax, word [bp-00eh] ; 8b 46 f2 11121 11188 mov word [es:bx+024h], ax ; 26 89 47 24 11122 11189 mov byte [es:bx+023h], 001h ; 26 c6 47 23 01 11123 mov ax, word [bp-0 0ch] ; 8b 46 f411190 mov ax, word [bp-016h] ; 8b 46 ea 11124 11191 mov word [es:bx+026h], ax ; 26 89 47 26 11125 mov ax, word [bp-0 0eh] ; 8b 46 f211192 mov ax, word [bp-018h] ; 8b 46 e8 11126 11193 mov word [es:bx+02ah], ax ; 26 89 47 2a 11127 cmp word [bp-01 0h], strict byte 00000h ; 83 7e f00011128 jne short 07 8f4h ; 75 0711129 cmp word [bp-01 2h], 00400h ; 81 7e ee00 0411130 jbe short 07 8fch ; 76 0811194 cmp word [bp-01ah], strict byte 00000h ; 83 7e e6 00 11195 jne short 07a47h ; 75 07 11196 cmp word [bp-01ch], 00400h ; 81 7e e4 00 04 11197 jbe short 07a4fh ; 76 08 11131 11198 mov word [es:bx+028h], 00400h ; 26 c7 47 28 00 04 11132 jmp short 07 903h ; eb 0711133 mov ax, word [bp-01 2h] ; 8b 46 ee11199 jmp short 07a56h ; eb 07 11200 mov ax, word [bp-01ch] ; 8b 46 e4 11134 11201 mov word [es:bx+028h], ax ; 26 89 47 28 11135 mov bx, 00d3 2h ; bb 320d11202 mov bx, 00d38h ; bb 38 0d 11136 11203 mov cx, ds ; 8c d9 11137 11204 mov ax, strict word 00004h ; b8 04 00 11138 call 018 aeh ; e8 a0 9f11205 call 018cch ; e8 6b 9e 11139 11206 push di ; 57 11140 push word [bp-0 06h] ; ff 76 fa11141 push word [bp-0 0eh] ; ff 76 f211142 push word [bp-0 0ch] ; ff 76 f411143 push word [bp-01 2h] ; ff 76 ee11144 push word [bp-0 0ah] ; ff 76 f611145 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe11207 push word [bp-010h] ; ff 76 f0 11208 push word [bp-018h] ; ff 76 e8 11209 push word [bp-016h] ; ff 76 ea 11210 push word [bp-01ch] ; ff 76 e4 11211 push word [bp-014h] ; ff 76 ec 11212 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 11146 11213 push ax ; 50 11147 11214 push 00bb1h ; 68 b1 0b 11148 11215 push strict byte 00004h ; 6a 04 11149 call 01 8e9h ; e8 be 9f11216 call 0190dh ; e8 8f 9e 11150 11217 add sp, strict byte 00012h ; 83 c4 12 11151 11218 movzx ax, dl ; 0f b6 c2 11152 11219 imul ax, ax, strict byte 00018h ; 6b c0 18 11153 mov es, [bp-0 08h] ; 8e 46 f811220 mov es, [bp-012h] ; 8e 46 ee 11154 11221 mov bx, si ; 89 f3 11155 11222 add bx, ax ; 01 c3 11156 mov ax, word [bp-0 0ch] ; 8b 46 f411223 mov ax, word [bp-016h] ; 8b 46 ea 11157 11224 mov word [es:bx+02ch], ax ; 26 89 47 2c 11158 mov ax, word [bp-0 0eh] ; 8b 46 f211225 mov ax, word [bp-018h] ; 8b 46 e8 11159 11226 mov word [es:bx+030h], ax ; 26 89 47 30 11160 cmp word [bp-01 0h], strict byte 00000h ; 83 7e f00011161 jne short 07 956h ; 75 0711162 cmp word [bp-01 2h], 00400h ; 81 7e ee00 0411163 jbe short 07 95eh ; 76 0811227 cmp word [bp-01ah], strict byte 00000h ; 83 7e e6 00 11228 jne short 07aa9h ; 75 07 11229 cmp word [bp-01ch], 00400h ; 81 7e e4 00 04 11230 jbe short 07ab1h ; 76 08 11164 11231 mov word [es:bx+02eh], 00400h ; 26 c7 47 2e 00 04 11165 jmp short 07 965h ; eb 0711166 mov ax, word [bp-01 2h] ; 8b 46 ee11232 jmp short 07ab8h ; eb 07 11233 mov ax, word [bp-01ch] ; 8b 46 e4 11167 11234 mov word [es:bx+02eh], ax ; 26 89 47 2e 11168 11235 movzx ax, dl ; 0f b6 c2 11169 11236 imul ax, ax, strict byte 00018h ; 6b c0 18 11170 mov es, [bp-0 08h] ; 8e 46 f811237 mov es, [bp-012h] ; 8e 46 ee 11171 11238 mov bx, si ; 89 f3 11172 11239 add bx, ax ; 01 c3 11173 mov ax, word [bp-0 06h] ; 8b 46 fa11240 mov ax, word [bp-010h] ; 8b 46 f0 11174 11241 mov word [es:bx+032h], ax ; 26 89 47 32 11175 11242 mov word [es:bx+034h], di ; 26 89 7f 34 11176 11243 mov al, byte [es:si+0019eh] ; 26 8a 84 9e 01 11177 mov ah, byte [bp-00 2h] ; 8a 66 fe11244 mov ah, byte [bp-00ch] ; 8a 66 f4 11178 11245 add ah, 008h ; 80 c4 08 11179 11246 movzx bx, al ; 0f b6 d8 … … 11185 11252 mov dx, strict word 00075h ; ba 75 00 11186 11253 mov ax, strict word 00040h ; b8 40 00 11187 call 01600h ; e8 5e 9c11254 call 01600h ; e8 0b 9b 11188 11255 db 0feh, 0c0h 11189 11256 ; inc al ; fe c0 … … 11191 11258 mov dx, strict word 00075h ; ba 75 00 11192 11259 mov ax, strict word 00040h ; b8 40 00 11193 call 0160eh ; e8 5e 9c11194 inc byte [bp-00 2h] ; fe 46 fe11195 mov al, byte [bp-00 2h] ; 8a 46 fe11196 mov es, [bp-0 08h] ; 8e 46 f811260 call 0160eh ; e8 0b 9b 11261 inc byte [bp-00ch] ; fe 46 f4 11262 mov al, byte [bp-00ch] ; 8a 46 f4 11263 mov es, [bp-012h] ; 8e 46 ee 11197 11264 mov byte [es:si+001e8h], al ; 26 88 84 e8 01 11198 jmp near 07 a4fh ; e9 8e 0011199 mov bx, 00d3 2h ; bb 320d11265 jmp near 07ba2h ; e9 8e 00 11266 mov bx, 00d38h ; bb 38 0d 11200 11267 mov cx, ds ; 8c d9 11201 11268 mov ax, strict word 00004h ; b8 04 00 11202 call 018 aeh ; e8 e2 9e11203 push word [bp-0 0ah] ; ff 76 f611204 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe11269 call 018cch ; e8 ad 9d 11270 push word [bp-014h] ; ff 76 ec 11271 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 11205 11272 push ax ; 50 11206 11273 push 00bdbh ; 68 db 0b 11207 11274 push strict byte 00004h ; 6a 04 11208 call 01 8e9h ; e8 0d 9f11275 call 0190dh ; e8 de 9d 11209 11276 add sp, strict byte 00008h ; 83 c4 08 11210 mov dl, byte [bp-00 2h] ; 8a 56 fe11277 mov dl, byte [bp-00ch] ; 8a 56 f4 11211 11278 add dl, 008h ; 80 c2 08 11212 test byte [bp-002 1dh], 080h ; f6 86 e3fd 8011279 test byte [bp-00227h], 080h ; f6 86 d9 fd 80 11213 11280 db 00fh, 095h, 0c0h 11214 11281 ; setne al ; 0f 95 c0 11215 11282 xor ah, ah ; 30 e4 11216 11283 mov cx, ax ; 89 c1 11217 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe11284 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 11218 11285 sal ax, 002h ; c1 e0 02 11219 mov es, [bp-0 08h] ; 8e 46 f811286 mov es, [bp-012h] ; 8e 46 ee 11220 11287 mov bx, si ; 89 f3 11221 11288 add bx, ax ; 01 c3 11222 mov ax, word [bp-0022 0h] ; 8b 86 e0fd11289 mov ax, word [bp-0022ah] ; 8b 86 d6 fd 11223 11290 mov word [es:bx+001d8h], ax ; 26 89 87 d8 01 11224 mov al, byte [bp-0 0ah] ; 8a 46 f611291 mov al, byte [bp-014h] ; 8a 46 ec 11225 11292 mov byte [es:bx+001dah], al ; 26 88 87 da 01 11226 11293 movzx bx, dl ; 0f b6 da … … 11231 11298 mov word [es:bx+024h], 00800h ; 26 c7 47 24 00 08 11232 11299 mov al, byte [es:si+001afh] ; 26 8a 84 af 01 11233 mov ah, byte [bp-00 2h] ; 8a 66 fe11300 mov ah, byte [bp-00ch] ; 8a 66 f4 11234 11301 add ah, 008h ; 80 c4 08 11235 11302 movzx bx, al ; 0f b6 d8 … … 11239 11306 ; inc al ; fe c0 11240 11307 mov byte [es:si+001afh], al ; 26 88 84 af 01 11241 inc byte [bp-00 2h] ; fe 46 fe11242 mov al, byte [bp-00 2h] ; 8a 46 fe11308 inc byte [bp-00ch] ; fe 46 f4 11309 mov al, byte [bp-00ch] ; 8a 46 f4 11243 11310 mov byte [es:si+001e8h], al ; 26 88 84 e8 01 11244 inc word [bp-0 0ah] ; ff 46 f611245 cmp word [bp-0 0ah], strict byte 00010h ; 83 7e f61011246 jnl short 07 ac0h ; 7d 6811247 mov byte [bp-0 1eh], 012h ; c6 46 e21211311 inc word [bp-014h] ; ff 46 ec 11312 cmp word [bp-014h], strict byte 00010h ; 83 7e ec 10 11313 jnl short 07c13h ; 7d 68 11314 mov byte [bp-028h], 012h ; c6 46 d8 12 11248 11315 xor al, al ; 30 c0 11249 mov byte [bp-0 1dh], al ; 88 46 e311250 mov byte [bp-0 1ch], al ; 88 46 e411251 mov byte [bp-0 1bh], al ; 88 46 e511252 mov byte [bp-0 1ah], 005h ; c6 46 e60511253 mov byte [bp-0 19h], al ; 88 46 e711316 mov byte [bp-027h], al ; 88 46 d9 11317 mov byte [bp-026h], al ; 88 46 da 11318 mov byte [bp-025h], al ; 88 46 db 11319 mov byte [bp-024h], 005h ; c6 46 dc 05 11320 mov byte [bp-023h], al ; 88 46 dd 11254 11321 push dword 000000005h ; 66 6a 05 11255 lea dx, [bp-002 1eh] ; 8d 96 e2fd11322 lea dx, [bp-00228h] ; 8d 96 d8 fd 11256 11323 push SS ; 16 11257 11324 push dx ; 52 11258 11325 push strict byte 00006h ; 6a 06 11259 movzx dx, byte [bp-0 0ah] ; 0f b6 56 f611326 movzx dx, byte [bp-014h] ; 0f b6 56 ec 11260 11327 mov cx, ss ; 8c d1 11261 lea bx, [bp-0 1eh] ; 8d 5e e211262 mov ax, word [bp-0022 0h] ; 8b 86 e0fd11263 call 07 386h ; e8 fdf811328 lea bx, [bp-028h] ; 8d 5e d8 11329 mov ax, word [bp-0022ah] ; 8b 86 d6 fd 11330 call 07472h ; e8 96 f8 11264 11331 test al, al ; 84 c0 11265 je short 07 a9bh ; 74 0e11332 je short 07beeh ; 74 0e 11266 11333 push 00b2bh ; 68 2b 0b 11267 11334 push 00b4bh ; 68 4b 0b 11268 11335 push strict byte 00007h ; 6a 07 11269 call 01 8e9h ; e8 51 9e11336 call 0190dh ; e8 22 9d 11270 11337 add sp, strict byte 00006h ; 83 c4 06 11271 test byte [bp-002 1eh], 0e0h ; f6 86 e2fd e011272 jne short 07 aabh ; 75 0911273 test byte [bp-002 1eh], 01fh ; f6 86 e2fd 1f11274 je near 07 77bh ; 0f 84 d0 fc11275 test byte [bp-002 1eh], 0e0h ; f6 86 e2fd e011276 jne short 07 a4fh ; 75 9d11277 mov al, byte [bp-002 1eh] ; 8a 86 e2fd11338 test byte [bp-00228h], 0e0h ; f6 86 d8 fd e0 11339 jne short 07bfeh ; 75 09 11340 test byte [bp-00228h], 01fh ; f6 86 d8 fd 1f 11341 je near 078ceh ; 0f 84 d0 fc 11342 test byte [bp-00228h], 0e0h ; f6 86 d8 fd e0 11343 jne short 07ba2h ; 75 9d 11344 mov al, byte [bp-00228h] ; 8a 86 d8 fd 11278 11345 and AL, strict byte 01fh ; 24 1f 11279 11346 cmp AL, strict byte 005h ; 3c 05 11280 je near 07 9c1h ; 0f 84 03 ff11281 jmp short 07 a4fh ; eb 8f11282 lea ve ; c911347 je near 07b14h ; 0f 84 03 ff 11348 jmp short 07ba2h ; eb 8f 11349 lea sp, [bp-00ah] ; 8d 66 f6 11283 11350 pop di ; 5f 11284 11351 pop si ; 5e … … 11286 11353 pop cx ; 59 11287 11354 pop bx ; 5b 11355 pop bp ; 5d 11288 11356 retn ; c3 11289 _scsi_init: ; 0xf7 ac7 LB 0x6411357 _scsi_init: ; 0xf7c1d LB 0x66 11290 11358 push bp ; 55 11291 11359 mov bp, sp ; 89 e5 11292 11360 mov dx, strict word 0000eh ; ba 0e 00 11293 11361 mov ax, strict word 00040h ; b8 40 00 11294 call 0161ch ; e8 49 9b11362 call 0161ch ; e8 f3 99 11295 11363 mov bx, 00122h ; bb 22 01 11296 11364 mov es, ax ; 8e c0 … … 11303 11371 ; sub ah, ah ; 2a e4 11304 11372 cmp AL, strict byte 055h ; 3c 55 11305 jne short 07 af7h ; 75 0c11373 jne short 07c4dh ; 75 0c 11306 11374 xor al, al ; 30 c0 11307 11375 mov dx, 00433h ; ba 33 04 11308 11376 out DX, AL ; ee 11309 11377 mov ax, 00430h ; b8 30 04 11310 call 07 75ah ; e8 63fc11378 call 078aah ; e8 5d fc 11311 11379 mov AL, strict byte 055h ; b0 55 11312 11380 mov dx, 00436h ; ba 36 04 … … 11316 11384 ; sub ah, ah ; 2a e4 11317 11385 cmp AL, strict byte 055h ; 3c 55 11318 jne short 07 b10h ; 75 0c11386 jne short 07c66h ; 75 0c 11319 11387 xor al, al ; 30 c0 11320 11388 mov dx, 00437h ; ba 37 04 11321 11389 out DX, AL ; ee 11322 11390 mov ax, 00434h ; b8 34 04 11323 call 07 75ah ; e8 4afc11391 call 078aah ; e8 44 fc 11324 11392 mov AL, strict byte 055h ; b0 55 11325 11393 mov dx, 0043ah ; ba 3a 04 … … 11329 11397 ; sub ah, ah ; 2a e4 11330 11398 cmp AL, strict byte 055h ; 3c 55 11331 jne short 07 b29h ; 75 0c11399 jne short 07c7fh ; 75 0c 11332 11400 xor al, al ; 30 c0 11333 11401 mov dx, 0043bh ; ba 3b 04 11334 11402 out DX, AL ; ee 11335 11403 mov ax, 00438h ; b8 38 04 11336 call 0775ah ; e8 31 fc 11404 call 078aah ; e8 2b fc 11405 mov sp, bp ; 89 ec 11337 11406 pop bp ; 5d 11338 11407 retn ; c3 11339 high_bits_save_: ; 0xf7b2b LB 0x14 11340 push bx ; 53 11408 high_bits_save_: ; 0xf7c83 LB 0x17 11341 11409 push bp ; 55 11342 11410 mov bp, sp ; 89 e5 11411 push bx ; 53 11343 11412 mov bx, ax ; 89 c3 11344 11413 shr eax, 010h ; 66 c1 e8 10 11345 11414 mov es, dx ; 8e c2 11346 11415 mov word [es:bx+00268h], ax ; 26 89 87 68 02 11416 lea sp, [bp-002h] ; 8d 66 fe 11417 pop bx ; 5b 11347 11418 pop bp ; 5d 11348 pop bx ; 5b11349 11419 retn ; c3 11350 high_bits_restore_: ; 0xf7b3f LB 0x14 11351 push bx ; 53 11420 high_bits_restore_: ; 0xf7c9a LB 0x17 11352 11421 push bp ; 55 11353 11422 mov bp, sp ; 89 e5 11423 push bx ; 53 11354 11424 mov bx, ax ; 89 c3 11355 11425 mov es, dx ; 8e c2 11356 11426 mov ax, word [es:bx+00268h] ; 26 8b 87 68 02 11357 11427 sal eax, 010h ; 66 c1 e0 10 11428 lea sp, [bp-002h] ; 8d 66 fe 11429 pop bx ; 5b 11358 11430 pop bp ; 5d 11359 pop bx ; 5b11360 11431 retn ; c3 11361 ahci_ctrl_set_bits_: ; 0xf7b53 LB 0x40 11432 ahci_ctrl_set_bits_: ; 0xf7cb1 LB 0x43 11433 push bp ; 55 11434 mov bp, sp ; 89 e5 11362 11435 push si ; 56 11363 11436 push di ; 57 11364 enter 00002h, 000h ; c8 02 00 0011437 push ax ; 50 11365 11438 mov si, ax ; 89 c6 11366 11439 mov ax, dx ; 89 d0 11367 mov word [bp-00 2h], bx ; 89 5e fe11440 mov word [bp-006h], bx ; 89 5e fa 11368 11441 mov di, cx ; 89 cf 11369 11442 xor cx, cx ; 31 c9 … … 11381 11454 shr eax, 010h ; 66 c1 e8 10 11382 11455 xchg dx, ax ; 92 11383 or ax, word [bp-00 2h] ; 0b 46 fe11456 or ax, word [bp-006h] ; 0b 46 fa 11384 11457 mov cx, dx ; 89 d1 11385 11458 or cx, di ; 09 f9 … … 11390 11463 ; mov ax, cx ; 8b c1 11391 11464 out DX, eax ; 66 ef 11392 lea ve ; c911465 lea sp, [bp-004h] ; 8d 66 fc 11393 11466 pop di ; 5f 11394 11467 pop si ; 5e 11468 pop bp ; 5d 11395 11469 retn ; c3 11396 ahci_ctrl_clear_bits_: ; 0xf7b93 LB 0x44 11470 ahci_ctrl_clear_bits_: ; 0xf7cf4 LB 0x47 11471 push bp ; 55 11472 mov bp, sp ; 89 e5 11397 11473 push si ; 56 11398 11474 push di ; 57 11399 enter 00002h, 000h ; c8 02 00 0011475 push ax ; 50 11400 11476 mov si, ax ; 89 c6 11401 11477 mov ax, dx ; 89 d0 11402 11478 mov di, bx ; 89 df 11403 mov word [bp-00 2h], cx ; 89 4e fe11479 mov word [bp-006h], cx ; 89 4e fa 11404 11480 xor cx, cx ; 31 c9 11405 11481 mov dx, si ; 89 f2 … … 11417 11493 xchg dx, ax ; 92 11418 11494 not di ; f7 d7 11419 mov cx, word [bp-00 2h] ; 8b 4e fe11495 mov cx, word [bp-006h] ; 8b 4e fa 11420 11496 not cx ; f7 d1 11421 11497 and ax, di ; 21 f8 … … 11427 11503 ; mov ax, cx ; 8b c1 11428 11504 out DX, eax ; 66 ef 11429 lea ve ; c911505 lea sp, [bp-004h] ; 8d 66 fc 11430 11506 pop di ; 5f 11431 11507 pop si ; 5e 11508 pop bp ; 5d 11432 11509 retn ; c3 11433 ahci_ctrl_is_bit_set_: ; 0xf7bd7 LB 0x36 11510 ahci_ctrl_is_bit_set_: ; 0xf7d3b LB 0x39 11511 push bp ; 55 11512 mov bp, sp ; 89 e5 11434 11513 push si ; 56 11435 11514 push di ; 57 11436 push bp ; 5511437 mov bp, sp ; 89 e511438 11515 mov si, ax ; 89 c6 11439 11516 mov ax, dx ; 89 d0 … … 11453 11530 xchg dx, ax ; 92 11454 11531 test dx, di ; 85 fa 11455 jne short 07 c03h ; 75 0411532 jne short 07d67h ; 75 04 11456 11533 test ax, bx ; 85 d8 11457 je short 07 c07h ; 74 0411534 je short 07d6bh ; 74 04 11458 11535 mov AL, strict byte 001h ; b0 01 11459 jmp short 07 c09h ; eb 0211536 jmp short 07d6dh ; eb 02 11460 11537 xor al, al ; 30 c0 11461 pop bp ; 5d11538 lea sp, [bp-004h] ; 8d 66 fc 11462 11539 pop di ; 5f 11463 11540 pop si ; 5e 11541 pop bp ; 5d 11464 11542 retn ; c3 11465 ahci_ctrl_extract_bits_: ; 0xf7 c0dLB 0x1b11543 ahci_ctrl_extract_bits_: ; 0xf7d74 LB 0x1b 11466 11544 push si ; 56 11467 11545 push bp ; 55 … … 11471 11549 and dx, cx ; 21 ca 11472 11550 movzx cx, byte [bp+006h] ; 0f b6 4e 06 11473 jcxz 07 c23h ; e3 0611551 jcxz 07d8ah ; e3 06 11474 11552 shr dx, 1 ; d1 ea 11475 11553 rcr ax, 1 ; d1 d8 11476 loop 07 c1dh ; e2 fa11554 loop 07d84h ; e2 fa 11477 11555 pop bp ; 5d 11478 11556 pop si ; 5e 11479 11557 retn 00002h ; c2 02 00 11480 ahci_addr_to_phys_: ; 0xf7 c28LB 0x1e11558 ahci_addr_to_phys_: ; 0xf7d8f LB 0x1e 11481 11559 push bx ; 53 11482 11560 push cx ; 51 … … 11489 11567 sal ax, 1 ; d1 e0 11490 11568 rcl dx, 1 ; d1 d2 11491 loop 07 c36h ; e2 fa11569 loop 07d9dh ; e2 fa 11492 11570 xor cx, cx ; 31 c9 11493 11571 add ax, bx ; 01 d8 … … 11497 11575 pop bx ; 5b 11498 11576 retn ; c3 11499 ahci_port_cmd_sync_: ; 0xf7c46 LB 0xd0 11577 ahci_port_cmd_sync_: ; 0xf7dad LB 0xd5 11578 push bp ; 55 11579 mov bp, sp ; 89 e5 11500 11580 push cx ; 51 11501 11581 push si ; 56 11502 11582 push di ; 57 11503 enter 00006h, 000h ; c8 06 00 0011583 sub sp, strict byte 00006h ; 83 ec 06 11504 11584 mov si, ax ; 89 c6 11505 mov word [bp-00 4h], dx ; 89 56 fc11585 mov word [bp-00ah], dx ; 89 56 f6 11506 11586 mov es, dx ; 8e c2 11507 11587 mov al, byte [es:si+00262h] ; 26 8a 84 62 02 11508 mov byte [bp-00 2h], al ; 88 46 fe11588 mov byte [bp-008h], al ; 88 46 f8 11509 11589 mov di, word [es:si+00260h] ; 26 8b bc 60 02 11510 11590 cmp AL, strict byte 0ffh ; 3c ff 11511 je near 07 d11h ; 0f 84 aa 0011591 je near 07e7ah ; 0f 84 aa 00 11512 11592 movzx cx, byte [es:si+00263h] ; 26 0f b6 8c 63 02 11513 11593 xor dx, dx ; 31 d2 … … 11521 11601 lea ax, [si+00080h] ; 8d 84 80 00 11522 11602 mov dx, es ; 8c c2 11523 call 07 c28h ; e8 98ff11524 mov es, [bp-00 4h] ; 8e 46 fc11603 call 07d8fh ; e8 96 ff 11604 mov es, [bp-00ah] ; 8e 46 f6 11525 11605 mov word [es:si+008h], ax ; 26 89 44 08 11526 11606 mov word [es:si+00ah], dx ; 26 89 54 0a 11527 movzx si, byte [bp-00 2h] ; 0f b6 76 fe11607 movzx si, byte [bp-008h] ; 0f b6 76 f8 11528 11608 sal si, 007h ; c1 e6 07 11529 11609 lea dx, [si+00118h] ; 8d 94 18 01 … … 11531 11611 xor cx, cx ; 31 c9 11532 11612 mov ax, di ; 89 f8 11533 call 07 b53h ; e8 a3fe11613 call 07cb1h ; e8 98 fe 11534 11614 lea ax, [si+00138h] ; 8d 84 38 01 11535 11615 cwd ; 99 … … 11549 11629 ; mov ax, cx ; 8b c1 11550 11630 out DX, eax ; 66 ef 11551 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe11631 movzx ax, byte [bp-008h] ; 0f b6 46 f8 11552 11632 sal ax, 007h ; c1 e0 07 11553 mov word [bp-00 6h], ax ; 89 46 fa11633 mov word [bp-00ch], ax ; 89 46 f4 11554 11634 mov si, ax ; 89 c6 11555 11635 add si, 00110h ; 81 c6 10 01 … … 11558 11638 mov dx, si ; 89 f2 11559 11639 mov ax, di ; 89 f8 11560 call 07 bd7h ; e8 e7fe11640 call 07d3bh ; e8 e2 fe 11561 11641 test al, al ; 84 c0 11562 je short 07 cd3h ; 74 df11642 je short 07e3ch ; 74 df 11563 11643 mov bx, strict word 00001h ; bb 01 00 11564 11644 xor cx, cx ; 31 c9 11565 11645 mov dx, si ; 89 f2 11566 11646 mov ax, di ; 89 f8 11567 call 07 b53h ; e8 53fe11568 mov dx, word [bp-00 6h] ; 8b 56 fa11647 call 07cb1h ; e8 48 fe 11648 mov dx, word [bp-00ch] ; 8b 56 f4 11569 11649 add dx, 00118h ; 81 c2 18 01 11570 11650 mov bx, strict word 00001h ; bb 01 00 11571 11651 xor cx, cx ; 31 c9 11572 11652 mov ax, di ; 89 f8 11573 call 07 b93h ; e8 82fe11574 lea ve ; c911653 call 07cf4h ; e8 7a fe 11654 lea sp, [bp-006h] ; 8d 66 fa 11575 11655 pop di ; 5f 11576 11656 pop si ; 5e 11577 11657 pop cx ; 59 11658 pop bp ; 5d 11578 11659 retn ; c3 11579 ahci_cmd_data_: ; 0xf7d16 LB 0x1c5 11660 ahci_cmd_data_: ; 0xf7e82 LB 0x1ca 11661 push bp ; 55 11662 mov bp, sp ; 89 e5 11580 11663 push cx ; 51 11581 11664 push si ; 56 11582 11665 push di ; 57 11583 enter 00010h, 000h ; c8 10 00 0011666 sub sp, strict byte 00010h ; 83 ec 10 11584 11667 mov di, ax ; 89 c7 11585 mov word [bp-0 0ch], dx ; 89 56 f411586 mov byte [bp-00 2h], bl ; 88 5e fe11668 mov word [bp-012h], dx ; 89 56 ee 11669 mov byte [bp-008h], bl ; 88 5e f8 11587 11670 xor si, si ; 31 f6 11588 11671 mov es, dx ; 8e c2 11589 11672 mov ax, word [es:di+001eeh] ; 26 8b 85 ee 01 11590 mov word [bp-00 4h], ax ; 89 46 fc11591 mov word [bp-00 8h], si ; 89 76 f811592 mov word [bp-00 6h], ax ; 89 46 fa11673 mov word [bp-00ah], ax ; 89 46 f6 11674 mov word [bp-00eh], si ; 89 76 f2 11675 mov word [bp-00ch], ax ; 89 46 f4 11593 11676 mov ax, word [es:di+00ah] ; 26 8b 45 0a 11594 mov word [bp-0 0ah], ax ; 89 46 f611677 mov word [bp-010h], ax ; 89 46 f0 11595 11678 mov ax, word [es:di+00ch] ; 26 8b 45 0c 11596 mov word [bp-01 0h], ax ; 89 46 f011679 mov word [bp-016h], ax ; 89 46 ea 11597 11680 mov cx, strict word 00040h ; b9 40 00 11598 11681 xor bx, bx ; 31 db 11599 11682 mov ax, 00080h ; b8 80 00 11600 mov dx, word [bp-00 4h] ; 8b 56 fc11601 call 09 07ah ; e8 271311602 mov es, [bp-00 4h] ; 8e 46 fc11683 mov dx, word [bp-00ah] ; 8b 56 f6 11684 call 0924ah ; e8 89 13 11685 mov es, [bp-00ah] ; 8e 46 f6 11603 11686 mov word [es:si+00080h], 08027h ; 26 c7 84 80 00 27 80 11604 mov al, byte [bp-00 2h] ; 8a 46 fe11687 mov al, byte [bp-008h] ; 8a 46 f8 11605 11688 mov byte [es:si+00082h], al ; 26 88 84 82 00 11606 11689 mov byte [es:si+00083h], 000h ; 26 c6 84 83 00 00 11607 mov es, [bp-0 0ch] ; 8e 46 f411690 mov es, [bp-012h] ; 8e 46 ee 11608 11691 mov al, byte [es:di] ; 26 8a 05 11609 mov es, [bp-00 4h] ; 8e 46 fc11692 mov es, [bp-00ah] ; 8e 46 f6 11610 11693 mov byte [es:si+00084h], al ; 26 88 84 84 00 11611 mov es, [bp-0 0ch] ; 8e 46 f411694 mov es, [bp-012h] ; 8e 46 ee 11612 11695 mov ax, word [es:di] ; 26 8b 05 11613 11696 mov bx, word [es:di+002h] ; 26 8b 5d 02 … … 11615 11698 shr bx, 1 ; d1 eb 11616 11699 rcr ax, 1 ; d1 d8 11617 loop 07 d86h ; e2 fa11618 mov es, [bp-00 4h] ; 8e 46 fc11700 loop 07ef4h ; e2 fa 11701 mov es, [bp-00ah] ; 8e 46 f6 11619 11702 mov byte [es:si+00085h], al ; 26 88 84 85 00 11620 mov es, [bp-0 0ch] ; 8e 46 f411703 mov es, [bp-012h] ; 8e 46 ee 11621 11704 mov ax, word [es:di+002h] ; 26 8b 45 02 11622 mov es, [bp-00 4h] ; 8e 46 fc11705 mov es, [bp-00ah] ; 8e 46 f6 11623 11706 mov byte [es:si+00086h], al ; 26 88 84 86 00 11624 11707 mov byte [es:si+00087h], 040h ; 26 c6 84 87 00 40 11625 mov es, [bp-0 0ch] ; 8e 46 f411708 mov es, [bp-012h] ; 8e 46 ee 11626 11709 mov ax, word [es:di+002h] ; 26 8b 45 02 11627 11710 shr ax, 008h ; c1 e8 08 11628 mov es, [bp-00 4h] ; 8e 46 fc11711 mov es, [bp-00ah] ; 8e 46 f6 11629 11712 mov byte [es:si+00088h], al ; 26 88 84 88 00 11630 11713 mov word [es:si+00089h], strict word 00000h ; 26 c7 84 89 00 00 00 11631 11714 mov byte [es:si+0008bh], 000h ; 26 c6 84 8b 00 00 11632 mov al, byte [bp-0 0ah] ; 8a 46 f611715 mov al, byte [bp-010h] ; 8a 46 f0 11633 11716 mov byte [es:si+0008ch], al ; 26 88 84 8c 00 11634 mov ax, word [bp-0 0ah] ; 8b 46 f611717 mov ax, word [bp-010h] ; 8b 46 f0 11635 11718 shr ax, 008h ; c1 e8 08 11636 11719 mov byte [es:si+0008dh], al ; 26 88 84 8d 00 11637 11720 mov word [es:si+00276h], strict word 00010h ; 26 c7 84 76 02 10 00 11638 mov ax, word [bp-0 0ah] ; 8b 46 f611721 mov ax, word [bp-010h] ; 8b 46 f0 11639 11722 xor dx, dx ; 31 d2 11640 mov bx, word [bp-01 0h] ; 8b 5e f011723 mov bx, word [bp-016h] ; 8b 5e ea 11641 11724 xor cx, cx ; 31 c9 11642 call 09 049h ; e8 5a1211725 call 09219h ; e8 bc 12 11643 11726 push dx ; 52 11644 11727 push ax ; 50 11645 mov es, [bp-0 0ch] ; 8e 46 f411728 mov es, [bp-012h] ; 8e 46 ee 11646 11729 mov bx, word [es:di+004h] ; 26 8b 5d 04 11647 11730 mov cx, word [es:di+006h] ; 26 8b 4d 06 11648 11731 mov ax, 0026ah ; b8 6a 02 11649 mov dx, word [bp-00 4h] ; 8b 56 fc11650 call 0 8f6bh ; e8 661111651 mov es, [bp-00 4h] ; 8e 46 fc11732 mov dx, word [bp-00ah] ; 8b 56 f6 11733 call 09137h ; e8 c4 11 11734 mov es, [bp-00ah] ; 8e 46 f6 11652 11735 movzx ax, byte [es:si+00263h] ; 26 0f b6 84 63 02 11653 11736 mov dx, word [es:si+0027eh] ; 26 8b 94 7e 02 … … 11655 11738 mov bx, word [es:si+00280h] ; 26 8b 9c 80 02 11656 11739 adc bx, strict byte 0ffffh ; 83 d3 ff 11657 mov word [bp-0 0eh], bx ; 89 5e f211740 mov word [bp-014h], bx ; 89 5e ec 11658 11741 mov bx, ax ; 89 c3 11659 11742 sal bx, 004h ; c1 e3 04 11660 11743 mov word [es:bx+0010ch], dx ; 26 89 97 0c 01 11661 mov dx, word [bp-0 0eh] ; 8b 56 f211744 mov dx, word [bp-014h] ; 8b 56 ec 11662 11745 mov word [es:bx+0010eh], dx ; 26 89 97 0e 01 11663 11746 mov cx, word [es:si+0027ah] ; 26 8b 8c 7a 02 … … 11666 11749 mov word [es:bx+00102h], dx ; 26 89 97 02 01 11667 11750 inc ax ; 40 11668 mov es, [bp-0 0ch] ; 8e 46 f411751 mov es, [bp-012h] ; 8e 46 ee 11669 11752 cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00 11670 je short 07 e7eh ; 74 2c11753 je short 07fech ; 74 2c 11671 11754 mov dx, word [es:di+01ch] ; 26 8b 55 1c 11672 11755 dec dx ; 4a 11673 11756 mov di, ax ; 89 c7 11674 11757 sal di, 004h ; c1 e7 04 11675 mov es, [bp-00 4h] ; 8e 46 fc11758 mov es, [bp-00ah] ; 8e 46 f6 11676 11759 mov word [es:di+0010ch], dx ; 26 89 95 0c 01 11677 11760 mov word [es:di+0010eh], si ; 26 89 b5 0e 01 … … 11681 11764 mov word [es:di+00102h], bx ; 26 89 9d 02 01 11682 11765 inc ax ; 40 11683 les bx, [bp-00 8h] ; c4 5e f811766 les bx, [bp-00eh] ; c4 5e f2 11684 11767 mov byte [es:bx+00263h], al ; 26 88 87 63 02 11685 11768 xor ax, ax ; 31 c0 11686 les bx, [bp-00 8h] ; c4 5e f811769 les bx, [bp-00eh] ; c4 5e f2 11687 11770 movzx dx, byte [es:bx+00263h] ; 26 0f b6 97 63 02 11688 11771 cmp ax, dx ; 39 d0 11689 jnc short 0 7e98h ; 73 0311772 jnc short 08006h ; 73 03 11690 11773 inc ax ; 40 11691 jmp short 07 e88h ; eb f011692 mov al, byte [bp-00 2h] ; 8a 46 fe11774 jmp short 07ff6h ; eb f0 11775 mov al, byte [bp-008h] ; 8a 46 f8 11693 11776 cmp AL, strict byte 035h ; 3c 35 11694 jne short 0 7ea5h ; 75 0611695 mov byte [bp-00 2h], 040h ; c6 46 fe4011696 jmp short 0 7eb9h ; eb 1411777 jne short 08013h ; 75 06 11778 mov byte [bp-008h], 040h ; c6 46 f8 40 11779 jmp short 08027h ; eb 14 11697 11780 cmp AL, strict byte 0a0h ; 3c a0 11698 jne short 0 7eb5h ; 75 0c11699 or byte [bp-00 2h], 020h ; 80 4e fe2011781 jne short 08023h ; 75 0c 11782 or byte [bp-008h], 020h ; 80 4e f8 20 11700 11783 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 11701 jmp short 0 7eb9h ; eb 0411702 mov byte [bp-00 2h], 000h ; c6 46 fe0011703 or byte [bp-00 2h], 005h ; 80 4e fe0511704 movzx bx, byte [bp-00 2h] ; 0f b6 5e fe11705 mov ax, word [bp-00 8h] ; 8b 46 f811706 mov dx, word [bp-00 6h] ; 8b 56 fa11707 call 07 c46h ; e8 7cfd11708 mov ax, word [bp-00 8h] ; 8b 46 f811784 jmp short 08027h ; eb 04 11785 mov byte [bp-008h], 000h ; c6 46 f8 00 11786 or byte [bp-008h], 005h ; 80 4e f8 05 11787 movzx bx, byte [bp-008h] ; 0f b6 5e f8 11788 mov ax, word [bp-00eh] ; 8b 46 f2 11789 mov dx, word [bp-00ch] ; 8b 56 f4 11790 call 07dadh ; e8 75 fd 11791 mov ax, word [bp-00eh] ; 8b 46 f2 11709 11792 add ax, 0026ah ; 05 6a 02 11710 mov dx, word [bp-00 6h] ; 8b 56 fa11711 call 0 8fe1h ; e8 0b1111712 lea ve ; c911793 mov dx, word [bp-00ch] ; 8b 56 f4 11794 call 091b0h ; e8 6c 11 11795 lea sp, [bp-006h] ; 8d 66 fa 11713 11796 pop di ; 5f 11714 11797 pop si ; 5e 11715 11798 pop cx ; 59 11799 pop bp ; 5d 11716 11800 retn ; c3 11717 ahci_port_deinit_current_: ; 0xf7edb LB 0x13f 11801 ahci_port_deinit_current_: ; 0xf804c LB 0x144 11802 push bp ; 55 11803 mov bp, sp ; 89 e5 11718 11804 push bx ; 53 11719 11805 push cx ; 51 11720 11806 push si ; 56 11721 11807 push di ; 57 11722 enter 00006h, 000h ; c8 06 00 0011808 sub sp, strict byte 00006h ; 83 ec 06 11723 11809 mov di, ax ; 89 c7 11724 mov word [bp-00 4h], dx ; 89 56 fc11810 mov word [bp-00ch], dx ; 89 56 f4 11725 11811 mov es, dx ; 8e c2 11726 11812 mov si, word [es:di+00260h] ; 26 8b b5 60 02 11727 11813 mov al, byte [es:di+00262h] ; 26 8a 85 62 02 11728 mov byte [bp-00 2h], al ; 88 46 fe11814 mov byte [bp-00ah], al ; 88 46 f6 11729 11815 cmp AL, strict byte 0ffh ; 3c ff 11730 je near 08 014h ; 0f 84 17 0111816 je near 08187h ; 0f 84 17 01 11731 11817 movzx dx, al ; 0f b6 d0 11732 11818 sal dx, 007h ; c1 e2 07 … … 11735 11821 xor cx, cx ; 31 c9 11736 11822 mov ax, si ; 89 f0 11737 call 07 b93h ; e8 82fc11738 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe11823 call 07cf4h ; e8 70 fc 11824 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 11739 11825 sal ax, 007h ; c1 e0 07 11740 mov word [bp-00 6h], ax ; 89 46 fa11826 mov word [bp-00eh], ax ; 89 46 f2 11741 11827 mov dx, ax ; 89 c2 11742 11828 add dx, 00118h ; 81 c2 18 01 … … 11744 11830 xor cx, cx ; 31 c9 11745 11831 mov ax, si ; 89 f0 11746 call 07 bd7h ; e8 acfc11832 call 07d3bh ; e8 9d fc 11747 11833 cmp AL, strict byte 001h ; 3c 01 11748 je short 0 7f11h ; 74 e211834 je short 08084h ; 74 e2 11749 11835 mov cx, strict word 00020h ; b9 20 00 11750 11836 xor bx, bx ; 31 db 11751 11837 mov ax, di ; 89 f8 11752 mov dx, word [bp-00 4h] ; 8b 56 fc11753 call 09 07ah ; e8 3e1111838 mov dx, word [bp-00ch] ; 8b 56 f4 11839 call 0924ah ; e8 9b 11 11754 11840 lea ax, [di+00080h] ; 8d 85 80 00 11755 11841 mov cx, strict word 00040h ; b9 40 00 11756 11842 xor bx, bx ; 31 db 11757 mov dx, word [bp-00 4h] ; 8b 56 fc11758 call 09 07ah ; e8 2f1111843 mov dx, word [bp-00ch] ; 8b 56 f4 11844 call 0924ah ; e8 8c 11 11759 11845 lea ax, [di+00200h] ; 8d 85 00 02 11760 11846 mov cx, strict word 00060h ; b9 60 00 11761 11847 xor bx, bx ; 31 db 11762 mov dx, word [bp-00 4h] ; 8b 56 fc11763 call 09 07ah ; e8 201111764 mov ax, word [bp-00 6h] ; 8b 46 fa11848 mov dx, word [bp-00ch] ; 8b 56 f4 11849 call 0924ah ; e8 7d 11 11850 mov ax, word [bp-00eh] ; 8b 46 f2 11765 11851 add ax, 00108h ; 05 08 01 11766 11852 cwd ; 99 … … 11781 11867 ; mov ax, cx ; 8b c1 11782 11868 out DX, eax ; 66 ef 11783 mov ax, word [bp-00 6h] ; 8b 46 fa11869 mov ax, word [bp-00eh] ; 8b 46 f2 11784 11870 add ax, 0010ch ; 05 0c 01 11785 11871 cwd ; 99 … … 11799 11885 ; mov ax, cx ; 8b c1 11800 11886 out DX, eax ; 66 ef 11801 mov ax, word [bp-00 6h] ; 8b 46 fa11887 mov ax, word [bp-00eh] ; 8b 46 f2 11802 11888 db 0feh, 0c4h 11803 11889 ; inc ah ; fe c4 … … 11818 11904 ; mov ax, cx ; 8b c1 11819 11905 out DX, eax ; 66 ef 11820 mov ax, word [bp-00 6h] ; 8b 46 fa11906 mov ax, word [bp-00eh] ; 8b 46 f2 11821 11907 add ax, 00104h ; 05 04 01 11822 11908 cwd ; 99 … … 11836 11922 ; mov ax, cx ; 8b c1 11837 11923 out DX, eax ; 66 ef 11838 mov ax, word [bp-00 6h] ; 8b 46 fa11924 mov ax, word [bp-00eh] ; 8b 46 f2 11839 11925 add ax, 00114h ; 05 14 01 11840 11926 cwd ; 99 … … 11854 11940 ; mov ax, cx ; 8b c1 11855 11941 out DX, eax ; 66 ef 11856 mov es, [bp-00 4h] ; 8e 46 fc11942 mov es, [bp-00ch] ; 8e 46 f4 11857 11943 mov byte [es:di+00262h], 0ffh ; 26 c6 85 62 02 ff 11858 lea ve ; c911944 lea sp, [bp-008h] ; 8d 66 f8 11859 11945 pop di ; 5f 11860 11946 pop si ; 5e 11861 11947 pop cx ; 59 11862 11948 pop bx ; 5b 11949 pop bp ; 5d 11863 11950 retn ; c3 11864 ahci_port_init_: ; 0xf801a LB 0x201 11951 ahci_port_init_: ; 0xf8190 LB 0x206 11952 push bp ; 55 11953 mov bp, sp ; 89 e5 11865 11954 push cx ; 51 11866 11955 push si ; 56 11867 11956 push di ; 57 11868 enter 00006h, 000h ; c8 06 00 0011957 sub sp, strict byte 00006h ; 83 ec 06 11869 11958 mov si, ax ; 89 c6 11870 mov word [bp-00 4h], dx ; 89 56 fc11871 mov byte [bp-00 2h], bl ; 88 5e fe11872 call 0 7edbh ; e8 affe11959 mov word [bp-00ah], dx ; 89 56 f6 11960 mov byte [bp-008h], bl ; 88 5e f8 11961 call 0804ch ; e8 a8 fe 11873 11962 movzx dx, bl ; 0f b6 d3 11874 11963 sal dx, 007h ; c1 e2 07 11875 11964 add dx, 00118h ; 81 c2 18 01 11876 mov es, [bp-00 4h] ; 8e 46 fc11965 mov es, [bp-00ah] ; 8e 46 f6 11877 11966 mov ax, word [es:si+00260h] ; 26 8b 84 60 02 11878 11967 mov bx, strict word 00011h ; bb 11 00 11879 11968 xor cx, cx ; 31 c9 11880 call 07 b93h ; e8 4dfb11881 movzx di, byte [bp-00 2h] ; 0f b6 7e fe11969 call 07cf4h ; e8 36 fb 11970 movzx di, byte [bp-008h] ; 0f b6 7e f8 11882 11971 sal di, 007h ; c1 e7 07 11883 11972 lea dx, [di+00118h] ; 8d 95 18 01 11884 mov es, [bp-00 4h] ; 8e 46 fc11973 mov es, [bp-00ah] ; 8e 46 f6 11885 11974 mov ax, word [es:si+00260h] ; 26 8b 84 60 02 11886 11975 mov bx, 0c011h ; bb 11 c0 11887 11976 xor cx, cx ; 31 c9 11888 call 07 bd7h ; e8 76fb11977 call 07d3bh ; e8 62 fb 11889 11978 cmp AL, strict byte 001h ; 3c 01 11890 je short 08 046h ; 74 e111979 je short 081beh ; 74 e1 11891 11980 mov cx, strict word 00020h ; b9 20 00 11892 11981 xor bx, bx ; 31 db 11893 11982 mov ax, si ; 89 f0 11894 mov dx, word [bp-00 4h] ; 8b 56 fc11895 call 09 07ah ; e8 081011983 mov dx, word [bp-00ah] ; 8b 56 f6 11984 call 0924ah ; e8 60 10 11896 11985 lea ax, [si+00080h] ; 8d 84 80 00 11897 11986 mov cx, strict word 00040h ; b9 40 00 11898 11987 xor bx, bx ; 31 db 11899 mov dx, word [bp-00 4h] ; 8b 56 fc11900 call 09 07ah ; e8 f9 0f11988 mov dx, word [bp-00ah] ; 8b 56 f6 11989 call 0924ah ; e8 51 10 11901 11990 mov ax, si ; 89 f0 11902 11991 add ah, 002h ; 80 c4 02 11903 mov word [bp-00 6h], ax ; 89 46 fa11992 mov word [bp-00ch], ax ; 89 46 f4 11904 11993 mov cx, strict word 00060h ; b9 60 00 11905 11994 xor bx, bx ; 31 db 11906 mov dx, word [bp-00 4h] ; 8b 56 fc11907 call 09 07ah ; e8 e6 0f11995 mov dx, word [bp-00ah] ; 8b 56 f6 11996 call 0924ah ; e8 3e 10 11908 11997 lea ax, [di+00108h] ; 8d 85 08 01 11909 11998 cwd ; 99 11910 mov es, [bp-00 4h] ; 8e 46 fc11999 mov es, [bp-00ah] ; 8e 46 f6 11911 12000 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 11912 12001 mov cx, dx ; 89 d1 … … 11917 12006 ; mov ax, cx ; 8b c1 11918 12007 out DX, eax ; 66 ef 11919 mov ax, word [bp-00 6h] ; 8b 46 fa11920 mov dx, word [bp-00 4h] ; 8b 56 fc11921 call 07 c28h ; e8 71fb11922 mov es, [bp-00 4h] ; 8e 46 fc12008 mov ax, word [bp-00ch] ; 8b 46 f4 12009 mov dx, word [bp-00ah] ; 8b 56 f6 12010 call 07d8fh ; e8 60 fb 12011 mov es, [bp-00ah] ; 8e 46 f6 11923 12012 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 11924 12013 add bx, strict byte 00004h ; 83 c3 04 … … 11932 12021 lea ax, [di+0010ch] ; 8d 85 0c 01 11933 12022 cwd ; 99 11934 mov es, [bp-00 4h] ; 8e 46 fc12023 mov es, [bp-00ah] ; 8e 46 f6 11935 12024 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 11936 12025 mov cx, dx ; 89 d1 … … 11941 12030 ; mov ax, cx ; 8b c1 11942 12031 out DX, eax ; 66 ef 11943 mov es, [bp-00 4h] ; 8e 46 fc12032 mov es, [bp-00ah] ; 8e 46 f6 11944 12033 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 11945 12034 add dx, strict byte 00004h ; 83 c2 04 … … 11953 12042 lea ax, [di+00100h] ; 8d 85 00 01 11954 12043 cwd ; 99 11955 mov es, [bp-00 4h] ; 8e 46 fc12044 mov es, [bp-00ah] ; 8e 46 f6 11956 12045 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 11957 12046 mov cx, dx ; 89 d1 … … 11963 12052 out DX, eax ; 66 ef 11964 12053 mov ax, si ; 89 f0 11965 mov dx, word [bp-00 4h] ; 8b 56 fc11966 call 07 c28h ; e8 05 fb11967 mov es, [bp-00 4h] ; 8e 46 fc12054 mov dx, word [bp-00ah] ; 8b 56 f6 12055 call 07d8fh ; e8 f4 fa 12056 mov es, [bp-00ah] ; 8e 46 f6 11968 12057 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 11969 12058 add bx, strict byte 00004h ; 83 c3 04 … … 11977 12066 lea ax, [di+00104h] ; 8d 85 04 01 11978 12067 cwd ; 99 11979 mov es, [bp-00 4h] ; 8e 46 fc12068 mov es, [bp-00ah] ; 8e 46 f6 11980 12069 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 11981 12070 mov cx, dx ; 89 d1 … … 11986 12075 ; mov ax, cx ; 8b c1 11987 12076 out DX, eax ; 66 ef 11988 mov es, [bp-00 4h] ; 8e 46 fc12077 mov es, [bp-00ah] ; 8e 46 f6 11989 12078 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 11990 12079 add dx, strict byte 00004h ; 83 c2 04 … … 11998 12087 lea ax, [di+00114h] ; 8d 85 14 01 11999 12088 cwd ; 99 12000 mov es, [bp-00 4h] ; 8e 46 fc12089 mov es, [bp-00ah] ; 8e 46 f6 12001 12090 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12002 12091 mov cx, dx ; 89 d1 … … 12007 12096 ; mov ax, cx ; 8b c1 12008 12097 out DX, eax ; 66 ef 12009 mov es, [bp-00 4h] ; 8e 46 fc12098 mov es, [bp-00ah] ; 8e 46 f6 12010 12099 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 12011 12100 add dx, strict byte 00004h ; 83 c2 04 … … 12019 12108 lea ax, [di+00110h] ; 8d 85 10 01 12020 12109 cwd ; 99 12021 mov es, [bp-00 4h] ; 8e 46 fc12110 mov es, [bp-00ah] ; 8e 46 f6 12022 12111 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12023 12112 mov cx, dx ; 89 d1 … … 12028 12117 ; mov ax, cx ; 8b c1 12029 12118 out DX, eax ; 66 ef 12030 mov es, [bp-00 4h] ; 8e 46 fc12119 mov es, [bp-00ah] ; 8e 46 f6 12031 12120 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 12032 12121 add dx, strict byte 00004h ; 83 c2 04 … … 12040 12129 lea ax, [di+00130h] ; 8d 85 30 01 12041 12130 cwd ; 99 12042 mov es, [bp-00 4h] ; 8e 46 fc12131 mov es, [bp-00ah] ; 8e 46 f6 12043 12132 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12044 12133 mov cx, dx ; 89 d1 … … 12049 12138 ; mov ax, cx ; 8b c1 12050 12139 out DX, eax ; 66 ef 12051 mov es, [bp-00 4h] ; 8e 46 fc12140 mov es, [bp-00ah] ; 8e 46 f6 12052 12141 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 12053 12142 add dx, strict byte 00004h ; 83 c2 04 … … 12059 12148 ; mov ax, cx ; 8b c1 12060 12149 out DX, eax ; 66 ef 12061 mov al, byte [bp-00 2h] ; 8a 46 fe12062 mov es, [bp-00 4h] ; 8e 46 fc12150 mov al, byte [bp-008h] ; 8a 46 f8 12151 mov es, [bp-00ah] ; 8e 46 f6 12063 12152 mov byte [es:si+00262h], al ; 26 88 84 62 02 12064 12153 mov byte [es:si+00263h], 000h ; 26 c6 84 63 02 00 12065 lea ve ; c912154 lea sp, [bp-006h] ; 8d 66 fa 12066 12155 pop di ; 5f 12067 12156 pop si ; 5e 12068 12157 pop cx ; 59 12158 pop bp ; 5d 12069 12159 retn ; c3 12070 @ahci_read_sectors: ; 0xf821b LB 0x91 12160 @ahci_read_sectors: ; 0xf8396 LB 0x94 12161 push bp ; 55 12162 mov bp, sp ; 89 e5 12071 12163 push si ; 56 12072 12164 push di ; 57 12073 push bp ; 55 12074 mov bp, sp ; 89 e5 12075 les di, [bp+008h] ; c4 7e 08 12165 les di, [bp+004h] ; c4 7e 04 12076 12166 movzx di, byte [es:di+008h] ; 26 0f b6 7d 08 12077 12167 sub di, strict byte 0000ch ; 83 ef 0c 12078 12168 cmp di, strict byte 00004h ; 83 ff 04 12079 jbe short 08 23fh ; 76 0f12169 jbe short 083bah ; 76 0f 12080 12170 push di ; 57 12081 12171 push 00bf6h ; 68 f6 0b 12082 12172 push 00c08h ; 68 08 0c 12083 12173 push strict byte 00007h ; 6a 07 12084 call 01 8e9h ; e8 ad 9612174 call 0190dh ; e8 56 95 12085 12175 add sp, strict byte 00008h ; 83 c4 08 12086 les bx, [bp+00 8h] ; c4 5e 0812176 les bx, [bp+004h] ; c4 5e 04 12087 12177 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 12088 12178 xor ax, ax ; 31 c0 12089 call 07 b2bh ; e8 dff812090 mov es, [bp+00 ah] ; 8e 46 0a12179 call 07c83h ; e8 bc f8 12180 mov es, [bp+006h] ; 8e 46 06 12091 12181 add di, bx ; 01 df 12092 12182 movzx bx, byte [es:di+001e9h] ; 26 0f b6 9d e9 01 12093 mov di, word [bp+00 8h] ; 8b 7e 0812183 mov di, word [bp+004h] ; 8b 7e 04 12094 12184 mov dx, word [es:di+001eeh] ; 26 8b 95 ee 01 12095 12185 xor ax, ax ; 31 c0 12096 call 08 01ah ; e8 b6fd12186 call 08190h ; e8 b1 fd 12097 12187 mov bx, strict word 00025h ; bb 25 00 12098 12188 mov ax, di ; 89 f8 12099 mov dx, word [bp+00 ah] ; 8b 56 0a12100 call 07 d16h ; e8 a7fa12101 mov es, [bp+00 ah] ; 8e 46 0a12189 mov dx, word [bp+006h] ; 8b 56 06 12190 call 07e82h ; e8 98 fa 12191 mov es, [bp+006h] ; 8e 46 06 12102 12192 mov bx, di ; 89 fb 12103 12193 mov ax, word [es:bx+00ah] ; 26 8b 47 0a … … 12115 12205 rep movsw ; f3 a5 12116 12206 pop DS ; 1f 12117 mov es, [bp+00 ah] ; 8e 46 0a12207 mov es, [bp+006h] ; 8e 46 06 12118 12208 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 12119 12209 xor ax, ax ; 31 c0 12120 call 07 b3fh ; e8 9b f812210 call 07c9ah ; e8 7b f8 12121 12211 xor ax, ax ; 31 c0 12122 pop bp ; 5d12212 lea sp, [bp-004h] ; 8d 66 fc 12123 12213 pop di ; 5f 12124 12214 pop si ; 5e 12215 pop bp ; 5d 12125 12216 retn 00004h ; c2 04 00 12126 @ahci_write_sectors: ; 0xf82ac LB 0x6d 12127 push si ; 56 12217 @ahci_write_sectors: ; 0xf842a LB 0x70 12128 12218 push bp ; 55 12129 12219 mov bp, sp ; 89 e5 12130 mov si, word [bp+006h] ; 8b 76 06 12131 mov cx, word [bp+008h] ; 8b 4e 08 12220 push si ; 56 12221 mov si, word [bp+004h] ; 8b 76 04 12222 mov cx, word [bp+006h] ; 8b 4e 06 12132 12223 mov es, cx ; 8e c1 12133 12224 movzx bx, byte [es:si+008h] ; 26 0f b6 5c 08 12134 12225 sub bx, strict byte 0000ch ; 83 eb 0c 12135 12226 cmp bx, strict byte 00004h ; 83 fb 04 12136 jbe short 08 2d4h ; 76 0f12227 jbe short 08452h ; 76 0f 12137 12228 push bx ; 53 12138 12229 push 00c27h ; 68 27 0c 12139 12230 push 00c08h ; 68 08 0c 12140 12231 push strict byte 00007h ; 6a 07 12141 call 01 8e9h ; e8 18 9612232 call 0190dh ; e8 be 94 12142 12233 add sp, strict byte 00008h ; 83 c4 08 12143 12234 mov es, cx ; 8e c1 12144 12235 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12145 12236 xor ax, ax ; 31 c0 12146 call 07 b2bh ; e8 4bf812237 call 07c83h ; e8 25 f8 12147 12238 mov es, cx ; 8e c1 12148 12239 add bx, si ; 01 f3 … … 12150 12241 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12151 12242 xor ax, ax ; 31 c0 12152 call 08 01ah ; e8 26fd12243 call 08190h ; e8 1e fd 12153 12244 mov bx, strict word 00035h ; bb 35 00 12154 12245 mov ax, si ; 89 f0 12155 12246 mov dx, cx ; 89 ca 12156 call 07 d16h ; e8 18fa12247 call 07e82h ; e8 06 fa 12157 12248 mov es, cx ; 8e c1 12158 12249 mov dx, word [es:si+00ah] ; 26 8b 54 0a … … 12160 12251 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12161 12252 xor ax, ax ; 31 c0 12162 call 07 b3fh ; e8 2df812253 call 07c9ah ; e8 0a f8 12163 12254 xor ax, ax ; 31 c0 12255 lea sp, [bp-002h] ; 8d 66 fe 12256 pop si ; 5e 12164 12257 pop bp ; 5d 12165 pop si ; 5e12166 12258 retn 00004h ; c2 04 00 12167 ahci_cmd_packet_: ; 0xf8319 LB 0x16e 12259 ahci_cmd_packet_: ; 0xf849a LB 0x173 12260 push bp ; 55 12261 mov bp, sp ; 89 e5 12168 12262 push si ; 56 12169 12263 push di ; 57 12170 enter 0000eh, 000h ; c8 0e 00 0012264 sub sp, strict byte 0000eh ; 83 ec 0e 12171 12265 push ax ; 50 12172 mov byte [bp-00 2h], dl ; 88 56 fe12173 mov word [bp-0 0eh], bx ; 89 5e f212174 mov word [bp-0 0ch], cx ; 89 4e f412266 mov byte [bp-006h], dl ; 88 56 fa 12267 mov word [bp-012h], bx ; 89 5e ee 12268 mov word [bp-010h], cx ; 89 4e f0 12175 12269 mov dx, strict word 0000eh ; ba 0e 00 12176 12270 mov ax, strict word 00040h ; b8 40 00 12177 call 0161ch ; e8 ea 9212271 call 0161ch ; e8 67 91 12178 12272 mov si, 00122h ; be 22 01 12179 mov word [bp-00 4h], ax ; 89 46 fc12180 cmp byte [bp+00 eh], 002h ; 80 7e 0e0212181 jne short 08 35dh ; 75 1f12182 mov bx, 00d3 2h ; bb 320d12273 mov word [bp-008h], ax ; 89 46 f8 12274 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12275 jne short 084e0h ; 75 1f 12276 mov bx, 00d38h ; bb 38 0d 12183 12277 mov cx, ds ; 8c d9 12184 12278 mov ax, strict word 00004h ; b8 04 00 12185 call 018 aeh ; e8 65 9512279 call 018cch ; e8 00 94 12186 12280 push 00c3ah ; 68 3a 0c 12187 12281 push 00c4ah ; 68 4a 0c 12188 12282 push strict byte 00004h ; 6a 04 12189 call 01 8e9h ; e8 95 9512283 call 0190dh ; e8 36 94 12190 12284 add sp, strict byte 00006h ; 83 c4 06 12191 12285 mov ax, strict word 00001h ; b8 01 00 12192 jmp near 08 481h ; e9 24 0112193 test byte [bp+00 8h], 001h ; f6 46 080112194 jne short 08 357h ; 75 f412195 mov ax, word [bp+00 ah] ; 8b 46 0a12196 mov dx, word [bp+00 ch] ; 8b 56 0c12286 jmp near 08604h ; e9 24 01 12287 test byte [bp+004h], 001h ; f6 46 04 01 12288 jne short 084dah ; 75 f4 12289 mov ax, word [bp+006h] ; 8b 46 06 12290 mov dx, word [bp+008h] ; 8b 56 08 12197 12291 mov cx, strict word 00008h ; b9 08 00 12198 12292 sal ax, 1 ; d1 e0 12199 12293 rcl dx, 1 ; d1 d2 12200 loop 08 36ch ; e2 fa12201 mov es, [bp-00 4h] ; 8e 46 fc12294 loop 084efh ; e2 fa 12295 mov es, [bp-008h] ; 8e 46 f8 12202 12296 mov word [es:si], ax ; 26 89 04 12203 12297 mov word [es:si+002h], dx ; 26 89 54 02 12204 mov ax, word [bp+0 10h] ; 8b 46 1012298 mov ax, word [bp+00ch] ; 8b 46 0c 12205 12299 mov word [es:si+004h], ax ; 26 89 44 04 12206 mov ax, word [bp+0 12h] ; 8b 46 1212300 mov ax, word [bp+00eh] ; 8b 46 0e 12207 12301 mov word [es:si+006h], ax ; 26 89 44 06 12208 12302 mov bx, word [es:si+00ch] ; 26 8b 5c 0c 12209 mov ax, word [bp+00 ah] ; 8b 46 0a12210 mov dx, word [bp+00 ch] ; 8b 56 0c12303 mov ax, word [bp+006h] ; 8b 46 06 12304 mov dx, word [bp+008h] ; 8b 56 08 12211 12305 xor cx, cx ; 31 c9 12212 call 09 010h ; e8 770c12306 call 091e0h ; e8 c4 0c 12213 12307 mov word [es:si+00ah], ax ; 26 89 44 0a 12214 12308 xor di, di ; 31 ff 12215 12309 mov ax, word [es:si+001eeh] ; 26 8b 84 ee 01 12216 mov word [bp-00 6h], ax ; 89 46 fa12217 mov word [bp-00 ah], di ; 89 7e f612218 mov word [bp-00 8h], ax ; 89 46 f812219 sub word [bp-01 0h], strict byte 0000ch ; 83 6e f00c12310 mov word [bp-00ah], ax ; 89 46 f6 12311 mov word [bp-00eh], di ; 89 7e f2 12312 mov word [bp-00ch], ax ; 89 46 f4 12313 sub word [bp-014h], strict byte 0000ch ; 83 6e ec 0c 12220 12314 xor ax, ax ; 31 c0 12221 mov dx, word [bp-00 6h] ; 8b 56 fa12222 call 07 b2bh ; e8 72f712223 mov es, [bp-00 4h] ; 8e 46 fc12224 mov bx, word [bp-01 0h] ; 8b 5e f012315 mov dx, word [bp-00ah] ; 8b 56 f6 12316 call 07c83h ; e8 47 f7 12317 mov es, [bp-008h] ; 8e 46 f8 12318 mov bx, word [bp-014h] ; 8b 5e ec 12225 12319 add bx, si ; 01 f3 12226 12320 movzx bx, byte [es:bx+001e9h] ; 26 0f b6 9f e9 01 12227 12321 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12228 12322 xor ax, ax ; 31 c0 12229 call 08 01ah ; e8 49fc12230 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe12323 call 08190h ; e8 3c fc 12324 movzx ax, byte [bp-006h] ; 0f b6 46 fa 12231 12325 push ax ; 50 12232 mov bx, word [bp-0 0eh] ; 8b 5e f212233 mov cx, word [bp-0 0ch] ; 8b 4e f412326 mov bx, word [bp-012h] ; 8b 5e ee 12327 mov cx, word [bp-010h] ; 8b 4e f0 12234 12328 mov ax, 000c0h ; b8 c0 00 12235 mov dx, word [bp-00 6h] ; 8b 56 fa12236 call 09 087h ; e8 a20c12237 mov es, [bp-00 4h] ; 8e 46 fc12329 mov dx, word [bp-00ah] ; 8b 56 f6 12330 call 09257h ; e8 ef 0c 12331 mov es, [bp-008h] ; 8e 46 f8 12238 12332 mov word [es:si+014h], di ; 26 89 7c 14 12239 12333 mov word [es:si+016h], di ; 26 89 7c 16 … … 12241 12335 mov ax, word [es:si+01ah] ; 26 8b 44 1a 12242 12336 test ax, ax ; 85 c0 12243 je short 08 423h ; 74 2712337 je short 085a6h ; 74 27 12244 12338 dec ax ; 48 12245 mov es, [bp-00 6h] ; 8e 46 fa12339 mov es, [bp-00ah] ; 8e 46 f6 12246 12340 mov word [es:di+0010ch], ax ; 26 89 85 0c 01 12247 12341 mov word [es:di+0010eh], di ; 26 89 bd 0e 01 … … 12253 12347 mov bx, 000a0h ; bb a0 00 12254 12348 mov ax, si ; 89 f0 12255 mov dx, word [bp-00 4h] ; 8b 56 fc12256 call 07 d16h ; e8 e8f812257 les bx, [bp-00 ah] ; c4 5e f612349 mov dx, word [bp-008h] ; 8b 56 f8 12350 call 07e82h ; e8 d1 f8 12351 les bx, [bp-00eh] ; c4 5e f2 12258 12352 mov ax, word [es:bx+004h] ; 26 8b 47 04 12259 12353 mov dx, word [es:bx+006h] ; 26 8b 57 06 12260 mov es, [bp-00 4h] ; 8e 46 fc12354 mov es, [bp-008h] ; 8e 46 f8 12261 12355 mov word [es:si+016h], ax ; 26 89 44 16 12262 12356 mov word [es:si+018h], dx ; 26 89 54 18 … … 12275 12369 rep movsw ; f3 a5 12276 12370 pop DS ; 1f 12277 mov ax, word [bp-00 ah] ; 8b 46 f612278 mov dx, word [bp-00 8h] ; 8b 56 f812279 call 07 b3fh ; e8 d2f612280 les bx, [bp-00 ah] ; c4 5e f612371 mov ax, word [bp-00eh] ; 8b 46 f2 12372 mov dx, word [bp-00ch] ; 8b 56 f4 12373 call 07c9ah ; e8 aa f6 12374 les bx, [bp-00eh] ; c4 5e f2 12281 12375 mov ax, word [es:bx+006h] ; 26 8b 47 06 12282 12376 or ax, word [es:bx+004h] ; 26 0b 47 04 12283 jne short 08 47fh ; 75 0512377 jne short 08602h ; 75 05 12284 12378 mov ax, strict word 00004h ; b8 04 00 12285 jmp short 08 481h ; eb 0212379 jmp short 08604h ; eb 02 12286 12380 xor ax, ax ; 31 c0 12287 lea ve ; c912381 lea sp, [bp-004h] ; 8d 66 fc 12288 12382 pop di ; 5f 12289 12383 pop si ; 5e 12384 pop bp ; 5d 12290 12385 retn 0000ch ; c2 0c 00 12291 ahci_port_detect_device_: ; 0xf8487 LB 0x3cb 12386 ahci_port_detect_device_: ; 0xf860d LB 0x3d1 12387 push bp ; 55 12388 mov bp, sp ; 89 e5 12292 12389 push cx ; 51 12293 12390 push si ; 56 12294 12391 push di ; 57 12295 enter 00222h, 000h ; c8 22 02 0012392 sub sp, 00222h ; 81 ec 22 02 12296 12393 mov di, ax ; 89 c7 12297 mov word [bp-0 0ah], dx ; 89 56 f612298 mov byte [bp-00 2h], bl ; 88 5e fe12394 mov word [bp-010h], dx ; 89 56 f0 12395 mov byte [bp-008h], bl ; 88 5e f8 12299 12396 movzx cx, bl ; 0f b6 cb 12300 12397 mov bx, cx ; 89 cb 12301 call 08 01ah ; e8 7cfb12398 call 08190h ; e8 69 fb 12302 12399 mov dx, strict word 0000eh ; ba 0e 00 12303 12400 mov ax, strict word 00040h ; b8 40 00 12304 call 0161ch ; e8 75 9112305 mov word [bp-0 1ah], ax ; 89 46 e612401 call 0161ch ; e8 ec 8f 12402 mov word [bp-020h], ax ; 89 46 e0 12306 12403 mov si, 00122h ; be 22 01 12307 mov word [bp-00 8h], ax ; 89 46 f812308 mov word [bp-0 1ch], si ; 89 76 e412309 mov word [bp-0 0ch], ax ; 89 46 f412404 mov word [bp-00eh], ax ; 89 46 f2 12405 mov word [bp-022h], si ; 89 76 de 12406 mov word [bp-012h], ax ; 89 46 ee 12310 12407 sal cx, 007h ; c1 e1 07 12311 mov word [bp-01 6h], cx ; 89 4e ea12408 mov word [bp-01ch], cx ; 89 4e e4 12312 12409 mov ax, cx ; 89 c8 12313 12410 add ax, 0012ch ; 05 2c 01 12314 12411 cwd ; 99 12315 mov word [bp-01 8h], ax ; 89 46 e812412 mov word [bp-01eh], ax ; 89 46 e2 12316 12413 mov bx, dx ; 89 d3 12317 mov es, [bp-0 0ah] ; 8e 46 f612414 mov es, [bp-010h] ; 8e 46 f0 12318 12415 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 12319 12416 mov cx, bx ; 89 d9 … … 12323 12420 ; mov ax, cx ; 8b c1 12324 12421 out DX, eax ; 66 ef 12325 mov es, [bp-0 0ah] ; 8e 46 f612422 mov es, [bp-010h] ; 8e 46 f0 12326 12423 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 12327 12424 add dx, strict byte 00004h ; 83 c2 04 … … 12333 12430 ; mov ax, cx ; 8b c1 12334 12431 out DX, eax ; 66 ef 12335 mov es, [bp-0 0ah] ; 8e 46 f612432 mov es, [bp-010h] ; 8e 46 f0 12336 12433 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 12337 mov ax, word [bp-01 8h] ; 8b 46 e812434 mov ax, word [bp-01eh] ; 8b 46 e2 12338 12435 mov cx, bx ; 89 d9 12339 12436 xchg cx, ax ; 91 … … 12342 12439 ; mov ax, cx ; 8b c1 12343 12440 out DX, eax ; 66 ef 12344 mov es, [bp-0 0ah] ; 8e 46 f612441 mov es, [bp-010h] ; 8e 46 f0 12345 12442 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 12346 12443 add dx, strict byte 00004h ; 83 c2 04 … … 12352 12449 ; mov ax, cx ; 8b c1 12353 12450 out DX, eax ; 66 ef 12354 mov ax, word [bp-01 6h] ; 8b 46 ea12451 mov ax, word [bp-01ch] ; 8b 46 e4 12355 12452 add ax, 00128h ; 05 28 01 12356 12453 cwd ; 99 12357 mov es, [bp-0 0ah] ; 8e 46 f612454 mov es, [bp-010h] ; 8e 46 f0 12358 12455 mov bx, word [es:di+00260h] ; 26 8b 9d 60 02 12359 12456 mov cx, dx ; 89 d1 … … 12364 12461 ; mov ax, cx ; 8b c1 12365 12462 out DX, eax ; 66 ef 12366 mov es, [bp-0 0ah] ; 8e 46 f612463 mov es, [bp-010h] ; 8e 46 f0 12367 12464 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 12368 12465 add dx, strict byte 00004h ; 83 c2 04 … … 12375 12472 mov bx, strict word 0000fh ; bb 0f 00 12376 12473 xor cx, cx ; 31 c9 12377 call 07 c0dh ; e8 b2f612474 call 07d74h ; e8 90 f6 12378 12475 cmp ax, strict word 00003h ; 3d 03 00 12379 jne near 08 84dh ; 0f 85 eb 0212380 mov es, [bp-00 8h] ; 8e 46 f812476 jne near 089d6h ; 0f 85 eb 02 12477 mov es, [bp-00eh] ; 8e 46 f2 12381 12478 mov al, byte [es:si+001edh] ; 26 8a 84 ed 01 12382 mov byte [bp-00 4h], al ; 88 46 fc12479 mov byte [bp-00ah], al ; 88 46 f6 12383 12480 cmp AL, strict byte 004h ; 3c 04 12384 jnc near 08 84dh ; 0f 83 da 0212385 mov dx, word [bp-01 6h] ; 8b 56 ea12481 jnc near 089d6h ; 0f 83 da 02 12482 mov dx, word [bp-01ch] ; 8b 56 e4 12386 12483 add dx, 00118h ; 81 c2 18 01 12387 mov es, [bp-0 0ah] ; 8e 46 f612484 mov es, [bp-010h] ; 8e 46 f0 12388 12485 mov ax, word [es:di+00260h] ; 26 8b 85 60 02 12389 12486 mov bx, strict word 00010h ; bb 10 00 12390 12487 xor cx, cx ; 31 c9 12391 call 07 b53h ; e8 c9f512392 mov ax, word [bp-01 6h] ; 8b 46 ea12488 call 07cb1h ; e8 9e f5 12489 mov ax, word [bp-01ch] ; 8b 46 e4 12393 12490 add ax, 00124h ; 05 24 01 12394 12491 cwd ; 99 12395 mov es, [bp-0 0ah] ; 8e 46 f612492 mov es, [bp-010h] ; 8e 46 f0 12396 12493 mov bx, word [es:di+00260h] ; 26 8b 9d 60 02 12397 12494 mov cx, dx ; 89 d1 … … 12402 12499 ; mov ax, cx ; 8b c1 12403 12500 out DX, eax ; 66 ef 12404 mov es, [bp-0 0ah] ; 8e 46 f612501 mov es, [bp-010h] ; 8e 46 f0 12405 12502 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 12406 12503 add dx, strict byte 00004h ; 83 c2 04 … … 12412 12509 mov bx, ax ; 89 c3 12413 12510 mov ax, dx ; 89 d0 12414 mov cl, byte [bp-00 4h] ; 8a 4e fc12511 mov cl, byte [bp-00ah] ; 8a 4e f6 12415 12512 add cl, 00ch ; 80 c1 0c 12416 12513 test dx, dx ; 85 d2 12417 jne near 08 79fh ; 0f 85 d5 0112514 jne near 08928h ; 0f 85 d5 01 12418 12515 cmp bx, 00101h ; 81 fb 01 01 12419 jne near 08 79fh ; 0f 85 cd 0112420 mov es, [bp-00 8h] ; 8e 46 f812516 jne near 08928h ; 0f 85 cd 01 12517 mov es, [bp-00eh] ; 8e 46 f2 12421 12518 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h 12422 12519 ; mov dword [es:si], strict dword 000000000h ; 66 26 c7 04 00 00 00 00 12423 lea dx, [bp-0022 2h] ; 8d 96 defd12520 lea dx, [bp-00228h] ; 8d 96 d8 fd 12424 12521 mov word [es:si+004h], dx ; 26 89 54 04 12425 12522 mov [es:si+006h], ss ; 26 8c 54 06 … … 12428 12525 mov bx, 000ech ; bb ec 00 12429 12526 mov ax, si ; 89 f0 12430 mov dx, word [bp-0 1ah] ; 8b 56 e612431 call 07 d16h ; e8 19 f712432 mov byte [bp-00 6h], cl ; 88 4e fa12433 test byte [bp-0022 2h], 080h ; f6 86 defd 8012527 mov dx, word [bp-020h] ; 8b 56 e0 12528 call 07e82h ; e8 fc f6 12529 mov byte [bp-00ch], cl ; 88 4e f4 12530 test byte [bp-00228h], 080h ; f6 86 d8 fd 80 12434 12531 db 00fh, 095h, 0c0h 12435 12532 ; setne al ; 0f 95 c0 12436 12533 xor ah, ah ; 30 e4 12437 mov dx, word [bp-00220h] ; 8b 96 e0 fd 12534 mov dx, word [bp-00226h] ; 8b 96 da fd 12535 mov word [bp-01ah], dx ; 89 56 e6 12536 mov dx, word [bp-00222h] ; 8b 96 de fd 12537 mov word [bp-018h], dx ; 89 56 e8 12538 mov dx, word [bp-0021ch] ; 8b 96 e4 fd 12539 mov word [bp-016h], dx ; 89 56 ea 12540 mov di, word [bp-001b0h] ; 8b be 50 fe 12541 mov dx, word [bp-001aeh] ; 8b 96 52 fe 12438 12542 mov word [bp-014h], dx ; 89 56 ec 12439 mov dx, word [bp-0021ch] ; 8b 96 e4 fd12440 mov word [bp-012h], dx ; 89 56 ee12441 mov dx, word [bp-00216h] ; 8b 96 ea fd12442 mov word [bp-010h], dx ; 89 56 f012443 mov di, word [bp-001aah] ; 8b be 56 fe12444 mov dx, word [bp-001a8h] ; 8b 96 58 fe12445 mov word [bp-00eh], dx ; 89 56 f212446 12543 cmp dx, 00fffh ; 81 fa ff 0f 12447 jne short 08 640h ; 75 1012544 jne short 087c9h ; 75 10 12448 12545 cmp di, strict byte 0ffffh ; 83 ff ff 12449 jne short 08 640h ; 75 0b12450 mov di, word [bp-001 5ah] ; 8b be a6fe12451 mov dx, word [bp-0015 8h] ; 8b 96 a8fe12452 mov word [bp-0 0eh], dx ; 89 56 f212453 movzx bx, byte [bp-00 4h] ; 0f b6 5e fc12454 mov es, [bp-0 0ch] ; 8e 46 f412455 add bx, word [bp-0 1ch] ; 03 5e e412456 mov ah, byte [bp-00 2h] ; 8a 66 fe12546 jne short 087c9h ; 75 0b 12547 mov di, word [bp-00160h] ; 8b be a0 fe 12548 mov dx, word [bp-0015eh] ; 8b 96 a2 fe 12549 mov word [bp-014h], dx ; 89 56 ec 12550 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 12551 mov es, [bp-012h] ; 8e 46 ee 12552 add bx, word [bp-022h] ; 03 5e de 12553 mov ah, byte [bp-008h] ; 8a 66 f8 12457 12554 mov byte [es:bx+001e9h], ah ; 26 88 a7 e9 01 12458 movzx dx, byte [bp-00 6h] ; 0f b6 56 fa12555 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 12459 12556 imul dx, dx, strict byte 00018h ; 6b d2 18 12460 mov si, word [bp-0 1ch] ; 8b 76 e412557 mov si, word [bp-022h] ; 8b 76 de 12461 12558 add si, dx ; 01 d6 12462 12559 mov word [es:si+01eh], 0ff05h ; 26 c7 44 1e 05 ff … … 12466 12563 mov byte [es:si+023h], 001h ; 26 c6 44 23 01 12467 12564 mov word [es:si+032h], di ; 26 89 7c 32 12468 mov ax, word [bp-0 0eh] ; 8b 46 f212565 mov ax, word [bp-014h] ; 8b 46 ec 12469 12566 mov word [es:si+034h], ax ; 26 89 44 34 12470 mov ax, word [bp-01 2h] ; 8b 46 ee12567 mov ax, word [bp-018h] ; 8b 46 e8 12471 12568 mov word [es:si+02ch], ax ; 26 89 44 2c 12472 mov ax, word [bp-01 4h] ; 8b 46 ec12569 mov ax, word [bp-01ah] ; 8b 46 e6 12473 12570 mov word [es:si+02eh], ax ; 26 89 44 2e 12474 mov ax, word [bp-01 0h] ; 8b 46 f012571 mov ax, word [bp-016h] ; 8b 46 ea 12475 12572 mov word [es:si+030h], ax ; 26 89 44 30 12476 mov al, byte [bp-00 4h] ; 8a 46 fc12573 mov al, byte [bp-00ah] ; 8a 46 f6 12477 12574 cmp AL, strict byte 001h ; 3c 01 12478 jc short 08 6abh ; 72 0c12479 jbe short 08 6b3h ; 76 1212575 jc short 08834h ; 72 0c 12576 jbe short 0883ch ; 76 12 12480 12577 cmp AL, strict byte 003h ; 3c 03 12481 je short 08 6bbh ; 74 1612578 je short 08844h ; 74 16 12482 12579 cmp AL, strict byte 002h ; 3c 02 12483 je short 08 6b7h ; 74 0e12484 jmp short 08 704h ; eb 5912580 je short 08840h ; 74 0e 12581 jmp short 0888dh ; eb 59 12485 12582 test al, al ; 84 c0 12486 jne short 08 704h ; 75 5512583 jne short 0888dh ; 75 55 12487 12584 mov DL, strict byte 040h ; b2 40 12488 jmp short 08 6bdh ; eb 0a12585 jmp short 08846h ; eb 0a 12489 12586 mov DL, strict byte 048h ; b2 48 12490 jmp short 08 6bdh ; eb 0612587 jmp short 08846h ; eb 06 12491 12588 mov DL, strict byte 050h ; b2 50 12492 jmp short 08 6bdh ; eb 0212589 jmp short 08846h ; eb 02 12493 12590 mov DL, strict byte 058h ; b2 58 12494 12591 mov al, dl ; 88 d0 … … 12496 12593 movzx bx, al ; 0f b6 d8 12497 12594 mov ax, bx ; 89 d8 12498 call 0165ch ; e8 93 8f12595 call 0165ch ; e8 0a 8e 12499 12596 test al, al ; 84 c0 12500 je short 08 704h ; 74 3712597 je short 0888dh ; 74 37 12501 12598 mov al, dl ; 88 d0 12502 12599 db 0feh, 0c0h 12503 12600 ; inc al ; fe c0 12504 12601 xor ah, ah ; 30 e4 12505 call 0165ch ; e8 86 8f12602 call 0165ch ; e8 fd 8d 12506 12603 xor ah, ah ; 30 e4 12507 12604 mov cx, ax ; 89 c1 12508 12605 sal cx, 008h ; c1 e1 08 12509 12606 movzx ax, dl ; 0f b6 c2 12510 call 0165ch ; e8 79 8f12607 call 0165ch ; e8 f0 8d 12511 12608 xor ah, ah ; 30 e4 12512 12609 add ax, cx ; 01 c8 12513 mov word [bp-02 0h], ax ; 89 46 e012610 mov word [bp-026h], ax ; 89 46 da 12514 12611 mov al, dl ; 88 d0 12515 12612 add AL, strict byte 002h ; 04 02 12516 12613 xor ah, ah ; 30 e4 12517 call 0165ch ; e8 69 8f12614 call 0165ch ; e8 e0 8d 12518 12615 xor ah, ah ; 30 e4 12519 mov word [bp-02 2h], ax ; 89 46 de12616 mov word [bp-028h], ax ; 89 46 d8 12520 12617 mov ax, bx ; 89 d8 12521 call 0165ch ; e8 5f 8f12618 call 0165ch ; e8 d6 8d 12522 12619 xor ah, ah ; 30 e4 12523 mov word [bp-0 1eh], ax ; 89 46 e212524 jmp short 08 711h ; eb 0d12620 mov word [bp-024h], ax ; 89 46 dc 12621 jmp short 0889ah ; eb 0d 12525 12622 mov bx, di ; 89 fb 12526 mov cx, word [bp-0 0eh] ; 8b 4e f212623 mov cx, word [bp-014h] ; 8b 4e ec 12527 12624 mov dx, ss ; 8c d2 12528 lea ax, [bp-02 2h] ; 8d 46 de12529 call 05 29eh ; e8 8d cb12530 mov bx, 00d3 2h ; bb 320d12625 lea ax, [bp-028h] ; 8d 46 d8 12626 call 05338h ; e8 9e ca 12627 mov bx, 00d38h ; bb 38 0d 12531 12628 mov cx, ds ; 8c d9 12532 12629 mov ax, strict word 00004h ; b8 04 00 12533 call 018 aeh ; e8 92 9112534 push word [bp-0 0eh] ; ff 76 f212630 call 018cch ; e8 27 90 12631 push word [bp-014h] ; ff 76 ec 12535 12632 push di ; 57 12536 mov ax, word [bp-0 1eh] ; 8b 46 e212633 mov ax, word [bp-024h] ; 8b 46 dc 12537 12634 push ax ; 50 12538 mov ax, word [bp-02 2h] ; 8b 46 de12635 mov ax, word [bp-028h] ; 8b 46 d8 12539 12636 push ax ; 50 12540 mov ax, word [bp-02 0h] ; 8b 46 e012637 mov ax, word [bp-026h] ; 8b 46 da 12541 12638 push ax ; 50 12542 push dword [bp-01 2h] ; 66 ff 76 ee12543 push word [bp-01 4h] ; ff 76 ec12544 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe12639 push dword [bp-018h] ; 66 ff 76 e8 12640 push word [bp-01ah] ; ff 76 e6 12641 movzx ax, byte [bp-008h] ; 0f b6 46 f8 12545 12642 push ax ; 50 12546 movzx ax, byte [bp-00 4h] ; 0f b6 46 fc12643 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 12547 12644 push ax ; 50 12548 12645 push 00c6ah ; 68 6a 0c 12549 12646 push strict byte 00004h ; 6a 04 12550 call 01 8e9h ; e8 a4 9112647 call 0190dh ; e8 3f 90 12551 12648 add sp, strict byte 00018h ; 83 c4 18 12552 movzx di, byte [bp-00 6h] ; 0f b6 7e fa12649 movzx di, byte [bp-00ch] ; 0f b6 7e f4 12553 12650 imul di, di, strict byte 00018h ; 6b ff 18 12554 add di, word [bp-0 1ch] ; 03 7e e412555 mov es, [bp-0 0ch] ; 8e 46 f412651 add di, word [bp-022h] ; 03 7e de 12652 mov es, [bp-012h] ; 8e 46 ee 12556 12653 lea di, [di+026h] ; 8d 7d 26 12557 12654 push DS ; 1e 12558 12655 push SS ; 16 12559 12656 pop DS ; 1f 12560 lea si, [bp-02 2h] ; 8d 76 de12657 lea si, [bp-028h] ; 8d 76 d8 12561 12658 movsw ; a5 12562 12659 movsw ; a5 12563 12660 movsw ; a5 12564 12661 pop DS ; 1f 12565 mov bx, word [bp-0 1ch] ; 8b 5e e412662 mov bx, word [bp-022h] ; 8b 5e de 12566 12663 mov al, byte [es:bx+0019eh] ; 26 8a 87 9e 01 12567 mov ah, byte [bp-00 4h] ; 8a 66 fc12664 mov ah, byte [bp-00ah] ; 8a 66 f6 12568 12665 add ah, 00ch ; 80 c4 0c 12569 12666 movzx bx, al ; 0f b6 d8 12570 add bx, word [bp-0 1ch] ; 03 5e e412667 add bx, word [bp-022h] ; 03 5e de 12571 12668 mov byte [es:bx+0019fh], ah ; 26 88 a7 9f 01 12572 12669 db 0feh, 0c0h 12573 12670 ; inc al ; fe c0 12574 mov bx, word [bp-0 1ch] ; 8b 5e e412671 mov bx, word [bp-022h] ; 8b 5e de 12575 12672 mov byte [es:bx+0019eh], al ; 26 88 87 9e 01 12576 12673 mov dx, strict word 00075h ; ba 75 00 12577 12674 mov ax, strict word 00040h ; b8 40 00 12578 call 01600h ; e8 72 8e12675 call 01600h ; e8 e9 8c 12579 12676 db 0feh, 0c0h 12580 12677 ; inc al ; fe c0 … … 12582 12679 mov dx, strict word 00075h ; ba 75 00 12583 12680 mov ax, strict word 00040h ; b8 40 00 12584 call 0160eh ; e8 72 8e12585 jmp near 08 83ch ; e9 9d 0012681 call 0160eh ; e8 e9 8c 12682 jmp near 089c5h ; e9 9d 00 12586 12683 cmp dx, 0eb14h ; 81 fa 14 eb 12587 jne near 08 83ch ; 0f 85 95 0012684 jne near 089c5h ; 0f 85 95 00 12588 12685 cmp bx, 00101h ; 81 fb 01 01 12589 jne near 08 83ch ; 0f 85 8d 0012590 mov es, [bp-00 8h] ; 8e 46 f812686 jne near 089c5h ; 0f 85 8d 00 12687 mov es, [bp-00eh] ; 8e 46 f2 12591 12688 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h 12592 12689 ; mov dword [es:si], strict dword 000000000h ; 66 26 c7 04 00 00 00 00 12593 lea dx, [bp-0022 2h] ; 8d 96 defd12690 lea dx, [bp-00228h] ; 8d 96 d8 fd 12594 12691 mov word [es:si+004h], dx ; 26 89 54 04 12595 12692 mov [es:si+006h], ss ; 26 8c 54 06 … … 12598 12695 mov bx, 000a1h ; bb a1 00 12599 12696 mov ax, si ; 89 f0 12600 mov dx, word [bp-0 1ah] ; 8b 56 e612601 call 07 d16h ; e8 3cf512602 test byte [bp-0022 2h], 080h ; f6 86 defd 8012697 mov dx, word [bp-020h] ; 8b 56 e0 12698 call 07e82h ; e8 1f f5 12699 test byte [bp-00228h], 080h ; f6 86 d8 fd 80 12603 12700 db 00fh, 095h, 0c0h 12604 12701 ; setne al ; 0f 95 c0 12605 12702 xor ah, ah ; 30 e4 12606 movzx bx, byte [bp-00 4h] ; 0f b6 5e fc12607 mov es, [bp-0 1ah] ; 8e 46 e612703 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 12704 mov es, [bp-020h] ; 8e 46 e0 12608 12705 add bx, si ; 01 f3 12609 mov ah, byte [bp-00 2h] ; 8a 66 fe12706 mov ah, byte [bp-008h] ; 8a 66 f8 12610 12707 mov byte [es:bx+001e9h], ah ; 26 88 a7 e9 01 12611 12708 movzx si, cl ; 0f b6 f1 … … 12615 12712 mov byte [es:si+020h], al ; 26 88 44 20 12616 12713 mov word [es:si+024h], 00800h ; 26 c7 44 24 00 08 12617 mov es, [bp-0 0ch] ; 8e 46 f412618 mov bx, word [bp-0 1ch] ; 8b 5e e412714 mov es, [bp-012h] ; 8e 46 ee 12715 mov bx, word [bp-022h] ; 8b 5e de 12619 12716 mov al, byte [es:bx+001afh] ; 26 8a 87 af 01 12620 mov ah, byte [bp-00 4h] ; 8a 66 fc12717 mov ah, byte [bp-00ah] ; 8a 66 f6 12621 12718 add ah, 00ch ; 80 c4 0c 12622 12719 movzx bx, al ; 0f b6 d8 12623 mov es, [bp-0 1ah] ; 8e 46 e612720 mov es, [bp-020h] ; 8e 46 e0 12624 12721 add bx, 00122h ; 81 c3 22 01 12625 12722 mov byte [es:bx+001b0h], ah ; 26 88 a7 b0 01 12626 12723 db 0feh, 0c0h 12627 12724 ; inc al ; fe c0 12628 mov es, [bp-0 0ch] ; 8e 46 f412629 mov bx, word [bp-0 1ch] ; 8b 5e e412725 mov es, [bp-012h] ; 8e 46 ee 12726 mov bx, word [bp-022h] ; 8b 5e de 12630 12727 mov byte [es:bx+001afh], al ; 26 88 87 af 01 12631 inc byte [bp-00 4h] ; fe 46 fc12632 mov al, byte [bp-00 4h] ; 8a 46 fc12633 mov es, [bp-0 0ch] ; 8e 46 f412634 mov bx, word [bp-0 1ch] ; 8b 5e e412728 inc byte [bp-00ah] ; fe 46 f6 12729 mov al, byte [bp-00ah] ; 8a 46 f6 12730 mov es, [bp-012h] ; 8e 46 ee 12731 mov bx, word [bp-022h] ; 8b 5e de 12635 12732 mov byte [es:bx+001edh], al ; 26 88 87 ed 01 12636 lea ve ; c912733 lea sp, [bp-006h] ; 8d 66 fa 12637 12734 pop di ; 5f 12638 12735 pop si ; 5e 12639 12736 pop cx ; 59 12737 pop bp ; 5d 12640 12738 retn ; c3 12641 ahci_mem_alloc_: ; 0xf8852 LB 0x40 12739 ahci_mem_alloc_: ; 0xf89de LB 0x43 12740 push bp ; 55 12741 mov bp, sp ; 89 e5 12642 12742 push bx ; 53 12643 12743 push cx ; 51 … … 12645 12745 push si ; 56 12646 12746 push di ; 57 12647 push bp ; 5512648 mov bp, sp ; 89 e512649 12747 mov dx, 00413h ; ba 13 04 12650 12748 xor ax, ax ; 31 c0 12651 call 0161ch ; e8 ba 8d12749 call 0161ch ; e8 2e 8c 12652 12750 test ax, ax ; 85 c0 12653 je short 08 88bh ; 74 2512751 je short 08a17h ; 74 25 12654 12752 dec ax ; 48 12655 12753 mov bx, ax ; 89 c3 … … 12658 12756 sal ax, 1 ; d1 e0 12659 12757 rcl dx, 1 ; d1 d2 12660 loop 08 86eh ; e2 fa12758 loop 089fah ; e2 fa 12661 12759 mov si, ax ; 89 c6 12662 12760 mov di, dx ; 89 d7 … … 12664 12762 shr di, 1 ; d1 ef 12665 12763 rcr si, 1 ; d1 de 12666 loop 08 87bh ; e2 fa12764 loop 08a07h ; e2 fa 12667 12765 mov dx, 00413h ; ba 13 04 12668 12766 xor ax, ax ; 31 c0 12669 call 0162ah ; e8 a1 8d12767 call 0162ah ; e8 15 8c 12670 12768 mov ax, si ; 89 f0 12671 pop bp ; 5d12769 lea sp, [bp-00ah] ; 8d 66 f6 12672 12770 pop di ; 5f 12673 12771 pop si ; 5e … … 12675 12773 pop cx ; 59 12676 12774 pop bx ; 5b 12775 pop bp ; 5d 12677 12776 retn ; c3 12678 ahci_hba_init_: ; 0xf8892 LB 0x120 12777 ahci_hba_init_: ; 0xf8a21 LB 0x125 12778 push bp ; 55 12779 mov bp, sp ; 89 e5 12679 12780 push bx ; 53 12680 12781 push cx ; 51 … … 12682 12783 push si ; 56 12683 12784 push di ; 57 12684 enter 00006h, 000h ; c8 06 00 0012785 sub sp, strict byte 00006h ; 83 ec 06 12685 12786 mov si, ax ; 89 c6 12686 12787 mov dx, strict word 0000eh ; ba 0e 00 12687 12788 mov ax, strict word 00040h ; b8 40 00 12688 call 0161ch ; e8 76 8d12789 call 0161ch ; e8 e5 8b 12689 12790 mov bx, 00122h ; bb 22 01 12690 mov word [bp-0 06h], ax ; 89 46 fa12791 mov word [bp-010h], ax ; 89 46 f0 12691 12792 mov ax, strict word 00010h ; b8 10 00 12692 12793 xor cx, cx ; 31 c9 … … 12703 12804 shr eax, 010h ; 66 c1 e8 10 12704 12805 xchg dx, ax ; 92 12705 call 08 852h ; e8 87ff12806 call 089deh ; e8 82 ff 12706 12807 mov di, ax ; 89 c7 12707 12808 test ax, ax ; 85 c0 12708 je near 08 994h ; 0f 84 c1 0012709 mov es, [bp-0 06h] ; 8e 46 fa12809 je near 08b25h ; 0f 84 c1 00 12810 mov es, [bp-010h] ; 8e 46 f0 12710 12811 mov word [es:bx+001eeh], di ; 26 89 bf ee 01 12711 12812 mov byte [es:bx+001edh], 000h ; 26 c6 87 ed 01 00 … … 12720 12821 mov dx, strict word 00004h ; ba 04 00 12721 12822 mov ax, si ; 89 f0 12722 call 07 b53h ; e8 4cf212823 call 07cb1h ; e8 19 f2 12723 12824 mov ax, strict word 00004h ; b8 04 00 12724 12825 xor cx, cx ; 31 c9 … … 12737 12838 xchg dx, ax ; 92 12738 12839 test AL, strict byte 001h ; a8 01 12739 jne short 08 907h ; 75 de12840 jne short 08a98h ; 75 de 12740 12841 xor ax, ax ; 31 c0 12741 12842 xor cx, cx ; 31 c9 … … 12755 12856 mov bx, strict word 0001fh ; bb 1f 00 12756 12857 xor cx, cx ; 31 c9 12757 call 07 c0dh ; e8 c0f212858 call 07d74h ; e8 96 f2 12758 12859 db 0feh, 0c0h 12759 12860 ; inc al ; fe c0 12760 mov byte [bp-00 4h], al ; 88 46 fc12761 mov byte [bp-00 2h], 000h ; c6 46 fe0012762 jmp short 08 961h ; eb 0912763 inc byte [bp-00 2h] ; fe 46 fe12764 cmp byte [bp-00 2h], 020h ; 80 7e fe2012765 jnc short 08 992h ; 73 3112766 movzx cx, byte [bp-00 2h] ; 0f b6 4e fe12861 mov byte [bp-00eh], al ; 88 46 f2 12862 mov byte [bp-00ch], 000h ; c6 46 f4 00 12863 jmp short 08af2h ; eb 09 12864 inc byte [bp-00ch] ; fe 46 f4 12865 cmp byte [bp-00ch], 020h ; 80 7e f4 20 12866 jnc short 08b23h ; 73 31 12867 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 12767 12868 mov ax, strict word 00001h ; b8 01 00 12768 12869 xor dx, dx ; 31 d2 12769 jcxz 08 972h ; e3 0612870 jcxz 08b03h ; e3 06 12770 12871 sal ax, 1 ; d1 e0 12771 12872 rcl dx, 1 ; d1 d2 12772 loop 08 96ch ; e2 fa12873 loop 08afdh ; e2 fa 12773 12874 mov bx, ax ; 89 c3 12774 12875 mov cx, dx ; 89 d1 12775 12876 mov dx, strict word 0000ch ; ba 0c 00 12776 12877 mov ax, si ; 89 f0 12777 call 07 bd7h ; e8 59f212878 call 07d3bh ; e8 2c f2 12778 12879 test al, al ; 84 c0 12779 je short 08 958h ; 74 d612780 movzx bx, byte [bp-00 2h] ; 0f b6 5e fe12880 je short 08ae9h ; 74 d6 12881 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 12781 12882 xor ax, ax ; 31 c0 12782 12883 mov dx, di ; 89 fa 12783 call 08 487h ; e8 fafa12784 dec byte [bp-00 4h] ; fe 4e fc12785 jne short 08 958h ; 75 c612884 call 0860dh ; e8 ef fa 12885 dec byte [bp-00eh] ; fe 4e f2 12886 jne short 08ae9h ; 75 c6 12786 12887 xor ax, ax ; 31 c0 12787 lea ve ; c912888 lea sp, [bp-00ah] ; 8d 66 f6 12788 12889 pop di ; 5f 12789 12890 pop si ; 5e … … 12791 12892 pop cx ; 59 12792 12893 pop bx ; 5b 12894 pop bp ; 5d 12793 12895 retn ; c3 12794 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 07fh, 08ah, 05dh, 08ah, 063h, 08ah, 069h, 08ah, 06fh 12795 db 08ah, 075h, 08ah, 07bh, 08ah, 07fh, 08ah 12796 _ahci_init: ; 0xf89b2 LB 0xf9 12896 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 015h, 08ch, 0f3h, 08bh, 0f9h, 08bh, 0ffh, 08bh, 005h 12897 db 08ch, 00bh, 08ch, 011h, 08ch, 015h, 08ch 12898 _ahci_init: ; 0xf8b46 LB 0xfe 12899 push bp ; 55 12900 mov bp, sp ; 89 e5 12797 12901 push si ; 56 12798 12902 push di ; 57 12799 enter 00006h, 000h ; c8 06 00 0012903 sub sp, strict byte 00006h ; 83 ec 06 12800 12904 mov ax, 00601h ; b8 01 06 12801 12905 mov dx, strict word 00001h ; ba 01 00 12802 call 0 8ea4h ; e8 e3 0412906 call 09064h ; e8 0d 05 12803 12907 mov dx, ax ; 89 c2 12804 12908 cmp ax, strict word 0ffffh ; 3d ff ff 12805 je near 08 aa7h ; 0f 84 dd 0012909 je near 08c3dh ; 0f 84 dd 00 12806 12910 xor al, al ; 30 c0 12807 12911 shr ax, 008h ; c1 e8 08 12808 mov byte [bp-00 6h], al ; 88 46 fa12809 mov byte [bp-00 4h], dl ; 88 56 fc12912 mov byte [bp-00ah], al ; 88 46 f6 12913 mov byte [bp-008h], dl ; 88 56 f8 12810 12914 xor dh, dh ; 30 f6 12811 12915 xor ah, ah ; 30 e4 12812 12916 mov bx, strict word 00034h ; bb 34 00 12813 call 0 8ecch ; e8 ed 0412917 call 0908fh ; e8 1a 05 12814 12918 mov cl, al ; 88 c1 12815 12919 test cl, cl ; 84 c9 12816 je short 08 a08h ; 74 2312920 je short 08b9eh ; 74 23 12817 12921 movzx bx, cl ; 0f b6 d9 12818 movzx di, byte [bp-00 4h] ; 0f b6 7e fc12819 movzx si, byte [bp-00 6h] ; 0f b6 76 fa12922 movzx di, byte [bp-008h] ; 0f b6 7e f8 12923 movzx si, byte [bp-00ah] ; 0f b6 76 f6 12820 12924 mov dx, di ; 89 fa 12821 12925 mov ax, si ; 89 f0 12822 call 0 8ecch ; e8 d5 0412926 call 0908fh ; e8 02 05 12823 12927 cmp AL, strict byte 012h ; 3c 12 12824 je short 08 a08h ; 74 0d12928 je short 08b9eh ; 74 0d 12825 12929 mov al, cl ; 88 c8 12826 12930 db 0feh, 0c0h … … 12829 12933 mov dx, di ; 89 fa 12830 12934 mov ax, si ; 89 f0 12831 jmp short 08 9dch ; eb d412935 jmp short 08b72h ; eb d4 12832 12936 test cl, cl ; 84 c9 12833 je near 08 aa7h ; 0f 84 99 0012937 je near 08c3dh ; 0f 84 99 00 12834 12938 add cl, 002h ; 80 c1 02 12835 12939 movzx bx, cl ; 0f b6 d9 12836 movzx di, byte [bp-00 4h] ; 0f b6 7e fc12837 movzx si, byte [bp-00 6h] ; 0f b6 76 fa12940 movzx di, byte [bp-008h] ; 0f b6 7e f8 12941 movzx si, byte [bp-00ah] ; 0f b6 76 f6 12838 12942 mov dx, di ; 89 fa 12839 12943 mov ax, si ; 89 f0 12840 call 0 8ecch ; e8 a90412944 call 0908fh ; e8 d6 04 12841 12945 cmp AL, strict byte 010h ; 3c 10 12842 jne near 08 aa7h ; 0f 85 7e 0012843 mov byte [bp-00 2h], 000h ; c6 46 fe0012946 jne near 08c3dh ; 0f 85 7e 00 12947 mov byte [bp-006h], 000h ; c6 46 fa 00 12844 12948 mov al, cl ; 88 c8 12845 12949 add AL, strict byte 002h ; 04 02 … … 12847 12951 mov dx, di ; 89 fa 12848 12952 mov ax, si ; 89 f0 12849 call 0 8eedh ; e8 b2 0412953 call 090b3h ; e8 e2 04 12850 12954 mov dx, ax ; 89 c2 12851 12955 and ax, strict word 0000fh ; 25 0f 00 12852 12956 sub ax, strict word 00004h ; 2d 04 00 12853 12957 cmp ax, strict word 0000bh ; 3d 0b 00 12854 jnbe short 08 a7fh ; 77 3712958 jnbe short 08c15h ; 77 37 12855 12959 push CS ; 0e 12856 12960 pop ES ; 07 12857 12961 mov cx, strict word 00008h ; b9 08 00 12858 mov di, 08 99bh ; bf 9b 8912962 mov di, 08b2fh ; bf 2f 8b 12859 12963 repne scasb ; f2 ae 12860 12964 sal cx, 1 ; d1 e1 12861 12965 mov di, cx ; 89 cf 12862 mov ax, word [cs:di-07 65eh] ; 2e 8b 85 a2 8912966 mov ax, word [cs:di-074cah] ; 2e 8b 85 36 8b 12863 12967 jmp ax ; ff e0 12864 mov byte [bp-00 2h], 010h ; c6 46 fe1012865 jmp short 08 a7fh ; eb 1c12866 mov byte [bp-00 2h], 014h ; c6 46 fe1412867 jmp short 08 a7fh ; eb 1612868 mov byte [bp-00 2h], 018h ; c6 46 fe1812869 jmp short 08 a7fh ; eb 1012870 mov byte [bp-00 2h], 01ch ; c6 46 fe1c12871 jmp short 08 a7fh ; eb 0a12872 mov byte [bp-00 2h], 020h ; c6 46 fe2012873 jmp short 08 a7fh ; eb 0412874 mov byte [bp-00 2h], 024h ; c6 46 fe2412968 mov byte [bp-006h], 010h ; c6 46 fa 10 12969 jmp short 08c15h ; eb 1c 12970 mov byte [bp-006h], 014h ; c6 46 fa 14 12971 jmp short 08c15h ; eb 16 12972 mov byte [bp-006h], 018h ; c6 46 fa 18 12973 jmp short 08c15h ; eb 10 12974 mov byte [bp-006h], 01ch ; c6 46 fa 1c 12975 jmp short 08c15h ; eb 0a 12976 mov byte [bp-006h], 020h ; c6 46 fa 20 12977 jmp short 08c15h ; eb 04 12978 mov byte [bp-006h], 024h ; c6 46 fa 24 12875 12979 mov si, dx ; 89 d6 12876 12980 shr si, 004h ; c1 ee 04 12877 12981 sal si, 002h ; c1 e6 02 12878 mov al, byte [bp-00 2h] ; 8a 46 fe12982 mov al, byte [bp-006h] ; 8a 46 fa 12879 12983 test al, al ; 84 c0 12880 je short 08 aa7h ; 74 1912984 je short 08c3dh ; 74 19 12881 12985 movzx bx, al ; 0f b6 d8 12882 movzx dx, byte [bp-00 4h] ; 0f b6 56 fc12883 movzx ax, byte [bp-00 6h] ; 0f b6 46 fa12884 call 0 8f0ch ; e8 700412986 movzx dx, byte [bp-008h] ; 0f b6 56 f8 12987 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 12988 call 090d5h ; e8 a3 04 12885 12989 test AL, strict byte 001h ; a8 01 12886 je short 08 aa7h ; 74 0712990 je short 08c3dh ; 74 07 12887 12991 and AL, strict byte 0f0h ; 24 f0 12888 12992 add ax, si ; 01 f0 12889 call 08 892h ; e8 ebfd12890 lea ve ; c912993 call 08a21h ; e8 e4 fd 12994 lea sp, [bp-004h] ; 8d 66 fc 12891 12995 pop di ; 5f 12892 12996 pop si ; 5e 12997 pop bp ; 5d 12893 12998 retn ; c3 12894 apm_out_str_: ; 0xf8aab LB 0x36 12895 push bx ; 53 12999 apm_out_str_: ; 0xf8c44 LB 0x39 12896 13000 push bp ; 55 12897 13001 mov bp, sp ; 89 e5 13002 push bx ; 53 12898 13003 mov bx, ax ; 89 c3 12899 13004 cmp byte [bx], 000h ; 80 3f 00 12900 je short 08 ac0h ; 74 0a13005 je short 08c59h ; 74 0a 12901 13006 mov al, byte [bx] ; 8a 07 12902 13007 out DX, AL ; ee … … 12905 13010 db 00ah, 0c0h 12906 13011 ; or al, al ; 0a c0 12907 jne short 08ab8h ; 75 f8 13012 jne short 08c51h ; 75 f8 13013 lea sp, [bp-002h] ; 8d 66 fe 13014 pop bx ; 5b 12908 13015 pop bp ; 5d 12909 pop bx ; 5b12910 13016 retn ; c3 12911 add AL, strict byte 08bh ; 04 8b12912 ror word [bp+di-074eah], CL ; d3 8b 16 8b12913 xor word [bp+di-0742dh], cx ; 31 8b d3 8b12914 pop sp ; 5c12915 db 08bh, 0d3h12916 ; mov dx, bx ; 8b d312917 mov sp, word [bx+di-075h] ; 8b 61 8b12918 test AL, strict byte 08bh ; a8 8b12919 test AL, strict byte 08bh ; a8 8b12920 test AL, strict byte 08bh ; a8 8b12921 mov word [0a88bh], ax ; a3 8b a812922 mov bp, word [bx+si-06475h] ; 8b a8 8b 9b12923 db 0 8bh12924 _apm_function: ; 0xf8ae1 LB 0xf5 12925 push si ; 56 13017 mov AL, byte [06c8ch] ; a0 8c 6c 13018 lea si, [bp+si-03274h] ; 8d b2 8c cd 13019 mov [si-073h], gs ; 8c 6c 8d 13020 clc ; f8 13021 mov [si-073h], gs ; 8c 6c 8d 13022 std ; fd 13023 mov [bx+di-073h], es ; 8c 41 8d 13024 inc cx ; 41 13025 lea ax, [bx+di-073h] ; 8d 41 8d 13026 cmp AL, strict byte 08dh ; 3c 8d 13027 inc cx ; 41 13028 lea ax, [bx+di-073h] ; 8d 41 8d 13029 db 035h 13030 db 08dh 13031 _apm_function: ; 0xf8c7d LB 0xf5 12926 13032 push bp ; 55 12927 13033 mov bp, sp ; 89 e5 12928 and byte [bp+01ah], 0feh ; 80 66 1a fe 12929 mov ax, word [bp+014h] ; 8b 46 14 13034 push si ; 56 13035 and byte [bp+018h], 0feh ; 80 66 18 fe 13036 mov ax, word [bp+012h] ; 8b 46 12 12930 13037 xor ah, ah ; 30 e4 12931 13038 cmp ax, strict word 0000eh ; 3d 0e 00 12932 jnbe near 08 ba8h ; 0f 87 b30013039 jnbe near 08d41h ; 0f 87 b0 00 12933 13040 mov bx, ax ; 89 c3 12934 13041 add bx, ax ; 01 c3 12935 mov dx, word [bp+01 ah] ; 8b 56 1a13042 mov dx, word [bp+018h] ; 8b 56 18 12936 13043 or dl, 001h ; 80 ca 01 12937 jmp word [cs:bx-0753dh] ; 2e ff a7 c3 8a 12938 mov word [bp+014h], 00102h ; c7 46 14 02 01 12939 mov word [bp+00eh], 0504dh ; c7 46 0e 4d 50 12940 mov word [bp+012h], strict word 00003h ; c7 46 12 03 00 12941 pop bp ; 5d 12942 pop si ; 5e 12943 retn ; c3 12944 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 12945 mov word [bp+00eh], 090f4h ; c7 46 0e f4 90 13044 jmp word [cs:bx-073a1h] ; 2e ff a7 5f 8c 13045 mov word [bp+012h], 00102h ; c7 46 12 02 01 13046 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 13047 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 13048 jmp near 08d6ch ; e9 ba 00 12946 13049 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 13050 mov word [bp+00ch], 092c4h ; c7 46 0c c4 92 13051 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 12947 13052 mov ax, strict word 0fff0h ; b8 f0 ff 12948 mov word [bp+008h], ax ; 89 46 0812949 13053 mov word [bp+006h], ax ; 89 46 06 12950 pop bp ; 5d 12951 pop si ; 5e 12952 retn ; c3 12953 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 12954 mov word [bp+00eh], 0da40h ; c7 46 0e 40 da 13054 mov word [bp+004h], ax ; 89 46 04 13055 jmp near 08d6ch ; e9 9f 00 13056 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 13057 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da 12955 13058 mov ax, 0f000h ; b8 00 f0 12956 mov word [bp+012h], ax ; 89 46 1212957 13059 mov word [bp+010h], ax ; 89 46 10 13060 mov word [bp+00eh], ax ; 89 46 0e 12958 13061 mov ax, strict word 0fff0h ; b8 f0 ff 12959 mov word [bp+008h], ax ; 89 46 0812960 13062 mov word [bp+006h], ax ; 89 46 06 13063 mov word [bp+004h], ax ; 89 46 04 12961 13064 xor bx, bx ; 31 db 12962 13065 sal ebx, 010h ; 66 c1 e3 10 12963 13066 mov si, ax ; 89 c6 12964 13067 sal esi, 010h ; 66 c1 e6 10 12965 pop bp ; 5d 12966 pop si ; 5e 12967 retn ; c3 13068 jmp near 08d6ch ; e9 74 00 12968 13069 sti ; fb 12969 13070 hlt ; f4 12970 pop bp ; 5d 12971 pop si ; 5e 12972 retn ; c3 12973 cmp word [bp+012h], strict byte 00003h ; 83 7e 12 03 12974 je short 08b87h ; 74 20 12975 cmp word [bp+012h], strict byte 00002h ; 83 7e 12 02 12976 je short 08b7fh ; 74 12 12977 cmp word [bp+012h], strict byte 00001h ; 83 7e 12 01 12978 jne short 08b8fh ; 75 1c 13071 jmp near 08d6ch ; e9 6f 00 13072 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 13073 je short 08d22h ; 74 1f 13074 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 13075 je short 08d1ah ; 74 11 13076 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 13077 jne short 08d2ah ; 75 1b 12979 13078 mov dx, 08900h ; ba 00 89 12980 13079 mov ax, 00ca2h ; b8 a2 0c 12981 call 08aabh ; e8 2f ff 12982 pop bp ; 5d 12983 pop si ; 5e 12984 retn ; c3 13080 call 08c44h ; e8 2c ff 13081 jmp short 08d6ch ; eb 52 12985 13082 mov dx, 08900h ; ba 00 89 12986 13083 mov ax, 00caah ; b8 aa 0c 12987 jmp short 08 b79h ; eb f213084 jmp short 08d15h ; eb f3 12988 13085 mov dx, 08900h ; ba 00 89 12989 13086 mov ax, 00cb2h ; b8 b2 0c 12990 jmp short 08 b79h ; eb ea13087 jmp short 08d15h ; eb eb 12991 13088 or ah, 00ah ; 80 cc 0a 12992 mov word [bp+014h], ax ; 89 46 14 12993 mov word [bp+01ah], dx ; 89 56 1a 12994 pop bp ; 5d 12995 pop si ; 5e 12996 retn ; c3 12997 mov word [bp+014h], 00102h ; c7 46 14 02 01 12998 pop bp ; 5d 12999 pop si ; 5e 13000 retn ; c3 13089 mov word [bp+012h], ax ; 89 46 12 13090 mov word [bp+018h], dx ; 89 56 18 13091 jmp short 08d6ch ; eb 37 13092 mov word [bp+012h], 00102h ; c7 46 12 02 01 13093 jmp short 08d6ch ; eb 30 13001 13094 or ah, 080h ; 80 cc 80 13002 jmp short 08 b92h ; eb ea13003 mov bx, 00d3 2h ; bb 320d13095 jmp short 08d2dh ; eb ec 13096 mov bx, 00d38h ; bb 38 0d 13004 13097 mov cx, ds ; 8c d9 13005 13098 mov ax, strict word 00004h ; b8 04 00 13006 call 018 aeh ; e8 fb 8c13007 push word [bp+00 eh] ; ff 76 0e13008 push word [bp+01 4h] ; ff 76 1413099 call 018cch ; e8 80 8b 13100 push word [bp+00ch] ; ff 76 0c 13101 push word [bp+012h] ; ff 76 12 13009 13102 push 00cbbh ; 68 bb 0c 13010 13103 push strict byte 00004h ; 6a 04 13011 call 01 8e9h ; e8 28 8d13104 call 0190dh ; e8 b3 8b 13012 13105 add sp, strict byte 00008h ; 83 c4 08 13013 mov ax, word [bp+01 4h] ; 8b 46 1413106 mov ax, word [bp+012h] ; 8b 46 12 13014 13107 xor ah, ah ; 30 e4 13015 13108 or ah, 00ch ; 80 cc 0c 13016 mov word [bp+014h], ax ; 89 46 14 13017 or byte [bp+01ah], 001h ; 80 4e 1a 01 13109 mov word [bp+012h], ax ; 89 46 12 13110 or byte [bp+018h], 001h ; 80 4e 18 01 13111 lea sp, [bp-002h] ; 8d 66 fe 13112 pop si ; 5e 13018 13113 pop bp ; 5d 13019 pop si ; 5e13020 13114 retn ; c3 13021 pci16_select_reg_: ; 0xf8bd6 LB 0x21 13022 push bx ; 53 13115 pci16_select_reg_: ; 0xf8d72 LB 0x24 13023 13116 push bp ; 55 13024 13117 mov bp, sp ; 89 e5 13118 push bx ; 53 13025 13119 and dl, 0fch ; 80 e2 fc 13026 13120 mov bx, dx ; 89 d3 … … 13032 13126 ; mov al, bl ; 8a c3 13033 13127 out DX, eax ; 66 ef 13128 lea sp, [bp-002h] ; 8d 66 fe 13129 pop bx ; 5b 13034 13130 pop bp ; 5d 13035 pop bx ; 5b13036 13131 retn ; c3 13037 pci16_find_device_: ; 0xf8bf7 LB 0xf2 13132 pci16_find_device_: ; 0xf8d96 LB 0xf7 13133 push bp ; 55 13134 mov bp, sp ; 89 e5 13038 13135 push si ; 56 13039 13136 push di ; 57 13040 enter 0000ch, 000h ; c8 0c 00 0013137 sub sp, strict byte 0000ch ; 83 ec 0c 13041 13138 push ax ; 50 13042 13139 push dx ; 52 … … 13045 13142 test cx, cx ; 85 c9 13046 13143 xor bx, bx ; 31 db 13047 mov byte [bp-00 4h], 000h ; c6 46 fc0013144 mov byte [bp-008h], 000h ; c6 46 f8 00 13048 13145 test bl, 007h ; f6 c3 07 13049 jne short 08 c3dh ; 75 2d13146 jne short 08ddeh ; 75 2d 13050 13147 mov dx, strict word 0000eh ; ba 0e 00 13051 13148 mov ax, bx ; 89 d8 13052 call 08 bd6h ; e8 beff13149 call 08d72h ; e8 b9 ff 13053 13150 mov dx, 00cfeh ; ba fe 0c 13054 13151 in AL, DX ; ec 13055 13152 db 02ah, 0e4h 13056 13153 ; sub ah, ah ; 2a e4 13057 mov byte [bp-00 2h], al ; 88 46 fe13154 mov byte [bp-006h], al ; 88 46 fa 13058 13155 cmp AL, strict byte 0ffh ; 3c ff 13059 jne short 08 c2bh ; 75 0613156 jne short 08dcch ; 75 06 13060 13157 add bx, strict byte 00008h ; 83 c3 08 13061 jmp near 08 cbeh ; e9 93 0013062 test byte [bp-00 2h], 080h ; f6 46 fe8013063 je short 08 c38h ; 74 0713064 mov word [bp-00 6h], strict word 00001h ; c7 46 fa01 0013065 jmp short 08 c3dh ; eb 0513066 mov word [bp-00 6h], strict word 00008h ; c7 46 fa08 0013067 mov al, byte [bp-00 2h] ; 8a 46 fe13158 jmp near 08e5fh ; e9 93 00 13159 test byte [bp-006h], 080h ; f6 46 fa 80 13160 je short 08dd9h ; 74 07 13161 mov word [bp-00ah], strict word 00001h ; c7 46 f6 01 00 13162 jmp short 08ddeh ; eb 05 13163 mov word [bp-00ah], strict word 00008h ; c7 46 f6 08 00 13164 mov al, byte [bp-006h] ; 8a 46 fa 13068 13165 and AL, strict byte 007h ; 24 07 13069 13166 cmp AL, strict byte 001h ; 3c 01 13070 jne short 08 c65h ; 75 1f13167 jne short 08e06h ; 75 1f 13071 13168 mov ax, bx ; 89 d8 13072 13169 shr ax, 008h ; c1 e8 08 13073 13170 test ax, ax ; 85 c0 13074 jne short 08 c65h ; 75 1613171 jne short 08e06h ; 75 16 13075 13172 mov dx, strict word 0001ah ; ba 1a 00 13076 13173 mov ax, bx ; 89 d8 13077 call 08 bd6h ; e8 7fff13174 call 08d72h ; e8 7a ff 13078 13175 mov dx, 00cfeh ; ba fe 0c 13079 13176 in AL, DX ; ec 13080 13177 db 02ah, 0e4h 13081 13178 ; sub ah, ah ; 2a e4 13082 cmp al, byte [bp-00 4h] ; 3a 46 fc13083 jbe short 08 c65h ; 76 0313084 mov byte [bp-00 4h], al ; 88 46 fc13179 cmp al, byte [bp-008h] ; 3a 46 f8 13180 jbe short 08e06h ; 76 03 13181 mov byte [bp-008h], al ; 88 46 f8 13085 13182 test di, di ; 85 ff 13086 je short 08 c6eh ; 74 0513183 je short 08e0fh ; 74 05 13087 13184 mov dx, strict word 00008h ; ba 08 00 13088 jmp short 08 c70h ; eb 0213185 jmp short 08e11h ; eb 02 13089 13186 xor dx, dx ; 31 d2 13090 13187 mov ax, bx ; 89 d8 13091 call 08 bd6h ; e8 61ff13188 call 08d72h ; e8 5c ff 13092 13189 mov dx, 00cfch ; ba fc 0c 13093 13190 in eax, DX ; 66 ed … … 13096 13193 shr eax, 010h ; 66 c1 e8 10 13097 13194 xchg dx, ax ; 92 13098 mov word [bp-00 ah], ax ; 89 46 f613099 mov word [bp-00 8h], dx ; 89 56 f813100 mov word [bp-0 0ch], strict word 00000h ; c7 46 f400 0013195 mov word [bp-00eh], ax ; 89 46 f2 13196 mov word [bp-00ch], dx ; 89 56 f4 13197 mov word [bp-010h], strict word 00000h ; c7 46 f0 00 00 13101 13198 test di, di ; 85 ff 13102 je short 08 c9fh ; 74 0f13199 je short 08e40h ; 74 0f 13103 13200 mov cx, strict word 00008h ; b9 08 00 13104 13201 shr dx, 1 ; d1 ea 13105 13202 rcr ax, 1 ; d1 d8 13106 loop 08 c93h ; e2 fa13107 mov word [bp-00 ah], ax ; 89 46 f613108 mov word [bp-00 8h], dx ; 89 56 f813109 mov ax, word [bp-00 8h] ; 8b 46 f813110 cmp ax, word [bp-01 0h] ; 3b 46 f013111 jne short 08 cafh ; 75 0813112 mov ax, word [bp-00 ah] ; 8b 46 f613113 cmp ax, word [bp-0 0eh] ; 3b 46 f213114 je short 08 cb5h ; 74 0613115 cmp word [bp-0 0ch], strict byte 00000h ; 83 7e f40013116 je short 08 cbbh ; 74 0613203 loop 08e34h ; e2 fa 13204 mov word [bp-00eh], ax ; 89 46 f2 13205 mov word [bp-00ch], dx ; 89 56 f4 13206 mov ax, word [bp-00ch] ; 8b 46 f4 13207 cmp ax, word [bp-014h] ; 3b 46 ec 13208 jne short 08e50h ; 75 08 13209 mov ax, word [bp-00eh] ; 8b 46 f2 13210 cmp ax, word [bp-012h] ; 3b 46 ee 13211 je short 08e56h ; 74 06 13212 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 13213 je short 08e5ch ; 74 06 13117 13214 dec si ; 4e 13118 13215 cmp si, strict byte 0ffffh ; 83 fe ff 13119 je short 08 ccdh ; 74 1213120 add bx, word [bp-00 6h] ; 03 5e fa13216 je short 08e6eh ; 74 12 13217 add bx, word [bp-00ah] ; 03 5e f6 13121 13218 mov dx, bx ; 89 da 13122 13219 shr dx, 008h ; c1 ea 08 13123 movzx ax, byte [bp-00 4h] ; 0f b6 46 fc13220 movzx ax, byte [bp-008h] ; 0f b6 46 f8 13124 13221 cmp dx, ax ; 39 c2 13125 jbe near 08 c0bh ; 0f 86 3e ff13222 jbe near 08dach ; 0f 86 3e ff 13126 13223 cmp si, strict byte 0ffffh ; 83 fe ff 13127 jne short 08 cd6h ; 75 0413224 jne short 08e77h ; 75 04 13128 13225 mov ax, bx ; 89 d8 13129 jmp short 08 cd9h ; eb 0313226 jmp short 08e7ah ; eb 03 13130 13227 mov ax, strict word 0ffffh ; b8 ff ff 13131 lea ve ; c913228 lea sp, [bp-004h] ; 8d 66 fc 13132 13229 pop di ; 5f 13133 13230 pop si ; 5e 13231 pop bp ; 5d 13134 13232 retn ; c3 13135 db 0c9h, 08dh, 0e3h, 08dh, 0f6h, 08dh, 00bh, 08eh, 01eh, 08eh, 030h, 08eh 13136 _pci16_function: ; 0xf8ce9 LB 0x1bb 13233 outsw ; 6f 13234 db 08fh, 089h, 08fh, 09ch 13235 ; pop word [bx+di-06371h] ; 8f 89 8f 9c 13236 db 08fh, 0b1h, 08fh, 0c4h 13237 ; pop word [bx+di-03b71h] ; 8f b1 8f c4 13238 db 08fh, 0d7h 13239 ; pop di ; 8f d7 13240 db 08fh 13241 _pci16_function: ; 0xf8e8d LB 0x1d7 13242 push bp ; 55 13243 mov bp, sp ; 89 e5 13137 13244 push si ; 56 13138 13245 push di ; 57 13139 push bp ; 5513140 mov bp, sp ; 89 e513141 and word [bp+02 4h], 000ffh ; 81 66 24ff 0013142 and word [bp+0 30h], strict byte 0fffeh ; 83 66 30fe13143 mov bx, word [bp+02 4h] ; 8b 5e 2413246 push ax ; 50 13247 push ax ; 50 13248 and word [bp+020h], 000ffh ; 81 66 20 ff 00 13249 and word [bp+02ch], strict byte 0fffeh ; 83 66 2c fe 13250 mov bx, word [bp+020h] ; 8b 5e 20 13144 13251 xor bh, bh ; 30 ff 13145 mov ax, word [bp+02 4h] ; 8b 46 2413252 mov ax, word [bp+020h] ; 8b 46 20 13146 13253 xor ah, ah ; 30 e4 13147 13254 cmp bx, strict byte 00003h ; 83 fb 03 13148 jc short 08 d20h ; 72 1a13149 jbe short 08 d78h ; 76 7013255 jc short 08ec6h ; 72 1a 13256 jbe short 08f1eh ; 76 70 13150 13257 cmp bx, strict byte 0000eh ; 83 fb 0e 13151 je near 08 e44h ; 0f 84 350113258 je near 08febh ; 0f 84 36 01 13152 13259 cmp bx, strict byte 00008h ; 83 fb 08 13153 jc near 0 8e73h ; 0f 82 5d0113260 jc near 09030h ; 0f 82 74 01 13154 13261 cmp bx, strict byte 0000dh ; 83 fb 0d 13155 jbe near 08 d9dh ; 0f 86 80 0013156 jmp near 0 8e73h ; e9 530113262 jbe near 08f43h ; 0f 86 80 00 13263 jmp near 09030h ; e9 6a 01 13157 13264 cmp bx, strict byte 00002h ; 83 fb 02 13158 je short 08 d48h ; 74 2313265 je short 08eeeh ; 74 23 13159 13266 cmp bx, strict byte 00001h ; 83 fb 01 13160 jne near 0 8e73h ; 0f 85 470113161 mov word [bp+02 4h], strict word 00001h ; c7 46 2401 0013162 mov word [bp+01 8h], 00210h ; c7 46 1810 0213163 mov word [bp+0 20h], strict word 00000h ; c7 46 2000 0013164 mov word [bp+01 ch], 04350h ; c7 46 1c50 4313165 mov word [bp+01 eh], 02049h ; c7 46 1e49 2013166 jmp near 0 8ea0h ; e9 580113167 cmp word [bp+01 ch], strict byte 0ffffh ; 83 7e 1cff13168 jne short 08 d54h ; 75 0613267 jne near 09030h ; 0f 85 5e 01 13268 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 13269 mov word [bp+014h], 00210h ; c7 46 14 10 02 13270 mov word [bp+01ch], strict word 00000h ; c7 46 1c 00 00 13271 mov word [bp+018h], 04350h ; c7 46 18 50 43 13272 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 13273 jmp near 0905dh ; e9 6f 01 13274 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 13275 jne short 08efah ; 75 06 13169 13276 or ah, 083h ; 80 cc 83 13170 jmp near 0 8e99h ; e9 450113171 mov bx, word [bp+00 ch] ; 8b 5e 0c13172 mov dx, word [bp+0 20h] ; 8b 56 2013173 mov ax, word [bp+01 ch] ; 8b 46 1c13277 jmp near 09056h ; e9 5c 01 13278 mov bx, word [bp+008h] ; 8b 5e 08 13279 mov dx, word [bp+01ch] ; 8b 56 1c 13280 mov ax, word [bp+018h] ; 8b 46 18 13174 13281 xor cx, cx ; 31 c9 13175 call 08 bf7h ; e8 95fe13282 call 08d96h ; e8 8e fe 13176 13283 cmp ax, strict word 0ffffh ; 3d ff ff 13177 jne short 08 d72h ; 75 0b13178 mov ax, word [bp+02 4h] ; 8b 46 2413284 jne short 08f18h ; 75 0b 13285 mov ax, word [bp+020h] ; 8b 46 20 13179 13286 xor ah, ah ; 30 e4 13180 13287 or ah, 086h ; 80 cc 86 13181 jmp near 08e99h ; e9 27 01 13182 mov word [bp+018h], ax ; 89 46 18 13183 jmp near 08ea0h ; e9 28 01 13184 mov bx, word [bp+00ch] ; 8b 5e 0c 13288 jmp near 09056h ; e9 3e 01 13289 mov word [bp+014h], ax ; 89 46 14 13290 jmp near 0905dh ; e9 3f 01 13291 mov bx, word [bp+008h] ; 8b 5e 08 13292 mov ax, word [bp+01ch] ; 8b 46 1c 13293 mov dx, word [bp+01eh] ; 8b 56 1e 13294 mov cx, strict word 00001h ; b9 01 00 13295 call 08d96h ; e8 69 fe 13296 cmp ax, strict word 0ffffh ; 3d ff ff 13297 jne short 08f3dh ; 75 0b 13185 13298 mov ax, word [bp+020h] ; 8b 46 20 13186 mov dx, word [bp+022h] ; 8b 56 2213187 mov cx, strict word 00001h ; b9 01 0013188 call 08bf7h ; e8 70 fe13189 cmp ax, strict word 0ffffh ; 3d ff ff13190 jne short 08d97h ; 75 0b13191 mov ax, word [bp+024h] ; 8b 46 2413192 13299 xor ah, ah ; 30 e4 13193 13300 or ah, 086h ; 80 cc 86 13194 jmp near 0 8e99h ; e9 020113195 mov word [bp+01 8h], ax ; 89 46 1813196 jmp near 0 8ea0h ; e9 030113197 cmp word [bp+00 8h], 00100h ; 81 7e 0800 0113198 jc short 08 daah ; 72 0613301 jmp near 09056h ; e9 19 01 13302 mov word [bp+014h], ax ; 89 46 14 13303 jmp near 0905dh ; e9 1a 01 13304 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 13305 jc short 08f50h ; 72 06 13199 13306 or ah, 087h ; 80 cc 87 13200 jmp near 0 8e99h ; e9 ef 0013201 mov dx, word [bp+00 8h] ; 8b 56 0813202 mov ax, word [bp+01 8h] ; 8b 46 1813203 call 08 bd6h ; e8 23fe13204 mov bx, word [bp+02 4h] ; 8b 5e 2413307 jmp near 09056h ; e9 06 01 13308 mov dx, word [bp+004h] ; 8b 56 04 13309 mov ax, word [bp+014h] ; 8b 46 14 13310 call 08d72h ; e8 19 fe 13311 mov bx, word [bp+020h] ; 8b 5e 20 13205 13312 xor bh, bh ; 30 ff 13206 13313 sub bx, strict byte 00008h ; 83 eb 08 13207 13314 cmp bx, strict byte 00005h ; 83 fb 05 13208 jnbe near 0 8ea0h ; 0f 87 de0013315 jnbe near 0905dh ; 0f 87 f5 00 13209 13316 add bx, bx ; 01 db 13210 jmp word [cs:bx-07 323h] ; 2e ff a7 dd 8c13211 mov bx, word [bp+0 20h] ; 8b 5e 2013317 jmp word [cs:bx-0717fh] ; 2e ff a7 81 8e 13318 mov bx, word [bp+01ch] ; 8b 5e 1c 13212 13319 xor bl, bl ; 30 db 13213 mov dx, word [bp+00 8h] ; 8b 56 0813320 mov dx, word [bp+004h] ; 8b 56 04 13214 13321 and dx, strict byte 00003h ; 83 e2 03 13215 13322 add dx, 00cfch ; 81 c2 fc 0c … … 13218 13325 ; sub ah, ah ; 2a e4 13219 13326 or bx, ax ; 09 c3 13220 mov word [bp+0 20h], bx ; 89 5e 2013221 jmp near 0 8ea0h ; e9 bd0013222 mov dx, word [bp+00 8h] ; 8b 56 0813327 mov word [bp+01ch], bx ; 89 5e 1c 13328 jmp near 0905dh ; e9 d4 00 13329 mov dx, word [bp+004h] ; 8b 56 04 13223 13330 xor dh, dh ; 30 f6 13224 13331 and dl, 002h ; 80 e2 02 13225 13332 add dx, 00cfch ; 81 c2 fc 0c 13226 13333 in ax, DX ; ed 13227 mov word [bp+0 20h], ax ; 89 46 2013228 jmp near 0 8ea0h ; e9 aa0013334 mov word [bp+01ch], ax ; 89 46 1c 13335 jmp near 0905dh ; e9 c1 00 13229 13336 mov dx, 00cfch ; ba fc 0c 13230 13337 in eax, DX ; 66 ed … … 13233 13340 shr eax, 010h ; 66 c1 e8 10 13234 13341 xchg dx, ax ; 92 13235 mov word [bp+0 20h], ax ; 89 46 2013236 mov word [bp+0 22h], dx ; 89 56 2213237 jmp near 0 8ea0h ; e9 950013238 mov ax, word [bp+0 20h] ; 8b 46 2013239 mov dx, word [bp+00 8h] ; 8b 56 0813342 mov word [bp+01ch], ax ; 89 46 1c 13343 mov word [bp+01eh], dx ; 89 56 1e 13344 jmp near 0905dh ; e9 ac 00 13345 mov ax, word [bp+01ch] ; 8b 46 1c 13346 mov dx, word [bp+004h] ; 8b 56 04 13240 13347 xor dh, dh ; 30 f6 13241 13348 and dl, 003h ; 80 e2 03 13242 13349 add dx, 00cfch ; 81 c2 fc 0c 13243 13350 out DX, AL ; ee 13244 jmp near 0 8ea0h ; e9 820013245 mov ax, word [bp+0 20h] ; 8b 46 2013246 mov dx, word [bp+00 8h] ; 8b 56 0813351 jmp near 0905dh ; e9 99 00 13352 mov ax, word [bp+01ch] ; 8b 46 1c 13353 mov dx, word [bp+004h] ; 8b 56 04 13247 13354 xor dh, dh ; 30 f6 13248 13355 and dl, 002h ; 80 e2 02 13249 13356 add dx, 00cfch ; 81 c2 fc 0c 13250 13357 out DX, ax ; ef 13251 jmp short 08ea0h ; eb 7013252 mov ax, word [bp+0 20h] ; 8b 46 2013253 mov cx, word [bp+0 22h] ; 8b 4e 2213358 jmp near 0905dh ; e9 86 00 13359 mov ax, word [bp+01ch] ; 8b 46 1c 13360 mov cx, word [bp+01eh] ; 8b 4e 1e 13254 13361 mov dx, 00cfch ; ba fc 0c 13255 13362 xchg cx, ax ; 91 … … 13258 13365 ; mov ax, cx ; 8b c1 13259 13366 out DX, eax ; 66 ef 13260 jmp short 08ea0h ; eb 5c 13261 mov bx, word [bp+008h] ; 8b 5e 08 13262 mov es, [bp+028h] ; 8e 46 28 13367 jmp short 0905dh ; eb 72 13368 mov bx, word [bp+004h] ; 8b 5e 04 13369 mov es, [bp+026h] ; 8e 46 26 13370 mov word [bp-008h], bx ; 89 5e f8 13371 mov [bp-006h], es ; 8c 46 fa 13263 13372 mov cx, word [word 00000h] ; 8b 0e 00 00 13264 13373 cmp cx, word [es:bx] ; 26 3b 0f 13265 jbe short 0 8e5dh ; 76 0a13266 mov ax, word [bp+02 4h] ; 8b 46 2413374 jbe short 09011h ; 76 11 13375 mov ax, word [bp+020h] ; 8b 46 20 13267 13376 xor ah, ah ; 30 e4 13268 13377 or ah, 089h ; 80 cc 89 13269 jmp short 08e99h ; eb 3c 13378 mov word [bp+020h], ax ; 89 46 20 13379 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 13380 jmp short 09025h ; eb 14 13270 13381 les di, [es:bx+002h] ; 26 c4 7f 02 13271 13382 mov si, 0f2c0h ; be c0 f2 … … 13275 13386 rep movsb ; f3 a4 13276 13387 pop DS ; 1f 13277 mov word [bp+018h], 00a00h ; c7 46 18 00 0a 13278 jmp short 08ea0h ; eb 2d 13279 mov bx, 00d32h ; bb 32 0d 13388 mov word [bp+014h], 00a00h ; c7 46 14 00 0a 13389 mov ax, word [00000h] ; a1 00 00 13390 les bx, [bp-008h] ; c4 5e f8 13391 mov word [es:bx], ax ; 26 89 07 13392 jmp short 0905dh ; eb 2d 13393 mov bx, 00d38h ; bb 38 0d 13280 13394 mov cx, ds ; 8c d9 13281 13395 mov ax, strict word 00004h ; b8 04 00 13282 call 018 aeh ; e8 30 8a13283 mov ax, word [bp+01 8h] ; 8b 46 1813396 call 018cch ; e8 91 88 13397 mov ax, word [bp+014h] ; 8b 46 14 13284 13398 push ax ; 50 13285 mov ax, word [bp+02 4h] ; 8b 46 2413399 mov ax, word [bp+020h] ; 8b 46 20 13286 13400 push ax ; 50 13287 13401 push 00ceeh ; 68 ee 0c 13288 13402 push strict byte 00004h ; 6a 04 13289 call 01 8e9h ; e8 5b 8a13403 call 0190dh ; e8 c2 88 13290 13404 add sp, strict byte 00008h ; 83 c4 08 13291 mov ax, word [bp+02 4h] ; 8b 46 2413405 mov ax, word [bp+020h] ; 8b 46 20 13292 13406 xor ah, ah ; 30 e4 13293 13407 or ah, 081h ; 80 cc 81 13294 mov word [bp+02 4h], ax ; 89 46 2413295 or word [bp+0 30h], strict byte 00001h ; 83 4e 300113296 pop bp ; 5d13408 mov word [bp+020h], ax ; 89 46 20 13409 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 13410 lea sp, [bp-004h] ; 8d 66 fc 13297 13411 pop di ; 5f 13298 13412 pop si ; 5e 13413 pop bp ; 5d 13299 13414 retn ; c3 13300 pci_find_classcode_: ; 0xf8ea4 LB 0x28 13415 pci_find_classcode_: ; 0xf9064 LB 0x2b 13416 push bp ; 55 13417 mov bp, sp ; 89 e5 13301 13418 push bx ; 53 13302 13419 push cx ; 51 13303 13420 push si ; 56 13304 push bp ; 5513305 mov bp, sp ; 89 e513306 13421 mov cx, dx ; 89 d1 13307 13422 xor si, si ; 31 f6 … … 13313 13428 int 01ah ; cd 1a 13314 13429 cmp ah, 000h ; 80 fc 00 13315 je near 0 8ec5h ; 0f 84 03 0013430 je near 09085h ; 0f 84 03 00 13316 13431 mov bx, strict word 0ffffh ; bb ff ff 13317 13432 mov ax, bx ; 89 d8 13318 pop bp ; 5d13433 lea sp, [bp-006h] ; 8d 66 fa 13319 13434 pop si ; 5e 13320 13435 pop cx ; 59 13321 13436 pop bx ; 5b 13437 pop bp ; 5d 13322 13438 retn ; c3 13323 pci_read_config_byte_: ; 0xf8ecc LB 0x21 13439 pci_read_config_byte_: ; 0xf908f LB 0x24 13440 push bp ; 55 13441 mov bp, sp ; 89 e5 13324 13442 push cx ; 51 13325 13443 push di ; 57 13326 push bp ; 5513327 mov bp, sp ; 89 e513328 13444 movzx di, bl ; 0f b6 fb 13329 13445 movzx bx, al ; 0f b6 d8 … … 13335 13451 movzx ax, cl ; 0f b6 c1 13336 13452 xor dx, dx ; 31 d2 13337 pop bp ; 5d13453 lea sp, [bp-004h] ; 8d 66 fc 13338 13454 pop di ; 5f 13339 13455 pop cx ; 59 13456 pop bp ; 5d 13340 13457 retn ; c3 13341 pci_read_config_word_: ; 0xf8eed LB 0x1f 13458 pci_read_config_word_: ; 0xf90b3 LB 0x22 13459 push bp ; 55 13460 mov bp, sp ; 89 e5 13342 13461 push cx ; 51 13343 13462 push di ; 57 13344 push bp ; 5513345 mov bp, sp ; 89 e513346 13463 movzx di, bl ; 0f b6 fb 13347 13464 xor ah, ah ; 30 e4 … … 13353 13470 mov ax, cx ; 89 c8 13354 13471 xor dx, dx ; 31 d2 13355 pop bp ; 5d13472 lea sp, [bp-004h] ; 8d 66 fc 13356 13473 pop di ; 5f 13357 13474 pop cx ; 59 13475 pop bp ; 5d 13358 13476 retn ; c3 13359 pci_read_config_dword_: ; 0xf8f0c LB 0x24 13477 pci_read_config_dword_: ; 0xf90d5 LB 0x27 13478 push bp ; 55 13479 mov bp, sp ; 89 e5 13360 13480 push cx ; 51 13361 13481 push di ; 57 13362 push bp ; 5513363 mov bp, sp ; 89 e513364 13482 movzx di, bl ; 0f b6 fb 13365 13483 movzx bx, al ; 0f b6 d8 … … 13373 13491 shr ecx, 010h ; 66 c1 e9 10 13374 13492 mov dx, cx ; 89 ca 13375 pop bp ; 5d13493 lea sp, [bp-004h] ; 8d 66 fc 13376 13494 pop di ; 5f 13377 13495 pop cx ; 59 13496 pop bp ; 5d 13378 13497 retn ; c3 13379 vds_is_present_: ; 0xf 8f30LB 0x1d13498 vds_is_present_: ; 0xf90fc LB 0x1d 13380 13499 push bx ; 53 13381 13500 push bp ; 55 … … 13385 13504 mov es, ax ; 8e c0 13386 13505 test byte [es:bx], 020h ; 26 f6 07 20 13387 je short 0 8f48h ; 74 0613506 je short 09114h ; 74 06 13388 13507 mov ax, strict word 00001h ; b8 01 00 13389 13508 pop bp ; 5d … … 13394 13513 pop bx ; 5b 13395 13514 retn ; c3 13396 vds_real_to_lin_: ; 0xf 8f4dLB 0x1e13515 vds_real_to_lin_: ; 0xf9119 LB 0x1e 13397 13516 push bx ; 53 13398 13517 push cx ; 51 … … 13405 13524 sal ax, 1 ; d1 e0 13406 13525 rcl dx, 1 ; d1 d2 13407 loop 0 8f5bh ; e2 fa13526 loop 09127h ; e2 fa 13408 13527 xor cx, cx ; 31 c9 13409 13528 add ax, bx ; 01 d8 … … 13413 13532 pop bx ; 5b 13414 13533 retn ; c3 13415 vds_build_sg_list_: ; 0xf8f6b LB 0x76 13534 vds_build_sg_list_: ; 0xf9137 LB 0x79 13535 push bp ; 55 13536 mov bp, sp ; 89 e5 13416 13537 push si ; 56 13417 13538 push di ; 57 13418 push bp ; 5513419 mov bp, sp ; 89 e513420 13539 mov di, ax ; 89 c7 13421 13540 mov si, dx ; 89 d6 13422 13541 mov ax, bx ; 89 d8 13423 13542 mov dx, cx ; 89 ca 13424 mov bx, word [bp+00 8h] ; 8b 5e 0813543 mov bx, word [bp+004h] ; 8b 5e 04 13425 13544 mov es, si ; 8e c6 13426 13545 mov word [es:di], bx ; 26 89 1d 13427 mov bx, word [bp+00 ah] ; 8b 5e 0a13546 mov bx, word [bp+006h] ; 8b 5e 06 13428 13547 mov word [es:di+002h], bx ; 26 89 5d 02 13429 call 0 8f4dh ; e8 c3 ff13548 call 09119h ; e8 c3 ff 13430 13549 mov es, si ; 8e c6 13431 13550 mov word [es:di+004h], ax ; 26 89 45 04 13432 13551 mov word [es:di+006h], dx ; 26 89 55 06 13433 13552 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 13434 call 0 8f30h ; e8 93 ff13553 call 090fch ; e8 93 ff 13435 13554 test ax, ax ; 85 c0 13436 je short 0 8fb4h ; 74 1313555 je short 09180h ; 74 13 13437 13556 mov es, si ; 8e c6 13438 13557 mov ax, 08105h ; b8 05 81 13439 13558 mov dx, strict word 00000h ; ba 00 00 13440 13559 int 04bh ; cd 4b 13441 jc near 0 8fb1h ; 0f 82 02 0013560 jc near 0917dh ; 0f 82 02 00 13442 13561 db 032h, 0c0h 13443 13562 ; xor al, al ; 32 c0 13444 13563 cbw ; 98 13445 jmp short 0 8fdbh ; eb 2713564 jmp short 091a7h ; eb 27 13446 13565 mov es, si ; 8e c6 13447 13566 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 13450 13569 mov word [es:di+010h], dx ; 26 89 55 10 13451 13570 mov word [es:di+012h], ax ; 26 89 45 12 13452 mov ax, word [bp+00 8h] ; 8b 46 0813571 mov ax, word [bp+004h] ; 8b 46 04 13453 13572 mov word [es:di+014h], ax ; 26 89 45 14 13454 13573 mov ax, bx ; 89 d8 13455 13574 mov word [es:di+016h], bx ; 26 89 5d 16 13456 13575 xor ax, bx ; 31 d8 13457 pop bp ; 5d13576 lea sp, [bp-004h] ; 8d 66 fc 13458 13577 pop di ; 5f 13459 13578 pop si ; 5e 13579 pop bp ; 5d 13460 13580 retn 00004h ; c2 04 00 13461 vds_free_sg_list_: ; 0xf8fe1 LB 0x2f 13581 vds_free_sg_list_: ; 0xf91b0 LB 0x30 13582 push bp ; 55 13583 mov bp, sp ; 89 e5 13462 13584 push bx ; 53 13463 13585 push di ; 57 13464 push bp ; 5513465 mov bp, sp ; 89 e513466 13586 mov bx, ax ; 89 c3 13467 call 0 8f30h ; e8 45ff13587 call 090fch ; e8 42 ff 13468 13588 test ax, ax ; 85 c0 13469 je short 09 002h ; 74 1313589 je short 091d1h ; 74 13 13470 13590 mov di, bx ; 89 df 13471 13591 mov es, dx ; 8e c2 … … 13473 13593 mov dx, strict word 00000h ; ba 00 00 13474 13594 int 04bh ; cd 4b 13475 jc near 09 001h ; 0f 82 02 0013595 jc near 091d0h ; 0f 82 02 00 13476 13596 db 032h, 0c0h 13477 13597 ; xor al, al ; 32 c0 … … 13479 13599 mov es, dx ; 8e c2 13480 13600 mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00 13481 pop bp ; 5d13601 lea sp, [bp-004h] ; 8d 66 fc 13482 13602 pop di ; 5f 13483 13603 pop bx ; 5b 13604 pop bp ; 5d 13484 13605 retn ; c3 13485 times 0x2 db 0 13486 __U4D: ; 0xf9010 LB 0x39 13606 __U4D: ; 0xf91e0 LB 0x39 13487 13607 pushfw ; 9c 13488 13608 push eax ; 66 50 … … 13514 13634 popfw ; 9d 13515 13635 retn ; c3 13516 __U4M: ; 0xf9 049 LB 0x3113636 __U4M: ; 0xf9219 LB 0x31 13517 13637 pushfw ; 9c 13518 13638 push eax ; 66 50 … … 13539 13659 popfw ; 9d 13540 13660 retn ; c3 13541 _fmemset_: ; 0xf9 07a LB 0xd13661 _fmemset_: ; 0xf924a LB 0xd 13542 13662 push di ; 57 13543 13663 mov es, dx ; 8e c2 … … 13549 13669 pop di ; 5f 13550 13670 retn ; c3 13551 _fmemcpy_: ; 0xf9 087 LB 0x3313671 _fmemcpy_: ; 0xf9257 LB 0x33 13552 13672 push bp ; 55 13553 13673 db 08bh, 0ech … … 13569 13689 leave ; c9 13570 13690 retn ; c3 13571 add al, dl ; 00 d0 13572 nop ; 90 13573 rcl byte [bx+si-06f2ah], CL ; d2 90 d6 90 13574 db 0d6h 13575 nop ; 90 13576 db 0d6h 13577 nop ; 90 13578 fcom dword [bx+si-06f28h] ; d8 90 d8 90 13579 ficom dword [bx+si-06f22h] ; da 90 de 90 13580 ficom word [bx+si-06f20h] ; de 90 e0 90 13581 in ax, 090h ; e5 90 13582 out 090h, ax ; e7 90 13583 apm_worker: ; 0xf90ba LB 0x3a 13691 add byte [bx+si-05d6eh], ah ; 00 a0 92 a2 13692 xchg dx, ax ; 92 13693 cmpsb ; a6 13694 xchg dx, ax ; 92 13695 cmpsb ; a6 13696 xchg dx, ax ; 92 13697 cmpsb ; a6 13698 xchg dx, ax ; 92 13699 test AL, strict byte 092h ; a8 92 13700 test AL, strict byte 092h ; a8 92 13701 stosb ; aa 13702 xchg dx, ax ; 92 13703 scasb ; ae 13704 xchg dx, ax ; 92 13705 scasb ; ae 13706 xchg dx, ax ; 92 13707 mov AL, strict byte 092h ; b0 92 13708 mov CH, strict byte 092h ; b5 92 13709 mov BH, strict byte 092h ; b7 92 13710 apm_worker: ; 0xf928a LB 0x3a 13584 13711 sti ; fb 13585 13712 push ax ; 50 … … 13593 13720 pop ax ; 58 13594 13721 mov AH, strict byte 053h ; b4 53 13595 jnc short 09 0f0h ; 73 2513596 jmp word [cs:bp-06 f60h] ; 2e ff a6 a0 9013597 jmp short 09 0eeh ; eb 1c13722 jnc short 092c0h ; 73 25 13723 jmp word [cs:bp-06d90h] ; 2e ff a6 70 92 13724 jmp short 092beh ; eb 1c 13598 13725 sti ; fb 13599 13726 hlt ; f4 13600 jmp short 09 0eeh ; eb 1813601 jmp short 09 0eeh ; eb 1613602 jmp short 09 0f0h ; eb 1613727 jmp short 092beh ; eb 18 13728 jmp short 092beh ; eb 16 13729 jmp short 092c0h ; eb 16 13603 13730 mov AH, strict byte 080h ; b4 80 13604 jmp short 09 0f2h ; eb 1413605 jmp short 09 0f0h ; eb 1013731 jmp short 092c2h ; eb 14 13732 jmp short 092c0h ; eb 10 13606 13733 mov ax, 00102h ; b8 02 01 13607 jmp short 09 0eeh ; eb 0913608 jmp short 09 0eeh ; eb 0713734 jmp short 092beh ; eb 09 13735 jmp short 092beh ; eb 07 13609 13736 mov BL, strict byte 000h ; b3 00 13610 13737 mov cx, strict word 00000h ; b9 00 00 13611 jmp short 09 0eeh ; eb 0013738 jmp short 092beh ; eb 00 13612 13739 clc ; f8 13613 13740 retn ; c3 … … 13615 13742 stc ; f9 13616 13743 retn ; c3 13617 apm_pm16_entry: ; 0xf9 0f4 LB 0x1113744 apm_pm16_entry: ; 0xf92c4 LB 0x11 13618 13745 mov AH, strict byte 002h ; b4 02 13619 13746 push DS ; 1e … … 13623 13750 add bp, strict byte 00008h ; 83 c5 08 13624 13751 mov ds, bp ; 8e dd 13625 call 09 0bah ; e8 b8 ff13752 call 0928ah ; e8 b8 ff 13626 13753 pop bp ; 5d 13627 13754 pop DS ; 1f 13628 13755 retf ; cb 13629 13756 13630 ; Padding 0x4 8fb bytes at 0xf910513631 times 18 683db 013757 ; Padding 0x472b bytes at 0xf92d5 13758 times 18219 db 0 13632 13759 13633 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3 aaclass=CODE group=AUTO13760 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO 13634 13761 bios32_service: ; 0xfda00 LB 0x26 13635 13762 pushfw ; 9c … … 13658 13785 push ES ; 06 13659 13786 pushaw ; 60 13660 call 0db7 3h ; e8 460113787 call 0db78h ; e8 4b 01 13661 13788 add byte [bx+si], al ; 00 00 13662 13789 popaw ; 61 … … 13676 13803 add bp, strict byte 00008h ; 83 c5 08 13677 13804 push ebp ; 66 55 13678 mov bp, 09 0f6h ; bd f6 9013805 mov bp, 092c6h ; bd c6 92 13679 13806 add byte [bx+si], al ; 00 00 13680 13807 push ebp ; 66 55 … … 13684 13811 pop bp ; 5d 13685 13812 retf ; cb 13686 pci32_select_reg_: ; 0xfda61 LB 0x1f 13687 push bx ; 53 13813 pci32_select_reg_: ; 0xfda61 LB 0x22 13688 13814 push bp ; 55 13689 13815 mov bp, sp ; 89 e5 13816 push bx ; 53 13690 13817 and dl, 0fch ; 80 e2 fc 13691 13818 mov bx, dx ; 89 d3 … … 13698 13825 add byte [bx+si-03c76h], al ; 00 80 8a c3 13699 13826 out DX, ax ; ef 13827 lea sp, [di-004h] ; 8d 65 fc 13828 pop bx ; 5b 13700 13829 pop bp ; 5d 13701 pop bx ; 5b13702 13830 retn ; c3 13703 pci32_find_device_: ; 0xfda80 LB 0xf5 13831 pci32_find_device_: ; 0xfda83 LB 0xf7 13832 push bp ; 55 13833 mov bp, sp ; 89 e5 13704 13834 push cx ; 51 13705 13835 push si ; 56 13706 13836 push di ; 57 13707 enter 00014h, 000h ; c8 14 00 0013837 sub sp, strict byte 00014h ; 83 ec 14 13708 13838 push ax ; 50 13709 13839 mov cx, dx ; 89 d1 … … 13711 13841 test bx, bx ; 85 db 13712 13842 xor bx, bx ; 31 db 13713 mov byte [di-0 04h], 000h ; c6 45 fc0013843 mov byte [di-010h], 000h ; c6 45 f0 00 13714 13844 test bl, 007h ; f6 c3 07 13715 jne short 0da cfh ; 75 3613845 jne short 0dad4h ; 75 36 13716 13846 db 00fh, 0b7h, 0c3h 13717 13847 ; movzx ax, bx ; 0f b7 c3 13718 13848 mov dx, strict word 0000eh ; ba 0e 00 13719 13849 add byte [bx+si], al ; 00 00 13720 call 0da5fh ; e8 b bff13850 call 0da5fh ; e8 b6 ff 13721 13851 db 0ffh 13722 13852 db 0ffh … … 13726 13856 ; sub ax, ax ; 2b c0 13727 13857 in AL, DX ; ec 13728 mov byte [di-0 08h], al ; 88 45 f813858 mov byte [di-014h], al ; 88 45 ec 13729 13859 cmp AL, strict byte 0ffh ; 3c ff 13730 jne short 0da bdh ; 75 0813860 jne short 0dac2h ; 75 08 13731 13861 add bx, strict byte 00008h ; 83 c3 08 13732 jmp near 0db4 5h ; e9 8a 0013862 jmp near 0db4ah ; e9 8a 00 13733 13863 add byte [bx+si], al ; 00 00 13734 test byte [di-0 08h], 080h ; f6 45 f88013735 je short 0dac ah ; 74 0713864 test byte [di-014h], 080h ; f6 45 ec 80 13865 je short 0dacfh ; 74 07 13736 13866 mov di, strict word 00001h ; bf 01 00 13737 13867 add byte [bx+si], al ; 00 00 13738 jmp short 0da cfh ; eb 0513868 jmp short 0dad4h ; eb 05 13739 13869 mov di, strict word 00008h ; bf 08 00 13740 13870 add byte [bx+si], al ; 00 00 13741 mov al, byte [di-0 08h] ; 8a 45 f813871 mov al, byte [di-014h] ; 8a 45 ec 13742 13872 and AL, strict byte 007h ; 24 07 13743 13873 cmp AL, strict byte 001h ; 3c 01 13744 jne short 0d afeh ; 75 2613874 jne short 0db03h ; 75 26 13745 13875 db 00fh, 0b7h, 0c3h 13746 13876 ; movzx ax, bx ; 0f b7 c3 … … 13748 13878 sar dx, 008h ; c1 fa 08 13749 13879 test dx, dx ; 85 d2 13750 jne short 0d afeh ; 75 1a13880 jne short 0db03h ; 75 1a 13751 13881 mov dx, strict word 0001ah ; ba 1a 00 13752 13882 add byte [bx+si], al ; 00 00 13753 call 0da5fh ; e8 73ff13883 call 0da5fh ; e8 6e ff 13754 13884 db 0ffh 13755 13885 db 0ffh … … 13759 13889 ; sub ax, ax ; 2b c0 13760 13890 in AL, DX ; ec 13761 cmp al, byte [di-0 04h] ; 3a 45 fc13762 jbe short 0d afeh ; 76 0313763 mov byte [di-0 04h], al ; 88 45 fc13891 cmp al, byte [di-010h] ; 3a 45 f0 13892 jbe short 0db03h ; 76 03 13893 mov byte [di-010h], al ; 88 45 f0 13764 13894 test si, si ; 85 f6 13765 je short 0db0 9h ; 74 0713895 je short 0db0eh ; 74 07 13766 13896 mov ax, strict word 00008h ; b8 08 00 13767 13897 add byte [bx+si], al ; 00 00 13768 jmp short 0db 0bh ; eb 0213898 jmp short 0db10h ; eb 02 13769 13899 xor ax, ax ; 31 c0 13770 13900 db 00fh, 0b7h, 0d0h … … 13772 13902 db 00fh, 0b7h, 0c3h 13773 13903 ; movzx ax, bx ; 0f b7 c3 13774 call 0da5fh ; e8 4 bff13904 call 0da5fh ; e8 46 ff 13775 13905 db 0ffh 13776 13906 db 0ffh … … 13778 13908 add byte [bx+si], al ; 00 00 13779 13909 in ax, DX ; ed 13780 mov word [di-0 0ch], ax ; 89 45 f413781 mov word [di-0 14h], strict word 00000h ; c7 45 ec00 0013910 mov word [di-018h], ax ; 89 45 e8 13911 mov word [di-020h], strict word 00000h ; c7 45 e0 00 00 13782 13912 add byte [bx+si], al ; 00 00 13783 13913 test si, si ; 85 f6 13784 je short 0db3 0h ; 74 0613914 je short 0db35h ; 74 06 13785 13915 shr ax, 008h ; c1 e8 08 13786 mov word [di-0 0ch], ax ; 89 45 f413787 mov ax, word [di-0 0ch] ; 8b 45 f413788 cmp ax, word [di-0 18h] ; 3b 45 e813789 je short 0db 3eh ; 74 0613790 cmp word [di-0 14h], strict byte 00000h ; 83 7d ec0013791 je short 0db4 5h ; 74 0713916 mov word [di-018h], ax ; 89 45 e8 13917 mov ax, word [di-018h] ; 8b 45 e8 13918 cmp ax, word [di-024h] ; 3b 45 dc 13919 je short 0db43h ; 74 06 13920 cmp word [di-020h], strict byte 00000h ; 83 7d e0 00 13921 je short 0db4ah ; 74 07 13792 13922 dec cx ; 49 13793 13923 cmp ecx, strict byte 0ffffffffh ; 66 83 f9 ff 13794 je short 0db 5dh ; 74 1813924 je short 0db62h ; 74 18 13795 13925 add bx, di ; 01 fb 13796 13926 db 00fh, 0b7h, 0c3h 13797 13927 ; movzx ax, bx ; 0f b7 c3 13798 13928 sar ax, 008h ; c1 f8 08 13799 mov word [di-01 0h], ax ; 89 45 f013800 movzx ax, byte [di-0 04h] ; 0f b6 45 fc13801 cmp ax, word [di-01 0h] ; 3b 45 f013802 jnl near 0da9 2h ; 0f 8d 37 ff13929 mov word [di-01ch], ax ; 89 45 e4 13930 movzx ax, byte [di-010h] ; 0f b6 45 f0 13931 cmp ax, word [di-01ch] ; 3b 45 e4 13932 jnl near 0da97h ; 0f 8d 37 ff 13803 13933 db 0ffh 13804 13934 jmp word [bp-07dh] ; ff 66 83 13805 13935 stc ; f9 13806 push word [di+00 8h] ; ff 75 0813936 push word [di+005h] ; ff 75 05 13807 13937 db 00fh, 0b7h, 0c3h 13808 13938 ; movzx ax, bx ; 0f b7 c3 13809 leave ; c9 13939 jmp short 0db72h ; eb 05 13940 mov ax, strict word 0ffffh ; b8 ff ff 13941 add byte [bx+si], al ; 00 00 13942 lea sp, [di-00ch] ; 8d 65 f4 13810 13943 pop di ; 5f 13811 13944 pop si ; 5e 13812 13945 pop cx ; 59 13946 pop bp ; 5d 13813 13947 retn ; c3 13814 mov ax, strict word 0ffffh ; b8 ff ff 13815 add byte [bx+si], al ; 00 00 13816 leave ; c9 13817 pop di ; 5f 13818 pop si ; 5e 13819 pop cx ; 59 13820 retn ; c3 13821 _pci32_function: ; 0xfdb75 LB 0x235 13948 _pci32_function: ; 0xfdb7a LB 0x251 13949 push bp ; 55 13950 mov bp, sp ; 89 e5 13822 13951 push bx ; 53 13823 13952 push si ; 56 13824 13953 push di ; 57 13825 push bp ; 5513826 mov bp, sp ; 89 e513827 and dword [di+0 30h], strict dword 0658100ffh ; 66 81 65 30ff 00 81 6513828 cmp dh, bh ; 38fe13954 push ax ; 50 13955 push ax ; 50 13956 and dword [di+024h], strict dword 0658100ffh ; 66 81 65 24 ff 00 81 65 13957 sub AL, strict byte 0feh ; 2c fe 13829 13958 inc word [bx+si] ; ff 00 13830 add byte [bp+di+0 3045h], cl ; 00 8b 45 3013959 add byte [bp+di+02445h], cl ; 00 8b 45 24 13831 13960 xor ah, ah ; 30 e4 13832 13961 cmp eax, strict dword 029720003h ; 66 3d 03 00 72 29 13833 jbe near 0dc3 0h ; 0f 86 99 0013962 jbe near 0dc37h ; 0f 86 99 00 13834 13963 add byte [bx+si], al ; 00 00 13835 13964 cmp eax, strict dword 0840f000eh ; 66 3d 0e 00 0f 84 13836 lodsw ; ad 13837 add word [bx+si], ax ; 01 00 13965 test ax, strict word 00001h ; a9 01 00 13838 13966 add byte [bp+03dh], ah ; 00 66 3d 13839 13967 or byte [bx+si], al ; 08 00 13840 jc near 0dd 93h ; 0f 82 e80113968 jc near 0ddb1h ; 0f 82 ff 01 13841 13969 add byte [bx+si], al ; 00 00 13842 13970 cmp eax, strict dword 0860f000dh ; 66 3d 0d 00 0f 86 13843 13971 test AL, strict byte 000h ; a8 00 13844 13972 add byte [bx+si], al ; 00 00 13845 jmp near 0dd 93h ; e9 d90113973 jmp near 0ddb1h ; e9 f0 01 13846 13974 add byte [bx+si], al ; 00 00 13847 13975 cmp eax, strict dword 028740002h ; 66 3d 02 00 74 28 13848 13976 cmp eax, strict dword 0850f0001h ; 66 3d 01 00 0f 85 13849 l eave ; c913850 add word [bx+si], ax ; 010013851 add byte [bp-039h], ah ;00 66 c713977 loopne 0dbd2h ; e0 01 13978 add byte [bx+si], al ; 00 00 13979 mov dword [di+024h], strict dword 0c7660001h ; 66 c7 45 24 01 00 66 c7 13852 13980 inc bp ; 45 13853 xor byte [bx+di], al ; 30 01 13854 add byte [bp-039h], ah ; 00 66 c7 13855 inc bp ; 45 13856 and AL, strict byte 010h ; 24 10 13981 sbb byte [bx+si], dl ; 18 10 13857 13982 add dh, byte [bx+di] ; 02 31 13858 13983 sal byte [bp-077h], 045h ; c0 66 89 45 13859 sub AL, strict byte 0c7h ; 2cc713984 and bh, al ; 20 c7 13860 13985 inc bp ; 45 13861 sub byte [bx+si+043h], dl ; 28 50 43 13986 sbb AL, strict byte 050h ; 1c 50 13987 inc bx ; 43 13862 13988 dec cx ; 49 13863 and byte [di+05fh], bl ; 20 5d 5f 13864 pop si ; 5e 13865 pop bx ; 5b 13866 retn ; c3 13867 cmp dword [di+028h], strict byte 0ffffffffh ; 66 83 7d 28 ff 13868 jne short 0dbfeh ; 75 0d 13869 mov ax, word [di+030h] ; 8b 45 30 13989 and cl, ch ; 20 e9 13990 rol byte [bx+di], CL ; d2 01 13991 add byte [bx+si], al ; 00 00 13992 cmp dword [di+01ch], strict byte 0ffffffffh ; 66 83 7d 1c ff 13993 jne short 0dc05h ; 75 0d 13994 mov ax, word [di+024h] ; 8b 45 24 13870 13995 xor ah, ah ; 30 e4 13871 13996 or ah, 083h ; 80 cc 83 13872 jmp near 0dd 9bh ; e9 9f0113997 jmp near 0ddb9h ; e9 b6 01 13873 13998 add byte [bx+si], al ; 00 00 13874 13999 xor bx, bx ; 31 db 13875 db 00fh, 0b7h, 055h, 0 18h13876 ; movzx dx, word [di+0 18h] ; 0f b7 55 1813877 db 00fh, 0b7h, 04 dh, 02ch13878 ; movzx cx, word [di+02ch] ; 0f b7 4d 2c13879 sal cx, 010h ; c1 e11013880 db 00fh, 0b7h, 04 5h, 028h13881 ; movzx ax, word [di+028h] ; 0f b7 45 2814000 db 00fh, 0b7h, 055h, 00ch 14001 ; movzx dx, word [di+00ch] ; 0f b7 55 0c 14002 db 00fh, 0b7h, 045h, 020h 14003 ; movzx ax, word [di+020h] ; 0f b7 45 20 14004 sal ax, 010h ; c1 e0 10 14005 db 00fh, 0b7h, 04dh, 01ch 14006 ; movzx cx, word [di+01ch] ; 0f b7 4d 1c 13882 14007 or ax, cx ; 09 c8 13883 call 0da 7eh ; e8 6afe14008 call 0da81h ; e8 66 fe 13884 14009 db 0ffh 13885 14010 jmp word [bp+03dh] ; ff 66 3d 13886 14011 db 0ffh 13887 14012 push word [di+00dh] ; ff 75 0d 13888 mov ax, word [di+0 30h] ; 8b 45 3014013 mov ax, word [di+024h] ; 8b 45 24 13889 14014 xor ah, ah ; 30 e4 13890 14015 or ah, 086h ; 80 cc 86 13891 jmp near 0dd 9bh ; e9 740114016 jmp near 0ddb9h ; e9 8b 01 13892 14017 add byte [bx+si], al ; 00 00 13893 mov dword [di+024h], eax ; 66 89 45 24 13894 pop bp ; 5d 13895 pop di ; 5f 13896 pop si ; 5e 13897 pop bx ; 5b 13898 retn ; c3 13899 db 00fh, 0b7h, 055h, 018h 13900 ; movzx dx, word [di+018h] ; 0f b7 55 18 13901 mov ax, word [di+02ch] ; 8b 45 2c 14018 mov dword [di+018h], eax ; 66 89 45 18 14019 jmp near 0ddc1h ; e9 8a 01 14020 add byte [bx+si], al ; 00 00 14021 db 00fh, 0b7h, 055h, 00ch 14022 ; movzx dx, word [di+00ch] ; 0f b7 55 0c 14023 mov ax, word [di+020h] ; 8b 45 20 13902 14024 mov bx, strict word 00001h ; bb 01 00 13903 14025 add byte [bx+si], al ; 00 00 13904 call 0da 7eh ; e8 3dfe14026 call 0da81h ; e8 39 fe 13905 14027 db 0ffh 13906 14028 jmp word [bp+03dh] ; ff 66 3d 13907 14029 db 0ffh 13908 14030 push word [di+00dh] ; ff 75 0d 13909 mov ax, word [di+0 30h] ; 8b 45 3014031 mov ax, word [di+024h] ; 8b 45 24 13910 14032 xor ah, ah ; 30 e4 13911 14033 or ah, 086h ; 80 cc 86 13912 jmp near 0dd 9bh ; e9 470114034 jmp near 0ddb9h ; e9 5e 01 13913 14035 add byte [bx+si], al ; 00 00 13914 mov dword [di+024h], eax ; 66 89 45 24 13915 pop bp ; 5d 13916 pop di ; 5f 13917 pop si ; 5e 13918 pop bx ; 5b 13919 retn ; c3 13920 cmp dword [di+014h], strict dword 00d720100h ; 66 81 7d 14 00 01 72 0d 13921 mov ax, word [di+030h] ; 8b 45 30 14036 mov dword [di+018h], eax ; 66 89 45 18 14037 jmp near 0ddc1h ; e9 5d 01 14038 add byte [bx+si], al ; 00 00 14039 cmp dword [di+008h], strict dword 00d720100h ; 66 81 7d 08 00 01 72 0d 14040 mov ax, word [di+024h] ; 8b 45 24 13922 14041 xor ah, ah ; 30 e4 13923 14042 or ah, 087h ; 80 cc 87 13924 jmp near 0dd 9bh ; e9 290114043 jmp near 0ddb9h ; e9 40 01 13925 14044 add byte [bx+si], al ; 00 00 13926 db 00fh, 0b7h, 055h, 0 14h13927 ; movzx dx, word [di+0 14h] ; 0f b7 55 1413928 db 00fh, 0b7h, 045h, 0 24h13929 ; movzx ax, word [di+0 24h] ; 0f b7 45 2413930 call 0da5fh ; e8 e0fd14045 db 00fh, 0b7h, 055h, 008h 14046 ; movzx dx, word [di+008h] ; 0f b7 55 08 14047 db 00fh, 0b7h, 045h, 018h 14048 ; movzx ax, word [di+018h] ; 0f b7 45 18 14049 call 0da5fh ; e8 d9 fd 13931 14050 db 0ffh 13932 dec word [bp+di+0 3045h] ; ff 8b 45 3014051 dec word [bp+di+02445h] ; ff 8b 45 24 13933 14052 xor ah, ah ; 30 e4 13934 14053 cmp eax, strict dword 02172000ah ; 66 3d 0a 00 72 21 13935 jbe short 0d cfeh ; 76 7014054 jbe short 0dd04h ; 76 6f 13936 14055 cmp eax, strict dword 0840f000dh ; 66 3d 0d 00 0f 84 13937 stosb ; aa 13938 add byte [bx+si], al ; 00 00 14056 test ax, strict word 00000h ; a9 00 00 13939 14057 add byte [bp+03dh], ah ; 00 66 3d 13940 14058 or AL, strict byte 000h ; 0c 00 13941 je near 0dd2 4h ; 0f 84 840014059 je near 0dd2ah ; 0f 84 83 00 13942 14060 add byte [bx+si], al ; 00 00 13943 cmp eax, strict dword 06474000bh ; 66 3d 0b 00 74 64 13944 pop bp ; 5d 13945 pop di ; 5f 13946 pop si ; 5e 13947 pop bx ; 5b 13948 retn ; c3 13949 cmp eax, strict dword 02e740009h ; 66 3d 09 00 74 2e 13950 cmp eax, strict dword 005740008h ; 66 3d 08 00 74 05 13951 pop bp ; 5d 13952 pop di ; 5f 13953 pop si ; 5e 13954 pop bx ; 5b 13955 retn ; c3 13956 mov bx, word [di+02ch] ; 8b 5d 2c 14061 cmp eax, strict dword 06374000bh ; 66 3d 0b 00 74 63 14062 jmp near 0ddc1h ; e9 0f 01 14063 add byte [bx+si], al ; 00 00 14064 cmp eax, strict dword 02d740009h ; 66 3d 09 00 74 2d 14065 cmp eax, strict dword 0850f0008h ; 66 3d 08 00 0f 85 14066 inc word [bx+si] ; ff 00 14067 add byte [bx+si], al ; 00 00 14068 mov bx, word [di+020h] ; 8b 5d 20 13957 14069 xor bl, bl ; 30 db 13958 mov ax, word [di+0 14h] ; 8b 45 1414070 mov ax, word [di+008h] ; 8b 45 08 13959 14071 xor ah, ah ; 30 e4 13960 14072 and AL, strict byte 003h ; 24 03 … … 13967 14079 in AL, DX ; ec 13968 14080 or bx, ax ; 09 c3 13969 mov dword [di+02ch], ebx ; 66 89 5d 2c 13970 pop bp ; 5d 13971 pop di ; 5f 13972 pop si ; 5e 13973 pop bx ; 5b 13974 retn ; c3 13975 mov ax, word [di+014h] ; 8b 45 14 14081 mov dword [di+020h], ebx ; 66 89 5d 20 14082 jmp near 0ddc1h ; e9 dc 00 14083 add byte [bx+si], al ; 00 00 14084 mov ax, word [di+008h] ; 8b 45 08 13976 14085 xor ah, ah ; 30 e4 13977 14086 and AL, strict byte 002h ; 24 02 … … 13983 14092 ; sub ax, ax ; 2b c0 13984 14093 in eax, DX ; 66 ed 13985 mov dword [di+02ch], eax ; 66 89 45 2c 13986 pop bp ; 5d 13987 pop di ; 5f 13988 pop si ; 5e 13989 pop bx ; 5b 13990 retn ; c3 14094 mov dword [di+020h], eax ; 66 89 45 20 14095 jmp near 0ddc1h ; e9 bf 00 14096 add byte [bx+si], al ; 00 00 13991 14097 mov dx, 00cfch ; ba fc 0c 13992 14098 add byte [bx+si], al ; 00 00 13993 14099 in ax, DX ; ed 13994 mov word [di+02ch], ax ; 89 45 2c 13995 pop bp ; 5d 13996 pop di ; 5f 13997 pop si ; 5e 13998 pop bx ; 5b 13999 retn ; c3 14000 mov ax, word [di+02ch] ; 8b 45 2c 14001 mov dx, word [di+014h] ; 8b 55 14 14100 mov word [di+020h], ax ; 89 45 20 14101 jmp near 0ddc1h ; e9 b1 00 14102 add byte [bx+si], al ; 00 00 14103 mov ax, word [di+020h] ; 8b 45 20 14104 mov dx, word [di+008h] ; 8b 55 08 14002 14105 xor dh, dh ; 30 f6 14003 14106 and dl, 003h ; 80 e2 03 … … 14007 14110 add byte [bx+si], al ; 00 00 14008 14111 out DX, AL ; ee 14009 pop bp ; 5d 14010 pop di ; 5f 14011 pop si ; 5e 14012 pop bx ; 5b 14013 retn ; c3 14014 db 00fh, 0b7h, 045h, 02ch 14015 ; movzx ax, word [di+02ch] ; 0f b7 45 2c 14016 mov dx, word [di+014h] ; 8b 55 14 14112 jmp near 0ddc1h ; e9 97 00 14113 add byte [bx+si], al ; 00 00 14114 db 00fh, 0b7h, 045h, 020h 14115 ; movzx ax, word [di+020h] ; 0f b7 45 20 14116 mov dx, word [di+008h] ; 8b 55 08 14017 14117 xor dh, dh ; 30 f6 14018 14118 and dl, 002h ; 80 e2 02 … … 14022 14122 add byte [bx+si], al ; 00 00 14023 14123 out DX, eax ; 66 ef 14024 pop bp ; 5d 14025 pop di ; 5f 14026 pop si ; 5e 14027 pop bx ; 5b 14028 retn ; c3 14029 mov ax, word [di+02ch] ; 8b 45 2c 14124 jmp near 0ddc1h ; e9 7b 00 14125 add byte [bx+si], al ; 00 00 14126 mov ax, word [di+020h] ; 8b 45 20 14030 14127 mov dx, 00cfch ; ba fc 0c 14031 14128 add byte [bx+si], al ; 00 00 14032 14129 out DX, ax ; ef 14033 pop bp ; 5d 14034 pop di ; 5f 14035 pop si ; 5e 14036 pop bx ; 5b 14037 retn ; c3 14038 db 00fh, 0b7h, 045h, 014h 14039 ; movzx ax, word [di+014h] ; 0f b7 45 14 14040 mov es, [di+034h] ; 8e 45 34 14041 mov ecx, dword [di] ; 66 8b 0d 14130 jmp short 0ddc3h ; eb 70 14131 db 00fh, 0b7h, 045h, 008h 14132 ; movzx ax, word [di+008h] ; 0f b7 45 08 14133 mov es, [di+028h] ; 8e 45 28 14134 mov [di-010h], es ; 8c 45 f0 14135 mov bx, ax ; 89 c3 14136 mov edx, dword [di] ; 66 8b 15 14042 14137 add byte [bx+si], al ; 00 00 14043 14138 add byte [bx+si], al ; 00 00 14044 db 066h, 026h, 03bh, 0 08h14045 ; cmp e cx, dword [es:bx+si] ; 66 26 3b 0814046 jbe short 0dd 6eh ; 76 0a14047 mov ax, word [di+0 30h] ; 8b 45 3014139 db 066h, 026h, 03bh, 010h 14140 ; cmp edx, dword [es:bx+si] ; 66 26 3b 10 14141 jbe short 0dd7eh ; 76 12 14142 mov ax, word [di+024h] ; 8b 45 24 14048 14143 xor ah, ah ; 30 e4 14049 14144 or ah, 089h ; 80 cc 89 14050 jmp short 0dd9dh ; eb 2f 14051 db 00fh, 0b7h, 0c9h 14052 ; movzx cx, cx ; 0f b7 c9 14053 db 066h, 026h, 08bh, 058h, 006h 14054 ; mov ebx, dword [es:bx+si+006h] ; 66 26 8b 58 06 14145 mov dword [di+024h], eax ; 66 89 45 24 14146 or word [di+02ch], strict byte 00001h ; 83 4d 2c 01 14147 jmp short 0dda4h ; eb 26 14148 db 00fh, 0b7h, 0cah 14149 ; movzx cx, dx ; 0f b7 ca 14150 db 066h, 026h, 08bh, 050h, 006h 14151 ; mov edx, dword [es:bx+si+006h] ; 66 26 8b 50 06 14152 mov word [di-014h], dx ; 89 55 ec 14055 14153 mov di, word [es:bx+si+002h] ; 26 8b 78 02 14056 14154 mov dx, ds ; 8c da 14057 14155 mov si, 0f2c0h ; be c0 f2 14058 14156 add byte [bx+si], al ; 00 00 14059 mov es, bx ; 8e c314157 mov es, [di-014h] ; 8e 45 ec 14060 14158 push DS ; 1e 14061 14159 db 066h, 08eh, 0dah … … 14063 14161 rep movsb ; f3 a4 14064 14162 pop DS ; 1f 14065 mov dword [di+024h], strict dword 05f5d0a00h ; 66 c7 45 24 00 0a 5d 5f 14066 pop si ; 5e 14067 pop bx ; 5b 14068 retn ; c3 14069 mov ax, word [di+030h] ; 8b 45 30 14163 mov dword [di+018h], strict dword 0a1660a00h ; 66 c7 45 18 00 0a 66 a1 14164 add byte [bx+si], al ; 00 00 14165 add byte [bx+si], al ; 00 00 14166 mov es, [di-010h] ; 8e 45 f0 14167 db 066h, 026h, 089h, 003h 14168 ; mov dword [es:bp+di], eax ; 66 26 89 03 14169 jmp short 0ddc3h ; eb 10 14170 mov ax, word [di+024h] ; 8b 45 24 14070 14171 xor ah, ah ; 30 e4 14071 14172 or ah, 081h ; 80 cc 81 14072 mov dword [di+0 30h], eax ; 66 89 45 3014073 or word [di+0 38h], strict byte 00001h ; 83 4d 380114074 pop bp ; 5d14173 mov dword [di+024h], eax ; 66 89 45 24 14174 or word [di+02ch], strict byte 00001h ; 83 4d 2c 01 14175 lea sp, [di-00ch] ; 8d 65 f4 14075 14176 pop di ; 5f 14076 14177 pop si ; 5e 14077 14178 pop bx ; 5b 14179 pop bp ; 5d 14078 14180 retn ; c3 14079 14181 14080 ; Padding 0x 2 bytes at 0xfddaa14081 times 2db 014182 ; Padding 0x1 bytes at 0xfddcb 14183 times 1 db 0 14082 14184 14083 section BIOS32CONST progbits vstart=0xdd ac align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP14185 section BIOS32CONST progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP 14084 14186 14085 section BIOS32CONST2 progbits vstart=0xdd ac align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP14187 section BIOS32CONST2 progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP 14086 14188 14087 section BIOS32_DATA progbits vstart=0xdd ac align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP14189 section BIOS32_DATA progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP 14088 14190 14089 ; Padding 0x2 54 bytes at 0xfddac14090 times 5 96db 014191 ; Padding 0x234 bytes at 0xfddcc 14192 times 564 db 0 14091 14193 14092 14194 section BIOSSEG progbits vstart=0xe000 align=1 ; size=0x2000 class=CODE group=AUTO … … 14189 14291 pop DS ; 1f 14190 14292 cld ; fc 14191 call 017 07h ; e8 293614293 call 01712h ; e8 34 36 14192 14294 call 0e8e0h ; e8 ff 07 14193 14295 db 033h, 0dbh … … 14269 14371 pop DS ; 1f 14270 14372 cld ; fc 14271 call 04 8cah ; e8 106714373 call 04951h ; e8 97 67 14272 14374 pop DS ; 1f 14273 14375 mov AL, strict byte 014h ; b0 14 … … 14356 14458 pop DS ; 1f 14357 14459 cld ; fc 14358 call 01b 1fh ; e8 823814359 call 01f 0dh ; e8 6d3c14360 call 08 9b2h ; e8 0f a714361 call 07 ac7h ; e8 21 9814460 call 01b48h ; e8 ab 38 14461 call 01f42h ; e8 a2 3c 14462 call 08b46h ; e8 a3 a8 14463 call 07c1dh ; e8 77 99 14362 14464 call 0ed2fh ; e8 86 0a 14363 14465 call 0e2d2h ; e8 26 00 … … 14365 14467 pop DS ; 1f 14366 14468 cld ; fc 14367 call 017 25h ; e8 733414368 call 03 5dah ; e8 255314469 call 01732h ; e8 80 34 14470 call 03635h ; e8 80 53 14369 14471 sti ; fb 14370 14472 int 019h ; cd 19 … … 14380 14482 pop DS ; 1f 14381 14483 cld ; fc 14382 call 016e 7h ; e8 1e3414484 call 016eeh ; e8 25 34 14383 14485 iret ; cf 14384 14486 int75_handler: ; 0xfe2ca LB 0x8 … … 14486 14588 pop DS ; 1f 14487 14589 cld ; fc 14488 call 05c 40h ; e8 fe 7414590 call 05ce3h ; e8 a1 75 14489 14591 popaw ; 61 14490 14592 pop ES ; 07 … … 14497 14599 pop DS ; 1f 14498 14600 cld ; fc 14499 call 016 7eh ; e8 2f2f14601 call 01683h ; e8 34 2f 14500 14602 popaw ; 61 14501 14603 pop ES ; 07 … … 14602 14704 pop DS ; 1f 14603 14705 cld ; fc 14604 call 0 4fbch ; e8 7a 6714706 call 05051h ; e8 0f 68 14605 14707 popaw ; 61 14606 14708 pop DS ; 1f … … 14619 14721 pop DS ; 1f 14620 14722 cld ; fc 14621 call 0 4fbch ; e8 5c6714723 call 05051h ; e8 f1 67 14622 14724 popaw ; 61 14623 14725 pop DS ; 1f … … 14718 14820 pop DS ; 1f 14719 14821 cld ; fc 14720 call 04 bd4h ; e8 056214822 call 04c60h ; e8 91 62 14721 14823 pop ES ; 07 14722 14824 popaw ; 61 … … 14744 14846 cld ; fc 14745 14847 push 0ece9h ; 68 e9 ec 14746 jmp near 036 18h ; e9 a7 4914848 jmp near 03679h ; e9 08 4a 14747 14849 push ES ; 06 14748 14850 push ax ; 50 … … 14750 14852 push cx ; 51 14751 14853 push dx ; 52 14752 call 03 5f0h ; e8 774914854 call 0364dh ; e8 d4 49 14753 14855 cmp AL, strict byte 000h ; 3c 00 14754 14856 je short 0ecabh ; 74 2e 14755 call 036 04h ; e8 844914857 call 03663h ; e8 e3 49 14756 14858 pop dx ; 5a 14757 14859 push dx ; 52 … … 14771 14873 cld ; fc 14772 14874 push 0ece9h ; 68 e9 ec 14773 jmp near 03 be0h ; e9 494f14875 jmp near 03c4dh ; e9 b6 4f 14774 14876 and dl, 0e0h ; 80 e2 e0 14775 14877 db 03ah, 0c2h … … 14811 14913 jne short 0ecc8h ; 75 06 14812 14914 push 0ece9h ; 68 e9 ec 14813 jmp near 02e 4bh ; e9 83 4114915 jmp near 02eeeh ; e9 26 42 14814 14916 int13_notfloppy: ; 0xfecc8 LB 0x14 14815 14917 cmp dl, 0e0h ; 80 fa e0 … … 14817 14919 shr ebx, 010h ; 66 c1 eb 10 14818 14920 push bx ; 53 14819 call 040 0fh ; e8 3a5314921 call 04081h ; e8 ac 53 14820 14922 pop bx ; 5b 14821 14923 sal ebx, 010h ; 66 c1 e3 10 … … 14824 14926 cmp ah, 040h ; 80 fc 40 14825 14927 jnbe short 0ece6h ; 77 05 14826 call 053 3ch ; e8 586614928 call 053d6h ; e8 f2 66 14827 14929 jmp short 0ece9h ; eb 03 14828 call 05 778h ; e8 8f 6a14930 call 05817h ; e8 2e 6b 14829 14931 int13_out: ; 0xfece9 LB 0x4 14830 14932 pop DS ; 1f … … 15039 15141 pop DS ; 1f 15040 15142 cld ; fc 15041 call 06 e30h ; e8 53 7e15143 call 06f00h ; e8 23 7f 15042 15144 popaw ; 61 15043 15145 pop ES ; 07 … … 15064 15166 pop DS ; 1f 15065 15167 cld ; fc 15066 call 01 6f7h ; e8 4d2615168 call 01700h ; e8 56 26 15067 15169 hlt ; f4 15068 15170 iret ; cf … … 15087 15189 mov ax, strict word 00001h ; b8 01 00 15088 15190 push ax ; 50 15089 call 046 68h ; e8 98 5515191 call 046e8h ; e8 18 56 15090 15192 inc sp ; 44 15091 15193 inc sp ; 44 … … 15094 15196 mov ax, strict word 00002h ; b8 02 00 15095 15197 push ax ; 50 15096 call 046 68h ; e8 8b 5515198 call 046e8h ; e8 0b 56 15097 15199 inc sp ; 44 15098 15200 inc sp ; 44 … … 15101 15203 mov ax, strict word 00003h ; b8 03 00 15102 15204 push strict byte 00003h ; 6a 03 15103 call 046 68h ; e8 7d 5515205 call 046e8h ; e8 fd 55 15104 15206 inc sp ; 44 15105 15207 inc sp ; 44 … … 15108 15210 mov ax, strict word 00004h ; b8 04 00 15109 15211 push ax ; 50 15110 call 046 68h ; e8 70 5515212 call 046e8h ; e8 f0 55 15111 15213 inc sp ; 44 15112 15214 inc sp ; 44 … … 15454 15556 cmp ah, 0c2h ; 80 fc c2 15455 15557 je short 0f887h ; 74 0e 15456 call 05e 49h ; e8 cd 6515558 call 05ef0h ; e8 74 66 15457 15559 popaw ; 61 15458 15560 pop ES ; 07 … … 15460 15562 popfw ; 9d 15461 15563 jmp short 0f895h ; eb 13 15462 call 08 ae1h ; e8 5c 9215564 call 08c7dh ; e8 f8 93 15463 15565 jmp short 0f87ch ; eb f5 15464 15566 int15_handler_mouse: ; 0xff887 LB 0x5 15465 call 06 aaah ; e8 207215567 call 06b75h ; e8 eb 72 15466 15568 jmp short 0f87ch ; eb f0 15467 15569 int15_handler32: ; 0xff88c LB 0x9 15468 15570 pushad ; 66 60 15469 call 063 12h ; e8 81 6a15571 call 063bdh ; e8 2c 6b 15470 15572 popad ; 66 61 15471 15573 jmp short 0f87dh ; eb e8 … … 15497 15599 pop DS ; 1f 15498 15600 cld ; fc 15499 call 06 9e4h ; e8 277115601 call 06aabh ; e8 ee 71 15500 15602 pop cx ; 59 15501 15603 jcxz 0f8cch ; e3 0c … … 15589 15691 db 018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h 15590 15692 db 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h 15591 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 0 6ch, 08eh, 066h15592 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 0 01h, 069h, 061h, 01fh, 007h15693 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 010h, 090h, 066h 15694 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 0b7h, 069h, 061h, 01fh, 007h 15593 15695 db 0cfh 15594 15696 int70_handler: ; 0xffe8f LB 0x16 … … 15599 15701 pop DS ; 1f 15600 15702 cld ; fc 15601 call 06 6d1h ; e8 396815703 call 06784h ; e8 ec 68 15602 15704 popaw ; 61 15603 15705 pop DS ; 1f … … 15618 15720 db 00ah, 0c0h 15619 15721 ; or al, al ; 0a c0 15620 je short 0febdh ; 74 09 15722 je short 0fec4h ; 74 10 15723 db 0feh, 0c8h 15724 ; dec al ; fe c8 15725 mov byte [00440h], AL ; a2 40 04 15726 jne short 0fec4h ; 75 09 15621 15727 push dx ; 52 15622 15728 mov dx, 003f2h ; ba f2 03 … … 15628 15734 inc eax ; 66 40 15629 15735 cmp eax, strict dword 0001800b0h ; 66 3d b0 00 18 00 15630 jc short 0fed 2h ; 72 0715736 jc short 0fed9h ; 72 07 15631 15737 db 066h, 033h, 0c0h 15632 15738 ; xor eax, eax ; 66 33 c0 … … 15635 15741 int 01ch ; cd 1c 15636 15742 cli ; fa 15637 call 0e03fh ; e8 63e115743 call 0e03fh ; e8 5c e1 15638 15744 pop DS ; 1f 15639 15745 pop eax ; 66 58 15640 15746 iret ; cf 15641 times 0x 11db 015747 times 0xa db 0 15642 15748 pop ax ; 58 15643 15749 dec bp ; 4d … … 15695 15801 cpu_reset: ; 0xffff0 LB 0x10 15696 15802 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 15697 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 10h15803 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0d1h
Note:
See TracChangeset
for help on using the changeset viewer.