Changeset 50167 in vbox for trunk/src/VBox/Devices
- Timestamp:
- Jan 22, 2014 7:47:00 PM (11 years ago)
- Location:
- trunk/src/VBox/Devices
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/BiosCommonCode/MakeAlternativeSource.cpp
r48664 r50167 1027 1027 && pb[4] == 0x8c 1028 1028 && pb[5] == 0x2f) 1029 || ( pb[0] == 0x66 1030 && pb[1] == 0x9e 1031 && pb[2] == 0x66 1032 && pb[3] == 0xca 1033 && pb[4] == 0x66 1034 && pb[5] == 0x55) 1029 1035 || 0 1030 1036 ) -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm
r50159 r50167 3 3 ; Auto Generated source file. Do not edit. 4 4 ; 5 6 ; 7 ; Source file: post.c 8 ; 9 ; BIOS POST routines. Used only during initialization. 10 ; 11 ; 12 ; 13 ; Copyright (C) 2004-2014 Oracle Corporation 14 ; 15 ; This file is part of VirtualBox Open Source Edition (OSE), as 16 ; available from http://www.virtualbox.org. This file is free software; 17 ; you can redistribute it and/or modify it under the terms of the GNU 18 ; General Public License (GPL) as published by the Free Software 19 ; Foundation, in version 2 as it comes in the "COPYING" file of the 20 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 21 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 5 22 6 23 ; … … 839 856 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 840 857 _pktacc: ; 0xf006a LB 0xc 841 db 000h, 000h, 000h, 000h, 000h, 000h, 0 3fh, 028h, 0ech, 078h, 0b4h, 086h858 db 000h, 000h, 000h, 000h, 000h, 000h, 08fh, 028h, 02ah, 079h, 0f2h, 086h 842 859 _softrst: ; 0xf0076 LB 0xc 843 db 000h, 000h, 000h, 000h, 000h, 000h, 0 27h, 02bh, 041h, 036h, 041h, 036h860 db 000h, 000h, 000h, 000h, 000h, 000h, 077h, 02bh, 091h, 036h, 091h, 036h 844 861 _dskacc: ; 0xf0082 LB 0x2e 845 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0 88h, 027h, 002h, 028h, 000h, 000h, 000h, 000h846 db 0 80h, 077h, 036h, 078h, 0b0h, 085h, 044h, 086h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h862 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0d8h, 027h, 052h, 028h, 000h, 000h, 000h, 000h 863 db 0beh, 077h, 074h, 078h, 0eeh, 085h, 082h, 086h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 847 864 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 848 865 … … 1039 1056 times 1142 db 0 1040 1057 1041 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7ef5 class=CODE group=AUTO 1042 read_byte_: ; 0xf1600 LB 0xe 1058 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7f35 class=CODE group=AUTO 1059 rom_scan_: ; 0xf1600 LB 0x50 1060 push bp ; 55 1061 mov bp, sp ; 89 e5 1062 push bx ; 53 1063 push cx ; 51 1064 push si ; 56 1065 push ax ; 50 1066 push ax ; 50 1067 mov bx, ax ; 89 c3 1068 mov cx, dx ; 89 d1 1069 cmp bx, cx ; 39 cb 1070 jnc short 01648h ; 73 38 1071 xor si, si ; 31 f6 1072 mov dx, bx ; 89 da 1073 mov es, bx ; 8e c3 1074 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 1075 jne short 01642h ; 75 25 1076 mov word [bp-008h], bx ; 89 5e f8 1077 mov word [bp-00ah], strict word 00003h ; c7 46 f6 03 00 1078 call far [bp-00ah] ; ff 5e f6 1079 cli ; fa 1080 mov es, bx ; 8e c3 1081 mov al, byte [es:si+002h] ; 26 8a 44 02 1082 add AL, strict byte 003h ; 04 03 1083 and AL, strict byte 0fch ; 24 fc 1084 xor ah, ah ; 30 e4 1085 cwd ; 99 1086 sal dx, 002h ; c1 e2 02 1087 db 01bh, 0c2h 1088 ; sbb ax, dx ; 1b c2 1089 sar ax, 002h ; c1 f8 02 1090 add bx, ax ; 01 c3 1091 jmp short 0160ch ; eb ca 1092 add bx, 00080h ; 81 c3 80 00 1093 jmp short 0160ch ; eb c4 1094 lea sp, [bp-006h] ; 8d 66 fa 1095 pop si ; 5e 1096 pop cx ; 59 1097 pop bx ; 5b 1098 pop bp ; 5d 1099 retn ; c3 1100 read_byte_: ; 0xf1650 LB 0xe 1043 1101 push bx ; 53 1044 1102 push bp ; 55 … … 1050 1108 pop bx ; 5b 1051 1109 retn ; c3 1052 write_byte_: ; 0xf16 0e LB 0xe1110 write_byte_: ; 0xf165e LB 0xe 1053 1111 push si ; 56 1054 1112 push bp ; 55 … … 1060 1118 pop si ; 5e 1061 1119 retn ; c3 1062 read_word_: ; 0xf16 1c LB 0xe1120 read_word_: ; 0xf166c LB 0xe 1063 1121 push bx ; 53 1064 1122 push bp ; 55 … … 1070 1128 pop bx ; 5b 1071 1129 retn ; c3 1072 write_word_: ; 0xf16 2a LB 0xe1130 write_word_: ; 0xf167a LB 0xe 1073 1131 push si ; 56 1074 1132 push bp ; 55 … … 1080 1138 pop si ; 5e 1081 1139 retn ; c3 1082 read_dword_: ; 0xf16 38 LB 0x121140 read_dword_: ; 0xf1688 LB 0x12 1083 1141 push bx ; 53 1084 1142 push bp ; 55 … … 1091 1149 pop bx ; 5b 1092 1150 retn ; c3 1093 write_dword_: ; 0xf16 4a LB 0x121151 write_dword_: ; 0xf169a LB 0x12 1094 1152 push si ; 56 1095 1153 push bp ; 55 … … 1102 1160 pop si ; 5e 1103 1161 retn ; c3 1104 inb_cmos_: ; 0xf16 5c LB 0x1d1162 inb_cmos_: ; 0xf16ac LB 0x1d 1105 1163 push bp ; 55 1106 1164 mov bp, sp ; 89 e5 … … 1108 1166 mov AH, strict byte 070h ; b4 70 1109 1167 cmp AL, strict byte 080h ; 3c 80 1110 jc short 016 68h ; 72 021168 jc short 016b8h ; 72 02 1111 1169 mov AH, strict byte 072h ; b4 72 1112 1170 movzx dx, ah ; 0f b6 d4 … … 1121 1179 pop bp ; 5d 1122 1180 retn ; c3 1123 outb_cmos_: ; 0xf16 79 LB 0x1f1181 outb_cmos_: ; 0xf16c9 LB 0x1f 1124 1182 push bp ; 55 1125 1183 mov bp, sp ; 89 e5 … … 1128 1186 mov BL, strict byte 070h ; b3 70 1129 1187 cmp AL, strict byte 080h ; 3c 80 1130 jc short 016 87h ; 72 021188 jc short 016d7h ; 72 02 1131 1189 mov BL, strict byte 072h ; b3 72 1132 1190 movzx dx, bl ; 0f b6 d3 … … 1140 1198 pop bp ; 5d 1141 1199 retn ; c3 1142 _dummy_isr_function: ; 0xf16 98 LB 0x6b1200 _dummy_isr_function: ; 0xf16e8 LB 0x6b 1143 1201 push bp ; 55 1144 1202 mov bp, sp ; 89 e5 … … 1154 1212 mov byte [bp-002h], al ; 88 46 fe 1155 1213 test al, al ; 84 c0 1156 je short 01 6f3h ; 74 431214 je short 01743h ; 74 43 1157 1215 mov AL, strict byte 00bh ; b0 0b 1158 1216 mov dx, 000a0h ; ba a0 00 … … 1163 1221 mov cx, ax ; 89 c1 1164 1222 test al, al ; 84 c0 1165 je short 01 6d5h ; 74 161223 je short 01725h ; 74 16 1166 1224 mov dx, 000a1h ; ba a1 00 1167 1225 in AL, DX ; ec … … 1175 1233 mov dx, 000a0h ; ba a0 00 1176 1234 out DX, AL ; ee 1177 jmp short 01 6eah ; eb 151235 jmp short 0173ah ; eb 15 1178 1236 mov dx, strict word 00021h ; ba 21 00 1179 1237 in AL, DX ; ec … … 1193 1251 mov dx, strict word 0006bh ; ba 6b 00 1194 1252 mov ax, strict word 00040h ; b8 40 00 1195 call 016 0eh ; e8 0f ff1253 call 0165eh ; e8 0f ff 1196 1254 mov sp, bp ; 89 ec 1197 1255 pop bp ; 5d 1198 1256 retn ; c3 1199 _nmi_handler_msg: ; 0xf17 03 LB 0x121257 _nmi_handler_msg: ; 0xf1753 LB 0x12 1200 1258 push bp ; 55 1201 1259 mov bp, sp ; 89 e5 1202 1260 push 000b0h ; 68 b0 00 1203 1261 push strict byte 00007h ; 6a 07 1204 call 019 22h ; e8 14 021262 call 01972h ; e8 14 02 1205 1263 add sp, strict byte 00004h ; 83 c4 04 1206 1264 mov sp, bp ; 89 ec 1207 1265 pop bp ; 5d 1208 1266 retn ; c3 1209 _int18_panic_msg: ; 0xf17 15 LB 0x121267 _int18_panic_msg: ; 0xf1765 LB 0x12 1210 1268 push bp ; 55 1211 1269 mov bp, sp ; 89 e5 1212 1270 push 000c4h ; 68 c4 00 1213 1271 push strict byte 00007h ; 6a 07 1214 call 019 22h ; e8 02 021272 call 01972h ; e8 02 02 1215 1273 add sp, strict byte 00004h ; 83 c4 04 1216 1274 mov sp, bp ; 89 ec 1217 1275 pop bp ; 5d 1218 1276 retn ; c3 1219 _log_bios_start: ; 0xf17 27 LB 0x201277 _log_bios_start: ; 0xf1777 LB 0x20 1220 1278 push bp ; 55 1221 1279 mov bp, sp ; 89 e5 … … 1223 1281 mov cx, ds ; 8c d9 1224 1282 mov ax, strict word 00004h ; b8 04 00 1225 call 01 8e1h ; e8 ac 011283 call 01931h ; e8 ac 01 1226 1284 push 00d90h ; 68 90 0d 1227 1285 push 000d9h ; 68 d9 00 1228 1286 push strict byte 00004h ; 6a 04 1229 call 019 22h ; e8 e2 011287 call 01972h ; e8 e2 01 1230 1288 add sp, strict byte 00006h ; 83 c4 06 1231 1289 mov sp, bp ; 89 ec 1232 1290 pop bp ; 5d 1233 1291 retn ; c3 1234 _print_bios_banner: ; 0xf17 47 LB 0x2e1292 _print_bios_banner: ; 0xf1797 LB 0x2e 1235 1293 push bp ; 55 1236 1294 mov bp, sp ; 89 e5 1237 1295 mov dx, strict word 00072h ; ba 72 00 1238 1296 mov ax, strict word 00040h ; b8 40 00 1239 call 016 1ch ; e8 c9 fe1297 call 0166ch ; e8 c9 fe 1240 1298 mov cx, ax ; 89 c1 1241 1299 xor bx, bx ; 31 db 1242 1300 mov dx, strict word 00072h ; ba 72 00 1243 1301 mov ax, strict word 00040h ; b8 40 00 1244 call 016 2ah ; e8 ca fe1302 call 0167ah ; e8 ca fe 1245 1303 cmp cx, 01234h ; 81 f9 34 12 1246 jne short 017 6eh ; 75 081304 jne short 017beh ; 75 08 1247 1305 mov AL, strict byte 003h ; b0 03 1248 1306 mov AH, strict byte 000h ; b4 00 1249 1307 int 010h ; cd 10 1250 jmp short 017 71h ; eb 031251 call 073 8fh ; e8 1e5c1308 jmp short 017c1h ; eb 03 1309 call 073cdh ; e8 0c 5c 1252 1310 mov sp, bp ; 89 ec 1253 1311 pop bp ; 5d 1254 1312 retn ; c3 1255 send_: ; 0xf17 75 LB 0x3b1313 send_: ; 0xf17c5 LB 0x3b 1256 1314 push bp ; 55 1257 1315 mov bp, sp ; 89 e5 … … 1261 1319 mov cl, dl ; 88 d1 1262 1320 test AL, strict byte 008h ; a8 08 1263 je short 017 88h ; 74 061321 je short 017d8h ; 74 06 1264 1322 mov al, dl ; 88 d0 1265 1323 mov dx, 00403h ; ba 03 04 1266 1324 out DX, AL ; ee 1267 1325 test bl, 004h ; f6 c3 04 1268 je short 017 93h ; 74 061326 je short 017e3h ; 74 06 1269 1327 mov al, cl ; 88 c8 1270 1328 mov dx, 00504h ; ba 04 05 1271 1329 out DX, AL ; ee 1272 1330 test bl, 002h ; f6 c3 02 1273 je short 017 a9h ; 74 111331 je short 017f9h ; 74 11 1274 1332 cmp cl, 00ah ; 80 f9 0a 1275 jne short 017 a3h ; 75 061333 jne short 017f3h ; 75 06 1276 1334 mov AL, strict byte 00dh ; b0 0d 1277 1335 mov AH, strict byte 00eh ; b4 0e … … 1285 1343 pop bp ; 5d 1286 1344 retn ; c3 1287 put_int_: ; 0xf1 7b0 LB 0x5f1345 put_int_: ; 0xf1800 LB 0x5f 1288 1346 push bp ; 55 1289 1347 mov bp, sp ; 89 e5 … … 1300 1358 mov word [bp-006h], ax ; 89 46 fa 1301 1359 test ax, ax ; 85 c0 1302 je short 01 7d5h ; 74 0a1360 je short 01825h ; 74 0a 1303 1361 dec bx ; 4b 1304 1362 mov dx, ax ; 89 c2 1305 1363 mov ax, si ; 89 f0 1306 call 01 7b0h ; e8 dd ff1307 jmp short 01 7f0h ; eb 1b1364 call 01800h ; e8 dd ff 1365 jmp short 01840h ; eb 1b 1308 1366 dec bx ; 4b 1309 1367 test bx, bx ; 85 db 1310 jle short 01 7e4h ; 7e 0a1368 jle short 01834h ; 7e 0a 1311 1369 mov dx, strict word 00020h ; ba 20 00 1312 1370 mov ax, si ; 89 f0 1313 call 017 75h ; e8 93 ff1314 jmp short 01 7d5h ; eb f11371 call 017c5h ; e8 93 ff 1372 jmp short 01825h ; eb f1 1315 1373 test cx, cx ; 85 c9 1316 je short 01 7f0h ; 74 081374 je short 01840h ; 74 08 1317 1375 mov dx, strict word 0002dh ; ba 2d 00 1318 1376 mov ax, si ; 89 f0 1319 call 017 75h ; e8 85 ff1377 call 017c5h ; e8 85 ff 1320 1378 mov al, byte [bp-006h] ; 8a 46 fa 1321 1379 mov DL, strict byte 00ah ; b2 0a … … 1327 1385 movzx dx, al ; 0f b6 d0 1328 1386 mov ax, si ; 89 f0 1329 call 017 75h ; e8 6d ff1387 call 017c5h ; e8 6d ff 1330 1388 lea sp, [bp-004h] ; 8d 66 fc 1331 1389 pop di ; 5f … … 1333 1391 pop bp ; 5d 1334 1392 retn ; c3 1335 put_uint_: ; 0xf18 0f LB 0x601393 put_uint_: ; 0xf185f LB 0x60 1336 1394 push bp ; 55 1337 1395 mov bp, sp ; 89 e5 … … 1348 1406 mov word [bp-006h], ax ; 89 46 fa 1349 1407 test ax, ax ; 85 c0 1350 je short 018 35h ; 74 0a1408 je short 01885h ; 74 0a 1351 1409 dec bx ; 4b 1352 1410 mov dx, ax ; 89 c2 1353 1411 mov ax, si ; 89 f0 1354 call 018 0fh ; e8 dc ff1355 jmp short 018 50h ; eb 1b1412 call 0185fh ; e8 dc ff 1413 jmp short 018a0h ; eb 1b 1356 1414 dec bx ; 4b 1357 1415 test bx, bx ; 85 db 1358 jle short 018 44h ; 7e 0a1416 jle short 01894h ; 7e 0a 1359 1417 mov dx, strict word 00020h ; ba 20 00 1360 1418 mov ax, si ; 89 f0 1361 call 017 75h ; e8 33 ff1362 jmp short 018 35h ; eb f11419 call 017c5h ; e8 33 ff 1420 jmp short 01885h ; eb f1 1363 1421 test cx, cx ; 85 c9 1364 je short 018 50h ; 74 081422 je short 018a0h ; 74 08 1365 1423 mov dx, strict word 0002dh ; ba 2d 00 1366 1424 mov ax, si ; 89 f0 1367 call 017 75h ; e8 25 ff1425 call 017c5h ; e8 25 ff 1368 1426 mov al, byte [bp-006h] ; 8a 46 fa 1369 1427 mov DL, strict byte 00ah ; b2 0a … … 1375 1433 movzx dx, al ; 0f b6 d0 1376 1434 mov ax, si ; 89 f0 1377 call 017 75h ; e8 0d ff1435 call 017c5h ; e8 0d ff 1378 1436 lea sp, [bp-004h] ; 8d 66 fc 1379 1437 pop di ; 5f … … 1381 1439 pop bp ; 5d 1382 1440 retn ; c3 1383 put_luint_: ; 0xf18 6f LB 0x721441 put_luint_: ; 0xf18bf LB 0x72 1384 1442 push bp ; 55 1385 1443 mov bp, sp ; 89 e5 … … 1395 1453 mov bx, strict word 0000ah ; bb 0a 00 1396 1454 xor cx, cx ; 31 c9 1397 call 094 00h ; e8 77 7b1455 call 09440h ; e8 67 7b 1398 1456 mov word [bp-008h], ax ; 89 46 f8 1399 1457 mov cx, dx ; 89 d1 1400 1458 mov dx, ax ; 89 c2 1401 1459 or dx, cx ; 09 ca 1402 je short 018 a3h ; 74 0f1460 je short 018f3h ; 74 0f 1403 1461 push word [bp+004h] ; ff 76 04 1404 1462 lea dx, [di-001h] ; 8d 55 ff 1405 1463 mov bx, ax ; 89 c3 1406 1464 mov ax, si ; 89 f0 1407 call 018 6fh ; e8 ce ff1408 jmp short 01 8c0h ; eb 1d1465 call 018bfh ; e8 ce ff 1466 jmp short 01910h ; eb 1d 1409 1467 dec di ; 4f 1410 1468 test di, di ; 85 ff 1411 jle short 01 8b2h ; 7e 0a1469 jle short 01902h ; 7e 0a 1412 1470 mov dx, strict word 00020h ; ba 20 00 1413 1471 mov ax, si ; 89 f0 1414 call 017 75h ; e8 c5 fe1415 jmp short 018 a3h ; eb f11472 call 017c5h ; e8 c5 fe 1473 jmp short 018f3h ; eb f1 1416 1474 cmp word [bp+004h], strict byte 00000h ; 83 7e 04 00 1417 je short 01 8c0h ; 74 081475 je short 01910h ; 74 08 1418 1476 mov dx, strict word 0002dh ; ba 2d 00 1419 1477 mov ax, si ; 89 f0 1420 call 017 75h ; e8 b5 fe1478 call 017c5h ; e8 b5 fe 1421 1479 mov al, byte [bp-008h] ; 8a 46 f8 1422 1480 mov DL, strict byte 00ah ; b2 0a … … 1428 1486 movzx dx, al ; 0f b6 d0 1429 1487 mov ax, si ; 89 f0 1430 call 017 75h ; e8 9d fe1488 call 017c5h ; e8 9d fe 1431 1489 lea sp, [bp-004h] ; 8d 66 fc 1432 1490 pop di ; 5f … … 1434 1492 pop bp ; 5d 1435 1493 retn 00002h ; c2 02 00 1436 put_str_: ; 0xf1 8e1 LB 0x211494 put_str_: ; 0xf1931 LB 0x21 1437 1495 push bp ; 55 1438 1496 mov bp, sp ; 89 e5 … … 1443 1501 mov dl, byte [es:bx] ; 26 8a 17 1444 1502 test dl, dl ; 84 d2 1445 je short 01 8fbh ; 74 0a1503 je short 0194bh ; 74 0a 1446 1504 xor dh, dh ; 30 f6 1447 1505 mov ax, si ; 89 f0 1448 call 017 75h ; e8 7d fe1506 call 017c5h ; e8 7d fe 1449 1507 inc bx ; 43 1450 jmp short 01 8e8h ; eb ed1508 jmp short 01938h ; eb ed 1451 1509 lea sp, [bp-004h] ; 8d 66 fc 1452 1510 pop si ; 5e … … 1454 1512 pop bp ; 5d 1455 1513 retn ; c3 1456 put_str_near_: ; 0xf19 02 LB 0x201514 put_str_near_: ; 0xf1952 LB 0x20 1457 1515 push bp ; 55 1458 1516 mov bp, sp ; 89 e5 … … 1463 1521 mov dl, byte [bx] ; 8a 17 1464 1522 test dl, dl ; 84 d2 1465 je short 019 1bh ; 74 0a1523 je short 0196bh ; 74 0a 1466 1524 xor dh, dh ; 30 f6 1467 1525 mov ax, cx ; 89 c8 1468 call 017 75h ; e8 5d fe1526 call 017c5h ; e8 5d fe 1469 1527 inc bx ; 43 1470 jmp short 019 0bh ; eb f01528 jmp short 0195bh ; eb f0 1471 1529 lea sp, [bp-004h] ; 8d 66 fc 1472 1530 pop cx ; 59 … … 1474 1532 pop bp ; 5d 1475 1533 retn ; c3 1476 bios_printf_: ; 0xf19 22 LB 0x23b1534 bios_printf_: ; 0xf1972 LB 0x23b 1477 1535 push bp ; 55 1478 1536 mov bp, sp ; 89 e5 … … 1491 1549 and ax, strict word 00007h ; 25 07 00 1492 1550 cmp ax, strict word 00007h ; 3d 07 00 1493 jne short 019 50h ; 75 0b1551 jne short 019a0h ; 75 0b 1494 1552 push 000deh ; 68 de 00 1495 1553 push strict byte 00002h ; 6a 02 1496 call 019 22h ; e8 d5 ff1554 call 01972h ; e8 d5 ff 1497 1555 add sp, strict byte 00004h ; 83 c4 04 1498 1556 mov bx, word [bp+006h] ; 8b 5e 06 1499 1557 mov dl, byte [bx] ; 8a 17 1500 1558 test dl, dl ; 84 d2 1501 je near 01b 41h ; 0f 84 e6 011559 je near 01b91h ; 0f 84 e6 01 1502 1560 cmp dl, 025h ; 80 fa 25 1503 jne short 019 68h ; 75 081561 jne short 019b8h ; 75 08 1504 1562 mov cx, strict word 00001h ; b9 01 00 1505 1563 xor si, si ; 31 f6 1506 jmp near 01b 3bh ; e9 d3 011564 jmp near 01b8bh ; e9 d3 01 1507 1565 test cx, cx ; 85 c9 1508 je near 01b 33h ; 0f 84 c5 011566 je near 01b83h ; 0f 84 c5 01 1509 1567 cmp dl, 030h ; 80 fa 30 1510 jc short 019 86h ; 72 131568 jc short 019d6h ; 72 13 1511 1569 cmp dl, 039h ; 80 fa 39 1512 jnbe short 019 86h ; 77 0e1570 jnbe short 019d6h ; 77 0e 1513 1571 movzx ax, dl ; 0f b6 c2 1514 1572 imul si, si, strict byte 0000ah ; 6b f6 0a 1515 1573 sub ax, strict word 00030h ; 2d 30 00 1516 1574 add si, ax ; 01 c6 1517 jmp near 01b 3bh ; e9 b5 011575 jmp near 01b8bh ; e9 b5 01 1518 1576 mov ax, word [bp-010h] ; 8b 46 f0 1519 1577 mov word [bp-010h], ax ; 89 46 f0 … … 1523 1581 mov word [bp-00ch], ax ; 89 46 f4 1524 1582 cmp dl, 078h ; 80 fa 78 1525 je short 019 a4h ; 74 051583 je short 019f4h ; 74 05 1526 1584 cmp dl, 058h ; 80 fa 58 1527 jne short 01 9edh ; 75 491585 jne short 01a3dh ; 75 49 1528 1586 test si, si ; 85 f6 1529 jne short 019 abh ; 75 031587 jne short 019fbh ; 75 03 1530 1588 mov si, strict word 00004h ; be 04 00 1531 1589 cmp dl, 078h ; 80 fa 78 1532 jne short 01 9b5h ; 75 051590 jne short 01a05h ; 75 05 1533 1591 mov di, strict word 00061h ; bf 61 00 1534 jmp short 01 9b8h ; eb 031592 jmp short 01a08h ; eb 03 1535 1593 mov di, strict word 00041h ; bf 41 00 1536 1594 lea bx, [si-001h] ; 8d 5c ff 1537 1595 test bx, bx ; 85 db 1538 jl near 01b 2fh ; 0f 8c 6e 011596 jl near 01b7fh ; 0f 8c 6e 01 1539 1597 mov cx, bx ; 89 d9 1540 1598 sal cx, 002h ; c1 e1 02 … … 1544 1602 and AL, strict byte 00fh ; 24 0f 1545 1603 cmp ax, strict word 00009h ; 3d 09 00 1546 jnbe short 01 9dbh ; 77 071604 jnbe short 01a2bh ; 77 07 1547 1605 mov dx, ax ; 89 c2 1548 1606 add dx, strict byte 00030h ; 83 c2 30 1549 jmp short 01 9e2h ; eb 071607 jmp short 01a32h ; eb 07 1550 1608 mov dx, ax ; 89 c2 1551 1609 sub dx, strict byte 0000ah ; 83 ea 0a … … 1553 1611 xor dh, dh ; 30 f6 1554 1612 mov ax, word [bp+004h] ; 8b 46 04 1555 call 017 75h ; e8 8b fd1613 call 017c5h ; e8 8b fd 1556 1614 dec bx ; 4b 1557 jmp short 01 9bbh ; eb ce1615 jmp short 01a0bh ; eb ce 1558 1616 cmp dl, 075h ; 80 fa 75 1559 jne short 01a 01h ; 75 0f1617 jne short 01a51h ; 75 0f 1560 1618 xor cx, cx ; 31 c9 1561 1619 mov bx, si ; 89 f3 1562 1620 mov dx, ax ; 89 c2 1563 1621 mov ax, word [bp+004h] ; 8b 46 04 1564 call 018 0fh ; e8 11 fe1565 jmp near 01b 2fh ; e9 2e 011622 call 0185fh ; e8 11 fe 1623 jmp near 01b7fh ; e9 2e 01 1566 1624 lea bx, [si-001h] ; 8d 5c ff 1567 1625 cmp dl, 06ch ; 80 fa 6c 1568 jne near 01 abdh ; 0f 85 b2 001626 jne near 01b0dh ; 0f 85 b2 00 1569 1627 inc word [bp+006h] ; ff 46 06 1570 1628 mov di, word [bp+006h] ; 8b 7e 06 … … 1577 1635 mov word [bp-00eh], ax ; 89 46 f2 1578 1636 cmp dl, 064h ; 80 fa 64 1579 jne short 01a 59h ; 75 2d1637 jne short 01aa9h ; 75 2d 1580 1638 test byte [bp-00dh], 080h ; f6 46 f3 80 1581 je short 01a 47h ; 74 151639 je short 01a97h ; 74 15 1582 1640 push strict byte 00001h ; 6a 01 1583 1641 mov ax, word [bp-00ch] ; 8b 46 f4 … … 1588 1646 mov dx, bx ; 89 da 1589 1647 mov bx, ax ; 89 c3 1590 jmp short 01a 50h ; eb 091648 jmp short 01aa0h ; eb 09 1591 1649 push strict byte 00000h ; 6a 00 1592 1650 mov bx, word [bp-00ch] ; 8b 5e f4 … … 1594 1652 mov cx, ax ; 89 c1 1595 1653 mov ax, word [bp+004h] ; 8b 46 04 1596 call 018 6fh ; e8 19 fe1597 jmp near 01b 2fh ; e9 d6 001654 call 018bfh ; e8 19 fe 1655 jmp near 01b7fh ; e9 d6 00 1598 1656 cmp dl, 075h ; 80 fa 75 1599 jne short 01a 60h ; 75 021600 jmp short 01a 47h ; eb e71657 jne short 01ab0h ; 75 02 1658 jmp short 01a97h ; eb e7 1601 1659 cmp dl, 078h ; 80 fa 78 1602 je short 01a 6ch ; 74 071660 je short 01abch ; 74 07 1603 1661 cmp dl, 058h ; 80 fa 58 1604 jne near 01b 2fh ; 0f 85 c3 001662 jne near 01b7fh ; 0f 85 c3 00 1605 1663 test si, si ; 85 f6 1606 jne short 01a 73h ; 75 031664 jne short 01ac3h ; 75 03 1607 1665 mov si, strict word 00008h ; be 08 00 1608 1666 cmp dl, 078h ; 80 fa 78 1609 jne short 01a 7dh ; 75 051667 jne short 01acdh ; 75 05 1610 1668 mov di, strict word 00061h ; bf 61 00 1611 jmp short 01a 80h ; eb 031669 jmp short 01ad0h ; eb 03 1612 1670 mov di, strict word 00041h ; bf 41 00 1613 1671 lea bx, [si-001h] ; 8d 5c ff 1614 1672 test bx, bx ; 85 db 1615 jl near 01b 2fh ; 0f 8c a6 001673 jl near 01b7fh ; 0f 8c a6 00 1616 1674 mov ax, word [bp-00ch] ; 8b 46 f4 1617 1675 mov cx, bx ; 89 d9 1618 1676 sal cx, 002h ; c1 e1 02 1619 1677 mov dx, word [bp-00eh] ; 8b 56 f2 1620 jcxz 01a 9ch ; e3 061678 jcxz 01aech ; e3 06 1621 1679 shr dx, 1 ; d1 ea 1622 1680 rcr ax, 1 ; d1 d8 1623 loop 01a 96h ; e2 fa1681 loop 01ae6h ; e2 fa 1624 1682 and ax, strict word 0000fh ; 25 0f 00 1625 1683 cmp ax, strict word 00009h ; 3d 09 00 1626 jnbe short 01a abh ; 77 071684 jnbe short 01afbh ; 77 07 1627 1685 mov dx, ax ; 89 c2 1628 1686 add dx, strict byte 00030h ; 83 c2 30 1629 jmp short 01 ab2h ; eb 071687 jmp short 01b02h ; eb 07 1630 1688 mov dx, ax ; 89 c2 1631 1689 sub dx, strict byte 0000ah ; 83 ea 0a … … 1633 1691 xor dh, dh ; 30 f6 1634 1692 mov ax, word [bp+004h] ; 8b 46 04 1635 call 017 75h ; e8 bb fc1693 call 017c5h ; e8 bb fc 1636 1694 dec bx ; 4b 1637 jmp short 01a 83h ; eb c61695 jmp short 01ad3h ; eb c6 1638 1696 cmp dl, 064h ; 80 fa 64 1639 jne short 01 adfh ; 75 1d1697 jne short 01b2fh ; 75 1d 1640 1698 test byte [bp-00bh], 080h ; f6 46 f5 80 1641 je short 01 ad1h ; 74 091699 je short 01b21h ; 74 09 1642 1700 mov dx, ax ; 89 c2 1643 1701 neg dx ; f7 da 1644 1702 mov cx, strict word 00001h ; b9 01 00 1645 jmp short 01 ad7h ; eb 061703 jmp short 01b27h ; eb 06 1646 1704 xor cx, cx ; 31 c9 1647 1705 mov bx, si ; 89 f3 1648 1706 mov dx, ax ; 89 c2 1649 1707 mov ax, word [bp+004h] ; 8b 46 04 1650 call 01 7b0h ; e8 d3 fc1651 jmp short 01b 2fh ; eb 501708 call 01800h ; e8 d3 fc 1709 jmp short 01b7fh ; eb 50 1652 1710 cmp dl, 073h ; 80 fa 73 1653 jne short 01 af0h ; 75 0c1711 jne short 01b40h ; 75 0c 1654 1712 mov cx, ds ; 8c d9 1655 1713 mov bx, ax ; 89 c3 1656 1714 mov ax, word [bp+004h] ; 8b 46 04 1657 call 01 8e1h ; e8 f3 fd1658 jmp short 01b 2fh ; eb 3f1715 call 01931h ; e8 f3 fd 1716 jmp short 01b7fh ; eb 3f 1659 1717 cmp dl, 053h ; 80 fa 53 1660 jne short 01b 13h ; 75 1e1718 jne short 01b63h ; 75 1e 1661 1719 mov word [bp-00eh], ax ; 89 46 f2 1662 1720 mov ax, word [bp-010h] ; 8b 46 f0 … … 1668 1726 mov bx, ax ; 89 c3 1669 1727 mov cx, word [bp-00eh] ; 8b 4e f2 1670 jmp short 01 ae8h ; eb d51728 jmp short 01b38h ; eb d5 1671 1729 cmp dl, 063h ; 80 fa 63 1672 jne short 01b 24h ; 75 0c1730 jne short 01b74h ; 75 0c 1673 1731 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 1674 1732 mov ax, word [bp+004h] ; 8b 46 04 1675 call 017 75h ; e8 53 fc1676 jmp short 01b 2fh ; eb 0b1733 call 017c5h ; e8 53 fc 1734 jmp short 01b7fh ; eb 0b 1677 1735 push 000e6h ; 68 e6 00 1678 1736 push strict byte 00007h ; 6a 07 1679 call 019 22h ; e8 f6 fd1737 call 01972h ; e8 f6 fd 1680 1738 add sp, strict byte 00004h ; 83 c4 04 1681 1739 xor cx, cx ; 31 c9 1682 jmp short 01b 3bh ; eb 081740 jmp short 01b8bh ; eb 08 1683 1741 xor dh, dh ; 30 f6 1684 1742 mov ax, word [bp+004h] ; 8b 46 04 1685 call 017 75h ; e8 3a fc1743 call 017c5h ; e8 3a fc 1686 1744 inc word [bp+006h] ; ff 46 06 1687 jmp near 019 50h ; e9 0f fe1745 jmp near 019a0h ; e9 0f fe 1688 1746 xor ax, ax ; 31 c0 1689 1747 mov word [bp-012h], ax ; 89 46 ee 1690 1748 mov word [bp-010h], ax ; 89 46 f0 1691 1749 test byte [bp+004h], 001h ; f6 46 04 01 1692 je short 01b 53h ; 74 041750 je short 01ba3h ; 74 04 1693 1751 cli ; fa 1694 1752 hlt ; f4 1695 jmp short 01b 50h ; eb fd1753 jmp short 01ba0h ; eb fd 1696 1754 lea sp, [bp-00ah] ; 8d 66 f6 1697 1755 pop di ; 5f … … 1702 1760 pop bp ; 5d 1703 1761 retn ; c3 1704 _ata_init: ; 0xf1b 5d LB 0xc41762 _ata_init: ; 0xf1bad LB 0xc4 1705 1763 push bp ; 55 1706 1764 mov bp, sp ; 89 e5 … … 1708 1766 mov dx, strict word 0000eh ; ba 0e 00 1709 1767 mov ax, strict word 00040h ; b8 40 00 1710 call 016 1ch ; e8 b2 fa1768 call 0166ch ; e8 b2 fa 1711 1769 mov si, 00122h ; be 22 01 1712 1770 mov dx, ax ; 89 c2 1713 1771 xor al, al ; 30 c0 1714 jmp short 01b 77h ; eb 041772 jmp short 01bc7h ; eb 04 1715 1773 cmp AL, strict byte 004h ; 3c 04 1716 jnc short 01b 9bh ; 73 241774 jnc short 01bebh ; 73 24 1717 1775 movzx bx, al ; 0f b6 d8 1718 1776 imul bx, bx, strict byte 00006h ; 6b db 06 … … 1725 1783 db 0feh, 0c0h 1726 1784 ; inc al ; fe c0 1727 jmp short 01b 73h ; eb d81785 jmp short 01bc3h ; eb d8 1728 1786 xor al, al ; 30 c0 1729 jmp short 01b a3h ; eb 041787 jmp short 01bf3h ; eb 04 1730 1788 cmp AL, strict byte 008h ; 3c 08 1731 jnc short 01 beeh ; 73 4b1789 jnc short 01c3eh ; 73 4b 1732 1790 movzx bx, al ; 0f b6 d8 1733 1791 imul bx, bx, strict byte 00018h ; 6b db 18 … … 1749 1807 db 0feh, 0c0h 1750 1808 ; inc al ; fe c0 1751 jmp short 01b 9fh ; eb b11809 jmp short 01befh ; eb b1 1752 1810 xor al, al ; 30 c0 1753 jmp short 01 bf6h ; eb 041811 jmp short 01c46h ; eb 04 1754 1812 cmp AL, strict byte 010h ; 3c 10 1755 jnc short 01c 0dh ; 73 171813 jnc short 01c5dh ; 73 17 1756 1814 movzx bx, al ; 0f b6 d8 1757 1815 mov es, dx ; 8e c2 … … 1761 1819 db 0feh, 0c0h 1762 1820 ; inc al ; fe c0 1763 jmp short 01 bf2h ; eb e51821 jmp short 01c42h ; eb e5 1764 1822 mov es, dx ; 8e c2 1765 1823 mov byte [es:si+0019eh], 000h ; 26 c6 84 9e 01 00 … … 1769 1827 pop bp ; 5d 1770 1828 retn ; c3 1771 ata_reset_: ; 0xf1c 21 LB 0xde1829 ata_reset_: ; 0xf1c71 LB 0xde 1772 1830 push bp ; 55 1773 1831 mov bp, sp ; 89 e5 … … 1782 1840 mov dx, strict word 0000eh ; ba 0e 00 1783 1841 mov ax, strict word 00040h ; b8 40 00 1784 call 016 1ch ; e8 e7 f91842 call 0166ch ; e8 e7 f9 1785 1843 mov word [bp-00eh], 00122h ; c7 46 f2 22 01 1786 1844 mov di, ax ; 89 c7 … … 1802 1860 dec bx ; 4b 1803 1861 test bx, bx ; 85 db 1804 jbe short 01c 79h ; 76 0c1862 jbe short 01cc9h ; 76 0c 1805 1863 mov dx, cx ; 89 ca 1806 1864 add dx, strict byte 00007h ; 83 c2 07 … … 1809 1867 ; sub ah, ah ; 2a e4 1810 1868 test AL, strict byte 080h ; a8 80 1811 je short 01c 68h ; 74 ef1869 je short 01cb8h ; 74 ef 1812 1870 lea dx, [si+006h] ; 8d 54 06 1813 1871 mov AL, strict byte 00ah ; b0 0a … … 1817 1875 add bx, word [bp-00eh] ; 03 5e f2 1818 1876 cmp byte [es:bx+01eh], 000h ; 26 80 7f 1e 00 1819 je short 01 cdbh ; 74 4c1877 je short 01d2bh ; 74 4c 1820 1878 cmp byte [bp-00ch], 000h ; 80 7e f4 00 1821 je short 01c 9ah ; 74 051879 je short 01ceah ; 74 05 1822 1880 mov ax, 000b0h ; b8 b0 00 1823 jmp short 01c 9dh ; eb 031881 jmp short 01cedh ; eb 03 1824 1882 mov ax, 000a0h ; b8 a0 00 1825 1883 mov dx, cx ; 89 ca … … 1839 1897 ; sub ah, ah ; 2a e4 1840 1898 cmp bl, 001h ; 80 fb 01 1841 jne short 01 cdbh ; 75 221899 jne short 01d2bh ; 75 22 1842 1900 cmp al, bl ; 38 d8 1843 jne short 01 cdbh ; 75 1e1901 jne short 01d2bh ; 75 1e 1844 1902 mov bx, strict word 0ffffh ; bb ff ff 1845 1903 dec bx ; 4b 1846 1904 test bx, bx ; 85 db 1847 jbe short 01 cdbh ; 76 161905 jbe short 01d2bh ; 76 16 1848 1906 mov dx, cx ; 89 ca 1849 1907 add dx, strict byte 00007h ; 83 c2 07 … … 1852 1910 ; sub ah, ah ; 2a e4 1853 1911 test AL, strict byte 080h ; a8 80 1854 je short 01 cdbh ; 74 0a1912 je short 01d2bh ; 74 0a 1855 1913 mov ax, strict word 0ffffh ; b8 ff ff 1856 1914 dec ax ; 48 1857 1915 test ax, ax ; 85 c0 1858 jnbe short 01 cd4h ; 77 fb1859 jmp short 01 cc0h ; eb e51916 jnbe short 01d24h ; 77 fb 1917 jmp short 01d10h ; eb e5 1860 1918 mov bx, strict word 00010h ; bb 10 00 1861 1919 dec bx ; 4b 1862 1920 test bx, bx ; 85 db 1863 jbe short 01 cefh ; 76 0c1921 jbe short 01d3fh ; 76 0c 1864 1922 mov dx, cx ; 89 ca 1865 1923 add dx, strict byte 00007h ; 83 c2 07 … … 1868 1926 ; sub ah, ah ; 2a e4 1869 1927 test AL, strict byte 040h ; a8 40 1870 je short 01 cdeh ; 74 ef1928 je short 01d2eh ; 74 ef 1871 1929 lea dx, [si+006h] ; 8d 54 06 1872 1930 mov AL, strict byte 008h ; b0 08 … … 1880 1938 pop bp ; 5d 1881 1939 retn ; c3 1882 ata_cmd_data_in_: ; 0xf1 cff LB 0x2581940 ata_cmd_data_in_: ; 0xf1d4f LB 0x258 1883 1941 push bp ; 55 1884 1942 mov bp, sp ; 89 e5 … … 1911 1969 mov word [bp-00ch], ax ; 89 46 f4 1912 1970 test ax, ax ; 85 c0 1913 jne short 01d 67h ; 75 141971 jne short 01db7h ; 75 14 1914 1972 cmp byte [bp-006h], 001h ; 80 7e fa 01 1915 jne short 01d 60h ; 75 071973 jne short 01db0h ; 75 07 1916 1974 mov word [bp-00ch], 04000h ; c7 46 f4 00 40 1917 jmp short 01d 76h ; eb 161975 jmp short 01dc6h ; eb 16 1918 1976 mov word [bp-00ch], 08000h ; c7 46 f4 00 80 1919 jmp short 01d 76h ; eb 0f1977 jmp short 01dc6h ; eb 0f 1920 1978 cmp byte [bp-006h], 001h ; 80 7e fa 01 1921 jne short 01d 73h ; 75 061979 jne short 01dc3h ; 75 06 1922 1980 shr word [bp-00ch], 002h ; c1 6e f4 02 1923 jmp short 01d 76h ; eb 031981 jmp short 01dc6h ; eb 03 1924 1982 shr word [bp-00ch], 1 ; d1 6e f4 1925 1983 lea dx, [bx+007h] ; 8d 57 07 … … 1928 1986 ; sub ah, ah ; 2a e4 1929 1987 test AL, strict byte 080h ; a8 80 1930 je short 01d 8fh ; 74 0f1988 je short 01ddfh ; 74 0f 1931 1989 mov dx, word [bp-01ch] ; 8b 56 e4 1932 1990 add dx, strict byte 00006h ; 83 c2 06 … … 1934 1992 out DX, AL ; ee 1935 1993 mov dx, strict word 00001h ; ba 01 00 1936 jmp near 01f 4eh ; e9 bf 011994 jmp near 01f9eh ; e9 bf 01 1937 1995 mov es, [bp-00ah] ; 8e 46 f6 1938 1996 mov ax, word [es:si] ; 26 8b 04 … … 1951 2009 mov ax, word [bp-010h] ; 8b 46 f0 1952 2010 test ax, ax ; 85 c0 1953 jne short 01e 2dh ; 75 672011 jne short 01e7dh ; 75 67 1954 2012 mov dx, word [bp-020h] ; 8b 56 e0 1955 2013 add dx, word [bp-014h] ; 03 56 ec 1956 2014 adc ax, word [bp-01eh] ; 13 46 e2 1957 2015 cmp ax, 01000h ; 3d 00 10 1958 jnbe short 01 dd6h ; 77 021959 jne short 01e 01h ; 75 2b2016 jnbe short 01e26h ; 77 02 2017 jne short 01e51h ; 75 2b 1960 2018 mov ax, word [bp-01eh] ; 8b 46 e2 1961 2019 xor al, al ; 30 c0 … … 1982 2040 shr word [bp-01eh], 1 ; d1 6e e2 1983 2041 rcr word [bp-020h], 1 ; d1 5e e0 1984 loop 01e 0ch ; e2 f82042 loop 01e5ch ; e2 f8 1985 2043 mov ax, word [bp-020h] ; 8b 46 e0 1986 2044 mov word [bp-012h], ax ; 89 46 ee … … 2011 2069 out DX, AL ; ee 2012 2070 cmp byte [bp-008h], 000h ; 80 7e f8 00 2013 je short 01e 63h ; 74 052071 je short 01eb3h ; 74 05 2014 2072 mov ax, 000b0h ; b8 b0 00 2015 jmp short 01e 66h ; eb 032073 jmp short 01eb6h ; eb 03 2016 2074 mov ax, 000a0h ; b8 a0 00 2017 2075 movzx dx, byte [bp-018h] ; 0f b6 56 e8 … … 2024 2082 mov ax, word [bp-016h] ; 8b 46 ea 2025 2083 cmp ax, 000c4h ; 3d c4 00 2026 je short 01e 84h ; 74 052084 je short 01ed4h ; 74 05 2027 2085 cmp ax, strict word 00029h ; 3d 29 00 2028 jne short 01e 91h ; 75 0d2086 jne short 01ee1h ; 75 0d 2029 2087 mov ax, word [bp-014h] ; 8b 46 ec 2030 2088 mov word [bp-01ah], ax ; 89 46 e6 2031 2089 mov word [bp-014h], strict word 00001h ; c7 46 ec 01 00 2032 jmp short 01e 96h ; eb 052090 jmp short 01ee6h ; eb 05 2033 2091 mov word [bp-01ah], strict word 00001h ; c7 46 e6 01 00 2034 2092 lea dx, [bx+007h] ; 8d 57 07 … … 2038 2096 mov dl, al ; 88 c2 2039 2097 test AL, strict byte 080h ; a8 80 2040 jne short 01e 96h ; 75 f42098 jne short 01ee6h ; 75 f4 2041 2099 test AL, strict byte 001h ; a8 01 2042 je short 01 eb5h ; 74 0f2100 je short 01f05h ; 74 0f 2043 2101 mov dx, word [bp-01ch] ; 8b 56 e4 2044 2102 add dx, strict byte 00006h ; 83 c2 06 … … 2046 2104 out DX, AL ; ee 2047 2105 mov dx, strict word 00002h ; ba 02 00 2048 jmp near 01f 4eh ; e9 99 002106 jmp near 01f9eh ; e9 99 00 2049 2107 test dl, 008h ; f6 c2 08 2050 jne short 01 ec9h ; 75 0f2108 jne short 01f19h ; 75 0f 2051 2109 mov dx, word [bp-01ch] ; 8b 56 e4 2052 2110 add dx, strict byte 00006h ; 83 c2 06 … … 2054 2112 out DX, AL ; ee 2055 2113 mov dx, strict word 00003h ; ba 03 00 2056 jmp near 01f 4eh ; e9 85 002114 jmp near 01f9eh ; e9 85 00 2057 2115 sti ; fb 2058 2116 cmp di, 0f800h ; 81 ff 00 f8 2059 jc short 01 eddh ; 72 0d2117 jc short 01f2dh ; 72 0d 2060 2118 sub di, 00800h ; 81 ef 00 08 2061 2119 mov ax, word [bp-00eh] ; 8b 46 f2 … … 2063 2121 mov word [bp-00eh], ax ; 89 46 f2 2064 2122 cmp byte [bp-006h], 001h ; 80 7e fa 01 2065 jne short 01 ef0h ; 75 0d2123 jne short 01f40h ; 75 0d 2066 2124 mov dx, bx ; 89 da 2067 2125 mov cx, word [bp-00ch] ; 8b 4e f4 … … 2069 2127 db 0f3h, 066h, 06dh 2070 2128 ; rep insd ; f3 66 6d 2071 jmp short 01 efah ; eb 0a2129 jmp short 01f4ah ; eb 0a 2072 2130 mov dx, bx ; 89 da 2073 2131 mov cx, word [bp-00ch] ; 8b 4e f4 … … 2084 2142 mov dl, al ; 88 c2 2085 2143 test AL, strict byte 080h ; a8 80 2086 jne short 01f 07h ; 75 f42144 jne short 01f57h ; 75 f4 2087 2145 cmp word [bp-014h], strict byte 00000h ; 83 7e ec 00 2088 jne short 01f 2dh ; 75 142146 jne short 01f7dh ; 75 14 2089 2147 and AL, strict byte 0c9h ; 24 c9 2090 2148 cmp AL, strict byte 040h ; 3c 40 2091 je short 01f 43h ; 74 242149 je short 01f93h ; 74 24 2092 2150 mov dx, word [bp-01ch] ; 8b 56 e4 2093 2151 add dx, strict byte 00006h ; 83 c2 06 … … 2095 2153 out DX, AL ; ee 2096 2154 mov dx, strict word 00004h ; ba 04 00 2097 jmp short 01f 4eh ; eb 212155 jmp short 01f9eh ; eb 21 2098 2156 mov al, dl ; 88 d0 2099 2157 and AL, strict byte 0c9h ; 24 c9 2100 2158 cmp AL, strict byte 048h ; 3c 48 2101 je short 01 ecah ; 74 952159 je short 01f1ah ; 74 95 2102 2160 mov dx, word [bp-01ch] ; 8b 56 e4 2103 2161 add dx, strict byte 00006h ; 83 c2 06 … … 2105 2163 out DX, AL ; ee 2106 2164 mov dx, strict word 00005h ; ba 05 00 2107 jmp short 01f 4eh ; eb 0b2165 jmp short 01f9eh ; eb 0b 2108 2166 mov dx, word [bp-01ch] ; 8b 56 e4 2109 2167 add dx, strict byte 00006h ; 83 c2 06 … … 2117 2175 pop bp ; 5d 2118 2176 retn ; c3 2119 _ata_detect: ; 0xf1f 57 LB 0x6172177 _ata_detect: ; 0xf1fa7 LB 0x617 2120 2178 push bp ; 55 2121 2179 mov bp, sp ; 89 e5 … … 2125 2183 mov dx, strict word 0000eh ; ba 0e 00 2126 2184 mov ax, strict word 00040h ; b8 40 00 2127 call 016 1ch ; e8 b3 f62185 call 0166ch ; e8 b3 f6 2128 2186 mov word [bp-024h], ax ; 89 46 dc 2129 2187 mov di, 00122h ; bf 22 01 … … 2143 2201 mov byte [bp-006h], al ; 88 46 fa 2144 2202 mov byte [bp-00eh], al ; 88 46 f2 2145 jmp near 02 4f9h ; e9 48 052203 jmp near 02549h ; e9 48 05 2146 2204 mov ax, 000a0h ; b8 a0 00 2147 2205 lea dx, [si+006h] ; 8d 54 06 … … 2175 2233 ; sub ah, ah ; 2a e4 2176 2234 cmp cl, 055h ; 80 f9 55 2177 jne near 020 abh ; 0f 85 c0 002235 jne near 020fbh ; 0f 85 c0 00 2178 2236 cmp AL, strict byte 0aah ; 3c aa 2179 jne near 020 abh ; 0f 85 ba 002237 jne near 020fbh ; 0f 85 ba 00 2180 2238 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2181 2239 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 2184 2242 mov byte [es:bx+01eh], 001h ; 26 c6 47 1e 01 2185 2243 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2186 call 01c 21h ; e8 18 fc2244 call 01c71h ; e8 18 fc 2187 2245 cmp byte [bp-008h], 000h ; 80 7e f8 00 2188 je short 020 14h ; 74 052246 je short 02064h ; 74 05 2189 2247 mov ax, 000b0h ; b8 b0 00 2190 jmp short 020 17h ; eb 032248 jmp short 02067h ; eb 03 2191 2249 mov ax, 000a0h ; b8 a0 00 2192 2250 lea dx, [si+006h] ; 8d 54 06 … … 2202 2260 ; sub ah, ah ; 2a e4 2203 2261 cmp bl, 001h ; 80 fb 01 2204 jne near 020 abh ; 0f 85 7b 002262 jne near 020fbh ; 0f 85 7b 00 2205 2263 cmp al, bl ; 38 d8 2206 jne near 020 abh ; 0f 85 75 002264 jne near 020fbh ; 0f 85 75 00 2207 2265 lea dx, [si+004h] ; 8d 54 04 2208 2266 in AL, DX ; ec … … 2222 2280 ; sub ah, ah ; 2a e4 2223 2281 cmp bl, 014h ; 80 fb 14 2224 jne short 020 6eh ; 75 182282 jne short 020beh ; 75 18 2225 2283 cmp cl, 0ebh ; 80 f9 eb 2226 jne short 020 6eh ; 75 132284 jne short 020beh ; 75 13 2227 2285 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2228 2286 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 2230 2288 add bx, ax ; 01 c3 2231 2289 mov byte [es:bx+01eh], 003h ; 26 c6 47 1e 03 2232 jmp short 020 abh ; eb 3d2290 jmp short 020fbh ; eb 3d 2233 2291 test bh, bh ; 84 ff 2234 jne short 020 90h ; 75 1e2292 jne short 020e0h ; 75 1e 2235 2293 cmp byte [bp-00ch], 000h ; 80 7e f4 00 2236 jne short 020 90h ; 75 182294 jne short 020e0h ; 75 18 2237 2295 test al, al ; 84 c0 2238 je short 020 90h ; 74 142296 je short 020e0h ; 74 14 2239 2297 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 2240 2298 imul bx, bx, strict byte 00018h ; 6b db 18 … … 2242 2300 add bx, word [bp-028h] ; 03 5e d8 2243 2301 mov byte [es:bx+01eh], 002h ; 26 c6 47 1e 02 2244 jmp short 020 abh ; eb 1b2302 jmp short 020fbh ; eb 1b 2245 2303 cmp bh, 0ffh ; 80 ff ff 2246 jne short 020 abh ; 75 162304 jne short 020fbh ; 75 16 2247 2305 cmp bh, byte [bp-00ch] ; 3a 7e f4 2248 jne short 020 abh ; 75 112306 jne short 020fbh ; 75 11 2249 2307 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2250 2308 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 2263 2321 mov byte [bp-010h], al ; 88 46 f0 2264 2322 cmp AL, strict byte 002h ; 3c 02 2265 jne near 02 2d1h ; 0f 85 03 022323 jne near 02321h ; 0f 85 03 02 2266 2324 mov byte [es:si+01fh], 0ffh ; 26 c6 44 1f ff 2267 2325 mov byte [es:si+022h], 000h ; 26 c6 44 22 00 … … 2276 2334 mov ax, word [bp-028h] ; 8b 46 d8 2277 2335 mov dx, es ; 8c c2 2278 call 01 cffh ; e8 03 fc2336 call 01d4fh ; e8 03 fc 2279 2337 test ax, ax ; 85 c0 2280 je short 021 0bh ; 74 0b2338 je short 0215bh ; 74 0b 2281 2339 push 00104h ; 68 04 01 2282 2340 push strict byte 00007h ; 6a 07 2283 call 019 22h ; e8 1a f82341 call 01972h ; e8 1a f8 2284 2342 add sp, strict byte 00004h ; 83 c4 04 2285 2343 test byte [bp-00260h], 080h ; f6 86 a0 fd 80 … … 2304 2362 mov si, word [bp-001e6h] ; 8b b6 1a fe 2305 2363 cmp si, 00fffh ; 81 fe ff 0f 2306 jne short 021 60h ; 75 102364 jne short 021b0h ; 75 10 2307 2365 cmp ax, strict word 0ffffh ; 3d ff ff 2308 jne short 021 60h ; 75 0b2366 jne short 021b0h ; 75 0b 2309 2367 mov ax, word [bp-00198h] ; 8b 86 68 fe 2310 2368 mov word [bp-020h], ax ; 89 46 e0 … … 2312 2370 mov al, byte [bp-00eh] ; 8a 46 f2 2313 2371 cmp AL, strict byte 001h ; 3c 01 2314 jc short 021 73h ; 72 0c2315 jbe short 021 7bh ; 76 122372 jc short 021c3h ; 72 0c 2373 jbe short 021cbh ; 76 12 2316 2374 cmp AL, strict byte 003h ; 3c 03 2317 je short 021 83h ; 74 162375 je short 021d3h ; 74 16 2318 2376 cmp AL, strict byte 002h ; 3c 02 2319 je short 021 7fh ; 74 0e2320 jmp short 02 1c0h ; eb 4d2377 je short 021cfh ; 74 0e 2378 jmp short 02210h ; eb 4d 2321 2379 test al, al ; 84 c0 2322 jne short 02 1c0h ; 75 492380 jne short 02210h ; 75 49 2323 2381 mov BL, strict byte 01eh ; b3 1e 2324 jmp short 021 85h ; eb 0a2382 jmp short 021d5h ; eb 0a 2325 2383 mov BL, strict byte 026h ; b3 26 2326 jmp short 021 85h ; eb 062384 jmp short 021d5h ; eb 06 2327 2385 mov BL, strict byte 067h ; b3 67 2328 jmp short 021 85h ; eb 022386 jmp short 021d5h ; eb 02 2329 2387 mov BL, strict byte 070h ; b3 70 2330 2388 mov al, bl ; 88 d8 … … 2332 2390 ; inc al ; fe c0 2333 2391 xor ah, ah ; 30 e4 2334 call 016 5ch ; e8 ce f42392 call 016ach ; e8 ce f4 2335 2393 xor ah, ah ; 30 e4 2336 2394 mov dx, ax ; 89 c2 2337 2395 sal dx, 008h ; c1 e2 08 2338 2396 movzx ax, bl ; 0f b6 c3 2339 call 016 5ch ; e8 c1 f42397 call 016ach ; e8 c1 f4 2340 2398 xor ah, ah ; 30 e4 2341 2399 add ax, dx ; 01 d0 … … 2344 2402 add AL, strict byte 002h ; 04 02 2345 2403 xor ah, ah ; 30 e4 2346 call 016 5ch ; e8 b1 f42404 call 016ach ; e8 b1 f4 2347 2405 xor ah, ah ; 30 e4 2348 2406 mov word [bp-036h], ax ; 89 46 ca … … 2350 2408 add AL, strict byte 007h ; 04 07 2351 2409 xor ah, ah ; 30 e4 2352 call 016 5ch ; e8 a3 f42410 call 016ach ; e8 a3 f4 2353 2411 xor ah, ah ; 30 e4 2354 2412 mov word [bp-032h], ax ; 89 46 ce 2355 jmp short 02 1cdh ; eb 0d2413 jmp short 0221dh ; eb 0d 2356 2414 mov bx, word [bp-020h] ; 8b 5e e0 2357 2415 mov cx, si ; 89 f1 2358 2416 mov dx, ss ; 8c d2 2359 2417 lea ax, [bp-036h] ; 8d 46 ca 2360 call 053 4bh ; e8 7e312418 call 05389h ; e8 6c 31 2361 2419 mov bx, 00da2h ; bb a2 0d 2362 2420 mov cx, ds ; 8c d9 2363 2421 mov ax, strict word 00004h ; b8 04 00 2364 call 01 8e1h ; e8 09 f72422 call 01931h ; e8 09 f7 2365 2423 mov ax, word [bp-032h] ; 8b 46 ce 2366 2424 push ax ; 50 … … 2378 2436 push 0012dh ; 68 2d 01 2379 2437 push strict byte 00004h ; 6a 04 2380 call 019 22h ; e8 23 f72438 call 01972h ; e8 23 f7 2381 2439 add sp, strict byte 00014h ; 83 c4 14 2382 2440 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 … … 2411 2469 mov al, byte [bp-00eh] ; 8a 46 f2 2412 2470 cmp AL, strict byte 002h ; 3c 02 2413 jnc short 02 2bch ; 73 602471 jnc short 0230ch ; 73 60 2414 2472 test al, al ; 84 c0 2415 jne short 022 65h ; 75 052473 jne short 022b5h ; 75 05 2416 2474 mov di, strict word 0003dh ; bf 3d 00 2417 jmp short 022 68h ; eb 032475 jmp short 022b8h ; eb 03 2418 2476 mov di, strict word 0004dh ; bf 4d 00 2419 2477 mov dx, word [bp-024h] ; 8b 56 dc … … 2434 2492 xor al, al ; 30 c0 2435 2493 xor ah, ah ; 30 e4 2436 jmp short 022 a6h ; eb 052494 jmp short 022f6h ; eb 05 2437 2495 cmp ah, 00fh ; 80 fc 0f 2438 jnc short 02 2b4h ; 73 0e2496 jnc short 02304h ; 73 0e 2439 2497 movzx bx, ah ; 0f b6 dc 2440 2498 mov es, dx ; 8e c2 … … 2443 2501 db 0feh, 0c4h 2444 2502 ; inc ah ; fe c4 2445 jmp short 022 a1h ; eb ed2503 jmp short 022f1h ; eb ed 2446 2504 neg al ; f6 d8 2447 2505 mov es, dx ; 8e c2 … … 2454 2512 inc byte [bp-006h] ; fe 46 fa 2455 2513 cmp byte [bp-010h], 003h ; 80 7e f0 03 2456 jne near 023 71h ; 0f 85 98 002514 jne near 023c1h ; 0f 85 98 00 2457 2515 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2458 2516 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 2471 2529 mov ax, word [bp-028h] ; 8b 46 d8 2472 2530 mov dx, es ; 8c c2 2473 call 01 cffh ; e8 ec f92531 call 01d4fh ; e8 ec f9 2474 2532 test ax, ax ; 85 c0 2475 je short 023 22h ; 74 0b2533 je short 02372h ; 74 0b 2476 2534 push 00154h ; 68 54 01 2477 2535 push strict byte 00007h ; 6a 07 2478 call 019 22h ; e8 03 f62536 call 01972h ; e8 03 f6 2479 2537 add sp, strict byte 00004h ; 83 c4 04 2480 2538 mov cl, byte [bp-0025fh] ; 8a 8e a1 fd … … 2505 2563 mov al, byte [bp-010h] ; 8a 46 f0 2506 2564 cmp AL, strict byte 003h ; 3c 03 2507 je short 023 a4h ; 74 2c2565 je short 023f4h ; 74 2c 2508 2566 cmp AL, strict byte 002h ; 3c 02 2509 jne near 024 07h ; 0f 85 89 002567 jne near 02457h ; 0f 85 89 00 2510 2568 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 2511 2569 imul bx, bx, strict byte 00018h ; 6b db 18 … … 2519 2577 shr word [bp-02eh], 1 ; d1 6e d2 2520 2578 rcr word [bp-030h], 1 ; d1 5e d0 2521 loop 023 9ch ; e2 f82579 loop 023ech ; e2 f8 2522 2580 movzx dx, byte [bp-001bfh] ; 0f b6 96 41 fe 2523 2581 sal dx, 008h ; c1 e2 08 … … 2525 2583 or dx, ax ; 09 c2 2526 2584 mov byte [bp-012h], 00fh ; c6 46 ee 0f 2527 jmp short 02 3c2h ; eb 092585 jmp short 02412h ; eb 09 2528 2586 dec byte [bp-012h] ; fe 4e ee 2529 2587 cmp byte [bp-012h], 000h ; 80 7e ee 00 2530 jbe short 02 3cfh ; 76 0d2588 jbe short 0241fh ; 76 0d 2531 2589 movzx cx, byte [bp-012h] ; 0f b6 4e ee 2532 2590 mov ax, strict word 00001h ; b8 01 00 2533 2591 sal ax, CL ; d3 e0 2534 2592 test dx, ax ; 85 c2 2535 je short 02 3b9h ; 74 ea2593 je short 02409h ; 74 ea 2536 2594 xor di, di ; 31 ff 2537 jmp short 02 3d8h ; eb 052595 jmp short 02428h ; eb 05 2538 2596 cmp di, strict byte 00014h ; 83 ff 14 2539 jnl short 02 3edh ; 7d 152597 jnl short 0243dh ; 7d 15 2540 2598 mov si, di ; 89 fe 2541 2599 add si, di ; 01 fe … … 2545 2603 mov byte [bp+si-05fh], al ; 88 42 a1 2546 2604 inc di ; 47 2547 jmp short 02 3d3h ; eb e62605 jmp short 02423h ; eb e6 2548 2606 mov byte [bp-038h], 000h ; c6 46 c8 00 2549 2607 mov di, strict word 00027h ; bf 27 00 2550 jmp short 02 3fbh ; eb 052608 jmp short 0244bh ; eb 05 2551 2609 dec di ; 4f 2552 2610 test di, di ; 85 ff 2553 jle short 024 07h ; 7e 0c2611 jle short 02457h ; 7e 0c 2554 2612 cmp byte [bp+di-060h], 020h ; 80 7b a0 20 2555 jne short 024 07h ; 75 062613 jne short 02457h ; 75 06 2556 2614 mov byte [bp+di-060h], 000h ; c6 43 a0 00 2557 jmp short 02 3f6h ; eb ef2615 jmp short 02446h ; eb ef 2558 2616 mov al, byte [bp-010h] ; 8a 46 f0 2559 2617 cmp AL, strict byte 003h ; 3c 03 2560 je short 024 6ah ; 74 5c2618 je short 024bah ; 74 5c 2561 2619 cmp AL, strict byte 002h ; 3c 02 2562 je short 024 1bh ; 74 092620 je short 0246bh ; 74 09 2563 2621 cmp AL, strict byte 001h ; 3c 01 2564 je near 02 4d1h ; 0f 84 b9 002565 jmp near 02 4f0h ; e9 d5 002622 je near 02521h ; 0f 84 b9 00 2623 jmp near 02540h ; e9 d5 00 2566 2624 cmp byte [bp-008h], 000h ; 80 7e f8 00 2567 je short 024 26h ; 74 052625 je short 02476h ; 74 05 2568 2626 mov ax, 0017fh ; b8 7f 01 2569 jmp short 024 29h ; eb 032627 jmp short 02479h ; eb 03 2570 2628 mov ax, 00186h ; b8 86 01 2571 2629 push ax ; 50 … … 2574 2632 push 0018dh ; 68 8d 01 2575 2633 push strict byte 00002h ; 6a 02 2576 call 019 22h ; e8 eb f42634 call 01972h ; e8 eb f4 2577 2635 add sp, strict byte 00008h ; 83 c4 08 2578 2636 xor di, di ; 31 ff … … 2580 2638 inc di ; 47 2581 2639 test ax, ax ; 85 c0 2582 je short 024 53h ; 74 0e2640 je short 024a3h ; 74 0e 2583 2641 push ax ; 50 2584 2642 push 00198h ; 68 98 01 2585 2643 push strict byte 00002h ; 6a 02 2586 call 019 22h ; e8 d4 f42644 call 01972h ; e8 d4 f4 2587 2645 add sp, strict byte 00006h ; 83 c4 06 2588 jmp short 024 3ch ; eb e92646 jmp short 0248ch ; eb e9 2589 2647 push dword [bp-030h] ; 66 ff 76 d0 2590 2648 movzx ax, byte [bp-012h] ; 0f b6 46 ee … … 2592 2650 push 0019bh ; 68 9b 01 2593 2651 push strict byte 00002h ; 6a 02 2594 call 019 22h ; e8 be f42652 call 01972h ; e8 be f4 2595 2653 add sp, strict byte 0000ah ; 83 c4 0a 2596 jmp near 02 4f0h ; e9 86 002654 jmp near 02540h ; e9 86 00 2597 2655 cmp byte [bp-008h], 000h ; 80 7e f8 00 2598 je short 024 75h ; 74 052656 je short 024c5h ; 74 05 2599 2657 mov ax, 0017fh ; b8 7f 01 2600 jmp short 024 78h ; eb 032658 jmp short 024c8h ; eb 03 2601 2659 mov ax, 00186h ; b8 86 01 2602 2660 push ax ; 50 … … 2605 2663 push 0018dh ; 68 8d 01 2606 2664 push strict byte 00002h ; 6a 02 2607 call 019 22h ; e8 9c f42665 call 01972h ; e8 9c f4 2608 2666 add sp, strict byte 00008h ; 83 c4 08 2609 2667 xor di, di ; 31 ff … … 2611 2669 inc di ; 47 2612 2670 test ax, ax ; 85 c0 2613 je short 024 a2h ; 74 0e2671 je short 024f2h ; 74 0e 2614 2672 push ax ; 50 2615 2673 push 00198h ; 68 98 01 2616 2674 push strict byte 00002h ; 6a 02 2617 call 019 22h ; e8 85 f42675 call 01972h ; e8 85 f4 2618 2676 add sp, strict byte 00006h ; 83 c4 06 2619 jmp short 024 8bh ; eb e92677 jmp short 024dbh ; eb e9 2620 2678 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2621 2679 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 2623 2681 add bx, ax ; 01 c3 2624 2682 cmp byte [es:bx+01fh], 005h ; 26 80 7f 1f 05 2625 jne short 02 4bfh ; 75 0a2683 jne short 0250fh ; 75 0a 2626 2684 movzx ax, byte [bp-012h] ; 0f b6 46 ee 2627 2685 push ax ; 50 2628 2686 push 001bbh ; 68 bb 01 2629 jmp short 02 4c7h ; eb 082687 jmp short 02517h ; eb 08 2630 2688 movzx ax, byte [bp-012h] ; 0f b6 46 ee 2631 2689 push ax ; 50 2632 2690 push 001d5h ; 68 d5 01 2633 2691 push strict byte 00002h ; 6a 02 2634 call 019 22h ; e8 56 f42692 call 01972h ; e8 56 f4 2635 2693 add sp, strict byte 00006h ; 83 c4 06 2636 jmp short 02 4f0h ; eb 1f2694 jmp short 02540h ; eb 1f 2637 2695 cmp byte [bp-008h], 000h ; 80 7e f8 00 2638 je short 02 4dch ; 74 052696 je short 0252ch ; 74 05 2639 2697 mov ax, 0017fh ; b8 7f 01 2640 jmp short 02 4dfh ; eb 032698 jmp short 0252fh ; eb 03 2641 2699 mov ax, 00186h ; b8 86 01 2642 2700 push ax ; 50 … … 2645 2703 push 001e7h ; 68 e7 01 2646 2704 push strict byte 00002h ; 6a 02 2647 call 019 22h ; e8 35 f42705 call 01972h ; e8 35 f4 2648 2706 add sp, strict byte 00008h ; 83 c4 08 2649 2707 inc byte [bp-00eh] ; fe 46 f2 2650 2708 cmp byte [bp-00eh], 008h ; 80 7e f2 08 2651 jnc short 025 47h ; 73 4e2709 jnc short 02597h ; 73 4e 2652 2710 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 2653 2711 mov ax, bx ; 89 d8 … … 2677 2735 out DX, AL ; ee 2678 2736 test cl, cl ; 84 c9 2679 je near 0 1fb1h ; 0f 84 70 fa2737 je near 02001h ; 0f 84 70 fa 2680 2738 mov ax, 000b0h ; b8 b0 00 2681 jmp near 0 1fb4h ; e9 6d fa2739 jmp near 02004h ; e9 6d fa 2682 2740 mov al, byte [bp-006h] ; 8a 46 fa 2683 2741 les bx, [bp-028h] ; c4 5e d8 … … 2688 2746 mov dx, strict word 00075h ; ba 75 00 2689 2747 mov ax, strict word 00040h ; b8 40 00 2690 call 016 0eh ; e8 a7 f02748 call 0165eh ; e8 a7 f0 2691 2749 lea sp, [bp-004h] ; 8d 66 fc 2692 2750 pop di ; 5f … … 2694 2752 pop bp ; 5d 2695 2753 retn ; c3 2696 ata_cmd_data_out_: ; 0xf25 6e LB 0x21a2754 ata_cmd_data_out_: ; 0xf25be LB 0x21a 2697 2755 push bp ; 55 2698 2756 mov bp, sp ; 89 e5 … … 2723 2781 mov byte [bp-008h], al ; 88 46 f8 2724 2782 cmp AL, strict byte 001h ; 3c 01 2725 jne short 02 5c2h ; 75 072783 jne short 02612h ; 75 07 2726 2784 mov word [bp-012h], 00080h ; c7 46 ee 80 00 2727 jmp short 02 5c7h ; eb 052785 jmp short 02617h ; eb 05 2728 2786 mov word [bp-012h], 00100h ; c7 46 ee 00 01 2729 2787 lea dx, [bx+007h] ; 8d 57 07 … … 2732 2790 ; sub ah, ah ; 2a e4 2733 2791 test AL, strict byte 080h ; a8 80 2734 je short 02 5e0h ; 74 0f2792 je short 02630h ; 74 0f 2735 2793 mov dx, word [bp-00ch] ; 8b 56 f4 2736 2794 add dx, strict byte 00006h ; 83 c2 06 … … 2738 2796 out DX, AL ; ee 2739 2797 mov dx, strict word 00001h ; ba 01 00 2740 jmp near 027 7fh ; e9 9f 012798 jmp near 027cfh ; e9 9f 01 2741 2799 mov es, [bp-00ah] ; 8e 46 f6 2742 2800 mov ax, word [es:di] ; 26 8b 05 … … 2755 2813 mov ax, word [bp-010h] ; 8b 46 f0 2756 2814 test ax, ax ; 85 c0 2757 jne short 026 7eh ; 75 672815 jne short 026ceh ; 75 67 2758 2816 mov dx, word [bp-01eh] ; 8b 56 e2 2759 2817 add dx, word [bp-00eh] ; 03 56 f2 2760 2818 adc ax, word [bp-01ch] ; 13 46 e4 2761 2819 cmp ax, 01000h ; 3d 00 10 2762 jnbe short 026 27h ; 77 022763 jne short 026 52h ; 75 2b2820 jnbe short 02677h ; 77 02 2821 jne short 026a2h ; 75 2b 2764 2822 mov ax, word [bp-01ch] ; 8b 46 e4 2765 2823 xor al, al ; 30 c0 … … 2786 2844 shr word [bp-01ch], 1 ; d1 6e e4 2787 2845 rcr word [bp-01eh], 1 ; d1 5e e2 2788 loop 026 5dh ; e2 f82846 loop 026adh ; e2 f8 2789 2847 mov ax, word [bp-01eh] ; 8b 46 e2 2790 2848 mov word [bp-016h], ax ; 89 46 ea … … 2815 2873 out DX, AL ; ee 2816 2874 cmp byte [bp-006h], 000h ; 80 7e fa 00 2817 je short 02 6b4h ; 74 052875 je short 02704h ; 74 05 2818 2876 mov ax, 000b0h ; b8 b0 00 2819 jmp short 02 6b7h ; eb 032877 jmp short 02707h ; eb 03 2820 2878 mov ax, 000a0h ; b8 a0 00 2821 2879 movzx dx, byte [bp-014h] ; 0f b6 56 ec … … 2832 2890 mov dl, al ; 88 c2 2833 2891 test AL, strict byte 080h ; a8 80 2834 jne short 02 6c8h ; 75 f42892 jne short 02718h ; 75 f4 2835 2893 test AL, strict byte 001h ; a8 01 2836 je short 02 6e7h ; 74 0f2894 je short 02737h ; 74 0f 2837 2895 mov dx, word [bp-00ch] ; 8b 56 f4 2838 2896 add dx, strict byte 00006h ; 83 c2 06 … … 2840 2898 out DX, AL ; ee 2841 2899 mov dx, strict word 00002h ; ba 02 00 2842 jmp near 027 7fh ; e9 98 002900 jmp near 027cfh ; e9 98 00 2843 2901 test dl, 008h ; f6 c2 08 2844 jne short 02 6fbh ; 75 0f2902 jne short 0274bh ; 75 0f 2845 2903 mov dx, word [bp-00ch] ; 8b 56 f4 2846 2904 add dx, strict byte 00006h ; 83 c2 06 … … 2848 2906 out DX, AL ; ee 2849 2907 mov dx, strict word 00003h ; ba 03 00 2850 jmp near 027 7fh ; e9 84 002908 jmp near 027cfh ; e9 84 00 2851 2909 sti ; fb 2852 2910 cmp si, 0f800h ; 81 fe 00 f8 2853 jc short 027 0fh ; 72 0d2911 jc short 0275fh ; 72 0d 2854 2912 sub si, 00800h ; 81 ee 00 08 2855 2913 mov ax, word [bp-018h] ; 8b 46 e8 … … 2857 2915 mov word [bp-018h], ax ; 89 46 e8 2858 2916 cmp byte [bp-008h], 001h ; 80 7e f8 01 2859 jne short 027 23h ; 75 0e2917 jne short 02773h ; 75 0e 2860 2918 mov dx, bx ; 89 da 2861 2919 mov cx, word [bp-012h] ; 8b 4e ee … … 2863 2921 db 0f3h, 066h, 026h, 06fh 2864 2922 ; rep es outsd ; f3 66 26 6f 2865 jmp short 027 2eh ; eb 0b2923 jmp short 0277eh ; eb 0b 2866 2924 mov dx, bx ; 89 da 2867 2925 mov cx, word [bp-012h] ; 8b 4e ee … … 2878 2936 mov dl, al ; 88 c2 2879 2937 test AL, strict byte 080h ; a8 80 2880 jne short 027 38h ; 75 f42938 jne short 02788h ; 75 f4 2881 2939 cmp word [bp-00eh], strict byte 00000h ; 83 7e f2 00 2882 jne short 027 5eh ; 75 142940 jne short 027aeh ; 75 14 2883 2941 and AL, strict byte 0e9h ; 24 e9 2884 2942 cmp AL, strict byte 040h ; 3c 40 2885 je short 027 74h ; 74 242943 je short 027c4h ; 74 24 2886 2944 mov dx, word [bp-00ch] ; 8b 56 f4 2887 2945 add dx, strict byte 00006h ; 83 c2 06 … … 2889 2947 out DX, AL ; ee 2890 2948 mov dx, strict word 00006h ; ba 06 00 2891 jmp short 027 7fh ; eb 212949 jmp short 027cfh ; eb 21 2892 2950 mov al, dl ; 88 d0 2893 2951 and AL, strict byte 0c9h ; 24 c9 2894 2952 cmp AL, strict byte 048h ; 3c 48 2895 je short 02 6fch ; 74 962953 je short 0274ch ; 74 96 2896 2954 mov dx, word [bp-00ch] ; 8b 56 f4 2897 2955 add dx, strict byte 00006h ; 83 c2 06 … … 2899 2957 out DX, AL ; ee 2900 2958 mov dx, strict word 00007h ; ba 07 00 2901 jmp short 027 7fh ; eb 0b2959 jmp short 027cfh ; eb 0b 2902 2960 mov dx, word [bp-00ch] ; 8b 56 f4 2903 2961 add dx, strict byte 00006h ; 83 c2 06 … … 2911 2969 pop bp ; 5d 2912 2970 retn ; c3 2913 @ata_read_sectors: ; 0xf27 88 LB 0x7a2971 @ata_read_sectors: ; 0xf27d8 LB 0x7a 2914 2972 push bp ; 55 2915 2973 mov bp, sp ; 89 e5 … … 2925 2983 mov ax, word [es:si+012h] ; 26 8b 44 12 2926 2984 test ax, ax ; 85 c0 2927 je short 02 7b6h ; 74 0d2985 je short 02806h ; 74 0d 2928 2986 movzx di, bl ; 0f b6 fb 2929 2987 imul di, di, strict byte 00018h ; 6b ff 18 2930 2988 mov [bp-006h], es ; 8c 46 fa 2931 2989 add di, si ; 01 f7 2932 jmp short 02 7e2h ; eb 2c2990 jmp short 02832h ; eb 2c 2933 2991 mov di, word [es:si] ; 26 8b 3c 2934 2992 add di, cx ; 01 cf … … 2936 2994 adc ax, word [es:si+002h] ; 26 13 44 02 2937 2995 cmp ax, 01000h ; 3d 00 10 2938 jnbe short 02 7c9h ; 77 022939 jne short 02 7d5h ; 75 0c2996 jnbe short 02819h ; 77 02 2997 jne short 02825h ; 75 0c 2940 2998 mov bx, strict word 00024h ; bb 24 00 2941 2999 mov ax, si ; 89 f0 2942 3000 mov dx, es ; 8c c2 2943 call 01 cffh ; e8 2c f52944 jmp short 02 7f9h ; eb 243001 call 01d4fh ; e8 2c f5 3002 jmp short 02849h ; eb 24 2945 3003 movzx ax, bl ; 0f b6 c3 2946 3004 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 2952 3010 mov ax, si ; 89 f0 2953 3011 mov dx, es ; 8c c2 2954 call 01 cffh ; e8 0f f53012 call 01d4fh ; e8 0f f5 2955 3013 mov es, [bp-006h] ; 8e 46 fa 2956 3014 mov word [es:di+024h], 00200h ; 26 c7 45 24 00 02 … … 2960 3018 pop bp ; 5d 2961 3019 retn 00004h ; c2 04 00 2962 @ata_write_sectors: ; 0xf28 02 LB 0x3d3020 @ata_write_sectors: ; 0xf2852 LB 0x3d 2963 3021 push bp ; 55 2964 3022 mov bp, sp ; 89 e5 … … 2967 3025 mov cx, word [es:si+00ah] ; 26 8b 4c 0a 2968 3026 cmp word [es:si+012h], strict byte 00000h ; 26 83 7c 12 00 2969 je short 028 20h ; 74 0c3027 je short 02870h ; 74 0c 2970 3028 mov bx, strict word 00030h ; bb 30 00 2971 3029 mov ax, si ; 89 f0 2972 3030 mov dx, es ; 8c c2 2973 call 025 6eh ; e8 50 fd2974 jmp short 028 37h ; eb 173031 call 025beh ; e8 50 fd 3032 jmp short 02887h ; eb 17 2975 3033 xor ax, ax ; 31 c0 2976 3034 mov dx, word [es:si] ; 26 8b 14 … … 2978 3036 adc ax, word [es:si+002h] ; 26 13 44 02 2979 3037 cmp ax, 01000h ; 3d 00 10 2980 jnbe short 028 32h ; 77 022981 jne short 028 14h ; 75 e23038 jnbe short 02882h ; 77 02 3039 jne short 02864h ; 75 e2 2982 3040 mov bx, strict word 00034h ; bb 34 00 2983 jmp short 028 17h ; eb e03041 jmp short 02867h ; eb e0 2984 3042 lea sp, [bp-002h] ; 8d 66 fe 2985 3043 pop si ; 5e 2986 3044 pop bp ; 5d 2987 3045 retn 00004h ; c2 04 00 2988 ata_cmd_packet_: ; 0xf28 3f LB 0x2e83046 ata_cmd_packet_: ; 0xf288f LB 0x2e8 2989 3047 push bp ; 55 2990 3048 mov bp, sp ; 89 e5 … … 2997 3055 mov dx, strict word 0000eh ; ba 0e 00 2998 3056 mov ax, strict word 00040h ; b8 40 00 2999 call 016 1ch ; e8 c6 ed3057 call 0166ch ; e8 c6 ed 3000 3058 mov word [bp-012h], 00122h ; c7 46 ee 22 01 3001 3059 mov word [bp-00eh], ax ; 89 46 f2 … … 3006 3064 mov byte [bp-006h], ah ; 88 66 fa 3007 3065 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 3008 jne short 028 91h ; 75 1f3066 jne short 028e1h ; 75 1f 3009 3067 mov bx, 00da2h ; bb a2 0d 3010 3068 mov cx, ds ; 8c d9 3011 3069 mov ax, strict word 00004h ; b8 04 00 3012 call 01 8e1h ; e8 64 f03070 call 01931h ; e8 64 f0 3013 3071 push 00201h ; 68 01 02 3014 3072 push 00210h ; 68 10 02 3015 3073 push strict byte 00004h ; 6a 04 3016 call 019 22h ; e8 9a f03074 call 01972h ; e8 9a f0 3017 3075 add sp, strict byte 00006h ; 83 c4 06 3018 3076 mov dx, strict word 00001h ; ba 01 00 3019 jmp near 02b 1ch ; e9 8b 023077 jmp near 02b6ch ; e9 8b 02 3020 3078 test byte [bp+004h], 001h ; f6 46 04 01 3021 jne short 028 8bh ; 75 f43079 jne short 028dbh ; 75 f4 3022 3080 xor ah, ah ; 30 e4 3023 3081 imul ax, ax, strict byte 00006h ; 6b c0 06 … … 3037 3095 mov al, byte [bp-008h] ; 8a 46 f8 3038 3096 cmp AL, strict byte 00ch ; 3c 0c 3039 jnc short 02 8d4h ; 73 063097 jnc short 02924h ; 73 06 3040 3098 mov byte [bp-008h], 00ch ; c6 46 f8 0c 3041 jmp short 02 8dah ; eb 063042 jbe short 02 8dah ; 76 043099 jmp short 0292ah ; eb 06 3100 jbe short 0292ah ; 76 04 3043 3101 mov byte [bp-008h], 010h ; c6 46 f8 10 3044 3102 shr byte [bp-008h], 1 ; d0 6e f8 … … 3053 3111 ; sub ah, ah ; 2a e4 3054 3112 test AL, strict byte 080h ; a8 80 3055 je short 029 02h ; 74 063113 je short 02952h ; 74 06 3056 3114 mov dx, strict word 00002h ; ba 02 00 3057 jmp near 02b 1ch ; e9 1a 023115 jmp near 02b6ch ; e9 1a 02 3058 3116 mov dx, word [bp-010h] ; 8b 56 f0 3059 3117 add dx, strict byte 00006h ; 83 c2 06 … … 3067 3125 out DX, AL ; ee 3068 3126 cmp byte [bp-006h], 000h ; 80 7e fa 00 3069 je short 029 22h ; 74 053127 je short 02972h ; 74 05 3070 3128 mov ax, 000b0h ; b8 b0 00 3071 jmp short 029 25h ; eb 033129 jmp short 02975h ; eb 03 3072 3130 mov ax, 000a0h ; b8 a0 00 3073 3131 lea dx, [bx+006h] ; 8d 57 06 … … 3082 3140 mov dl, al ; 88 c2 3083 3141 test AL, strict byte 080h ; a8 80 3084 jne short 029 2fh ; 75 f43142 jne short 0297fh ; 75 f4 3085 3143 test AL, strict byte 001h ; a8 01 3086 je short 029 4eh ; 74 0f3144 je short 0299eh ; 74 0f 3087 3145 mov dx, word [bp-010h] ; 8b 56 f0 3088 3146 add dx, strict byte 00006h ; 83 c2 06 … … 3090 3148 out DX, AL ; ee 3091 3149 mov dx, strict word 00003h ; ba 03 00 3092 jmp near 02b 1ch ; e9 ce 013150 jmp near 02b6ch ; e9 ce 01 3093 3151 test dl, 008h ; f6 c2 08 3094 jne short 029 62h ; 75 0f3152 jne short 029b2h ; 75 0f 3095 3153 mov dx, word [bp-010h] ; 8b 56 f0 3096 3154 add dx, strict byte 00006h ; 83 c2 06 … … 3098 3156 out DX, AL ; ee 3099 3157 mov dx, strict word 00004h ; ba 04 00 3100 jmp near 02b 1ch ; e9 ba 013158 jmp near 02b6ch ; e9 ba 01 3101 3159 sti ; fb 3102 3160 mov ax, di ; 89 f8 … … 3111 3169 ; rep es outsw ; f3 26 6f 3112 3170 cmp byte [bp+00ah], 000h ; 80 7e 0a 00 3113 jne short 029 8bh ; 75 0b3171 jne short 029dbh ; 75 0b 3114 3172 lea dx, [bx+007h] ; 8d 57 07 3115 3173 in AL, DX ; ec … … 3117 3175 ; sub ah, ah ; 2a e4 3118 3176 mov dl, al ; 88 c2 3119 jmp near 02 afdh ; e9 72 013177 jmp near 02b4dh ; e9 72 01 3120 3178 lea dx, [bx+007h] ; 8d 57 07 3121 3179 in AL, DX ; ec … … 3124 3182 mov dl, al ; 88 c2 3125 3183 test AL, strict byte 080h ; a8 80 3126 jne short 029 8bh ; 75 f43184 jne short 029dbh ; 75 f4 3127 3185 test AL, strict byte 088h ; a8 88 3128 je near 02 afdh ; 0f 84 60 013186 je near 02b4dh ; 0f 84 60 01 3129 3187 test AL, strict byte 001h ; a8 01 3130 je short 029 ach ; 74 0b3188 je short 029fch ; 74 0b 3131 3189 mov dx, word [bp-010h] ; 8b 56 f0 3132 3190 add dx, strict byte 00006h ; 83 c2 06 3133 3191 mov AL, strict byte 008h ; b0 08 3134 3192 out DX, AL ; ee 3135 jmp short 029 48h ; eb 9c3193 jmp short 02998h ; eb 9c 3136 3194 mov al, dl ; 88 d0 3137 3195 and AL, strict byte 0c9h ; 24 c9 3138 3196 cmp AL, strict byte 048h ; 3c 48 3139 je short 02 9bfh ; 74 0b3197 je short 02a0fh ; 74 0b 3140 3198 mov dx, word [bp-010h] ; 8b 56 f0 3141 3199 add dx, strict byte 00006h ; 83 c2 06 3142 3200 mov AL, strict byte 008h ; b0 08 3143 3201 out DX, AL ; ee 3144 jmp short 029 5ch ; eb 9d3202 jmp short 029ach ; eb 9d 3145 3203 mov ax, word [bp+00ch] ; 8b 46 0c 3146 3204 shr ax, 004h ; c1 e8 04 … … 3165 3223 mov ax, word [bp+004h] ; 8b 46 04 3166 3224 cmp ax, cx ; 39 c8 3167 jbe short 02 9ffh ; 76 0c3225 jbe short 02a4fh ; 76 0c 3168 3226 mov ax, cx ; 89 c8 3169 3227 sub word [bp+004h], cx ; 29 4e 04 3170 3228 xor ax, cx ; 31 c8 3171 3229 mov word [bp-014h], ax ; 89 46 ec 3172 jmp short 02a 09h ; eb 0a3230 jmp short 02a59h ; eb 0a 3173 3231 mov cx, ax ; 89 c1 3174 3232 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 3176 3234 xor ax, ax ; 31 c0 3177 3235 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 3178 jne short 02a 32h ; 75 213236 jne short 02a82h ; 75 21 3179 3237 mov dx, word [bp-014h] ; 8b 56 ec 3180 3238 cmp dx, word [bp+006h] ; 3b 56 06 3181 jbe short 02a 32h ; 76 193239 jbe short 02a82h ; 76 19 3182 3240 mov ax, word [bp-014h] ; 8b 46 ec 3183 3241 sub ax, word [bp+006h] ; 2b 46 06 … … 3188 3246 mov word [bp+006h], ax ; 89 46 06 3189 3247 mov word [bp+008h], ax ; 89 46 08 3190 jmp short 02a 3eh ; eb 0c3248 jmp short 02a8eh ; eb 0c 3191 3249 mov word [bp-00ch], ax ; 89 46 f4 3192 3250 mov dx, word [bp-014h] ; 8b 56 ec … … 3196 3254 mov al, byte [bp-00ah] ; 8a 46 f6 3197 3255 test cl, 003h ; f6 c1 03 3198 je short 02a 4bh ; 74 023256 je short 02a9bh ; 74 02 3199 3257 xor al, al ; 30 c0 3200 3258 test byte [bp-014h], 003h ; f6 46 ec 03 3201 je short 02a 53h ; 74 023259 je short 02aa3h ; 74 02 3202 3260 xor al, al ; 30 c0 3203 3261 test byte [bp-00ch], 003h ; f6 46 f4 03 3204 je short 02a 5bh ; 74 023262 je short 02aabh ; 74 02 3205 3263 xor al, al ; 30 c0 3206 3264 test byte [bp-014h], 001h ; f6 46 ec 01 3207 je short 02a 73h ; 74 123265 je short 02ac3h ; 74 12 3208 3266 inc word [bp-014h] ; ff 46 ec 3209 3267 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 3210 jbe short 02a 73h ; 76 093268 jbe short 02ac3h ; 76 09 3211 3269 test byte [bp-00ch], 001h ; f6 46 f4 01 3212 je short 02a 73h ; 74 033270 je short 02ac3h ; 74 03 3213 3271 dec word [bp-00ch] ; ff 4e f4 3214 3272 cmp AL, strict byte 001h ; 3c 01 3215 jne short 02a 84h ; 75 0d3273 jne short 02ad4h ; 75 0d 3216 3274 shr word [bp-014h], 002h ; c1 6e ec 02 3217 3275 shr cx, 002h ; c1 e9 02 3218 3276 shr word [bp-00ch], 002h ; c1 6e f4 02 3219 jmp short 02a 8ch ; eb 083277 jmp short 02adch ; eb 08 3220 3278 shr word [bp-014h], 1 ; d1 6e ec 3221 3279 shr cx, 1 ; d1 e9 3222 3280 shr word [bp-00ch], 1 ; d1 6e f4 3223 3281 cmp AL, strict byte 001h ; 3c 01 3224 jne short 02 abch ; 75 2c3282 jne short 02b0ch ; 75 2c 3225 3283 test cx, cx ; 85 c9 3226 je short 02a 9eh ; 74 0a3284 je short 02aeeh ; 74 0a 3227 3285 mov dx, bx ; 89 da 3228 3286 push eax ; 66 50 3229 3287 in eax, DX ; 66 ed 3230 loop 02a 98h ; e2 fc3288 loop 02ae8h ; e2 fc 3231 3289 pop eax ; 66 58 3232 3290 mov dx, bx ; 89 da … … 3237 3295 mov ax, word [bp-00ch] ; 8b 46 f4 3238 3296 test ax, ax ; 85 c0 3239 je short 02 adbh ; 74 2b3297 je short 02b2bh ; 74 2b 3240 3298 mov cx, ax ; 89 c1 3241 3299 push eax ; 66 50 3242 3300 in eax, DX ; 66 ed 3243 loop 02 ab4h ; e2 fc3301 loop 02b04h ; e2 fc 3244 3302 pop eax ; 66 58 3245 jmp short 02 adbh ; eb 1f3303 jmp short 02b2bh ; eb 1f 3246 3304 test cx, cx ; 85 c9 3247 je short 02 ac5h ; 74 053305 je short 02b15h ; 74 05 3248 3306 mov dx, bx ; 89 da 3249 3307 in ax, DX ; ed 3250 loop 02 ac2h ; e2 fd3308 loop 02b12h ; e2 fd 3251 3309 mov dx, bx ; 89 da 3252 3310 mov cx, word [bp-014h] ; 8b 4e ec … … 3255 3313 mov ax, word [bp-00ch] ; 8b 46 f4 3256 3314 test ax, ax ; 85 c0 3257 je short 02 adbh ; 74 053315 je short 02b2bh ; 74 05 3258 3316 mov cx, ax ; 89 c1 3259 3317 in ax, DX ; ed 3260 loop 02 ad8h ; e2 fd3318 loop 02b28h ; e2 fd 3261 3319 add word [bp+00ch], si ; 01 76 0c 3262 3320 xor ax, ax ; 31 c0 … … 3269 3327 mov ax, word [bp-016h] ; 8b 46 ea 3270 3328 mov word [es:si+018h], ax ; 26 89 44 18 3271 jmp near 029 8bh ; e9 8e fe3329 jmp near 029dbh ; e9 8e fe 3272 3330 mov al, dl ; 88 d0 3273 3331 and AL, strict byte 0e9h ; 24 e9 3274 3332 cmp AL, strict byte 040h ; 3c 40 3275 je short 02b 11h ; 74 0c3333 je short 02b61h ; 74 0c 3276 3334 mov dx, word [bp-010h] ; 8b 56 f0 3277 3335 add dx, strict byte 00006h ; 83 c2 06 3278 3336 mov AL, strict byte 008h ; b0 08 3279 3337 out DX, AL ; ee 3280 jmp near 029 5ch ; e9 4b fe3338 jmp near 029ach ; e9 4b fe 3281 3339 mov dx, word [bp-010h] ; 8b 56 f0 3282 3340 add dx, strict byte 00006h ; 83 c2 06 … … 3290 3348 pop bp ; 5d 3291 3349 retn 0000ch ; c2 0c 00 3292 ata_soft_reset_: ; 0xf2b 27 LB 0x803350 ata_soft_reset_: ; 0xf2b77 LB 0x80 3293 3351 push bp ; 55 3294 3352 mov bp, sp ; 89 e5 … … 3300 3358 mov dx, strict word 0000eh ; ba 0e 00 3301 3359 mov ax, strict word 00040h ; b8 40 00 3302 call 016 1ch ; e8 e3 ea3360 call 0166ch ; e8 e3 ea 3303 3361 mov dx, bx ; 89 da 3304 3362 shr dx, 1 ; d1 ea … … 3315 3373 out DX, AL ; ee 3316 3374 cmp byte [bp-008h], 000h ; 80 7e f8 00 3317 je short 02b 69h ; 74 053375 je short 02bb9h ; 74 05 3318 3376 mov ax, 000b0h ; b8 b0 00 3319 jmp short 02b 6ch ; eb 033377 jmp short 02bbch ; eb 03 3320 3378 mov ax, 000a0h ; b8 a0 00 3321 3379 mov dx, cx ; 89 ca … … 3332 3390 ; sub ah, ah ; 2a e4 3333 3391 test AL, strict byte 080h ; a8 80 3334 jne short 02b 7ah ; 75 f43392 jne short 02bcah ; 75 f4 3335 3393 and AL, strict byte 0e9h ; 24 e9 3336 3394 cmp AL, strict byte 040h ; 3c 40 3337 je short 02b 97h ; 74 0b3395 je short 02be7h ; 74 0b 3338 3396 lea dx, [bx+006h] ; 8d 57 06 3339 3397 mov AL, strict byte 008h ; b0 08 3340 3398 out DX, AL ; ee 3341 3399 mov ax, strict word 00001h ; b8 01 00 3342 jmp short 02b 9fh ; eb 083400 jmp short 02befh ; eb 08 3343 3401 lea dx, [bx+006h] ; 8d 57 06 3344 3402 mov AL, strict byte 008h ; b0 08 … … 3351 3409 pop bp ; 5d 3352 3410 retn ; c3 3353 set_diskette_ret_status_: ; 0xf2b a7 LB 0x183411 set_diskette_ret_status_: ; 0xf2bf7 LB 0x18 3354 3412 push bp ; 55 3355 3413 mov bp, sp ; 89 e5 … … 3359 3417 mov dx, strict word 00041h ; ba 41 00 3360 3418 mov ax, strict word 00040h ; b8 40 00 3361 call 016 0eh ; e8 56 ea3419 call 0165eh ; e8 56 ea 3362 3420 lea sp, [bp-004h] ; 8d 66 fc 3363 3421 pop dx ; 5a … … 3365 3423 pop bp ; 5d 3366 3424 retn ; c3 3367 set_diskette_current_cyl_: ; 0xf2 bbf LB 0x2d3425 set_diskette_current_cyl_: ; 0xf2c0f LB 0x2d 3368 3426 push bp ; 55 3369 3427 mov bp, sp ; 89 e5 … … 3371 3429 mov bl, al ; 88 c3 3372 3430 cmp AL, strict byte 001h ; 3c 01 3373 jbe short 02 bd4h ; 76 0b3431 jbe short 02c24h ; 76 0b 3374 3432 push 00230h ; 68 30 02 3375 3433 push strict byte 00007h ; 6a 07 3376 call 019 22h ; e8 51 ed3434 call 01972h ; e8 51 ed 3377 3435 add sp, strict byte 00004h ; 83 c4 04 3378 3436 movzx ax, dl ; 0f b6 c2 … … 3381 3439 mov bx, ax ; 89 c3 3382 3440 mov ax, strict word 00040h ; b8 40 00 3383 call 016 0eh ; e8 28 ea3441 call 0165eh ; e8 28 ea 3384 3442 lea sp, [bp-002h] ; 8d 66 fe 3385 3443 pop bx ; 5b 3386 3444 pop bp ; 5d 3387 3445 retn ; c3 3388 floppy_wait_for_interrupt_: ; 0xf2 bec LB 0x213446 floppy_wait_for_interrupt_: ; 0xf2c3c LB 0x21 3389 3447 push bp ; 55 3390 3448 mov bp, sp ; 89 e5 … … 3393 3451 mov dx, strict word 0003eh ; ba 3e 00 3394 3452 mov ax, strict word 00040h ; b8 40 00 3395 call 016 00h ; e8 06 ea3453 call 01650h ; e8 06 ea 3396 3454 test AL, strict byte 080h ; a8 80 3397 je short 02c 02h ; 74 043455 je short 02c52h ; 74 04 3398 3456 and AL, strict byte 080h ; 24 80 3399 jmp short 02c 07h ; eb 053457 jmp short 02c57h ; eb 05 3400 3458 sti ; fb 3401 3459 hlt ; f4 3402 3460 cli ; fa 3403 jmp short 02 bf1h ; eb ea3461 jmp short 02c41h ; eb ea 3404 3462 lea sp, [bp-002h] ; 8d 66 fe 3405 3463 pop dx ; 5a 3406 3464 pop bp ; 5d 3407 3465 retn ; c3 3408 floppy_wait_for_interrupt_or_timeout_: ; 0xf2c 0d LB 0x463466 floppy_wait_for_interrupt_or_timeout_: ; 0xf2c5d LB 0x46 3409 3467 push bp ; 55 3410 3468 mov bp, sp ; 89 e5 … … 3415 3473 mov dx, strict word 00040h ; ba 40 00 3416 3474 mov ax, dx ; 89 d0 3417 call 016 00h ; e8 e4 e93475 call 01650h ; e8 e4 e9 3418 3476 test al, al ; 84 c0 3419 jne short 02c 25h ; 75 053477 jne short 02c75h ; 75 05 3420 3478 sti ; fb 3421 3479 xor cl, cl ; 30 c9 3422 jmp short 02c 49h ; eb 243480 jmp short 02c99h ; eb 24 3423 3481 mov dx, strict word 0003eh ; ba 3e 00 3424 3482 mov ax, strict word 00040h ; b8 40 00 3425 call 016 00h ; e8 d2 e93483 call 01650h ; e8 d2 e9 3426 3484 mov cl, al ; 88 c1 3427 3485 test AL, strict byte 080h ; a8 80 3428 je short 02c 44h ; 74 103486 je short 02c94h ; 74 10 3429 3487 and AL, strict byte 07fh ; 24 7f 3430 3488 movzx bx, al ; 0f b6 d8 3431 3489 mov dx, strict word 0003eh ; ba 3e 00 3432 3490 mov ax, strict word 00040h ; b8 40 00 3433 call 016 0eh ; e8 cc e93434 jmp short 02c 49h ; eb 053491 call 0165eh ; e8 cc e9 3492 jmp short 02c99h ; eb 05 3435 3493 sti ; fb 3436 3494 hlt ; f4 3437 3495 cli ; fa 3438 jmp short 02c 14h ; eb cb3496 jmp short 02c64h ; eb cb 3439 3497 mov al, cl ; 88 c8 3440 3498 lea sp, [bp-006h] ; 8d 66 fa … … 3444 3502 pop bp ; 5d 3445 3503 retn ; c3 3446 floppy_reset_controller_: ; 0xf2c 53 LB 0x2b3504 floppy_reset_controller_: ; 0xf2ca3 LB 0x2b 3447 3505 push bp ; 55 3448 3506 mov bp, sp ; 89 e5 … … 3466 3524 and AL, strict byte 0c0h ; 24 c0 3467 3525 cmp AL, strict byte 080h ; 3c 80 3468 jne short 02c 6bh ; 75 f43526 jne short 02cbbh ; 75 f4 3469 3527 lea sp, [bp-004h] ; 8d 66 fc 3470 3528 pop dx ; 5a … … 3472 3530 pop bp ; 5d 3473 3531 retn ; c3 3474 floppy_prepare_controller_: ; 0xf2c 7e LB 0x813532 floppy_prepare_controller_: ; 0xf2cce LB 0x81 3475 3533 push bp ; 55 3476 3534 mov bp, sp ; 89 e5 … … 3482 3540 mov dx, strict word 0003eh ; ba 3e 00 3483 3541 mov ax, strict word 00040h ; b8 40 00 3484 call 016 00h ; e8 70 e93542 call 01650h ; e8 70 e9 3485 3543 and AL, strict byte 07fh ; 24 7f 3486 3544 movzx bx, al ; 0f b6 d8 3487 3545 mov dx, strict word 0003eh ; ba 3e 00 3488 3546 mov ax, strict word 00040h ; b8 40 00 3489 call 016 0eh ; e8 70 e93547 call 0165eh ; e8 70 e9 3490 3548 mov dx, 003f2h ; ba f2 03 3491 3549 in AL, DX ; ec … … 3495 3553 mov byte [bp-008h], al ; 88 46 f8 3496 3554 test cx, cx ; 85 c9 3497 je short 02 cb1h ; 74 043555 je short 02d01h ; 74 04 3498 3556 mov AL, strict byte 020h ; b0 20 3499 jmp short 02 cb3h ; eb 023557 jmp short 02d03h ; eb 02 3500 3558 mov AL, strict byte 010h ; b0 10 3501 3559 or AL, strict byte 00ch ; 0c 0c … … 3506 3564 mov dx, strict word 00040h ; ba 40 00 3507 3565 mov ax, dx ; 89 d0 3508 call 016 0eh ; e8 48 e93566 call 0165eh ; e8 48 e9 3509 3567 mov dx, 0008bh ; ba 8b 00 3510 3568 mov ax, strict word 00040h ; b8 40 00 3511 call 016 00h ; e8 31 e93569 call 01650h ; e8 31 e9 3512 3570 shr al, 006h ; c0 e8 06 3513 3571 mov dx, 003f7h ; ba f7 03 … … 3519 3577 and AL, strict byte 0c0h ; 24 c0 3520 3578 cmp AL, strict byte 080h ; 3c 80 3521 jne short 02 cd6h ; 75 f43579 jne short 02d26h ; 75 f4 3522 3580 cmp byte [bp-008h], 000h ; 80 7e f8 00 3523 jne short 02 cf7h ; 75 0f3524 call 02 bech ; e8 01 ff3581 jne short 02d47h ; 75 0f 3582 call 02c3ch ; e8 01 ff 3525 3583 movzx bx, al ; 0f b6 d8 3526 3584 mov dx, strict word 0003eh ; ba 3e 00 3527 3585 mov ax, strict word 00040h ; b8 40 00 3528 call 016 0eh ; e8 17 e93586 call 0165eh ; e8 17 e9 3529 3587 lea sp, [bp-006h] ; 8d 66 fa 3530 3588 pop dx ; 5a … … 3533 3591 pop bp ; 5d 3534 3592 retn ; c3 3535 floppy_media_known_: ; 0xf2 cff LB 0x433593 floppy_media_known_: ; 0xf2d4f LB 0x43 3536 3594 push bp ; 55 3537 3595 mov bp, sp ; 89 e5 … … 3541 3599 mov dx, strict word 0003eh ; ba 3e 00 3542 3600 mov ax, strict word 00040h ; b8 40 00 3543 call 016 00h ; e8 f1 e83601 call 01650h ; e8 f1 e8 3544 3602 mov ah, al ; 88 c4 3545 3603 test bx, bx ; 85 db 3546 je short 02d 17h ; 74 023604 je short 02d67h ; 74 02 3547 3605 shr al, 1 ; d0 e8 3548 3606 and AL, strict byte 001h ; 24 01 3549 jne short 02d 1fh ; 75 043607 jne short 02d6fh ; 75 04 3550 3608 xor ah, ah ; 30 e4 3551 jmp short 02d 3bh ; eb 1c3609 jmp short 02d8bh ; eb 1c 3552 3610 mov dx, 00090h ; ba 90 00 3553 3611 test bx, bx ; 85 db 3554 je short 02d 29h ; 74 033612 je short 02d79h ; 74 03 3555 3613 mov dx, 00091h ; ba 91 00 3556 3614 mov ax, strict word 00040h ; b8 40 00 3557 call 016 00h ; e8 d1 e83615 call 01650h ; e8 d1 e8 3558 3616 xor ah, ah ; 30 e4 3559 3617 sar ax, 004h ; c1 f8 04 3560 3618 and AL, strict byte 001h ; 24 01 3561 je short 02d 1bh ; 74 e33619 je short 02d6bh ; 74 e3 3562 3620 mov ax, strict word 00001h ; b8 01 00 3563 3621 lea sp, [bp-004h] ; 8d 66 fc … … 3566 3624 pop bp ; 5d 3567 3625 retn ; c3 3568 floppy_read_id_: ; 0xf2d 42 LB 0x403626 floppy_read_id_: ; 0xf2d92 LB 0x40 3569 3627 push bp ; 55 3570 3628 mov bp, sp ; 89 e5 … … 3574 3632 sub sp, strict byte 00008h ; 83 ec 08 3575 3633 mov bx, ax ; 89 c3 3576 call 02c 7eh ; e8 2e ff3634 call 02cceh ; e8 2e ff 3577 3635 mov AL, strict byte 04ah ; b0 4a 3578 3636 mov dx, 003f5h ; ba f5 03 … … 3580 3638 mov al, bl ; 88 d8 3581 3639 out DX, AL ; ee 3582 call 02 bech ; e8 90 fe3640 call 02c3ch ; e8 90 fe 3583 3641 xor si, si ; 31 f6 3584 jmp short 02d 65h ; eb 053642 jmp short 02db5h ; eb 05 3585 3643 cmp si, strict byte 00007h ; 83 fe 07 3586 jnl short 02d 71h ; 7d 0c3644 jnl short 02dc1h ; 7d 0c 3587 3645 mov dx, 003f5h ; ba f5 03 3588 3646 in AL, DX ; ec … … 3591 3649 mov byte [bp+si-00eh], al ; 88 42 f2 3592 3650 inc si ; 46 3593 jmp short 02d 60h ; eb ef3651 jmp short 02db0h ; eb ef 3594 3652 test byte [bp-00eh], 0c0h ; f6 46 f2 c0 3595 3653 db 00fh, 094h, 0c0h … … 3602 3660 pop bp ; 5d 3603 3661 retn ; c3 3604 floppy_drive_recal_: ; 0xf2d 82 LB 0x483662 floppy_drive_recal_: ; 0xf2dd2 LB 0x48 3605 3663 push bp ; 55 3606 3664 mov bp, sp ; 89 e5 … … 3609 3667 push dx ; 52 3610 3668 mov bx, ax ; 89 c3 3611 call 02c 7eh ; e8 f1 fe3669 call 02cceh ; e8 f1 fe 3612 3670 mov AL, strict byte 007h ; b0 07 3613 3671 mov dx, 003f5h ; ba f5 03 … … 3615 3673 mov al, bl ; 88 d8 3616 3674 out DX, AL ; ee 3617 call 02 bech ; e8 53 fe3675 call 02c3ch ; e8 53 fe 3618 3676 test bx, bx ; 85 db 3619 je short 02d a4h ; 74 073677 je short 02df4h ; 74 07 3620 3678 or AL, strict byte 002h ; 0c 02 3621 3679 mov cx, 00095h ; b9 95 00 3622 jmp short 02d a9h ; eb 053680 jmp short 02df9h ; eb 05 3623 3681 or AL, strict byte 001h ; 0c 01 3624 3682 mov cx, 00094h ; b9 94 00 … … 3626 3684 mov dx, strict word 0003eh ; ba 3e 00 3627 3685 mov ax, strict word 00040h ; b8 40 00 3628 call 016 0eh ; e8 59 e83686 call 0165eh ; e8 59 e8 3629 3687 xor bx, bx ; 31 db 3630 3688 mov dx, cx ; 89 ca 3631 3689 mov ax, strict word 00040h ; b8 40 00 3632 call 016 0eh ; e8 4f e83690 call 0165eh ; e8 4f e8 3633 3691 mov ax, strict word 00001h ; b8 01 00 3634 3692 lea sp, [bp-006h] ; 8d 66 fa … … 3638 3696 pop bp ; 5d 3639 3697 retn ; c3 3640 floppy_media_sense_: ; 0xf2 dca LB 0xf03698 floppy_media_sense_: ; 0xf2e1a LB 0xf0 3641 3699 push bp ; 55 3642 3700 mov bp, sp ; 89 e5 … … 3647 3705 push di ; 57 3648 3706 mov di, ax ; 89 c7 3649 call 02d 82h ; e8 ab ff3707 call 02dd2h ; e8 ab ff 3650 3708 test ax, ax ; 85 c0 3651 jne short 02 de0h ; 75 053709 jne short 02e30h ; 75 05 3652 3710 xor cx, cx ; 31 c9 3653 jmp near 02e aeh ; e9 ce 003711 jmp near 02efeh ; e9 ce 00 3654 3712 mov ax, strict word 00010h ; b8 10 00 3655 call 016 5ch ; e8 76 e83713 call 016ach ; e8 76 e8 3656 3714 test di, di ; 85 ff 3657 jne short 02 df1h ; 75 073715 jne short 02e41h ; 75 07 3658 3716 mov cl, al ; 88 c1 3659 3717 shr cl, 004h ; c0 e9 04 3660 jmp short 02 df6h ; eb 053718 jmp short 02e46h ; eb 05 3661 3719 mov cl, al ; 88 c1 3662 3720 and cl, 00fh ; 80 e1 0f 3663 3721 cmp cl, 001h ; 80 f9 01 3664 jne short 02e 04h ; 75 093722 jne short 02e54h ; 75 09 3665 3723 xor cl, cl ; 30 c9 3666 3724 mov CH, strict byte 015h ; b5 15 3667 3725 mov si, strict word 00001h ; be 01 00 3668 jmp short 02e 42h ; eb 3e3726 jmp short 02e92h ; eb 3e 3669 3727 cmp cl, 002h ; 80 f9 02 3670 jne short 02e 0fh ; 75 063728 jne short 02e5fh ; 75 06 3671 3729 xor cl, cl ; 30 c9 3672 3730 mov CH, strict byte 035h ; b5 35 3673 jmp short 02 dffh ; eb f03731 jmp short 02e4fh ; eb f0 3674 3732 cmp cl, 003h ; 80 f9 03 3675 jne short 02e 1ah ; 75 063733 jne short 02e6ah ; 75 06 3676 3734 xor cl, cl ; 30 c9 3677 3735 mov CH, strict byte 017h ; b5 17 3678 jmp short 02 dffh ; eb e53736 jmp short 02e4fh ; eb e5 3679 3737 cmp cl, 004h ; 80 f9 04 3680 jne short 02e 25h ; 75 063738 jne short 02e75h ; 75 06 3681 3739 xor cl, cl ; 30 c9 3682 3740 mov CH, strict byte 017h ; b5 17 3683 jmp short 02 dffh ; eb da3741 jmp short 02e4fh ; eb da 3684 3742 cmp cl, 005h ; 80 f9 05 3685 jne short 02e 30h ; 75 063743 jne short 02e80h ; 75 06 3686 3744 mov CL, strict byte 0cch ; b1 cc 3687 3745 mov CH, strict byte 0d7h ; b5 d7 3688 jmp short 02 dffh ; eb cf3746 jmp short 02e4fh ; eb cf 3689 3747 cmp cl, 00eh ; 80 f9 0e 3690 je short 02e 3ah ; 74 053748 je short 02e8ah ; 74 05 3691 3749 cmp cl, 00fh ; 80 f9 0f 3692 jne short 02e 3ch ; 75 023693 jmp short 02e 2ah ; eb ee3750 jne short 02e8ch ; 75 02 3751 jmp short 02e7ah ; eb ee 3694 3752 xor cl, cl ; 30 c9 3695 3753 xor ch, ch ; 30 ed … … 3698 3756 mov dx, 0008bh ; ba 8b 00 3699 3757 mov ax, strict word 00040h ; b8 40 00 3700 call 016 0eh ; e8 c0 e73758 call 0165eh ; e8 c0 e7 3701 3759 mov ax, di ; 89 f8 3702 call 02d 42h ; e8 ef fe3760 call 02d92h ; e8 ef fe 3703 3761 test ax, ax ; 85 c0 3704 jne short 02e 89h ; 75 323762 jne short 02ed9h ; 75 32 3705 3763 mov al, cl ; 88 c8 3706 3764 and AL, strict byte 0c0h ; 24 c0 3707 3765 cmp AL, strict byte 080h ; 3c 80 3708 je short 02e 89h ; 74 2a3766 je short 02ed9h ; 74 2a 3709 3767 mov al, cl ; 88 c8 3710 3768 and AL, strict byte 0c0h ; 24 c0 3711 3769 cmp AL, strict byte 0c0h ; 3c c0 3712 je short 02e 76h ; 74 0f3770 je short 02ec6h ; 74 0f 3713 3771 mov ah, cl ; 88 cc 3714 3772 and ah, 03fh ; 80 e4 3f 3715 3773 cmp AL, strict byte 040h ; 3c 40 3716 je short 02e 82h ; 74 123774 je short 02ed2h ; 74 12 3717 3775 test al, al ; 84 c0 3718 je short 02e 7bh ; 74 073719 jmp short 02e 42h ; eb cc3776 je short 02ecbh ; 74 07 3777 jmp short 02e92h ; eb cc 3720 3778 and cl, 03fh ; 80 e1 3f 3721 jmp short 02e 42h ; eb c73779 jmp short 02e92h ; eb c7 3722 3780 mov cl, ah ; 88 e1 3723 3781 or cl, 040h ; 80 c9 40 3724 jmp short 02e 42h ; eb c03782 jmp short 02e92h ; eb c0 3725 3783 mov cl, ah ; 88 e1 3726 3784 or cl, 080h ; 80 c9 80 3727 jmp short 02e 42h ; eb b93785 jmp short 02e92h ; eb b9 3728 3786 test di, di ; 85 ff 3729 3787 db 00fh, 095h, 0c0h … … 3734 3792 mov dx, 0008bh ; ba 8b 00 3735 3793 mov ax, strict word 00040h ; b8 40 00 3736 call 016 0eh ; e8 6d e73794 call 0165eh ; e8 6d e7 3737 3795 movzx bx, ch ; 0f b6 dd 3738 3796 mov dx, di ; 89 fa 3739 3797 mov ax, strict word 00040h ; b8 40 00 3740 call 016 0eh ; e8 62 e73798 call 0165eh ; e8 62 e7 3741 3799 mov cx, si ; 89 f1 3742 3800 mov ax, cx ; 89 c8 … … 3749 3807 pop bp ; 5d 3750 3808 retn ; c3 3751 floppy_drive_exists_: ; 0xf2 eba LB 0x243809 floppy_drive_exists_: ; 0xf2f0a LB 0x24 3752 3810 push bp ; 55 3753 3811 mov bp, sp ; 89 e5 … … 3755 3813 mov dx, ax ; 89 c2 3756 3814 mov ax, strict word 00010h ; b8 10 00 3757 call 016 5ch ; e8 96 e73815 call 016ach ; e8 96 e7 3758 3816 test dx, dx ; 85 d2 3759 jne short 02 ecfh ; 75 053817 jne short 02f1fh ; 75 05 3760 3818 shr al, 004h ; c0 e8 04 3761 jmp short 02 ed1h ; eb 023819 jmp short 02f21h ; eb 02 3762 3820 and AL, strict byte 00fh ; 24 0f 3763 3821 test al, al ; 84 c0 … … 3769 3827 pop bp ; 5d 3770 3828 retn ; c3 3771 _int13_diskette_function: ; 0xf2 ede LB 0x7343829 _int13_diskette_function: ; 0xf2f2e LB 0x734 3772 3830 push bp ; 55 3773 3831 mov bp, sp ; 89 e5 … … 3782 3840 mov ah, byte [bp+00eh] ; 8a 66 0e 3783 3841 cmp bl, 008h ; 80 fb 08 3784 jc short 02f 35h ; 72 383842 jc short 02f85h ; 72 38 3785 3843 mov dx, word [bp+01ch] ; 8b 56 1c 3786 3844 or dl, 001h ; 80 ca 01 3787 3845 cmp bl, 008h ; 80 fb 08 3788 jbe near 034 91h ; 0f 86 87 053846 jbe near 034e1h ; 0f 86 87 05 3789 3847 cmp bl, 016h ; 80 fb 16 3790 jc short 02f 2bh ; 72 1c3848 jc short 02f7bh ; 72 1c 3791 3849 or si, 00100h ; 81 ce 00 01 3792 3850 cmp bl, 016h ; 80 fb 16 3793 jbe near 03 5cdh ; 0f 86 b3 063851 jbe near 0361dh ; 0f 86 b3 06 3794 3852 cmp bl, 018h ; 80 fb 18 3795 je near 03 5d2h ; 0f 84 b1 063853 je near 03622h ; 0f 84 b1 06 3796 3854 cmp bl, 017h ; 80 fb 17 3797 je near 03 5d2h ; 0f 84 aa 063798 jmp near 03 5efh ; e9 c4 063855 je near 03622h ; 0f 84 aa 06 3856 jmp near 0363fh ; e9 c4 06 3799 3857 cmp bl, 015h ; 80 fb 15 3800 je near 035 87h ; 0f 84 55 063801 jmp near 03 5efh ; e9 ba 063858 je near 035d7h ; 0f 84 55 06 3859 jmp near 0363fh ; e9 ba 06 3802 3860 cmp bl, 001h ; 80 fb 01 3803 jc short 02f 4fh ; 72 153804 jbe near 0 2fc8h ; 0f 86 8a 003861 jc short 02f9fh ; 72 15 3862 jbe near 03018h ; 0f 86 8a 00 3805 3863 cmp bl, 005h ; 80 fb 05 3806 je near 033 0bh ; 0f 84 c6 033864 je near 0335bh ; 0f 84 c6 03 3807 3865 cmp bl, 004h ; 80 fb 04 3808 jbe near 0 2fe6h ; 0f 86 9a 003809 jmp near 03 5efh ; e9 a0 063866 jbe near 03036h ; 0f 86 9a 00 3867 jmp near 0363fh ; e9 a0 06 3810 3868 test bl, bl ; 84 db 3811 jne near 03 5efh ; 0f 85 9a 063869 jne near 0363fh ; 0f 85 9a 06 3812 3870 mov al, byte [bp+00eh] ; 8a 46 0e 3813 3871 mov byte [bp-00eh], al ; 88 46 f2 3814 3872 cmp AL, strict byte 001h ; 3c 01 3815 jbe short 02f 73h ; 76 143873 jbe short 02fc3h ; 76 14 3816 3874 mov ax, word [bp+016h] ; 8b 46 16 3817 3875 xor ah, ah ; 30 e4 … … 3819 3877 mov word [bp+016h], ax ; 89 46 16 3820 3878 mov ax, strict word 00001h ; b8 01 00 3821 call 02b a7h ; e8 37 fc3822 jmp near 03 2e7h ; e9 74 033879 call 02bf7h ; e8 37 fc 3880 jmp near 03337h ; e9 74 03 3823 3881 mov ax, strict word 00010h ; b8 10 00 3824 call 016 5ch ; e8 e3 e63882 call 016ach ; e8 e3 e6 3825 3883 cmp byte [bp-00eh], 000h ; 80 7e f2 00 3826 jne short 02f 86h ; 75 073884 jne short 02fd6h ; 75 07 3827 3885 mov dl, al ; 88 c2 3828 3886 shr dl, 004h ; c0 ea 04 3829 jmp short 02f 8bh ; eb 053887 jmp short 02fdbh ; eb 05 3830 3888 mov dl, al ; 88 c2 3831 3889 and dl, 00fh ; 80 e2 0f 3832 3890 test dl, dl ; 84 d2 3833 jne short 02f 9fh ; 75 103891 jne short 02fefh ; 75 10 3834 3892 mov ax, word [bp+016h] ; 8b 46 16 3835 3893 xor ah, ah ; 30 e4 … … 3837 3895 mov word [bp+016h], ax ; 89 46 16 3838 3896 mov ax, 00080h ; b8 80 00 3839 jmp short 02f 6dh ; eb ce3897 jmp short 02fbdh ; eb ce 3840 3898 xor bx, bx ; 31 db 3841 3899 mov dx, strict word 0003eh ; ba 3e 00 3842 3900 mov ax, strict word 00040h ; b8 40 00 3843 call 016 0eh ; e8 64 e63901 call 0165eh ; e8 64 e6 3844 3902 xor al, al ; 30 c0 3845 3903 mov byte [bp+017h], al ; 88 46 17 3846 3904 xor ah, ah ; 30 e4 3847 call 02b a7h ; e8 f3 fb3905 call 02bf7h ; e8 f3 fb 3848 3906 and byte [bp+01ch], 0feh ; 80 66 1c fe 3849 3907 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 3850 3908 xor dx, dx ; 31 d2 3851 call 02 bbfh ; e8 fe fb3909 call 02c0fh ; e8 fe fb 3852 3910 lea sp, [bp-004h] ; 8d 66 fc 3853 3911 pop di ; 5f … … 3858 3916 mov dx, 00441h ; ba 41 04 3859 3917 xor ax, ax ; 31 c0 3860 call 016 00h ; e8 2c e63918 call 01650h ; e8 2c e6 3861 3919 movzx dx, al ; 0f b6 d0 3862 3920 sal dx, 008h ; c1 e2 08 … … 3864 3922 mov word [bp+016h], si ; 89 76 16 3865 3923 test al, al ; 84 c0 3866 je short 0 2fc1h ; 74 de3867 jmp near 03 2e7h ; e9 01 033924 je short 03011h ; 74 de 3925 jmp near 03337h ; e9 01 03 3868 3926 mov al, byte [bp+016h] ; 8a 46 16 3869 3927 mov byte [bp-00ch], al ; 88 46 f4 … … 3878 3936 mov byte [bp-00eh], ah ; 88 66 f2 3879 3937 cmp ah, 001h ; 80 fc 01 3880 jnbe short 030 1ch ; 77 103938 jnbe short 0306ch ; 77 10 3881 3939 cmp dl, 001h ; 80 fa 01 3882 jnbe short 030 1ch ; 77 0b3940 jnbe short 0306ch ; 77 0b 3883 3941 mov al, byte [bp-00ch] ; 8a 46 f4 3884 3942 test al, al ; 84 c0 3885 je short 030 1ch ; 74 043943 je short 0306ch ; 74 04 3886 3944 cmp AL, strict byte 048h ; 3c 48 3887 jbe short 030 45h ; 76 293945 jbe short 03095h ; 76 29 3888 3946 mov bx, 00da2h ; bb a2 0d 3889 3947 mov cx, ds ; 8c d9 3890 3948 mov ax, strict word 00004h ; b8 04 00 3891 call 01 8e1h ; e8 ba e83949 call 01931h ; e8 ba e8 3892 3950 push 00255h ; 68 55 02 3893 3951 push 0026dh ; 68 6d 02 3894 3952 push strict byte 00004h ; 6a 04 3895 call 019 22h ; e8 f0 e83953 call 01972h ; e8 f0 e8 3896 3954 add sp, strict byte 00006h ; 83 c4 06 3897 3955 mov ax, word [bp+016h] ; 8b 46 16 … … 3900 3958 mov word [bp+016h], ax ; 89 46 16 3901 3959 mov ax, strict word 00001h ; b8 01 00 3902 jmp short 03 0b6h ; eb 713960 jmp short 03106h ; eb 71 3903 3961 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 3904 call 02 ebah ; e8 6e fe3962 call 02f0ah ; e8 6e fe 3905 3963 test ax, ax ; 85 c0 3906 je near 031 49h ; 0f 84 f7 003964 je near 03199h ; 0f 84 f7 00 3907 3965 movzx dx, byte [bp-00eh] ; 0f b6 56 f2 3908 3966 mov ax, dx ; 89 d0 3909 call 02 cffh ; e8 a4 fc3967 call 02d4fh ; e8 a4 fc 3910 3968 test ax, ax ; 85 c0 3911 jne short 030 78h ; 75 193969 jne short 030c8h ; 75 19 3912 3970 mov ax, dx ; 89 d0 3913 call 02 dcah ; e8 66 fd3971 call 02e1ah ; e8 66 fd 3914 3972 test ax, ax ; 85 c0 3915 jne short 030 78h ; 75 103973 jne short 030c8h ; 75 10 3916 3974 mov ax, word [bp+016h] ; 8b 46 16 3917 3975 xor ah, ah ; 30 e4 … … 3919 3977 mov word [bp+016h], ax ; 89 46 16 3920 3978 mov ax, strict word 0000ch ; b8 0c 00 3921 jmp short 03 0b6h ; eb 3e3979 jmp short 03106h ; eb 3e 3922 3980 cmp ch, 002h ; 80 fd 02 3923 jne near 03 1e0h ; 0f 85 61 013981 jne near 03230h ; 0f 85 61 01 3924 3982 mov cx, word [bp+006h] ; 8b 4e 06 3925 3983 shr cx, 00ch ; c1 e9 0c … … 3930 3988 add bx, dx ; 01 d3 3931 3989 cmp bx, dx ; 39 d3 3932 jnc short 030 98h ; 73 023990 jnc short 030e8h ; 73 02 3933 3991 db 0feh, 0c4h 3934 3992 ; inc ah ; fe c4 … … 3939 3997 add dx, cx ; 01 ca 3940 3998 cmp dx, bx ; 39 da 3941 jnc short 03 0c0h ; 73 183999 jnc short 03110h ; 73 18 3942 4000 mov ax, word [bp+016h] ; 8b 46 16 3943 4001 xor ah, ah ; 30 e4 … … 3945 4003 mov word [bp+016h], ax ; 89 46 16 3946 4004 mov ax, strict word 00009h ; b8 09 00 3947 call 02b a7h ; e8 ee fa4005 call 02bf7h ; e8 ee fa 3948 4006 mov byte [bp+016h], 000h ; c6 46 16 00 3949 jmp near 03 2e7h ; e9 27 024007 jmp near 03337h ; e9 27 02 3950 4008 mov AL, strict byte 006h ; b0 06 3951 4009 mov dx, strict word 0000ah ; ba 0a 00 … … 3980 4038 out DX, AL ; ee 3981 4039 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 3982 call 02c 7eh ; e8 7a fb4040 call 02cceh ; e8 7a fb 3983 4041 mov AL, strict byte 0e6h ; b0 e6 3984 4042 mov dx, 003f5h ; ba f5 03 … … 4008 4066 mov AL, strict byte 0ffh ; b0 ff 4009 4067 out DX, AL ; ee 4010 call 02c 0dh ; e8 cb fa4068 call 02c5dh ; e8 cb fa 4011 4069 test al, al ; 84 c0 4012 jne short 031 5ah ; 75 144013 call 02c 53h ; e8 0a fb4070 jne short 031aah ; 75 14 4071 call 02ca3h ; e8 0a fb 4014 4072 mov ax, word [bp+016h] ; 8b 46 16 4015 4073 xor ah, ah ; 30 e4 … … 4017 4075 mov word [bp+016h], ax ; 89 46 16 4018 4076 mov ax, 00080h ; b8 80 00 4019 jmp near 03 0b6h ; e9 5c ff4077 jmp near 03106h ; e9 5c ff 4020 4078 mov dx, 003f4h ; ba f4 03 4021 4079 in AL, DX ; ec … … 4024 4082 and AL, strict byte 0c0h ; 24 c0 4025 4083 cmp AL, strict byte 0c0h ; 3c c0 4026 je short 031 74h ; 74 0e4084 je short 031c4h ; 74 0e 4027 4085 push 00255h ; 68 55 02 4028 4086 push 00288h ; 68 88 02 4029 4087 push strict byte 00007h ; 6a 07 4030 call 019 22h ; e8 b1 e74088 call 01972h ; e8 b1 e7 4031 4089 add sp, strict byte 00006h ; 83 c4 06 4032 4090 xor si, si ; 31 f6 4033 jmp short 031 7dh ; eb 054091 jmp short 031cdh ; eb 05 4034 4092 cmp si, strict byte 00007h ; 83 fe 07 4035 jnl short 031 95h ; 7d 184093 jnl short 031e5h ; 7d 18 4036 4094 mov dx, 003f5h ; ba f5 03 4037 4095 in AL, DX ; ec … … 4042 4100 lea dx, [si+042h] ; 8d 54 42 4043 4101 mov ax, strict word 00040h ; b8 40 00 4044 call 016 0eh ; e8 7c e44102 call 0165eh ; e8 7c e4 4045 4103 inc si ; 46 4046 jmp short 031 78h ; eb e34104 jmp short 031c8h ; eb e3 4047 4105 test byte [bp-016h], 0c0h ; f6 46 ea c0 4048 je short 031 ach ; 74 114106 je short 031fch ; 74 11 4049 4107 mov ax, word [bp+016h] ; 8b 46 16 4050 4108 xor ah, ah ; 30 e4 … … 4052 4110 mov word [bp+016h], ax ; 89 46 16 4053 4111 mov ax, strict word 00020h ; b8 20 00 4054 jmp near 03 0b6h ; e9 0a ff4112 jmp near 03106h ; e9 0a ff 4055 4113 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4056 4114 sal ax, 009h ; c1 e0 09 … … 4070 4128 movzx dx, byte [bp-006h] ; 0f b6 56 fa 4071 4129 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4072 call 02 bbfh ; e8 ea f94130 call 02c0fh ; e8 ea f9 4073 4131 mov byte [bp+017h], 000h ; c6 46 17 00 4074 4132 and byte [bp+01ch], 0feh ; 80 66 1c fe 4075 jmp near 0 2fc1h ; e9 e1 fd4133 jmp near 03011h ; e9 e1 fd 4076 4134 cmp ch, 003h ; 80 fd 03 4077 jne near 03 2f5h ; 0f 85 0e 014135 jne near 03345h ; 0f 85 0e 01 4078 4136 mov dx, word [bp+006h] ; 8b 56 06 4079 4137 shr dx, 00ch ; c1 ea 0c … … 4084 4142 add bx, cx ; 01 cb 4085 4143 cmp bx, cx ; 39 cb 4086 jnc short 032 00h ; 73 024144 jnc short 03250h ; 73 02 4087 4145 db 0feh, 0c4h 4088 4146 ; inc ah ; fe c4 … … 4093 4151 add dx, cx ; 01 ca 4094 4152 cmp dx, bx ; 39 da 4095 jc near 030 a8h ; 0f 82 96 fe4153 jc near 030f8h ; 0f 82 96 fe 4096 4154 mov AL, strict byte 006h ; b0 06 4097 4155 mov dx, strict word 0000ah ; ba 0a 00 … … 4125 4183 out DX, AL ; ee 4126 4184 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4127 call 02c 7eh ; e8 29 fa4185 call 02cceh ; e8 29 fa 4128 4186 mov AL, strict byte 0c5h ; b0 c5 4129 4187 mov dx, 003f5h ; ba f5 03 … … 4153 4211 mov AL, strict byte 0ffh ; b0 ff 4154 4212 out DX, AL ; ee 4155 call 02c 0dh ; e8 7a f94213 call 02c5dh ; e8 7a f9 4156 4214 test al, al ; 84 c0 4157 je near 031 46h ; 0f 84 ad fe4215 je near 03196h ; 0f 84 ad fe 4158 4216 mov dx, 003f4h ; ba f4 03 4159 4217 in AL, DX ; ec … … 4162 4220 and AL, strict byte 0c0h ; 24 c0 4163 4221 cmp AL, strict byte 0c0h ; 3c c0 4164 je short 03 2b3h ; 74 0e4222 je short 03303h ; 74 0e 4165 4223 push 00255h ; 68 55 02 4166 4224 push 00288h ; 68 88 02 4167 4225 push strict byte 00007h ; 6a 07 4168 call 019 22h ; e8 72 e64226 call 01972h ; e8 72 e6 4169 4227 add sp, strict byte 00006h ; 83 c4 06 4170 4228 xor si, si ; 31 f6 4171 jmp short 03 2bch ; eb 054229 jmp short 0330ch ; eb 05 4172 4230 cmp si, strict byte 00007h ; 83 fe 07 4173 jnl short 03 2d4h ; 7d 184231 jnl short 03324h ; 7d 18 4174 4232 mov dx, 003f5h ; ba f5 03 4175 4233 in AL, DX ; ec … … 4180 4238 lea dx, [si+042h] ; 8d 54 42 4181 4239 mov ax, strict word 00040h ; b8 40 00 4182 call 016 0eh ; e8 3d e34240 call 0165eh ; e8 3d e3 4183 4241 inc si ; 46 4184 jmp short 03 2b7h ; eb e34242 jmp short 03307h ; eb e3 4185 4243 test byte [bp-016h], 0c0h ; f6 46 ea c0 4186 je near 03 1cah ; 0f 84 ee fe4244 je near 0321ah ; 0f 84 ee fe 4187 4245 test byte [bp-015h], 002h ; f6 46 eb 02 4188 je short 03 2eeh ; 74 0c4246 je short 0333eh ; 74 0c 4189 4247 mov word [bp+016h], 00300h ; c7 46 16 00 03 4190 4248 or byte [bp+01ch], 001h ; 80 4e 1c 01 4191 jmp near 0 2fc1h ; e9 d3 fc4249 jmp near 03011h ; e9 d3 fc 4192 4250 mov word [bp+016h], 00100h ; c7 46 16 00 01 4193 jmp short 03 2e7h ; eb f24251 jmp short 03337h ; eb f2 4194 4252 movzx dx, byte [bp-006h] ; 0f b6 56 fa 4195 4253 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4196 call 02 bbfh ; e8 bf f84254 call 02c0fh ; e8 bf f8 4197 4255 and byte [bp+01ch], 0feh ; 80 66 1c fe 4198 4256 mov byte [bp+017h], 000h ; c6 46 17 00 4199 jmp near 0 2fc1h ; e9 b6 fc4257 jmp near 03011h ; e9 b6 fc 4200 4258 mov al, byte [bp+016h] ; 8a 46 16 4201 4259 mov byte [bp-00ch], al ; 88 46 f4 … … 4209 4267 mov byte [bp-00eh], bl ; 88 5e f2 4210 4268 cmp bl, 001h ; 80 fb 01 4211 jnbe short 033 42h ; 77 144269 jnbe short 03392h ; 77 14 4212 4270 cmp AL, strict byte 001h ; 3c 01 4213 jnbe short 033 42h ; 77 104271 jnbe short 03392h ; 77 10 4214 4272 cmp dl, 04fh ; 80 fa 4f 4215 jnbe short 033 42h ; 77 0b4273 jnbe short 03392h ; 77 0b 4216 4274 mov al, byte [bp-00ch] ; 8a 46 f4 4217 4275 test al, al ; 84 c0 4218 je short 033 42h ; 74 044276 je short 03392h ; 74 04 4219 4277 cmp AL, strict byte 012h ; 3c 12 4220 jbe short 033 57h ; 76 154278 jbe short 033a7h ; 76 15 4221 4279 mov ax, word [bp+016h] ; 8b 46 16 4222 4280 xor ah, ah ; 30 e4 … … 4224 4282 mov word [bp+016h], ax ; 89 46 16 4225 4283 mov ax, strict word 00001h ; b8 01 00 4226 call 02b a7h ; e8 54 f84284 call 02bf7h ; e8 54 f8 4227 4285 or byte [bp+01ch], 001h ; 80 4e 1c 01 4228 4286 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4229 call 02 ebah ; e8 5c fb4287 call 02f0ah ; e8 5c fb 4230 4288 test ax, ax ; 85 c0 4231 je near 02f 8fh ; 0f 84 2b fc4289 je near 02fdfh ; 0f 84 2b fc 4232 4290 movzx dx, byte [bp-00eh] ; 0f b6 56 f2 4233 4291 mov ax, dx ; 89 d0 4234 call 02 cffh ; e8 92 f94292 call 02d4fh ; e8 92 f9 4235 4293 test ax, ax ; 85 c0 4236 jne short 033 7ch ; 75 0b4294 jne short 033cch ; 75 0b 4237 4295 mov ax, dx ; 89 d0 4238 call 02 dcah ; e8 54 fa4296 call 02e1ah ; e8 54 fa 4239 4297 test ax, ax ; 85 c0 4240 je near 030 68h ; 0f 84 ec fc4298 je near 030b8h ; 0f 84 ec fc 4241 4299 mov cx, word [bp+006h] ; 8b 4e 06 4242 4300 shr cx, 00ch ; c1 e9 0c … … 4247 4305 add bx, dx ; 01 d3 4248 4306 cmp bx, dx ; 39 d3 4249 jnc short 033 95h ; 73 024307 jnc short 033e5h ; 73 02 4250 4308 db 0feh, 0c4h 4251 4309 ; inc ah ; fe c4 … … 4256 4314 add dx, cx ; 01 ca 4257 4315 cmp dx, bx ; 39 da 4258 jc near 030 a8h ; 0f 82 01 fd4316 jc near 030f8h ; 0f 82 01 fd 4259 4317 mov AL, strict byte 006h ; b0 06 4260 4318 mov dx, strict word 0000ah ; ba 0a 00 … … 4288 4346 out DX, AL ; ee 4289 4347 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4290 call 02c 7eh ; e8 94 f84348 call 02cceh ; e8 94 f8 4291 4349 mov AL, strict byte 00fh ; b0 0f 4292 4350 mov dx, 003f5h ; ba f5 03 … … 4312 4370 mov AL, strict byte 0f6h ; b0 f6 4313 4371 out DX, AL ; ee 4314 call 02c 0dh ; e8 f3 f74372 call 02c5dh ; e8 f3 f7 4315 4373 test al, al ; 84 c0 4316 jne short 034 24h ; 75 064317 call 02c 53h ; e8 32 f84318 jmp near 02f 8fh ; e9 6b fb4374 jne short 03474h ; 75 06 4375 call 02ca3h ; e8 32 f8 4376 jmp near 02fdfh ; e9 6b fb 4319 4377 mov dx, 003f4h ; ba f4 03 4320 4378 in AL, DX ; ec … … 4323 4381 and AL, strict byte 0c0h ; 24 c0 4324 4382 cmp AL, strict byte 0c0h ; 3c c0 4325 je short 034 3eh ; 74 0e4383 je short 0348eh ; 74 0e 4326 4384 push 00255h ; 68 55 02 4327 4385 push 00288h ; 68 88 02 4328 4386 push strict byte 00007h ; 6a 07 4329 call 019 22h ; e8 e7 e44387 call 01972h ; e8 e7 e4 4330 4388 add sp, strict byte 00006h ; 83 c4 06 4331 4389 xor si, si ; 31 f6 4332 jmp short 034 47h ; eb 054390 jmp short 03497h ; eb 05 4333 4391 cmp si, strict byte 00007h ; 83 fe 07 4334 jnl short 034 5fh ; 7d 184392 jnl short 034afh ; 7d 18 4335 4393 mov dx, 003f5h ; ba f5 03 4336 4394 in AL, DX ; ec … … 4341 4399 lea dx, [si+042h] ; 8d 54 42 4342 4400 mov ax, strict word 00040h ; b8 40 00 4343 call 016 0eh ; e8 b2 e14401 call 0165eh ; e8 b2 e1 4344 4402 inc si ; 46 4345 jmp short 034 42h ; eb e34403 jmp short 03492h ; eb e3 4346 4404 test byte [bp-016h], 0c0h ; f6 46 ea c0 4347 je short 034 7bh ; 74 164405 je short 034cbh ; 74 16 4348 4406 test byte [bp-015h], 002h ; f6 46 eb 02 4349 jne near 03 2e2h ; 0f 85 75 fe4407 jne near 03332h ; 0f 85 75 fe 4350 4408 push 00255h ; 68 55 02 4351 4409 push 0029ch ; 68 9c 02 4352 4410 push strict byte 00007h ; 6a 07 4353 call 019 22h ; e8 aa e44411 call 01972h ; e8 aa e4 4354 4412 add sp, strict byte 00006h ; 83 c4 06 4355 4413 xor al, al ; 30 c0 4356 4414 mov byte [bp+017h], al ; 88 46 17 4357 4415 xor ah, ah ; 30 e4 4358 call 02b a7h ; e8 22 f74416 call 02bf7h ; e8 22 f7 4359 4417 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4360 4418 xor dx, dx ; 31 d2 4361 call 02 bbfh ; e8 31 f74362 jmp near 03 1d9h ; e9 48 fd4419 call 02c0fh ; e8 31 f7 4420 jmp near 03229h ; e9 48 fd 4363 4421 mov byte [bp-00eh], ah ; 88 66 f2 4364 4422 cmp ah, 001h ; 80 fc 01 4365 jbe short 03 4b9h ; 76 204423 jbe short 03509h ; 76 20 4366 4424 xor ax, ax ; 31 c0 4367 4425 mov word [bp+016h], ax ; 89 46 16 … … 4374 4432 mov word [bp+012h], ax ; 89 46 12 4375 4433 mov word [bp+01ch], dx ; 89 56 1c 4376 jmp near 0 2fc1h ; e9 08 fb4434 jmp near 03011h ; e9 08 fb 4377 4435 mov ax, strict word 00010h ; b8 10 00 4378 call 016 5ch ; e8 9d e14436 call 016ach ; e8 9d e1 4379 4437 mov dl, al ; 88 c2 4380 4438 xor cl, cl ; 30 c9 4381 4439 test AL, strict byte 0f0h ; a8 f0 4382 je short 03 4c9h ; 74 024440 je short 03519h ; 74 02 4383 4441 mov CL, strict byte 001h ; b1 01 4384 4442 test dl, 00fh ; f6 c2 0f 4385 je short 03 4d0h ; 74 024443 je short 03520h ; 74 02 4386 4444 db 0feh, 0c1h 4387 4445 ; inc cl ; fe c1 4388 4446 cmp byte [bp-00eh], 000h ; 80 7e f2 00 4389 jne short 03 4dbh ; 75 054447 jne short 0352bh ; 75 05 4390 4448 shr dl, 004h ; c0 ea 04 4391 jmp short 03 4deh ; eb 034449 jmp short 0352eh ; eb 03 4392 4450 and dl, 00fh ; 80 e2 0f 4393 4451 mov byte [bp+011h], 000h ; c6 46 11 00 … … 4405 4463 mov word [bp+012h], ax ; 89 46 12 4406 4464 cmp dl, 003h ; 80 fa 03 4407 jc short 035 1eh ; 72 154408 jbe short 035 45h ; 76 3a4465 jc short 0356eh ; 72 15 4466 jbe short 03595h ; 76 3a 4409 4467 cmp dl, 005h ; 80 fa 05 4410 jc short 035 4ch ; 72 3c4411 jbe short 035 53h ; 76 414468 jc short 0359ch ; 72 3c 4469 jbe short 035a3h ; 76 41 4412 4470 cmp dl, 00fh ; 80 fa 0f 4413 je short 035 61h ; 74 4a4471 je short 035b1h ; 74 4a 4414 4472 cmp dl, 00eh ; 80 fa 0e 4415 je short 035 5ah ; 74 3e4416 jmp short 035 68h ; eb 4a4473 je short 035aah ; 74 3e 4474 jmp short 035b8h ; eb 4a 4417 4475 cmp dl, 002h ; 80 fa 02 4418 je short 035 3eh ; 74 1b4476 je short 0358eh ; 74 1b 4419 4477 cmp dl, 001h ; 80 fa 01 4420 je short 035 37h ; 74 0f4478 je short 03587h ; 74 0f 4421 4479 test dl, dl ; 84 d2 4422 jne short 035 68h ; 75 3c4480 jne short 035b8h ; 75 3c 4423 4481 mov word [bp+014h], strict word 00000h ; c7 46 14 00 00 4424 4482 mov byte [bp+013h], 000h ; c6 46 13 00 4425 jmp short 035 76h ; eb 3f4483 jmp short 035c6h ; eb 3f 4426 4484 mov word [bp+014h], 02709h ; c7 46 14 09 27 4427 jmp short 035 76h ; eb 384485 jmp short 035c6h ; eb 38 4428 4486 mov word [bp+014h], 04f0fh ; c7 46 14 0f 4f 4429 jmp short 035 76h ; eb 314487 jmp short 035c6h ; eb 31 4430 4488 mov word [bp+014h], 04f09h ; c7 46 14 09 4f 4431 jmp short 035 76h ; eb 2a4489 jmp short 035c6h ; eb 2a 4432 4490 mov word [bp+014h], 04f12h ; c7 46 14 12 4f 4433 jmp short 035 76h ; eb 234491 jmp short 035c6h ; eb 23 4434 4492 mov word [bp+014h], 04f24h ; c7 46 14 24 4f 4435 jmp short 035 76h ; eb 1c4493 jmp short 035c6h ; eb 1c 4436 4494 mov word [bp+014h], 0fe3fh ; c7 46 14 3f fe 4437 jmp short 035 76h ; eb 154495 jmp short 035c6h ; eb 15 4438 4496 mov word [bp+014h], 0feffh ; c7 46 14 ff fe 4439 jmp short 035 76h ; eb 0e4497 jmp short 035c6h ; eb 0e 4440 4498 push 00255h ; 68 55 02 4441 4499 push 002adh ; 68 ad 02 4442 4500 push strict byte 00007h ; 6a 07 4443 call 019 22h ; e8 af e34501 call 01972h ; e8 af e3 4444 4502 add sp, strict byte 00006h ; 83 c4 06 4445 4503 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 4446 4504 movzx ax, dl ; 0f b6 c2 4447 call 036 12h ; e8 91 004505 call 03662h ; e8 91 00 4448 4506 mov word [bp+008h], ax ; 89 46 08 4449 jmp near 03 1d9h ; e9 52 fc4507 jmp near 03229h ; e9 52 fc 4450 4508 mov byte [bp-00eh], ah ; 88 66 f2 4451 4509 cmp ah, 001h ; 80 fc 01 4452 jbe short 035 95h ; 76 064510 jbe short 035e5h ; 76 06 4453 4511 mov word [bp+016h], si ; 89 76 16 4454 jmp near 03 4b3h ; e9 1e ff4512 jmp near 03503h ; e9 1e ff 4455 4513 mov ax, strict word 00010h ; b8 10 00 4456 call 016 5ch ; e8 c1 e04514 call 016ach ; e8 c1 e0 4457 4515 cmp byte [bp-00eh], 000h ; 80 7e f2 00 4458 jne short 035 a8h ; 75 074516 jne short 035f8h ; 75 07 4459 4517 mov dl, al ; 88 c2 4460 4518 shr dl, 004h ; c0 ea 04 4461 jmp short 035 adh ; eb 054519 jmp short 035fdh ; eb 05 4462 4520 mov dl, al ; 88 c2 4463 4521 and dl, 00fh ; 80 e2 0f … … 4466 4524 xor bh, bh ; 30 ff 4467 4525 test dl, dl ; 84 d2 4468 je short 03 5c7h ; 74 0d4526 je short 03617h ; 74 0d 4469 4527 cmp dl, 001h ; 80 fa 01 4470 jbe short 03 5c4h ; 76 054528 jbe short 03614h ; 76 05 4471 4529 or bh, 002h ; 80 cf 02 4472 jmp short 03 5c7h ; eb 034530 jmp short 03617h ; eb 03 4473 4531 or bh, 001h ; 80 cf 01 4474 4532 mov word [bp+016h], bx ; 89 5e 16 4475 jmp near 0 2fc1h ; e9 f4 f94533 jmp near 03011h ; e9 f4 f9 4476 4534 cmp ah, 001h ; 80 fc 01 4477 jbe short 03 5deh ; 76 0c4535 jbe short 0362eh ; 76 0c 4478 4536 mov word [bp+016h], si ; 89 76 16 4479 4537 mov ax, strict word 00001h ; b8 01 00 4480 call 02b a7h ; e8 cc f54481 jmp near 03 4b3h ; e9 d5 fe4538 call 02bf7h ; e8 cc f5 4539 jmp near 03503h ; e9 d5 fe 4482 4540 mov ax, word [bp+016h] ; 8b 46 16 4483 4541 xor ah, ah ; 30 e4 … … 4485 4543 mov word [bp+016h], ax ; 89 46 16 4486 4544 mov ax, strict word 00006h ; b8 06 00 4487 jmp near 02f 6dh ; e9 7e f94545 jmp near 02fbdh ; e9 7e f9 4488 4546 mov bx, 00da2h ; bb a2 0d 4489 4547 mov cx, ds ; 8c d9 4490 4548 mov ax, strict word 00004h ; b8 04 00 4491 call 01 8e1h ; e8 e7 e24549 call 01931h ; e8 e7 e2 4492 4550 mov ax, word [bp+016h] ; 8b 46 16 4493 4551 shr ax, 008h ; c1 e8 08 … … 4496 4554 push 002c2h ; 68 c2 02 4497 4555 push strict byte 00004h ; 6a 04 4498 call 019 22h ; e8 16 e34556 call 01972h ; e8 16 e3 4499 4557 add sp, strict byte 00008h ; 83 c4 08 4500 jmp near 02f 5fh ; e9 4d f94501 get_floppy_dpt_: ; 0xf36 12 LB 0x2f4558 jmp near 02fafh ; e9 4d f9 4559 get_floppy_dpt_: ; 0xf3662 LB 0x2f 4502 4560 push bx ; 53 4503 4561 push dx ; 52 … … 4506 4564 mov dl, al ; 88 c2 4507 4565 xor ax, ax ; 31 c0 4508 jmp short 036 23h ; eb 064566 jmp short 03673h ; eb 06 4509 4567 inc ax ; 40 4510 4568 cmp ax, strict word 00007h ; 3d 07 00 4511 jnc short 036 3ah ; 73 174569 jnc short 0368ah ; 73 17 4512 4570 mov bx, ax ; 89 c3 4513 4571 add bx, ax ; 01 c3 4514 4572 cmp dl, byte [word bx+0005bh] ; 3a 97 5b 00 4515 jne short 036 1dh ; 75 f04573 jne short 0366dh ; 75 f0 4516 4574 movzx ax, byte [word bx+0005ch] ; 0f b6 87 5c 00 4517 4575 imul ax, ax, strict byte 0000dh ; 6b c0 0d 4518 4576 add ax, strict word 00000h ; 05 00 00 4519 jmp short 036 3dh ; eb 034577 jmp short 0368dh ; eb 03 4520 4578 mov ax, strict word 00041h ; b8 41 00 4521 4579 pop bp ; 5d … … 4523 4581 pop bx ; 5b 4524 4582 retn ; c3 4525 dummy_soft_reset_: ; 0xf36 41 LB 0x74583 dummy_soft_reset_: ; 0xf3691 LB 0x7 4526 4584 push bp ; 55 4527 4585 mov bp, sp ; 89 e5 … … 4529 4587 pop bp ; 5d 4530 4588 retn ; c3 4531 _cdemu_init: ; 0xf36 48 LB 0x184589 _cdemu_init: ; 0xf3698 LB 0x18 4532 4590 push bp ; 55 4533 4591 mov bp, sp ; 89 e5 4534 4592 mov dx, strict word 0000eh ; ba 0e 00 4535 4593 mov ax, strict word 00040h ; b8 40 00 4536 call 016 1ch ; e8 c8 df4594 call 0166ch ; e8 c8 df 4537 4595 xor bx, bx ; 31 db 4538 4596 mov dx, 00322h ; ba 22 03 4539 call 016 0eh ; e8 b2 df4597 call 0165eh ; e8 b2 df 4540 4598 mov sp, bp ; 89 ec 4541 4599 pop bp ; 5d 4542 4600 retn ; c3 4543 _cdemu_isactive: ; 0xf36 60 LB 0x164601 _cdemu_isactive: ; 0xf36b0 LB 0x16 4544 4602 push bp ; 55 4545 4603 mov bp, sp ; 89 e5 4546 4604 mov dx, strict word 0000eh ; ba 0e 00 4547 4605 mov ax, strict word 00040h ; b8 40 00 4548 call 016 1ch ; e8 b0 df4606 call 0166ch ; e8 b0 df 4549 4607 mov dx, 00322h ; ba 22 03 4550 call 016 00h ; e8 8e df4608 call 01650h ; e8 8e df 4551 4609 mov sp, bp ; 89 ec 4552 4610 pop bp ; 5d 4553 4611 retn ; c3 4554 _cdemu_emulated_drive: ; 0xf36 76 LB 0x164612 _cdemu_emulated_drive: ; 0xf36c6 LB 0x16 4555 4613 push bp ; 55 4556 4614 mov bp, sp ; 89 e5 4557 4615 mov dx, strict word 0000eh ; ba 0e 00 4558 4616 mov ax, strict word 00040h ; b8 40 00 4559 call 016 1ch ; e8 9a df4617 call 0166ch ; e8 9a df 4560 4618 mov dx, 00324h ; ba 24 03 4561 call 016 00h ; e8 78 df4619 call 01650h ; e8 78 df 4562 4620 mov sp, bp ; 89 ec 4563 4621 pop bp ; 5d 4564 4622 retn ; c3 4565 _int13_eltorito: ; 0xf36 8c LB 0x1894623 _int13_eltorito: ; 0xf36dc LB 0x189 4566 4624 push bp ; 55 4567 4625 mov bp, sp ; 89 e5 … … 4570 4628 mov dx, strict word 0000eh ; ba 0e 00 4571 4629 mov ax, strict word 00040h ; b8 40 00 4572 call 016 1ch ; e8 82 df4630 call 0166ch ; e8 82 df 4573 4631 mov si, 00322h ; be 22 03 4574 4632 mov di, ax ; 89 c7 … … 4576 4634 shr ax, 008h ; c1 e8 08 4577 4635 cmp ax, strict word 0004bh ; 3d 4b 00 4578 jc short 03 6b4h ; 72 0a4579 jbe short 03 6dah ; 76 2e4636 jc short 03704h ; 72 0a 4637 jbe short 0372ah ; 76 2e 4580 4638 cmp ax, strict word 0004dh ; 3d 4d 00 4581 jbe short 03 6bbh ; 76 0a4582 jmp near 03 7d9h ; e9 25 014639 jbe short 0370bh ; 76 0a 4640 jmp near 03829h ; e9 25 01 4583 4641 cmp ax, strict word 0004ah ; 3d 4a 00 4584 jne near 03 7d9h ; 0f 85 1e 014642 jne near 03829h ; 0f 85 1e 01 4585 4643 mov bx, 00da2h ; bb a2 0d 4586 4644 mov cx, ds ; 8c d9 4587 4645 mov ax, strict word 00004h ; b8 04 00 4588 call 01 8e1h ; e8 1b e24646 call 01931h ; e8 1b e2 4589 4647 push word [bp+016h] ; ff 76 16 4590 4648 push 002dch ; 68 dc 02 4591 4649 push 002ebh ; 68 eb 02 4592 4650 push strict byte 00004h ; 6a 04 4593 call 019 22h ; e8 4e e24651 call 01972h ; e8 4e e2 4594 4652 add sp, strict byte 00008h ; 83 c4 08 4595 jmp near 03 7f4h ; e9 1a 014653 jmp near 03844h ; e9 1a 01 4596 4654 mov dx, word [bp+00ah] ; 8b 56 0a 4597 4655 mov ax, word [bp+004h] ; 8b 46 04 4598 4656 mov bx, strict word 00013h ; bb 13 00 4599 call 016 0eh ; e8 28 df4657 call 0165eh ; e8 28 df 4600 4658 mov es, di ; 8e c7 4601 4659 movzx bx, byte [es:si+001h] ; 26 0f b6 5c 01 … … 4603 4661 inc dx ; 42 4604 4662 mov ax, word [bp+004h] ; 8b 46 04 4605 call 016 0eh ; e8 17 df4663 call 0165eh ; e8 17 df 4606 4664 mov es, di ; 8e c7 4607 4665 movzx bx, byte [es:si+002h] ; 26 0f b6 5c 02 … … 4610 4668 inc dx ; 42 4611 4669 mov ax, word [bp+004h] ; 8b 46 04 4612 call 016 0eh ; e8 05 df4670 call 0165eh ; e8 05 df 4613 4671 mov es, di ; 8e c7 4614 4672 movzx bx, byte [es:si+003h] ; 26 0f b6 5c 03 … … 4616 4674 add dx, strict byte 00003h ; 83 c2 03 4617 4675 mov ax, word [bp+004h] ; 8b 46 04 4618 call 016 0eh ; e8 f2 de4676 call 0165eh ; e8 f2 de 4619 4677 mov es, di ; 8e c7 4620 4678 mov bx, word [es:si+008h] ; 26 8b 5c 08 … … 4623 4681 add dx, strict byte 00004h ; 83 c2 04 4624 4682 mov ax, word [bp+004h] ; 8b 46 04 4625 call 016 4ah ; e8 18 df4683 call 0169ah ; e8 18 df 4626 4684 mov es, di ; 8e c7 4627 4685 mov bx, word [es:si+004h] ; 26 8b 5c 04 … … 4629 4687 add dx, strict byte 00008h ; 83 c2 08 4630 4688 mov ax, word [bp+004h] ; 8b 46 04 4631 call 016 2ah ; e8 e6 de4689 call 0167ah ; e8 e6 de 4632 4690 mov es, di ; 8e c7 4633 4691 mov bx, word [es:si+006h] ; 26 8b 5c 06 … … 4635 4693 add dx, strict byte 0000ah ; 83 c2 0a 4636 4694 mov ax, word [bp+004h] ; 8b 46 04 4637 call 016 2ah ; e8 d4 de4695 call 0167ah ; e8 d4 de 4638 4696 mov es, di ; 8e c7 4639 4697 mov bx, word [es:si+00ch] ; 26 8b 5c 0c … … 4641 4699 add dx, strict byte 0000ch ; 83 c2 0c 4642 4700 mov ax, word [bp+004h] ; 8b 46 04 4643 call 016 2ah ; e8 c2 de4701 call 0167ah ; e8 c2 de 4644 4702 mov es, di ; 8e c7 4645 4703 mov bx, word [es:si+00eh] ; 26 8b 5c 0e … … 4647 4705 add dx, strict byte 0000eh ; 83 c2 0e 4648 4706 mov ax, word [bp+004h] ; 8b 46 04 4649 call 016 2ah ; e8 b0 de4707 call 0167ah ; e8 b0 de 4650 4708 mov es, di ; 8e c7 4651 4709 movzx bx, byte [es:si+012h] ; 26 0f b6 5c 12 … … 4653 4711 add dx, strict byte 00010h ; 83 c2 10 4654 4712 mov ax, word [bp+004h] ; 8b 46 04 4655 call 016 0eh ; e8 81 de4713 call 0165eh ; e8 81 de 4656 4714 mov es, di ; 8e c7 4657 4715 movzx bx, byte [es:si+014h] ; 26 0f b6 5c 14 … … 4659 4717 add dx, strict byte 00011h ; 83 c2 11 4660 4718 mov ax, word [bp+004h] ; 8b 46 04 4661 call 016 0eh ; e8 6e de4719 call 0165eh ; e8 6e de 4662 4720 mov es, di ; 8e c7 4663 4721 movzx bx, byte [es:si+010h] ; 26 0f b6 5c 10 … … 4665 4723 add dx, strict byte 00012h ; 83 c2 12 4666 4724 mov ax, word [bp+004h] ; 8b 46 04 4667 call 016 0eh ; e8 5b de4725 call 0165eh ; e8 5b de 4668 4726 test byte [bp+016h], 0ffh ; f6 46 16 ff 4669 jne short 03 7bfh ; 75 064727 jne short 0380fh ; 75 06 4670 4728 mov es, di ; 8e c7 4671 4729 mov byte [es:si], 000h ; 26 c6 04 00 … … 4674 4732 mov dx, strict word 00074h ; ba 74 00 4675 4733 mov ax, strict word 00040h ; b8 40 00 4676 call 016 0eh ; e8 40 de4734 call 0165eh ; e8 40 de 4677 4735 and byte [bp+01ch], 0feh ; 80 66 1c fe 4678 4736 lea sp, [bp-004h] ; 8d 66 fc … … 4684 4742 mov cx, ds ; 8c d9 4685 4743 mov ax, strict word 00004h ; b8 04 00 4686 call 01 8e1h ; e8 fd e04744 call 01931h ; e8 fd e0 4687 4745 mov ax, word [bp+016h] ; 8b 46 16 4688 4746 shr ax, 008h ; c1 e8 08 … … 4690 4748 push 002dch ; 68 dc 02 4691 4749 push 00313h ; 68 13 03 4692 jmp near 03 6cfh ; e9 db fe4750 jmp near 0371fh ; e9 db fe 4693 4751 mov ax, word [bp+016h] ; 8b 46 16 4694 4752 xor ah, ah ; 30 e4 … … 4700 4758 mov dx, strict word 00074h ; ba 74 00 4701 4759 mov ax, strict word 00040h ; b8 40 00 4702 call 016 0eh ; e8 ff dd4760 call 0165eh ; e8 ff dd 4703 4761 or byte [bp+01ch], 001h ; 80 4e 1c 01 4704 jmp short 03 7d2h ; eb bd4705 device_is_cdrom_: ; 0xf38 15 LB 0x354762 jmp short 03822h ; eb bd 4763 device_is_cdrom_: ; 0xf3865 LB 0x35 4706 4764 push bp ; 55 4707 4765 mov bp, sp ; 89 e5 … … 4711 4769 mov dx, strict word 0000eh ; ba 0e 00 4712 4770 mov ax, strict word 00040h ; b8 40 00 4713 call 016 1ch ; e8 f7 dd4771 call 0166ch ; e8 f7 dd 4714 4772 cmp bl, 010h ; 80 fb 10 4715 jc short 038 2eh ; 72 044773 jc short 0387eh ; 72 04 4716 4774 xor ax, ax ; 31 c0 4717 jmp short 038 43h ; eb 154775 jmp short 03893h ; eb 15 4718 4776 xor bh, bh ; 30 ff 4719 4777 imul bx, bx, strict byte 00018h ; 6b db 18 … … 4721 4779 add bx, 00122h ; 81 c3 22 01 4722 4780 cmp byte [es:bx+01fh], 005h ; 26 80 7f 1f 05 4723 jne short 038 2ah ; 75 ea4781 jne short 0387ah ; 75 ea 4724 4782 mov ax, strict word 00001h ; b8 01 00 4725 4783 lea sp, [bp-004h] ; 8d 66 fc … … 4728 4786 pop bp ; 5d 4729 4787 retn ; c3 4730 cdrom_boot_: ; 0xf38 4a LB 0x4164788 cdrom_boot_: ; 0xf389a LB 0x416 4731 4789 push bp ; 55 4732 4790 mov bp, sp ; 89 e5 … … 4739 4797 mov dx, strict word 0000eh ; ba 0e 00 4740 4798 mov ax, strict word 00040h ; b8 40 00 4741 call 016 1ch ; e8 bd dd4799 call 0166ch ; e8 bd dd 4742 4800 mov word [bp-018h], ax ; 89 46 e8 4743 4801 mov si, 00322h ; be 22 03 … … 4746 4804 mov word [bp-012h], ax ; 89 46 ee 4747 4805 mov byte [bp-00ch], 000h ; c6 46 f4 00 4748 jmp short 038 7fh ; eb 094806 jmp short 038cfh ; eb 09 4749 4807 inc byte [bp-00ch] ; fe 46 f4 4750 4808 cmp byte [bp-00ch], 010h ; 80 7e f4 10 4751 jnc short 038 8ah ; 73 0b4809 jnc short 038dah ; 73 0b 4752 4810 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4753 call 038 15h ; e8 8f ff4811 call 03865h ; e8 8f ff 4754 4812 test ax, ax ; 85 c0 4755 je short 038 76h ; 74 ec4813 je short 038c6h ; 74 ec 4756 4814 cmp byte [bp-00ch], 010h ; 80 7e f4 10 4757 jc short 038 96h ; 72 064815 jc short 038e6h ; 72 06 4758 4816 mov ax, strict word 00002h ; b8 02 00 4759 jmp near 03 bfdh ; e9 67 034817 jmp near 03c4dh ; e9 67 03 4760 4818 mov cx, strict word 0000ch ; b9 0c 00 4761 4819 xor bx, bx ; 31 db 4762 4820 mov dx, ss ; 8c d2 4763 4821 lea ax, [bp-026h] ; 8d 46 da 4764 call 094 6ah ; e8 c7 5b4822 call 094aah ; e8 b7 5b 4765 4823 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 4766 4824 mov ax, strict word 00011h ; b8 11 00 … … 4778 4836 ; mov dword [es:bx+00ah], strict dword 008000001h ; 66 26 c7 47 0a 01 00 00 08 4779 4837 mov byte [bp-00eh], 000h ; c6 46 f2 00 4780 jmp short 03 8dbh ; eb 094838 jmp short 0392bh ; eb 09 4781 4839 inc byte [bp-00eh] ; fe 46 f2 4782 4840 cmp byte [bp-00eh], 004h ; 80 7e f2 04 4783 jnbe short 039 12h ; 77 374841 jnbe short 03962h ; 77 37 4784 4842 movzx di, byte [bp-00ch] ; 0f b6 7e f4 4785 4843 imul di, di, strict byte 00018h ; 6b ff 18 … … 4801 4859 call word [word di+0006ah] ; ff 95 6a 00 4802 4860 test ax, ax ; 85 c0 4803 jne short 03 8d2h ; 75 c04861 jne short 03922h ; 75 c0 4804 4862 test ax, ax ; 85 c0 4805 je short 039 1ch ; 74 064863 je short 0396ch ; 74 06 4806 4864 mov ax, strict word 00003h ; b8 03 00 4807 jmp near 03 bfdh ; e9 e1 024865 jmp near 03c4dh ; e9 e1 02 4808 4866 cmp byte [bp-00826h], 000h ; 80 be da f7 00 4809 je short 039 29h ; 74 064867 je short 03979h ; 74 06 4810 4868 mov ax, strict word 00004h ; b8 04 00 4811 jmp near 03 bfdh ; e9 d4 024869 jmp near 03c4dh ; e9 d4 02 4812 4870 xor di, di ; 31 ff 4813 jmp short 039 33h ; eb 064871 jmp short 03983h ; eb 06 4814 4872 inc di ; 47 4815 4873 cmp di, strict byte 00005h ; 83 ff 05 4816 jnc short 039 43h ; 73 104874 jnc short 03993h ; 73 10 4817 4875 mov al, byte [bp+di-00825h] ; 8a 83 db f7 4818 4876 cmp al, byte [di+00daah] ; 3a 85 aa 0d 4819 je short 039 2dh ; 74 f04877 je short 0397dh ; 74 f0 4820 4878 mov ax, strict word 00005h ; b8 05 00 4821 jmp near 03 bfdh ; e9 ba 024879 jmp near 03c4dh ; e9 ba 02 4822 4880 xor di, di ; 31 ff 4823 jmp short 039 4dh ; eb 064881 jmp short 0399dh ; eb 06 4824 4882 inc di ; 47 4825 4883 cmp di, strict byte 00017h ; 83 ff 17 4826 jnc short 039 5dh ; 73 104884 jnc short 039adh ; 73 10 4827 4885 mov al, byte [bp+di-0081fh] ; 8a 83 e1 f7 4828 4886 cmp al, byte [di+00db0h] ; 3a 85 b0 0d 4829 je short 039 47h ; 74 f04887 je short 03997h ; 74 f0 4830 4888 mov ax, strict word 00006h ; b8 06 00 4831 jmp near 03 bfdh ; e9 a0 024889 jmp near 03c4dh ; e9 a0 02 4832 4890 mov ax, word [bp-007dfh] ; 8b 86 21 f8 4833 4891 mov dx, word [bp-007ddh] ; 8b 96 23 f8 … … 4860 4918 call word [word di+0006ah] ; ff 95 6a 00 4861 4919 test ax, ax ; 85 c0 4862 je short 03 9bah ; 74 064920 je short 03a0ah ; 74 06 4863 4921 mov ax, strict word 00007h ; b8 07 00 4864 jmp near 03 bfdh ; e9 43 024922 jmp near 03c4dh ; e9 43 02 4865 4923 cmp byte [bp-00826h], 001h ; 80 be da f7 01 4866 je short 03 9c7h ; 74 064924 je short 03a17h ; 74 06 4867 4925 mov ax, strict word 00008h ; b8 08 00 4868 jmp near 03 bfdh ; e9 36 024926 jmp near 03c4dh ; e9 36 02 4869 4927 cmp byte [bp-00825h], 000h ; 80 be db f7 00 4870 je short 03 9d4h ; 74 064928 je short 03a24h ; 74 06 4871 4929 mov ax, strict word 00009h ; b8 09 00 4872 jmp near 03 bfdh ; e9 29 024930 jmp near 03c4dh ; e9 29 02 4873 4931 cmp byte [bp-00808h], 055h ; 80 be f8 f7 55 4874 je short 03 9e1h ; 74 064932 je short 03a31h ; 74 06 4875 4933 mov ax, strict word 0000ah ; b8 0a 00 4876 jmp near 03 bfdh ; e9 1c 024934 jmp near 03c4dh ; e9 1c 02 4877 4935 cmp byte [bp-00807h], 0aah ; 80 be f9 f7 aa 4878 jne short 03 9dbh ; 75 f34936 jne short 03a2bh ; 75 f3 4879 4937 cmp byte [bp-00806h], 088h ; 80 be fa f7 88 4880 je short 03 9f5h ; 74 064938 je short 03a45h ; 74 06 4881 4939 mov ax, strict word 0000bh ; b8 0b 00 4882 jmp near 03 bfdh ; e9 08 024940 jmp near 03c4dh ; e9 08 02 4883 4941 mov al, byte [bp-00805h] ; 8a 86 fb f7 4884 4942 mov es, [bp-010h] ; 8e 46 f0 4885 4943 mov byte [es:si+001h], al ; 26 88 44 01 4886 4944 cmp byte [bp-00805h], 000h ; 80 be fb f7 00 4887 jne short 03a 0eh ; 75 074945 jne short 03a5eh ; 75 07 4888 4946 mov byte [es:si+002h], 0e0h ; 26 c6 44 02 e0 4889 jmp short 03a 21h ; eb 134947 jmp short 03a71h ; eb 13 4890 4948 cmp byte [bp-00805h], 004h ; 80 be fb f7 04 4891 jnc short 03a 1ch ; 73 074949 jnc short 03a6ch ; 73 07 4892 4950 mov byte [es:si+002h], 000h ; 26 c6 44 02 00 4893 jmp short 03a 21h ; eb 054951 jmp short 03a71h ; eb 05 4894 4952 mov byte [es:si+002h], 080h ; 26 c6 44 02 80 4895 4953 movzx di, byte [bp-00ch] ; 0f b6 7e f4 … … 4909 4967 mov word [bp-016h], ax ; 89 46 ea 4910 4968 test ax, ax ; 85 c0 4911 jne short 03a 4fh ; 75 054969 jne short 03a9fh ; 75 05 4912 4970 mov word [bp-016h], 007c0h ; c7 46 ea c0 07 4913 4971 mov ax, word [bp-016h] ; 8b 46 ea … … 4918 4976 mov word [es:si+00eh], di ; 26 89 7c 0e 4919 4977 test di, di ; 85 ff 4920 je short 03a 71h ; 74 064978 je short 03ac1h ; 74 06 4921 4979 cmp di, 00400h ; 81 ff 00 04 4922 jbe short 03a 77h ; 76 064980 jbe short 03ac7h ; 76 06 4923 4981 mov ax, strict word 0000ch ; b8 0c 00 4924 jmp near 03 bfdh ; e9 86 014982 jmp near 03c4dh ; e9 86 01 4925 4983 mov ax, word [bp-007feh] ; 8b 86 02 f8 4926 4984 mov dx, word [bp-007fch] ; 8b 96 04 f8 … … 4962 5020 sal ax, 1 ; d1 e0 4963 5021 rcl di, 1 ; d1 d7 4964 loop 03 ae5h ; e2 fa5022 loop 03b35h ; e2 fa 4965 5023 push di ; 57 4966 5024 push ax ; 50 … … 4975 5033 mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00 4976 5034 test ax, ax ; 85 c0 4977 je short 03b 15h ; 74 065035 je short 03b65h ; 74 06 4978 5036 mov ax, strict word 0000dh ; b8 0d 00 4979 jmp near 03 bfdh ; e9 e8 005037 jmp near 03c4dh ; e9 e8 00 4980 5038 mov es, [bp-010h] ; 8e 46 f0 4981 5039 mov al, byte [es:si+001h] ; 26 8a 44 01 4982 5040 cmp AL, strict byte 002h ; 3c 02 4983 jc short 03b 2dh ; 72 0d4984 jbe short 03b 45h ; 76 235041 jc short 03b7dh ; 72 0d 5042 jbe short 03b95h ; 76 23 4985 5043 cmp AL, strict byte 004h ; 3c 04 4986 je short 03b 5bh ; 74 355044 je short 03babh ; 74 35 4987 5045 cmp AL, strict byte 003h ; 3c 03 4988 je short 03b 50h ; 74 264989 jmp near 03b a6h ; e9 79 005046 je short 03ba0h ; 74 26 5047 jmp near 03bf6h ; e9 79 00 4990 5048 cmp AL, strict byte 001h ; 3c 01 4991 jne short 03b a6h ; 75 755049 jne short 03bf6h ; 75 75 4992 5050 mov es, [bp-010h] ; 8e 46 f0 4993 5051 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h 4994 5052 ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00 4995 5053 mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00 4996 jmp short 03b a6h ; eb 615054 jmp short 03bf6h ; eb 61 4997 5055 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h 4998 5056 ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00 4999 jmp short 03b 3dh ; eb ed5057 jmp short 03b8dh ; eb ed 5000 5058 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h 5001 5059 ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00 5002 jmp short 03b 3dh ; eb e25060 jmp short 03b8dh ; eb e2 5003 5061 mov dx, 001c4h ; ba c4 01 5004 5062 mov ax, word [bp-016h] ; 8b 46 ea 5005 call 016 00h ; e8 9c da5063 call 01650h ; e8 9c da 5006 5064 and AL, strict byte 03fh ; 24 3f 5007 5065 xor ah, ah ; 30 e4 … … 5010 5068 mov dx, 001c4h ; ba c4 01 5011 5069 mov ax, word [bp-016h] ; 8b 46 ea 5012 call 016 00h ; e8 88 da5070 call 01650h ; e8 88 da 5013 5071 movzx bx, al ; 0f b6 d8 5014 5072 sal bx, 002h ; c1 e3 02 5015 5073 mov dx, 001c5h ; ba c5 01 5016 5074 mov ax, word [bp-016h] ; 8b 46 ea 5017 call 016 00h ; e8 79 da5075 call 01650h ; e8 79 da 5018 5076 xor ah, ah ; 30 e4 5019 5077 add ax, bx ; 01 d8 … … 5023 5081 mov dx, 001c3h ; ba c3 01 5024 5082 mov ax, word [bp-016h] ; 8b 46 ea 5025 call 016 00h ; e8 64 da5083 call 01650h ; e8 64 da 5026 5084 xor ah, ah ; 30 e4 5027 5085 inc ax ; 40 … … 5030 5088 mov es, [bp-010h] ; 8e 46 f0 5031 5089 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5032 je short 03 be4h ; 74 345090 je short 03c34h ; 74 34 5033 5091 cmp byte [es:si+002h], 000h ; 26 80 7c 02 00 5034 jne short 03 bcdh ; 75 165092 jne short 03c1dh ; 75 16 5035 5093 mov dx, strict word 00010h ; ba 10 00 5036 5094 mov ax, strict word 00040h ; b8 40 00 5037 call 016 00h ; e8 40 da5095 call 01650h ; e8 40 da 5038 5096 or AL, strict byte 041h ; 0c 41 5039 5097 movzx bx, al ; 0f b6 d8 5040 5098 mov dx, strict word 00010h ; ba 10 00 5041 5099 mov ax, strict word 00040h ; b8 40 00 5042 jmp short 03 be1h ; eb 145100 jmp short 03c31h ; eb 14 5043 5101 mov dx, 002c0h ; ba c0 02 5044 5102 mov ax, word [bp-018h] ; 8b 46 e8 5045 call 016 00h ; e8 2a da5103 call 01650h ; e8 2a da 5046 5104 db 0feh, 0c0h 5047 5105 ; inc al ; fe c0 … … 5049 5107 mov dx, 002c0h ; ba c0 02 5050 5108 mov ax, word [bp-018h] ; 8b 46 e8 5051 call 016 0eh ; e8 2a da5109 call 0165eh ; e8 2a da 5052 5110 mov es, [bp-010h] ; 8e 46 f0 5053 5111 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5054 je short 03 bf2h ; 74 045112 je short 03c42h ; 74 04 5055 5113 mov byte [es:si], 001h ; 26 c6 04 01 5056 5114 mov es, [bp-010h] ; 8e 46 f0 … … 5066 5124 retn ; c3 5067 5125 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 5068 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 f8h, 03fh, 006h5069 db 03dh, 0 50h, 03dh, 078h, 03dh, 045h, 03dh, 078h, 03dh, 045h, 03dh, 04eh, 03fh, 02bh, 03dh, 0f8h5070 db 0 3fh, 0f8h, 03fh, 02bh, 03dh, 02bh, 03dh, 02bh, 03dh, 02bh, 03dh, 02bh, 03dh, 0efh, 03fh, 02bh5071 db 03dh, 0 f8h, 03fh, 0f8h, 03fh, 0f8h, 03fh, 0f8h, 03fh, 0f8h, 03fh, 0f8h, 03fh, 0f8h, 03fh, 0f8h5072 db 0 3fh, 0f8h, 03fh, 0f8h, 03fh, 0f8h, 03fh, 0f8h, 03fh5073 _int13_cdemu: ; 0xf3c 60 LB 0x4345126 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 048h, 040h, 056h 5127 db 03dh, 0a0h, 03dh, 0c8h, 03dh, 095h, 03dh, 0c8h, 03dh, 095h, 03dh, 09eh, 03fh, 07bh, 03dh, 048h 5128 db 040h, 048h, 040h, 07bh, 03dh, 07bh, 03dh, 07bh, 03dh, 07bh, 03dh, 07bh, 03dh, 03fh, 040h, 07bh 5129 db 03dh, 048h, 040h, 048h, 040h, 048h, 040h, 048h, 040h, 048h, 040h, 048h, 040h, 048h, 040h, 048h 5130 db 040h, 048h, 040h, 048h, 040h, 048h, 040h, 048h, 040h 5131 _int13_cdemu: ; 0xf3cb0 LB 0x434 5074 5132 push bp ; 55 5075 5133 mov bp, sp ; 89 e5 … … 5079 5137 mov dx, strict word 0000eh ; ba 0e 00 5080 5138 mov ax, strict word 00040h ; b8 40 00 5081 call 016 1ch ; e8 ab d95139 call 0166ch ; e8 ab d9 5082 5140 mov di, 00322h ; bf 22 03 5083 5141 mov cx, ax ; 89 c1 … … 5095 5153 mov dx, strict word 00074h ; ba 74 00 5096 5154 mov ax, strict word 00040h ; b8 40 00 5097 call 016 0eh ; e8 6e d95155 call 0165eh ; e8 6e d9 5098 5156 mov es, cx ; 8e c1 5099 5157 cmp byte [es:di], 000h ; 26 80 3d 00 5100 je short 03 cb6h ; 74 0e5158 je short 03d06h ; 74 0e 5101 5159 movzx dx, byte [es:di+002h] ; 26 0f b6 55 02 5102 5160 mov ax, word [bp+012h] ; 8b 46 12 5103 5161 xor ah, ah ; 30 e4 5104 5162 cmp dx, ax ; 39 c2 5105 je short 03 cdfh ; 74 295163 je short 03d2fh ; 74 29 5106 5164 mov bx, 00da2h ; bb a2 0d 5107 5165 mov cx, ds ; 8c d9 5108 5166 mov ax, strict word 00004h ; b8 04 00 5109 call 01 8e1h ; e8 20 dc5167 call 01931h ; e8 20 dc 5110 5168 mov ax, word [bp+012h] ; 8b 46 12 5111 5169 xor ah, ah ; 30 e4 … … 5117 5175 push 00338h ; 68 38 03 5118 5176 push strict byte 00004h ; 6a 04 5119 call 019 22h ; e8 49 dc5177 call 01972h ; e8 49 dc 5120 5178 add sp, strict byte 0000ah ; 83 c4 0a 5121 jmp near 040 18h ; e9 39 035179 jmp near 04068h ; e9 39 03 5122 5180 mov ax, word [bp+016h] ; 8b 46 16 5123 5181 shr ax, 008h ; c1 e8 08 5124 5182 cmp ax, strict word 00050h ; 3d 50 00 5125 jnbe near 0 3ff8h ; 0f 87 0c 035183 jnbe near 04048h ; 0f 87 0c 03 5126 5184 push CS ; 0e 5127 5185 pop ES ; 07 5128 5186 mov cx, strict word 0001eh ; b9 1e 00 5129 mov di, 03c 07h ; bf 07 3c5187 mov di, 03c57h ; bf 57 3c 5130 5188 repne scasb ; f2 ae 5131 5189 sal cx, 1 ; d1 e1 5132 5190 mov di, cx ; 89 cf 5133 mov ax, word [cs:di+03c 24h] ; 2e 8b 85 24 3c5191 mov ax, word [cs:di+03c74h] ; 2e 8b 85 74 3c 5134 5192 mov bx, word [bp+016h] ; 8b 5e 16 5135 5193 xor bh, bh ; 30 ff … … 5142 5200 add bx, bx ; 01 db 5143 5201 cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00 5144 je near 03d 2bh ; 0f 84 08 005202 je near 03d7bh ; 0f 84 08 00 5145 5203 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5146 5204 call word [word bx+00076h] ; ff 97 76 00 … … 5149 5207 mov dx, strict word 00074h ; ba 74 00 5150 5208 mov ax, strict word 00040h ; b8 40 00 5151 call 016 0eh ; e8 d4 d85209 call 0165eh ; e8 d4 d8 5152 5210 and byte [bp+01ch], 0feh ; 80 66 1c fe 5153 5211 lea sp, [bp-004h] ; 8d 66 fc … … 5159 5217 xor ah, ah ; 30 e4 5160 5218 or ah, 003h ; 80 cc 03 5161 jmp near 040 20h ; e9 d0 025219 jmp near 04070h ; e9 d0 02 5162 5220 mov dx, strict word 00074h ; ba 74 00 5163 5221 mov ax, strict word 00040h ; b8 40 00 5164 call 016 00h ; e8 a7 d85222 call 01650h ; e8 a7 d8 5165 5223 mov cl, al ; 88 c1 5166 5224 movzx ax, cl ; 0f b6 c1 … … 5171 5229 mov dx, strict word 00074h ; ba 74 00 5172 5230 mov ax, strict word 00040h ; b8 40 00 5173 call 016 0eh ; e8 9d d85231 call 0165eh ; e8 9d d8 5174 5232 test cl, cl ; 84 c9 5175 je short 03d 2fh ; 74 ba5176 jmp near 040 34h ; e9 bc 025233 je short 03d7fh ; 74 ba 5234 jmp near 04084h ; e9 bc 02 5177 5235 mov es, [bp-008h] ; 8e 46 f8 5178 5236 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 5198 5256 mov word [bp-00ah], cx ; 89 4e f6 5199 5257 test cx, cx ; 85 c9 5200 jne short 03 dc5h ; 75 035201 jmp near 03d 2bh ; e9 66 ff5258 jne short 03e15h ; 75 03 5259 jmp near 03d7bh ; e9 66 ff 5202 5260 cmp di, word [bp-010h] ; 3b 7e f0 5203 jc near 040 18h ; 0f 82 4c 025261 jc near 04068h ; 0f 82 4c 02 5204 5262 cmp ax, dx ; 39 d0 5205 jnc near 040 18h ; 0f 83 46 025263 jnc near 04068h ; 0f 83 46 02 5206 5264 cmp si, bx ; 39 de 5207 jnc near 040 18h ; 0f 83 40 025265 jnc near 04068h ; 0f 83 40 02 5208 5266 mov dx, word [bp+016h] ; 8b 56 16 5209 5267 shr dx, 008h ; c1 ea 08 5210 5268 cmp dx, strict byte 00004h ; 83 fa 04 5211 jne short 03 de6h ; 75 035212 jmp near 03d 2bh ; e9 45 ff5269 jne short 03e36h ; 75 03 5270 jmp near 03d7bh ; e9 45 ff 5213 5271 mov dx, word [bp+010h] ; 8b 56 10 5214 5272 shr dx, 004h ; c1 ea 04 … … 5221 5279 xor dl, dl ; 30 d2 5222 5280 xor cx, cx ; 31 c9 5223 call 094 39h ; e8 35 565281 call 09479h ; e8 25 56 5224 5282 xor bx, bx ; 31 db 5225 5283 add ax, si ; 01 f0 … … 5227 5285 mov bx, di ; 89 fb 5228 5286 xor cx, cx ; 31 c9 5229 call 094 39h ; e8 28 565287 call 09479h ; e8 18 56 5230 5288 mov bx, ax ; 89 c3 5231 5289 mov ax, word [bp-010h] ; 8b 46 f0 … … 5262 5320 mov dx, ss ; 8c d2 5263 5321 lea ax, [bp-02eh] ; 8d 46 d2 5264 call 094 6ah ; e8 02 565322 call 094aah ; e8 f2 55 5265 5323 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 5266 5324 mov ax, word [bp-014h] ; 8b 46 ec … … 5310 5368 sal si, 1 ; d1 e6 5311 5369 rcl di, 1 ; d1 d7 5312 loop 03 ee8h ; e2 fa5370 loop 03f38h ; e2 fa 5313 5371 push di ; 57 5314 5372 push si ; 56 … … 5325 5383 ; mov dword [es:bx+01ah], strict dword 000000000h ; 66 26 c7 47 1a 00 00 00 00 5326 5384 test al, al ; 84 c0 5327 je near 03d 2bh ; 0f 84 13 fe5385 je near 03d7bh ; 0f 84 13 fe 5328 5386 mov bx, 00da2h ; bb a2 0d 5329 5387 mov cx, ds ; 8c d9 5330 5388 mov ax, strict word 00004h ; b8 04 00 5331 call 01 8e1h ; e8 be d95389 call 01931h ; e8 be d9 5332 5390 movzx ax, dl ; 0f b6 c2 5333 5391 push ax ; 50 … … 5338 5396 push 0036eh ; 68 6e 03 5339 5397 push strict byte 00004h ; 6a 04 5340 call 019 22h ; e8 e9 d95398 call 01972h ; e8 e9 d9 5341 5399 add sp, strict byte 0000ah ; 83 c4 0a 5342 5400 mov ax, word [bp+016h] ; 8b 46 16 … … 5345 5403 mov word [bp+016h], ax ; 89 46 16 5346 5404 mov byte [bp+016h], 000h ; c6 46 16 00 5347 jmp near 040 23h ; e9 d5 005405 jmp near 04073h ; e9 d5 00 5348 5406 mov es, [bp-008h] ; 8e 46 f8 5349 5407 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 5384 5442 mov word [bp+010h], ax ; 89 46 10 5385 5443 cmp dl, 003h ; 80 fa 03 5386 je short 0 3fd2h ; 74 1a5444 je short 04022h ; 74 1a 5387 5445 cmp dl, 002h ; 80 fa 02 5388 je short 0 3fceh ; 74 115446 je short 0401eh ; 74 11 5389 5447 cmp dl, 001h ; 80 fa 01 5390 jne short 0 3fd6h ; 75 145448 jne short 04026h ; 75 14 5391 5449 mov ax, word [bp+010h] ; 8b 46 10 5392 5450 xor al, al ; 30 c0 5393 5451 or AL, strict byte 002h ; 0c 02 5394 5452 mov word [bp+010h], ax ; 89 46 10 5395 jmp short 0 3fd6h ; eb 085453 jmp short 04026h ; eb 08 5396 5454 or AL, strict byte 004h ; 0c 04 5397 jmp short 0 3fc9h ; eb f75455 jmp short 04019h ; eb f7 5398 5456 or AL, strict byte 005h ; 0c 05 5399 jmp short 0 3fc9h ; eb f35457 jmp short 04019h ; eb f3 5400 5458 mov es, [bp-008h] ; 8e 46 f8 5401 5459 cmp byte [es:si+001h], 004h ; 26 80 7c 01 04 5402 jnc near 03d 2bh ; 0f 83 49 fd5460 jnc near 03d7bh ; 0f 83 49 fd 5403 5461 mov word [bp+008h], 0efc7h ; c7 46 08 c7 ef 5404 5462 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 5405 jmp near 03d 2bh ; e9 3c fd5463 jmp near 03d7bh ; e9 3c fd 5406 5464 or bh, 003h ; 80 cf 03 5407 5465 mov word [bp+016h], bx ; 89 5e 16 5408 jmp near 03d 2fh ; e9 37 fd5466 jmp near 03d7fh ; e9 37 fd 5409 5467 mov bx, 00da2h ; bb a2 0d 5410 5468 mov cx, ds ; 8c d9 5411 5469 mov ax, strict word 00004h ; b8 04 00 5412 call 01 8e1h ; e8 de d85470 call 01931h ; e8 de d8 5413 5471 mov ax, word [bp+016h] ; 8b 46 16 5414 5472 shr ax, 008h ; c1 e8 08 … … 5417 5475 push 0038fh ; 68 8f 03 5418 5476 push strict byte 00004h ; 6a 04 5419 call 019 22h ; e8 0d d95477 call 01972h ; e8 0d d9 5420 5478 add sp, strict byte 00008h ; 83 c4 08 5421 5479 mov ax, word [bp+016h] ; 8b 46 16 … … 5428 5486 mov dx, strict word 00074h ; ba 74 00 5429 5487 mov ax, strict word 00040h ; b8 40 00 5430 call 016 0eh ; e8 da d55488 call 0165eh ; e8 da d5 5431 5489 or byte [bp+01ch], 001h ; 80 4e 1c 01 5432 jmp near 03d 3eh ; e9 03 fd5490 jmp near 03d8eh ; e9 03 fd 5433 5491 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 5434 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 d9h, 045h, 055h5435 db 043h, 0 41h, 041h, 0d9h, 045h, 036h, 041h, 0d9h, 045h, 036h, 041h, 0d9h, 045h, 055h, 043h, 0d9h5436 db 04 5h, 0d9h, 045h, 055h, 043h, 055h, 043h, 055h, 043h, 055h, 043h, 055h, 043h, 06bh, 041h, 055h5437 db 043h, 0 d9h, 045h, 074h, 041h, 087h, 041h, 036h, 041h, 087h, 041h, 0b5h, 042h, 06fh, 043h, 087h5438 db 041h, 0 96h, 043h, 092h, 045h, 09ah, 045h, 0d9h, 045h5439 _int13_cdrom: ; 0xf40 94 LB 0x5625492 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 029h, 046h, 0a5h 5493 db 043h, 091h, 041h, 029h, 046h, 086h, 041h, 029h, 046h, 086h, 041h, 029h, 046h, 0a5h, 043h, 029h 5494 db 046h, 029h, 046h, 0a5h, 043h, 0a5h, 043h, 0a5h, 043h, 0a5h, 043h, 0a5h, 043h, 0bbh, 041h, 0a5h 5495 db 043h, 029h, 046h, 0c4h, 041h, 0d7h, 041h, 086h, 041h, 0d7h, 041h, 005h, 043h, 0bfh, 043h, 0d7h 5496 db 041h, 0e6h, 043h, 0e2h, 045h, 0eah, 045h, 029h, 046h 5497 _int13_cdrom: ; 0xf40e4 LB 0x562 5440 5498 push bp ; 55 5441 5499 mov bp, sp ; 89 e5 … … 5445 5503 mov dx, strict word 0000eh ; ba 0e 00 5446 5504 mov ax, strict word 00040h ; b8 40 00 5447 call 016 1ch ; e8 77 d55505 call 0166ch ; e8 77 d5 5448 5506 mov word [bp-01ah], ax ; 89 46 e6 5449 5507 mov si, 00122h ; be 22 01 … … 5452 5510 mov dx, strict word 00074h ; ba 74 00 5453 5511 mov ax, strict word 00040h ; b8 40 00 5454 call 016 0eh ; e8 55 d55512 call 0165eh ; e8 55 d5 5455 5513 mov ax, word [bp+010h] ; 8b 46 10 5456 5514 xor ah, ah ; 30 e4 5457 5515 cmp ax, 000e0h ; 3d e0 00 5458 jc short 04 0c8h ; 72 055516 jc short 04118h ; 72 05 5459 5517 cmp ax, 000f0h ; 3d f0 00 5460 jc short 04 0e6h ; 72 1e5518 jc short 04136h ; 72 1e 5461 5519 mov ax, word [bp+010h] ; 8b 46 10 5462 5520 xor ah, ah ; 30 e4 … … 5468 5526 push 003cbh ; 68 cb 03 5469 5527 push strict byte 00004h ; 6a 04 5470 call 019 22h ; e8 42 d85528 call 01972h ; e8 42 d8 5471 5529 add sp, strict byte 0000ah ; 83 c4 0a 5472 jmp near 04 5b6h ; e9 d0 045530 jmp near 04606h ; e9 d0 04 5473 5531 mov ax, word [bp+010h] ; 8b 46 10 5474 5532 xor ah, ah ; 30 e4 … … 5479 5537 mov byte [bp-008h], dl ; 88 56 f8 5480 5538 cmp dl, 010h ; 80 fa 10 5481 jc short 041 0fh ; 72 105539 jc short 0415fh ; 72 10 5482 5540 push ax ; 50 5483 5541 mov ax, word [bp+018h] ; 8b 46 18 … … 5486 5544 push 003bfh ; 68 bf 03 5487 5545 push 003f6h ; 68 f6 03 5488 jmp short 04 0dbh ; eb cc5546 jmp short 0412bh ; eb cc 5489 5547 mov ax, word [bp+018h] ; 8b 46 18 5490 5548 shr ax, 008h ; c1 e8 08 5491 5549 cmp ax, strict word 00050h ; 3d 50 00 5492 jnbe near 04 5d9h ; 0f 87 bd 045550 jnbe near 04629h ; 0f 87 bd 04 5493 5551 push CS ; 0e 5494 5552 pop ES ; 07 5495 5553 mov cx, strict word 0001eh ; b9 1e 00 5496 mov di, 040 3bh ; bf 3b 405554 mov di, 0408bh ; bf 8b 40 5497 5555 repne scasb ; f2 ae 5498 5556 sal cx, 1 ; d1 e1 5499 5557 mov di, cx ; 89 cf 5500 mov ax, word [cs:di+040 58h] ; 2e 8b 85 58 405558 mov ax, word [cs:di+040a8h] ; 2e 8b 85 a8 40 5501 5559 mov bx, word [bp+018h] ; 8b 5e 18 5502 5560 xor bh, bh ; 30 ff … … 5505 5563 xor ah, ah ; 30 e4 5506 5564 or ah, 003h ; 80 cc 03 5507 jmp near 04 5beh ; e9 7d 045565 jmp near 0460eh ; e9 7d 04 5508 5566 mov dx, strict word 00074h ; ba 74 00 5509 5567 mov ax, strict word 00040h ; b8 40 00 5510 call 016 00h ; e8 b6 d45568 call 01650h ; e8 b6 d4 5511 5569 mov cl, al ; 88 c1 5512 5570 movzx ax, cl ; 0f b6 c1 … … 5517 5575 mov dx, strict word 00074h ; ba 74 00 5518 5576 mov ax, strict word 00040h ; b8 40 00 5519 call 016 0eh ; e8 ac d45577 call 0165eh ; e8 ac d4 5520 5578 test cl, cl ; 84 c9 5521 je near 043 59h ; 0f 84 f1 015522 jmp near 04 5d2h ; e9 67 045579 je near 043a9h ; 0f 84 f1 01 5580 jmp near 04622h ; e9 67 04 5523 5581 or bh, 002h ; 80 cf 02 5524 5582 mov word [bp+018h], bx ; 89 5e 18 5525 jmp near 04 5c1h ; e9 4d 045583 jmp near 04611h ; e9 4d 04 5526 5584 mov word [bp+012h], 0aa55h ; c7 46 12 55 aa 5527 5585 or bh, 030h ; 80 cf 30 5528 5586 mov word [bp+018h], bx ; 89 5e 18 5529 5587 mov word [bp+016h], strict word 00007h ; c7 46 16 07 00 5530 jmp near 043 59h ; e9 d2 015588 jmp near 043a9h ; e9 d2 01 5531 5589 mov bx, word [bp+00ch] ; 8b 5e 0c 5532 5590 mov es, [bp+006h] ; 8e 46 06 … … 5543 5601 mov di, word [es:bx+00eh] ; 26 8b 7f 0e 5544 5602 or di, ax ; 09 c7 5545 je short 04 1cfh ; 74 185603 je short 0421fh ; 74 18 5546 5604 mov ax, word [bp+018h] ; 8b 46 18 5547 5605 shr ax, 008h ; c1 e8 08 … … 5550 5608 push 00428h ; 68 28 04 5551 5609 push strict byte 00007h ; 6a 07 5552 call 019 22h ; e8 59 d75610 call 01972h ; e8 59 d7 5553 5611 add sp, strict byte 00008h ; 83 c4 08 5554 jmp near 04 5b6h ; e9 e7 035612 jmp near 04606h ; e9 e7 03 5555 5613 les bx, [bp-014h] ; c4 5e ec 5556 5614 mov ax, word [es:bx+008h] ; 26 8b 47 08 … … 5562 5620 mov word [bp-016h], ax ; 89 46 ea 5563 5621 cmp ax, strict word 00044h ; 3d 44 00 5564 je near 043 55h ; 0f 84 66 015622 je near 043a5h ; 0f 84 66 01 5565 5623 cmp ax, strict word 00047h ; 3d 47 00 5566 je near 043 55h ; 0f 84 5f 015624 je near 043a5h ; 0f 84 5f 01 5567 5625 mov cx, strict word 0000ch ; b9 0c 00 5568 5626 xor bx, bx ; 31 db 5569 5627 mov dx, ss ; 8c d2 5570 5628 lea ax, [bp-02ch] ; 8d 46 d4 5571 call 094 6ah ; e8 67 525629 call 094aah ; e8 57 52 5572 5630 mov word [bp-02ch], strict word 00028h ; c7 46 d4 28 00 5573 5631 mov ax, word [bp-018h] ; 8b 46 e8 … … 5597 5655 sal ax, 1 ; d1 e0 5598 5656 rcl bx, 1 ; d1 d3 5599 loop 042 4dh ; e2 fa5657 loop 0429dh ; e2 fa 5600 5658 push bx ; 53 5601 5659 push ax ; 50 … … 5613 5671 shr di, 1 ; d1 ef 5614 5672 rcr ax, 1 ; d1 d8 5615 loop 042 77h ; e2 fa5673 loop 042c7h ; e2 fa 5616 5674 les bx, [bp-014h] ; c4 5e ec 5617 5675 mov word [es:bx+002h], ax ; 26 89 47 02 5618 5676 test dl, dl ; 84 d2 5619 je near 043 55h ; 0f 84 cb 005677 je near 043a5h ; 0f 84 cb 00 5620 5678 mov bx, 00da2h ; bb a2 0d 5621 5679 mov cx, ds ; 8c d9 5622 5680 mov ax, strict word 00004h ; b8 04 00 5623 call 01 8e1h ; e8 4c d65681 call 01931h ; e8 4c d6 5624 5682 movzx ax, dl ; 0f b6 c2 5625 5683 push ax ; 50 … … 5628 5686 push 00451h ; 68 51 04 5629 5687 push strict byte 00004h ; 6a 04 5630 call 019 22h ; e8 7b d65688 call 01972h ; e8 7b d6 5631 5689 add sp, strict byte 0000ah ; 83 c4 0a 5632 5690 mov ax, word [bp+018h] ; 8b 46 18 5633 5691 xor ah, ah ; 30 e4 5634 5692 or ah, 00ch ; 80 cc 0c 5635 jmp near 04 5beh ; e9 09 035693 jmp near 0460eh ; e9 09 03 5636 5694 cmp bx, strict byte 00002h ; 83 fb 02 5637 jnbe near 04 5b6h ; 0f 87 fa 025695 jnbe near 04606h ; 0f 87 fa 02 5638 5696 movzx ax, byte [bp-008h] ; 0f b6 46 f8 5639 5697 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 5643 5701 mov al, byte [es:di+021h] ; 26 8a 45 21 5644 5702 cmp bx, strict byte 00002h ; 83 fb 02 5645 je short 043 46h ; 74 735703 je short 04396h ; 74 73 5646 5704 cmp bx, strict byte 00001h ; 83 fb 01 5647 je short 043 13h ; 74 3b5705 je short 04363h ; 74 3b 5648 5706 test bx, bx ; 85 db 5649 jne near 043 55h ; 0f 85 77 005707 jne near 043a5h ; 0f 85 77 00 5650 5708 cmp AL, strict byte 0ffh ; 3c ff 5651 jne short 04 2f4h ; 75 125709 jne short 04344h ; 75 12 5652 5710 mov ax, word [bp+018h] ; 8b 46 18 5653 5711 xor ah, ah ; 30 e4 … … 5656 5714 xor al, al ; 30 c0 5657 5715 or AL, strict byte 001h ; 0c 01 5658 jmp near 04 5beh ; e9 ca 025716 jmp near 0460eh ; e9 ca 02 5659 5717 movzx dx, byte [bp-008h] ; 0f b6 56 f8 5660 5718 imul dx, dx, strict byte 00018h ; 6b d2 18 … … 5668 5726 or AL, strict byte 001h ; 0c 01 5669 5727 mov word [bp+018h], ax ; 89 46 18 5670 jmp near 043 55h ; e9 42 005728 jmp near 043a5h ; e9 42 00 5671 5729 test al, al ; 84 c0 5672 jne short 043 23h ; 75 0c5730 jne short 04373h ; 75 0c 5673 5731 or bh, 0b0h ; 80 cf b0 5674 5732 mov word [bp+018h], bx ; 89 5e 18 5675 5733 mov byte [bp+018h], al ; 88 46 18 5676 jmp near 04 5c1h ; e9 9e 025734 jmp near 04611h ; e9 9e 02 5677 5735 movzx dx, byte [bp-008h] ; 0f b6 56 f8 5678 5736 imul dx, dx, strict byte 00018h ; 6b d2 18 … … 5689 5747 xor al, al ; 30 c0 5690 5748 or ax, dx ; 09 d0 5691 jmp short 043 0dh ; eb c75749 jmp short 0435dh ; eb c7 5692 5750 test al, al ; 84 c0 5693 5751 db 00fh, 095h, 0c0h … … 5701 5759 mov dx, strict word 00074h ; ba 74 00 5702 5760 mov ax, strict word 00040h ; b8 40 00 5703 call 016 0eh ; e8 aa d25761 call 0165eh ; e8 aa d2 5704 5762 and byte [bp+01eh], 0feh ; 80 66 1e fe 5705 5763 lea sp, [bp-004h] ; 8d 66 fc … … 5714 5772 mov al, byte [es:si+021h] ; 26 8a 44 21 5715 5773 test al, al ; 84 c0 5716 je short 043 89h ; 74 065774 je short 043d9h ; 74 06 5717 5775 or bh, 0b1h ; 80 cf b1 5718 jmp near 041 6eh ; e9 e5 fd5719 je short 043 55h ; 74 ca5776 jmp near 041beh ; e9 e5 fd 5777 je short 043a5h ; 74 ca 5720 5778 mov ax, word [bp+018h] ; 8b 46 18 5721 5779 xor ah, ah ; 30 e4 5722 5780 or ah, 0b1h ; 80 cc b1 5723 jmp near 04 5beh ; e9 28 025781 jmp near 0460eh ; e9 28 02 5724 5782 mov dx, word [bp+00ch] ; 8b 56 0c 5725 5783 mov cx, word [bp+006h] ; 8b 4e 06 … … 5731 5789 mov word [bp-00eh], ax ; 89 46 f2 5732 5790 cmp ax, strict word 0001ah ; 3d 1a 00 5733 jc near 04 5b6h ; 0f 82 04 025734 jc short 044 03h ; 72 4f5791 jc near 04606h ; 0f 82 04 02 5792 jc short 04453h ; 72 4f 5735 5793 movzx ax, byte [bp-008h] ; 0f b6 46 f8 5736 5794 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 5755 5813 ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff 5756 5814 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 5757 jc near 04 4dah ; 0f 82 cf 005815 jc near 0452ah ; 0f 82 cf 00 5758 5816 mov es, [bp-00ah] ; 8e 46 f6 5759 5817 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 … … 5807 5865 xor cl, cl ; 30 c9 5808 5866 xor ch, ch ; 30 ed 5809 jmp short 04 4bdh ; eb 055867 jmp short 0450dh ; eb 05 5810 5868 cmp ch, 00fh ; 80 fd 0f 5811 jnc short 04 4d0h ; 73 135869 jnc short 04520h ; 73 13 5812 5870 movzx dx, ch ; 0f b6 d5 5813 5871 add dx, 00312h ; 81 c2 12 03 5814 5872 mov ax, word [bp-01ah] ; 8b 46 e6 5815 call 016 00h ; e8 36 d15873 call 01650h ; e8 36 d1 5816 5874 add cl, al ; 00 c1 5817 5875 db 0feh, 0c5h 5818 5876 ; inc ch ; fe c5 5819 jmp short 04 4b8h ; eb e85877 jmp short 04508h ; eb e8 5820 5878 neg cl ; f6 d9 5821 5879 mov es, [bp-00ch] ; 8e 46 f4 5822 5880 mov byte [es:si+001ffh], cl ; 26 88 8c ff 01 5823 5881 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 5824 jc near 043 55h ; 0f 82 73 fe5882 jc near 043a5h ; 0f 82 73 fe 5825 5883 movzx ax, byte [bp-008h] ; 0f b6 46 f8 5826 5884 cwd ; 99 … … 5840 5898 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 5841 5899 test al, al ; 84 c0 5842 jne short 045 23h ; 75 095900 jne short 04573h ; 75 09 5843 5901 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 5844 5902 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 … … 5849 5907 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 5850 5908 test al, al ; 84 c0 5851 jne short 045 4fh ; 75 135909 jne short 0459fh ; 75 13 5852 5910 mov word [es:bx+030h], dx ; 26 89 57 30 5853 5911 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h … … 5864 5922 xor al, al ; 30 c0 5865 5923 mov AH, strict byte 01eh ; b4 1e 5866 jmp short 045 77h ; eb 055924 jmp short 045c7h ; eb 05 5867 5925 cmp ah, 040h ; 80 fc 40 5868 jnc short 045 86h ; 73 0f5926 jnc short 045d6h ; 73 0f 5869 5927 movzx si, ah ; 0f b6 f4 5870 5928 mov es, [bp-00ah] ; 8e 46 f6 … … 5873 5931 db 0feh, 0c4h 5874 5932 ; inc ah ; fe c4 5875 jmp short 045 72h ; eb ec5933 jmp short 045c2h ; eb ec 5876 5934 neg al ; f6 d8 5877 5935 mov es, [bp-00ah] ; 8e 46 f6 5878 5936 mov byte [es:bx+041h], al ; 26 88 47 41 5879 jmp near 043 55h ; e9 c3 fd5937 jmp near 043a5h ; e9 c3 fd 5880 5938 or bh, 006h ; 80 cf 06 5881 5939 mov word [bp+018h], bx ; 89 5e 18 5882 jmp short 04 5d2h ; eb 385940 jmp short 04622h ; eb 38 5883 5941 cmp bx, strict byte 00006h ; 83 fb 06 5884 je near 043 55h ; 0f 84 b4 fd5942 je near 043a5h ; 0f 84 b4 fd 5885 5943 cmp bx, strict byte 00001h ; 83 fb 01 5886 jc short 04 5b6h ; 72 105887 jbe near 043 55h ; 0f 86 ab fd5944 jc short 04606h ; 72 10 5945 jbe near 043a5h ; 0f 86 ab fd 5888 5946 cmp bx, strict byte 00003h ; 83 fb 03 5889 jc short 04 5b6h ; 72 075947 jc short 04606h ; 72 07 5890 5948 cmp bx, strict byte 00004h ; 83 fb 04 5891 jbe near 043 55h ; 0f 86 9f fd5949 jbe near 043a5h ; 0f 86 9f fd 5892 5950 mov ax, word [bp+018h] ; 8b 46 18 5893 5951 xor ah, ah ; 30 e4 … … 5899 5957 mov dx, strict word 00074h ; ba 74 00 5900 5958 mov ax, strict word 00040h ; b8 40 00 5901 call 016 0eh ; e8 3c d05959 call 0165eh ; e8 3c d0 5902 5960 or byte [bp+01eh], 001h ; 80 4e 1e 01 5903 jmp near 043 68h ; e9 8f fd5961 jmp near 043b8h ; e9 8f fd 5904 5962 mov bx, 00da2h ; bb a2 0d 5905 5963 mov cx, ds ; 8c d9 5906 5964 mov ax, strict word 00004h ; b8 04 00 5907 call 01 8e1h ; e8 fd d25965 call 01931h ; e8 fd d2 5908 5966 mov ax, word [bp+018h] ; 8b 46 18 5909 5967 shr ax, 008h ; c1 e8 08 … … 5912 5970 push 00313h ; 68 13 03 5913 5971 push strict byte 00004h ; 6a 04 5914 jmp near 04 1c6h ; e9 d0 fb5915 print_boot_device_: ; 0xf4 5f6 LB 0x4b5972 jmp near 04216h ; e9 d0 fb 5973 print_boot_device_: ; 0xf4646 LB 0x4b 5916 5974 push bp ; 55 5917 5975 mov bp, sp ; 89 e5 5918 5976 push cx ; 51 5919 5977 test al, al ; 84 c0 5920 je short 046 03h ; 74 055978 je short 04653h ; 74 05 5921 5979 mov dx, strict word 00002h ; ba 02 00 5922 jmp short 046 1dh ; eb 1a5980 jmp short 0466dh ; eb 1a 5923 5981 test dl, dl ; 84 d2 5924 je short 046 0ch ; 74 055982 je short 0465ch ; 74 05 5925 5983 mov dx, strict word 00003h ; ba 03 00 5926 jmp short 046 1dh ; eb 115984 jmp short 0466dh ; eb 11 5927 5985 test bl, 080h ; f6 c3 80 5928 jne short 046 15h ; 75 045986 jne short 04665h ; 75 04 5929 5987 xor dh, dh ; 30 f6 5930 jmp short 046 1dh ; eb 085988 jmp short 0466dh ; eb 08 5931 5989 test bl, 080h ; f6 c3 80 5932 je short 046 3bh ; 74 215990 je short 0468bh ; 74 21 5933 5991 mov dx, strict word 00001h ; ba 01 00 5934 5992 mov bx, 00da2h ; bb a2 0d 5935 5993 mov cx, ds ; 8c d9 5936 5994 mov ax, strict word 00004h ; b8 04 00 5937 call 01 8e1h ; e8 b9 d25995 call 01931h ; e8 b9 d2 5938 5996 imul dx, dx, strict byte 0000ah ; 6b d2 0a 5939 5997 add dx, 00dc8h ; 81 c2 c8 0d … … 5941 5999 push 00474h ; 68 74 04 5942 6000 push strict byte 00004h ; 6a 04 5943 call 019 22h ; e8 ea d26001 call 01972h ; e8 ea d2 5944 6002 add sp, strict byte 00006h ; 83 c4 06 5945 6003 lea sp, [bp-002h] ; 8d 66 fe … … 5947 6005 pop bp ; 5d 5948 6006 retn ; c3 5949 print_boot_failure_: ; 0xf46 41 LB 0x936007 print_boot_failure_: ; 0xf4691 LB 0x93 5950 6008 push bp ; 55 5951 6009 mov bp, sp ; 89 e5 … … 5956 6014 movzx si, ah ; 0f b6 f4 5957 6015 test al, al ; 84 c0 5958 je short 046 6eh ; 74 1b6016 je short 046beh ; 74 1b 5959 6017 mov bx, 00da2h ; bb a2 0d 5960 6018 mov cx, ds ; 8c d9 5961 6019 mov ax, strict word 00004h ; b8 04 00 5962 call 01 8e1h ; e8 83 d26020 call 01931h ; e8 83 d2 5963 6021 push 00ddch ; 68 dc 0d 5964 6022 push 00488h ; 68 88 04 5965 6023 push strict byte 00004h ; 6a 04 5966 call 019 22h ; e8 b9 d26024 call 01972h ; e8 b9 d2 5967 6025 add sp, strict byte 00006h ; 83 c4 06 5968 jmp short 04 6b2h ; eb 446026 jmp short 04702h ; eb 44 5969 6027 test dl, dl ; 84 d2 5970 je short 046 82h ; 74 106028 je short 046d2h ; 74 10 5971 6029 mov bx, 00da2h ; bb a2 0d 5972 6030 mov cx, ds ; 8c d9 5973 6031 mov ax, strict word 00004h ; b8 04 00 5974 call 01 8e1h ; e8 64 d26032 call 01931h ; e8 64 d2 5975 6033 push 00de6h ; 68 e6 0d 5976 jmp short 046 61h ; eb df6034 jmp short 046b1h ; eb df 5977 6035 test bl, 080h ; f6 c3 80 5978 je short 046 98h ; 74 116036 je short 046e8h ; 74 11 5979 6037 mov bx, 00da2h ; bb a2 0d 5980 6038 mov cx, ds ; 8c d9 5981 6039 mov ax, strict word 00004h ; b8 04 00 5982 call 01 8e1h ; e8 4f d26040 call 01931h ; e8 4f d2 5983 6041 push si ; 56 5984 6042 push 00dd2h ; 68 d2 0d 5985 jmp short 046 a7h ; eb 0f6043 jmp short 046f7h ; eb 0f 5986 6044 mov bx, 00da2h ; bb a2 0d 5987 6045 mov cx, ds ; 8c d9 5988 6046 mov ax, strict word 00004h ; b8 04 00 5989 call 01 8e1h ; e8 3e d26047 call 01931h ; e8 3e d2 5990 6048 push si ; 56 5991 6049 push 00dc8h ; 68 c8 0d 5992 6050 push 0049dh ; 68 9d 04 5993 6051 push strict byte 00004h ; 6a 04 5994 call 019 22h ; e8 73 d26052 call 01972h ; e8 73 d2 5995 6053 add sp, strict byte 00008h ; 83 c4 08 5996 6054 cmp byte [bp+004h], 001h ; 80 7e 04 01 5997 jne short 04 6cch ; 75 146055 jne short 0471ch ; 75 14 5998 6056 test dh, dh ; 84 f6 5999 jne short 04 6c1h ; 75 056057 jne short 04711h ; 75 05 6000 6058 push 004b5h ; 68 b5 04 6001 jmp short 04 6c4h ; eb 036059 jmp short 04714h ; eb 03 6002 6060 push 004dfh ; 68 df 04 6003 6061 push strict byte 00007h ; 6a 07 6004 call 019 22h ; e8 59 d26062 call 01972h ; e8 59 d2 6005 6063 add sp, strict byte 00004h ; 83 c4 04 6006 6064 lea sp, [bp-002h] ; 8d 66 fe … … 6008 6066 pop bp ; 5d 6009 6067 retn 00002h ; c2 02 00 6010 print_cdromboot_failure_: ; 0xf4 6d4 LB 0x276068 print_cdromboot_failure_: ; 0xf4724 LB 0x27 6011 6069 push bp ; 55 6012 6070 mov bp, sp ; 89 e5 … … 6018 6076 mov cx, ds ; 8c d9 6019 6077 mov ax, strict word 00004h ; b8 04 00 6020 call 01 8e1h ; e8 fa d16078 call 01931h ; e8 fa d1 6021 6079 push dx ; 52 6022 6080 push 00514h ; 68 14 05 6023 6081 push strict byte 00004h ; 6a 04 6024 call 019 22h ; e8 32 d26082 call 01972h ; e8 32 d2 6025 6083 add sp, strict byte 00006h ; 83 c4 06 6026 6084 lea sp, [bp-006h] ; 8d 66 fa … … 6030 6088 pop bp ; 5d 6031 6089 retn ; c3 6032 _int19_function: ; 0xf4 6fb LB 0x2566090 _int19_function: ; 0xf474b LB 0x256 6033 6091 push bp ; 55 6034 6092 mov bp, sp ; 89 e5 … … 6038 6096 mov dx, strict word 0000eh ; ba 0e 00 6039 6097 mov ax, strict word 00040h ; b8 40 00 6040 call 016 1ch ; e8 10 cf6098 call 0166ch ; e8 10 cf 6041 6099 mov bx, ax ; 89 c3 6042 6100 mov word [bp-00eh], ax ; 89 46 f2 6043 6101 mov byte [bp-008h], 000h ; c6 46 f8 00 6044 6102 mov ax, strict word 0003dh ; b8 3d 00 6045 call 016 5ch ; e8 41 cf6103 call 016ach ; e8 41 cf 6046 6104 movzx si, al ; 0f b6 f0 6047 6105 mov ax, strict word 00038h ; b8 38 00 6048 call 016 5ch ; e8 38 cf6106 call 016ach ; e8 38 cf 6049 6107 and AL, strict byte 0f0h ; 24 f0 6050 6108 xor ah, ah ; 30 e4 … … 6052 6110 or si, ax ; 09 c6 6053 6111 mov ax, strict word 0003ch ; b8 3c 00 6054 call 016 5ch ; e8 29 cf6112 call 016ach ; e8 29 cf 6055 6113 and AL, strict byte 00fh ; 24 0f 6056 6114 xor ah, ah ; 30 e4 … … 6059 6117 mov dx, 00339h ; ba 39 03 6060 6118 mov ax, bx ; 89 d8 6061 call 016 00h ; e8 bc ce6119 call 01650h ; e8 bc ce 6062 6120 test al, al ; 84 c0 6063 je short 047 53h ; 74 0b6121 je short 047a3h ; 74 0b 6064 6122 mov dx, 00339h ; ba 39 03 6065 6123 mov ax, bx ; 89 d8 6066 call 016 00h ; e8 b0 ce6124 call 01650h ; e8 b0 ce 6067 6125 movzx si, al ; 0f b6 f0 6068 6126 cmp byte [bp+004h], 001h ; 80 7e 04 01 6069 jne short 047 69h ; 75 106127 jne short 047b9h ; 75 10 6070 6128 mov ax, strict word 0003ch ; b8 3c 00 6071 call 016 5ch ; e8 fd ce6129 call 016ach ; e8 fd ce 6072 6130 and AL, strict byte 0f0h ; 24 f0 6073 6131 xor ah, ah ; 30 e4 6074 6132 sar ax, 004h ; c1 f8 04 6075 call 075 b3h ; e8 4a2e6133 call 075f1h ; e8 38 2e 6076 6134 cmp byte [bp+004h], 002h ; 80 7e 04 02 6077 jne short 047 72h ; 75 036135 jne short 047c2h ; 75 03 6078 6136 shr si, 004h ; c1 ee 04 6079 6137 cmp byte [bp+004h], 003h ; 80 7e 04 03 6080 jne short 047 7bh ; 75 036138 jne short 047cbh ; 75 03 6081 6139 shr si, 008h ; c1 ee 08 6082 6140 cmp byte [bp+004h], 004h ; 80 7e 04 04 6083 jne short 047 84h ; 75 036141 jne short 047d4h ; 75 03 6084 6142 shr si, 00ch ; c1 ee 0c 6085 6143 cmp si, strict byte 00010h ; 83 fe 10 6086 jnc short 047 8dh ; 73 046144 jnc short 047ddh ; 73 04 6087 6145 mov byte [bp-008h], 001h ; c6 46 f8 01 6088 6146 xor al, al ; 30 c0 … … 6093 6151 mov cx, ds ; 8c d9 6094 6152 mov ax, strict word 00004h ; b8 04 00 6095 call 01 8e1h ; e8 3e d16153 call 01931h ; e8 3e d1 6096 6154 push si ; 56 6097 6155 movzx ax, byte [bp+004h] ; 0f b6 46 04 … … 6099 6157 push 00534h ; 68 34 05 6100 6158 push strict byte 00004h ; 6a 04 6101 call 019 22h ; e8 71 d16159 call 01972h ; e8 71 d1 6102 6160 add sp, strict byte 00008h ; 83 c4 08 6103 6161 and si, strict byte 0000fh ; 83 e6 0f 6104 6162 cmp si, strict byte 00002h ; 83 fe 02 6105 jc short 04 7cah ; 72 0e6106 jbe short 04 7d9h ; 76 1b6163 jc short 0481ah ; 72 0e 6164 jbe short 04829h ; 76 1b 6107 6165 cmp si, strict byte 00004h ; 83 fe 04 6108 je short 04 7f7h ; 74 346166 je short 04847h ; 74 34 6109 6167 cmp si, strict byte 00003h ; 83 fe 03 6110 je short 04 7edh ; 74 256111 jmp short 048 24h ; eb 5a6168 je short 0483dh ; 74 25 6169 jmp short 04874h ; eb 5a 6112 6170 cmp si, strict byte 00001h ; 83 fe 01 6113 jne short 048 24h ; 75 556171 jne short 04874h ; 75 55 6114 6172 xor al, al ; 30 c0 6115 6173 mov byte [bp-006h], al ; 88 46 fa 6116 6174 mov byte [bp-00ah], al ; 88 46 f6 6117 jmp short 048 3ch ; eb 636175 jmp short 0488ch ; eb 63 6118 6176 mov dx, 00338h ; ba 38 03 6119 6177 mov ax, word [bp-00eh] ; 8b 46 f2 6120 call 016 00h ; e8 1e ce6178 call 01650h ; e8 1e ce 6121 6179 add AL, strict byte 080h ; 04 80 6122 6180 mov byte [bp-006h], al ; 88 46 fa 6123 6181 mov byte [bp-00ah], 000h ; c6 46 f6 00 6124 jmp short 048 3ch ; eb 4f6182 jmp short 0488ch ; eb 4f 6125 6183 mov byte [bp-006h], 000h ; c6 46 fa 00 6126 6184 mov byte [bp-00ah], 001h ; c6 46 f6 01 6127 jmp short 048 01h ; eb 0a6185 jmp short 04851h ; eb 0a 6128 6186 mov byte [bp-00ch], 001h ; c6 46 f4 01 6129 6187 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6130 je short 048 3ch ; 74 3b6131 call 038 4ah ; e8 46 f06188 je short 0488ch ; 74 3b 6189 call 0389ah ; e8 46 f0 6132 6190 mov bx, ax ; 89 c3 6133 6191 test AL, strict byte 0ffh ; a8 ff 6134 je short 048 2bh ; 74 216135 call 04 6d4h ; e8 c7 fe6192 je short 0487bh ; 74 21 6193 call 04724h ; e8 c7 fe 6136 6194 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6137 6195 push ax ; 50 … … 6140 6198 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6141 6199 mov cx, strict word 00001h ; b9 01 00 6142 call 046 41h ; e8 1d fe6200 call 04691h ; e8 1d fe 6143 6201 xor ax, ax ; 31 c0 6144 6202 xor dx, dx ; 31 d2 6145 jmp near 049 4ah ; e9 1f 016203 jmp near 0499ah ; e9 1f 01 6146 6204 mov dx, 0032eh ; ba 2e 03 6147 6205 mov ax, word [bp-00eh] ; 8b 46 f2 6148 call 016 1ch ; e8 e8 cd6206 call 0166ch ; e8 e8 cd 6149 6207 mov di, ax ; 89 c7 6150 6208 shr bx, 008h ; c1 eb 08 6151 6209 mov byte [bp-006h], bl ; 88 5e fa 6152 6210 cmp byte [bp-00ch], 001h ; 80 7e f4 01 6153 jne near 04 8b8h ; 0f 85 74 006211 jne near 04908h ; 0f 85 74 00 6154 6212 xor si, si ; 31 f6 6155 6213 mov ax, 0e200h ; b8 00 e2 6156 6214 mov es, ax ; 8e c0 6157 6215 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 6158 jne short 048 0dh ; 75 bb6216 jne short 0485dh ; 75 bb 6159 6217 mov cx, ax ; 89 c1 6160 6218 mov si, word [es:si+01ah] ; 26 8b 74 1a 6161 6219 cmp word [es:si+002h], 0506eh ; 26 81 7c 02 6e 50 6162 jne short 048 0dh ; 75 ad6220 jne short 0485dh ; 75 ad 6163 6221 cmp word [es:si], 05024h ; 26 81 3c 24 50 6164 jne short 048 0dh ; 75 a66222 jne short 0485dh ; 75 a6 6165 6223 mov di, word [es:si+00eh] ; 26 8b 7c 0e 6166 6224 mov dx, word [es:di] ; 26 8b 15 6167 6225 mov ax, word [es:di+002h] ; 26 8b 45 02 6168 6226 cmp ax, 06568h ; 3d 68 65 6169 jne short 048 96h ; 75 1f6227 jne short 048e6h ; 75 1f 6170 6228 cmp dx, 07445h ; 81 fa 45 74 6171 jne short 048 96h ; 75 196229 jne short 048e6h ; 75 19 6172 6230 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6173 6231 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6174 6232 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6175 call 04 5f6h ; e8 6a fd6233 call 04646h ; e8 6a fd 6176 6234 mov word [bp-012h], strict word 00006h ; c7 46 ee 06 00 6177 6235 mov word [bp-010h], cx ; 89 4e f0 6178 jmp short 04 8b2h ; eb 1c6236 jmp short 04902h ; eb 1c 6179 6237 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6180 6238 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6181 6239 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6182 call 04 5f6h ; e8 51 fd6240 call 04646h ; e8 51 fd 6183 6241 sti ; fb 6184 6242 mov word [bp-010h], cx ; 89 4e f0 … … 6187 6245 mov word [bp-012h], ax ; 89 46 ee 6188 6246 call far [bp-012h] ; ff 5e ee 6189 jmp near 048 0dh ; e9 55 ff6247 jmp near 0485dh ; e9 55 ff 6190 6248 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6191 jne short 04 8e4h ; 75 266249 jne short 04934h ; 75 26 6192 6250 cmp byte [bp-00ch], 000h ; 80 7e f4 00 6193 jne short 04 8e4h ; 75 206251 jne short 04934h ; 75 20 6194 6252 mov di, 007c0h ; bf c0 07 6195 6253 mov es, di ; 8e c7 … … 6204 6262 sbb ax, strict byte 00000h ; 83 d8 00 6205 6263 test ax, ax ; 85 c0 6206 jne near 048 0dh ; 0f 85 29 ff6264 jne near 0485dh ; 0f 85 29 ff 6207 6265 cmp byte [bp-006h], 000h ; 80 7e fa 00 6208 6266 db 00fh, 094h, 0c1h 6209 6267 ; sete cl ; 0f 94 c1 6210 6268 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6211 je short 04 8f3h ; 74 026269 je short 04943h ; 74 02 6212 6270 mov CL, strict byte 001h ; b1 01 6213 6271 xor dx, dx ; 31 d2 6214 6272 mov ax, di ; 89 f8 6215 call 016 1ch ; e8 22 cd6273 call 0166ch ; e8 22 cd 6216 6274 mov bx, ax ; 89 c3 6217 6275 mov dx, strict word 00002h ; ba 02 00 6218 6276 mov ax, di ; 89 f8 6219 call 016 1ch ; e8 18 cd6277 call 0166ch ; e8 18 cd 6220 6278 cmp bx, ax ; 39 c3 6221 je short 049 19h ; 74 116279 je short 04969h ; 74 11 6222 6280 test cl, cl ; 84 c9 6223 jne short 049 2fh ; 75 236281 jne short 0497fh ; 75 23 6224 6282 mov dx, 001feh ; ba fe 01 6225 6283 mov ax, di ; 89 f8 6226 call 016 1ch ; e8 08 cd6284 call 0166ch ; e8 08 cd 6227 6285 cmp ax, 0aa55h ; 3d 55 aa 6228 je short 049 2fh ; 74 166286 je short 0497fh ; 74 16 6229 6287 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6230 6288 push ax ; 50 … … 6233 6291 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6234 6292 xor cx, cx ; 31 c9 6235 jmp near 048 21h ; e9 f2 fe6293 jmp near 04871h ; e9 f2 fe 6236 6294 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6237 6295 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6238 6296 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6239 call 04 5f6h ; e8 b8 fc6297 call 04646h ; e8 b8 fc 6240 6298 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6241 6299 xor dx, dx ; 31 d2 … … 6248 6306 pop bp ; 5d 6249 6307 retn ; c3 6250 keyboard_panic_: ; 0xf49 51 LB 0x136308 keyboard_panic_: ; 0xf49a1 LB 0x13 6251 6309 push bp ; 55 6252 6310 mov bp, sp ; 89 e5 … … 6254 6312 push 00554h ; 68 54 05 6255 6313 push strict byte 00007h ; 6a 07 6256 call 019 22h ; e8 c5 cf6314 call 01972h ; e8 c5 cf 6257 6315 add sp, strict byte 00006h ; 83 c4 06 6258 6316 mov sp, bp ; 89 ec 6259 6317 pop bp ; 5d 6260 6318 retn ; c3 6261 _keyboard_init: ; 0xf49 64 LB 0x27c6319 _keyboard_init: ; 0xf49b4 LB 0x26a 6262 6320 push bp ; 55 6263 6321 mov bp, sp ; 89 e5 … … 6271 6329 ; sub ah, ah ; 2a e4 6272 6330 test AL, strict byte 002h ; a8 02 6273 je short 049 87h ; 74 0d6331 je short 049d7h ; 74 0d 6274 6332 dec bx ; 4b 6275 6333 test bx, bx ; 85 db 6276 jbe short 049 87h ; 76 086334 jbe short 049d7h ; 76 08 6277 6335 xor al, al ; 30 c0 6278 6336 mov dx, 00080h ; ba 80 00 6279 6337 out DX, AL ; ee 6280 jmp short 049 70h ; eb e96338 jmp short 049c0h ; eb e9 6281 6339 test bx, bx ; 85 db 6282 jne short 049 90h ; 75 056340 jne short 049e0h ; 75 05 6283 6341 xor ax, ax ; 31 c0 6284 call 049 51h ; e8 c1 ff6342 call 049a1h ; e8 c1 ff 6285 6343 mov bx, strict word 0ffffh ; bb ff ff 6286 6344 mov dx, strict word 00064h ; ba 64 00 … … 6289 6347 ; sub ah, ah ; 2a e4 6290 6348 test AL, strict byte 001h ; a8 01 6291 jne short 049 aah ; 75 0d6349 jne short 049fah ; 75 0d 6292 6350 dec bx ; 4b 6293 6351 test bx, bx ; 85 db 6294 jbe short 049 aah ; 76 086352 jbe short 049fah ; 76 08 6295 6353 mov AL, strict byte 001h ; b0 01 6296 6354 mov dx, 00080h ; ba 80 00 6297 6355 out DX, AL ; ee 6298 jmp short 049 93h ; eb e96356 jmp short 049e3h ; eb e9 6299 6357 test bx, bx ; 85 db 6300 jne short 04 9b4h ; 75 066358 jne short 04a04h ; 75 06 6301 6359 mov ax, strict word 00001h ; b8 01 00 6302 call 049 51h ; e8 9d ff6360 call 049a1h ; e8 9d ff 6303 6361 mov dx, strict word 00060h ; ba 60 00 6304 6362 in AL, DX ; ec … … 6306 6364 ; sub ah, ah ; 2a e4 6307 6365 cmp ax, strict word 00055h ; 3d 55 00 6308 je short 04 9c5h ; 74 066366 je short 04a15h ; 74 06 6309 6367 mov ax, 003dfh ; b8 df 03 6310 call 049 51h ; e8 8c ff6368 call 049a1h ; e8 8c ff 6311 6369 mov AL, strict byte 0abh ; b0 ab 6312 6370 mov dx, strict word 00064h ; ba 64 00 … … 6318 6376 ; sub ah, ah ; 2a e4 6319 6377 test AL, strict byte 002h ; a8 02 6320 je short 04 9e5h ; 74 0d6378 je short 04a35h ; 74 0d 6321 6379 dec bx ; 4b 6322 6380 test bx, bx ; 85 db 6323 jbe short 04 9e5h ; 76 086381 jbe short 04a35h ; 76 08 6324 6382 mov AL, strict byte 010h ; b0 10 6325 6383 mov dx, 00080h ; ba 80 00 6326 6384 out DX, AL ; ee 6327 jmp short 04 9ceh ; eb e96385 jmp short 04a1eh ; eb e9 6328 6386 test bx, bx ; 85 db 6329 jne short 04 9efh ; 75 066387 jne short 04a3fh ; 75 06 6330 6388 mov ax, strict word 0000ah ; b8 0a 00 6331 call 049 51h ; e8 62 ff6389 call 049a1h ; e8 62 ff 6332 6390 mov bx, strict word 0ffffh ; bb ff ff 6333 6391 mov dx, strict word 00064h ; ba 64 00 … … 6336 6394 ; sub ah, ah ; 2a e4 6337 6395 test AL, strict byte 001h ; a8 01 6338 jne short 04a 09h ; 75 0d6396 jne short 04a59h ; 75 0d 6339 6397 dec bx ; 4b 6340 6398 test bx, bx ; 85 db 6341 jbe short 04a 09h ; 76 086399 jbe short 04a59h ; 76 08 6342 6400 mov AL, strict byte 011h ; b0 11 6343 6401 mov dx, 00080h ; ba 80 00 6344 6402 out DX, AL ; ee 6345 jmp short 04 9f2h ; eb e96403 jmp short 04a42h ; eb e9 6346 6404 test bx, bx ; 85 db 6347 jne short 04a 13h ; 75 066405 jne short 04a63h ; 75 06 6348 6406 mov ax, strict word 0000bh ; b8 0b 00 6349 call 049 51h ; e8 3e ff6407 call 049a1h ; e8 3e ff 6350 6408 mov dx, strict word 00060h ; ba 60 00 6351 6409 in AL, DX ; ec … … 6353 6411 ; sub ah, ah ; 2a e4 6354 6412 test ax, ax ; 85 c0 6355 je short 04a 23h ; 74 066413 je short 04a73h ; 74 06 6356 6414 mov ax, 003e0h ; b8 e0 03 6357 call 049 51h ; e8 2e ff6415 call 049a1h ; e8 2e ff 6358 6416 mov AL, strict byte 0ffh ; b0 ff 6359 6417 mov dx, strict word 00060h ; ba 60 00 … … 6365 6423 ; sub ah, ah ; 2a e4 6366 6424 test AL, strict byte 002h ; a8 02 6367 je short 04a 43h ; 74 0d6425 je short 04a93h ; 74 0d 6368 6426 dec bx ; 4b 6369 6427 test bx, bx ; 85 db 6370 jbe short 04a 43h ; 76 086428 jbe short 04a93h ; 76 08 6371 6429 mov AL, strict byte 020h ; b0 20 6372 6430 mov dx, 00080h ; ba 80 00 6373 6431 out DX, AL ; ee 6374 jmp short 04a 2ch ; eb e96432 jmp short 04a7ch ; eb e9 6375 6433 test bx, bx ; 85 db 6376 jne short 04a 4dh ; 75 066434 jne short 04a9dh ; 75 06 6377 6435 mov ax, strict word 00014h ; b8 14 00 6378 call 049 51h ; e8 04 ff6436 call 049a1h ; e8 04 ff 6379 6437 mov bx, strict word 0ffffh ; bb ff ff 6380 6438 mov dx, strict word 00064h ; ba 64 00 … … 6383 6441 ; sub ah, ah ; 2a e4 6384 6442 test AL, strict byte 001h ; a8 01 6385 jne short 04a 67h ; 75 0d6443 jne short 04ab7h ; 75 0d 6386 6444 dec bx ; 4b 6387 6445 test bx, bx ; 85 db 6388 jbe short 04a 67h ; 76 086446 jbe short 04ab7h ; 76 08 6389 6447 mov AL, strict byte 021h ; b0 21 6390 6448 mov dx, 00080h ; ba 80 00 6391 6449 out DX, AL ; ee 6392 jmp short 04a 50h ; eb e96450 jmp short 04aa0h ; eb e9 6393 6451 test bx, bx ; 85 db 6394 jne short 04a 71h ; 75 066452 jne short 04ac1h ; 75 06 6395 6453 mov ax, strict word 00015h ; b8 15 00 6396 call 049 51h ; e8 e0 fe6454 call 049a1h ; e8 e0 fe 6397 6455 mov dx, strict word 00060h ; ba 60 00 6398 6456 in AL, DX ; ec … … 6400 6458 ; sub ah, ah ; 2a e4 6401 6459 cmp ax, 000fah ; 3d fa 00 6402 je short 04a 82h ; 74 066460 je short 04ad2h ; 74 06 6403 6461 mov ax, 003e1h ; b8 e1 03 6404 call 04951h ; e8 cf fe 6462 call 049a1h ; e8 cf fe 6463 mov dx, strict word 00064h ; ba 64 00 6464 in AL, DX ; ec 6465 db 02ah, 0e4h 6466 ; sub ah, ah ; 2a e4 6467 test AL, strict byte 001h ; a8 01 6468 jne short 04ae4h ; 75 08 6469 mov AL, strict byte 031h ; b0 31 6470 mov dx, 00080h ; ba 80 00 6471 out DX, AL ; ee 6472 jmp short 04ad2h ; eb ee 6473 mov dx, strict word 00060h ; ba 60 00 6474 in AL, DX ; ec 6475 db 02ah, 0e4h 6476 ; sub ah, ah ; 2a e4 6477 cmp ax, 000aah ; 3d aa 00 6478 je short 04afdh ; 74 0e 6479 in AL, DX ; ec 6480 db 02ah, 0e4h 6481 ; sub ah, ah ; 2a e4 6482 cmp ax, 000aah ; 3d aa 00 6483 je short 04afdh ; 74 06 6484 mov ax, 003e2h ; b8 e2 03 6485 call 049a1h ; e8 a4 fe 6486 mov AL, strict byte 0f5h ; b0 f5 6487 mov dx, strict word 00060h ; ba 60 00 6488 out DX, AL ; ee 6489 mov bx, strict word 0ffffh ; bb ff ff 6490 mov dx, strict word 00064h ; ba 64 00 6491 in AL, DX ; ec 6492 db 02ah, 0e4h 6493 ; sub ah, ah ; 2a e4 6494 test AL, strict byte 002h ; a8 02 6495 je short 04b1dh ; 74 0d 6496 dec bx ; 4b 6497 test bx, bx ; 85 db 6498 jbe short 04b1dh ; 76 08 6499 mov AL, strict byte 040h ; b0 40 6500 mov dx, 00080h ; ba 80 00 6501 out DX, AL ; ee 6502 jmp short 04b06h ; eb e9 6503 test bx, bx ; 85 db 6504 jne short 04b27h ; 75 06 6505 mov ax, strict word 00028h ; b8 28 00 6506 call 049a1h ; e8 7a fe 6405 6507 mov bx, strict word 0ffffh ; bb ff ff 6406 6508 mov dx, strict word 00064h ; ba 64 00 … … 6409 6511 ; sub ah, ah ; 2a e4 6410 6512 test AL, strict byte 001h ; a8 01 6411 jne short 04 a9ch ; 75 0d6513 jne short 04b41h ; 75 0d 6412 6514 dec bx ; 4b 6413 6515 test bx, bx ; 85 db 6414 jbe short 04 a9ch ; 76 086415 mov AL, strict byte 0 31h ; b0 316516 jbe short 04b41h ; 76 08 6517 mov AL, strict byte 041h ; b0 41 6416 6518 mov dx, 00080h ; ba 80 00 6417 6519 out DX, AL ; ee 6418 jmp short 04 a85h ; eb e96520 jmp short 04b2ah ; eb e9 6419 6521 test bx, bx ; 85 db 6420 jne short 04 aa6h ; 75 066421 mov ax, strict word 000 1fh ; b8 1f006422 call 049 51h ; e8 abfe6522 jne short 04b4bh ; 75 06 6523 mov ax, strict word 00029h ; b8 29 00 6524 call 049a1h ; e8 56 fe 6423 6525 mov dx, strict word 00060h ; ba 60 00 6424 6526 in AL, DX ; ec 6425 6527 db 02ah, 0e4h 6426 6528 ; sub ah, ah ; 2a e4 6427 cmp ax, 000aah ; 3d aa 00 6428 je short 04abfh ; 74 0e 6429 in AL, DX ; ec 6430 db 02ah, 0e4h 6431 ; sub ah, ah ; 2a e4 6432 cmp ax, 000aah ; 3d aa 00 6433 je short 04abfh ; 74 06 6434 mov ax, 003e2h ; b8 e2 03 6435 call 04951h ; e8 92 fe 6436 mov AL, strict byte 0f5h ; b0 f5 6437 mov dx, strict word 00060h ; ba 60 00 6529 cmp ax, 000fah ; 3d fa 00 6530 je short 04b5ch ; 74 06 6531 mov ax, 003e3h ; b8 e3 03 6532 call 049a1h ; e8 45 fe 6533 mov AL, strict byte 060h ; b0 60 6534 mov dx, strict word 00064h ; ba 64 00 6438 6535 out DX, AL ; ee 6439 6536 mov bx, strict word 0ffffh ; bb ff ff … … 6443 6540 ; sub ah, ah ; 2a e4 6444 6541 test AL, strict byte 002h ; a8 02 6445 je short 04 adfh ; 74 0d6542 je short 04b7ch ; 74 0d 6446 6543 dec bx ; 4b 6447 6544 test bx, bx ; 85 db 6448 jbe short 04 adfh ; 76 086449 mov AL, strict byte 0 40h ; b0 406545 jbe short 04b7ch ; 76 08 6546 mov AL, strict byte 050h ; b0 50 6450 6547 mov dx, 00080h ; ba 80 00 6451 6548 out DX, AL ; ee 6452 jmp short 04 ac8h ; eb e96549 jmp short 04b65h ; eb e9 6453 6550 test bx, bx ; 85 db 6454 jne short 04ae9h ; 75 06 6455 mov ax, strict word 00028h ; b8 28 00 6456 call 04951h ; e8 68 fe 6551 jne short 04b86h ; 75 06 6552 mov ax, strict word 00032h ; b8 32 00 6553 call 049a1h ; e8 1b fe 6554 mov AL, strict byte 065h ; b0 65 6555 mov dx, strict word 00060h ; ba 60 00 6556 out DX, AL ; ee 6557 mov bx, strict word 0ffffh ; bb ff ff 6558 mov dx, strict word 00064h ; ba 64 00 6559 in AL, DX ; ec 6560 db 02ah, 0e4h 6561 ; sub ah, ah ; 2a e4 6562 test AL, strict byte 002h ; a8 02 6563 je short 04ba6h ; 74 0d 6564 dec bx ; 4b 6565 test bx, bx ; 85 db 6566 jbe short 04ba6h ; 76 08 6567 mov AL, strict byte 060h ; b0 60 6568 mov dx, 00080h ; ba 80 00 6569 out DX, AL ; ee 6570 jmp short 04b8fh ; eb e9 6571 test bx, bx ; 85 db 6572 jne short 04bb0h ; 75 06 6573 mov ax, strict word 0003ch ; b8 3c 00 6574 call 049a1h ; e8 f1 fd 6575 mov AL, strict byte 0f4h ; b0 f4 6576 mov dx, strict word 00060h ; ba 60 00 6577 out DX, AL ; ee 6578 mov bx, strict word 0ffffh ; bb ff ff 6579 mov dx, strict word 00064h ; ba 64 00 6580 in AL, DX ; ec 6581 db 02ah, 0e4h 6582 ; sub ah, ah ; 2a e4 6583 test AL, strict byte 002h ; a8 02 6584 je short 04bd0h ; 74 0d 6585 dec bx ; 4b 6586 test bx, bx ; 85 db 6587 jbe short 04bd0h ; 76 08 6588 mov AL, strict byte 070h ; b0 70 6589 mov dx, 00080h ; ba 80 00 6590 out DX, AL ; ee 6591 jmp short 04bb9h ; eb e9 6592 test bx, bx ; 85 db 6593 jne short 04bdah ; 75 06 6594 mov ax, strict word 00046h ; b8 46 00 6595 call 049a1h ; e8 c7 fd 6457 6596 mov bx, strict word 0ffffh ; bb ff ff 6458 6597 mov dx, strict word 00064h ; ba 64 00 … … 6461 6600 ; sub ah, ah ; 2a e4 6462 6601 test AL, strict byte 001h ; a8 01 6463 jne short 04b 03h ; 75 0d6602 jne short 04bf4h ; 75 0d 6464 6603 dec bx ; 4b 6465 6604 test bx, bx ; 85 db 6466 jbe short 04b 03h ; 76 086467 mov AL, strict byte 0 41h ; b0 416605 jbe short 04bf4h ; 76 08 6606 mov AL, strict byte 071h ; b0 71 6468 6607 mov dx, 00080h ; ba 80 00 6469 6608 out DX, AL ; ee 6470 jmp short 04 aech ; eb e96609 jmp short 04bddh ; eb e9 6471 6610 test bx, bx ; 85 db 6472 jne short 04b 0dh ; 75 066473 mov ax, strict word 000 29h ; b8 29006474 call 049 51h ; e8 44 fe6611 jne short 04bfeh ; 75 06 6612 mov ax, strict word 00046h ; b8 46 00 6613 call 049a1h ; e8 a3 fd 6475 6614 mov dx, strict word 00060h ; ba 60 00 6476 6615 in AL, DX ; ec … … 6478 6617 ; sub ah, ah ; 2a e4 6479 6618 cmp ax, 000fah ; 3d fa 00 6480 je short 04b1eh ; 74 06 6481 mov ax, 003e3h ; b8 e3 03 6482 call 04951h ; e8 33 fe 6483 mov AL, strict byte 060h ; b0 60 6484 mov dx, strict word 00064h ; ba 64 00 6485 out DX, AL ; ee 6486 mov bx, strict word 0ffffh ; bb ff ff 6487 mov dx, strict word 00064h ; ba 64 00 6488 in AL, DX ; ec 6489 db 02ah, 0e4h 6490 ; sub ah, ah ; 2a e4 6491 test AL, strict byte 002h ; a8 02 6492 je short 04b3eh ; 74 0d 6493 dec bx ; 4b 6494 test bx, bx ; 85 db 6495 jbe short 04b3eh ; 76 08 6496 mov AL, strict byte 050h ; b0 50 6497 mov dx, 00080h ; ba 80 00 6498 out DX, AL ; ee 6499 jmp short 04b27h ; eb e9 6500 test bx, bx ; 85 db 6501 jne short 04b48h ; 75 06 6502 mov ax, strict word 00032h ; b8 32 00 6503 call 04951h ; e8 09 fe 6504 mov AL, strict byte 065h ; b0 65 6505 mov dx, strict word 00060h ; ba 60 00 6506 out DX, AL ; ee 6507 mov bx, strict word 0ffffh ; bb ff ff 6508 mov dx, strict word 00064h ; ba 64 00 6509 in AL, DX ; ec 6510 db 02ah, 0e4h 6511 ; sub ah, ah ; 2a e4 6512 test AL, strict byte 002h ; a8 02 6513 je short 04b68h ; 74 0d 6514 dec bx ; 4b 6515 test bx, bx ; 85 db 6516 jbe short 04b68h ; 76 08 6517 mov AL, strict byte 060h ; b0 60 6518 mov dx, 00080h ; ba 80 00 6519 out DX, AL ; ee 6520 jmp short 04b51h ; eb e9 6521 test bx, bx ; 85 db 6522 jne short 04b72h ; 75 06 6523 mov ax, strict word 0003ch ; b8 3c 00 6524 call 04951h ; e8 df fd 6525 mov AL, strict byte 0f4h ; b0 f4 6526 mov dx, strict word 00060h ; ba 60 00 6527 out DX, AL ; ee 6528 mov bx, strict word 0ffffh ; bb ff ff 6529 mov dx, strict word 00064h ; ba 64 00 6530 in AL, DX ; ec 6531 db 02ah, 0e4h 6532 ; sub ah, ah ; 2a e4 6533 test AL, strict byte 002h ; a8 02 6534 je short 04b92h ; 74 0d 6535 dec bx ; 4b 6536 test bx, bx ; 85 db 6537 jbe short 04b92h ; 76 08 6538 mov AL, strict byte 070h ; b0 70 6539 mov dx, 00080h ; ba 80 00 6540 out DX, AL ; ee 6541 jmp short 04b7bh ; eb e9 6542 test bx, bx ; 85 db 6543 jne short 04b9ch ; 75 06 6544 mov ax, strict word 00046h ; b8 46 00 6545 call 04951h ; e8 b5 fd 6546 mov bx, strict word 0ffffh ; bb ff ff 6547 mov dx, strict word 00064h ; ba 64 00 6548 in AL, DX ; ec 6549 db 02ah, 0e4h 6550 ; sub ah, ah ; 2a e4 6551 test AL, strict byte 001h ; a8 01 6552 jne short 04bb6h ; 75 0d 6553 dec bx ; 4b 6554 test bx, bx ; 85 db 6555 jbe short 04bb6h ; 76 08 6556 mov AL, strict byte 071h ; b0 71 6557 mov dx, 00080h ; ba 80 00 6558 out DX, AL ; ee 6559 jmp short 04b9fh ; eb e9 6560 test bx, bx ; 85 db 6561 jne short 04bc0h ; 75 06 6562 mov ax, strict word 00046h ; b8 46 00 6563 call 04951h ; e8 91 fd 6564 mov dx, strict word 00060h ; ba 60 00 6565 in AL, DX ; ec 6566 db 02ah, 0e4h 6567 ; sub ah, ah ; 2a e4 6568 cmp ax, 000fah ; 3d fa 00 6569 je short 04bd1h ; 74 06 6619 je short 04c0fh ; 74 06 6570 6620 mov ax, 003e4h ; b8 e4 03 6571 call 049 51h ; e8 80fd6621 call 049a1h ; e8 92 fd 6572 6622 mov AL, strict byte 0a8h ; b0 a8 6573 6623 mov dx, strict word 00064h ; ba 64 00 6574 6624 out DX, AL ; ee 6575 6625 xor ax, ax ; 31 c0 6576 call 05e 4bh ; e8 6f 126626 call 05e89h ; e8 6f 12 6577 6627 mov sp, bp ; 89 ec 6578 6628 pop bp ; 5d 6579 6629 retn ; c3 6580 enqueue_key_: ; 0xf4 be0LB 0x936630 enqueue_key_: ; 0xf4c1e LB 0x93 6581 6631 push bp ; 55 6582 6632 mov bp, sp ; 89 e5 … … 6590 6640 mov dx, strict word 0001ah ; ba 1a 00 6591 6641 mov ax, strict word 00040h ; b8 40 00 6592 call 016 1ch ; e8 26ca6642 call 0166ch ; e8 38 ca 6593 6643 mov di, ax ; 89 c7 6594 6644 mov dx, strict word 0001ch ; ba 1c 00 6595 6645 mov ax, strict word 00040h ; b8 40 00 6596 call 016 1ch ; e8 1bca6646 call 0166ch ; e8 2d ca 6597 6647 mov si, ax ; 89 c6 6598 6648 lea cx, [si+002h] ; 8d 4c 02 6599 6649 cmp cx, strict byte 0003eh ; 83 f9 3e 6600 jc short 04c 0eh ; 72 036650 jc short 04c4ch ; 72 03 6601 6651 mov cx, strict word 0001eh ; b9 1e 00 6602 6652 cmp cx, di ; 39 f9 6603 jne short 04c 16h ; 75 046653 jne short 04c54h ; 75 04 6604 6654 xor ax, ax ; 31 c0 6605 jmp short 04c 3bh ; eb 256655 jmp short 04c79h ; eb 25 6606 6656 xor bh, bh ; 30 ff 6607 6657 mov dx, si ; 89 f2 6608 6658 mov ax, strict word 00040h ; b8 40 00 6609 call 016 0eh ; e8 ee c96659 call 0165eh ; e8 00 ca 6610 6660 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 6611 6661 lea dx, [si+001h] ; 8d 54 01 6612 6662 mov ax, strict word 00040h ; b8 40 00 6613 call 016 0eh ; e8 e1c96663 call 0165eh ; e8 f3 c9 6614 6664 mov bx, cx ; 89 cb 6615 6665 mov dx, strict word 0001ch ; ba 1c 00 6616 6666 mov ax, strict word 00040h ; b8 40 00 6617 call 016 2ah ; e8 f2 c96667 call 0167ah ; e8 04 ca 6618 6668 mov ax, strict word 00001h ; b8 01 00 6619 6669 lea sp, [bp-008h] ; 8d 66 f8 … … 6633 6683 cmp bh, byte [bx+si] ; 3a 38 6634 6684 sub bl, byte [ss:di] ; 36 2a 1d 6635 lodsw ; ad 6685 jmp short 04ce1h ; eb 4e 6686 js short 04ce2h ; 78 4d 6687 inc di ; 47 6688 dec bp ; 4d 6689 inc di ; 47 6690 dec bp ; 4d 6691 cli ; fa 6692 dec bp ; 4d 6693 and byte [di+06ch], cl ; 20 4d 6c 6636 6694 dec si ; 4e 6637 cmp cl, byte [di+009h] ; 3a 4d 09 6695 mov bx, 0de4eh ; bb 4e de 6696 dec si ; 4e 6697 mov cx, 0474dh ; b9 4d 47 6638 6698 dec bp ; 4d 6639 or word [di-044h], cx ; 09 4d bc6699 inc di ; 47 6640 6700 dec bp ; 4d 6641 loop 04cabh ; e2 4c 6642 db 02eh, 04eh 6643 ; cs dec si ; 2e 4e 6644 jnl short 04cb1h ; 7d 4e 6645 mov AL, byte [07b4eh] ; a0 4e 7b 6701 xor cx, word [bp+039h] ; 33 4e 39 6646 6702 dec bp ; 4d 6647 or word [di+009h], cx ; 09 4d 09 6648 dec bp ; 4d 6649 cmc ; f5 6650 dec bp ; 4d 6651 sti ; fb 6652 dec sp ; 4c 6653 pop si ; 5e 6703 pushfw ; 9c 6654 6704 dec si ; 4e 6655 cwd ; 996705 xlatb ; d7 6656 6706 dec si ; 4e 6657 _int09_function: ; 0xf4c 73LB 0x35d6707 _int09_function: ; 0xf4cb1 LB 0x35d 6658 6708 push bp ; 55 6659 6709 mov bp, sp ; 89 e5 … … 6664 6714 mov byte [bp-00ah], al ; 88 46 f6 6665 6715 test al, al ; 84 c0 6666 jne short 04c 9eh ; 75 196716 jne short 04cdch ; 75 19 6667 6717 mov bx, 00da2h ; bb a2 0d 6668 6718 mov cx, ds ; 8c d9 6669 6719 mov ax, strict word 00004h ; b8 04 00 6670 call 01 8e1h ; e8 51cc6720 call 01931h ; e8 63 cc 6671 6721 push 00567h ; 68 67 05 6672 6722 push strict byte 00004h ; 6a 04 6673 call 019 22h ; e8 8acc6723 call 01972h ; e8 9c cc 6674 6724 add sp, strict byte 00004h ; 83 c4 04 6675 jmp near 0 4fc9h ; e9 2b 036725 jmp near 05007h ; e9 2b 03 6676 6726 mov dx, strict word 00017h ; ba 17 00 6677 6727 mov ax, strict word 00040h ; b8 40 00 6678 call 016 00h ; e8 59c96728 call 01650h ; e8 6b c9 6679 6729 mov byte [bp-00eh], al ; 88 46 f2 6680 6730 mov bl, al ; 88 c3 6681 6731 mov dx, strict word 00018h ; ba 18 00 6682 6732 mov ax, strict word 00040h ; b8 40 00 6683 call 016 00h ; e8 4bc96733 call 01650h ; e8 5d c9 6684 6734 mov byte [bp-010h], al ; 88 46 f0 6685 6735 mov byte [bp-00ch], al ; 88 46 f4 6686 6736 mov dx, 00096h ; ba 96 00 6687 6737 mov ax, strict word 00040h ; b8 40 00 6688 call 016 00h ; e8 3cc96738 call 01650h ; e8 4e c9 6689 6739 mov byte [bp-008h], al ; 88 46 f8 6690 6740 mov byte [bp-006h], al ; 88 46 fa … … 6693 6743 pop ES ; 07 6694 6744 mov cx, strict word 00010h ; b9 10 00 6695 mov di, 04c 44h ; bf 444c6745 mov di, 04c82h ; bf 82 4c 6696 6746 repne scasb ; f2 ae 6697 6747 sal cx, 1 ; d1 e1 6698 6748 mov di, cx ; 89 cf 6699 mov ax, word [cs:di+04c 53h] ; 2e 8b 85 534c6749 mov ax, word [cs:di+04c91h] ; 2e 8b 85 91 4c 6700 6750 jmp ax ; ff e0 6701 6751 xor bl, 040h ; 80 f3 40 … … 6703 6753 mov dx, strict word 00017h ; ba 17 00 6704 6754 mov ax, strict word 00040h ; b8 40 00 6705 call 016 0eh ; e8 1ec96755 call 0165eh ; e8 30 c9 6706 6756 or byte [bp-00ch], 040h ; 80 4e f4 40 6707 6757 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 6708 jmp near 04e 71h ; e9 76 016758 jmp near 04eafh ; e9 76 01 6709 6759 mov al, byte [bp-010h] ; 8a 46 f0 6710 6760 and AL, strict byte 0bfh ; 24 bf 6711 6761 mov byte [bp-00ch], al ; 88 46 f4 6712 6762 movzx bx, al ; 0f b6 d8 6713 jmp near 04e 71h ; e9 68 016763 jmp near 04eafh ; e9 68 01 6714 6764 test byte [bp-006h], 002h ; f6 46 fa 02 6715 jne near 04f abh ; 0f 85 9a 026765 jne near 04fe9h ; 0f 85 9a 02 6716 6766 mov al, byte [bp-00ah] ; 8a 46 f6 6717 6767 and AL, strict byte 07fh ; 24 7f … … 6722 6772 inc ax ; 40 6723 6773 test byte [bp-00ah], 080h ; f6 46 f6 80 6724 je short 04d 2ah ; 74 066774 je short 04d68h ; 74 06 6725 6775 not al ; f6 d0 6726 6776 and bl, al ; 20 c3 6727 jmp short 04d 2ch ; eb 026777 jmp short 04d6ah ; eb 02 6728 6778 or bl, al ; 08 c3 6729 6779 xor bh, bh ; 30 ff 6730 6780 mov dx, strict word 00017h ; ba 17 00 6731 6781 mov ax, strict word 00040h ; b8 40 00 6732 call 016 0eh ; e8 d7c86733 jmp near 04f abh ; e9 71 026782 call 0165eh ; e8 e9 c8 6783 jmp near 04fe9h ; e9 71 02 6734 6784 test byte [bp-008h], 001h ; f6 46 f8 01 6735 jne near 04f abh ; 0f 85 69 026785 jne near 04fe9h ; 0f 85 69 02 6736 6786 or bl, 004h ; 80 cb 04 6737 6787 xor bh, bh ; 30 ff 6738 6788 mov dx, strict word 00017h ; ba 17 00 6739 6789 mov ax, strict word 00040h ; b8 40 00 6740 call 016 0eh ; e8 bec86790 call 0165eh ; e8 d0 c8 6741 6791 mov al, byte [bp-008h] ; 8a 46 f8 6742 6792 test AL, strict byte 002h ; a8 02 6743 je short 04d 64h ; 74 0d6793 je short 04da2h ; 74 0d 6744 6794 or AL, strict byte 004h ; 0c 04 6745 6795 mov byte [bp-006h], al ; 88 46 fa 6746 6796 movzx bx, al ; 0f b6 d8 6747 6797 mov dx, 00096h ; ba 96 00 6748 jmp short 04d 72h ; eb 0e6798 jmp short 04db0h ; eb 0e 6749 6799 mov al, byte [bp-010h] ; 8a 46 f0 6750 6800 or AL, strict byte 001h ; 0c 01 … … 6753 6803 mov dx, strict word 00018h ; ba 18 00 6754 6804 mov ax, strict word 00040h ; b8 40 00 6755 call 016 0eh ; e8 96c86756 jmp near 04f abh ; e9 30 026805 call 0165eh ; e8 a8 c8 6806 jmp near 04fe9h ; e9 30 02 6757 6807 test byte [bp-008h], 001h ; f6 46 f8 01 6758 jne near 04f abh ; 0f 85 28 026808 jne near 04fe9h ; 0f 85 28 02 6759 6809 and bl, 0fbh ; 80 e3 fb 6760 6810 xor bh, bh ; 30 ff 6761 6811 mov dx, strict word 00017h ; ba 17 00 6762 6812 mov ax, strict word 00040h ; b8 40 00 6763 call 016 0eh ; e8 7dc86813 call 0165eh ; e8 8f c8 6764 6814 mov al, byte [bp-008h] ; 8a 46 f8 6765 6815 test AL, strict byte 002h ; a8 02 6766 je short 04d a5h ; 74 0d6816 je short 04de3h ; 74 0d 6767 6817 and AL, strict byte 0fbh ; 24 fb 6768 6818 mov byte [bp-006h], al ; 88 46 fa 6769 6819 movzx bx, al ; 0f b6 d8 6770 6820 mov dx, 00096h ; ba 96 00 6771 jmp short 04d b3h ; eb 0e6821 jmp short 04df1h ; eb 0e 6772 6822 mov al, byte [bp-010h] ; 8a 46 f0 6773 6823 and AL, strict byte 0feh ; 24 fe … … 6776 6826 mov dx, strict word 00018h ; ba 18 00 6777 6827 mov ax, strict word 00040h ; b8 40 00 6778 call 016 0eh ; e8 55c86779 jmp near 04f abh ; e9 ef 016828 call 0165eh ; e8 67 c8 6829 jmp near 04fe9h ; e9 ef 01 6780 6830 or bl, 008h ; 80 cb 08 6781 6831 xor bh, bh ; 30 ff 6782 6832 mov dx, strict word 00017h ; ba 17 00 6783 6833 mov ax, strict word 00040h ; b8 40 00 6784 call 016 0eh ; e8 44c86834 call 0165eh ; e8 56 c8 6785 6835 mov al, byte [bp-008h] ; 8a 46 f8 6786 6836 test AL, strict byte 002h ; a8 02 6787 je short 04 ddeh ; 74 0d6837 je short 04e1ch ; 74 0d 6788 6838 or AL, strict byte 008h ; 0c 08 6789 6839 mov byte [bp-006h], al ; 88 46 fa 6790 6840 movzx bx, al ; 0f b6 d8 6791 6841 mov dx, 00096h ; ba 96 00 6792 jmp short 04 dech ; eb 0e6842 jmp short 04e2ah ; eb 0e 6793 6843 mov al, byte [bp-010h] ; 8a 46 f0 6794 6844 or AL, strict byte 002h ; 0c 02 … … 6797 6847 mov dx, strict word 00018h ; ba 18 00 6798 6848 mov ax, strict word 00040h ; b8 40 00 6799 call 016 0eh ; e8 1cc86800 jmp near 04f abh ; e9 b6 016849 call 0165eh ; e8 2e c8 6850 jmp near 04fe9h ; e9 b6 01 6801 6851 and bl, 0f7h ; 80 e3 f7 6802 6852 xor bh, bh ; 30 ff 6803 6853 mov dx, strict word 00017h ; ba 17 00 6804 6854 mov ax, strict word 00040h ; b8 40 00 6805 call 016 0eh ; e8 0bc86855 call 0165eh ; e8 1d c8 6806 6856 mov al, byte [bp-008h] ; 8a 46 f8 6807 6857 test AL, strict byte 002h ; a8 02 6808 je short 04e 17h ; 74 0d6858 je short 04e55h ; 74 0d 6809 6859 and AL, strict byte 0f7h ; 24 f7 6810 6860 mov byte [bp-006h], al ; 88 46 fa 6811 6861 movzx bx, al ; 0f b6 d8 6812 6862 mov dx, 00096h ; ba 96 00 6813 jmp short 04e 25h ; eb 0e6863 jmp short 04e63h ; eb 0e 6814 6864 mov al, byte [bp-010h] ; 8a 46 f0 6815 6865 and AL, strict byte 0fdh ; 24 fd … … 6818 6868 mov dx, strict word 00018h ; ba 18 00 6819 6869 mov ax, strict word 00040h ; b8 40 00 6820 call 016 0eh ; e8 e3c76821 jmp near 04f abh ; e9 7d 016870 call 0165eh ; e8 f5 c7 6871 jmp near 04fe9h ; e9 7d 01 6822 6872 test byte [bp-008h], 003h ; f6 46 f8 03 6823 jne near 04f abh ; 0f 85 75 016873 jne near 04fe9h ; 0f 85 75 01 6824 6874 mov al, byte [bp-010h] ; 8a 46 f0 6825 6875 or AL, strict byte 020h ; 0c 20 … … 6828 6878 mov dx, strict word 00018h ; ba 18 00 6829 6879 mov ax, strict word 00040h ; b8 40 00 6830 call 016 0eh ; e8 c4c76880 call 0165eh ; e8 d6 c7 6831 6881 mov bl, byte [bp-00eh] ; 8a 5e f2 6832 6882 xor bl, 020h ; 80 f3 20 … … 6834 6884 mov dx, strict word 00017h ; ba 17 00 6835 6885 mov ax, strict word 00040h ; b8 40 00 6836 call 016 0eh ; e8 b3c76837 jmp near 04f abh ; e9 4d 016886 call 0165eh ; e8 c5 c7 6887 jmp near 04fe9h ; e9 4d 01 6838 6888 test byte [bp-008h], 003h ; f6 46 f8 03 6839 jne near 04f abh ; 0f 85 45 016889 jne near 04fe9h ; 0f 85 45 01 6840 6890 mov al, byte [bp-010h] ; 8a 46 f0 6841 6891 and AL, strict byte 0dfh ; 24 df … … 6844 6894 mov dx, strict word 00018h ; ba 18 00 6845 6895 mov ax, strict word 00040h ; b8 40 00 6846 call 016 0eh ; e8 94c76847 jmp near 04f abh ; e9 2e 016896 call 0165eh ; e8 a6 c7 6897 jmp near 04fe9h ; e9 2e 01 6848 6898 mov al, byte [bp-010h] ; 8a 46 f0 6849 6899 or AL, strict byte 010h ; 0c 10 … … 6852 6902 mov dx, strict word 00018h ; ba 18 00 6853 6903 mov ax, strict word 00040h ; b8 40 00 6854 call 016 0eh ; e8 7dc76904 call 0165eh ; e8 8f c7 6855 6905 mov bl, byte [bp-00eh] ; 8a 5e f2 6856 6906 xor bl, 010h ; 80 f3 10 6857 jmp short 04e 50h ; eb b76907 jmp short 04e8eh ; eb b7 6858 6908 mov al, byte [bp-010h] ; 8a 46 f0 6859 6909 and AL, strict byte 0efh ; 24 ef 6860 jmp short 04e 6bh ; eb cb6910 jmp short 04ea9h ; eb cb 6861 6911 mov al, bl ; 88 d8 6862 6912 and AL, strict byte 00ch ; 24 0c 6863 6913 cmp AL, strict byte 00ch ; 3c 0c 6864 jne short 04e adh ; 75 056914 jne short 04eebh ; 75 05 6865 6915 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 6866 6916 test byte [bp-00ah], 080h ; f6 46 f6 80 6867 jne near 04f abh ; 0f 85 f6 006917 jne near 04fe9h ; 0f 85 f6 00 6868 6918 cmp byte [bp-00ah], 058h ; 80 7e f6 58 6869 jbe short 04 ed9h ; 76 1e6919 jbe short 04f17h ; 76 1e 6870 6920 mov bx, 00da2h ; bb a2 0d 6871 6921 mov cx, ds ; 8c d9 6872 6922 mov ax, strict word 00004h ; b8 04 00 6873 call 01 8e1h ; e8 1bca6923 call 01931h ; e8 2d ca 6874 6924 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6875 6925 push ax ; 50 6876 6926 push 00581h ; 68 81 05 6877 6927 push strict byte 00004h ; 6a 04 6878 call 019 22h ; e8 4fca6928 call 01972h ; e8 61 ca 6879 6929 add sp, strict byte 00006h ; 83 c4 06 6880 jmp near 0 4fc9h ; e9 f0 006930 jmp near 05007h ; e9 f0 00 6881 6931 test bl, 008h ; f6 c3 08 6882 je short 04 ef0h ; 74 126932 je short 04f2eh ; 74 12 6883 6933 movzx si, byte [bp-00ah] ; 0f b6 76 f6 6884 6934 imul si, si, strict byte 0000ah ; 6b f6 0a 6885 6935 mov dl, byte [si+00df6h] ; 8a 94 f6 0d 6886 6936 mov ax, word [si+00df6h] ; 8b 84 f6 0d 6887 jmp near 04f 7ch ; e9 8c 006937 jmp near 04fbah ; e9 8c 00 6888 6938 test bl, 004h ; f6 c3 04 6889 je short 04f 07h ; 74 126939 je short 04f45h ; 74 12 6890 6940 movzx si, byte [bp-00ah] ; 0f b6 76 f6 6891 6941 imul si, si, strict byte 0000ah ; 6b f6 0a 6892 6942 mov dl, byte [si+00df4h] ; 8a 94 f4 0d 6893 6943 mov ax, word [si+00df4h] ; 8b 84 f4 0d 6894 jmp near 04f 7ch ; e9 75 006944 jmp near 04fbah ; e9 75 00 6895 6945 mov al, byte [bp-006h] ; 8a 46 fa 6896 6946 and AL, strict byte 002h ; 24 02 6897 6947 test al, al ; 84 c0 6898 jbe short 04f 25h ; 76 156948 jbe short 04f63h ; 76 15 6899 6949 mov al, byte [bp-00ah] ; 8a 46 f6 6900 6950 cmp AL, strict byte 047h ; 3c 47 6901 jc short 04f 25h ; 72 0e6951 jc short 04f63h ; 72 0e 6902 6952 cmp AL, strict byte 053h ; 3c 53 6903 jnbe short 04f 25h ; 77 0a6953 jnbe short 04f63h ; 77 0a 6904 6954 mov DL, strict byte 0e0h ; b2 e0 6905 6955 movzx si, al ; 0f b6 f0 6906 6956 imul si, si, strict byte 0000ah ; 6b f6 0a 6907 jmp short 04f 78h ; eb 536957 jmp short 04fb6h ; eb 53 6908 6958 test bl, 003h ; f6 c3 03 6909 je short 04f 57h ; 74 2d6959 je short 04f95h ; 74 2d 6910 6960 movzx si, byte [bp-00ah] ; 0f b6 76 f6 6911 6961 imul si, si, strict byte 0000ah ; 6b f6 0a … … 6913 6963 movzx dx, bl ; 0f b6 d3 6914 6964 test dx, ax ; 85 c2 6915 je short 04f 47h ; 74 0a6965 je short 04f85h ; 74 0a 6916 6966 mov dl, byte [si+00df0h] ; 8a 94 f0 0d 6917 6967 mov ax, word [si+00df0h] ; 8b 84 f0 0d 6918 jmp short 04f 4fh ; eb 086968 jmp short 04f8dh ; eb 08 6919 6969 mov dl, byte [si+00df2h] ; 8a 94 f2 0d 6920 6970 mov ax, word [si+00df2h] ; 8b 84 f2 0d 6921 6971 shr ax, 008h ; c1 e8 08 6922 6972 mov byte [bp-00ah], al ; 88 46 f6 6923 jmp short 04f 82h ; eb 2b6973 jmp short 04fc0h ; eb 2b 6924 6974 movzx si, byte [bp-00ah] ; 0f b6 76 f6 6925 6975 imul si, si, strict byte 0000ah ; 6b f6 0a … … 6927 6977 movzx dx, bl ; 0f b6 d3 6928 6978 test dx, ax ; 85 c2 6929 je short 04f 74h ; 74 0a6979 je short 04fb2h ; 74 0a 6930 6980 mov dl, byte [si+00df2h] ; 8a 94 f2 0d 6931 6981 mov ax, word [si+00df2h] ; 8b 84 f2 0d 6932 jmp short 04f 7ch ; eb 086982 jmp short 04fbah ; eb 08 6933 6983 mov dl, byte [si+00df0h] ; 8a 94 f0 0d 6934 6984 mov ax, word [si+00df0h] ; 8b 84 f0 0d … … 6936 6986 mov byte [bp-00ah], al ; 88 46 f6 6937 6987 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6938 jne short 04f a2h ; 75 1a6988 jne short 04fe0h ; 75 1a 6939 6989 test dl, dl ; 84 d2 6940 jne short 04f a2h ; 75 166990 jne short 04fe0h ; 75 16 6941 6991 mov bx, 00da2h ; bb a2 0d 6942 6992 mov cx, ds ; 8c d9 6943 6993 mov ax, strict word 00004h ; b8 04 00 6944 call 01 8e1h ; e8 4ac96994 call 01931h ; e8 5c c9 6945 6995 push 005b8h ; 68 b8 05 6946 6996 push strict byte 00004h ; 6a 04 6947 call 019 22h ; e8 83c96997 call 01972h ; e8 95 c9 6948 6998 add sp, strict byte 00004h ; 83 c4 04 6949 6999 xor dh, dh ; 30 f6 6950 7000 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6951 call 04 be0h ; e8 35 fc7001 call 04c1eh ; e8 35 fc 6952 7002 mov al, byte [bp-00ah] ; 8a 46 f6 6953 7003 and AL, strict byte 07fh ; 24 7f 6954 7004 cmp AL, strict byte 01dh ; 3c 1d 6955 je short 04f b8h ; 74 047005 je short 04ff6h ; 74 04 6956 7006 and byte [bp-006h], 0feh ; 80 66 fa fe 6957 7007 and byte [bp-006h], 0fdh ; 80 66 fa fd … … 6959 7009 mov dx, 00096h ; ba 96 00 6960 7010 mov ax, strict word 00040h ; b8 40 00 6961 call 016 0eh ; e8 45c67011 call 0165eh ; e8 57 c6 6962 7012 lea sp, [bp-004h] ; 8d 66 fc 6963 7013 pop di ; 5f … … 6965 7015 pop bp ; 5d 6966 7016 retn ; c3 6967 dequeue_key_: ; 0xf 4fd0LB 0x947017 dequeue_key_: ; 0xf500e LB 0x94 6968 7018 push bp ; 55 6969 7019 mov bp, sp ; 89 e5 … … 6978 7028 mov dx, strict word 0001ah ; ba 1a 00 6979 7029 mov ax, strict word 00040h ; b8 40 00 6980 call 016 1ch ; e8 32c67030 call 0166ch ; e8 44 c6 6981 7031 mov bx, ax ; 89 c3 6982 7032 mov dx, strict word 0001ch ; ba 1c 00 6983 7033 mov ax, strict word 00040h ; b8 40 00 6984 call 016 1ch ; e8 27c67034 call 0166ch ; e8 39 c6 6985 7035 cmp bx, ax ; 39 c3 6986 je short 050 36h ; 74 3d7036 je short 05074h ; 74 3d 6987 7037 mov dx, bx ; 89 da 6988 7038 mov ax, strict word 00040h ; b8 40 00 6989 call 016 00h ; e8 ff c57039 call 01650h ; e8 11 c6 6990 7040 mov cl, al ; 88 c1 6991 7041 lea dx, [bx+001h] ; 8d 57 01 6992 7042 mov ax, strict word 00040h ; b8 40 00 6993 call 016 00h ; e8 f4 c57043 call 01650h ; e8 06 c6 6994 7044 mov es, [bp-008h] ; 8e 46 f8 6995 7045 mov byte [es:si], cl ; 26 88 0c … … 6997 7047 mov byte [es:di], al ; 26 88 05 6998 7048 cmp word [bp+004h], strict byte 00000h ; 83 7e 04 00 6999 je short 050 31h ; 74 137049 je short 0506fh ; 74 13 7000 7050 inc bx ; 43 7001 7051 inc bx ; 43 7002 7052 cmp bx, strict byte 0003eh ; 83 fb 3e 7003 jc short 050 28h ; 72 037053 jc short 05066h ; 72 03 7004 7054 mov bx, strict word 0001eh ; bb 1e 00 7005 7055 mov dx, strict word 0001ah ; ba 1a 00 7006 7056 mov ax, strict word 00040h ; b8 40 00 7007 call 016 2ah ; e8 f9 c57057 call 0167ah ; e8 0b c6 7008 7058 mov ax, strict word 00001h ; b8 01 00 7009 jmp short 050 38h ; eb 027059 jmp short 05076h ; eb 02 7010 7060 xor ax, ax ; 31 c0 7011 7061 lea sp, [bp-004h] ; 8d 66 fc … … 7018 7068 or cl, byte [bx+di] ; 0a 09 7019 7069 add ax, 00102h ; 05 02 01 7020 add byte [bp+si], al ; 00 02 7070 add byte [bx+si+053h], al ; 00 40 53 7071 push si ; 56 7072 push cx ; 51 7073 popfw ; 9d 7074 push cx ; 51 7075 jmp near 049e4h ; e9 51 f9 7076 push cx ; 51 7077 and dx, word [bp+si+02ch] ; 23 52 2c 7078 push dx ; 52 7079 popfw ; 9d 7080 push dx ; 52 7081 into ; ce 7082 push dx ; 52 7083 sti ; fb 7084 push dx ; 52 7085 xor ax, 08353h ; 35 53 83 7021 7086 push bx ; 53 7022 sbb byte [bx+di+05fh], dl ; 18 51 5f 7023 push cx ; 51 7024 stosw ; ab 7025 push cx ; 51 7026 mov bx, 0e551h ; bb 51 e5 7027 push cx ; 51 7028 out DX, AL ; ee 7029 push cx ; 51 7030 pop di ; 5f 7031 push dx ; 52 7032 nop ; 90 7033 push dx ; 52 7034 mov bp, 0f752h ; bd 52 f7 7035 push dx ; 52 7036 inc bp ; 45 7037 push bx ; 53 7038 _int16_function: ; 0xf5064 LB 0x2e7 7087 _int16_function: ; 0xf50a2 LB 0x2e7 7039 7088 push bp ; 55 7040 7089 mov bp, sp ; 89 e5 … … 7043 7092 mov dx, strict word 00017h ; ba 17 00 7044 7093 mov ax, strict word 00040h ; b8 40 00 7045 call 016 00h ; e8 8cc57094 call 01650h ; e8 9e c5 7046 7095 mov cl, al ; 88 c1 7047 7096 mov bh, al ; 88 c7 7048 7097 mov dx, 00097h ; ba 97 00 7049 7098 mov ax, strict word 00040h ; b8 40 00 7050 call 016 00h ; e8 7fc57099 call 01650h ; e8 91 c5 7051 7100 mov bl, al ; 88 c3 7052 7101 movzx dx, cl ; 0f b6 d1 … … 7057 7106 xor al, dl ; 30 d0 7058 7107 test ax, ax ; 85 c0 7059 je short 05 0f6h ; 74 607108 je short 05134h ; 74 60 7060 7109 cli ; fa 7061 7110 mov AL, strict byte 0edh ; b0 ed … … 7067 7116 ; sub ah, ah ; 2a e4 7068 7117 test AL, strict byte 001h ; a8 01 7069 jne short 050 afh ; 75 087118 jne short 050edh ; 75 08 7070 7119 mov AL, strict byte 021h ; b0 21 7071 7120 mov dx, 00080h ; ba 80 00 7072 7121 out DX, AL ; ee 7073 jmp short 050 9dh ; eb ee7122 jmp short 050dbh ; eb ee 7074 7123 mov dx, strict word 00060h ; ba 60 00 7075 7124 in AL, DX ; ec … … 7077 7126 ; sub ah, ah ; 2a e4 7078 7127 cmp ax, 000fah ; 3d fa 00 7079 jne short 05 0f5h ; 75 3b7128 jne short 05133h ; 75 3b 7080 7129 and bl, 0f8h ; 80 e3 f8 7081 7130 movzx ax, bh ; 0f b6 c7 … … 7093 7142 ; sub ah, ah ; 2a e4 7094 7143 test AL, strict byte 001h ; a8 01 7095 jne short 05 0e4h ; 75 087144 jne short 05122h ; 75 08 7096 7145 mov AL, strict byte 021h ; b0 21 7097 7146 mov dx, 00080h ; ba 80 00 7098 7147 out DX, AL ; ee 7099 jmp short 05 0d2h ; eb ee7148 jmp short 05110h ; eb ee 7100 7149 mov dx, strict word 00060h ; ba 60 00 7101 7150 in AL, DX ; ec … … 7105 7154 mov dx, 00097h ; ba 97 00 7106 7155 mov ax, strict word 00040h ; b8 40 00 7107 call 016 0eh ; e8 19c57156 call 0165eh ; e8 2b c5 7108 7157 sti ; fb 7109 7158 mov ax, word [bp+012h] ; 8b 46 12 7110 7159 shr ax, 008h ; c1 e8 08 7111 7160 cmp ax, 000a2h ; 3d a2 00 7112 jnbe near 053 02h ; 0f 87 ff 017161 jnbe near 05340h ; 0f 87 ff 01 7113 7162 push CS ; 0e 7114 7163 pop ES ; 07 7115 7164 mov cx, strict word 0000ch ; b9 0c 00 7116 mov di, 050 41h ; bf 41507165 mov di, 0507fh ; bf 7f 50 7117 7166 repne scasb ; f2 ae 7118 7167 sal cx, 1 ; d1 e1 7119 7168 mov di, cx ; 89 cf 7120 mov ax, word [cs:di+050 4ch] ; 2e 8b 85 4c507169 mov ax, word [cs:di+0508ah] ; 2e 8b 85 8a 50 7121 7170 jmp ax ; ff e0 7122 7171 push strict byte 00001h ; 6a 01 … … 7125 7174 mov dx, ss ; 8c d2 7126 7175 lea ax, [bp-006h] ; 8d 46 fa 7127 call 0 4fd0h ; e8 a9 fe7176 call 0500eh ; e8 a9 fe 7128 7177 test ax, ax ; 85 c0 7129 jne short 051 36h ; 75 0b7178 jne short 05174h ; 75 0b 7130 7179 push 005efh ; 68 ef 05 7131 7180 push strict byte 00007h ; 6a 07 7132 call 019 22h ; e8 ef c77181 call 01972h ; e8 01 c8 7133 7182 add sp, strict byte 00004h ; 83 c4 04 7134 7183 cmp byte [bp-006h], 000h ; 80 7e fa 00 7135 je short 051 42h ; 74 067184 je short 05180h ; 74 06 7136 7185 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7137 je short 051 48h ; 74 067186 je short 05186h ; 74 06 7138 7187 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 7139 jne short 051 4ch ; 75 047188 jne short 0518ah ; 75 04 7140 7189 mov byte [bp-008h], 000h ; c6 46 f8 00 7141 7190 movzx dx, byte [bp-006h] ; 0f b6 56 fa … … 7144 7193 or dx, ax ; 09 c2 7145 7194 mov word [bp+012h], dx ; 89 56 12 7146 jmp near 053 45h ; e9 e6 017195 jmp near 05383h ; e9 e6 01 7147 7196 or word [bp+01ch], 00200h ; 81 4e 1c 00 02 7148 7197 push strict byte 00000h ; 6a 00 … … 7151 7200 mov dx, ss ; 8c d2 7152 7201 lea ax, [bp-006h] ; 8d 46 fa 7153 call 0 4fd0h ; e8 5d fe7202 call 0500eh ; e8 5d fe 7154 7203 test ax, ax ; 85 c0 7155 jne short 051 7eh ; 75 077204 jne short 051bch ; 75 07 7156 7205 or word [bp+01ch], strict byte 00040h ; 83 4e 1c 40 7157 jmp near 053 45h ; e9 c7 017206 jmp near 05383h ; e9 c7 01 7158 7207 cmp byte [bp-006h], 000h ; 80 7e fa 00 7159 je short 051 8ah ; 74 067208 je short 051c8h ; 74 06 7160 7209 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7161 je short 051 90h ; 74 067210 je short 051ceh ; 74 06 7162 7211 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 7163 jne short 051 94h ; 75 047212 jne short 051d2h ; 75 04 7164 7213 mov byte [bp-008h], 000h ; c6 46 f8 00 7165 7214 movzx dx, byte [bp-006h] ; 0f b6 56 fa … … 7169 7218 mov word [bp+012h], dx ; 89 56 12 7170 7219 and word [bp+01ch], strict byte 0ffbfh ; 83 66 1c bf 7171 jmp near 053 45h ; e9 9a 017220 jmp near 05383h ; e9 9a 01 7172 7221 mov dx, strict word 00017h ; ba 17 00 7173 7222 mov ax, strict word 00040h ; b8 40 00 7174 call 016 00h ; e8 4cc47223 call 01650h ; e8 5e c4 7175 7224 mov dx, word [bp+012h] ; 8b 56 12 7176 7225 mov dl, al ; 88 c2 7177 jmp short 051 59h ; eb 9e7226 jmp short 05197h ; eb 9e 7178 7227 mov al, byte [bp+010h] ; 8a 46 10 7179 7228 movzx dx, al ; 0f b6 d0 … … 7181 7230 shr ax, 008h ; c1 e8 08 7182 7231 xor ah, ah ; 30 e4 7183 call 04 be0h ; e8 14 fa7232 call 04c1eh ; e8 14 fa 7184 7233 test ax, ax ; 85 c0 7185 jne short 05 1ddh ; 75 0d7234 jne short 0521bh ; 75 0d 7186 7235 mov ax, word [bp+012h] ; 8b 46 12 7187 7236 xor al, al ; 30 c0 7188 7237 or AL, strict byte 001h ; 0c 01 7189 7238 mov word [bp+012h], ax ; 89 46 12 7190 jmp near 053 45h ; e9 68 017239 jmp near 05383h ; e9 68 01 7191 7240 and word [bp+012h], 0ff00h ; 81 66 12 00 ff 7192 jmp near 053 45h ; e9 60 017241 jmp near 05383h ; e9 60 01 7193 7242 mov ax, word [bp+012h] ; 8b 46 12 7194 7243 xor al, al ; 30 c0 7195 7244 or AL, strict byte 030h ; 0c 30 7196 jmp short 05 1d7h ; eb e97245 jmp short 05215h ; eb e9 7197 7246 mov byte [bp-004h], 002h ; c6 46 fc 02 7198 7247 xor cx, cx ; 31 c9 … … 7207 7256 ; sub ah, ah ; 2a e4 7208 7257 test AL, strict byte 001h ; a8 01 7209 jne short 052 15h ; 75 0d7258 jne short 05253h ; 75 0d 7210 7259 dec bx ; 4b 7211 7260 test bx, bx ; 85 db 7212 jbe short 052 15h ; 76 087261 jbe short 05253h ; 76 08 7213 7262 mov dx, 00080h ; ba 80 00 7214 7263 in AL, DX ; ec 7215 7264 db 02ah, 0e4h 7216 7265 ; sub ah, ah ; 2a e4 7217 jmp short 05 1feh ; eb e97266 jmp short 0523ch ; eb e9 7218 7267 test bx, bx ; 85 db 7219 jbe short 052 59h ; 76 407268 jbe short 05297h ; 76 40 7220 7269 mov dx, strict word 00060h ; ba 60 00 7221 7270 in AL, DX ; ec … … 7223 7272 ; sub ah, ah ; 2a e4 7224 7273 cmp ax, 000fah ; 3d fa 00 7225 jne short 052 59h ; 75 357274 jne short 05297h ; 75 35 7226 7275 mov bx, strict word 0ffffh ; bb ff ff 7227 7276 mov dx, strict word 00064h ; ba 64 00 … … 7230 7279 ; sub ah, ah ; 2a e4 7231 7280 test AL, strict byte 001h ; a8 01 7232 jne short 052 3eh ; 75 0d7281 jne short 0527ch ; 75 0d 7233 7282 dec bx ; 4b 7234 7283 test bx, bx ; 85 db 7235 jbe short 052 3eh ; 76 087284 jbe short 0527ch ; 76 08 7236 7285 mov dx, 00080h ; ba 80 00 7237 7286 in AL, DX ; ec 7238 7287 db 02ah, 0e4h 7239 7288 ; sub ah, ah ; 2a e4 7240 jmp short 052 27h ; eb e97289 jmp short 05265h ; eb e9 7241 7290 test bx, bx ; 85 db 7242 jbe short 052 50h ; 76 0e7291 jbe short 0528eh ; 76 0e 7243 7292 shr cx, 008h ; c1 e9 08 7244 7293 mov dx, strict word 00060h ; ba 60 00 … … 7250 7299 dec byte [bp-004h] ; fe 4e fc 7251 7300 cmp byte [bp-004h], 000h ; 80 7e fc 00 7252 jnbe short 052 24h ; 77 cb7301 jnbe short 05262h ; 77 cb 7253 7302 mov word [bp+00ch], cx ; 89 4e 0c 7254 jmp near 053 45h ; e9 e6 007303 jmp near 05383h ; e9 e6 00 7255 7304 push strict byte 00001h ; 6a 01 7256 7305 mov cx, ss ; 8c d1 … … 7258 7307 mov dx, ss ; 8c d2 7259 7308 lea ax, [bp-006h] ; 8d 46 fa 7260 call 0 4fd0h ; e8 62 fd7309 call 0500eh ; e8 62 fd 7261 7310 test ax, ax ; 85 c0 7262 jne short 052 7dh ; 75 0b7311 jne short 052bbh ; 75 0b 7263 7312 push 005efh ; 68 ef 05 7264 7313 push strict byte 00007h ; 6a 07 7265 call 019 22h ; e8 a8c67314 call 01972h ; e8 ba c6 7266 7315 add sp, strict byte 00004h ; 83 c4 04 7267 7316 cmp byte [bp-006h], 000h ; 80 7e fa 00 7268 je near 051 4ch ; 0f 84 c7 fe7317 je near 0518ah ; 0f 84 c7 fe 7269 7318 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7270 je near 051 48h ; 0f 84 bb fe7271 jmp near 051 4ch ; e9 bc fe7319 je near 05186h ; 0f 84 bb fe 7320 jmp near 0518ah ; e9 bc fe 7272 7321 or word [bp+01ch], 00200h ; 81 4e 1c 00 02 7273 7322 push strict byte 00000h ; 6a 00 … … 7276 7325 mov dx, ss ; 8c d2 7277 7326 lea ax, [bp-006h] ; 8d 46 fa 7278 call 0 4fd0h ; e8 2c fd7327 call 0500eh ; e8 2c fd 7279 7328 test ax, ax ; 85 c0 7280 je near 051 77h ; 0f 84 cd fe7329 je near 051b5h ; 0f 84 cd fe 7281 7330 cmp byte [bp-006h], 000h ; 80 7e fa 00 7282 je near 051 94h ; 0f 84 e2 fe7331 je near 051d2h ; 0f 84 e2 fe 7283 7332 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7284 je near 051 90h ; 0f 84 d6 fe7285 jmp near 051 94h ; e9 d7 fe7333 je near 051ceh ; 0f 84 d6 fe 7334 jmp near 051d2h ; e9 d7 fe 7286 7335 mov dx, strict word 00017h ; ba 17 00 7287 7336 mov ax, strict word 00040h ; b8 40 00 7288 call 016 00h ; e8 3ac37337 call 01650h ; e8 4c c3 7289 7338 mov dx, word [bp+012h] ; 8b 56 12 7290 7339 mov dl, al ; 88 c2 … … 7292 7341 mov dx, strict word 00018h ; ba 18 00 7293 7342 mov ax, strict word 00040h ; b8 40 00 7294 call 016 00h ; e8 29c37343 call 01650h ; e8 3b c3 7295 7344 mov bh, al ; 88 c7 7296 7345 and bh, 073h ; 80 e7 73 7297 7346 mov dx, 00096h ; ba 96 00 7298 7347 mov ax, strict word 00040h ; b8 40 00 7299 call 016 00h ; e8 1bc37348 call 01650h ; e8 2d c3 7300 7349 and AL, strict byte 00ch ; 24 0c 7301 7350 or bh, al ; 08 c7 … … 7304 7353 movzx ax, bh ; 0f b6 c7 7305 7354 sal ax, 008h ; c1 e0 08 7306 jmp near 051 57h ; e9 60 fe7355 jmp near 05195h ; e9 60 fe 7307 7356 mov ax, word [bp+012h] ; 8b 46 12 7308 7357 xor ah, ah ; 30 e4 7309 7358 or ah, 080h ; 80 cc 80 7310 jmp near 05 1d7h ; e9 d5 fe7359 jmp near 05215h ; e9 d5 fe 7311 7360 mov bx, 00da2h ; bb a2 0d 7312 7361 mov cx, ds ; 8c d9 7313 7362 mov ax, strict word 00004h ; b8 04 00 7314 call 01 8e1h ; e8 d4c57363 call 01931h ; e8 e6 c5 7315 7364 mov ax, word [bp+012h] ; 8b 46 12 7316 7365 shr ax, 008h ; c1 e8 08 … … 7318 7367 push 00613h ; 68 13 06 7319 7368 push strict byte 00004h ; 6a 04 7320 call 019 22h ; e8 06c67369 call 01972h ; e8 18 c6 7321 7370 add sp, strict byte 00006h ; 83 c4 06 7322 7371 mov bx, 00da2h ; bb a2 0d 7323 7372 mov cx, ds ; 8c d9 7324 7373 mov ax, strict word 00004h ; b8 04 00 7325 call 01 8e1h ; e8 b7c57374 call 01931h ; e8 c9 c5 7326 7375 mov ax, word [bp+00eh] ; 8b 46 0e 7327 7376 push ax ; 50 … … 7334 7383 push 0063bh ; 68 3b 06 7335 7384 push strict byte 00004h ; 6a 04 7336 call 019 22h ; e8 e0c57385 call 01972h ; e8 f2 c5 7337 7386 add sp, strict byte 0000ch ; 83 c4 0c 7338 7387 lea sp, [bp-002h] ; 8d 66 fe … … 7340 7389 pop bp ; 5d 7341 7390 retn ; c3 7342 set_geom_lba_: ; 0xf53 4bLB 0x9e7391 set_geom_lba_: ; 0xf5389 LB 0x9e 7343 7392 push si ; 56 7344 7393 push di ; 57 … … 7352 7401 mov di, 000ffh ; bf ff 00 7353 7402 xor bx, bx ; 31 db 7354 jmp short 053 6ch ; eb 057403 jmp short 053aah ; eb 05 7355 7404 cmp bx, strict byte 00004h ; 83 fb 04 7356 jnl short 053 82h ; 7d 167405 jnl short 053c0h ; 7d 16 7357 7406 cmp dx, word [bp-002h] ; 3b 56 fe 7358 jnbe short 053 78h ; 77 077359 jne short 053 7bh ; 75 087407 jnbe short 053b6h ; 77 07 7408 jne short 053b9h ; 75 08 7360 7409 cmp ax, word [bp-004h] ; 3b 46 fc 7361 jc short 053 7bh ; 72 037410 jc short 053b9h ; 72 03 7362 7411 inc di ; 47 7363 7412 shr di, 1 ; d1 ef … … 7365 7414 rcr ax, 1 ; d1 d8 7366 7415 inc bx ; 43 7367 jmp short 053 67h ; eb e57416 jmp short 053a5h ; eb e5 7368 7417 mov ax, di ; 89 f8 7369 7418 xor dx, dx ; 31 d2 7370 7419 mov bx, strict word 0003fh ; bb 3f 00 7371 7420 xor cx, cx ; 31 c9 7372 call 094 39h ; e8 ab407421 call 09479h ; e8 ad 40 7373 7422 mov bx, ax ; 89 c3 7374 7423 mov cx, dx ; 89 d1 7375 7424 mov ax, word [bp-004h] ; 8b 46 fc 7376 7425 mov dx, word [bp-002h] ; 8b 56 fe 7377 call 094 00h ; e8 65407426 call 09440h ; e8 67 40 7378 7427 mov word [es:si+002h], ax ; 26 89 44 02 7379 7428 cmp ax, 00400h ; 3d 00 04 7380 jbe short 053 aah ; 76 067429 jbe short 053e8h ; 76 06 7381 7430 mov word [es:si+002h], 00400h ; 26 c7 44 02 00 04 7382 7431 mov word [es:si], di ; 26 89 3c … … 7386 7435 pop si ; 5e 7387 7436 retn ; c3 7388 jnc short 0540dh ; 73547389 cwd ; 997437 mov CL, strict byte 054h ; b1 54 7438 xlatb ; d7 7390 7439 push sp ; 54 7391 db 0c6h, 054h, 0c6h, 054h 7392 ; mov byte [si-03ah], 054h ; c6 54 c6 54 7393 db 0c6h, 054h, 09eh, 056h 7394 ; mov byte [si-062h], 056h ; c6 54 9e 56 7395 int3 ; cc 7440 add AL, strict byte 055h ; 04 55 7441 add AL, strict byte 055h ; 04 55 7442 add AL, strict byte 055h ; 04 55 7443 fcom qword [bp+00ah] ; dc 56 0a 7444 pop ax ; 58 7445 or bl, byte [bx+si-00bh] ; 0a 58 f5 7446 push si ; 56 7447 out 057h, ax ; e7 57 7448 or bl, byte [bx+si+00ah] ; 0a 58 0a 7449 pop ax ; 58 7450 out 057h, ax ; e7 57 7451 out 057h, ax ; e7 57 7452 or bl, byte [bx+si+00ah] ; 0a 58 0a 7453 pop ax ; 58 7454 imul dx, word [bx-019h], strict byte 00057h ; 6b 57 e7 57 7455 or bl, byte [bx+si+00ah] ; 0a 58 0a 7456 pop ax ; 58 7457 out 057h, ax ; e7 57 7458 wait ; 9b 7396 7459 push di ; 57 7397 int3 ; cc 7398 push di ; 57 7399 mov BH, strict byte 056h ; b7 56 7400 test ax, 0cc57h ; a9 57 cc 7401 push di ; 57 7402 int3 ; cc 7403 push di ; 57 7404 test ax, 0a957h ; a9 57 a9 7405 push di ; 57 7406 int3 ; cc 7407 push di ; 57 7408 int3 ; cc 7409 push di ; 57 7410 sub ax, 0a957h ; 2d 57 a9 7411 push di ; 57 7412 int3 ; cc 7413 push di ; 57 7414 int3 ; cc 7415 push di ; 57 7416 test ax, 05d57h ; a9 57 5d 7417 push di ; 57 7418 int3 ; cc 7419 push di ; 57 7420 int3 ; cc 7421 push di ; 57 7422 int3 ; cc 7423 push di ; 57 7424 _int13_harddisk: ; 0xf53e9 LB 0x441 7460 or bl, byte [bx+si+00ah] ; 0a 58 0a 7461 pop ax ; 58 7462 db 00ah 7463 pop ax ; 58 7464 _int13_harddisk: ; 0xf5427 LB 0x441 7425 7465 push bp ; 55 7426 7466 mov bp, sp ; 89 e5 … … 7428 7468 mov dx, strict word 0000eh ; ba 0e 00 7429 7469 mov ax, strict word 00040h ; b8 40 00 7430 call 016 1ch ; e8 24c27470 call 0166ch ; e8 36 c2 7431 7471 mov si, 00122h ; be 22 01 7432 7472 mov word [bp-004h], ax ; 89 46 fc … … 7434 7474 mov dx, 0008eh ; ba 8e 00 7435 7475 mov ax, strict word 00040h ; b8 40 00 7436 call 016 0eh ; e8 05c27476 call 0165eh ; e8 17 c2 7437 7477 mov ax, word [bp+00eh] ; 8b 46 0e 7438 7478 xor ah, ah ; 30 e4 7439 7479 cmp ax, 00080h ; 3d 80 00 7440 jc short 054 18h ; 72 057480 jc short 05456h ; 72 05 7441 7481 cmp ax, 00090h ; 3d 90 00 7442 jc short 054 36h ; 72 1e7482 jc short 05474h ; 72 1e 7443 7483 mov ax, word [bp+00eh] ; 8b 46 0e 7444 7484 xor ah, ah ; 30 e4 … … 7450 7490 push 0066dh ; 68 6d 06 7451 7491 push strict byte 00004h ; 6a 04 7452 call 019 22h ; e8 f2 c47492 call 01972h ; e8 04 c5 7453 7493 add sp, strict byte 0000ah ; 83 c4 0a 7454 jmp near 05 7e7h ; e9 b1 037494 jmp near 05825h ; e9 b1 03 7455 7495 mov ax, word [bp+00eh] ; 8b 46 0e 7456 7496 xor ah, ah ; 30 e4 … … 7461 7501 mov byte [bp-002h], dl ; 88 56 fe 7462 7502 cmp dl, 010h ; 80 fa 10 7463 jc short 054 5fh ; 72 107503 jc short 0549dh ; 72 10 7464 7504 push ax ; 50 7465 7505 mov ax, word [bp+016h] ; 8b 46 16 … … 7468 7508 push 0065eh ; 68 5e 06 7469 7509 push 00698h ; 68 98 06 7470 jmp short 054 2bh ; eb cc7510 jmp short 05469h ; eb cc 7471 7511 mov bx, word [bp+016h] ; 8b 5e 16 7472 7512 shr bx, 008h ; c1 eb 08 7473 7513 cmp bx, strict byte 00018h ; 83 fb 18 7474 jnbe near 05 7cch ; 0f 87 60 037514 jnbe near 0580ah ; 0f 87 60 03 7475 7515 add bx, bx ; 01 db 7476 jmp word [cs:bx+053 b7h] ; 2e ff a7 b7537516 jmp word [cs:bx+053f5h] ; 2e ff a7 f5 53 7477 7517 cmp byte [bp-002h], 008h ; 80 7e fe 08 7478 jnc near 054 82h ; 0f 83 07 007518 jnc near 054c0h ; 0f 83 07 00 7479 7519 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7480 call 01c 21h ; e8 9fc77520 call 01c71h ; e8 b1 c7 7481 7521 mov byte [bp+017h], 000h ; c6 46 17 00 7482 7522 xor bx, bx ; 31 db 7483 7523 mov dx, strict word 00074h ; ba 74 00 7484 7524 mov ax, strict word 00040h ; b8 40 00 7485 call 016 0eh ; e8 7dc17525 call 0165eh ; e8 8f c1 7486 7526 and byte [bp+01ch], 0feh ; 80 66 1c fe 7487 7527 mov sp, bp ; 89 ec … … 7490 7530 mov dx, strict word 00074h ; ba 74 00 7491 7531 mov ax, strict word 00040h ; b8 40 00 7492 call 016 00h ; e8 5ec17532 call 01650h ; e8 70 c1 7493 7533 mov cl, al ; 88 c1 7494 7534 mov dx, word [bp+016h] ; 8b 56 16 … … 7501 7541 mov dx, strict word 00074h ; ba 74 00 7502 7542 mov ax, strict word 00040h ; b8 40 00 7503 call 016 0eh ; e8 4fc17543 call 0165eh ; e8 61 c1 7504 7544 test cl, cl ; 84 c9 7505 je short 054 86h ; 74 c37506 jmp near 058 03h ; e9 3d 037545 je short 054c4h ; 74 c3 7546 jmp near 05841h ; e9 3d 03 7507 7547 mov ax, word [bp+016h] ; 8b 46 16 7508 7548 xor ah, ah ; 30 e4 … … 7524 7564 mov ax, word [bp-00ch] ; 8b 46 f4 7525 7565 cmp ax, 00080h ; 3d 80 00 7526 jnbe short 055 01h ; 77 047566 jnbe short 0553fh ; 77 04 7527 7567 test ax, ax ; 85 c0 7528 jne short 055 24h ; 75 237568 jne short 05562h ; 75 23 7529 7569 mov bx, 00da2h ; bb a2 0d 7530 7570 mov cx, ds ; 8c d9 7531 7571 mov ax, strict word 00004h ; b8 04 00 7532 call 01 8e1h ; e8 d5c37572 call 01931h ; e8 e7 c3 7533 7573 mov ax, word [bp+016h] ; 8b 46 16 7534 7574 shr ax, 008h ; c1 e8 08 … … 7537 7577 push 006cah ; 68 ca 06 7538 7578 push strict byte 00004h ; 6a 04 7539 call 019 22h ; e8 04c47579 call 01972h ; e8 16 c4 7540 7580 add sp, strict byte 00008h ; 83 c4 08 7541 jmp near 05 7e7h ; e9 c3 027581 jmp near 05825h ; e9 c3 02 7542 7582 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7543 7583 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7550 7590 mov word [bp-00ah], dx ; 89 56 f6 7551 7591 cmp di, ax ; 39 c7 7552 jnc short 055 51h ; 73 0c7592 jnc short 0558fh ; 73 0c 7553 7593 cmp cx, word [bp-008h] ; 3b 4e f8 7554 jbe short 055 51h ; 76 077594 jbe short 0558fh ; 76 07 7555 7595 mov ax, word [bp-006h] ; 8b 46 fa 7556 7596 cmp ax, dx ; 39 d0 7557 jbe short 055 7fh ; 76 2e7597 jbe short 055bdh ; 76 2e 7558 7598 mov bx, 00da2h ; bb a2 0d 7559 7599 mov cx, ds ; 8c d9 7560 7600 mov ax, strict word 00004h ; b8 04 00 7561 call 01 8e1h ; e8 85c37601 call 01931h ; e8 97 c3 7562 7602 push dword [bp-008h] ; 66 ff 76 f8 7563 7603 push di ; 57 … … 7571 7611 push 006f2h ; 68 f2 06 7572 7612 push strict byte 00004h ; 6a 04 7573 call 019 22h ; e8 a9c37613 call 01972h ; e8 bb c3 7574 7614 add sp, strict byte 00010h ; 83 c4 10 7575 jmp near 05 7e7h ; e9 68 027615 jmp near 05825h ; e9 68 02 7576 7616 mov ax, word [bp+016h] ; 8b 46 16 7577 7617 shr ax, 008h ; c1 e8 08 7578 7618 cmp ax, strict word 00004h ; 3d 04 00 7579 jne short 055 8dh ; 75 037580 jmp near 054 82h ; e9 f5 fe7619 jne short 055cbh ; 75 03 7620 jmp near 054c0h ; e9 f5 fe 7581 7621 movzx bx, byte [bp-002h] ; 0f b6 5e fe 7582 7622 imul bx, bx, strict byte 00018h ; 6b db 18 … … 7584 7624 add bx, si ; 01 f3 7585 7625 cmp cx, word [es:bx+02ch] ; 26 3b 4f 2c 7586 jne short 055 aeh ; 75 0f7626 jne short 055ech ; 75 0f 7587 7627 mov ax, word [es:bx+030h] ; 26 8b 47 30 7588 7628 cmp ax, word [bp-00ah] ; 3b 46 f6 7589 jne short 055 aeh ; 75 067629 jne short 055ech ; 75 06 7590 7630 cmp byte [bp-002h], 008h ; 80 7e fe 08 7591 jc short 05 5deh ; 72 307631 jc short 0561ch ; 72 30 7592 7632 mov ax, di ; 89 f8 7593 7633 xor dx, dx ; 31 d2 7594 7634 mov bx, cx ; 89 cb 7595 7635 xor cx, cx ; 31 c9 7596 call 094 39h ; e8 803e7636 call 09479h ; e8 82 3e 7597 7637 xor bx, bx ; 31 db 7598 7638 add ax, word [bp-008h] ; 03 46 f8 … … 7600 7640 mov bx, word [bp-00ah] ; 8b 5e f6 7601 7641 xor cx, cx ; 31 c9 7602 call 094 39h ; e8 713e7642 call 09479h ; e8 73 3e 7603 7643 xor bx, bx ; 31 db 7604 7644 add ax, word [bp-006h] ; 03 46 fa … … 7653 7693 mov word [bp+016h], bx ; 89 5e 16 7654 7694 test dl, dl ; 84 d2 7655 je near 054 82h ; 0f 84 13 fe7695 je near 054c0h ; 0f 84 13 fe 7656 7696 mov bx, 00da2h ; bb a2 0d 7657 7697 mov cx, ds ; 8c d9 7658 7698 mov ax, strict word 00004h ; b8 04 00 7659 call 01 8e1h ; e8 67c27699 call 01931h ; e8 79 c2 7660 7700 movzx ax, dl ; 0f b6 c2 7661 7701 push ax ; 50 … … 7666 7706 push 00739h ; 68 39 07 7667 7707 push strict byte 00004h ; 6a 04 7668 call 019 22h ; e8 92c27708 call 01972h ; e8 a4 c2 7669 7709 add sp, strict byte 0000ah ; 83 c4 0a 7670 7710 mov ax, word [bp+016h] ; 8b 46 16 7671 7711 xor ah, ah ; 30 e4 7672 7712 or ah, 00ch ; 80 cc 0c 7673 jmp near 05 7efh ; e9 51 017713 jmp near 0582dh ; e9 51 01 7674 7714 mov bx, 00da2h ; bb a2 0d 7675 7715 mov cx, ds ; 8c d9 7676 7716 mov ax, strict word 00004h ; b8 04 00 7677 call 01 8e1h ; e8 38c27717 call 01931h ; e8 4a c2 7678 7718 push 0075ah ; 68 5a 07 7679 7719 push strict byte 00004h ; 6a 04 7680 call 019 22h ; e8 71c27720 call 01972h ; e8 83 c2 7681 7721 add sp, strict byte 00004h ; 83 c4 04 7682 jmp near 054 82h ; e9 cb fd7722 jmp near 054c0h ; e9 cb fd 7683 7723 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7684 7724 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7723 7763 or dx, ax ; 09 c2 7724 7764 mov word [bp+012h], dx ; 89 56 12 7725 jmp near 054 82h ; e9 55 fd7765 jmp near 054c0h ; e9 55 fd 7726 7766 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7727 7767 cwd ; 99 … … 7739 7779 and AL, strict byte 0c0h ; 24 c0 7740 7780 cmp AL, strict byte 040h ; 3c 40 7741 jne short 057 52h ; 75 037742 jmp near 054 82h ; e9 30 fd7781 jne short 05790h ; 75 03 7782 jmp near 054c0h ; e9 30 fd 7743 7783 mov ax, word [bp+016h] ; 8b 46 16 7744 7784 xor ah, ah ; 30 e4 7745 7785 or ah, 0aah ; 80 cc aa 7746 jmp near 05 7efh ; e9 92 007786 jmp near 0582dh ; e9 92 00 7747 7787 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7748 7788 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7758 7798 mov bx, word [bp-008h] ; 8b 5e f8 7759 7799 xor cx, cx ; 31 c9 7760 call 094 39h ; e8 b23c7800 call 09479h ; e8 b4 3c 7761 7801 mov bx, word [bp-006h] ; 8b 5e fa 7762 7802 xor cx, cx ; 31 c9 7763 call 094 39h ; e8 aa3c7803 call 09479h ; e8 ac 3c 7764 7804 mov word [bp-010h], ax ; 89 46 f0 7765 7805 mov word [bp-00eh], dx ; 89 56 f2 … … 7770 7810 or ah, 003h ; 80 cc 03 7771 7811 mov word [bp+016h], ax ; 89 46 16 7772 jmp near 054 86h ; e9 dd fc7812 jmp near 054c4h ; e9 dd fc 7773 7813 mov bx, 00da2h ; bb a2 0d 7774 7814 mov cx, ds ; 8c d9 7775 7815 mov ax, strict word 00004h ; b8 04 00 7776 call 01 8e1h ; e8 2dc17816 call 01931h ; e8 3f c1 7777 7817 mov ax, word [bp+016h] ; 8b 46 16 7778 7818 shr ax, 008h ; c1 e8 08 … … 7781 7821 push 00774h ; 68 74 07 7782 7822 push strict byte 00004h ; 6a 04 7783 call 019 22h ; e8 5cc17823 call 01972h ; e8 6e c1 7784 7824 add sp, strict byte 00008h ; 83 c4 08 7785 jmp near 054 82h ; e9 b6 fc7825 jmp near 054c0h ; e9 b6 fc 7786 7826 mov bx, 00da2h ; bb a2 0d 7787 7827 mov cx, ds ; 8c d9 7788 7828 mov ax, strict word 00004h ; b8 04 00 7789 call 01 8e1h ; e8 0ac17829 call 01931h ; e8 1c c1 7790 7830 mov ax, word [bp+016h] ; 8b 46 16 7791 7831 shr ax, 008h ; c1 e8 08 … … 7793 7833 push 0065eh ; 68 5e 06 7794 7834 push 007a7h ; 68 a7 07 7795 jmp near 055 19h ; e9 32 fd7835 jmp near 05557h ; e9 32 fd 7796 7836 mov ax, word [bp+016h] ; 8b 46 16 7797 7837 xor ah, ah ; 30 e4 … … 7803 7843 mov dx, strict word 00074h ; ba 74 00 7804 7844 mov ax, strict word 00040h ; b8 40 00 7805 call 016 0eh ; e8 0bbe7845 call 0165eh ; e8 1d be 7806 7846 or byte [bp+01ch], 001h ; 80 4e 1c 01 7807 jmp near 054 95h ; e9 8b fc7808 lds bx, [bx+si-023h] ; c5 58 dd7809 pop ax ; 587810 fstp qword [bx+si-023h] ; dd 58 dd7811 pop ax ; 587812 mov [si+020h], ds ; 8c 5c 207847 jmp near 054d3h ; e9 8b fc 7848 add bx, word [bx+di+01bh] ; 03 59 1b 7849 pop cx ; 59 7850 sbb bx, word [bx+di+01bh] ; 1b 59 1b 7851 pop cx ; 59 7852 retf 05e5ch ; ca 5c 5e 7813 7853 pop dx ; 5a 7814 fstp qword [bx+si+026h] ; dd 58 267854 sbb bx, word [bx+di+064h] ; 1b 59 64 7815 7855 pop dx ; 5a 7816 mov [si-025h], ds ; 8c 5c db 7856 retf 0195ch ; ca 5c 19 7857 pop bp ; 5d 7858 sbb word [di+019h], bx ; 19 5d 19 7859 pop bp ; 5d 7860 sbb word [di-01fh], bx ; 19 5d e1 7817 7861 pop sp ; 5c 7818 fistp dword [si-025h] ; db 5c db 7819 pop sp ; 5c 7820 fistp dword [si-05dh] ; db 5c a3 7821 pop sp ; 5c 7822 fistp dword [si-025h] ; db 5c db 7823 pop sp ; 5c 7824 _int13_harddisk_ext: ; 0xf582a LB 0x4cc 7862 sbb word [di+019h], bx ; 19 5d 19 7863 pop bp ; 5d 7864 _int13_harddisk_ext: ; 0xf5868 LB 0x4cc 7825 7865 push bp ; 55 7826 7866 mov bp, sp ; 89 e5 … … 7828 7868 mov dx, strict word 0000eh ; ba 0e 00 7829 7869 mov ax, strict word 00040h ; b8 40 00 7830 call 016 1ch ; e8 e3bd7870 call 0166ch ; e8 f5 bd 7831 7871 mov word [bp-014h], ax ; 89 46 ec 7832 7872 mov dx, strict word 0000eh ; ba 0e 00 7833 7873 mov ax, strict word 00040h ; b8 40 00 7834 call 016 1ch ; e8 d7bd7874 call 0166ch ; e8 e9 bd 7835 7875 mov si, 00122h ; be 22 01 7836 7876 mov word [bp-026h], ax ; 89 46 da … … 7838 7878 mov dx, 0008eh ; ba 8e 00 7839 7879 mov ax, strict word 00040h ; b8 40 00 7840 call 016 0eh ; e8 b8bd7880 call 0165eh ; e8 ca bd 7841 7881 mov ax, word [bp+00eh] ; 8b 46 0e 7842 7882 xor ah, ah ; 30 e4 7843 7883 cmp ax, 00080h ; 3d 80 00 7844 jc short 058 65h ; 72 057884 jc short 058a3h ; 72 05 7845 7885 cmp ax, 00090h ; 3d 90 00 7846 jc short 058 83h ; 72 1e7886 jc short 058c1h ; 72 1e 7847 7887 mov ax, word [bp+00eh] ; 8b 46 0e 7848 7888 xor ah, ah ; 30 e4 … … 7854 7894 push 0066dh ; 68 6d 06 7855 7895 push strict byte 00004h ; 6a 04 7856 call 019 22h ; e8 a5c07896 call 01972h ; e8 b7 c0 7857 7897 add sp, strict byte 0000ah ; 83 c4 0a 7858 jmp near 05c b9h ; e9 36 047898 jmp near 05cf7h ; e9 36 04 7859 7899 mov ax, word [bp+00eh] ; 8b 46 0e 7860 7900 xor ah, ah ; 30 e4 … … 7864 7904 mov cl, byte [es:bx+0011fh] ; 26 8a 8f 1f 01 7865 7905 cmp cl, 010h ; 80 f9 10 7866 jc short 058 a9h ; 72 107906 jc short 058e7h ; 72 10 7867 7907 push ax ; 50 7868 7908 mov ax, word [bp+016h] ; 8b 46 16 … … 7871 7911 push 007d5h ; 68 d5 07 7872 7912 push 00698h ; 68 98 06 7873 jmp short 058 78h ; eb cf7913 jmp short 058b6h ; eb cf 7874 7914 mov bx, word [bp+016h] ; 8b 5e 16 7875 7915 shr bx, 008h ; c1 eb 08 7876 7916 sub bx, strict byte 00041h ; 83 eb 41 7877 7917 cmp bx, strict byte 0000fh ; 83 fb 0f 7878 jnbe near 05 cdbh ; 0f 87 22 047918 jnbe near 05d19h ; 0f 87 22 04 7879 7919 add bx, bx ; 01 db 7880 7920 mov ax, word [bp+016h] ; 8b 46 16 7881 7921 xor ah, ah ; 30 e4 7882 jmp word [cs:bx+058 0ah] ; 2e ff a7 0a587922 jmp word [cs:bx+05848h] ; 2e ff a7 48 58 7883 7923 mov word [bp+010h], 0aa55h ; c7 46 10 55 aa 7884 7924 mov ax, word [bp+016h] ; 8b 46 16 … … 7887 7927 mov word [bp+016h], ax ; 89 46 16 7888 7928 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 7889 jmp near 05c 90h ; e9 b3 037929 jmp near 05cceh ; e9 b3 03 7890 7930 mov bx, word [bp+00ah] ; 8b 5e 0a 7891 7931 mov es, [bp+004h] ; 8e 46 04 … … 7902 7942 mov ax, word [es:bx+00eh] ; 26 8b 47 0e 7903 7943 or ax, word [bp-00ah] ; 0b 46 f6 7904 je short 059 1eh ; 74 117944 je short 0595ch ; 74 11 7905 7945 mov ax, word [bp+016h] ; 8b 46 16 7906 7946 shr ax, 008h ; c1 e8 08 … … 7909 7949 push 007e8h ; 68 e8 07 7910 7950 push strict byte 00007h ; 6a 07 7911 jmp short 059 68h ; eb 4a7951 jmp short 059a6h ; eb 4a 7912 7952 mov es, [bp-010h] ; 8e 46 f0 7913 7953 mov ax, word [es:di+008h] ; 26 8b 45 08 … … 7921 7961 mov ch, byte [es:bx+01eh] ; 26 8a 6f 1e 7922 7962 cmp ax, word [es:bx+034h] ; 26 3b 47 34 7923 jnbe short 059 4eh ; 77 0b7924 jne short 059 71h ; 75 2c7963 jnbe short 0598ch ; 77 0b 7964 jne short 059afh ; 75 2c 7925 7965 mov dx, word [bp-00ah] ; 8b 56 f6 7926 7966 cmp dx, word [es:bx+032h] ; 26 3b 57 32 7927 jc short 059 71h ; 72 237967 jc short 059afh ; 72 23 7928 7968 mov bx, 00da2h ; bb a2 0d 7929 7969 mov cx, ds ; 8c d9 7930 7970 mov ax, strict word 00004h ; b8 04 00 7931 call 01 8e1h ; e8 88bf7971 call 01931h ; e8 9a bf 7932 7972 mov ax, word [bp+016h] ; 8b 46 16 7933 7973 shr ax, 008h ; c1 e8 08 … … 7936 7976 push 00811h ; 68 11 08 7937 7977 push strict byte 00004h ; 6a 04 7938 call 019 22h ; e8 b7bf7978 call 01972h ; e8 c9 bf 7939 7979 add sp, strict byte 00008h ; 83 c4 08 7940 jmp near 05c b9h ; e9 48 037980 jmp near 05cf7h ; e9 48 03 7941 7981 mov dx, word [bp+016h] ; 8b 56 16 7942 7982 shr dx, 008h ; c1 ea 08 7943 7983 mov word [bp-00ch], dx ; 89 56 f4 7944 7984 cmp dx, strict byte 00044h ; 83 fa 44 7945 je near 05c 8ch ; 0f 84 0b 037985 je near 05ccah ; 0f 84 0b 03 7946 7986 cmp dx, strict byte 00047h ; 83 fa 47 7947 je near 05c 8ch ; 0f 84 04 037987 je near 05ccah ; 0f 84 04 03 7948 7988 mov es, [bp-026h] ; 8e 46 da 7949 7989 db 066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h … … 7977 8017 mov word [es:di+002h], ax ; 26 89 45 02 7978 8018 test dl, dl ; 84 d2 7979 je near 05c 8ch ; 0f 84 97 028019 je near 05ccah ; 0f 84 97 02 7980 8020 mov bx, 00da2h ; bb a2 0d 7981 8021 mov cx, ds ; 8c d9 7982 8022 mov ax, strict word 00004h ; b8 04 00 7983 call 01 8e1h ; e8 e1be8023 call 01931h ; e8 f3 be 7984 8024 movzx ax, dl ; 0f b6 c2 7985 8025 push ax ; 50 … … 7988 8028 push 00739h ; 68 39 07 7989 8029 push strict byte 00004h ; 6a 04 7990 call 019 22h ; e8 10bf8030 call 01972h ; e8 22 bf 7991 8031 add sp, strict byte 0000ah ; 83 c4 0a 7992 8032 mov ax, word [bp+016h] ; 8b 46 16 7993 8033 xor ah, ah ; 30 e4 7994 8034 or ah, 00ch ; 80 cc 0c 7995 jmp near 05c c1h ; e9 a1 028035 jmp near 05cffh ; e9 a1 02 7996 8036 or ah, 0b2h ; 80 cc b2 7997 jmp near 05c c1h ; e9 9b 028037 jmp near 05cffh ; e9 9b 02 7998 8038 mov bx, word [bp+00ah] ; 8b 5e 0a 7999 8039 mov ax, word [bp+004h] ; 8b 46 04 … … 8005 8045 mov word [bp-00eh], ax ; 89 46 f2 8006 8046 cmp ax, strict word 0001ah ; 3d 1a 00 8007 jc near 05c b9h ; 0f 82 76 028008 jc near 05 acah ; 0f 82 83 008047 jc near 05cf7h ; 0f 82 76 02 8048 jc near 05b08h ; 0f 82 83 00 8009 8049 movzx ax, cl ; 0f b6 c1 8010 8050 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 8044 8084 ; mov dword [es:di+014h], strict dword 000000000h ; 66 26 c7 45 14 00 00 00 00 8045 8085 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 8046 jc near 05 bd6h ; 0f 82 04 018086 jc near 05c14h ; 0f 82 04 01 8047 8087 mov es, [bp-004h] ; 8e 46 fc 8048 8088 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 … … 8070 8110 mov al, byte [es:di+023h] ; 26 8a 45 23 8071 8111 test al, al ; 84 c0 8072 jne short 05b 28h ; 75 048112 jne short 05b66h ; 75 04 8073 8113 xor dx, dx ; 31 d2 8074 jmp short 05b 2bh ; eb 038114 jmp short 05b69h ; eb 03 8075 8115 mov dx, strict word 00008h ; ba 08 00 8076 8116 or dl, 010h ; 80 ca 10 … … 8087 8127 or word [bp-008h], dx ; 09 56 f8 8088 8128 cmp AL, strict byte 003h ; 3c 03 8089 jne short 05b 51h ; 75 058129 jne short 05b8fh ; 75 05 8090 8130 mov ax, strict word 00003h ; b8 03 00 8091 jmp short 05b 53h ; eb 028131 jmp short 05b91h ; eb 02 8092 8132 xor ax, ax ; 31 c0 8093 8133 or word [bp-008h], ax ; 09 46 f8 … … 8114 8154 xor ch, ch ; 30 ed 8115 8155 mov byte [bp-002h], ch ; 88 6e fe 8116 jmp short 05b b7h ; eb 068156 jmp short 05bf5h ; eb 06 8117 8157 cmp byte [bp-002h], 00fh ; 80 7e fe 0f 8118 jnc short 05 bcch ; 73 158158 jnc short 05c0ah ; 73 15 8119 8159 movzx dx, byte [bp-002h] ; 0f b6 56 fe 8120 8160 add dx, 00312h ; 81 c2 12 03 8121 8161 mov ax, word [bp-014h] ; 8b 46 ec 8122 call 016 00h ; e8 3bba8162 call 01650h ; e8 4d ba 8123 8163 add ch, al ; 00 c5 8124 8164 inc byte [bp-002h] ; fe 46 fe 8125 jmp short 05b b1h ; eb e58165 jmp short 05befh ; eb e5 8126 8166 neg ch ; f6 dd 8127 8167 mov es, [bp-026h] ; 8e 46 da 8128 8168 mov byte [es:si+001ffh], ch ; 26 88 ac ff 01 8129 8169 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 8130 jc near 05c 8ch ; 0f 82 ae 008170 jc near 05ccah ; 0f 82 ae 00 8131 8171 movzx ax, cl ; 0f b6 c1 8132 8172 cwd ; 99 … … 8146 8186 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 8147 8187 test al, al ; 84 c0 8148 jne short 05c 1eh ; 75 098188 jne short 05c5ch ; 75 09 8149 8189 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 8150 8190 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 … … 8155 8195 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 8156 8196 test al, al ; 84 c0 8157 jne short 05c 4ah ; 75 138197 jne short 05c88h ; 75 13 8158 8198 mov word [es:bx+030h], dx ; 26 89 57 30 8159 8199 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h … … 8170 8210 xor cl, cl ; 30 c9 8171 8211 mov CH, strict byte 01eh ; b5 1e 8172 jmp short 05c 71h ; eb 058212 jmp short 05cafh ; eb 05 8173 8213 cmp ch, 040h ; 80 fd 40 8174 jnc short 05c 83h ; 73 128214 jnc short 05cc1h ; 73 12 8175 8215 movzx dx, ch ; 0f b6 d5 8176 8216 add dx, word [bp+00ah] ; 03 56 0a 8177 8217 mov ax, word [bp+004h] ; 8b 46 04 8178 call 016 00h ; e8 83b98218 call 01650h ; e8 95 b9 8179 8219 add cl, al ; 00 c1 8180 8220 db 0feh, 0c5h 8181 8221 ; inc ch ; fe c5 8182 jmp short 05c 6ch ; eb e98222 jmp short 05caah ; eb e9 8183 8223 neg cl ; f6 d9 8184 8224 mov es, [bp-004h] ; 8e 46 fc … … 8188 8228 mov dx, strict word 00074h ; ba 74 00 8189 8229 mov ax, strict word 00040h ; b8 40 00 8190 call 016 0eh ; e8 73b98230 call 0165eh ; e8 85 b9 8191 8231 and byte [bp+01ch], 0feh ; 80 66 1c fe 8192 8232 mov sp, bp ; 89 ec … … 8194 8234 retn ; c3 8195 8235 cmp ax, strict word 00006h ; 3d 06 00 8196 je short 05c 8ch ; 74 e48236 je short 05ccah ; 74 e4 8197 8237 cmp ax, strict word 00001h ; 3d 01 00 8198 jc short 05c b9h ; 72 0c8199 jbe short 05c 8ch ; 76 dd8238 jc short 05cf7h ; 72 0c 8239 jbe short 05ccah ; 76 dd 8200 8240 cmp ax, strict word 00003h ; 3d 03 00 8201 jc short 05c b9h ; 72 058241 jc short 05cf7h ; 72 05 8202 8242 cmp ax, strict word 00004h ; 3d 04 00 8203 jbe short 05c 8ch ; 76 d38243 jbe short 05ccah ; 76 d3 8204 8244 mov ax, word [bp+016h] ; 8b 46 16 8205 8245 xor ah, ah ; 30 e4 … … 8211 8251 mov dx, strict word 00074h ; ba 74 00 8212 8252 mov ax, strict word 00040h ; b8 40 00 8213 call 016 0eh ; e8 39b98253 call 0165eh ; e8 4b b9 8214 8254 or byte [bp+01ch], 001h ; 80 4e 1c 01 8215 jmp short 05c 9fh ; eb c48255 jmp short 05cddh ; eb c4 8216 8256 mov bx, 00da2h ; bb a2 0d 8217 8257 mov cx, ds ; 8c d9 8218 8258 mov ax, strict word 00004h ; b8 04 00 8219 call 01 8e1h ; e8 fb bb8259 call 01931h ; e8 0d bc 8220 8260 mov ax, word [bp+016h] ; 8b 46 16 8221 8261 shr ax, 008h ; c1 e8 08 … … 8223 8263 push 007d5h ; 68 d5 07 8224 8264 push 007a7h ; 68 a7 07 8225 jmp near 059 66h ; e9 70 fc8226 _int14_function: ; 0xf5 cf6LB 0x1558265 jmp near 059a4h ; e9 70 fc 8266 _int14_function: ; 0xf5d34 LB 0x155 8227 8267 push bp ; 55 8228 8268 mov bp, sp ; 89 e5 … … 8232 8272 add dx, dx ; 01 d2 8233 8273 mov ax, strict word 00040h ; b8 40 00 8234 call 016 1ch ; e8 16b98274 call 0166ch ; e8 28 b9 8235 8275 mov si, ax ; 89 c6 8236 8276 mov bx, ax ; 89 c3 … … 8238 8278 add dx, strict byte 0007ch ; 83 c2 7c 8239 8279 mov ax, strict word 00040h ; b8 40 00 8240 call 016 00h ; e8 eab88280 call 01650h ; e8 fc b8 8241 8281 mov cl, al ; 88 c1 8242 8282 cmp word [bp+00eh], strict byte 00004h ; 83 7e 0e 04 8243 jnc near 05e 41h ; 0f 83 21 018283 jnc near 05e7fh ; 0f 83 21 01 8244 8284 test si, si ; 85 f6 8245 jbe near 05e 41h ; 0f 86 1b 018285 jbe near 05e7fh ; 0f 86 1b 01 8246 8286 mov al, byte [bp+013h] ; 8a 46 13 8247 8287 cmp AL, strict byte 001h ; 3c 01 8248 jc short 05d 3eh ; 72 118249 jbe short 05d 92h ; 76 638288 jc short 05d7ch ; 72 11 8289 jbe short 05dd0h ; 76 63 8250 8290 cmp AL, strict byte 003h ; 3c 03 8251 je near 05e 2ah ; 0f 84 f5 008291 je near 05e68h ; 0f 84 f5 00 8252 8292 cmp AL, strict byte 002h ; 3c 02 8253 je near 05 de0h ; 0f 84 a5 008254 jmp near 05e 3bh ; e9 fd 008293 je near 05e1eh ; 0f 84 a5 00 8294 jmp near 05e79h ; e9 fd 00 8255 8295 test al, al ; 84 c0 8256 jne near 05e 3bh ; 0f 85 f7 008296 jne near 05e79h ; 0f 85 f7 00 8257 8297 lea dx, [bx+003h] ; 8d 57 03 8258 8298 in AL, DX ; ec … … 8286 8326 ; sub ah, ah ; 2a e4 8287 8327 mov byte [bp+012h], al ; 88 46 12 8288 jmp near 05e 1ch ; e9 97 008328 jmp near 05e5ah ; e9 97 00 8289 8329 mov AL, strict byte 017h ; b0 17 8290 8330 mov dx, bx ; 89 da … … 8293 8333 mov AL, strict byte 004h ; b0 04 8294 8334 out DX, AL ; ee 8295 jmp short 05d 67h ; eb d58335 jmp short 05da5h ; eb d5 8296 8336 mov dx, strict word 0006ch ; ba 6c 00 8297 8337 mov ax, strict word 00040h ; b8 40 00 8298 call 016 1ch ; e8 81b88338 call 0166ch ; e8 93 b8 8299 8339 mov si, ax ; 89 c6 8300 8340 lea dx, [bx+005h] ; 8d 57 05 … … 8304 8344 and ax, strict word 00060h ; 25 60 00 8305 8345 cmp ax, strict word 00060h ; 3d 60 00 8306 je short 05 dc2h ; 74 178346 je short 05e00h ; 74 17 8307 8347 test cl, cl ; 84 c9 8308 je short 05 dc2h ; 74 138348 je short 05e00h ; 74 13 8309 8349 mov dx, strict word 0006ch ; ba 6c 00 8310 8350 mov ax, strict word 00040h ; b8 40 00 8311 call 016 1ch ; e8 64b88351 call 0166ch ; e8 76 b8 8312 8352 cmp ax, si ; 39 f0 8313 je short 05d 9dh ; 74 e18353 je short 05ddbh ; 74 e1 8314 8354 mov si, ax ; 89 c6 8315 8355 db 0feh, 0c9h 8316 8356 ; dec cl ; fe c9 8317 jmp short 05d 9dh ; eb db8357 jmp short 05ddbh ; eb db 8318 8358 test cl, cl ; 84 c9 8319 je short 05 dcch ; 74 068359 je short 05e0ah ; 74 06 8320 8360 mov al, byte [bp+012h] ; 8a 46 12 8321 8361 mov dx, bx ; 89 da … … 8327 8367 mov byte [bp+013h], al ; 88 46 13 8328 8368 test cl, cl ; 84 c9 8329 jne short 05e 1ch ; 75 438369 jne short 05e5ah ; 75 43 8330 8370 or AL, strict byte 080h ; 0c 80 8331 8371 mov byte [bp+013h], al ; 88 46 13 8332 jmp short 05e 1ch ; eb 3c8372 jmp short 05e5ah ; eb 3c 8333 8373 mov dx, strict word 0006ch ; ba 6c 00 8334 8374 mov ax, strict word 00040h ; b8 40 00 8335 call 016 1ch ; e8 33b88375 call 0166ch ; e8 45 b8 8336 8376 mov si, ax ; 89 c6 8337 8377 lea dx, [bx+005h] ; 8d 57 05 … … 8340 8380 ; sub ah, ah ; 2a e4 8341 8381 test AL, strict byte 001h ; a8 01 8342 jne short 05e 0ch ; 75 178382 jne short 05e4ah ; 75 17 8343 8383 test cl, cl ; 84 c9 8344 je short 05e 0ch ; 74 138384 je short 05e4ah ; 74 13 8345 8385 mov dx, strict word 0006ch ; ba 6c 00 8346 8386 mov ax, strict word 00040h ; b8 40 00 8347 call 016 1ch ; e8 1ab88387 call 0166ch ; e8 2c b8 8348 8388 cmp ax, si ; 39 f0 8349 je short 05 debh ; 74 e58389 je short 05e29h ; 74 e5 8350 8390 mov si, ax ; 89 c6 8351 8391 db 0feh, 0c9h 8352 8392 ; dec cl ; fe c9 8353 jmp short 05 debh ; eb df8393 jmp short 05e29h ; eb df 8354 8394 test cl, cl ; 84 c9 8355 je short 05e 22h ; 74 128395 je short 05e60h ; 74 12 8356 8396 mov byte [bp+013h], 000h ; c6 46 13 00 8357 8397 mov dx, bx ; 89 da … … 8361 8401 mov byte [bp+012h], al ; 88 46 12 8362 8402 and byte [bp+01ch], 0feh ; 80 66 1c fe 8363 jmp short 05e 45h ; eb 238403 jmp short 05e83h ; eb 23 8364 8404 lea dx, [bx+005h] ; 8d 57 05 8365 8405 in AL, DX ; ec 8366 8406 db 02ah, 0e4h 8367 8407 ; sub ah, ah ; 2a e4 8368 jmp short 05 ddbh ; eb b18408 jmp short 05e19h ; eb b1 8369 8409 lea dx, [si+005h] ; 8d 54 05 8370 8410 in AL, DX ; ec … … 8376 8416 db 02ah, 0e4h 8377 8417 ; sub ah, ah ; 2a e4 8378 jmp short 05e 19h ; eb de8418 jmp short 05e57h ; eb de 8379 8419 or byte [bp+01ch], 001h ; 80 4e 1c 01 8380 jmp short 05e 45h ; eb 048420 jmp short 05e83h ; eb 04 8381 8421 or byte [bp+01ch], 001h ; 80 4e 1c 01 8382 8422 lea sp, [bp-002h] ; 8d 66 fe … … 8384 8424 pop bp ; 5d 8385 8425 retn ; c3 8386 set_enable_a20_: ; 0xf5e 4bLB 0x2c8426 set_enable_a20_: ; 0xf5e89 LB 0x2c 8387 8427 push bp ; 55 8388 8428 mov bp, sp ; 89 e5 … … 8397 8437 mov cl, al ; 88 c1 8398 8438 test bx, bx ; 85 db 8399 je short 05e 64h ; 74 058439 je short 05ea2h ; 74 05 8400 8440 or AL, strict byte 002h ; 0c 02 8401 8441 out DX, AL ; ee 8402 jmp short 05e 67h ; eb 038442 jmp short 05ea5h ; eb 03 8403 8443 and AL, strict byte 0fdh ; 24 fd 8404 8444 out DX, AL ; ee … … 8413 8453 pop bp ; 5d 8414 8454 retn ; c3 8415 set_e820_range_: ; 0xf5e 77LB 0x8c8455 set_e820_range_: ; 0xf5eb5 LB 0x8c 8416 8456 push si ; 56 8417 8457 push bp ; 55 … … 8442 8482 retn 0000ah ; c2 0a 00 8443 8483 in AL, DX ; ec 8444 jmp near 020 aah ; e9 d8 c18484 jmp near 020e8h ; e9 d8 c1 8445 8485 sar byte [bx-06f6fh], 089h ; c0 bf 91 90 89 8446 8486 mov byte [bx+05283h], al ; 88 87 83 52 … … 8448 8488 inc cx ; 41 8449 8489 and AL, strict byte 000h ; 24 00 8450 mov byte [04263h], AL ; a2 63 42 8451 pop di ; 5f 8452 push bp ; 55 8453 pop di ; 5f 8454 jmp far 0f55fh:0f05fh ; ea 5f f0 5f f5 8455 pop di ; 5f 8456 cli ; fa 8457 pop di ; 5f 8458 pushfw ; 9c 8490 loopne 05f82h ; e0 63 8491 sbb byte [bx-06dh], 05fh ; 80 5f 93 5f 8492 sub byte [bx+si+02eh], ah ; 28 60 2e 8459 8493 pushaw ; 60 8460 cmp word [bp+si+05fh], sp ; 39 62 5f8461 db 062h8462 jcxz 05f54h ; e3 5f8463 jcxz 05f56h ; e3 5f8464 sub AL, strict byte 063h ; 2c 638465 push sp ; 548466 arpl word [b x+063h], sp ; 63 67 638467 jbe short 05f62h ; 76 638468 db 0eah8469 pop di ; 5f8470 jnl short 05f66h ; 7d 638471 _int15_function: ; 0xf5f 03LB 0x4cd8494 xor sp, word [bx+si+038h] ; 33 60 38 8495 pushaw ; 60 8496 fisub dword [bx+si+077h] ; da 60 77 8497 bound bx, [di+02162h] ; 62 9d 62 21 8498 pushaw ; 60 8499 and word [bx+si+06ah], sp ; 21 60 6a 8500 arpl word [bp+si-05a9dh], dx ; 63 92 63 a5 8501 arpl word [si+02863h], si ; 63 b4 63 28 8502 pushaw ; 60 8503 db 0bbh 8504 db 063h 8505 _int15_function: ; 0xf5f41 LB 0x4cd 8472 8506 push bp ; 55 8473 8507 mov bp, sp ; 89 e5 … … 8479 8513 shr ax, 008h ; c1 e8 08 8480 8514 cmp ax, 000ech ; 3d ec 00 8481 jnbe near 063 a2h ; 0f 87 8b 048515 jnbe near 063e0h ; 0f 87 8b 04 8482 8516 push CS ; 0e 8483 8517 pop ES ; 07 8484 8518 mov cx, strict word 00012h ; b9 12 00 8485 mov di, 05 eceh ; bf ce 5e8519 mov di, 05f0ch ; bf 0c 5f 8486 8520 repne scasb ; f2 ae 8487 8521 sal cx, 1 ; d1 e1 8488 8522 mov di, cx ; 89 cf 8489 mov si, word [cs:di+05 edfh] ; 2e 8b b5 df 5e8523 mov si, word [cs:di+05f1dh] ; 2e 8b b5 1d 5f 8490 8524 mov ax, word [bp+012h] ; 8b 46 12 8491 8525 xor ah, ah ; 30 e4 … … 8500 8534 xor ah, ah ; 30 e4 8501 8535 cmp ax, 000c0h ; 3d c0 00 8502 jne near 063 a2h ; 0f 85 54 048536 jne near 063e0h ; 0f 85 54 04 8503 8537 or byte [bp+018h], 001h ; 80 4e 18 01 8504 jmp near 063 4bh ; e9 f6 038538 jmp near 06389h ; e9 f6 03 8505 8539 mov dx, ax ; 89 c2 8506 8540 cmp ax, strict word 00001h ; 3d 01 00 8507 jc short 05f 6ah ; 72 0e8508 jbe short 05f 7eh ; 76 208541 jc short 05fa8h ; 72 0e 8542 jbe short 05fbch ; 76 20 8509 8543 cmp ax, strict word 00003h ; 3d 03 00 8510 je short 05f abh ; 74 488544 je short 05fe9h ; 74 48 8511 8545 cmp ax, strict word 00002h ; 3d 02 00 8512 je short 05f 8eh ; 74 268513 jmp short 05f b8h ; eb 4e8546 je short 05fcch ; 74 26 8547 jmp short 05ff6h ; eb 4e 8514 8548 test ax, ax ; 85 c0 8515 jne short 05f b8h ; 75 4a8549 jne short 05ff6h ; 75 4a 8516 8550 xor ax, ax ; 31 c0 8517 call 05e 4bh ; e8 d8 fe8551 call 05e89h ; e8 d8 fe 8518 8552 and byte [bp+018h], 0feh ; 80 66 18 fe 8519 8553 mov byte [bp+013h], 000h ; c6 46 13 00 8520 jmp near 0 5fe3h ; e9 65 008554 jmp near 06021h ; e9 65 00 8521 8555 mov ax, strict word 00001h ; b8 01 00 8522 call 05e 4bh ; e8 c7 fe8556 call 05e89h ; e8 c7 fe 8523 8557 and byte [bp+018h], 0feh ; 80 66 18 fe 8524 8558 mov byte [bp+013h], dh ; 88 76 13 8525 jmp near 0 5fe3h ; e9 55 008559 jmp near 06021h ; e9 55 00 8526 8560 mov dx, 00092h ; ba 92 00 8527 8561 in AL, DX ; ec … … 8535 8569 and byte [bp+018h], 0feh ; 80 66 18 fe 8536 8570 mov byte [bp+013h], ah ; 88 66 13 8537 jmp near 0 5fe3h ; e9 38 008571 jmp near 06021h ; e9 38 00 8538 8572 and byte [bp+018h], 0feh ; 80 66 18 fe 8539 8573 mov byte [bp+013h], ah ; 88 66 13 8540 8574 mov word [bp+00ch], ax ; 89 46 0c 8541 jmp near 0 5fe3h ; e9 2b 008575 jmp near 06021h ; e9 2b 00 8542 8576 mov bx, 00da2h ; bb a2 0d 8543 8577 mov cx, ds ; 8c d9 8544 8578 mov ax, strict word 00004h ; b8 04 00 8545 call 01 8e1h ; e8 1eb98579 call 01931h ; e8 30 b9 8546 8580 mov ax, word [bp+012h] ; 8b 46 12 8547 8581 xor ah, ah ; 30 e4 … … 8549 8583 push 00836h ; 68 36 08 8550 8584 push strict byte 00004h ; 6a 04 8551 call 019 22h ; e8 51b98585 call 01972h ; e8 63 b9 8552 8586 add sp, strict byte 00006h ; 83 c4 06 8553 8587 or byte [bp+018h], 001h ; 80 4e 18 01 … … 8562 8596 retn ; c3 8563 8597 mov word [bp+018h], bx ; 89 5e 18 8564 jmp near 060 96h ; e9 a6 008598 jmp near 060d4h ; e9 a6 00 8565 8599 mov word [bp+018h], bx ; 89 5e 18 8566 jmp short 0 5fe3h ; eb ee8600 jmp short 06021h ; eb ee 8567 8601 mov word [bp+018h], cx ; 89 4e 18 8568 jmp short 0 5fe0h ; eb e68602 jmp short 0601eh ; eb e6 8569 8603 test byte [bp+012h], 0ffh ; f6 46 12 ff 8570 je short 060 6ch ; 74 6c8604 je short 060aah ; 74 6c 8571 8605 mov dx, 000a0h ; ba a0 00 8572 8606 mov ax, strict word 00040h ; b8 40 00 8573 call 016 00h ; e8 f7 b58607 call 01650h ; e8 09 b6 8574 8608 test AL, strict byte 001h ; a8 01 8575 jne near 063 42h ; 0f 85 33 038609 jne near 06380h ; 0f 85 33 03 8576 8610 mov bx, strict word 00001h ; bb 01 00 8577 8611 mov dx, 000a0h ; ba a0 00 8578 8612 mov ax, strict word 00040h ; b8 40 00 8579 call 016 0eh ; e8 f3 b58613 call 0165eh ; e8 05 b6 8580 8614 mov bx, word [bp+014h] ; 8b 5e 14 8581 8615 mov dx, 00098h ; ba 98 00 8582 8616 mov ax, strict word 00040h ; b8 40 00 8583 call 016 2ah ; e8 03b68617 call 0167ah ; e8 15 b6 8584 8618 mov bx, word [bp+00ch] ; 8b 5e 0c 8585 8619 mov dx, 0009ah ; ba 9a 00 8586 8620 mov ax, strict word 00040h ; b8 40 00 8587 call 016 2ah ; e8 f7 b58621 call 0167ah ; e8 09 b6 8588 8622 mov bx, word [bp+00eh] ; 8b 5e 0e 8589 8623 mov dx, 0009ch ; ba 9c 00 8590 8624 mov ax, strict word 00040h ; b8 40 00 8591 call 016 2ah ; e8 ebb58625 call 0167ah ; e8 fd b5 8592 8626 mov bx, word [bp+010h] ; 8b 5e 10 8593 8627 mov dx, 0009eh ; ba 9e 00 8594 8628 mov ax, strict word 00040h ; b8 40 00 8595 call 016 2ah ; e8 dfb58629 call 0167ah ; e8 f1 b5 8596 8630 and byte [bp+018h], 0feh ; 80 66 18 fe 8597 8631 mov dx, 000a1h ; ba a1 00 … … 8602 8636 out DX, AL ; ee 8603 8637 mov ax, strict word 0000bh ; b8 0b 00 8604 call 016 5ch ; e8 fe b58638 call 016ach ; e8 10 b6 8605 8639 or AL, strict byte 040h ; 0c 40 8606 8640 movzx dx, al ; 0f b6 d0 8607 8641 mov ax, strict word 0000bh ; b8 0b 00 8608 call 016 79h ; e8 10b68609 jmp near 0 5fe3h ; e9 77 ff8642 call 016c9h ; e8 22 b6 8643 jmp near 06021h ; e9 77 ff 8610 8644 cmp ax, strict word 00001h ; 3d 01 00 8611 jne short 060 8ah ; 75 198645 jne short 060c8h ; 75 19 8612 8646 xor bx, bx ; 31 db 8613 8647 mov dx, 000a0h ; ba a0 00 8614 8648 mov ax, strict word 00040h ; b8 40 00 8615 call 016 0eh ; e8 92b58649 call 0165eh ; e8 a4 b5 8616 8650 and byte [bp+018h], 0feh ; 80 66 18 fe 8617 8651 mov ax, strict word 0000bh ; b8 0b 00 8618 call 016 5ch ; e8 d6b58652 call 016ach ; e8 e8 b5 8619 8653 and AL, strict byte 0bfh ; 24 bf 8620 jmp short 060 60h ; eb d68654 jmp short 0609eh ; eb d6 8621 8655 mov word [bp+018h], bx ; 89 5e 18 8622 8656 mov ax, dx ; 89 d0 … … 8626 8660 or dx, ax ; 09 c2 8627 8661 mov word [bp+012h], dx ; 89 56 12 8628 jmp near 0 5fe3h ; e9 47 ff8662 jmp near 06021h ; e9 47 ff 8629 8663 cli ; fa 8630 8664 mov ax, strict word 00001h ; b8 01 00 8631 call 05e 4bh ; e8 a8 fd8665 call 05e89h ; e8 a8 fd 8632 8666 mov di, ax ; 89 c7 8633 8667 mov ax, word [bp+014h] ; 8b 46 14 … … 8639 8673 mov byte [bp-006h], dl ; 88 56 fa 8640 8674 cmp cx, ax ; 39 c1 8641 jnc short 06 0c2h ; 73 058675 jnc short 06100h ; 73 05 8642 8676 db 0feh, 0c2h 8643 8677 ; inc dl ; fe c2 … … 8647 8681 mov ax, word [bp+014h] ; 8b 46 14 8648 8682 mov bx, strict word 0002fh ; bb 2f 00 8649 call 016 2ah ; e8 59b58683 call 0167ah ; e8 6b b5 8650 8684 mov dx, word [bp+006h] ; 8b 56 06 8651 8685 add dx, strict byte 0000ah ; 83 c2 0a 8652 8686 mov ax, word [bp+014h] ; 8b 46 14 8653 8687 mov bx, cx ; 89 cb 8654 call 016 2ah ; e8 4bb58688 call 0167ah ; e8 5d b5 8655 8689 movzx bx, byte [bp-006h] ; 0f b6 5e fa 8656 8690 mov dx, word [bp+006h] ; 8b 56 06 8657 8691 add dx, strict byte 0000ch ; 83 c2 0c 8658 8692 mov ax, word [bp+014h] ; 8b 46 14 8659 call 016 0eh ; e8 1fb58693 call 0165eh ; e8 31 b5 8660 8694 mov dx, word [bp+006h] ; 8b 56 06 8661 8695 add dx, strict byte 0000dh ; 83 c2 0d 8662 8696 mov ax, word [bp+014h] ; 8b 46 14 8663 8697 mov bx, 00093h ; bb 93 00 8664 call 016 0eh ; e8 10b58698 call 0165eh ; e8 22 b5 8665 8699 mov dx, word [bp+006h] ; 8b 56 06 8666 8700 add dx, strict byte 0000eh ; 83 c2 0e 8667 8701 mov ax, word [bp+014h] ; 8b 46 14 8668 8702 xor bx, bx ; 31 db 8669 call 016 2ah ; e8 1eb58703 call 0167ah ; e8 30 b5 8670 8704 mov dx, word [bp+006h] ; 8b 56 06 8671 8705 add dx, strict byte 00020h ; 83 c2 20 8672 8706 mov ax, word [bp+014h] ; 8b 46 14 8673 8707 mov bx, strict word 0ffffh ; bb ff ff 8674 call 016 2ah ; e8 0fb58708 call 0167ah ; e8 21 b5 8675 8709 mov dx, word [bp+006h] ; 8b 56 06 8676 8710 add dx, strict byte 00022h ; 83 c2 22 8677 8711 mov ax, word [bp+014h] ; 8b 46 14 8678 8712 xor bx, bx ; 31 db 8679 call 016 2ah ; e8 01b58713 call 0167ah ; e8 13 b5 8680 8714 mov dx, word [bp+006h] ; 8b 56 06 8681 8715 add dx, strict byte 00024h ; 83 c2 24 8682 8716 mov ax, word [bp+014h] ; 8b 46 14 8683 8717 mov bx, strict word 0000fh ; bb 0f 00 8684 call 016 0eh ; e8 d6b48718 call 0165eh ; e8 e8 b4 8685 8719 mov dx, word [bp+006h] ; 8b 56 06 8686 8720 add dx, strict byte 00025h ; 83 c2 25 8687 8721 mov ax, word [bp+014h] ; 8b 46 14 8688 8722 mov bx, 0009bh ; bb 9b 00 8689 call 016 0eh ; e8 c7b48723 call 0165eh ; e8 d9 b4 8690 8724 mov dx, word [bp+006h] ; 8b 56 06 8691 8725 add dx, strict byte 00026h ; 83 c2 26 8692 8726 mov ax, word [bp+014h] ; 8b 46 14 8693 8727 xor bx, bx ; 31 db 8694 call 016 2ah ; e8 d5b48728 call 0167ah ; e8 e7 b4 8695 8729 mov ax, ss ; 8c d0 8696 8730 mov cx, ax ; 89 c1 … … 8702 8736 mov ax, word [bp+014h] ; 8b 46 14 8703 8737 mov bx, strict word 0ffffh ; bb ff ff 8704 call 016 2ah ; e8 b9b48738 call 0167ah ; e8 cb b4 8705 8739 mov dx, word [bp+006h] ; 8b 56 06 8706 8740 add dx, strict byte 0002ah ; 83 c2 2a 8707 8741 mov ax, word [bp+014h] ; 8b 46 14 8708 8742 mov bx, cx ; 89 cb 8709 call 016 2ah ; e8 abb48743 call 0167ah ; e8 bd b4 8710 8744 movzx bx, byte [bp-008h] ; 0f b6 5e f8 8711 8745 mov dx, word [bp+006h] ; 8b 56 06 8712 8746 add dx, strict byte 0002ch ; 83 c2 2c 8713 8747 mov ax, word [bp+014h] ; 8b 46 14 8714 call 016 0eh ; e8 7fb48748 call 0165eh ; e8 91 b4 8715 8749 mov dx, word [bp+006h] ; 8b 56 06 8716 8750 add dx, strict byte 0002dh ; 83 c2 2d 8717 8751 mov ax, word [bp+014h] ; 8b 46 14 8718 8752 mov bx, 00093h ; bb 93 00 8719 call 016 0eh ; e8 70b48753 call 0165eh ; e8 82 b4 8720 8754 mov dx, word [bp+006h] ; 8b 56 06 8721 8755 add dx, strict byte 0002eh ; 83 c2 2e 8722 8756 mov ax, word [bp+014h] ; 8b 46 14 8723 8757 xor bx, bx ; 31 db 8724 call 016 2ah ; e8 7eb48758 call 0167ah ; e8 90 b4 8725 8759 mov si, word [bp+006h] ; 8b 76 06 8726 8760 mov es, [bp+014h] ; 8e 46 14 … … 8733 8767 mov word [00467h], sp ; 89 26 67 04 8734 8768 mov [00469h], ss ; 8c 16 69 04 8735 call 06 1c8h ; e8 00 008769 call 06206h ; e8 00 00 8736 8770 pop di ; 5f 8737 8771 add di, strict byte 0001bh ; 83 c7 1b … … 8756 8790 cld ; fc 8757 8791 rep movsw ; f3 a5 8758 call 06 1fch ; e8 00 008792 call 0623ah ; e8 00 00 8759 8793 pop ax ; 58 8760 8794 push 0f000h ; 68 00 f0 … … 8777 8811 pop DS ; 1f 8778 8812 mov ax, di ; 89 f8 8779 call 05e 4bh ; e8 1e fc8813 call 05e89h ; e8 1e fc 8780 8814 sti ; fb 8781 8815 mov byte [bp+013h], 000h ; c6 46 13 00 8782 8816 and byte [bp+018h], 0feh ; 80 66 18 fe 8783 jmp near 0 5fe3h ; e9 aa fd8817 jmp near 06021h ; e9 aa fd 8784 8818 mov ax, strict word 00031h ; b8 31 00 8785 call 016 5ch ; e8 1db48819 call 016ach ; e8 2f b4 8786 8820 xor ah, ah ; 30 e4 8787 8821 mov dx, ax ; 89 c2 8788 8822 sal dx, 008h ; c1 e2 08 8789 8823 mov ax, strict word 00030h ; b8 30 00 8790 call 016 5ch ; e8 10b48824 call 016ach ; e8 22 b4 8791 8825 xor ah, ah ; 30 e4 8792 8826 or dx, ax ; 09 c2 8793 8827 mov word [bp+012h], dx ; 89 56 12 8794 8828 cmp dx, strict byte 0ffc0h ; 83 fa c0 8795 jbe short 062 32h ; 76 da8829 jbe short 06270h ; 76 da 8796 8830 mov word [bp+012h], strict word 0ffc0h ; c7 46 12 c0 ff 8797 jmp short 062 32h ; eb d38831 jmp short 06270h ; eb d3 8798 8832 cli ; fa 8799 8833 mov ax, strict word 00001h ; b8 01 00 8800 call 05e 4bh ; e8 e5 fb8834 call 05e89h ; e8 e5 fb 8801 8835 mov dx, word [bp+006h] ; 8b 56 06 8802 8836 add dx, strict byte 00038h ; 83 c2 38 8803 8837 mov ax, word [bp+014h] ; 8b 46 14 8804 8838 mov bx, strict word 0ffffh ; bb ff ff 8805 call 016 2ah ; e8 b5b38839 call 0167ah ; e8 c7 b3 8806 8840 mov dx, word [bp+006h] ; 8b 56 06 8807 8841 add dx, strict byte 0003ah ; 83 c2 3a 8808 8842 mov ax, word [bp+014h] ; 8b 46 14 8809 8843 xor bx, bx ; 31 db 8810 call 016 2ah ; e8 a7b38844 call 0167ah ; e8 b9 b3 8811 8845 mov dx, word [bp+006h] ; 8b 56 06 8812 8846 add dx, strict byte 0003ch ; 83 c2 3c 8813 8847 mov ax, word [bp+014h] ; 8b 46 14 8814 8848 mov bx, strict word 0000fh ; bb 0f 00 8815 call 016 0eh ; e8 7cb38849 call 0165eh ; e8 8e b3 8816 8850 mov dx, word [bp+006h] ; 8b 56 06 8817 8851 add dx, strict byte 0003dh ; 83 c2 3d 8818 8852 mov ax, word [bp+014h] ; 8b 46 14 8819 8853 mov bx, 0009bh ; bb 9b 00 8820 call 016 0eh ; e8 6db38854 call 0165eh ; e8 7f b3 8821 8855 mov dx, word [bp+006h] ; 8b 56 06 8822 8856 add dx, strict byte 0003eh ; 83 c2 3e 8823 8857 mov ax, word [bp+014h] ; 8b 46 14 8824 8858 xor bx, bx ; 31 db 8825 call 016 2ah ; e8 7bb38859 call 0167ah ; e8 8d b3 8826 8860 mov AL, strict byte 011h ; b0 11 8827 8861 mov dx, strict word 00020h ; ba 20 00 … … 8853 8887 out DX, AL ; ee 8854 8888 mov si, word [bp+006h] ; 8b 76 06 8855 call 06 2f0h ; e8 00 008889 call 0632eh ; e8 00 00 8856 8890 pop di ; 5f 8857 8891 add di, strict byte 00018h ; 83 c7 18 … … 8881 8915 push cx ; 51 8882 8916 retf ; cb 8883 jmp near 0 5fe3h ; e9 b7 fc8917 jmp near 06021h ; e9 b7 fc 8884 8918 mov bx, 00da2h ; bb a2 0d 8885 8919 mov cx, ds ; 8c d9 8886 8920 mov ax, strict word 00004h ; b8 04 00 8887 call 01 8e1h ; e8 aab58921 call 01931h ; e8 bc b5 8888 8922 push 00876h ; 68 76 08 8889 8923 push strict byte 00004h ; 6a 04 8890 call 019 22h ; e8 e3b58924 call 01972h ; e8 f5 b5 8891 8925 add sp, strict byte 00004h ; 83 c4 04 8892 8926 or byte [bp+018h], 001h ; 80 4e 18 01 … … 8895 8929 or ah, 086h ; 80 cc 86 8896 8930 mov word [bp+012h], ax ; 89 46 12 8897 jmp near 0 5fe3h ; e9 8f fc8931 jmp near 06021h ; e9 8f fc 8898 8932 mov word [bp+018h], cx ; 89 4e 18 8899 8933 mov word [bp+012h], ax ; 89 46 12 8900 8934 mov word [bp+00ch], 0e6f5h ; c7 46 0c f5 e6 8901 8935 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 8902 jmp near 0 5fe3h ; e9 7c fc8936 jmp near 06021h ; e9 7c fc 8903 8937 mov dx, strict word 0000eh ; ba 0e 00 8904 8938 mov ax, strict word 00040h ; b8 40 00 8905 call 016 1ch ; e8 acb28939 call 0166ch ; e8 be b2 8906 8940 mov word [bp+014h], ax ; 89 46 14 8907 jmp near 062 32h ; e9 bc fe8941 jmp near 06270h ; e9 bc fe 8908 8942 push 008a5h ; 68 a5 08 8909 8943 push strict byte 00008h ; 6a 08 8910 jmp short 063 3ch ; eb bf8944 jmp short 0637ah ; eb bf 8911 8945 test byte [bp+012h], 0ffh ; f6 46 12 ff 8912 jne short 063 a2h ; 75 1f8946 jne short 063e0h ; 75 1f 8913 8947 mov word [bp+012h], ax ; 89 46 12 8914 8948 mov ax, word [bp+00ch] ; 8b 46 0c 8915 8949 xor ah, ah ; 30 e4 8916 8950 cmp ax, strict word 00001h ; 3d 01 00 8917 jc short 063 9bh ; 72 0b8951 jc short 063d9h ; 72 0b 8918 8952 cmp ax, strict word 00003h ; 3d 03 00 8919 jnbe short 063 9bh ; 77 068953 jnbe short 063d9h ; 77 06 8920 8954 mov word [bp+018h], cx ; 89 4e 18 8921 jmp near 0 5fe3h ; e9 48 fc8955 jmp near 06021h ; e9 48 fc 8922 8956 or byte [bp+018h], 001h ; 80 4e 18 01 8923 jmp near 0 5fe3h ; e9 41 fc8957 jmp near 06021h ; e9 41 fc 8924 8958 mov bx, 00da2h ; bb a2 0d 8925 8959 mov cx, ds ; 8c d9 8926 8960 mov ax, strict word 00004h ; b8 04 00 8927 call 01 8e1h ; e8 34b58961 call 01931h ; e8 46 b5 8928 8962 push word [bp+00ch] ; ff 76 0c 8929 8963 push word [bp+012h] ; ff 76 12 8930 8964 push 008bch ; 68 bc 08 8931 8965 push strict byte 00004h ; 6a 04 8932 call 019 22h ; e8 67b58966 call 01972h ; e8 79 b5 8933 8967 add sp, strict byte 00008h ; 83 c4 08 8934 jmp short 06342h ; eb 82 8935 jns short 06427h ; 79 65 8936 wait ; 9b 8937 db 065h, 0beh, 065h, 0e0h 8938 ; gs mov si, 0e065h ; 65 be 65 e0 8939 add byte [gs:bp+021h], ah ; 65 00 66 21 8940 pushad ; 66 60 8941 db 066h 8942 db 08ch 8943 db 066h 8944 _int15_function32: ; 0xf63d0 LB 0x37e 8968 jmp short 06380h ; eb 82 8969 mov BH, strict byte 065h ; b7 65 8970 fldenv [di-004h] ; d9 65 fc 8971 db 065h, 01eh 8972 ; gs push DS ; 65 1e 8973 db 066h, 03eh, 066h, 05fh 8974 ; ds pop edi ; 66 3e 66 5f 8975 db 066h, 09eh, 066h, 0cah, 066h 8976 _int15_function32: ; 0xf640e LB 0x37e 8945 8977 push bp ; 55 8946 8978 mov bp, sp ; 89 e5 … … 8954 8986 xor ah, ah ; 30 e4 8955 8987 cmp dx, 000e8h ; 81 fa e8 00 8956 je near 064 9dh ; 0f 84 ad 008988 je near 064dbh ; 0f 84 ad 00 8957 8989 cmp dx, 000d0h ; 81 fa d0 00 8958 je short 064 38h ; 74 428990 je short 06476h ; 74 42 8959 8991 cmp dx, 00086h ; 81 fa 86 00 8960 jne near 067 1eh ; 0f 85 20 038992 jne near 0675ch ; 0f 85 20 03 8961 8993 sti ; fb 8962 8994 mov ax, word [bp+01ch] ; 8b 46 1c … … 8977 9009 db 066h, 00bh, 0c9h 8978 9010 ; or ecx, ecx ; 66 0b c9 8979 je near 064 35h ; 0f 84 0e 009011 je near 06473h ; 0f 84 0e 00 8980 9012 in AL, strict byte 061h ; e4 61 8981 9013 and AL, strict byte 010h ; 24 10 8982 9014 db 03ah, 0c4h 8983 9015 ; cmp al, ah ; 3a c4 8984 je short 064 27h ; 74 f89016 je short 06465h ; 74 f8 8985 9017 db 08ah, 0e0h 8986 9018 ; mov ah, al ; 8a e0 8987 9019 dec ecx ; 66 49 8988 jne short 064 27h ; 75 f28989 jmp near 067 48h ; e9 10 039020 jne short 06465h ; 75 f2 9021 jmp near 06786h ; e9 10 03 8990 9022 cmp ax, strict word 0004fh ; 3d 4f 00 8991 jne near 067 1eh ; 0f 85 df 029023 jne near 0675ch ; 0f 85 df 02 8992 9024 cmp word [bp+016h], 05052h ; 81 7e 16 52 50 8993 jne near 067 1eh ; 0f 85 d6 029025 jne near 0675ch ; 0f 85 d6 02 8994 9026 cmp word [bp+014h], 04f43h ; 81 7e 14 43 4f 8995 jne near 067 1eh ; 0f 85 cd 029027 jne near 0675ch ; 0f 85 cd 02 8996 9028 cmp word [bp+01eh], 04d4fh ; 81 7e 1e 4f 4d 8997 jne near 067 1eh ; 0f 85 c4 029029 jne near 0675ch ; 0f 85 c4 02 8998 9030 cmp word [bp+01ch], 04445h ; 81 7e 1c 45 44 8999 jne near 067 1eh ; 0f 85 bb 029031 jne near 0675ch ; 0f 85 bb 02 9000 9032 mov ax, word [bp+00ah] ; 8b 46 0a 9001 9033 or ax, word [bp+008h] ; 0b 46 08 9002 jne near 067 1eh ; 0f 85 b1 029034 jne near 0675ch ; 0f 85 b1 02 9003 9035 mov ax, word [bp+006h] ; 8b 46 06 9004 9036 or ax, word [bp+004h] ; 0b 46 04 9005 jne near 067 1eh ; 0f 85 a7 029037 jne near 0675ch ; 0f 85 a7 02 9006 9038 mov word [bp+028h], bx ; 89 5e 28 9007 9039 mov ax, word [bp+014h] ; 8b 46 14 … … 9014 9046 mov word [bp+006h], ax ; 89 46 06 9015 9047 mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49 9016 jmp near 067 48h ; e9 ab 029048 jmp near 06786h ; e9 ab 02 9017 9049 cmp ax, strict word 00020h ; 3d 20 00 9018 je short 064 ach ; 74 0a9050 je short 064eah ; 74 0a 9019 9051 cmp ax, strict word 00001h ; 3d 01 00 9020 je near 06 6d3h ; 0f 84 2a 029021 jmp near 067 1eh ; e9 72 029052 je near 06711h ; 0f 84 2a 02 9053 jmp near 0675ch ; e9 72 02 9022 9054 cmp word [bp+01ah], 0534dh ; 81 7e 1a 4d 53 9023 jne near 067 1eh ; 0f 85 69 029055 jne near 0675ch ; 0f 85 69 02 9024 9056 cmp word [bp+018h], 04150h ; 81 7e 18 50 41 9025 jne near 067 1eh ; 0f 85 60 029057 jne near 0675ch ; 0f 85 60 02 9026 9058 mov ax, strict word 00035h ; b8 35 00 9027 call 016 5ch ; e8 98b19059 call 016ach ; e8 aa b1 9028 9060 movzx bx, al ; 0f b6 d8 9029 9061 xor dx, dx ; 31 d2 … … 9031 9063 sal bx, 1 ; d1 e3 9032 9064 rcl dx, 1 ; d1 d2 9033 loop 06 4cch ; e2 fa9065 loop 0650ah ; e2 fa 9034 9066 mov ax, strict word 00034h ; b8 34 00 9035 call 016 5ch ; e8 84b19067 call 016ach ; e8 96 b1 9036 9068 xor ah, ah ; 30 e4 9037 9069 mov dx, bx ; 89 da … … 9041 9073 adc dx, 00100h ; 81 d2 00 01 9042 9074 cmp dx, 00100h ; 81 fa 00 01 9043 jc short 06 4f2h ; 72 069044 jne short 065 1fh ; 75 319075 jc short 06530h ; 72 06 9076 jne short 0655dh ; 75 31 9045 9077 test bx, bx ; 85 db 9046 jnbe short 065 1fh ; 77 2d9078 jnbe short 0655dh ; 77 2d 9047 9079 mov ax, strict word 00031h ; b8 31 00 9048 call 016 5ch ; e8 64b19080 call 016ach ; e8 76 b1 9049 9081 movzx bx, al ; 0f b6 d8 9050 9082 xor dx, dx ; 31 d2 … … 9052 9084 sal bx, 1 ; d1 e3 9053 9085 rcl dx, 1 ; d1 d2 9054 loop 065 00h ; e2 fa9086 loop 0653eh ; e2 fa 9055 9087 mov ax, strict word 00030h ; b8 30 00 9056 call 016 5ch ; e8 50b19088 call 016ach ; e8 62 b1 9057 9089 xor ah, ah ; 30 e4 9058 9090 or bx, ax ; 09 c3 … … 9060 9092 sal bx, 1 ; d1 e3 9061 9093 rcl dx, 1 ; d1 d2 9062 loop 065 13h ; e2 fa9094 loop 06551h ; e2 fa 9063 9095 add bx, strict byte 00000h ; 83 c3 00 9064 9096 adc dx, strict byte 00010h ; 83 d2 10 9065 9097 mov ax, strict word 00062h ; b8 62 00 9066 call 016 5ch ; e8 37b19098 call 016ach ; e8 49 b1 9067 9099 xor ah, ah ; 30 e4 9068 9100 mov word [bp-00ah], ax ; 89 46 f6 … … 9072 9104 sal word [bp-00ah], 1 ; d1 66 f6 9073 9105 rcl word [bp-008h], 1 ; d1 56 f8 9074 loop 065 32h ; e2 f89106 loop 06570h ; e2 f8 9075 9107 mov ax, strict word 00061h ; b8 61 00 9076 call 016 5ch ; e8 1cb19108 call 016ach ; e8 2e b1 9077 9109 xor ah, ah ; 30 e4 9078 9110 or word [bp-00ah], ax ; 09 46 f6 … … 9081 9113 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 9082 9114 mov ax, strict word 00063h ; b8 63 00 9083 call 016 5ch ; e8 06b19115 call 016ach ; e8 18 b1 9084 9116 mov byte [bp-004h], al ; 88 46 fc 9085 9117 mov byte [bp-006h], al ; 88 46 fa 9086 9118 mov ax, word [bp+014h] ; 8b 46 14 9087 9119 cmp ax, strict word 00007h ; 3d 07 00 9088 jnbe near 067 1eh ; 0f 87 b8 019120 jnbe near 0675ch ; 0f 87 b8 01 9089 9121 mov si, ax ; 89 c6 9090 9122 add si, ax ; 01 c6 … … 9093 9125 mov ax, dx ; 89 d0 9094 9126 adc ax, strict word 0ffffh ; 15 ff ff 9095 jmp word [cs:si+063 c0h] ; 2e ff a4 c0639127 jmp word [cs:si+063feh] ; 2e ff a4 fe 63 9096 9128 push strict byte 00001h ; 6a 01 9097 9129 push dword 000000000h ; 66 6a 00 … … 9102 9134 xor bx, bx ; 31 db 9103 9135 xor cx, cx ; 31 c9 9104 call 05e 77h ; e8 e7 f89136 call 05eb5h ; e8 e7 f8 9105 9137 mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00 9106 jmp near 066 bdh ; e9 22 019138 jmp near 066fbh ; e9 22 01 9107 9139 push strict byte 00002h ; 6a 02 9108 9140 push dword 000000000h ; 66 6a 00 … … 9113 9145 mov bx, 0fc00h ; bb 00 fc 9114 9146 mov cx, strict word 00009h ; b9 09 00 9115 call 05e 77h ; e8 c4 f89147 call 05eb5h ; e8 c4 f8 9116 9148 mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00 9117 jmp near 066 bdh ; e9 ff 009149 jmp near 066fbh ; e9 ff 00 9118 9150 push strict byte 00002h ; 6a 02 9119 9151 push dword 000000000h ; 66 6a 00 … … 9124 9156 xor bx, bx ; 31 db 9125 9157 mov cx, strict word 0000fh ; b9 0f 00 9126 call 05e 77h ; e8 a2 f89158 call 05eb5h ; e8 a2 f8 9127 9159 mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00 9128 jmp near 066 bdh ; e9 dd 009160 jmp near 066fbh ; e9 dd 00 9129 9161 push strict byte 00001h ; 6a 01 9130 9162 push dword 000000000h ; 66 6a 00 … … 9135 9167 xor bx, bx ; 31 db 9136 9168 mov cx, strict word 00010h ; b9 10 00 9137 call 05e 77h ; e8 82 f89169 call 05eb5h ; e8 82 f8 9138 9170 mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00 9139 jmp near 066 bdh ; e9 bd 009171 jmp near 066fbh ; e9 bd 00 9140 9172 push strict byte 00003h ; 6a 03 9141 9173 push dword 000000000h ; 66 6a 00 … … 9147 9179 mov cx, ax ; 89 c1 9148 9180 mov ax, si ; 89 f0 9149 call 05e 77h ; e8 61 f89181 call 05eb5h ; e8 61 f8 9150 9182 mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00 9151 jmp near 066 bdh ; e9 9c 009183 jmp near 066fbh ; e9 9c 00 9152 9184 push strict byte 00002h ; 6a 02 9153 9185 push dword 000000000h ; 66 6a 00 … … 9157 9189 xor bx, bx ; 31 db 9158 9190 mov cx, strict word 0fffch ; b9 fc ff 9159 call 05e 77h ; e8 40 f89191 call 05eb5h ; e8 40 f8 9160 9192 cmp byte [bp-004h], 000h ; 80 7e fc 00 9161 jne short 066 44h ; 75 079193 jne short 06682h ; 75 07 9162 9194 mov ax, word [bp-008h] ; 8b 46 f8 9163 9195 test ax, ax ; 85 c0 9164 je short 066 58h ; 74 149196 je short 06696h ; 74 14 9165 9197 mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00 9166 jmp short 066 bdh ; eb 6f9198 jmp short 066fbh ; eb 6f 9167 9199 mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00 9168 jmp short 066 bdh ; eb 659200 jmp short 066fbh ; eb 65 9169 9201 mov word [bp+014h], ax ; 89 46 14 9170 9202 mov word [bp+016h], ax ; 89 46 16 9171 jmp short 066 bdh ; eb 5d9203 jmp short 066fbh ; eb 5d 9172 9204 push strict byte 00002h ; 6a 02 9173 9205 push dword 000000000h ; 66 6a 00 … … 9177 9209 xor bx, bx ; 31 db 9178 9210 xor cx, cx ; 31 c9 9179 call 05e 77h ; e8 02 f89211 call 05eb5h ; e8 02 f8 9180 9212 cmp byte [bp-004h], 000h ; 80 7e fc 00 9181 jne short 066 82h ; 75 079213 jne short 066c0h ; 75 07 9182 9214 mov ax, word [bp-008h] ; 8b 46 f8 9183 9215 test ax, ax ; 85 c0 9184 je short 066 84h ; 74 029185 jmp short 066 44h ; eb c09216 je short 066c2h ; 74 02 9217 jmp short 06682h ; eb c0 9186 9218 mov word [bp+014h], ax ; 89 46 14 9187 9219 mov word [bp+016h], ax ; 89 46 16 9188 jmp short 066 bdh ; eb 319220 jmp short 066fbh ; eb 31 9189 9221 cmp byte [bp-004h], 000h ; 80 7e fc 00 9190 jne short 066 98h ; 75 069222 jne short 066d6h ; 75 06 9191 9223 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 9192 je short 066 bdh ; 74 259224 je short 066fbh ; 74 25 9193 9225 push strict byte 00001h ; 6a 01 9194 9226 mov al, byte [bp-006h] ; 8a 46 fa … … 9203 9235 xor bx, bx ; 31 db 9204 9236 xor cx, cx ; 31 c9 9205 call 05e 77h ; e8 c2 f79237 call 05eb5h ; e8 c2 f7 9206 9238 xor ax, ax ; 31 c0 9207 9239 mov word [bp+014h], ax ; 89 46 14 … … 9210 9242 mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00 9211 9243 and byte [bp+028h], 0feh ; 80 66 28 fe 9212 jmp short 067 48h ; eb 759244 jmp short 06786h ; eb 75 9213 9245 mov word [bp+028h], bx ; 89 5e 28 9214 9246 mov ax, strict word 00031h ; b8 31 00 9215 call 016 5ch ; e8 80af9247 call 016ach ; e8 92 af 9216 9248 movzx dx, al ; 0f b6 d0 9217 9249 sal dx, 008h ; c1 e2 08 9218 9250 mov ax, strict word 00030h ; b8 30 00 9219 call 016 5ch ; e8 74af9251 call 016ach ; e8 86 af 9220 9252 xor ah, ah ; 30 e4 9221 9253 or dx, ax ; 09 c2 9222 9254 mov word [bp+01ch], dx ; 89 56 1c 9223 9255 cmp dx, 03c00h ; 81 fa 00 3c 9224 jbe short 06 6fah ; 76 059256 jbe short 06738h ; 76 05 9225 9257 mov word [bp+01ch], 03c00h ; c7 46 1c 00 3c 9226 9258 mov ax, strict word 00035h ; b8 35 00 9227 call 016 5ch ; e8 5caf9259 call 016ach ; e8 6e af 9228 9260 movzx dx, al ; 0f b6 d0 9229 9261 sal dx, 008h ; c1 e2 08 9230 9262 mov ax, strict word 00034h ; b8 34 00 9231 call 016 5ch ; e8 50af9263 call 016ach ; e8 62 af 9232 9264 xor ah, ah ; 30 e4 9233 9265 or dx, ax ; 09 c2 … … 9236 9268 mov word [bp+020h], ax ; 89 46 20 9237 9269 mov word [bp+014h], dx ; 89 56 14 9238 jmp short 067 48h ; eb 2a9270 jmp short 06786h ; eb 2a 9239 9271 mov bx, 00da2h ; bb a2 0d 9240 9272 mov cx, ds ; 8c d9 9241 9273 mov ax, strict word 00004h ; b8 04 00 9242 call 01 8e1h ; e8 b8b19274 call 01931h ; e8 ca b1 9243 9275 push word [bp+014h] ; ff 76 14 9244 9276 push word [bp+020h] ; ff 76 20 9245 9277 push 008bch ; 68 bc 08 9246 9278 push strict byte 00004h ; 6a 04 9247 call 019 22h ; e8 ebb19279 call 01972h ; e8 fd b1 9248 9280 add sp, strict byte 00008h ; 83 c4 08 9249 9281 or byte [bp+028h], 001h ; 80 4e 28 01 … … 9256 9288 pop bp ; 5d 9257 9289 retn ; c3 9258 _inv_op_handler: ; 0xf67 4eLB 0x1959290 _inv_op_handler: ; 0xf678c LB 0x195 9259 9291 push bp ; 55 9260 9292 mov bp, sp ; 89 e5 … … 9265 9297 les bx, [bp+018h] ; c4 5e 18 9266 9298 cmp byte [es:bx], 0f0h ; 26 80 3f f0 9267 jne short 067 64h ; 75 069299 jne short 067a2h ; 75 06 9268 9300 inc word [bp+018h] ; ff 46 18 9269 jmp near 06 8dch ; e9 78 019301 jmp near 0691ah ; e9 78 01 9270 9302 cmp word [es:bx], 0050fh ; 26 81 3f 0f 05 9271 jne near 06 8d8h ; 0f 85 6b 019303 jne near 06916h ; 0f 85 6b 01 9272 9304 mov si, 00800h ; be 00 08 9273 9305 xor ax, ax ; 31 c0 … … 9297 9329 sal ax, 1 ; d1 e0 9298 9330 rcl dx, 1 ; d1 d2 9299 loop 067 bdh ; e2 fa9331 loop 067fbh ; e2 fa 9300 9332 cmp bx, dx ; 39 d3 9301 jne short 06 7cbh ; 75 049333 jne short 06809h ; 75 04 9302 9334 cmp di, ax ; 39 c7 9303 je short 06 7d0h ; 74 059335 je short 0680eh ; 74 05 9304 9336 mov word [bp-008h], strict word 00001h ; c7 46 f8 01 00 9305 9337 mov es, [bp-006h] ; 8e 46 fa … … 9311 9343 sal ax, 1 ; d1 e0 9312 9344 rcl dx, 1 ; d1 d2 9313 loop 06 7e5h ; e2 fa9345 loop 06823h ; e2 fa 9314 9346 cmp di, dx ; 39 d7 9315 jne short 06 7f3h ; 75 049347 jne short 06831h ; 75 04 9316 9348 cmp bx, ax ; 39 c3 9317 je short 06 7f7h ; 74 049349 je short 06835h ; 74 04 9318 9350 or byte [bp-008h], 002h ; 80 4e f8 02 9319 9351 push strict byte 00000h ; 6a 00 … … 9365 9397 mov ax, strict word 00008h ; b8 08 00 9366 9398 test cx, strict word 00001h ; f7 c1 01 00 9367 je near 068 95h ; 0f 84 02 009399 je near 068d3h ; 0f 84 02 00 9368 9400 mov es, ax ; 8e c0 9369 9401 test cx, strict word 00002h ; f7 c1 02 00 9370 je near 068 bdh ; 0f 84 20 009402 je near 068fbh ; 0f 84 20 00 9371 9403 mov bx, word [word ss:00000h] ; 36 8b 1e 00 00 9372 9404 mov word [word ss:00008h], bx ; 36 89 1e 08 00 … … 9385 9417 mov ss, [word ss:00020h] ; 36 8e 16 20 00 9386 9418 iret ; cf 9387 jmp short 06 8dch ; eb 049419 jmp short 0691ah ; eb 04 9388 9420 sti ; fb 9389 9421 hlt ; f4 9390 jmp short 06 8d9h ; eb fd9422 jmp short 06917h ; eb fd 9391 9423 lea sp, [bp-004h] ; 8d 66 fc 9392 9424 pop di ; 5f … … 9394 9426 pop bp ; 5d 9395 9427 retn ; c3 9396 init_rtc_: ; 0xf6 8e3LB 0x289428 init_rtc_: ; 0xf6921 LB 0x28 9397 9429 push bp ; 55 9398 9430 mov bp, sp ; 89 e5 … … 9400 9432 mov dx, strict word 00026h ; ba 26 00 9401 9433 mov ax, strict word 0000ah ; b8 0a 00 9402 call 016 79h ; e8 89ad9434 call 016c9h ; e8 9b ad 9403 9435 mov dx, strict word 00002h ; ba 02 00 9404 9436 mov ax, strict word 0000bh ; b8 0b 00 9405 call 016 79h ; e8 80ad9437 call 016c9h ; e8 92 ad 9406 9438 mov ax, strict word 0000ch ; b8 0c 00 9407 call 016 5ch ; e8 5dad9439 call 016ach ; e8 6f ad 9408 9440 mov ax, strict word 0000dh ; b8 0d 00 9409 call 016 5ch ; e8 57ad9441 call 016ach ; e8 69 ad 9410 9442 lea sp, [bp-002h] ; 8d 66 fe 9411 9443 pop dx ; 5a 9412 9444 pop bp ; 5d 9413 9445 retn ; c3 9414 rtc_updating_: ; 0xf69 0bLB 0x219446 rtc_updating_: ; 0xf6949 LB 0x21 9415 9447 push bp ; 55 9416 9448 mov bp, sp ; 89 e5 … … 9418 9450 mov dx, 061a8h ; ba a8 61 9419 9451 dec dx ; 4a 9420 je short 069 23h ; 74 0e9452 je short 06961h ; 74 0e 9421 9453 mov ax, strict word 0000ah ; b8 0a 00 9422 call 016 5ch ; e8 41ad9454 call 016ach ; e8 53 ad 9423 9455 test AL, strict byte 080h ; a8 80 9424 jne short 069 12h ; 75 f39456 jne short 06950h ; 75 f3 9425 9457 xor ax, ax ; 31 c0 9426 jmp short 069 26h ; eb 039458 jmp short 06964h ; eb 03 9427 9459 mov ax, strict word 00001h ; b8 01 00 9428 9460 lea sp, [bp-002h] ; 8d 66 fe … … 9430 9462 pop bp ; 5d 9431 9463 retn ; c3 9432 _int70_function: ; 0xf69 2cLB 0xbe9464 _int70_function: ; 0xf696a LB 0xbe 9433 9465 push bp ; 55 9434 9466 mov bp, sp ; 89 e5 … … 9436 9468 push ax ; 50 9437 9469 mov ax, strict word 0000bh ; b8 0b 00 9438 call 016 5ch ; e8 25ad9470 call 016ach ; e8 37 ad 9439 9471 mov dl, al ; 88 c2 9440 9472 mov byte [bp-004h], al ; 88 46 fc 9441 9473 mov ax, strict word 0000ch ; b8 0c 00 9442 call 016 5ch ; e8 1aad9474 call 016ach ; e8 2c ad 9443 9475 mov dh, al ; 88 c6 9444 9476 test dl, 060h ; f6 c2 60 9445 je near 06 9d1h ; 0f 84 86 009477 je near 06a0fh ; 0f 84 86 00 9446 9478 test AL, strict byte 020h ; a8 20 9447 je short 069 53h ; 74 049479 je short 06991h ; 74 04 9448 9480 sti ; fb 9449 9481 int 04ah ; cd 4a 9450 9482 cli ; fa 9451 9483 test dh, 040h ; f6 c6 40 9452 je near 06 9d1h ; 0f 84 77 009484 je near 06a0fh ; 0f 84 77 00 9453 9485 mov dx, 000a0h ; ba a0 00 9454 9486 mov ax, strict word 00040h ; b8 40 00 9455 call 016 00h ; e8 9dac9487 call 01650h ; e8 af ac 9456 9488 test al, al ; 84 c0 9457 je short 06 9d1h ; 74 6a9489 je short 06a0fh ; 74 6a 9458 9490 mov dx, 0009ch ; ba 9c 00 9459 9491 mov ax, strict word 00040h ; b8 40 00 9460 call 016 38h ; e8 c8ac9492 call 01688h ; e8 da ac 9461 9493 test dx, dx ; 85 d2 9462 jne short 069 bdh ; 75 499494 jne short 069fbh ; 75 49 9463 9495 cmp ax, 003d1h ; 3d d1 03 9464 jnc short 069 bdh ; 73 449496 jnc short 069fbh ; 73 44 9465 9497 mov dx, 00098h ; ba 98 00 9466 9498 mov ax, strict word 00040h ; b8 40 00 9467 call 016 1ch ; e8 9aac9499 call 0166ch ; e8 ac ac 9468 9500 mov si, ax ; 89 c6 9469 9501 mov dx, 0009ah ; ba 9a 00 9470 9502 mov ax, strict word 00040h ; b8 40 00 9471 call 016 1ch ; e8 8fac9503 call 0166ch ; e8 a1 ac 9472 9504 mov cx, ax ; 89 c1 9473 9505 xor bx, bx ; 31 db 9474 9506 mov dx, 000a0h ; ba a0 00 9475 9507 mov ax, strict word 00040h ; b8 40 00 9476 call 016 0eh ; e8 74ac9508 call 0165eh ; e8 86 ac 9477 9509 mov al, byte [bp-004h] ; 8a 46 fc 9478 9510 and AL, strict byte 037h ; 24 37 9479 9511 movzx dx, al ; 0f b6 d0 9480 9512 mov ax, strict word 0000bh ; b8 0b 00 9481 call 016 79h ; e8 d1ac9513 call 016c9h ; e8 e3 ac 9482 9514 mov dx, cx ; 89 ca 9483 9515 mov ax, si ; 89 f0 9484 call 016 00h ; e8 51ac9516 call 01650h ; e8 63 ac 9485 9517 or AL, strict byte 080h ; 0c 80 9486 9518 movzx bx, al ; 0f b6 d8 9487 9519 mov dx, cx ; 89 ca 9488 9520 mov ax, si ; 89 f0 9489 call 016 0eh ; e8 53ac9490 jmp short 06 9d1h ; eb 149521 call 0165eh ; e8 65 ac 9522 jmp short 06a0fh ; eb 14 9491 9523 mov bx, ax ; 89 c3 9492 9524 add bx, 0fc2fh ; 81 c3 2f fc … … 9495 9527 mov dx, 0009ch ; ba 9c 00 9496 9528 mov ax, strict word 00040h ; b8 40 00 9497 call 016 4ah ; e8 79ac9498 call 0e03bh ; e8 67769529 call 0169ah ; e8 8b ac 9530 call 0e03bh ; e8 29 76 9499 9531 lea sp, [bp-002h] ; 8d 66 fe 9500 9532 pop si ; 5e 9501 9533 pop bp ; 5d 9502 9534 retn ; c3 9503 a dd word [bp+si+02ah], bp ; 01 6a 2a9504 push strict byte 000 4fh ; 6a 4f9505 push strict byte 0ff8 1h ; 6a 819506 push strict byte 0ff d0h ; 6a d09507 push strict byte 0000 8h ; 6a 089508 imul cx, word [bp+di+06bh], strict byte 0ffa2h ; 6b 4b 6b a29509 db 06bh9510 _int1a_function: ; 0xf6 9eaLB 0x1c89535 aas ; 3f 9536 push strict byte 00068h ; 6a 68 9537 push strict byte 0ff8dh ; 6a 8d 9538 push strict byte 0ffbfh ; 6a bf 9539 push strict byte 0000eh ; 6a 0e 9540 imul ax, word [bp+06bh], strict byte 0ff89h ; 6b 46 6b 89 9541 imul sp, ax, strict byte 0006bh ; 6b e0 6b 9542 _int1a_function: ; 0xf6a28 LB 0x1c8 9511 9543 push bp ; 55 9512 9544 mov bp, sp ; 89 e5 … … 9514 9546 mov al, byte [bp+013h] ; 8a 46 13 9515 9547 cmp AL, strict byte 007h ; 3c 07 9516 jnbe near 06a 26h ; 0f 87 2f 009548 jnbe near 06a64h ; 0f 87 2f 00 9517 9549 movzx bx, al ; 0f b6 d8 9518 9550 add bx, bx ; 01 db 9519 jmp word [cs:bx+06 9dah] ; 2e ff a7 da 699551 jmp word [cs:bx+06a18h] ; 2e ff a7 18 6a 9520 9552 cli ; fa 9521 9553 mov bx, 0046eh ; bb 6e 04 … … 9548 9580 sti ; fb 9549 9581 mov byte [bp+013h], 000h ; c6 46 13 00 9550 jmp short 06a 26h ; eb d79551 call 069 0bh ; e8 b9 fe9582 jmp short 06a64h ; eb d7 9583 call 06949h ; e8 b9 fe 9552 9584 test ax, ax ; 85 c0 9553 je short 06a 58h ; 74 029554 jmp short 06a 26h ; eb ce9585 je short 06a96h ; 74 02 9586 jmp short 06a64h ; eb ce 9555 9587 xor ax, ax ; 31 c0 9556 call 016 5ch ; e8 ff ab9588 call 016ach ; e8 11 ac 9557 9589 mov byte [bp+00fh], al ; 88 46 0f 9558 9590 mov ax, strict word 00002h ; b8 02 00 9559 call 016 5ch ; e8 f6 ab9591 call 016ach ; e8 08 ac 9560 9592 mov byte [bp+010h], al ; 88 46 10 9561 9593 mov ax, strict word 00004h ; b8 04 00 9562 call 016 5ch ; e8 edab9594 call 016ach ; e8 ff ab 9563 9595 mov bl, al ; 88 c3 9564 9596 mov byte [bp+011h], al ; 88 46 11 9565 9597 mov ax, strict word 0000bh ; b8 0b 00 9566 call 016 5ch ; e8 e2ab9598 call 016ach ; e8 f4 ab 9567 9599 and AL, strict byte 001h ; 24 01 9568 9600 mov byte [bp+00eh], al ; 88 46 0e 9569 jmp short 06 ac6h ; eb 459570 call 069 0bh ; e8 87 fe9601 jmp short 06b04h ; eb 45 9602 call 06949h ; e8 87 fe 9571 9603 test ax, ax ; 85 c0 9572 je short 06a 8bh ; 74 039573 call 06 8e3h ; e8 58 fe9604 je short 06ac9h ; 74 03 9605 call 06921h ; e8 58 fe 9574 9606 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9575 9607 xor ax, ax ; 31 c0 9576 call 016 79h ; e8 e5ab9608 call 016c9h ; e8 f7 ab 9577 9609 movzx dx, byte [bp+010h] ; 0f b6 56 10 9578 9610 mov ax, strict word 00002h ; b8 02 00 9579 call 016 79h ; e8 dbab9611 call 016c9h ; e8 ed ab 9580 9612 movzx dx, byte [bp+011h] ; 0f b6 56 11 9581 9613 mov ax, strict word 00004h ; b8 04 00 9582 call 016 79h ; e8 d1ab9614 call 016c9h ; e8 e3 ab 9583 9615 mov ax, strict word 0000bh ; b8 0b 00 9584 call 016 5ch ; e8 aeab9616 call 016ach ; e8 c0 ab 9585 9617 mov bl, al ; 88 c3 9586 9618 and bl, 060h ; 80 e3 60 … … 9591 9623 movzx dx, bl ; 0f b6 d3 9592 9624 mov ax, strict word 0000bh ; b8 0b 00 9593 call 016 79h ; e8 b3ab9625 call 016c9h ; e8 c5 ab 9594 9626 mov byte [bp+013h], 000h ; c6 46 13 00 9595 9627 mov byte [bp+012h], bl ; 88 5e 12 9596 jmp near 06a 26h ; e9 56 ff9628 jmp near 06a64h ; e9 56 ff 9597 9629 mov byte [bp+013h], 000h ; c6 46 13 00 9598 call 069 0bh ; e8 34 fe9630 call 06949h ; e8 34 fe 9599 9631 test ax, ax ; 85 c0 9600 je short 06 adeh ; 74 039601 jmp near 06a 26h ; e9 48 ff9632 je short 06b1ch ; 74 03 9633 jmp near 06a64h ; e9 48 ff 9602 9634 mov ax, strict word 00009h ; b8 09 00 9603 call 016 5ch ; e8 78ab9635 call 016ach ; e8 8a ab 9604 9636 mov byte [bp+010h], al ; 88 46 10 9605 9637 mov ax, strict word 00008h ; b8 08 00 9606 call 016 5ch ; e8 6fab9638 call 016ach ; e8 81 ab 9607 9639 mov byte [bp+00fh], al ; 88 46 0f 9608 9640 mov ax, strict word 00007h ; b8 07 00 9609 call 016 5ch ; e8 66ab9641 call 016ach ; e8 78 ab 9610 9642 mov byte [bp+00eh], al ; 88 46 0e 9611 9643 mov ax, strict word 00032h ; b8 32 00 9612 call 016 5ch ; e8 5dab9644 call 016ach ; e8 6f ab 9613 9645 mov byte [bp+011h], al ; 88 46 11 9614 9646 mov byte [bp+012h], al ; 88 46 12 9615 jmp near 06a 26h ; e9 1e ff9616 call 069 0bh ; e8 00 fe9647 jmp near 06a64h ; e9 1e ff 9648 call 06949h ; e8 00 fe 9617 9649 test ax, ax ; 85 c0 9618 je short 06b 15h ; 74 069619 call 06 8e3h ; e8 d1 fd9620 jmp near 06a 26h ; e9 11 ff9650 je short 06b53h ; 74 06 9651 call 06921h ; e8 d1 fd 9652 jmp near 06a64h ; e9 11 ff 9621 9653 movzx dx, byte [bp+010h] ; 0f b6 56 10 9622 9654 mov ax, strict word 00009h ; b8 09 00 9623 call 016 79h ; e8 5aab9655 call 016c9h ; e8 6c ab 9624 9656 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9625 9657 mov ax, strict word 00008h ; b8 08 00 9626 call 016 79h ; e8 50ab9658 call 016c9h ; e8 62 ab 9627 9659 movzx dx, byte [bp+00eh] ; 0f b6 56 0e 9628 9660 mov ax, strict word 00007h ; b8 07 00 9629 call 016 79h ; e8 46ab9661 call 016c9h ; e8 58 ab 9630 9662 movzx dx, byte [bp+011h] ; 0f b6 56 11 9631 9663 mov ax, strict word 00032h ; b8 32 00 9632 call 016 79h ; e8 3cab9664 call 016c9h ; e8 4e ab 9633 9665 mov ax, strict word 0000bh ; b8 0b 00 9634 call 016 5ch ; e8 19ab9666 call 016ach ; e8 2b ab 9635 9667 mov bl, al ; 88 c3 9636 9668 and bl, 07fh ; 80 e3 7f 9637 jmp near 06a bdh ; e9 72 ff9669 jmp near 06afbh ; e9 72 ff 9638 9670 mov ax, strict word 0000bh ; b8 0b 00 9639 call 016 5ch ; e8 0bab9671 call 016ach ; e8 1d ab 9640 9672 mov bl, al ; 88 c3 9641 9673 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 9642 9674 test AL, strict byte 020h ; a8 20 9643 je short 06b 5fh ; 74 039644 jmp near 06a 26h ; e9 c7 fe9645 call 069 0bh ; e8 a9 fd9675 je short 06b9dh ; 74 03 9676 jmp near 06a64h ; e9 c7 fe 9677 call 06949h ; e8 a9 fd 9646 9678 test ax, ax ; 85 c0 9647 je short 06b 69h ; 74 039648 call 06 8e3h ; e8 7a fd9679 je short 06ba7h ; 74 03 9680 call 06921h ; e8 7a fd 9649 9681 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9650 9682 mov ax, strict word 00001h ; b8 01 00 9651 call 016 79h ; e8 06ab9683 call 016c9h ; e8 18 ab 9652 9684 movzx dx, byte [bp+010h] ; 0f b6 56 10 9653 9685 mov ax, strict word 00003h ; b8 03 00 9654 call 016 79h ; e8 fc aa9686 call 016c9h ; e8 0e ab 9655 9687 movzx dx, byte [bp+011h] ; 0f b6 56 11 9656 9688 mov ax, strict word 00005h ; b8 05 00 9657 call 016 79h ; e8 f2 aa9689 call 016c9h ; e8 04 ab 9658 9690 mov dx, 000a1h ; ba a1 00 9659 9691 in AL, DX ; ec … … 9667 9699 movzx dx, al ; 0f b6 d0 9668 9700 mov ax, strict word 0000bh ; b8 0b 00 9669 call 016 79h ; e8 daaa9670 jmp near 06a 26h ; e9 84 fe9701 call 016c9h ; e8 ec aa 9702 jmp near 06a64h ; e9 84 fe 9671 9703 mov ax, strict word 0000bh ; b8 0b 00 9672 call 016 5ch ; e8 b4aa9704 call 016ach ; e8 c6 aa 9673 9705 mov bl, al ; 88 c3 9674 9706 and AL, strict byte 057h ; 24 57 9675 9707 movzx dx, al ; 0f b6 d0 9676 jmp near 06a c0h ; e9 0e ff9677 send_to_mouse_ctrl_: ; 0xf6b b2LB 0x349708 jmp near 06afeh ; e9 0e ff 9709 send_to_mouse_ctrl_: ; 0xf6bf0 LB 0x34 9678 9710 push bp ; 55 9679 9711 mov bp, sp ; 89 e5 … … 9686 9718 ; sub ah, ah ; 2a e4 9687 9719 test AL, strict byte 002h ; a8 02 9688 je short 06 bd1h ; 74 0e9720 je short 06c0fh ; 74 0e 9689 9721 push 008f6h ; 68 f6 08 9690 9722 push 0116ah ; 68 6a 11 9691 9723 push strict byte 00007h ; 6a 07 9692 call 019 22h ; e8 54ad9724 call 01972h ; e8 66 ad 9693 9725 add sp, strict byte 00006h ; 83 c4 06 9694 9726 mov AL, strict byte 0d4h ; b0 d4 … … 9704 9736 pop bp ; 5d 9705 9737 retn ; c3 9706 get_mouse_data_: ; 0xf6 be6LB 0x3b9738 get_mouse_data_: ; 0xf6c24 LB 0x3b 9707 9739 push bp ; 55 9708 9740 mov bp, sp ; 89 e5 … … 9718 9750 and ax, strict word 00021h ; 25 21 00 9719 9751 cmp ax, strict word 00021h ; 3d 21 00 9720 je short 06c 07h ; 74 079752 je short 06c45h ; 74 07 9721 9753 test cx, cx ; 85 c9 9722 je short 06c 07h ; 74 039754 je short 06c45h ; 74 03 9723 9755 dec cx ; 49 9724 jmp short 06 bf2h ; eb eb9756 jmp short 06c30h ; eb eb 9725 9757 test cx, cx ; 85 c9 9726 jne short 06c 0fh ; 75 049758 jne short 06c4dh ; 75 04 9727 9759 mov AL, strict byte 001h ; b0 01 9728 jmp short 06c 1ah ; eb 0b9760 jmp short 06c58h ; eb 0b 9729 9761 mov dx, strict word 00060h ; ba 60 00 9730 9762 in AL, DX ; ec … … 9738 9770 pop bp ; 5d 9739 9771 retn ; c3 9740 set_kbd_command_byte_: ; 0xf6c 21LB 0x329772 set_kbd_command_byte_: ; 0xf6c5f LB 0x32 9741 9773 push bp ; 55 9742 9774 mov bp, sp ; 89 e5 … … 9749 9781 ; sub ah, ah ; 2a e4 9750 9782 test AL, strict byte 002h ; a8 02 9751 je short 06c 40h ; 74 0e9783 je short 06c7eh ; 74 0e 9752 9784 push 00900h ; 68 00 09 9753 9785 push 0116ah ; 68 6a 11 9754 9786 push strict byte 00007h ; 6a 07 9755 call 019 22h ; e8 e5ac9787 call 01972h ; e8 f7 ac 9756 9788 add sp, strict byte 00006h ; 83 c4 06 9757 9789 mov AL, strict byte 060h ; b0 60 … … 9766 9798 pop bp ; 5d 9767 9799 retn ; c3 9768 _int74_function: ; 0xf6c 53LB 0xca9800 _int74_function: ; 0xf6c91 LB 0xca 9769 9801 push bp ; 55 9770 9802 mov bp, sp ; 89 e5 … … 9772 9804 mov dx, strict word 0000eh ; ba 0e 00 9773 9805 mov ax, strict word 00040h ; b8 40 00 9774 call 016 1ch ; e8 baa99806 call 0166ch ; e8 cc a9 9775 9807 mov cx, ax ; 89 c1 9776 9808 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 9781 9813 and AL, strict byte 021h ; 24 21 9782 9814 cmp AL, strict byte 021h ; 3c 21 9783 jne near 06d 09h ; 0f 85 92 009815 jne near 06d47h ; 0f 85 92 00 9784 9816 mov dx, strict word 00060h ; ba 60 00 9785 9817 in AL, DX ; ec … … 9789 9821 mov dx, strict word 00026h ; ba 26 00 9790 9822 mov ax, cx ; 89 c8 9791 call 016 00h ; e8 79a99823 call 01650h ; e8 8b a9 9792 9824 mov byte [bp-006h], al ; 88 46 fa 9793 9825 mov dx, strict word 00027h ; ba 27 00 9794 9826 mov ax, cx ; 89 c8 9795 call 016 00h ; e8 6ea99827 call 01650h ; e8 80 a9 9796 9828 mov byte [bp-008h], al ; 88 46 f8 9797 9829 test AL, strict byte 080h ; a8 80 9798 je short 06d 09h ; 74 709830 je short 06d47h ; 74 70 9799 9831 mov al, byte [bp-008h] ; 8a 46 f8 9800 9832 and AL, strict byte 007h ; 24 07 … … 9807 9839 add dx, strict byte 00028h ; 83 c2 28 9808 9840 mov ax, cx ; 89 c8 9809 call 016 0eh ; e8 58a99841 call 0165eh ; e8 6a a9 9810 9842 mov al, byte [bp-004h] ; 8a 46 fc 9811 9843 cmp al, byte [bp-002h] ; 3a 46 fe 9812 jc short 06 cfah ; 72 3c9844 jc short 06d38h ; 72 3c 9813 9845 mov dx, strict word 00028h ; ba 28 00 9814 9846 mov ax, cx ; 89 c8 9815 call 016 00h ; e8 3aa99847 call 01650h ; e8 4c a9 9816 9848 xor ah, ah ; 30 e4 9817 9849 mov word [bp+00ch], ax ; 89 46 0c 9818 9850 mov dx, strict word 00029h ; ba 29 00 9819 9851 mov ax, cx ; 89 c8 9820 call 016 00h ; e8 2da99852 call 01650h ; e8 3f a9 9821 9853 xor ah, ah ; 30 e4 9822 9854 mov word [bp+00ah], ax ; 89 46 0a 9823 9855 mov dx, strict word 0002ah ; ba 2a 00 9824 9856 mov ax, cx ; 89 c8 9825 call 016 00h ; e8 20a99857 call 01650h ; e8 32 a9 9826 9858 xor ah, ah ; 30 e4 9827 9859 mov word [bp+008h], ax ; 89 46 08 … … 9830 9862 mov byte [bp-006h], ah ; 88 66 fa 9831 9863 test byte [bp-008h], 080h ; f6 46 f8 80 9832 je short 06 cfdh ; 74 0a9864 je short 06d3bh ; 74 0a 9833 9865 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 9834 jmp short 06 cfdh ; eb 039866 jmp short 06d3bh ; eb 03 9835 9867 inc byte [bp-006h] ; fe 46 fa 9836 9868 movzx bx, byte [bp-006h] ; 0f b6 5e fa 9837 9869 mov dx, strict word 00026h ; ba 26 00 9838 9870 mov ax, cx ; 89 c8 9839 call 016 0eh ; e8 05a99871 call 0165eh ; e8 17 a9 9840 9872 mov sp, bp ; 89 ec 9841 9873 pop bp ; 5d 9842 9874 retn ; c3 9843 popaw ; 619875 lahf ; 9f 9844 9876 insw ; 6d 9845 xlatb ; d7 9846 insw ; 6d 9847 pop dx ; 5a 9877 adc ax, 0986eh ; 15 6e 98 9848 9878 outsb ; 6e 9849 jmp short 06d83h ; eb 6e 9850 pop cx ; 59 9879 sub word [bx-069h], bp ; 29 6f 97 9851 9880 outsw ; 6f 9852 lodsw ; ad 9853 insw ; 6d 9854 db 081h 9855 outsw ; 6f 9856 inc si ; 46 9881 jmp short 06dc4h ; eb 6d 9882 mov di, 0846fh ; bf 6f 84 9857 9883 db 070h 9858 _int15_function_mouse: ; 0xf6d 1dLB 0x38b9884 _int15_function_mouse: ; 0xf6d5b LB 0x38b 9859 9885 push bp ; 55 9860 9886 mov bp, sp ; 89 e5 … … 9863 9889 mov dx, strict word 0000eh ; ba 0e 00 9864 9890 mov ax, strict word 00040h ; b8 40 00 9865 call 016 1ch ; e8 ef a89891 call 0166ch ; e8 01 a9 9866 9892 mov cx, ax ; 89 c1 9867 9893 cmp byte [bp+012h], 007h ; 80 7e 12 07 9868 jbe short 06d 40h ; 76 0b9894 jbe short 06d7eh ; 76 0b 9869 9895 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9870 9896 mov byte [bp+013h], 001h ; c6 46 13 01 9871 jmp near 070 a2h ; e9 62 039897 jmp near 070e0h ; e9 62 03 9872 9898 mov ax, strict word 00065h ; b8 65 00 9873 call 06c 21h ; e8 db fe9899 call 06c5fh ; e8 db fe 9874 9900 and word [bp+018h], strict byte 0fffeh ; 83 66 18 fe 9875 9901 mov byte [bp+013h], 000h ; c6 46 13 00 9876 9902 mov al, byte [bp+012h] ; 8a 46 12 9877 9903 cmp AL, strict byte 007h ; 3c 07 9878 jnbe near 070 89h ; 0f 87 32 039904 jnbe near 070c7h ; 0f 87 32 03 9879 9905 movzx si, al ; 0f b6 f0 9880 9906 add si, si ; 01 f6 9881 jmp word [cs:si+06d 0dh] ; 2e ff a4 0d6d9907 jmp word [cs:si+06d4bh] ; 2e ff a4 4b 6d 9882 9908 cmp byte [bp+00dh], 001h ; 80 7e 0d 01 9883 jnbe near 070 94h ; 0f 87 2b 039909 jnbe near 070d2h ; 0f 87 2b 03 9884 9910 mov dx, strict word 00027h ; ba 27 00 9885 9911 mov ax, cx ; 89 c8 9886 call 016 00h ; e8 8fa89912 call 01650h ; e8 a1 a8 9887 9913 test AL, strict byte 080h ; a8 80 9888 jne short 06d 80h ; 75 0b9914 jne short 06dbeh ; 75 0b 9889 9915 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9890 9916 mov byte [bp+013h], 005h ; c6 46 13 05 9891 jmp near 070 9ch ; e9 1c 039917 jmp near 070dah ; e9 1c 03 9892 9918 cmp byte [bp+00dh], 000h ; 80 7e 0d 00 9893 9919 db 00fh, 094h, 0c0h … … 9895 9921 add AL, strict byte 0f4h ; 04 f4 9896 9922 xor ah, ah ; 30 e4 9897 call 06b b2h ; e8 24 fe9923 call 06bf0h ; e8 24 fe 9898 9924 test al, al ; 84 c0 9899 jne near 070 22h ; 0f 85 8e 029925 jne near 07060h ; 0f 85 8e 02 9900 9926 mov dx, ss ; 8c d2 9901 9927 lea ax, [bp-008h] ; 8d 46 f8 9902 call 06 be6h ; e8 4a fe9928 call 06c24h ; e8 4a fe 9903 9929 test al, al ; 84 c0 9904 je near 070 9ch ; 0f 84 fa 029930 je near 070dah ; 0f 84 fa 02 9905 9931 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 9906 jne near 070 22h ; 0f 85 78 029907 jmp near 070 9ch ; e9 ef 029932 jne near 07060h ; 0f 85 78 02 9933 jmp near 070dah ; e9 ef 02 9908 9934 mov al, byte [bp+00dh] ; 8a 46 0d 9909 9935 cmp AL, strict byte 001h ; 3c 01 9910 jc short 06d b8h ; 72 049936 jc short 06df6h ; 72 04 9911 9937 cmp AL, strict byte 008h ; 3c 08 9912 jbe short 06d bbh ; 76 039913 jmp near 06f 4eh ; e9 93 019938 jbe short 06df9h ; 76 03 9939 jmp near 06f8ch ; e9 93 01 9914 9940 mov dx, strict word 00027h ; ba 27 00 9915 9941 mov ax, cx ; 89 c8 9916 call 016 00h ; e8 3da89942 call 01650h ; e8 4f a8 9917 9943 mov ah, byte [bp+00dh] ; 8a 66 0d 9918 9944 db 0feh, 0cch … … 9923 9949 mov dx, strict word 00027h ; ba 27 00 9924 9950 mov ax, cx ; 89 c8 9925 call 016 0eh ; e8 37a89951 call 0165eh ; e8 49 a8 9926 9952 mov dx, strict word 00026h ; ba 26 00 9927 9953 mov ax, cx ; 89 c8 9928 call 016 00h ; e8 21a89954 call 01650h ; e8 33 a8 9929 9955 and AL, strict byte 0f8h ; 24 f8 9930 9956 movzx bx, al ; 0f b6 d8 9931 9957 mov dx, strict word 00026h ; ba 26 00 9932 9958 mov ax, cx ; 89 c8 9933 call 016 0eh ; e8 22a89959 call 0165eh ; e8 34 a8 9934 9960 mov ax, 000ffh ; b8 ff 00 9935 call 06b b2h ; e8 c0 fd9961 call 06bf0h ; e8 c0 fd 9936 9962 test al, al ; 84 c0 9937 jne near 070 22h ; 0f 85 2a 029963 jne near 07060h ; 0f 85 2a 02 9938 9964 mov dx, ss ; 8c d2 9939 9965 lea ax, [bp-004h] ; 8d 46 fc 9940 call 06 be6h ; e8 e6 fd9966 call 06c24h ; e8 e6 fd 9941 9967 mov cl, al ; 88 c1 9942 9968 cmp byte [bp-004h], 0feh ; 80 7e fc fe 9943 jne short 06e 13h ; 75 0b9969 jne short 06e51h ; 75 0b 9944 9970 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9945 9971 mov byte [bp+013h], 004h ; c6 46 13 04 9946 jmp near 070 9ch ; e9 89 029972 jmp near 070dah ; e9 89 02 9947 9973 cmp byte [bp-004h], 0fah ; 80 7e fc fa 9948 je short 06e 29h ; 74 109974 je short 06e67h ; 74 10 9949 9975 movzx ax, byte [bp-004h] ; 0f b6 46 fc 9950 9976 push ax ; 50 9951 9977 push 0090bh ; 68 0b 09 9952 9978 push strict byte 00007h ; 6a 07 9953 call 019 22h ; e8 fc aa9979 call 01972h ; e8 0e ab 9954 9980 add sp, strict byte 00006h ; 83 c4 06 9955 9981 test cl, cl ; 84 c9 9956 jne near 070 22h ; 0f 85 f3 019982 jne near 07060h ; 0f 85 f3 01 9957 9983 mov dx, ss ; 8c d2 9958 9984 lea ax, [bp-008h] ; 8d 46 f8 9959 call 06 be6h ; e8 af fd9985 call 06c24h ; e8 af fd 9960 9986 test al, al ; 84 c0 9961 jne near 070 22h ; 0f 85 e5 019987 jne near 07060h ; 0f 85 e5 01 9962 9988 mov dx, ss ; 8c d2 9963 9989 lea ax, [bp-006h] ; 8d 46 fa 9964 call 06 be6h ; e8 a1 fd9990 call 06c24h ; e8 a1 fd 9965 9991 test al, al ; 84 c0 9966 jne near 070 22h ; 0f 85 d7 019992 jne near 07060h ; 0f 85 d7 01 9967 9993 mov al, byte [bp-008h] ; 8a 46 f8 9968 9994 mov byte [bp+00ch], al ; 88 46 0c 9969 9995 mov al, byte [bp-006h] ; 8a 46 fa 9970 9996 mov byte [bp+00dh], al ; 88 46 0d 9971 jmp near 070 9ch ; e9 42 029997 jmp near 070dah ; e9 42 02 9972 9998 mov al, byte [bp+00dh] ; 8a 46 0d 9973 9999 cmp AL, strict byte 003h ; 3c 03 9974 jc short 06e 71h ; 72 109975 jbe short 06e 8fh ; 76 2c10000 jc short 06eafh ; 72 10 10001 jbe short 06ecdh ; 76 2c 9976 10002 cmp AL, strict byte 006h ; 3c 06 9977 je short 06e a1h ; 74 3a10003 je short 06edfh ; 74 3a 9978 10004 cmp AL, strict byte 005h ; 3c 05 9979 je short 06e 9bh ; 74 3010005 je short 06ed9h ; 74 30 9980 10006 cmp AL, strict byte 004h ; 3c 04 9981 je short 06e 95h ; 74 269982 jmp short 06e a7h ; eb 3610007 je short 06ed3h ; 74 26 10008 jmp short 06ee5h ; eb 36 9983 10009 cmp AL, strict byte 002h ; 3c 02 9984 je short 06e 89h ; 74 1410010 je short 06ec7h ; 74 14 9985 10011 cmp AL, strict byte 001h ; 3c 01 9986 je short 06e 83h ; 74 0a10012 je short 06ec1h ; 74 0a 9987 10013 test al, al ; 84 c0 9988 jne short 06e a7h ; 75 2a10014 jne short 06ee5h ; 75 2a 9989 10015 mov byte [bp-008h], 00ah ; c6 46 f8 0a 9990 jmp short 06e abh ; eb 2810016 jmp short 06ee9h ; eb 28 9991 10017 mov byte [bp-008h], 014h ; c6 46 f8 14 9992 jmp short 06e abh ; eb 2210018 jmp short 06ee9h ; eb 22 9993 10019 mov byte [bp-008h], 028h ; c6 46 f8 28 9994 jmp short 06e abh ; eb 1c10020 jmp short 06ee9h ; eb 1c 9995 10021 mov byte [bp-008h], 03ch ; c6 46 f8 3c 9996 jmp short 06e abh ; eb 1610022 jmp short 06ee9h ; eb 16 9997 10023 mov byte [bp-008h], 050h ; c6 46 f8 50 9998 jmp short 06e abh ; eb 1010024 jmp short 06ee9h ; eb 10 9999 10025 mov byte [bp-008h], 064h ; c6 46 f8 64 10000 jmp short 06e abh ; eb 0a10026 jmp short 06ee9h ; eb 0a 10001 10027 mov byte [bp-008h], 0c8h ; c6 46 f8 c8 10002 jmp short 06e abh ; eb 0410028 jmp short 06ee9h ; eb 04 10003 10029 mov byte [bp-008h], 000h ; c6 46 f8 00 10004 10030 cmp byte [bp-008h], 000h ; 80 7e f8 00 10005 jbe short 06 ee0h ; 76 2f10031 jbe short 06f1eh ; 76 2f 10006 10032 mov ax, 000f3h ; b8 f3 00 10007 call 06b b2h ; e8 fb fc10033 call 06bf0h ; e8 fb fc 10008 10034 test al, al ; 84 c0 10009 jne short 06 ed5h ; 75 1a10035 jne short 06f13h ; 75 1a 10010 10036 mov dx, ss ; 8c d2 10011 10037 lea ax, [bp-006h] ; 8d 46 fa 10012 call 06 be6h ; e8 23 fd10038 call 06c24h ; e8 23 fd 10013 10039 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10014 call 06b b2h ; e8 e8 fc10040 call 06bf0h ; e8 e8 fc 10015 10041 mov dx, ss ; 8c d2 10016 10042 lea ax, [bp-006h] ; 8d 46 fa 10017 call 06 be6h ; e8 14 fd10018 jmp near 070 9ch ; e9 c7 0110043 call 06c24h ; e8 14 fd 10044 jmp near 070dah ; e9 c7 01 10019 10045 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10020 10046 mov byte [bp+013h], 003h ; c6 46 13 03 10021 jmp near 070 9ch ; e9 bc 0110047 jmp near 070dah ; e9 bc 01 10022 10048 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10023 10049 mov byte [bp+013h], 002h ; c6 46 13 02 10024 jmp near 070 9ch ; e9 b1 0110050 jmp near 070dah ; e9 b1 01 10025 10051 cmp byte [bp+00dh], 004h ; 80 7e 0d 04 10026 jnc short 06f 4eh ; 73 5d10052 jnc short 06f8ch ; 73 5d 10027 10053 mov ax, 000e8h ; b8 e8 00 10028 call 06b b2h ; e8 bb fc10054 call 06bf0h ; e8 bb fc 10029 10055 test al, al ; 84 c0 10030 jne short 06f 43h ; 75 4810056 jne short 06f81h ; 75 48 10031 10057 mov dx, ss ; 8c d2 10032 10058 lea ax, [bp-008h] ; 8d 46 f8 10033 call 06 be6h ; e8 e3 fc10059 call 06c24h ; e8 e3 fc 10034 10060 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10035 je short 06f 19h ; 74 1010061 je short 06f57h ; 74 10 10036 10062 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10037 10063 push ax ; 50 10038 10064 push 00936h ; 68 36 09 10039 10065 push strict byte 00007h ; 6a 07 10040 call 019 22h ; e8 0caa10066 call 01972h ; e8 1e aa 10041 10067 add sp, strict byte 00006h ; 83 c4 06 10042 10068 movzx ax, byte [bp+00dh] ; 0f b6 46 0d 10043 call 06b b2h ; e8 92 fc10069 call 06bf0h ; e8 92 fc 10044 10070 mov dx, ss ; 8c d2 10045 10071 lea ax, [bp-008h] ; 8d 46 f8 10046 call 06 be6h ; e8 be fc10072 call 06c24h ; e8 be fc 10047 10073 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10048 je near 070 9ch ; 0f 84 6c 0110074 je near 070dah ; 0f 84 6c 01 10049 10075 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10050 10076 push ax ; 50 10051 10077 push 00936h ; 68 36 09 10052 10078 push strict byte 00007h ; 6a 07 10053 call 019 22h ; e8 e5a910079 call 01972h ; e8 f7 a9 10054 10080 add sp, strict byte 00006h ; 83 c4 06 10055 jmp near 070 9ch ; e9 59 0110081 jmp near 070dah ; e9 59 01 10056 10082 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10057 10083 mov byte [bp+013h], 003h ; c6 46 13 03 10058 jmp near 070 9ch ; e9 4e 0110084 jmp near 070dah ; e9 4e 01 10059 10085 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10060 10086 mov byte [bp+013h], 002h ; c6 46 13 02 10061 jmp near 070 9ch ; e9 43 0110087 jmp near 070dah ; e9 43 01 10062 10088 mov ax, 000f2h ; b8 f2 00 10063 call 06b b2h ; e8 53 fc10089 call 06bf0h ; e8 53 fc 10064 10090 test al, al ; 84 c0 10065 jne short 06f 76h ; 75 1310091 jne short 06fb4h ; 75 13 10066 10092 mov dx, ss ; 8c d2 10067 10093 lea ax, [bp-008h] ; 8d 46 f8 10068 call 06 be6h ; e8 7b fc10094 call 06c24h ; e8 7b fc 10069 10095 mov dx, ss ; 8c d2 10070 10096 lea ax, [bp-006h] ; 8d 46 fa 10071 call 06 be6h ; e8 73 fc10072 jmp near 06e 51h ; e9 db fe10097 call 06c24h ; e8 73 fc 10098 jmp near 06e8fh ; e9 db fe 10073 10099 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10074 10100 mov byte [bp+013h], 003h ; c6 46 13 03 10075 jmp near 070 9ch ; e9 1b 0110101 jmp near 070dah ; e9 1b 01 10076 10102 mov al, byte [bp+00dh] ; 8a 46 0d 10077 10103 test al, al ; 84 c0 10078 jbe short 06f 8fh ; 76 0710104 jbe short 06fcdh ; 76 07 10079 10105 cmp AL, strict byte 002h ; 3c 02 10080 jbe short 0 6ff8h ; 76 6c10081 jmp near 070 2ch ; e9 9d 0010106 jbe short 07036h ; 76 6c 10107 jmp near 0706ah ; e9 9d 00 10082 10108 mov ax, 000e9h ; b8 e9 00 10083 call 06b b2h ; e8 1d fc10109 call 06bf0h ; e8 1d fc 10084 10110 test al, al ; 84 c0 10085 jne near 070 22h ; 0f 85 87 0010111 jne near 07060h ; 0f 85 87 00 10086 10112 mov dx, ss ; 8c d2 10087 10113 lea ax, [bp-008h] ; 8d 46 f8 10088 call 06 be6h ; e8 43 fc10114 call 06c24h ; e8 43 fc 10089 10115 mov cl, al ; 88 c1 10090 10116 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10091 je short 06f bbh ; 74 1010117 je short 06ff9h ; 74 10 10092 10118 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10093 10119 push ax ; 50 10094 10120 push 00936h ; 68 36 09 10095 10121 push strict byte 00007h ; 6a 07 10096 call 019 22h ; e8 6aa910122 call 01972h ; e8 7c a9 10097 10123 add sp, strict byte 00006h ; 83 c4 06 10098 10124 test cl, cl ; 84 c9 10099 jne short 070 22h ; 75 6310125 jne short 07060h ; 75 63 10100 10126 mov dx, ss ; 8c d2 10101 10127 lea ax, [bp-008h] ; 8d 46 f8 10102 call 06 be6h ; e8 1f fc10128 call 06c24h ; e8 1f fc 10103 10129 test al, al ; 84 c0 10104 jne short 070 22h ; 75 5710130 jne short 07060h ; 75 57 10105 10131 mov dx, ss ; 8c d2 10106 10132 lea ax, [bp-006h] ; 8d 46 fa 10107 call 06 be6h ; e8 13 fc10133 call 06c24h ; e8 13 fc 10108 10134 test al, al ; 84 c0 10109 jne short 070 22h ; 75 4b10135 jne short 07060h ; 75 4b 10110 10136 mov dx, ss ; 8c d2 10111 10137 lea ax, [bp-004h] ; 8d 46 fc 10112 call 06 be6h ; e8 07 fc10138 call 06c24h ; e8 07 fc 10113 10139 test al, al ; 84 c0 10114 jne short 070 22h ; 75 3f10140 jne short 07060h ; 75 3f 10115 10141 mov al, byte [bp-008h] ; 8a 46 f8 10116 10142 mov byte [bp+00ch], al ; 88 46 0c … … 10119 10145 mov al, byte [bp-004h] ; 8a 46 fc 10120 10146 mov byte [bp+00eh], al ; 88 46 0e 10121 jmp near 070 9ch ; e9 a4 0010147 jmp near 070dah ; e9 a4 00 10122 10148 cmp AL, strict byte 001h ; 3c 01 10123 jne short 070 01h ; 75 0510149 jne short 0703fh ; 75 05 10124 10150 mov ax, 000e6h ; b8 e6 00 10125 jmp short 070 04h ; eb 0310151 jmp short 07042h ; eb 03 10126 10152 mov ax, 000e7h ; b8 e7 00 10127 call 06b b2h ; e8 ab fb10153 call 06bf0h ; e8 ab fb 10128 10154 mov cl, al ; 88 c1 10129 10155 test cl, cl ; 84 c9 10130 jne short 070 1ch ; 75 0f10156 jne short 0705ah ; 75 0f 10131 10157 mov dx, ss ; 8c d2 10132 10158 lea ax, [bp-008h] ; 8d 46 f8 10133 call 06 be6h ; e8 d1 fb10159 call 06c24h ; e8 d1 fb 10134 10160 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10135 10161 db 00fh, 095h, 0c1h 10136 10162 ; setne cl ; 0f 95 c1 10137 10163 test cl, cl ; 84 c9 10138 je near 070 9ch ; 0f 84 7a 0010164 je near 070dah ; 0f 84 7a 00 10139 10165 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10140 10166 mov byte [bp+013h], 003h ; c6 46 13 03 10141 jmp short 070 9ch ; eb 7010167 jmp short 070dah ; eb 70 10142 10168 movzx ax, byte [bp+00dh] ; 0f b6 46 0d 10143 10169 push ax ; 50 10144 10170 push 00962h ; 68 62 09 10145 10171 push strict byte 00007h ; 6a 07 10146 call 019 22h ; e8 e9a810172 call 01972h ; e8 fb a8 10147 10173 add sp, strict byte 00006h ; 83 c4 06 10148 10174 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10149 10175 mov byte [bp+013h], 001h ; c6 46 13 01 10150 jmp short 070 9ch ; eb 5610176 jmp short 070dah ; eb 56 10151 10177 mov si, word [bp+00ch] ; 8b 76 0c 10152 10178 mov bx, si ; 89 f3 10153 10179 mov dx, strict word 00022h ; ba 22 00 10154 10180 mov ax, cx ; 89 c8 10155 call 016 2ah ; e8 d7a510181 call 0167ah ; e8 e9 a5 10156 10182 mov bx, word [bp+014h] ; 8b 5e 14 10157 10183 mov dx, strict word 00024h ; ba 24 00 10158 10184 mov ax, cx ; 89 c8 10159 call 016 2ah ; e8 cca510185 call 0167ah ; e8 de a5 10160 10186 mov dx, strict word 00027h ; ba 27 00 10161 10187 mov ax, cx ; 89 c8 10162 call 016 00h ; e8 9aa510188 call 01650h ; e8 ac a5 10163 10189 mov ah, al ; 88 c4 10164 10190 test si, si ; 85 f6 10165 jne short 070 7ah ; 75 0e10191 jne short 070b8h ; 75 0e 10166 10192 cmp word [bp+014h], strict byte 00000h ; 83 7e 14 00 10167 jne short 070 7ah ; 75 0810193 jne short 070b8h ; 75 08 10168 10194 test AL, strict byte 080h ; a8 80 10169 je short 070 7ch ; 74 0610195 je short 070bah ; 74 06 10170 10196 and AL, strict byte 07fh ; 24 7f 10171 jmp short 070 7ch ; eb 0210197 jmp short 070bah ; eb 02 10172 10198 or AL, strict byte 080h ; 0c 80 10173 10199 movzx bx, al ; 0f b6 d8 10174 10200 mov dx, strict word 00027h ; ba 27 00 10175 10201 mov ax, cx ; 89 c8 10176 call 016 0eh ; e8 87a510177 jmp short 070 9ch ; eb 1310202 call 0165eh ; e8 99 a5 10203 jmp short 070dah ; eb 13 10178 10204 push 0097ch ; 68 7c 09 10179 10205 push strict byte 00007h ; 6a 07 10180 call 019 22h ; e8 91a810206 call 01972h ; e8 a3 a8 10181 10207 add sp, strict byte 00004h ; 83 c4 04 10182 10208 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10183 10209 mov byte [bp+013h], 001h ; c6 46 13 01 10184 10210 mov ax, strict word 00047h ; b8 47 00 10185 call 06c 21h ; e8 7f fb10211 call 06c5fh ; e8 7f fb 10186 10212 lea sp, [bp-002h] ; 8d 66 fe 10187 10213 pop si ; 5e 10188 10214 pop bp ; 5d 10189 10215 retn ; c3 10190 _int17_function: ; 0xf70 a8LB 0xb310216 _int17_function: ; 0xf70e6 LB 0xb3 10191 10217 push bp ; 55 10192 10218 mov bp, sp ; 89 e5 … … 10198 10224 add dx, strict byte 00008h ; 83 c2 08 10199 10225 mov ax, strict word 00040h ; b8 40 00 10200 call 016 1ch ; e8 60a510226 call 0166ch ; e8 72 a5 10201 10227 mov bx, ax ; 89 c3 10202 10228 mov si, ax ; 89 c6 10203 10229 cmp byte [bp+013h], 003h ; 80 7e 13 03 10204 jnc near 071 51h ; 0f 83 89 0010230 jnc near 0718fh ; 0f 83 89 00 10205 10231 mov ax, word [bp+00eh] ; 8b 46 0e 10206 10232 cmp ax, strict word 00003h ; 3d 03 00 10207 jnc near 071 51h ; 0f 83 7f 0010233 jnc near 0718fh ; 0f 83 7f 00 10208 10234 test bx, bx ; 85 db 10209 jbe near 071 51h ; 0f 86 79 0010235 jbe near 0718fh ; 0f 86 79 00 10210 10236 mov dx, ax ; 89 c2 10211 10237 add dx, strict byte 00078h ; 83 c2 78 10212 10238 mov ax, strict word 00040h ; b8 40 00 10213 call 016 00h ; e8 1da510239 call 01650h ; e8 2f a5 10214 10240 movzx cx, al ; 0f b6 c8 10215 10241 sal cx, 008h ; c1 e1 08 10216 10242 cmp byte [bp+013h], 000h ; 80 7e 13 00 10217 jne short 071 1ch ; 75 2d10243 jne short 0715ah ; 75 2d 10218 10244 mov al, byte [bp+012h] ; 8a 46 12 10219 10245 mov dx, bx ; 89 da … … 10235 10261 ; sub ah, ah ; 2a e4 10236 10262 test AL, strict byte 040h ; a8 40 10237 je short 071 1ch ; 74 0710263 je short 0715ah ; 74 07 10238 10264 test cx, cx ; 85 c9 10239 je short 071 1ch ; 74 0310265 je short 0715ah ; 74 03 10240 10266 dec cx ; 49 10241 jmp short 071 0bh ; eb ef10267 jmp short 07149h ; eb ef 10242 10268 cmp byte [bp+013h], 001h ; 80 7e 13 01 10243 jne short 071 38h ; 75 1610269 jne short 07176h ; 75 16 10244 10270 lea dx, [si+002h] ; 8d 54 02 10245 10271 in AL, DX ; ec … … 10260 10286 mov byte [bp+013h], al ; 88 46 13 10261 10287 test cx, cx ; 85 c9 10262 jne short 071 4bh ; 75 0410288 jne short 07189h ; 75 04 10263 10289 or byte [bp+013h], 001h ; 80 4e 13 01 10264 10290 and byte [bp+01ch], 0feh ; 80 66 1c fe 10265 jmp short 071 55h ; eb 0410291 jmp short 07193h ; eb 04 10266 10292 or byte [bp+01ch], 001h ; 80 4e 1c 01 10267 10293 lea sp, [bp-002h] ; 8d 66 fe … … 10269 10295 pop bp ; 5d 10270 10296 retn ; c3 10271 wait_: ; 0xf71 5bLB 0xb210297 wait_: ; 0xf7199 LB 0xb2 10272 10298 push bp ; 55 10273 10299 mov bp, sp ; 89 e5 … … 10287 10313 mov dx, 0046ch ; ba 6c 04 10288 10314 xor ax, ax ; 31 c0 10289 call 016 38h ; e8 baa410315 call 01688h ; e8 cc a4 10290 10316 mov word [bp-00eh], ax ; 89 46 f2 10291 10317 mov bx, dx ; 89 d3 … … 10293 10319 mov dx, 0046ch ; ba 6c 04 10294 10320 xor ax, ax ; 31 c0 10295 call 016 38h ; e8 aca410321 call 01688h ; e8 be a4 10296 10322 mov word [bp-012h], ax ; 89 46 ee 10297 10323 mov di, dx ; 89 d7 10298 10324 cmp dx, bx ; 39 da 10299 jnbe short 071 9ch ; 77 0710300 jne short 071 a3h ; 75 0c10325 jnbe short 071dah ; 77 07 10326 jne short 071e1h ; 75 0c 10301 10327 cmp ax, word [bp-00eh] ; 3b 46 f2 10302 jbe short 071 a3h ; 76 0710328 jbe short 071e1h ; 76 07 10303 10329 sub ax, word [bp-00eh] ; 2b 46 f2 10304 10330 sbb dx, bx ; 19 da 10305 jmp short 071 aeh ; eb 0b10331 jmp short 071ech ; eb 0b 10306 10332 cmp dx, bx ; 39 da 10307 jc short 071 aeh ; 72 0710308 jne short 071 b2h ; 75 0910333 jc short 071ech ; 72 07 10334 jne short 071f0h ; 75 09 10309 10335 cmp ax, word [bp-00eh] ; 3b 46 f2 10310 jnc short 071 b2h ; 73 0410336 jnc short 071f0h ; 73 04 10311 10337 sub si, ax ; 29 c6 10312 10338 sbb cx, dx ; 19 d1 … … 10316 10342 mov ax, 00100h ; b8 00 01 10317 10343 int 016h ; cd 16 10318 je near 07 1c8h ; 0f 84 05 0010344 je near 07206h ; 0f 84 05 00 10319 10345 mov AL, strict byte 001h ; b0 01 10320 jmp near 07 1cah ; e9 02 0010346 jmp near 07208h ; e9 02 00 10321 10347 db 032h, 0c0h 10322 10348 ; xor al, al ; 32 c0 10323 10349 test al, al ; 84 c0 10324 je short 07 1f2h ; 74 2410350 je short 07230h ; 74 24 10325 10351 db 033h, 0c0h 10326 10352 ; xor ax, ax ; 33 c0 … … 10333 10359 push 0099eh ; 68 9e 09 10334 10360 push strict byte 00004h ; 6a 04 10335 call 019 22h ; e8 3da710361 call 01972h ; e8 4f a7 10336 10362 add sp, strict byte 00006h ; 83 c4 06 10337 10363 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10338 je short 07 1f2h ; 74 0410364 je short 07230h ; 74 04 10339 10365 mov al, dl ; 88 d0 10340 jmp short 072 04h ; eb 1210366 jmp short 07242h ; eb 12 10341 10367 test cx, cx ; 85 c9 10342 jnle short 071 83h ; 7f 8d10343 jne short 07 1fch ; 75 0410368 jnle short 071c1h ; 7f 8d 10369 jne short 0723ah ; 75 04 10344 10370 test si, si ; 85 f6 10345 jnbe short 071 83h ; 77 8710371 jnbe short 071c1h ; 77 87 10346 10372 mov ax, word [bp-010h] ; 8b 46 f0 10347 10373 push ax ; 50 … … 10355 10381 pop bp ; 5d 10356 10382 retn ; c3 10357 read_logo_byte_: ; 0xf72 0dLB 0x1610383 read_logo_byte_: ; 0xf724b LB 0x16 10358 10384 push bp ; 55 10359 10385 mov bp, sp ; 89 e5 … … 10370 10396 pop bp ; 5d 10371 10397 retn ; c3 10372 read_logo_word_: ; 0xf72 23LB 0x1410398 read_logo_word_: ; 0xf7261 LB 0x14 10373 10399 push bp ; 55 10374 10400 mov bp, sp ; 89 e5 … … 10383 10409 pop bp ; 5d 10384 10410 retn ; c3 10385 print_detected_harddisks_: ; 0xf72 37LB 0x13010411 print_detected_harddisks_: ; 0xf7275 LB 0x130 10386 10412 push bp ; 55 10387 10413 mov bp, sp ; 89 e5 … … 10395 10421 mov dx, strict word 0000eh ; ba 0e 00 10396 10422 mov ax, strict word 00040h ; b8 40 00 10397 call 016 1ch ; e8 d2a310423 call 0166ch ; e8 e4 a3 10398 10424 mov si, ax ; 89 c6 10399 10425 mov byte [bp-00ch], 000h ; c6 46 f4 00 … … 10401 10427 xor ch, ch ; 30 ed 10402 10428 mov dx, 002c0h ; ba c0 02 10403 call 016 00h ; e8 a6a310429 call 01650h ; e8 b8 a3 10404 10430 mov byte [bp-00eh], al ; 88 46 f2 10405 10431 xor bl, bl ; 30 db 10406 10432 cmp bl, byte [bp-00eh] ; 3a 5e f2 10407 jnc near 073 39h ; 0f 83 d3 0010433 jnc near 07377h ; 0f 83 d3 00 10408 10434 movzx dx, bl ; 0f b6 d3 10409 10435 add dx, 002c1h ; 81 c2 c1 02 10410 10436 mov ax, si ; 89 f0 10411 call 016 00h ; e8 8ea310437 call 01650h ; e8 a0 a3 10412 10438 mov bh, al ; 88 c7 10413 10439 cmp AL, strict byte 00ch ; 3c 0c 10414 jc short 072 9ch ; 72 2410440 jc short 072dah ; 72 24 10415 10441 test cl, cl ; 84 c9 10416 jne short 072 89h ; 75 0d10442 jne short 072c7h ; 75 0d 10417 10443 push 009afh ; 68 af 09 10418 10444 push strict byte 00002h ; 6a 02 10419 call 019 22h ; e8 9ea610445 call 01972h ; e8 b0 a6 10420 10446 add sp, strict byte 00004h ; 83 c4 04 10421 10447 mov CL, strict byte 001h ; b1 01 … … 10425 10451 push 009c3h ; 68 c3 09 10426 10452 push strict byte 00002h ; 6a 02 10427 call 019 22h ; e8 8ca610453 call 01972h ; e8 9e a6 10428 10454 add sp, strict byte 00006h ; 83 c4 06 10429 jmp near 073 34h ; e9 98 0010455 jmp near 07372h ; e9 98 00 10430 10456 cmp AL, strict byte 008h ; 3c 08 10431 jc short 072 b3h ; 72 1310457 jc short 072f1h ; 72 13 10432 10458 test ch, ch ; 84 ed 10433 jne short 072 b1h ; 75 0d10459 jne short 072efh ; 75 0d 10434 10460 push 009d6h ; 68 d6 09 10435 10461 push strict byte 00002h ; 6a 02 10436 call 019 22h ; e8 76a610462 call 01972h ; e8 88 a6 10437 10463 add sp, strict byte 00004h ; 83 c4 04 10438 10464 mov CH, strict byte 001h ; b5 01 10439 jmp short 072 89h ; eb d610465 jmp short 072c7h ; eb d6 10440 10466 cmp AL, strict byte 004h ; 3c 04 10441 jnc short 07 2ceh ; 73 1710467 jnc short 0730ch ; 73 17 10442 10468 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10443 jne short 07 2ceh ; 75 1110469 jne short 0730ch ; 75 11 10444 10470 push 009eah ; 68 ea 09 10445 10471 push strict byte 00002h ; 6a 02 10446 call 019 22h ; e8 5da610472 call 01972h ; e8 6f a6 10447 10473 add sp, strict byte 00004h ; 83 c4 04 10448 10474 mov byte [bp-00ch], 001h ; c6 46 f4 01 10449 jmp short 07 2e4h ; eb 1610475 jmp short 07322h ; eb 16 10450 10476 cmp bh, 004h ; 80 ff 04 10451 jc short 07 2e4h ; 72 1110477 jc short 07322h ; 72 11 10452 10478 test cl, cl ; 84 c9 10453 jne short 07 2e4h ; 75 0d10479 jne short 07322h ; 75 0d 10454 10480 push 009afh ; 68 af 09 10455 10481 push strict byte 00002h ; 6a 02 10456 call 019 22h ; e8 43a610482 call 01972h ; e8 55 a6 10457 10483 add sp, strict byte 00004h ; 83 c4 04 10458 10484 mov CL, strict byte 001h ; b1 01 … … 10462 10488 push 009fbh ; 68 fb 09 10463 10489 push strict byte 00002h ; 6a 02 10464 call 019 22h ; e8 31a610490 call 01972h ; e8 43 a6 10465 10491 add sp, strict byte 00006h ; 83 c4 06 10466 10492 cmp bh, 004h ; 80 ff 04 10467 jc short 07 2fch ; 72 0310493 jc short 0733ah ; 72 03 10468 10494 sub bh, 004h ; 80 ef 04 10469 10495 movzx ax, bh ; 0f b6 c7 … … 10473 10499 sar ax, 1 ; d1 f8 10474 10500 test ax, ax ; 85 c0 10475 je short 073 0dh ; 74 0510501 je short 0734bh ; 74 05 10476 10502 push 00a05h ; 68 05 0a 10477 jmp short 073 10h ; eb 0310503 jmp short 0734eh ; eb 03 10478 10504 push 00a10h ; 68 10 0a 10479 10505 push strict byte 00002h ; 6a 02 10480 call 019 22h ; e8 0da610506 call 01972h ; e8 1f a6 10481 10507 add sp, strict byte 00004h ; 83 c4 04 10482 10508 movzx ax, bh ; 0f b6 c7 … … 10485 10511 idiv di ; f7 ff 10486 10512 test dx, dx ; 85 d2 10487 je short 073 2ah ; 74 0510513 je short 07368h ; 74 05 10488 10514 push 00a19h ; 68 19 0a 10489 jmp short 073 2dh ; eb 0310515 jmp short 0736bh ; eb 03 10490 10516 push 00a1fh ; 68 1f 0a 10491 10517 push di ; 57 10492 call 019 22h ; e8 f1 a510518 call 01972h ; e8 03 a6 10493 10519 add sp, strict byte 00004h ; 83 c4 04 10494 10520 db 0feh, 0c3h 10495 10521 ; inc bl ; fe c3 10496 jmp near 072 5fh ; e9 26 ff10522 jmp near 0729dh ; e9 26 ff 10497 10523 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10498 jne short 073 52h ; 75 1310524 jne short 07390h ; 75 13 10499 10525 test cl, cl ; 84 c9 10500 jne short 073 52h ; 75 0f10526 jne short 07390h ; 75 0f 10501 10527 test ch, ch ; 84 ed 10502 jne short 073 52h ; 75 0b10528 jne short 07390h ; 75 0b 10503 10529 push 00a26h ; 68 26 0a 10504 10530 push strict byte 00002h ; 6a 02 10505 call 019 22h ; e8 d3a510531 call 01972h ; e8 e5 a5 10506 10532 add sp, strict byte 00004h ; 83 c4 04 10507 10533 push 00a3ah ; 68 3a 0a 10508 10534 push strict byte 00002h ; 6a 02 10509 call 019 22h ; e8 c8a510535 call 01972h ; e8 da a5 10510 10536 add sp, strict byte 00004h ; 83 c4 04 10511 10537 lea sp, [bp-00ah] ; 8d 66 f6 … … 10517 10543 pop bp ; 5d 10518 10544 retn ; c3 10519 get_boot_drive_: ; 0xf73 67LB 0x2810545 get_boot_drive_: ; 0xf73a5 LB 0x28 10520 10546 push bp ; 55 10521 10547 mov bp, sp ; 89 e5 … … 10525 10551 mov dx, strict word 0000eh ; ba 0e 00 10526 10552 mov ax, strict word 00040h ; b8 40 00 10527 call 016 1ch ; e8 a5a210553 call 0166ch ; e8 b7 a2 10528 10554 mov dx, 002c0h ; ba c0 02 10529 call 016 00h ; e8 83a210555 call 01650h ; e8 95 a2 10530 10556 sub bl, 002h ; 80 eb 02 10531 10557 cmp bl, al ; 38 c3 10532 jc short 073 86h ; 72 0210558 jc short 073c4h ; 72 02 10533 10559 mov BL, strict byte 0ffh ; b3 ff 10534 10560 mov al, bl ; 88 d8 … … 10538 10564 pop bp ; 5d 10539 10565 retn ; c3 10540 show_logo_: ; 0xf73 8fLB 0x22410566 show_logo_: ; 0xf73cd LB 0x224 10541 10567 push bp ; 55 10542 10568 mov bp, sp ; 89 e5 … … 10549 10575 mov dx, strict word 0000eh ; ba 0e 00 10550 10576 mov ax, strict word 00040h ; b8 40 00 10551 call 016 1ch ; e8 79a210577 call 0166ch ; e8 8b a2 10552 10578 mov si, ax ; 89 c6 10553 10579 xor cl, cl ; 30 c9 … … 10560 10586 out strict byte 040h, AL ; e6 40 10561 10587 movzx ax, dl ; 0f b6 c2 10562 call 072 23h ; e8 68 fe10588 call 07261h ; e8 68 fe 10563 10589 cmp ax, 066bbh ; 3d bb 66 10564 jne near 074 93h ; 0f 85 d1 0010590 jne near 074d1h ; 0f 85 d1 00 10565 10591 push SS ; 16 10566 10592 pop ES ; 07 … … 10570 10596 mov word [es:di], bx ; 26 89 1d 10571 10597 cmp ax, strict word 0004fh ; 3d 4f 00 10572 jne near 074 93h ; 0f 85 bd 0010598 jne near 074d1h ; 0f 85 bd 00 10573 10599 mov al, dl ; 88 d0 10574 10600 add AL, strict byte 004h ; 04 04 10575 10601 xor ah, ah ; 30 e4 10576 call 072 0dh ; e8 2e fe10602 call 0724bh ; e8 2e fe 10577 10603 mov ch, al ; 88 c5 10578 10604 mov byte [bp-00ch], al ; 88 46 f4 … … 10580 10606 add AL, strict byte 005h ; 04 05 10581 10607 xor ah, ah ; 30 e4 10582 call 072 0dh ; e8 20 fe10608 call 0724bh ; e8 20 fe 10583 10609 mov dh, al ; 88 c6 10584 10610 mov byte [bp-010h], al ; 88 46 f0 … … 10586 10612 add AL, strict byte 002h ; 04 02 10587 10613 xor ah, ah ; 30 e4 10588 call 072 23h ; e8 28 fe10614 call 07261h ; e8 28 fe 10589 10615 mov bx, ax ; 89 c3 10590 10616 mov word [bp-014h], ax ; 89 46 ec … … 10592 10618 add AL, strict byte 006h ; 04 06 10593 10619 xor ah, ah ; 30 e4 10594 call 072 0dh ; e8 04 fe10620 call 0724bh ; e8 04 fe 10595 10621 mov byte [bp-012h], al ; 88 46 ee 10596 10622 test ch, ch ; 84 ed 10597 jne short 074 1ah ; 75 0a10623 jne short 07458h ; 75 0a 10598 10624 test dh, dh ; 84 f6 10599 jne short 074 1ah ; 75 0610625 jne short 07458h ; 75 06 10600 10626 test bx, bx ; 85 db 10601 je near 074 93h ; 0f 84 79 0010627 je near 074d1h ; 0f 84 79 00 10602 10628 mov bx, 00142h ; bb 42 01 10603 10629 mov ax, 04f02h ; b8 02 4f 10604 10630 int 010h ; cd 10 10605 10631 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10606 je short 074 4bh ; 74 2310632 je short 07489h ; 74 23 10607 10633 xor bx, bx ; 31 db 10608 jmp short 074 32h ; eb 0610634 jmp short 07470h ; eb 06 10609 10635 inc bx ; 43 10610 10636 cmp bx, strict byte 00010h ; 83 fb 10 10611 jnbe short 074 52h ; 77 2010637 jnbe short 07490h ; 77 20 10612 10638 mov ax, bx ; 89 d8 10613 10639 or ah, 002h ; 80 cc 02 … … 10616 10642 xor dx, dx ; 31 d2 10617 10643 mov ax, strict word 00001h ; b8 01 00 10618 call 071 5bh ; e8 18 fd10644 call 07199h ; e8 18 fd 10619 10645 cmp AL, strict byte 086h ; 3c 86 10620 jne short 074 2ch ; 75 e510646 jne short 0746ah ; 75 e5 10621 10647 mov CL, strict byte 001h ; b1 01 10622 jmp short 074 52h ; eb 0710648 jmp short 07490h ; eb 07 10623 10649 mov ax, 00210h ; b8 10 02 10624 10650 mov dx, 003b8h ; ba b8 03 10625 10651 out DX, ax ; ef 10626 10652 test cl, cl ; 84 c9 10627 jne short 074 68h ; 75 1210653 jne short 074a6h ; 75 12 10628 10654 mov ax, word [bp-014h] ; 8b 46 ec 10629 10655 shr ax, 004h ; c1 e8 04 10630 10656 mov dx, strict word 00001h ; ba 01 00 10631 call 071 5bh ; e8 f9 fc10657 call 07199h ; e8 f9 fc 10632 10658 cmp AL, strict byte 086h ; 3c 86 10633 jne short 074 68h ; 75 0210659 jne short 074a6h ; 75 02 10634 10660 mov CL, strict byte 001h ; b1 01 10635 10661 cmp byte [bp-010h], 000h ; 80 7e f0 00 10636 je short 074 93h ; 74 2510662 je short 074d1h ; 74 25 10637 10663 test cl, cl ; 84 c9 10638 jne short 074 93h ; 75 2110664 jne short 074d1h ; 75 21 10639 10665 mov bx, strict word 00010h ; bb 10 00 10640 jmp short 074 7ch ; eb 0510666 jmp short 074bah ; eb 05 10641 10667 dec bx ; 4b 10642 10668 test bx, bx ; 85 db 10643 jbe short 074 93h ; 76 1710669 jbe short 074d1h ; 76 17 10644 10670 mov ax, bx ; 89 d8 10645 10671 or ah, 002h ; 80 cc 02 … … 10648 10674 xor dx, dx ; 31 d2 10649 10675 mov ax, strict word 00001h ; b8 01 00 10650 call 071 5bh ; e8 ce fc10676 call 07199h ; e8 ce fc 10651 10677 cmp AL, strict byte 086h ; 3c 86 10652 jne short 074 77h ; 75 e610678 jne short 074b5h ; 75 e6 10653 10679 mov CL, strict byte 001h ; b1 01 10654 10680 xor bx, bx ; 31 db 10655 10681 mov dx, 00339h ; ba 39 03 10656 10682 mov ax, si ; 89 f0 10657 call 016 0eh ; e8 71a110683 call 0165eh ; e8 83 a1 10658 10684 mov AL, strict byte 003h ; b0 03 10659 10685 mov AH, strict byte 000h ; b4 00 10660 10686 int 010h ; cd 10 10661 10687 cmp byte [bp-012h], 000h ; 80 7e ee 00 10662 je near 075 94h ; 0f 84 e9 0010688 je near 075d2h ; 0f 84 e9 00 10663 10689 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10664 jne short 07 4e1h ; 75 3010690 jne short 0751fh ; 75 30 10665 10691 cmp byte [bp-010h], 000h ; 80 7e f0 00 10666 jne short 07 4e1h ; 75 2a10692 jne short 0751fh ; 75 2a 10667 10693 cmp word [bp-014h], strict byte 00000h ; 83 7e ec 00 10668 jne short 07 4e1h ; 75 2410694 jne short 0751fh ; 75 24 10669 10695 cmp byte [bp-012h], 002h ; 80 7e ee 02 10670 jne short 07 4ceh ; 75 0b10696 jne short 0750ch ; 75 0b 10671 10697 push 00a3ch ; 68 3c 0a 10672 10698 push strict byte 00002h ; 6a 02 10673 call 019 22h ; e8 57a410699 call 01972h ; e8 69 a4 10674 10700 add sp, strict byte 00004h ; 83 c4 04 10675 10701 test cl, cl ; 84 c9 10676 jne short 07 4e1h ; 75 0f10702 jne short 0751fh ; 75 0f 10677 10703 mov dx, strict word 00001h ; ba 01 00 10678 10704 mov ax, 000c0h ; b8 c0 00 10679 call 071 5bh ; e8 80 fc10705 call 07199h ; e8 80 fc 10680 10706 cmp AL, strict byte 086h ; 3c 86 10681 jne short 07 4e1h ; 75 0210707 jne short 0751fh ; 75 02 10682 10708 mov CL, strict byte 001h ; b1 01 10683 10709 test cl, cl ; 84 c9 10684 je near 075 94h ; 0f 84 ad 0010710 je near 075d2h ; 0f 84 ad 00 10685 10711 mov byte [bp-00eh], 000h ; c6 46 f2 00 10686 10712 mov ax, 00100h ; b8 00 01 … … 10701 10727 push 00a5eh ; 68 5e 0a 10702 10728 push strict byte 00002h ; 6a 02 10703 call 019 22h ; e8 12a410729 call 01972h ; e8 24 a4 10704 10730 add sp, strict byte 00004h ; 83 c4 04 10705 call 072 37h ; e8 21 fd10731 call 07275h ; e8 21 fd 10706 10732 push 00aa2h ; 68 a2 0a 10707 10733 push strict byte 00002h ; 6a 02 10708 call 019 22h ; e8 04a410734 call 01972h ; e8 16 a4 10709 10735 add sp, strict byte 00004h ; 83 c4 04 10710 10736 mov dx, strict word 00001h ; ba 01 00 10711 10737 mov ax, strict word 00040h ; b8 40 00 10712 call 071 5bh ; e8 31 fc10738 call 07199h ; e8 31 fc 10713 10739 mov bl, al ; 88 c3 10714 10740 test al, al ; 84 c0 10715 je short 075 21h ; 74 f110741 je short 0755fh ; 74 f1 10716 10742 cmp AL, strict byte 030h ; 3c 30 10717 je short 075 82h ; 74 4e10743 je short 075c0h ; 74 4e 10718 10744 cmp bl, 002h ; 80 fb 02 10719 jc short 075 5bh ; 72 2210745 jc short 07599h ; 72 22 10720 10746 cmp bl, 009h ; 80 fb 09 10721 jnbe short 075 5bh ; 77 1d10747 jnbe short 07599h ; 77 1d 10722 10748 movzx ax, bl ; 0f b6 c3 10723 call 073 67h ; e8 23 fe10749 call 073a5h ; e8 23 fe 10724 10750 cmp AL, strict byte 0ffh ; 3c ff 10725 jne short 075 4ah ; 75 0210726 jmp short 075 21h ; eb d710751 jne short 07588h ; 75 02 10752 jmp short 0755fh ; eb d7 10727 10753 movzx bx, al ; 0f b6 d8 10728 10754 mov dx, 00338h ; ba 38 03 10729 10755 mov ax, si ; 89 f0 10730 call 016 0eh ; e8 b9a010756 call 0165eh ; e8 cb a0 10731 10757 mov byte [bp-00eh], 002h ; c6 46 f2 02 10732 jmp short 075 82h ; eb 2710758 jmp short 075c0h ; eb 27 10733 10759 cmp bl, 02eh ; 80 fb 2e 10734 je short 075 70h ; 74 1010760 je short 075aeh ; 74 10 10735 10761 cmp bl, 026h ; 80 fb 26 10736 je short 075 76h ; 74 1110762 je short 075b4h ; 74 11 10737 10763 cmp bl, 021h ; 80 fb 21 10738 jne short 075 7ch ; 75 1210764 jne short 075bah ; 75 12 10739 10765 mov byte [bp-00eh], 001h ; c6 46 f2 01 10740 jmp short 075 82h ; eb 1210766 jmp short 075c0h ; eb 12 10741 10767 mov byte [bp-00eh], 003h ; c6 46 f2 03 10742 jmp short 075 82h ; eb 0c10768 jmp short 075c0h ; eb 0c 10743 10769 mov byte [bp-00eh], 004h ; c6 46 f2 04 10744 jmp short 075 82h ; eb 0610770 jmp short 075c0h ; eb 06 10745 10771 cmp byte [bp-00eh], 000h ; 80 7e f2 00 10746 je short 075 21h ; 74 9f10772 je short 0755fh ; 74 9f 10747 10773 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 10748 10774 mov dx, 00339h ; ba 39 03 10749 10775 mov ax, si ; 89 f0 10750 call 016 0eh ; e8 80a010776 call 0165eh ; e8 92 a0 10751 10777 mov AL, strict byte 003h ; b0 03 10752 10778 mov AH, strict byte 000h ; b4 00 … … 10761 10787 push DS ; 1e 10762 10788 mov ds, ax ; 8e d8 10763 call 0edbfh ; e8 19 7810789 call 0edbfh ; e8 db 77 10764 10790 pop DS ; 1f 10765 10791 popad ; 66 61 … … 10772 10798 pop bp ; 5d 10773 10799 retn ; c3 10774 delay_boot_: ; 0xf75 b3LB 0x6710800 delay_boot_: ; 0xf75f1 LB 0x67 10775 10801 push bp ; 55 10776 10802 mov bp, sp ; 89 e5 … … 10779 10805 mov dx, ax ; 89 c2 10780 10806 test ax, ax ; 85 c0 10781 je short 076 13h ; 74 5510807 je short 07651h ; 74 55 10782 10808 mov AL, strict byte 034h ; b0 34 10783 10809 out strict byte 043h, AL ; e6 43 … … 10789 10815 push 00aech ; 68 ec 0a 10790 10816 push strict byte 00002h ; 6a 02 10791 call 019 22h ; e8 4fa310817 call 01972h ; e8 61 a3 10792 10818 add sp, strict byte 00006h ; 83 c4 06 10793 10819 mov bx, dx ; 89 d3 10794 10820 test bx, bx ; 85 db 10795 jbe short 07 5f3h ; 76 1710821 jbe short 07631h ; 76 17 10796 10822 push bx ; 53 10797 10823 push 00b0ah ; 68 0a 0b 10798 10824 push strict byte 00002h ; 6a 02 10799 call 019 22h ; e8 3da310825 call 01972h ; e8 4f a3 10800 10826 add sp, strict byte 00006h ; 83 c4 06 10801 10827 xor dx, dx ; 31 d2 10802 10828 mov ax, strict word 00040h ; b8 40 00 10803 call 071 5bh ; e8 6b fb10829 call 07199h ; e8 6b fb 10804 10830 dec bx ; 4b 10805 jmp short 07 5d8h ; eb e510831 jmp short 07616h ; eb e5 10806 10832 push 00a3ah ; 68 3a 0a 10807 10833 push strict byte 00002h ; 6a 02 10808 call 019 22h ; e8 27a310834 call 01972h ; e8 39 a3 10809 10835 add sp, strict byte 00004h ; 83 c4 04 10810 10836 mov AL, strict byte 034h ; b0 34 … … 10817 10843 push DS ; 1e 10818 10844 mov ds, ax ; 8e d8 10819 call 0edbfh ; e8 af7710845 call 0edbfh ; e8 71 77 10820 10846 pop DS ; 1f 10821 10847 popad ; 66 61 … … 10825 10851 pop bp ; 5d 10826 10852 retn ; c3 10827 scsi_cmd_data_in_: ; 0xf76 1aLB 0xb210853 scsi_cmd_data_in_: ; 0xf7658 LB 0xb2 10828 10854 push bp ; 55 10829 10855 mov bp, sp ; 89 e5 … … 10841 10867 ; sub ah, ah ; 2a e4 10842 10868 test AL, strict byte 001h ; a8 01 10843 jne short 076 30h ; 75 f710869 jne short 0766eh ; 75 f7 10844 10870 mov ax, bx ; 89 d8 10845 10871 mov dx, word [bp+00ch] ; 8b 56 0c … … 10847 10873 shr dx, 1 ; d1 ea 10848 10874 rcr ax, 1 ; d1 d8 10849 loop 076 41h ; e2 fa10875 loop 0767fh ; e2 fa 10850 10876 and ax, 000f0h ; 25 f0 00 10851 10877 movzx cx, byte [bp+004h] ; 0f b6 4e 04 … … 10865 10891 shr dx, 1 ; d1 ea 10866 10892 rcr ax, 1 ; d1 d8 10867 loop 076 67h ; e2 fa10893 loop 076a5h ; e2 fa 10868 10894 mov dx, si ; 89 f2 10869 10895 out DX, AL ; ee … … 10871 10897 movzx ax, byte [bp+004h] ; 0f b6 46 04 10872 10898 cmp cx, ax ; 39 c1 10873 jnc short 076 88h ; 73 0e10899 jnc short 076c6h ; 73 0e 10874 10900 les di, [bp-00ah] ; c4 7e f6 10875 10901 add di, cx ; 01 cf … … 10878 10904 out DX, AL ; ee 10879 10905 inc cx ; 41 10880 jmp short 076 72h ; eb ea10906 jmp short 076b0h ; eb ea 10881 10907 mov dx, si ; 89 f2 10882 10908 in AL, DX ; ec … … 10884 10910 ; sub ah, ah ; 2a e4 10885 10911 test AL, strict byte 001h ; a8 01 10886 jne short 076 88h ; 75 f710912 jne short 076c6h ; 75 f7 10887 10913 lea dx, [si+001h] ; 8d 54 01 10888 10914 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 10889 jne short 076 a0h ; 75 0610915 jne short 076deh ; 75 06 10890 10916 cmp bx, 08000h ; 81 fb 00 80 10891 jbe short 076 bah ; 76 1a10917 jbe short 076f8h ; 76 1a 10892 10918 mov cx, 08000h ; b9 00 80 10893 10919 les di, [bp+006h] ; c4 7e 06 … … 10898 10924 add ax, 00800h ; 05 00 08 10899 10925 mov word [bp+008h], ax ; 89 46 08 10900 jmp short 076 91h ; eb d710926 jmp short 076cfh ; eb d7 10901 10927 mov cx, bx ; 89 d9 10902 10928 les di, [bp+006h] ; c4 7e 06 … … 10908 10934 pop bp ; 5d 10909 10935 retn 0000ah ; c2 0a 00 10910 scsi_cmd_data_out_: ; 0xf7 6ccLB 0xb410936 scsi_cmd_data_out_: ; 0xf770a LB 0xb4 10911 10937 push bp ; 55 10912 10938 mov bp, sp ; 89 e5 … … 10924 10950 ; sub ah, ah ; 2a e4 10925 10951 test AL, strict byte 001h ; a8 01 10926 jne short 07 6e2h ; 75 f710952 jne short 07720h ; 75 f7 10927 10953 mov ax, bx ; 89 d8 10928 10954 mov dx, word [bp+00ch] ; 8b 56 0c … … 10930 10956 shr dx, 1 ; d1 ea 10931 10957 rcr ax, 1 ; d1 d8 10932 loop 07 6f3h ; e2 fa10958 loop 07731h ; e2 fa 10933 10959 and ax, 000f0h ; 25 f0 00 10934 10960 movzx cx, byte [bp+004h] ; 0f b6 4e 04 … … 10948 10974 shr dx, 1 ; d1 ea 10949 10975 rcr ax, 1 ; d1 d8 10950 loop 077 19h ; e2 fa10976 loop 07757h ; e2 fa 10951 10977 mov dx, di ; 89 fa 10952 10978 out DX, AL ; ee … … 10954 10980 movzx ax, byte [bp+004h] ; 0f b6 46 04 10955 10981 cmp cx, ax ; 39 c1 10956 jnc short 077 3ah ; 73 0e10982 jnc short 07778h ; 73 0e 10957 10983 les si, [bp-00ah] ; c4 76 f6 10958 10984 add si, cx ; 01 ce … … 10961 10987 out DX, AL ; ee 10962 10988 inc cx ; 41 10963 jmp short 077 24h ; eb ea10989 jmp short 07762h ; eb ea 10964 10990 lea dx, [di+001h] ; 8d 55 01 10965 10991 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 10966 jne short 077 49h ; 75 0610992 jne short 07787h ; 75 06 10967 10993 cmp bx, 08000h ; 81 fb 00 80 10968 jbe short 077 64h ; 76 1b10994 jbe short 077a2h ; 76 1b 10969 10995 mov cx, 08000h ; b9 00 80 10970 10996 les si, [bp+006h] ; c4 76 06 … … 10976 11002 add ax, 00800h ; 05 00 08 10977 11003 mov word [bp+008h], ax ; 89 46 08 10978 jmp short 077 3ah ; eb d611004 jmp short 07778h ; eb d6 10979 11005 mov cx, bx ; 89 d9 10980 11006 les si, [bp+006h] ; c4 76 06 … … 10986 11012 ; sub ah, ah ; 2a e4 10987 11013 test AL, strict byte 001h ; a8 01 10988 jne short 077 6ch ; 75 f711014 jne short 077aah ; 75 f7 10989 11015 xor ax, ax ; 31 c0 10990 11016 lea sp, [bp-004h] ; 8d 66 fc … … 10993 11019 pop bp ; 5d 10994 11020 retn 0000ah ; c2 0a 00 10995 @scsi_read_sectors: ; 0xf77 80LB 0xb611021 @scsi_read_sectors: ; 0xf77be LB 0xb6 10996 11022 push bp ; 55 10997 11023 mov bp, sp ; 89 e5 … … 11004 11030 sub bl, 008h ; 80 eb 08 11005 11031 cmp bl, 004h ; 80 fb 04 11006 jbe short 077 a9h ; 76 0f11032 jbe short 077e7h ; 76 0f 11007 11033 movzx ax, bl ; 0f b6 c3 11008 11034 push ax ; 50 11009 11035 push 00b0eh ; 68 0e 0b 11010 11036 push strict byte 00007h ; 6a 07 11011 call 019 22h ; e8 7ca111037 call 01972h ; e8 8e a1 11012 11038 add sp, strict byte 00006h ; 83 c4 06 11013 11039 mov es, [bp+006h] ; 8e 46 06 … … 11036 11062 sal word [bp-008h], 1 ; d1 66 f8 11037 11063 rcl word [bp-006h], 1 ; d1 56 fa 11038 loop 07 7f2h ; e2 f811064 loop 07830h ; e2 f8 11039 11065 push dword [bp-008h] ; 66 ff 76 f8 11040 11066 db 066h, 026h, 0ffh, 074h, 004h … … 11044 11070 mov cx, ss ; 8c d1 11045 11071 lea bx, [bp-012h] ; 8d 5e ee 11046 call 076 1ah ; e8 0b fe11072 call 07658h ; e8 0b fe 11047 11073 mov ah, al ; 88 c4 11048 11074 test al, al ; 84 c0 11049 jne short 078 2ah ; 75 1511075 jne short 07868h ; 75 15 11050 11076 mov es, [bp+006h] ; 8e 46 06 11051 11077 mov word [es:si+014h], di ; 26 89 7c 14 … … 11060 11086 pop bp ; 5d 11061 11087 retn 00004h ; c2 04 00 11062 @scsi_write_sectors: ; 0xf78 36LB 0xb611088 @scsi_write_sectors: ; 0xf7874 LB 0xb6 11063 11089 push bp ; 55 11064 11090 mov bp, sp ; 89 e5 … … 11071 11097 sub bl, 008h ; 80 eb 08 11072 11098 cmp bl, 004h ; 80 fb 04 11073 jbe short 078 5fh ; 76 0f11099 jbe short 0789dh ; 76 0f 11074 11100 movzx ax, bl ; 0f b6 c3 11075 11101 push ax ; 50 11076 11102 push 00b3ch ; 68 3c 0b 11077 11103 push strict byte 00007h ; 6a 07 11078 call 019 22h ; e8 c6a011104 call 01972h ; e8 d8 a0 11079 11105 add sp, strict byte 00006h ; 83 c4 06 11080 11106 mov es, [bp+006h] ; 8e 46 06 … … 11103 11129 sal word [bp-008h], 1 ; d1 66 f8 11104 11130 rcl word [bp-006h], 1 ; d1 56 fa 11105 loop 078 a8h ; e2 f811131 loop 078e6h ; e2 f8 11106 11132 push dword [bp-008h] ; 66 ff 76 f8 11107 11133 db 066h, 026h, 0ffh, 074h, 004h … … 11111 11137 mov cx, ss ; 8c d1 11112 11138 lea bx, [bp-012h] ; 8d 5e ee 11113 call 07 6cch ; e8 07 fe11139 call 0770ah ; e8 07 fe 11114 11140 mov ah, al ; 88 c4 11115 11141 test al, al ; 84 c0 11116 jne short 07 8e0h ; 75 1511142 jne short 0791eh ; 75 15 11117 11143 mov es, [bp+006h] ; 8e 46 06 11118 11144 mov word [es:si+014h], di ; 26 89 7c 14 … … 11127 11153 pop bp ; 5d 11128 11154 retn 00004h ; c2 04 00 11129 scsi_cmd_packet_: ; 0xf7 8ecLB 0x16611155 scsi_cmd_packet_: ; 0xf792a LB 0x166 11130 11156 push bp ; 55 11131 11157 mov bp, sp ; 89 e5 … … 11139 11165 mov dx, strict word 0000eh ; ba 0e 00 11140 11166 mov ax, strict word 00040h ; b8 40 00 11141 call 016 1ch ; e8 149d11167 call 0166ch ; e8 26 9d 11142 11168 mov si, 00122h ; be 22 01 11143 11169 mov word [bp-00eh], ax ; 89 46 f2 11144 11170 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 11145 jne short 079 33h ; 75 1f11171 jne short 07971h ; 75 1f 11146 11172 mov bx, 00da2h ; bb a2 0d 11147 11173 mov cx, ds ; 8c d9 11148 11174 mov ax, strict word 00004h ; b8 04 00 11149 call 01 8e1h ; e8 c29f11175 call 01931h ; e8 d4 9f 11150 11176 push 00b6bh ; 68 6b 0b 11151 11177 push 00b7bh ; 68 7b 0b 11152 11178 push strict byte 00004h ; 6a 04 11153 call 019 22h ; e8 f8 9f11179 call 01972h ; e8 0a a0 11154 11180 add sp, strict byte 00006h ; 83 c4 06 11155 11181 mov dx, strict word 00001h ; ba 01 00 11156 jmp near 07a 47h ; e9 14 0111182 jmp near 07a85h ; e9 14 01 11157 11183 sub di, strict byte 00008h ; 83 ef 08 11158 11184 sal di, 002h ; c1 e7 02 … … 11168 11194 ; sub ah, ah ; 2a e4 11169 11195 test AL, strict byte 001h ; a8 01 11170 jne short 079 4fh ; 75 f711196 jne short 0798dh ; 75 f7 11171 11197 xor ax, ax ; 31 c0 11172 11198 mov dx, word [bp+006h] ; 8b 56 06 … … 11184 11210 shr dx, 1 ; d1 ea 11185 11211 rcr ax, 1 ; d1 d8 11186 loop 079 7ah ; e2 fa11212 loop 079b8h ; e2 fa 11187 11213 and ax, 000f0h ; 25 f0 00 11188 11214 movzx cx, byte [bp-006h] ; 0f b6 4e fa … … 11202 11228 shr dx, 1 ; d1 ea 11203 11229 rcr ax, 1 ; d1 d8 11204 loop 079 a1h ; e2 fa11230 loop 079dfh ; e2 fa 11205 11231 mov dx, bx ; 89 da 11206 11232 out DX, AL ; ee … … 11208 11234 movzx ax, byte [bp-006h] ; 0f b6 46 fa 11209 11235 cmp cx, ax ; 39 c1 11210 jnc short 07 9c2h ; 73 0e11236 jnc short 07a00h ; 73 0e 11211 11237 les di, [bp-00ch] ; c4 7e f4 11212 11238 add di, cx ; 01 cf … … 11215 11241 out DX, AL ; ee 11216 11242 inc cx ; 41 11217 jmp short 079 ach ; eb ea11243 jmp short 079eah ; eb ea 11218 11244 mov dx, bx ; 89 da 11219 11245 in AL, DX ; ec … … 11221 11247 ; sub ah, ah ; 2a e4 11222 11248 test AL, strict byte 001h ; a8 01 11223 jne short 07 9c2h ; 75 f711249 jne short 07a00h ; 75 f7 11224 11250 test AL, strict byte 002h ; a8 02 11225 je short 07 9ddh ; 74 0e11251 je short 07a1bh ; 74 0e 11226 11252 lea dx, [bx+003h] ; 8d 57 03 11227 11253 xor al, al ; 30 c0 … … 11231 11257 ; sub ah, ah ; 2a e4 11232 11258 mov dx, strict word 00003h ; ba 03 00 11233 jmp short 07a 47h ; eb 6a11259 jmp short 07a85h ; eb 6a 11234 11260 mov ax, word [bp+004h] ; 8b 46 04 11235 11261 test ax, ax ; 85 c0 11236 je short 07 9ech ; 74 0811262 je short 07a2ah ; 74 08 11237 11263 lea dx, [bx+001h] ; 8d 57 01 11238 11264 mov cx, ax ; 89 c1 11239 11265 in AL, DX ; ec 11240 loop 07 9e9h ; e2 fd11266 loop 07a27h ; e2 fd 11241 11267 mov ax, word [bp+006h] ; 8b 46 06 11242 11268 mov es, [bp-00eh] ; 8e 46 f2 … … 11246 11272 lea ax, [bx+001h] ; 8d 47 01 11247 11273 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 11248 jne short 07a 0dh ; 75 0711274 jne short 07a4bh ; 75 07 11249 11275 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 11250 jbe short 07a 2ah ; 76 1d11276 jbe short 07a68h ; 76 1d 11251 11277 mov dx, ax ; 89 c2 11252 11278 mov cx, 08000h ; b9 00 80 … … 11258 11284 add ax, 00800h ; 05 00 08 11259 11285 mov word [bp+00eh], ax ; 89 46 0e 11260 jmp short 07 9fdh ; eb d311286 jmp short 07a3bh ; eb d3 11261 11287 mov dx, ax ; 89 c2 11262 11288 mov cx, word [bp+006h] ; 8b 4e 06 … … 11265 11291 mov es, [bp-00eh] ; 8e 46 f2 11266 11292 cmp word [es:si+01ch], strict byte 00000h ; 26 83 7c 1c 00 11267 je short 07a 45h ; 74 0711293 je short 07a83h ; 74 07 11268 11294 mov cx, word [es:si+01ch] ; 26 8b 4c 1c 11269 11295 in AL, DX ; ec 11270 loop 07a 42h ; e2 fd11296 loop 07a80h ; e2 fd 11271 11297 xor dx, dx ; 31 d2 11272 11298 mov ax, dx ; 89 d0 … … 11276 11302 pop bp ; 5d 11277 11303 retn 0000ch ; c2 0c 00 11278 scsi_enumerate_attached_devices_: ; 0xf7a 52LB 0x3e511304 scsi_enumerate_attached_devices_: ; 0xf7a90 LB 0x3e5 11279 11305 push bp ; 55 11280 11306 mov bp, sp ; 89 e5 … … 11288 11314 mov dx, strict word 0000eh ; ba 0e 00 11289 11315 mov ax, strict word 00040h ; b8 40 00 11290 call 016 1ch ; e8 b49b11316 call 0166ch ; e8 c6 9b 11291 11317 mov si, 00122h ; be 22 01 11292 11318 mov word [bp-01ah], ax ; 89 46 e6 11293 11319 mov word [bp-010h], strict word 00000h ; c7 46 f0 00 00 11294 jmp near 07 dc5h ; e9 4f 0311320 jmp near 07e03h ; e9 4f 03 11295 11321 mov es, [bp-01ah] ; 8e 46 e6 11296 11322 cmp byte [es:si+001e8h], 004h ; 26 80 bc e8 01 04 11297 jnc near 07e 2dh ; 0f 83 aa 0311323 jnc near 07e6bh ; 0f 83 aa 03 11298 11324 mov cx, strict word 0000ah ; b9 0a 00 11299 11325 xor bx, bx ; 31 db 11300 11326 mov dx, ss ; 8c d2 11301 11327 lea ax, [bp-026h] ; 8d 46 da 11302 call 094 6ah ; e8 da1911328 call 094aah ; e8 dc 19 11303 11329 mov byte [bp-026h], 025h ; c6 46 da 25 11304 11330 push dword 000000008h ; 66 6a 08 … … 11311 11337 lea bx, [bp-026h] ; 8d 5e da 11312 11338 mov ax, word [bp-00228h] ; 8b 86 d8 fd 11313 call 076 1ah ; e8 6b fb11339 call 07658h ; e8 6b fb 11314 11340 test al, al ; 84 c0 11315 je short 07a c1h ; 74 0e11341 je short 07affh ; 74 0e 11316 11342 push 00b9bh ; 68 9b 0b 11317 11343 push 00bd4h ; 68 d4 0b 11318 11344 push strict byte 00007h ; 6a 07 11319 call 019 22h ; e8 649e11345 call 01972h ; e8 76 9e 11320 11346 add sp, strict byte 00006h ; 83 c4 06 11321 11347 movzx ax, byte [bp-00225h] ; 0f b6 86 db fd … … 11329 11355 sal ax, 1 ; d1 e0 11330 11356 rcl dx, 1 ; d1 d2 11331 loop 07 adch ; e2 fa11357 loop 07b1ah ; e2 fa 11332 11358 or bx, ax ; 09 c3 11333 11359 or dx, di ; 09 fa … … 11346 11372 sal ax, 1 ; d1 e0 11347 11373 rcl dx, 1 ; d1 d2 11348 loop 07b 0eh ; e2 fa11374 loop 07b4ch ; e2 fa 11349 11375 or ax, bx ; 09 d8 11350 11376 or dx, di ; 09 fa … … 11353 11379 mov word [bp-016h], ax ; 89 46 ea 11354 11380 test dx, dx ; 85 d2 11355 jne short 07b 2bh ; 75 0511381 jne short 07b69h ; 75 05 11356 11382 cmp ax, 00200h ; 3d 00 02 11357 je short 07b 4bh ; 74 2011383 je short 07b89h ; 74 20 11358 11384 mov bx, 00da2h ; bb a2 0d 11359 11385 mov cx, ds ; 8c d9 11360 11386 mov ax, strict word 00004h ; b8 04 00 11361 call 01 8e1h ; e8 ab9d11387 call 01931h ; e8 bd 9d 11362 11388 push dx ; 52 11363 11389 push word [bp-016h] ; ff 76 ea … … 11365 11391 push 00bf3h ; 68 f3 0b 11366 11392 push strict byte 00004h ; 6a 04 11367 call 019 22h ; e8 dd9d11393 call 01972h ; e8 ef 9d 11368 11394 add sp, strict byte 0000ah ; 83 c4 0a 11369 jmp near 07d bch ; e9 71 0211395 jmp near 07dfah ; e9 71 02 11370 11396 mov es, [bp-01ah] ; 8e 46 e6 11371 11397 mov al, byte [es:si+001e8h] ; 26 8a 84 e8 01 11372 11398 mov byte [bp-00ch], al ; 88 46 f4 11373 11399 cmp AL, strict byte 001h ; 3c 01 11374 jc short 07b 66h ; 72 0c11375 jbe short 07b 6eh ; 76 1211400 jc short 07ba4h ; 72 0c 11401 jbe short 07bach ; 76 12 11376 11402 cmp AL, strict byte 003h ; 3c 03 11377 je short 07b 76h ; 74 1611403 je short 07bb4h ; 74 16 11378 11404 cmp AL, strict byte 002h ; 3c 02 11379 je short 07b 72h ; 74 0e11380 jmp short 07 bc2h ; eb 5c11405 je short 07bb0h ; 74 0e 11406 jmp short 07c00h ; eb 5c 11381 11407 test al, al ; 84 c0 11382 jne short 07 bc2h ; 75 5811408 jne short 07c00h ; 75 58 11383 11409 mov BL, strict byte 090h ; b3 90 11384 jmp short 07b 78h ; eb 0a11410 jmp short 07bb6h ; eb 0a 11385 11411 mov BL, strict byte 098h ; b3 98 11386 jmp short 07b 78h ; eb 0611412 jmp short 07bb6h ; eb 06 11387 11413 mov BL, strict byte 0a0h ; b3 a0 11388 jmp short 07b 78h ; eb 0211414 jmp short 07bb6h ; eb 02 11389 11415 mov BL, strict byte 0a8h ; b3 a8 11390 11416 mov al, bl ; 88 d8 … … 11392 11418 movzx cx, al ; 0f b6 c8 11393 11419 mov ax, cx ; 89 c8 11394 call 016 5ch ; e8 d89a11420 call 016ach ; e8 ea 9a 11395 11421 test al, al ; 84 c0 11396 je short 07 bc2h ; 74 3a11422 je short 07c00h ; 74 3a 11397 11423 mov al, bl ; 88 d8 11398 11424 db 0feh, 0c0h 11399 11425 ; inc al ; fe c0 11400 11426 xor ah, ah ; 30 e4 11401 call 016 5ch ; e8 cb9a11427 call 016ach ; e8 dd 9a 11402 11428 xor ah, ah ; 30 e4 11403 11429 mov dx, ax ; 89 c2 11404 11430 sal dx, 008h ; c1 e2 08 11405 11431 movzx ax, bl ; 0f b6 c3 11406 call 016 5ch ; e8 be9a11432 call 016ach ; e8 d0 9a 11407 11433 xor ah, ah ; 30 e4 11408 11434 add ax, dx ; 01 d0 … … 11413 11439 add AL, strict byte 002h ; 04 02 11414 11440 xor ah, ah ; 30 e4 11415 call 016 5ch ; e8 ab9a11441 call 016ach ; e8 bd 9a 11416 11442 xor ah, ah ; 30 e4 11417 11443 mov word [bp-014h], ax ; 89 46 ec 11418 11444 mov ax, cx ; 89 c8 11419 call 016 5ch ; e8 a19a11445 call 016ach ; e8 b3 9a 11420 11446 xor ah, ah ; 30 e4 11421 11447 mov word [bp-01ch], ax ; 89 46 e4 11422 jmp short 07c 07h ; eb 4511448 jmp short 07c45h ; eb 45 11423 11449 mov ax, word [bp-018h] ; 8b 46 e8 11424 11450 cmp ax, strict word 00040h ; 3d 40 00 11425 jnbe short 07 bcch ; 77 0211426 jne short 07 bd8h ; 75 0c11451 jnbe short 07c0ah ; 77 02 11452 jne short 07c16h ; 75 0c 11427 11453 mov word [bp-014h], 000ffh ; c7 46 ec ff 00 11428 11454 mov word [bp-01ch], strict word 0003fh ; c7 46 e4 3f 00 11429 jmp short 07 bf0h ; eb 1811455 jmp short 07c2eh ; eb 18 11430 11456 cmp ax, strict word 00020h ; 3d 20 00 11431 jnbe short 07 bdfh ; 77 0211432 jne short 07 be6h ; 75 0711457 jnbe short 07c1dh ; 77 02 11458 jne short 07c24h ; 75 07 11433 11459 mov word [bp-014h], 00080h ; c7 46 ec 80 00 11434 jmp short 07 bebh ; eb 0511460 jmp short 07c29h ; eb 05 11435 11461 mov word [bp-014h], strict word 00040h ; c7 46 ec 40 00 11436 11462 mov word [bp-01ch], strict word 00020h ; c7 46 e4 20 00 … … 11440 11466 mov dx, word [bp-018h] ; 8b 56 e8 11441 11467 xor cx, cx ; 31 c9 11442 call 094 00h ; e8 fe 1711468 call 09440h ; e8 00 18 11443 11469 mov di, ax ; 89 c7 11444 11470 mov word [bp-012h], dx ; 89 56 ee … … 11467 11493 mov word [es:bx+02ah], ax ; 26 89 47 2a 11468 11494 cmp word [bp-012h], strict byte 00000h ; 83 7e ee 00 11469 jne short 07c 63h ; 75 0611495 jne short 07ca1h ; 75 06 11470 11496 cmp di, 00400h ; 81 ff 00 04 11471 jbe short 07c 6bh ; 76 0811497 jbe short 07ca9h ; 76 08 11472 11498 mov word [es:bx+028h], 00400h ; 26 c7 47 28 00 04 11473 jmp short 07c 6fh ; eb 0411499 jmp short 07cadh ; eb 04 11474 11500 mov word [es:bx+028h], di ; 26 89 7f 28 11475 11501 mov bx, 00da2h ; bb a2 0d 11476 11502 mov cx, ds ; 8c d9 11477 11503 mov ax, strict word 00004h ; b8 04 00 11478 call 01 8e1h ; e8 679c11504 call 01931h ; e8 79 9c 11479 11505 push word [bp-018h] ; ff 76 e8 11480 11506 push word [bp-00eh] ; ff 76 f2 … … 11487 11513 push 00c21h ; 68 21 0c 11488 11514 push strict byte 00004h ; 6a 04 11489 call 019 22h ; e8 8b9c11515 call 01972h ; e8 9d 9c 11490 11516 add sp, strict byte 00012h ; 83 c4 12 11491 11517 movzx ax, dl ; 0f b6 c2 … … 11499 11525 mov word [es:bx+030h], ax ; 26 89 47 30 11500 11526 cmp word [bp-012h], strict byte 00000h ; 83 7e ee 00 11501 jne short 07c c1h ; 75 0611527 jne short 07cffh ; 75 06 11502 11528 cmp di, 00400h ; 81 ff 00 04 11503 jbe short 07 cc9h ; 76 0811529 jbe short 07d07h ; 76 08 11504 11530 mov word [es:bx+02eh], 00400h ; 26 c7 47 2e 00 04 11505 jmp short 07 ccdh ; eb 0411531 jmp short 07d0bh ; eb 04 11506 11532 mov word [es:bx+02eh], di ; 26 89 7f 2e 11507 11533 movzx ax, dl ; 0f b6 c2 … … 11525 11551 mov dx, strict word 00075h ; ba 75 00 11526 11552 mov ax, strict word 00040h ; b8 40 00 11527 call 016 00h ; e8 f3 9811553 call 01650h ; e8 05 99 11528 11554 db 0feh, 0c0h 11529 11555 ; inc al ; fe c0 … … 11531 11557 mov dx, strict word 00075h ; ba 75 00 11532 11558 mov ax, strict word 00040h ; b8 40 00 11533 call 016 0eh ; e8 f3 9811559 call 0165eh ; e8 05 99 11534 11560 inc byte [bp-00ch] ; fe 46 f4 11535 11561 mov al, byte [bp-00ch] ; 8a 46 f4 11536 11562 mov es, [bp-01ah] ; 8e 46 e6 11537 11563 mov byte [es:si+001e8h], al ; 26 88 84 e8 01 11538 jmp near 07d bch ; e9 90 0011564 jmp near 07dfah ; e9 90 00 11539 11565 mov bx, 00da2h ; bb a2 0d 11540 11566 mov cx, ds ; 8c d9 11541 11567 mov ax, strict word 00004h ; b8 04 00 11542 call 01 8e1h ; e8 aa9b11568 call 01931h ; e8 bc 9b 11543 11569 push word [bp-010h] ; ff 76 f0 11544 11570 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 … … 11546 11572 push 00c4bh ; 68 4b 0c 11547 11573 push strict byte 00004h ; 6a 04 11548 call 019 22h ; e8 db9b11574 call 01972h ; e8 ed 9b 11549 11575 add sp, strict byte 00008h ; 83 c4 08 11550 11576 mov dl, byte [bp-00ch] ; 8a 56 f4 … … 11585 11611 inc word [bp-010h] ; ff 46 f0 11586 11612 cmp word [bp-010h], strict byte 00010h ; 83 7e f0 10 11587 jnl short 07e 2dh ; 7d 6811613 jnl short 07e6bh ; 7d 68 11588 11614 mov byte [bp-026h], 012h ; c6 46 da 12 11589 11615 xor al, al ; 30 c0 … … 11602 11628 lea bx, [bp-026h] ; 8d 5e da 11603 11629 mov ax, word [bp-00228h] ; 8b 86 d8 fd 11604 call 076 1ah ; e8 24 f811630 call 07658h ; e8 24 f8 11605 11631 test al, al ; 84 c0 11606 je short 07e 08h ; 74 0e11632 je short 07e46h ; 74 0e 11607 11633 push 00b9bh ; 68 9b 0b 11608 11634 push 00bbbh ; 68 bb 0b 11609 11635 push strict byte 00007h ; 6a 07 11610 call 019 22h ; e8 1d9b11636 call 01972h ; e8 2f 9b 11611 11637 add sp, strict byte 00006h ; 83 c4 06 11612 11638 test byte [bp-00226h], 0e0h ; f6 86 da fd e0 11613 jne short 07e 18h ; 75 0911639 jne short 07e56h ; 75 09 11614 11640 test byte [bp-00226h], 01fh ; f6 86 da fd 1f 11615 je near 07a 76h ; 0f 84 5e fc11641 je near 07ab4h ; 0f 84 5e fc 11616 11642 test byte [bp-00226h], 0e0h ; f6 86 da fd e0 11617 jne short 07d bch ; 75 9d11643 jne short 07dfah ; 75 9d 11618 11644 mov al, byte [bp-00226h] ; 8a 86 da fd 11619 11645 and AL, strict byte 01fh ; 24 1f 11620 11646 cmp AL, strict byte 005h ; 3c 05 11621 je near 07d 2ch ; 0f 84 01 ff11622 jmp short 07d bch ; eb 8f11647 je near 07d6ah ; 0f 84 01 ff 11648 jmp short 07dfah ; eb 8f 11623 11649 lea sp, [bp-00ah] ; 8d 66 f6 11624 11650 pop di ; 5f … … 11629 11655 pop bp ; 5d 11630 11656 retn ; c3 11631 _scsi_init: ; 0xf7e 37LB 0x6611657 _scsi_init: ; 0xf7e75 LB 0x66 11632 11658 push bp ; 55 11633 11659 mov bp, sp ; 89 e5 11634 11660 mov dx, strict word 0000eh ; ba 0e 00 11635 11661 mov ax, strict word 00040h ; b8 40 00 11636 call 016 1ch ; e8 d99711662 call 0166ch ; e8 eb 97 11637 11663 mov bx, 00122h ; bb 22 01 11638 11664 mov es, ax ; 8e c0 … … 11645 11671 ; sub ah, ah ; 2a e4 11646 11672 cmp AL, strict byte 055h ; 3c 55 11647 jne short 07e 67h ; 75 0c11673 jne short 07ea5h ; 75 0c 11648 11674 xor al, al ; 30 c0 11649 11675 mov dx, 00433h ; ba 33 04 11650 11676 out DX, AL ; ee 11651 11677 mov ax, 00430h ; b8 30 04 11652 call 07a 52h ; e8 eb fb11678 call 07a90h ; e8 eb fb 11653 11679 mov AL, strict byte 055h ; b0 55 11654 11680 mov dx, 00436h ; ba 36 04 … … 11658 11684 ; sub ah, ah ; 2a e4 11659 11685 cmp AL, strict byte 055h ; 3c 55 11660 jne short 07e 80h ; 75 0c11686 jne short 07ebeh ; 75 0c 11661 11687 xor al, al ; 30 c0 11662 11688 mov dx, 00437h ; ba 37 04 11663 11689 out DX, AL ; ee 11664 11690 mov ax, 00434h ; b8 34 04 11665 call 07a 52h ; e8 d2 fb11691 call 07a90h ; e8 d2 fb 11666 11692 mov AL, strict byte 055h ; b0 55 11667 11693 mov dx, 0043ah ; ba 3a 04 … … 11671 11697 ; sub ah, ah ; 2a e4 11672 11698 cmp AL, strict byte 055h ; 3c 55 11673 jne short 07e 99h ; 75 0c11699 jne short 07ed7h ; 75 0c 11674 11700 xor al, al ; 30 c0 11675 11701 mov dx, 0043bh ; ba 3b 04 11676 11702 out DX, AL ; ee 11677 11703 mov ax, 00438h ; b8 38 04 11678 call 07a 52h ; e8 b9 fb11704 call 07a90h ; e8 b9 fb 11679 11705 mov sp, bp ; 89 ec 11680 11706 pop bp ; 5d 11681 11707 retn ; c3 11682 high_bits_save_: ; 0xf7e 9dLB 0x1711708 high_bits_save_: ; 0xf7edb LB 0x17 11683 11709 push bp ; 55 11684 11710 mov bp, sp ; 89 e5 … … 11692 11718 pop bp ; 5d 11693 11719 retn ; c3 11694 high_bits_restore_: ; 0xf7e b4LB 0x1711720 high_bits_restore_: ; 0xf7ef2 LB 0x17 11695 11721 push bp ; 55 11696 11722 mov bp, sp ; 89 e5 … … 11704 11730 pop bp ; 5d 11705 11731 retn ; c3 11706 ahci_ctrl_set_bits_: ; 0xf7 ecbLB 0x4311732 ahci_ctrl_set_bits_: ; 0xf7f09 LB 0x43 11707 11733 push bp ; 55 11708 11734 mov bp, sp ; 89 e5 … … 11742 11768 pop bp ; 5d 11743 11769 retn ; c3 11744 ahci_ctrl_clear_bits_: ; 0xf7f 0eLB 0x4711770 ahci_ctrl_clear_bits_: ; 0xf7f4c LB 0x47 11745 11771 push bp ; 55 11746 11772 mov bp, sp ; 89 e5 … … 11782 11808 pop bp ; 5d 11783 11809 retn ; c3 11784 ahci_ctrl_is_bit_set_: ; 0xf7f 55LB 0x3911810 ahci_ctrl_is_bit_set_: ; 0xf7f93 LB 0x39 11785 11811 push bp ; 55 11786 11812 mov bp, sp ; 89 e5 … … 11804 11830 xchg dx, ax ; 92 11805 11831 test dx, di ; 85 fa 11806 jne short 07f 81h ; 75 0411832 jne short 07fbfh ; 75 04 11807 11833 test ax, bx ; 85 d8 11808 je short 07f 85h ; 74 0411834 je short 07fc3h ; 74 04 11809 11835 mov AL, strict byte 001h ; b0 01 11810 jmp short 07f 87h ; eb 0211836 jmp short 07fc5h ; eb 02 11811 11837 xor al, al ; 30 c0 11812 11838 lea sp, [bp-004h] ; 8d 66 fc … … 11815 11841 pop bp ; 5d 11816 11842 retn ; c3 11817 ahci_ctrl_extract_bits_: ; 0xf7f 8eLB 0x1b11843 ahci_ctrl_extract_bits_: ; 0xf7fcc LB 0x1b 11818 11844 push si ; 56 11819 11845 push bp ; 55 … … 11823 11849 and dx, cx ; 21 ca 11824 11850 movzx cx, byte [bp+006h] ; 0f b6 4e 06 11825 jcxz 07f a4h ; e3 0611851 jcxz 07fe2h ; e3 06 11826 11852 shr dx, 1 ; d1 ea 11827 11853 rcr ax, 1 ; d1 d8 11828 loop 07f 9eh ; e2 fa11854 loop 07fdch ; e2 fa 11829 11855 pop bp ; 5d 11830 11856 pop si ; 5e 11831 11857 retn 00002h ; c2 02 00 11832 ahci_addr_to_phys_: ; 0xf7f a9LB 0x1e11858 ahci_addr_to_phys_: ; 0xf7fe7 LB 0x1e 11833 11859 push bx ; 53 11834 11860 push cx ; 51 … … 11841 11867 sal ax, 1 ; d1 e0 11842 11868 rcl dx, 1 ; d1 d2 11843 loop 07f b7h ; e2 fa11869 loop 07ff5h ; e2 fa 11844 11870 xor cx, cx ; 31 c9 11845 11871 add ax, bx ; 01 d8 … … 11849 11875 pop bx ; 5b 11850 11876 retn ; c3 11851 ahci_port_cmd_sync_: ; 0xf 7fc7LB 0xd511877 ahci_port_cmd_sync_: ; 0xf8005 LB 0xd5 11852 11878 push bp ; 55 11853 11879 mov bp, sp ; 89 e5 … … 11863 11889 mov di, word [es:si+00260h] ; 26 8b bc 60 02 11864 11890 cmp AL, strict byte 0ffh ; 3c ff 11865 je near 080 94h ; 0f 84 aa 0011891 je near 080d2h ; 0f 84 aa 00 11866 11892 movzx cx, byte [es:si+00263h] ; 26 0f b6 8c 63 02 11867 11893 xor dx, dx ; 31 d2 … … 11875 11901 lea ax, [si+00080h] ; 8d 84 80 00 11876 11902 mov dx, es ; 8c c2 11877 call 07f a9h ; e8 96 ff11903 call 07fe7h ; e8 96 ff 11878 11904 mov es, [bp-00ah] ; 8e 46 f6 11879 11905 mov word [es:si+008h], ax ; 26 89 44 08 … … 11885 11911 xor cx, cx ; 31 c9 11886 11912 mov ax, di ; 89 f8 11887 call 07 ecbh ; e8 98 fe11913 call 07f09h ; e8 98 fe 11888 11914 lea ax, [si+00138h] ; 8d 84 38 01 11889 11915 cwd ; 99 … … 11912 11938 mov dx, si ; 89 f2 11913 11939 mov ax, di ; 89 f8 11914 call 07f 55h ; e8 e2 fe11940 call 07f93h ; e8 e2 fe 11915 11941 test al, al ; 84 c0 11916 je short 080 56h ; 74 df11942 je short 08094h ; 74 df 11917 11943 mov bx, strict word 00001h ; bb 01 00 11918 11944 xor cx, cx ; 31 c9 11919 11945 mov dx, si ; 89 f2 11920 11946 mov ax, di ; 89 f8 11921 call 07 ecbh ; e8 48 fe11947 call 07f09h ; e8 48 fe 11922 11948 mov dx, word [bp-00ch] ; 8b 56 f4 11923 11949 add dx, 00118h ; 81 c2 18 01 … … 11925 11951 xor cx, cx ; 31 c9 11926 11952 mov ax, di ; 89 f8 11927 call 07f 0eh ; e8 7a fe11953 call 07f4ch ; e8 7a fe 11928 11954 lea sp, [bp-006h] ; 8d 66 fa 11929 11955 pop di ; 5f … … 11932 11958 pop bp ; 5d 11933 11959 retn ; c3 11934 ahci_cmd_data_: ; 0xf80 9cLB 0x1ca11960 ahci_cmd_data_: ; 0xf80da LB 0x1ca 11935 11961 push bp ; 55 11936 11962 mov bp, sp ; 89 e5 … … 11956 11982 mov ax, 00080h ; b8 80 00 11957 11983 mov dx, word [bp-00ah] ; 8b 56 f6 11958 call 094 6ah ; e8 8f1311984 call 094aah ; e8 91 13 11959 11985 mov es, [bp-00ah] ; 8e 46 f6 11960 11986 mov word [es:si+00080h], 08027h ; 26 c7 84 80 00 27 80 … … 11972 11998 shr bx, 1 ; d1 eb 11973 11999 rcr ax, 1 ; d1 d8 11974 loop 081 0eh ; e2 fa12000 loop 0814ch ; e2 fa 11975 12001 mov es, [bp-00ah] ; 8e 46 f6 11976 12002 mov byte [es:si+00085h], al ; 26 88 84 85 00 … … 11997 12023 mov bx, word [bp-016h] ; 8b 5e ea 11998 12024 xor cx, cx ; 31 c9 11999 call 094 39h ; e8 c21212025 call 09479h ; e8 c4 12 12000 12026 push dx ; 52 12001 12027 push ax ; 50 … … 12005 12031 mov ax, 0026ah ; b8 6a 02 12006 12032 mov dx, word [bp-00ah] ; 8b 56 f6 12007 call 093 51h ; e8 c4 1112033 call 0938fh ; e8 c4 11 12008 12034 mov es, [bp-00ah] ; 8e 46 f6 12009 12035 movzx ax, byte [es:si+00263h] ; 26 0f b6 84 63 02 … … 12025 12051 mov es, [bp-012h] ; 8e 46 ee 12026 12052 cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00 12027 je short 082 06h ; 74 2c12053 je short 08244h ; 74 2c 12028 12054 mov dx, word [es:di+01ch] ; 26 8b 55 1c 12029 12055 dec dx ; 4a … … 12044 12070 movzx dx, byte [es:bx+00263h] ; 26 0f b6 97 63 02 12045 12071 cmp ax, dx ; 39 d0 12046 jnc short 082 20h ; 73 0312072 jnc short 0825eh ; 73 03 12047 12073 inc ax ; 40 12048 jmp short 082 10h ; eb f012074 jmp short 0824eh ; eb f0 12049 12075 mov al, byte [bp-008h] ; 8a 46 f8 12050 12076 cmp AL, strict byte 035h ; 3c 35 12051 jne short 082 2dh ; 75 0612077 jne short 0826bh ; 75 06 12052 12078 mov byte [bp-008h], 040h ; c6 46 f8 40 12053 jmp short 082 41h ; eb 1412079 jmp short 0827fh ; eb 14 12054 12080 cmp AL, strict byte 0a0h ; 3c a0 12055 jne short 082 3dh ; 75 0c12081 jne short 0827bh ; 75 0c 12056 12082 or byte [bp-008h], 020h ; 80 4e f8 20 12057 12083 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 12058 jmp short 082 41h ; eb 0412084 jmp short 0827fh ; eb 04 12059 12085 mov byte [bp-008h], 000h ; c6 46 f8 00 12060 12086 or byte [bp-008h], 005h ; 80 4e f8 05 … … 12062 12088 mov ax, word [bp-00eh] ; 8b 46 f2 12063 12089 mov dx, word [bp-00ch] ; 8b 56 f4 12064 call 0 7fc7h ; e8 75 fd12090 call 08005h ; e8 75 fd 12065 12091 mov ax, word [bp-00eh] ; 8b 46 f2 12066 12092 add ax, 0026ah ; 05 6a 02 12067 12093 mov dx, word [bp-00ch] ; 8b 56 f4 12068 call 09 3cah ; e8 6c 1112094 call 09408h ; e8 6c 11 12069 12095 lea sp, [bp-006h] ; 8d 66 fa 12070 12096 pop di ; 5f … … 12073 12099 pop bp ; 5d 12074 12100 retn ; c3 12075 ahci_port_deinit_current_: ; 0xf82 66LB 0x14412101 ahci_port_deinit_current_: ; 0xf82a4 LB 0x144 12076 12102 push bp ; 55 12077 12103 mov bp, sp ; 89 e5 … … 12088 12114 mov byte [bp-00ah], al ; 88 46 f6 12089 12115 cmp AL, strict byte 0ffh ; 3c ff 12090 je near 083 a1h ; 0f 84 17 0112116 je near 083dfh ; 0f 84 17 01 12091 12117 movzx dx, al ; 0f b6 d0 12092 12118 sal dx, 007h ; c1 e2 07 … … 12095 12121 xor cx, cx ; 31 c9 12096 12122 mov ax, si ; 89 f0 12097 call 07f 0eh ; e8 70 fc12123 call 07f4ch ; e8 70 fc 12098 12124 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 12099 12125 sal ax, 007h ; c1 e0 07 … … 12104 12130 xor cx, cx ; 31 c9 12105 12131 mov ax, si ; 89 f0 12106 call 07f 55h ; e8 9d fc12132 call 07f93h ; e8 9d fc 12107 12133 cmp AL, strict byte 001h ; 3c 01 12108 je short 082 9eh ; 74 e212134 je short 082dch ; 74 e2 12109 12135 mov cx, strict word 00020h ; b9 20 00 12110 12136 xor bx, bx ; 31 db 12111 12137 mov ax, di ; 89 f8 12112 12138 mov dx, word [bp-00ch] ; 8b 56 f4 12113 call 094 6ah ; e8 a11112139 call 094aah ; e8 a3 11 12114 12140 lea ax, [di+00080h] ; 8d 85 80 00 12115 12141 mov cx, strict word 00040h ; b9 40 00 12116 12142 xor bx, bx ; 31 db 12117 12143 mov dx, word [bp-00ch] ; 8b 56 f4 12118 call 094 6ah ; e8 921112144 call 094aah ; e8 94 11 12119 12145 lea ax, [di+00200h] ; 8d 85 00 02 12120 12146 mov cx, strict word 00060h ; b9 60 00 12121 12147 xor bx, bx ; 31 db 12122 12148 mov dx, word [bp-00ch] ; 8b 56 f4 12123 call 094 6ah ; e8 831112149 call 094aah ; e8 85 11 12124 12150 mov ax, word [bp-00eh] ; 8b 46 f2 12125 12151 add ax, 00108h ; 05 08 01 … … 12223 12249 pop bp ; 5d 12224 12250 retn ; c3 12225 ahci_port_init_: ; 0xf83 aaLB 0x20612251 ahci_port_init_: ; 0xf83e8 LB 0x206 12226 12252 push bp ; 55 12227 12253 mov bp, sp ; 89 e5 … … 12233 12259 mov word [bp-00ah], dx ; 89 56 f6 12234 12260 mov byte [bp-008h], bl ; 88 5e f8 12235 call 082 66h ; e8 a8 fe12261 call 082a4h ; e8 a8 fe 12236 12262 movzx dx, bl ; 0f b6 d3 12237 12263 sal dx, 007h ; c1 e2 07 … … 12241 12267 mov bx, strict word 00011h ; bb 11 00 12242 12268 xor cx, cx ; 31 c9 12243 call 07f 0eh ; e8 36 fb12269 call 07f4ch ; e8 36 fb 12244 12270 movzx di, byte [bp-008h] ; 0f b6 7e f8 12245 12271 sal di, 007h ; c1 e7 07 … … 12249 12275 mov bx, 0c011h ; bb 11 c0 12250 12276 xor cx, cx ; 31 c9 12251 call 07f 55h ; e8 62 fb12277 call 07f93h ; e8 62 fb 12252 12278 cmp AL, strict byte 001h ; 3c 01 12253 je short 08 3d8h ; 74 e112279 je short 08416h ; 74 e1 12254 12280 mov cx, strict word 00020h ; b9 20 00 12255 12281 xor bx, bx ; 31 db 12256 12282 mov ax, si ; 89 f0 12257 12283 mov dx, word [bp-00ah] ; 8b 56 f6 12258 call 094 6ah ; e8 661012284 call 094aah ; e8 68 10 12259 12285 lea ax, [si+00080h] ; 8d 84 80 00 12260 12286 mov cx, strict word 00040h ; b9 40 00 12261 12287 xor bx, bx ; 31 db 12262 12288 mov dx, word [bp-00ah] ; 8b 56 f6 12263 call 094 6ah ; e8 571012289 call 094aah ; e8 59 10 12264 12290 mov ax, si ; 89 f0 12265 12291 add ah, 002h ; 80 c4 02 … … 12268 12294 xor bx, bx ; 31 db 12269 12295 mov dx, word [bp-00ah] ; 8b 56 f6 12270 call 094 6ah ; e8 441012296 call 094aah ; e8 46 10 12271 12297 lea ax, [di+00108h] ; 8d 85 08 01 12272 12298 cwd ; 99 … … 12282 12308 mov ax, word [bp-00ch] ; 8b 46 f4 12283 12309 mov dx, word [bp-00ah] ; 8b 56 f6 12284 call 07f a9h ; e8 60 fb12310 call 07fe7h ; e8 60 fb 12285 12311 mov es, [bp-00ah] ; 8e 46 f6 12286 12312 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 … … 12327 12353 mov ax, si ; 89 f0 12328 12354 mov dx, word [bp-00ah] ; 8b 56 f6 12329 call 07f a9h ; e8 f4 fa12355 call 07fe7h ; e8 f4 fa 12330 12356 mov es, [bp-00ah] ; 8e 46 f6 12331 12357 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 … … 12432 12458 pop bp ; 5d 12433 12459 retn ; c3 12434 @ahci_read_sectors: ; 0xf85 b0LB 0x9412460 @ahci_read_sectors: ; 0xf85ee LB 0x94 12435 12461 push bp ; 55 12436 12462 mov bp, sp ; 89 e5 … … 12441 12467 sub di, strict byte 0000ch ; 83 ef 0c 12442 12468 cmp di, strict byte 00004h ; 83 ff 04 12443 jbe short 08 5d4h ; 76 0f12469 jbe short 08612h ; 76 0f 12444 12470 push di ; 57 12445 12471 push 00c66h ; 68 66 0c 12446 12472 push 00c78h ; 68 78 0c 12447 12473 push strict byte 00007h ; 6a 07 12448 call 019 22h ; e8 519312474 call 01972h ; e8 63 93 12449 12475 add sp, strict byte 00008h ; 83 c4 08 12450 12476 les bx, [bp+004h] ; c4 5e 04 12451 12477 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 12452 12478 xor ax, ax ; 31 c0 12453 call 07e 9dh ; e8 bc f812479 call 07edbh ; e8 bc f8 12454 12480 mov es, [bp+006h] ; 8e 46 06 12455 12481 add di, bx ; 01 df … … 12458 12484 mov dx, word [es:di+001eeh] ; 26 8b 95 ee 01 12459 12485 xor ax, ax ; 31 c0 12460 call 083 aah ; e8 b1 fd12486 call 083e8h ; e8 b1 fd 12461 12487 mov bx, strict word 00025h ; bb 25 00 12462 12488 mov ax, di ; 89 f8 12463 12489 mov dx, word [bp+006h] ; 8b 56 06 12464 call 080 9ch ; e8 98 fa12490 call 080dah ; e8 98 fa 12465 12491 mov es, [bp+006h] ; 8e 46 06 12466 12492 mov bx, di ; 89 fb … … 12482 12508 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 12483 12509 xor ax, ax ; 31 c0 12484 call 07e b4h ; e8 7b f812510 call 07ef2h ; e8 7b f8 12485 12511 xor ax, ax ; 31 c0 12486 12512 lea sp, [bp-004h] ; 8d 66 fc … … 12489 12515 pop bp ; 5d 12490 12516 retn 00004h ; c2 04 00 12491 @ahci_write_sectors: ; 0xf86 44LB 0x7012517 @ahci_write_sectors: ; 0xf8682 LB 0x70 12492 12518 push bp ; 55 12493 12519 mov bp, sp ; 89 e5 … … 12499 12525 sub bx, strict byte 0000ch ; 83 eb 0c 12500 12526 cmp bx, strict byte 00004h ; 83 fb 04 12501 jbe short 086 6ch ; 76 0f12527 jbe short 086aah ; 76 0f 12502 12528 push bx ; 53 12503 12529 push 00c97h ; 68 97 0c 12504 12530 push 00c78h ; 68 78 0c 12505 12531 push strict byte 00007h ; 6a 07 12506 call 019 22h ; e8 b99212532 call 01972h ; e8 cb 92 12507 12533 add sp, strict byte 00008h ; 83 c4 08 12508 12534 mov es, cx ; 8e c1 12509 12535 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12510 12536 xor ax, ax ; 31 c0 12511 call 07e 9dh ; e8 25 f812537 call 07edbh ; e8 25 f8 12512 12538 mov es, cx ; 8e c1 12513 12539 add bx, si ; 01 f3 … … 12515 12541 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12516 12542 xor ax, ax ; 31 c0 12517 call 083 aah ; e8 1e fd12543 call 083e8h ; e8 1e fd 12518 12544 mov bx, strict word 00035h ; bb 35 00 12519 12545 mov ax, si ; 89 f0 12520 12546 mov dx, cx ; 89 ca 12521 call 080 9ch ; e8 06 fa12547 call 080dah ; e8 06 fa 12522 12548 mov es, cx ; 8e c1 12523 12549 mov dx, word [es:si+00ah] ; 26 8b 54 0a … … 12525 12551 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12526 12552 xor ax, ax ; 31 c0 12527 call 07e b4h ; e8 0a f812553 call 07ef2h ; e8 0a f8 12528 12554 xor ax, ax ; 31 c0 12529 12555 lea sp, [bp-002h] ; 8d 66 fe … … 12531 12557 pop bp ; 5d 12532 12558 retn 00004h ; c2 04 00 12533 ahci_cmd_packet_: ; 0xf86 b4LB 0x17312559 ahci_cmd_packet_: ; 0xf86f2 LB 0x173 12534 12560 push bp ; 55 12535 12561 mov bp, sp ; 89 e5 … … 12543 12569 mov dx, strict word 0000eh ; ba 0e 00 12544 12570 mov ax, strict word 00040h ; b8 40 00 12545 call 016 1ch ; e8 4d8f12571 call 0166ch ; e8 5f 8f 12546 12572 mov si, 00122h ; be 22 01 12547 12573 mov word [bp-008h], ax ; 89 46 f8 12548 12574 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12549 jne short 08 6fah ; 75 1f12575 jne short 08738h ; 75 1f 12550 12576 mov bx, 00da2h ; bb a2 0d 12551 12577 mov cx, ds ; 8c d9 12552 12578 mov ax, strict word 00004h ; b8 04 00 12553 call 01 8e1h ; e8 fb 9112579 call 01931h ; e8 0d 92 12554 12580 push 00caah ; 68 aa 0c 12555 12581 push 00cbah ; 68 ba 0c 12556 12582 push strict byte 00004h ; 6a 04 12557 call 019 22h ; e8 319212583 call 01972h ; e8 43 92 12558 12584 add sp, strict byte 00006h ; 83 c4 06 12559 12585 mov ax, strict word 00001h ; b8 01 00 12560 jmp near 088 1eh ; e9 24 0112586 jmp near 0885ch ; e9 24 01 12561 12587 test byte [bp+004h], 001h ; f6 46 04 01 12562 jne short 08 6f4h ; 75 f412588 jne short 08732h ; 75 f4 12563 12589 mov ax, word [bp+006h] ; 8b 46 06 12564 12590 mov dx, word [bp+008h] ; 8b 56 08 … … 12566 12592 sal ax, 1 ; d1 e0 12567 12593 rcl dx, 1 ; d1 d2 12568 loop 087 09h ; e2 fa12594 loop 08747h ; e2 fa 12569 12595 mov es, [bp-008h] ; 8e 46 f8 12570 12596 mov word [es:si], ax ; 26 89 04 … … 12578 12604 mov dx, word [bp+008h] ; 8b 56 08 12579 12605 xor cx, cx ; 31 c9 12580 call 094 00h ; e8 ca0c12606 call 09440h ; e8 cc 0c 12581 12607 mov word [es:si+00ah], ax ; 26 89 44 0a 12582 12608 xor di, di ; 31 ff … … 12588 12614 xor ax, ax ; 31 c0 12589 12615 mov dx, word [bp-00ah] ; 8b 56 f6 12590 call 07e 9dh ; e8 47 f712616 call 07edbh ; e8 47 f7 12591 12617 mov es, [bp-008h] ; 8e 46 f8 12592 12618 mov bx, word [bp-014h] ; 8b 5e ec … … 12595 12621 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12596 12622 xor ax, ax ; 31 c0 12597 call 083 aah ; e8 3c fc12623 call 083e8h ; e8 3c fc 12598 12624 movzx ax, byte [bp-006h] ; 0f b6 46 fa 12599 12625 push ax ; 50 … … 12602 12628 mov ax, 000c0h ; b8 c0 00 12603 12629 mov dx, word [bp-00ah] ; 8b 56 f6 12604 call 094 77h ; e8 f50c12630 call 094b7h ; e8 f7 0c 12605 12631 mov es, [bp-008h] ; 8e 46 f8 12606 12632 mov word [es:si+014h], di ; 26 89 7c 14 … … 12609 12635 mov ax, word [es:si+01ah] ; 26 8b 44 1a 12610 12636 test ax, ax ; 85 c0 12611 je short 087 c0h ; 74 2712637 je short 087feh ; 74 27 12612 12638 dec ax ; 48 12613 12639 mov es, [bp-00ah] ; 8e 46 f6 … … 12622 12648 mov ax, si ; 89 f0 12623 12649 mov dx, word [bp-008h] ; 8b 56 f8 12624 call 080 9ch ; e8 d1 f812650 call 080dah ; e8 d1 f8 12625 12651 les bx, [bp-00eh] ; c4 5e f2 12626 12652 mov ax, word [es:bx+004h] ; 26 8b 47 04 … … 12645 12671 mov ax, word [bp-00eh] ; 8b 46 f2 12646 12672 mov dx, word [bp-00ch] ; 8b 56 f4 12647 call 07e b4h ; e8 aa f612673 call 07ef2h ; e8 aa f6 12648 12674 les bx, [bp-00eh] ; c4 5e f2 12649 12675 mov ax, word [es:bx+006h] ; 26 8b 47 06 12650 12676 or ax, word [es:bx+004h] ; 26 0b 47 04 12651 jne short 088 1ch ; 75 0512677 jne short 0885ah ; 75 05 12652 12678 mov ax, strict word 00004h ; b8 04 00 12653 jmp short 088 1eh ; eb 0212679 jmp short 0885ch ; eb 02 12654 12680 xor ax, ax ; 31 c0 12655 12681 lea sp, [bp-004h] ; 8d 66 fc … … 12658 12684 pop bp ; 5d 12659 12685 retn 0000ch ; c2 0c 00 12660 ahci_port_detect_device_: ; 0xf88 27LB 0x3d112686 ahci_port_detect_device_: ; 0xf8865 LB 0x3d1 12661 12687 push bp ; 55 12662 12688 mov bp, sp ; 89 e5 … … 12670 12696 movzx cx, bl ; 0f b6 cb 12671 12697 mov bx, cx ; 89 cb 12672 call 083 aah ; e8 69 fb12698 call 083e8h ; e8 69 fb 12673 12699 mov dx, strict word 0000eh ; ba 0e 00 12674 12700 mov ax, strict word 00040h ; b8 40 00 12675 call 016 1ch ; e8 d28d12701 call 0166ch ; e8 e4 8d 12676 12702 mov word [bp-020h], ax ; 89 46 e0 12677 12703 mov si, 00122h ; be 22 01 … … 12746 12772 mov bx, strict word 0000fh ; bb 0f 00 12747 12773 xor cx, cx ; 31 c9 12748 call 07f 8eh ; e8 90 f612774 call 07fcch ; e8 90 f6 12749 12775 cmp ax, strict word 00003h ; 3d 03 00 12750 jne near 08 bf0h ; 0f 85 eb 0212776 jne near 08c2eh ; 0f 85 eb 02 12751 12777 mov es, [bp-00eh] ; 8e 46 f2 12752 12778 mov al, byte [es:si+001edh] ; 26 8a 84 ed 01 12753 12779 mov byte [bp-00ah], al ; 88 46 f6 12754 12780 cmp AL, strict byte 004h ; 3c 04 12755 jnc near 08 bf0h ; 0f 83 da 0212781 jnc near 08c2eh ; 0f 83 da 02 12756 12782 mov dx, word [bp-01ch] ; 8b 56 e4 12757 12783 add dx, 00118h ; 81 c2 18 01 … … 12760 12786 mov bx, strict word 00010h ; bb 10 00 12761 12787 xor cx, cx ; 31 c9 12762 call 07 ecbh ; e8 9e f512788 call 07f09h ; e8 9e f5 12763 12789 mov ax, word [bp-01ch] ; 8b 46 e4 12764 12790 add ax, 00124h ; 05 24 01 … … 12786 12812 add cl, 00ch ; 80 c1 0c 12787 12813 test dx, dx ; 85 d2 12788 jne near 08b 42h ; 0f 85 d5 0112814 jne near 08b80h ; 0f 85 d5 01 12789 12815 cmp bx, 00101h ; 81 fb 01 01 12790 jne near 08b 42h ; 0f 85 cd 0112816 jne near 08b80h ; 0f 85 cd 01 12791 12817 mov es, [bp-00eh] ; 8e 46 f2 12792 12818 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h … … 12800 12826 mov ax, si ; 89 f0 12801 12827 mov dx, word [bp-020h] ; 8b 56 e0 12802 call 080 9ch ; e8 fc f612828 call 080dah ; e8 fc f6 12803 12829 mov byte [bp-00ch], cl ; 88 4e f4 12804 12830 test byte [bp-00228h], 080h ; f6 86 d8 fd 80 … … 12816 12842 mov word [bp-014h], dx ; 89 56 ec 12817 12843 cmp dx, 00fffh ; 81 fa ff 0f 12818 jne short 08 9e3h ; 75 1012844 jne short 08a21h ; 75 10 12819 12845 cmp di, strict byte 0ffffh ; 83 ff ff 12820 jne short 08 9e3h ; 75 0b12846 jne short 08a21h ; 75 0b 12821 12847 mov di, word [bp-00160h] ; 8b be a0 fe 12822 12848 mov dx, word [bp-0015eh] ; 8b 96 a2 fe … … 12847 12873 mov al, byte [bp-00ah] ; 8a 46 f6 12848 12874 cmp AL, strict byte 001h ; 3c 01 12849 jc short 08a 4eh ; 72 0c12850 jbe short 08a 56h ; 76 1212875 jc short 08a8ch ; 72 0c 12876 jbe short 08a94h ; 76 12 12851 12877 cmp AL, strict byte 003h ; 3c 03 12852 je short 08a 5eh ; 74 1612878 je short 08a9ch ; 74 16 12853 12879 cmp AL, strict byte 002h ; 3c 02 12854 je short 08a 5ah ; 74 0e12855 jmp short 08a a7h ; eb 5912880 je short 08a98h ; 74 0e 12881 jmp short 08ae5h ; eb 59 12856 12882 test al, al ; 84 c0 12857 jne short 08a a7h ; 75 5512883 jne short 08ae5h ; 75 55 12858 12884 mov DL, strict byte 040h ; b2 40 12859 jmp short 08a 60h ; eb 0a12885 jmp short 08a9eh ; eb 0a 12860 12886 mov DL, strict byte 048h ; b2 48 12861 jmp short 08a 60h ; eb 0612887 jmp short 08a9eh ; eb 06 12862 12888 mov DL, strict byte 050h ; b2 50 12863 jmp short 08a 60h ; eb 0212889 jmp short 08a9eh ; eb 02 12864 12890 mov DL, strict byte 058h ; b2 58 12865 12891 mov al, dl ; 88 d0 … … 12867 12893 movzx bx, al ; 0f b6 d8 12868 12894 mov ax, bx ; 89 d8 12869 call 016 5ch ; e8 f0 8b12895 call 016ach ; e8 02 8c 12870 12896 test al, al ; 84 c0 12871 je short 08a a7h ; 74 3712897 je short 08ae5h ; 74 37 12872 12898 mov al, dl ; 88 d0 12873 12899 db 0feh, 0c0h 12874 12900 ; inc al ; fe c0 12875 12901 xor ah, ah ; 30 e4 12876 call 016 5ch ; e8 e38b12902 call 016ach ; e8 f5 8b 12877 12903 xor ah, ah ; 30 e4 12878 12904 mov cx, ax ; 89 c1 12879 12905 sal cx, 008h ; c1 e1 08 12880 12906 movzx ax, dl ; 0f b6 c2 12881 call 016 5ch ; e8 d68b12907 call 016ach ; e8 e8 8b 12882 12908 xor ah, ah ; 30 e4 12883 12909 add ax, cx ; 01 c8 … … 12886 12912 add AL, strict byte 002h ; 04 02 12887 12913 xor ah, ah ; 30 e4 12888 call 016 5ch ; e8 c68b12914 call 016ach ; e8 d8 8b 12889 12915 xor ah, ah ; 30 e4 12890 12916 mov word [bp-028h], ax ; 89 46 d8 12891 12917 mov ax, bx ; 89 d8 12892 call 016 5ch ; e8 bc8b12918 call 016ach ; e8 ce 8b 12893 12919 xor ah, ah ; 30 e4 12894 12920 mov word [bp-024h], ax ; 89 46 dc 12895 jmp short 08a b4h ; eb 0d12921 jmp short 08af2h ; eb 0d 12896 12922 mov bx, di ; 89 fb 12897 12923 mov cx, word [bp-014h] ; 8b 4e ec 12898 12924 mov dx, ss ; 8c d2 12899 12925 lea ax, [bp-028h] ; 8d 46 d8 12900 call 053 4bh ; e8 97 c812926 call 05389h ; e8 97 c8 12901 12927 mov bx, 00da2h ; bb a2 0d 12902 12928 mov cx, ds ; 8c d9 12903 12929 mov ax, strict word 00004h ; b8 04 00 12904 call 01 8e1h ; e8 228e12930 call 01931h ; e8 34 8e 12905 12931 push word [bp-014h] ; ff 76 ec 12906 12932 push di ; 57 … … 12919 12945 push 00cdah ; 68 da 0c 12920 12946 push strict byte 00004h ; 6a 04 12921 call 019 22h ; e8 3a8e12947 call 01972h ; e8 4c 8e 12922 12948 add sp, strict byte 00018h ; 83 c4 18 12923 12949 movzx di, byte [bp-00ch] ; 0f b6 7e f4 … … 12947 12973 mov dx, strict word 00075h ; ba 75 00 12948 12974 mov ax, strict word 00040h ; b8 40 00 12949 call 016 00h ; e8 cf8a12975 call 01650h ; e8 e1 8a 12950 12976 db 0feh, 0c0h 12951 12977 ; inc al ; fe c0 … … 12953 12979 mov dx, strict word 00075h ; ba 75 00 12954 12980 mov ax, strict word 00040h ; b8 40 00 12955 call 016 0eh ; e8 cf8a12956 jmp near 08 bdfh ; e9 9d 0012981 call 0165eh ; e8 e1 8a 12982 jmp near 08c1dh ; e9 9d 00 12957 12983 cmp dx, 0eb14h ; 81 fa 14 eb 12958 jne near 08 bdfh ; 0f 85 95 0012984 jne near 08c1dh ; 0f 85 95 00 12959 12985 cmp bx, 00101h ; 81 fb 01 01 12960 jne near 08 bdfh ; 0f 85 8d 0012986 jne near 08c1dh ; 0f 85 8d 00 12961 12987 mov es, [bp-00eh] ; 8e 46 f2 12962 12988 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h … … 12970 12996 mov ax, si ; 89 f0 12971 12997 mov dx, word [bp-020h] ; 8b 56 e0 12972 call 080 9ch ; e8 1f f512998 call 080dah ; e8 1f f5 12973 12999 test byte [bp-00228h], 080h ; f6 86 d8 fd 80 12974 13000 db 00fh, 095h, 0c0h … … 13011 13037 pop bp ; 5d 13012 13038 retn ; c3 13013 ahci_mem_alloc_: ; 0xf8 bf8LB 0x4313039 ahci_mem_alloc_: ; 0xf8c36 LB 0x43 13014 13040 push bp ; 55 13015 13041 mov bp, sp ; 89 e5 … … 13021 13047 mov dx, 00413h ; ba 13 04 13022 13048 xor ax, ax ; 31 c0 13023 call 016 1ch ; e8 148a13049 call 0166ch ; e8 26 8a 13024 13050 test ax, ax ; 85 c0 13025 je short 08c 31h ; 74 2513051 je short 08c6fh ; 74 25 13026 13052 dec ax ; 48 13027 13053 mov bx, ax ; 89 c3 … … 13030 13056 sal ax, 1 ; d1 e0 13031 13057 rcl dx, 1 ; d1 d2 13032 loop 08c 14h ; e2 fa13058 loop 08c52h ; e2 fa 13033 13059 mov si, ax ; 89 c6 13034 13060 mov di, dx ; 89 d7 … … 13036 13062 shr di, 1 ; d1 ef 13037 13063 rcr si, 1 ; d1 de 13038 loop 08c 21h ; e2 fa13064 loop 08c5fh ; e2 fa 13039 13065 mov dx, 00413h ; ba 13 04 13040 13066 xor ax, ax ; 31 c0 13041 call 016 2ah ; e8 fb 8913067 call 0167ah ; e8 0d 8a 13042 13068 mov ax, si ; 89 f0 13043 13069 lea sp, [bp-00ah] ; 8d 66 f6 … … 13049 13075 pop bp ; 5d 13050 13076 retn ; c3 13051 ahci_hba_init_: ; 0xf8c 3bLB 0x12513077 ahci_hba_init_: ; 0xf8c79 LB 0x125 13052 13078 push bp ; 55 13053 13079 mov bp, sp ; 89 e5 … … 13061 13087 mov dx, strict word 0000eh ; ba 0e 00 13062 13088 mov ax, strict word 00040h ; b8 40 00 13063 call 016 1ch ; e8 cb8913089 call 0166ch ; e8 dd 89 13064 13090 mov bx, 00122h ; bb 22 01 13065 13091 mov word [bp-010h], ax ; 89 46 f0 … … 13078 13104 shr eax, 010h ; 66 c1 e8 10 13079 13105 xchg dx, ax ; 92 13080 call 08 bf8h ; e8 82 ff13106 call 08c36h ; e8 82 ff 13081 13107 mov di, ax ; 89 c7 13082 13108 test ax, ax ; 85 c0 13083 je near 08d 3fh ; 0f 84 c1 0013109 je near 08d7dh ; 0f 84 c1 00 13084 13110 mov es, [bp-010h] ; 8e 46 f0 13085 13111 mov word [es:bx+001eeh], di ; 26 89 bf ee 01 … … 13095 13121 mov dx, strict word 00004h ; ba 04 00 13096 13122 mov ax, si ; 89 f0 13097 call 07 ecbh ; e8 19 f213123 call 07f09h ; e8 19 f2 13098 13124 mov ax, strict word 00004h ; b8 04 00 13099 13125 xor cx, cx ; 31 c9 … … 13112 13138 xchg dx, ax ; 92 13113 13139 test AL, strict byte 001h ; a8 01 13114 jne short 08c b2h ; 75 de13140 jne short 08cf0h ; 75 de 13115 13141 xor ax, ax ; 31 c0 13116 13142 xor cx, cx ; 31 c9 … … 13130 13156 mov bx, strict word 0001fh ; bb 1f 00 13131 13157 xor cx, cx ; 31 c9 13132 call 07f 8eh ; e8 96 f213158 call 07fcch ; e8 96 f2 13133 13159 db 0feh, 0c0h 13134 13160 ; inc al ; fe c0 13135 13161 mov byte [bp-00eh], al ; 88 46 f2 13136 13162 mov byte [bp-00ch], 000h ; c6 46 f4 00 13137 jmp short 08d 0ch ; eb 0913163 jmp short 08d4ah ; eb 09 13138 13164 inc byte [bp-00ch] ; fe 46 f4 13139 13165 cmp byte [bp-00ch], 020h ; 80 7e f4 20 13140 jnc short 08d 3dh ; 73 3113166 jnc short 08d7bh ; 73 31 13141 13167 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 13142 13168 mov ax, strict word 00001h ; b8 01 00 13143 13169 xor dx, dx ; 31 d2 13144 jcxz 08d 1dh ; e3 0613170 jcxz 08d5bh ; e3 06 13145 13171 sal ax, 1 ; d1 e0 13146 13172 rcl dx, 1 ; d1 d2 13147 loop 08d 17h ; e2 fa13173 loop 08d55h ; e2 fa 13148 13174 mov bx, ax ; 89 c3 13149 13175 mov cx, dx ; 89 d1 13150 13176 mov dx, strict word 0000ch ; ba 0c 00 13151 13177 mov ax, si ; 89 f0 13152 call 07f 55h ; e8 2c f213178 call 07f93h ; e8 2c f2 13153 13179 test al, al ; 84 c0 13154 je short 08d 03h ; 74 d613180 je short 08d41h ; 74 d6 13155 13181 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 13156 13182 xor ax, ax ; 31 c0 13157 13183 mov dx, di ; 89 fa 13158 call 088 27h ; e8 ef fa13184 call 08865h ; e8 ef fa 13159 13185 dec byte [bp-00eh] ; fe 4e f2 13160 jne short 08d 03h ; 75 c613186 jne short 08d41h ; 75 c6 13161 13187 xor ax, ax ; 31 c0 13162 13188 lea sp, [bp-00ah] ; 8d 66 f6 … … 13168 13194 pop bp ; 5d 13169 13195 retn ; c3 13170 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 2fh, 08eh, 00dh, 08eh, 013h, 08eh, 019h, 08eh, 01fh13171 db 08eh, 0 25h, 08eh, 02bh, 08eh, 02fh, 08eh13172 _ahci_init: ; 0xf8d 60LB 0xfe13196 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 06dh, 08eh, 04bh, 08eh, 051h, 08eh, 057h, 08eh, 05dh 13197 db 08eh, 063h, 08eh, 069h, 08eh, 06dh, 08eh 13198 _ahci_init: ; 0xf8d9e LB 0xfe 13173 13199 push bp ; 55 13174 13200 mov bp, sp ; 89 e5 … … 13178 13204 mov ax, 00601h ; b8 01 06 13179 13205 mov dx, strict word 00001h ; ba 01 00 13180 call 092 7eh ; e8 0d 0513206 call 092bch ; e8 0d 05 13181 13207 mov dx, ax ; 89 c2 13182 13208 cmp ax, strict word 0ffffh ; 3d ff ff 13183 je near 08e 57h ; 0f 84 dd 0013209 je near 08e95h ; 0f 84 dd 00 13184 13210 xor al, al ; 30 c0 13185 13211 shr ax, 008h ; c1 e8 08 … … 13189 13215 xor ah, ah ; 30 e4 13190 13216 mov bx, strict word 00034h ; bb 34 00 13191 call 092 a9h ; e8 1a 0513217 call 092e7h ; e8 1a 05 13192 13218 mov cl, al ; 88 c1 13193 13219 test cl, cl ; 84 c9 13194 je short 08d b8h ; 74 2313220 je short 08df6h ; 74 23 13195 13221 movzx bx, cl ; 0f b6 d9 13196 13222 movzx di, byte [bp-008h] ; 0f b6 7e f8 … … 13198 13224 mov dx, di ; 89 fa 13199 13225 mov ax, si ; 89 f0 13200 call 092 a9h ; e8 02 0513226 call 092e7h ; e8 02 05 13201 13227 cmp AL, strict byte 012h ; 3c 12 13202 je short 08d b8h ; 74 0d13228 je short 08df6h ; 74 0d 13203 13229 mov al, cl ; 88 c8 13204 13230 db 0feh, 0c0h … … 13207 13233 mov dx, di ; 89 fa 13208 13234 mov ax, si ; 89 f0 13209 jmp short 08d 8ch ; eb d413235 jmp short 08dcah ; eb d4 13210 13236 test cl, cl ; 84 c9 13211 je near 08e 57h ; 0f 84 99 0013237 je near 08e95h ; 0f 84 99 00 13212 13238 add cl, 002h ; 80 c1 02 13213 13239 movzx bx, cl ; 0f b6 d9 … … 13216 13242 mov dx, di ; 89 fa 13217 13243 mov ax, si ; 89 f0 13218 call 092 a9h ; e8 d6 0413244 call 092e7h ; e8 d6 04 13219 13245 cmp AL, strict byte 010h ; 3c 10 13220 jne near 08e 57h ; 0f 85 7e 0013246 jne near 08e95h ; 0f 85 7e 00 13221 13247 mov byte [bp-006h], 000h ; c6 46 fa 00 13222 13248 mov al, cl ; 88 c8 … … 13225 13251 mov dx, di ; 89 fa 13226 13252 mov ax, si ; 89 f0 13227 call 09 2cdh ; e8 e2 0413253 call 0930bh ; e8 e2 04 13228 13254 mov dx, ax ; 89 c2 13229 13255 and ax, strict word 0000fh ; 25 0f 00 13230 13256 sub ax, strict word 00004h ; 2d 04 00 13231 13257 cmp ax, strict word 0000bh ; 3d 0b 00 13232 jnbe short 08e 2fh ; 77 3713258 jnbe short 08e6dh ; 77 37 13233 13259 push CS ; 0e 13234 13260 pop ES ; 07 13235 13261 mov cx, strict word 00008h ; b9 08 00 13236 mov di, 08d 49h ; bf 498d13262 mov di, 08d87h ; bf 87 8d 13237 13263 repne scasb ; f2 ae 13238 13264 sal cx, 1 ; d1 e1 13239 13265 mov di, cx ; 89 cf 13240 mov ax, word [cs:di-072 b0h] ; 2e 8b 85 508d13266 mov ax, word [cs:di-07272h] ; 2e 8b 85 8e 8d 13241 13267 jmp ax ; ff e0 13242 13268 mov byte [bp-006h], 010h ; c6 46 fa 10 13243 jmp short 08e 2fh ; eb 1c13269 jmp short 08e6dh ; eb 1c 13244 13270 mov byte [bp-006h], 014h ; c6 46 fa 14 13245 jmp short 08e 2fh ; eb 1613271 jmp short 08e6dh ; eb 16 13246 13272 mov byte [bp-006h], 018h ; c6 46 fa 18 13247 jmp short 08e 2fh ; eb 1013273 jmp short 08e6dh ; eb 10 13248 13274 mov byte [bp-006h], 01ch ; c6 46 fa 1c 13249 jmp short 08e 2fh ; eb 0a13275 jmp short 08e6dh ; eb 0a 13250 13276 mov byte [bp-006h], 020h ; c6 46 fa 20 13251 jmp short 08e 2fh ; eb 0413277 jmp short 08e6dh ; eb 04 13252 13278 mov byte [bp-006h], 024h ; c6 46 fa 24 13253 13279 mov si, dx ; 89 d6 … … 13256 13282 mov al, byte [bp-006h] ; 8a 46 fa 13257 13283 test al, al ; 84 c0 13258 je short 08e 57h ; 74 1913284 je short 08e95h ; 74 19 13259 13285 movzx bx, al ; 0f b6 d8 13260 13286 movzx dx, byte [bp-008h] ; 0f b6 56 f8 13261 13287 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13262 call 09 2efh ; e8 a3 0413288 call 0932dh ; e8 a3 04 13263 13289 test AL, strict byte 001h ; a8 01 13264 je short 08e 57h ; 74 0713290 je short 08e95h ; 74 07 13265 13291 and AL, strict byte 0f0h ; 24 f0 13266 13292 add ax, si ; 01 f0 13267 call 08c 3bh ; e8 e4 fd13293 call 08c79h ; e8 e4 fd 13268 13294 lea sp, [bp-004h] ; 8d 66 fc 13269 13295 pop di ; 5f … … 13271 13297 pop bp ; 5d 13272 13298 retn ; c3 13273 apm_out_str_: ; 0xf8e 5eLB 0x3913299 apm_out_str_: ; 0xf8e9c LB 0x39 13274 13300 push bp ; 55 13275 13301 mov bp, sp ; 89 e5 … … 13277 13303 mov bx, ax ; 89 c3 13278 13304 cmp byte [bx], 000h ; 80 3f 00 13279 je short 08e 73h ; 74 0a13305 je short 08eb1h ; 74 0a 13280 13306 mov al, byte [bx] ; 8a 07 13281 13307 out DX, AL ; ee … … 13284 13310 db 00ah, 0c0h 13285 13311 ; or al, al ; 0a c0 13286 jne short 08e 6bh ; 75 f813312 jne short 08ea9h ; 75 f8 13287 13313 lea sp, [bp-002h] ; 8d 66 fe 13288 13314 pop bx ; 5b 13289 13315 pop bp ; 5d 13290 13316 retn ; c3 13291 mov dx, 0868eh ; ba 8e 86 13292 db 08fh, 0cch 13293 ; pop sp ; 8f cc 13294 mov fs, di ; 8e e7 13295 mov es, [bp+0128fh] ; 8e 86 8f 12 13296 pop word [bp+0178fh] ; 8f 86 8f 17 13297 db 08fh, 05bh, 08fh 13298 ; pop word [bp+di-071h] ; 8f 5b 8f 13299 pop bx ; 5b 13300 db 08fh, 05bh, 08fh 13301 ; pop word [bp+di-071h] ; 8f 5b 8f 13302 push si ; 56 13303 db 08fh, 05bh, 08fh 13304 ; pop word [bp+di-071h] ; 8f 5b 8f 13305 pop bx ; 5b 13306 db 08fh, 04fh, 08fh 13307 ; pop word [bx-071h] ; 8f 4f 8f 13308 _apm_function: ; 0xf8e97 LB 0xf5 13317 clc ; f8 13318 mov es, sp ; 8e c4 13319 db 08fh, 00ah 13320 ; pop word [bp+si] ; 8f 0a 13321 db 08fh, 025h 13322 ; pop word [di] ; 8f 25 13323 db 08fh, 0c4h 13324 ; pop sp ; 8f c4 13325 db 08fh, 050h, 08fh 13326 ; pop word [bx+si-071h] ; 8f 50 8f 13327 les cx, [bx-070abh] ; c4 8f 55 8f 13328 cwd ; 99 13329 db 08fh, 099h, 08fh, 099h 13330 ; pop word [bx+di-06671h] ; 8f 99 8f 99 13331 db 08fh, 094h, 08fh, 099h 13332 ; pop word [si-06671h] ; 8f 94 8f 99 13333 db 08fh, 099h, 08fh, 08dh 13334 ; pop word [bx+di-07271h] ; 8f 99 8f 8d 13335 db 08fh 13336 _apm_function: ; 0xf8ed5 LB 0xf5 13309 13337 push bp ; 55 13310 13338 mov bp, sp ; 89 e5 … … 13314 13342 xor ah, ah ; 30 e4 13315 13343 cmp ax, strict word 0000eh ; 3d 0e 00 13316 jnbe near 08f 5bh ; 0f 87 b0 0013344 jnbe near 08f99h ; 0f 87 b0 00 13317 13345 mov bx, ax ; 89 c3 13318 13346 add bx, ax ; 01 c3 13319 13347 mov dx, word [bp+018h] ; 8b 56 18 13320 13348 or dl, 001h ; 80 ca 01 13321 jmp word [cs:bx-071 87h] ; 2e ff a7 798e13349 jmp word [cs:bx-07149h] ; 2e ff a7 b7 8e 13322 13350 mov word [bp+012h], 00102h ; c7 46 12 02 01 13323 13351 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 13324 13352 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 13325 jmp near 08f 86h ; e9 ba 0013353 jmp near 08fc4h ; e9 ba 00 13326 13354 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 13327 mov word [bp+00ch], 09 4e4h ; c7 46 0c e4 9413355 mov word [bp+00ch], 09524h ; c7 46 0c 24 95 13328 13356 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 13329 13357 mov ax, strict word 0fff0h ; b8 f0 ff 13330 13358 mov word [bp+006h], ax ; 89 46 06 13331 13359 mov word [bp+004h], ax ; 89 46 04 13332 jmp near 08f 86h ; e9 9f 0013360 jmp near 08fc4h ; e9 9f 00 13333 13361 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 13334 13362 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 13343 13371 mov si, ax ; 89 c6 13344 13372 sal esi, 010h ; 66 c1 e6 10 13345 jmp near 08f 86h ; e9 74 0013373 jmp near 08fc4h ; e9 74 00 13346 13374 sti ; fb 13347 13375 hlt ; f4 13348 jmp near 08f 86h ; e9 6f 0013376 jmp near 08fc4h ; e9 6f 00 13349 13377 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 13350 je short 08f 3ch ; 74 1f13378 je short 08f7ah ; 74 1f 13351 13379 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 13352 je short 08f 34h ; 74 1113380 je short 08f72h ; 74 11 13353 13381 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 13354 jne short 08f 44h ; 75 1b13382 jne short 08f82h ; 75 1b 13355 13383 mov dx, 08900h ; ba 00 89 13356 13384 mov ax, 00d12h ; b8 12 0d 13357 call 08e 5eh ; e8 2c ff13358 jmp short 08f 86h ; eb 5213385 call 08e9ch ; e8 2c ff 13386 jmp short 08fc4h ; eb 52 13359 13387 mov dx, 08900h ; ba 00 89 13360 13388 mov ax, 00d1ah ; b8 1a 0d 13361 jmp short 08f 2fh ; eb f313389 jmp short 08f6dh ; eb f3 13362 13390 mov dx, 08900h ; ba 00 89 13363 13391 mov ax, 00d22h ; b8 22 0d 13364 jmp short 08f 2fh ; eb eb13392 jmp short 08f6dh ; eb eb 13365 13393 or ah, 00ah ; 80 cc 0a 13366 13394 mov word [bp+012h], ax ; 89 46 12 13367 13395 mov word [bp+018h], dx ; 89 56 18 13368 jmp short 08f 86h ; eb 3713396 jmp short 08fc4h ; eb 37 13369 13397 mov word [bp+012h], 00102h ; c7 46 12 02 01 13370 jmp short 08f 86h ; eb 3013398 jmp short 08fc4h ; eb 30 13371 13399 or ah, 080h ; 80 cc 80 13372 jmp short 08f 47h ; eb ec13400 jmp short 08f85h ; eb ec 13373 13401 mov bx, 00da2h ; bb a2 0d 13374 13402 mov cx, ds ; 8c d9 13375 13403 mov ax, strict word 00004h ; b8 04 00 13376 call 01 8e1h ; e8 7b8913404 call 01931h ; e8 8d 89 13377 13405 push word [bp+00ch] ; ff 76 0c 13378 13406 push word [bp+012h] ; ff 76 12 13379 13407 push 00d2bh ; 68 2b 0d 13380 13408 push strict byte 00004h ; 6a 04 13381 call 019 22h ; e8 ae8913409 call 01972h ; e8 c0 89 13382 13410 add sp, strict byte 00008h ; 83 c4 08 13383 13411 mov ax, word [bp+012h] ; 8b 46 12 … … 13390 13418 pop bp ; 5d 13391 13419 retn ; c3 13392 pci16_select_reg_: ; 0xf8f 8cLB 0x2413420 pci16_select_reg_: ; 0xf8fca LB 0x24 13393 13421 push bp ; 55 13394 13422 mov bp, sp ; 89 e5 … … 13407 13435 pop bp ; 5d 13408 13436 retn ; c3 13409 pci16_find_device_: ; 0xf8f b0LB 0xf713437 pci16_find_device_: ; 0xf8fee LB 0xf7 13410 13438 push bp ; 55 13411 13439 mov bp, sp ; 89 e5 … … 13421 13449 mov byte [bp-008h], 000h ; c6 46 f8 00 13422 13450 test bl, 007h ; f6 c3 07 13423 jne short 0 8ff8h ; 75 2d13451 jne short 09036h ; 75 2d 13424 13452 mov dx, strict word 0000eh ; ba 0e 00 13425 13453 mov ax, bx ; 89 d8 13426 call 08f 8ch ; e8 b9 ff13454 call 08fcah ; e8 b9 ff 13427 13455 mov dx, 00cfeh ; ba fe 0c 13428 13456 in AL, DX ; ec … … 13431 13459 mov byte [bp-006h], al ; 88 46 fa 13432 13460 cmp AL, strict byte 0ffh ; 3c ff 13433 jne short 0 8fe6h ; 75 0613461 jne short 09024h ; 75 06 13434 13462 add bx, strict byte 00008h ; 83 c3 08 13435 jmp near 090 79h ; e9 93 0013463 jmp near 090b7h ; e9 93 00 13436 13464 test byte [bp-006h], 080h ; f6 46 fa 80 13437 je short 0 8ff3h ; 74 0713465 je short 09031h ; 74 07 13438 13466 mov word [bp-00ah], strict word 00001h ; c7 46 f6 01 00 13439 jmp short 0 8ff8h ; eb 0513467 jmp short 09036h ; eb 05 13440 13468 mov word [bp-00ah], strict word 00008h ; c7 46 f6 08 00 13441 13469 mov al, byte [bp-006h] ; 8a 46 fa 13442 13470 and AL, strict byte 007h ; 24 07 13443 13471 cmp AL, strict byte 001h ; 3c 01 13444 jne short 090 20h ; 75 1f13472 jne short 0905eh ; 75 1f 13445 13473 mov ax, bx ; 89 d8 13446 13474 shr ax, 008h ; c1 e8 08 13447 13475 test ax, ax ; 85 c0 13448 jne short 090 20h ; 75 1613476 jne short 0905eh ; 75 16 13449 13477 mov dx, strict word 0001ah ; ba 1a 00 13450 13478 mov ax, bx ; 89 d8 13451 call 08f 8ch ; e8 7a ff13479 call 08fcah ; e8 7a ff 13452 13480 mov dx, 00cfeh ; ba fe 0c 13453 13481 in AL, DX ; ec … … 13455 13483 ; sub ah, ah ; 2a e4 13456 13484 cmp al, byte [bp-008h] ; 3a 46 f8 13457 jbe short 090 20h ; 76 0313485 jbe short 0905eh ; 76 03 13458 13486 mov byte [bp-008h], al ; 88 46 f8 13459 13487 test di, di ; 85 ff 13460 je short 090 29h ; 74 0513488 je short 09067h ; 74 05 13461 13489 mov dx, strict word 00008h ; ba 08 00 13462 jmp short 090 2bh ; eb 0213490 jmp short 09069h ; eb 02 13463 13491 xor dx, dx ; 31 d2 13464 13492 mov ax, bx ; 89 d8 13465 call 08f 8ch ; e8 5c ff13493 call 08fcah ; e8 5c ff 13466 13494 mov dx, 00cfch ; ba fc 0c 13467 13495 in eax, DX ; 66 ed … … 13474 13502 mov word [bp-010h], strict word 00000h ; c7 46 f0 00 00 13475 13503 test di, di ; 85 ff 13476 je short 090 5ah ; 74 0f13504 je short 09098h ; 74 0f 13477 13505 mov cx, strict word 00008h ; b9 08 00 13478 13506 shr dx, 1 ; d1 ea 13479 13507 rcr ax, 1 ; d1 d8 13480 loop 090 4eh ; e2 fa13508 loop 0908ch ; e2 fa 13481 13509 mov word [bp-00eh], ax ; 89 46 f2 13482 13510 mov word [bp-00ch], dx ; 89 56 f4 13483 13511 mov ax, word [bp-00ch] ; 8b 46 f4 13484 13512 cmp ax, word [bp-014h] ; 3b 46 ec 13485 jne short 090 6ah ; 75 0813513 jne short 090a8h ; 75 08 13486 13514 mov ax, word [bp-00eh] ; 8b 46 f2 13487 13515 cmp ax, word [bp-012h] ; 3b 46 ee 13488 je short 090 70h ; 74 0613516 je short 090aeh ; 74 06 13489 13517 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 13490 je short 090 76h ; 74 0613518 je short 090b4h ; 74 06 13491 13519 dec si ; 4e 13492 13520 cmp si, strict byte 0ffffh ; 83 fe ff 13493 je short 090 88h ; 74 1213521 je short 090c6h ; 74 12 13494 13522 add bx, word [bp-00ah] ; 03 5e f6 13495 13523 mov dx, bx ; 89 da … … 13497 13525 movzx ax, byte [bp-008h] ; 0f b6 46 f8 13498 13526 cmp dx, ax ; 39 c2 13499 jbe near 0 8fc6h ; 0f 86 3e ff13527 jbe near 09004h ; 0f 86 3e ff 13500 13528 cmp si, strict byte 0ffffh ; 83 fe ff 13501 jne short 090 91h ; 75 0413529 jne short 090cfh ; 75 04 13502 13530 mov ax, bx ; 89 d8 13503 jmp short 090 94h ; eb 0313531 jmp short 090d2h ; eb 03 13504 13532 mov ax, strict word 0ffffh ; b8 ff ff 13505 13533 lea sp, [bp-004h] ; 8d 66 fc … … 13508 13536 pop bp ; 5d 13509 13537 retn ; c3 13510 mov word [bx+di-06e5dh], dx ; 89 91 a3 9113511 mov DH, strict byte 091h ; b69113512 retf ; cb13513 xchg cx, ax ; 9113514 ficom word [bx+di-06e0fh] ; de 91 f1 9113515 _pci16_function: ; 0xf90 a7LB 0x1d713538 db 0c7h, 091h, 0e1h, 091h, 0f4h, 091h 13539 ; mov word [bx+di-06e1fh], 091f4h ; c7 91 e1 91 f4 91 13540 or word [bp+si-06de4h], dx ; 09 92 1c 92 13541 das ; 2f 13542 xchg dx, ax ; 92 13543 _pci16_function: ; 0xf90e5 LB 0x1d7 13516 13544 push bp ; 55 13517 13545 mov bp, sp ; 89 e5 … … 13527 13555 xor ah, ah ; 30 e4 13528 13556 cmp bx, strict byte 00003h ; 83 fb 03 13529 jc short 09 0e0h ; 72 1a13530 jbe short 091 38h ; 76 7013557 jc short 0911eh ; 72 1a 13558 jbe short 09176h ; 76 70 13531 13559 cmp bx, strict byte 0000eh ; 83 fb 0e 13532 je near 092 05h ; 0f 84 36 0113560 je near 09243h ; 0f 84 36 01 13533 13561 cmp bx, strict byte 00008h ; 83 fb 08 13534 jc near 092 4ah ; 0f 82 74 0113562 jc near 09288h ; 0f 82 74 01 13535 13563 cmp bx, strict byte 0000dh ; 83 fb 0d 13536 jbe near 091 5dh ; 0f 86 80 0013537 jmp near 092 4ah ; e9 6a 0113564 jbe near 0919bh ; 0f 86 80 00 13565 jmp near 09288h ; e9 6a 01 13538 13566 cmp bx, strict byte 00002h ; 83 fb 02 13539 je short 091 08h ; 74 2313567 je short 09146h ; 74 23 13540 13568 cmp bx, strict byte 00001h ; 83 fb 01 13541 jne near 092 4ah ; 0f 85 5e 0113569 jne near 09288h ; 0f 85 5e 01 13542 13570 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 13543 13571 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 13545 13573 mov word [bp+018h], 04350h ; c7 46 18 50 43 13546 13574 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 13547 jmp near 092 77h ; e9 6f 0113575 jmp near 092b5h ; e9 6f 01 13548 13576 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 13549 jne short 091 14h ; 75 0613577 jne short 09152h ; 75 06 13550 13578 or ah, 083h ; 80 cc 83 13551 jmp near 092 70h ; e9 5c 0113579 jmp near 092aeh ; e9 5c 01 13552 13580 mov bx, word [bp+008h] ; 8b 5e 08 13553 13581 mov dx, word [bp+01ch] ; 8b 56 1c 13554 13582 mov ax, word [bp+018h] ; 8b 46 18 13555 13583 xor cx, cx ; 31 c9 13556 call 08f b0h ; e8 8e fe13584 call 08feeh ; e8 8e fe 13557 13585 cmp ax, strict word 0ffffh ; 3d ff ff 13558 jne short 091 32h ; 75 0b13586 jne short 09170h ; 75 0b 13559 13587 mov ax, word [bp+020h] ; 8b 46 20 13560 13588 xor ah, ah ; 30 e4 13561 13589 or ah, 086h ; 80 cc 86 13562 jmp near 092 70h ; e9 3e 0113590 jmp near 092aeh ; e9 3e 01 13563 13591 mov word [bp+014h], ax ; 89 46 14 13564 jmp near 092 77h ; e9 3f 0113592 jmp near 092b5h ; e9 3f 01 13565 13593 mov bx, word [bp+008h] ; 8b 5e 08 13566 13594 mov ax, word [bp+01ch] ; 8b 46 1c 13567 13595 mov dx, word [bp+01eh] ; 8b 56 1e 13568 13596 mov cx, strict word 00001h ; b9 01 00 13569 call 08f b0h ; e8 69 fe13597 call 08feeh ; e8 69 fe 13570 13598 cmp ax, strict word 0ffffh ; 3d ff ff 13571 jne short 091 57h ; 75 0b13599 jne short 09195h ; 75 0b 13572 13600 mov ax, word [bp+020h] ; 8b 46 20 13573 13601 xor ah, ah ; 30 e4 13574 13602 or ah, 086h ; 80 cc 86 13575 jmp near 092 70h ; e9 19 0113603 jmp near 092aeh ; e9 19 01 13576 13604 mov word [bp+014h], ax ; 89 46 14 13577 jmp near 092 77h ; e9 1a 0113605 jmp near 092b5h ; e9 1a 01 13578 13606 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 13579 jc short 091 6ah ; 72 0613607 jc short 091a8h ; 72 06 13580 13608 or ah, 087h ; 80 cc 87 13581 jmp near 092 70h ; e9 06 0113609 jmp near 092aeh ; e9 06 01 13582 13610 mov dx, word [bp+004h] ; 8b 56 04 13583 13611 mov ax, word [bp+014h] ; 8b 46 14 13584 call 08f 8ch ; e8 19 fe13612 call 08fcah ; e8 19 fe 13585 13613 mov bx, word [bp+020h] ; 8b 5e 20 13586 13614 xor bh, bh ; 30 ff 13587 13615 sub bx, strict byte 00008h ; 83 eb 08 13588 13616 cmp bx, strict byte 00005h ; 83 fb 05 13589 jnbe near 092 77h ; 0f 87 f5 0013617 jnbe near 092b5h ; 0f 87 f5 00 13590 13618 add bx, bx ; 01 db 13591 jmp word [cs:bx-06f 65h] ; 2e ff a7 9b9013619 jmp word [cs:bx-06f27h] ; 2e ff a7 d9 90 13592 13620 mov bx, word [bp+01ch] ; 8b 5e 1c 13593 13621 xor bl, bl ; 30 db … … 13600 13628 or bx, ax ; 09 c3 13601 13629 mov word [bp+01ch], bx ; 89 5e 1c 13602 jmp near 092 77h ; e9 d4 0013630 jmp near 092b5h ; e9 d4 00 13603 13631 mov dx, word [bp+004h] ; 8b 56 04 13604 13632 xor dh, dh ; 30 f6 … … 13607 13635 in ax, DX ; ed 13608 13636 mov word [bp+01ch], ax ; 89 46 1c 13609 jmp near 092 77h ; e9 c1 0013637 jmp near 092b5h ; e9 c1 00 13610 13638 mov dx, 00cfch ; ba fc 0c 13611 13639 in eax, DX ; 66 ed … … 13616 13644 mov word [bp+01ch], ax ; 89 46 1c 13617 13645 mov word [bp+01eh], dx ; 89 56 1e 13618 jmp near 092 77h ; e9 ac 0013646 jmp near 092b5h ; e9 ac 00 13619 13647 mov ax, word [bp+01ch] ; 8b 46 1c 13620 13648 mov dx, word [bp+004h] ; 8b 56 04 … … 13623 13651 add dx, 00cfch ; 81 c2 fc 0c 13624 13652 out DX, AL ; ee 13625 jmp near 092 77h ; e9 99 0013653 jmp near 092b5h ; e9 99 00 13626 13654 mov ax, word [bp+01ch] ; 8b 46 1c 13627 13655 mov dx, word [bp+004h] ; 8b 56 04 … … 13630 13658 add dx, 00cfch ; 81 c2 fc 0c 13631 13659 out DX, ax ; ef 13632 jmp near 092 77h ; e9 86 0013660 jmp near 092b5h ; e9 86 00 13633 13661 mov ax, word [bp+01ch] ; 8b 46 1c 13634 13662 mov cx, word [bp+01eh] ; 8b 4e 1e … … 13639 13667 ; mov ax, cx ; 8b c1 13640 13668 out DX, eax ; 66 ef 13641 jmp short 092 77h ; eb 7213669 jmp short 092b5h ; eb 72 13642 13670 mov bx, word [bp+004h] ; 8b 5e 04 13643 13671 mov es, [bp+026h] ; 8e 46 26 … … 13646 13674 mov cx, word [0f4a0h] ; 8b 0e a0 f4 13647 13675 cmp cx, word [es:bx] ; 26 3b 0f 13648 jbe short 092 2bh ; 76 1113676 jbe short 09269h ; 76 11 13649 13677 mov ax, word [bp+020h] ; 8b 46 20 13650 13678 xor ah, ah ; 30 e4 … … 13652 13680 mov word [bp+020h], ax ; 89 46 20 13653 13681 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 13654 jmp short 092 3fh ; eb 1413682 jmp short 0927dh ; eb 14 13655 13683 les di, [es:bx+002h] ; 26 c4 7f 02 13656 13684 mov si, 0f2c0h ; be c0 f2 … … 13664 13692 les bx, [bp-008h] ; c4 5e f8 13665 13693 mov word [es:bx], ax ; 26 89 07 13666 jmp short 092 77h ; eb 2d13694 jmp short 092b5h ; eb 2d 13667 13695 mov bx, 00da2h ; bb a2 0d 13668 13696 mov cx, ds ; 8c d9 13669 13697 mov ax, strict word 00004h ; b8 04 00 13670 call 01 8e1h ; e8 8c8613698 call 01931h ; e8 9e 86 13671 13699 mov ax, word [bp+014h] ; 8b 46 14 13672 13700 push ax ; 50 … … 13675 13703 push 00d5eh ; 68 5e 0d 13676 13704 push strict byte 00004h ; 6a 04 13677 call 019 22h ; e8 bd8613705 call 01972h ; e8 cf 86 13678 13706 add sp, strict byte 00008h ; 83 c4 08 13679 13707 mov ax, word [bp+020h] ; 8b 46 20 … … 13687 13715 pop bp ; 5d 13688 13716 retn ; c3 13689 pci_find_classcode_: ; 0xf92 7eLB 0x2b13717 pci_find_classcode_: ; 0xf92bc LB 0x2b 13690 13718 push bp ; 55 13691 13719 mov bp, sp ; 89 e5 … … 13702 13730 int 01ah ; cd 1a 13703 13731 cmp ah, 000h ; 80 fc 00 13704 je near 092 9fh ; 0f 84 03 0013732 je near 092ddh ; 0f 84 03 00 13705 13733 mov bx, strict word 0ffffh ; bb ff ff 13706 13734 mov ax, bx ; 89 d8 … … 13711 13739 pop bp ; 5d 13712 13740 retn ; c3 13713 pci_read_config_byte_: ; 0xf92 a9LB 0x2413741 pci_read_config_byte_: ; 0xf92e7 LB 0x24 13714 13742 push bp ; 55 13715 13743 mov bp, sp ; 89 e5 … … 13730 13758 pop bp ; 5d 13731 13759 retn ; c3 13732 pci_read_config_word_: ; 0xf9 2cdLB 0x2213760 pci_read_config_word_: ; 0xf930b LB 0x22 13733 13761 push bp ; 55 13734 13762 mov bp, sp ; 89 e5 … … 13749 13777 pop bp ; 5d 13750 13778 retn ; c3 13751 pci_read_config_dword_: ; 0xf9 2efLB 0x2713779 pci_read_config_dword_: ; 0xf932d LB 0x27 13752 13780 push bp ; 55 13753 13781 mov bp, sp ; 89 e5 … … 13770 13798 pop bp ; 5d 13771 13799 retn ; c3 13772 vds_is_present_: ; 0xf93 16LB 0x1d13800 vds_is_present_: ; 0xf9354 LB 0x1d 13773 13801 push bx ; 53 13774 13802 push bp ; 55 … … 13778 13806 mov es, ax ; 8e c0 13779 13807 test byte [es:bx], 020h ; 26 f6 07 20 13780 je short 093 2eh ; 74 0613808 je short 0936ch ; 74 06 13781 13809 mov ax, strict word 00001h ; b8 01 00 13782 13810 pop bp ; 5d … … 13787 13815 pop bx ; 5b 13788 13816 retn ; c3 13789 vds_real_to_lin_: ; 0xf93 33LB 0x1e13817 vds_real_to_lin_: ; 0xf9371 LB 0x1e 13790 13818 push bx ; 53 13791 13819 push cx ; 51 … … 13798 13826 sal ax, 1 ; d1 e0 13799 13827 rcl dx, 1 ; d1 d2 13800 loop 093 41h ; e2 fa13828 loop 0937fh ; e2 fa 13801 13829 xor cx, cx ; 31 c9 13802 13830 add ax, bx ; 01 d8 … … 13806 13834 pop bx ; 5b 13807 13835 retn ; c3 13808 vds_build_sg_list_: ; 0xf93 51LB 0x7913836 vds_build_sg_list_: ; 0xf938f LB 0x79 13809 13837 push bp ; 55 13810 13838 mov bp, sp ; 89 e5 … … 13820 13848 mov bx, word [bp+006h] ; 8b 5e 06 13821 13849 mov word [es:di+002h], bx ; 26 89 5d 02 13822 call 093 33h ; e8 c3 ff13850 call 09371h ; e8 c3 ff 13823 13851 mov es, si ; 8e c6 13824 13852 mov word [es:di+004h], ax ; 26 89 45 04 13825 13853 mov word [es:di+006h], dx ; 26 89 55 06 13826 13854 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 13827 call 093 16h ; e8 93 ff13855 call 09354h ; e8 93 ff 13828 13856 test ax, ax ; 85 c0 13829 je short 093 9ah ; 74 1313857 je short 093d8h ; 74 13 13830 13858 mov es, si ; 8e c6 13831 13859 mov ax, 08105h ; b8 05 81 13832 13860 mov dx, strict word 00000h ; ba 00 00 13833 13861 int 04bh ; cd 4b 13834 jc near 093 97h ; 0f 82 02 0013862 jc near 093d5h ; 0f 82 02 00 13835 13863 db 032h, 0c0h 13836 13864 ; xor al, al ; 32 c0 13837 13865 cbw ; 98 13838 jmp short 093 c1h ; eb 2713866 jmp short 093ffh ; eb 27 13839 13867 mov es, si ; 8e c6 13840 13868 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 13853 13881 pop bp ; 5d 13854 13882 retn 00004h ; c2 04 00 13855 vds_free_sg_list_: ; 0xf9 3ca LB 0x3613883 vds_free_sg_list_: ; 0xf9408 LB 0x38 13856 13884 push bp ; 55 13857 13885 mov bp, sp ; 89 e5 … … 13859 13887 push di ; 57 13860 13888 mov bx, ax ; 89 c3 13861 call 093 16h ; e8 42 ff13889 call 09354h ; e8 42 ff 13862 13890 test ax, ax ; 85 c0 13863 je short 09 3ebh ; 74 1313891 je short 09429h ; 74 13 13864 13892 mov di, bx ; 89 df 13865 13893 mov es, dx ; 8e c2 … … 13867 13895 mov dx, strict word 00000h ; ba 00 00 13868 13896 int 04bh ; cd 4b 13869 jc near 09 3eah ; 0f 82 02 0013897 jc near 09428h ; 0f 82 02 00 13870 13898 db 032h, 0c0h 13871 13899 ; xor al, al ; 32 c0 … … 13878 13906 pop bp ; 5d 13879 13907 retn ; c3 13880 times 0x 6db 013881 __U4D: ; 0xf94 00 LB 0x3913908 times 0x8 db 0 13909 __U4D: ; 0xf9440 LB 0x39 13882 13910 pushfw ; 9c 13883 13911 push eax ; 66 50 … … 13909 13937 popfw ; 9d 13910 13938 retn ; c3 13911 __U4M: ; 0xf94 39 LB 0x3113939 __U4M: ; 0xf9479 LB 0x31 13912 13940 pushfw ; 9c 13913 13941 push eax ; 66 50 … … 13934 13962 popfw ; 9d 13935 13963 retn ; c3 13936 _fmemset_: ; 0xf94 6a LB 0xd13964 _fmemset_: ; 0xf94aa LB 0xd 13937 13965 push di ; 57 13938 13966 mov es, dx ; 8e c2 … … 13944 13972 pop di ; 5f 13945 13973 retn ; c3 13946 _fmemcpy_: ; 0xf94 77 LB 0x3313974 _fmemcpy_: ; 0xf94b7 LB 0x33 13947 13975 push bp ; 55 13948 13976 db 08bh, 0ech … … 13964 13992 leave ; c9 13965 13993 retn ; c3 13966 add al, al ; 00 c0 13967 xchg sp, ax ; 94 13968 retn 0c694h ; c2 94 c6 13969 xchg sp, ax ; 94 13970 db 0c6h, 094h, 0c6h, 094h, 0c8h 13971 ; mov byte [si-06b3ah], 0c8h ; c6 94 c6 94 c8 13972 xchg sp, ax ; 94 13973 enter 0ca94h, 094h ; c8 94 ca 94 13974 into ; ce 13975 xchg sp, ax ; 94 13976 into ; ce 13977 xchg sp, ax ; 94 13978 rcl byte [si-06b2bh], 1 ; d0 94 d5 94 13979 xlatb ; d7 13980 xchg sp, ax ; 94 13981 apm_worker: ; 0xf94aa LB 0x3a 13994 add byte [bx+si], al ; 00 00 13995 xchg bp, ax ; 95 13996 add dl, byte [di-06afah] ; 02 95 06 95 13997 push ES ; 06 13998 xchg bp, ax ; 95 13999 push ES ; 06 14000 xchg bp, ax ; 95 14001 or byte [di-06af8h], dl ; 08 95 08 95 14002 or dl, byte [di-06af2h] ; 0a 95 0e 95 14003 push CS ; 0e 14004 xchg bp, ax ; 95 14005 adc byte [di-06aebh], dl ; 10 95 15 95 14006 pop SS ; 17 14007 xchg bp, ax ; 95 14008 apm_worker: ; 0xf94ea LB 0x3a 13982 14009 sti ; fb 13983 14010 push ax ; 50 … … 13991 14018 pop ax ; 58 13992 14019 mov AH, strict byte 053h ; b4 53 13993 jnc short 09 4e0h ; 73 2513994 jmp word [cs:bp-06b 70h] ; 2e ff a6 90 9413995 jmp short 09 4deh ; eb 1c14020 jnc short 09520h ; 73 25 14021 jmp word [cs:bp-06b30h] ; 2e ff a6 d0 94 14022 jmp short 0951eh ; eb 1c 13996 14023 sti ; fb 13997 14024 hlt ; f4 13998 jmp short 09 4deh ; eb 1813999 jmp short 09 4deh ; eb 1614000 jmp short 09 4e0h ; eb 1614025 jmp short 0951eh ; eb 18 14026 jmp short 0951eh ; eb 16 14027 jmp short 09520h ; eb 16 14001 14028 mov AH, strict byte 080h ; b4 80 14002 jmp short 09 4e2h ; eb 1414003 jmp short 09 4e0h ; eb 1014029 jmp short 09522h ; eb 14 14030 jmp short 09520h ; eb 10 14004 14031 mov ax, 00102h ; b8 02 01 14005 jmp short 09 4deh ; eb 0914006 jmp short 09 4deh ; eb 0714032 jmp short 0951eh ; eb 09 14033 jmp short 0951eh ; eb 07 14007 14034 mov BL, strict byte 000h ; b3 00 14008 14035 mov cx, strict word 00000h ; b9 00 00 14009 jmp short 09 4deh ; eb 0014036 jmp short 0951eh ; eb 00 14010 14037 clc ; f8 14011 14038 retn ; c3 … … 14013 14040 stc ; f9 14014 14041 retn ; c3 14015 apm_pm16_entry: ; 0xf9 4e4 LB 0x1114042 apm_pm16_entry: ; 0xf9524 LB 0x11 14016 14043 mov AH, strict byte 002h ; b4 02 14017 14044 push DS ; 1e … … 14021 14048 add bp, strict byte 00008h ; 83 c5 08 14022 14049 mov ds, bp ; 8e dd 14023 call 094 aah ; e8 b8 ff14050 call 094eah ; e8 b8 ff 14024 14051 pop bp ; 5d 14025 14052 pop DS ; 1f 14026 14053 retf ; cb 14027 14054 14028 ; Padding 0x4 50b bytes at 0xf94f514029 times 176 75db 014055 ; Padding 0x44cb bytes at 0xf9535 14056 times 17611 db 0 14030 14057 14031 14058 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 14074 14101 add bp, strict byte 00008h ; 83 c5 08 14075 14102 push ebp ; 66 55 14076 mov bp, 09 4e6h ; bd e6 9414103 mov bp, 09526h ; bd 26 95 14077 14104 add byte [bx+si], al ; 00 00 14078 14105 push ebp ; 66 55 … … 14523 14550 cmp AL, strict byte 009h ; 3c 09 14524 14551 jne short 0e0a1h ; 75 03 14525 jmp near 0e34 2h ; e9 a10214552 jmp near 0e34bh ; e9 aa 02 14526 14553 cmp AL, strict byte 005h ; 3c 05 14527 14554 je short 0e030h ; 74 8b … … 14566 14593 pop DS ; 1f 14567 14594 cld ; fc 14568 call 017 27h ; e8 3c 3614595 call 01777h ; e8 8c 36 14569 14596 call 0e8e0h ; e8 f2 07 14570 14597 db 033h, 0dbh … … 14612 14639 mov ax, 0f000h ; b8 00 f0 14613 14640 mov word [00072h], ax ; a3 72 00 14614 call 0e7c0h ; e8 50 06 14641 call 0e778h ; e8 08 06 14642 call 0f13ch ; e8 c9 0f 14643 call 0f1c1h ; e8 4b 10 14615 14644 mov ax, 0fea5h ; b8 a5 fe 14616 14645 mov word [00020h], ax ; a3 20 00 … … 14622 14651 out strict byte 040h, AL ; e6 40 14623 14652 out strict byte 040h, AL ; e6 40 14653 mov ax, 0f065h ; b8 65 f0 14654 mov word [00040h], ax ; a3 40 00 14655 mov ax, 0f000h ; b8 00 f0 14656 mov word [00042h], ax ; a3 42 00 14624 14657 mov ax, 0e987h ; b8 87 e9 14625 14658 mov word [00024h], ax ; a3 24 00 … … 14650 14683 pop DS ; 1f 14651 14684 cld ; fc 14652 call 04964h ; e8 91 67 14685 mov ax, 0c000h ; b8 00 c0 14686 mov dx, 0c800h ; ba 00 c8 14687 call 01600h ; e8 15 34 14688 call 049b4h ; e8 c6 67 14653 14689 pop DS ; 1f 14654 14690 mov AL, strict byte 014h ; b0 14 … … 14667 14703 mov CL, strict byte 014h ; b1 14 14668 14704 mov dx, 00378h ; ba 78 03 14669 call 0ecedh ; e8 f60a14705 call 0ecedh ; e8 db 0a 14670 14706 mov dx, 00278h ; ba 78 02 14671 call 0ecedh ; e8 f00a14707 call 0ecedh ; e8 d5 0a 14672 14708 sal bx, 00eh ; c1 e3 0e 14673 14709 mov ax, word [00410h] ; a1 10 04 … … 14692 14728 mov CL, strict byte 00ah ; b1 0a 14693 14729 mov dx, 003f8h ; ba f8 03 14694 call 0ed0bh ; e8 d20a14730 call 0ed0bh ; e8 b7 0a 14695 14731 mov dx, 002f8h ; ba f8 02 14696 call 0ed0bh ; e8 cc0a14732 call 0ed0bh ; e8 b1 0a 14697 14733 mov dx, 003e8h ; ba e8 03 14698 call 0ed0bh ; e8 c60a14734 call 0ed0bh ; e8 ab 0a 14699 14735 mov dx, 002e8h ; ba e8 02 14700 call 0ed0bh ; e8 c00a14736 call 0ed0bh ; e8 a5 0a 14701 14737 sal bx, 009h ; c1 e3 09 14702 14738 mov ax, word [00410h] ; a1 10 04 … … 14717 14753 mov ax, 0f000h ; b8 00 f0 14718 14754 mov word [001c2h], ax ; a3 c2 01 14719 call 0edbfh ; e8 3f0b14755 call 0edbfh ; e8 24 0b 14720 14756 mov ax, 0f8a9h ; b8 a9 f8 14721 14757 mov word [001d0h], ax ; a3 d0 01 … … 14726 14762 mov ax, 0f000h ; b8 00 f0 14727 14763 mov word [001d6h], ax ; a3 d6 01 14728 mov ax, 0f065h ; b8 65 f0 14729 mov word [00040h], ax ; a3 40 00 14730 mov ax, 0f000h ; b8 00 f0 14731 mov word [00042h], ax ; a3 42 00 14732 call 0e79bh ; e8 f4 04 14733 call 0f13ch ; e8 92 0e 14734 call 0f1c1h ; e8 14 0f 14735 call 0e758h ; e8 a8 04 14736 jmp short 0e31bh ; eb 69 14737 times 0xf db 0 14764 call 0e753h ; e8 9d 04 14765 jmp short 0e31bh ; eb 63 14766 times 0x9 db 0 14738 14767 db 'XM' 14739 14768 nmi: ; 0xfe2c3 LB 0x7 … … 14741 14770 pop DS ; 1f 14742 14771 cld ; fc 14743 call 017 03h ; e8 3a 3414772 call 01753h ; e8 8a 34 14744 14773 iret ; cf 14745 14774 int75_handler: ; 0xfe2ca LB 0x8 … … 14779 14808 pop DS ; 1f 14780 14809 cld ; fc 14781 call 01b 5dh ; e8 3c 3814782 call 01f 57h ; e8 33 3c14783 call 08d 60h ; e8 39aa14784 call 07e 37h ; e8 0d9b14810 call 01badh ; e8 8c 38 14811 call 01fa7h ; e8 83 3c 14812 call 08d9eh ; e8 77 aa 14813 call 07e75h ; e8 4b 9b 14785 14814 call 0ed2fh ; e8 02 0a 14786 14815 call 0e2d2h ; e8 a2 ff … … 14788 14817 pop DS ; 1f 14789 14818 cld ; fc 14790 call 01747h ; e8 11 34 14791 call 03648h ; e8 0f 53 14819 call 01797h ; e8 61 34 14820 mov ax, 0c800h ; b8 00 c8 14821 mov dx, 0f000h ; ba 00 f0 14822 call 01600h ; e8 c1 32 14823 call 03698h ; e8 56 53 14792 14824 sti ; fb 14793 14825 int 019h ; cd 19 14794 14826 sti ; fb 14795 14827 hlt ; f4 14796 jmp short 0e3 3dh ; eb fd14828 jmp short 0e346h ; eb fd 14797 14829 cli ; fa 14798 14830 hlt ; f4 … … 14816 14848 sti ; fb 14817 14849 retf 00002h ; ca 02 00 14818 times 0x 91db 014850 times 0x88 db 0 14819 14851 db 'XM' 14820 14852 int13_handler: ; 0xfe3fe LB 0x3 … … 14887 14919 pop DS ; 1f 14888 14920 cld ; fc 14889 call 05 cf6h ; e8 b47514921 call 05d34h ; e8 f2 75 14890 14922 popaw ; 61 14891 14923 pop ES ; 07 … … 14898 14930 pop DS ; 1f 14899 14931 cld ; fc 14900 call 016 98h ; e8 49 2f14932 call 016e8h ; e8 99 2f 14901 14933 popaw ; 61 14902 14934 pop ES ; 07 14903 14935 pop DS ; 1f 14904 14936 iret ; cf 14905 rom_checksum: ; 0xfe753 LB 0x5 14906 push ax ; 50 14907 db 032h, 0c0h 14908 ; xor al, al ; 32 c0 14909 pop ax ; 58 14910 retn ; c3 14911 rom_scan: ; 0xfe758 LB 0x43 14912 mov cx, 0c000h ; b9 00 c0 14913 mov ds, cx ; 8e d9 14914 mov ax, strict word 00004h ; b8 04 00 14915 cmp word [word 00000h], 0aa55h ; 81 3e 00 00 55 aa 14916 jne short 0e78bh ; 75 23 14917 call 0e753h ; e8 e8 ff 14918 jne short 0e78bh ; 75 1e 14919 mov AL, byte [00002h] ; a0 02 00 14920 test AL, strict byte 003h ; a8 03 14921 je short 0e778h ; 74 04 14922 and AL, strict byte 0fch ; 24 fc 14923 add AL, strict byte 004h ; 04 04 14924 db 033h, 0dbh 14925 ; xor bx, bx ; 33 db 14926 mov ds, bx ; 8e db 14927 push ax ; 50 14928 push cx ; 51 14929 push strict byte 00003h ; 6a 03 14930 db 08bh, 0ech 14931 ; mov bp, sp ; 8b ec 14932 call far [byte bp+000h] ; ff 5e 00 14933 cli ; fa 14934 add sp, strict byte 00002h ; 83 c4 02 14935 pop cx ; 59 14936 pop ax ; 58 14937 sal ax, 005h ; c1 e0 05 14938 db 003h, 0c8h 14939 ; add cx, ax ; 03 c8 14940 cmp cx, 0e800h ; 81 f9 00 e8 14941 jbe short 0e75bh ; 76 c5 14942 db 033h, 0c0h 14943 ; xor ax, ax ; 33 c0 14944 mov ds, ax ; 8e d8 14945 retn ; c3 14946 init_pic: ; 0xfe79b LB 0x25 14937 init_pic: ; 0xfe753 LB 0x25 14947 14938 mov AL, strict byte 011h ; b0 11 14948 14939 out strict byte 020h, AL ; e6 20 … … 14964 14955 out strict byte 0a1h, AL ; e6 a1 14965 14956 retn ; c3 14966 ebda_post: ; 0xfe7 c0 LB 0xa414957 ebda_post: ; 0xfe778 LB 0xec 14967 14958 mov ax, 0e746h ; b8 46 e7 14968 14959 mov word [00034h], ax ; a3 34 00 … … 14989 14980 mov word [0040eh], 09fc0h ; c7 06 0e 04 c0 9f 14990 14981 retn ; c3 14991 times 0x 27db 014982 times 0x6f db 0 14992 14983 pop ax ; 58 14993 14984 dec bp ; 4d … … 15003 14994 pop DS ; 1f 15004 14995 cld ; fc 15005 call 050 64h ; e8 226814996 call 050a2h ; e8 60 68 15006 14997 popaw ; 61 15007 14998 pop DS ; 1f … … 15020 15011 pop DS ; 1f 15021 15012 cld ; fc 15022 call 050 64h ; e8 046815013 call 050a2h ; e8 42 68 15023 15014 popaw ; 61 15024 15015 pop DS ; 1f … … 15119 15110 pop DS ; 1f 15120 15111 cld ; fc 15121 call 04c 73h ; e8 a46215112 call 04cb1h ; e8 e2 62 15122 15113 pop ES ; 07 15123 15114 popaw ; 61 … … 15135 15126 pop DS ; 1f 15136 15127 cld ; fc 15137 call 067 4eh ; e8 697d15128 call 0678ch ; e8 a7 7d 15138 15129 pop DS ; 1f 15139 15130 pop ES ; 07 … … 15156 15147 cld ; fc 15157 15148 push 0ece9h ; 68 e9 ec 15158 jmp near 036 8ch ; e9 1b 4a15149 jmp near 036dch ; e9 6b 4a 15159 15150 push ES ; 06 15160 15151 push ax ; 50 … … 15162 15153 push cx ; 51 15163 15154 push dx ; 52 15164 call 036 60h ; e8 e7 4915155 call 036b0h ; e8 37 4a 15165 15156 cmp AL, strict byte 000h ; 3c 00 15166 15157 je short 0ecabh ; 74 2e 15167 call 036 76h ; e8 f6 4915158 call 036c6h ; e8 46 4a 15168 15159 pop dx ; 5a 15169 15160 push dx ; 52 … … 15183 15174 cld ; fc 15184 15175 push 0ece9h ; 68 e9 ec 15185 jmp near 03c 60h ; e9 c9 4f15176 jmp near 03cb0h ; e9 19 50 15186 15177 and dl, 0e0h ; 80 e2 e0 15187 15178 db 03ah, 0c2h … … 15223 15214 jne short 0ecc8h ; 75 06 15224 15215 push 0ece9h ; 68 e9 ec 15225 jmp near 02 edeh ; e9 16 4215216 jmp near 02f2eh ; e9 66 42 15226 15217 int13_notfloppy: ; 0xfecc8 LB 0x14 15227 15218 cmp dl, 0e0h ; 80 fa e0 … … 15229 15220 shr ebx, 010h ; 66 c1 eb 10 15230 15221 push bx ; 53 15231 call 040 94h ; e8 bf 5315222 call 040e4h ; e8 0f 54 15232 15223 pop bx ; 5b 15233 15224 sal ebx, 010h ; 66 c1 e3 10 … … 15236 15227 cmp ah, 040h ; 80 fc 40 15237 15228 jnbe short 0ece6h ; 77 05 15238 call 05 3e9h ; e8 056715229 call 05427h ; e8 43 67 15239 15230 jmp short 0ece9h ; eb 03 15240 call 058 2ah ; e8 416b15231 call 05868h ; e8 7f 6b 15241 15232 int13_out: ; 0xfece9 LB 0x4 15242 15233 pop DS ; 1f … … 15451 15442 pop DS ; 1f 15452 15443 cld ; fc 15453 call 070 a8h ; e8 cb 8015444 call 070e6h ; e8 09 81 15454 15445 popaw ; 61 15455 15446 pop ES ; 07 … … 15476 15467 pop DS ; 1f 15477 15468 cld ; fc 15478 call 017 15h ; e8 6b 2615469 call 01765h ; e8 bb 26 15479 15470 hlt ; f4 15480 15471 iret ; cf … … 15499 15490 mov ax, strict word 00001h ; b8 01 00 15500 15491 push ax ; 50 15501 call 04 6fbh ; e8 2b 5615492 call 0474bh ; e8 7b 56 15502 15493 inc sp ; 44 15503 15494 inc sp ; 44 … … 15506 15497 mov ax, strict word 00002h ; b8 02 00 15507 15498 push ax ; 50 15508 call 04 6fbh ; e8 1e 5615499 call 0474bh ; e8 6e 56 15509 15500 inc sp ; 44 15510 15501 inc sp ; 44 … … 15513 15504 mov ax, strict word 00003h ; b8 03 00 15514 15505 push strict byte 00003h ; 6a 03 15515 call 04 6fbh ; e8 10 5615506 call 0474bh ; e8 60 56 15516 15507 inc sp ; 44 15517 15508 inc sp ; 44 … … 15520 15511 mov ax, strict word 00004h ; b8 04 00 15521 15512 push ax ; 50 15522 call 04 6fbh ; e8 03 5615513 call 0474bh ; e8 53 56 15523 15514 inc sp ; 44 15524 15515 inc sp ; 44 … … 15811 15802 cmp ah, 0c2h ; 80 fc c2 15812 15803 je short 0f887h ; 74 0e 15813 call 05f 03h ; e8 876615804 call 05f41h ; e8 c5 66 15814 15805 popaw ; 61 15815 15806 pop ES ; 07 … … 15817 15808 popfw ; 9d 15818 15809 jmp short 0f895h ; eb 13 15819 call 08e 97h ; e8 129615810 call 08ed5h ; e8 50 96 15820 15811 jmp short 0f87ch ; eb f5 15821 15812 int15_handler_mouse: ; 0xff887 LB 0x5 15822 call 06d 1dh ; e8 937415813 call 06d5bh ; e8 d1 74 15823 15814 jmp short 0f87ch ; eb f0 15824 15815 int15_handler32: ; 0xff88c LB 0x9 15825 15816 pushad ; 66 60 15826 call 06 3d0h ; e8 3f6b15817 call 0640eh ; e8 7d 6b 15827 15818 popad ; 66 61 15828 15819 jmp short 0f87dh ; eb e8 … … 15854 15845 pop DS ; 1f 15855 15846 cld ; fc 15856 call 06c 53h ; e8 967315847 call 06c91h ; e8 d4 73 15857 15848 pop cx ; 59 15858 15849 jcxz 0f8cch ; e3 0c … … 15946 15937 db 018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h 15947 15938 db 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h 15948 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 0 2ah, 092h, 066h15949 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 0 5fh, 06bh, 061h, 01fh, 007h15939 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 068h, 092h, 066h 15940 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 09dh, 06bh, 061h, 01fh, 007h 15950 15941 db 0cfh 15951 15942 int70_handler: ; 0xffe8f LB 0x16 … … 15956 15947 pop DS ; 1f 15957 15948 cld ; fc 15958 call 069 2ch ; e8 946a15949 call 0696ah ; e8 d2 6a 15959 15950 popaw ; 61 15960 15951 pop DS ; 1f … … 16055 16046 cpu_reset: ; 0xffff0 LB 0x10 16056 16047 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 16057 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 c8h16048 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 043h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum
r50159 r50167 1 53f0c512b84912d343d92609bc95421d*VBoxPcBios.rom1 48e87ba7702996c77a05a83a5e1055ea *VBoxPcBios.rom
Note:
See TracChangeset
for help on using the changeset viewer.