Changeset 60443 in vbox
- Timestamp:
- Apr 11, 2016 9:31:34 PM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 106529
- Location:
- trunk/src/VBox/Devices/PC/BIOS
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
r60422 r60443 856 856 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 857 857 _pktacc: ; 0xf006a LB 0xc 858 db 000h, 000h, 000h, 000h, 000h, 000h, 0 40h, 02bh, 05ch, 081h, 0c2h, 090h858 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 0e5h, 080h, 04bh, 090h 859 859 _softrst: ; 0xf0076 LB 0xc 860 db 000h, 000h, 000h, 000h, 000h, 000h, 0 c9h, 02dh, 008h, 03bh, 008h, 03bh860 db 000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 0c8h, 03ah, 0c8h, 03ah 861 861 _dskacc: ; 0xf0082 LB 0x2e 862 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0 30h, 02ah, 0e5h, 02ah, 000h, 000h, 000h, 000h863 db 0 9ch, 07fh, 07ch, 080h, 094h, 08fh, 03ch, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h862 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f0h, 029h, 0a5h, 02ah, 000h, 000h, 000h, 000h 863 db 025h, 07fh, 005h, 080h, 01dh, 08fh, 0c5h, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 864 864 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 865 865 … … 1058 1058 times 1144 db 0 1059 1059 1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8a c5 class=CODE group=AUTO1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8a45 class=CODE group=AUTO 1061 1061 rom_scan_: ; 0xf1600 LB 0x50 1062 1062 push bp ; 55 … … 1308 1308 int 010h ; cd 10 1309 1309 jmp short 017b7h ; eb 03 1310 call 07 b63h ; e8 ac631310 call 07aeah ; e8 33 63 1311 1311 mov sp, bp ; 89 ec 1312 1312 pop bp ; 5d … … 1453 1453 mov bx, strict word 0000ah ; bb 0a 00 1454 1454 xor cx, cx ; 31 c9 1455 call 09f b0h ; e8 e3 861455 call 09f30h ; e8 63 86 1456 1456 mov word [bp-008h], ax ; 89 46 f8 1457 1457 mov cx, dx ; 89 d1 … … 1683 1683 mov dx, word [bp-026h] ; 8b 56 da 1684 1684 mov si, word [bp-01eh] ; 8b 76 e2 1685 call 0 a02ah ; e8 2d 851685 call 09faah ; e8 ad 84 1686 1686 mov ax, dx ; 89 d0 1687 1687 xor ah, dh ; 30 f4 … … 2122 2122 mov dx, word [es:si] ; 26 8b 14 2123 2123 mov si, strict word 00018h ; be 18 00 2124 call 0 a02ah ; e8 da 802124 call 09faah ; e8 5a 80 2125 2125 xor dh, dh ; 30 f6 2126 2126 mov word [bp-014h], dx ; 89 56 ec … … 2132 2132 mov dx, word [es:si] ; 26 8b 14 2133 2133 mov si, strict word 00020h ; be 20 00 2134 call 0 a02ah ; e8 ba 802134 call 09faah ; e8 3a 80 2135 2135 mov bx, dx ; 89 d3 2136 2136 mov ax, word [bp-01ch] ; 8b 46 e4 … … 2163 2163 mov dx, word [es:si] ; 26 8b 14 2164 2164 mov si, strict word 00008h ; be 08 00 2165 call 0 a02ah ; e8 69 802165 call 09faah ; e8 e9 7f 2166 2166 mov word [bp-012h], dx ; 89 56 ee 2167 2167 mov bx, word [bp-016h] ; 8b 5e ea … … 2172 2172 mov dx, word [es:si] ; 26 8b 14 2173 2173 mov si, strict word 00018h ; be 18 00 2174 call 0 a02ah ; e8 4b 802174 call 09faah ; e8 cb 7f 2175 2175 mov ah, dl ; 88 d4 2176 2176 and ah, 00fh ; 80 e4 0f … … 2307 2307 pop bp ; 5d 2308 2308 retn ; c3 2309 _ata_detect: ; 0xf2118 LB 0x6 8e2309 _ata_detect: ; 0xf2118 LB 0x64e 2310 2310 push bp ; 55 2311 2311 mov bp, sp ; 89 e5 … … 2316 2316 mov ax, strict word 00040h ; b8 40 00 2317 2317 call 0166ch ; e8 42 f5 2318 mov word [bp-0 1ah], ax ; 89 46 e62318 mov word [bp-026h], ax ; 89 46 da 2319 2319 mov di, 00122h ; bf 22 01 2320 2320 mov es, ax ; 8e c0 2321 mov word [bp-0 1ch], di ; 89 7e e42322 mov word [bp-0 1eh], ax ; 89 46 e22321 mov word [bp-022h], di ; 89 7e de 2322 mov word [bp-020h], ax ; 89 46 e0 2323 2323 mov byte [es:di+00204h], 000h ; 26 c6 85 04 02 00 2324 2324 mov word [es:di+00206h], 001f0h ; 26 c7 85 06 02 f0 01 … … 2330 2330 mov byte [es:di+0020bh], 00fh ; 26 c6 85 0b 02 0f 2331 2331 xor al, al ; 30 c0 2332 mov byte [bp-00 ch], al ; 88 46 f42332 mov byte [bp-008h], al ; 88 46 f8 2333 2333 mov byte [bp-012h], al ; 88 46 ee 2334 mov byte [bp-00 eh], al ; 88 46 f22335 jmp near 02 726h ; e9 ac052334 mov byte [bp-00ah], al ; 88 46 f6 2335 jmp near 026ech ; e9 72 05 2336 2336 mov ax, 000a0h ; b8 a0 00 2337 2337 lea dx, [si+006h] ; 8d 54 06 2338 2338 out DX, AL ; ee 2339 lea bx, [si+002h] ; 8d 5c 02 2339 lea di, [si+002h] ; 8d 7c 02 2340 mov AL, strict byte 055h ; b0 55 2341 mov dx, di ; 89 fa 2342 out DX, AL ; ee 2343 lea bx, [si+003h] ; 8d 5c 03 2344 mov AL, strict byte 0aah ; b0 aa 2345 mov dx, bx ; 89 da 2346 out DX, AL ; ee 2347 mov dx, di ; 89 fa 2348 out DX, AL ; ee 2340 2349 mov AL, strict byte 055h ; b0 55 2341 2350 mov dx, bx ; 89 da 2342 2351 out DX, AL ; ee 2343 lea di, [si+003h] ; 8d 7c 03 2352 mov dx, di ; 89 fa 2353 out DX, AL ; ee 2344 2354 mov AL, strict byte 0aah ; b0 aa 2355 mov dx, bx ; 89 da 2356 out DX, AL ; ee 2345 2357 mov dx, di ; 89 fa 2346 out DX, AL ; ee 2347 mov dx, bx ; 89 da 2348 out DX, AL ; ee 2349 mov AL, strict byte 055h ; b0 55 2350 mov dx, di ; 89 fa 2351 out DX, AL ; ee 2352 mov dx, bx ; 89 da 2353 out DX, AL ; ee 2354 mov AL, strict byte 0aah ; b0 aa 2355 mov dx, di ; 89 fa 2356 out DX, AL ; ee 2358 in AL, DX ; ec 2359 db 02ah, 0e4h 2360 ; sub ah, ah ; 2a e4 2361 mov cx, ax ; 89 c1 2357 2362 mov dx, bx ; 89 da 2358 2363 in AL, DX ; ec 2359 2364 db 02ah, 0e4h 2360 2365 ; sub ah, ah ; 2a e4 2361 mov bx, ax ; 89 c3 2362 mov dx, di ; 89 fa 2363 in AL, DX ; ec 2364 db 02ah, 0e4h 2365 ; sub ah, ah ; 2a e4 2366 cmp bl, 055h ; 80 fb 55 2367 jne short 021fch ; 75 4a 2366 cmp cl, 055h ; 80 f9 55 2367 jne short 021f9h ; 75 47 2368 2368 cmp AL, strict byte 0aah ; 3c aa 2369 jne short 021f ch ; 75 462370 mov al, byte [bp-00 eh] ; 8a 46 f22369 jne short 021f9h ; 75 43 2370 mov al, byte [bp-00ah] ; 8a 46 f6 2371 2371 xor ah, ah ; 30 e4 2372 2372 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2373 mov es, [bp-01eh] ; 8e 46 e2 2374 mov bx, word [bp-01ch] ; 8b 5e e4 2373 les bx, [bp-022h] ; c4 5e de 2375 2374 add bx, ax ; 01 c3 2376 2375 mov byte [es:bx+022h], 001h ; 26 c6 47 22 01 2377 mov al, byte [bp-00 eh] ; 8a 46 f22378 xor ah, ah ; 30 e4 2379 call 01d85h ; e8 b 2fb2380 cmp byte [bp-0 0ah], 000h ; 80 7e f6002381 je short 021d eh ; 74 052376 mov al, byte [bp-00ah] ; 8a 46 f6 2377 xor ah, ah ; 30 e4 2378 call 01d85h ; e8 b5 fb 2379 cmp byte [bp-010h], 000h ; 80 7e f0 00 2380 je short 021dbh ; 74 05 2382 2381 mov ax, 000b0h ; b8 b0 00 2383 jmp short 021 e1h ; eb 032382 jmp short 021deh ; eb 03 2384 2383 mov ax, 000a0h ; b8 a0 00 2385 2384 lea dx, [si+006h] ; 8d 54 06 … … 2395 2394 ; sub ah, ah ; 2a e4 2396 2395 cmp bl, 001h ; 80 fb 01 2397 jne short 0223 8h ; 75 402396 jne short 02232h ; 75 3d 2398 2397 cmp al, bl ; 38 d8 2399 je short 021f eh ; 74 022400 jmp short 0223 8h ; eb 3a2398 je short 021fbh ; 74 02 2399 jmp short 02232h ; eb 37 2401 2400 lea dx, [si+004h] ; 8d 54 04 2402 in AL, DX ; ec2403 db 02ah, 0e4h2404 ; sub ah, ah ; 2a e42405 mov cx, ax ; 89 c12406 mov ch, al ; 88 c52407 lea dx, [si+005h] ; 8d 54 052408 2401 in AL, DX ; ec 2409 2402 db 02ah, 0e4h … … 2411 2404 mov bx, ax ; 89 c3 2412 2405 mov byte [bp-006h], al ; 88 46 fa 2406 lea dx, [si+005h] ; 8d 54 05 2407 in AL, DX ; ec 2408 db 02ah, 0e4h 2409 ; sub ah, ah ; 2a e4 2410 mov cx, ax ; 89 c1 2411 mov bh, al ; 88 c7 2413 2412 lea dx, [si+007h] ; 8d 54 07 2414 2413 in AL, DX ; ec 2415 2414 db 02ah, 0e4h 2416 2415 ; sub ah, ah ; 2a e4 2417 cmp cl, 014h ; 80 f9142418 jne short 0223 ah ; 75 1c2419 cmp bl, 0ebh ; 80 fbeb2420 jne short 0223 ah ; 75 172421 mov al, byte [bp-00 eh] ; 8a 46 f22416 cmp bl, 014h ; 80 fb 14 2417 jne short 02234h ; 75 19 2418 cmp cl, 0ebh ; 80 f9 eb 2419 jne short 02234h ; 75 14 2420 mov al, byte [bp-00ah] ; 8a 46 f6 2422 2421 xor ah, ah ; 30 e4 2423 2422 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2424 mov es, [bp-01eh] ; 8e 46 e2 2425 mov bx, word [bp-01ch] ; 8b 5e e4 2423 les bx, [bp-022h] ; c4 5e de 2426 2424 add bx, ax ; 01 c3 2427 2425 mov byte [es:bx+022h], 003h ; 26 c6 47 22 03 2428 jmp short 0227eh ; eb 44 2429 test ch, ch ; 84 ed 2430 jne short 0225fh ; 75 21 2426 jmp short 02273h ; eb 3f 2431 2427 cmp byte [bp-006h], 000h ; 80 7e fa 00 2432 jne short 0225fh ; 75 1b 2428 jne short 02256h ; 75 1c 2429 test bh, bh ; 84 ff 2430 jne short 02256h ; 75 18 2433 2431 test al, al ; 84 c0 2434 je short 0225 fh ; 74 172435 mov al, byte [bp-00 eh] ; 8a 46 f22432 je short 02256h ; 74 14 2433 mov al, byte [bp-00ah] ; 8a 46 f6 2436 2434 xor ah, ah ; 30 e4 2437 2435 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2438 mov es, [bp-01eh] ; 8e 46 e2 2439 mov bx, word [bp-01ch] ; 8b 5e e4 2436 les bx, [bp-022h] ; c4 5e de 2440 2437 add bx, ax ; 01 c3 2441 2438 mov byte [es:bx+022h], 002h ; 26 c6 47 22 02 2442 jmp short 0227eh ; eb 1f 2443 cmp ch, 0ffh ; 80 fd ff 2444 jne short 0227eh ; 75 1a 2445 cmp ch, byte [bp-006h] ; 3a 6e fa 2446 jne short 0227eh ; 75 15 2447 mov al, byte [bp-00eh] ; 8a 46 f2 2439 jmp short 02273h ; eb 1d 2440 mov al, byte [bp-006h] ; 8a 46 fa 2441 cmp AL, strict byte 0ffh ; 3c ff 2442 jne short 02273h ; 75 16 2443 cmp bh, al ; 38 c7 2444 jne short 02273h ; 75 12 2445 mov al, byte [bp-00ah] ; 8a 46 f6 2448 2446 xor ah, ah ; 30 e4 2449 2447 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2450 mov es, [bp-01eh] ; 8e 46 e2 2451 mov bx, word [bp-01ch] ; 8b 5e e4 2448 les bx, [bp-022h] ; c4 5e de 2452 2449 add bx, ax ; 01 c3 2453 2450 mov byte [es:bx+022h], 000h ; 26 c6 47 22 00 2454 mov dx, word [bp-0 2ah] ; 8b 56 d62451 mov dx, word [bp-01ah] ; 8b 56 e6 2455 2452 add dx, strict byte 00006h ; 83 c2 06 2456 2453 mov AL, strict byte 008h ; b0 08 2457 2454 out DX, AL ; ee 2458 mov al, byte [bp-00 eh] ; 8a 46 f22455 mov al, byte [bp-00ah] ; 8a 46 f6 2459 2456 xor ah, ah ; 30 e4 2460 2457 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2461 mov es, [bp-01eh] ; 8e 46 e2 2462 mov si, word [bp-01ch] ; 8b 76 e4 2458 les si, [bp-022h] ; c4 76 de 2463 2459 add si, ax ; 01 c6 2464 2460 mov al, byte [es:si+022h] ; 26 8a 44 22 2465 mov byte [bp-00 8h], al ; 88 46 f82461 mov byte [bp-00ch], al ; 88 46 f4 2466 2462 cmp AL, strict byte 002h ; 3c 02 2467 jne short 022 fdh ; 75 5b2463 jne short 022ddh ; 75 49 2468 2464 mov byte [es:si+023h], 0ffh ; 26 c6 44 23 ff 2469 2465 mov byte [es:si+026h], 000h ; 26 c6 44 26 00 2470 2466 lea dx, [bp-00264h] ; 8d 96 9c fd 2471 mov bx, word [bp-0 1ch] ; 8b 5e e42467 mov bx, word [bp-022h] ; 8b 5e de 2472 2468 mov word [es:bx+008h], dx ; 26 89 57 08 2473 2469 mov [es:bx+00ah], ss ; 26 8c 57 0a 2474 mov al, byte [bp-00 eh] ; 8a 46 f22470 mov al, byte [bp-00ah] ; 8a 46 f6 2475 2471 mov byte [es:bx+00ch], al ; 26 88 47 0c 2476 2472 mov cx, strict word 00001h ; b9 01 00 2477 2473 mov bx, 000ech ; bb ec 00 2478 mov ax, word [bp-0 1ch] ; 8b 46 e42474 mov ax, word [bp-022h] ; 8b 46 de 2479 2475 mov dx, es ; 8c c2 2480 call 01e63h ; e8 93fb2476 call 01e63h ; e8 a1 fb 2481 2477 test ax, ax ; 85 c0 2482 je short 022d fh ; 74 0b2478 je short 022d1h ; 74 0b 2483 2479 push 00124h ; 68 24 01 2484 2480 push strict byte 00007h ; 6a 07 2485 call 01966h ; e8 8af62481 call 01966h ; e8 98 f6 2486 2482 add sp, strict byte 00004h ; 83 c4 04 2487 2483 test byte [bp-00264h], 080h ; f6 86 9c fd 80 2488 je short 022e bh ; 74 052484 je short 022e0h ; 74 08 2489 2485 mov ax, strict word 00001h ; b8 01 00 2490 jmp short 022edh ; eb 02 2486 jmp short 022e2h ; eb 05 2487 jmp near 024bfh ; e9 df 01 2491 2488 xor ax, ax ; 31 c0 2492 2489 mov byte [bp-016h], al ; 88 46 ea 2493 mov al, byte [bp-00204h] ; 8a 86 fc fd 2494 test al, al ; 84 c0 2495 je short 02300h ; 74 08 2496 mov ax, strict word 00001h ; b8 01 00 2497 jmp short 02302h ; eb 05 2498 jmp near 024deh ; e9 de 01 2499 xor ah, ah ; 30 e4 2500 mov byte [bp-018h], al ; 88 46 e8 2490 mov byte [bp-018h], 000h ; c6 46 e8 00 2501 2491 mov word [bp-034h], 00200h ; c7 46 cc 00 02 2502 2492 mov ax, word [bp-00262h] ; 8b 86 9e fd 2503 mov word [bp-0 24h], ax ; 89 46 dc2493 mov word [bp-01ch], ax ; 89 46 e4 2504 2494 mov ax, word [bp-0025eh] ; 8b 86 a2 fd 2505 mov word [bp-0 26h], ax ; 89 46 da2495 mov word [bp-030h], ax ; 89 46 d0 2506 2496 mov ax, word [bp-00258h] ; 8b 86 a8 fd 2507 mov word [bp-02 2h], ax ; 89 46 de2497 mov word [bp-02ah], ax ; 89 46 d6 2508 2498 mov si, word [bp-001ech] ; 8b b6 14 fe 2509 2499 mov ax, word [bp-001eah] ; 8b 86 16 fe 2510 mov word [bp-02 0h], ax ; 89 46 e02500 mov word [bp-028h], ax ; 89 46 d8 2511 2501 xor ax, ax ; 31 c0 2512 mov word [bp-030h], ax ; 89 46 d0 2502 mov word [bp-01eh], ax ; 89 46 e2 2503 mov word [bp-02ch], ax ; 89 46 d4 2504 cmp word [bp-028h], 00fffh ; 81 7e d8 ff 0f 2505 jne short 0233bh ; 75 1e 2506 cmp si, strict byte 0ffffh ; 83 fe ff 2507 jne short 0233bh ; 75 19 2508 mov ax, word [bp-00196h] ; 8b 86 6a fe 2509 mov word [bp-02ch], ax ; 89 46 d4 2510 mov ax, word [bp-00198h] ; 8b 86 68 fe 2511 mov word [bp-01eh], ax ; 89 46 e2 2512 mov ax, word [bp-0019ah] ; 8b 86 66 fe 2513 2513 mov word [bp-028h], ax ; 89 46 d8 2514 cmp word [bp-020h], 00fffh ; 81 7e e0 ff 0f2515 jne short 02357h ; 75 1e2516 cmp si, strict byte 0ffffh ; 83 fe ff2517 jne short 02357h ; 75 192518 mov ax, word [bp-00196h] ; 8b 86 6a fe2519 mov word [bp-028h], ax ; 89 46 d82520 mov ax, word [bp-00198h] ; 8b 86 68 fe2521 mov word [bp-030h], ax ; 89 46 d02522 mov ax, word [bp-0019ah] ; 8b 86 66 fe2523 mov word [bp-020h], ax ; 89 46 e02524 2514 mov si, word [bp-0019ch] ; 8b b6 64 fe 2525 mov al, byte [bp-00 eh] ; 8a 46 f22515 mov al, byte [bp-00ah] ; 8a 46 f6 2526 2516 cmp AL, strict byte 001h ; 3c 01 2527 jc short 023 6ah ; 72 0c2528 jbe short 023 72h ; 76 122517 jc short 0234eh ; 72 0c 2518 jbe short 02356h ; 76 12 2529 2519 cmp AL, strict byte 003h ; 3c 03 2530 je short 023 7ah ; 74 162520 je short 0235eh ; 74 16 2531 2521 cmp AL, strict byte 002h ; 3c 02 2532 je short 023 76h ; 74 0e2533 jmp short 023 b4h ; eb 4a2522 je short 0235ah ; 74 0e 2523 jmp short 02398h ; eb 4a 2534 2524 test al, al ; 84 c0 2535 jne short 023 b4h ; 75 462525 jne short 02398h ; 75 46 2536 2526 mov BL, strict byte 01eh ; b3 1e 2537 jmp short 023 7ch ; eb 0a2527 jmp short 02360h ; eb 0a 2538 2528 mov BL, strict byte 026h ; b3 26 2539 jmp short 023 7ch ; eb 062529 jmp short 02360h ; eb 06 2540 2530 mov BL, strict byte 067h ; b3 67 2541 jmp short 023 7ch ; eb 022531 jmp short 02360h ; eb 02 2542 2532 mov BL, strict byte 070h ; b3 70 2543 2533 mov al, bl ; 88 d8 … … 2545 2535 ; inc al ; fe c0 2546 2536 xor ah, ah ; 30 e4 2547 call 016ach ; e8 27f32537 call 016ach ; e8 43 f3 2548 2538 xor ah, ah ; 30 e4 2549 2539 mov dx, ax ; 89 c2 2550 2540 sal dx, 008h ; c1 e2 08 2551 2541 mov al, bl ; 88 d8 2552 call 016ach ; e8 1bf32542 call 016ach ; e8 37 f3 2553 2543 xor ah, ah ; 30 e4 2554 2544 add ax, dx ; 01 d0 … … 2557 2547 add AL, strict byte 002h ; 04 02 2558 2548 xor ah, ah ; 30 e4 2559 call 016ach ; e8 0bf32549 call 016ach ; e8 27 f3 2560 2550 xor ah, ah ; 30 e4 2561 2551 mov word [bp-03ah], ax ; 89 46 c6 2562 2552 mov al, bl ; 88 d8 2563 2553 add AL, strict byte 007h ; 04 07 2564 call 016ach ; e8 ff f22554 call 016ach ; e8 1b f3 2565 2555 xor ah, ah ; 30 e4 2566 2556 mov word [bp-036h], ax ; 89 46 ca 2567 jmp short 023c6h ; eb 12 2557 jmp short 023aah ; eb 12 2558 push word [bp-02ch] ; ff 76 d4 2559 push word [bp-01eh] ; ff 76 e2 2568 2560 push word [bp-028h] ; ff 76 d8 2569 push word [bp-030h] ; ff 76 d02570 push word [bp-020h] ; ff 76 e02571 2561 push si ; 56 2572 2562 mov dx, ss ; 8c d2 2573 2563 lea ax, [bp-03ah] ; 8d 46 c6 2574 call 059 d2h ; e8 0c 362564 call 05977h ; e8 cd 35 2575 2565 mov bx, 00da0h ; bb a0 0d 2576 2566 mov cx, ds ; 8c d9 2577 2567 mov ax, strict word 00004h ; b8 04 00 2578 call 01923h ; e8 52f52568 call 01923h ; e8 6e f5 2579 2569 mov ax, word [bp-036h] ; 8b 46 ca 2580 2570 push ax ; 50 … … 2583 2573 mov ax, word [bp-038h] ; 8b 46 c8 2584 2574 push ax ; 50 2585 push word [bp-02 2h] ; ff 76 de2586 push word [bp-0 26h] ; ff 76 da2587 push word [bp-0 24h] ; ff 76 dc2588 mov al, byte [bp-0 0ah] ; 8a 46 f62575 push word [bp-02ah] ; ff 76 d6 2576 push word [bp-030h] ; ff 76 d0 2577 push word [bp-01ch] ; ff 76 e4 2578 mov al, byte [bp-010h] ; 8a 46 f0 2589 2579 xor ah, ah ; 30 e4 2590 2580 push ax ; 50 … … 2593 2583 push 0014dh ; 68 4d 01 2594 2584 push strict byte 00004h ; 6a 04 2595 call 01966h ; e8 6ef52585 call 01966h ; e8 8a f5 2596 2586 add sp, strict byte 00014h ; 83 c4 14 2597 mov al, byte [bp-00 eh] ; 8a 46 f22587 mov al, byte [bp-00ah] ; 8a 46 f6 2598 2588 xor ah, ah ; 30 e4 2599 2589 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2600 mov es, [bp-01eh] ; 8e 46 e2 2601 mov di, word [bp-01ch] ; 8b 7e e4 2590 les di, [bp-022h] ; c4 7e de 2602 2591 add di, ax ; 01 c7 2603 2592 mov byte [es:di+023h], 0ffh ; 26 c6 45 23 ff … … 2608 2597 mov ax, word [bp-034h] ; 8b 46 cc 2609 2598 mov word [es:di+028h], ax ; 26 89 45 28 2610 mov ax, word [bp-0 26h] ; 8b 46 da2599 mov ax, word [bp-030h] ; 8b 46 d0 2611 2600 mov word [es:di+030h], ax ; 26 89 45 30 2612 mov ax, word [bp-0 24h] ; 8b 46 dc2601 mov ax, word [bp-01ch] ; 8b 46 e4 2613 2602 mov word [es:di+032h], ax ; 26 89 45 32 2614 mov ax, word [bp-02 2h] ; 8b 46 de2603 mov ax, word [bp-02ah] ; 8b 46 d6 2615 2604 mov word [es:di+034h], ax ; 26 89 45 34 2605 mov ax, word [bp-02ch] ; 8b 46 d4 2606 mov word [es:di+03ch], ax ; 26 89 45 3c 2607 mov ax, word [bp-01eh] ; 8b 46 e2 2608 mov word [es:di+03ah], ax ; 26 89 45 3a 2616 2609 mov ax, word [bp-028h] ; 8b 46 d8 2617 mov word [es:di+03ch], ax ; 26 89 45 3c2618 mov ax, word [bp-030h] ; 8b 46 d02619 mov word [es:di+03ah], ax ; 26 89 45 3a2620 mov ax, word [bp-020h] ; 8b 46 e02621 2610 mov word [es:di+038h], ax ; 26 89 45 38 2622 2611 mov word [es:di+036h], si ; 26 89 75 36 … … 2630 2619 movsw ; a5 2631 2620 pop DS ; 1f 2632 mov al, byte [bp-00 eh] ; 8a 46 f22621 mov al, byte [bp-00ah] ; 8a 46 f6 2633 2622 cmp AL, strict byte 002h ; 3c 02 2634 jnc short 024 c8h ; 73 612623 jnc short 024a9h ; 73 61 2635 2624 test al, al ; 84 c0 2636 jne short 024 70h ; 75 052625 jne short 02451h ; 75 05 2637 2626 mov di, strict word 0003dh ; bf 3d 00 2638 jmp short 024 73h ; eb 032627 jmp short 02454h ; eb 03 2639 2628 mov di, strict word 0004dh ; bf 4d 00 2640 mov dx, word [bp-0 1ah] ; 8b 56 e62629 mov dx, word [bp-026h] ; 8b 56 da 2641 2630 mov ax, word [bp-038h] ; 8b 46 c8 2642 2631 mov es, dx ; 8e c2 … … 2645 2634 mov byte [es:di+002h], al ; 26 88 45 02 2646 2635 mov byte [es:di+003h], 0a0h ; 26 c6 45 03 a0 2647 mov al, byte [bp-02 2h] ; 8a 46 de2636 mov al, byte [bp-02ah] ; 8a 46 d6 2648 2637 mov byte [es:di+004h], al ; 26 88 45 04 2649 mov ax, word [bp-0 24h] ; 8b 46 dc2638 mov ax, word [bp-01ch] ; 8b 46 e4 2650 2639 mov word [es:di+009h], ax ; 26 89 45 09 2651 mov al, byte [bp-0 26h] ; 8a 46 da2640 mov al, byte [bp-030h] ; 8a 46 d0 2652 2641 mov byte [es:di+00bh], al ; 26 88 45 0b 2653 mov al, byte [bp-02 2h] ; 8a 46 de2642 mov al, byte [bp-02ah] ; 8a 46 d6 2654 2643 mov byte [es:di+00eh], al ; 26 88 45 0e 2655 2644 xor al, al ; 30 c0 2656 2645 xor ah, ah ; 30 e4 2657 jmp short 024 b1h ; eb 052646 jmp short 02492h ; eb 05 2658 2647 cmp ah, 00fh ; 80 fc 0f 2659 jnc short 024 c0h ; 73 0f2648 jnc short 024a1h ; 73 0f 2660 2649 mov bl, ah ; 88 e3 2661 2650 xor bh, bh ; 30 ff … … 2665 2654 db 0feh, 0c4h 2666 2655 ; inc ah ; fe c4 2667 jmp short 024 ach ; eb ec2656 jmp short 0248dh ; eb ec 2668 2657 neg al ; f6 d8 2669 2658 mov es, dx ; 8e c2 … … 2671 2660 mov bl, byte [bp-012h] ; 8a 5e ee 2672 2661 xor bh, bh ; 30 ff 2673 mov es, [bp-0 1eh] ; 8e 46 e22674 add bx, word [bp-0 1ch] ; 03 5e e42675 mov al, byte [bp-00 eh] ; 8a 46 f22662 mov es, [bp-020h] ; 8e 46 e0 2663 add bx, word [bp-022h] ; 03 5e de 2664 mov al, byte [bp-00ah] ; 8a 46 f6 2676 2665 mov byte [es:bx+001e3h], al ; 26 88 87 e3 01 2677 2666 inc byte [bp-012h] ; fe 46 ee 2678 cmp byte [bp-00 8h], 003h ; 80 7e f8032679 jne short 025 54h ; 75 702680 mov al, byte [bp-00 eh] ; 8a 46 f22667 cmp byte [bp-00ch], 003h ; 80 7e f4 03 2668 jne short 02522h ; 75 5d 2669 mov al, byte [bp-00ah] ; 8a 46 f6 2681 2670 xor ah, ah ; 30 e4 2682 2671 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2683 mov es, [bp-01eh] ; 8e 46 e2 2684 mov bx, word [bp-01ch] ; 8b 5e e4 2672 les bx, [bp-022h] ; c4 5e de 2685 2673 add bx, ax ; 01 c3 2686 2674 mov byte [es:bx+023h], 005h ; 26 c6 47 23 05 2687 2675 mov byte [es:bx+026h], 000h ; 26 c6 47 26 00 2688 2676 lea dx, [bp-00264h] ; 8d 96 9c fd 2689 mov bx, word [bp-0 1ch] ; 8b 5e e42677 mov bx, word [bp-022h] ; 8b 5e de 2690 2678 mov word [es:bx+008h], dx ; 26 89 57 08 2691 2679 mov [es:bx+00ah], ss ; 26 8c 57 0a 2692 mov al, byte [bp-00 eh] ; 8a 46 f22680 mov al, byte [bp-00ah] ; 8a 46 f6 2693 2681 mov byte [es:bx+00ch], al ; 26 88 47 0c 2694 2682 mov cx, strict word 00001h ; b9 01 00 2695 2683 mov bx, 000a1h ; bb a1 00 2696 mov ax, word [bp-0 1ch] ; 8b 46 e42684 mov ax, word [bp-022h] ; 8b 46 de 2697 2685 mov dx, es ; 8c c2 2698 call 01e63h ; e8 41f92686 call 01e63h ; e8 63 f9 2699 2687 test ax, ax ; 85 c0 2700 je short 025 31h ; 74 0b2688 je short 0250fh ; 74 0b 2701 2689 push 00174h ; 68 74 01 2702 2690 push strict byte 00007h ; 6a 07 2703 call 01966h ; e8 38f42691 call 01966h ; e8 5a f4 2704 2692 add sp, strict byte 00004h ; 83 c4 04 2705 mov b h, byte [bp-00263h] ; 8a be 9d fd2706 and b h, 01fh ; 80 e71f2693 mov bl, byte [bp-00263h] ; 8a 9e 9d fd 2694 and bl, 01fh ; 80 e3 1f 2707 2695 test byte [bp-00264h], 080h ; f6 86 9c fd 80 2708 je short 025 44h ; 74 052696 je short 02524h ; 74 07 2709 2697 mov ax, strict word 00001h ; b8 01 00 2710 jmp short 02546h ; eb 02 2698 jmp short 02526h ; eb 04 2699 jmp short 02559h ; eb 35 2711 2700 xor ax, ax ; 31 c0 2712 mov bl, al ; 88 c3 2713 cmp byte [bp-00204h], 000h ; 80 be fc fd 00 2714 je short 02556h ; 74 07 2715 mov dx, strict word 00001h ; ba 01 00 2716 jmp short 02558h ; eb 04 2717 jmp short 0258dh ; eb 37 2718 xor dx, dx ; 31 d2 2719 mov al, byte [bp-00eh] ; 8a 46 f2 2701 mov dl, byte [bp-00ah] ; 8a 56 f6 2702 xor dh, dh ; 30 f6 2703 imul dx, dx, strict byte 0001ch ; 6b d2 1c 2704 les si, [bp-022h] ; c4 76 de 2705 add si, dx ; 01 d6 2706 mov byte [es:si+023h], bl ; 26 88 5c 23 2707 mov byte [es:si+024h], al ; 26 88 44 24 2708 mov byte [es:si+026h], 000h ; 26 c6 44 26 00 2709 mov word [es:si+028h], 00800h ; 26 c7 44 28 00 08 2710 mov bl, byte [bp-008h] ; 8a 5e f8 2711 xor bh, bh ; 30 ff 2712 add bx, word [bp-022h] ; 03 5e de 2713 mov al, byte [bp-00ah] ; 8a 46 f6 2714 mov byte [es:bx+001f4h], al ; 26 88 87 f4 01 2715 inc byte [bp-008h] ; fe 46 f8 2716 mov al, byte [bp-00ch] ; 8a 46 f4 2717 cmp AL, strict byte 003h ; 3c 03 2718 je short 0258dh ; 74 2d 2719 cmp AL, strict byte 002h ; 3c 02 2720 jne short 025bdh ; 75 59 2721 mov al, byte [bp-00ah] ; 8a 46 f6 2720 2722 xor ah, ah ; 30 e4 2721 2723 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2722 mov es, [bp-01eh] ; 8e 46 e2 2723 mov di, word [bp-01ch] ; 8b 7e e4 2724 add di, ax ; 01 c7 2725 mov byte [es:di+023h], bh ; 26 88 7d 23 2726 mov byte [es:di+024h], bl ; 26 88 5d 24 2727 mov byte [es:di+026h], dl ; 26 88 55 26 2728 mov word [es:di+028h], 00800h ; 26 c7 45 28 00 08 2729 mov bl, byte [bp-00ch] ; 8a 5e f4 2730 xor bh, bh ; 30 ff 2731 add bx, word [bp-01ch] ; 03 5e e4 2732 mov al, byte [bp-00eh] ; 8a 46 f2 2733 mov byte [es:bx+001f4h], al ; 26 88 87 f4 01 2734 inc byte [bp-00ch] ; fe 46 f4 2735 mov al, byte [bp-008h] ; 8a 46 f8 2736 cmp AL, strict byte 003h ; 3c 03 2737 je short 025c4h ; 74 30 2738 cmp AL, strict byte 002h ; 3c 02 2739 jne short 025f4h ; 75 5c 2740 mov al, byte [bp-00eh] ; 8a 46 f2 2741 xor ah, ah ; 30 e4 2742 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2743 mov es, [bp-01eh] ; 8e 46 e2 2744 mov di, word [bp-01ch] ; 8b 7e e4 2724 les di, [bp-022h] ; c4 7e de 2745 2725 add di, ax ; 01 c7 2746 2726 mov ax, word [es:di+03ch] ; 26 8b 45 3c … … 2749 2729 mov dx, word [es:di+036h] ; 26 8b 55 36 2750 2730 mov si, strict word 0000bh ; be 0b 00 2751 call 0 a02ah ; e8 6c7a2752 mov word [bp-02 eh], dx ; 89 56 d22753 mov word [bp-0 2ch], cx ; 89 4e d42731 call 09faah ; e8 23 7a 2732 mov word [bp-024h], dx ; 89 56 dc 2733 mov word [bp-032h], cx ; 89 4e ce 2754 2734 mov al, byte [bp-001c3h] ; 8a 86 3d fe 2755 2735 xor ah, ah ; 30 e4 … … 2758 2738 mov al, byte [bp-001c4h] ; 8a 86 3c fe 2759 2739 or dx, ax ; 09 c2 2760 mov byte [bp-0 10h], 00fh ; c6 46 f00f2761 jmp short 025 e4h ; eb 092762 dec byte [bp-0 10h] ; fe 4e f02763 cmp byte [bp-0 10h], 000h ; 80 7e f0002764 jbe short 025 f0h ; 76 0c2765 mov cl, byte [bp-0 10h] ; 8a 4e f02740 mov byte [bp-00eh], 00fh ; c6 46 f2 0f 2741 jmp short 025adh ; eb 09 2742 dec byte [bp-00eh] ; fe 4e f2 2743 cmp byte [bp-00eh], 000h ; 80 7e f2 00 2744 jbe short 025b9h ; 76 0c 2745 mov cl, byte [bp-00eh] ; 8a 4e f2 2766 2746 mov ax, strict word 00001h ; b8 01 00 2767 2747 sal ax, CL ; d3 e0 2768 2748 test dx, ax ; 85 c2 2769 je short 025 dbh ; 74 eb2749 je short 025a4h ; 74 eb 2770 2750 xor di, di ; 31 ff 2771 jmp short 025 fbh ; eb 072772 jmp short 02 62ah ; eb 342751 jmp short 025c4h ; eb 07 2752 jmp short 025f3h ; eb 34 2773 2753 cmp di, strict byte 00014h ; 83 ff 14 2774 jnl short 02 610h ; 7d 152754 jnl short 025d9h ; 7d 15 2775 2755 mov si, di ; 89 fe 2776 2756 add si, di ; 01 fe … … 2780 2760 mov byte [bp+si-063h], al ; 88 42 9d 2781 2761 inc di ; 47 2782 jmp short 025 f6h ; eb e62762 jmp short 025bfh ; eb e6 2783 2763 mov byte [bp-03ch], 000h ; c6 46 c4 00 2784 2764 mov di, strict word 00027h ; bf 27 00 2785 jmp short 02 61eh ; eb 052765 jmp short 025e7h ; eb 05 2786 2766 dec di ; 4f 2787 2767 test di, di ; 85 ff 2788 jle short 02 62ah ; 7e 0c2768 jle short 025f3h ; 7e 0c 2789 2769 cmp byte [bp+di-064h], 020h ; 80 7b 9c 20 2790 jne short 02 62ah ; 75 062770 jne short 025f3h ; 75 06 2791 2771 mov byte [bp+di-064h], 000h ; c6 43 9c 00 2792 jmp short 02 619h ; eb ef2793 mov al, byte [bp-00 8h] ; 8a 46 f82772 jmp short 025e2h ; eb ef 2773 mov al, byte [bp-00ch] ; 8a 46 f4 2794 2774 cmp AL, strict byte 003h ; 3c 03 2795 je short 026 8eh ; 74 5d2775 je short 02657h ; 74 5d 2796 2776 cmp AL, strict byte 002h ; 3c 02 2797 je short 026 3ch ; 74 072777 je short 02605h ; 74 07 2798 2778 cmp AL, strict byte 001h ; 3c 01 2799 je short 026 99h ; 74 602800 jmp near 02 71dh ; e9 e1002801 cmp byte [bp-0 0ah], 000h ; 80 7e f6002802 je short 026 47h ; 74 052779 je short 02662h ; 74 60 2780 jmp near 026e3h ; e9 de 00 2781 cmp byte [bp-010h], 000h ; 80 7e f0 00 2782 je short 02610h ; 74 05 2803 2783 mov ax, 0019fh ; b8 9f 01 2804 jmp short 026 4ah ; eb 032784 jmp short 02613h ; eb 03 2805 2785 mov ax, 001a6h ; b8 a6 01 2806 2786 push ax ; 50 … … 2810 2790 push 001adh ; 68 ad 01 2811 2791 push strict byte 00002h ; 6a 02 2812 call 01966h ; e8 0df32792 call 01966h ; e8 44 f3 2813 2793 add sp, strict byte 00008h ; 83 c4 08 2814 2794 xor di, di ; 31 ff … … 2817 2797 inc di ; 47 2818 2798 test ax, ax ; 85 c0 2819 je short 026 76h ; 74 0e2799 je short 0263fh ; 74 0e 2820 2800 push ax ; 50 2821 2801 push 001b8h ; 68 b8 01 2822 2802 push strict byte 00002h ; 6a 02 2823 call 01966h ; e8 f5 f22803 call 01966h ; e8 2c f3 2824 2804 add sp, strict byte 00006h ; 83 c4 06 2825 jmp short 026 5eh ; eb e82826 push word [bp-0 2ch] ; ff 76 d42827 push word [bp-02 eh] ; ff 76 d22828 mov al, byte [bp-0 10h] ; 8a 46 f02805 jmp short 02627h ; eb e8 2806 push word [bp-032h] ; ff 76 ce 2807 push word [bp-024h] ; ff 76 dc 2808 mov al, byte [bp-00eh] ; 8a 46 f2 2829 2809 push ax ; 50 2830 2810 push 001bbh ; 68 bb 01 2831 2811 push strict byte 00002h ; 6a 02 2832 call 01966h ; e8 de f22812 call 01966h ; e8 15 f3 2833 2813 add sp, strict byte 0000ah ; 83 c4 0a 2834 jmp near 02 71dh ; e9 8f002835 cmp byte [bp-0 0ah], 000h ; 80 7e f6002836 je short 026 9bh ; 74 072814 jmp near 026e3h ; e9 8c 00 2815 cmp byte [bp-010h], 000h ; 80 7e f0 00 2816 je short 02664h ; 74 07 2837 2817 mov ax, 0019fh ; b8 9f 01 2838 jmp short 026 9eh ; eb 052839 jmp short 026 fdh ; eb 622818 jmp short 02667h ; eb 05 2819 jmp short 026c3h ; eb 5f 2840 2820 mov ax, 001a6h ; b8 a6 01 2841 2821 push ax ; 50 … … 2845 2825 push 001adh ; 68 ad 01 2846 2826 push strict byte 00002h ; 6a 02 2847 call 01966h ; e8 b9f22827 call 01966h ; e8 f0 f2 2848 2828 add sp, strict byte 00008h ; 83 c4 08 2849 2829 xor di, di ; 31 ff … … 2852 2832 inc di ; 47 2853 2833 test ax, ax ; 85 c0 2854 je short 026 cah ; 74 0e2834 je short 02693h ; 74 0e 2855 2835 push ax ; 50 2856 2836 push 001b8h ; 68 b8 01 2857 2837 push strict byte 00002h ; 6a 02 2858 call 01966h ; e8 a1f22838 call 01966h ; e8 d8 f2 2859 2839 add sp, strict byte 00006h ; 83 c4 06 2860 jmp short 026 b2h ; eb e82861 mov al, byte [bp-00 eh] ; 8a 46 f22840 jmp short 0267bh ; eb e8 2841 mov al, byte [bp-00ah] ; 8a 46 f6 2862 2842 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2863 mov es, [bp-01eh] ; 8e 46 e2 2864 mov bx, word [bp-01ch] ; 8b 5e e4 2843 les bx, [bp-022h] ; c4 5e de 2865 2844 add bx, ax ; 01 c3 2866 2845 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 2867 jne short 026 eah ; 75 0b2868 mov al, byte [bp-0 10h] ; 8a 46 f02846 jne short 026b0h ; 75 0b 2847 mov al, byte [bp-00eh] ; 8a 46 f2 2869 2848 xor ah, ah ; 30 e4 2870 2849 push ax ; 50 2871 2850 push 001dbh ; 68 db 01 2872 jmp short 026 f3h ; eb 092873 mov al, byte [bp-0 10h] ; 8a 46 f02851 jmp short 026b9h ; eb 09 2852 mov al, byte [bp-00eh] ; 8a 46 f2 2874 2853 xor ah, ah ; 30 e4 2875 2854 push ax ; 50 2876 2855 push 001f5h ; 68 f5 01 2877 2856 push strict byte 00002h ; 6a 02 2878 call 01966h ; e8 6ef22857 call 01966h ; e8 a8 f2 2879 2858 add sp, strict byte 00006h ; 83 c4 06 2880 jmp short 02 71dh ; eb 202881 cmp byte [bp-0 0ah], 000h ; 80 7e f6002882 je short 02 708h ; 74 052859 jmp short 026e3h ; eb 20 2860 cmp byte [bp-010h], 000h ; 80 7e f0 00 2861 je short 026ceh ; 74 05 2883 2862 mov ax, 0019fh ; b8 9f 01 2884 jmp short 02 70bh ; eb 032863 jmp short 026d1h ; eb 03 2885 2864 mov ax, 001a6h ; b8 a6 01 2886 2865 push ax ; 50 … … 2890 2869 push 00207h ; 68 07 02 2891 2870 push strict byte 00002h ; 6a 02 2892 call 01966h ; e8 4cf22871 call 01966h ; e8 86 f2 2893 2872 add sp, strict byte 00008h ; 83 c4 08 2894 inc byte [bp-00 eh] ; fe 46 f22895 cmp byte [bp-00 eh], 008h ; 80 7e f2082896 jnc short 027 7bh ; 73 552897 mov bl, byte [bp-00 eh] ; 8a 5e f22873 inc byte [bp-00ah] ; fe 46 f6 2874 cmp byte [bp-00ah], 008h ; 80 7e f6 08 2875 jnc short 0273eh ; 73 52 2876 mov bl, byte [bp-00ah] ; 8a 5e f6 2898 2877 xor bh, bh ; 30 ff 2899 2878 mov ax, bx ; 89 d8 … … 2908 2887 mov bx, strict word 00002h ; bb 02 00 2909 2888 idiv bx ; f7 fb 2910 mov word [bp-0 32h], dx ; 89 56 ce2911 mov al, byte [bp-0 32h] ; 8a 46 ce2912 mov byte [bp-0 0ah], al ; 88 46 f62889 mov word [bp-02eh], dx ; 89 56 d2 2890 mov al, byte [bp-02eh] ; 8a 46 d2 2891 mov byte [bp-010h], al ; 88 46 f0 2913 2892 mov al, cl ; 88 c8 2914 2893 xor ah, ah ; 30 e4 2915 2894 imul ax, ax, strict byte 00006h ; 6b c0 06 2916 mov es, [bp-01eh] ; 8e 46 e2 2917 mov bx, word [bp-01ch] ; 8b 5e e4 2895 les bx, [bp-022h] ; c4 5e de 2918 2896 add bx, ax ; 01 c3 2919 2897 mov si, word [es:bx+00206h] ; 26 8b b7 06 02 2920 2898 mov ax, word [es:bx+00208h] ; 26 8b 87 08 02 2921 mov word [bp-0 2ah], ax ; 89 46 d62899 mov word [bp-01ah], ax ; 89 46 e6 2922 2900 mov dx, ax ; 89 c2 2923 2901 add dx, strict byte 00006h ; 83 c2 06 2924 2902 mov AL, strict byte 00ah ; b0 0a 2925 2903 out DX, AL ; ee 2926 cmp byte [bp-0 32h], 000h ; 80 7e ce002927 jne short 027 75h ; 75 032928 jmp near 0217ah ; e9 05fa2904 cmp byte [bp-02eh], 000h ; 80 7e d2 00 2905 jne short 02738h ; 75 03 2906 jmp near 0217ah ; e9 42 fa 2929 2907 mov ax, 000b0h ; b8 b0 00 2930 jmp near 0217dh ; e9 02fa2908 jmp near 0217dh ; e9 3f fa 2931 2909 mov al, byte [bp-012h] ; 8a 46 ee 2932 mov es, [bp-01eh] ; 8e 46 e2 2933 mov bx, word [bp-01ch] ; 8b 5e e4 2910 les bx, [bp-022h] ; c4 5e de 2934 2911 mov byte [es:bx+001e2h], al ; 26 88 87 e2 01 2935 mov al, byte [bp-00 ch] ; 8a 46 f42912 mov al, byte [bp-008h] ; 8a 46 f8 2936 2913 mov byte [es:bx+001f3h], al ; 26 88 87 f3 01 2937 2914 mov bl, byte [bp-012h] ; 8a 5e ee … … 2939 2916 mov dx, strict word 00075h ; ba 75 00 2940 2917 mov ax, strict word 00040h ; b8 40 00 2941 call 0165eh ; e8 bf ee2918 call 0165eh ; e8 ff ee 2942 2919 lea sp, [bp-004h] ; 8d 66 fc 2943 2920 pop di ; 5f … … 2945 2922 pop bp ; 5d 2946 2923 retn ; c3 2947 ata_cmd_data_out_: ; 0xf27 a6 LB 0x28a2924 ata_cmd_data_out_: ; 0xf2766 LB 0x28a 2948 2925 push bp ; 55 2949 2926 mov bp, sp ; 89 e5 … … 2977 2954 ; sub ah, ah ; 2a e4 2978 2955 test AL, strict byte 080h ; a8 80 2979 je short 02 805h ; 74 0f2956 je short 027c5h ; 74 0f 2980 2957 mov dx, word [bp-01ah] ; 8b 56 e6 2981 2958 add dx, strict byte 00006h ; 83 c2 06 … … 2983 2960 out DX, AL ; ee 2984 2961 mov ax, strict word 00001h ; b8 01 00 2985 jmp near 02 a29h ; e9 24 022962 jmp near 029e9h ; e9 24 02 2986 2963 mov es, [bp-00ah] ; 8e 46 f6 2987 2964 mov ax, word [es:di+006h] ; 26 8b 45 06 … … 3005 2982 mov ax, word [bp-014h] ; 8b 46 ec 3006 2983 test ax, ax ; 85 c0 3007 je short 028 50h ; 74 033008 jmp near 02 917h ; e9 c7 002984 je short 02810h ; 74 03 2985 jmp near 028d7h ; e9 c7 00 3009 2986 xor bx, bx ; 31 db 3010 2987 xor dx, dx ; 31 d2 … … 3015 2992 adc dx, word [bp-00ch] ; 13 56 f4 3016 2993 test dx, dx ; 85 d2 3017 jnbe short 028 77h ; 77 103018 jne short 028 dah ; 75 712994 jnbe short 02837h ; 77 10 2995 jne short 0289ah ; 75 71 3019 2996 test ax, ax ; 85 c0 3020 jnbe short 028 77h ; 77 0a3021 jne short 028 dah ; 75 6b2997 jnbe short 02837h ; 77 0a 2998 jne short 0289ah ; 75 6b 3022 2999 cmp bx, 01000h ; 81 fb 00 10 3023 jnbe short 028 77h ; 77 023024 jne short 028 dah ; 75 633000 jnbe short 02837h ; 77 02 3001 jne short 0289ah ; 75 63 3025 3002 mov ax, word [bp-00ch] ; 8b 46 f4 3026 3003 mov bx, word [bp-00eh] ; 8b 5e f2 … … 3028 3005 mov dx, word [bp-024h] ; 8b 56 dc 3029 3006 mov si, strict word 00018h ; be 18 00 3030 call 0 a02ah ; e8 a1 773007 call 09faah ; e8 61 77 3031 3008 xor dh, dh ; 30 f6 3032 3009 mov word [bp-014h], dx ; 89 56 ec … … 3036 3013 mov dx, word [bp-024h] ; 8b 56 dc 3037 3014 mov si, strict word 00020h ; be 20 00 3038 call 0 a02ah ; e8 8a 773015 call 09faah ; e8 4a 77 3039 3016 mov bx, dx ; 89 d3 3040 3017 mov ax, word [bp-022h] ; 8b 46 de … … 3070 3047 mov dx, word [bp-024h] ; 8b 56 dc 3071 3048 mov si, strict word 00008h ; be 08 00 3072 call 0 a02ah ; e8 36 773049 call 09faah ; e8 f6 76 3073 3050 mov word [bp-00ch], ax ; 89 46 f4 3074 3051 mov word [bp-00eh], bx ; 89 5e f2 … … 3077 3054 mov word [bp-018h], dx ; 89 56 e8 3078 3055 mov si, strict word 00010h ; be 10 00 3079 call 0 a02ah ; e8 21 773056 call 09faah ; e8 e1 76 3080 3057 mov word [bp-024h], dx ; 89 56 dc 3081 3058 mov ax, dx ; 89 d0 … … 3110 3087 out DX, AL ; ee 3111 3088 cmp byte [bp-006h], 000h ; 80 7e fa 00 3112 je short 029 59h ; 74 053089 je short 02919h ; 74 05 3113 3090 mov ax, 000b0h ; b8 b0 00 3114 jmp short 029 5ch ; eb 033091 jmp short 0291ch ; eb 03 3115 3092 mov ax, 000a0h ; b8 a0 00 3116 3093 mov dl, byte [bp-01ch] ; 8a 56 e4 … … 3131 3108 mov bl, al ; 88 c3 3132 3109 test AL, strict byte 080h ; a8 80 3133 jne short 029 74h ; 75 f13110 jne short 02934h ; 75 f1 3134 3111 test AL, strict byte 001h ; a8 01 3135 je short 029 96h ; 74 0f3112 je short 02956h ; 74 0f 3136 3113 mov dx, word [bp-01ah] ; 8b 56 e6 3137 3114 add dx, strict byte 00006h ; 83 c2 06 … … 3139 3116 out DX, AL ; ee 3140 3117 mov ax, strict word 00002h ; b8 02 00 3141 jmp near 02 a29h ; e9 93 003118 jmp near 029e9h ; e9 93 00 3142 3119 test bl, 008h ; f6 c3 08 3143 jne short 029 aah ; 75 0f3120 jne short 0296ah ; 75 0f 3144 3121 mov dx, word [bp-01ah] ; 8b 56 e6 3145 3122 add dx, strict byte 00006h ; 83 c2 06 … … 3147 3124 out DX, AL ; ee 3148 3125 mov ax, strict word 00003h ; b8 03 00 3149 jmp near 02 a29h ; e9 7f 003126 jmp near 029e9h ; e9 7f 00 3150 3127 sti ; fb 3151 3128 mov ax, word [bp-016h] ; 8b 46 ea 3152 3129 cmp ax, 0f800h ; 3d 00 f8 3153 jc short 029 c3h ; 72 103130 jc short 02983h ; 72 10 3154 3131 sub ax, 00800h ; 2d 00 08 3155 3132 mov dx, word [bp-012h] ; 8b 56 ee … … 3174 3151 mov bl, al ; 88 c3 3175 3152 test AL, strict byte 080h ; a8 80 3176 jne short 029 dfh ; 75 f13153 jne short 0299fh ; 75 f1 3177 3154 cmp word [bp-022h], strict byte 00000h ; 83 7e de 00 3178 jne short 02 a08h ; 75 143155 jne short 029c8h ; 75 14 3179 3156 and AL, strict byte 0e9h ; 24 e9 3180 3157 cmp AL, strict byte 040h ; 3c 40 3181 je short 02 a1eh ; 74 243158 je short 029deh ; 74 24 3182 3159 mov dx, word [bp-01ah] ; 8b 56 e6 3183 3160 add dx, strict byte 00006h ; 83 c2 06 … … 3185 3162 out DX, AL ; ee 3186 3163 mov ax, strict word 00006h ; b8 06 00 3187 jmp short 02 a29h ; eb 213164 jmp short 029e9h ; eb 21 3188 3165 mov al, bl ; 88 d8 3189 3166 and AL, strict byte 0c9h ; 24 c9 3190 3167 cmp AL, strict byte 048h ; 3c 48 3191 je short 029 abh ; 74 9b3168 je short 0296bh ; 74 9b 3192 3169 mov dx, word [bp-01ah] ; 8b 56 e6 3193 3170 add dx, strict byte 00006h ; 83 c2 06 … … 3195 3172 out DX, AL ; ee 3196 3173 mov ax, strict word 00007h ; b8 07 00 3197 jmp short 02 a29h ; eb 0b3174 jmp short 029e9h ; eb 0b 3198 3175 mov dx, word [bp-01ah] ; 8b 56 e6 3199 3176 add dx, strict byte 00006h ; 83 c2 06 … … 3206 3183 pop bp ; 5d 3207 3184 retn ; c3 3208 @ata_read_sectors: ; 0xf2 a30 LB 0xb53185 @ata_read_sectors: ; 0xf29f0 LB 0xb5 3209 3186 push bp ; 55 3210 3187 mov bp, sp ; 89 e5 … … 3219 3196 sal dx, 009h ; c1 e2 09 3220 3197 cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00 3221 je short 02a 71h ; 74 1f3198 je short 02a31h ; 74 1f 3222 3199 xor ah, ah ; 30 e4 3223 3200 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 3229 3206 mov ax, si ; 89 f0 3230 3207 mov dx, es ; 8c c2 3231 call 01e63h ; e8 f7 f33208 call 01e63h ; e8 37 f4 3232 3209 mov es, [bp-00ch] ; 8e 46 f4 3233 jmp short 02a d6h ; eb 653210 jmp short 02a96h ; eb 65 3234 3211 xor bx, bx ; 31 db 3235 3212 mov word [bp-00ch], bx ; 89 5e f4 … … 3246 3223 adc di, word [bp-006h] ; 13 7e fa 3247 3224 test di, di ; 85 ff 3248 jnbe short 02a adh ; 77 113249 jne short 02a b9h ; 75 1b3225 jnbe short 02a6dh ; 77 11 3226 jne short 02a79h ; 75 1b 3250 3227 test bx, bx ; 85 db 3251 jnbe short 02a adh ; 77 0b3252 jne short 02a b9h ; 75 153228 jnbe short 02a6dh ; 77 0b 3229 jne short 02a79h ; 75 15 3253 3230 cmp word [bp-008h], 01000h ; 81 7e f8 00 10 3254 jnbe short 02a adh ; 77 023255 jne short 02a b9h ; 75 0c3231 jnbe short 02a6dh ; 77 02 3232 jne short 02a79h ; 75 0c 3256 3233 mov bx, strict word 00024h ; bb 24 00 3257 3234 mov ax, si ; 89 f0 3258 3235 mov dx, es ; 8c c2 3259 call 01e63h ; e8 ac f33260 jmp short 02a dch ; eb 233236 call 01e63h ; e8 ec f3 3237 jmp short 02a9ch ; eb 23 3261 3238 xor ah, ah ; 30 e4 3262 3239 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 3268 3245 mov ax, si ; 89 f0 3269 3246 mov dx, es ; 8c c2 3270 call 01e63h ; e8 90 f33247 call 01e63h ; e8 d0 f3 3271 3248 mov es, [bp-006h] ; 8e 46 fa 3272 3249 mov word [es:di+028h], 00200h ; 26 c7 45 28 00 02 … … 3276 3253 pop bp ; 5d 3277 3254 retn 00004h ; c2 04 00 3278 @ata_write_sectors: ; 0xf2a e5 LB 0x5b3255 @ata_write_sectors: ; 0xf2aa5 LB 0x5b 3279 3256 push bp ; 55 3280 3257 mov bp, sp ; 89 e5 … … 3285 3262 mov cx, word [es:si+00eh] ; 26 8b 4c 0e 3286 3263 cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00 3287 je short 02 b05h ; 74 0c3264 je short 02ac5h ; 74 0c 3288 3265 mov bx, strict word 00030h ; bb 30 00 3289 3266 mov ax, si ; 89 f0 3290 3267 mov dx, es ; 8c c2 3291 call 027 a6h ; e8 a3 fc3292 jmp short 02 b37h ; eb 323268 call 02766h ; e8 a3 fc 3269 jmp short 02af7h ; eb 32 3293 3270 xor ax, ax ; 31 c0 3294 3271 xor bx, bx ; 31 db … … 3301 3278 adc dx, word [es:si+006h] ; 26 13 54 06 3302 3279 test dx, dx ; 85 d2 3303 jnbe short 02 b32h ; 77 0f3304 jne short 02a f9h ; 75 d43280 jnbe short 02af2h ; 77 0f 3281 jne short 02ab9h ; 75 d4 3305 3282 test bx, bx ; 85 db 3306 jnbe short 02 b32h ; 77 093307 jne short 02a f9h ; 75 ce3283 jnbe short 02af2h ; 77 09 3284 jne short 02ab9h ; 75 ce 3308 3285 cmp ax, 01000h ; 3d 00 10 3309 jnbe short 02 b32h ; 77 023310 jne short 02a f9h ; 75 c73286 jnbe short 02af2h ; 77 02 3287 jne short 02ab9h ; 75 c7 3311 3288 mov bx, strict word 00034h ; bb 34 00 3312 jmp short 02a fch ; eb c53289 jmp short 02abch ; eb c5 3313 3290 lea sp, [bp-004h] ; 8d 66 fc 3314 3291 pop di ; 5f … … 3316 3293 pop bp ; 5d 3317 3294 retn 00004h ; c2 04 00 3318 ata_cmd_packet_: ; 0xf2b 40 LB 0x2893295 ata_cmd_packet_: ; 0xf2b00 LB 0x289 3319 3296 push bp ; 55 3320 3297 mov bp, sp ; 89 e5 … … 3327 3304 mov dx, strict word 0000eh ; ba 0e 00 3328 3305 mov ax, strict word 00040h ; b8 40 00 3329 call 0166ch ; e8 15 eb3306 call 0166ch ; e8 55 eb 3330 3307 mov word [bp-010h], 00122h ; c7 46 f0 22 01 3331 3308 mov word [bp-012h], ax ; 89 46 ee … … 3336 3313 mov byte [bp-008h], ah ; 88 66 f8 3337 3314 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 3338 jne short 02b 92h ; 75 1f3315 jne short 02b52h ; 75 1f 3339 3316 mov bx, 00da0h ; bb a0 0d 3340 3317 mov cx, ds ; 8c d9 3341 3318 mov ax, strict word 00004h ; b8 04 00 3342 call 01923h ; e8 a5 ed3319 call 01923h ; e8 e5 ed 3343 3320 push 00221h ; 68 21 02 3344 3321 push 00230h ; 68 30 02 3345 3322 push strict byte 00004h ; 6a 04 3346 call 01966h ; e8 dd ed3323 call 01966h ; e8 1d ee 3347 3324 add sp, strict byte 00006h ; 83 c4 06 3348 3325 mov ax, strict word 00001h ; b8 01 00 3349 jmp near 02d c0h ; e9 2e 023326 jmp near 02d80h ; e9 2e 02 3350 3327 test byte [bp+004h], 001h ; f6 46 04 01 3351 jne short 02b 8ch ; 75 f43328 jne short 02b4ch ; 75 f4 3352 3329 xor ah, ah ; 30 e4 3353 3330 imul ax, ax, strict byte 00006h ; 6b c0 06 … … 3364 3341 mov al, byte [bp-006h] ; 8a 46 fa 3365 3342 cmp AL, strict byte 00ch ; 3c 0c 3366 jnc short 02b cah ; 73 063343 jnc short 02b8ah ; 73 06 3367 3344 mov byte [bp-006h], 00ch ; c6 46 fa 0c 3368 jmp short 02b d0h ; eb 063369 jbe short 02b d0h ; 76 043345 jmp short 02b90h ; eb 06 3346 jbe short 02b90h ; 76 04 3370 3347 mov byte [bp-006h], 010h ; c6 46 fa 10 3371 3348 shr byte [bp-006h], 1 ; d0 6e fa … … 3381 3358 ; sub ah, ah ; 2a e4 3382 3359 test AL, strict byte 080h ; a8 80 3383 je short 02b feh ; 74 063360 je short 02bbeh ; 74 06 3384 3361 mov ax, strict word 00002h ; b8 02 00 3385 jmp near 02d c0h ; e9 c2 013362 jmp near 02d80h ; e9 c2 01 3386 3363 mov dx, word [bp-00eh] ; 8b 56 f2 3387 3364 add dx, strict byte 00006h ; 83 c2 06 … … 3397 3374 out DX, AL ; ee 3398 3375 cmp byte [bp-008h], 000h ; 80 7e f8 00 3399 je short 02 c24h ; 74 053376 je short 02be4h ; 74 05 3400 3377 mov ax, 000b0h ; b8 b0 00 3401 jmp short 02 c27h ; eb 033378 jmp short 02be7h ; eb 03 3402 3379 mov ax, 000a0h ; b8 a0 00 3403 3380 mov dx, word [bp-00ah] ; 8b 56 f6 … … 3415 3392 mov bx, ax ; 89 c3 3416 3393 test AL, strict byte 080h ; a8 80 3417 jne short 02 c37h ; 75 f13394 jne short 02bf7h ; 75 f1 3418 3395 test AL, strict byte 001h ; a8 01 3419 je short 02c 59h ; 74 0f3396 je short 02c19h ; 74 0f 3420 3397 mov dx, word [bp-00eh] ; 8b 56 f2 3421 3398 add dx, strict byte 00006h ; 83 c2 06 … … 3423 3400 out DX, AL ; ee 3424 3401 mov ax, strict word 00003h ; b8 03 00 3425 jmp near 02d c0h ; e9 67 013402 jmp near 02d80h ; e9 67 01 3426 3403 test AL, strict byte 008h ; a8 08 3427 jne short 02c 6ch ; 75 0f3404 jne short 02c2ch ; 75 0f 3428 3405 mov dx, word [bp-00eh] ; 8b 56 f2 3429 3406 add dx, strict byte 00006h ; 83 c2 06 … … 3431 3408 out DX, AL ; ee 3432 3409 mov ax, strict word 00004h ; b8 04 00 3433 jmp near 02d c0h ; e9 54 013410 jmp near 02d80h ; e9 54 01 3434 3411 sti ; fb 3435 3412 mov ax, si ; 89 f0 … … 3444 3421 ; rep es outsw ; f3 26 6f 3445 3422 cmp byte [bp+00ah], 000h ; 80 7e 0a 00 3446 jne short 02c 93h ; 75 093423 jne short 02c53h ; 75 09 3447 3424 add dx, strict byte 00007h ; 83 c2 07 3448 3425 in AL, DX ; ec 3449 3426 db 02ah, 0e4h 3450 3427 ; sub ah, ah ; 2a e4 3451 jmp near 02d a3h ; e9 10 013428 jmp near 02d63h ; e9 10 01 3452 3429 mov dx, word [bp-00ah] ; 8b 56 f6 3453 3430 add dx, strict byte 00007h ; 83 c2 07 … … 3457 3434 mov bx, ax ; 89 c3 3458 3435 test AL, strict byte 080h ; a8 80 3459 jne short 02c 93h ; 75 f13436 jne short 02c53h ; 75 f1 3460 3437 test AL, strict byte 088h ; a8 88 3461 je short 02 d06h ; 74 603438 je short 02cc6h ; 74 60 3462 3439 test AL, strict byte 001h ; a8 01 3463 je short 02c b5h ; 74 0b3440 je short 02c75h ; 74 0b 3464 3441 mov dx, word [bp-00eh] ; 8b 56 f2 3465 3442 add dx, strict byte 00006h ; 83 c2 06 3466 3443 mov AL, strict byte 008h ; b0 08 3467 3444 out DX, AL ; ee 3468 jmp short 02c 53h ; eb 9e3445 jmp short 02c13h ; eb 9e 3469 3446 and AL, strict byte 0c9h ; 24 c9 3470 3447 cmp AL, strict byte 048h ; 3c 48 3471 je short 02c c6h ; 74 0b3448 je short 02c86h ; 74 0b 3472 3449 mov dx, word [bp-00eh] ; 8b 56 f2 3473 3450 add dx, strict byte 00006h ; 83 c2 06 3474 3451 mov AL, strict byte 008h ; b0 08 3475 3452 out DX, AL ; ee 3476 jmp short 02c 66h ; eb a03453 jmp short 02c26h ; eb a0 3477 3454 mov ax, word [bp+00ch] ; 8b 46 0c 3478 3455 shr ax, 004h ; c1 e8 04 … … 3498 3475 mov ax, word [bp+004h] ; 8b 46 04 3499 3476 cmp bx, ax ; 39 c3 3500 jnc short 02 d09h ; 73 0c3477 jnc short 02cc9h ; 73 0c 3501 3478 mov cx, bx ; 89 d9 3502 3479 sub word [bp+004h], bx ; 29 5e 04 3503 3480 xor bx, bx ; 31 db 3504 jmp short 02 d12h ; eb 0c3505 jmp near 02d a3h ; e9 9a 003481 jmp short 02cd2h ; eb 0c 3482 jmp near 02d63h ; e9 9a 00 3506 3483 mov cx, ax ; 89 c1 3507 3484 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 3509 3486 xor ax, ax ; 31 c0 3510 3487 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 3511 jne short 02 d30h ; 75 163488 jne short 02cf0h ; 75 16 3512 3489 cmp bx, word [bp+006h] ; 3b 5e 06 3513 jbe short 02 d30h ; 76 113490 jbe short 02cf0h ; 76 11 3514 3491 sub bx, word [bp+006h] ; 2b 5e 06 3515 3492 mov word [bp-00ch], bx ; 89 5e f4 … … 3517 3494 mov word [bp+006h], ax ; 89 46 06 3518 3495 mov word [bp+008h], ax ; 89 46 08 3519 jmp short 02 d39h ; eb 093496 jmp short 02cf9h ; eb 09 3520 3497 mov word [bp-00ch], ax ; 89 46 f4 3521 3498 sub word [bp+006h], bx ; 29 5e 06 … … 3526 3503 test byte [bp-00ch], 003h ; f6 46 f4 03 3527 3504 test bl, 001h ; f6 c3 01 3528 je short 02d 5ah ; 74 103505 je short 02d1ah ; 74 10 3529 3506 inc bx ; 43 3530 3507 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 3531 jbe short 02d 5ah ; 76 093508 jbe short 02d1ah ; 76 09 3532 3509 test byte [bp-00ch], 001h ; f6 46 f4 01 3533 je short 02d 5ah ; 74 033510 je short 02d1ah ; 74 03 3534 3511 dec word [bp-00ch] ; ff 4e f4 3535 3512 shr bx, 1 ; d1 eb … … 3537 3514 shr word [bp-00ch], 1 ; d1 6e f4 3538 3515 test cx, cx ; 85 c9 3539 je short 02d 6bh ; 74 063516 je short 02d2bh ; 74 06 3540 3517 mov dx, word [bp-00ah] ; 8b 56 f6 3541 3518 in ax, DX ; ed 3542 loop 02d 68h ; e2 fd3519 loop 02d28h ; e2 fd 3543 3520 mov dx, word [bp-00ah] ; 8b 56 f6 3544 3521 mov cx, bx ; 89 d9 … … 3547 3524 mov ax, word [bp-00ch] ; 8b 46 f4 3548 3525 test ax, ax ; 85 c0 3549 je short 02d 81h ; 74 053526 je short 02d41h ; 74 05 3550 3527 mov cx, ax ; 89 c1 3551 3528 in ax, DX ; ed 3552 loop 02d 7eh ; e2 fd3529 loop 02d3eh ; e2 fd 3553 3530 add word [bp+00ch], si ; 01 76 0c 3554 3531 xor ax, ax ; 31 c0 … … 3561 3538 mov ax, word [bp-014h] ; 8b 46 ec 3562 3539 mov word [es:bx+01ch], ax ; 26 89 47 1c 3563 jmp near 02c 93h ; e9 f0 fe3540 jmp near 02c53h ; e9 f0 fe 3564 3541 and AL, strict byte 0e9h ; 24 e9 3565 3542 cmp AL, strict byte 040h ; 3c 40 3566 je short 02d b5h ; 74 0c3543 je short 02d75h ; 74 0c 3567 3544 mov dx, word [bp-00eh] ; 8b 56 f2 3568 3545 add dx, strict byte 00006h ; 83 c2 06 3569 3546 mov AL, strict byte 008h ; b0 08 3570 3547 out DX, AL ; ee 3571 jmp near 02c 66h ; e9 b1 fe3548 jmp near 02c26h ; e9 b1 fe 3572 3549 mov dx, word [bp-00eh] ; 8b 56 f2 3573 3550 add dx, strict byte 00006h ; 83 c2 06 … … 3580 3557 pop bp ; 5d 3581 3558 retn 0000ch ; c2 0c 00 3582 ata_soft_reset_: ; 0xf2d c9 LB 0x803559 ata_soft_reset_: ; 0xf2d89 LB 0x80 3583 3560 push bp ; 55 3584 3561 mov bp, sp ; 89 e5 … … 3590 3567 mov dx, strict word 0000eh ; ba 0e 00 3591 3568 mov ax, strict word 00040h ; b8 40 00 3592 call 0166ch ; e8 91 e83569 call 0166ch ; e8 d1 e8 3593 3570 mov dx, bx ; 89 da 3594 3571 shr dx, 1 ; d1 ea … … 3605 3582 out DX, AL ; ee 3606 3583 cmp byte [bp-008h], 000h ; 80 7e f8 00 3607 je short 02 e0bh ; 74 053584 je short 02dcbh ; 74 05 3608 3585 mov ax, 000b0h ; b8 b0 00 3609 jmp short 02 e0eh ; eb 033586 jmp short 02dceh ; eb 03 3610 3587 mov ax, 000a0h ; b8 a0 00 3611 3588 mov dx, cx ; 89 ca … … 3622 3599 ; sub ah, ah ; 2a e4 3623 3600 test AL, strict byte 080h ; a8 80 3624 jne short 02 e1ch ; 75 f43601 jne short 02ddch ; 75 f4 3625 3602 and AL, strict byte 0e9h ; 24 e9 3626 3603 cmp AL, strict byte 040h ; 3c 40 3627 je short 02 e39h ; 74 0b3604 je short 02df9h ; 74 0b 3628 3605 lea dx, [bx+006h] ; 8d 57 06 3629 3606 mov AL, strict byte 008h ; b0 08 3630 3607 out DX, AL ; ee 3631 3608 mov ax, strict word 00001h ; b8 01 00 3632 jmp short 02e 41h ; eb 083609 jmp short 02e01h ; eb 08 3633 3610 lea dx, [bx+006h] ; 8d 57 06 3634 3611 mov AL, strict byte 008h ; b0 08 … … 3641 3618 pop bp ; 5d 3642 3619 retn ; c3 3643 set_diskette_ret_status_: ; 0xf2e 49 LB 0x193620 set_diskette_ret_status_: ; 0xf2e09 LB 0x19 3644 3621 push bp ; 55 3645 3622 mov bp, sp ; 89 e5 … … 3650 3627 mov dx, strict word 00041h ; ba 41 00 3651 3628 mov ax, strict word 00040h ; b8 40 00 3652 call 0165eh ; e8 03 e83629 call 0165eh ; e8 43 e8 3653 3630 lea sp, [bp-004h] ; 8d 66 fc 3654 3631 pop dx ; 5a … … 3656 3633 pop bp ; 5d 3657 3634 retn ; c3 3658 set_diskette_current_cyl_: ; 0xf2e 62 LB 0x303635 set_diskette_current_cyl_: ; 0xf2e22 LB 0x30 3659 3636 push bp ; 55 3660 3637 mov bp, sp ; 89 e5 … … 3662 3639 mov bl, al ; 88 c3 3663 3640 cmp AL, strict byte 001h ; 3c 01 3664 jbe short 02e 77h ; 76 0b3641 jbe short 02e37h ; 76 0b 3665 3642 push 00250h ; 68 50 02 3666 3643 push strict byte 00007h ; 6a 07 3667 call 01966h ; e8 f2 ea3644 call 01966h ; e8 32 eb 3668 3645 add sp, strict byte 00004h ; 83 c4 04 3669 3646 mov al, dl ; 88 d0 … … 3675 3652 mov dx, ax ; 89 c2 3676 3653 mov ax, strict word 00040h ; b8 40 00 3677 call 0165eh ; e8 d2 e73654 call 0165eh ; e8 12 e8 3678 3655 lea sp, [bp-002h] ; 8d 66 fe 3679 3656 pop bx ; 5b 3680 3657 pop bp ; 5d 3681 3658 retn ; c3 3682 floppy_wait_for_interrupt_: ; 0xf2e 92 LB 0x213659 floppy_wait_for_interrupt_: ; 0xf2e52 LB 0x21 3683 3660 push bp ; 55 3684 3661 mov bp, sp ; 89 e5 … … 3687 3664 mov dx, strict word 0003eh ; ba 3e 00 3688 3665 mov ax, strict word 00040h ; b8 40 00 3689 call 01650h ; e8 b0 e73666 call 01650h ; e8 f0 e7 3690 3667 test AL, strict byte 080h ; a8 80 3691 je short 02e a8h ; 74 043668 je short 02e68h ; 74 04 3692 3669 and AL, strict byte 080h ; 24 80 3693 jmp short 02e adh ; eb 053670 jmp short 02e6dh ; eb 05 3694 3671 sti ; fb 3695 3672 hlt ; f4 3696 3673 cli ; fa 3697 jmp short 02e 97h ; eb ea3674 jmp short 02e57h ; eb ea 3698 3675 lea sp, [bp-002h] ; 8d 66 fe 3699 3676 pop dx ; 5a 3700 3677 pop bp ; 5d 3701 3678 retn ; c3 3702 floppy_wait_for_interrupt_or_timeout_: ; 0xf2e b3 LB 0x473679 floppy_wait_for_interrupt_or_timeout_: ; 0xf2e73 LB 0x47 3703 3680 push bp ; 55 3704 3681 mov bp, sp ; 89 e5 … … 3709 3686 mov dx, strict word 00040h ; ba 40 00 3710 3687 mov ax, dx ; 89 d0 3711 call 01650h ; e8 8e e73688 call 01650h ; e8 ce e7 3712 3689 test al, al ; 84 c0 3713 jne short 02e cbh ; 75 053690 jne short 02e8bh ; 75 05 3714 3691 sti ; fb 3715 3692 xor cl, cl ; 30 c9 3716 jmp short 02e f0h ; eb 253693 jmp short 02eb0h ; eb 25 3717 3694 mov dx, strict word 0003eh ; ba 3e 00 3718 3695 mov ax, strict word 00040h ; b8 40 00 3719 call 01650h ; e8 7c e73696 call 01650h ; e8 bc e7 3720 3697 mov cl, al ; 88 c1 3721 3698 test AL, strict byte 080h ; a8 80 3722 je short 02e ebh ; 74 113699 je short 02eabh ; 74 11 3723 3700 and AL, strict byte 07fh ; 24 7f 3724 3701 xor ah, ah ; 30 e4 … … 3726 3703 mov dx, strict word 0003eh ; ba 3e 00 3727 3704 mov ax, strict word 00040h ; b8 40 00 3728 call 0165eh ; e8 75 e73729 jmp short 02e f0h ; eb 053705 call 0165eh ; e8 b5 e7 3706 jmp short 02eb0h ; eb 05 3730 3707 sti ; fb 3731 3708 hlt ; f4 3732 3709 cli ; fa 3733 jmp short 02e bah ; eb ca3710 jmp short 02e7ah ; eb ca 3734 3711 mov al, cl ; 88 c8 3735 3712 lea sp, [bp-006h] ; 8d 66 fa … … 3739 3716 pop bp ; 5d 3740 3717 retn ; c3 3741 floppy_reset_controller_: ; 0xf2e fa LB 0x283718 floppy_reset_controller_: ; 0xf2eba LB 0x28 3742 3719 push bp ; 55 3743 3720 mov bp, sp ; 89 e5 … … 3760 3737 and AL, strict byte 0c0h ; 24 c0 3761 3738 cmp AL, strict byte 080h ; 3c 80 3762 jne short 02 f0fh ; 75 f43739 jne short 02ecfh ; 75 f4 3763 3740 lea sp, [bp-004h] ; 8d 66 fc 3764 3741 pop dx ; 5a … … 3766 3743 pop bp ; 5d 3767 3744 retn ; c3 3768 floppy_prepare_controller_: ; 0xf2 f22 LB 0x833745 floppy_prepare_controller_: ; 0xf2ee2 LB 0x83 3769 3746 push bp ; 55 3770 3747 mov bp, sp ; 89 e5 … … 3776 3753 mov dx, strict word 0003eh ; ba 3e 00 3777 3754 mov ax, strict word 00040h ; b8 40 00 3778 call 01650h ; e8 1c e73755 call 01650h ; e8 5c e7 3779 3756 and AL, strict byte 07fh ; 24 7f 3780 3757 xor ah, ah ; 30 e4 … … 3782 3759 mov dx, strict word 0003eh ; ba 3e 00 3783 3760 mov ax, strict word 00040h ; b8 40 00 3784 call 0165eh ; e8 1b e73761 call 0165eh ; e8 5b e7 3785 3762 mov dx, 003f2h ; ba f2 03 3786 3763 in AL, DX ; ec … … 3790 3767 mov byte [bp-008h], al ; 88 46 f8 3791 3768 test cx, cx ; 85 c9 3792 je short 02f 56h ; 74 043769 je short 02f16h ; 74 04 3793 3770 mov AL, strict byte 020h ; b0 20 3794 jmp short 02f 58h ; eb 023771 jmp short 02f18h ; eb 02 3795 3772 mov AL, strict byte 010h ; b0 10 3796 3773 or AL, strict byte 00ch ; 0c 0c … … 3801 3778 mov dx, strict word 00040h ; ba 40 00 3802 3779 mov ax, dx ; 89 d0 3803 call 0165eh ; e8 f3 e63780 call 0165eh ; e8 33 e7 3804 3781 mov dx, 0008bh ; ba 8b 00 3805 3782 mov ax, strict word 00040h ; b8 40 00 3806 call 01650h ; e8 dc e63783 call 01650h ; e8 1c e7 3807 3784 shr al, 006h ; c0 e8 06 3808 3785 mov dx, 003f7h ; ba f7 03 … … 3814 3791 and AL, strict byte 0c0h ; 24 c0 3815 3792 cmp AL, strict byte 080h ; 3c 80 3816 jne short 02f 7bh ; 75 f43793 jne short 02f3bh ; 75 f4 3817 3794 cmp byte [bp-008h], 000h ; 80 7e f8 00 3818 jne short 02f 9dh ; 75 103819 call 02e 92h ; e8 02 ff3795 jne short 02f5dh ; 75 10 3796 call 02e52h ; e8 02 ff 3820 3797 mov bl, al ; 88 c3 3821 3798 xor bh, bh ; 30 ff 3822 3799 mov dx, strict word 0003eh ; ba 3e 00 3823 3800 mov ax, strict word 00040h ; b8 40 00 3824 call 0165eh ; e8 c1 e63801 call 0165eh ; e8 01 e7 3825 3802 lea sp, [bp-006h] ; 8d 66 fa 3826 3803 pop dx ; 5a … … 3829 3806 pop bp ; 5d 3830 3807 retn ; c3 3831 floppy_media_known_: ; 0xf2f a5 LB 0x433808 floppy_media_known_: ; 0xf2f65 LB 0x43 3832 3809 push bp ; 55 3833 3810 mov bp, sp ; 89 e5 … … 3837 3814 mov dx, strict word 0003eh ; ba 3e 00 3838 3815 mov ax, strict word 00040h ; b8 40 00 3839 call 01650h ; e8 9b e63816 call 01650h ; e8 db e6 3840 3817 mov ah, al ; 88 c4 3841 3818 test bx, bx ; 85 db 3842 je short 02f bdh ; 74 023819 je short 02f7dh ; 74 02 3843 3820 shr al, 1 ; d0 e8 3844 3821 and AL, strict byte 001h ; 24 01 3845 jne short 02f c5h ; 75 043846 xor ah, ah ; 30 e4 3847 jmp short 02f e1h ; eb 1c3822 jne short 02f85h ; 75 04 3823 xor ah, ah ; 30 e4 3824 jmp short 02fa1h ; eb 1c 3848 3825 mov dx, 00090h ; ba 90 00 3849 3826 test bx, bx ; 85 db 3850 je short 02f cfh ; 74 033827 je short 02f8fh ; 74 03 3851 3828 mov dx, 00091h ; ba 91 00 3852 3829 mov ax, strict word 00040h ; b8 40 00 3853 call 01650h ; e8 7b e63830 call 01650h ; e8 bb e6 3854 3831 xor ah, ah ; 30 e4 3855 3832 sar ax, 004h ; c1 f8 04 3856 3833 and AL, strict byte 001h ; 24 01 3857 je short 02f c1h ; 74 e33834 je short 02f81h ; 74 e3 3858 3835 mov ax, strict word 00001h ; b8 01 00 3859 3836 lea sp, [bp-004h] ; 8d 66 fc … … 3862 3839 pop bp ; 5d 3863 3840 retn ; c3 3864 floppy_read_id_: ; 0xf2f e8 LB 0x443841 floppy_read_id_: ; 0xf2fa8 LB 0x44 3865 3842 push bp ; 55 3866 3843 mov bp, sp ; 89 e5 … … 3870 3847 sub sp, strict byte 00008h ; 83 ec 08 3871 3848 mov bx, ax ; 89 c3 3872 call 02 f22h ; e8 2c ff3849 call 02ee2h ; e8 2c ff 3873 3850 mov AL, strict byte 04ah ; b0 4a 3874 3851 mov dx, 003f5h ; ba f5 03 … … 3876 3853 mov al, bl ; 88 d8 3877 3854 out DX, AL ; ee 3878 call 02e 92h ; e8 90 fe3855 call 02e52h ; e8 90 fe 3879 3856 xor si, si ; 31 f6 3880 jmp short 0 300bh ; eb 053857 jmp short 02fcbh ; eb 05 3881 3858 cmp si, strict byte 00007h ; 83 fe 07 3882 jnl short 0 3017h ; 7d 0c3859 jnl short 02fd7h ; 7d 0c 3883 3860 mov dx, 003f5h ; ba f5 03 3884 3861 in AL, DX ; ec … … 3887 3864 mov byte [bp+si-00eh], al ; 88 42 f2 3888 3865 inc si ; 46 3889 jmp short 0 3006h ; eb ef3866 jmp short 02fc6h ; eb ef 3890 3867 test byte [bp-00eh], 0c0h ; f6 46 f2 c0 3891 je short 0 3021h ; 74 043868 je short 02fe1h ; 74 04 3892 3869 xor ax, ax ; 31 c0 3893 jmp short 0 3024h ; eb 033870 jmp short 02fe4h ; eb 03 3894 3871 mov ax, strict word 00001h ; b8 01 00 3895 3872 lea sp, [bp-006h] ; 8d 66 fa … … 3899 3876 pop bp ; 5d 3900 3877 retn ; c3 3901 floppy_drive_recal_: ; 0xf 302c LB 0x4d3878 floppy_drive_recal_: ; 0xf2fec LB 0x4d 3902 3879 push bp ; 55 3903 3880 mov bp, sp ; 89 e5 … … 3906 3883 push dx ; 52 3907 3884 mov bx, ax ; 89 c3 3908 call 02 f22h ; e8 eb fe3885 call 02ee2h ; e8 eb fe 3909 3886 mov AL, strict byte 007h ; b0 07 3910 3887 mov dx, 003f5h ; ba f5 03 … … 3912 3889 mov al, bl ; 88 d8 3913 3890 out DX, AL ; ee 3914 call 02e 92h ; e8 4f fe3891 call 02e52h ; e8 4f fe 3915 3892 test bx, bx ; 85 db 3916 je short 030 51h ; 74 0a3893 je short 03011h ; 74 0a 3917 3894 mov bl, al ; 88 c3 3918 3895 or bl, 002h ; 80 cb 02 3919 3896 mov cx, 00095h ; b9 95 00 3920 jmp short 030 59h ; eb 083897 jmp short 03019h ; eb 08 3921 3898 mov bl, al ; 88 c3 3922 3899 or bl, 001h ; 80 cb 01 … … 3925 3902 mov dx, strict word 0003eh ; ba 3e 00 3926 3903 mov ax, strict word 00040h ; b8 40 00 3927 call 0165eh ; e8 fa e53904 call 0165eh ; e8 3a e6 3928 3905 xor bx, bx ; 31 db 3929 3906 mov dx, cx ; 89 ca 3930 3907 mov ax, strict word 00040h ; b8 40 00 3931 call 0165eh ; e8 f0 e53908 call 0165eh ; e8 30 e6 3932 3909 mov ax, strict word 00001h ; b8 01 00 3933 3910 lea sp, [bp-006h] ; 8d 66 fa … … 3937 3914 pop bp ; 5d 3938 3915 retn ; c3 3939 floppy_media_sense_: ; 0xf30 79 LB 0xf93916 floppy_media_sense_: ; 0xf3039 LB 0xf9 3940 3917 push bp ; 55 3941 3918 mov bp, sp ; 89 e5 … … 3946 3923 push di ; 57 3947 3924 mov di, ax ; 89 c7 3948 call 0 302ch ; e8 a6 ff3925 call 02fech ; e8 a6 ff 3949 3926 test ax, ax ; 85 c0 3950 jne short 030 8fh ; 75 053927 jne short 0304fh ; 75 05 3951 3928 xor cx, cx ; 31 c9 3952 jmp near 031 66h ; e9 d7 003929 jmp near 03126h ; e9 d7 00 3953 3930 mov ax, strict word 00010h ; b8 10 00 3954 call 016ach ; e8 17 e63931 call 016ach ; e8 57 e6 3955 3932 test di, di ; 85 ff 3956 jne short 030 a0h ; 75 073933 jne short 03060h ; 75 07 3957 3934 mov cl, al ; 88 c1 3958 3935 shr cl, 004h ; c0 e9 04 3959 jmp short 030 a5h ; eb 053936 jmp short 03065h ; eb 05 3960 3937 mov cl, al ; 88 c1 3961 3938 and cl, 00fh ; 80 e1 0f 3962 3939 cmp cl, 001h ; 80 f9 01 3963 jne short 030 b3h ; 75 093940 jne short 03073h ; 75 09 3964 3941 xor cl, cl ; 30 c9 3965 3942 mov CH, strict byte 015h ; b5 15 3966 3943 mov si, strict word 00001h ; be 01 00 3967 jmp short 030 f1h ; eb 3e3944 jmp short 030b1h ; eb 3e 3968 3945 cmp cl, 002h ; 80 f9 02 3969 jne short 030 beh ; 75 063946 jne short 0307eh ; 75 06 3970 3947 xor cl, cl ; 30 c9 3971 3948 mov CH, strict byte 035h ; b5 35 3972 jmp short 030 aeh ; eb f03949 jmp short 0306eh ; eb f0 3973 3950 cmp cl, 003h ; 80 f9 03 3974 jne short 030 c9h ; 75 063951 jne short 03089h ; 75 06 3975 3952 xor cl, cl ; 30 c9 3976 3953 mov CH, strict byte 017h ; b5 17 3977 jmp short 030 aeh ; eb e53954 jmp short 0306eh ; eb e5 3978 3955 cmp cl, 004h ; 80 f9 04 3979 jne short 030 d4h ; 75 063956 jne short 03094h ; 75 06 3980 3957 xor cl, cl ; 30 c9 3981 3958 mov CH, strict byte 017h ; b5 17 3982 jmp short 030 aeh ; eb da3959 jmp short 0306eh ; eb da 3983 3960 cmp cl, 005h ; 80 f9 05 3984 jne short 030 dfh ; 75 063961 jne short 0309fh ; 75 06 3985 3962 mov CL, strict byte 0cch ; b1 cc 3986 3963 mov CH, strict byte 0d7h ; b5 d7 3987 jmp short 030 aeh ; eb cf3964 jmp short 0306eh ; eb cf 3988 3965 cmp cl, 00eh ; 80 f9 0e 3989 je short 030 e9h ; 74 053966 je short 030a9h ; 74 05 3990 3967 cmp cl, 00fh ; 80 f9 0f 3991 jne short 030 ebh ; 75 023992 jmp short 030 d9h ; eb ee3968 jne short 030abh ; 75 02 3969 jmp short 03099h ; eb ee 3993 3970 xor cl, cl ; 30 c9 3994 3971 xor ch, ch ; 30 ed … … 3999 3976 mov dx, 0008bh ; ba 8b 00 4000 3977 mov ax, strict word 00040h ; b8 40 00 4001 call 0165eh ; e8 5e e53978 call 0165eh ; e8 9e e5 4002 3979 mov ax, di ; 89 f8 4003 call 02f e8h ; e8 e3 fe3980 call 02fa8h ; e8 e3 fe 4004 3981 test ax, ax ; 85 c0 4005 jne short 03 13bh ; 75 323982 jne short 030fbh ; 75 32 4006 3983 mov al, cl ; 88 c8 4007 3984 and AL, strict byte 0c0h ; 24 c0 4008 3985 cmp AL, strict byte 080h ; 3c 80 4009 je short 03 13bh ; 74 2a3986 je short 030fbh ; 74 2a 4010 3987 mov al, cl ; 88 c8 4011 3988 and AL, strict byte 0c0h ; 24 c0 4012 3989 cmp AL, strict byte 0c0h ; 3c c0 4013 je short 03 128h ; 74 0f3990 je short 030e8h ; 74 0f 4014 3991 mov ah, cl ; 88 cc 4015 3992 and ah, 03fh ; 80 e4 3f 4016 3993 cmp AL, strict byte 040h ; 3c 40 4017 je short 03 134h ; 74 123994 je short 030f4h ; 74 12 4018 3995 test al, al ; 84 c0 4019 je short 03 12dh ; 74 074020 jmp short 030 f1h ; eb c93996 je short 030edh ; 74 07 3997 jmp short 030b1h ; eb c9 4021 3998 and cl, 03fh ; 80 e1 3f 4022 jmp short 030 f1h ; eb c43999 jmp short 030b1h ; eb c4 4023 4000 mov cl, ah ; 88 e1 4024 4001 or cl, 040h ; 80 c9 40 4025 jmp short 030 f1h ; eb bd4002 jmp short 030b1h ; eb bd 4026 4003 mov cl, ah ; 88 e1 4027 4004 or cl, 080h ; 80 c9 80 4028 jmp short 030 f1h ; eb b64005 jmp short 030b1h ; eb b6 4029 4006 test di, di ; 85 ff 4030 jne short 031 44h ; 75 054007 jne short 03104h ; 75 05 4031 4008 mov di, 00090h ; bf 90 00 4032 jmp short 031 47h ; eb 034009 jmp short 03107h ; eb 03 4033 4010 mov di, 00091h ; bf 91 00 4034 4011 mov al, cl ; 88 c8 … … 4037 4014 mov dx, 0008bh ; ba 8b 00 4038 4015 mov ax, strict word 00040h ; b8 40 00 4039 call 0165eh ; e8 08 e54016 call 0165eh ; e8 48 e5 4040 4017 mov al, ch ; 88 e8 4041 4018 xor ah, ah ; 30 e4 … … 4043 4020 mov dx, di ; 89 fa 4044 4021 mov ax, strict word 00040h ; b8 40 00 4045 call 0165eh ; e8 fa e44022 call 0165eh ; e8 3a e5 4046 4023 mov cx, si ; 89 f1 4047 4024 mov ax, cx ; 89 c8 … … 4054 4031 pop bp ; 5d 4055 4032 retn ; c3 4056 floppy_drive_exists_: ; 0xf31 72 LB 0x284033 floppy_drive_exists_: ; 0xf3132 LB 0x28 4057 4034 push bp ; 55 4058 4035 mov bp, sp ; 89 e5 … … 4060 4037 mov dx, ax ; 89 c2 4061 4038 mov ax, strict word 00010h ; b8 10 00 4062 call 016ach ; e8 2e e54039 call 016ach ; e8 6e e5 4063 4040 test dx, dx ; 85 d2 4064 jne short 031 87h ; 75 054041 jne short 03147h ; 75 05 4065 4042 shr al, 004h ; c0 e8 04 4066 jmp short 031 89h ; eb 024043 jmp short 03149h ; eb 02 4067 4044 and AL, strict byte 00fh ; 24 0f 4068 4045 test al, al ; 84 c0 4069 je short 031 92h ; 74 054046 je short 03152h ; 74 05 4070 4047 mov ax, strict word 00001h ; b8 01 00 4071 jmp short 031 94h ; eb 024048 jmp short 03154h ; eb 02 4072 4049 xor ah, ah ; 30 e4 4073 4050 lea sp, [bp-002h] ; 8d 66 fe … … 4075 4052 pop bp ; 5d 4076 4053 retn ; c3 4077 _int13_diskette_function: ; 0xf31 9a LB 0x93e4054 _int13_diskette_function: ; 0xf315a LB 0x93e 4078 4055 push bp ; 55 4079 4056 mov bp, sp ; 89 e5 … … 4093 4070 mov word [bp-010h], dx ; 89 56 f0 4094 4071 cmp bl, 008h ; 80 fb 08 4095 jc short 031 f7h ; 72 2e4072 jc short 031b7h ; 72 2e 4096 4073 mov dx, word [bp+01ch] ; 8b 56 1c 4097 4074 or dl, 001h ; 80 ca 01 4098 4075 cmp bl, 008h ; 80 fb 08 4099 jbe short 03 22dh ; 76 594076 jbe short 031edh ; 76 59 4100 4077 cmp bl, 016h ; 80 fb 16 4101 jc short 031 efh ; 72 164078 jc short 031afh ; 72 16 4102 4079 or si, 00100h ; 81 ce 00 01 4103 4080 cmp bl, 016h ; 80 fb 16 4104 jbe short 03 230h ; 76 4e4081 jbe short 031f0h ; 76 4e 4105 4082 cmp bl, 018h ; 80 fb 18 4106 je short 03 233h ; 74 4c4083 je short 031f3h ; 74 4c 4107 4084 cmp bl, 017h ; 80 fb 17 4108 je short 032 49h ; 74 5d4109 jmp near 03a b5h ; e9 c6 084085 je short 03209h ; 74 5d 4086 jmp near 03a75h ; e9 c6 08 4110 4087 cmp bl, 015h ; 80 fb 15 4111 je short 032 4ch ; 74 584112 jmp near 03a b5h ; e9 be 084088 je short 0320ch ; 74 58 4089 jmp near 03a75h ; e9 be 08 4113 4090 cmp bl, 001h ; 80 fb 01 4114 jc short 03 20bh ; 72 0f4115 jbe short 032 4fh ; 76 514091 jc short 031cbh ; 72 0f 4092 jbe short 0320fh ; 76 51 4116 4093 cmp bl, 005h ; 80 fb 05 4117 je short 032 6ah ; 74 674094 je short 0322ah ; 74 67 4118 4095 cmp bl, 004h ; 80 fb 04 4119 jbe short 032 6dh ; 76 654120 jmp near 03a b5h ; e9 aa 084096 jbe short 0322dh ; 76 65 4097 jmp near 03a75h ; e9 aa 08 4121 4098 test bl, bl ; 84 db 4122 jne short 032 6fh ; 75 604099 jne short 0322fh ; 75 60 4123 4100 mov al, byte [bp+00eh] ; 8a 46 0e 4124 4101 mov byte [bp-006h], al ; 88 46 fa 4125 4102 cmp AL, strict byte 001h ; 3c 01 4126 jbe short 03 236h ; 76 1d4103 jbe short 031f6h ; 76 1d 4127 4104 mov ax, word [bp+016h] ; 8b 46 16 4128 4105 xor ah, ah ; 30 e4 … … 4130 4107 mov word [bp+016h], ax ; 89 46 16 4131 4108 mov ax, strict word 00001h ; b8 01 00 4132 call 02e 49h ; e8 1f fc4133 jmp near 035 d9h ; e9 ac 034134 jmp near 037 97h ; e9 67 054135 jmp near 038 cbh ; e9 98 064136 jmp near 039 64h ; e9 2e 074109 call 02e09h ; e8 1f fc 4110 jmp near 03599h ; e9 ac 03 4111 jmp near 03757h ; e9 67 05 4112 jmp near 0388bh ; e9 98 06 4113 jmp near 03924h ; e9 2e 07 4137 4114 mov ax, strict word 00010h ; b8 10 00 4138 call 016ach ; e8 70 e44115 call 016ach ; e8 b0 e4 4139 4116 cmp byte [bp-006h], 000h ; 80 7e fa 00 4140 jne short 032 51h ; 75 0f4117 jne short 03211h ; 75 0f 4141 4118 mov cl, al ; 88 c1 4142 4119 shr cl, 004h ; c0 e9 04 4143 jmp short 032 56h ; eb 0d4144 jmp near 038 efh ; e9 a3 064145 jmp near 038 87h ; e9 38 064146 jmp short 032 98h ; eb 474120 jmp short 03216h ; eb 0d 4121 jmp near 038afh ; e9 a3 06 4122 jmp near 03847h ; e9 38 06 4123 jmp short 03258h ; eb 47 4147 4124 mov cl, al ; 88 c1 4148 4125 and cl, 00fh ; 80 e1 0f 4149 4126 test cl, cl ; 84 c9 4150 jne short 032 72h ; 75 184127 jne short 03232h ; 75 18 4151 4128 mov ax, word [bp+016h] ; 8b 46 16 4152 4129 xor ah, ah ; 30 e4 … … 4154 4131 mov word [bp+016h], ax ; 89 46 16 4155 4132 mov ax, 00080h ; b8 80 00 4156 jmp short 03 227h ; eb bd4157 jmp near 03 603h ; e9 96 034158 jmp short 032 b7h ; eb 484159 jmp near 03a b5h ; e9 43 084133 jmp short 031e7h ; eb bd 4134 jmp near 035c3h ; e9 96 03 4135 jmp short 03277h ; eb 48 4136 jmp near 03a75h ; e9 43 08 4160 4137 xor bx, bx ; 31 db 4161 4138 mov dx, strict word 0003eh ; ba 3e 00 4162 4139 mov ax, strict word 00040h ; b8 40 00 4163 call 0165eh ; e8 e1 e34140 call 0165eh ; e8 21 e4 4164 4141 xor al, al ; 30 c0 4165 4142 mov byte [bp+017h], al ; 88 46 17 4166 4143 xor ah, ah ; 30 e4 4167 call 02e 49h ; e8 c2 fb4144 call 02e09h ; e8 c2 fb 4168 4145 and byte [bp+01ch], 0feh ; 80 66 1c fe 4169 4146 mov al, byte [bp-006h] ; 8a 46 fa 4170 4147 xor ah, ah ; 30 e4 4171 4148 xor dx, dx ; 31 d2 4172 call 02e 62h ; e8 cd fb4173 jmp near 035 fch ; e9 64 034149 call 02e22h ; e8 cd fb 4150 jmp near 035bch ; e9 64 03 4174 4151 and byte [bp+01ch], 0feh ; 80 66 1c fe 4175 4152 mov dx, 00441h ; ba 41 04 4176 4153 xor ax, ax ; 31 c0 4177 call 01650h ; e8 ac e34154 call 01650h ; e8 ec e3 4178 4155 mov dl, al ; 88 c2 4179 4156 xor dh, dh ; 30 f6 … … 4182 4159 mov word [bp+016h], si ; 89 76 16 4183 4160 test al, al ; 84 c0 4184 je short 03 30ah ; 74 564185 jmp near 035 d9h ; e9 22 034161 je short 032cah ; 74 56 4162 jmp near 03599h ; e9 22 03 4186 4163 mov ch, cl ; 88 cd 4187 4164 mov dl, byte [bp-010h] ; 8a 56 f0 … … 4193 4170 mov byte [bp-006h], al ; 88 46 fa 4194 4171 cmp AL, strict byte 001h ; 3c 01 4195 jnbe short 032 e0h ; 77 0e4172 jnbe short 032a0h ; 77 0e 4196 4173 cmp dl, 001h ; 80 fa 01 4197 jnbe short 032 e0h ; 77 094174 jnbe short 032a0h ; 77 09 4198 4175 test cl, cl ; 84 c9 4199 je short 032 e0h ; 74 054176 je short 032a0h ; 74 05 4200 4177 cmp cl, 048h ; 80 f9 48 4201 jbe short 03 30dh ; 76 2d4178 jbe short 032cdh ; 76 2d 4202 4179 mov bx, 00da0h ; bb a0 0d 4203 4180 mov cx, ds ; 8c d9 4204 4181 mov ax, strict word 00004h ; b8 04 00 4205 call 01923h ; e8 38 e64182 call 01923h ; e8 78 e6 4206 4183 push 00275h ; 68 75 02 4207 4184 push 0028dh ; 68 8d 02 4208 4185 push strict byte 00004h ; 6a 04 4209 call 01966h ; e8 70 e64186 call 01966h ; e8 b0 e6 4210 4187 add sp, strict byte 00006h ; 83 c4 06 4211 4188 mov ax, word [bp+016h] ; 8b 46 16 … … 4214 4191 mov word [bp+016h], ax ; 89 46 16 4215 4192 mov ax, strict word 00001h ; b8 01 00 4216 jmp near 033 8eh ; e9 84 004217 jmp near 035 fch ; e9 ef 024193 jmp near 0334eh ; e9 84 00 4194 jmp near 035bch ; e9 ef 02 4218 4195 mov al, byte [bp-006h] ; 8a 46 fa 4219 4196 xor ah, ah ; 30 e4 4220 call 031 72h ; e8 5d fe4197 call 03132h ; e8 5d fe 4221 4198 test ax, ax ; 85 c0 4222 je short 033 47h ; 74 2e4199 je short 03307h ; 74 2e 4223 4200 mov dl, byte [bp-006h] ; 8a 56 fa 4224 4201 xor dh, dh ; 30 f6 4225 4202 mov ax, dx ; 89 d0 4226 call 02f a5h ; e8 82 fc4203 call 02f65h ; e8 82 fc 4227 4204 test ax, ax ; 85 c0 4228 jne short 033 4ah ; 75 234205 jne short 0330ah ; 75 23 4229 4206 mov ax, dx ; 89 d0 4230 call 030 79h ; e8 4d fd4207 call 03039h ; e8 4d fd 4231 4208 test ax, ax ; 85 c0 4232 jne short 033 4ah ; 75 1a4209 jne short 0330ah ; 75 1a 4233 4210 mov ax, word [bp+016h] ; 8b 46 16 4234 4211 xor ah, ah ; 30 e4 … … 4236 4213 mov word [bp+016h], ax ; 89 46 16 4237 4214 mov ax, strict word 0000ch ; b8 0c 00 4238 call 02e 49h ; e8 08 fb4215 call 02e09h ; e8 08 fb 4239 4216 mov byte [bp+016h], dh ; 88 76 16 4240 jmp near 035 d9h ; e9 92 024241 jmp near 03 429h ; e9 df 004217 jmp near 03599h ; e9 92 02 4218 jmp near 033e9h ; e9 df 00 4242 4219 cmp byte [bp-00eh], 002h ; 80 7e f2 02 4243 jne short 033 98h ; 75 484220 jne short 03358h ; 75 48 4244 4221 mov ax, word [bp+006h] ; 8b 46 06 4245 4222 shr ax, 00ch ; c1 e8 0c … … 4251 4228 mov word [bp-012h], bx ; 89 5e ee 4252 4229 cmp dx, bx ; 39 da 4253 jbe short 033 6ch ; 76 024230 jbe short 0332ch ; 76 02 4254 4231 db 0feh, 0c1h 4255 4232 ; inc cl ; fe c1 … … 4262 4239 add ax, bx ; 01 d8 4263 4240 cmp ax, word [bp-012h] ; 3b 46 ee 4264 jnc short 033 9bh ; 73 1b4241 jnc short 0335bh ; 73 1b 4265 4242 mov ax, word [bp+016h] ; 8b 46 16 4266 4243 xor ah, ah ; 30 e4 … … 4268 4245 mov word [bp+016h], ax ; 89 46 16 4269 4246 mov ax, strict word 00009h ; b8 09 00 4270 call 02e 49h ; e8 b8 fa4247 call 02e09h ; e8 b8 fa 4271 4248 mov byte [bp+016h], 000h ; c6 46 16 00 4272 jmp near 035 d9h ; e9 41 024273 jmp near 034 bfh ; e9 24 014249 jmp near 03599h ; e9 41 02 4250 jmp near 0347fh ; e9 24 01 4274 4251 mov AL, strict byte 006h ; b0 06 4275 4252 mov dx, strict word 0000ah ; ba 0a 00 … … 4304 4281 mov al, byte [bp-006h] ; 8a 46 fa 4305 4282 xor ah, ah ; 30 e4 4306 call 02 f22h ; e8 41 fb4283 call 02ee2h ; e8 41 fb 4307 4284 mov AL, strict byte 0e6h ; b0 e6 4308 4285 mov dx, 003f5h ; ba f5 03 … … 4336 4313 mov AL, strict byte 0ffh ; b0 ff 4337 4314 out DX, AL ; ee 4338 call 02e b3h ; e8 91 fa4315 call 02e73h ; e8 91 fa 4339 4316 test al, al ; 84 c0 4340 jne short 03 43ah ; 75 144341 call 02e fah ; e8 d1 fa4317 jne short 033fah ; 75 14 4318 call 02ebah ; e8 d1 fa 4342 4319 mov ax, word [bp+016h] ; 8b 46 16 4343 4320 xor ah, ah ; 30 e4 … … 4345 4322 mov word [bp+016h], ax ; 89 46 16 4346 4323 mov ax, 00080h ; b8 80 00 4347 jmp near 033 8eh ; e9 54 ff4324 jmp near 0334eh ; e9 54 ff 4348 4325 mov dx, 003f4h ; ba f4 03 4349 4326 in AL, DX ; ec … … 4352 4329 and AL, strict byte 0c0h ; 24 c0 4353 4330 cmp AL, strict byte 0c0h ; 3c c0 4354 je short 034 54h ; 74 0e4331 je short 03414h ; 74 0e 4355 4332 push 00275h ; 68 75 02 4356 4333 push 002a8h ; 68 a8 02 4357 4334 push strict byte 00007h ; 6a 07 4358 call 01966h ; e8 15 e54335 call 01966h ; e8 55 e5 4359 4336 add sp, strict byte 00006h ; 83 c4 06 4360 4337 xor si, si ; 31 f6 4361 jmp short 034 5dh ; eb 054338 jmp short 0341dh ; eb 05 4362 4339 cmp si, strict byte 00007h ; 83 fe 07 4363 jnl short 034 76h ; 7d 194340 jnl short 03436h ; 7d 19 4364 4341 mov dx, 003f5h ; ba f5 03 4365 4342 in AL, DX ; ec … … 4371 4348 lea dx, [si+042h] ; 8d 54 42 4372 4349 mov ax, strict word 00040h ; b8 40 00 4373 call 0165eh ; e8 eb e14350 call 0165eh ; e8 2b e2 4374 4351 inc si ; 46 4375 jmp short 034 58h ; eb e24352 jmp short 03418h ; eb e2 4376 4353 test byte [bp-01ah], 0c0h ; f6 46 e6 c0 4377 je short 034 8dh ; 74 114354 je short 0344dh ; 74 11 4378 4355 mov ax, word [bp+016h] ; 8b 46 16 4379 4356 xor ah, ah ; 30 e4 … … 4381 4358 mov word [bp+016h], ax ; 89 46 16 4382 4359 mov ax, strict word 00020h ; b8 20 00 4383 jmp near 033 8eh ; e9 01 ff4360 jmp near 0334eh ; e9 01 ff 4384 4361 mov al, ch ; 88 e8 4385 4362 xor ah, ah ; 30 e4 … … 4402 4379 mov al, byte [bp-006h] ; 8a 46 fa 4403 4380 xor ah, ah ; 30 e4 4404 call 02e 62h ; e8 aa f94381 call 02e22h ; e8 aa f9 4405 4382 mov byte [bp+017h], 000h ; c6 46 17 00 4406 jmp near 039 5dh ; e9 9e 044383 jmp near 0391dh ; e9 9e 04 4407 4384 cmp byte [bp-00eh], 003h ; 80 7e f2 03 4408 je short 034 c8h ; 74 034409 jmp near 035 e7h ; e9 1f 014385 je short 03488h ; 74 03 4386 jmp near 035a7h ; e9 1f 01 4410 4387 mov dx, word [bp+006h] ; 8b 56 06 4411 4388 shr dx, 00ch ; c1 ea 0c … … 4417 4394 mov word [bp-012h], bx ; 89 5e ee 4418 4395 cmp ax, bx ; 39 d8 4419 jbe short 034 e4h ; 76 024396 jbe short 034a4h ; 76 02 4420 4397 db 0feh, 0c1h 4421 4398 ; inc cl ; fe c1 … … 4428 4405 add ax, bx ; 01 d8 4429 4406 cmp ax, word [bp-012h] ; 3b 46 ee 4430 jnc short 034 fbh ; 73 034431 jmp near 033 80h ; e9 85 fe4407 jnc short 034bbh ; 73 03 4408 jmp near 03340h ; e9 85 fe 4432 4409 mov AL, strict byte 006h ; b0 06 4433 4410 mov dx, strict word 0000ah ; ba 0a 00 … … 4462 4439 mov al, byte [bp-006h] ; 8a 46 fa 4463 4440 xor ah, ah ; 30 e4 4464 call 02 f22h ; e8 e1 f94441 call 02ee2h ; e8 e1 f9 4465 4442 mov AL, strict byte 0c5h ; b0 c5 4466 4443 mov dx, 003f5h ; ba f5 03 … … 4494 4471 mov AL, strict byte 0ffh ; b0 ff 4495 4472 out DX, AL ; ee 4496 call 02e b3h ; e8 31 f94473 call 02e73h ; e8 31 f9 4497 4474 test al, al ; 84 c0 4498 jne short 035 89h ; 75 034499 jmp near 03 426h ; e9 9d fe4475 jne short 03549h ; 75 03 4476 jmp near 033e6h ; e9 9d fe 4500 4477 mov dx, 003f4h ; ba f4 03 4501 4478 in AL, DX ; ec … … 4504 4481 and AL, strict byte 0c0h ; 24 c0 4505 4482 cmp AL, strict byte 0c0h ; 3c c0 4506 je short 035 a3h ; 74 0e4483 je short 03563h ; 74 0e 4507 4484 push 00275h ; 68 75 02 4508 4485 push 002a8h ; 68 a8 02 4509 4486 push strict byte 00007h ; 6a 07 4510 call 01966h ; e8 c6 e34487 call 01966h ; e8 06 e4 4511 4488 add sp, strict byte 00006h ; 83 c4 06 4512 4489 xor si, si ; 31 f6 4513 jmp short 035 ach ; eb 054490 jmp short 0356ch ; eb 05 4514 4491 cmp si, strict byte 00007h ; 83 fe 07 4515 jnl short 035 c5h ; 7d 194492 jnl short 03585h ; 7d 19 4516 4493 mov dx, 003f5h ; ba f5 03 4517 4494 in AL, DX ; ec … … 4523 4500 lea dx, [si+042h] ; 8d 54 42 4524 4501 mov ax, strict word 00040h ; b8 40 00 4525 call 0165eh ; e8 9c e04502 call 0165eh ; e8 dc e0 4526 4503 inc si ; 46 4527 jmp short 035 a7h ; eb e24504 jmp short 03567h ; eb e2 4528 4505 test byte [bp-01ah], 0c0h ; f6 46 e6 c0 4529 jne short 035 ceh ; 75 034530 jmp near 034 abh ; e9 dd fe4506 jne short 0358eh ; 75 03 4507 jmp near 0346bh ; e9 dd fe 4531 4508 test byte [bp-019h], 002h ; f6 46 e7 02 4532 je short 035 e0h ; 74 0c4509 je short 035a0h ; 74 0c 4533 4510 mov word [bp+016h], 00300h ; c7 46 16 00 03 4534 4511 or byte [bp+01ch], 001h ; 80 4e 1c 01 4535 jmp near 035 fch ; e9 1c 004512 jmp near 035bch ; e9 1c 00 4536 4513 mov word [bp+016h], 00100h ; c7 46 16 00 01 4537 jmp short 035 d9h ; eb f24514 jmp short 03599h ; eb f2 4538 4515 mov dl, byte [bp-008h] ; 8a 56 f8 4539 4516 xor dh, dh ; 30 f6 4540 4517 mov al, byte [bp-006h] ; 8a 46 fa 4541 4518 xor ah, ah ; 30 e4 4542 call 02e 62h ; e8 6e f84519 call 02e22h ; e8 6e f8 4543 4520 and byte [bp+01ch], 0feh ; 80 66 1c fe 4544 4521 mov byte [bp+017h], 000h ; c6 46 17 00 … … 4558 4535 mov byte [bp-006h], bl ; 88 5e fa 4559 4536 cmp bl, 001h ; 80 fb 01 4560 jnbe short 03 635h ; 77 124537 jnbe short 035f5h ; 77 12 4561 4538 cmp dl, 001h ; 80 fa 01 4562 jnbe short 03 635h ; 77 0d4539 jnbe short 035f5h ; 77 0d 4563 4540 cmp AL, strict byte 04fh ; 3c 4f 4564 jnbe short 03 635h ; 77 094541 jnbe short 035f5h ; 77 09 4565 4542 test ch, ch ; 84 ed 4566 je short 03 635h ; 74 054543 je short 035f5h ; 74 05 4567 4544 cmp ch, 012h ; 80 fd 12 4568 jbe short 036 4ah ; 76 154545 jbe short 0360ah ; 76 15 4569 4546 mov ax, word [bp+016h] ; 8b 46 16 4570 4547 xor ah, ah ; 30 e4 … … 4572 4549 mov word [bp+016h], ax ; 89 46 16 4573 4550 mov ax, strict word 00001h ; b8 01 00 4574 call 02e 49h ; e8 03 f84551 call 02e09h ; e8 03 f8 4575 4552 or byte [bp+01ch], 001h ; 80 4e 1c 01 4576 4553 mov al, byte [bp-006h] ; 8a 46 fa 4577 4554 xor ah, ah ; 30 e4 4578 call 031 72h ; e8 20 fb4555 call 03132h ; e8 20 fb 4579 4556 test ax, ax ; 85 c0 4580 jne short 036 59h ; 75 034581 jmp near 032 5ah ; e9 01 fc4557 jne short 03619h ; 75 03 4558 jmp near 0321ah ; e9 01 fc 4582 4559 mov dl, byte [bp-006h] ; 8a 56 fa 4583 4560 xor dh, dh ; 30 f6 4584 4561 mov ax, dx ; 89 d0 4585 call 02f a5h ; e8 42 f94562 call 02f65h ; e8 42 f9 4586 4563 test ax, ax ; 85 c0 4587 jne short 036 73h ; 75 0c4564 jne short 03633h ; 75 0c 4588 4565 mov ax, dx ; 89 d0 4589 call 030 79h ; e8 0d fa4566 call 03039h ; e8 0d fa 4590 4567 test ax, ax ; 85 c0 4591 jne short 036 73h ; 75 034592 jmp near 03 330h ; e9 bd fc4568 jne short 03633h ; 75 03 4569 jmp near 032f0h ; e9 bd fc 4593 4570 mov dx, word [bp+006h] ; 8b 56 06 4594 4571 shr dx, 00ch ; c1 ea 0c … … 4600 4577 mov word [bp-012h], bx ; 89 5e ee 4601 4578 cmp ax, bx ; 39 d8 4602 jbe short 036 8fh ; 76 024579 jbe short 0364fh ; 76 02 4603 4580 db 0feh, 0c1h 4604 4581 ; inc cl ; fe c1 … … 4611 4588 add ax, bx ; 01 d8 4612 4589 cmp ax, word [bp-012h] ; 3b 46 ee 4613 jnc short 036 a6h ; 73 034614 jmp near 033 80h ; e9 da fc4590 jnc short 03666h ; 73 03 4591 jmp near 03340h ; e9 da fc 4615 4592 mov AL, strict byte 006h ; b0 06 4616 4593 mov dx, strict word 0000ah ; ba 0a 00 … … 4645 4622 mov al, byte [bp-006h] ; 8a 46 fa 4646 4623 xor ah, ah ; 30 e4 4647 call 02 f22h ; e8 36 f84624 call 02ee2h ; e8 36 f8 4648 4625 mov AL, strict byte 00fh ; b0 0f 4649 4626 mov dx, 003f5h ; ba f5 03 … … 4671 4648 mov AL, strict byte 0f6h ; b0 f6 4672 4649 out DX, AL ; ee 4673 call 02e b3h ; e8 96 f74650 call 02e73h ; e8 96 f7 4674 4651 test al, al ; 84 c0 4675 jne short 03 727h ; 75 064676 call 02e fah ; e8 d6 f74677 jmp near 032 5ah ; e9 33 fb4652 jne short 036e7h ; 75 06 4653 call 02ebah ; e8 d6 f7 4654 jmp near 0321ah ; e9 33 fb 4678 4655 mov dx, 003f4h ; ba f4 03 4679 4656 in AL, DX ; ec … … 4682 4659 and AL, strict byte 0c0h ; 24 c0 4683 4660 cmp AL, strict byte 0c0h ; 3c c0 4684 je short 037 41h ; 74 0e4661 je short 03701h ; 74 0e 4685 4662 push 00275h ; 68 75 02 4686 4663 push 002a8h ; 68 a8 02 4687 4664 push strict byte 00007h ; 6a 07 4688 call 01966h ; e8 28 e24665 call 01966h ; e8 68 e2 4689 4666 add sp, strict byte 00006h ; 83 c4 06 4690 4667 xor si, si ; 31 f6 4691 jmp short 037 4ah ; eb 054668 jmp short 0370ah ; eb 05 4692 4669 cmp si, strict byte 00007h ; 83 fe 07 4693 jnl short 037 63h ; 7d 194670 jnl short 03723h ; 7d 19 4694 4671 mov dx, 003f5h ; ba f5 03 4695 4672 in AL, DX ; ec … … 4701 4678 lea dx, [si+042h] ; 8d 54 42 4702 4679 mov ax, strict word 00040h ; b8 40 00 4703 call 0165eh ; e8 fe de4680 call 0165eh ; e8 3e df 4704 4681 inc si ; 46 4705 jmp short 037 45h ; eb e24682 jmp short 03705h ; eb e2 4706 4683 test byte [bp-01ah], 0c0h ; f6 46 e6 c0 4707 je short 037 80h ; 74 174684 je short 03740h ; 74 17 4708 4685 test byte [bp-019h], 002h ; f6 46 e7 02 4709 je short 037 72h ; 74 034710 jmp near 035 d4h ; e9 62 fe4686 je short 03732h ; 74 03 4687 jmp near 03594h ; e9 62 fe 4711 4688 push 00275h ; 68 75 02 4712 4689 push 002bch ; 68 bc 02 4713 4690 push strict byte 00007h ; 6a 07 4714 call 01966h ; e8 e9 e14691 call 01966h ; e8 29 e2 4715 4692 add sp, strict byte 00006h ; 83 c4 06 4716 4693 xor al, al ; 30 c0 4717 4694 mov byte [bp+017h], al ; 88 46 17 4718 4695 xor ah, ah ; 30 e4 4719 call 02e 49h ; e8 bf f64696 call 02e09h ; e8 bf f6 4720 4697 mov al, byte [bp-006h] ; 8a 46 fa 4721 4698 xor ah, ah ; 30 e4 4722 4699 xor dx, dx ; 31 d2 4723 call 02e 62h ; e8 ce f64724 jmp near 039 5dh ; e9 c6 014700 call 02e22h ; e8 ce f6 4701 jmp near 0391dh ; e9 c6 01 4725 4702 mov byte [bp-006h], al ; 88 46 fa 4726 4703 cmp AL, strict byte 001h ; 3c 01 4727 jbe short 037 bch ; 76 1e4704 jbe short 0377ch ; 76 1e 4728 4705 xor ax, ax ; 31 c0 4729 4706 mov word [bp+016h], ax ; 89 46 16 … … 4736 4713 xor ah, ah ; 30 e4 4737 4714 mov word [bp+012h], ax ; 89 46 12 4738 jmp near 038 d8h ; e9 1c 014715 jmp near 03898h ; e9 1c 01 4739 4716 mov ax, strict word 00010h ; b8 10 00 4740 call 016ach ; e8 ea de4717 call 016ach ; e8 2a df 4741 4718 mov cl, al ; 88 c1 4742 4719 xor ch, ch ; 30 ed 4743 4720 test AL, strict byte 0f0h ; a8 f0 4744 je short 037 cch ; 74 024721 je short 0378ch ; 74 02 4745 4722 mov CH, strict byte 001h ; b5 01 4746 4723 test cl, 00fh ; f6 c1 0f 4747 je short 037 d3h ; 74 024724 je short 03793h ; 74 02 4748 4725 db 0feh, 0c5h 4749 4726 ; inc ch ; fe c5 4750 4727 cmp byte [bp-006h], 000h ; 80 7e fa 00 4751 jne short 037 deh ; 75 054728 jne short 0379eh ; 75 05 4752 4729 shr cl, 004h ; c0 e9 04 4753 jmp short 037 e1h ; eb 034730 jmp short 037a1h ; eb 03 4754 4731 and cl, 00fh ; 80 e1 0f 4755 4732 mov byte [bp+011h], 000h ; c6 46 11 00 … … 4767 4744 mov word [bp+012h], ax ; 89 46 12 4768 4745 cmp cl, 003h ; 80 f9 03 4769 jc short 03 81dh ; 72 154770 jbe short 038 44h ; 76 3a4746 jc short 037ddh ; 72 15 4747 jbe short 03804h ; 76 3a 4771 4748 cmp cl, 005h ; 80 f9 05 4772 jc short 038 4bh ; 72 3c4773 jbe short 038 52h ; 76 414749 jc short 0380bh ; 72 3c 4750 jbe short 03812h ; 76 41 4774 4751 cmp cl, 00fh ; 80 f9 0f 4775 je short 038 60h ; 74 4a4752 je short 03820h ; 74 4a 4776 4753 cmp cl, 00eh ; 80 f9 0e 4777 je short 038 59h ; 74 3e4778 jmp short 038 67h ; eb 4a4754 je short 03819h ; 74 3e 4755 jmp short 03827h ; eb 4a 4779 4756 cmp cl, 002h ; 80 f9 02 4780 je short 03 83dh ; 74 1b4757 je short 037fdh ; 74 1b 4781 4758 cmp cl, 001h ; 80 f9 01 4782 je short 03 836h ; 74 0f4759 je short 037f6h ; 74 0f 4783 4760 test cl, cl ; 84 c9 4784 jne short 038 67h ; 75 3c4761 jne short 03827h ; 75 3c 4785 4762 mov word [bp+014h], strict word 00000h ; c7 46 14 00 00 4786 4763 mov byte [bp+013h], 000h ; c6 46 13 00 4787 jmp short 038 75h ; eb 3f4764 jmp short 03835h ; eb 3f 4788 4765 mov word [bp+014h], 02709h ; c7 46 14 09 27 4789 jmp short 038 75h ; eb 384766 jmp short 03835h ; eb 38 4790 4767 mov word [bp+014h], 04f0fh ; c7 46 14 0f 4f 4791 jmp short 038 75h ; eb 314768 jmp short 03835h ; eb 31 4792 4769 mov word [bp+014h], 04f09h ; c7 46 14 09 4f 4793 jmp short 038 75h ; eb 2a4770 jmp short 03835h ; eb 2a 4794 4771 mov word [bp+014h], 04f12h ; c7 46 14 12 4f 4795 jmp short 038 75h ; eb 234772 jmp short 03835h ; eb 23 4796 4773 mov word [bp+014h], 04f24h ; c7 46 14 24 4f 4797 jmp short 038 75h ; eb 1c4774 jmp short 03835h ; eb 1c 4798 4775 mov word [bp+014h], 0fe3fh ; c7 46 14 3f fe 4799 jmp short 038 75h ; eb 154776 jmp short 03835h ; eb 15 4800 4777 mov word [bp+014h], 0feffh ; c7 46 14 ff fe 4801 jmp short 038 75h ; eb 0e4778 jmp short 03835h ; eb 0e 4802 4779 push 00275h ; 68 75 02 4803 4780 push 002cdh ; 68 cd 02 4804 4781 push strict byte 00007h ; 6a 07 4805 call 01966h ; e8 f4 e04782 call 01966h ; e8 34 e1 4806 4783 add sp, strict byte 00006h ; 83 c4 06 4807 4784 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 4808 4785 mov al, cl ; 88 c8 4809 4786 xor ah, ah ; 30 e4 4810 call 03a d8h ; e8 57 024787 call 03a98h ; e8 57 02 4811 4788 mov word [bp+008h], ax ; 89 46 08 4812 jmp near 039 5dh ; e9 d6 004789 jmp near 0391dh ; e9 d6 00 4813 4790 mov byte [bp-006h], al ; 88 46 fa 4814 4791 cmp AL, strict byte 001h ; 3c 01 4815 jbe short 038 93h ; 76 054792 jbe short 03853h ; 76 05 4816 4793 mov word [bp+016h], si ; 89 76 16 4817 jmp short 038 d8h ; eb 454794 jmp short 03898h ; eb 45 4818 4795 mov ax, strict word 00010h ; b8 10 00 4819 call 016ach ; e8 13 de4796 call 016ach ; e8 53 de 4820 4797 cmp byte [bp-006h], 000h ; 80 7e fa 00 4821 jne short 038 a6h ; 75 074798 jne short 03866h ; 75 07 4822 4799 mov cl, al ; 88 c1 4823 4800 shr cl, 004h ; c0 e9 04 4824 jmp short 038 abh ; eb 054801 jmp short 0386bh ; eb 05 4825 4802 mov cl, al ; 88 c1 4826 4803 and cl, 00fh ; 80 e1 0f … … 4829 4806 xor ah, ah ; 30 e4 4830 4807 test cl, cl ; 84 c9 4831 je short 038 c5h ; 74 0d4808 je short 03885h ; 74 0d 4832 4809 cmp cl, 001h ; 80 f9 01 4833 jbe short 038 c2h ; 76 054810 jbe short 03882h ; 76 05 4834 4811 or ah, 002h ; 80 cc 02 4835 jmp short 038 c5h ; eb 034812 jmp short 03885h ; eb 03 4836 4813 or ah, 001h ; 80 cc 01 4837 4814 mov word [bp+016h], ax ; 89 46 16 4838 jmp near 035 fch ; e9 31 fd4815 jmp near 035bch ; e9 31 fd 4839 4816 cmp AL, strict byte 001h ; 3c 01 4840 jbe short 038 deh ; 76 0f4817 jbe short 0389eh ; 76 0f 4841 4818 mov word [bp+016h], si ; 89 76 16 4842 4819 mov ax, strict word 00001h ; b8 01 00 4843 call 02e 49h ; e8 71 f54820 call 02e09h ; e8 71 f5 4844 4821 mov word [bp+01ch], dx ; 89 56 1c 4845 jmp near 035 fch ; e9 1e fd4822 jmp near 035bch ; e9 1e fd 4846 4823 mov ax, word [bp+016h] ; 8b 46 16 4847 4824 xor ah, ah ; 30 e4 … … 4849 4826 mov word [bp+016h], ax ; 89 46 16 4850 4827 mov ax, strict word 00006h ; b8 06 00 4851 jmp near 03 227h ; e9 38 f94828 jmp near 031e7h ; e9 38 f9 4852 4829 mov byte [bp-006h], al ; 88 46 fa 4853 4830 mov bl, cl ; 88 cb 4854 4831 cmp AL, strict byte 001h ; 3c 01 4855 jnbe short 038 cfh ; 77 d74832 jnbe short 0388fh ; 77 d7 4856 4833 mov al, byte [bp-006h] ; 8a 46 fa 4857 4834 xor ah, ah ; 30 e4 4858 call 031 72h ; e8 72 f84835 call 03132h ; e8 72 f8 4859 4836 test ax, ax ; 85 c0 4860 jne short 03 907h ; 75 034861 jmp near 032 5ah ; e9 53 f94837 jne short 038c7h ; 75 03 4838 jmp near 0321ah ; e9 53 f9 4862 4839 cmp byte [bp-006h], 000h ; 80 7e fa 00 4863 je short 03 912h ; 74 054840 je short 038d2h ; 74 05 4864 4841 mov dx, 00091h ; ba 91 00 4865 jmp short 03 915h ; eb 034842 jmp short 038d5h ; eb 03 4866 4843 mov dx, 00090h ; ba 90 00 4867 4844 mov word [bp-012h], dx ; 89 56 ee 4868 4845 mov ax, strict word 00040h ; b8 40 00 4869 call 01650h ; e8 32 dd4846 call 01650h ; e8 72 dd 4870 4847 and AL, strict byte 00fh ; 24 0f 4871 4848 cmp bl, 002h ; 80 fb 02 4872 jc short 03 934h ; 72 0f4873 jbe short 039 40h ; 76 194849 jc short 038f4h ; 72 0f 4850 jbe short 03900h ; 76 19 4874 4851 cmp bl, 004h ; 80 fb 04 4875 je short 03 93ch ; 74 104852 je short 038fch ; 74 10 4876 4853 cmp bl, 003h ; 80 fb 03 4877 je short 039 44h ; 74 134878 jmp near 03 219h ; e9 e5 f84854 je short 03904h ; 74 13 4855 jmp near 031d9h ; e9 e5 f8 4879 4856 cmp bl, 001h ; 80 fb 01 4880 je short 03 93ch ; 74 034881 jmp near 03 219h ; e9 dd f84857 je short 038fch ; 74 03 4858 jmp near 031d9h ; e9 dd f8 4882 4859 or AL, strict byte 090h ; 0c 90 4883 jmp short 039 46h ; eb 064860 jmp short 03906h ; eb 06 4884 4861 or AL, strict byte 070h ; 0c 70 4885 jmp short 039 46h ; eb 024862 jmp short 03906h ; eb 02 4886 4863 or AL, strict byte 010h ; 0c 10 4887 4864 mov bl, al ; 88 c3 … … 4889 4866 mov dx, word [bp-012h] ; 8b 56 ee 4890 4867 mov ax, strict word 00040h ; b8 40 00 4891 call 0165eh ; e8 0b dd4868 call 0165eh ; e8 4b dd 4892 4869 xor al, al ; 30 c0 4893 4870 mov byte [bp+017h], al ; 88 46 17 4894 4871 xor ah, ah ; 30 e4 4895 call 02e 49h ; e8 ec f44872 call 02e09h ; e8 ec f4 4896 4873 and byte [bp+01ch], 0feh ; 80 66 1c fe 4897 jmp near 035 fch ; e9 98 fc4874 jmp near 035bch ; e9 98 fc 4898 4875 mov byte [bp-006h], al ; 88 46 fa 4899 4876 mov ch, ah ; 88 e5 … … 4906 4883 mov byte [bp-008h], bl ; 88 5e f8 4907 4884 cmp AL, strict byte 001h ; 3c 01 4908 jbe short 039 83h ; 76 034909 jmp near 038 cfh ; e9 4c ff4885 jbe short 03943h ; 76 03 4886 jmp near 0388fh ; e9 4c ff 4910 4887 mov al, byte [bp-006h] ; 8a 46 fa 4911 4888 xor ah, ah ; 30 e4 4912 call 031 72h ; e8 e7 f74889 call 03132h ; e8 e7 f7 4913 4890 test ax, ax ; 85 c0 4914 jne short 039 92h ; 75 034915 jmp near 032 5ah ; e9 c8 f84891 jne short 03952h ; 75 03 4892 jmp near 0321ah ; e9 c8 f8 4916 4893 mov dl, byte [bp-006h] ; 8a 56 fa 4917 4894 xor dh, dh ; 30 f6 4918 4895 mov ax, dx ; 89 d0 4919 call 02f a5h ; e8 09 f64896 call 02f65h ; e8 09 f6 4920 4897 test ax, ax ; 85 c0 4921 jne short 039 bah ; 75 1a4898 jne short 0397ah ; 75 1a 4922 4899 mov ax, dx ; 89 d0 4923 call 030 79h ; e8 d4 f64900 call 03039h ; e8 d4 f6 4924 4901 test ax, ax ; 85 c0 4925 jne short 039 bah ; 75 114902 jne short 0397ah ; 75 11 4926 4903 mov ax, word [bp+016h] ; 8b 46 16 4927 4904 xor ah, ah ; 30 e4 … … 4929 4906 mov word [bp+016h], ax ; 89 46 16 4930 4907 mov ax, strict word 0000ch ; b8 0c 00 4931 jmp near 03 227h ; e9 6d f84908 jmp near 031e7h ; e9 6d f8 4932 4909 mov ax, strict word 00010h ; b8 10 00 4933 call 016ach ; e8 ec dc4910 call 016ach ; e8 2c dd 4934 4911 cmp byte [bp-006h], 000h ; 80 7e fa 00 4935 jne short 039 cdh ; 75 074912 jne short 0398dh ; 75 07 4936 4913 mov cl, al ; 88 c1 4937 4914 shr cl, 004h ; c0 e9 04 4938 jmp short 039 d2h ; eb 054915 jmp short 03992h ; eb 05 4939 4916 mov cl, al ; 88 c1 4940 4917 and cl, 00fh ; 80 e1 0f 4941 4918 cmp byte [bp-006h], 000h ; 80 7e fa 00 4942 je short 039 ddh ; 74 054919 je short 0399dh ; 74 05 4943 4920 mov dx, 00091h ; ba 91 00 4944 jmp short 039 e0h ; eb 034921 jmp short 039a0h ; eb 03 4945 4922 mov dx, 00090h ; ba 90 00 4946 4923 mov word [bp-012h], dx ; 89 56 ee 4947 4924 mov ax, strict word 00040h ; b8 40 00 4948 call 01650h ; e8 67 dc4925 call 01650h ; e8 a7 dc 4949 4926 and AL, strict byte 00fh ; 24 0f 4950 4927 cmp cl, 003h ; 80 f9 03 4951 jc short 03 a0ch ; 72 1c4928 jc short 039cch ; 72 1c 4952 4929 mov ah, al ; 88 c4 4953 4930 or ah, 090h ; 80 cc 90 4954 4931 cmp cl, 003h ; 80 f9 03 4955 jbe short 03a 43h ; 76 494932 jbe short 03a03h ; 76 49 4956 4933 mov dl, al ; 88 c2 4957 4934 or dl, 010h ; 80 ca 10 4958 4935 cmp cl, 005h ; 80 f9 05 4959 je short 03a 50h ; 74 4c4936 je short 03a10h ; 74 4c 4960 4937 cmp cl, 004h ; 80 f9 04 4961 je short 03a 56h ; 74 4d4962 jmp near 03a 87h ; e9 7b 004938 je short 03a16h ; 74 4d 4939 jmp near 03a47h ; e9 7b 00 4963 4940 cmp cl, 002h ; 80 f9 02 4964 je short 03 a25h ; 74 144941 je short 039e5h ; 74 14 4965 4942 cmp cl, 001h ; 80 f9 01 4966 jne short 03a 54h ; 75 3e4943 jne short 03a14h ; 75 3e 4967 4944 cmp byte [bp-008h], 027h ; 80 7e f8 27 4968 jne short 03a 54h ; 75 384945 jne short 03a14h ; 75 38 4969 4946 cmp ch, 009h ; 80 fd 09 4970 jne short 03a 6ah ; 75 494947 jne short 03a2ah ; 75 49 4971 4948 or AL, strict byte 090h ; 0c 90 4972 jmp short 03a 6ah ; eb 454949 jmp short 03a2ah ; eb 45 4973 4950 cmp byte [bp-008h], 027h ; 80 7e f8 27 4974 jne short 03 a34h ; 75 094951 jne short 039f4h ; 75 09 4975 4952 cmp ch, 009h ; 80 fd 09 4976 jne short 03 a34h ; 75 044953 jne short 039f4h ; 75 04 4977 4954 or AL, strict byte 070h ; 0c 70 4978 jmp short 03a 6ah ; eb 364955 jmp short 03a2ah ; eb 36 4979 4956 cmp byte [bp-008h], 04fh ; 80 7e f8 4f 4980 jne short 03a 87h ; 75 4d4957 jne short 03a47h ; 75 4d 4981 4958 cmp ch, 00fh ; 80 fd 0f 4982 jne short 03a 87h ; 75 484959 jne short 03a47h ; 75 48 4983 4960 or AL, strict byte 010h ; 0c 10 4984 jmp short 03a 87h ; eb 444961 jmp short 03a47h ; eb 44 4985 4962 cmp byte [bp-008h], 04fh ; 80 7e f8 4f 4986 jne short 03a 87h ; 75 3e4963 jne short 03a47h ; 75 3e 4987 4964 cmp ch, 009h ; 80 fd 09 4988 je short 03a 52h ; 74 044989 jmp short 03a 87h ; eb 374990 jmp short 03a 6ch ; eb 1a4965 je short 03a12h ; 74 04 4966 jmp short 03a47h ; eb 37 4967 jmp short 03a2ch ; eb 1a 4991 4968 mov al, ah ; 88 e0 4992 jmp short 03a 87h ; eb 314969 jmp short 03a47h ; eb 31 4993 4970 cmp byte [bp-008h], 04fh ; 80 7e f8 4f 4994 jne short 03a 87h ; 75 2b4971 jne short 03a47h ; 75 2b 4995 4972 cmp ch, 009h ; 80 fd 09 4996 jne short 03a 63h ; 75 024997 jmp short 03a 52h ; eb ef4973 jne short 03a23h ; 75 02 4974 jmp short 03a12h ; eb ef 4998 4975 cmp ch, 012h ; 80 fd 12 4999 jne short 03a 87h ; 75 1f4976 jne short 03a47h ; 75 1f 5000 4977 mov al, dl ; 88 d0 5001 jmp short 03a 87h ; eb 1b4978 jmp short 03a47h ; eb 1b 5002 4979 cmp byte [bp-008h], 04fh ; 80 7e f8 4f 5003 jne short 03a 87h ; 75 154980 jne short 03a47h ; 75 15 5004 4981 cmp ch, 009h ; 80 fd 09 5005 jne short 03a 79h ; 75 025006 jmp short 03a 52h ; eb d94982 jne short 03a39h ; 75 02 4983 jmp short 03a12h ; eb d9 5007 4984 cmp ch, 012h ; 80 fd 12 5008 jne short 03a 80h ; 75 025009 jmp short 03a 68h ; eb e84985 jne short 03a40h ; 75 02 4986 jmp short 03a28h ; eb e8 5010 4987 cmp ch, 024h ; 80 fd 24 5011 jne short 03a 87h ; 75 024988 jne short 03a47h ; 75 02 5012 4989 or AL, strict byte 0d0h ; 0c d0 5013 4990 mov dl, al ; 88 c2 … … 5015 4992 sar dx, 004h ; c1 fa 04 5016 4993 test dl, 001h ; f6 c2 01 5017 jne short 03a 96h ; 75 035018 jmp near 039 a9h ; e9 13 ff4994 jne short 03a56h ; 75 03 4995 jmp near 03969h ; e9 13 ff 5019 4996 mov bl, al ; 88 c3 5020 4997 xor bh, bh ; 30 ff 5021 4998 mov dx, word [bp-012h] ; 8b 56 ee 5022 4999 mov ax, strict word 00040h ; b8 40 00 5023 call 0165eh ; e8 bb db5000 call 0165eh ; e8 fb db 5024 5001 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 5025 5002 mov al, cl ; 88 c8 5026 5003 xor ah, ah ; 30 e4 5027 call 03a d8h ; e8 29 005004 call 03a98h ; e8 29 00 5028 5005 mov word [bp+008h], ax ; 89 46 08 5029 jmp near 039 53h ; e9 9e fe5006 jmp near 03913h ; e9 9e fe 5030 5007 mov bx, 00da0h ; bb a0 0d 5031 5008 mov cx, ds ; 8c d9 5032 5009 mov ax, strict word 00004h ; b8 04 00 5033 call 01923h ; e8 63 de5010 call 01923h ; e8 a3 de 5034 5011 mov ax, word [bp+016h] ; 8b 46 16 5035 5012 shr ax, 008h ; c1 e8 08 … … 5038 5015 push 002e2h ; 68 e2 02 5039 5016 push strict byte 00004h ; 6a 04 5040 call 01966h ; e8 94 de5017 call 01966h ; e8 d4 de 5041 5018 add sp, strict byte 00008h ; 83 c4 08 5042 jmp near 03 219h ; e9 41 f75043 get_floppy_dpt_: ; 0xf3a d8 LB 0x305019 jmp near 031d9h ; e9 41 f7 5020 get_floppy_dpt_: ; 0xf3a98 LB 0x30 5044 5021 push bx ; 53 5045 5022 push dx ; 52 … … 5048 5025 mov dl, al ; 88 c2 5049 5026 xor ax, ax ; 31 c0 5050 jmp short 03a e9h ; eb 065027 jmp short 03aa9h ; eb 06 5051 5028 inc ax ; 40 5052 5029 cmp ax, strict word 00007h ; 3d 07 00 5053 jnc short 03 b01h ; 73 185030 jnc short 03ac1h ; 73 18 5054 5031 mov bx, ax ; 89 c3 5055 5032 add bx, ax ; 01 c3 5056 5033 cmp dl, byte [word bx+0005bh] ; 3a 97 5b 00 5057 jne short 03a e3h ; 75 f05034 jne short 03aa3h ; 75 f0 5058 5035 mov al, byte [word bx+0005ch] ; 8a 87 5c 00 5059 5036 xor ah, ah ; 30 e4 5060 5037 imul ax, ax, strict byte 0000dh ; 6b c0 0d 5061 5038 add ax, strict word 00000h ; 05 00 00 5062 jmp short 03 b04h ; eb 035039 jmp short 03ac4h ; eb 03 5063 5040 mov ax, strict word 00041h ; b8 41 00 5064 5041 pop bp ; 5d … … 5066 5043 pop bx ; 5b 5067 5044 retn ; c3 5068 dummy_soft_reset_: ; 0xf3 b08 LB 0x75045 dummy_soft_reset_: ; 0xf3ac8 LB 0x7 5069 5046 push bp ; 55 5070 5047 mov bp, sp ; 89 e5 … … 5072 5049 pop bp ; 5d 5073 5050 retn ; c3 5074 _cdemu_init: ; 0xf3 b0f LB 0x185051 _cdemu_init: ; 0xf3acf LB 0x18 5075 5052 push bp ; 55 5076 5053 mov bp, sp ; 89 e5 5077 5054 mov dx, strict word 0000eh ; ba 0e 00 5078 5055 mov ax, strict word 00040h ; b8 40 00 5079 call 0166ch ; e8 51 db5056 call 0166ch ; e8 91 db 5080 5057 xor bx, bx ; 31 db 5081 5058 mov dx, 00366h ; ba 66 03 5082 call 0165eh ; e8 3b db5059 call 0165eh ; e8 7b db 5083 5060 mov sp, bp ; 89 ec 5084 5061 pop bp ; 5d 5085 5062 retn ; c3 5086 _cdemu_isactive: ; 0xf3 b27 LB 0x165063 _cdemu_isactive: ; 0xf3ae7 LB 0x16 5087 5064 push bp ; 55 5088 5065 mov bp, sp ; 89 e5 5089 5066 mov dx, strict word 0000eh ; ba 0e 00 5090 5067 mov ax, strict word 00040h ; b8 40 00 5091 call 0166ch ; e8 39 db5068 call 0166ch ; e8 79 db 5092 5069 mov dx, 00366h ; ba 66 03 5093 call 01650h ; e8 17 db5070 call 01650h ; e8 57 db 5094 5071 mov sp, bp ; 89 ec 5095 5072 pop bp ; 5d 5096 5073 retn ; c3 5097 _cdemu_emulated_drive: ; 0xf3 b3d LB 0x165074 _cdemu_emulated_drive: ; 0xf3afd LB 0x16 5098 5075 push bp ; 55 5099 5076 mov bp, sp ; 89 e5 5100 5077 mov dx, strict word 0000eh ; ba 0e 00 5101 5078 mov ax, strict word 00040h ; b8 40 00 5102 call 0166ch ; e8 23 db5079 call 0166ch ; e8 63 db 5103 5080 mov dx, 00368h ; ba 68 03 5104 call 01650h ; e8 01 db5081 call 01650h ; e8 41 db 5105 5082 mov sp, bp ; 89 ec 5106 5083 pop bp ; 5d 5107 5084 retn ; c3 5108 _int13_eltorito: ; 0xf3b 53 LB 0x1905085 _int13_eltorito: ; 0xf3b13 LB 0x190 5109 5086 push bp ; 55 5110 5087 mov bp, sp ; 89 e5 … … 5113 5090 mov dx, strict word 0000eh ; ba 0e 00 5114 5091 mov ax, strict word 00040h ; b8 40 00 5115 call 0166ch ; e8 0b db5092 call 0166ch ; e8 4b db 5116 5093 mov si, 00366h ; be 66 03 5117 5094 mov di, ax ; 89 c7 … … 5119 5096 shr ax, 008h ; c1 e8 08 5120 5097 cmp ax, strict word 0004bh ; 3d 4b 00 5121 jc short 03b 7bh ; 72 0a5122 jbe short 03b a2h ; 76 2f5098 jc short 03b3bh ; 72 0a 5099 jbe short 03b62h ; 76 2f 5123 5100 cmp ax, strict word 0004dh ; 3d 4d 00 5124 jbe short 03b 80h ; 76 085125 jmp near 03c a7h ; e9 2c 015101 jbe short 03b40h ; 76 08 5102 jmp near 03c67h ; e9 2c 01 5126 5103 cmp ax, strict word 0004ah ; 3d 4a 00 5127 jne short 03b 9fh ; 75 1f5104 jne short 03b5fh ; 75 1f 5128 5105 mov bx, 00da0h ; bb a0 0d 5129 5106 mov cx, ds ; 8c d9 5130 5107 mov ax, strict word 00004h ; b8 04 00 5131 call 01923h ; e8 98 dd5108 call 01923h ; e8 d8 dd 5132 5109 push word [bp+016h] ; ff 76 16 5133 5110 push 002fch ; 68 fc 02 5134 5111 push 0030bh ; 68 0b 03 5135 5112 push strict byte 00004h ; 6a 04 5136 call 01966h ; e8 cd dd5113 call 01966h ; e8 0d de 5137 5114 add sp, strict byte 00008h ; 83 c4 08 5138 jmp near 03c c2h ; e9 23 015139 jmp near 03c a7h ; e9 05 015115 jmp near 03c82h ; e9 23 01 5116 jmp near 03c67h ; e9 05 01 5140 5117 mov dx, word [bp+00ah] ; 8b 56 0a 5141 5118 mov ax, word [bp+004h] ; 8b 46 04 5142 5119 mov bx, strict word 00013h ; bb 13 00 5143 call 0165eh ; e8 b0 da5120 call 0165eh ; e8 f0 da 5144 5121 mov es, di ; 8e c7 5145 5122 mov bl, byte [es:si+001h] ; 26 8a 5c 01 … … 5148 5125 inc dx ; 42 5149 5126 mov ax, word [bp+004h] ; 8b 46 04 5150 call 0165eh ; e8 9e da5127 call 0165eh ; e8 de da 5151 5128 mov es, di ; 8e c7 5152 5129 mov bl, byte [es:si+002h] ; 26 8a 5c 02 … … 5156 5133 inc dx ; 42 5157 5134 mov ax, word [bp+004h] ; 8b 46 04 5158 call 0165eh ; e8 8b da5135 call 0165eh ; e8 cb da 5159 5136 mov es, di ; 8e c7 5160 5137 mov bl, byte [es:si+003h] ; 26 8a 5c 03 … … 5163 5140 add dx, strict byte 00003h ; 83 c2 03 5164 5141 mov ax, word [bp+004h] ; 8b 46 04 5165 call 0165eh ; e8 77 da5142 call 0165eh ; e8 b7 da 5166 5143 mov es, di ; 8e c7 5167 5144 mov bx, word [es:si+008h] ; 26 8b 5c 08 … … 5170 5147 add dx, strict byte 00004h ; 83 c2 04 5171 5148 mov ax, word [bp+004h] ; 8b 46 04 5172 call 0169ah ; e8 9d da5149 call 0169ah ; e8 dd da 5173 5150 mov es, di ; 8e c7 5174 5151 mov bx, word [es:si+004h] ; 26 8b 5c 04 … … 5176 5153 add dx, strict byte 00008h ; 83 c2 08 5177 5154 mov ax, word [bp+004h] ; 8b 46 04 5178 call 0167ah ; e8 6b da5155 call 0167ah ; e8 ab da 5179 5156 mov es, di ; 8e c7 5180 5157 mov bx, word [es:si+006h] ; 26 8b 5c 06 … … 5182 5159 add dx, strict byte 0000ah ; 83 c2 0a 5183 5160 mov ax, word [bp+004h] ; 8b 46 04 5184 call 0167ah ; e8 59 da5161 call 0167ah ; e8 99 da 5185 5162 mov es, di ; 8e c7 5186 5163 mov bx, word [es:si+00ch] ; 26 8b 5c 0c … … 5188 5165 add dx, strict byte 0000ch ; 83 c2 0c 5189 5166 mov ax, word [bp+004h] ; 8b 46 04 5190 call 0167ah ; e8 47 da5167 call 0167ah ; e8 87 da 5191 5168 mov es, di ; 8e c7 5192 5169 mov bx, word [es:si+00eh] ; 26 8b 5c 0e … … 5194 5171 add dx, strict byte 0000eh ; 83 c2 0e 5195 5172 mov ax, word [bp+004h] ; 8b 46 04 5196 call 0167ah ; e8 35 da5173 call 0167ah ; e8 75 da 5197 5174 mov es, di ; 8e c7 5198 5175 mov bl, byte [es:si+012h] ; 26 8a 5c 12 … … 5201 5178 add dx, strict byte 00010h ; 83 c2 10 5202 5179 mov ax, word [bp+004h] ; 8b 46 04 5203 call 0165eh ; e8 05 da5180 call 0165eh ; e8 45 da 5204 5181 mov es, di ; 8e c7 5205 5182 mov bl, byte [es:si+014h] ; 26 8a 5c 14 … … 5208 5185 add dx, strict byte 00011h ; 83 c2 11 5209 5186 mov ax, word [bp+004h] ; 8b 46 04 5210 call 0165eh ; e8 f1 d95187 call 0165eh ; e8 31 da 5211 5188 mov es, di ; 8e c7 5212 5189 mov bl, byte [es:si+010h] ; 26 8a 5c 10 … … 5215 5192 add dx, strict byte 00012h ; 83 c2 12 5216 5193 mov ax, word [bp+004h] ; 8b 46 04 5217 call 0165eh ; e8 dd d95194 call 0165eh ; e8 1d da 5218 5195 test byte [bp+016h], 0ffh ; f6 46 16 ff 5219 jne short 03c 8dh ; 75 065196 jne short 03c4dh ; 75 06 5220 5197 mov es, di ; 8e c7 5221 5198 mov byte [es:si], 000h ; 26 c6 04 00 … … 5224 5201 mov dx, strict word 00074h ; ba 74 00 5225 5202 mov ax, strict word 00040h ; b8 40 00 5226 call 0165eh ; e8 c2 d95203 call 0165eh ; e8 02 da 5227 5204 and byte [bp+01ch], 0feh ; 80 66 1c fe 5228 5205 lea sp, [bp-004h] ; 8d 66 fc … … 5234 5211 mov cx, ds ; 8c d9 5235 5212 mov ax, strict word 00004h ; b8 04 00 5236 call 01923h ; e8 71 dc5213 call 01923h ; e8 b1 dc 5237 5214 mov ax, word [bp+016h] ; 8b 46 16 5238 5215 shr ax, 008h ; c1 e8 08 … … 5240 5217 push 002fch ; 68 fc 02 5241 5218 push 00333h ; 68 33 03 5242 jmp near 03b 94h ; e9 d2 fe5219 jmp near 03b54h ; e9 d2 fe 5243 5220 mov ax, word [bp+016h] ; 8b 46 16 5244 5221 xor ah, ah ; 30 e4 … … 5250 5227 mov dx, strict word 00074h ; ba 74 00 5251 5228 mov ax, strict word 00040h ; b8 40 00 5252 call 0165eh ; e8 81 d95229 call 0165eh ; e8 c1 d9 5253 5230 or byte [bp+01ch], 001h ; 80 4e 1c 01 5254 jmp short 03c a0h ; eb bd5255 device_is_cdrom_: ; 0xf3c e3 LB 0x355231 jmp short 03c60h ; eb bd 5232 device_is_cdrom_: ; 0xf3ca3 LB 0x35 5256 5233 push bp ; 55 5257 5234 mov bp, sp ; 89 e5 … … 5261 5238 mov dx, strict word 0000eh ; ba 0e 00 5262 5239 mov ax, strict word 00040h ; b8 40 00 5263 call 0166ch ; e8 79 d95240 call 0166ch ; e8 b9 d9 5264 5241 cmp bl, 010h ; 80 fb 10 5265 jc short 03c fch ; 72 045242 jc short 03cbch ; 72 04 5266 5243 xor ax, ax ; 31 c0 5267 jmp short 03 d11h ; eb 155244 jmp short 03cd1h ; eb 15 5268 5245 xor bh, bh ; 30 ff 5269 5246 imul bx, bx, strict byte 0001ch ; 6b db 1c … … 5271 5248 add bx, 00122h ; 81 c3 22 01 5272 5249 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 5273 jne short 03c f8h ; 75 ea5250 jne short 03cb8h ; 75 ea 5274 5251 mov ax, strict word 00001h ; b8 01 00 5275 5252 lea sp, [bp-004h] ; 8d 66 fc … … 5278 5255 pop bp ; 5d 5279 5256 retn ; c3 5280 cdrom_boot_: ; 0xf3 d18 LB 0x4345257 cdrom_boot_: ; 0xf3cd8 LB 0x434 5281 5258 push bp ; 55 5282 5259 mov bp, sp ; 89 e5 … … 5289 5266 mov dx, strict word 0000eh ; ba 0e 00 5290 5267 mov ax, strict word 00040h ; b8 40 00 5291 call 0166ch ; e8 3f d95268 call 0166ch ; e8 7f d9 5292 5269 mov word [bp-01ah], ax ; 89 46 e6 5293 5270 mov si, 00366h ; be 66 03 … … 5296 5273 mov word [bp-012h], ax ; 89 46 ee 5297 5274 mov byte [bp-00ch], 000h ; c6 46 f4 00 5298 jmp short 03d 4dh ; eb 095275 jmp short 03d0dh ; eb 09 5299 5276 inc byte [bp-00ch] ; fe 46 f4 5300 5277 cmp byte [bp-00ch], 010h ; 80 7e f4 10 5301 jnc short 03d 59h ; 73 0c5278 jnc short 03d19h ; 73 0c 5302 5279 mov al, byte [bp-00ch] ; 8a 46 f4 5303 5280 xor ah, ah ; 30 e4 5304 call 03c e3h ; e8 8e ff5281 call 03ca3h ; e8 8e ff 5305 5282 test ax, ax ; 85 c0 5306 je short 03d 44h ; 74 eb5283 je short 03d04h ; 74 eb 5307 5284 cmp byte [bp-00ch], 010h ; 80 7e f4 10 5308 jc short 03d 65h ; 72 065285 jc short 03d25h ; 72 06 5309 5286 mov ax, strict word 00002h ; b8 02 00 5310 jmp near 040 e9h ; e9 84 035287 jmp near 040a9h ; e9 84 03 5311 5288 mov cx, strict word 0000ch ; b9 0c 00 5312 5289 xor bx, bx ; 31 db 5313 5290 mov dx, ss ; 8c d2 5314 5291 lea ax, [bp-026h] ; 8d 46 da 5315 call 0 a03ah ; e8 c8 625292 call 09fbah ; e8 88 62 5316 5293 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5317 5294 mov ax, strict word 00011h ; b8 11 00 … … 5330 5307 mov word [es:bx+010h], 00800h ; 26 c7 47 10 00 08 5331 5308 mov byte [bp-00eh], 000h ; c6 46 f2 00 5332 jmp short 03d b0h ; eb 095309 jmp short 03d70h ; eb 09 5333 5310 inc byte [bp-00eh] ; fe 46 f2 5334 5311 cmp byte [bp-00eh], 004h ; 80 7e f2 04 5335 jnbe short 03d ech ; 77 3c5312 jnbe short 03dach ; 77 3c 5336 5313 mov al, byte [bp-00ch] ; 8a 46 f4 5337 5314 xor ah, ah ; 30 e4 … … 5357 5334 call word [word di+0006ah] ; ff 95 6a 00 5358 5335 test ax, ax ; 85 c0 5359 jne short 03d a7h ; 75 bb5336 jne short 03d67h ; 75 bb 5360 5337 test ax, ax ; 85 c0 5361 je short 03d f6h ; 74 065338 je short 03db6h ; 74 06 5362 5339 mov ax, strict word 00003h ; b8 03 00 5363 jmp near 040 e9h ; e9 f3 025340 jmp near 040a9h ; e9 f3 02 5364 5341 cmp byte [bp-00826h], 000h ; 80 be da f7 00 5365 je short 03 e03h ; 74 065342 je short 03dc3h ; 74 06 5366 5343 mov ax, strict word 00004h ; b8 04 00 5367 jmp near 040 e9h ; e9 e6 025344 jmp near 040a9h ; e9 e6 02 5368 5345 xor di, di ; 31 ff 5369 jmp short 03 e0dh ; eb 065346 jmp short 03dcdh ; eb 06 5370 5347 inc di ; 47 5371 5348 cmp di, strict byte 00005h ; 83 ff 05 5372 jnc short 03 e1dh ; 73 105349 jnc short 03dddh ; 73 10 5373 5350 mov al, byte [bp+di-00825h] ; 8a 83 db f7 5374 5351 cmp al, byte [di+00da8h] ; 3a 85 a8 0d 5375 je short 03 e07h ; 74 f05352 je short 03dc7h ; 74 f0 5376 5353 mov ax, strict word 00005h ; b8 05 00 5377 jmp near 040 e9h ; e9 cc 025354 jmp near 040a9h ; e9 cc 02 5378 5355 xor di, di ; 31 ff 5379 jmp short 03 e27h ; eb 065356 jmp short 03de7h ; eb 06 5380 5357 inc di ; 47 5381 5358 cmp di, strict byte 00017h ; 83 ff 17 5382 jnc short 03 e37h ; 73 105359 jnc short 03df7h ; 73 10 5383 5360 mov al, byte [bp+di-0081fh] ; 8a 83 e1 f7 5384 5361 cmp al, byte [di+00daeh] ; 3a 85 ae 0d 5385 je short 03 e21h ; 74 f05362 je short 03de1h ; 74 f0 5386 5363 mov ax, strict word 00006h ; b8 06 00 5387 jmp near 040 e9h ; e9 b2 025364 jmp near 040a9h ; e9 b2 02 5388 5365 mov ax, word [bp-007dfh] ; 8b 86 21 f8 5389 5366 mov dx, word [bp-007ddh] ; 8b 96 23 f8 … … 5420 5397 call word [word di+0006ah] ; ff 95 6a 00 5421 5398 test ax, ax ; 85 c0 5422 je short 03e 99h ; 74 065399 je short 03e59h ; 74 06 5423 5400 mov ax, strict word 00007h ; b8 07 00 5424 jmp near 040 e9h ; e9 50 025401 jmp near 040a9h ; e9 50 02 5425 5402 cmp byte [bp-00826h], 001h ; 80 be da f7 01 5426 je short 03e a6h ; 74 065403 je short 03e66h ; 74 06 5427 5404 mov ax, strict word 00008h ; b8 08 00 5428 jmp near 040 e9h ; e9 43 025405 jmp near 040a9h ; e9 43 02 5429 5406 cmp byte [bp-00825h], 000h ; 80 be db f7 00 5430 je short 03e b3h ; 74 065407 je short 03e73h ; 74 06 5431 5408 mov ax, strict word 00009h ; b8 09 00 5432 jmp near 040 e9h ; e9 36 025409 jmp near 040a9h ; e9 36 02 5433 5410 cmp byte [bp-00808h], 055h ; 80 be f8 f7 55 5434 je short 03e c0h ; 74 065411 je short 03e80h ; 74 06 5435 5412 mov ax, strict word 0000ah ; b8 0a 00 5436 jmp near 040 e9h ; e9 29 025413 jmp near 040a9h ; e9 29 02 5437 5414 cmp byte [bp-00807h], 0aah ; 80 be f9 f7 aa 5438 jne short 03e bah ; 75 f35415 jne short 03e7ah ; 75 f3 5439 5416 cmp byte [bp-00806h], 088h ; 80 be fa f7 88 5440 je short 03e d4h ; 74 065417 je short 03e94h ; 74 06 5441 5418 mov ax, strict word 0000bh ; b8 0b 00 5442 jmp near 040 e9h ; e9 15 025419 jmp near 040a9h ; e9 15 02 5443 5420 mov al, byte [bp-00805h] ; 8a 86 fb f7 5444 5421 mov es, [bp-016h] ; 8e 46 ea 5445 5422 mov byte [es:si+001h], al ; 26 88 44 01 5446 5423 cmp byte [bp-00805h], 000h ; 80 be fb f7 00 5447 jne short 03e edh ; 75 075424 jne short 03eadh ; 75 07 5448 5425 mov byte [es:si+002h], 0e0h ; 26 c6 44 02 e0 5449 jmp short 03 f00h ; eb 135426 jmp short 03ec0h ; eb 13 5450 5427 cmp byte [bp-00805h], 004h ; 80 be fb f7 04 5451 jnc short 03e fbh ; 73 075428 jnc short 03ebbh ; 73 07 5452 5429 mov byte [es:si+002h], 000h ; 26 c6 44 02 00 5453 jmp short 03 f00h ; eb 055430 jmp short 03ec0h ; eb 05 5454 5431 mov byte [es:si+002h], 080h ; 26 c6 44 02 80 5455 5432 mov bl, byte [bp-00ch] ; 8a 5e f4 … … 5470 5447 mov word [bp-010h], ax ; 89 46 f0 5471 5448 test ax, ax ; 85 c0 5472 jne short 03 f2fh ; 75 055449 jne short 03eefh ; 75 05 5473 5450 mov word [bp-010h], 007c0h ; c7 46 f0 c0 07 5474 5451 mov ax, word [bp-010h] ; 8b 46 f0 … … 5479 5456 mov word [es:si+00eh], di ; 26 89 7c 0e 5480 5457 test di, di ; 85 ff 5481 je short 03f 51h ; 74 065458 je short 03f11h ; 74 06 5482 5459 cmp di, 00400h ; 81 ff 00 04 5483 jbe short 03f 57h ; 76 065460 jbe short 03f17h ; 76 06 5484 5461 mov ax, strict word 0000ch ; b8 0c 00 5485 jmp near 040 e9h ; e9 92 015462 jmp near 040a9h ; e9 92 01 5486 5463 mov ax, word [bp-007feh] ; 8b 86 02 f8 5487 5464 mov dx, word [bp-007fch] ; 8b 96 04 f8 … … 5527 5504 sal ax, 1 ; d1 e0 5528 5505 rcl di, 1 ; d1 d7 5529 loop 03f cbh ; e2 fa5506 loop 03f8bh ; e2 fa 5530 5507 push di ; 57 5531 5508 push ax ; 50 … … 5542 5519 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00 5543 5520 test ax, ax ; 85 c0 5544 je short 03f ffh ; 74 065521 je short 03fbfh ; 74 06 5545 5522 mov ax, strict word 0000dh ; b8 0d 00 5546 jmp near 040 e9h ; e9 ea 005523 jmp near 040a9h ; e9 ea 00 5547 5524 mov es, [bp-016h] ; 8e 46 ea 5548 5525 mov al, byte [es:si+001h] ; 26 8a 44 01 5549 5526 cmp AL, strict byte 002h ; 3c 02 5550 jc short 0 4017h ; 72 0d5551 jbe short 0 4032h ; 76 265527 jc short 03fd7h ; 72 0d 5528 jbe short 03ff2h ; 76 26 5552 5529 cmp AL, strict byte 004h ; 3c 04 5553 je short 040 42h ; 74 325530 je short 04002h ; 74 32 5554 5531 cmp AL, strict byte 003h ; 3c 03 5555 je short 0 403ah ; 74 265556 jmp near 040 8eh ; e9 77 005532 je short 03ffah ; 74 26 5533 jmp near 0404eh ; e9 77 00 5557 5534 cmp AL, strict byte 001h ; 3c 01 5558 jne short 040 8eh ; 75 735535 jne short 0404eh ; 75 73 5559 5536 mov es, [bp-016h] ; 8e 46 ea 5560 5537 mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00 5561 5538 mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00 5562 5539 mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00 5563 jmp short 040 8eh ; eb 5c5540 jmp short 0404eh ; eb 5c 5564 5541 mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00 5565 jmp short 0 4024h ; eb ea5542 jmp short 03fe4h ; eb ea 5566 5543 mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00 5567 jmp short 0 4024h ; eb e25544 jmp short 03fe4h ; eb e2 5568 5545 mov dx, 001c4h ; ba c4 01 5569 5546 mov ax, word [bp-010h] ; 8b 46 f0 5570 call 01650h ; e8 05 d65547 call 01650h ; e8 45 d6 5571 5548 and AL, strict byte 03fh ; 24 3f 5572 5549 xor ah, ah ; 30 e4 … … 5575 5552 mov dx, 001c4h ; ba c4 01 5576 5553 mov ax, word [bp-010h] ; 8b 46 f0 5577 call 01650h ; e8 f1 d55554 call 01650h ; e8 31 d6 5578 5555 xor ah, ah ; 30 e4 5579 5556 mov bx, ax ; 89 c3 … … 5581 5558 mov dx, 001c5h ; ba c5 01 5582 5559 mov ax, word [bp-010h] ; 8b 46 f0 5583 call 01650h ; e8 e1 d55560 call 01650h ; e8 21 d6 5584 5561 xor ah, ah ; 30 e4 5585 5562 add ax, bx ; 01 d8 … … 5589 5566 mov dx, 001c3h ; ba c3 01 5590 5567 mov ax, word [bp-010h] ; 8b 46 f0 5591 call 01650h ; e8 cc d55568 call 01650h ; e8 0c d6 5592 5569 xor ah, ah ; 30 e4 5593 5570 inc ax ; 40 … … 5596 5573 mov es, [bp-016h] ; 8e 46 ea 5597 5574 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5598 je short 040 cfh ; 74 375575 je short 0408fh ; 74 37 5599 5576 cmp byte [es:si+002h], 000h ; 26 80 7c 02 00 5600 jne short 040 b7h ; 75 185577 jne short 04077h ; 75 18 5601 5578 mov dx, strict word 00010h ; ba 10 00 5602 5579 mov ax, strict word 00040h ; b8 40 00 5603 call 01650h ; e8 a8 d55580 call 01650h ; e8 e8 d5 5604 5581 mov bl, al ; 88 c3 5605 5582 or bl, 041h ; 80 cb 41 … … 5607 5584 mov dx, strict word 00010h ; ba 10 00 5608 5585 mov ax, strict word 00040h ; b8 40 00 5609 jmp short 040 cch ; eb 155586 jmp short 0408ch ; eb 15 5610 5587 mov dx, 00304h ; ba 04 03 5611 5588 mov ax, word [bp-01ah] ; 8b 46 e6 5612 call 01650h ; e8 90 d55589 call 01650h ; e8 d0 d5 5613 5590 mov bl, al ; 88 c3 5614 5591 db 0feh, 0c3h … … 5617 5594 mov dx, 00304h ; ba 04 03 5618 5595 mov ax, word [bp-01ah] ; 8b 46 e6 5619 call 0165eh ; e8 8f d55596 call 0165eh ; e8 cf d5 5620 5597 mov es, [bp-016h] ; 8e 46 ea 5621 5598 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5622 je short 040 ddh ; 74 045599 je short 0409dh ; 74 04 5623 5600 mov byte [es:si], 001h ; 26 c6 04 01 5624 5601 mov es, [bp-016h] ; 8e 46 ea … … 5635 5612 retn ; c3 5636 5613 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 5637 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 f2h, 044h, 0f1h5638 db 041h, 0 24h, 042h, 04eh, 042h, 019h, 042h, 04eh, 042h, 019h, 042h, 040h, 044h, 026h, 044h, 0f2h5639 db 044h, 0 f2h, 044h, 026h, 044h, 026h, 044h, 026h, 044h, 026h, 044h, 026h, 044h, 0e9h, 044h, 026h5640 db 04 4h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h5641 db 044h, 0 f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h5642 _int13_cdemu: ; 0xf41 4c LB 0x4425614 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0b2h, 044h, 0b1h 5615 db 041h, 0e4h, 041h, 00eh, 042h, 0d9h, 041h, 00eh, 042h, 0d9h, 041h, 000h, 044h, 0e6h, 043h, 0b2h 5616 db 044h, 0b2h, 044h, 0e6h, 043h, 0e6h, 043h, 0e6h, 043h, 0e6h, 043h, 0e6h, 043h, 0a9h, 044h, 0e6h 5617 db 043h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h 5618 db 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h 5619 _int13_cdemu: ; 0xf410c LB 0x442 5643 5620 push bp ; 55 5644 5621 mov bp, sp ; 89 e5 … … 5648 5625 mov dx, strict word 0000eh ; ba 0e 00 5649 5626 mov ax, strict word 00040h ; b8 40 00 5650 call 0166ch ; e8 0f d55627 call 0166ch ; e8 4f d5 5651 5628 mov di, 00366h ; bf 66 03 5652 5629 mov cx, ax ; 89 c1 … … 5664 5641 mov dx, strict word 00074h ; ba 74 00 5665 5642 mov ax, strict word 00040h ; b8 40 00 5666 call 0165eh ; e8 d2 d45643 call 0165eh ; e8 12 d5 5667 5644 mov es, cx ; 8e c1 5668 5645 cmp byte [es:di], 000h ; 26 80 3d 00 5669 je short 041 a3h ; 74 0f5646 je short 04163h ; 74 0f 5670 5647 mov al, byte [es:di+002h] ; 26 8a 45 02 5671 5648 xor ah, ah ; 30 e4 … … 5673 5650 xor dh, dh ; 30 f6 5674 5651 cmp ax, dx ; 39 d0 5675 je short 041 cch ; 74 295652 je short 0418ch ; 74 29 5676 5653 mov bx, 00da0h ; bb a0 0d 5677 5654 mov cx, ds ; 8c d9 5678 5655 mov ax, strict word 00004h ; b8 04 00 5679 call 01923h ; e8 75 d75656 call 01923h ; e8 b5 d7 5680 5657 mov ax, word [bp+012h] ; 8b 46 12 5681 5658 xor ah, ah ; 30 e4 … … 5687 5664 push 00358h ; 68 58 03 5688 5665 push strict byte 00004h ; 6a 04 5689 call 01966h ; e8 a0 d75666 call 01966h ; e8 e0 d7 5690 5667 add sp, strict byte 0000ah ; 83 c4 0a 5691 jmp near 04 512h ; e9 46 035668 jmp near 044d2h ; e9 46 03 5692 5669 mov ax, word [bp+016h] ; 8b 46 16 5693 5670 shr ax, 008h ; c1 e8 08 5694 5671 cmp ax, strict word 00050h ; 3d 50 00 5695 jnbe short 042 4bh ; 77 745672 jnbe short 0420bh ; 77 74 5696 5673 push CS ; 0e 5697 5674 pop ES ; 07 5698 5675 mov cx, strict word 0001eh ; b9 1e 00 5699 mov di, 040 f3h ; bf f3 405676 mov di, 040b3h ; bf b3 40 5700 5677 repne scasb ; f2 ae 5701 5678 sal cx, 1 ; d1 e1 5702 5679 mov di, cx ; 89 cf 5703 mov ax, word [cs:di+04 110h] ; 2e 8b 85 10 415680 mov ax, word [cs:di+040d0h] ; 2e 8b 85 d0 40 5704 5681 mov bx, word [bp+016h] ; 8b 5e 16 5705 5682 xor bh, bh ; 30 ff … … 5714 5691 add bx, bx ; 01 db 5715 5692 cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00 5716 je short 04 216h ; 74 095693 je short 041d6h ; 74 09 5717 5694 mov al, byte [bp-006h] ; 8a 46 fa 5718 5695 xor ah, ah ; 30 e4 5719 5696 call word [word bx+00076h] ; ff 97 76 00 5720 jmp near 04 426h ; e9 0d 025697 jmp near 043e6h ; e9 0d 02 5721 5698 mov ax, word [bp+016h] ; 8b 46 16 5722 5699 xor ah, ah ; 30 e4 5723 5700 or ah, 003h ; 80 cc 03 5724 jmp near 04 51ah ; e9 f6 025701 jmp near 044dah ; e9 f6 02 5725 5702 mov dx, strict word 00074h ; ba 74 00 5726 5703 mov ax, strict word 00040h ; b8 40 00 5727 call 01650h ; e8 23 d45704 call 01650h ; e8 63 d4 5728 5705 mov cl, al ; 88 c1 5729 5706 xor ah, ah ; 30 e4 … … 5734 5711 mov dx, strict word 00074h ; ba 74 00 5735 5712 mov ax, strict word 00040h ; b8 40 00 5736 call 0165eh ; e8 1a d45713 call 0165eh ; e8 5a d4 5737 5714 test cl, cl ; 84 c9 5738 je short 042 a8h ; 74 605739 jmp near 04 52eh ; e9 e3 025740 jmp near 044 f2h ; e9 a4 025715 je short 04268h ; 74 60 5716 jmp near 044eeh ; e9 e3 02 5717 jmp near 044b2h ; e9 a4 02 5741 5718 mov es, [bp-008h] ; 8e 46 f8 5742 5719 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 5762 5739 mov word [bp-00ah], cx ; 89 4e f6 5763 5740 test cx, cx ; 85 c9 5764 je short 042 b6h ; 74 1e5741 je short 04276h ; 74 1e 5765 5742 cmp di, word [bp-010h] ; 3b 7e f0 5766 jc short 042 a5h ; 72 085743 jc short 04265h ; 72 08 5767 5744 cmp ax, dx ; 39 d0 5768 jnc short 042 a5h ; 73 045745 jnc short 04265h ; 73 04 5769 5746 cmp si, bx ; 39 de 5770 jc short 042 abh ; 72 065771 jmp near 04 512h ; e9 6a 025772 jmp near 04 42ah ; e9 7f 015747 jc short 0426bh ; 72 06 5748 jmp near 044d2h ; e9 6a 02 5749 jmp near 043eah ; e9 7f 01 5773 5750 mov dx, word [bp+016h] ; 8b 56 16 5774 5751 shr dx, 008h ; c1 ea 08 5775 5752 cmp dx, strict byte 00004h ; 83 fa 04 5776 jne short 042 b9h ; 75 035777 jmp near 04 426h ; e9 6d 015753 jne short 04279h ; 75 03 5754 jmp near 043e6h ; e9 6d 01 5778 5755 mov dx, word [bp+010h] ; 8b 56 10 5779 5756 shr dx, 004h ; c1 ea 04 … … 5786 5763 xor dl, dl ; 30 d2 5787 5764 xor cx, cx ; 31 c9 5788 call 09f e9h ; e8 12 5d5765 call 09f69h ; e8 d2 5c 5789 5766 xor bx, bx ; 31 db 5790 5767 add ax, si ; 01 f0 … … 5792 5769 mov bx, di ; 89 fb 5793 5770 xor cx, cx ; 31 c9 5794 call 09f e9h ; e8 05 5d5771 call 09f69h ; e8 c5 5c 5795 5772 mov bx, ax ; 89 c3 5796 5773 mov ax, word [bp-010h] ; 8b 46 f0 … … 5827 5804 mov dx, ss ; 8c d2 5828 5805 lea ax, [bp-02eh] ; 8d 46 d2 5829 call 0 a03ah ; e8 ff 5c5806 call 09fbah ; e8 bf 5c 5830 5807 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 5831 5808 mov ax, word [bp-014h] ; 8b 46 ec … … 5877 5854 sal si, 1 ; d1 e6 5878 5855 rcl di, 1 ; d1 d7 5879 loop 043 bdh ; e2 fa5856 loop 0437dh ; e2 fa 5880 5857 push di ; 57 5881 5858 push si ; 56 … … 5893 5870 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00 5894 5871 test al, al ; 84 c0 5895 je short 04 426h ; 74 375872 je short 043e6h ; 74 37 5896 5873 mov bx, 00da0h ; bb a0 0d 5897 5874 mov cx, ds ; 8c d9 5898 5875 mov ax, strict word 00004h ; b8 04 00 5899 call 01923h ; e8 29 d55876 call 01923h ; e8 69 d5 5900 5877 mov al, dl ; 88 d0 5901 5878 xor ah, ah ; 30 e4 … … 5907 5884 push 0038eh ; 68 8e 03 5908 5885 push strict byte 00004h ; 6a 04 5909 call 01966h ; e8 55 d55886 call 01966h ; e8 95 d5 5910 5887 add sp, strict byte 0000ah ; 83 c4 0a 5911 5888 mov ax, word [bp+016h] ; 8b 46 16 … … 5914 5891 mov word [bp+016h], ax ; 89 46 16 5915 5892 mov byte [bp+016h], 000h ; c6 46 16 00 5916 jmp near 04 51dh ; e9 f7 005893 jmp near 044ddh ; e9 f7 00 5917 5894 mov byte [bp+017h], 000h ; c6 46 17 00 5918 5895 xor bx, bx ; 31 db 5919 5896 mov dx, strict word 00074h ; ba 74 00 5920 5897 mov ax, strict word 00040h ; b8 40 00 5921 call 0165eh ; e8 29 d25898 call 0165eh ; e8 69 d2 5922 5899 and byte [bp+01ch], 0feh ; 80 66 1c fe 5923 5900 lea sp, [bp-004h] ; 8d 66 fc … … 5967 5944 mov word [bp+010h], ax ; 89 46 10 5968 5945 cmp dl, 003h ; 80 fa 03 5969 je short 044 cch ; 74 1a5946 je short 0448ch ; 74 1a 5970 5947 cmp dl, 002h ; 80 fa 02 5971 je short 044 c8h ; 74 115948 je short 04488h ; 74 11 5972 5949 cmp dl, 001h ; 80 fa 01 5973 jne short 044 d0h ; 75 145950 jne short 04490h ; 75 14 5974 5951 mov ax, word [bp+010h] ; 8b 46 10 5975 5952 xor al, al ; 30 c0 5976 5953 or AL, strict byte 002h ; 0c 02 5977 5954 mov word [bp+010h], ax ; 89 46 10 5978 jmp short 044 d0h ; eb 085955 jmp short 04490h ; eb 08 5979 5956 or AL, strict byte 004h ; 0c 04 5980 jmp short 044 c3h ; eb f75957 jmp short 04483h ; eb f7 5981 5958 or AL, strict byte 005h ; 0c 05 5982 jmp short 044 c3h ; eb f35959 jmp short 04483h ; eb f3 5983 5960 mov es, [bp-008h] ; 8e 46 f8 5984 5961 cmp byte [es:si+001h], 004h ; 26 80 7c 01 04 5985 jc short 044 ddh ; 72 035986 jmp near 04 426h ; e9 49 ff5962 jc short 0449dh ; 72 03 5963 jmp near 043e6h ; e9 49 ff 5987 5964 mov word [bp+008h], 0efc7h ; c7 46 08 c7 ef 5988 5965 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 5989 jmp short 044 dah ; eb f15966 jmp short 0449ah ; eb f1 5990 5967 or bh, 003h ; 80 cf 03 5991 5968 mov word [bp+016h], bx ; 89 5e 16 5992 jmp near 04 42ah ; e9 38 ff5969 jmp near 043eah ; e9 38 ff 5993 5970 mov bx, 00da0h ; bb a0 0d 5994 5971 mov cx, ds ; 8c d9 5995 5972 mov ax, strict word 00004h ; b8 04 00 5996 call 01923h ; e8 26 d45973 call 01923h ; e8 66 d4 5997 5974 mov ax, word [bp+016h] ; 8b 46 16 5998 5975 shr ax, 008h ; c1 e8 08 … … 6001 5978 push 003afh ; 68 af 03 6002 5979 push strict byte 00004h ; 6a 04 6003 call 01966h ; e8 57 d45980 call 01966h ; e8 97 d4 6004 5981 add sp, strict byte 00008h ; 83 c4 08 6005 5982 mov ax, word [bp+016h] ; 8b 46 16 … … 6012 5989 mov dx, strict word 00074h ; ba 74 00 6013 5990 mov ax, strict word 00040h ; b8 40 00 6014 call 0165eh ; e8 30 d15991 call 0165eh ; e8 70 d1 6015 5992 or byte [bp+01ch], 001h ; 80 4e 1c 01 6016 jmp near 04 439h ; e9 04 ff5993 jmp near 043f9h ; e9 04 ff 6017 5994 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 6018 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 7ch, 046h, 0cch6019 db 04ah, 0 39h, 046h, 07ch, 046h, 02eh, 046h, 07ch, 046h, 02eh, 046h, 07ch, 046h, 0cch, 04ah, 07ch6020 db 046h, 0 7ch, 046h, 0cch, 04ah, 0cch, 04ah, 0cch, 04ah, 0cch, 04ah, 0cch, 04ah, 060h, 046h, 0cch6021 db 04ah, 0 7ch, 046h, 069h, 046h, 098h, 046h, 02eh, 046h, 098h, 046h, 0d8h, 047h, 073h, 048h, 098h6022 db 046h, 0 9bh, 048h, 0e6h, 04ah, 0eeh, 04ah, 07ch, 046h6023 _int13_cdrom: ; 0xf45 8e LB 0x5985995 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 03ch, 046h, 071h 5996 db 04ah, 0f9h, 045h, 03ch, 046h, 0eeh, 045h, 03ch, 046h, 0eeh, 045h, 03ch, 046h, 071h, 04ah, 03ch 5997 db 046h, 03ch, 046h, 071h, 04ah, 071h, 04ah, 071h, 04ah, 071h, 04ah, 071h, 04ah, 020h, 046h, 071h 5998 db 04ah, 03ch, 046h, 029h, 046h, 058h, 046h, 0eeh, 045h, 058h, 046h, 09ah, 047h, 035h, 048h, 058h 5999 db 046h, 05dh, 048h, 08bh, 04ah, 093h, 04ah, 03ch, 046h 6000 _int13_cdrom: ; 0xf454e LB 0x57d 6024 6001 push bp ; 55 6025 6002 mov bp, sp ; 89 e5 6026 6003 push si ; 56 6027 6004 push di ; 57 6028 sub sp, strict byte 0002 ah ; 83 ec 2a6005 sub sp, strict byte 0002ch ; 83 ec 2c 6029 6006 mov dx, strict word 0000eh ; ba 0e 00 6030 6007 mov ax, strict word 00040h ; b8 40 00 6031 call 0166ch ; e8 cd d06032 mov word [bp-01 ah], ax ; 89 46 e66008 call 0166ch ; e8 0d d1 6009 mov word [bp-016h], ax ; 89 46 ea 6033 6010 mov si, 00122h ; be 22 01 6034 mov word [bp-0 0ch], ax ; 89 46 f46011 mov word [bp-01eh], ax ; 89 46 e2 6035 6012 xor bx, bx ; 31 db 6036 6013 mov dx, strict word 00074h ; ba 74 00 6037 6014 mov ax, strict word 00040h ; b8 40 00 6038 call 0165eh ; e8 ab d06015 call 0165eh ; e8 eb d0 6039 6016 mov ax, word [bp+010h] ; 8b 46 10 6040 6017 xor ah, ah ; 30 e4 6041 6018 cmp ax, 000e0h ; 3d e0 00 6042 jc short 045 c2h ; 72 056019 jc short 04582h ; 72 05 6043 6020 cmp ax, 000f0h ; 3d f0 00 6044 jc short 045 e0h ; 72 1e6021 jc short 045a0h ; 72 1e 6045 6022 mov ax, word [bp+010h] ; 8b 46 10 6046 6023 xor ah, ah ; 30 e4 … … 6052 6029 push 003ebh ; 68 eb 03 6053 6030 push strict byte 00004h ; 6a 04 6054 call 01966h ; e8 8c d36031 call 01966h ; e8 cc d3 6055 6032 add sp, strict byte 0000ah ; 83 c4 0a 6056 jmp near 04 b04h ; e9 24056033 jmp near 04aa9h ; e9 09 05 6057 6034 mov ax, word [bp+010h] ; 8b 46 10 6058 6035 xor ah, ah ; 30 e4 6059 mov es, [bp-0 0ch] ; 8e 46 f46036 mov es, [bp-01eh] ; 8e 46 e2 6060 6037 mov bx, si ; 89 f3 6061 6038 add bx, ax ; 01 c3 6062 6039 mov dl, byte [es:bx+00114h] ; 26 8a 97 14 01 6063 mov byte [bp-00 8h], dl ; 88 56 f86040 mov byte [bp-006h], dl ; 88 56 fa 6064 6041 cmp dl, 010h ; 80 fa 10 6065 jc short 04 609h ; 72 106042 jc short 045c9h ; 72 10 6066 6043 push ax ; 50 6067 6044 mov ax, word [bp+018h] ; 8b 46 18 … … 6070 6047 push 003dfh ; 68 df 03 6071 6048 push 00416h ; 68 16 04 6072 jmp short 045 d5h ; eb cc6049 jmp short 04595h ; eb cc 6073 6050 mov ax, word [bp+018h] ; 8b 46 18 6074 6051 shr ax, 008h ; c1 e8 08 6075 6052 cmp ax, strict word 00050h ; 3d 50 00 6076 jnbe short 046 7ch ; 77 686053 jnbe short 0463ch ; 77 68 6077 6054 push CS ; 0e 6078 6055 pop ES ; 07 6079 6056 mov cx, strict word 0001eh ; b9 1e 00 6080 mov di, 04 535h ; bf 35 456057 mov di, 044f5h ; bf f5 44 6081 6058 repne scasb ; f2 ae 6082 6059 sal cx, 1 ; d1 e1 6083 6060 mov di, cx ; 89 cf 6084 mov ax, word [cs:di+045 52h] ; 2e 8b 85 52 456061 mov ax, word [cs:di+04512h] ; 2e 8b 85 12 45 6085 6062 mov bx, word [bp+018h] ; 8b 5e 18 6086 6063 xor bh, bh ; 30 ff … … 6089 6066 xor ah, ah ; 30 e4 6090 6067 or ah, 003h ; 80 cc 03 6091 jmp near 04 b0ch ; e9 d3046068 jmp near 04ab1h ; e9 b8 04 6092 6069 mov dx, strict word 00074h ; ba 74 00 6093 6070 mov ax, strict word 00040h ; b8 40 00 6094 call 01650h ; e8 0e d06071 call 01650h ; e8 4e d0 6095 6072 mov cl, al ; 88 c1 6096 6073 xor ah, ah ; 30 e4 … … 6101 6078 mov dx, strict word 00074h ; ba 74 00 6102 6079 mov ax, strict word 00040h ; b8 40 00 6103 call 0165eh ; e8 05 d06080 call 0165eh ; e8 45 d0 6104 6081 test cl, cl ; 84 c9 6105 je short 046 79h ; 74 1c6106 jmp near 04 b20h ; e9 c0046082 je short 04639h ; 74 1c 6083 jmp near 04ac5h ; e9 a5 04 6107 6084 or bh, 002h ; 80 cf 02 6108 6085 mov word [bp+018h], bx ; 89 5e 18 6109 jmp near 04 b0fh ; e9 a6046086 jmp near 04ab4h ; e9 8b 04 6110 6087 mov word [bp+012h], 0aa55h ; c7 46 12 55 aa 6111 6088 or bh, 030h ; 80 cf 30 6112 6089 mov word [bp+018h], bx ; 89 5e 18 6113 6090 mov word [bp+016h], strict word 00007h ; c7 46 16 07 00 6114 jmp near 04a d0h ; e9 54046091 jmp near 04a75h ; e9 39 04 6115 6092 mov bx, 00da0h ; bb a0 0d 6116 6093 mov cx, ds ; 8c d9 6117 6094 mov ax, strict word 00004h ; b8 04 00 6118 call 01923h ; e8 9c d26095 call 01923h ; e8 dc d2 6119 6096 mov ax, word [bp+018h] ; 8b 46 18 6120 6097 shr ax, 008h ; c1 e8 08 … … 6123 6100 push 00333h ; 68 33 03 6124 6101 push strict byte 00004h ; 6a 04 6125 jmp short 046 d7h ; eb 3f6102 jmp short 04698h ; eb 40 6126 6103 mov bx, word [bp+00ch] ; 8b 5e 0c 6127 6104 mov es, [bp+006h] ; 8e 46 06 6128 mov word [bp-018h], bx ; 89 5e e8 6129 mov [bp-012h], es ; 8c 46 ee 6130 mov ax, word [es:bx+002h] ; 26 8b 47 02 6131 mov word [bp-010h], ax ; 89 46 f0 6105 mov word [bp-014h], bx ; 89 5e ec 6106 mov [bp-010h], es ; 8c 46 f0 6107 mov di, word [es:bx+002h] ; 26 8b 7f 02 6132 6108 mov ax, word [es:bx+006h] ; 26 8b 47 06 6109 mov word [bp-01ah], ax ; 89 46 e6 6110 mov ax, word [es:bx+004h] ; 26 8b 47 04 6111 mov word [bp-01ch], ax ; 89 46 e4 6112 mov ax, word [es:bx+00ch] ; 26 8b 47 0c 6113 mov word [bp-00eh], ax ; 89 46 f2 6114 mov ax, word [es:bx+00eh] ; 26 8b 47 0e 6133 6115 mov word [bp-022h], ax ; 89 46 de 6134 mov ax, word [es:bx+004h] ; 26 8b 47 04 6135 mov word [bp-01eh], ax ; 89 46 e2 6136 mov ax, word [es:bx+00ch] ; 26 8b 47 0c 6137 mov word [bp-016h], ax ; 89 46 ea 6138 mov di, word [es:bx+00eh] ; 26 8b 7f 0e 6139 or di, ax ; 09 c7 6140 je short 046e0h ; 74 18 6116 or ax, word [bp-00eh] ; 0b 46 f2 6117 je short 046a1h ; 74 18 6141 6118 mov ax, word [bp+018h] ; 8b 46 18 6142 6119 shr ax, 008h ; c1 e8 08 … … 6145 6122 push 00448h ; 68 48 04 6146 6123 push strict byte 00007h ; 6a 07 6147 call 01966h ; e8 8cd26124 call 01966h ; e8 cb d2 6148 6125 add sp, strict byte 00008h ; 83 c4 08 6149 jmp near 04 b04h ; e9 24046150 mov es, [bp-01 2h] ; 8e 46 ee6151 mov bx, word [bp-01 8h] ; 8b 5e e86126 jmp near 04aa9h ; e9 08 04 6127 mov es, [bp-010h] ; 8e 46 f0 6128 mov bx, word [bp-014h] ; 8b 5e ec 6152 6129 mov ax, word [es:bx+008h] ; 26 8b 47 08 6153 mov word [bp-0 16h], ax ; 89 46 ea6154 mov di, bx ; 89 df6155 mov di, word [es:di+00ah] ; 26 8b 7d 0a6130 mov word [bp-00eh], ax ; 89 46 f2 6131 mov ax, word [es:bx+00ah] ; 26 8b 47 0a 6132 mov word [bp-022h], ax ; 89 46 de 6156 6133 mov ax, word [bp+018h] ; 8b 46 18 6157 6134 shr ax, 008h ; c1 e8 08 6158 mov word [bp-01 4h], ax ; 89 46 ec6135 mov word [bp-012h], ax ; 89 46 ee 6159 6136 cmp ax, strict word 00044h ; 3d 44 00 6160 je short 04 706h ; 74 056137 je short 046c8h ; 74 05 6161 6138 cmp ax, strict word 00047h ; 3d 47 00 6162 jne short 04 709h ; 75 036163 jmp near 04a cch ; e9 c3036139 jne short 046cbh ; 75 03 6140 jmp near 04a71h ; e9 a6 03 6164 6141 mov cx, strict word 0000ch ; b9 0c 00 6165 6142 xor bx, bx ; 31 db 6166 6143 mov dx, ss ; 8c d2 6167 lea ax, [bp-0 2eh] ; 8d 46 d26168 call 0 a03ah ; e8 24 596169 mov word [bp-0 2eh], strict word 00028h ; c7 46 d228 006170 mov ax, word [bp-0 16h] ; 8b 46 ea6171 mov dx, di ; 89 fa6144 lea ax, [bp-030h] ; 8d 46 d0 6145 call 09fbah ; e8 e2 58 6146 mov word [bp-030h], strict word 00028h ; c7 46 d0 28 00 6147 mov ax, word [bp-00eh] ; 8b 46 f2 6148 mov dx, word [bp-022h] ; 8b 56 de 6172 6149 xchg ah, al ; 86 c4 6173 6150 xchg dh, dl ; 86 d6 6174 6151 xchg dx, ax ; 92 6175 mov word [bp-02 ch], ax ; 89 46 d46176 mov word [bp-02 ah], dx ; 89 56 d66177 mov ax, word [bp-010h] ; 8b 46 f06152 mov word [bp-02eh], ax ; 89 46 d2 6153 mov word [bp-02ch], dx ; 89 56 d4 6154 mov ax, di ; 89 f8 6178 6155 xchg ah, al ; 86 c4 6179 mov word [bp-027h], ax ; 89 46 d9 6180 mov ax, word [bp-010h] ; 8b 46 f0 6181 mov es, [bp-00ch] ; 8e 46 f4 6182 mov word [es:si+00eh], ax ; 26 89 44 0e 6156 mov word [bp-029h], ax ; 89 46 d7 6157 mov es, [bp-01eh] ; 8e 46 e2 6158 mov word [es:si+00eh], di ; 26 89 7c 0e 6183 6159 mov word [es:si+010h], 00800h ; 26 c7 44 10 00 08 6184 mov al, byte [bp-00 8h] ; 8a 46 f86160 mov al, byte [bp-006h] ; 8a 46 fa 6185 6161 xor ah, ah ; 30 e4 6186 6162 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 6189 6165 mov al, byte [es:bx+022h] ; 26 8a 47 22 6190 6166 xor ah, ah ; 30 e4 6191 mov di, ax ; 89 c76192 add di, ax ; 01 c76193 push word [bp-0 22h] ; ff 76 de6194 push word [bp-01 eh] ; ff 76 e26167 add ax, ax ; 01 c0 6168 mov word [bp-020h], ax ; 89 46 e0 6169 push word [bp-01ah] ; ff 76 e6 6170 push word [bp-01ch] ; ff 76 e4 6195 6171 push strict byte 00001h ; 6a 01 6196 mov ax, word [bp-010h] ; 8b 46 f06172 mov ax, di ; 89 f8 6197 6173 xor dx, dx ; 31 d2 6198 6174 mov cx, strict word 0000bh ; b9 0b 00 6199 6175 sal ax, 1 ; d1 e0 6200 6176 rcl dx, 1 ; d1 d2 6201 loop 047 69h ; e2 fa6177 loop 04728h ; e2 fa 6202 6178 push dx ; 52 6203 6179 push ax ; 50 6204 6180 push strict byte 00000h ; 6a 00 6205 mov al, byte [bp-00 8h] ; 8a 46 f86181 mov al, byte [bp-006h] ; 8a 46 fa 6206 6182 xor ah, ah ; 30 e4 6207 6183 mov cx, ss ; 8c d1 6208 lea bx, [bp-0 2eh] ; 8d 5e d26184 lea bx, [bp-030h] ; 8d 5e d0 6209 6185 mov dx, strict word 0000ch ; ba 0c 00 6186 mov di, word [bp-020h] ; 8b 7e e0 6210 6187 call word [word di+0006ah] ; ff 95 6a 00 6211 mov word [bp-01 ch], ax ; 89 46 e46212 mov es, [bp-0 0ch] ; 8e 46 f46188 mov word [bp-018h], ax ; 89 46 e8 6189 mov es, [bp-01eh] ; 8e 46 e2 6213 6190 mov ax, word [es:si+01ah] ; 26 8b 44 1a 6214 6191 mov dx, word [es:si+01ch] ; 26 8b 54 1c … … 6216 6193 shr dx, 1 ; d1 ea 6217 6194 rcr ax, 1 ; d1 d8 6218 loop 047 95h ; e2 fa6219 mov es, [bp-01 2h] ; 8e 46 ee6220 mov bx, word [bp-01 8h] ; 8b 5e e86195 loop 04757h ; e2 fa 6196 mov es, [bp-010h] ; 8e 46 f0 6197 mov bx, word [bp-014h] ; 8b 5e ec 6221 6198 mov word [es:bx+002h], ax ; 26 89 47 02 6222 cmp byte [bp-01 ch], 000h ; 80 7e e4006223 je short 047 feh ; 74 536199 cmp byte [bp-018h], 000h ; 80 7e e8 00 6200 je short 047c0h ; 74 53 6224 6201 mov bx, 00da0h ; bb a0 0d 6225 6202 mov cx, ds ; 8c d9 6226 6203 mov ax, strict word 00004h ; b8 04 00 6227 call 01923h ; e8 6dd16228 mov al, byte [bp-01 ch] ; 8a 46 e46204 call 01923h ; e8 ab d1 6205 mov al, byte [bp-018h] ; 8a 46 e8 6229 6206 xor ah, ah ; 30 e4 6230 6207 push ax ; 50 6231 push word [bp-01 4h] ; ff 76 ec6208 push word [bp-012h] ; ff 76 ee 6232 6209 push 003dfh ; 68 df 03 6233 6210 push 00471h ; 68 71 04 6234 6211 push strict byte 00004h ; 6a 04 6235 call 01966h ; e8 9cd16212 call 01966h ; e8 da d1 6236 6213 add sp, strict byte 0000ah ; 83 c4 0a 6237 6214 mov ax, word [bp+018h] ; 8b 46 18 6238 6215 xor ah, ah ; 30 e4 6239 6216 or ah, 00ch ; 80 cc 0c 6240 jmp near 04 b0ch ; e9 34036217 jmp near 04ab1h ; e9 17 03 6241 6218 cmp bx, strict byte 00002h ; 83 fb 02 6242 jnbe short 048 46h ; 77 696243 mov al, byte [bp-00 8h] ; 8a 46 f86219 jnbe short 04808h ; 77 69 6220 mov al, byte [bp-006h] ; 8a 46 fa 6244 6221 xor ah, ah ; 30 e4 6245 6222 imul ax, ax, strict byte 0001ch ; 6b c0 1c 6246 mov es, [bp-0 0ch] ; 8e 46 f46223 mov es, [bp-01eh] ; 8e 46 e2 6247 6224 mov di, si ; 89 f7 6248 6225 add di, ax ; 01 c7 6249 6226 mov al, byte [es:di+025h] ; 26 8a 45 25 6250 6227 cmp bx, strict byte 00002h ; 83 fb 02 6251 je short 048 5ch ; 74 676228 je short 0481eh ; 74 67 6252 6229 cmp bx, strict byte 00001h ; 83 fb 01 6253 je short 04 836h ; 74 3c6230 je short 047f8h ; 74 3c 6254 6231 test bx, bx ; 85 db 6255 je short 04 801h ; 74 036256 jmp near 04a cch ; e9 cb026232 je short 047c3h ; 74 03 6233 jmp near 04a71h ; e9 ae 02 6257 6234 cmp AL, strict byte 0ffh ; 3c ff 6258 jne short 04 817h ; 75 126235 jne short 047d9h ; 75 12 6259 6236 mov ax, word [bp+018h] ; 8b 46 18 6260 6237 xor ah, ah ; 30 e4 … … 6263 6240 xor al, al ; 30 c0 6264 6241 or AL, strict byte 001h ; 0c 01 6265 jmp near 04 b0ch ; e9 f5026266 mov dl, byte [bp-00 8h] ; 8a 56 f86242 jmp near 04ab1h ; e9 d8 02 6243 mov dl, byte [bp-006h] ; 8a 56 fa 6267 6244 xor dh, dh ; 30 f6 6268 6245 imul dx, dx, strict byte 0001ch ; 6b d2 1c 6269 6246 db 0feh, 0c0h 6270 6247 ; inc al ; fe c0 6271 mov es, [bp-0 0ch] ; 8e 46 f46248 mov es, [bp-01eh] ; 8e 46 e2 6272 6249 add si, dx ; 01 d6 6273 6250 mov byte [es:si+025h], al ; 26 88 44 25 … … 6276 6253 or AL, strict byte 001h ; 0c 01 6277 6254 mov word [bp+018h], ax ; 89 46 18 6278 jmp short 047 feh ; eb c86255 jmp short 047c0h ; eb c8 6279 6256 test al, al ; 84 c0 6280 jne short 048 49h ; 75 0f6257 jne short 0480bh ; 75 0f 6281 6258 or bh, 0b0h ; 80 cf b0 6282 6259 mov word [bp+018h], bx ; 89 5e 18 6283 6260 mov byte [bp+018h], al ; 88 46 18 6284 jmp near 04 b0fh ; e9 c9026285 jmp near 04 b04h ; e9 bb026286 mov dl, byte [bp-00 8h] ; 8a 56 f86261 jmp near 04ab4h ; e9 ac 02 6262 jmp near 04aa9h ; e9 9e 02 6263 mov dl, byte [bp-006h] ; 8a 56 fa 6287 6264 xor dh, dh ; 30 f6 6288 6265 imul dx, dx, strict byte 0001ch ; 6b d2 1c 6289 6266 db 0feh, 0c8h 6290 6267 ; dec al ; fe c8 6291 mov es, [bp-0 0ch] ; 8e 46 f46268 mov es, [bp-01eh] ; 8e 46 e2 6292 6269 add si, dx ; 01 d6 6293 6270 mov byte [es:si+025h], al ; 26 88 44 25 6294 6271 test al, al ; 84 c0 6295 jne short 048 6eh ; 75 0e6272 jne short 04830h ; 75 0e 6296 6273 xor ah, ah ; 30 e4 6297 6274 mov dx, word [bp+018h] ; 8b 56 18 … … 6299 6276 or dx, ax ; 09 c2 6300 6277 mov word [bp+018h], dx ; 89 56 18 6301 jmp short 047 feh ; eb 906278 jmp short 047c0h ; eb 90 6302 6279 mov ax, strict word 00001h ; b8 01 00 6303 jmp short 048 62h ; eb ef6304 mov al, byte [bp-00 8h] ; 8a 46 f86280 jmp short 04824h ; eb ef 6281 mov al, byte [bp-006h] ; 8a 46 fa 6305 6282 xor ah, ah ; 30 e4 6306 6283 imul ax, ax, strict byte 0001ch ; 6b c0 1c 6307 mov es, [bp-0 0ch] ; 8e 46 f46284 mov es, [bp-01eh] ; 8e 46 e2 6308 6285 add si, ax ; 01 c6 6309 6286 mov al, byte [es:si+025h] ; 26 8a 44 25 6310 6287 test al, al ; 84 c0 6311 je short 048 8eh ; 74 066288 je short 04850h ; 74 06 6312 6289 or bh, 0b1h ; 80 cf b1 6313 jmp near 046 63h ; e9 d5fd6314 je short 048 b7h ; 74 276290 jmp near 04623h ; e9 d3 fd 6291 je short 04879h ; 74 27 6315 6292 mov ax, word [bp+018h] ; 8b 46 18 6316 6293 xor ah, ah ; 30 e4 6317 6294 or ah, 0b1h ; 80 cc b1 6318 jmp near 04 b0ch ; e9 71026295 jmp near 04ab1h ; e9 54 02 6319 6296 mov dx, word [bp+00ch] ; 8b 56 0c 6320 6297 mov cx, word [bp+006h] ; 8b 4e 06 … … 6324 6301 mov di, dx ; 89 d7 6325 6302 mov ax, word [es:di] ; 26 8b 05 6326 mov word [bp-00 eh], ax ; 89 46 f26303 mov word [bp-00ch], ax ; 89 46 f4 6327 6304 cmp ax, strict word 0001ah ; 3d 1a 00 6328 jnc short 048 bah ; 73 056329 jmp short 048 46h ; eb 8f6330 jmp near 04a cch ; e9 12 026331 jc short 04 91eh ; 72 626332 mov al, byte [bp-00 8h] ; 8a 46 f86305 jnc short 0487ch ; 73 05 6306 jmp short 04808h ; eb 8f 6307 jmp near 04a71h ; e9 f5 01 6308 jc short 048e0h ; 72 62 6309 mov al, byte [bp-006h] ; 8a 46 fa 6333 6310 xor ah, ah ; 30 e4 6334 6311 imul ax, ax, strict byte 0001ch ; 6b c0 1c 6335 mov es, [bp-0 0ch] ; 8e 46 f46312 mov es, [bp-01eh] ; 8e 46 e2 6336 6313 mov di, si ; 89 f7 6337 6314 add di, ax ; 01 c7 … … 6352 6329 mov word [es:di+014h], strict word 0ffffh ; 26 c7 45 14 ff ff 6353 6330 mov word [es:di+016h], strict word 0ffffh ; 26 c7 45 16 ff ff 6354 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 6355 jc short 0497dh ; 72 59 6331 cmp word [bp-00ch], strict byte 0001eh ; 83 7e f4 1e 6332 jnc short 048e9h ; 73 03 6333 jmp near 049a5h ; e9 bc 00 6356 6334 mov es, [bp-00ah] ; 8e 46 f6 6357 6335 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 6358 mov ax, word [bp-01 ah] ; 8b 46 e66336 mov ax, word [bp-016h] ; 8b 46 ea 6359 6337 mov word [es:bx+01ch], ax ; 26 89 47 1c 6360 6338 mov word [es:bx+01ah], 00356h ; 26 c7 47 1a 56 03 6361 mov cl, byte [bp-00 8h] ; 8a 4e f86339 mov cl, byte [bp-006h] ; 8a 4e fa 6362 6340 xor ch, ch ; 30 ed 6363 6341 mov ax, cx ; 89 c8 … … 6368 6346 xor ah, ah ; 30 e4 6369 6347 imul ax, ax, strict byte 00006h ; 6b c0 06 6370 mov es, [bp-0 0ch] ; 8e 46 f46348 mov es, [bp-01eh] ; 8e 46 e2 6371 6349 mov di, si ; 89 f7 6372 6350 add di, ax ; 01 c7 6373 mov dx, word [es:di+00206h] ; 26 8b 95 06 02 6374 mov ax, word [es:di+00208h] ; 26 8b 85 08 02 6375 mov word [bp-020h], ax ; 89 46 e0 6376 mov al, byte [es:di+00205h] ; 26 8a 85 05 02 6377 mov byte [bp-006h], al ; 88 46 fa 6378 imul cx, cx, strict byte 0001ch ; 6b c9 1c 6379 mov di, si ; 89 f7 6380 add di, cx ; 01 cf 6381 mov al, byte [es:di+026h] ; 26 8a 45 26 6382 mov cx, strict word 00070h ; b9 70 00 6383 cmp AL, strict byte 001h ; 3c 01 6384 jne short 04980h ; 75 08 6385 mov ax, strict word 00001h ; b8 01 00 6386 jmp short 04982h ; eb 05 6387 jmp near 04a00h ; e9 80 00 6388 xor ax, ax ; 31 c0 6389 or cx, ax ; 09 c1 6390 mov es, [bp-00ch] ; 8e 46 f4 6391 mov word [es:si+00234h], dx ; 26 89 94 34 02 6392 mov ax, word [bp-020h] ; 8b 46 e0 6351 mov ax, word [es:di+00206h] ; 26 8b 85 06 02 6352 mov dx, word [es:di+00208h] ; 26 8b 95 08 02 6353 mov word [bp-024h], dx ; 89 56 dc 6354 mov dl, byte [es:di+00205h] ; 26 8a 95 05 02 6355 mov byte [bp-008h], dl ; 88 56 f8 6356 mov word [es:si+00234h], ax ; 26 89 84 34 02 6357 mov ax, word [bp-024h] ; 8b 46 dc 6393 6358 mov word [es:si+00236h], ax ; 26 89 84 36 02 6394 mov al, byte [bp-008h] ; 8a 46 f8 6395 xor ah, ah ; 30 e4 6359 mov ax, cx ; 89 c8 6396 6360 cwd ; 99 6397 mov di, strict word 00002h ; bf02 006398 idiv di ; f7 ff6361 mov cx, strict word 00002h ; b9 02 00 6362 idiv cx ; f7 f9 6399 6363 or dl, 00eh ; 80 ca 0e 6400 6364 sal dx, 004h ; c1 e2 04 6401 6365 mov byte [es:si+00238h], dl ; 26 88 94 38 02 6402 6366 mov byte [es:si+00239h], 0cbh ; 26 c6 84 39 02 cb 6403 mov al, byte [bp-00 6h] ; 8a 46 fa6367 mov al, byte [bp-008h] ; 8a 46 f8 6404 6368 mov byte [es:si+0023ah], al ; 26 88 84 3a 02 6405 6369 mov word [es:si+0023bh], strict word 00001h ; 26 c7 84 3b 02 01 00 6406 6370 mov byte [es:si+0023dh], 000h ; 26 c6 84 3d 02 00 6407 mov word [es:si+0023eh], cx ; 26 89 8c 3e 026371 mov word [es:si+0023eh], strict word 00070h ; 26 c7 84 3e 02 70 00 6408 6372 mov word [es:si+00240h], strict word 00000h ; 26 c7 84 40 02 00 00 6409 6373 mov byte [es:si+00242h], 011h ; 26 c6 84 42 02 11 6410 6374 xor cl, cl ; 30 c9 6411 6375 xor ch, ch ; 30 ed 6412 jmp short 049 e2h ; eb 056376 jmp short 04985h ; eb 05 6413 6377 cmp ch, 00fh ; 80 fd 0f 6414 jnc short 049f6h ; 73 14 6415 mov dl, ch ; 88 ea 6416 xor dh, dh ; 30 f6 6378 jnc short 0499bh ; 73 16 6379 mov al, ch ; 88 e8 6380 xor ah, ah ; 30 e4 6381 mov dx, ax ; 89 c2 6417 6382 add dx, 00356h ; 81 c2 56 03 6418 mov ax, word [bp-01 ah] ; 8b 46 e66419 call 01650h ; e8 60cc6383 mov ax, word [bp-016h] ; 8b 46 ea 6384 call 01650h ; e8 bb cc 6420 6385 add cl, al ; 00 c1 6421 6386 db 0feh, 0c5h 6422 6387 ; inc ch ; fe c5 6423 jmp short 049 ddh ; eb e76388 jmp short 04980h ; eb e5 6424 6389 neg cl ; f6 d9 6425 mov es, [bp-0 0ch] ; 8e 46 f46390 mov es, [bp-01eh] ; 8e 46 e2 6426 6391 mov byte [es:si+00243h], cl ; 26 88 8c 43 02 6427 cmp word [bp-00 eh], strict byte 00042h ; 83 7e f2426428 jnc short 04 a09h ; 73 036429 jmp near 04a cch ; e9 c3 006430 mov al, byte [bp-00 8h] ; 8a 46 f86392 cmp word [bp-00ch], strict byte 00042h ; 83 7e f4 42 6393 jnc short 049aeh ; 73 03 6394 jmp near 04a71h ; e9 c3 00 6395 mov al, byte [bp-006h] ; 8a 46 fa 6431 6396 xor ah, ah ; 30 e4 6432 6397 cwd ; 99 … … 6436 6401 xor ah, ah ; 30 e4 6437 6402 imul ax, ax, strict byte 00006h ; 6b c0 06 6438 mov es, [bp-0 0ch] ; 8e 46 f46403 mov es, [bp-01eh] ; 8e 46 e2 6439 6404 add si, ax ; 01 c6 6440 6405 mov al, byte [es:si+00204h] ; 26 8a 84 04 02 … … 6446 6411 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 6447 6412 test al, al ; 84 c0 6448 jne short 04 a51h ; 75 0c6413 jne short 049f6h ; 75 0c 6449 6414 mov word [es:bx+024h], 05349h ; 26 c7 47 24 49 53 6450 6415 mov word [es:bx+026h], 02041h ; 26 c7 47 26 41 20 … … 6455 6420 mov word [es:bx+02eh], 02020h ; 26 c7 47 2e 20 20 6456 6421 test al, al ; 84 c0 6457 jne short 04a 86h ; 75 166422 jne short 04a2bh ; 75 16 6458 6423 mov word [es:bx+030h], dx ; 26 89 57 30 6459 6424 mov word [es:bx+032h], strict word 00000h ; 26 c7 47 32 00 00 6460 6425 mov word [es:bx+034h], strict word 00000h ; 26 c7 47 34 00 00 6461 6426 mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00 6462 mov al, byte [bp-00 8h] ; 8a 46 f86427 mov al, byte [bp-006h] ; 8a 46 fa 6463 6428 and AL, strict byte 001h ; 24 01 6464 6429 xor ah, ah ; 30 e4 … … 6470 6435 xor al, al ; 30 c0 6471 6436 mov AH, strict byte 01eh ; b4 1e 6472 jmp short 04a b1h ; eb 056437 jmp short 04a56h ; eb 05 6473 6438 cmp ah, 040h ; 80 fc 40 6474 jnc short 04a c3h ; 73 126439 jnc short 04a68h ; 73 12 6475 6440 mov dl, ah ; 88 e2 6476 6441 xor dh, dh ; 30 f6 … … 6481 6446 db 0feh, 0c4h 6482 6447 ; inc ah ; fe c4 6483 jmp short 04a ach ; eb e96448 jmp short 04a51h ; eb e9 6484 6449 neg al ; f6 d8 6485 6450 mov es, [bp-00ah] ; 8e 46 f6 … … 6489 6454 mov dx, strict word 00074h ; ba 74 00 6490 6455 mov ax, strict word 00040h ; b8 40 00 6491 call 0165eh ; e8 83cb6456 call 0165eh ; e8 de cb 6492 6457 and byte [bp+01eh], 0feh ; 80 66 1e fe 6493 6458 lea sp, [bp-004h] ; 8d 66 fc … … 6498 6463 or bh, 006h ; 80 cf 06 6499 6464 mov word [bp+018h], bx ; 89 5e 18 6500 jmp short 04 b20h ; eb 326465 jmp short 04ac5h ; eb 32 6501 6466 cmp bx, strict byte 00006h ; 83 fb 06 6502 je short 04a cch ; 74 d96467 je short 04a71h ; 74 d9 6503 6468 cmp bx, strict byte 00001h ; 83 fb 01 6504 jc short 04 b04h ; 72 0c6505 jbe short 04a cch ; 76 d26469 jc short 04aa9h ; 72 0c 6470 jbe short 04a71h ; 76 d2 6506 6471 cmp bx, strict byte 00003h ; 83 fb 03 6507 jc short 04 b04h ; 72 056472 jc short 04aa9h ; 72 05 6508 6473 cmp bx, strict byte 00004h ; 83 fb 04 6509 jbe short 04a cch ; 76 c86474 jbe short 04a71h ; 76 c8 6510 6475 mov ax, word [bp+018h] ; 8b 46 18 6511 6476 xor ah, ah ; 30 e4 … … 6517 6482 mov dx, strict word 00074h ; ba 74 00 6518 6483 mov ax, strict word 00040h ; b8 40 00 6519 call 0165eh ; e8 3ecb6484 call 0165eh ; e8 99 cb 6520 6485 or byte [bp+01eh], 001h ; 80 4e 1e 01 6521 jmp short 04a dfh ; eb b96522 print_boot_device_: ; 0xf4 b26LB 0x4b6486 jmp short 04a84h ; eb b9 6487 print_boot_device_: ; 0xf4acb LB 0x4b 6523 6488 push bp ; 55 6524 6489 mov bp, sp ; 89 e5 6525 6490 push cx ; 51 6526 6491 test al, al ; 84 c0 6527 je short 04 b33h ; 74 056492 je short 04ad8h ; 74 05 6528 6493 mov dx, strict word 00002h ; ba 02 00 6529 jmp short 04 b4dh ; eb 1a6494 jmp short 04af2h ; eb 1a 6530 6495 test dl, dl ; 84 d2 6531 je short 04 b3ch ; 74 056496 je short 04ae1h ; 74 05 6532 6497 mov dx, strict word 00003h ; ba 03 00 6533 jmp short 04 b4dh ; eb 116498 jmp short 04af2h ; eb 11 6534 6499 test bl, 080h ; f6 c3 80 6535 jne short 04 b45h ; 75 046500 jne short 04aeah ; 75 04 6536 6501 xor dh, dh ; 30 f6 6537 jmp short 04 b4dh ; eb 086502 jmp short 04af2h ; eb 08 6538 6503 test bl, 080h ; f6 c3 80 6539 je short 04b 6bh ; 74 216504 je short 04b10h ; 74 21 6540 6505 mov dx, strict word 00001h ; ba 01 00 6541 6506 mov bx, 00da0h ; bb a0 0d 6542 6507 mov cx, ds ; 8c d9 6543 6508 mov ax, strict word 00004h ; b8 04 00 6544 call 01923h ; e8 cb cd6509 call 01923h ; e8 26 ce 6545 6510 imul dx, dx, strict byte 0000ah ; 6b d2 0a 6546 6511 add dx, 00dc6h ; 81 c2 c6 0d … … 6548 6513 push 00494h ; 68 94 04 6549 6514 push strict byte 00004h ; 6a 04 6550 call 01966h ; e8 fe cd6515 call 01966h ; e8 59 ce 6551 6516 add sp, strict byte 00006h ; 83 c4 06 6552 6517 lea sp, [bp-002h] ; 8d 66 fe … … 6554 6519 pop bp ; 5d 6555 6520 retn ; c3 6556 print_boot_failure_: ; 0xf4b 71LB 0x966521 print_boot_failure_: ; 0xf4b16 LB 0x96 6557 6522 push bp ; 55 6558 6523 mov bp, sp ; 89 e5 … … 6565 6530 mov si, cx ; 89 ce 6566 6531 test al, al ; 84 c0 6567 je short 04b a1h ; 74 1b6532 je short 04b46h ; 74 1b 6568 6533 mov bx, 00da0h ; bb a0 0d 6569 6534 mov cx, ds ; 8c d9 6570 6535 mov ax, strict word 00004h ; b8 04 00 6571 call 01923h ; e8 92cd6536 call 01923h ; e8 ed cd 6572 6537 push 00ddah ; 68 da 0d 6573 6538 push 004a8h ; 68 a8 04 6574 6539 push strict byte 00004h ; 6a 04 6575 call 01966h ; e8 ca cd6540 call 01966h ; e8 25 ce 6576 6541 add sp, strict byte 00006h ; 83 c4 06 6577 jmp short 04b e5h ; eb 446542 jmp short 04b8ah ; eb 44 6578 6543 test ah, ah ; 84 e4 6579 je short 04b b5h ; 74 106544 je short 04b5ah ; 74 10 6580 6545 mov bx, 00da0h ; bb a0 0d 6581 6546 mov cx, ds ; 8c d9 6582 6547 mov ax, strict word 00004h ; b8 04 00 6583 call 01923h ; e8 73cd6548 call 01923h ; e8 ce cd 6584 6549 push 00de4h ; 68 e4 0d 6585 jmp short 04b 94h ; eb df6550 jmp short 04b39h ; eb df 6586 6551 test bl, 080h ; f6 c3 80 6587 je short 04b cbh ; 74 116552 je short 04b70h ; 74 11 6588 6553 mov bx, 00da0h ; bb a0 0d 6589 6554 mov cx, ds ; 8c d9 6590 6555 mov ax, strict word 00004h ; b8 04 00 6591 call 01923h ; e8 5ecd6556 call 01923h ; e8 b9 cd 6592 6557 push si ; 56 6593 6558 push 00dd0h ; 68 d0 0d 6594 jmp short 04b dah ; eb 0f6559 jmp short 04b7fh ; eb 0f 6595 6560 mov bx, 00da0h ; bb a0 0d 6596 6561 mov cx, ds ; 8c d9 6597 6562 mov ax, strict word 00004h ; b8 04 00 6598 call 01923h ; e8 4dcd6563 call 01923h ; e8 a8 cd 6599 6564 push si ; 56 6600 6565 push 00dc6h ; 68 c6 0d 6601 6566 push 004bdh ; 68 bd 04 6602 6567 push strict byte 00004h ; 6a 04 6603 call 01966h ; e8 84cd6568 call 01966h ; e8 df cd 6604 6569 add sp, strict byte 00008h ; 83 c4 08 6605 6570 cmp byte [bp+004h], 001h ; 80 7e 04 01 6606 jne short 04b ffh ; 75 146571 jne short 04ba4h ; 75 14 6607 6572 test dl, dl ; 84 d2 6608 jne short 04b f4h ; 75 056573 jne short 04b99h ; 75 05 6609 6574 push 004d5h ; 68 d5 04 6610 jmp short 04b f7h ; eb 036575 jmp short 04b9ch ; eb 03 6611 6576 push 004ffh ; 68 ff 04 6612 6577 push strict byte 00007h ; 6a 07 6613 call 01966h ; e8 6acd6578 call 01966h ; e8 c5 cd 6614 6579 add sp, strict byte 00004h ; 83 c4 04 6615 6580 lea sp, [bp-002h] ; 8d 66 fe … … 6617 6582 pop bp ; 5d 6618 6583 retn 00002h ; c2 02 00 6619 print_cdromboot_failure_: ; 0xf4 c07LB 0x276584 print_cdromboot_failure_: ; 0xf4bac LB 0x27 6620 6585 push bp ; 55 6621 6586 mov bp, sp ; 89 e5 … … 6627 6592 mov cx, ds ; 8c d9 6628 6593 mov ax, strict word 00004h ; b8 04 00 6629 call 01923h ; e8 09cd6594 call 01923h ; e8 64 cd 6630 6595 push dx ; 52 6631 6596 push 00534h ; 68 34 05 6632 6597 push strict byte 00004h ; 6a 04 6633 call 01966h ; e8 43cd6598 call 01966h ; e8 9e cd 6634 6599 add sp, strict byte 00006h ; 83 c4 06 6635 6600 lea sp, [bp-006h] ; 8d 66 fa … … 6639 6604 pop bp ; 5d 6640 6605 retn ; c3 6641 _int19_function: ; 0xf4 c2eLB 0x2716606 _int19_function: ; 0xf4bd3 LB 0x271 6642 6607 push bp ; 55 6643 6608 mov bp, sp ; 89 e5 … … 6647 6612 mov dx, strict word 0000eh ; ba 0e 00 6648 6613 mov ax, strict word 00040h ; b8 40 00 6649 call 0166ch ; e8 2dca6614 call 0166ch ; e8 88 ca 6650 6615 mov bx, ax ; 89 c3 6651 6616 mov word [bp-00eh], ax ; 89 46 f2 6652 6617 mov byte [bp-00ch], 000h ; c6 46 f4 00 6653 6618 mov ax, strict word 0003dh ; b8 3d 00 6654 call 016ach ; e8 5eca6619 call 016ach ; e8 b9 ca 6655 6620 mov dl, al ; 88 c2 6656 6621 xor dh, dh ; 30 f6 6657 6622 mov ax, strict word 00038h ; b8 38 00 6658 call 016ach ; e8 54ca6623 call 016ach ; e8 af ca 6659 6624 and AL, strict byte 0f0h ; 24 f0 6660 6625 xor ah, ah ; 30 e4 … … 6663 6628 or si, ax ; 09 c6 6664 6629 mov ax, strict word 0003ch ; b8 3c 00 6665 call 016ach ; e8 43ca6630 call 016ach ; e8 9e ca 6666 6631 and AL, strict byte 00fh ; 24 0f 6667 6632 xor ah, ah ; 30 e4 … … 6670 6635 mov dx, 0037dh ; ba 7d 03 6671 6636 mov ax, bx ; 89 d8 6672 call 01650h ; e8 d6 c96637 call 01650h ; e8 31 ca 6673 6638 test al, al ; 84 c0 6674 je short 04c 8ah ; 74 0c6639 je short 04c2fh ; 74 0c 6675 6640 mov dx, 0037dh ; ba 7d 03 6676 6641 mov ax, bx ; 89 d8 6677 call 01650h ; e8 ca c96642 call 01650h ; e8 25 ca 6678 6643 xor ah, ah ; 30 e4 6679 6644 mov si, ax ; 89 c6 6680 6645 cmp byte [bp+004h], 001h ; 80 7e 04 01 6681 jne short 04c a0h ; 75 106646 jne short 04c45h ; 75 10 6682 6647 mov ax, strict word 0003ch ; b8 3c 00 6683 call 016ach ; e8 16ca6648 call 016ach ; e8 71 ca 6684 6649 and AL, strict byte 0f0h ; 24 f0 6685 6650 xor ah, ah ; 30 e4 6686 6651 sar ax, 004h ; c1 f8 04 6687 call 07d 8bh ; e8 eb 306652 call 07d10h ; e8 cb 30 6688 6653 cmp byte [bp+004h], 002h ; 80 7e 04 02 6689 jne short 04c a9h ; 75 036654 jne short 04c4eh ; 75 03 6690 6655 shr si, 004h ; c1 ee 04 6691 6656 cmp byte [bp+004h], 003h ; 80 7e 04 03 6692 jne short 04c b2h ; 75 036657 jne short 04c57h ; 75 03 6693 6658 shr si, 008h ; c1 ee 08 6694 6659 cmp byte [bp+004h], 004h ; 80 7e 04 04 6695 jne short 04c bbh ; 75 036660 jne short 04c60h ; 75 03 6696 6661 shr si, 00ch ; c1 ee 0c 6697 6662 cmp si, strict byte 00010h ; 83 fe 10 6698 jnc short 04c c4h ; 73 046663 jnc short 04c69h ; 73 04 6699 6664 mov byte [bp-00ch], 001h ; c6 46 f4 01 6700 6665 xor al, al ; 30 c0 … … 6705 6670 mov cx, ds ; 8c d9 6706 6671 mov ax, strict word 00004h ; b8 04 00 6707 call 01923h ; e8 49cc6672 call 01923h ; e8 a4 cc 6708 6673 push si ; 56 6709 6674 mov al, byte [bp+004h] ; 8a 46 04 … … 6712 6677 push 00554h ; 68 54 05 6713 6678 push strict byte 00004h ; 6a 04 6714 call 01966h ; e8 7dcc6679 call 01966h ; e8 d8 cc 6715 6680 add sp, strict byte 00008h ; 83 c4 08 6716 6681 and si, strict byte 0000fh ; 83 e6 0f 6717 6682 cmp si, strict byte 00002h ; 83 fe 02 6718 jc short 04 d02h ; 72 0e6719 jbe short 04 d11h ; 76 1b6683 jc short 04ca7h ; 72 0e 6684 jbe short 04cb6h ; 76 1b 6720 6685 cmp si, strict byte 00004h ; 83 fe 04 6721 je short 04 d2fh ; 74 346686 je short 04cd4h ; 74 34 6722 6687 cmp si, strict byte 00003h ; 83 fe 03 6723 je short 04 d25h ; 74 256724 jmp short 04d 5eh ; eb 5c6688 je short 04ccah ; 74 25 6689 jmp short 04d03h ; eb 5c 6725 6690 cmp si, strict byte 00001h ; 83 fe 01 6726 jne short 04d 5eh ; 75 576691 jne short 04d03h ; 75 57 6727 6692 xor al, al ; 30 c0 6728 6693 mov byte [bp-006h], al ; 88 46 fa 6729 6694 mov byte [bp-008h], al ; 88 46 f8 6730 jmp short 04d 76h ; eb 656695 jmp short 04d1bh ; eb 65 6731 6696 mov dx, 0037ch ; ba 7c 03 6732 6697 mov ax, word [bp-00eh] ; 8b 46 f2 6733 call 01650h ; e8 36c96698 call 01650h ; e8 91 c9 6734 6699 add AL, strict byte 080h ; 04 80 6735 6700 mov byte [bp-006h], al ; 88 46 fa 6736 6701 mov byte [bp-008h], 000h ; c6 46 f8 00 6737 jmp short 04d 76h ; eb 516702 jmp short 04d1bh ; eb 51 6738 6703 mov byte [bp-006h], 000h ; c6 46 fa 00 6739 6704 mov byte [bp-008h], 001h ; c6 46 f8 01 6740 jmp short 04 d39h ; eb 0a6705 jmp short 04cdeh ; eb 0a 6741 6706 mov byte [bp-00ah], 001h ; c6 46 f6 01 6742 6707 cmp byte [bp-008h], 000h ; 80 7e f8 00 6743 je short 04d 76h ; 74 3d6744 call 03 d18h ; e8 dcef6708 je short 04d1bh ; 74 3d 6709 call 03cd8h ; e8 f7 ef 6745 6710 mov bx, ax ; 89 c3 6746 6711 test AL, strict byte 0ffh ; a8 ff 6747 je short 04d 65h ; 74 236748 call 04 c07h ; e8 c2 fe6712 je short 04d0ah ; 74 23 6713 call 04bach ; e8 c2 fe 6749 6714 mov al, byte [bp-00ch] ; 8a 46 f4 6750 6715 xor ah, ah ; 30 e4 … … 6756 6721 mov al, byte [bp-008h] ; 8a 46 f8 6757 6722 mov cx, strict word 00001h ; b9 01 00 6758 call 04b 71h ; e8 13 fe6723 call 04b16h ; e8 13 fe 6759 6724 xor ax, ax ; 31 c0 6760 6725 xor dx, dx ; 31 d2 6761 jmp near 04e 98h ; e9 33 016726 jmp near 04e3dh ; e9 33 01 6762 6727 mov dx, 00372h ; ba 72 03 6763 6728 mov ax, word [bp-00eh] ; 8b 46 f2 6764 call 0166ch ; e8 fe c86729 call 0166ch ; e8 59 c9 6765 6730 mov di, ax ; 89 c7 6766 6731 shr bx, 008h ; c1 eb 08 6767 6732 mov byte [bp-006h], bl ; 88 5e fa 6768 6733 cmp byte [bp-00ah], 001h ; 80 7e f6 01 6769 jne short 04d d1h ; 75 556734 jne short 04d76h ; 75 55 6770 6735 xor si, si ; 31 f6 6771 6736 mov ax, 0e200h ; b8 00 e2 6772 6737 mov es, ax ; 8e c0 6773 6738 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 6774 jne short 04 d45h ; 75 bb6739 jne short 04ceah ; 75 bb 6775 6740 mov cx, ax ; 89 c1 6776 6741 mov si, word [es:si+01ah] ; 26 8b 74 1a 6777 6742 cmp word [es:si+002h], 0506eh ; 26 81 7c 02 6e 50 6778 jne short 04 d45h ; 75 ad6743 jne short 04ceah ; 75 ad 6779 6744 cmp word [es:si], 05024h ; 26 81 3c 24 50 6780 jne short 04 d45h ; 75 a66745 jne short 04ceah ; 75 a6 6781 6746 mov di, word [es:si+00eh] ; 26 8b 7c 0e 6782 6747 mov dx, word [es:di] ; 26 8b 15 6783 6748 mov ax, word [es:di+002h] ; 26 8b 45 02 6784 6749 cmp ax, 06568h ; 3d 68 65 6785 jne short 04d d3h ; 75 246750 jne short 04d78h ; 75 24 6786 6751 cmp dx, 07445h ; 81 fa 45 74 6787 jne short 04d d3h ; 75 1e6752 jne short 04d78h ; 75 1e 6788 6753 mov bl, byte [bp-006h] ; 8a 5e fa 6789 6754 xor bh, bh ; 30 ff … … 6792 6757 mov al, byte [bp-008h] ; 8a 46 f8 6793 6758 xor ah, ah ; 30 e4 6794 call 04 b26h ; e8 5f fd6759 call 04acbh ; e8 5f fd 6795 6760 mov word [bp-012h], strict word 00006h ; c7 46 ee 06 00 6796 6761 mov word [bp-010h], cx ; 89 4e f0 6797 jmp short 04d f2h ; eb 216798 jmp short 04d f8h ; eb 256762 jmp short 04d97h ; eb 21 6763 jmp short 04d9dh ; eb 25 6799 6764 mov bl, byte [bp-006h] ; 8a 5e fa 6800 6765 xor bh, bh ; 30 ff … … 6803 6768 mov al, byte [bp-008h] ; 8a 46 f8 6804 6769 xor ah, ah ; 30 e4 6805 call 04 b26h ; e8 41 fd6770 call 04acbh ; e8 41 fd 6806 6771 sti ; fb 6807 6772 mov word [bp-010h], cx ; 89 4e f0 … … 6810 6775 mov word [bp-012h], ax ; 89 46 ee 6811 6776 call far [bp-012h] ; ff 5e ee 6812 jmp near 04 d45h ; e9 4d ff6777 jmp near 04ceah ; e9 4d ff 6813 6778 cmp byte [bp-008h], 000h ; 80 7e f8 00 6814 jne short 04 e25h ; 75 276779 jne short 04dcah ; 75 27 6815 6780 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6816 jne short 04 e25h ; 75 216781 jne short 04dcah ; 75 21 6817 6782 mov di, 007c0h ; bf c0 07 6818 6783 mov es, di ; 8e c7 … … 6827 6792 sbb ax, strict byte 00000h ; 83 d8 00 6828 6793 test ax, ax ; 85 c0 6829 je short 04 e25h ; 74 036830 jmp near 04 d45h ; e9 20 ff6794 je short 04dcah ; 74 03 6795 jmp near 04ceah ; e9 20 ff 6831 6796 cmp byte [bp-006h], 000h ; 80 7e fa 00 6832 je short 04 e2fh ; 74 046797 je short 04dd4h ; 74 04 6833 6798 xor bl, bl ; 30 db 6834 jmp short 04 e31h ; eb 026799 jmp short 04dd6h ; eb 02 6835 6800 mov BL, strict byte 001h ; b3 01 6836 6801 cmp byte [bp-008h], 000h ; 80 7e f8 00 6837 je short 04 e39h ; 74 026802 je short 04ddeh ; 74 02 6838 6803 mov BL, strict byte 001h ; b3 01 6839 6804 xor dx, dx ; 31 d2 6840 6805 mov ax, di ; 89 f8 6841 call 0166ch ; e8 2cc86806 call 0166ch ; e8 87 c8 6842 6807 mov si, ax ; 89 c6 6843 6808 mov dx, strict word 00002h ; ba 02 00 6844 6809 mov ax, di ; 89 f8 6845 call 0166ch ; e8 22c86810 call 0166ch ; e8 7d c8 6846 6811 cmp si, ax ; 39 c6 6847 je short 04e 5fh ; 74 116812 je short 04e04h ; 74 11 6848 6813 test bl, bl ; 84 db 6849 jne short 04e 77h ; 75 256814 jne short 04e1ch ; 75 25 6850 6815 mov dx, 001feh ; ba fe 01 6851 6816 mov ax, di ; 89 f8 6852 call 0166ch ; e8 12c86817 call 0166ch ; e8 6d c8 6853 6818 cmp ax, 0aa55h ; 3d 55 aa 6854 je short 04e 77h ; 74 186819 je short 04e1ch ; 74 18 6855 6820 mov al, byte [bp-00ch] ; 8a 46 f4 6856 6821 xor ah, ah ; 30 e4 … … 6862 6827 mov al, byte [bp-008h] ; 8a 46 f8 6863 6828 xor cx, cx ; 31 c9 6864 jmp near 04d 5bh ; e9 e4 fe6829 jmp near 04d00h ; e9 e4 fe 6865 6830 mov bl, byte [bp-006h] ; 8a 5e fa 6866 6831 xor bh, bh ; 30 ff … … 6869 6834 mov al, byte [bp-008h] ; 8a 46 f8 6870 6835 xor ah, ah ; 30 e4 6871 call 04 b26h ; e8 9d fc6836 call 04acbh ; e8 9d fc 6872 6837 mov al, byte [bp-006h] ; 8a 46 fa 6873 6838 xor ah, ah ; 30 e4 … … 6882 6847 pop bp ; 5d 6883 6848 retn ; c3 6884 keyboard_panic_: ; 0xf4e 9fLB 0x136849 keyboard_panic_: ; 0xf4e44 LB 0x13 6885 6850 push bp ; 55 6886 6851 mov bp, sp ; 89 e5 … … 6888 6853 push 00574h ; 68 74 05 6889 6854 push strict byte 00007h ; 6a 07 6890 call 01966h ; e8 bb ca6855 call 01966h ; e8 16 cb 6891 6856 add sp, strict byte 00006h ; 83 c4 06 6892 6857 mov sp, bp ; 89 ec 6893 6858 pop bp ; 5d 6894 6859 retn ; c3 6895 _keyboard_init: ; 0xf4e b2LB 0x26a6860 _keyboard_init: ; 0xf4e57 LB 0x26a 6896 6861 push bp ; 55 6897 6862 mov bp, sp ; 89 e5 … … 6905 6870 ; sub ah, ah ; 2a e4 6906 6871 test AL, strict byte 002h ; a8 02 6907 je short 04e d5h ; 74 0d6872 je short 04e7ah ; 74 0d 6908 6873 dec bx ; 4b 6909 6874 test bx, bx ; 85 db 6910 jbe short 04e d5h ; 76 086875 jbe short 04e7ah ; 76 08 6911 6876 xor al, al ; 30 c0 6912 6877 mov dx, 00080h ; ba 80 00 6913 6878 out DX, AL ; ee 6914 jmp short 04e beh ; eb e96879 jmp short 04e63h ; eb e9 6915 6880 test bx, bx ; 85 db 6916 jne short 04e deh ; 75 056881 jne short 04e83h ; 75 05 6917 6882 xor ax, ax ; 31 c0 6918 call 04e 9fh ; e8 c1 ff6883 call 04e44h ; e8 c1 ff 6919 6884 mov bx, strict word 0ffffh ; bb ff ff 6920 6885 mov dx, strict word 00064h ; ba 64 00 … … 6923 6888 ; sub ah, ah ; 2a e4 6924 6889 test AL, strict byte 001h ; a8 01 6925 jne short 04e f8h ; 75 0d6890 jne short 04e9dh ; 75 0d 6926 6891 dec bx ; 4b 6927 6892 test bx, bx ; 85 db 6928 jbe short 04e f8h ; 76 086893 jbe short 04e9dh ; 76 08 6929 6894 mov AL, strict byte 001h ; b0 01 6930 6895 mov dx, 00080h ; ba 80 00 6931 6896 out DX, AL ; ee 6932 jmp short 04e e1h ; eb e96897 jmp short 04e86h ; eb e9 6933 6898 test bx, bx ; 85 db 6934 jne short 04 f02h ; 75 066899 jne short 04ea7h ; 75 06 6935 6900 mov ax, strict word 00001h ; b8 01 00 6936 call 04e 9fh ; e8 9d ff6901 call 04e44h ; e8 9d ff 6937 6902 mov dx, strict word 00060h ; ba 60 00 6938 6903 in AL, DX ; ec … … 6940 6905 ; sub ah, ah ; 2a e4 6941 6906 cmp ax, strict word 00055h ; 3d 55 00 6942 je short 04 f13h ; 74 066907 je short 04eb8h ; 74 06 6943 6908 mov ax, 003dfh ; b8 df 03 6944 call 04e 9fh ; e8 8c ff6909 call 04e44h ; e8 8c ff 6945 6910 mov AL, strict byte 0abh ; b0 ab 6946 6911 mov dx, strict word 00064h ; ba 64 00 … … 6952 6917 ; sub ah, ah ; 2a e4 6953 6918 test AL, strict byte 002h ; a8 02 6954 je short 04 f33h ; 74 0d6919 je short 04ed8h ; 74 0d 6955 6920 dec bx ; 4b 6956 6921 test bx, bx ; 85 db 6957 jbe short 04 f33h ; 76 086922 jbe short 04ed8h ; 76 08 6958 6923 mov AL, strict byte 010h ; b0 10 6959 6924 mov dx, 00080h ; ba 80 00 6960 6925 out DX, AL ; ee 6961 jmp short 04 f1ch ; eb e96926 jmp short 04ec1h ; eb e9 6962 6927 test bx, bx ; 85 db 6963 jne short 04 f3dh ; 75 066928 jne short 04ee2h ; 75 06 6964 6929 mov ax, strict word 0000ah ; b8 0a 00 6965 call 04e 9fh ; e8 62 ff6930 call 04e44h ; e8 62 ff 6966 6931 mov bx, strict word 0ffffh ; bb ff ff 6967 6932 mov dx, strict word 00064h ; ba 64 00 … … 6970 6935 ; sub ah, ah ; 2a e4 6971 6936 test AL, strict byte 001h ; a8 01 6972 jne short 04 f57h ; 75 0d6937 jne short 04efch ; 75 0d 6973 6938 dec bx ; 4b 6974 6939 test bx, bx ; 85 db 6975 jbe short 04 f57h ; 76 086940 jbe short 04efch ; 76 08 6976 6941 mov AL, strict byte 011h ; b0 11 6977 6942 mov dx, 00080h ; ba 80 00 6978 6943 out DX, AL ; ee 6979 jmp short 04 f40h ; eb e96944 jmp short 04ee5h ; eb e9 6980 6945 test bx, bx ; 85 db 6981 jne short 04f 61h ; 75 066946 jne short 04f06h ; 75 06 6982 6947 mov ax, strict word 0000bh ; b8 0b 00 6983 call 04e 9fh ; e8 3e ff6948 call 04e44h ; e8 3e ff 6984 6949 mov dx, strict word 00060h ; ba 60 00 6985 6950 in AL, DX ; ec … … 6987 6952 ; sub ah, ah ; 2a e4 6988 6953 test ax, ax ; 85 c0 6989 je short 04f 71h ; 74 066954 je short 04f16h ; 74 06 6990 6955 mov ax, 003e0h ; b8 e0 03 6991 call 04e 9fh ; e8 2e ff6956 call 04e44h ; e8 2e ff 6992 6957 mov AL, strict byte 0ffh ; b0 ff 6993 6958 mov dx, strict word 00060h ; ba 60 00 … … 6999 6964 ; sub ah, ah ; 2a e4 7000 6965 test AL, strict byte 002h ; a8 02 7001 je short 04f 91h ; 74 0d6966 je short 04f36h ; 74 0d 7002 6967 dec bx ; 4b 7003 6968 test bx, bx ; 85 db 7004 jbe short 04f 91h ; 76 086969 jbe short 04f36h ; 76 08 7005 6970 mov AL, strict byte 020h ; b0 20 7006 6971 mov dx, 00080h ; ba 80 00 7007 6972 out DX, AL ; ee 7008 jmp short 04f 7ah ; eb e96973 jmp short 04f1fh ; eb e9 7009 6974 test bx, bx ; 85 db 7010 jne short 04f 9bh ; 75 066975 jne short 04f40h ; 75 06 7011 6976 mov ax, strict word 00014h ; b8 14 00 7012 call 04e 9fh ; e8 04 ff6977 call 04e44h ; e8 04 ff 7013 6978 mov bx, strict word 0ffffh ; bb ff ff 7014 6979 mov dx, strict word 00064h ; ba 64 00 … … 7017 6982 ; sub ah, ah ; 2a e4 7018 6983 test AL, strict byte 001h ; a8 01 7019 jne short 04f b5h ; 75 0d6984 jne short 04f5ah ; 75 0d 7020 6985 dec bx ; 4b 7021 6986 test bx, bx ; 85 db 7022 jbe short 04f b5h ; 76 086987 jbe short 04f5ah ; 76 08 7023 6988 mov AL, strict byte 021h ; b0 21 7024 6989 mov dx, 00080h ; ba 80 00 7025 6990 out DX, AL ; ee 7026 jmp short 04f 9eh ; eb e96991 jmp short 04f43h ; eb e9 7027 6992 test bx, bx ; 85 db 7028 jne short 04f bfh ; 75 066993 jne short 04f64h ; 75 06 7029 6994 mov ax, strict word 00015h ; b8 15 00 7030 call 04e 9fh ; e8 e0 fe6995 call 04e44h ; e8 e0 fe 7031 6996 mov dx, strict word 00060h ; ba 60 00 7032 6997 in AL, DX ; ec … … 7034 6999 ; sub ah, ah ; 2a e4 7035 7000 cmp ax, 000fah ; 3d fa 00 7036 je short 04f d0h ; 74 067001 je short 04f75h ; 74 06 7037 7002 mov ax, 003e1h ; b8 e1 03 7038 call 04e 9fh ; e8 cf fe7003 call 04e44h ; e8 cf fe 7039 7004 mov dx, strict word 00064h ; ba 64 00 7040 7005 in AL, DX ; ec … … 7042 7007 ; sub ah, ah ; 2a e4 7043 7008 test AL, strict byte 001h ; a8 01 7044 jne short 04f e2h ; 75 087009 jne short 04f87h ; 75 08 7045 7010 mov AL, strict byte 031h ; b0 31 7046 7011 mov dx, 00080h ; ba 80 00 7047 7012 out DX, AL ; ee 7048 jmp short 04f d0h ; eb ee7013 jmp short 04f75h ; eb ee 7049 7014 mov dx, strict word 00060h ; ba 60 00 7050 7015 in AL, DX ; ec … … 7052 7017 ; sub ah, ah ; 2a e4 7053 7018 cmp ax, 000aah ; 3d aa 00 7054 je short 04f fbh ; 74 0e7019 je short 04fa0h ; 74 0e 7055 7020 in AL, DX ; ec 7056 7021 db 02ah, 0e4h 7057 7022 ; sub ah, ah ; 2a e4 7058 7023 cmp ax, 000aah ; 3d aa 00 7059 je short 04f fbh ; 74 067024 je short 04fa0h ; 74 06 7060 7025 mov ax, 003e2h ; b8 e2 03 7061 call 04e 9fh ; e8 a4 fe7026 call 04e44h ; e8 a4 fe 7062 7027 mov AL, strict byte 0f5h ; b0 f5 7063 7028 mov dx, strict word 00060h ; ba 60 00 … … 7069 7034 ; sub ah, ah ; 2a e4 7070 7035 test AL, strict byte 002h ; a8 02 7071 je short 0 501bh ; 74 0d7036 je short 04fc0h ; 74 0d 7072 7037 dec bx ; 4b 7073 7038 test bx, bx ; 85 db 7074 jbe short 0 501bh ; 76 087039 jbe short 04fc0h ; 76 08 7075 7040 mov AL, strict byte 040h ; b0 40 7076 7041 mov dx, 00080h ; ba 80 00 7077 7042 out DX, AL ; ee 7078 jmp short 0 5004h ; eb e97043 jmp short 04fa9h ; eb e9 7079 7044 test bx, bx ; 85 db 7080 jne short 0 5025h ; 75 067045 jne short 04fcah ; 75 06 7081 7046 mov ax, strict word 00028h ; b8 28 00 7082 call 04e 9fh ; e8 7a fe7047 call 04e44h ; e8 7a fe 7083 7048 mov bx, strict word 0ffffh ; bb ff ff 7084 7049 mov dx, strict word 00064h ; ba 64 00 … … 7087 7052 ; sub ah, ah ; 2a e4 7088 7053 test AL, strict byte 001h ; a8 01 7089 jne short 0 503fh ; 75 0d7054 jne short 04fe4h ; 75 0d 7090 7055 dec bx ; 4b 7091 7056 test bx, bx ; 85 db 7092 jbe short 0 503fh ; 76 087057 jbe short 04fe4h ; 76 08 7093 7058 mov AL, strict byte 041h ; b0 41 7094 7059 mov dx, 00080h ; ba 80 00 7095 7060 out DX, AL ; ee 7096 jmp short 0 5028h ; eb e97061 jmp short 04fcdh ; eb e9 7097 7062 test bx, bx ; 85 db 7098 jne short 0 5049h ; 75 067063 jne short 04feeh ; 75 06 7099 7064 mov ax, strict word 00029h ; b8 29 00 7100 call 04e 9fh ; e8 56 fe7065 call 04e44h ; e8 56 fe 7101 7066 mov dx, strict word 00060h ; ba 60 00 7102 7067 in AL, DX ; ec … … 7104 7069 ; sub ah, ah ; 2a e4 7105 7070 cmp ax, 000fah ; 3d fa 00 7106 je short 0 505ah ; 74 067071 je short 04fffh ; 74 06 7107 7072 mov ax, 003e3h ; b8 e3 03 7108 call 04e 9fh ; e8 45 fe7073 call 04e44h ; e8 45 fe 7109 7074 mov AL, strict byte 060h ; b0 60 7110 7075 mov dx, strict word 00064h ; ba 64 00 … … 7116 7081 ; sub ah, ah ; 2a e4 7117 7082 test AL, strict byte 002h ; a8 02 7118 je short 050 7ah ; 74 0d7083 je short 0501fh ; 74 0d 7119 7084 dec bx ; 4b 7120 7085 test bx, bx ; 85 db 7121 jbe short 050 7ah ; 76 087086 jbe short 0501fh ; 76 08 7122 7087 mov AL, strict byte 050h ; b0 50 7123 7088 mov dx, 00080h ; ba 80 00 7124 7089 out DX, AL ; ee 7125 jmp short 050 63h ; eb e97090 jmp short 05008h ; eb e9 7126 7091 test bx, bx ; 85 db 7127 jne short 050 84h ; 75 067092 jne short 05029h ; 75 06 7128 7093 mov ax, strict word 00032h ; b8 32 00 7129 call 04e 9fh ; e8 1b fe7094 call 04e44h ; e8 1b fe 7130 7095 mov AL, strict byte 065h ; b0 65 7131 7096 mov dx, strict word 00060h ; ba 60 00 … … 7137 7102 ; sub ah, ah ; 2a e4 7138 7103 test AL, strict byte 002h ; a8 02 7139 je short 050 a4h ; 74 0d7104 je short 05049h ; 74 0d 7140 7105 dec bx ; 4b 7141 7106 test bx, bx ; 85 db 7142 jbe short 050 a4h ; 76 087107 jbe short 05049h ; 76 08 7143 7108 mov AL, strict byte 060h ; b0 60 7144 7109 mov dx, 00080h ; ba 80 00 7145 7110 out DX, AL ; ee 7146 jmp short 050 8dh ; eb e97111 jmp short 05032h ; eb e9 7147 7112 test bx, bx ; 85 db 7148 jne short 050 aeh ; 75 067113 jne short 05053h ; 75 06 7149 7114 mov ax, strict word 0003ch ; b8 3c 00 7150 call 04e 9fh ; e8 f1 fd7115 call 04e44h ; e8 f1 fd 7151 7116 mov AL, strict byte 0f4h ; b0 f4 7152 7117 mov dx, strict word 00060h ; ba 60 00 … … 7158 7123 ; sub ah, ah ; 2a e4 7159 7124 test AL, strict byte 002h ; a8 02 7160 je short 050 ceh ; 74 0d7125 je short 05073h ; 74 0d 7161 7126 dec bx ; 4b 7162 7127 test bx, bx ; 85 db 7163 jbe short 050 ceh ; 76 087128 jbe short 05073h ; 76 08 7164 7129 mov AL, strict byte 070h ; b0 70 7165 7130 mov dx, 00080h ; ba 80 00 7166 7131 out DX, AL ; ee 7167 jmp short 050 b7h ; eb e97132 jmp short 0505ch ; eb e9 7168 7133 test bx, bx ; 85 db 7169 jne short 050 d8h ; 75 067134 jne short 0507dh ; 75 06 7170 7135 mov ax, strict word 00046h ; b8 46 00 7171 call 04e 9fh ; e8 c7 fd7136 call 04e44h ; e8 c7 fd 7172 7137 mov bx, strict word 0ffffh ; bb ff ff 7173 7138 mov dx, strict word 00064h ; ba 64 00 … … 7176 7141 ; sub ah, ah ; 2a e4 7177 7142 test AL, strict byte 001h ; a8 01 7178 jne short 050 f2h ; 75 0d7143 jne short 05097h ; 75 0d 7179 7144 dec bx ; 4b 7180 7145 test bx, bx ; 85 db 7181 jbe short 050 f2h ; 76 087146 jbe short 05097h ; 76 08 7182 7147 mov AL, strict byte 071h ; b0 71 7183 7148 mov dx, 00080h ; ba 80 00 7184 7149 out DX, AL ; ee 7185 jmp short 050 dbh ; eb e97150 jmp short 05080h ; eb e9 7186 7151 test bx, bx ; 85 db 7187 jne short 050 fch ; 75 067152 jne short 050a1h ; 75 06 7188 7153 mov ax, strict word 00046h ; b8 46 00 7189 call 04e 9fh ; e8 a3 fd7154 call 04e44h ; e8 a3 fd 7190 7155 mov dx, strict word 00060h ; ba 60 00 7191 7156 in AL, DX ; ec … … 7193 7158 ; sub ah, ah ; 2a e4 7194 7159 cmp ax, 000fah ; 3d fa 00 7195 je short 05 10dh ; 74 067160 je short 050b2h ; 74 06 7196 7161 mov ax, 003e4h ; b8 e4 03 7197 call 04e 9fh ; e8 92 fd7162 call 04e44h ; e8 92 fd 7198 7163 mov AL, strict byte 0a8h ; b0 a8 7199 7164 mov dx, strict word 00064h ; ba 64 00 7200 7165 out DX, AL ; ee 7201 7166 xor ax, ax ; 31 c0 7202 call 065 8ch ; e8 74147167 call 06513h ; e8 56 14 7203 7168 mov sp, bp ; 89 ec 7204 7169 pop bp ; 5d 7205 7170 retn ; c3 7206 enqueue_key_: ; 0xf5 11cLB 0x9e7171 enqueue_key_: ; 0xf50c1 LB 0x9e 7207 7172 push bp ; 55 7208 7173 mov bp, sp ; 89 e5 … … 7216 7181 mov dx, strict word 0001ah ; ba 1a 00 7217 7182 mov ax, strict word 00040h ; b8 40 00 7218 call 0166ch ; e8 3ac57183 call 0166ch ; e8 95 c5 7219 7184 mov di, ax ; 89 c7 7220 7185 mov dx, strict word 0001ch ; ba 1c 00 7221 7186 mov ax, strict word 00040h ; b8 40 00 7222 call 0166ch ; e8 2fc57187 call 0166ch ; e8 8a c5 7223 7188 mov si, ax ; 89 c6 7224 7189 lea cx, [si+002h] ; 8d 4c 02 7225 7190 cmp cx, strict byte 0003eh ; 83 f9 3e 7226 jc short 05 14ah ; 72 037191 jc short 050efh ; 72 03 7227 7192 mov cx, strict word 0001eh ; b9 1e 00 7228 7193 cmp cx, di ; 39 f9 7229 jne short 05 152h ; 75 047194 jne short 050f7h ; 75 04 7230 7195 xor ax, ax ; 31 c0 7231 jmp short 051 7ch ; eb 2a7196 jmp short 05121h ; eb 2a 7232 7197 mov al, bl ; 88 d8 7233 7198 xor ah, ah ; 30 e4 … … 7235 7200 mov dx, si ; 89 f2 7236 7201 mov ax, strict word 00040h ; b8 40 00 7237 call 0165eh ; e8 fe c47202 call 0165eh ; e8 59 c5 7238 7203 mov bl, byte [bp-00ah] ; 8a 5e f6 7239 7204 xor bh, bh ; 30 ff 7240 7205 lea dx, [si+001h] ; 8d 54 01 7241 7206 mov ax, strict word 00040h ; b8 40 00 7242 call 0165eh ; e8 f0 c47207 call 0165eh ; e8 4b c5 7243 7208 mov bx, cx ; 89 cb 7244 7209 mov dx, strict word 0001ch ; ba 1c 00 7245 7210 mov ax, strict word 00040h ; b8 40 00 7246 call 0167ah ; e8 01c57211 call 0167ah ; e8 5c c5 7247 7212 mov ax, strict word 00001h ; b8 01 00 7248 7213 lea sp, [bp-008h] ; 8d 66 f8 … … 7263 7228 cmp bh, byte [bx+si] ; 3a 38 7264 7229 sub bl, byte [ss:di] ; 36 2a 1d 7265 clc ; f87230 popfw ; 9d 7266 7231 push sp ; 54 7267 mov AL, strict byte 052h ; b0 527232 push bp ; 55 7268 7233 push dx ; 52 7234 not word [bx+di-009h] ; f7 51 f7 7235 push cx ; 51 7236 in AL, strict byte 052h ; e4 52 7237 into ; ce 7238 push cx ; 51 7239 push 0dc53h ; 68 53 dc 7240 push bx ; 53 7241 adc word [si+061h], strict byte 00054h ; 83 54 61 54 7242 pushfw ; 9c 7269 7243 push dx ; 52 7270 push dx ; 527271 push dx ; 527272 aas ; 3f7273 push bx ;537274 sub word [bp+si-03dh], dx ; 29 52 c37275 push bx ; 537276 aaa ; 377244 not word [bx+di-009h] ; f7 51 f7 7245 push cx ; 51 7246 db 026h, 053h 7247 ; es push bx ; 26 53 7248 in AL, DX ; ec 7249 push cx ; 51 7250 mov sp, 04153h ; bc 53 41 7277 7251 push sp ; 54 7278 ficom word [si-044h] ; de 54 bc 7279 push sp ; 54 7280 not word [bp+si+052h] ; f7 52 52 7281 push dx ; 52 7282 push dx ; 52 7283 push dx ; 52 7284 adc word [bp+di+047h], 01752h ; 81 53 47 52 17 7285 push sp ; 54 7286 pushfw ; 9c 7287 push sp ; 54 7288 xlatb ; d7 7289 push sp ; 54 7290 _int09_function: ; 0xf51ba LB 0x494 7252 jl short 051b3h ; 7c 54 7253 _int09_function: ; 0xf515f LB 0x494 7291 7254 push bp ; 55 7292 7255 mov bp, sp ; 89 e5 … … 7296 7259 mov byte [bp-00ah], al ; 88 46 f6 7297 7260 test al, al ; 84 c0 7298 jne short 051 e4h ; 75 197261 jne short 05189h ; 75 19 7299 7262 mov bx, 00da0h ; bb a0 0d 7300 7263 mov cx, ds ; 8c d9 7301 7264 mov ax, strict word 00004h ; b8 04 00 7302 call 01923h ; e8 4dc77265 call 01923h ; e8 a8 c7 7303 7266 push 00587h ; 68 87 05 7304 7267 push strict byte 00004h ; 6a 04 7305 call 01966h ; e8 88c77268 call 01966h ; e8 e3 c7 7306 7269 add sp, strict byte 00004h ; 83 c4 04 7307 jmp near 052 aah ; e9 c6 007270 jmp near 0524fh ; e9 c6 00 7308 7271 mov dx, strict word 00018h ; ba 18 00 7309 7272 mov ax, strict word 00040h ; b8 40 00 7310 call 01650h ; e8 63c47273 call 01650h ; e8 be c4 7311 7274 mov byte [bp-010h], al ; 88 46 f0 7312 7275 mov byte [bp-008h], al ; 88 46 f8 7313 7276 mov dx, 00096h ; ba 96 00 7314 7277 mov ax, strict word 00040h ; b8 40 00 7315 call 01650h ; e8 54c47278 call 01650h ; e8 af c4 7316 7279 mov byte [bp-004h], al ; 88 46 fc 7317 7280 mov byte [bp-00ch], al ; 88 46 f4 7318 7281 mov dx, strict word 00017h ; ba 17 00 7319 7282 mov ax, strict word 00040h ; b8 40 00 7320 call 01650h ; e8 45c47283 call 01650h ; e8 a0 c4 7321 7284 mov byte [bp-006h], al ; 88 46 fa 7322 7285 mov byte [bp-00eh], al ; 88 46 f2 … … 7325 7288 pop ES ; 07 7326 7289 mov cx, strict word 00012h ; b9 12 00 7327 mov di, 051 85h ; bf 85517290 mov di, 0512ah ; bf 2a 51 7328 7291 repne scasb ; f2 ae 7329 7292 sal cx, 1 ; d1 e1 7330 7293 mov di, cx ; 89 cf 7331 mov ax, word [cs:di+051 96h] ; 2e 8b 85 96517294 mov ax, word [cs:di+0513bh] ; 2e 8b 85 3b 51 7332 7295 jmp ax ; ff e0 7333 7296 xor byte [bp-00eh], 040h ; 80 76 f2 40 … … 7337 7300 mov dx, strict word 00017h ; ba 17 00 7338 7301 mov ax, strict word 00040h ; b8 40 00 7339 call 0165eh ; e8 21c47302 call 0165eh ; e8 7c c4 7340 7303 or byte [bp-008h], 040h ; 80 4e f8 40 7341 7304 mov al, byte [bp-008h] ; 8a 46 f8 7342 jmp near 054 c8h ; e9 81 027305 jmp near 0546dh ; e9 81 02 7343 7306 mov al, byte [bp-010h] ; 8a 46 f0 7344 7307 and AL, strict byte 0bfh ; 24 bf 7345 7308 mov byte [bp-008h], al ; 88 46 f8 7346 jmp near 054 c8h ; e9 76 027309 jmp near 0546dh ; e9 76 02 7347 7310 test byte [bp-00ch], 002h ; f6 46 f4 02 7348 jne short 052 8bh ; 75 337311 jne short 05230h ; 75 33 7349 7312 mov al, byte [bp-00ah] ; 8a 46 f6 7350 7313 and AL, strict byte 07fh ; 24 7f 7351 7314 cmp AL, strict byte 02ah ; 3c 2a 7352 jne short 052 66h ; 75 057315 jne short 0520bh ; 75 05 7353 7316 mov dx, strict word 00002h ; ba 02 00 7354 jmp short 052 69h ; eb 037317 jmp short 0520eh ; eb 03 7355 7318 mov dx, strict word 00001h ; ba 01 00 7356 7319 test byte [bp-00ah], 080h ; f6 46 f6 80 7357 je short 052 78h ; 74 097320 je short 0521dh ; 74 09 7358 7321 mov al, dl ; 88 d0 7359 7322 not al ; f6 d0 7360 7323 and byte [bp-00eh], al ; 20 46 f2 7361 jmp short 052 7bh ; eb 037324 jmp short 05220h ; eb 03 7362 7325 or byte [bp-00eh], dl ; 08 56 f2 7363 7326 mov al, byte [bp-00eh] ; 8a 46 f2 … … 7366 7329 mov dx, strict word 00017h ; ba 17 00 7367 7330 mov ax, strict word 00040h ; b8 40 00 7368 call 0165eh ; e8 d3 c37331 call 0165eh ; e8 2e c4 7369 7332 mov al, byte [bp-00ah] ; 8a 46 f6 7370 7333 and AL, strict byte 07fh ; 24 7f 7371 7334 cmp AL, strict byte 01dh ; 3c 1d 7372 je short 052 98h ; 74 047335 je short 0523dh ; 74 04 7373 7336 and byte [bp-00ch], 0feh ; 80 66 f4 fe 7374 7337 and byte [bp-00ch], 0fdh ; 80 66 f4 fd … … 7377 7340 mov dx, 00096h ; ba 96 00 7378 7341 mov ax, strict word 00040h ; b8 40 00 7379 call 0165eh ; e8 b4 c37342 call 0165eh ; e8 0f c4 7380 7343 lea sp, [bp-002h] ; 8d 66 fe 7381 7344 pop di ; 5f … … 7383 7346 retn ; c3 7384 7347 test byte [bp-004h], 001h ; f6 46 fc 01 7385 jne short 052 8bh ; 75 d57348 jne short 05230h ; 75 d5 7386 7349 mov al, byte [bp-006h] ; 8a 46 fa 7387 7350 or AL, strict byte 004h ; 0c 04 … … 7391 7354 mov dx, strict word 00017h ; ba 17 00 7392 7355 mov ax, strict word 00040h ; b8 40 00 7393 call 0165eh ; e8 93c37356 call 0165eh ; e8 ee c3 7394 7357 mov al, byte [bp-004h] ; 8a 46 fc 7395 7358 test AL, strict byte 002h ; a8 02 7396 je short 052 e0h ; 74 0e7359 je short 05285h ; 74 0e 7397 7360 or AL, strict byte 004h ; 0c 04 7398 7361 mov byte [bp-00ch], al ; 88 46 f4 … … 7400 7363 mov bx, ax ; 89 c3 7401 7364 mov dx, 00096h ; ba 96 00 7402 jmp short 052 efh ; eb 0f7365 jmp short 05294h ; eb 0f 7403 7366 mov al, byte [bp-010h] ; 8a 46 f0 7404 7367 or AL, strict byte 001h ; 0c 01 … … 7408 7371 mov dx, strict word 00018h ; ba 18 00 7409 7372 mov ax, strict word 00040h ; b8 40 00 7410 call 0165eh ; e8 69c37411 jmp short 052 8bh ; eb 947373 call 0165eh ; e8 c4 c3 7374 jmp short 05230h ; eb 94 7412 7375 test byte [bp-004h], 001h ; f6 46 fc 01 7413 jne short 052 8bh ; 75 8e7376 jne short 05230h ; 75 8e 7414 7377 mov al, byte [bp-006h] ; 8a 46 fa 7415 7378 and AL, strict byte 0fbh ; 24 fb … … 7419 7382 mov dx, strict word 00017h ; ba 17 00 7420 7383 mov ax, strict word 00040h ; b8 40 00 7421 call 0165eh ; e8 4cc37384 call 0165eh ; e8 a7 c3 7422 7385 mov al, byte [bp-004h] ; 8a 46 fc 7423 7386 test AL, strict byte 002h ; a8 02 7424 je short 05 327h ; 74 0e7387 je short 052cch ; 74 0e 7425 7388 and AL, strict byte 0fbh ; 24 fb 7426 7389 mov byte [bp-00ch], al ; 88 46 f4 … … 7428 7391 mov bx, ax ; 89 c3 7429 7392 mov dx, 00096h ; ba 96 00 7430 jmp short 05 336h ; eb 0f7393 jmp short 052dbh ; eb 0f 7431 7394 mov al, byte [bp-010h] ; 8a 46 f0 7432 7395 and AL, strict byte 0feh ; 24 fe … … 7436 7399 mov dx, strict word 00018h ; ba 18 00 7437 7400 mov ax, strict word 00040h ; b8 40 00 7438 call 0165eh ; e8 22c37439 jmp near 052 8bh ; e9 4c ff7401 call 0165eh ; e8 7d c3 7402 jmp near 05230h ; e9 4c ff 7440 7403 mov al, byte [bp-006h] ; 8a 46 fa 7441 7404 or AL, strict byte 008h ; 0c 08 … … 7445 7408 mov dx, strict word 00017h ; ba 17 00 7446 7409 mov ax, strict word 00040h ; b8 40 00 7447 call 0165eh ; e8 0ac37410 call 0165eh ; e8 65 c3 7448 7411 mov al, byte [bp-004h] ; 8a 46 fc 7449 7412 test AL, strict byte 002h ; a8 02 7450 je short 053 69h ; 74 0e7413 je short 0530eh ; 74 0e 7451 7414 or AL, strict byte 008h ; 0c 08 7452 7415 mov byte [bp-00ch], al ; 88 46 f4 … … 7454 7417 mov bx, ax ; 89 c3 7455 7418 mov dx, 00096h ; ba 96 00 7456 jmp short 053 78h ; eb 0f7419 jmp short 0531dh ; eb 0f 7457 7420 mov al, byte [bp-010h] ; 8a 46 f0 7458 7421 or AL, strict byte 002h ; 0c 02 … … 7462 7425 mov dx, strict word 00018h ; ba 18 00 7463 7426 mov ax, strict word 00040h ; b8 40 00 7464 call 0165eh ; e8 e0 c27465 jmp near 052 8bh ; e9 0a ff7427 call 0165eh ; e8 3b c3 7428 jmp near 05230h ; e9 0a ff 7466 7429 mov al, byte [bp-006h] ; 8a 46 fa 7467 7430 and AL, strict byte 0f7h ; 24 f7 … … 7471 7434 mov dx, strict word 00017h ; ba 17 00 7472 7435 mov ax, strict word 00040h ; b8 40 00 7473 call 0165eh ; e8 c8 c27436 call 0165eh ; e8 23 c3 7474 7437 mov al, byte [bp-004h] ; 8a 46 fc 7475 7438 test AL, strict byte 002h ; a8 02 7476 je short 053 abh ; 74 0e7439 je short 05350h ; 74 0e 7477 7440 and AL, strict byte 0f7h ; 24 f7 7478 7441 mov byte [bp-00ch], al ; 88 46 f4 … … 7480 7443 mov bx, ax ; 89 c3 7481 7444 mov dx, 00096h ; ba 96 00 7482 jmp short 053 bah ; eb 0f7445 jmp short 0535fh ; eb 0f 7483 7446 mov al, byte [bp-010h] ; 8a 46 f0 7484 7447 and AL, strict byte 0fdh ; 24 fd … … 7488 7451 mov dx, strict word 00018h ; ba 18 00 7489 7452 mov ax, strict word 00040h ; b8 40 00 7490 call 0165eh ; e8 9ec27491 jmp near 052 8bh ; e9 c8 fe7453 call 0165eh ; e8 f9 c2 7454 jmp near 05230h ; e9 c8 fe 7492 7455 test byte [bp-004h], 003h ; f6 46 fc 03 7493 jne short 053 e9h ; 75 207456 jne short 0538eh ; 75 20 7494 7457 mov al, byte [bp-010h] ; 8a 46 f0 7495 7458 or AL, strict byte 020h ; 0c 20 … … 7499 7462 mov dx, strict word 00018h ; ba 18 00 7500 7463 mov ax, strict word 00040h ; b8 40 00 7501 call 0165eh ; e8 80c27464 call 0165eh ; e8 db c2 7502 7465 mov al, byte [bp-006h] ; 8a 46 fa 7503 7466 xor AL, strict byte 020h ; 34 20 7504 7467 mov byte [bp-00eh], al ; 88 46 f2 7505 jmp near 052 7eh ; e9 95 fe7468 jmp near 05223h ; e9 95 fe 7506 7469 mov al, byte [bp-010h] ; 8a 46 f0 7507 7470 or AL, strict byte 008h ; 0c 08 … … 7511 7474 mov dx, strict word 00018h ; ba 18 00 7512 7475 mov ax, strict word 00040h ; b8 40 00 7513 call 0165eh ; e8 60c27476 call 0165eh ; e8 bb c2 7514 7477 mov AL, strict byte 0aeh ; b0 ae 7515 7478 mov dx, strict word 00064h ; ba 64 00 7516 7479 out DX, AL ; ee 7517 call 0e034h ; e8 2d8c7480 call 0e034h ; e8 88 8c 7518 7481 mov dx, strict word 00018h ; ba 18 00 7519 7482 mov ax, strict word 00040h ; b8 40 00 7520 call 01650h ; e8 40c27483 call 01650h ; e8 9b c2 7521 7484 test AL, strict byte 008h ; a8 08 7522 jne short 05 407h ; 75 f37523 jmp near 052 8bh ; e9 74 fe7485 jne short 053ach ; 75 f3 7486 jmp near 05230h ; e9 74 fe 7524 7487 test byte [bp-004h], 003h ; f6 46 fc 03 7525 je short 05 420h ; 74 037526 jmp near 052 8bh ; e9 6b fe7488 je short 053c5h ; 74 03 7489 jmp near 05230h ; e9 6b fe 7527 7490 mov al, byte [bp-010h] ; 8a 46 f0 7528 7491 and AL, strict byte 0dfh ; 24 df … … 7532 7495 mov dx, strict word 00018h ; ba 18 00 7533 7496 mov ax, strict word 00040h ; b8 40 00 7534 call 0165eh ; e8 29c27535 jmp short 05 41dh ; eb e67497 call 0165eh ; e8 84 c2 7498 jmp short 053c2h ; eb e6 7536 7499 test byte [bp-004h], 002h ; f6 46 fc 02 7537 je short 054 70h ; 74 337500 je short 05415h ; 74 33 7538 7501 mov dx, strict word 0001ah ; ba 1a 00 7539 7502 mov ax, strict word 00040h ; b8 40 00 7540 call 0166ch ; e8 26c27503 call 0166ch ; e8 81 c2 7541 7504 mov bx, ax ; 89 c3 7542 7505 mov dx, strict word 0001ch ; ba 1c 00 7543 7506 mov ax, strict word 00040h ; b8 40 00 7544 call 0167ah ; e8 29c27507 call 0167ah ; e8 84 c2 7545 7508 mov bx, 00080h ; bb 80 00 7546 7509 mov dx, strict word 00071h ; ba 71 00 7547 7510 mov ax, strict word 00040h ; b8 40 00 7548 call 0165eh ; e8 01c27511 call 0165eh ; e8 5c c2 7549 7512 mov AL, strict byte 0aeh ; b0 ae 7550 7513 mov dx, strict word 00064h ; ba 64 00 … … 7555 7518 xor dx, dx ; 31 d2 7556 7519 xor ax, ax ; 31 c0 7557 call 05 11ch ; e8 ae fc7558 jmp short 05 41dh ; eb ad7520 call 050c1h ; e8 ae fc 7521 jmp short 053c2h ; eb ad 7559 7522 mov al, byte [bp-010h] ; 8a 46 f0 7560 7523 or AL, strict byte 010h ; 0c 10 … … 7564 7527 mov dx, strict word 00018h ; ba 18 00 7565 7528 mov ax, strict word 00040h ; b8 40 00 7566 call 0165eh ; e8 d9 c17529 call 0165eh ; e8 34 c2 7567 7530 mov al, byte [bp-006h] ; 8a 46 fa 7568 7531 xor AL, strict byte 010h ; 34 10 … … 7572 7535 mov dx, strict word 00017h ; ba 17 00 7573 7536 mov ax, strict word 00040h ; b8 40 00 7574 call 0165eh ; e8 c4 c17575 jmp short 05 41dh ; eb 817537 call 0165eh ; e8 1f c2 7538 jmp short 053c2h ; eb 81 7576 7539 test byte [bp-004h], 002h ; f6 46 fc 02 7577 je short 054 a5h ; 74 037578 jmp near 052 8bh ; e9 e6 fd7540 je short 0544ah ; 74 03 7541 jmp near 05230h ; e9 e6 fd 7579 7542 mov al, byte [bp-010h] ; 8a 46 f0 7580 7543 and AL, strict byte 0efh ; 24 ef … … 7584 7547 mov dx, strict word 00018h ; ba 18 00 7585 7548 mov ax, strict word 00040h ; b8 40 00 7586 call 0165eh ; e8 a4c17587 jmp short 054 a2h ; eb e67549 call 0165eh ; e8 ff c1 7550 jmp short 05447h ; eb e6 7588 7551 mov al, byte [bp-010h] ; 8a 46 f0 7589 7552 test AL, strict byte 004h ; a8 04 7590 jne short 054 a2h ; 75 df7553 jne short 05447h ; 75 df 7591 7554 or AL, strict byte 004h ; 0c 04 7592 7555 mov byte [bp-008h], al ; 88 46 f8 … … 7595 7558 mov dx, strict word 00018h ; ba 18 00 7596 7559 mov ax, strict word 00040h ; b8 40 00 7597 call 0165eh ; e8 89c17598 jmp short 054 a2h ; eb cb7560 call 0165eh ; e8 e4 c1 7561 jmp short 05447h ; eb cb 7599 7562 mov al, byte [bp-010h] ; 8a 46 f0 7600 7563 and AL, strict byte 0fbh ; 24 fb 7601 jmp short 054 aah ; eb cc7564 jmp short 0544fh ; eb cc 7602 7565 mov al, byte [bp-006h] ; 8a 46 fa 7603 7566 and AL, strict byte 00ch ; 24 0c 7604 7567 cmp AL, strict byte 00ch ; 3c 0c 7605 jne short 054 f8h ; 75 117568 jne short 0549dh ; 75 11 7606 7569 mov bx, 01234h ; bb 34 12 7607 7570 mov dx, strict word 00072h ; ba 72 00 7608 7571 mov ax, strict word 00040h ; b8 40 00 7609 call 0167ah ; e8 87c17572 call 0167ah ; e8 e2 c1 7610 7573 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 7611 7574 test byte [bp-008h], 008h ; f6 46 f8 08 7612 je short 05 50dh ; 74 0f7575 je short 054b2h ; 74 0f 7613 7576 and byte [bp-008h], 0f7h ; 80 66 f8 f7 7614 7577 mov bl, byte [bp-008h] ; 8a 5e f8 7615 7578 xor bh, bh ; 30 ff 7616 7579 mov dx, strict word 00018h ; ba 18 00 7617 jmp near 052 a4h ; e9 97 fd7580 jmp near 05249h ; e9 97 fd 7618 7581 mov al, byte [bp-00ah] ; 8a 46 f6 7619 7582 test AL, strict byte 080h ; a8 80 7620 je short 05 54bh ; 74 377583 je short 054f0h ; 74 37 7621 7584 cmp AL, strict byte 0fah ; 3c fa 7622 jne short 05 52ah ; 75 127585 jne short 054cfh ; 75 12 7623 7586 mov dx, 00097h ; ba 97 00 7624 7587 mov ax, strict word 00040h ; b8 40 00 7625 call 01650h ; e8 2fc17588 call 01650h ; e8 8a c1 7626 7589 mov bl, al ; 88 c3 7627 7590 or bl, 010h ; 80 cb 10 7628 7591 xor bh, bh ; 30 ff 7629 jmp short 05 540h ; eb 167592 jmp short 054e5h ; eb 16 7630 7593 cmp AL, strict byte 0feh ; 3c fe 7631 je short 05 531h ; 74 037632 jmp near 052 8bh ; e9 5a fd7594 je short 054d6h ; 74 03 7595 jmp near 05230h ; e9 5a fd 7633 7596 mov dx, 00097h ; ba 97 00 7634 7597 mov ax, strict word 00040h ; b8 40 00 7635 call 01650h ; e8 16c17598 call 01650h ; e8 71 c1 7636 7599 or AL, strict byte 020h ; 0c 20 7637 7600 xor ah, ah ; 30 e4 … … 7639 7602 mov dx, 00097h ; ba 97 00 7640 7603 mov ax, strict word 00040h ; b8 40 00 7641 call 0165eh ; e8 15c17642 jmp short 05 52eh ; eb e37604 call 0165eh ; e8 70 c1 7605 jmp short 054d3h ; eb e3 7643 7606 cmp byte [bp-00ah], 058h ; 80 7e f6 58 7644 jbe short 055 70h ; 76 1f7607 jbe short 05515h ; 76 1f 7645 7608 mov bx, 00da0h ; bb a0 0d 7646 7609 mov cx, ds ; 8c d9 7647 7610 mov ax, strict word 00004h ; b8 04 00 7648 call 01923h ; e8 c7 c37611 call 01923h ; e8 22 c4 7649 7612 mov al, byte [bp-00ah] ; 8a 46 f6 7650 7613 xor ah, ah ; 30 e4 … … 7652 7615 push 005a1h ; 68 a1 05 7653 7616 push strict byte 00004h ; 6a 04 7654 call 01966h ; e8 fc c37617 call 01966h ; e8 57 c4 7655 7618 add sp, strict byte 00006h ; 83 c4 06 7656 jmp near 052 aah ; e9 3a fd7619 jmp near 0524fh ; e9 3a fd 7657 7620 mov al, byte [bp-00eh] ; 8a 46 f2 7658 7621 test AL, strict byte 008h ; a8 08 7659 je short 055 8ah ; 74 137622 je short 0552fh ; 74 13 7660 7623 mov al, byte [bp-00ah] ; 8a 46 f6 7661 7624 xor ah, ah ; 30 e4 … … 7663 7626 mov dl, byte [bx+00df4h] ; 8a 97 f4 0d 7664 7627 mov ax, word [bx+00df4h] ; 8b 87 f4 0d 7665 jmp near 05 61ah ; e9 90 007628 jmp near 055bfh ; e9 90 00 7666 7629 test AL, strict byte 004h ; a8 04 7667 je short 055 a1h ; 74 137630 je short 05546h ; 74 13 7668 7631 mov al, byte [bp-00ah] ; 8a 46 f6 7669 7632 xor ah, ah ; 30 e4 … … 7671 7634 mov dl, byte [bx+00df2h] ; 8a 97 f2 0d 7672 7635 mov ax, word [bx+00df2h] ; 8b 87 f2 0d 7673 jmp near 05 61ah ; e9 79 007636 jmp near 055bfh ; e9 79 00 7674 7637 mov al, byte [bp-00ch] ; 8a 46 f4 7675 7638 and AL, strict byte 002h ; 24 02 7676 7639 test al, al ; 84 c0 7677 jbe short 055 beh ; 76 147640 jbe short 05563h ; 76 14 7678 7641 mov al, byte [bp-00ah] ; 8a 46 f6 7679 7642 cmp AL, strict byte 047h ; 3c 47 7680 jc short 055 beh ; 72 0d7643 jc short 05563h ; 72 0d 7681 7644 cmp AL, strict byte 053h ; 3c 53 7682 jnbe short 055 beh ; 77 097645 jnbe short 05563h ; 77 09 7683 7646 mov DL, strict byte 0e0h ; b2 e0 7684 7647 xor ah, ah ; 30 e4 7685 7648 imul bx, ax, strict byte 0000ah ; 6b d8 0a 7686 jmp short 05 616h ; eb 587649 jmp short 055bbh ; eb 58 7687 7650 test byte [bp-00eh], 003h ; f6 46 f2 03 7688 je short 055 f3h ; 74 2f7651 je short 05598h ; 74 2f 7689 7652 mov al, byte [bp-00ah] ; 8a 46 f6 7690 7653 xor ah, ah ; 30 e4 … … 7694 7657 mov al, byte [bp-00eh] ; 8a 46 f2 7695 7658 test ax, dx ; 85 d0 7696 je short 055 e3h ; 74 0a7659 je short 05588h ; 74 0a 7697 7660 mov dl, byte [bx+00deeh] ; 8a 97 ee 0d 7698 7661 mov ax, word [bx+00deeh] ; 8b 87 ee 0d 7699 jmp short 055 ebh ; eb 087662 jmp short 05590h ; eb 08 7700 7663 mov dl, byte [bx+00df0h] ; 8a 97 f0 0d 7701 7664 mov ax, word [bx+00df0h] ; 8b 87 f0 0d 7702 7665 shr ax, 008h ; c1 e8 08 7703 7666 mov byte [bp-00ah], al ; 88 46 f6 7704 jmp short 05 620h ; eb 2d7667 jmp short 055c5h ; eb 2d 7705 7668 mov al, byte [bp-00ah] ; 8a 46 f6 7706 7669 xor ah, ah ; 30 e4 … … 7710 7673 mov al, byte [bp-00eh] ; 8a 46 f2 7711 7674 test ax, dx ; 85 d0 7712 je short 05 612h ; 74 0a7675 je short 055b7h ; 74 0a 7713 7676 mov dl, byte [bx+00df0h] ; 8a 97 f0 0d 7714 7677 mov ax, word [bx+00df0h] ; 8b 87 f0 0d 7715 jmp short 05 61ah ; eb 087678 jmp short 055bfh ; eb 08 7716 7679 mov dl, byte [bx+00deeh] ; 8a 97 ee 0d 7717 7680 mov ax, word [bx+00deeh] ; 8b 87 ee 0d … … 7719 7682 mov byte [bp-00ah], al ; 88 46 f6 7720 7683 cmp byte [bp-00ah], 000h ; 80 7e f6 00 7721 jne short 05 640h ; 75 1a7684 jne short 055e5h ; 75 1a 7722 7685 test dl, dl ; 84 d2 7723 jne short 05 640h ; 75 167686 jne short 055e5h ; 75 16 7724 7687 mov bx, 00da0h ; bb a0 0d 7725 7688 mov cx, ds ; 8c d9 7726 7689 mov ax, strict word 00004h ; b8 04 00 7727 call 01923h ; e8 ee c27690 call 01923h ; e8 49 c3 7728 7691 push 005d8h ; 68 d8 05 7729 7692 push strict byte 00004h ; 6a 04 7730 call 01966h ; e8 29c37693 call 01966h ; e8 84 c3 7731 7694 add sp, strict byte 00004h ; 83 c4 04 7732 7695 mov bl, dl ; 88 d3 … … 7735 7698 xor ah, ah ; 30 e4 7736 7699 mov dx, bx ; 89 da 7737 jmp near 054 6bh ; e9 1d fe7738 dequeue_key_: ; 0xf5 64eLB 0x947700 jmp near 05410h ; e9 1d fe 7701 dequeue_key_: ; 0xf55f3 LB 0x94 7739 7702 push bp ; 55 7740 7703 mov bp, sp ; 89 e5 … … 7749 7712 mov dx, strict word 0001ah ; ba 1a 00 7750 7713 mov ax, strict word 00040h ; b8 40 00 7751 call 0166ch ; e8 04c07714 call 0166ch ; e8 5f c0 7752 7715 mov bx, ax ; 89 c3 7753 7716 mov dx, strict word 0001ch ; ba 1c 00 7754 7717 mov ax, strict word 00040h ; b8 40 00 7755 call 0166ch ; e8 f9 bf7718 call 0166ch ; e8 54 c0 7756 7719 cmp bx, ax ; 39 c3 7757 je short 056 b4h ; 74 3d7720 je short 05659h ; 74 3d 7758 7721 mov dx, bx ; 89 da 7759 7722 mov ax, strict word 00040h ; b8 40 00 7760 call 01650h ; e8 d1 bf7723 call 01650h ; e8 2c c0 7761 7724 mov cl, al ; 88 c1 7762 7725 lea dx, [bx+001h] ; 8d 57 01 7763 7726 mov ax, strict word 00040h ; b8 40 00 7764 call 01650h ; e8 c6 bf7727 call 01650h ; e8 21 c0 7765 7728 mov es, [bp-008h] ; 8e 46 f8 7766 7729 mov byte [es:si], cl ; 26 88 0c … … 7768 7731 mov byte [es:di], al ; 26 88 05 7769 7732 cmp word [bp+004h], strict byte 00000h ; 83 7e 04 00 7770 je short 056 afh ; 74 137733 je short 05654h ; 74 13 7771 7734 inc bx ; 43 7772 7735 inc bx ; 43 7773 7736 cmp bx, strict byte 0003eh ; 83 fb 3e 7774 jc short 056 a6h ; 72 037737 jc short 0564bh ; 72 03 7775 7738 mov bx, strict word 0001eh ; bb 1e 00 7776 7739 mov dx, strict word 0001ah ; ba 1a 00 7777 7740 mov ax, strict word 00040h ; b8 40 00 7778 call 0167ah ; e8 cb bf7741 call 0167ah ; e8 26 c0 7779 7742 mov ax, strict word 00001h ; b8 01 00 7780 jmp short 056 b6h ; eb 027743 jmp short 0565bh ; eb 02 7781 7744 xor ax, ax ; 31 c0 7782 7745 lea sp, [bp-004h] ; 8d 66 fc … … 7789 7752 or cl, byte [bx+di] ; 0a 09 7790 7753 add ax, 00102h ; 05 02 01 7791 add ah, ah ; 00 e47754 add byte [bx+di+04057h], cl ; 00 89 57 40 7792 7755 push di ; 57 7793 wait ; 9b 7756 rcl byte [bx+01eh], CL ; d2 57 1e 7757 pop ax ; 58 7758 das ; 2f 7759 pop ax ; 58 7760 pop ax ; 58 7761 pop ax ; 58 7762 popaw ; 61 7763 pop ax ; 58 7764 rcr byte [bx+si+004h], CL ; d2 58 04 7765 pop cx ; 59 7766 xor bx, word [bx+di+06ch] ; 33 59 6c 7767 pop cx ; 59 7768 int3 ; cc 7794 7769 push di ; 57 7795 sub ax, 07958h ; 2d 58 79 7796 pop ax ; 58 7797 mov bl, byte [bx+si-04dh] ; 8a 58 b3 7798 pop ax ; 58 7799 mov sp, 02d58h ; bc 58 2d 7800 pop cx ; 59 7801 pop di ; 5f 7802 pop cx ; 59 7803 mov ds, [bx+di-039h] ; 8e 59 c7 7804 pop cx ; 59 7805 daa ; 27 7806 pop ax ; 58 7807 _int16_function: ; 0xf56e2 LB 0x2f0 7770 _int16_function: ; 0xf5687 LB 0x2f0 7808 7771 push bp ; 55 7809 7772 mov bp, sp ; 89 e5 … … 7812 7775 mov dx, strict word 00017h ; ba 17 00 7813 7776 mov ax, strict word 00040h ; b8 40 00 7814 call 01650h ; e8 5ebf7777 call 01650h ; e8 b9 bf 7815 7778 mov cl, al ; 88 c1 7816 7779 mov bh, al ; 88 c7 7817 7780 mov dx, 00097h ; ba 97 00 7818 7781 mov ax, strict word 00040h ; b8 40 00 7819 call 01650h ; e8 51bf7782 call 01650h ; e8 ac bf 7820 7783 mov bl, al ; 88 c3 7821 7784 mov dl, cl ; 88 ca … … 7827 7790 xor al, dl ; 30 d0 7828 7791 test ax, ax ; 85 c0 7829 je short 057 7bh ; 74 667792 je short 05720h ; 74 66 7830 7793 cli ; fa 7831 7794 mov AL, strict byte 0edh ; b0 ed … … 7837 7800 ; sub ah, ah ; 2a e4 7838 7801 test AL, strict byte 001h ; a8 01 7839 jne short 05 72eh ; 75 087802 jne short 056d3h ; 75 08 7840 7803 mov AL, strict byte 021h ; b0 21 7841 7804 mov dx, 00080h ; ba 80 00 7842 7805 out DX, AL ; ee 7843 jmp short 05 71ch ; eb ee7806 jmp short 056c1h ; eb ee 7844 7807 mov dx, strict word 00060h ; ba 60 00 7845 7808 in AL, DX ; ec … … 7847 7810 ; sub ah, ah ; 2a e4 7848 7811 cmp ax, 000fah ; 3d fa 00 7849 jne short 057 7ah ; 75 417812 jne short 0571fh ; 75 41 7850 7813 mov dl, bl ; 88 da 7851 7814 and dl, 0c8h ; 80 e2 c8 … … 7867 7830 ; sub ah, ah ; 2a e4 7868 7831 test AL, strict byte 001h ; a8 01 7869 jne short 057 69h ; 75 087832 jne short 0570eh ; 75 08 7870 7833 mov AL, strict byte 021h ; b0 21 7871 7834 mov dx, 00080h ; ba 80 00 7872 7835 out DX, AL ; ee 7873 jmp short 05 757h ; eb ee7836 jmp short 056fch ; eb ee 7874 7837 mov dx, strict word 00060h ; ba 60 00 7875 7838 in AL, DX ; ec … … 7879 7842 mov dx, 00097h ; ba 97 00 7880 7843 mov ax, strict word 00040h ; b8 40 00 7881 call 0165eh ; e8 e4 be7844 call 0165eh ; e8 3f bf 7882 7845 sti ; fb 7883 7846 mov ax, word [bp+012h] ; 8b 46 12 7884 7847 shr ax, 008h ; c1 e8 08 7885 7848 cmp ax, 000a2h ; 3d a2 00 7886 jnbe short 057 e4h ; 77 5e7849 jnbe short 05789h ; 77 5e 7887 7850 push CS ; 0e 7888 7851 pop ES ; 07 7889 7852 mov cx, strict word 0000ch ; b9 0c 00 7890 mov di, 056 bfh ; bf bf567853 mov di, 05664h ; bf 64 56 7891 7854 repne scasb ; f2 ae 7892 7855 sal cx, 1 ; d1 e1 7893 7856 mov di, cx ; 89 cf 7894 mov ax, word [cs:di+056 cah] ; 2e 8b 85 ca567857 mov ax, word [cs:di+0566fh] ; 2e 8b 85 6f 56 7895 7858 jmp ax ; ff e0 7896 7859 push strict byte 00001h ; 6a 01 … … 7899 7862 mov dx, ss ; 8c d2 7900 7863 lea ax, [bp-006h] ; 8d 46 fa 7901 call 05 64eh ; e8 a4 fe7864 call 055f3h ; e8 a4 fe 7902 7865 test ax, ax ; 85 c0 7903 jne short 057 b9h ; 75 0b7866 jne short 0575eh ; 75 0b 7904 7867 push 0060fh ; 68 0f 06 7905 7868 push strict byte 00007h ; 6a 07 7906 call 01966h ; e8 b0 c17869 call 01966h ; e8 0b c2 7907 7870 add sp, strict byte 00004h ; 83 c4 04 7908 7871 cmp byte [bp-006h], 000h ; 80 7e fa 00 7909 je short 057 c5h ; 74 067872 je short 0576ah ; 74 06 7910 7873 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7911 je short 057 cbh ; 74 067874 je short 05770h ; 74 06 7912 7875 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 7913 jne short 057 cfh ; 75 047876 jne short 05774h ; 75 04 7914 7877 mov byte [bp-008h], 000h ; c6 46 f8 00 7915 7878 mov al, byte [bp-006h] ; 8a 46 fa … … 7920 7883 or dx, ax ; 09 c2 7921 7884 mov word [bp+012h], dx ; 89 56 12 7922 jmp near 05 827h ; e9 43 007885 jmp near 057cch ; e9 43 00 7923 7886 mov bx, 00da0h ; bb a0 0d 7924 7887 mov cx, ds ; 8c d9 7925 7888 mov ax, strict word 00004h ; b8 04 00 7926 call 01923h ; e8 34c17889 call 01923h ; e8 8f c1 7927 7890 mov ax, word [bp+012h] ; 8b 46 12 7928 7891 shr ax, 008h ; c1 e8 08 … … 7930 7893 push 00633h ; 68 33 06 7931 7894 push strict byte 00004h ; 6a 04 7932 call 01966h ; e8 68c17895 call 01966h ; e8 c3 c1 7933 7896 add sp, strict byte 00006h ; 83 c4 06 7934 7897 mov bx, 00da0h ; bb a0 0d 7935 7898 mov cx, ds ; 8c d9 7936 7899 mov ax, strict word 00004h ; b8 04 00 7937 call 01923h ; e8 17c17900 call 01923h ; e8 72 c1 7938 7901 mov ax, word [bp+00eh] ; 8b 46 0e 7939 7902 push ax ; 50 … … 7946 7909 push 0065bh ; 68 5b 06 7947 7910 push strict byte 00004h ; 6a 04 7948 call 01966h ; e8 42c17911 call 01966h ; e8 9d c1 7949 7912 add sp, strict byte 0000ch ; 83 c4 0c 7950 7913 lea sp, [bp-002h] ; 8d 66 fe … … 7958 7921 mov dx, ss ; 8c d2 7959 7922 lea ax, [bp-006h] ; 8d 46 fa 7960 call 05 64eh ; e8 0d fe7923 call 055f3h ; e8 0d fe 7961 7924 test ax, ax ; 85 c0 7962 jne short 05 84bh ; 75 067925 jne short 057f0h ; 75 06 7963 7926 or word [bp+01ch], strict byte 00040h ; 83 4e 1c 40 7964 jmp short 05 827h ; eb dc7927 jmp short 057cch ; eb dc 7965 7928 cmp byte [bp-006h], 000h ; 80 7e fa 00 7966 je short 05 857h ; 74 067929 je short 057fch ; 74 06 7967 7930 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7968 je short 058 5dh ; 74 067931 je short 05802h ; 74 06 7969 7932 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 7970 jne short 058 61h ; 75 047933 jne short 05806h ; 75 04 7971 7934 mov byte [bp-008h], 000h ; c6 46 f8 00 7972 7935 mov al, byte [bp-006h] ; 8a 46 fa … … 7978 7941 mov word [bp+012h], dx ; 89 56 12 7979 7942 and word [bp+01ch], strict byte 0ffbfh ; 83 66 1c bf 7980 jmp short 05 827h ; eb ae7943 jmp short 057cch ; eb ae 7981 7944 mov dx, strict word 00017h ; ba 17 00 7982 7945 mov ax, strict word 00040h ; b8 40 00 7983 call 01650h ; e8 ce bd7946 call 01650h ; e8 29 be 7984 7947 mov dx, word [bp+012h] ; 8b 56 12 7985 7948 mov dl, al ; 88 c2 7986 jmp near 057 deh ; e9 54 ff7949 jmp near 05783h ; e9 54 ff 7987 7950 mov dl, byte [bp+010h] ; 8a 56 10 7988 7951 xor dh, dh ; 30 f6 … … 7990 7953 shr ax, 008h ; c1 e8 08 7991 7954 xor ah, ah ; 30 e4 7992 call 05 11ch ; e8 82 f87955 call 050c1h ; e8 82 f8 7993 7956 test ax, ax ; 85 c0 7994 jne short 058 abh ; 75 0d7957 jne short 05850h ; 75 0d 7995 7958 mov ax, word [bp+012h] ; 8b 46 12 7996 7959 xor al, al ; 30 c0 7997 7960 or AL, strict byte 001h ; 0c 01 7998 7961 mov word [bp+012h], ax ; 89 46 12 7999 jmp near 05 827h ; e9 7c ff7962 jmp near 057cch ; e9 7c ff 8000 7963 and word [bp+012h], 0ff00h ; 81 66 12 00 ff 8001 jmp near 05 827h ; e9 74 ff7964 jmp near 057cch ; e9 74 ff 8002 7965 mov ax, word [bp+012h] ; 8b 46 12 8003 7966 xor al, al ; 30 c0 8004 7967 or AL, strict byte 030h ; 0c 30 8005 jmp short 058 a5h ; eb e97968 jmp short 0584ah ; eb e9 8006 7969 mov byte [bp-004h], 002h ; c6 46 fc 02 8007 7970 xor cx, cx ; 31 c9 … … 8016 7979 ; sub ah, ah ; 2a e4 8017 7980 test AL, strict byte 001h ; a8 01 8018 jne short 058 e3h ; 75 0d7981 jne short 05888h ; 75 0d 8019 7982 dec bx ; 4b 8020 7983 test bx, bx ; 85 db 8021 jbe short 058 e3h ; 76 087984 jbe short 05888h ; 76 08 8022 7985 mov dx, 00080h ; ba 80 00 8023 7986 in AL, DX ; ec 8024 7987 db 02ah, 0e4h 8025 7988 ; sub ah, ah ; 2a e4 8026 jmp short 058 cch ; eb e97989 jmp short 05871h ; eb e9 8027 7990 test bx, bx ; 85 db 8028 jbe short 05 927h ; 76 407991 jbe short 058cch ; 76 40 8029 7992 mov dx, strict word 00060h ; ba 60 00 8030 7993 in AL, DX ; ec … … 8032 7995 ; sub ah, ah ; 2a e4 8033 7996 cmp ax, 000fah ; 3d fa 00 8034 jne short 05 927h ; 75 357997 jne short 058cch ; 75 35 8035 7998 mov bx, strict word 0ffffh ; bb ff ff 8036 7999 mov dx, strict word 00064h ; ba 64 00 … … 8039 8002 ; sub ah, ah ; 2a e4 8040 8003 test AL, strict byte 001h ; a8 01 8041 jne short 05 90ch ; 75 0d8004 jne short 058b1h ; 75 0d 8042 8005 dec bx ; 4b 8043 8006 test bx, bx ; 85 db 8044 jbe short 05 90ch ; 76 088007 jbe short 058b1h ; 76 08 8045 8008 mov dx, 00080h ; ba 80 00 8046 8009 in AL, DX ; ec 8047 8010 db 02ah, 0e4h 8048 8011 ; sub ah, ah ; 2a e4 8049 jmp short 058 f5h ; eb e98012 jmp short 0589ah ; eb e9 8050 8013 test bx, bx ; 85 db 8051 jbe short 05 91eh ; 76 0e8014 jbe short 058c3h ; 76 0e 8052 8015 shr cx, 008h ; c1 e9 08 8053 8016 mov dx, strict word 00060h ; ba 60 00 … … 8059 8022 dec byte [bp-004h] ; fe 4e fc 8060 8023 cmp byte [bp-004h], 000h ; 80 7e fc 00 8061 jnbe short 058 f2h ; 77 cb8024 jnbe short 05897h ; 77 cb 8062 8025 mov word [bp+00ch], cx ; 89 4e 0c 8063 jmp near 05 827h ; e9 fa fe8026 jmp near 057cch ; e9 fa fe 8064 8027 push strict byte 00001h ; 6a 01 8065 8028 mov cx, ss ; 8c d1 … … 8067 8030 mov dx, ss ; 8c d2 8068 8031 lea ax, [bp-006h] ; 8d 46 fa 8069 call 05 64eh ; e8 12 fd8032 call 055f3h ; e8 12 fd 8070 8033 test ax, ax ; 85 c0 8071 jne short 05 94bh ; 75 0b8034 jne short 058f0h ; 75 0b 8072 8035 push 0060fh ; 68 0f 06 8073 8036 push strict byte 00007h ; 6a 07 8074 call 01966h ; e8 1ec08037 call 01966h ; e8 79 c0 8075 8038 add sp, strict byte 00004h ; 83 c4 04 8076 8039 cmp byte [bp-006h], 000h ; 80 7e fa 00 8077 jne short 05 954h ; 75 038078 jmp near 057 cfh ; e9 7b fe8040 jne short 058f9h ; 75 03 8041 jmp near 05774h ; e9 7b fe 8079 8042 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 8080 jne short 059 5dh ; 75 038081 jmp near 057 cbh ; e9 6e fe8082 jmp short 05 951h ; eb f28043 jne short 05902h ; 75 03 8044 jmp near 05770h ; e9 6e fe 8045 jmp short 058f6h ; eb f2 8083 8046 or word [bp+01ch], 00200h ; 81 4e 1c 00 02 8084 8047 push strict byte 00000h ; 6a 00 … … 8087 8050 mov dx, ss ; 8c d2 8088 8051 lea ax, [bp-006h] ; 8d 46 fa 8089 call 05 64eh ; e8 db fc8052 call 055f3h ; e8 db fc 8090 8053 test ax, ax ; 85 c0 8091 jne short 059 7ah ; 75 038092 jmp near 05 845h ; e9 cb fe8054 jne short 0591fh ; 75 03 8055 jmp near 057eah ; e9 cb fe 8093 8056 cmp byte [bp-006h], 000h ; 80 7e fa 00 8094 jne short 059 83h ; 75 038095 jmp near 058 61h ; e9 de fe8057 jne short 05928h ; 75 03 8058 jmp near 05806h ; e9 de fe 8096 8059 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 8097 jne short 059 8ch ; 75 038098 jmp near 058 5dh ; e9 d1 fe8099 jmp short 059 80h ; eb f28060 jne short 05931h ; 75 03 8061 jmp near 05802h ; e9 d1 fe 8062 jmp short 05925h ; eb f2 8100 8063 mov dx, strict word 00017h ; ba 17 00 8101 8064 mov ax, strict word 00040h ; b8 40 00 8102 call 01650h ; e8 b9 bc8065 call 01650h ; e8 14 bd 8103 8066 mov dx, word [bp+012h] ; 8b 56 12 8104 8067 mov dl, al ; 88 c2 … … 8106 8069 mov dx, strict word 00018h ; ba 18 00 8107 8070 mov ax, strict word 00040h ; b8 40 00 8108 call 01650h ; e8 a8 bc8071 call 01650h ; e8 03 bd 8109 8072 mov bh, al ; 88 c7 8110 8073 and bh, 073h ; 80 e7 73 8111 8074 mov dx, 00096h ; ba 96 00 8112 8075 mov ax, strict word 00040h ; b8 40 00 8113 call 01650h ; e8 9abc8076 call 01650h ; e8 f5 bc 8114 8077 and AL, strict byte 00ch ; 24 0c 8115 8078 or al, bh ; 08 f8 … … 8118 8081 xor ah, ah ; 30 e4 8119 8082 sal ax, 008h ; c1 e0 08 8120 jmp near 057 dch ; e9 15 fe8083 jmp near 05781h ; e9 15 fe 8121 8084 mov ax, word [bp+012h] ; 8b 46 12 8122 8085 xor ah, ah ; 30 e4 8123 8086 or ah, 080h ; 80 cc 80 8124 jmp near 058 a5h ; e9 d3 fe8125 set_geom_lba_: ; 0xf59 d2LB 0xe78087 jmp near 0584ah ; e9 d3 fe 8088 set_geom_lba_: ; 0xf5977 LB 0xe7 8126 8089 push bx ; 53 8127 8090 push cx ; 51 … … 8139 8102 mov dx, word [bp+00ch] ; 8b 56 0c 8140 8103 mov si, strict word 00020h ; be 20 00 8141 call 0 a02ah ; e8 2b468104 call 09faah ; e8 06 46 8142 8105 test ax, ax ; 85 c0 8143 jne short 05 a0fh ; 75 0c8106 jne short 059b4h ; 75 0c 8144 8107 test bx, bx ; 85 db 8145 jne short 05 a0fh ; 75 088108 jne short 059b4h ; 75 08 8146 8109 test cx, cx ; 85 c9 8147 jne short 05 a0fh ; 75 048110 jne short 059b4h ; 75 04 8148 8111 test dx, dx ; 85 d2 8149 je short 05 a16h ; 74 078112 je short 059bbh ; 74 07 8150 8113 mov bx, strict word 0ffffh ; bb ff ff 8151 8114 mov si, bx ; 89 de 8152 jmp short 05 a1ch ; eb 068115 jmp short 059c1h ; eb 06 8153 8116 mov bx, word [bp+00ch] ; 8b 5e 0c 8154 8117 mov si, word [bp+00eh] ; 8b 76 0e 8155 8118 mov word [bp-004h], bx ; 89 5e fc 8156 8119 xor bx, bx ; 31 db 8157 jmp short 05 a28h ; eb 058120 jmp short 059cdh ; eb 05 8158 8121 cmp bx, strict byte 00004h ; 83 fb 04 8159 jnl short 05 a4bh ; 7d 238122 jnl short 059f0h ; 7d 23 8160 8123 mov ax, word [bp-006h] ; 8b 46 fa 8161 8124 cmp si, ax ; 39 c6 8162 jc short 05 a39h ; 72 0a8163 jne short 05 a42h ; 75 118125 jc short 059deh ; 72 0a 8126 jne short 059e7h ; 75 11 8164 8127 mov ax, word [bp-004h] ; 8b 46 fc 8165 8128 cmp ax, word [bp-008h] ; 3b 46 f8 8166 jnbe short 05 a42h ; 77 098129 jnbe short 059e7h ; 77 09 8167 8130 mov ax, word [bp-002h] ; 8b 46 fe 8168 8131 inc ax ; 40 … … 8172 8135 rcr word [bp-008h], 1 ; d1 5e f8 8173 8136 inc bx ; 43 8174 jmp short 05 a23h ; eb d88137 jmp short 059c8h ; eb d8 8175 8138 mov ax, word [bp-002h] ; 8b 46 fe 8176 8139 xor dx, dx ; 31 d2 8177 8140 mov bx, strict word 0003fh ; bb 3f 00 8178 8141 xor cx, cx ; 31 c9 8179 call 09f e9h ; e8 91458142 call 09f69h ; e8 6c 45 8180 8143 mov bx, ax ; 89 c3 8181 8144 mov cx, dx ; 89 d1 8182 8145 mov ax, word [bp-004h] ; 8b 46 fc 8183 8146 mov dx, si ; 89 f2 8184 call 09f b0h ; e8 4c458147 call 09f30h ; e8 27 45 8185 8148 mov word [es:di+002h], ax ; 26 89 45 02 8186 8149 cmp ax, 00400h ; 3d 00 04 8187 jbe short 05a 73h ; 76 068150 jbe short 05a18h ; 76 06 8188 8151 mov word [es:di+002h], 00400h ; 26 c7 45 02 00 04 8189 8152 mov ax, word [bp-002h] ; 8b 46 fe … … 8196 8159 pop bx ; 5b 8197 8160 retn 00008h ; c2 08 00 8198 inc cx ; 41 8161 out strict byte 05ah, AL ; e6 5a 8162 neg word [bp+si+026h] ; f7 5a 26 8199 8163 pop bx ; 5b 8200 push dx ; 52 8201 pop bx ; 5b 8202 sbb word [bp+di-07fh], 0815bh ; 81 5b 81 5b 81 8203 pop bx ; 5b 8204 jno short 05af0h ; 71 5d 8205 stosb ; aa 8164 db 026h, 05bh 8165 ; es pop bx ; 26 5b 8166 db 026h, 05bh 8167 ; es pop bx ; 26 5b 8168 push SS ; 16 8169 pop bp ; 5d 8170 dec di ; 4f 8206 8171 pop si ; 5e 8207 stosb ; aa8172 dec di ; 4f 8208 8173 pop si ; 5e 8209 sahf ; 9e8174 inc bx ; 43 8210 8175 pop bp ; 5d 8211 xchg word [bp-056h], bx ; 87 5e aa 8176 sub AL, strict byte 05eh ; 2c 5e 8177 dec di ; 4f 8212 8178 pop si ; 5e 8213 stosb ; aa8179 dec di ; 4f 8214 8180 pop si ; 5e 8215 xchg word [bp-079h], bx ; 87 5e 87 8181 sub AL, strict byte 05eh ; 2c 5e 8182 sub AL, strict byte 05eh ; 2c 5e 8183 dec di ; 4f 8216 8184 pop si ; 5e 8217 stosb ; aa8185 dec di ; 4f 8218 8186 pop si ; 5e 8219 stosb ; aa 8187 scasb ; ae 8188 pop bp ; 5d 8189 sub AL, strict byte 05eh ; 2c 5e 8190 dec di ; 4f 8220 8191 pop si ; 5e 8221 or word [bp-079h], bx ; 09 5e 878192 dec di ; 4f 8222 8193 pop si ; 5e 8223 stosb ; aa 8194 sub AL, strict byte 05eh ; 2c 5e 8195 fistp word [di+04fh] ; df 5d 4f 8224 8196 pop si ; 5e 8225 stosb ; aa8197 dec di ; 4f 8226 8198 pop si ; 5e 8227 xchg word [bp+03ah], bx ; 87 5e 3a8199 dec di ; 4f 8228 8200 pop si ; 5e 8229 stosb ; aa 8230 pop si ; 5e 8231 stosb ; aa 8232 pop si ; 5e 8233 stosb ; aa 8234 pop si ; 5e 8235 _int13_harddisk: ; 0xf5ab9 LB 0x44f 8201 _int13_harddisk: ; 0xf5a5e LB 0x44f 8236 8202 push bp ; 55 8237 8203 mov bp, sp ; 89 e5 … … 8239 8205 mov dx, strict word 0000eh ; ba 0e 00 8240 8206 mov ax, strict word 00040h ; b8 40 00 8241 call 0166ch ; e8 a4bb8207 call 0166ch ; e8 ff bb 8242 8208 mov si, 00122h ; be 22 01 8243 8209 mov word [bp-004h], ax ; 89 46 fc … … 8245 8211 mov dx, 0008eh ; ba 8e 00 8246 8212 mov ax, strict word 00040h ; b8 40 00 8247 call 0165eh ; e8 85bb8213 call 0165eh ; e8 e0 bb 8248 8214 mov ax, word [bp+00eh] ; 8b 46 0e 8249 8215 xor ah, ah ; 30 e4 8250 8216 cmp ax, 00080h ; 3d 80 00 8251 jc short 05a e8h ; 72 058217 jc short 05a8dh ; 72 05 8252 8218 cmp ax, 00090h ; 3d 90 00 8253 jc short 05 b06h ; 72 1e8219 jc short 05aabh ; 72 1e 8254 8220 mov ax, word [bp+00eh] ; 8b 46 0e 8255 8221 xor ah, ah ; 30 e4 … … 8261 8227 push 0068dh ; 68 8d 06 8262 8228 push strict byte 00004h ; 6a 04 8263 call 01966h ; e8 66be8229 call 01966h ; e8 c1 be 8264 8230 add sp, strict byte 0000ah ; 83 c4 0a 8265 jmp near 05e c5h ; e9 bf 038231 jmp near 05e6ah ; e9 bf 03 8266 8232 mov ax, word [bp+00eh] ; 8b 46 0e 8267 8233 xor ah, ah ; 30 e4 … … 8272 8238 mov byte [bp-002h], dl ; 88 56 fe 8273 8239 cmp dl, 010h ; 80 fa 10 8274 jc short 05 b2fh ; 72 108240 jc short 05ad4h ; 72 10 8275 8241 push ax ; 50 8276 8242 mov ax, word [bp+016h] ; 8b 46 16 … … 8279 8245 push 0067eh ; 68 7e 06 8280 8246 push 006b8h ; 68 b8 06 8281 jmp short 05a fbh ; eb cc8247 jmp short 05aa0h ; eb cc 8282 8248 mov bx, word [bp+016h] ; 8b 5e 16 8283 8249 shr bx, 008h ; c1 eb 08 8284 8250 cmp bx, strict byte 00018h ; 83 fb 18 8285 jnbe short 05b 7eh ; 77 448251 jnbe short 05b23h ; 77 44 8286 8252 add bx, bx ; 01 db 8287 jmp word [cs:bx+05a 87h] ; 2e ff a7 875a8253 jmp word [cs:bx+05a2ch] ; 2e ff a7 2c 5a 8288 8254 cmp byte [bp-002h], 008h ; 80 7e fe 08 8289 jnc short 05 b4fh ; 73 088255 jnc short 05af4h ; 73 08 8290 8256 mov al, byte [bp-002h] ; 8a 46 fe 8291 8257 xor ah, ah ; 30 e4 8292 call 01d85h ; e8 36c28293 jmp near 05d 87h ; e9 35 028258 call 01d85h ; e8 91 c2 8259 jmp near 05d2ch ; e9 35 02 8294 8260 mov dx, strict word 00074h ; ba 74 00 8295 8261 mov ax, strict word 00040h ; b8 40 00 8296 call 01650h ; e8 f5 ba8262 call 01650h ; e8 50 bb 8297 8263 mov cl, al ; 88 c1 8298 8264 mov dx, word [bp+016h] ; 8b 56 16 … … 8305 8271 mov dx, strict word 00074h ; ba 74 00 8306 8272 mov ax, strict word 00040h ; b8 40 00 8307 call 0165eh ; e8 e7 ba8273 call 0165eh ; e8 42 bb 8308 8274 test cl, cl ; 84 c9 8309 je short 05b dfh ; 74 648310 jmp near 05e e1h ; e9 63 038311 jmp near 05e aah ; e9 29 038275 je short 05b84h ; 74 64 8276 jmp near 05e86h ; e9 63 03 8277 jmp near 05e4fh ; e9 29 03 8312 8278 mov ax, word [bp+016h] ; 8b 46 16 8313 8279 xor ah, ah ; 30 e4 … … 8329 8295 mov ax, word [bp-00eh] ; 8b 46 f2 8330 8296 cmp ax, 00080h ; 3d 80 00 8331 jnbe short 05b bch ; 77 048297 jnbe short 05b61h ; 77 04 8332 8298 test ax, ax ; 85 c0 8333 jne short 05b e2h ; 75 268299 jne short 05b87h ; 75 26 8334 8300 mov bx, 00da0h ; bb a0 0d 8335 8301 mov cx, ds ; 8c d9 8336 8302 mov ax, strict word 00004h ; b8 04 00 8337 call 01923h ; e8 5cbd8303 call 01923h ; e8 b7 bd 8338 8304 mov ax, word [bp+016h] ; 8b 46 16 8339 8305 shr ax, 008h ; c1 e8 08 … … 8342 8308 push 006eah ; 68 ea 06 8343 8309 push strict byte 00004h ; 6a 04 8344 call 01966h ; e8 8dbd8310 call 01966h ; e8 e8 bd 8345 8311 add sp, strict byte 00008h ; 83 c4 08 8346 jmp near 05e c5h ; e9 e6 028347 jmp near 05d 8bh ; e9 a9 018312 jmp near 05e6ah ; e9 e6 02 8313 jmp near 05d30h ; e9 a9 01 8348 8314 mov al, byte [bp-002h] ; 8a 46 fe 8349 8315 xor ah, ah ; 30 e4 … … 8357 8323 mov word [bp-00ah], dx ; 89 56 f6 8358 8324 cmp di, ax ; 39 c7 8359 jnc short 05 c10h ; 73 0c8325 jnc short 05bb5h ; 73 0c 8360 8326 cmp cx, word [bp-008h] ; 3b 4e f8 8361 jbe short 05 c10h ; 76 078327 jbe short 05bb5h ; 76 07 8362 8328 mov ax, word [bp-006h] ; 8b 46 fa 8363 8329 cmp ax, dx ; 39 d0 8364 jbe short 05 c40h ; 76 308330 jbe short 05be5h ; 76 30 8365 8331 mov bx, 00da0h ; bb a0 0d 8366 8332 mov cx, ds ; 8c d9 8367 8333 mov ax, strict word 00004h ; b8 04 00 8368 call 01923h ; e8 08bd8334 call 01923h ; e8 63 bd 8369 8335 push word [bp-006h] ; ff 76 fa 8370 8336 push word [bp-008h] ; ff 76 f8 … … 8379 8345 push 00712h ; 68 12 07 8380 8346 push strict byte 00004h ; 6a 04 8381 call 01966h ; e8 2cbd8347 call 01966h ; e8 87 bd 8382 8348 add sp, strict byte 00010h ; 83 c4 10 8383 jmp near 05e c5h ; e9 85 028349 jmp near 05e6ah ; e9 85 02 8384 8350 mov ax, word [bp+016h] ; 8b 46 16 8385 8351 shr ax, 008h ; c1 e8 08 8386 8352 cmp ax, strict word 00004h ; 3d 04 00 8387 je short 05c 6bh ; 74 208353 je short 05c10h ; 74 20 8388 8354 mov al, byte [bp-002h] ; 8a 46 fe 8389 8355 xor ah, ah ; 30 e4 … … 8393 8359 add bx, ax ; 01 c3 8394 8360 cmp cx, word [es:bx+030h] ; 26 3b 4f 30 8395 jne short 05c 74h ; 75 148361 jne short 05c19h ; 75 14 8396 8362 mov ax, word [es:bx+034h] ; 26 8b 47 34 8397 8363 cmp ax, word [bp-00ah] ; 3b 46 f6 8398 je short 05c 6eh ; 74 058399 jmp short 05c 74h ; eb 098400 jmp near 05d 87h ; e9 19 018364 je short 05c13h ; 74 05 8365 jmp short 05c19h ; eb 09 8366 jmp near 05d2ch ; e9 19 01 8401 8367 cmp byte [bp-002h], 008h ; 80 7e fe 08 8402 jc short 05c a4h ; 72 308368 jc short 05c49h ; 72 30 8403 8369 mov ax, di ; 89 f8 8404 8370 xor dx, dx ; 31 d2 8405 8371 mov bx, cx ; 89 cb 8406 8372 xor cx, cx ; 31 c9 8407 call 09f e9h ; e8 6a438373 call 09f69h ; e8 45 43 8408 8374 xor bx, bx ; 31 db 8409 8375 add ax, word [bp-008h] ; 03 46 f8 … … 8411 8377 mov bx, word [bp-00ah] ; 8b 5e f6 8412 8378 xor cx, cx ; 31 c9 8413 call 09f e9h ; e8 5b438379 call 09f69h ; e8 36 43 8414 8380 xor bx, bx ; 31 db 8415 8381 add ax, word [bp-006h] ; 03 46 fa … … 8467 8433 mov word [bp+016h], bx ; 89 5e 16 8468 8434 test dl, dl ; 84 d2 8469 je short 05d 87h ; 74 468435 je short 05d2ch ; 74 46 8470 8436 mov bx, 00da0h ; bb a0 0d 8471 8437 mov cx, ds ; 8c d9 8472 8438 mov ax, strict word 00004h ; b8 04 00 8473 call 01923h ; e8 d7 bb8439 call 01923h ; e8 32 bc 8474 8440 mov al, dl ; 88 d0 8475 8441 xor ah, ah ; 30 e4 … … 8481 8447 push 00759h ; 68 59 07 8482 8448 push strict byte 00004h ; 6a 04 8483 call 01966h ; e8 03bc8449 call 01966h ; e8 5e bc 8484 8450 add sp, strict byte 0000ah ; 83 c4 0a 8485 8451 mov ax, word [bp+016h] ; 8b 46 16 8486 8452 xor ah, ah ; 30 e4 8487 8453 or ah, 00ch ; 80 cc 0c 8488 jmp near 05e cdh ; e9 5c 018454 jmp near 05e72h ; e9 5c 01 8489 8455 mov bx, 00da0h ; bb a0 0d 8490 8456 mov cx, ds ; 8c d9 8491 8457 mov ax, strict word 00004h ; b8 04 00 8492 call 01923h ; e8 a7 bb8458 call 01923h ; e8 02 bc 8493 8459 push 0077ah ; 68 7a 07 8494 8460 push strict byte 00004h ; 6a 04 8495 call 01966h ; e8 e2 bb8461 call 01966h ; e8 3d bc 8496 8462 add sp, strict byte 00004h ; 83 c4 04 8497 8463 mov byte [bp+017h], 000h ; c6 46 17 00 … … 8499 8465 mov dx, strict word 00074h ; ba 74 00 8500 8466 mov ax, strict word 00040h ; b8 40 00 8501 call 0165eh ; e8 c8 b88467 call 0165eh ; e8 23 b9 8502 8468 and byte [bp+01ch], 0feh ; 80 66 1c fe 8503 8469 mov sp, bp ; 89 ec … … 8542 8508 mov dl, al ; 88 c2 8543 8509 mov word [bp+012h], dx ; 89 56 12 8544 jmp near 05d 87h ; e9 7e ff8510 jmp near 05d2ch ; e9 7e ff 8545 8511 mov al, byte [bp-002h] ; 8a 46 fe 8546 8512 xor ah, ah ; 30 e4 … … 8559 8525 and AL, strict byte 0c0h ; 24 c0 8560 8526 cmp AL, strict byte 040h ; 3c 40 8561 jne short 05 e2fh ; 75 038562 jmp near 05d 87h ; e9 58 ff8527 jne short 05dd4h ; 75 03 8528 jmp near 05d2ch ; e9 58 ff 8563 8529 mov ax, word [bp+016h] ; 8b 46 16 8564 8530 xor ah, ah ; 30 e4 8565 8531 or ah, 0aah ; 80 cc aa 8566 jmp near 05e cdh ; e9 93 008532 jmp near 05e72h ; e9 93 00 8567 8533 mov al, byte [bp-002h] ; 8a 46 fe 8568 8534 xor ah, ah ; 30 e4 … … 8579 8545 mov bx, word [bp-008h] ; 8b 5e f8 8580 8546 xor cx, cx ; 31 c9 8581 call 09f e9h ; e8 84418547 call 09f69h ; e8 5f 41 8582 8548 mov bx, word [bp-006h] ; 8b 5e fa 8583 8549 xor cx, cx ; 31 c9 8584 call 09f e9h ; e8 7c418550 call 09f69h ; e8 57 41 8585 8551 mov word [bp-010h], ax ; 89 46 f0 8586 8552 mov word [bp-00ch], dx ; 89 56 f4 … … 8591 8557 or ah, 003h ; 80 cc 03 8592 8558 mov word [bp+016h], ax ; 89 46 16 8593 jmp near 05d 8bh ; e9 04 ff8559 jmp near 05d30h ; e9 04 ff 8594 8560 mov bx, 00da0h ; bb a0 0d 8595 8561 mov cx, ds ; 8c d9 8596 8562 mov ax, strict word 00004h ; b8 04 00 8597 call 01923h ; e8 91ba8563 call 01923h ; e8 ec ba 8598 8564 mov ax, word [bp+016h] ; 8b 46 16 8599 8565 shr ax, 008h ; c1 e8 08 … … 8602 8568 push 00794h ; 68 94 07 8603 8569 push strict byte 00004h ; 6a 04 8604 call 01966h ; e8 c2 ba8570 call 01966h ; e8 1d bb 8605 8571 add sp, strict byte 00008h ; 83 c4 08 8606 jmp near 05d 87h ; e9 dd fe8572 jmp near 05d2ch ; e9 dd fe 8607 8573 mov bx, 00da0h ; bb a0 0d 8608 8574 mov cx, ds ; 8c d9 8609 8575 mov ax, strict word 00004h ; b8 04 00 8610 call 01923h ; e8 6eba8576 call 01923h ; e8 c9 ba 8611 8577 mov ax, word [bp+016h] ; 8b 46 16 8612 8578 shr ax, 008h ; c1 e8 08 … … 8614 8580 push 0067eh ; 68 7e 06 8615 8581 push 007c7h ; 68 c7 07 8616 jmp near 05b d4h ; e9 0f fd8582 jmp near 05b79h ; e9 0f fd 8617 8583 mov ax, word [bp+016h] ; 8b 46 16 8618 8584 xor ah, ah ; 30 e4 … … 8624 8590 mov dx, strict word 00074h ; ba 74 00 8625 8591 mov ax, strict word 00040h ; b8 40 00 8626 call 0165eh ; e8 7db78592 call 0165eh ; e8 d8 b7 8627 8593 or byte [bp+01ch], 001h ; 80 4e 1c 01 8628 jmp near 05d 9ah ; e9 b2 fe8629 movsb ; a48594 jmp near 05d3fh ; e9 b2 fe 8595 dec cx ; 49 8630 8596 pop di ; 5f 8631 xlatb ; d7 8597 jl short 05ef0h ; 7c 5f 8598 jl short 05ef2h ; 7c 5f 8599 jl short 05ef4h ; 7c 5f 8600 insw ; 6d 8601 arpl di, dx ; 63 d7 8602 pushaw ; 60 8603 jl short 05efah ; 7c 5f 8604 loopne 05efdh ; e0 60 8605 insw ; 6d 8606 arpl [bx+di+05fh], sp ; 63 61 5f 8607 popaw ; 61 8632 8608 pop di ; 5f 8633 xlatb ; d78609 popaw ; 61 8634 8610 pop di ; 5f 8635 xlatb ; d78611 popaw ; 61 8636 8612 pop di ; 5f 8637 out strict byte 063h, AL ; e6 63 8638 cmp word [bx+di-029h], sp ; 39 61 d7 8613 test byte [bp+di+061h], ah ; 84 63 61 8639 8614 pop di ; 5f 8640 aas ; 3f8641 8615 popaw ; 61 8642 out strict byte 063h, AL ; e6 638643 mov sp, 0bc5fh ; bc 5f bc8644 8616 pop di ; 5f 8645 mov sp, 0bc5fh ; bc 5f bc 8646 pop di ; 5f 8647 std ; fd 8648 arpl [si-043a1h], di ; 63 bc 5f bc 8649 pop di ; 5f 8650 _int13_harddisk_ext: ; 0xf5f08 LB 0x52d 8617 _int13_harddisk_ext: ; 0xf5ead LB 0x50f 8651 8618 push bp ; 55 8652 8619 mov bp, sp ; 89 e5 8653 sub sp, strict byte 0002 ah ; 83 ec 2a8620 sub sp, strict byte 00028h ; 83 ec 28 8654 8621 mov dx, strict word 0000eh ; ba 0e 00 8655 8622 mov ax, strict word 00040h ; b8 40 00 8656 call 0166ch ; e8 55b78657 mov word [bp-01 4h], ax ; 89 46 ec8623 call 0166ch ; e8 b0 b7 8624 mov word [bp-012h], ax ; 89 46 ee 8658 8625 mov dx, strict word 0000eh ; ba 0e 00 8659 8626 mov ax, strict word 00040h ; b8 40 00 8660 call 0166ch ; e8 49b78627 call 0166ch ; e8 a4 b7 8661 8628 mov word [bp-008h], 00122h ; c7 46 f8 22 01 8662 8629 mov word [bp-006h], ax ; 89 46 fa … … 8664 8631 mov dx, 0008eh ; ba 8e 00 8665 8632 mov ax, strict word 00040h ; b8 40 00 8666 call 0165eh ; e8 28b78633 call 0165eh ; e8 83 b7 8667 8634 mov ax, word [bp+00eh] ; 8b 46 0e 8668 8635 xor ah, ah ; 30 e4 8669 8636 cmp ax, 00080h ; 3d 80 00 8670 jc short 05 f45h ; 72 058637 jc short 05eeah ; 72 05 8671 8638 cmp ax, 00090h ; 3d 90 00 8672 jc short 05f 63h ; 72 1e8639 jc short 05f08h ; 72 1e 8673 8640 mov ax, word [bp+00eh] ; 8b 46 0e 8674 8641 xor ah, ah ; 30 e4 … … 8680 8647 push 0068dh ; 68 8d 06 8681 8648 push strict byte 00004h ; 6a 04 8682 call 01966h ; e8 09ba8649 call 01966h ; e8 64 ba 8683 8650 add sp, strict byte 0000ah ; 83 c4 0a 8684 jmp near 06 413h ; e9 b0048651 jmp near 0639ah ; e9 92 04 8685 8652 mov ax, word [bp+00eh] ; 8b 46 0e 8686 8653 xor ah, ah ; 30 e4 … … 8690 8657 mov byte [bp-004h], dl ; 88 56 fc 8691 8658 cmp dl, 010h ; 80 fa 10 8692 jc short 05f 8ah ; 72 108659 jc short 05f2fh ; 72 10 8693 8660 push ax ; 50 8694 8661 mov ax, word [bp+016h] ; 8b 46 16 … … 8697 8664 push 007f5h ; 68 f5 07 8698 8665 push 006b8h ; 68 b8 06 8699 jmp short 05 f58h ; eb ce8666 jmp short 05efdh ; eb ce 8700 8667 mov bx, word [bp+016h] ; 8b 5e 16 8701 8668 shr bx, 008h ; c1 eb 08 8702 8669 sub bx, strict byte 00041h ; 83 eb 41 8703 8670 cmp bx, strict byte 0000fh ; 83 fb 0f 8704 jnbe short 05f bch ; 77 248671 jnbe short 05f61h ; 77 24 8705 8672 add bx, bx ; 01 db 8706 mov ax, word [bp+016h] ; 8b 46 168707 xor ah, ah ; 30 e48708 jmp word [cs:bx+05e e8h] ; 2e ff a7 e85e8673 mov dx, word [bp+016h] ; 8b 56 16 8674 xor dh, dh ; 30 f6 8675 jmp word [cs:bx+05e8dh] ; 2e ff a7 8d 5e 8709 8676 mov word [bp+010h], 0aa55h ; c7 46 10 55 aa 8710 8677 mov ax, word [bp+016h] ; 8b 46 16 … … 8713 8680 mov word [bp+016h], ax ; 89 46 16 8714 8681 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 8715 jmp near 063 eah ; e9 2e048682 jmp near 06371h ; e9 10 04 8716 8683 mov bx, 00da0h ; bb a0 0d 8717 8684 mov cx, ds ; 8c d9 8718 8685 mov ax, strict word 00004h ; b8 04 00 8719 call 01923h ; e8 5cb98686 call 01923h ; e8 b7 b9 8720 8687 mov ax, word [bp+016h] ; 8b 46 16 8721 8688 shr ax, 008h ; c1 e8 08 … … 8723 8690 push 007f5h ; 68 f5 07 8724 8691 push 007c7h ; 68 c7 07 8725 jmp near 060 71h ; e9 9a008692 jmp near 06011h ; e9 95 00 8726 8693 mov di, word [bp+00ah] ; 8b 7e 0a 8727 8694 mov es, [bp+004h] ; 8e 46 04 8728 mov word [bp-01 eh], di ; 89 7e e28729 mov [bp-01 ah], es ; 8c 46 e68695 mov word [bp-01ah], di ; 89 7e e6 8696 mov [bp-018h], es ; 8c 46 e8 8730 8697 mov ax, word [es:di+002h] ; 26 8b 45 02 8731 mov word [bp-01 2h], ax ; 89 46 ee8698 mov word [bp-010h], ax ; 89 46 f0 8732 8699 mov ax, word [es:di+006h] ; 26 8b 45 06 8733 mov word [bp-01 8h], ax ; 89 46 e88700 mov word [bp-016h], ax ; 89 46 ea 8734 8701 mov ax, word [es:di+004h] ; 26 8b 45 04 8735 mov word [bp-01 6h], ax ; 89 46 ea8702 mov word [bp-014h], ax ; 89 46 ec 8736 8703 mov dx, word [es:di+00ch] ; 26 8b 55 0c 8737 8704 mov cx, word [es:di+00eh] ; 26 8b 4d 0e … … 8739 8706 xor bx, bx ; 31 db 8740 8707 mov si, strict word 00020h ; be 20 00 8741 call 0 a01ah ; e8 10 408742 mov word [bp-00eh], bx ; 89 5e f28743 mov bx, word [es:di+008h] ; 26 8b 5d 088744 mov di, word [es:di+00ah] ; 26 8b 7d 0a8745 or dx, bx ; 09 da8746 or cx, di ; 09 f98747 mov bl, byte [bp-004h] ; 8a 5e fc8748 mov byte [bp-022h], bl ; 88 5e de8749 mov byte [bp-021h], 000h ; c6 46 df 008750 imul di, word [bp-022h], strict byte 0001ch ; 6b 7e de1c8751 mov es, [bp-006h] ; 8e 46 fa8752 add di, word [bp-008h] ; 03 7e f88753 mov bl, byte [es:di+022h] ; 26 8a 5d228754 cmp ax, word [es:di+03ch] ; 26 3b 453c8755 jnbe short 0 6059h ; 77 228756 jne short 060 7ch ; 75 438757 mov si, word [bp-00eh] ; 8b 76 f28758 cmp si, word [es:di+03ah] ; 26 3b 753a8759 jnbe short 0 6059h ; 77 178760 mov si, word [bp-00eh] ; 8b 76 f28761 cmp si, word [es:di+03ah] ; 26 3b 753a8762 jne short 060 7ch ; 75 318763 cmp cx, word [es: di+038h] ; 26 3b 4d388764 jnbe short 0 6059h ; 77 088765 jne short 060 7ch ; 75 298766 cmp dx, word [es: di+036h] ; 26 3b 55368767 jc short 060 7ch ; 72 238708 call 09f9ah ; e8 eb 3f 8709 mov si, ax ; 89 c6 8710 mov word [bp-00ch], bx ; 89 5e f4 8711 mov ax, word [es:di+008h] ; 26 8b 45 08 8712 mov bx, word [es:di+00ah] ; 26 8b 5d 0a 8713 or dx, ax ; 09 c2 8714 or cx, bx ; 09 d9 8715 mov al, byte [bp-004h] ; 8a 46 fc 8716 xor ah, ah ; 30 e4 8717 imul ax, ax, strict byte 0001ch ; 6b c0 1c 8718 les bx, [bp-008h] ; c4 5e f8 8719 add bx, ax ; 01 c3 8720 mov al, byte [es:bx+022h] ; 26 8a 47 22 8721 cmp si, word [es:bx+03ch] ; 26 3b 77 3c 8722 jnbe short 05ff9h ; 77 22 8723 jne short 0601ch ; 75 43 8724 mov di, word [bp-00ch] ; 8b 7e f4 8725 cmp di, word [es:bx+03ah] ; 26 3b 7f 3a 8726 jnbe short 05ff9h ; 77 17 8727 mov di, word [bp-00ch] ; 8b 7e f4 8728 cmp di, word [es:bx+03ah] ; 26 3b 7f 3a 8729 jne short 0601ch ; 75 31 8730 cmp cx, word [es:bx+038h] ; 26 3b 4f 38 8731 jnbe short 05ff9h ; 77 08 8732 jne short 0601ch ; 75 29 8733 cmp dx, word [es:bx+036h] ; 26 3b 57 36 8734 jc short 0601ch ; 72 23 8768 8735 mov bx, 00da0h ; bb a0 0d 8769 8736 mov cx, ds ; 8c d9 8770 8737 mov ax, strict word 00004h ; b8 04 00 8771 call 01923h ; e8 bf b88738 call 01923h ; e8 1f b9 8772 8739 mov ax, word [bp+016h] ; 8b 46 16 8773 8740 shr ax, 008h ; c1 e8 08 … … 8776 8743 push 00808h ; 68 08 08 8777 8744 push strict byte 00004h ; 6a 04 8778 call 01966h ; e8 f0 b88745 call 01966h ; e8 50 b9 8779 8746 add sp, strict byte 00008h ; 83 c4 08 8780 jmp near 06 413h ; e9 97038747 jmp near 0639ah ; e9 7e 03 8781 8748 mov di, word [bp+016h] ; 8b 7e 16 8782 8749 shr di, 008h ; c1 ef 08 8783 8750 cmp di, strict byte 00044h ; 83 ff 44 8784 je short 060 8ch ; 74 058751 je short 0602ch ; 74 05 8785 8752 cmp di, strict byte 00047h ; 83 ff 47 8786 jne short 060 8fh ; 75 038787 jmp near 063 e6h ; e9 57038788 les si, [bp-008h] ; c4 76f88789 mov word [es: si+018h], strict word 00000h ; 26 c7 4418 00 008790 mov word [es: si+01ah], strict word 00000h ; 26 c7 441a 00 008791 mov word [es: si+01ch], strict word 00000h ; 26 c7 441c 00 008792 mov word [es: si+006h], ax ; 26 89 44068793 mov ax, word [bp-00eh] ; 8b 46 f28794 mov word [es:si+004h], ax ; 26 89 44 048795 mov word [es:si+00 2h], cx ; 26 89 4c 028796 mov word [es:si], dx ; 26 89 148797 mov ax, word [bp-016h] ; 8b 46 ea8798 mov word [es: si+008h], ax ; 26 89 44 088799 mov ax, word [bp-018h] ; 8b 46 e88800 mov word [es: si+00ah], ax ; 26 89 44 0a8801 mov ax, word [bp-012h] ; 8b 46 ee8802 mov word [es: si+00eh], ax ; 26 89 44 0e8803 mov word [es:si+010h], 00200h ; 26 c7 44 10 00 028804 mov word [es: si+016h], strict word 00000h ; 26 c7 44 16 00 008805 mov al, byte [bp-004h] ; 8a 46 fc8806 mov byte [es:si+00ch], al ; 26 88 44 0c8807 mov dx, di ; 89 fa8808 add dx, di ; 01 fa8809 mov al, bl ; 88 d88810 xor ah, ah ; 30 e48811 mov bx, ax ; 89 c38812 sal bx, 002h ; c1 e3028813 add bx, dx ; 01 d38753 jne short 0602fh ; 75 03 8754 jmp near 0636dh ; e9 3e 03 8755 les bx, [bp-008h] ; c4 5e f8 8756 mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00 8757 mov word [es:bx+01ah], strict word 00000h ; 26 c7 47 1a 00 00 8758 mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00 8759 mov word [es:bx+006h], si ; 26 89 77 06 8760 mov bx, word [bp-00ch] ; 8b 5e f4 8761 mov si, word [bp-008h] ; 8b 76 f8 8762 mov word [es:si+004h], bx ; 26 89 5c 04 8763 mov bx, si ; 89 f3 8764 mov word [es:bx+002h], cx ; 26 89 4f 02 8765 mov word [es:bx], dx ; 26 89 17 8766 mov dx, word [bp-014h] ; 8b 56 ec 8767 mov word [es:bx+008h], dx ; 26 89 57 08 8768 mov dx, word [bp-016h] ; 8b 56 ea 8769 mov word [es:bx+00ah], dx ; 26 89 57 0a 8770 mov dx, word [bp-010h] ; 8b 56 f0 8771 mov word [es:bx+00eh], dx ; 26 89 57 0e 8772 mov word [es:bx+010h], 00200h ; 26 c7 47 10 00 02 8773 mov word [es:bx+016h], strict word 00000h ; 26 c7 47 16 00 00 8774 mov ah, byte [bp-004h] ; 8a 66 fc 8775 mov byte [es:bx+00ch], ah ; 26 88 67 0c 8776 mov bx, di ; 89 fb 8777 add bx, di ; 01 fb 8778 xor ah, ah ; 30 e4 8779 sal ax, 002h ; c1 e0 02 8780 add bx, ax ; 01 c3 8814 8781 push ES ; 06 8815 8782 push si ; 56 … … 8819 8786 mov bx, si ; 89 f3 8820 8787 mov ax, word [es:bx+018h] ; 26 8b 47 18 8821 mov word [bp-012h], ax ; 89 46 ee 8822 mov es, [bp-01ah] ; 8e 46 e6 8823 mov bx, word [bp-01eh] ; 8b 5e e2 8788 mov word [bp-010h], ax ; 89 46 f0 8789 les bx, [bp-01ah] ; c4 5e e6 8824 8790 mov word [es:bx+002h], ax ; 26 89 47 02 8825 8791 test dl, dl ; 84 d2 8826 je short 06 15dh ; 74 4e8792 je short 060feh ; 74 51 8827 8793 mov bx, 00da0h ; bb a0 0d 8828 8794 mov cx, ds ; 8c d9 8829 8795 mov ax, strict word 00004h ; b8 04 00 8830 call 01923h ; e8 09b88796 call 01923h ; e8 6b b8 8831 8797 mov al, dl ; 88 d0 8832 8798 xor ah, ah ; 30 e4 … … 8836 8802 push 00759h ; 68 59 07 8837 8803 push strict byte 00004h ; 6a 04 8838 call 01966h ; e8 3bb88804 call 01966h ; e8 9d b8 8839 8805 add sp, strict byte 0000ah ; 83 c4 0a 8840 8806 mov ax, word [bp+016h] ; 8b 46 16 8841 8807 xor ah, ah ; 30 e4 8842 8808 or ah, 00ch ; 80 cc 0c 8843 jmp near 0641bh ; e9 e2 02 8844 or ah, 0b2h ; 80 cc b2 8845 jmp near 0641bh ; e9 dc 02 8809 jmp near 063a2h ; e9 cb 02 8810 or dh, 0b2h ; 80 ce b2 8811 mov word [bp+016h], dx ; 89 56 16 8812 jmp near 063a5h ; e9 c5 02 8846 8813 mov bx, word [bp+00ah] ; 8b 5e 0a 8847 8814 mov ax, word [bp+004h] ; 8b 46 04 8848 mov word [bp-0 0ch], ax ; 89 46 f48815 mov word [bp-024h], ax ; 89 46 dc 8849 8816 mov di, bx ; 89 df 8850 8817 mov word [bp-00ah], ax ; 89 46 f6 8851 8818 mov es, ax ; 8e c0 8852 8819 mov ax, word [es:bx] ; 26 8b 07 8853 mov word [bp-0 10h], ax ; 89 46 f08820 mov word [bp-00eh], ax ; 89 46 f2 8854 8821 cmp ax, strict word 0001ah ; 3d 1a 00 8855 jnc short 061 60h ; 73 068856 jmp near 06 413h ; e9 b6028857 jmp near 063 e6h ; e9 86028858 jnc short 061 65h ; 73 038859 jmp near 06 204h ; e9 9f008822 jnc short 06101h ; 73 06 8823 jmp near 0639ah ; e9 9c 02 8824 jmp near 0636dh ; e9 6c 02 8825 jnc short 06106h ; 73 03 8826 jmp near 0619dh ; e9 97 00 8860 8827 mov al, byte [bp-004h] ; 8a 46 fc 8861 8828 xor ah, ah ; 30 e4 … … 8864 8831 add bx, ax ; 01 c3 8865 8832 mov ax, word [es:bx+032h] ; 26 8b 47 32 8866 mov word [bp-02 ah], ax ; 89 46 d68833 mov word [bp-028h], ax ; 89 46 d8 8867 8834 mov ax, word [es:bx+030h] ; 26 8b 47 30 8868 mov word [bp-02 8h], ax ; 89 46 d88835 mov word [bp-026h], ax ; 89 46 da 8869 8836 mov ax, word [es:bx+034h] ; 26 8b 47 34 8870 mov word [bp-02 4h], ax ; 89 46 dc8871 mov ax, word [es:bx+03ch] ; 26 8b 47 3c8872 mov dx, word [es:bx+03ah] ; 26 8b 57 3a8873 mov word [bp-00 eh], dx ; 89 56 f28837 mov word [bp-020h], ax ; 89 46 e0 8838 mov si, word [es:bx+03ch] ; 26 8b 77 3c 8839 mov ax, word [es:bx+03ah] ; 26 8b 47 3a 8840 mov word [bp-00ch], ax ; 89 46 f4 8874 8841 mov cx, word [es:bx+038h] ; 26 8b 4f 38 8875 8842 mov dx, word [es:bx+036h] ; 26 8b 57 36 8876 mov bx, word [es:bx+028h] ; 26 8b 5f288877 mov word [bp-02 6h], bx ; 89 5e da8878 mov es, [bp-0 0ch] ; 8e 46 f48843 mov ax, word [es:bx+028h] ; 26 8b 47 28 8844 mov word [bp-022h], ax ; 89 46 de 8845 mov es, [bp-024h] ; 8e 46 dc 8879 8846 mov bx, di ; 89 fb 8880 8847 mov word [es:bx], strict word 0001ah ; 26 c7 07 1a 00 8881 8848 mov word [es:bx+002h], strict word 00002h ; 26 c7 47 02 02 00 8882 mov bx, word [bp-02ah] ; 8b 5e d6 8883 mov si, di ; 89 fe 8884 mov word [es:si+004h], bx ; 26 89 5c 04 8885 mov bx, si ; 89 f3 8849 mov ax, word [bp-028h] ; 8b 46 d8 8850 mov word [es:bx+004h], ax ; 26 89 47 04 8886 8851 mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00 8887 mov bx, word [bp-028h] ; 8b 5e d8 8888 mov word [es:si+008h], bx ; 26 89 5c 08 8889 mov bx, si ; 89 f3 8852 mov ax, word [bp-026h] ; 8b 46 da 8853 mov word [es:bx+008h], ax ; 26 89 47 08 8890 8854 mov word [es:bx+00ah], strict word 00000h ; 26 c7 47 0a 00 00 8891 mov bx, word [bp-024h] ; 8b 5e dc 8892 mov word [es:si+00ch], bx ; 26 89 5c 0c 8893 mov bx, si ; 89 f3 8855 mov ax, word [bp-020h] ; 8b 46 e0 8856 mov word [es:bx+00ch], ax ; 26 89 47 0c 8894 8857 mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00 8895 mov bx, word [bp-026h] ; 8b 5e da 8896 mov word [es:si+018h], bx ; 26 89 5c 18 8897 mov bx, si ; 89 f3 8858 mov ax, word [bp-022h] ; 8b 46 de 8859 mov word [es:bx+018h], ax ; 26 89 47 18 8898 8860 mov word [es:bx+010h], dx ; 26 89 57 10 8899 8861 mov word [es:bx+012h], cx ; 26 89 4f 12 8900 mov bx, word [bp-00eh] ; 8b 5e f2 8862 mov ax, si ; 89 f0 8863 mov bx, word [bp-00ch] ; 8b 5e f4 8901 8864 mov si, strict word 00020h ; be 20 00 8902 call 0 a02ah ; e8 303e8865 call 09faah ; e8 17 3e 8903 8866 mov bx, di ; 89 fb 8904 8867 mov word [es:bx+014h], dx ; 26 89 57 14 8905 8868 mov word [es:bx+016h], cx ; 26 89 4f 16 8906 cmp word [bp-0 10h], strict byte 0001eh ; 83 7e f01e8907 jc short 062 73h ; 72 698869 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 8870 jc short 06208h ; 72 65 8908 8871 mov es, [bp-00ah] ; 8e 46 f6 8909 8872 mov word [es:di], strict word 0001eh ; 26 c7 05 1e 00 8910 mov ax, word [bp-01 4h] ; 8b 46 ec8873 mov ax, word [bp-012h] ; 8b 46 ee 8911 8874 mov word [es:di+01ch], ax ; 26 89 45 1c 8912 8875 mov word [es:di+01ah], 00356h ; 26 c7 45 1a 56 03 … … 8925 8888 mov word [bp-01ch], ax ; 89 46 e4 8926 8889 mov ax, word [es:bx+00208h] ; 26 8b 87 08 02 8927 mov word [bp-0 20h], ax ; 89 46 e08890 mov word [bp-01eh], ax ; 89 46 e2 8928 8891 mov al, byte [es:bx+00205h] ; 26 8a 87 05 02 8929 8892 mov byte [bp-002h], al ; 88 46 fe 8930 8893 imul bx, cx, strict byte 0001ch ; 6b d9 1c 8931 8894 add bx, word [bp-008h] ; 03 5e f8 8932 mov ah, byte [es:bx+026h] ; 26 8a 67 26 8933 mov al, byte [es:bx+027h] ; 26 8a 47 27 8934 test al, al ; 84 c0 8935 jne short 06263h ; 75 04 8895 mov dl, byte [es:bx+027h] ; 26 8a 57 27 8896 test dl, dl ; 84 d2 8897 jne short 061f8h ; 75 04 8936 8898 xor bx, bx ; 31 db 8937 jmp short 06 266h ; eb 038899 jmp short 061fbh ; eb 03 8938 8900 mov bx, strict word 00008h ; bb 08 00 8939 8901 or bl, 010h ; 80 cb 10 8940 cmp ah, 001h ; 80 fc 01 8941 jne short 06276h ; 75 08 8942 mov dx, strict word 00001h ; ba 01 00 8943 jmp short 06278h ; eb 05 8944 jmp near 06317h ; e9 a1 00 8945 xor dx, dx ; 31 d2 8946 or bx, dx ; 09 d3 8947 cmp AL, strict byte 001h ; 3c 01 8948 jne short 06283h ; 75 05 8949 mov dx, strict word 00001h ; ba 01 00 8950 jmp short 06285h ; eb 02 8951 xor dx, dx ; 31 d2 8952 or bx, dx ; 09 d3 8953 cmp AL, strict byte 003h ; 3c 03 8954 jne short 06290h ; 75 05 8902 cmp dl, 001h ; 80 fa 01 8903 jne short 0620bh ; 75 08 8904 mov ax, strict word 00001h ; b8 01 00 8905 jmp short 0620dh ; eb 05 8906 jmp near 0629eh ; e9 93 00 8907 xor ax, ax ; 31 c0 8908 or bx, ax ; 09 c3 8909 cmp dl, 003h ; 80 fa 03 8910 jne short 06219h ; 75 05 8955 8911 mov ax, strict word 00003h ; b8 03 00 8956 jmp short 062 92h ; eb 028912 jmp short 0621bh ; eb 02 8957 8913 xor ax, ax ; 31 c0 8958 8914 or bx, ax ; 09 c3 … … 8960 8916 les si, [bp-008h] ; c4 76 f8 8961 8917 mov word [es:si+00234h], ax ; 26 89 84 34 02 8962 mov ax, word [bp-0 20h] ; 8b 46 e08918 mov ax, word [bp-01eh] ; 8b 46 e2 8963 8919 mov word [es:si+00236h], ax ; 26 89 84 36 02 8964 8920 mov al, byte [bp-004h] ; 8a 46 fc … … 8981 8937 xor bl, bl ; 30 db 8982 8938 xor bh, bh ; 30 ff 8983 jmp short 062 f7h ; eb 058939 jmp short 06280h ; eb 05 8984 8940 cmp bh, 00fh ; 80 ff 0f 8985 jnc short 0630dh ; 73 16 8986 mov al, bh ; 88 f8 8987 xor ah, ah ; 30 e4 8988 mov dx, ax ; 89 c2 8941 jnc short 06294h ; 73 14 8942 mov dl, bh ; 88 fa 8943 xor dh, dh ; 30 f6 8989 8944 add dx, 00356h ; 81 c2 56 03 8990 mov ax, word [bp-01 4h] ; 8b 46 ec8991 call 01650h ; e8 49b38945 mov ax, word [bp-012h] ; 8b 46 ee 8946 call 01650h ; e8 c2 b3 8992 8947 add bl, al ; 00 c3 8993 8948 db 0feh, 0c7h 8994 8949 ; inc bh ; fe c7 8995 jmp short 062 f2h ; eb e58950 jmp short 0627bh ; eb e7 8996 8951 neg bl ; f6 db 8997 8952 les si, [bp-008h] ; c4 76 f8 8998 8953 mov byte [es:si+00243h], bl ; 26 88 9c 43 02 8999 cmp word [bp-0 10h], strict byte 00042h ; 83 7e f0429000 jnc short 06 320h ; 73 039001 jmp near 063 e6h ; e9 c6 008954 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 8955 jnc short 062a7h ; 73 03 8956 jmp near 0636dh ; e9 c6 00 9002 8957 mov al, byte [bp-004h] ; 8a 46 fc 9003 8958 xor ah, ah ; 30 e4 … … 9018 8973 mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00 9019 8974 test al, al ; 84 c0 9020 jne short 06 368h ; 75 0c8975 jne short 062efh ; 75 0c 9021 8976 mov word [es:di+024h], 05349h ; 26 c7 45 24 49 53 9022 8977 mov word [es:di+026h], 02041h ; 26 c7 45 26 41 20 … … 9027 8982 mov word [es:di+02eh], 02020h ; 26 c7 45 2e 20 20 9028 8983 test al, al ; 84 c0 9029 jne short 063 9dh ; 75 168984 jne short 06324h ; 75 16 9030 8985 mov word [es:di+030h], dx ; 26 89 55 30 9031 8986 mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00 … … 9042 8997 xor bl, bl ; 30 db 9043 8998 mov BH, strict byte 01eh ; b7 1e 9044 jmp short 063 c8h ; eb 058999 jmp short 0634fh ; eb 05 9045 9000 cmp bh, 040h ; 80 ff 40 9046 jnc short 063 ddh ; 73 159001 jnc short 06364h ; 73 15 9047 9002 mov al, bh ; 88 f8 9048 9003 xor ah, ah ; 30 e4 … … 9050 9005 add dx, ax ; 01 c2 9051 9006 mov ax, word [bp+004h] ; 8b 46 04 9052 call 01650h ; e8 79b29007 call 01650h ; e8 f2 b2 9053 9008 add bl, al ; 00 c3 9054 9009 db 0feh, 0c7h 9055 9010 ; inc bh ; fe c7 9056 jmp short 063 c3h ; eb e69011 jmp short 0634ah ; eb e6 9057 9012 neg bl ; f6 db 9058 9013 mov es, [bp-00ah] ; 8e 46 f6 … … 9062 9017 mov dx, strict word 00074h ; ba 74 00 9063 9018 mov ax, strict word 00040h ; b8 40 00 9064 call 0165eh ; e8 69b29019 call 0165eh ; e8 e2 b2 9065 9020 and byte [bp+01ch], 0feh ; 80 66 1c fe 9066 9021 mov sp, bp ; 89 ec 9067 9022 pop bp ; 5d 9068 9023 retn ; c3 9069 cmp ax, strict word 00006h ; 3d 06 009070 je short 063 e6h ; 74 e49071 cmp ax, strict word 00001h ; 3d 01 009072 jc short 06 413h ; 72 0c9073 jbe short 063 e6h ; 76 dd9074 cmp ax, strict word 00003h ; 3d 03 009075 jc short 06 413h ; 72 059076 cmp ax, strict word 00004h ; 3d 04 009077 jbe short 063 e6h ; 76 d39024 cmp dx, strict byte 00006h ; 83 fa 06 9025 je short 0636dh ; 74 e4 9026 cmp dx, strict byte 00001h ; 83 fa 01 9027 jc short 0639ah ; 72 0c 9028 jbe short 0636dh ; 76 dd 9029 cmp dx, strict byte 00003h ; 83 fa 03 9030 jc short 0639ah ; 72 05 9031 cmp dx, strict byte 00004h ; 83 fa 04 9032 jbe short 0636dh ; 76 d3 9078 9033 mov ax, word [bp+016h] ; 8b 46 16 9079 9034 xor ah, ah ; 30 e4 … … 9085 9040 mov dx, strict word 00074h ; ba 74 00 9086 9041 mov ax, strict word 00040h ; b8 40 00 9087 call 0165eh ; e8 2fb29042 call 0165eh ; e8 a8 b2 9088 9043 or byte [bp+01ch], 001h ; 80 4e 1c 01 9089 jmp short 063 f9h ; eb c49090 _int14_function: ; 0xf6 435LB 0x1579044 jmp short 06380h ; eb c4 9045 _int14_function: ; 0xf63bc LB 0x157 9091 9046 push bp ; 55 9092 9047 mov bp, sp ; 89 e5 … … 9096 9051 add dx, dx ; 01 d2 9097 9052 mov ax, strict word 00040h ; b8 40 00 9098 call 0166ch ; e8 27b29053 call 0166ch ; e8 a0 b2 9099 9054 mov si, ax ; 89 c6 9100 9055 mov bx, ax ; 89 c3 … … 9102 9057 add dx, strict byte 0007ch ; 83 c2 7c 9103 9058 mov ax, strict word 00040h ; b8 40 00 9104 call 01650h ; e8 fb b19059 call 01650h ; e8 74 b2 9105 9060 mov cl, al ; 88 c1 9106 9061 cmp word [bp+00eh], strict byte 00004h ; 83 7e 0e 04 9107 jnc short 06 461h ; 73 049062 jnc short 063e8h ; 73 04 9108 9063 test si, si ; 85 f6 9109 jnbe short 06 464h ; 77 039110 jmp near 065 82h ; e9 1e 019064 jnbe short 063ebh ; 77 03 9065 jmp near 06509h ; e9 1e 01 9111 9066 mov al, byte [bp+013h] ; 8a 46 13 9112 9067 cmp AL, strict byte 001h ; 3c 01 9113 jc short 06 478h ; 72 0d9114 jbe short 064 d3h ; 76 669068 jc short 063ffh ; 72 0d 9069 jbe short 0645ah ; 76 66 9115 9070 cmp AL, strict byte 003h ; 3c 03 9116 je short 064 cbh ; 74 5a9071 je short 06452h ; 74 5a 9117 9072 cmp AL, strict byte 002h ; 3c 02 9118 je short 064 ceh ; 74 599119 jmp near 065 7ch ; e9 04 019073 je short 06455h ; 74 59 9074 jmp near 06503h ; e9 04 01 9120 9075 test al, al ; 84 c0 9121 jne short 064 d0h ; 75 549076 jne short 06457h ; 75 54 9122 9077 lea dx, [bx+003h] ; 8d 57 03 9123 9078 in AL, DX ; ec … … 9152 9107 ; sub ah, ah ; 2a e4 9153 9108 mov byte [bp+012h], al ; 88 46 12 9154 jmp near 06 55dh ; e9 9f 009109 jmp near 064e4h ; e9 9f 00 9155 9110 mov AL, strict byte 017h ; b0 17 9156 9111 mov dx, bx ; 89 da … … 9159 9114 mov AL, strict byte 004h ; b0 04 9160 9115 out DX, AL ; ee 9161 jmp short 064 a0h ; eb d59162 jmp near 06 56bh ; e9 9d 009163 jmp short 06 521h ; eb 519164 jmp near 065 7ch ; e9 a9 009116 jmp short 06427h ; eb d5 9117 jmp near 064f2h ; e9 9d 00 9118 jmp short 064a8h ; eb 51 9119 jmp near 06503h ; e9 a9 00 9165 9120 mov dx, strict word 0006ch ; ba 6c 00 9166 9121 mov ax, strict word 00040h ; b8 40 00 9167 call 0166ch ; e8 90 b19122 call 0166ch ; e8 09 b2 9168 9123 mov si, ax ; 89 c6 9169 9124 lea dx, [bx+005h] ; 8d 57 05 … … 9173 9128 and ax, strict word 00060h ; 25 60 00 9174 9129 cmp ax, strict word 00060h ; 3d 60 00 9175 je short 06 503h ; 74 179130 je short 0648ah ; 74 17 9176 9131 test cl, cl ; 84 c9 9177 je short 06 503h ; 74 139132 je short 0648ah ; 74 13 9178 9133 mov dx, strict word 0006ch ; ba 6c 00 9179 9134 mov ax, strict word 00040h ; b8 40 00 9180 call 0166ch ; e8 73b19135 call 0166ch ; e8 ec b1 9181 9136 cmp ax, si ; 39 f0 9182 je short 064 deh ; 74 e19137 je short 06465h ; 74 e1 9183 9138 mov si, ax ; 89 c6 9184 9139 db 0feh, 0c9h 9185 9140 ; dec cl ; fe c9 9186 jmp short 064 deh ; eb db9141 jmp short 06465h ; eb db 9187 9142 test cl, cl ; 84 c9 9188 je short 06 50dh ; 74 069143 je short 06494h ; 74 06 9189 9144 mov al, byte [bp+012h] ; 8a 46 12 9190 9145 mov dx, bx ; 89 da … … 9196 9151 mov byte [bp+013h], al ; 88 46 13 9197 9152 test cl, cl ; 84 c9 9198 jne short 06 55dh ; 75 439153 jne short 064e4h ; 75 43 9199 9154 or AL, strict byte 080h ; 0c 80 9200 9155 mov byte [bp+013h], al ; 88 46 13 9201 jmp short 06 55dh ; eb 3c9156 jmp short 064e4h ; eb 3c 9202 9157 mov dx, strict word 0006ch ; ba 6c 00 9203 9158 mov ax, strict word 00040h ; b8 40 00 9204 call 0166ch ; e8 42b19159 call 0166ch ; e8 bb b1 9205 9160 mov si, ax ; 89 c6 9206 9161 lea dx, [bx+005h] ; 8d 57 05 … … 9209 9164 ; sub ah, ah ; 2a e4 9210 9165 test AL, strict byte 001h ; a8 01 9211 jne short 06 54dh ; 75 179166 jne short 064d4h ; 75 17 9212 9167 test cl, cl ; 84 c9 9213 je short 06 54dh ; 74 139168 je short 064d4h ; 74 13 9214 9169 mov dx, strict word 0006ch ; ba 6c 00 9215 9170 mov ax, strict word 00040h ; b8 40 00 9216 call 0166ch ; e8 29b19171 call 0166ch ; e8 a2 b1 9217 9172 cmp ax, si ; 39 f0 9218 je short 06 52ch ; 74 e59173 je short 064b3h ; 74 e5 9219 9174 mov si, ax ; 89 c6 9220 9175 db 0feh, 0c9h 9221 9176 ; dec cl ; fe c9 9222 jmp short 06 52ch ; eb df9177 jmp short 064b3h ; eb df 9223 9178 test cl, cl ; 84 c9 9224 je short 06 563h ; 74 129179 je short 064eah ; 74 12 9225 9180 mov byte [bp+013h], 000h ; c6 46 13 00 9226 9181 mov dx, bx ; 89 da … … 9230 9185 mov byte [bp+012h], al ; 88 46 12 9231 9186 and byte [bp+01ch], 0feh ; 80 66 1c fe 9232 jmp short 065 86h ; eb 239187 jmp short 0650dh ; eb 23 9233 9188 lea dx, [bx+005h] ; 8d 57 05 9234 9189 in AL, DX ; ec 9235 9190 db 02ah, 0e4h 9236 9191 ; sub ah, ah ; 2a e4 9237 jmp short 06 51ch ; eb b19192 jmp short 064a3h ; eb b1 9238 9193 lea dx, [si+005h] ; 8d 54 05 9239 9194 in AL, DX ; ec … … 9245 9200 db 02ah, 0e4h 9246 9201 ; sub ah, ah ; 2a e4 9247 jmp short 06 55ah ; eb de9202 jmp short 064e1h ; eb de 9248 9203 or byte [bp+01ch], 001h ; 80 4e 1c 01 9249 jmp short 065 86h ; eb 049204 jmp short 0650dh ; eb 04 9250 9205 or byte [bp+01ch], 001h ; 80 4e 1c 01 9251 9206 lea sp, [bp-002h] ; 8d 66 fe … … 9253 9208 pop bp ; 5d 9254 9209 retn ; c3 9255 set_enable_a20_: ; 0xf65 8cLB 0x309210 set_enable_a20_: ; 0xf6513 LB 0x30 9256 9211 push bp ; 55 9257 9212 mov bp, sp ; 89 e5 … … 9266 9221 mov cl, al ; 88 c1 9267 9222 test bx, bx ; 85 db 9268 je short 065 a5h ; 74 059223 je short 0652ch ; 74 05 9269 9224 or AL, strict byte 002h ; 0c 02 9270 9225 out DX, AL ; ee 9271 jmp short 065 a8h ; eb 039226 jmp short 0652fh ; eb 03 9272 9227 and AL, strict byte 0fdh ; 24 fd 9273 9228 out DX, AL ; ee 9274 9229 test cl, 002h ; f6 c1 02 9275 je short 065 b2h ; 74 059230 je short 06539h ; 74 05 9276 9231 mov ax, strict word 00001h ; b8 01 00 9277 jmp short 065 b4h ; eb 029232 jmp short 0653bh ; eb 02 9278 9233 xor ax, ax ; 31 c0 9279 9234 lea sp, [bp-006h] ; 8d 66 fa … … 9283 9238 pop bp ; 5d 9284 9239 retn ; c3 9285 set_e820_range_: ; 0xf65 bcLB 0x8b9240 set_e820_range_: ; 0xf6543 LB 0x8b 9286 9241 push si ; 56 9287 9242 push bp ; 55 … … 9313 9268 retn 0000ah ; c2 0a 00 9314 9269 db 0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 087h, 083h, 052h, 04fh, 041h, 024h 9315 db 000h, 0 edh, 06ah, 084h, 066h, 098h, 066h, 02dh, 067h, 033h, 067h, 038h, 067h, 03dh, 067h, 0e5h9316 db 067h, 0 84h, 069h, 0aah, 069h, 026h, 067h, 026h, 067h, 077h, 06ah, 09fh, 06ah, 0b2h, 06ah, 0c1h9317 db 06ah, 0 2dh, 067h, 0c8h, 06ah9318 _int15_function: ; 0xf6 647LB 0x4d89270 db 000h, 074h, 06ah, 00bh, 066h, 01fh, 066h, 0b4h, 066h, 0bah, 066h, 0bfh, 066h, 0c4h, 066h, 06ch 9271 db 067h, 00bh, 069h, 031h, 069h, 0adh, 066h, 0adh, 066h, 0feh, 069h, 026h, 06ah, 039h, 06ah, 048h 9272 db 06ah, 0b4h, 066h, 04fh, 06ah 9273 _int15_function: ; 0xf65ce LB 0x4d8 9319 9274 push bp ; 55 9320 9275 mov bp, sp ; 89 e5 … … 9326 9281 shr ax, 008h ; c1 e8 08 9327 9282 cmp ax, 000ech ; 3d ec 00 9328 jnbe short 066 8eh ; 77 359283 jnbe short 06615h ; 77 35 9329 9284 push CS ; 0e 9330 9285 pop ES ; 07 9331 9286 mov cx, strict word 00012h ; b9 12 00 9332 mov di, 06 612h ; bf 12 669287 mov di, 06599h ; bf 99 65 9333 9288 repne scasb ; f2 ae 9334 9289 sal cx, 1 ; d1 e1 9335 9290 mov di, cx ; 89 cf 9336 mov si, word [cs:di+06 623h] ; 2e 8b b5 23 669291 mov si, word [cs:di+065aah] ; 2e 8b b5 aa 65 9337 9292 mov ax, word [bp+012h] ; 8b 46 12 9338 9293 xor ah, ah ; 30 e4 … … 9347 9302 xor ah, ah ; 30 e4 9348 9303 cmp ax, 000c0h ; 3d c0 00 9349 je short 066 91h ; 74 039350 jmp near 06a edh ; e9 5c 049304 je short 06618h ; 74 03 9305 jmp near 06a74h ; e9 5c 04 9351 9306 or byte [bp+018h], 001h ; 80 4e 18 01 9352 jmp near 06a 96h ; e9 fe 039307 jmp near 06a1dh ; e9 fe 03 9353 9308 mov dx, ax ; 89 c2 9354 9309 cmp ax, strict word 00001h ; 3d 01 00 9355 jc short 066 adh ; 72 0e9356 jbe short 066 c1h ; 76 209310 jc short 06634h ; 72 0e 9311 jbe short 06648h ; 76 20 9357 9312 cmp ax, strict word 00003h ; 3d 03 00 9358 je short 066 eeh ; 74 489313 je short 06675h ; 74 48 9359 9314 cmp ax, strict word 00002h ; 3d 02 00 9360 je short 066 d1h ; 74 269361 jmp short 066 fbh ; eb 4e9315 je short 06658h ; 74 26 9316 jmp short 06682h ; eb 4e 9362 9317 test ax, ax ; 85 c0 9363 jne short 066 fbh ; 75 4a9318 jne short 06682h ; 75 4a 9364 9319 xor ax, ax ; 31 c0 9365 call 065 8ch ; e8 d6 fe9320 call 06513h ; e8 d6 fe 9366 9321 and byte [bp+018h], 0feh ; 80 66 18 fe 9367 9322 mov byte [bp+013h], 000h ; c6 46 13 00 9368 jmp near 06 726h ; e9 65 009323 jmp near 066adh ; e9 65 00 9369 9324 mov ax, strict word 00001h ; b8 01 00 9370 call 065 8ch ; e8 c5 fe9325 call 06513h ; e8 c5 fe 9371 9326 and byte [bp+018h], 0feh ; 80 66 18 fe 9372 9327 mov byte [bp+013h], dh ; 88 76 13 9373 jmp near 06 726h ; e9 55 009328 jmp near 066adh ; e9 55 00 9374 9329 mov dx, 00092h ; ba 92 00 9375 9330 in AL, DX ; ec … … 9383 9338 and byte [bp+018h], 0feh ; 80 66 18 fe 9384 9339 mov byte [bp+013h], ah ; 88 66 13 9385 jmp near 06 726h ; e9 38 009340 jmp near 066adh ; e9 38 00 9386 9341 and byte [bp+018h], 0feh ; 80 66 18 fe 9387 9342 mov byte [bp+013h], ah ; 88 66 13 9388 9343 mov word [bp+00ch], ax ; 89 46 0c 9389 jmp near 06 726h ; e9 2b 009344 jmp near 066adh ; e9 2b 00 9390 9345 mov bx, 00da0h ; bb a0 0d 9391 9346 mov cx, ds ; 8c d9 9392 9347 mov ax, strict word 00004h ; b8 04 00 9393 call 01923h ; e8 1db29348 call 01923h ; e8 96 b2 9394 9349 mov ax, word [bp+012h] ; 8b 46 12 9395 9350 xor ah, ah ; 30 e4 … … 9397 9352 push 0082eh ; 68 2e 08 9398 9353 push strict byte 00004h ; 6a 04 9399 call 01966h ; e8 52b29354 call 01966h ; e8 cb b2 9400 9355 add sp, strict byte 00006h ; 83 c4 06 9401 9356 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9410 9365 retn ; c3 9411 9366 mov word [bp+018h], dx ; 89 56 18 9412 jmp near 067 dfh ; e9 ac 009367 jmp near 06766h ; e9 ac 00 9413 9368 mov word [bp+018h], dx ; 89 56 18 9414 jmp short 06 726h ; eb ee9369 jmp short 066adh ; eb ee 9415 9370 mov word [bp+018h], cx ; 89 4e 18 9416 jmp short 06 723h ; eb e69371 jmp short 066aah ; eb e6 9417 9372 test byte [bp+012h], 0ffh ; f6 46 12 ff 9418 jne short 067 b2h ; 75 6f9373 jne short 06739h ; 75 6f 9419 9374 mov dx, 000a0h ; ba a0 00 9420 9375 mov ax, strict word 00040h ; b8 40 00 9421 call 01650h ; e8 04af9376 call 01650h ; e8 7d af 9422 9377 test AL, strict byte 001h ; a8 01 9423 jne short 067 afh ; 75 5f9378 jne short 06736h ; 75 5f 9424 9379 mov bx, strict word 00001h ; bb 01 00 9425 9380 mov dx, 000a0h ; ba a0 00 9426 9381 mov ax, strict word 00040h ; b8 40 00 9427 call 0165eh ; e8 02af9382 call 0165eh ; e8 7b af 9428 9383 mov bx, word [bp+014h] ; 8b 5e 14 9429 9384 mov dx, 00098h ; ba 98 00 9430 9385 mov ax, strict word 00040h ; b8 40 00 9431 call 0167ah ; e8 12af9386 call 0167ah ; e8 8b af 9432 9387 mov bx, word [bp+00ch] ; 8b 5e 0c 9433 9388 mov dx, 0009ah ; ba 9a 00 9434 9389 mov ax, strict word 00040h ; b8 40 00 9435 call 0167ah ; e8 06af9390 call 0167ah ; e8 7f af 9436 9391 mov bx, word [bp+00eh] ; 8b 5e 0e 9437 9392 mov dx, 0009ch ; ba 9c 00 9438 9393 mov ax, strict word 00040h ; b8 40 00 9439 call 0167ah ; e8 fa ae9394 call 0167ah ; e8 73 af 9440 9395 mov bx, word [bp+010h] ; 8b 5e 10 9441 9396 mov dx, 0009eh ; ba 9e 00 9442 9397 mov ax, strict word 00040h ; b8 40 00 9443 call 0167ah ; e8 ee ae9398 call 0167ah ; e8 67 af 9444 9399 and byte [bp+018h], 0feh ; 80 66 18 fe 9445 9400 mov dx, 000a1h ; ba a1 00 … … 9450 9405 out DX, AL ; ee 9451 9406 mov ax, strict word 0000bh ; b8 0b 00 9452 call 016ach ; e8 0daf9407 call 016ach ; e8 86 af 9453 9408 mov dl, al ; 88 c2 9454 9409 or dl, 040h ; 80 ca 40 9455 9410 xor dh, dh ; 30 f6 9456 9411 mov ax, strict word 0000bh ; b8 0b 00 9457 call 016c7h ; e8 1baf9458 jmp near 06 726h ; e9 77 ff9459 jmp near 06a 8dh ; e9 db 029412 call 016c7h ; e8 94 af 9413 jmp near 066adh ; e9 77 ff 9414 jmp near 06a14h ; e9 db 02 9460 9415 cmp ax, strict word 00001h ; 3d 01 00 9461 jne short 067 d3h ; 75 1c9416 jne short 0675ah ; 75 1c 9462 9417 xor bx, bx ; 31 db 9463 9418 mov dx, 000a0h ; ba a0 00 9464 9419 mov ax, strict word 00040h ; b8 40 00 9465 call 0165eh ; e8 9c ae9420 call 0165eh ; e8 15 af 9466 9421 and byte [bp+018h], 0feh ; 80 66 18 fe 9467 9422 mov ax, strict word 0000bh ; b8 0b 00 9468 call 016ach ; e8 e0 ae9423 call 016ach ; e8 59 af 9469 9424 mov dl, al ; 88 c2 9470 9425 and dl, 0bfh ; 80 e2 bf 9471 jmp short 067 a4h ; eb d19426 jmp short 0672bh ; eb d1 9472 9427 mov word [bp+018h], dx ; 89 56 18 9473 9428 mov ax, bx ; 89 d8 … … 9477 9432 or bx, ax ; 09 c3 9478 9433 mov word [bp+012h], bx ; 89 5e 12 9479 jmp near 06 726h ; e9 41 ff9434 jmp near 066adh ; e9 41 ff 9480 9435 cli ; fa 9481 9436 mov ax, strict word 00001h ; b8 01 00 9482 call 065 8ch ; e8 a0 fd9437 call 06513h ; e8 a0 fd 9483 9438 mov di, ax ; 89 c7 9484 9439 mov ax, word [bp+014h] ; 8b 46 14 … … 9490 9445 mov byte [bp-006h], dl ; 88 56 fa 9491 9446 cmp cx, ax ; 39 c1 9492 jnc short 06 80bh ; 73 059447 jnc short 06792h ; 73 05 9493 9448 db 0feh, 0c2h 9494 9449 ; inc dl ; fe c2 … … 9498 9453 mov ax, word [bp+014h] ; 8b 46 14 9499 9454 mov bx, strict word 0002fh ; bb 2f 00 9500 call 0167ah ; e8 60ae9455 call 0167ah ; e8 d9 ae 9501 9456 mov dx, word [bp+006h] ; 8b 56 06 9502 9457 add dx, strict byte 0000ah ; 83 c2 0a 9503 9458 mov ax, word [bp+014h] ; 8b 46 14 9504 9459 mov bx, cx ; 89 cb 9505 call 0167ah ; e8 52ae9460 call 0167ah ; e8 cb ae 9506 9461 mov bl, byte [bp-006h] ; 8a 5e fa 9507 9462 xor bh, bh ; 30 ff … … 9509 9464 add dx, strict byte 0000ch ; 83 c2 0c 9510 9465 mov ax, word [bp+014h] ; 8b 46 14 9511 call 0165eh ; e8 25ae9466 call 0165eh ; e8 9e ae 9512 9467 mov dx, word [bp+006h] ; 8b 56 06 9513 9468 add dx, strict byte 0000dh ; 83 c2 0d 9514 9469 mov ax, word [bp+014h] ; 8b 46 14 9515 9470 mov bx, 00093h ; bb 93 00 9516 call 0165eh ; e8 16ae9471 call 0165eh ; e8 8f ae 9517 9472 mov dx, word [bp+006h] ; 8b 56 06 9518 9473 add dx, strict byte 0000eh ; 83 c2 0e 9519 9474 mov ax, word [bp+014h] ; 8b 46 14 9520 9475 xor bx, bx ; 31 db 9521 call 0167ah ; e8 24ae9476 call 0167ah ; e8 9d ae 9522 9477 mov dx, word [bp+006h] ; 8b 56 06 9523 9478 add dx, strict byte 00020h ; 83 c2 20 9524 9479 mov ax, word [bp+014h] ; 8b 46 14 9525 9480 mov bx, strict word 0ffffh ; bb ff ff 9526 call 0167ah ; e8 15ae9481 call 0167ah ; e8 8e ae 9527 9482 mov dx, word [bp+006h] ; 8b 56 06 9528 9483 add dx, strict byte 00022h ; 83 c2 22 9529 9484 mov ax, word [bp+014h] ; 8b 46 14 9530 9485 xor bx, bx ; 31 db 9531 call 0167ah ; e8 07ae9486 call 0167ah ; e8 80 ae 9532 9487 mov dx, word [bp+006h] ; 8b 56 06 9533 9488 add dx, strict byte 00024h ; 83 c2 24 9534 9489 mov ax, word [bp+014h] ; 8b 46 14 9535 9490 mov bx, strict word 0000fh ; bb 0f 00 9536 call 0165eh ; e8 dc ad9491 call 0165eh ; e8 55 ae 9537 9492 mov dx, word [bp+006h] ; 8b 56 06 9538 9493 add dx, strict byte 00025h ; 83 c2 25 9539 9494 mov ax, word [bp+014h] ; 8b 46 14 9540 9495 mov bx, 0009bh ; bb 9b 00 9541 call 0165eh ; e8 cd ad9496 call 0165eh ; e8 46 ae 9542 9497 mov dx, word [bp+006h] ; 8b 56 06 9543 9498 add dx, strict byte 00026h ; 83 c2 26 9544 9499 mov ax, word [bp+014h] ; 8b 46 14 9545 9500 xor bx, bx ; 31 db 9546 call 0167ah ; e8 db ad9501 call 0167ah ; e8 54 ae 9547 9502 mov ax, ss ; 8c d0 9548 9503 mov cx, ax ; 89 c1 … … 9554 9509 mov ax, word [bp+014h] ; 8b 46 14 9555 9510 mov bx, strict word 0ffffh ; bb ff ff 9556 call 0167ah ; e8 bf ad9511 call 0167ah ; e8 38 ae 9557 9512 mov dx, word [bp+006h] ; 8b 56 06 9558 9513 add dx, strict byte 0002ah ; 83 c2 2a 9559 9514 mov ax, word [bp+014h] ; 8b 46 14 9560 9515 mov bx, cx ; 89 cb 9561 call 0167ah ; e8 b1 ad9516 call 0167ah ; e8 2a ae 9562 9517 mov bl, byte [bp-008h] ; 8a 5e f8 9563 9518 xor bh, bh ; 30 ff … … 9565 9520 add dx, strict byte 0002ch ; 83 c2 2c 9566 9521 mov ax, word [bp+014h] ; 8b 46 14 9567 call 0165eh ; e8 84ad9522 call 0165eh ; e8 fd ad 9568 9523 mov dx, word [bp+006h] ; 8b 56 06 9569 9524 add dx, strict byte 0002dh ; 83 c2 2d 9570 9525 mov ax, word [bp+014h] ; 8b 46 14 9571 9526 mov bx, 00093h ; bb 93 00 9572 call 0165eh ; e8 75ad9527 call 0165eh ; e8 ee ad 9573 9528 mov dx, word [bp+006h] ; 8b 56 06 9574 9529 add dx, strict byte 0002eh ; 83 c2 2e 9575 9530 mov ax, word [bp+014h] ; 8b 46 14 9576 9531 xor bx, bx ; 31 db 9577 call 0167ah ; e8 83ad9532 call 0167ah ; e8 fc ad 9578 9533 mov si, word [bp+006h] ; 8b 76 06 9579 9534 mov es, [bp+014h] ; 8e 46 14 … … 9586 9541 mov word [00467h], sp ; 89 26 67 04 9587 9542 mov [00469h], ss ; 8c 16 69 04 9588 call 06 913h ; e8 00 009543 call 0689ah ; e8 00 00 9589 9544 pop di ; 5f 9590 9545 add di, strict byte 0001bh ; 83 c7 1b … … 9609 9564 cld ; fc 9610 9565 rep movsw ; f3 a5 9611 call 06 947h ; e8 00 009566 call 068ceh ; e8 00 00 9612 9567 pop ax ; 58 9613 9568 push 0f000h ; 68 00 f0 … … 9630 9585 pop DS ; 1f 9631 9586 mov ax, di ; 89 f8 9632 call 065 8ch ; e8 14 fc9587 call 06513h ; e8 14 fc 9633 9588 sti ; fb 9634 9589 mov byte [bp+013h], 000h ; c6 46 13 00 9635 9590 and byte [bp+018h], 0feh ; 80 66 18 fe 9636 jmp near 06 726h ; e9 a2 fd9591 jmp near 066adh ; e9 a2 fd 9637 9592 mov ax, strict word 00031h ; b8 31 00 9638 call 016ach ; e8 22ad9593 call 016ach ; e8 9b ad 9639 9594 xor ah, ah ; 30 e4 9640 9595 mov dx, ax ; 89 c2 9641 9596 sal dx, 008h ; c1 e2 08 9642 9597 mov ax, strict word 00030h ; b8 30 00 9643 call 016ach ; e8 15ad9598 call 016ach ; e8 8e ad 9644 9599 xor ah, ah ; 30 e4 9645 9600 or dx, ax ; 09 c2 9646 9601 mov word [bp+012h], dx ; 89 56 12 9647 9602 cmp dx, strict byte 0ffc0h ; 83 fa c0 9648 jbe short 069 7dh ; 76 da9603 jbe short 06904h ; 76 da 9649 9604 mov word [bp+012h], strict word 0ffc0h ; c7 46 12 c0 ff 9650 jmp short 069 7dh ; eb d39605 jmp short 06904h ; eb d3 9651 9606 cli ; fa 9652 9607 mov ax, strict word 00001h ; b8 01 00 9653 call 065 8ch ; e8 db fb9608 call 06513h ; e8 db fb 9654 9609 mov dx, word [bp+006h] ; 8b 56 06 9655 9610 add dx, strict byte 00038h ; 83 c2 38 9656 9611 mov ax, word [bp+014h] ; 8b 46 14 9657 9612 mov bx, strict word 0ffffh ; bb ff ff 9658 call 0167ah ; e8 ba ac9613 call 0167ah ; e8 33 ad 9659 9614 mov dx, word [bp+006h] ; 8b 56 06 9660 9615 add dx, strict byte 0003ah ; 83 c2 3a 9661 9616 mov ax, word [bp+014h] ; 8b 46 14 9662 9617 xor bx, bx ; 31 db 9663 call 0167ah ; e8 ac ac9618 call 0167ah ; e8 25 ad 9664 9619 mov dx, word [bp+006h] ; 8b 56 06 9665 9620 add dx, strict byte 0003ch ; 83 c2 3c 9666 9621 mov ax, word [bp+014h] ; 8b 46 14 9667 9622 mov bx, strict word 0000fh ; bb 0f 00 9668 call 0165eh ; e8 81ac9623 call 0165eh ; e8 fa ac 9669 9624 mov dx, word [bp+006h] ; 8b 56 06 9670 9625 add dx, strict byte 0003dh ; 83 c2 3d 9671 9626 mov ax, word [bp+014h] ; 8b 46 14 9672 9627 mov bx, 0009bh ; bb 9b 00 9673 call 0165eh ; e8 72ac9628 call 0165eh ; e8 eb ac 9674 9629 mov dx, word [bp+006h] ; 8b 56 06 9675 9630 add dx, strict byte 0003eh ; 83 c2 3e 9676 9631 mov ax, word [bp+014h] ; 8b 46 14 9677 9632 xor bx, bx ; 31 db 9678 call 0167ah ; e8 80ac9633 call 0167ah ; e8 f9 ac 9679 9634 mov AL, strict byte 011h ; b0 11 9680 9635 mov dx, strict word 00020h ; ba 20 00 … … 9706 9661 out DX, AL ; ee 9707 9662 mov si, word [bp+006h] ; 8b 76 06 9708 call 06 a3bh ; e8 00 009663 call 069c2h ; e8 00 00 9709 9664 pop di ; 5f 9710 9665 add di, strict byte 00018h ; 83 c7 18 … … 9734 9689 push cx ; 51 9735 9690 retf ; cb 9736 jmp near 06 726h ; e9 af fc9691 jmp near 066adh ; e9 af fc 9737 9692 mov bx, 00da0h ; bb a0 0d 9738 9693 mov cx, ds ; 8c d9 9739 9694 mov ax, strict word 00004h ; b8 04 00 9740 call 01923h ; e8 a1 ae9695 call 01923h ; e8 1a af 9741 9696 push 0086eh ; 68 6e 08 9742 9697 push strict byte 00004h ; 6a 04 9743 call 01966h ; e8 dc ae9698 call 01966h ; e8 55 af 9744 9699 add sp, strict byte 00004h ; 83 c4 04 9745 9700 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9748 9703 or ah, 086h ; 80 cc 86 9749 9704 mov word [bp+012h], ax ; 89 46 12 9750 jmp near 06 726h ; e9 87 fc9705 jmp near 066adh ; e9 87 fc 9751 9706 mov word [bp+018h], cx ; 89 4e 18 9752 9707 mov word [bp+012h], ax ; 89 46 12 9753 9708 mov word [bp+00ch], 0e6f5h ; c7 46 0c f5 e6 9754 9709 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 9755 jmp near 06 726h ; e9 74 fc9710 jmp near 066adh ; e9 74 fc 9756 9711 mov dx, strict word 0000eh ; ba 0e 00 9757 9712 mov ax, strict word 00040h ; b8 40 00 9758 call 0166ch ; e8 b1 ab9713 call 0166ch ; e8 2a ac 9759 9714 mov word [bp+014h], ax ; 89 46 14 9760 jmp near 069 7dh ; e9 bc fe9715 jmp near 06904h ; e9 bc fe 9761 9716 push 0089dh ; 68 9d 08 9762 9717 push strict byte 00008h ; 6a 08 9763 jmp short 06a 87h ; eb bf9718 jmp short 06a0eh ; eb bf 9764 9719 test byte [bp+012h], 0ffh ; f6 46 12 ff 9765 jne short 06a edh ; 75 1f9720 jne short 06a74h ; 75 1f 9766 9721 mov word [bp+012h], ax ; 89 46 12 9767 9722 mov ax, word [bp+00ch] ; 8b 46 0c 9768 9723 xor ah, ah ; 30 e4 9769 9724 cmp ax, strict word 00001h ; 3d 01 00 9770 jc short 06a e6h ; 72 0b9725 jc short 06a6dh ; 72 0b 9771 9726 cmp ax, strict word 00003h ; 3d 03 00 9772 jnbe short 06a e6h ; 77 069727 jnbe short 06a6dh ; 77 06 9773 9728 mov word [bp+018h], cx ; 89 4e 18 9774 jmp near 06 726h ; e9 40 fc9729 jmp near 066adh ; e9 40 fc 9775 9730 or byte [bp+018h], 001h ; 80 4e 18 01 9776 jmp near 06 726h ; e9 39 fc9731 jmp near 066adh ; e9 39 fc 9777 9732 mov bx, 00da0h ; bb a0 0d 9778 9733 mov cx, ds ; 8c d9 9779 9734 mov ax, strict word 00004h ; b8 04 00 9780 call 01923h ; e8 2bae9735 call 01923h ; e8 a4 ae 9781 9736 push word [bp+00ch] ; ff 76 0c 9782 9737 push word [bp+012h] ; ff 76 12 9783 9738 push 008b4h ; 68 b4 08 9784 9739 push strict byte 00004h ; 6a 04 9785 call 01966h ; e8 60ae9740 call 01966h ; e8 d9 ae 9786 9741 add sp, strict byte 00008h ; 83 c4 08 9787 jmp short 06a 8dh ; eb 829788 mov bx, 0e06ch ; bb 6c e09742 jmp short 06a14h ; eb 82 9743 inc dx ; 42 9789 9744 insb ; 6c 9790 add byte [di+04fh], ch ; 00 6d 4f 9745 a32 insb ; 67 6c 9746 xchg word [si-02ah], bp ; 87 6c d6 9747 insb ; 6c 9748 hlt ; f4 9749 insb ; 6c 9750 adc word [di+033h], bp ; 11 6d 33 9791 9751 insw ; 6d 9752 push bp ; 55 9792 9753 insw ; 6d 9754 xchg dx, ax ; 92 9793 9755 insw ; 6d 9794 mov ch, byte [di-054h] ; 8a 6d ac9756 db 0c6h 9795 9757 insw ; 6d 9796 into ; ce 9797 insw ; 6d 9798 or bp, word [bp+03fh] ; 0b 6e 3f 9799 outsb ; 6e 9800 _int15_function32: ; 0xf6b1f LB 0x3bc 9758 _int15_function32: ; 0xf6aa6 LB 0x3bc 9801 9759 push bp ; 55 9802 9760 mov bp, sp ; 89 e5 … … 9810 9768 xor ah, ah ; 30 e4 9811 9769 cmp dx, 000e8h ; 81 fa e8 00 9812 je short 06b 8ah ; 74 4d9770 je short 06b11h ; 74 4d 9813 9771 cmp dx, 000d0h ; 81 fa d0 00 9814 je short 06b 83h ; 74 409772 je short 06b0ah ; 74 40 9815 9773 cmp dx, 00086h ; 81 fa 86 00 9816 jne short 06b a8h ; 75 5f9774 jne short 06b2fh ; 75 5f 9817 9775 sti ; fb 9818 9776 mov ax, word [bp+01ch] ; 8b 46 1c … … 9833 9791 db 066h, 00bh, 0c9h 9834 9792 ; or ecx, ecx ; 66 0b c9 9835 je near 06b 80h ; 0f 84 0e 009793 je near 06b07h ; 0f 84 0e 00 9836 9794 in AL, strict byte 061h ; e4 61 9837 9795 and AL, strict byte 010h ; 24 10 9838 9796 db 03ah, 0c4h 9839 9797 ; cmp al, ah ; 3a c4 9840 je short 06 b72h ; 74 f89798 je short 06af9h ; 74 f8 9841 9799 db 08ah, 0e0h 9842 9800 ; mov ah, al ; 8a e0 9843 9801 dec ecx ; 66 49 9844 jne short 06 b72h ; 75 f29845 jmp near 06 d49h ; e9 c6 019802 jne short 06af9h ; 75 f2 9803 jmp near 06cd0h ; e9 c6 01 9846 9804 cmp ax, strict word 0004fh ; 3d 4f 00 9847 je short 06b 8ch ; 74 049848 jmp short 06b a8h ; eb 1e9849 jmp short 06b e2h ; eb 569805 je short 06b13h ; 74 04 9806 jmp short 06b2fh ; eb 1e 9807 jmp short 06b69h ; eb 56 9850 9808 cmp word [bp+016h], 05052h ; 81 7e 16 52 50 9851 jne short 06b ech ; 75 599809 jne short 06b73h ; 75 59 9852 9810 cmp word [bp+014h], 04f43h ; 81 7e 14 43 4f 9853 jne short 06b ech ; 75 529811 jne short 06b73h ; 75 52 9854 9812 cmp word [bp+01eh], 04d4fh ; 81 7e 1e 4f 4d 9855 jne short 06b ech ; 75 4b9813 jne short 06b73h ; 75 4b 9856 9814 cmp word [bp+01ch], 04445h ; 81 7e 1c 45 44 9857 je short 06b aah ; 74 029858 jmp short 06b ech ; eb 429815 je short 06b31h ; 74 02 9816 jmp short 06b73h ; eb 42 9859 9817 mov ax, word [bp+00ah] ; 8b 46 0a 9860 9818 or ax, word [bp+008h] ; 0b 46 08 9861 jne short 06b ech ; 75 3a9819 jne short 06b73h ; 75 3a 9862 9820 mov ax, word [bp+006h] ; 8b 46 06 9863 9821 or ax, word [bp+004h] ; 0b 46 04 9864 jne short 06b ech ; 75 329822 jne short 06b73h ; 75 32 9865 9823 mov word [bp+028h], bx ; 89 5e 28 9866 9824 mov ax, word [bp+014h] ; 8b 46 14 … … 9874 9832 mov word [bp+020h], 03332h ; c7 46 20 32 33 9875 9833 mov word [bp+022h], 04941h ; c7 46 22 41 49 9876 jmp near 06 d49h ; e9 67 019834 jmp near 06cd0h ; e9 67 01 9877 9835 cmp ax, strict word 00020h ; 3d 20 00 9878 je short 06b f2h ; 74 0b9836 je short 06b79h ; 74 0b 9879 9837 cmp ax, strict word 00001h ; 3d 01 00 9880 je short 06b efh ; 74 039881 jmp near 06 d1fh ; e9 30 019882 jmp near 06e 8dh ; e9 9b 029838 je short 06b76h ; 74 03 9839 jmp near 06ca6h ; e9 30 01 9840 jmp near 06e14h ; e9 9b 02 9883 9841 cmp word [bp+01ah], 0534dh ; 81 7e 1a 4d 53 9884 jne short 06b ech ; 75 f39842 jne short 06b73h ; 75 f3 9885 9843 cmp word [bp+018h], 04150h ; 81 7e 18 50 41 9886 jne short 06b ech ; 75 ec9844 jne short 06b73h ; 75 ec 9887 9845 mov ax, strict word 00035h ; b8 35 00 9888 call 016ach ; e8 a6 aa9846 call 016ach ; e8 1f ab 9889 9847 mov bl, al ; 88 c3 9890 9848 xor bh, bh ; 30 ff … … 9893 9851 sal bx, 1 ; d1 e3 9894 9852 rcl dx, 1 ; d1 d2 9895 loop 06 c0fh ; e2 fa9853 loop 06b96h ; e2 fa 9896 9854 mov ax, strict word 00034h ; b8 34 00 9897 call 016ach ; e8 91 aa9855 call 016ach ; e8 0a ab 9898 9856 xor ah, ah ; 30 e4 9899 9857 mov dx, bx ; 89 da … … 9903 9861 adc dx, 00100h ; 81 d2 00 01 9904 9862 cmp dx, 00100h ; 81 fa 00 01 9905 jc short 06 c35h ; 72 069906 jne short 06 c63h ; 75 329863 jc short 06bbch ; 72 06 9864 jne short 06beah ; 75 32 9907 9865 test bx, bx ; 85 db 9908 jnbe short 06 c63h ; 77 2e9866 jnbe short 06beah ; 77 2e 9909 9867 mov ax, strict word 00031h ; b8 31 00 9910 call 016ach ; e8 71aa9868 call 016ach ; e8 ea aa 9911 9869 mov bl, al ; 88 c3 9912 9870 xor bh, bh ; 30 ff … … 9915 9873 sal bx, 1 ; d1 e3 9916 9874 rcl dx, 1 ; d1 d2 9917 loop 06 c44h ; e2 fa9875 loop 06bcbh ; e2 fa 9918 9876 mov ax, strict word 00030h ; b8 30 00 9919 call 016ach ; e8 5caa9877 call 016ach ; e8 d5 aa 9920 9878 xor ah, ah ; 30 e4 9921 9879 or bx, ax ; 09 c3 … … 9923 9881 sal bx, 1 ; d1 e3 9924 9882 rcl dx, 1 ; d1 d2 9925 loop 06 c57h ; e2 fa9883 loop 06bdeh ; e2 fa 9926 9884 add bx, strict byte 00000h ; 83 c3 00 9927 9885 adc dx, strict byte 00010h ; 83 d2 10 9928 9886 mov ax, strict word 00062h ; b8 62 00 9929 call 016ach ; e8 43aa9887 call 016ach ; e8 bc aa 9930 9888 xor ah, ah ; 30 e4 9931 9889 mov word [bp-00ah], ax ; 89 46 f6 … … 9935 9893 sal word [bp-00ah], 1 ; d1 66 f6 9936 9894 rcl word [bp-008h], 1 ; d1 56 f8 9937 loop 06 c76h ; e2 f89895 loop 06bfdh ; e2 f8 9938 9896 mov ax, strict word 00061h ; b8 61 00 9939 call 016ach ; e8 28aa9897 call 016ach ; e8 a1 aa 9940 9898 xor ah, ah ; 30 e4 9941 9899 or word [bp-00ah], ax ; 09 46 f6 … … 9944 9902 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 9945 9903 mov ax, strict word 00063h ; b8 63 00 9946 call 016ach ; e8 12aa9904 call 016ach ; e8 8b aa 9947 9905 mov byte [bp-006h], al ; 88 46 fa 9948 9906 mov byte [bp-004h], al ; 88 46 fc 9949 9907 mov ax, word [bp+014h] ; 8b 46 14 9950 9908 cmp ax, strict word 00009h ; 3d 09 00 9951 jnbe short 06 d1fh ; 77 779909 jnbe short 06ca6h ; 77 77 9952 9910 mov si, ax ; 89 c6 9953 9911 add si, ax ; 01 c6 … … 9956 9914 mov cx, dx ; 89 d1 9957 9915 adc cx, strict byte 0ffffh ; 83 d1 ff 9958 jmp word [cs:si+06 b0bh] ; 2e ff a4 0b 6b9916 jmp word [cs:si+06a92h] ; 2e ff a4 92 6a 9959 9917 push strict byte 00001h ; 6a 01 9960 9918 push strict byte 00000h ; 6a 00 … … 9966 9924 xor bx, bx ; 31 db 9967 9925 xor cx, cx ; 31 c9 9968 call 065 bch ; e8 e9 f89926 call 06543h ; e8 e9 f8 9969 9927 mov word [bp+014h], strict word 00001h ; c7 46 14 01 00 9970 9928 mov word [bp+016h], strict word 00000h ; c7 46 16 00 00 9971 jmp near 06 e72h ; e9 92 019929 jmp near 06df9h ; e9 92 01 9972 9930 push strict byte 00002h ; 6a 02 9973 9931 push strict byte 00000h ; 6a 00 … … 9979 9937 mov bx, 0fc00h ; bb 00 fc 9980 9938 mov cx, strict word 00009h ; b9 09 00 9981 call 065 bch ; e8 c3 f89939 call 06543h ; e8 c3 f8 9982 9940 mov word [bp+014h], strict word 00002h ; c7 46 14 02 00 9983 jmp short 06c d8h ; eb d89941 jmp short 06c5fh ; eb d8 9984 9942 push strict byte 00002h ; 6a 02 9985 9943 push strict byte 00000h ; 6a 00 … … 9991 9949 xor bx, bx ; 31 db 9992 9950 mov cx, strict word 0000fh ; b9 0f 00 9993 call 065 bch ; e8 a4 f89951 call 06543h ; e8 a4 f8 9994 9952 mov word [bp+014h], strict word 00003h ; c7 46 14 03 00 9995 jmp short 06c d8h ; eb b99953 jmp short 06c5fh ; eb b9 9996 9954 mov bx, 00da0h ; bb a0 0d 9997 9955 mov cx, ds ; 8c d9 9998 9956 mov ax, strict word 00004h ; b8 04 00 9999 call 01923h ; e8 f9 ab9957 call 01923h ; e8 72 ac 10000 9958 push word [bp+014h] ; ff 76 14 10001 9959 push word [bp+020h] ; ff 76 20 10002 9960 push 008b4h ; 68 b4 08 10003 9961 push strict byte 00004h ; 6a 04 10004 call 01966h ; e8 2eac9962 call 01966h ; e8 a7 ac 10005 9963 add sp, strict byte 00008h ; 83 c4 08 10006 9964 or byte [bp+028h], 001h ; 80 4e 28 01 … … 10022 9980 xor bx, bx ; 31 db 10023 9981 mov cx, strict word 00010h ; b9 10 00 10024 call 065 bch ; e8 57 f89982 call 06543h ; e8 57 f8 10025 9983 mov word [bp+014h], strict word 00004h ; c7 46 14 04 00 10026 jmp near 06c d8h ; e9 6b ff9984 jmp near 06c5fh ; e9 6b ff 10027 9985 push strict byte 00003h ; 6a 03 10028 9986 push strict byte 00000h ; 6a 00 … … 10034 9992 mov bx, ax ; 89 c3 10035 9993 mov ax, si ; 89 f0 10036 call 065 bch ; e8 3a f89994 call 06543h ; e8 3a f8 10037 9995 mov word [bp+014h], strict word 00005h ; c7 46 14 05 00 10038 jmp near 06c d8h ; e9 4e ff9996 jmp near 06c5fh ; e9 4e ff 10039 9997 push strict byte 00002h ; 6a 02 10040 9998 push strict byte 00000h ; 6a 00 … … 10046 10004 xor bx, bx ; 31 db 10047 10005 mov cx, 0fec0h ; b9 c0 fe 10048 call 065 bch ; e8 18 f810006 call 06543h ; e8 18 f8 10049 10007 mov word [bp+014h], strict word 00006h ; c7 46 14 06 00 10050 jmp near 06c d8h ; e9 2c ff10008 jmp near 06c5fh ; e9 2c ff 10051 10009 push strict byte 00002h ; 6a 02 10052 10010 push strict byte 00000h ; 6a 00 … … 10058 10016 xor bx, bx ; 31 db 10059 10017 mov cx, 0fee0h ; b9 e0 fe 10060 call 065 bch ; e8 f6 f710018 call 06543h ; e8 f6 f7 10061 10019 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 10062 jmp near 06c d8h ; e9 0a ff10020 jmp near 06c5fh ; e9 0a ff 10063 10021 push strict byte 00002h ; 6a 02 10064 10022 push strict byte 00000h ; 6a 00 … … 10070 10028 xor bx, bx ; 31 db 10071 10029 mov cx, strict word 0fffch ; b9 fc ff 10072 call 065 bch ; e8 d6 f710030 call 06543h ; e8 d6 f7 10073 10031 cmp byte [bp-006h], 000h ; 80 7e fa 00 10074 jne short 06d f3h ; 75 0710032 jne short 06d7ah ; 75 07 10075 10033 mov ax, word [bp-008h] ; 8b 46 f8 10076 10034 test ax, ax ; 85 c0 10077 je short 06 e03h ; 74 1010035 je short 06d8ah ; 74 10 10078 10036 mov word [bp+014h], strict word 00009h ; c7 46 14 09 00 10079 jmp near 06c d8h ; e9 dd fe10037 jmp near 06c5fh ; e9 dd fe 10080 10038 mov word [bp+014h], strict word 00008h ; c7 46 14 08 00 10081 jmp near 06c d8h ; e9 d5 fe10039 jmp near 06c5fh ; e9 d5 fe 10082 10040 mov word [bp+014h], ax ; 89 46 14 10083 10041 mov word [bp+016h], ax ; 89 46 16 10084 jmp short 06 e72h ; eb 6710042 jmp short 06df9h ; eb 67 10085 10043 push strict byte 00002h ; 6a 02 10086 10044 push strict byte 00000h ; 6a 00 … … 10092 10050 xor bx, bx ; 31 db 10093 10051 xor cx, cx ; 31 c9 10094 call 065 bch ; e8 9a f710052 call 06543h ; e8 9a f7 10095 10053 cmp byte [bp-006h], 000h ; 80 7e fa 00 10096 jne short 06 e2fh ; 75 0710054 jne short 06db6h ; 75 07 10097 10055 mov ax, word [bp-008h] ; 8b 46 f8 10098 10056 test ax, ax ; 85 c0 10099 je short 06 e37h ; 74 0810057 je short 06dbeh ; 74 08 10100 10058 mov word [bp+014h], strict word 00009h ; c7 46 14 09 00 10101 jmp near 06c d8h ; e9 a1 fe10059 jmp near 06c5fh ; e9 a1 fe 10102 10060 mov word [bp+014h], ax ; 89 46 14 10103 10061 mov word [bp+016h], ax ; 89 46 16 10104 jmp short 06 e72h ; eb 3310062 jmp short 06df9h ; eb 33 10105 10063 cmp byte [bp-006h], 000h ; 80 7e fa 00 10106 jne short 06 e4bh ; 75 0610064 jne short 06dd2h ; 75 06 10107 10065 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 10108 je short 06 e72h ; 74 2710066 je short 06df9h ; 74 27 10109 10067 push strict byte 00001h ; 6a 01 10110 10068 mov al, byte [bp-004h] ; 8a 46 fc … … 10120 10078 xor bx, bx ; 31 db 10121 10079 xor cx, cx ; 31 c9 10122 call 065 bch ; e8 52 f710080 call 06543h ; e8 52 f7 10123 10081 xor ax, ax ; 31 c0 10124 10082 mov word [bp+014h], ax ; 89 46 14 … … 10129 10087 mov word [bp+01eh], strict word 00000h ; c7 46 1e 00 00 10130 10088 and byte [bp+028h], 0feh ; 80 66 28 fe 10131 jmp near 06 d49h ; e9 bc fe10089 jmp near 06cd0h ; e9 bc fe 10132 10090 mov word [bp+028h], bx ; 89 5e 28 10133 10091 mov ax, strict word 00031h ; b8 31 00 10134 call 016ach ; e8 16a810092 call 016ach ; e8 8f a8 10135 10093 xor ah, ah ; 30 e4 10136 10094 mov dx, ax ; 89 c2 10137 10095 sal dx, 008h ; c1 e2 08 10138 10096 mov ax, strict word 00030h ; b8 30 00 10139 call 016ach ; e8 09a810097 call 016ach ; e8 82 a8 10140 10098 xor ah, ah ; 30 e4 10141 10099 or dx, ax ; 09 c2 10142 10100 mov word [bp+01ch], dx ; 89 56 1c 10143 10101 cmp dx, 03c00h ; 81 fa 00 3c 10144 jbe short 06e b5h ; 76 0510102 jbe short 06e3ch ; 76 05 10145 10103 mov word [bp+01ch], 03c00h ; c7 46 1c 00 3c 10146 10104 mov ax, strict word 00035h ; b8 35 00 10147 call 016ach ; e8 f1 a710105 call 016ach ; e8 6a a8 10148 10106 xor ah, ah ; 30 e4 10149 10107 mov dx, ax ; 89 c2 10150 10108 sal dx, 008h ; c1 e2 08 10151 10109 mov ax, strict word 00034h ; b8 34 00 10152 call 016ach ; e8 e4 a710110 call 016ach ; e8 5d a8 10153 10111 xor ah, ah ; 30 e4 10154 10112 or dx, ax ; 09 c2 … … 10157 10115 mov word [bp+020h], ax ; 89 46 20 10158 10116 mov word [bp+014h], dx ; 89 56 14 10159 jmp near 06 d49h ; e9 6e fe10160 _inv_op_handler: ; 0xf6e dbLB 0x19b10117 jmp near 06cd0h ; e9 6e fe 10118 _inv_op_handler: ; 0xf6e62 LB 0x19b 10161 10119 push bp ; 55 10162 10120 mov bp, sp ; 89 e5 … … 10167 10125 les bx, [bp+018h] ; c4 5e 18 10168 10126 cmp byte [es:bx], 0f0h ; 26 80 3f f0 10169 jne short 06e f1h ; 75 0610127 jne short 06e78h ; 75 06 10170 10128 inc word [bp+018h] ; ff 46 18 10171 jmp near 0 706fh ; e9 7e 0110129 jmp near 06ff6h ; e9 7e 01 10172 10130 cmp word [es:bx], 0050fh ; 26 81 3f 0f 05 10173 je short 06e fbh ; 74 0310174 jmp near 0 706bh ; e9 70 0110131 je short 06e82h ; 74 03 10132 jmp near 06ff2h ; e9 70 01 10175 10133 mov si, 00800h ; be 00 08 10176 10134 xor ax, ax ; 31 c0 … … 10201 10159 sal ax, 1 ; d1 e0 10202 10160 rcl dx, 1 ; d1 d2 10203 loop 06 f4ch ; e2 fa10161 loop 06ed3h ; e2 fa 10204 10162 cmp bx, dx ; 39 d3 10205 jne short 06 f5ah ; 75 0410163 jne short 06ee1h ; 75 04 10206 10164 cmp di, ax ; 39 c7 10207 je short 06 f5fh ; 74 0510165 je short 06ee6h ; 74 05 10208 10166 mov word [bp-008h], strict word 00001h ; c7 46 f8 01 00 10209 10167 mov es, [bp-006h] ; 8e 46 fa … … 10216 10174 sal ax, 1 ; d1 e0 10217 10175 rcl dx, 1 ; d1 d2 10218 loop 06 f75h ; e2 fa10176 loop 06efch ; e2 fa 10219 10177 cmp bx, dx ; 39 d3 10220 jne short 06f 83h ; 75 0410178 jne short 06f0ah ; 75 04 10221 10179 cmp di, ax ; 39 c7 10222 je short 06f 87h ; 74 0410180 je short 06f0eh ; 74 04 10223 10181 or byte [bp-008h], 002h ; 80 4e f8 02 10224 10182 push strict byte 00000h ; 6a 00 … … 10274 10232 mov ax, strict word 00008h ; b8 08 00 10275 10233 test cx, strict word 00001h ; f7 c1 01 00 10276 je near 0 7028h ; 0f 84 02 0010234 je near 06fafh ; 0f 84 02 00 10277 10235 mov es, ax ; 8e c0 10278 10236 test cx, strict word 00002h ; f7 c1 02 00 10279 je near 0 7050h ; 0f 84 20 0010237 je near 06fd7h ; 0f 84 20 00 10280 10238 mov bx, word [word ss:00000h] ; 36 8b 1e 00 00 10281 10239 mov word [word ss:00008h], bx ; 36 89 1e 08 00 … … 10294 10252 mov ss, [word ss:00020h] ; 36 8e 16 20 00 10295 10253 iret ; cf 10296 jmp short 0 706fh ; eb 0410254 jmp short 06ff6h ; eb 04 10297 10255 sti ; fb 10298 10256 hlt ; f4 10299 jmp short 0 706ch ; eb fd10257 jmp short 06ff3h ; eb fd 10300 10258 lea sp, [bp-004h] ; 8d 66 fc 10301 10259 pop di ; 5f … … 10303 10261 pop bp ; 5d 10304 10262 retn ; c3 10305 init_rtc_: ; 0xf 7076LB 0x2810263 init_rtc_: ; 0xf6ffd LB 0x28 10306 10264 push bp ; 55 10307 10265 mov bp, sp ; 89 e5 … … 10309 10267 mov dx, strict word 00026h ; ba 26 00 10310 10268 mov ax, strict word 0000ah ; b8 0a 00 10311 call 016c7h ; e8 44a610269 call 016c7h ; e8 bd a6 10312 10270 mov dx, strict word 00002h ; ba 02 00 10313 10271 mov ax, strict word 0000bh ; b8 0b 00 10314 call 016c7h ; e8 3ba610272 call 016c7h ; e8 b4 a6 10315 10273 mov ax, strict word 0000ch ; b8 0c 00 10316 call 016ach ; e8 1aa610274 call 016ach ; e8 93 a6 10317 10275 mov ax, strict word 0000dh ; b8 0d 00 10318 call 016ach ; e8 14a610276 call 016ach ; e8 8d a6 10319 10277 lea sp, [bp-002h] ; 8d 66 fe 10320 10278 pop dx ; 5a 10321 10279 pop bp ; 5d 10322 10280 retn ; c3 10323 rtc_updating_: ; 0xf70 9eLB 0x2110281 rtc_updating_: ; 0xf7025 LB 0x21 10324 10282 push bp ; 55 10325 10283 mov bp, sp ; 89 e5 … … 10327 10285 mov dx, 061a8h ; ba a8 61 10328 10286 dec dx ; 4a 10329 je short 070 b6h ; 74 0e10287 je short 0703dh ; 74 0e 10330 10288 mov ax, strict word 0000ah ; b8 0a 00 10331 call 016ach ; e8 fe a510289 call 016ach ; e8 77 a6 10332 10290 test AL, strict byte 080h ; a8 80 10333 jne short 070 a5h ; 75 f310291 jne short 0702ch ; 75 f3 10334 10292 xor ax, ax ; 31 c0 10335 jmp short 070 b9h ; eb 0310293 jmp short 07040h ; eb 03 10336 10294 mov ax, strict word 00001h ; b8 01 00 10337 10295 lea sp, [bp-002h] ; 8d 66 fe … … 10339 10297 pop bp ; 5d 10340 10298 retn ; c3 10341 _int70_function: ; 0xf70 bfLB 0xbf10299 _int70_function: ; 0xf7046 LB 0xbf 10342 10300 push bp ; 55 10343 10301 mov bp, sp ; 89 e5 … … 10345 10303 push ax ; 50 10346 10304 mov ax, strict word 0000bh ; b8 0b 00 10347 call 016ach ; e8 e2 a510305 call 016ach ; e8 5b a6 10348 10306 mov bl, al ; 88 c3 10349 10307 mov byte [bp-004h], al ; 88 46 fc 10350 10308 mov ax, strict word 0000ch ; b8 0c 00 10351 call 016ach ; e8 d7 a510309 call 016ach ; e8 50 a6 10352 10310 mov dl, al ; 88 c2 10353 10311 test bl, 060h ; f6 c3 60 10354 jne short 070 dfh ; 75 0310355 jmp near 07 165h ; e9 86 0010312 jne short 07066h ; 75 03 10313 jmp near 070ech ; e9 86 00 10356 10314 test AL, strict byte 020h ; a8 20 10357 je short 070 e7h ; 74 0410315 je short 0706eh ; 74 04 10358 10316 sti ; fb 10359 10317 int 04ah ; cd 4a 10360 10318 cli ; fa 10361 10319 test dl, 040h ; f6 c2 40 10362 je short 07 14fh ; 74 6310320 je short 070d6h ; 74 63 10363 10321 mov dx, 000a0h ; ba a0 00 10364 10322 mov ax, strict word 00040h ; b8 40 00 10365 call 01650h ; e8 5ba510323 call 01650h ; e8 d4 a5 10366 10324 test al, al ; 84 c0 10367 je short 07 165h ; 74 6c10325 je short 070ech ; 74 6c 10368 10326 mov dx, 0009ch ; ba 9c 00 10369 10327 mov ax, strict word 00040h ; b8 40 00 10370 call 01688h ; e8 86a510328 call 01688h ; e8 ff a5 10371 10329 test dx, dx ; 85 d2 10372 jne short 07 151h ; 75 4b10330 jne short 070d8h ; 75 4b 10373 10331 cmp ax, 003d1h ; 3d d1 03 10374 jnc short 07 151h ; 73 4610332 jnc short 070d8h ; 73 46 10375 10333 mov dx, 00098h ; ba 98 00 10376 10334 mov ax, strict word 00040h ; b8 40 00 10377 call 0166ch ; e8 58a510335 call 0166ch ; e8 d1 a5 10378 10336 mov si, ax ; 89 c6 10379 10337 mov dx, 0009ah ; ba 9a 00 10380 10338 mov ax, strict word 00040h ; b8 40 00 10381 call 0166ch ; e8 4da510339 call 0166ch ; e8 c6 a5 10382 10340 mov cx, ax ; 89 c1 10383 10341 xor bx, bx ; 31 db 10384 10342 mov dx, 000a0h ; ba a0 00 10385 10343 mov ax, strict word 00040h ; b8 40 00 10386 call 0165eh ; e8 32a510344 call 0165eh ; e8 ab a5 10387 10345 mov dl, byte [bp-004h] ; 8a 56 fc 10388 10346 and dl, 037h ; 80 e2 37 10389 10347 xor dh, dh ; 30 f6 10390 10348 mov ax, strict word 0000bh ; b8 0b 00 10391 call 016c7h ; e8 8d a510349 call 016c7h ; e8 06 a6 10392 10350 mov dx, cx ; 89 ca 10393 10351 mov ax, si ; 89 f0 10394 call 01650h ; e8 0fa510352 call 01650h ; e8 88 a5 10395 10353 mov bl, al ; 88 c3 10396 10354 or bl, 080h ; 80 cb 80 … … 10398 10356 mov dx, cx ; 89 ca 10399 10357 mov ax, si ; 89 f0 10400 call 0165eh ; e8 0fa510401 jmp short 07 165h ; eb 1410358 call 0165eh ; e8 88 a5 10359 jmp short 070ech ; eb 14 10402 10360 mov bx, ax ; 89 c3 10403 10361 add bx, 0fc2fh ; 81 c3 2f fc … … 10406 10364 mov dx, 0009ch ; ba 9c 00 10407 10365 mov ax, strict word 00040h ; b8 40 00 10408 call 0169ah ; e8 35a510409 call 0e030h ; e8 c8 6e10366 call 0169ah ; e8 ae a5 10367 call 0e030h ; e8 41 6f 10410 10368 lea sp, [bp-002h] ; 8d 66 fe 10411 10369 pop si ; 5e 10412 10370 pop bp ; 5d 10413 10371 retn ; c3 10414 xchg sp, ax ; 94 10415 jno short 0712ch ; 71 bb 10416 jno short 07153h ; 71 e0 10417 jno short 07191h ; 71 1c 10418 jc short 071e5h ; 72 6e 10419 jc short 0711eh ; 72 a5 10420 jc short 07167h ; 72 ec 10421 jc short 071c4h ; 72 47 10422 db 073h 10423 _int1a_function: ; 0xf717e LB 0x1d9 10372 sbb si, word [bx+di+042h] ; 1b 71 42 10373 jno short 07161h ; 71 67 10374 jno short 0709fh ; 71 a3 10375 jno short 070f3h ; 71 f5 10376 jno short 0712ch ; 71 2c 10377 jc short 07175h ; 72 73 10378 jc short 070d2h ; 72 ce 10379 db 072h 10380 _int1a_function: ; 0xf7105 LB 0x1d9 10424 10381 push bp ; 55 10425 10382 mov bp, sp ; 89 e5 … … 10427 10384 mov al, byte [bp+013h] ; 8a 46 13 10428 10385 cmp AL, strict byte 007h ; 3c 07 10429 jnbe short 071 e7h ; 77 5e10386 jnbe short 0716eh ; 77 5e 10430 10387 mov bl, al ; 88 c3 10431 10388 xor bh, bh ; 30 ff 10432 10389 add bx, bx ; 01 db 10433 jmp word [cs:bx+07 16eh] ; 2e ff a7 6e 7110390 jmp word [cs:bx+070f5h] ; 2e ff a7 f5 70 10434 10391 cli ; fa 10435 10392 mov bx, 0046eh ; bb 6e 04 … … 10446 10403 mov byte [es:bx], 000h ; 26 c6 07 00 10447 10404 sti ; fb 10448 jmp short 071 e7h ; eb 2c10405 jmp short 0716eh ; eb 2c 10449 10406 cli ; fa 10450 10407 mov bx, 0046eh ; bb 6e 04 … … 10460 10417 sti ; fb 10461 10418 mov byte [bp+013h], 000h ; c6 46 13 00 10462 jmp short 071 e7h ; eb 0710463 call 070 9eh ; e8 bb fe10419 jmp short 0716eh ; eb 07 10420 call 07025h ; e8 bb fe 10464 10421 test ax, ax ; 85 c0 10465 je short 071 eah ; 74 0310466 jmp near 07 218h ; e9 2e 0010422 je short 07171h ; 74 03 10423 jmp near 0719fh ; e9 2e 00 10467 10424 xor ax, ax ; 31 c0 10468 call 016ach ; e8 bd a410425 call 016ach ; e8 36 a5 10469 10426 mov byte [bp+00fh], al ; 88 46 0f 10470 10427 mov ax, strict word 00002h ; b8 02 00 10471 call 016ach ; e8 b4 a410428 call 016ach ; e8 2d a5 10472 10429 mov byte [bp+010h], al ; 88 46 10 10473 10430 mov ax, strict word 00004h ; b8 04 00 10474 call 016ach ; e8 ab a410431 call 016ach ; e8 24 a5 10475 10432 mov dl, al ; 88 c2 10476 10433 mov byte [bp+011h], al ; 88 46 11 10477 10434 mov ax, strict word 0000bh ; b8 0b 00 10478 call 016ach ; e8 a0 a410435 call 016ach ; e8 19 a5 10479 10436 and AL, strict byte 001h ; 24 01 10480 10437 mov byte [bp+00eh], al ; 88 46 0e … … 10484 10441 pop bp ; 5d 10485 10442 retn ; c3 10486 call 070 9eh ; e8 7f fe10443 call 07025h ; e8 7f fe 10487 10444 test ax, ax ; 85 c0 10488 je short 07 226h ; 74 0310489 call 0 7076h ; e8 50 fe10445 je short 071adh ; 74 03 10446 call 06ffdh ; e8 50 fe 10490 10447 mov dl, byte [bp+00fh] ; 8a 56 0f 10491 10448 xor dh, dh ; 30 f6 10492 10449 xor ax, ax ; 31 c0 10493 call 016c7h ; e8 97 a410450 call 016c7h ; e8 10 a5 10494 10451 mov dl, byte [bp+010h] ; 8a 56 10 10495 10452 xor dh, dh ; 30 f6 10496 10453 mov ax, strict word 00002h ; b8 02 00 10497 call 016c7h ; e8 8c a410454 call 016c7h ; e8 05 a5 10498 10455 mov dl, byte [bp+011h] ; 8a 56 11 10499 10456 xor dh, dh ; 30 f6 10500 10457 mov ax, strict word 00004h ; b8 04 00 10501 call 016c7h ; e8 81a410458 call 016c7h ; e8 fa a4 10502 10459 mov ax, strict word 0000bh ; b8 0b 00 10503 call 016ach ; e8 60a410460 call 016ach ; e8 d9 a4 10504 10461 mov bl, al ; 88 c3 10505 10462 and bl, 060h ; 80 e3 60 … … 10511 10468 xor dh, dh ; 30 f6 10512 10469 mov ax, strict word 0000bh ; b8 0b 00 10513 call 016c7h ; e8 62a410470 call 016c7h ; e8 db a4 10514 10471 mov byte [bp+013h], 000h ; c6 46 13 00 10515 10472 mov byte [bp+012h], bl ; 88 5e 12 10516 jmp short 07 218h ; eb aa10473 jmp short 0719fh ; eb aa 10517 10474 mov byte [bp+013h], 000h ; c6 46 13 00 10518 call 070 9eh ; e8 29 fe10475 call 07025h ; e8 29 fe 10519 10476 test ax, ax ; 85 c0 10520 je short 072 7bh ; 74 0210521 jmp short 07 218h ; eb 9d10477 je short 07202h ; 74 02 10478 jmp short 0719fh ; eb 9d 10522 10479 mov ax, strict word 00009h ; b8 09 00 10523 call 016ach ; e8 2ba410480 call 016ach ; e8 a4 a4 10524 10481 mov byte [bp+010h], al ; 88 46 10 10525 10482 mov ax, strict word 00008h ; b8 08 00 10526 call 016ach ; e8 22a410483 call 016ach ; e8 9b a4 10527 10484 mov byte [bp+00fh], al ; 88 46 0f 10528 10485 mov ax, strict word 00007h ; b8 07 00 10529 call 016ach ; e8 19a410486 call 016ach ; e8 92 a4 10530 10487 mov byte [bp+00eh], al ; 88 46 0e 10531 10488 mov ax, strict word 00032h ; b8 32 00 10532 call 016ach ; e8 10a410489 call 016ach ; e8 89 a4 10533 10490 mov byte [bp+011h], al ; 88 46 11 10534 10491 mov byte [bp+012h], al ; 88 46 12 10535 jmp near 07 218h ; e9 73 ff10536 call 070 9eh ; e8 f6 fd10492 jmp near 0719fh ; e9 73 ff 10493 call 07025h ; e8 f6 fd 10537 10494 test ax, ax ; 85 c0 10538 je short 072 b2h ; 74 0610539 call 0 7076h ; e8 c7 fd10540 jmp near 07 218h ; e9 66 ff10495 je short 07239h ; 74 06 10496 call 06ffdh ; e8 c7 fd 10497 jmp near 0719fh ; e9 66 ff 10541 10498 mov dl, byte [bp+010h] ; 8a 56 10 10542 10499 xor dh, dh ; 30 f6 10543 10500 mov ax, strict word 00009h ; b8 09 00 10544 call 016c7h ; e8 0aa410501 call 016c7h ; e8 83 a4 10545 10502 mov dl, byte [bp+00fh] ; 8a 56 0f 10546 10503 xor dh, dh ; 30 f6 10547 10504 mov ax, strict word 00008h ; b8 08 00 10548 call 016c7h ; e8 ff a310505 call 016c7h ; e8 78 a4 10549 10506 mov dl, byte [bp+00eh] ; 8a 56 0e 10550 10507 xor dh, dh ; 30 f6 10551 10508 mov ax, strict word 00007h ; b8 07 00 10552 call 016c7h ; e8 f4 a310509 call 016c7h ; e8 6d a4 10553 10510 mov dl, byte [bp+011h] ; 8a 56 11 10554 10511 xor dh, dh ; 30 f6 10555 10512 mov ax, strict word 00032h ; b8 32 00 10556 call 016c7h ; e8 e9 a310513 call 016c7h ; e8 62 a4 10557 10514 mov ax, strict word 0000bh ; b8 0b 00 10558 call 016ach ; e8 c8 a310515 call 016ach ; e8 41 a4 10559 10516 mov bl, al ; 88 c3 10560 10517 and bl, 07fh ; 80 e3 7f 10561 jmp near 07 25bh ; e9 6f ff10518 jmp near 071e2h ; e9 6f ff 10562 10519 mov ax, strict word 0000bh ; b8 0b 00 10563 call 016ach ; e8 ba a310520 call 016ach ; e8 33 a4 10564 10521 mov bl, al ; 88 c3 10565 10522 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 10566 10523 test AL, strict byte 020h ; a8 20 10567 je short 07 300h ; 74 0310568 jmp near 07 218h ; e9 18 ff10569 call 070 9eh ; e8 9b fd10524 je short 07287h ; 74 03 10525 jmp near 0719fh ; e9 18 ff 10526 call 07025h ; e8 9b fd 10570 10527 test ax, ax ; 85 c0 10571 je short 07 30ah ; 74 0310572 call 0 7076h ; e8 6c fd10528 je short 07291h ; 74 03 10529 call 06ffdh ; e8 6c fd 10573 10530 mov dl, byte [bp+00fh] ; 8a 56 0f 10574 10531 xor dh, dh ; 30 f6 10575 10532 mov ax, strict word 00001h ; b8 01 00 10576 call 016c7h ; e8 b2 a310533 call 016c7h ; e8 2b a4 10577 10534 mov dl, byte [bp+010h] ; 8a 56 10 10578 10535 xor dh, dh ; 30 f6 10579 10536 mov ax, strict word 00003h ; b8 03 00 10580 call 016c7h ; e8 a7 a310537 call 016c7h ; e8 20 a4 10581 10538 mov dl, byte [bp+011h] ; 8a 56 11 10582 10539 xor dh, dh ; 30 f6 10583 10540 mov ax, strict word 00005h ; b8 05 00 10584 call 016c7h ; e8 9c a310541 call 016c7h ; e8 15 a4 10585 10542 mov dx, 000a1h ; ba a1 00 10586 10543 in AL, DX ; ec … … 10594 10551 xor dh, dh ; 30 f6 10595 10552 mov ax, strict word 0000bh ; b8 0b 00 10596 call 016c7h ; e8 83a310597 jmp near 07 218h ; e9 d1 fe10553 call 016c7h ; e8 fc a3 10554 jmp near 0719fh ; e9 d1 fe 10598 10555 mov ax, strict word 0000bh ; b8 0b 00 10599 call 016ach ; e8 5fa310556 call 016ach ; e8 d8 a3 10600 10557 mov bl, al ; 88 c3 10601 10558 mov dl, al ; 88 c2 10602 10559 and dl, 057h ; 80 e2 57 10603 jmp near 07 25dh ; e9 06 ff10604 send_to_mouse_ctrl_: ; 0xf7 357LB 0x3410560 jmp near 071e4h ; e9 06 ff 10561 send_to_mouse_ctrl_: ; 0xf72de LB 0x34 10605 10562 push bp ; 55 10606 10563 mov bp, sp ; 89 e5 … … 10613 10570 ; sub ah, ah ; 2a e4 10614 10571 test AL, strict byte 002h ; a8 02 10615 je short 07 376h ; 74 0e10572 je short 072fdh ; 74 0e 10616 10573 push 008eeh ; 68 ee 08 10617 10574 push 01168h ; 68 68 11 10618 10575 push strict byte 00007h ; 6a 07 10619 call 01966h ; e8 f3 a510576 call 01966h ; e8 6c a6 10620 10577 add sp, strict byte 00006h ; 83 c4 06 10621 10578 mov AL, strict byte 0d4h ; b0 d4 … … 10631 10588 pop bp ; 5d 10632 10589 retn ; c3 10633 get_mouse_data_: ; 0xf73 8bLB 0x5d10590 get_mouse_data_: ; 0xf7312 LB 0x5d 10634 10591 push bp ; 55 10635 10592 mov bp, sp ; 89 e5 … … 10646 10603 and ax, strict word 00021h ; 25 21 00 10647 10604 cmp ax, strict word 00021h ; 3d 21 00 10648 je short 073 ceh ; 74 2810605 je short 07355h ; 74 28 10649 10606 test cx, cx ; 85 c9 10650 je short 073 ceh ; 74 2410607 je short 07355h ; 74 24 10651 10608 mov dx, strict word 00061h ; ba 61 00 10652 10609 in AL, DX ; ec … … 10665 10622 xor ah, ah ; 30 e4 10666 10623 cmp dx, ax ; 39 c2 10667 je short 073 b5h ; 74 ea10624 je short 0733ch ; 74 ea 10668 10625 dec cx ; 49 10669 jmp short 073 98h ; eb ca10626 jmp short 0731fh ; eb ca 10670 10627 test cx, cx ; 85 c9 10671 jne short 073 d6h ; 75 0410628 jne short 0735dh ; 75 04 10672 10629 mov AL, strict byte 001h ; b0 01 10673 jmp short 073 e1h ; eb 0b10630 jmp short 07368h ; eb 0b 10674 10631 mov dx, strict word 00060h ; ba 60 00 10675 10632 in AL, DX ; ec … … 10683 10640 pop bp ; 5d 10684 10641 retn ; c3 10685 set_kbd_command_byte_: ; 0xf73 e8LB 0x3210642 set_kbd_command_byte_: ; 0xf736f LB 0x32 10686 10643 push bp ; 55 10687 10644 mov bp, sp ; 89 e5 … … 10694 10651 ; sub ah, ah ; 2a e4 10695 10652 test AL, strict byte 002h ; a8 02 10696 je short 07 407h ; 74 0e10653 je short 0738eh ; 74 0e 10697 10654 push 008f8h ; 68 f8 08 10698 10655 push 01168h ; 68 68 11 10699 10656 push strict byte 00007h ; 6a 07 10700 call 01966h ; e8 62a510657 call 01966h ; e8 db a5 10701 10658 add sp, strict byte 00006h ; 83 c4 06 10702 10659 mov AL, strict byte 060h ; b0 60 … … 10711 10668 pop bp ; 5d 10712 10669 retn ; c3 10713 _int74_function: ; 0xf7 41aLB 0xd210670 _int74_function: ; 0xf73a1 LB 0xd2 10714 10671 push bp ; 55 10715 10672 mov bp, sp ; 89 e5 … … 10717 10674 mov dx, strict word 0000eh ; ba 0e 00 10718 10675 mov ax, strict word 00040h ; b8 40 00 10719 call 0166ch ; e8 43a210676 call 0166ch ; e8 bc a2 10720 10677 mov cx, ax ; 89 c1 10721 10678 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 10726 10683 and AL, strict byte 021h ; 24 21 10727 10684 cmp AL, strict byte 021h ; 3c 21 10728 jne short 07 45eh ; 75 2210685 jne short 073e5h ; 75 22 10729 10686 mov dx, strict word 00060h ; ba 60 00 10730 10687 in AL, DX ; ec … … 10734 10691 mov dx, strict word 00026h ; ba 26 00 10735 10692 mov ax, cx ; 89 c8 10736 call 01650h ; e8 04a210693 call 01650h ; e8 7d a2 10737 10694 mov byte [bp-002h], al ; 88 46 fe 10738 10695 mov dx, strict word 00027h ; ba 27 00 10739 10696 mov ax, cx ; 89 c8 10740 call 01650h ; e8 f9 a110697 call 01650h ; e8 72 a2 10741 10698 mov byte [bp-006h], al ; 88 46 fa 10742 10699 test AL, strict byte 080h ; a8 80 10743 jne short 07 461h ; 75 0310744 jmp near 074 d8h ; e9 77 0010700 jne short 073e8h ; 75 03 10701 jmp near 0745fh ; e9 77 00 10745 10702 mov al, byte [bp-006h] ; 8a 46 fa 10746 10703 and AL, strict byte 007h ; 24 07 … … 10756 10713 add dx, strict byte 00028h ; 83 c2 28 10757 10714 mov ax, cx ; 89 c8 10758 call 0165eh ; e8 da a110715 call 0165eh ; e8 53 a2 10759 10716 mov al, byte [bp-008h] ; 8a 46 f8 10760 10717 cmp al, byte [bp-004h] ; 3a 46 fc 10761 jc short 074 c8h ; 72 3c10718 jc short 0744fh ; 72 3c 10762 10719 mov dx, strict word 00028h ; ba 28 00 10763 10720 mov ax, cx ; 89 c8 10764 call 01650h ; e8 bc a110721 call 01650h ; e8 35 a2 10765 10722 xor ah, ah ; 30 e4 10766 10723 mov word [bp+00ch], ax ; 89 46 0c 10767 10724 mov dx, strict word 00029h ; ba 29 00 10768 10725 mov ax, cx ; 89 c8 10769 call 01650h ; e8 af a110726 call 01650h ; e8 28 a2 10770 10727 xor ah, ah ; 30 e4 10771 10728 mov word [bp+00ah], ax ; 89 46 0a 10772 10729 mov dx, strict word 0002ah ; ba 2a 00 10773 10730 mov ax, cx ; 89 c8 10774 call 01650h ; e8 a2 a110731 call 01650h ; e8 1b a2 10775 10732 xor ah, ah ; 30 e4 10776 10733 mov word [bp+008h], ax ; 89 46 08 … … 10779 10736 mov byte [bp-002h], ah ; 88 66 fe 10780 10737 test byte [bp-006h], 080h ; f6 46 fa 80 10781 je short 074 cbh ; 74 0a10738 je short 07452h ; 74 0a 10782 10739 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 10783 jmp short 074 cbh ; eb 0310740 jmp short 07452h ; eb 03 10784 10741 inc byte [bp-002h] ; fe 46 fe 10785 10742 mov bl, byte [bp-002h] ; 8a 5e fe … … 10787 10744 mov dx, strict word 00026h ; ba 26 00 10788 10745 mov ax, cx ; 89 c8 10789 call 0165eh ; e8 86a110746 call 0165eh ; e8 ff a1 10790 10747 mov sp, bp ; 89 ec 10791 10748 pop bp ; 5d 10792 10749 retn ; c3 10793 das ; 2f 10794 jne short 0748ah ; 75 ab 10795 jne short 07509h ; 75 28 10796 jbe short 074a0h ; 76 bd 10797 jbe short 0750eh ; 76 29 10798 jnbe short 0755dh ; 77 76 10799 jne short 0753ah ; 75 51 10800 jnbe short 07501h ; 77 16 10801 db 078h 10802 _int15_function_mouse: ; 0xf74ec LB 0x38d 10750 mov DH, strict byte 074h ; b6 74 10751 xor dh, byte [di-051h] ; 32 75 af 10752 jne short 074aeh ; 75 44 10753 jbe short 0741ch ; 76 b0 10754 jbe short 0746bh ; 76 fd 10755 je short 07448h ; 74 d8 10756 jbe short 0740fh ; 76 9d 10757 db 077h 10758 _int15_function_mouse: ; 0xf7473 LB 0x38d 10803 10759 push bp ; 55 10804 10760 mov bp, sp ; 89 e5 … … 10807 10763 mov dx, strict word 0000eh ; ba 0e 00 10808 10764 mov ax, strict word 00040h ; b8 40 00 10809 call 0166ch ; e8 70a110765 call 0166ch ; e8 e9 a1 10810 10766 mov cx, ax ; 89 c1 10811 10767 cmp byte [bp+012h], 007h ; 80 7e 12 07 10812 jbe short 07 50fh ; 76 0b10768 jbe short 07496h ; 76 0b 10813 10769 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10814 10770 mov byte [bp+013h], 001h ; c6 46 13 01 10815 jmp near 07 873h ; e9 64 0310771 jmp near 077fah ; e9 64 03 10816 10772 mov ax, strict word 00065h ; b8 65 00 10817 call 073 e8h ; e8 d3 fe10773 call 0736fh ; e8 d3 fe 10818 10774 and word [bp+018h], strict byte 0fffeh ; 83 66 18 fe 10819 10775 mov byte [bp+013h], 000h ; c6 46 13 00 10820 10776 mov al, byte [bp+012h] ; 8a 46 12 10821 10777 cmp AL, strict byte 007h ; 3c 07 10822 jnbe short 075 84h ; 77 6010778 jnbe short 0750bh ; 77 60 10823 10779 xor ah, ah ; 30 e4 10824 10780 mov si, ax ; 89 c6 10825 10781 add si, ax ; 01 c6 10826 jmp word [cs:si+074 dch] ; 2e ff a4 dc7410782 jmp word [cs:si+07463h] ; 2e ff a4 63 74 10827 10783 cmp byte [bp+00dh], 001h ; 80 7e 0d 01 10828 jnbe short 075 87h ; 77 5210784 jnbe short 0750eh ; 77 52 10829 10785 mov dx, strict word 00027h ; ba 27 00 10830 10786 mov ax, cx ; 89 c8 10831 call 01650h ; e8 13a110787 call 01650h ; e8 8c a1 10832 10788 test AL, strict byte 080h ; a8 80 10833 jne short 07 54ch ; 75 0b10789 jne short 074d3h ; 75 0b 10834 10790 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10835 10791 mov byte [bp+013h], 005h ; c6 46 13 05 10836 jmp near 07 86dh ; e9 21 0310792 jmp near 077f4h ; e9 21 03 10837 10793 cmp byte [bp+00dh], 000h ; 80 7e 0d 00 10838 jne short 07 556h ; 75 0410794 jne short 074ddh ; 75 04 10839 10795 mov AL, strict byte 0f5h ; b0 f5 10840 jmp short 07 558h ; eb 0210796 jmp short 074dfh ; eb 02 10841 10797 mov AL, strict byte 0f4h ; b0 f4 10842 10798 xor ah, ah ; 30 e4 10843 call 07 357h ; e8 fa fd10799 call 072deh ; e8 fa fd 10844 10800 test al, al ; 84 c0 10845 jne short 075 8ah ; 75 2910801 jne short 07511h ; 75 29 10846 10802 mov dx, ss ; 8c d2 10847 10803 lea ax, [bp-008h] ; 8d 46 f8 10848 call 073 8bh ; e8 22 fe10804 call 07312h ; e8 22 fe 10849 10805 test al, al ; 84 c0 10850 je short 07 573h ; 74 0610806 je short 074fah ; 74 06 10851 10807 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10852 jne short 075 8ah ; 75 1710853 jmp near 07 86dh ; e9 f7 0210808 jne short 07511h ; 75 17 10809 jmp near 077f4h ; e9 f7 02 10854 10810 mov al, byte [bp+00dh] ; 8a 46 0d 10855 10811 cmp AL, strict byte 001h ; 3c 01 10856 jc short 075 81h ; 72 0410812 jc short 07508h ; 72 04 10857 10813 cmp AL, strict byte 008h ; 3c 08 10858 jbe short 075 8dh ; 76 0c10859 jmp near 07 71fh ; e9 9b 0110860 jmp near 07 85ah ; e9 d3 0210861 jmp near 07 865h ; e9 db 0210862 jmp near 077 f1h ; e9 64 0210814 jbe short 07514h ; 76 0c 10815 jmp near 076a6h ; e9 9b 01 10816 jmp near 077e1h ; e9 d3 02 10817 jmp near 077ech ; e9 db 02 10818 jmp near 07778h ; e9 64 02 10863 10819 mov dx, strict word 00027h ; ba 27 00 10864 10820 mov ax, cx ; 89 c8 10865 call 01650h ; e8 bb a010821 call 01650h ; e8 34 a1 10866 10822 mov ah, byte [bp+00dh] ; 8a 66 0d 10867 10823 db 0feh, 0cch … … 10873 10829 mov dx, strict word 00027h ; ba 27 00 10874 10830 mov ax, cx ; 89 c8 10875 call 0165eh ; e8 b3 a010831 call 0165eh ; e8 2c a1 10876 10832 mov dx, strict word 00026h ; ba 26 00 10877 10833 mov ax, cx ; 89 c8 10878 call 01650h ; e8 9d a010834 call 01650h ; e8 16 a1 10879 10835 mov bl, al ; 88 c3 10880 10836 and bl, 0f8h ; 80 e3 f8 … … 10882 10838 mov dx, strict word 00026h ; ba 26 00 10883 10839 mov ax, cx ; 89 c8 10884 call 0165eh ; e8 9c a010840 call 0165eh ; e8 15 a1 10885 10841 mov ax, 000ffh ; b8 ff 00 10886 call 07 357h ; e8 8f fd10842 call 072deh ; e8 8f fd 10887 10843 test al, al ; 84 c0 10888 jne short 075 8ah ; 75 be10844 jne short 07511h ; 75 be 10889 10845 mov dx, ss ; 8c d2 10890 10846 lea ax, [bp-004h] ; 8d 46 fc 10891 call 073 8bh ; e8 b7 fd10847 call 07312h ; e8 b7 fd 10892 10848 mov cl, al ; 88 c1 10893 10849 cmp byte [bp-004h], 0feh ; 80 7e fc fe 10894 jne short 075 e6h ; 75 0a10850 jne short 0756dh ; 75 0a 10895 10851 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10896 10852 mov byte [bp+013h], 004h ; c6 46 13 04 10897 jmp short 07 573h ; eb 8d10853 jmp short 074fah ; eb 8d 10898 10854 cmp byte [bp-004h], 0fah ; 80 7e fc fa 10899 je short 075 fdh ; 74 1110855 je short 07584h ; 74 11 10900 10856 mov al, byte [bp-004h] ; 8a 46 fc 10901 10857 xor ah, ah ; 30 e4 … … 10903 10859 push 00903h ; 68 03 09 10904 10860 push strict byte 00007h ; 6a 07 10905 call 01966h ; e8 6ca310861 call 01966h ; e8 e5 a3 10906 10862 add sp, strict byte 00006h ; 83 c4 06 10907 10863 test cl, cl ; 84 c9 10908 jne short 075 8ah ; 75 8910864 jne short 07511h ; 75 89 10909 10865 mov dx, ss ; 8c d2 10910 10866 lea ax, [bp-008h] ; 8d 46 f8 10911 call 073 8bh ; e8 82 fd10867 call 07312h ; e8 82 fd 10912 10868 test al, al ; 84 c0 10913 jne short 07 663h ; 75 5610869 jne short 075eah ; 75 56 10914 10870 mov dx, ss ; 8c d2 10915 10871 lea ax, [bp-006h] ; 8d 46 fa 10916 call 073 8bh ; e8 76 fd10872 call 07312h ; e8 76 fd 10917 10873 test al, al ; 84 c0 10918 jne short 07 663h ; 75 4a10874 jne short 075eah ; 75 4a 10919 10875 mov al, byte [bp-008h] ; 8a 46 f8 10920 10876 mov byte [bp+00ch], al ; 88 46 0c 10921 10877 mov al, byte [bp-006h] ; 8a 46 fa 10922 10878 mov byte [bp+00dh], al ; 88 46 0d 10923 jmp near 07 86dh ; e9 45 0210879 jmp near 077f4h ; e9 45 02 10924 10880 mov al, byte [bp+00dh] ; 8a 46 0d 10925 10881 cmp AL, strict byte 003h ; 3c 03 10926 jc short 07 63fh ; 72 1010927 jbe short 07 65dh ; 76 2c10882 jc short 075c6h ; 72 10 10883 jbe short 075e4h ; 76 2c 10928 10884 cmp AL, strict byte 006h ; 3c 06 10929 je short 07 672h ; 74 3d10885 je short 075f9h ; 74 3d 10930 10886 cmp AL, strict byte 005h ; 3c 05 10931 je short 07 66ch ; 74 3310887 je short 075f3h ; 74 33 10932 10888 cmp AL, strict byte 004h ; 3c 04 10933 je short 07 666h ; 74 2910934 jmp short 07 678h ; eb 3910889 je short 075edh ; 74 29 10890 jmp short 075ffh ; eb 39 10935 10891 cmp AL, strict byte 002h ; 3c 02 10936 je short 07 657h ; 74 1410892 je short 075deh ; 74 14 10937 10893 cmp AL, strict byte 001h ; 3c 01 10938 je short 07 651h ; 74 0a10894 je short 075d8h ; 74 0a 10939 10895 test al, al ; 84 c0 10940 jne short 07 678h ; 75 2d10896 jne short 075ffh ; 75 2d 10941 10897 mov byte [bp-008h], 00ah ; c6 46 f8 0a 10942 jmp short 076 7ch ; eb 2b10898 jmp short 07603h ; eb 2b 10943 10899 mov byte [bp-008h], 014h ; c6 46 f8 14 10944 jmp short 076 7ch ; eb 2510900 jmp short 07603h ; eb 25 10945 10901 mov byte [bp-008h], 028h ; c6 46 f8 28 10946 jmp short 076 7ch ; eb 1f10902 jmp short 07603h ; eb 1f 10947 10903 mov byte [bp-008h], 03ch ; c6 46 f8 3c 10948 jmp short 076 7ch ; eb 1910949 jmp near 077 f1h ; e9 8b 0110904 jmp short 07603h ; eb 19 10905 jmp near 07778h ; e9 8b 01 10950 10906 mov byte [bp-008h], 050h ; c6 46 f8 50 10951 jmp short 076 7ch ; eb 1010907 jmp short 07603h ; eb 10 10952 10908 mov byte [bp-008h], 064h ; c6 46 f8 64 10953 jmp short 076 7ch ; eb 0a10909 jmp short 07603h ; eb 0a 10954 10910 mov byte [bp-008h], 0c8h ; c6 46 f8 c8 10955 jmp short 076 7ch ; eb 0410911 jmp short 07603h ; eb 04 10956 10912 mov byte [bp-008h], 000h ; c6 46 f8 00 10957 10913 cmp byte [bp-008h], 000h ; 80 7e f8 00 10958 jbe short 076 b2h ; 76 3010914 jbe short 07639h ; 76 30 10959 10915 mov ax, 000f3h ; b8 f3 00 10960 call 07 357h ; e8 cf fc10916 call 072deh ; e8 cf fc 10961 10917 test al, al ; 84 c0 10962 jne short 076 a7h ; 75 1b10918 jne short 0762eh ; 75 1b 10963 10919 mov dx, ss ; 8c d2 10964 10920 lea ax, [bp-006h] ; 8d 46 fa 10965 call 073 8bh ; e8 f7 fc10921 call 07312h ; e8 f7 fc 10966 10922 mov al, byte [bp-008h] ; 8a 46 f8 10967 10923 xor ah, ah ; 30 e4 10968 call 07 357h ; e8 bb fc10924 call 072deh ; e8 bb fc 10969 10925 mov dx, ss ; 8c d2 10970 10926 lea ax, [bp-006h] ; 8d 46 fa 10971 call 073 8bh ; e8 e7 fc10972 jmp near 07 86dh ; e9 c6 0110927 call 07312h ; e8 e7 fc 10928 jmp near 077f4h ; e9 c6 01 10973 10929 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10974 10930 mov byte [bp+013h], 003h ; c6 46 13 03 10975 jmp near 07 86dh ; e9 bb 0110931 jmp near 077f4h ; e9 bb 01 10976 10932 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10977 10933 mov byte [bp+013h], 002h ; c6 46 13 02 10978 jmp near 07 86dh ; e9 b0 0110934 jmp near 077f4h ; e9 b0 01 10979 10935 cmp byte [bp+00dh], 004h ; 80 7e 0d 04 10980 jnc short 07 71fh ; 73 5c10936 jnc short 076a6h ; 73 5c 10981 10937 mov ax, 000e8h ; b8 e8 00 10982 call 07 357h ; e8 8e fc10938 call 072deh ; e8 8e fc 10983 10939 test al, al ; 84 c0 10984 jne short 07 715h ; 75 4810940 jne short 0769ch ; 75 48 10985 10941 mov dx, ss ; 8c d2 10986 10942 lea ax, [bp-008h] ; 8d 46 f8 10987 call 073 8bh ; e8 b6 fc10943 call 07312h ; e8 b6 fc 10988 10944 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10989 je short 076 ech ; 74 1110945 je short 07673h ; 74 11 10990 10946 mov al, byte [bp-008h] ; 8a 46 f8 10991 10947 xor ah, ah ; 30 e4 … … 10993 10949 push 0092eh ; 68 2e 09 10994 10950 push strict byte 00007h ; 6a 07 10995 call 01966h ; e8 7da210951 call 01966h ; e8 f6 a2 10996 10952 add sp, strict byte 00006h ; 83 c4 06 10997 10953 mov al, byte [bp+00dh] ; 8a 46 0d 10998 10954 xor ah, ah ; 30 e4 10999 call 07 357h ; e8 63 fc10955 call 072deh ; e8 63 fc 11000 10956 mov dx, ss ; 8c d2 11001 10957 lea ax, [bp-008h] ; 8d 46 f8 11002 call 073 8bh ; e8 8f fc10958 call 07312h ; e8 8f fc 11003 10959 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11004 je short 07 74eh ; 74 4c10960 je short 076d5h ; 74 4c 11005 10961 mov al, byte [bp-008h] ; 8a 46 f8 11006 10962 xor ah, ah ; 30 e4 … … 11008 10964 push 0092eh ; 68 2e 09 11009 10965 push strict byte 00007h ; 6a 07 11010 call 01966h ; e8 56a210966 call 01966h ; e8 cf a2 11011 10967 add sp, strict byte 00006h ; 83 c4 06 11012 jmp short 07 74eh ; eb 3910968 jmp short 076d5h ; eb 39 11013 10969 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11014 10970 mov byte [bp+013h], 003h ; c6 46 13 03 11015 jmp short 07 74eh ; eb 2f10971 jmp short 076d5h ; eb 2f 11016 10972 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11017 10973 mov byte [bp+013h], 002h ; c6 46 13 02 11018 jmp short 07 74eh ; eb 2510974 jmp short 076d5h ; eb 25 11019 10975 mov ax, 000f2h ; b8 f2 00 11020 call 07 357h ; e8 28 fc10976 call 072deh ; e8 28 fc 11021 10977 test al, al ; 84 c0 11022 jne short 07 746h ; 75 1310978 jne short 076cdh ; 75 13 11023 10979 mov dx, ss ; 8c d2 11024 10980 lea ax, [bp-008h] ; 8d 46 f8 11025 call 073 8bh ; e8 50 fc10981 call 07312h ; e8 50 fc 11026 10982 mov dx, ss ; 8c d2 11027 10983 lea ax, [bp-006h] ; 8d 46 fa 11028 call 073 8bh ; e8 48 fc11029 jmp near 07 61fh ; e9 d9 fe10984 call 07312h ; e8 48 fc 10985 jmp near 075a6h ; e9 d9 fe 11030 10986 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11031 10987 mov byte [bp+013h], 003h ; c6 46 13 03 11032 jmp near 07 86dh ; e9 1c 0110988 jmp near 077f4h ; e9 1c 01 11033 10989 mov al, byte [bp+00dh] ; 8a 46 0d 11034 10990 test al, al ; 84 c0 11035 jbe short 07 75fh ; 76 0710991 jbe short 076e6h ; 76 07 11036 10992 cmp AL, strict byte 002h ; 3c 02 11037 jbe short 077 c6h ; 76 6a11038 jmp near 077 fbh ; e9 9c 0010993 jbe short 0774dh ; 76 6a 10994 jmp near 07782h ; e9 9c 00 11039 10995 mov ax, 000e9h ; b8 e9 00 11040 call 07 357h ; e8 f2 fb10996 call 072deh ; e8 f2 fb 11041 10997 test al, al ; 84 c0 11042 jne short 077 cfh ; 75 6610998 jne short 07756h ; 75 66 11043 10999 mov dx, ss ; 8c d2 11044 11000 lea ax, [bp-008h] ; 8d 46 f8 11045 call 073 8bh ; e8 1a fc11001 call 07312h ; e8 1a fc 11046 11002 mov cl, al ; 88 c1 11047 11003 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11048 je short 077 8ah ; 74 1111004 je short 07711h ; 74 11 11049 11005 mov al, byte [bp-008h] ; 8a 46 f8 11050 11006 xor ah, ah ; 30 e4 … … 11052 11008 push 0092eh ; 68 2e 09 11053 11009 push strict byte 00007h ; 6a 07 11054 call 01966h ; e8 df a111010 call 01966h ; e8 58 a2 11055 11011 add sp, strict byte 00006h ; 83 c4 06 11056 11012 test cl, cl ; 84 c9 11057 jne short 077 f1h ; 75 6311013 jne short 07778h ; 75 63 11058 11014 mov dx, ss ; 8c d2 11059 11015 lea ax, [bp-008h] ; 8d 46 f8 11060 call 073 8bh ; e8 f5 fb11016 call 07312h ; e8 f5 fb 11061 11017 test al, al ; 84 c0 11062 jne short 077 f1h ; 75 5711018 jne short 07778h ; 75 57 11063 11019 mov dx, ss ; 8c d2 11064 11020 lea ax, [bp-006h] ; 8d 46 fa 11065 call 073 8bh ; e8 e9 fb11021 call 07312h ; e8 e9 fb 11066 11022 test al, al ; 84 c0 11067 jne short 077 f1h ; 75 4b11023 jne short 07778h ; 75 4b 11068 11024 mov dx, ss ; 8c d2 11069 11025 lea ax, [bp-004h] ; 8d 46 fc 11070 call 073 8bh ; e8 dd fb11026 call 07312h ; e8 dd fb 11071 11027 test al, al ; 84 c0 11072 jne short 077 f1h ; 75 3f11028 jne short 07778h ; 75 3f 11073 11029 mov al, byte [bp-008h] ; 8a 46 f8 11074 11030 mov byte [bp+00ch], al ; 88 46 0c … … 11077 11033 mov al, byte [bp-004h] ; 8a 46 fc 11078 11034 mov byte [bp+00eh], al ; 88 46 0e 11079 jmp short 07 74eh ; eb 8811035 jmp short 076d5h ; eb 88 11080 11036 cmp AL, strict byte 001h ; 3c 01 11081 jne short 077 d1h ; 75 0711037 jne short 07758h ; 75 07 11082 11038 mov ax, 000e6h ; b8 e6 00 11083 jmp short 077 d4h ; eb 0511084 jmp short 077 f1h ; eb 2011039 jmp short 0775bh ; eb 05 11040 jmp short 07778h ; eb 20 11085 11041 mov ax, 000e7h ; b8 e7 00 11086 call 07 357h ; e8 80 fb11042 call 072deh ; e8 80 fb 11087 11043 mov cl, al ; 88 c1 11088 11044 test cl, cl ; 84 c9 11089 jne short 077 edh ; 75 1011045 jne short 07774h ; 75 10 11090 11046 mov dx, ss ; 8c d2 11091 11047 lea ax, [bp-008h] ; 8d 46 f8 11092 call 073 8bh ; e8 a6 fb11048 call 07312h ; e8 a6 fb 11093 11049 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11094 je short 077 edh ; 74 0211050 je short 07774h ; 74 02 11095 11051 mov CL, strict byte 001h ; b1 01 11096 11052 test cl, cl ; 84 c9 11097 je short 07 858h ; 74 6711053 je short 077dfh ; 74 67 11098 11054 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11099 11055 mov byte [bp+013h], 003h ; c6 46 13 03 11100 jmp short 07 858h ; eb 5d11056 jmp short 077dfh ; eb 5d 11101 11057 mov al, byte [bp+00dh] ; 8a 46 0d 11102 11058 xor ah, ah ; 30 e4 … … 11104 11060 push 0095ah ; 68 5a 09 11105 11061 push strict byte 00007h ; 6a 07 11106 call 01966h ; e8 5da111062 call 01966h ; e8 d6 a1 11107 11063 add sp, strict byte 00006h ; 83 c4 06 11108 11064 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11109 11065 mov byte [bp+013h], 001h ; c6 46 13 01 11110 jmp short 07 86dh ; eb 5711066 jmp short 077f4h ; eb 57 11111 11067 mov si, word [bp+00ch] ; 8b 76 0c 11112 11068 mov bx, si ; 89 f3 11113 11069 mov dx, strict word 00022h ; ba 22 00 11114 11070 mov ax, cx ; 89 c8 11115 call 0167ah ; e8 579e11071 call 0167ah ; e8 d0 9e 11116 11072 mov bx, word [bp+014h] ; 8b 5e 14 11117 11073 mov dx, strict word 00024h ; ba 24 00 11118 11074 mov ax, cx ; 89 c8 11119 call 0167ah ; e8 4c9e11075 call 0167ah ; e8 c5 9e 11120 11076 mov dx, strict word 00027h ; ba 27 00 11121 11077 mov ax, cx ; 89 c8 11122 call 01650h ; e8 1a9e11078 call 01650h ; e8 93 9e 11123 11079 mov ah, al ; 88 c4 11124 11080 test si, si ; 85 f6 11125 jne short 07 84ah ; 75 0e11081 jne short 077d1h ; 75 0e 11126 11082 cmp word [bp+014h], strict byte 00000h ; 83 7e 14 00 11127 jne short 07 84ah ; 75 0811083 jne short 077d1h ; 75 08 11128 11084 test AL, strict byte 080h ; a8 80 11129 je short 07 84ch ; 74 0611085 je short 077d3h ; 74 06 11130 11086 and AL, strict byte 07fh ; 24 7f 11131 jmp short 07 84ch ; eb 0211087 jmp short 077d3h ; eb 02 11132 11088 or AL, strict byte 080h ; 0c 80 11133 11089 mov bl, al ; 88 c3 … … 11135 11091 mov dx, strict word 00027h ; ba 27 00 11136 11092 mov ax, cx ; 89 c8 11137 call 0165eh ; e8 069e11138 jmp short 07 86dh ; eb 1311093 call 0165eh ; e8 7f 9e 11094 jmp short 077f4h ; eb 13 11139 11095 push 00974h ; 68 74 09 11140 11096 push strict byte 00007h ; 6a 07 11141 call 01966h ; e8 04a111097 call 01966h ; e8 7d a1 11142 11098 add sp, strict byte 00004h ; 83 c4 04 11143 11099 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11144 11100 mov byte [bp+013h], 001h ; c6 46 13 01 11145 11101 mov ax, strict word 00047h ; b8 47 00 11146 call 073 e8h ; e8 75 fb11102 call 0736fh ; e8 75 fb 11147 11103 lea sp, [bp-002h] ; 8d 66 fe 11148 11104 pop si ; 5e 11149 11105 pop bp ; 5d 11150 11106 retn ; c3 11151 _int17_function: ; 0xf78 79LB 0xaf11107 _int17_function: ; 0xf7800 LB 0xaf 11152 11108 push bp ; 55 11153 11109 mov bp, sp ; 89 e5 … … 11159 11115 add dx, strict byte 00008h ; 83 c2 08 11160 11116 mov ax, strict word 00040h ; b8 40 00 11161 call 0166ch ; e8 df 9d11117 call 0166ch ; e8 58 9e 11162 11118 mov bx, ax ; 89 c3 11163 11119 mov si, ax ; 89 c6 11164 11120 cmp byte [bp+013h], 003h ; 80 7e 13 03 11165 jnc short 078 a3h ; 73 0c11121 jnc short 0782ah ; 73 0c 11166 11122 mov ax, word [bp+00eh] ; 8b 46 0e 11167 11123 cmp ax, strict word 00003h ; 3d 03 00 11168 jnc short 078 a3h ; 73 0411124 jnc short 0782ah ; 73 04 11169 11125 test bx, bx ; 85 db 11170 jnbe short 078 a6h ; 77 0311171 jmp near 07 91eh ; e9 78 0011126 jnbe short 0782dh ; 77 03 11127 jmp near 078a5h ; e9 78 00 11172 11128 mov dx, ax ; 89 c2 11173 11129 add dx, strict byte 00078h ; 83 c2 78 11174 11130 mov ax, strict word 00040h ; b8 40 00 11175 call 01650h ; e8 9f 9d11131 call 01650h ; e8 18 9e 11176 11132 xor ah, ah ; 30 e4 11177 11133 mov cx, ax ; 89 c1 11178 11134 sal cx, 008h ; c1 e1 08 11179 11135 cmp byte [bp+013h], 000h ; 80 7e 13 00 11180 jne short 078 eah ; 75 2c11136 jne short 07871h ; 75 2c 11181 11137 mov al, byte [bp+012h] ; 8a 46 12 11182 11138 mov dx, bx ; 89 da … … 11198 11154 ; sub ah, ah ; 2a e4 11199 11155 test AL, strict byte 040h ; a8 40 11200 je short 078 eah ; 74 0711156 je short 07871h ; 74 07 11201 11157 test cx, cx ; 85 c9 11202 je short 078 eah ; 74 0311158 je short 07871h ; 74 03 11203 11159 dec cx ; 49 11204 jmp short 078 d9h ; eb ef11160 jmp short 07860h ; eb ef 11205 11161 cmp byte [bp+013h], 001h ; 80 7e 13 01 11206 jne short 07 905h ; 75 1511162 jne short 0788ch ; 75 15 11207 11163 lea dx, [si+002h] ; 8d 54 02 11208 11164 in AL, DX ; ec … … 11223 11179 mov byte [bp+013h], al ; 88 46 13 11224 11180 test cx, cx ; 85 c9 11225 jne short 07 918h ; 75 0411181 jne short 0789fh ; 75 04 11226 11182 or byte [bp+013h], 001h ; 80 4e 13 01 11227 11183 and byte [bp+01ch], 0feh ; 80 66 1c fe 11228 jmp short 07 922h ; eb 0411184 jmp short 078a9h ; eb 04 11229 11185 or byte [bp+01ch], 001h ; 80 4e 1c 01 11230 11186 lea sp, [bp-002h] ; 8d 66 fe … … 11232 11188 pop bp ; 5d 11233 11189 retn ; c3 11234 wait_: ; 0xf7 928LB 0xaf11190 wait_: ; 0xf78af LB 0xaf 11235 11191 push bp ; 55 11236 11192 mov bp, sp ; 89 e5 … … 11250 11206 mov dx, 0046ch ; ba 6c 04 11251 11207 xor ax, ax ; 31 c0 11252 call 01688h ; e8 3d9d11208 call 01688h ; e8 b6 9d 11253 11209 mov word [bp-010h], ax ; 89 46 f0 11254 11210 mov bx, dx ; 89 d3 … … 11256 11212 mov dx, 0046ch ; ba 6c 04 11257 11213 xor ax, ax ; 31 c0 11258 call 01688h ; e8 2f9d11214 call 01688h ; e8 a8 9d 11259 11215 mov word [bp-012h], ax ; 89 46 ee 11260 11216 mov di, dx ; 89 d7 11261 11217 cmp dx, bx ; 39 da 11262 jnbe short 07 969h ; 77 0711263 jne short 07 970h ; 75 0c11218 jnbe short 078f0h ; 77 07 11219 jne short 078f7h ; 75 0c 11264 11220 cmp ax, word [bp-010h] ; 3b 46 f0 11265 jbe short 07 970h ; 76 0711221 jbe short 078f7h ; 76 07 11266 11222 sub ax, word [bp-010h] ; 2b 46 f0 11267 11223 sbb dx, bx ; 19 da 11268 jmp short 079 7bh ; eb 0b11224 jmp short 07902h ; eb 0b 11269 11225 cmp dx, bx ; 39 da 11270 jc short 079 7bh ; 72 0711271 jne short 079 7fh ; 75 0911226 jc short 07902h ; 72 07 11227 jne short 07906h ; 75 09 11272 11228 cmp ax, word [bp-010h] ; 3b 46 f0 11273 jnc short 079 7fh ; 73 0411229 jnc short 07906h ; 73 04 11274 11230 sub si, ax ; 29 c6 11275 11231 sbb cx, dx ; 19 d1 … … 11279 11235 mov ax, 00100h ; b8 00 01 11280 11236 int 016h ; cd 16 11281 je short 079 93h ; 74 0511237 je short 0791ah ; 74 05 11282 11238 mov AL, strict byte 001h ; b0 01 11283 jmp near 079 95h ; e9 02 0011239 jmp near 0791ch ; e9 02 00 11284 11240 db 032h, 0c0h 11285 11241 ; xor al, al ; 32 c0 11286 11242 test al, al ; 84 c0 11287 je short 079 bch ; 74 2311243 je short 07943h ; 74 23 11288 11244 db 033h, 0c0h 11289 11245 ; xor ax, ax ; 33 c0 … … 11296 11252 push 00996h ; 68 96 09 11297 11253 push strict byte 00004h ; 6a 04 11298 call 01966h ; e8 b7 9f11254 call 01966h ; e8 30 a0 11299 11255 add sp, strict byte 00006h ; 83 c4 06 11300 11256 cmp byte [bp-00ah], 000h ; 80 7e f6 00 11301 je short 079 bch ; 74 0411257 je short 07943h ; 74 04 11302 11258 mov al, dl ; 88 d0 11303 jmp short 079 ceh ; eb 1211259 jmp short 07955h ; eb 12 11304 11260 test cx, cx ; 85 c9 11305 jnle short 07 950h ; 7f 9011306 jne short 079 c6h ; 75 0411261 jnle short 078d7h ; 7f 90 11262 jne short 0794dh ; 75 04 11307 11263 test si, si ; 85 f6 11308 jnbe short 07 950h ; 77 8a11264 jnbe short 078d7h ; 77 8a 11309 11265 mov ax, word [bp-00eh] ; 8b 46 f2 11310 11266 push ax ; 50 … … 11318 11274 pop bp ; 5d 11319 11275 retn ; c3 11320 read_logo_byte_: ; 0xf79 d7LB 0x1611276 read_logo_byte_: ; 0xf795e LB 0x16 11321 11277 push bp ; 55 11322 11278 mov bp, sp ; 89 e5 … … 11333 11289 pop bp ; 5d 11334 11290 retn ; c3 11335 read_logo_word_: ; 0xf79 edLB 0x1411291 read_logo_word_: ; 0xf7974 LB 0x14 11336 11292 push bp ; 55 11337 11293 mov bp, sp ; 89 e5 … … 11346 11302 pop bp ; 5d 11347 11303 retn ; c3 11348 print_detected_harddisks_: ; 0xf7 a01LB 0x13a11304 print_detected_harddisks_: ; 0xf7988 LB 0x13a 11349 11305 push bp ; 55 11350 11306 mov bp, sp ; 89 e5 … … 11358 11314 mov dx, strict word 0000eh ; ba 0e 00 11359 11315 mov ax, strict word 00040h ; b8 40 00 11360 call 0166ch ; e8 589c11316 call 0166ch ; e8 d1 9c 11361 11317 mov si, ax ; 89 c6 11362 11318 mov byte [bp-00eh], 000h ; c6 46 f2 00 … … 11364 11320 xor ch, ch ; 30 ed 11365 11321 mov dx, 00304h ; ba 04 03 11366 call 01650h ; e8 2c9c11322 call 01650h ; e8 a5 9c 11367 11323 mov byte [bp-00ch], al ; 88 46 f4 11368 11324 xor bl, bl ; 30 db 11369 11325 cmp bl, byte [bp-00ch] ; 3a 5e f4 11370 jnc short 07a 8bh ; 73 5d11326 jnc short 07a12h ; 73 5d 11371 11327 mov al, bl ; 88 d8 11372 11328 xor ah, ah ; 30 e4 … … 11374 11330 add dx, 00305h ; 81 c2 05 03 11375 11331 mov ax, si ; 89 f0 11376 call 01650h ; e8 139c11332 call 01650h ; e8 8c 9c 11377 11333 mov bh, al ; 88 c7 11378 11334 cmp AL, strict byte 00ch ; 3c 0c 11379 jc short 07 a68h ; 72 2511335 jc short 079efh ; 72 25 11380 11336 test cl, cl ; 84 c9 11381 jne short 07 a54h ; 75 0d11337 jne short 079dbh ; 75 0d 11382 11338 push 009a7h ; 68 a7 09 11383 11339 push strict byte 00002h ; 6a 02 11384 call 01966h ; e8 179f11340 call 01966h ; e8 90 9f 11385 11341 add sp, strict byte 00004h ; 83 c4 04 11386 11342 mov CL, strict byte 001h ; b1 01 … … 11391 11347 push 009bch ; 68 bc 09 11392 11348 push strict byte 00002h ; 6a 02 11393 call 01966h ; e8 049f11349 call 01966h ; e8 7d 9f 11394 11350 add sp, strict byte 00006h ; 83 c4 06 11395 jmp near 07 b08h ; e9 a0 0011351 jmp near 07a8fh ; e9 a0 00 11396 11352 cmp AL, strict byte 008h ; 3c 08 11397 jc short 07a 7fh ; 72 1311353 jc short 07a06h ; 72 13 11398 11354 test ch, ch ; 84 ed 11399 jne short 07a 7dh ; 75 0d11355 jne short 07a04h ; 75 0d 11400 11356 push 009cfh ; 68 cf 09 11401 11357 push strict byte 00002h ; 6a 02 11402 call 01966h ; e8 ee 9e11358 call 01966h ; e8 67 9f 11403 11359 add sp, strict byte 00004h ; 83 c4 04 11404 11360 mov CH, strict byte 001h ; b5 01 11405 jmp short 07 a54h ; eb d511361 jmp short 079dbh ; eb d5 11406 11362 cmp AL, strict byte 004h ; 3c 04 11407 jnc short 07a 9fh ; 73 1c11363 jnc short 07a26h ; 73 1c 11408 11364 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11409 je short 07a 8eh ; 74 0511410 jmp short 07a 9fh ; eb 1411411 jmp near 07 b0dh ; e9 7f 0011365 je short 07a15h ; 74 05 11366 jmp short 07a26h ; eb 14 11367 jmp near 07a94h ; e9 7f 00 11412 11368 push 009e4h ; 68 e4 09 11413 11369 push strict byte 00002h ; 6a 02 11414 call 01966h ; e8 d0 9e11370 call 01966h ; e8 49 9f 11415 11371 add sp, strict byte 00004h ; 83 c4 04 11416 11372 mov byte [bp-00eh], 001h ; c6 46 f2 01 11417 jmp short 07a b5h ; eb 1611373 jmp short 07a3ch ; eb 16 11418 11374 cmp bh, 004h ; 80 ff 04 11419 jc short 07a b5h ; 72 1111375 jc short 07a3ch ; 72 11 11420 11376 test cl, cl ; 84 c9 11421 jne short 07a b5h ; 75 0d11377 jne short 07a3ch ; 75 0d 11422 11378 push 009f6h ; 68 f6 09 11423 11379 push strict byte 00002h ; 6a 02 11424 call 01966h ; e8 b6 9e11380 call 01966h ; e8 2f 9f 11425 11381 add sp, strict byte 00004h ; 83 c4 04 11426 11382 mov CL, strict byte 001h ; b1 01 … … 11431 11387 push 00a0ah ; 68 0a 0a 11432 11388 push strict byte 00002h ; 6a 02 11433 call 01966h ; e8 a3 9e11389 call 01966h ; e8 1c 9f 11434 11390 add sp, strict byte 00006h ; 83 c4 06 11435 11391 cmp bh, 004h ; 80 ff 04 11436 jc short 07a ceh ; 72 0311392 jc short 07a55h ; 72 03 11437 11393 sub bh, 004h ; 80 ef 04 11438 11394 mov al, bh ; 88 f8 … … 11443 11399 sar ax, 1 ; d1 f8 11444 11400 test ax, ax ; 85 c0 11445 je short 07a e0h ; 74 0511401 je short 07a67h ; 74 05 11446 11402 push 00a14h ; 68 14 0a 11447 jmp short 07a e3h ; eb 0311403 jmp short 07a6ah ; eb 03 11448 11404 push 00a1fh ; 68 1f 0a 11449 11405 push strict byte 00002h ; 6a 02 11450 call 01966h ; e8 7e9e11406 call 01966h ; e8 f7 9e 11451 11407 add sp, strict byte 00004h ; 83 c4 04 11452 11408 mov al, bh ; 88 f8 … … 11456 11412 idiv di ; f7 ff 11457 11413 test dx, dx ; 85 d2 11458 je short 07a feh ; 74 0511414 je short 07a85h ; 74 05 11459 11415 push 00a28h ; 68 28 0a 11460 jmp short 07 b01h ; eb 0311416 jmp short 07a88h ; eb 03 11461 11417 push 00a2eh ; 68 2e 0a 11462 11418 push di ; 57 11463 call 01966h ; e8 619e11419 call 01966h ; e8 da 9e 11464 11420 add sp, strict byte 00004h ; 83 c4 04 11465 11421 db 0feh, 0c3h 11466 11422 ; inc bl ; fe c3 11467 jmp near 07 a29h ; e9 1c ff11423 jmp near 079b0h ; e9 1c ff 11468 11424 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11469 jne short 07 b26h ; 75 1311425 jne short 07aadh ; 75 13 11470 11426 test cl, cl ; 84 c9 11471 jne short 07 b26h ; 75 0f11427 jne short 07aadh ; 75 0f 11472 11428 test ch, ch ; 84 ed 11473 jne short 07 b26h ; 75 0b11429 jne short 07aadh ; 75 0b 11474 11430 push 00a35h ; 68 35 0a 11475 11431 push strict byte 00002h ; 6a 02 11476 call 01966h ; e8 439e11432 call 01966h ; e8 bc 9e 11477 11433 add sp, strict byte 00004h ; 83 c4 04 11478 11434 push 00a49h ; 68 49 0a 11479 11435 push strict byte 00002h ; 6a 02 11480 call 01966h ; e8 389e11436 call 01966h ; e8 b1 9e 11481 11437 add sp, strict byte 00004h ; 83 c4 04 11482 11438 lea sp, [bp-00ah] ; 8d 66 f6 … … 11488 11444 pop bp ; 5d 11489 11445 retn ; c3 11490 get_boot_drive_: ; 0xf7 b3bLB 0x2811446 get_boot_drive_: ; 0xf7ac2 LB 0x28 11491 11447 push bp ; 55 11492 11448 mov bp, sp ; 89 e5 … … 11496 11452 mov dx, strict word 0000eh ; ba 0e 00 11497 11453 mov ax, strict word 00040h ; b8 40 00 11498 call 0166ch ; e8 219b11454 call 0166ch ; e8 9a 9b 11499 11455 mov dx, 00304h ; ba 04 03 11500 call 01650h ; e8 ff 9a11456 call 01650h ; e8 78 9b 11501 11457 sub bl, 002h ; 80 eb 02 11502 11458 cmp bl, al ; 38 c3 11503 jc short 07 b5ah ; 72 0211459 jc short 07ae1h ; 72 02 11504 11460 mov BL, strict byte 0ffh ; b3 ff 11505 11461 mov al, bl ; 88 d8 … … 11509 11465 pop bp ; 5d 11510 11466 retn ; c3 11511 show_logo_: ; 0xf7 b63 LB 0x22811467 show_logo_: ; 0xf7aea LB 0x226 11512 11468 push bp ; 55 11513 11469 mov bp, sp ; 89 e5 … … 11520 11476 mov dx, strict word 0000eh ; ba 0e 00 11521 11477 mov ax, strict word 00040h ; b8 40 00 11522 call 0166ch ; e8 f5 9a11478 call 0166ch ; e8 6e 9b 11523 11479 mov si, ax ; 89 c6 11524 11480 xor cl, cl ; 30 c9 … … 11532 11488 mov al, dl ; 88 d0 11533 11489 xor ah, ah ; 30 e4 11534 call 079 edh ; e8 5d fe11490 call 07974h ; e8 5d fe 11535 11491 cmp ax, 066bbh ; 3d bb 66 11536 jne short 07b a7h ; 75 1211492 jne short 07b2eh ; 75 12 11537 11493 push SS ; 16 11538 11494 pop ES ; 07 … … 11542 11498 mov word [es:di], bx ; 26 89 1d 11543 11499 cmp ax, strict word 0004fh ; 3d 4f 00 11544 je short 07b aah ; 74 0311545 jmp near 07 c67h ; e9 bd 0011500 je short 07b31h ; 74 03 11501 jmp near 07beeh ; e9 bd 00 11546 11502 mov al, dl ; 88 d0 11547 11503 add AL, strict byte 004h ; 04 04 11548 11504 xor ah, ah ; 30 e4 11549 call 079 d7h ; e8 24 fe11505 call 0795eh ; e8 24 fe 11550 11506 mov ch, al ; 88 c5 11551 11507 mov byte [bp-012h], al ; 88 46 ee … … 11553 11509 add AL, strict byte 005h ; 04 05 11554 11510 xor ah, ah ; 30 e4 11555 call 079 d7h ; e8 16 fe11511 call 0795eh ; e8 16 fe 11556 11512 mov dh, al ; 88 c6 11557 11513 mov byte [bp-010h], al ; 88 46 f0 … … 11559 11515 add AL, strict byte 002h ; 04 02 11560 11516 xor ah, ah ; 30 e4 11561 call 079 edh ; e8 1e fe11517 call 07974h ; e8 1e fe 11562 11518 mov bx, ax ; 89 c3 11563 11519 mov word [bp-014h], ax ; 89 46 ec … … 11565 11521 add AL, strict byte 006h ; 04 06 11566 11522 xor ah, ah ; 30 e4 11567 call 079 d7h ; e8 fa fd11523 call 0795eh ; e8 fa fd 11568 11524 mov byte [bp-00eh], al ; 88 46 f2 11569 11525 test ch, ch ; 84 ed 11570 jne short 07b ech ; 75 0811526 jne short 07b73h ; 75 08 11571 11527 test dh, dh ; 84 f6 11572 jne short 07b ech ; 75 0411528 jne short 07b73h ; 75 04 11573 11529 test bx, bx ; 85 db 11574 je short 07 c44h ; 74 5811530 je short 07bcbh ; 74 58 11575 11531 mov bx, 00142h ; bb 42 01 11576 11532 mov ax, 04f02h ; b8 02 4f 11577 11533 int 010h ; cd 10 11578 11534 cmp byte [bp-012h], 000h ; 80 7e ee 00 11579 je short 07 c1dh ; 74 2311535 je short 07ba4h ; 74 23 11580 11536 xor bx, bx ; 31 db 11581 jmp short 07 c04h ; eb 0611537 jmp short 07b8bh ; eb 06 11582 11538 inc bx ; 43 11583 11539 cmp bx, strict byte 00010h ; 83 fb 10 11584 jnbe short 07 c24h ; 77 2011540 jnbe short 07babh ; 77 20 11585 11541 mov ax, bx ; 89 d8 11586 11542 or ah, 002h ; 80 cc 02 … … 11589 11545 xor dx, dx ; 31 d2 11590 11546 mov ax, strict word 00001h ; b8 01 00 11591 call 07 928h ; e8 13 fd11547 call 078afh ; e8 13 fd 11592 11548 cmp AL, strict byte 086h ; 3c 86 11593 jne short 07b feh ; 75 e511549 jne short 07b85h ; 75 e5 11594 11550 mov CL, strict byte 001h ; b1 01 11595 jmp short 07 c24h ; eb 0711551 jmp short 07babh ; eb 07 11596 11552 mov ax, 00210h ; b8 10 02 11597 11553 mov dx, 003b8h ; ba b8 03 11598 11554 out DX, ax ; ef 11599 11555 test cl, cl ; 84 c9 11600 jne short 07 c3ah ; 75 1211556 jne short 07bc1h ; 75 12 11601 11557 mov ax, word [bp-014h] ; 8b 46 ec 11602 11558 shr ax, 004h ; c1 e8 04 11603 11559 mov dx, strict word 00001h ; ba 01 00 11604 call 07 928h ; e8 f4 fc11560 call 078afh ; e8 f4 fc 11605 11561 cmp AL, strict byte 086h ; 3c 86 11606 jne short 07 c3ah ; 75 0211562 jne short 07bc1h ; 75 02 11607 11563 mov CL, strict byte 001h ; b1 01 11608 11564 cmp byte [bp-010h], 000h ; 80 7e f0 00 11609 je short 07 c67h ; 74 2711565 je short 07beeh ; 74 27 11610 11566 test cl, cl ; 84 c9 11611 je short 07 c46h ; 74 0211612 jmp short 07 c67h ; eb 2111567 je short 07bcdh ; 74 02 11568 jmp short 07beeh ; eb 21 11613 11569 mov bx, strict word 00010h ; bb 10 00 11614 jmp short 07 c50h ; eb 0511570 jmp short 07bd7h ; eb 05 11615 11571 dec bx ; 4b 11616 11572 test bx, bx ; 85 db 11617 jbe short 07 c67h ; 76 1711573 jbe short 07beeh ; 76 17 11618 11574 mov ax, bx ; 89 d8 11619 11575 or ah, 002h ; 80 cc 02 … … 11622 11578 xor dx, dx ; 31 d2 11623 11579 mov ax, strict word 00001h ; b8 01 00 11624 call 07 928h ; e8 c7 fc11580 call 078afh ; e8 c7 fc 11625 11581 cmp AL, strict byte 086h ; 3c 86 11626 jne short 07 c4bh ; 75 e611582 jne short 07bd2h ; 75 e6 11627 11583 mov CL, strict byte 001h ; b1 01 11628 11584 xor bx, bx ; 31 db 11629 11585 mov dx, 0037dh ; ba 7d 03 11630 11586 mov ax, si ; 89 f0 11631 call 0165eh ; e8 ed 9911587 call 0165eh ; e8 66 9a 11632 11588 mov AL, strict byte 003h ; b0 03 11633 11589 mov AH, strict byte 000h ; b4 00 11634 11590 int 010h ; cd 10 11635 11591 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11636 je short 07c 91h ; 74 1411592 je short 07c18h ; 74 14 11637 11593 cmp byte [bp-012h], 000h ; 80 7e ee 00 11638 jne short 07c b8h ; 75 3511594 jne short 07c3fh ; 75 35 11639 11595 cmp byte [bp-010h], 000h ; 80 7e f0 00 11640 jne short 07c b8h ; 75 2f11596 jne short 07c3fh ; 75 2f 11641 11597 cmp word [bp-014h], strict byte 00000h ; 83 7e ec 00 11642 je short 07c 94h ; 74 0511643 jmp short 07c b8h ; eb 2711644 jmp near 07 d6ch ; e9 d8 0011598 je short 07c1bh ; 74 05 11599 jmp short 07c3fh ; eb 27 11600 jmp near 07cf3h ; e9 d8 00 11645 11601 cmp byte [bp-00eh], 002h ; 80 7e f2 02 11646 jne short 07c a5h ; 75 0b11602 jne short 07c2ch ; 75 0b 11647 11603 push 00a4bh ; 68 4b 0a 11648 11604 push strict byte 00002h ; 6a 02 11649 call 01966h ; e8 c4 9c11605 call 01966h ; e8 3d 9d 11650 11606 add sp, strict byte 00004h ; 83 c4 04 11651 11607 test cl, cl ; 84 c9 11652 jne short 07c b8h ; 75 0f11608 jne short 07c3fh ; 75 0f 11653 11609 mov dx, strict word 00001h ; ba 01 00 11654 11610 mov ax, 000c0h ; b8 c0 00 11655 call 07 928h ; e8 76 fc11611 call 078afh ; e8 76 fc 11656 11612 cmp AL, strict byte 086h ; 3c 86 11657 jne short 07c b8h ; 75 0211613 jne short 07c3fh ; 75 02 11658 11614 mov CL, strict byte 001h ; b1 01 11659 11615 test cl, cl ; 84 c9 11660 je short 07c 91h ; 74 d511616 je short 07c18h ; 74 d5 11661 11617 mov byte [bp-00ch], 000h ; c6 46 f4 00 11662 11618 mov ax, 00100h ; b8 00 01 … … 11677 11633 push 00a6dh ; 68 6d 0a 11678 11634 push strict byte 00002h ; 6a 02 11679 call 01966h ; e8 819c11635 call 01966h ; e8 fa 9c 11680 11636 add sp, strict byte 00004h ; 83 c4 04 11681 call 07 a01h ; e8 16 fd11637 call 07988h ; e8 16 fd 11682 11638 push 00ab1h ; 68 b1 0a 11683 11639 push strict byte 00002h ; 6a 02 11684 call 01966h ; e8 739c11640 call 01966h ; e8 ec 9c 11685 11641 add sp, strict byte 00004h ; 83 c4 04 11686 11642 mov dx, strict word 00001h ; ba 01 00 11687 11643 mov ax, strict word 00040h ; b8 40 00 11688 call 07 928h ; e8 29 fc11644 call 078afh ; e8 29 fc 11689 11645 mov bl, al ; 88 c3 11690 11646 test al, al ; 84 c0 11691 je short 07c f6h ; 74 f111647 je short 07c7dh ; 74 f1 11692 11648 cmp AL, strict byte 030h ; 3c 30 11693 je short 07 d59h ; 74 5011649 je short 07ce0h ; 74 50 11694 11650 cmp bl, 002h ; 80 fb 02 11695 jc short 07 d32h ; 72 2411651 jc short 07cb9h ; 72 24 11696 11652 cmp bl, 009h ; 80 fb 09 11697 jnbe short 07 d32h ; 77 1f11653 jnbe short 07cb9h ; 77 1f 11698 11654 mov al, bl ; 88 d8 11699 11655 xor ah, ah ; 30 e4 11700 call 07 b3bh ; e8 21 fe11656 call 07ac2h ; e8 21 fe 11701 11657 cmp AL, strict byte 0ffh ; 3c ff 11702 jne short 07 d20h ; 75 0211703 jmp short 07c f6h ; eb d611658 jne short 07ca7h ; 75 02 11659 jmp short 07c7dh ; eb d6 11704 11660 mov bl, al ; 88 c3 11705 11661 xor bh, bh ; 30 ff 11706 11662 mov dx, 0037ch ; ba 7c 03 11707 11663 mov ax, si ; 89 f0 11708 call 0165eh ; e8 329911664 call 0165eh ; e8 ab 99 11709 11665 mov byte [bp-00ch], 002h ; c6 46 f4 02 11710 jmp short 07 d59h ; eb 2711666 jmp short 07ce0h ; eb 27 11711 11667 cmp bl, 02eh ; 80 fb 2e 11712 je short 07 d47h ; 74 1011668 je short 07cceh ; 74 10 11713 11669 cmp bl, 026h ; 80 fb 26 11714 je short 07 d4dh ; 74 1111670 je short 07cd4h ; 74 11 11715 11671 cmp bl, 021h ; 80 fb 21 11716 jne short 07 d53h ; 75 1211672 jne short 07cdah ; 75 12 11717 11673 mov byte [bp-00ch], 001h ; c6 46 f4 01 11718 jmp short 07 d59h ; eb 1211674 jmp short 07ce0h ; eb 12 11719 11675 mov byte [bp-00ch], 003h ; c6 46 f4 03 11720 jmp short 07 d59h ; eb 0c11676 jmp short 07ce0h ; eb 0c 11721 11677 mov byte [bp-00ch], 004h ; c6 46 f4 04 11722 jmp short 07 d59h ; eb 0611678 jmp short 07ce0h ; eb 06 11723 11679 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11724 je short 07c f6h ; 74 9d11680 je short 07c7dh ; 74 9d 11725 11681 mov bl, byte [bp-00ch] ; 8a 5e f4 11726 11682 xor bh, bh ; 30 ff 11727 11683 mov dx, 0037dh ; ba 7d 03 11728 11684 mov ax, si ; 89 f0 11729 call 0165eh ; e8 f8 9811685 call 0165eh ; e8 71 99 11730 11686 mov AL, strict byte 003h ; b0 03 11731 11687 mov AH, strict byte 000h ; b4 00 … … 11737 11693 out strict byte 040h, AL ; e6 40 11738 11694 out strict byte 040h, AL ; e6 40 11739 push ad ; 66 6011695 push bp ; 55 11740 11696 push DS ; 1e 11741 11697 mov ds, ax ; 8e d8 11742 call 0edbfh ; e8 417011698 call 0edbfh ; e8 bb 70 11743 11699 pop DS ; 1f 11744 pop ad ; 66 6111700 pop bp ; 5d 11745 11701 lea sp, [bp-00ah] ; 8d 66 f6 11746 11702 pop di ; 5f … … 11751 11707 pop bp ; 5d 11752 11708 retn ; c3 11753 delay_boot_: ; 0xf7d 8b LB 0x6711709 delay_boot_: ; 0xf7d10 LB 0x6b 11754 11710 push bp ; 55 11755 11711 mov bp, sp ; 89 e5 11756 11712 push bx ; 53 11713 push cx ; 51 11757 11714 push dx ; 52 11715 push si ; 56 11716 push di ; 57 11758 11717 mov dx, ax ; 89 c2 11759 11718 test ax, ax ; 85 c0 11760 je short 07d ebh ; 74 5511719 je short 07d71h ; 74 53 11761 11720 mov AL, strict byte 034h ; b0 34 11762 11721 out strict byte 043h, AL ; e6 43 … … 11768 11727 push 00afbh ; 68 fb 0a 11769 11728 push strict byte 00002h ; 6a 02 11770 call 01966h ; e8 bb 9b11729 call 01966h ; e8 33 9c 11771 11730 add sp, strict byte 00006h ; 83 c4 06 11772 11731 mov bx, dx ; 89 d3 11773 11732 test bx, bx ; 85 db 11774 jbe short 07d cbh ; 76 1711733 jbe short 07d53h ; 76 17 11775 11734 push bx ; 53 11776 11735 push 00b19h ; 68 19 0b 11777 11736 push strict byte 00002h ; 6a 02 11778 call 01966h ; e8 a9 9b11737 call 01966h ; e8 21 9c 11779 11738 add sp, strict byte 00006h ; 83 c4 06 11780 11739 xor dx, dx ; 31 d2 11781 11740 mov ax, strict word 00040h ; b8 40 00 11782 call 07 928h ; e8 60fb11741 call 078afh ; e8 5f fb 11783 11742 dec bx ; 4b 11784 jmp short 07d b0h ; eb e511743 jmp short 07d38h ; eb e5 11785 11744 push 00a49h ; 68 49 0a 11786 11745 push strict byte 00002h ; 6a 02 11787 call 01966h ; e8 93 9b11746 call 01966h ; e8 0b 9c 11788 11747 add sp, strict byte 00004h ; 83 c4 04 11789 11748 mov AL, strict byte 034h ; b0 34 … … 11793 11752 out strict byte 040h, AL ; e6 40 11794 11753 out strict byte 040h, AL ; e6 40 11795 push ad ; 66 6011754 push bp ; 55 11796 11755 push DS ; 1e 11797 11756 mov ds, ax ; 8e d8 11798 call 0edbfh ; e8 d7 6f11757 call 0edbfh ; e8 50 70 11799 11758 pop DS ; 1f 11800 popad ; 66 61 11801 lea sp, [bp-004h] ; 8d 66 fc 11759 pop bp ; 5d 11760 lea sp, [bp-00ah] ; 8d 66 f6 11761 pop di ; 5f 11762 pop si ; 5e 11802 11763 pop dx ; 5a 11764 pop cx ; 59 11803 11765 pop bx ; 5b 11804 11766 pop bp ; 5d 11805 11767 retn ; c3 11806 scsi_cmd_data_in_: ; 0xf7d f2LB 0xd511768 scsi_cmd_data_in_: ; 0xf7d7b LB 0xd5 11807 11769 push bp ; 55 11808 11770 mov bp, sp ; 89 e5 … … 11820 11782 ; sub ah, ah ; 2a e4 11821 11783 test AL, strict byte 001h ; a8 01 11822 jne short 07 e08h ; 75 f711784 jne short 07d91h ; 75 f7 11823 11785 mov al, byte [bp+004h] ; 8a 46 04 11824 11786 cmp AL, strict byte 010h ; 3c 10 11825 jne short 07 e1ch ; 75 0411787 jne short 07da5h ; 75 04 11826 11788 xor ax, ax ; 31 c0 11827 jmp short 07 e1eh ; eb 0211789 jmp short 07da7h ; eb 02 11828 11790 xor ah, ah ; 30 e4 11829 11791 mov di, ax ; 89 c7 … … 11833 11795 shr dx, 1 ; d1 ea 11834 11796 rcr ax, 1 ; d1 d8 11835 loop 07 e28h ; e2 fa11797 loop 07db1h ; e2 fa 11836 11798 mov cx, ax ; 89 c1 11837 11799 and cx, 000f0h ; 81 e1 f0 00 … … 11851 11813 shr dx, 1 ; d1 ea 11852 11814 rcr ax, 1 ; d1 d8 11853 loop 07 e4dh ; e2 fa11815 loop 07dd6h ; e2 fa 11854 11816 mov dx, si ; 89 f2 11855 11817 out DX, AL ; ee … … 11858 11820 xor ah, ah ; 30 e4 11859 11821 cmp cx, ax ; 39 c1 11860 jnc short 07 e6fh ; 73 0e11822 jnc short 07df8h ; 73 0e 11861 11823 les di, [bp-00ah] ; c4 7e f6 11862 11824 add di, cx ; 01 cf … … 11865 11827 out DX, AL ; ee 11866 11828 inc cx ; 41 11867 jmp short 07 e58h ; eb e911829 jmp short 07de1h ; eb e9 11868 11830 mov dx, si ; 89 f2 11869 11831 in AL, DX ; ec … … 11871 11833 ; sub ah, ah ; 2a e4 11872 11834 test AL, strict byte 001h ; a8 01 11873 jne short 07 e6fh ; 75 f711835 jne short 07df8h ; 75 f7 11874 11836 test AL, strict byte 002h ; a8 02 11875 je short 07e 8ah ; 74 0e11837 je short 07e13h ; 74 0e 11876 11838 lea dx, [si+003h] ; 8d 54 03 11877 11839 xor al, al ; 30 c0 … … 11881 11843 ; sub ah, ah ; 2a e4 11882 11844 mov di, strict word 00004h ; bf 04 00 11883 jmp short 07e bch ; eb 3211845 jmp short 07e45h ; eb 32 11884 11846 lea dx, [si+001h] ; 8d 54 01 11885 11847 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 11886 jne short 07e 99h ; 75 0611848 jne short 07e22h ; 75 06 11887 11849 cmp bx, 08000h ; 81 fb 00 80 11888 jbe short 07e b3h ; 76 1a11850 jbe short 07e3ch ; 76 1a 11889 11851 mov cx, 08000h ; b9 00 80 11890 11852 les di, [bp+006h] ; c4 7e 06 … … 11895 11857 add ax, 00800h ; 05 00 08 11896 11858 mov word [bp+008h], ax ; 89 46 08 11897 jmp short 07e 8ah ; eb d711859 jmp short 07e13h ; eb d7 11898 11860 mov cx, bx ; 89 d9 11899 11861 les di, [bp+006h] ; c4 7e 06 … … 11906 11868 pop bp ; 5d 11907 11869 retn 0000ah ; c2 0a 00 11908 scsi_cmd_data_out_: ; 0xf7e c7LB 0xd511870 scsi_cmd_data_out_: ; 0xf7e50 LB 0xd5 11909 11871 push bp ; 55 11910 11872 mov bp, sp ; 89 e5 … … 11922 11884 ; sub ah, ah ; 2a e4 11923 11885 test AL, strict byte 001h ; a8 01 11924 jne short 07e ddh ; 75 f711886 jne short 07e66h ; 75 f7 11925 11887 mov al, byte [bp+004h] ; 8a 46 04 11926 11888 cmp AL, strict byte 010h ; 3c 10 11927 jne short 07e f1h ; 75 0411889 jne short 07e7ah ; 75 04 11928 11890 xor ax, ax ; 31 c0 11929 jmp short 07e f3h ; eb 0211891 jmp short 07e7ch ; eb 02 11930 11892 xor ah, ah ; 30 e4 11931 11893 mov si, ax ; 89 c6 … … 11935 11897 shr dx, 1 ; d1 ea 11936 11898 rcr ax, 1 ; d1 d8 11937 loop 07e fdh ; e2 fa11899 loop 07e86h ; e2 fa 11938 11900 mov cx, ax ; 89 c1 11939 11901 and cx, 000f0h ; 81 e1 f0 00 … … 11953 11915 shr dx, 1 ; d1 ea 11954 11916 rcr ax, 1 ; d1 d8 11955 loop 07 f22h ; e2 fa11917 loop 07eabh ; e2 fa 11956 11918 mov dx, di ; 89 fa 11957 11919 out DX, AL ; ee … … 11960 11922 xor ah, ah ; 30 e4 11961 11923 cmp cx, ax ; 39 c1 11962 jnc short 07 f44h ; 73 0e11924 jnc short 07ecdh ; 73 0e 11963 11925 les si, [bp-00ah] ; c4 76 f6 11964 11926 add si, cx ; 01 ce … … 11967 11929 out DX, AL ; ee 11968 11930 inc cx ; 41 11969 jmp short 07 f2dh ; eb e911931 jmp short 07eb6h ; eb e9 11970 11932 lea dx, [di+001h] ; 8d 55 01 11971 11933 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 11972 jne short 07 f53h ; 75 0611934 jne short 07edch ; 75 06 11973 11935 cmp bx, 08000h ; 81 fb 00 80 11974 jbe short 07 f6eh ; 76 1b11936 jbe short 07ef7h ; 76 1b 11975 11937 mov cx, 08000h ; b9 00 80 11976 11938 les si, [bp+006h] ; c4 76 06 … … 11982 11944 add ax, 00800h ; 05 00 08 11983 11945 mov word [bp+008h], ax ; 89 46 08 11984 jmp short 07 f44h ; eb d611946 jmp short 07ecdh ; eb d6 11985 11947 mov cx, bx ; 89 d9 11986 11948 les si, [bp+006h] ; c4 76 06 … … 11992 11954 ; sub ah, ah ; 2a e4 11993 11955 test AL, strict byte 001h ; a8 01 11994 jne short 07 f76h ; 75 f711956 jne short 07effh ; 75 f7 11995 11957 test AL, strict byte 002h ; a8 02 11996 je short 07f 91h ; 74 0e11958 je short 07f1ah ; 74 0e 11997 11959 lea dx, [di+003h] ; 8d 55 03 11998 11960 xor al, al ; 30 c0 … … 12002 11964 ; sub ah, ah ; 2a e4 12003 11965 mov ax, strict word 00004h ; b8 04 00 12004 jmp short 07f 93h ; eb 0211966 jmp short 07f1ch ; eb 02 12005 11967 xor ax, ax ; 31 c0 12006 11968 lea sp, [bp-004h] ; 8d 66 fc … … 12009 11971 pop bp ; 5d 12010 11972 retn 0000ah ; c2 0a 00 12011 @scsi_read_sectors: ; 0xf7f 9cLB 0xe011973 @scsi_read_sectors: ; 0xf7f25 LB 0xe0 12012 11974 push bp ; 55 12013 11975 mov bp, sp ; 89 e5 … … 12021 11983 mov byte [bp-006h], al ; 88 46 fa 12022 11984 cmp AL, strict byte 004h ; 3c 04 12023 jbe short 07f c8h ; 76 1111985 jbe short 07f51h ; 76 11 12024 11986 xor ah, ah ; 30 e4 12025 11987 push ax ; 50 … … 12027 11989 push 00b30h ; 68 30 0b 12028 11990 push strict byte 00007h ; 6a 07 12029 call 01966h ; e8 a1 9911991 call 01966h ; e8 18 9a 12030 11992 add sp, strict byte 00008h ; 83 c4 08 12031 11993 mov es, [bp+006h] ; 8e 46 06 … … 12067 12029 sal word [bp-00ah], 1 ; d1 66 f6 12068 12030 rcl word [bp-008h], 1 ; d1 56 f8 12069 loop 0 8032h ; e2 f812031 loop 07fbbh ; e2 f8 12070 12032 push word [bp-008h] ; ff 76 f8 12071 12033 push word [bp-00ah] ; ff 76 f6 … … 12076 12038 mov cx, ss ; 8c d1 12077 12039 lea bx, [bp-01ah] ; 8d 5e e6 12078 call 07d f2h ; e8 9e fd12040 call 07d7bh ; e8 9e fd 12079 12041 mov ah, al ; 88 c4 12080 12042 test al, al ; 84 c0 12081 jne short 0 806fh ; 75 1512043 jne short 07ff8h ; 75 15 12082 12044 mov es, [bp+006h] ; 8e 46 06 12083 12045 mov word [es:si+018h], di ; 26 89 7c 18 … … 12093 12055 pop bp ; 5d 12094 12056 retn 00004h ; c2 04 00 12095 @scsi_write_sectors: ; 0xf80 7cLB 0xe012057 @scsi_write_sectors: ; 0xf8005 LB 0xe0 12096 12058 push bp ; 55 12097 12059 mov bp, sp ; 89 e5 … … 12105 12067 mov byte [bp-006h], al ; 88 46 fa 12106 12068 cmp AL, strict byte 004h ; 3c 04 12107 jbe short 080 a8h ; 76 1112069 jbe short 08031h ; 76 11 12108 12070 xor ah, ah ; 30 e4 12109 12071 push ax ; 50 … … 12111 12073 push 00b30h ; 68 30 0b 12112 12074 push strict byte 00007h ; 6a 07 12113 call 01966h ; e8 c1 9812075 call 01966h ; e8 38 99 12114 12076 add sp, strict byte 00008h ; 83 c4 08 12115 12077 mov es, [bp+006h] ; 8e 46 06 … … 12151 12113 sal word [bp-00ah], 1 ; d1 66 f6 12152 12114 rcl word [bp-008h], 1 ; d1 56 f8 12153 loop 08 112h ; e2 f812115 loop 0809bh ; e2 f8 12154 12116 push word [bp-008h] ; ff 76 f8 12155 12117 push word [bp-00ah] ; ff 76 f6 … … 12160 12122 mov cx, ss ; 8c d1 12161 12123 lea bx, [bp-01ah] ; 8d 5e e6 12162 call 07e c7h ; e8 93 fd12124 call 07e50h ; e8 93 fd 12163 12125 mov ah, al ; 88 c4 12164 12126 test al, al ; 84 c0 12165 jne short 08 14fh ; 75 1512127 jne short 080d8h ; 75 15 12166 12128 mov es, [bp+006h] ; 8e 46 06 12167 12129 mov word [es:si+018h], di ; 26 89 7c 18 … … 12177 12139 pop bp ; 5d 12178 12140 retn 00004h ; c2 04 00 12179 scsi_cmd_packet_: ; 0xf8 15cLB 0x16812141 scsi_cmd_packet_: ; 0xf80e5 LB 0x168 12180 12142 push bp ; 55 12181 12143 mov bp, sp ; 89 e5 … … 12189 12151 mov dx, strict word 0000eh ; ba 0e 00 12190 12152 mov ax, strict word 00040h ; b8 40 00 12191 call 0166ch ; e8 f4 9412153 call 0166ch ; e8 6b 95 12192 12154 mov si, 00122h ; be 22 01 12193 12155 mov word [bp-00ah], ax ; 89 46 f6 12194 12156 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12195 jne short 081 a3h ; 75 1f12157 jne short 0812ch ; 75 1f 12196 12158 mov bx, 00da0h ; bb a0 0d 12197 12159 mov cx, ds ; 8c d9 12198 12160 mov ax, strict word 00004h ; b8 04 00 12199 call 01923h ; e8 94 9712161 call 01923h ; e8 0b 98 12200 12162 push 00b62h ; 68 62 0b 12201 12163 push 00b72h ; 68 72 0b 12202 12164 push strict byte 00004h ; 6a 04 12203 call 01966h ; e8 cc 9712165 call 01966h ; e8 43 98 12204 12166 add sp, strict byte 00006h ; 83 c4 06 12205 12167 mov dx, strict word 00001h ; ba 01 00 12206 jmp near 082 b9h ; e9 16 0112168 jmp near 08242h ; e9 16 01 12207 12169 sub di, strict byte 00008h ; 83 ef 08 12208 12170 sal di, 002h ; c1 e7 02 … … 12218 12180 ; sub ah, ah ; 2a e4 12219 12181 test AL, strict byte 001h ; a8 01 12220 jne short 081 bfh ; 75 f712182 jne short 08148h ; 75 f7 12221 12183 xor ax, ax ; 31 c0 12222 12184 mov dx, word [bp+006h] ; 8b 56 06 … … 12234 12196 shr dx, 1 ; d1 ea 12235 12197 rcr ax, 1 ; d1 d8 12236 loop 081 eah ; e2 fa12198 loop 08173h ; e2 fa 12237 12199 and ax, 000f0h ; 25 f0 00 12238 12200 mov cl, byte [bp-006h] ; 8a 4e fa … … 12253 12215 shr dx, 1 ; d1 ea 12254 12216 rcr ax, 1 ; d1 d8 12255 loop 08 212h ; e2 fa12217 loop 0819bh ; e2 fa 12256 12218 mov dx, bx ; 89 da 12257 12219 out DX, AL ; ee … … 12260 12222 xor ah, ah ; 30 e4 12261 12223 cmp cx, ax ; 39 c1 12262 jnc short 08 234h ; 73 0e12224 jnc short 081bdh ; 73 0e 12263 12225 les di, [bp-00eh] ; c4 7e f2 12264 12226 add di, cx ; 01 cf … … 12267 12229 out DX, AL ; ee 12268 12230 inc cx ; 41 12269 jmp short 08 21dh ; eb e912231 jmp short 081a6h ; eb e9 12270 12232 mov dx, bx ; 89 da 12271 12233 in AL, DX ; ec … … 12273 12235 ; sub ah, ah ; 2a e4 12274 12236 test AL, strict byte 001h ; a8 01 12275 jne short 08 234h ; 75 f712237 jne short 081bdh ; 75 f7 12276 12238 test AL, strict byte 002h ; a8 02 12277 je short 08 24fh ; 74 0e12239 je short 081d8h ; 74 0e 12278 12240 lea dx, [bx+003h] ; 8d 57 03 12279 12241 xor al, al ; 30 c0 … … 12283 12245 ; sub ah, ah ; 2a e4 12284 12246 mov dx, strict word 00003h ; ba 03 00 12285 jmp short 082 b9h ; eb 6a12247 jmp short 08242h ; eb 6a 12286 12248 mov ax, word [bp+004h] ; 8b 46 04 12287 12249 test ax, ax ; 85 c0 12288 je short 08 25eh ; 74 0812250 je short 081e7h ; 74 08 12289 12251 lea dx, [bx+001h] ; 8d 57 01 12290 12252 mov cx, ax ; 89 c1 12291 12253 in AL, DX ; ec 12292 loop 08 25bh ; e2 fd12254 loop 081e4h ; e2 fd 12293 12255 mov ax, word [bp+006h] ; 8b 46 06 12294 12256 mov es, [bp-00ah] ; 8e 46 f6 … … 12298 12260 lea ax, [bx+001h] ; 8d 47 01 12299 12261 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 12300 jne short 082 7fh ; 75 0712262 jne short 08208h ; 75 07 12301 12263 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 12302 jbe short 082 9ch ; 76 1d12264 jbe short 08225h ; 76 1d 12303 12265 mov dx, ax ; 89 c2 12304 12266 mov cx, 08000h ; b9 00 80 … … 12310 12272 add ax, 00800h ; 05 00 08 12311 12273 mov word [bp+00eh], ax ; 89 46 0e 12312 jmp short 08 26fh ; eb d312274 jmp short 081f8h ; eb d3 12313 12275 mov dx, ax ; 89 c2 12314 12276 mov cx, word [bp+006h] ; 8b 4e 06 … … 12317 12279 mov es, [bp-00ah] ; 8e 46 f6 12318 12280 cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00 12319 je short 082 b7h ; 74 0712281 je short 08240h ; 74 07 12320 12282 mov cx, word [es:si+020h] ; 26 8b 4c 20 12321 12283 in AL, DX ; ec 12322 loop 082 b4h ; e2 fd12284 loop 0823dh ; e2 fd 12323 12285 xor dx, dx ; 31 d2 12324 12286 mov ax, dx ; 89 d0 … … 12328 12290 pop bp ; 5d 12329 12291 retn 0000ch ; c2 0c 00 12330 scsi_enumerate_attached_devices_: ; 0xf82 c4LB 0x4a612292 scsi_enumerate_attached_devices_: ; 0xf824d LB 0x4a6 12331 12293 push bp ; 55 12332 12294 mov bp, sp ; 89 e5 … … 12340 12302 mov dx, strict word 0000eh ; ba 0e 00 12341 12303 mov ax, strict word 00040h ; b8 40 00 12342 call 0166ch ; e8 92 9312304 call 0166ch ; e8 09 94 12343 12305 mov di, 00122h ; bf 22 01 12344 12306 mov word [bp-020h], ax ; 89 46 e0 12345 12307 mov word [bp-022h], strict word 00000h ; c7 46 de 00 00 12346 jmp near 086 e8h ; e9 00 0412308 jmp near 08671h ; e9 00 04 12347 12309 cmp AL, strict byte 004h ; 3c 04 12348 jc short 082 efh ; 72 0312349 jmp near 08 760h ; e9 71 0412310 jc short 08278h ; 72 03 12311 jmp near 086e9h ; e9 71 04 12350 12312 mov cx, strict word 00010h ; b9 10 00 12351 12313 xor bx, bx ; 31 db 12352 12314 mov dx, ss ; 8c d2 12353 12315 lea ax, [bp-046h] ; 8d 46 ba 12354 call 0 a03ah ; e8 3e1d12316 call 09fbah ; e8 35 1d 12355 12317 mov byte [bp-046h], 09eh ; c6 46 ba 9e 12356 12318 mov byte [bp-045h], 010h ; c6 46 bb 10 … … 12367 12329 lea bx, [bp-046h] ; 8d 5e ba 12368 12330 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12369 call 07d f2h ; e8 cd fa12331 call 07d7bh ; e8 cd fa 12370 12332 test al, al ; 84 c0 12371 je short 08 337h ; 74 0e12333 je short 082c0h ; 74 0e 12372 12334 push 00b92h ; 68 92 0b 12373 12335 push 00bcbh ; 68 cb 0b 12374 12336 push strict byte 00007h ; 6a 07 12375 call 01966h ; e8 329612337 call 01966h ; e8 a9 96 12376 12338 add sp, strict byte 00006h ; 83 c4 06 12377 12339 mov ax, word [bp-00240h] ; 8b 86 c0 fd … … 12405 12367 sal ax, 1 ; d1 e0 12406 12368 rcl dx, 1 ; d1 d2 12407 loop 083 86h ; e2 fa12369 loop 0830fh ; e2 fa 12408 12370 or bx, ax ; 09 c3 12409 12371 or dx, si ; 09 f2 … … 12413 12375 mov word [bp-028h], bx ; 89 5e d8 12414 12376 test dx, dx ; 85 d2 12415 jne short 083 a5h ; 75 0612377 jne short 0832eh ; 75 06 12416 12378 cmp bx, 00200h ; 81 fb 00 02 12417 je short 083 c5h ; 74 2012379 je short 0834eh ; 74 20 12418 12380 mov bx, 00da0h ; bb a0 0d 12419 12381 mov cx, ds ; 8c d9 12420 12382 mov ax, strict word 00004h ; b8 04 00 12421 call 01923h ; e8 739512383 call 01923h ; e8 ea 95 12422 12384 push dx ; 52 12423 12385 push word [bp-028h] ; ff 76 d8 … … 12425 12387 push 00beah ; 68 ea 0b 12426 12388 push strict byte 00004h ; 6a 04 12427 call 01966h ; e8 a7 9512389 call 01966h ; e8 1e 96 12428 12390 add sp, strict byte 0000ah ; 83 c4 0a 12429 jmp near 086 dch ; e9 17 0312391 jmp near 08665h ; e9 17 03 12430 12392 mov al, byte [bp-00ch] ; 8a 46 f4 12431 12393 cmp AL, strict byte 001h ; 3c 01 12432 jc short 083 d8h ; 72 0c12433 jbe short 083 e0h ; 76 1212394 jc short 08361h ; 72 0c 12395 jbe short 08369h ; 76 12 12434 12396 cmp AL, strict byte 003h ; 3c 03 12435 je short 083 e8h ; 74 1612397 je short 08371h ; 74 16 12436 12398 cmp AL, strict byte 002h ; 3c 02 12437 je short 083 e4h ; 74 0e12438 jmp short 08 431h ; eb 5912399 je short 0836dh ; 74 0e 12400 jmp short 083bah ; eb 59 12439 12401 test al, al ; 84 c0 12440 jne short 08 431h ; 75 5512402 jne short 083bah ; 75 55 12441 12403 mov BL, strict byte 090h ; b3 90 12442 jmp short 083 eah ; eb 0a12404 jmp short 08373h ; eb 0a 12443 12405 mov BL, strict byte 098h ; b3 98 12444 jmp short 083 eah ; eb 0612406 jmp short 08373h ; eb 06 12445 12407 mov BL, strict byte 0a0h ; b3 a0 12446 jmp short 083 eah ; eb 0212408 jmp short 08373h ; eb 02 12447 12409 mov BL, strict byte 0a8h ; b3 a8 12448 12410 mov cl, bl ; 88 d9 … … 12450 12412 xor ch, ch ; 30 ed 12451 12413 mov ax, cx ; 89 c8 12452 call 016ach ; e8 b6 9212414 call 016ach ; e8 2d 93 12453 12415 test al, al ; 84 c0 12454 je short 08 431h ; 74 3712416 je short 083bah ; 74 37 12455 12417 mov al, bl ; 88 d8 12456 12418 db 0feh, 0c0h 12457 12419 ; inc al ; fe c0 12458 12420 xor ah, ah ; 30 e4 12459 call 016ach ; e8 a9 9212421 call 016ach ; e8 20 93 12460 12422 xor ah, ah ; 30 e4 12461 12423 mov dx, ax ; 89 c2 12462 12424 sal dx, 008h ; c1 e2 08 12463 12425 mov al, bl ; 88 d8 12464 call 016ach ; e8 9d 9212426 call 016ach ; e8 14 93 12465 12427 xor ah, ah ; 30 e4 12466 12428 add ax, dx ; 01 d0 … … 12470 12432 add AL, strict byte 002h ; 04 02 12471 12433 xor ah, ah ; 30 e4 12472 call 016ach ; e8 8d 9212434 call 016ach ; e8 04 93 12473 12435 xor ah, ah ; 30 e4 12474 12436 mov word [bp-018h], ax ; 89 46 e8 12475 12437 mov ax, cx ; 89 c8 12476 call 016ach ; e8 839212438 call 016ach ; e8 fa 92 12477 12439 xor ah, ah ; 30 e4 12478 12440 mov word [bp-026h], ax ; 89 46 da 12479 jmp near 08 51fh ; e9 ee 0012441 jmp near 084a8h ; e9 ee 00 12480 12442 mov ax, word [bp-012h] ; 8b 46 ee 12481 12443 mov bx, word [bp-010h] ; 8b 5e f0 … … 12483 12445 mov dx, word [bp-014h] ; 8b 56 ec 12484 12446 mov si, strict word 0000ch ; be 0c 00 12485 call 0 a02ah ; e8 e71b12447 call 09faah ; e8 de 1b 12486 12448 mov word [bp-02ah], ax ; 89 46 d6 12487 12449 mov word [bp-016h], bx ; 89 5e ea … … 12490 12452 mov ax, word [bp-012h] ; 8b 46 ee 12491 12453 test ax, ax ; 85 c0 12492 jnbe short 08 46bh ; 77 1512493 je short 08 45bh ; 74 0312494 jmp near 084 e0h ; e9 85 0012454 jnbe short 083f4h ; 77 15 12455 je short 083e4h ; 74 03 12456 jmp near 08469h ; e9 85 00 12495 12457 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 12496 jnbe short 08 46bh ; 77 0a12497 jne short 08 458h ; 75 f512458 jnbe short 083f4h ; 77 0a 12459 jne short 083e1h ; 75 f5 12498 12460 cmp word [bp-01ch], strict byte 00040h ; 83 7e e4 40 12499 jnbe short 08 46bh ; 77 0212500 jne short 084 e0h ; 75 7512461 jnbe short 083f4h ; 77 02 12462 jne short 08469h ; 75 75 12501 12463 mov word [bp-018h], 000ffh ; c7 46 e8 ff 00 12502 12464 mov word [bp-026h], strict word 0003fh ; c7 46 da 3f 00 … … 12505 12467 mov dx, word [bp-014h] ; 8b 56 ec 12506 12468 mov si, strict word 00006h ; be 06 00 12507 call 0 a02ah ; e8 a61b12469 call 09faah ; e8 9d 1b 12508 12470 mov si, word [bp-01eh] ; 8b 76 e2 12509 12471 add si, dx ; 01 d6 … … 12523 12485 mov dx, si ; 89 f2 12524 12486 mov si, strict word 00008h ; be 08 00 12525 call 0 a02ah ; e8 761b12487 call 09faah ; e8 6d 1b 12526 12488 mov word [bp-02eh], bx ; 89 5e d2 12527 12489 mov word [bp-030h], cx ; 89 4e d0 … … 12532 12494 mov dx, word [bp-036h] ; 8b 56 ca 12533 12495 mov si, strict word 00010h ; be 10 00 12534 call 0 a02ah ; e8 5b1b12496 call 09faah ; e8 52 1b 12535 12497 mov si, word [bp-032h] ; 8b 76 ce 12536 12498 add si, dx ; 01 d6 … … 12539 12501 mov ax, word [bp-02eh] ; 8b 46 d2 12540 12502 adc ax, bx ; 11 d8 12541 jmp short 08 51fh ; eb 3f12503 jmp short 084a8h ; eb 3f 12542 12504 test ax, ax ; 85 c0 12543 jnbe short 084 f6h ; 77 1212544 jne short 08 502h ; 75 1c12505 jnbe short 0847fh ; 77 12 12506 jne short 0848bh ; 75 1c 12545 12507 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 12546 jnbe short 084 f6h ; 77 0a12547 jne short 08 502h ; 75 1412508 jnbe short 0847fh ; 77 0a 12509 jne short 0848bh ; 75 14 12548 12510 cmp word [bp-01ch], strict byte 00020h ; 83 7e e4 20 12549 jnbe short 084 f6h ; 77 0212550 jne short 08 502h ; 75 0c12511 jnbe short 0847fh ; 77 02 12512 jne short 0848bh ; 75 0c 12551 12513 mov word [bp-018h], 00080h ; c7 46 e8 80 00 12552 12514 mov word [bp-026h], strict word 00020h ; c7 46 da 20 00 12553 jmp short 08 51bh ; eb 1912515 jmp short 084a4h ; eb 19 12554 12516 mov word [bp-018h], strict word 00040h ; c7 46 e8 40 00 12555 12517 mov word [bp-026h], strict word 00020h ; c7 46 da 20 00 … … 12558 12520 mov dx, word [bp-014h] ; 8b 56 ec 12559 12521 mov si, strict word 0000bh ; be 0b 00 12560 call 0 a02ah ; e8 0f1b12522 call 09faah ; e8 06 1b 12561 12523 mov si, dx ; 89 d6 12562 12524 mov dx, cx ; 89 ca … … 12593 12555 mov word [es:bx+034h], ax ; 26 89 47 34 12594 12556 test dx, dx ; 85 d2 12595 jne short 085 91h ; 75 0612557 jne short 0851ah ; 75 06 12596 12558 cmp si, 00400h ; 81 fe 00 04 12597 jbe short 085 9fh ; 76 0e12559 jbe short 08528h ; 76 0e 12598 12560 mov word [es:bx+02ch], 00400h ; 26 c7 47 2c 00 04 12599 12561 mov word [es:bx+032h], 00400h ; 26 c7 47 32 00 04 12600 jmp short 085 a7h ; eb 0812562 jmp short 08530h ; eb 08 12601 12563 mov word [es:bx+02ch], si ; 26 89 77 2c 12602 12564 mov word [es:bx+032h], si ; 26 89 77 32 … … 12604 12566 mov cx, ds ; 8c d9 12605 12567 mov ax, strict word 00004h ; b8 04 00 12606 call 01923h ; e8 719312568 call 01923h ; e8 e8 93 12607 12569 push word [bp-012h] ; ff 76 ee 12608 12570 push word [bp-010h] ; ff 76 f0 … … 12619 12581 push 00c18h ; 68 18 0c 12620 12582 push strict byte 00004h ; 6a 04 12621 call 01966h ; e8 8f 9312583 call 01966h ; e8 06 94 12622 12584 add sp, strict byte 00018h ; 83 c4 18 12623 12585 mov al, byte [bp-00eh] ; 8a 46 f2 … … 12647 12609 mov dx, strict word 00075h ; ba 75 00 12648 12610 mov ax, strict word 00040h ; b8 40 00 12649 call 01650h ; e8 259012611 call 01650h ; e8 9c 90 12650 12612 mov bl, al ; 88 c3 12651 12613 db 0feh, 0c3h … … 12654 12616 mov dx, strict word 00075h ; ba 75 00 12655 12617 mov ax, strict word 00040h ; b8 40 00 12656 call 0165eh ; e8 249012618 call 0165eh ; e8 9b 90 12657 12619 inc byte [bp-00ch] ; fe 46 f4 12658 jmp near 086 d1h ; e9 91 0012620 jmp near 0865ah ; e9 91 00 12659 12621 mov bx, 00da0h ; bb a0 0d 12660 12622 mov cx, ds ; 8c d9 12661 12623 mov ax, strict word 00004h ; b8 04 00 12662 call 01923h ; e8 d8 9212624 call 01923h ; e8 4f 93 12663 12625 push word [bp-022h] ; ff 76 de 12664 12626 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12667 12629 push 00c46h ; 68 46 0c 12668 12630 push strict byte 00004h ; 6a 04 12669 call 01966h ; e8 0a9312631 call 01966h ; e8 81 93 12670 12632 add sp, strict byte 00008h ; 83 c4 08 12671 12633 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12673 12635 mov byte [bp-00eh], al ; 88 46 f2 12674 12636 test byte [bp-00245h], 080h ; f6 86 bb fd 80 12675 je short 08 673h ; 74 0512637 je short 085fch ; 74 05 12676 12638 mov dx, strict word 00001h ; ba 01 00 12677 jmp short 08 675h ; eb 0212639 jmp short 085feh ; eb 02 12678 12640 xor dx, dx ; 31 d2 12679 12641 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12711 12673 inc word [bp-022h] ; ff 46 de 12712 12674 cmp word [bp-022h], strict byte 00010h ; 83 7e de 10 12713 jl short 086 e8h ; 7c 0312714 jmp near 08 760h ; e9 78 0012675 jl short 08671h ; 7c 03 12676 jmp near 086e9h ; e9 78 00 12715 12677 mov byte [bp-046h], 012h ; c6 46 ba 12 12716 12678 xor al, al ; 30 c0 … … 12731 12693 lea bx, [bp-046h] ; 8d 5e ba 12732 12694 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12733 call 07d f2h ; e8 d7 f612695 call 07d7bh ; e8 d7 f6 12734 12696 test al, al ; 84 c0 12735 je short 08 72dh ; 74 0e12697 je short 086b6h ; 74 0e 12736 12698 push 00b92h ; 68 92 0b 12737 12699 push 00bb2h ; 68 b2 0b 12738 12700 push strict byte 00007h ; 6a 07 12739 call 01966h ; e8 3c9212701 call 01966h ; e8 b3 92 12740 12702 add sp, strict byte 00006h ; 83 c4 06 12741 12703 mov es, [bp-020h] ; 8e 46 e0 … … 12743 12705 mov byte [bp-00ch], al ; 88 46 f4 12744 12706 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12745 jne short 08 749h ; 75 0a12707 jne short 086d2h ; 75 0a 12746 12708 test byte [bp-00246h], 01fh ; f6 86 ba fd 1f 12747 jne short 08 749h ; 75 0312748 jmp near 082 e8h ; e9 9f fb12709 jne short 086d2h ; 75 03 12710 jmp near 08271h ; e9 9f fb 12749 12711 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12750 jne short 086 d1h ; 75 8112712 jne short 0865ah ; 75 81 12751 12713 mov al, byte [bp-00246h] ; 8a 86 ba fd 12752 12714 and AL, strict byte 01fh ; 24 1f 12753 12715 cmp AL, strict byte 005h ; 3c 05 12754 jne short 08 75dh ; 75 0312755 jmp near 08 640h ; e9 e3 fe12756 jmp near 086 d1h ; e9 71 ff12716 jne short 086e6h ; 75 03 12717 jmp near 085c9h ; e9 e3 fe 12718 jmp near 0865ah ; e9 71 ff 12757 12719 lea sp, [bp-00ah] ; 8d 66 f6 12758 12720 pop di ; 5f … … 12763 12725 pop bp ; 5d 12764 12726 retn ; c3 12765 _scsi_init: ; 0xf8 76aLB 0x6612727 _scsi_init: ; 0xf86f3 LB 0x66 12766 12728 push bp ; 55 12767 12729 mov bp, sp ; 89 e5 12768 12730 mov dx, strict word 0000eh ; ba 0e 00 12769 12731 mov ax, strict word 00040h ; b8 40 00 12770 call 0166ch ; e8 f6 8e12732 call 0166ch ; e8 6d 8f 12771 12733 mov bx, 00122h ; bb 22 01 12772 12734 mov es, ax ; 8e c0 … … 12779 12741 ; sub ah, ah ; 2a e4 12780 12742 cmp AL, strict byte 055h ; 3c 55 12781 jne short 087 9ah ; 75 0c12743 jne short 08723h ; 75 0c 12782 12744 xor al, al ; 30 c0 12783 12745 mov dx, 00433h ; ba 33 04 12784 12746 out DX, AL ; ee 12785 12747 mov ax, 00430h ; b8 30 04 12786 call 082 c4h ; e8 2a fb12748 call 0824dh ; e8 2a fb 12787 12749 mov AL, strict byte 055h ; b0 55 12788 12750 mov dx, 00436h ; ba 36 04 … … 12792 12754 ; sub ah, ah ; 2a e4 12793 12755 cmp AL, strict byte 055h ; 3c 55 12794 jne short 087 b3h ; 75 0c12756 jne short 0873ch ; 75 0c 12795 12757 xor al, al ; 30 c0 12796 12758 mov dx, 00437h ; ba 37 04 12797 12759 out DX, AL ; ee 12798 12760 mov ax, 00434h ; b8 34 04 12799 call 082 c4h ; e8 11 fb12761 call 0824dh ; e8 11 fb 12800 12762 mov AL, strict byte 055h ; b0 55 12801 12763 mov dx, 0043ah ; ba 3a 04 … … 12805 12767 ; sub ah, ah ; 2a e4 12806 12768 cmp AL, strict byte 055h ; 3c 55 12807 jne short 087 cch ; 75 0c12769 jne short 08755h ; 75 0c 12808 12770 xor al, al ; 30 c0 12809 12771 mov dx, 0043bh ; ba 3b 04 12810 12772 out DX, AL ; ee 12811 12773 mov ax, 00438h ; b8 38 04 12812 call 082 c4h ; e8 f8 fa12774 call 0824dh ; e8 f8 fa 12813 12775 mov sp, bp ; 89 ec 12814 12776 pop bp ; 5d 12815 12777 retn ; c3 12816 ahci_ctrl_extract_bits_: ; 0xf87 d0LB 0x1c12778 ahci_ctrl_extract_bits_: ; 0xf8759 LB 0x1c 12817 12779 push si ; 56 12818 12780 push bp ; 55 … … 12823 12785 mov cl, byte [bp+006h] ; 8a 4e 06 12824 12786 xor ch, ch ; 30 ed 12825 jcxz 087 e7h ; e3 0612787 jcxz 08770h ; e3 06 12826 12788 shr dx, 1 ; d1 ea 12827 12789 rcr ax, 1 ; d1 d8 12828 loop 087 e1h ; e2 fa12790 loop 0876ah ; e2 fa 12829 12791 pop bp ; 5d 12830 12792 pop si ; 5e 12831 12793 retn 00002h ; c2 02 00 12832 ahci_addr_to_phys_: ; 0xf87 ecLB 0x1e12794 ahci_addr_to_phys_: ; 0xf8775 LB 0x1e 12833 12795 push bx ; 53 12834 12796 push cx ; 51 … … 12841 12803 sal ax, 1 ; d1 e0 12842 12804 rcl dx, 1 ; d1 d2 12843 loop 087 fah ; e2 fa12805 loop 08783h ; e2 fa 12844 12806 xor cx, cx ; 31 c9 12845 12807 add ax, bx ; 01 d8 … … 12849 12811 pop bx ; 5b 12850 12812 retn ; c3 12851 ahci_port_cmd_sync_: ; 0xf8 80aLB 0x15612813 ahci_port_cmd_sync_: ; 0xf8793 LB 0x156 12852 12814 push bp ; 55 12853 12815 mov bp, sp ; 89 e5 … … 12864 12826 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12865 12827 cmp AL, strict byte 0ffh ; 3c ff 12866 jne short 08 82dh ; 75 0312867 jmp near 08 958h ; e9 2b 0112828 jne short 087b6h ; 75 03 12829 jmp near 088e1h ; e9 2b 01 12868 12830 mov al, byte [es:si+00263h] ; 26 8a 84 63 02 12869 12831 xor ah, ah ; 30 e4 … … 12878 12840 lea ax, [si+00080h] ; 8d 84 80 00 12879 12841 mov dx, cx ; 89 ca 12880 call 087 ech ; e8 92 ff12842 call 08775h ; e8 92 ff 12881 12843 mov es, cx ; 8e c1 12882 12844 mov word [es:si+008h], ax ; 26 89 44 08 … … 12944 12906 xchg dx, ax ; 92 12945 12907 test dh, 040h ; f6 c6 40 12946 jne short 088 ebh ; 75 0412908 jne short 08874h ; 75 04 12947 12909 test AL, strict byte 001h ; a8 01 12948 je short 088 efh ; 74 0412910 je short 08878h ; 74 04 12949 12911 mov AL, strict byte 001h ; b0 01 12950 jmp short 088 f1h ; eb 0212912 jmp short 0887ah ; eb 02 12951 12913 xor al, al ; 30 c0 12952 12914 test al, al ; 84 c0 12953 je short 088 beh ; 74 c912915 je short 08847h ; 74 c9 12954 12916 mov al, byte [bp-008h] ; 8a 46 f8 12955 12917 xor ah, ah ; 30 e4 … … 13007 12969 pop bp ; 5d 13008 12970 retn ; c3 13009 ahci_cmd_data_: ; 0xf8 960LB 0x26712971 ahci_cmd_data_: ; 0xf88e9 LB 0x267 13010 12972 push bp ; 55 13011 12973 mov bp, sp ; 89 e5 … … 13032 12994 mov ax, 00080h ; b8 80 00 13033 12995 mov dx, word [bp-00ah] ; 8b 56 f6 13034 call 0 a03ah ; e8 9c1612996 call 09fbah ; e8 93 16 13035 12997 mov es, [bp-00ah] ; 8e 46 f6 13036 12998 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 13050 13012 mov dx, word [es:si] ; 26 8b 14 13051 13013 mov si, strict word 00008h ; be 08 00 13052 call 0 a02ah ; e8 481613014 call 09faah ; e8 3f 16 13053 13015 mov es, [bp-00ah] ; 8e 46 f6 13054 13016 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 13061 13023 mov dx, word [es:si] ; 26 8b 14 13062 13024 mov si, strict word 00010h ; be 10 00 13063 call 0 a02ah ; e8 221613025 call 09faah ; e8 19 16 13064 13026 mov es, [bp-00ah] ; 8e 46 f6 13065 13027 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 13073 13035 mov dx, word [es:si] ; 26 8b 14 13074 13036 mov si, strict word 00018h ; be 18 00 13075 call 0 a02ah ; e8 f61513037 call 09faah ; e8 ed 15 13076 13038 mov es, [bp-00ah] ; 8e 46 f6 13077 13039 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13084 13046 mov dx, word [es:si] ; 26 8b 14 13085 13047 mov si, strict word 00020h ; be 20 00 13086 call 0 a02ah ; e8 d01513048 call 09faah ; e8 c7 15 13087 13049 mov es, [bp-00ah] ; 8e 46 f6 13088 13050 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13095 13057 mov dx, word [es:si] ; 26 8b 14 13096 13058 mov si, strict word 00028h ; be 28 00 13097 call 0 a02ah ; e8 aa1513059 call 09faah ; e8 a1 15 13098 13060 mov es, [bp-00ah] ; 8e 46 f6 13099 13061 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13109 13071 mov bx, word [bp-010h] ; 8b 5e f0 13110 13072 xor cx, cx ; 31 c9 13111 call 09f e9h ; e8 341513073 call 09f69h ; e8 2b 15 13112 13074 push dx ; 52 13113 13075 push ax ; 50 … … 13119 13081 mov ax, 0026ah ; b8 6a 02 13120 13082 mov dx, word [bp-00ah] ; 8b 56 f6 13121 call 09 f01h ; e8 301413083 call 09e85h ; e8 2b 14 13122 13084 mov es, [bp-00ah] ; 8e 46 f6 13123 13085 mov dx, word [es:di+0027eh] ; 26 8b 95 7e 02 … … 13142 13104 mov ax, word [es:bx+020h] ; 26 8b 47 20 13143 13105 test ax, ax ; 85 c0 13144 je short 08 b63h ; 74 3b13106 je short 08aech ; 74 3b 13145 13107 dec ax ; 48 13146 13108 mov es, [bp-00ah] ; 8e 46 f6 … … 13160 13122 mov al, byte [bp-008h] ; 8a 46 f8 13161 13123 cmp AL, strict byte 035h ; 3c 35 13162 jne short 08 b70h ; 75 0613124 jne short 08af9h ; 75 06 13163 13125 mov byte [bp-008h], 040h ; c6 46 f8 40 13164 jmp short 08b 87h ; eb 1713126 jmp short 08b10h ; eb 17 13165 13127 cmp AL, strict byte 0a0h ; 3c a0 13166 jne short 08b 83h ; 75 0f13128 jne short 08b0ch ; 75 0f 13167 13129 or byte [bp-008h], 020h ; 80 4e f8 20 13168 13130 les bx, [bp-00eh] ; c4 5e f2 13169 13131 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 13170 jmp short 08b 87h ; eb 0413132 jmp short 08b10h ; eb 04 13171 13133 mov byte [bp-008h], 000h ; c6 46 f8 00 13172 13134 or byte [bp-008h], 005h ; 80 4e f8 05 … … 13175 13137 mov ax, word [bp-00eh] ; 8b 46 f2 13176 13138 mov dx, word [bp-00ch] ; 8b 56 f4 13177 call 08 80ah ; e8 71 fc13139 call 08793h ; e8 71 fc 13178 13140 mov cx, word [bp-00ch] ; 8b 4e f4 13179 13141 mov bx, word [bp-00eh] ; 8b 5e f2 … … 13182 13144 add ax, 0026ah ; 05 6a 02 13183 13145 mov dx, cx ; 89 ca 13184 call 09 f78h ; e8 ca1313146 call 09efch ; e8 c5 13 13185 13147 mov es, cx ; 8e c1 13186 13148 mov al, byte [es:bx+003h] ; 26 8a 47 03 13187 13149 test al, al ; 84 c0 13188 je short 08b bdh ; 74 0513150 je short 08b46h ; 74 05 13189 13151 mov ax, strict word 00004h ; b8 04 00 13190 jmp short 08b bfh ; eb 0213152 jmp short 08b48h ; eb 02 13191 13153 xor ah, ah ; 30 e4 13192 13154 lea sp, [bp-006h] ; 8d 66 fa … … 13196 13158 pop bp ; 5d 13197 13159 retn ; c3 13198 ahci_port_deinit_current_: ; 0xf8b c7LB 0x18013160 ahci_port_deinit_current_: ; 0xf8b50 LB 0x180 13199 13161 push bp ; 55 13200 13162 mov bp, sp ; 89 e5 … … 13211 13173 mov byte [bp-00ah], al ; 88 46 f6 13212 13174 cmp AL, strict byte 0ffh ; 3c ff 13213 je short 08 c48h ; 74 5f13175 je short 08bd1h ; 74 5f 13214 13176 xor ah, ah ; 30 e4 13215 13177 sal ax, 007h ; c1 e0 07 … … 13255 13217 xchg dx, ax ; 92 13256 13218 test ax, 0c011h ; a9 11 c0 13257 je short 08 c4bh ; 74 0713219 je short 08bd4h ; 74 07 13258 13220 mov AL, strict byte 001h ; b0 01 13259 jmp short 08 c4dh ; eb 0513260 jmp near 08 d3eh ; e9 f3 0013221 jmp short 08bd6h ; eb 05 13222 jmp near 08cc7h ; e9 f3 00 13261 13223 xor al, al ; 30 c0 13262 13224 cmp AL, strict byte 001h ; 3c 01 13263 je short 08 c1bh ; 74 ca13225 je short 08ba4h ; 74 ca 13264 13226 mov cx, strict word 00020h ; b9 20 00 13265 13227 xor bx, bx ; 31 db 13266 13228 mov ax, di ; 89 f8 13267 13229 mov dx, word [bp-00eh] ; 8b 56 f2 13268 call 0 a03ah ; e8 dc1313230 call 09fbah ; e8 d3 13 13269 13231 lea ax, [di+00080h] ; 8d 85 80 00 13270 13232 mov cx, strict word 00040h ; b9 40 00 13271 13233 xor bx, bx ; 31 db 13272 13234 mov dx, word [bp-00eh] ; 8b 56 f2 13273 call 0 a03ah ; e8 cd1313235 call 09fbah ; e8 c4 13 13274 13236 lea ax, [di+00200h] ; 8d 85 00 02 13275 13237 mov cx, strict word 00060h ; b9 60 00 13276 13238 xor bx, bx ; 31 db 13277 13239 mov dx, word [bp-00eh] ; 8b 56 f2 13278 call 0 a03ah ; e8 be1313240 call 09fbah ; e8 b5 13 13279 13241 mov al, byte [bp-00ah] ; 8a 46 f6 13280 13242 xor ah, ah ; 30 e4 … … 13381 13343 pop bp ; 5d 13382 13344 retn ; c3 13383 ahci_port_init_: ; 0xf8 d47LB 0x24d13345 ahci_port_init_: ; 0xf8cd0 LB 0x24d 13384 13346 push bp ; 55 13385 13347 mov bp, sp ; 89 e5 … … 13391 13353 mov word [bp-00ah], dx ; 89 56 f6 13392 13354 mov byte [bp-008h], bl ; 88 5e f8 13393 call 08b c7h ; e8 6c fe13355 call 08b50h ; e8 6c fe 13394 13356 mov al, bl ; 88 d8 13395 13357 xor ah, ah ; 30 e4 … … 13440 13402 xchg dx, ax ; 92 13441 13403 test ax, 0c011h ; a9 11 c0 13442 je short 08d cch ; 74 0413404 je short 08d55h ; 74 04 13443 13405 mov AL, strict byte 001h ; b0 01 13444 jmp short 08d ceh ; eb 0213406 jmp short 08d57h ; eb 02 13445 13407 xor al, al ; 30 c0 13446 13408 cmp AL, strict byte 001h ; 3c 01 13447 je short 08d 97h ; 74 c513409 je short 08d20h ; 74 c5 13448 13410 mov cx, strict word 00020h ; b9 20 00 13449 13411 xor bx, bx ; 31 db 13450 13412 mov ax, si ; 89 f0 13451 13413 mov dx, word [bp-00ah] ; 8b 56 f6 13452 call 0 a03ah ; e8 5b1213414 call 09fbah ; e8 52 12 13453 13415 lea ax, [si+00080h] ; 8d 84 80 00 13454 13416 mov cx, strict word 00040h ; b9 40 00 13455 13417 xor bx, bx ; 31 db 13456 13418 mov dx, word [bp-00ah] ; 8b 56 f6 13457 call 0 a03ah ; e8 4c1213419 call 09fbah ; e8 43 12 13458 13420 lea di, [si+00200h] ; 8d bc 00 02 13459 13421 mov cx, strict word 00060h ; b9 60 00 … … 13461 13423 mov ax, di ; 89 f8 13462 13424 mov dx, word [bp-00ah] ; 8b 56 f6 13463 call 0 a03ah ; e8 3b1213425 call 09fbah ; e8 32 12 13464 13426 mov bl, byte [bp-008h] ; 8a 5e f8 13465 13427 xor bh, bh ; 30 ff … … 13479 13441 mov ax, di ; 89 f8 13480 13442 mov dx, word [bp-00ah] ; 8b 56 f6 13481 call 087 ech ; e8 bf f913443 call 08775h ; e8 bf f9 13482 13444 mov es, [bp-00ah] ; 8e 46 f6 13483 13445 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13524 13486 mov ax, si ; 89 f0 13525 13487 mov dx, word [bp-00ah] ; 8b 56 f6 13526 call 087 ech ; e8 53 f913488 call 08775h ; e8 53 f9 13527 13489 mov es, [bp-00ah] ; 8e 46 f6 13528 13490 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13629 13591 pop bp ; 5d 13630 13592 retn ; c3 13631 @ahci_read_sectors: ; 0xf8f 94LB 0xa813593 @ahci_read_sectors: ; 0xf8f1d LB 0xa8 13632 13594 push bp ; 55 13633 13595 mov bp, sp ; 89 e5 … … 13640 13602 sub bx, strict byte 0000ch ; 83 eb 0c 13641 13603 cmp bx, strict byte 00004h ; 83 fb 04 13642 jbe short 08f bah ; 76 0f13604 jbe short 08f43h ; 76 0f 13643 13605 push bx ; 53 13644 13606 push 00c62h ; 68 62 0c 13645 13607 push 00c74h ; 68 74 0c 13646 13608 push strict byte 00007h ; 6a 07 13647 call 01966h ; e8 af 8913609 call 01966h ; e8 26 8a 13648 13610 add sp, strict byte 00008h ; 83 c4 08 13649 13611 xor di, di ; 31 ff … … 13660 13622 mov dx, word [es:di+00232h] ; 26 8b 95 32 02 13661 13623 xor ax, ax ; 31 c0 13662 call 08 d47h ; e8 60 fd13624 call 08cd0h ; e8 60 fd 13663 13625 mov bx, strict word 00025h ; bb 25 00 13664 13626 mov ax, si ; 89 f0 13665 13627 mov dx, word [bp+006h] ; 8b 56 06 13666 call 08 960h ; e8 6e f913628 call 088e9h ; e8 6e f9 13667 13629 mov word [bp-006h], ax ; 89 46 fa 13668 13630 mov es, [bp+006h] ; 8e 46 06 … … 13693 13655 pop bp ; 5d 13694 13656 retn 00004h ; c2 04 00 13695 @ahci_write_sectors: ; 0xf 903cLB 0x8613657 @ahci_write_sectors: ; 0xf8fc5 LB 0x86 13696 13658 push bp ; 55 13697 13659 mov bp, sp ; 89 e5 … … 13705 13667 sub dx, strict byte 0000ch ; 83 ea 0c 13706 13668 cmp dx, strict byte 00004h ; 83 fa 04 13707 jbe short 0 9066h ; 76 0f13669 jbe short 08fefh ; 76 0f 13708 13670 push dx ; 52 13709 13671 push 00c93h ; 68 93 0c 13710 13672 push 00c74h ; 68 74 0c 13711 13673 push strict byte 00007h ; 6a 07 13712 call 01966h ; e8 038913674 call 01966h ; e8 7a 89 13713 13675 add sp, strict byte 00008h ; 83 c4 08 13714 13676 xor bx, bx ; 31 db … … 13725 13687 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 13726 13688 xor ax, ax ; 31 c0 13727 call 08 d47h ; e8 b6 fc13689 call 08cd0h ; e8 b6 fc 13728 13690 mov bx, strict word 00035h ; bb 35 00 13729 13691 mov ax, si ; 89 f0 13730 13692 mov dx, cx ; 89 ca 13731 call 08 960h ; e8 c5 f813693 call 088e9h ; e8 c5 f8 13732 13694 mov dx, ax ; 89 c2 13733 13695 mov es, cx ; 8e c1 … … 13744 13706 pop bp ; 5d 13745 13707 retn 00004h ; c2 04 00 13746 ahci_cmd_packet_: ; 0xf90 c2LB 0x18a13708 ahci_cmd_packet_: ; 0xf904b LB 0x18a 13747 13709 push bp ; 55 13748 13710 mov bp, sp ; 89 e5 … … 13756 13718 mov dx, strict word 0000eh ; ba 0e 00 13757 13719 mov ax, strict word 00040h ; b8 40 00 13758 call 0166ch ; e8 8f 8513720 call 0166ch ; e8 06 86 13759 13721 mov si, 00122h ; be 22 01 13760 13722 mov word [bp-008h], ax ; 89 46 f8 13761 13723 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 13762 jne short 09 108h ; 75 1f13724 jne short 09091h ; 75 1f 13763 13725 mov bx, 00da0h ; bb a0 0d 13764 13726 mov cx, ds ; 8c d9 13765 13727 mov ax, strict word 00004h ; b8 04 00 13766 call 01923h ; e8 2f8813728 call 01923h ; e8 a6 88 13767 13729 push 00ca6h ; 68 a6 0c 13768 13730 push 00cb6h ; 68 b6 0c 13769 13731 push strict byte 00004h ; 6a 04 13770 call 01966h ; e8 678813732 call 01966h ; e8 de 88 13771 13733 add sp, strict byte 00006h ; 83 c4 06 13772 13734 mov ax, strict word 00001h ; b8 01 00 13773 jmp near 09 243h ; e9 3b 0113735 jmp near 091cch ; e9 3b 01 13774 13736 test byte [bp+004h], 001h ; f6 46 04 01 13775 jne short 09 102h ; 75 f413737 jne short 0908bh ; 75 f4 13776 13738 mov ax, word [bp+006h] ; 8b 46 06 13777 13739 mov dx, word [bp+008h] ; 8b 56 08 … … 13779 13741 sal ax, 1 ; d1 e0 13780 13742 rcl dx, 1 ; d1 d2 13781 loop 09 117h ; e2 fa13743 loop 090a0h ; e2 fa 13782 13744 mov es, [bp-008h] ; 8e 46 f8 13783 13745 mov word [es:si], ax ; 26 89 04 … … 13793 13755 mov dx, word [bp+008h] ; 8b 56 08 13794 13756 xor cx, cx ; 31 c9 13795 call 09f b0h ; e8 600e13757 call 09f30h ; e8 57 0e 13796 13758 mov word [es:si+00eh], ax ; 26 89 44 0e 13797 13759 xor di, di ; 31 ff … … 13812 13774 mov bx, ax ; 89 c3 13813 13775 xor al, al ; 30 c0 13814 call 08 d47h ; e8 b8 fb13776 call 08cd0h ; e8 b8 fb 13815 13777 mov al, byte [bp-006h] ; 8a 46 fa 13816 13778 xor ah, ah ; 30 e4 … … 13820 13782 mov ax, 000c0h ; b8 c0 00 13821 13783 mov dx, word [bp-00ah] ; 8b 56 f6 13822 call 0 a047h ; e8 a30e13784 call 09fc7h ; e8 9a 0e 13823 13785 mov es, [bp-008h] ; 8e 46 f8 13824 13786 mov word [es:si+018h], di ; 26 89 7c 18 … … 13827 13789 mov ax, word [es:si+01eh] ; 26 8b 44 1e 13828 13790 test ax, ax ; 85 c0 13829 je short 091 e2h ; 74 2713791 je short 0916bh ; 74 27 13830 13792 dec ax ; 48 13831 13793 mov es, [bp-00ah] ; 8e 46 f6 … … 13840 13802 mov ax, si ; 89 f0 13841 13803 mov dx, word [bp-008h] ; 8b 56 f8 13842 call 08 960h ; e8 73 f713804 call 088e9h ; e8 73 f7 13843 13805 les bx, [bp-00eh] ; c4 5e f2 13844 13806 mov dx, word [es:bx+004h] ; 26 8b 57 04 … … 13867 13829 mov ax, word [es:bx+006h] ; 26 8b 47 06 13868 13830 or ax, word [es:bx+004h] ; 26 0b 47 04 13869 jne short 09 241h ; 75 0513831 jne short 091cah ; 75 05 13870 13832 mov ax, strict word 00004h ; b8 04 00 13871 jmp short 09 243h ; eb 0213833 jmp short 091cch ; eb 02 13872 13834 xor ax, ax ; 31 c0 13873 13835 lea sp, [bp-004h] ; 8d 66 fc … … 13876 13838 pop bp ; 5d 13877 13839 retn 0000ch ; c2 0c 00 13878 ahci_port_detect_device_: ; 0xf9 24cLB 0x4e313840 ahci_port_detect_device_: ; 0xf91d5 LB 0x4e3 13879 13841 push bp ; 55 13880 13842 mov bp, sp ; 89 e5 … … 13889 13851 xor ch, ch ; 30 ed 13890 13852 mov bx, cx ; 89 cb 13891 call 08 d47h ; e8 e0 fa13853 call 08cd0h ; e8 e0 fa 13892 13854 mov dx, strict word 0000eh ; ba 0e 00 13893 13855 mov ax, strict word 00040h ; b8 40 00 13894 call 0166ch ; e8 fc 8313856 call 0166ch ; e8 73 84 13895 13857 mov word [bp-00eh], 00122h ; c7 46 f2 22 01 13896 13858 mov word [bp-016h], ax ; 89 46 ea … … 13962 13924 mov bx, strict word 0000fh ; bb 0f 00 13963 13925 xor cx, cx ; 31 c9 13964 call 087 d0h ; e8 b5 f413926 call 08759h ; e8 b5 f4 13965 13927 test ax, ax ; 85 c0 13966 jne short 09 322h ; 75 0313967 jmp near 09 727h ; e9 05 0413928 jne short 092abh ; 75 03 13929 jmp near 096b0h ; e9 05 04 13968 13930 mov al, byte [bp-00ch] ; 8a 46 f4 13969 13931 xor ah, ah ; 30 e4 … … 13994 13956 mov bx, strict word 0000fh ; bb 0f 00 13995 13957 xor cx, cx ; 31 c9 13996 call 087 d0h ; e8 67 f413958 call 08759h ; e8 67 f4 13997 13959 cmp ax, strict word 00001h ; 3d 01 00 13998 je short 09 322h ; 74 b413960 je short 092abh ; 74 b4 13999 13961 push strict byte 00000h ; 6a 00 14000 13962 mov bx, strict word 0000fh ; bb 0f 00 … … 14002 13964 mov ax, word [bp-01ah] ; 8b 46 e6 14003 13965 mov dx, di ; 89 fa 14004 call 087 d0h ; e8 53 f413966 call 08759h ; e8 53 f4 14005 13967 cmp ax, strict word 00003h ; 3d 03 00 14006 jne short 09 31fh ; 75 9d13968 jne short 092a8h ; 75 9d 14007 13969 mov ax, word [bp-01ch] ; 8b 46 e4 14008 13970 add ax, 00130h ; 05 30 01 … … 14032 13994 mov byte [bp-008h], al ; 88 46 f8 14033 13995 cmp AL, strict byte 004h ; 3c 04 14034 jc short 093 cch ; 72 0314035 jmp near 09 727h ; e9 5b 0313996 jc short 09355h ; 72 03 13997 jmp near 096b0h ; e9 5b 03 14036 13998 mov ax, word [bp-01ch] ; 8b 46 e4 14037 13999 add ax, 00118h ; 05 18 01 … … 14083 14045 add cl, 00ch ; 80 c1 0c 14084 14046 test dx, dx ; 85 d2 14085 jne short 094 92h ; 75 5414047 jne short 0941bh ; 75 54 14086 14048 cmp ax, 00101h ; 3d 01 01 14087 jne short 094 92h ; 75 4f14049 jne short 0941bh ; 75 4f 14088 14050 mov es, [bp-016h] ; 8e 46 ea 14089 14051 mov bx, word [bp-00eh] ; 8b 5e f2 … … 14100 14062 mov ax, word [bp-00eh] ; 8b 46 f2 14101 14063 mov dx, es ; 8c c2 14102 call 08 960h ; e8 dd f414064 call 088e9h ; e8 dd f4 14103 14065 mov byte [bp-00ah], cl ; 88 4e f6 14104 14066 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14105 je short 094 95h ; 74 0814067 je short 0941eh ; 74 08 14106 14068 mov ax, strict word 00001h ; b8 01 00 14107 jmp short 094 97h ; eb 0514108 jmp near 09 665h ; e9 d0 0114069 jmp short 09420h ; eb 05 14070 jmp near 095eeh ; e9 d0 01 14109 14071 xor ax, ax ; 31 c0 14110 14072 mov dl, al ; 88 c2 … … 14122 14084 mov word [bp-01eh], ax ; 89 46 e2 14123 14085 cmp word [bp-014h], 00fffh ; 81 7e ec ff 0f 14124 jne short 094 e6h ; 75 1e14086 jne short 0946fh ; 75 1e 14125 14087 cmp di, strict byte 0ffffh ; 83 ff ff 14126 jne short 094 e6h ; 75 1914088 jne short 0946fh ; 75 19 14127 14089 mov ax, word [bp-0015ch] ; 8b 86 a4 fe 14128 14090 mov word [bp-01eh], ax ; 89 46 e2 … … 14163 14125 mov al, byte [bp-008h] ; 8a 46 f8 14164 14126 cmp AL, strict byte 001h ; 3c 01 14165 jc short 09 561h ; 72 0c14166 jbe short 09 569h ; 76 1214127 jc short 094eah ; 72 0c 14128 jbe short 094f2h ; 76 12 14167 14129 cmp AL, strict byte 003h ; 3c 03 14168 je short 09 571h ; 74 1614130 je short 094fah ; 74 16 14169 14131 cmp AL, strict byte 002h ; 3c 02 14170 je short 09 56dh ; 74 0e14171 jmp short 095 b9h ; eb 5814132 je short 094f6h ; 74 0e 14133 jmp short 09542h ; eb 58 14172 14134 test al, al ; 84 c0 14173 jne short 095 b9h ; 75 5414135 jne short 09542h ; 75 54 14174 14136 mov DL, strict byte 040h ; b2 40 14175 jmp short 09 573h ; eb 0a14137 jmp short 094fch ; eb 0a 14176 14138 mov DL, strict byte 048h ; b2 48 14177 jmp short 09 573h ; eb 0614139 jmp short 094fch ; eb 06 14178 14140 mov DL, strict byte 050h ; b2 50 14179 jmp short 09 573h ; eb 0214141 jmp short 094fch ; eb 02 14180 14142 mov DL, strict byte 058h ; b2 58 14181 14143 mov bl, dl ; 88 d3 … … 14183 14145 xor bh, bh ; 30 ff 14184 14146 mov ax, bx ; 89 d8 14185 call 016ach ; e8 2d8114147 call 016ach ; e8 a4 81 14186 14148 test al, al ; 84 c0 14187 je short 095 b9h ; 74 3614149 je short 09542h ; 74 36 14188 14150 mov al, dl ; 88 d0 14189 14151 db 0feh, 0c0h 14190 14152 ; inc al ; fe c0 14191 14153 xor ah, ah ; 30 e4 14192 call 016ach ; e8 208114154 call 016ach ; e8 97 81 14193 14155 xor ah, ah ; 30 e4 14194 14156 mov cx, ax ; 89 c1 14195 14157 sal cx, 008h ; c1 e1 08 14196 14158 mov al, dl ; 88 d0 14197 call 016ach ; e8 148114159 call 016ach ; e8 8b 81 14198 14160 xor ah, ah ; 30 e4 14199 14161 add ax, cx ; 01 c8 … … 14202 14164 add AL, strict byte 002h ; 04 02 14203 14165 xor ah, ah ; 30 e4 14204 call 016ach ; e8 048114166 call 016ach ; e8 7b 81 14205 14167 xor ah, ah ; 30 e4 14206 14168 mov word [bp-02ah], ax ; 89 46 d6 14207 14169 mov ax, bx ; 89 d8 14208 call 016ach ; e8 fa 8014170 call 016ach ; e8 71 81 14209 14171 xor ah, ah ; 30 e4 14210 14172 mov word [bp-026h], ax ; 89 46 da 14211 jmp short 095 cbh ; eb 1214173 jmp short 09554h ; eb 12 14212 14174 push word [bp-01eh] ; ff 76 e2 14213 14175 push word [bp-012h] ; ff 76 ee … … 14216 14178 mov dx, ss ; 8c d2 14217 14179 lea ax, [bp-02ah] ; 8d 46 d6 14218 call 059 d2h ; e8 07c414180 call 05977h ; e8 23 c4 14219 14181 mov bx, 00da0h ; bb a0 0d 14220 14182 mov cx, ds ; 8c d9 14221 14183 mov ax, strict word 00004h ; b8 04 00 14222 call 01923h ; e8 4d8314184 call 01923h ; e8 c4 83 14223 14185 push word [bp-01eh] ; ff 76 e2 14224 14186 push word [bp-012h] ; ff 76 ee … … 14241 14203 push 00cd6h ; 68 d6 0c 14242 14204 push strict byte 00004h ; 6a 04 14243 call 01966h ; e8 5f8314205 call 01966h ; e8 d6 83 14244 14206 add sp, strict byte 0001ch ; 83 c4 1c 14245 14207 mov al, byte [bp-00ah] ; 8a 46 f6 … … 14272 14234 mov dx, strict word 00075h ; ba 75 00 14273 14235 mov ax, strict word 00040h ; b8 40 00 14274 call 01650h ; e8 fd 7f14236 call 01650h ; e8 74 80 14275 14237 mov bl, al ; 88 c3 14276 14238 db 0feh, 0c3h … … 14279 14241 mov dx, strict word 00075h ; ba 75 00 14280 14242 mov ax, strict word 00040h ; b8 40 00 14281 call 0165eh ; e8 fc 7f14282 jmp near 09 716h ; e9 b1 0014243 call 0165eh ; e8 73 80 14244 jmp near 0969fh ; e9 b1 00 14283 14245 cmp dx, 0eb14h ; 81 fa 14 eb 14284 jne short 096 bfh ; 75 5414246 jne short 09648h ; 75 54 14285 14247 cmp ax, 00101h ; 3d 01 01 14286 jne short 096 bfh ; 75 4f14248 jne short 09648h ; 75 4f 14287 14249 mov es, [bp-016h] ; 8e 46 ea 14288 14250 mov bx, word [bp-00eh] ; 8b 5e f2 … … 14299 14261 mov ax, word [bp-00eh] ; 8b 46 f2 14300 14262 mov dx, es ; 8c c2 14301 call 08 960h ; e8 b0 f214263 call 088e9h ; e8 b0 f2 14302 14264 mov byte [bp-00ah], cl ; 88 4e f6 14303 14265 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14304 je short 096 c1h ; 74 0714266 je short 0964ah ; 74 07 14305 14267 mov dx, strict word 00001h ; ba 01 00 14306 jmp short 096 c3h ; eb 0414307 jmp short 09 716h ; eb 5514268 jmp short 0964ch ; eb 04 14269 jmp short 0969fh ; eb 55 14308 14270 xor dx, dx ; 31 d2 14309 14271 mov bl, byte [bp-008h] ; 8a 5e f8 … … 14344 14306 pop bp ; 5d 14345 14307 retn ; c3 14346 ahci_mem_alloc_: ; 0xf9 72fLB 0x4314308 ahci_mem_alloc_: ; 0xf96b8 LB 0x43 14347 14309 push bp ; 55 14348 14310 mov bp, sp ; 89 e5 … … 14354 14316 mov dx, 00413h ; ba 13 04 14355 14317 xor ax, ax ; 31 c0 14356 call 0166ch ; e8 2d7f14318 call 0166ch ; e8 a4 7f 14357 14319 test ax, ax ; 85 c0 14358 je short 09 768h ; 74 2514320 je short 096f1h ; 74 25 14359 14321 dec ax ; 48 14360 14322 mov bx, ax ; 89 c3 … … 14363 14325 sal ax, 1 ; d1 e0 14364 14326 rcl dx, 1 ; d1 d2 14365 loop 09 74bh ; e2 fa14327 loop 096d4h ; e2 fa 14366 14328 mov si, ax ; 89 c6 14367 14329 mov di, dx ; 89 d7 … … 14369 14331 shr di, 1 ; d1 ef 14370 14332 rcr si, 1 ; d1 de 14371 loop 09 758h ; e2 fa14333 loop 096e1h ; e2 fa 14372 14334 mov dx, 00413h ; ba 13 04 14373 14335 xor ax, ax ; 31 c0 14374 call 0167ah ; e8 147f14336 call 0167ah ; e8 8b 7f 14375 14337 mov ax, si ; 89 f0 14376 14338 lea sp, [bp-00ah] ; 8d 66 f6 … … 14382 14344 pop bp ; 5d 14383 14345 retn ; c3 14384 ahci_hba_init_: ; 0xf9 772LB 0x16d14346 ahci_hba_init_: ; 0xf96fb LB 0x16d 14385 14347 push bp ; 55 14386 14348 mov bp, sp ; 89 e5 … … 14394 14356 mov dx, strict word 0000eh ; ba 0e 00 14395 14357 mov ax, strict word 00040h ; b8 40 00 14396 call 0166ch ; e8 e4 7e14358 call 0166ch ; e8 5b 7f 14397 14359 mov bx, 00122h ; bb 22 01 14398 14360 mov di, ax ; 89 c7 … … 14411 14373 shr eax, 010h ; 66 c1 e8 10 14412 14374 xchg dx, ax ; 92 14413 call 09 72fh ; e8 83 ff14375 call 096b8h ; e8 83 ff 14414 14376 mov word [bp-010h], ax ; 89 46 f0 14415 14377 test ax, ax ; 85 c0 14416 jne short 097 b6h ; 75 0314417 jmp near 098 beh ; e9 08 0114378 jne short 0973fh ; 75 03 14379 jmp near 09847h ; e9 08 01 14418 14380 mov ax, word [bp-010h] ; 8b 46 f0 14419 14381 mov es, di ; 8e c7 … … 14465 14427 xchg dx, ax ; 92 14466 14428 test AL, strict byte 001h ; a8 01 14467 jne short 09 810h ; 75 de14429 jne short 09799h ; 75 de 14468 14430 xor ax, ax ; 31 c0 14469 14431 xor cx, cx ; 31 c9 … … 14483 14445 mov bx, strict word 0001fh ; bb 1f 00 14484 14446 xor cx, cx ; 31 c9 14485 call 087 d0h ; e8 7a ef14447 call 08759h ; e8 7a ef 14486 14448 db 0feh, 0c0h 14487 14449 ; inc al ; fe c0 14488 14450 mov byte [bp-00ch], al ; 88 46 f4 14489 14451 mov byte [bp-00eh], 000h ; c6 46 f2 00 14490 jmp short 098 82h ; eb 2114452 jmp short 0980bh ; eb 21 14491 14453 xor al, al ; 30 c0 14492 14454 test al, al ; 84 c0 14493 je short 098 79h ; 74 1214455 je short 09802h ; 74 12 14494 14456 mov bl, byte [bp-00eh] ; 8a 5e f2 14495 14457 xor bh, bh ; 30 ff 14496 14458 xor ax, ax ; 31 c0 14497 14459 mov dx, word [bp-010h] ; 8b 56 f0 14498 call 09 24ch ; e8 d8 f914460 call 091d5h ; e8 d8 f9 14499 14461 dec byte [bp-00ch] ; fe 4e f4 14500 je short 098 bch ; 74 4314462 je short 09845h ; 74 43 14501 14463 inc byte [bp-00eh] ; fe 46 f2 14502 14464 cmp byte [bp-00eh], 020h ; 80 7e f2 20 14503 jnc short 098 bch ; 73 3a14465 jnc short 09845h ; 73 3a 14504 14466 mov cl, byte [bp-00eh] ; 8a 4e f2 14505 14467 xor ch, ch ; 30 ed 14506 14468 mov bx, strict word 00001h ; bb 01 00 14507 14469 xor di, di ; 31 ff 14508 jcxz 098 94h ; e3 0614470 jcxz 0981dh ; e3 06 14509 14471 sal bx, 1 ; d1 e3 14510 14472 rcl di, 1 ; d1 d7 14511 loop 098 8eh ; e2 fa14473 loop 09817h ; e2 fa 14512 14474 mov ax, strict word 0000ch ; b8 0c 00 14513 14475 xor cx, cx ; 31 c9 … … 14525 14487 xchg dx, ax ; 92 14526 14488 test dx, di ; 85 fa 14527 jne short 098 b8h ; 75 0414489 jne short 09841h ; 75 04 14528 14490 test ax, bx ; 85 d8 14529 je short 09 861h ; 74 a914491 je short 097eah ; 74 a9 14530 14492 mov AL, strict byte 001h ; b0 01 14531 jmp short 09 863h ; eb a714493 jmp short 097ech ; eb a7 14532 14494 xor ax, ax ; 31 c0 14533 14495 lea sp, [bp-00ah] ; 8d 66 f6 … … 14539 14501 pop bp ; 5d 14540 14502 retn ; c3 14541 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 c7h, 099h, 0a5h, 099h, 0abh, 099h, 0b1h, 099h, 0b7h14542 db 099h, 0 bdh, 099h, 0c3h, 099h, 0c7h, 099h14543 _ahci_init: ; 0xf98 dfLB 0x11914503 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 050h, 099h, 02eh, 099h, 034h, 099h, 03ah, 099h, 040h 14504 db 099h, 046h, 099h, 04ch, 099h, 050h, 099h 14505 _ahci_init: ; 0xf9868 LB 0x119 14544 14506 push bp ; 55 14545 14507 mov bp, sp ; 89 e5 … … 14548 14510 mov ax, 00601h ; b8 01 06 14549 14511 mov dx, strict word 00001h ; ba 01 00 14550 call 09 e13h ; e8 24 0514512 call 09d9ch ; e8 24 05 14551 14513 mov dx, ax ; 89 c2 14552 14514 cmp ax, strict word 0ffffh ; 3d ff ff 14553 je short 09 942h ; 74 4c14515 je short 098cbh ; 74 4c 14554 14516 xor al, al ; 30 c0 14555 14517 shr ax, 008h ; c1 e8 08 … … 14559 14521 xor ah, ah ; 30 e4 14560 14522 mov bx, strict word 00034h ; bb 34 00 14561 call 09 e3eh ; e8 330514523 call 09da4h ; e8 10 05 14562 14524 mov cl, al ; 88 c1 14563 14525 test cl, cl ; 84 c9 14564 je short 09 945h ; 74 3414526 je short 098ceh ; 74 34 14565 14527 mov bl, cl ; 88 cb 14566 14528 xor bh, bh ; 30 ff … … 14573 14535 mov dx, word [bp-010h] ; 8b 56 f0 14574 14536 mov ax, word [bp-00ch] ; 8b 46 f4 14575 call 09 e3eh ; e8 0e 0514537 call 09da4h ; e8 eb 04 14576 14538 cmp AL, strict byte 012h ; 3c 12 14577 je short 09 945h ; 74 1114539 je short 098ceh ; 74 11 14578 14540 mov bl, cl ; 88 cb 14579 14541 db 0feh, 0c3h … … 14582 14544 mov dx, word [bp-010h] ; 8b 56 f0 14583 14545 mov ax, word [bp-00ch] ; 8b 46 f4 14584 jmp short 09 908h ; eb c614585 jmp near 099 f2h ; e9 ad 0014546 jmp short 09891h ; eb c6 14547 jmp near 0997bh ; e9 ad 00 14586 14548 test cl, cl ; 84 c9 14587 je short 09 942h ; 74 f914549 je short 098cbh ; 74 f9 14588 14550 add cl, 002h ; 80 c1 02 14589 14551 mov bl, cl ; 88 cb … … 14597 14559 mov dx, word [bp-00eh] ; 8b 56 f2 14598 14560 mov ax, word [bp-00ah] ; 8b 46 f6 14599 call 09 e3eh ; e8 d30414561 call 09da4h ; e8 b0 04 14600 14562 cmp AL, strict byte 010h ; 3c 10 14601 jne short 09 942h ; 75 d314563 jne short 098cbh ; 75 d3 14602 14564 mov byte [bp-004h], 000h ; c6 46 fc 00 14603 14565 mov bl, cl ; 88 cb … … 14606 14568 mov dx, word [bp-00eh] ; 8b 56 f2 14607 14569 mov ax, word [bp-00ah] ; 8b 46 f6 14608 call 09 e6ch ; e8 e90414570 call 09dd2h ; e8 c6 04 14609 14571 mov dx, ax ; 89 c2 14610 14572 and ax, strict word 0000fh ; 25 0f 00 14611 14573 sub ax, strict word 00004h ; 2d 04 00 14612 14574 cmp ax, strict word 0000bh ; 3d 0b 00 14613 jnbe short 099 c7h ; 77 3714575 jnbe short 09950h ; 77 37 14614 14576 push CS ; 0e 14615 14577 pop ES ; 07 14616 14578 mov cx, strict word 00008h ; b9 08 00 14617 mov di, 098 c8h ; bf c89814579 mov di, 09851h ; bf 51 98 14618 14580 repne scasb ; f2 ae 14619 14581 sal cx, 1 ; d1 e1 14620 14582 mov di, cx ; 89 cf 14621 mov ax, word [cs:di-067 31h] ; 2e 8b 85 cf9814583 mov ax, word [cs:di-067a8h] ; 2e 8b 85 58 98 14622 14584 jmp ax ; ff e0 14623 14585 mov byte [bp-004h], 010h ; c6 46 fc 10 14624 jmp short 099 c7h ; eb 1c14586 jmp short 09950h ; eb 1c 14625 14587 mov byte [bp-004h], 014h ; c6 46 fc 14 14626 jmp short 099 c7h ; eb 1614588 jmp short 09950h ; eb 16 14627 14589 mov byte [bp-004h], 018h ; c6 46 fc 18 14628 jmp short 099 c7h ; eb 1014590 jmp short 09950h ; eb 10 14629 14591 mov byte [bp-004h], 01ch ; c6 46 fc 1c 14630 jmp short 099 c7h ; eb 0a14592 jmp short 09950h ; eb 0a 14631 14593 mov byte [bp-004h], 020h ; c6 46 fc 20 14632 jmp short 099 c7h ; eb 0414594 jmp short 09950h ; eb 04 14633 14595 mov byte [bp-004h], 024h ; c6 46 fc 24 14634 14596 mov cx, dx ; 89 d1 … … 14637 14599 mov al, byte [bp-004h] ; 8a 46 fc 14638 14600 test al, al ; 84 c0 14639 je short 099 f2h ; 74 1c14601 je short 0997bh ; 74 1c 14640 14602 mov bl, al ; 88 c3 14641 14603 xor bh, bh ; 30 ff … … 14644 14606 mov al, byte [bp-008h] ; 8a 46 f8 14645 14607 xor ah, ah ; 30 e4 14646 call 09 e96h ; e8 af0414608 call 09dfch ; e8 8c 04 14647 14609 test AL, strict byte 001h ; a8 01 14648 je short 099 f2h ; 74 0714610 je short 0997bh ; 74 07 14649 14611 and AL, strict byte 0f0h ; 24 f0 14650 14612 add ax, cx ; 01 c8 14651 call 09 772h ; e8 80 fd14613 call 096fbh ; e8 80 fd 14652 14614 lea sp, [bp-002h] ; 8d 66 fe 14653 14615 pop di ; 5f 14654 14616 pop bp ; 5d 14655 14617 retn ; c3 14656 apm_out_str_: ; 0xf99 f8LB 0x3914618 apm_out_str_: ; 0xf9981 LB 0x39 14657 14619 push bp ; 55 14658 14620 mov bp, sp ; 89 e5 … … 14660 14622 mov bx, ax ; 89 c3 14661 14623 cmp byte [bx], 000h ; 80 3f 00 14662 je short 09 a0dh ; 74 0a14624 je short 09996h ; 74 0a 14663 14625 mov al, byte [bx] ; 8a 07 14664 14626 out DX, AL ; ee … … 14667 14629 db 00ah, 0c0h 14668 14630 ; or al, al ; 0a c0 14669 jne short 09 a05h ; 75 f814631 jne short 0998eh ; 75 f8 14670 14632 lea sp, [bp-002h] ; 8d 66 fe 14671 14633 pop bx ; 5b 14672 14634 pop bp ; 5d 14673 14635 retn ; c3 14674 push dx ; 52 14675 call far 09a64h:09adah ; 9a da 9a 64 9a 14676 jnle short 099b5h ; 7f 9a 14677 ficomp dword [bp+si-06556h] ; da 9a aa 9a 14678 ficomp dword [bp+si-06520h] ; da 9a e0 9a 14679 scasw ; af 14680 call far 09aafh:09aafh ; 9a af 9a af 9a 14681 pop DS ; 1f 14682 wait ; 9b 14683 scasw ; af 14684 call far 09b18h:09aafh ; 9a af 9a 18 9b 14685 _apm_function: ; 0xf9a31 LB 0xf3 14636 fistp dword [bx+di-0659dh] ; db 99 63 9a 14637 in ax, DX ; ed 14638 cwd ; 99 14639 or byte [bp+si-0659dh], bl ; 08 9a 63 9a 14640 xor bx, word [bp+si-0659dh] ; 33 9a 63 9a 14641 imul bx, word [bp+si-065c8h], 09a38h ; 69 9a 38 9a 38 9a 14642 cmp byte [bp+si-06558h], bl ; 38 9a a8 9a 14643 cmp byte [bp+si-065c8h], bl ; 38 9a 38 9a 14644 db 0a1h 14645 db 09ah 14646 _apm_function: ; 0xf99ba LB 0xf3 14686 14647 push bp ; 55 14687 14648 mov bp, sp ; 89 e5 … … 14691 14652 xor ah, ah ; 30 e4 14692 14653 cmp ax, strict word 0000eh ; 3d 0e 00 14693 jnbe short 09a afh ; 77 6c14654 jnbe short 09a38h ; 77 6c 14694 14655 mov bx, ax ; 89 c3 14695 14656 add bx, ax ; 01 c3 14696 14657 mov dx, word [bp+018h] ; 8b 56 18 14697 14658 or dl, 001h ; 80 ca 01 14698 jmp word [cs:bx-06 5edh] ; 2e ff a7 13 9a14659 jmp word [cs:bx-06664h] ; 2e ff a7 9c 99 14699 14660 mov word [bp+012h], 00102h ; c7 46 12 02 01 14700 14661 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 14701 14662 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 14702 jmp near 09a dah ; e9 76 0014663 jmp near 09a63h ; e9 76 00 14703 14664 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14704 mov word [bp+00ch], 0a0 b4h ; c7 46 0c b4 a014665 mov word [bp+00ch], 0a034h ; c7 46 0c 34 a0 14705 14666 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 14706 14667 mov ax, strict word 0fff0h ; b8 f0 ff 14707 14668 mov word [bp+006h], ax ; 89 46 06 14708 14669 mov word [bp+004h], ax ; 89 46 04 14709 jmp near 09a dah ; e9 5b 0014670 jmp near 09a63h ; e9 5b 00 14710 14671 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14711 14672 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 14720 14681 mov si, ax ; 89 c6 14721 14682 sal esi, 010h ; 66 c1 e6 10 14722 jmp near 09a dah ; e9 30 0014683 jmp near 09a63h ; e9 30 00 14723 14684 sti ; fb 14724 14685 hlt ; f4 14725 jmp near 09a dah ; e9 2b 0014686 jmp near 09a63h ; e9 2b 00 14726 14687 mov bx, 00da0h ; bb a0 0d 14727 14688 mov cx, ds ; 8c d9 14728 14689 mov ax, strict word 00004h ; b8 04 00 14729 call 01923h ; e8 697e14690 call 01923h ; e8 e0 7e 14730 14691 push word [bp+00ch] ; ff 76 0c 14731 14692 push word [bp+012h] ; ff 76 12 14732 14693 push 00d29h ; 68 29 0d 14733 14694 push strict byte 00004h ; 6a 04 14734 call 01966h ; e8 9e 7e14695 call 01966h ; e8 15 7f 14735 14696 add sp, strict byte 00008h ; 83 c4 08 14736 14697 mov ax, word [bp+012h] ; 8b 46 12 … … 14744 14705 retn ; c3 14745 14706 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 14746 je short 09 b05h ; 74 1f14707 je short 09a8eh ; 74 1f 14747 14708 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 14748 je short 09a fdh ; 74 1114709 je short 09a86h ; 74 11 14749 14710 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 14750 jne short 09 b0dh ; 75 1b14711 jne short 09a96h ; 75 1b 14751 14712 mov dx, 08900h ; ba 00 89 14752 14713 mov ax, 00d10h ; b8 10 0d 14753 call 099 f8h ; e8 fd fe14754 jmp short 09a dah ; eb dd14714 call 09981h ; e8 fd fe 14715 jmp short 09a63h ; eb dd 14755 14716 mov dx, 08900h ; ba 00 89 14756 14717 mov ax, 00d18h ; b8 18 0d 14757 jmp short 09a f8h ; eb f314718 jmp short 09a81h ; eb f3 14758 14719 mov dx, 08900h ; ba 00 89 14759 14720 mov ax, 00d20h ; b8 20 0d 14760 jmp short 09a f8h ; eb eb14721 jmp short 09a81h ; eb eb 14761 14722 or ah, 00ah ; 80 cc 0a 14762 14723 mov word [bp+012h], ax ; 89 46 12 14763 14724 mov word [bp+018h], dx ; 89 56 18 14764 jmp short 09a dah ; eb c214725 jmp short 09a63h ; eb c2 14765 14726 mov word [bp+012h], 00102h ; c7 46 12 02 01 14766 jmp short 09a dah ; eb bb14727 jmp short 09a63h ; eb bb 14767 14728 or ah, 080h ; 80 cc 80 14768 jmp short 09 b10h ; eb ec14769 pci16_select_reg_: ; 0xf9 b24LB 0x2414729 jmp short 09a99h ; eb ec 14730 pci16_select_reg_: ; 0xf9aad LB 0x24 14770 14731 push bp ; 55 14771 14732 mov bp, sp ; 89 e5 … … 14784 14745 pop bp ; 5d 14785 14746 retn ; c3 14786 pci16_find_device_: ; 0xf9 b48LB 0xf914747 pci16_find_device_: ; 0xf9ad1 LB 0xf9 14787 14748 push bp ; 55 14788 14749 mov bp, sp ; 89 e5 … … 14798 14759 mov byte [bp-008h], 000h ; c6 46 f8 00 14799 14760 test bl, 007h ; f6 c3 07 14800 jne short 09b 90h ; 75 2d14761 jne short 09b19h ; 75 2d 14801 14762 mov dx, strict word 0000eh ; ba 0e 00 14802 14763 mov ax, bx ; 89 d8 14803 call 09 b24h ; e8 b9 ff14764 call 09aadh ; e8 b9 ff 14804 14765 mov dx, 00cfeh ; ba fe 0c 14805 14766 in AL, DX ; ec … … 14808 14769 mov byte [bp-006h], al ; 88 46 fa 14809 14770 cmp AL, strict byte 0ffh ; 3c ff 14810 jne short 09b 7eh ; 75 0614771 jne short 09b07h ; 75 06 14811 14772 add bx, strict byte 00008h ; 83 c3 08 14812 jmp near 09 c11h ; e9 93 0014773 jmp near 09b9ah ; e9 93 00 14813 14774 test byte [bp-006h], 080h ; f6 46 fa 80 14814 je short 09b 8bh ; 74 0714775 je short 09b14h ; 74 07 14815 14776 mov word [bp-010h], strict word 00001h ; c7 46 f0 01 00 14816 jmp short 09b 90h ; eb 0514777 jmp short 09b19h ; eb 05 14817 14778 mov word [bp-010h], strict word 00008h ; c7 46 f0 08 00 14818 14779 mov al, byte [bp-006h] ; 8a 46 fa 14819 14780 and AL, strict byte 007h ; 24 07 14820 14781 cmp AL, strict byte 001h ; 3c 01 14821 jne short 09b b8h ; 75 1f14782 jne short 09b41h ; 75 1f 14822 14783 mov ax, bx ; 89 d8 14823 14784 shr ax, 008h ; c1 e8 08 14824 14785 test ax, ax ; 85 c0 14825 jne short 09b b8h ; 75 1614786 jne short 09b41h ; 75 16 14826 14787 mov dx, strict word 0001ah ; ba 1a 00 14827 14788 mov ax, bx ; 89 d8 14828 call 09 b24h ; e8 7a ff14789 call 09aadh ; e8 7a ff 14829 14790 mov dx, 00cfeh ; ba fe 0c 14830 14791 in AL, DX ; ec … … 14832 14793 ; sub ah, ah ; 2a e4 14833 14794 cmp al, byte [bp-008h] ; 3a 46 f8 14834 jbe short 09b b8h ; 76 0314795 jbe short 09b41h ; 76 03 14835 14796 mov byte [bp-008h], al ; 88 46 f8 14836 14797 test di, di ; 85 ff 14837 je short 09b c1h ; 74 0514798 je short 09b4ah ; 74 05 14838 14799 mov dx, strict word 00008h ; ba 08 00 14839 jmp short 09b c3h ; eb 0214800 jmp short 09b4ch ; eb 02 14840 14801 xor dx, dx ; 31 d2 14841 14802 mov ax, bx ; 89 d8 14842 call 09 b24h ; e8 5c ff14803 call 09aadh ; e8 5c ff 14843 14804 mov dx, 00cfch ; ba fc 0c 14844 14805 in eax, DX ; 66 ed … … 14851 14812 mov word [bp-00eh], strict word 00000h ; c7 46 f2 00 00 14852 14813 test di, di ; 85 ff 14853 je short 09b f2h ; 74 0f14814 je short 09b7bh ; 74 0f 14854 14815 mov cx, strict word 00008h ; b9 08 00 14855 14816 shr dx, 1 ; d1 ea 14856 14817 rcr ax, 1 ; d1 d8 14857 loop 09b e6h ; e2 fa14818 loop 09b6fh ; e2 fa 14858 14819 mov word [bp-00ah], ax ; 89 46 f6 14859 14820 mov word [bp-00ch], dx ; 89 56 f4 14860 14821 mov ax, word [bp-00ch] ; 8b 46 f4 14861 14822 cmp ax, word [bp-014h] ; 3b 46 ec 14862 jne short 09 c02h ; 75 0814823 jne short 09b8bh ; 75 08 14863 14824 mov ax, word [bp-00ah] ; 8b 46 f6 14864 14825 cmp ax, word [bp-012h] ; 3b 46 ee 14865 je short 09 c08h ; 74 0614826 je short 09b91h ; 74 06 14866 14827 cmp word [bp-00eh], strict byte 00000h ; 83 7e f2 00 14867 je short 09 c0eh ; 74 0614828 je short 09b97h ; 74 06 14868 14829 dec si ; 4e 14869 14830 cmp si, strict byte 0ffffh ; 83 fe ff 14870 je short 09 c22h ; 74 1414831 je short 09babh ; 74 14 14871 14832 add bx, word [bp-010h] ; 03 5e f0 14872 14833 mov dx, bx ; 89 da … … 14875 14836 xor ah, ah ; 30 e4 14876 14837 cmp dx, ax ; 39 c2 14877 jnbe short 09 c22h ; 77 0314878 jmp near 09 b5eh ; e9 3c ff14838 jnbe short 09babh ; 77 03 14839 jmp near 09ae7h ; e9 3c ff 14879 14840 cmp si, strict byte 0ffffh ; 83 fe ff 14880 jne short 09 c2bh ; 75 0414841 jne short 09bb4h ; 75 04 14881 14842 mov ax, bx ; 89 d8 14882 jmp short 09 c2eh ; eb 0314843 jmp short 09bb7h ; eb 03 14883 14844 mov ax, strict word 0ffffh ; b8 ff ff 14884 14845 lea sp, [bp-004h] ; 8d 66 fc … … 14887 14848 pop bp ; 5d 14888 14849 retn ; c3 14889 and bl, byte [di-062c5h] ; 22 9d 3b 9d 14890 dec bp ; 4d 14850 stosw ; ab 14851 pushfw ; 9c 14852 les bx, [si-0632ah] ; c4 9c d6 9c 14853 jmp far 00f9ch:0fc9ch ; ea 9c fc 9c 0f 14891 14854 popfw ; 9d 14892 popaw ; 61 14893 popfw ; 9d 14894 jnc short 09bdch ; 73 9d 14895 db 086h 14896 popfw ; 9d 14897 _pci16_function: ; 0xf9c41 LB 0x1d2 14855 _pci16_function: ; 0xf9bca LB 0x1d2 14898 14856 push bp ; 55 14899 14857 mov bp, sp ; 89 e5 … … 14909 14867 xor ah, ah ; 30 e4 14910 14868 cmp bx, strict byte 00003h ; 83 fb 03 14911 jc short 09 c73h ; 72 1314912 jbe short 09c c6h ; 76 6414869 jc short 09bfch ; 72 13 14870 jbe short 09c4fh ; 76 64 14913 14871 cmp bx, strict byte 0000eh ; 83 fb 0e 14914 je short 09c ceh ; 74 6714872 je short 09c57h ; 74 67 14915 14873 cmp bx, strict byte 00008h ; 83 fb 08 14916 jc short 09c 7dh ; 72 1114874 jc short 09c06h ; 72 11 14917 14875 cmp bx, strict byte 0000dh ; 83 fb 0d 14918 jbe short 09c d1h ; 76 6014919 jmp short 09c 7dh ; eb 0a14876 jbe short 09c5ah ; 76 60 14877 jmp short 09c06h ; eb 0a 14920 14878 cmp bx, strict byte 00002h ; 83 fb 02 14921 je short 09c 9ch ; 74 2414879 je short 09c25h ; 74 24 14922 14880 cmp bx, strict byte 00001h ; 83 fb 01 14923 je short 09c 80h ; 74 0314924 jmp near 09d dfh ; e9 5f 0114881 je short 09c09h ; 74 03 14882 jmp near 09d68h ; e9 5f 01 14925 14883 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 14926 14884 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 14928 14886 mov word [bp+018h], 04350h ; c7 46 18 50 43 14929 14887 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 14930 jmp near 09 e0ch ; e9 70 0114888 jmp near 09d95h ; e9 70 01 14931 14889 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 14932 jne short 09c a8h ; 75 0614890 jne short 09c31h ; 75 06 14933 14891 or ah, 083h ; 80 cc 83 14934 jmp near 09 e05h ; e9 5d 0114892 jmp near 09d8eh ; e9 5d 01 14935 14893 mov bx, word [bp+008h] ; 8b 5e 08 14936 14894 mov dx, word [bp+01ch] ; 8b 56 1c 14937 14895 mov ax, word [bp+018h] ; 8b 46 18 14938 14896 xor cx, cx ; 31 c9 14939 call 09 b48h ; e8 92 fe14897 call 09ad1h ; e8 92 fe 14940 14898 cmp ax, strict word 0ffffh ; 3d ff ff 14941 jne short 09c c8h ; 75 0d14899 jne short 09c51h ; 75 0d 14942 14900 mov ax, word [bp+020h] ; 8b 46 20 14943 14901 xor ah, ah ; 30 e4 14944 14902 or ah, 086h ; 80 cc 86 14945 jmp near 09 e05h ; e9 3f 0114946 jmp short 09c d3h ; eb 0b14903 jmp near 09d8eh ; e9 3f 01 14904 jmp short 09c5ch ; eb 0b 14947 14905 mov word [bp+014h], ax ; 89 46 14 14948 jmp near 09 e0ch ; e9 3e 0114949 jmp near 09d 9ah ; e9 c9 0014950 jmp short 09c f8h ; eb 2514906 jmp near 09d95h ; e9 3e 01 14907 jmp near 09d23h ; e9 c9 00 14908 jmp short 09c81h ; eb 25 14951 14909 mov bx, word [bp+008h] ; 8b 5e 08 14952 14910 mov ax, word [bp+01ch] ; 8b 46 1c 14953 14911 mov dx, word [bp+01eh] ; 8b 56 1e 14954 14912 mov cx, strict word 00001h ; b9 01 00 14955 call 09 b48h ; e8 66 fe14913 call 09ad1h ; e8 66 fe 14956 14914 cmp ax, strict word 0ffffh ; 3d ff ff 14957 jne short 09c f2h ; 75 0b14915 jne short 09c7bh ; 75 0b 14958 14916 mov ax, word [bp+020h] ; 8b 46 20 14959 14917 xor ah, ah ; 30 e4 14960 14918 or ah, 086h ; 80 cc 86 14961 jmp near 09 e05h ; e9 13 0114919 jmp near 09d8eh ; e9 13 01 14962 14920 mov word [bp+014h], ax ; 89 46 14 14963 jmp near 09 e0ch ; e9 14 0114921 jmp near 09d95h ; e9 14 01 14964 14922 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 14965 jc short 09 d05h ; 72 0614923 jc short 09c8eh ; 72 06 14966 14924 or ah, 087h ; 80 cc 87 14967 jmp near 09 e05h ; e9 00 0114925 jmp near 09d8eh ; e9 00 01 14968 14926 mov dx, word [bp+004h] ; 8b 56 04 14969 14927 mov ax, word [bp+014h] ; 8b 46 14 14970 call 09 b24h ; e8 16 fe14928 call 09aadh ; e8 16 fe 14971 14929 mov bx, word [bp+020h] ; 8b 5e 20 14972 14930 xor bh, bh ; 30 ff 14973 14931 sub bx, strict byte 00008h ; 83 eb 08 14974 14932 cmp bx, strict byte 00005h ; 83 fb 05 14975 jnbe short 09d 83h ; 77 6814933 jnbe short 09d0ch ; 77 68 14976 14934 add bx, bx ; 01 db 14977 jmp word [cs:bx-06 3cbh] ; 2e ff a7 35 9c14935 jmp word [cs:bx-06442h] ; 2e ff a7 be 9b 14978 14936 mov bx, word [bp+01ch] ; 8b 5e 1c 14979 14937 xor bl, bl ; 30 db … … 14986 14944 or bx, ax ; 09 c3 14987 14945 mov word [bp+01ch], bx ; 89 5e 1c 14988 jmp short 09d 83h ; eb 4814946 jmp short 09d0ch ; eb 48 14989 14947 mov dx, word [bp+004h] ; 8b 56 04 14990 14948 xor dh, dh ; 30 f6 … … 14993 14951 in ax, DX ; ed 14994 14952 mov word [bp+01ch], ax ; 89 46 1c 14995 jmp short 09d 83h ; eb 3614953 jmp short 09d0ch ; eb 36 14996 14954 mov dx, 00cfch ; ba fc 0c 14997 14955 in eax, DX ; 66 ed … … 15002 14960 mov word [bp+01ch], ax ; 89 46 1c 15003 14961 mov word [bp+01eh], dx ; 89 56 1e 15004 jmp short 09d 83h ; eb 2214962 jmp short 09d0ch ; eb 22 15005 14963 mov ax, word [bp+01ch] ; 8b 46 1c 15006 14964 mov dx, word [bp+004h] ; 8b 56 04 … … 15009 14967 add dx, 00cfch ; 81 c2 fc 0c 15010 14968 out DX, AL ; ee 15011 jmp short 09d 83h ; eb 1014969 jmp short 09d0ch ; eb 10 15012 14970 mov ax, word [bp+01ch] ; 8b 46 1c 15013 14971 mov dx, word [bp+004h] ; 8b 56 04 … … 15016 14974 add dx, 00cfch ; 81 c2 fc 0c 15017 14975 out DX, ax ; ef 15018 jmp near 09 e0ch ; e9 86 0014976 jmp near 09d95h ; e9 86 00 15019 14977 mov ax, word [bp+01ch] ; 8b 46 1c 15020 14978 mov cx, word [bp+01eh] ; 8b 4e 1e … … 15025 14983 ; mov ax, cx ; 8b c1 15026 14984 out DX, eax ; 66 ef 15027 jmp short 09 e0ch ; eb 7214985 jmp short 09d95h ; eb 72 15028 14986 mov bx, word [bp+004h] ; 8b 5e 04 15029 14987 mov es, [bp+026h] ; 8e 46 26 … … 15032 14990 mov cx, word [0f4a0h] ; 8b 0e a0 f4 15033 14991 cmp cx, word [es:bx] ; 26 3b 0f 15034 jbe short 09d c0h ; 76 1114992 jbe short 09d49h ; 76 11 15035 14993 mov ax, word [bp+020h] ; 8b 46 20 15036 14994 xor ah, ah ; 30 e4 … … 15038 14996 mov word [bp+020h], ax ; 89 46 20 15039 14997 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 15040 jmp short 09d d4h ; eb 1414998 jmp short 09d5dh ; eb 14 15041 14999 les di, [es:bx+002h] ; 26 c4 7f 02 15042 15000 mov si, 0f2c0h ; be c0 f2 … … 15050 15008 les bx, [bp-008h] ; c4 5e f8 15051 15009 mov word [es:bx], ax ; 26 89 07 15052 jmp short 09 e0ch ; eb 2d15010 jmp short 09d95h ; eb 2d 15053 15011 mov bx, 00da0h ; bb a0 0d 15054 15012 mov cx, ds ; 8c d9 15055 15013 mov ax, strict word 00004h ; b8 04 00 15056 call 01923h ; e8 397b15014 call 01923h ; e8 b0 7b 15057 15015 mov ax, word [bp+014h] ; 8b 46 14 15058 15016 push ax ; 50 … … 15061 15019 push 00d5ch ; 68 5c 0d 15062 15020 push strict byte 00004h ; 6a 04 15063 call 01966h ; e8 6c7b15021 call 01966h ; e8 e3 7b 15064 15022 add sp, strict byte 00008h ; 83 c4 08 15065 15023 mov ax, word [bp+020h] ; 8b 46 20 … … 15073 15031 pop bp ; 5d 15074 15032 retn ; c3 15075 pci_find_classcode_: ; 0xf9 e13 LB 0x2b15033 pci_find_classcode_: ; 0xf9d9c LB 0x8 15076 15034 push bp ; 55 15077 15035 mov bp, sp ; 89 e5 15078 push bx ; 53 15079 push cx ; 51 15080 push si ; 56 15081 mov cx, dx ; 89 d1 15082 xor si, si ; 31 f6 15083 mov dx, ax ; 89 c2 15084 mov ax, 0b103h ; b8 03 b1 15085 sal ecx, 010h ; 66 c1 e1 10 15086 db 08bh, 0cah 15087 ; mov cx, dx ; 8b ca 15088 int 01ah ; cd 1a 15089 cmp ah, 000h ; 80 fc 00 15090 je near 09e34h ; 0f 84 03 00 15091 mov bx, strict word 0ffffh ; bb ff ff 15092 mov ax, bx ; 89 d8 15093 lea sp, [bp-006h] ; 8d 66 fa 15094 pop si ; 5e 15095 pop cx ; 59 15096 pop bx ; 5b 15036 mov ax, strict word 0ffffh ; b8 ff ff 15097 15037 pop bp ; 5d 15098 15038 retn ; c3 15099 pci_read_config_byte_: ; 0xf9 e3eLB 0x2e15039 pci_read_config_byte_: ; 0xf9da4 LB 0x2e 15100 15040 push bp ; 55 15101 15041 mov bp, sp ; 89 e5 … … 15123 15063 pop bp ; 5d 15124 15064 retn ; c3 15125 pci_read_config_word_: ; 0xf9 e6cLB 0x2a15065 pci_read_config_word_: ; 0xf9dd2 LB 0x2a 15126 15066 push bp ; 55 15127 15067 mov bp, sp ; 89 e5 … … 15147 15087 pop bp ; 5d 15148 15088 retn ; c3 15149 pci_read_config_dword_: ; 0xf9 e96 LB 0x3015089 pci_read_config_dword_: ; 0xf9dfc LB 0x4e 15150 15090 push bp ; 55 15151 15091 mov bp, sp ; 89 e5 15152 15092 push cx ; 51 15153 15093 push di ; 57 15094 push ax ; 50 15154 15095 mov dh, al ; 88 c6 15155 mov bh, dl ; 88 d7 15096 mov cl, dl ; 88 d1 15097 mov byte [bp-006h], bl ; 88 5e fa 15156 15098 mov al, bl ; 88 d8 15157 15099 xor ah, ah ; 30 e4 15158 15100 mov dl, dh ; 88 f2 15159 15101 xor dh, dh ; 30 f6 15160 sal dx, 008h ; c1 e2 0815161 mov bl, bh ; 88 fb15162 xor bh, bh ; 30 ff15163 or bx, dx ; 09 d315102 mov di, dx ; 89 d7 15103 sal di, 008h ; c1 e7 08 15104 mov dl, cl ; 88 ca 15105 or dx, di ; 09 fa 15164 15106 mov di, ax ; 89 c7 15165 mov ax, 0b10ah ; b8 0a b1 15107 mov bx, dx ; 89 d3 15108 mov ax, 0b109h ; b8 09 b1 15166 15109 int 01ah ; cd 1a 15167 db 08bh, 0c1h 15168 ; mov ax, cx ; 8b c1 15169 shr ecx, 010h ; 66 c1 e9 10 15170 mov dx, cx ; 89 ca 15110 test cx, cx ; 85 c9 15111 jne short 09e3bh ; 75 14 15112 mov al, byte [bp-006h] ; 8a 46 fa 15113 xor ah, ah ; 30 e4 15114 mov di, ax ; 89 c7 15115 inc di ; 47 15116 inc di ; 47 15117 mov bx, dx ; 89 d3 15118 mov ax, 0b109h ; b8 09 b1 15119 int 01ah ; cd 1a 15120 test cx, cx ; 85 c9 15121 je short 09e40h ; 74 05 15122 mov ax, strict word 00001h ; b8 01 00 15123 jmp short 09e42h ; eb 02 15124 xor ax, ax ; 31 c0 15125 cwd ; 99 15171 15126 lea sp, [bp-004h] ; 8d 66 fc 15172 15127 pop di ; 5f … … 15174 15129 pop bp ; 5d 15175 15130 retn ; c3 15176 vds_is_present_: ; 0xf9e c6LB 0x1d15131 vds_is_present_: ; 0xf9e4a LB 0x1d 15177 15132 push bx ; 53 15178 15133 push bp ; 55 … … 15182 15137 mov es, ax ; 8e c0 15183 15138 test byte [es:bx], 020h ; 26 f6 07 20 15184 je short 09e deh ; 74 0615139 je short 09e62h ; 74 06 15185 15140 mov ax, strict word 00001h ; b8 01 00 15186 15141 pop bp ; 5d … … 15191 15146 pop bx ; 5b 15192 15147 retn ; c3 15193 vds_real_to_lin_: ; 0xf9e e3LB 0x1e15148 vds_real_to_lin_: ; 0xf9e67 LB 0x1e 15194 15149 push bx ; 53 15195 15150 push cx ; 51 … … 15202 15157 sal ax, 1 ; d1 e0 15203 15158 rcl dx, 1 ; d1 d2 15204 loop 09e f1h ; e2 fa15159 loop 09e75h ; e2 fa 15205 15160 xor cx, cx ; 31 c9 15206 15161 add ax, bx ; 01 d8 … … 15210 15165 pop bx ; 5b 15211 15166 retn ; c3 15212 vds_build_sg_list_: ; 0xf9 f01LB 0x7715167 vds_build_sg_list_: ; 0xf9e85 LB 0x77 15213 15168 push bp ; 55 15214 15169 mov bp, sp ; 89 e5 … … 15224 15179 mov bx, word [bp+006h] ; 8b 5e 06 15225 15180 mov word [es:di+002h], bx ; 26 89 5d 02 15226 call 09e e3h ; e8 c3 ff15181 call 09e67h ; e8 c3 ff 15227 15182 mov es, si ; 8e c6 15228 15183 mov word [es:di+004h], ax ; 26 89 45 04 15229 15184 mov word [es:di+006h], dx ; 26 89 55 06 15230 15185 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15231 call 09e c6h ; e8 93 ff15186 call 09e4ah ; e8 93 ff 15232 15187 test ax, ax ; 85 c0 15233 je short 09 f48h ; 74 1115188 je short 09ecch ; 74 11 15234 15189 mov es, si ; 8e c6 15235 15190 mov ax, 08105h ; b8 05 81 15236 15191 mov dx, strict word 00000h ; ba 00 00 15237 15192 int 04bh ; cd 4b 15238 jc short 09 f45h ; 72 0215193 jc short 09ec9h ; 72 02 15239 15194 db 032h, 0c0h 15240 15195 ; xor al, al ; 32 c0 15241 15196 cbw ; 98 15242 jmp short 09 f6fh ; eb 2715197 jmp short 09ef3h ; eb 27 15243 15198 mov es, si ; 8e c6 15244 15199 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15257 15212 pop bp ; 5d 15258 15213 retn 00004h ; c2 04 00 15259 vds_free_sg_list_: ; 0xf9 f78 LB 0x3815214 vds_free_sg_list_: ; 0xf9efc LB 0x34 15260 15215 push bp ; 55 15261 15216 mov bp, sp ; 89 e5 … … 15263 15218 push di ; 57 15264 15219 mov bx, ax ; 89 c3 15265 call 09e c6h ; e8 44 ff15220 call 09e4ah ; e8 44 ff 15266 15221 test ax, ax ; 85 c0 15267 je short 09f 97h ; 74 1115222 je short 09f1bh ; 74 11 15268 15223 mov di, bx ; 89 df 15269 15224 mov es, dx ; 8e c2 … … 15271 15226 mov dx, strict word 00000h ; ba 00 00 15272 15227 int 04bh ; cd 4b 15273 jc short 09f 96h ; 72 0215228 jc short 09f1ah ; 72 02 15274 15229 db 032h, 0c0h 15275 15230 ; xor al, al ; 32 c0 … … 15282 15237 pop bp ; 5d 15283 15238 retn ; c3 15284 times 0x adb 015285 __U4D: ; 0xf9f b0 LB 0x3915239 times 0x6 db 0 15240 __U4D: ; 0xf9f30 LB 0x39 15286 15241 pushfw ; 9c 15287 15242 push eax ; 66 50 … … 15313 15268 popfw ; 9d 15314 15269 retn ; c3 15315 __U4M: ; 0xf9f e9 LB 0x3115270 __U4M: ; 0xf9f69 LB 0x31 15316 15271 pushfw ; 9c 15317 15272 push eax ; 66 50 … … 15338 15293 popfw ; 9d 15339 15294 retn ; c3 15340 __U8LS: ; 0xf a01a LB 0x1015295 __U8LS: ; 0xf9f9a LB 0x10 15341 15296 test si, si ; 85 f6 15342 je short 0 a029h ; 74 0b15297 je short 09fa9h ; 74 0b 15343 15298 sal dx, 1 ; d1 e2 15344 15299 rcl cx, 1 ; d1 d1 … … 15346 15301 rcl ax, 1 ; d1 d0 15347 15302 dec si ; 4e 15348 jne short 0 a01eh ; 75 f515303 jne short 09f9eh ; 75 f5 15349 15304 retn ; c3 15350 __U8RS: ; 0xf a02a LB 0x1015305 __U8RS: ; 0xf9faa LB 0x10 15351 15306 test si, si ; 85 f6 15352 je short 0 a039h ; 74 0b15307 je short 09fb9h ; 74 0b 15353 15308 shr ax, 1 ; d1 e8 15354 15309 rcr bx, 1 ; d1 db … … 15356 15311 rcr dx, 1 ; d1 da 15357 15312 dec si ; 4e 15358 jne short 0 a02eh ; 75 f515313 jne short 09faeh ; 75 f5 15359 15314 retn ; c3 15360 _fmemset_: ; 0xf a03a LB 0xd15315 _fmemset_: ; 0xf9fba LB 0xd 15361 15316 push di ; 57 15362 15317 mov es, dx ; 8e c2 … … 15368 15323 pop di ; 5f 15369 15324 retn ; c3 15370 _fmemcpy_: ; 0xf a047 LB 0x3315325 _fmemcpy_: ; 0xf9fc7 LB 0x33 15371 15326 push bp ; 55 15372 15327 db 08bh, 0ech … … 15388 15343 leave ; c9 15389 15344 retn ; c3 15390 add byte [bx+si-06d60h], dl ; 00 90 a0 92 15391 mov AL, byte [0a096h] ; a0 96 a0 15392 xchg si, ax ; 96 15393 mov AL, byte [0a096h] ; a0 96 a0 15394 cbw ; 98 15395 mov AL, byte [0a098h] ; a0 98 a0 15396 call far 09ea0h:09ea0h ; 9a a0 9e a0 9e 15397 mov AL, byte [0a0a0h] ; a0 a0 a0 15398 movsw ; a5 15399 mov AL, byte [0a0a7h] ; a0 a7 a0 15400 apm_worker: ; 0xfa07a LB 0x3a 15345 add byte [bx+si], dl ; 00 10 15346 mov AL, byte [0a012h] ; a0 12 a0 15347 push SS ; 16 15348 mov AL, byte [0a016h] ; a0 16 a0 15349 push SS ; 16 15350 mov AL, byte [0a018h] ; a0 18 a0 15351 sbb byte [bx+si-05fe6h], ah ; 18 a0 1a a0 15352 push DS ; 1e 15353 mov AL, byte [0a01eh] ; a0 1e a0 15354 and byte [bx+si-05fdbh], ah ; 20 a0 25 a0 15355 daa ; 27 15356 db 0a0h 15357 apm_worker: ; 0xf9ffa LB 0x3a 15401 15358 sti ; fb 15402 15359 push ax ; 50 … … 15410 15367 pop ax ; 58 15411 15368 mov AH, strict byte 053h ; b4 53 15412 jnc short 0a0 b0h ; 73 2515413 jmp word [cs:bp-0 5fa0h] ; 2e ff a6 60 a015414 jmp short 0a0 aeh ; eb 1c15369 jnc short 0a030h ; 73 25 15370 jmp word [cs:bp-06020h] ; 2e ff a6 e0 9f 15371 jmp short 0a02eh ; eb 1c 15415 15372 sti ; fb 15416 15373 hlt ; f4 15417 jmp short 0a0 aeh ; eb 1815418 jmp short 0a0 aeh ; eb 1615419 jmp short 0a0 b0h ; eb 1615374 jmp short 0a02eh ; eb 18 15375 jmp short 0a02eh ; eb 16 15376 jmp short 0a030h ; eb 16 15420 15377 mov AH, strict byte 080h ; b4 80 15421 jmp short 0a0 b2h ; eb 1415422 jmp short 0a0 b0h ; eb 1015378 jmp short 0a032h ; eb 14 15379 jmp short 0a030h ; eb 10 15423 15380 mov ax, 00102h ; b8 02 01 15424 jmp short 0a0 aeh ; eb 0915425 jmp short 0a0 aeh ; eb 0715381 jmp short 0a02eh ; eb 09 15382 jmp short 0a02eh ; eb 07 15426 15383 mov BL, strict byte 000h ; b3 00 15427 15384 mov cx, strict word 00000h ; b9 00 00 15428 jmp short 0a0 aeh ; eb 0015385 jmp short 0a02eh ; eb 00 15429 15386 clc ; f8 15430 15387 retn ; c3 … … 15432 15389 stc ; f9 15433 15390 retn ; c3 15434 apm_pm16_entry: ; 0xfa0 b4 LB 0x1115391 apm_pm16_entry: ; 0xfa034 LB 0x11 15435 15392 mov AH, strict byte 002h ; b4 02 15436 15393 push DS ; 1e … … 15440 15397 add bp, strict byte 00008h ; 83 c5 08 15441 15398 mov ds, bp ; 8e dd 15442 call 0 a07ah ; e8 b8 ff15399 call 09ffah ; e8 b8 ff 15443 15400 pop bp ; 5d 15444 15401 pop DS ; 1f 15445 15402 retf ; cb 15446 15403 15447 ; Padding 0x39 3b bytes at 0xfa0c515448 times 14 651db 015404 ; Padding 0x39bb bytes at 0xfa045 15405 times 14779 db 0 15449 15406 15450 15407 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 15493 15450 add bp, strict byte 00008h ; 83 c5 08 15494 15451 push ebp ; 66 55 15495 mov bp, 0a0 b6h ; bd b6 a015452 mov bp, 0a036h ; bd 36 a0 15496 15453 add byte [bx+si], al ; 00 00 15497 15454 push ebp ; 66 55 … … 15881 15838 15882 15839 section BIOSSEG progbits vstart=0xe000 align=1 ; size=0x2000 class=CODE group=AUTO 15883 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h 15884 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h15885 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 058h, 04dh15840 biosorg_check_before_or_at_0E02Eh: ; 0xfe000 LB 0x30 15841 times 0x2e db 0 15842 db 'XM' 15886 15843 eoi_both_pics: ; 0xfe030 LB 0x4 15887 15844 mov AL, strict byte 020h ; b0 20 … … 15897 15854 loop 0e039h ; e2 f6 15898 15855 retn ; c3 15899 eoi_jmp_post: ; 0xfe044 LB 0x 1715856 eoi_jmp_post: ; 0xfe044 LB 0x3 15900 15857 call 0e030h ; e8 e9 ff 15858 no_eoi_jmp_post: ; 0xfe047 LB 0x8 15901 15859 db 033h, 0c0h 15902 15860 ; xor ax, ax ; 33 c0 15903 15861 mov ds, ax ; 8e d8 15904 15862 jmp far [00467h] ; ff 2e 67 04 15905 times 0xa db 0 15863 seg_40_value: ; 0xfe04f LB 0x2 15864 inc ax ; 40 15865 times 0x1 db 0 15866 biosorg_check_before_or_at_0E059h: ; 0xfe051 LB 0xa 15867 times 0x8 db 0 15906 15868 db 'XM' 15907 post: ; 0xfe05b LB 0x6 915869 post: ; 0xfe05b LB 0x6b 15908 15870 cli ; fa 15909 15871 smsw ax ; 0f 01 e0 … … 15919 15881 in AL, strict byte 064h ; e4 64 15920 15882 test AL, strict byte 004h ; a8 04 15921 je short 0e08 9h ; 74 1115883 je short 0e08bh ; 74 13 15922 15884 db 08ah, 0c4h 15923 15885 ; mov al, ah ; 8a c4 15924 15886 db 00ah, 0c0h 15925 15887 ; or al, al ; 0a c0 15926 jne short 0e089h ; 75 0b 15927 push strict byte 00040h ; 6a 40 15928 pop DS ; 1f 15888 jne short 0e08bh ; 75 0d 15889 mov ds, [cs:0e04fh] ; 2e 8e 1e 4f e0 15929 15890 cmp word [word 00072h], 01234h ; 81 3e 72 00 34 12 15930 jne short 0e064h ; 75 d b15891 jne short 0e064h ; 75 d9 15931 15892 mov AL, strict byte 00fh ; b0 0f 15932 15893 out strict byte 070h, AL ; e6 70 … … 15936 15897 ; mov al, ah ; 8a c4 15937 15898 cmp AL, strict byte 009h ; 3c 09 15938 je short 0e0a 9h ; 74 1215899 je short 0e0abh ; 74 12 15939 15900 cmp AL, strict byte 00ah ; 3c 0a 15940 je short 0e0a 9h ; 74 0e15901 je short 0e0abh ; 74 0e 15941 15902 db 032h, 0c0h 15942 15903 ; xor al, al ; 32 c0 … … 15950 15911 ; mov al, ah ; 8a c4 15951 15912 cmp AL, strict byte 000h ; 3c 00 15952 je short 0e0c 4h ; 74 1515913 je short 0e0c6h ; 74 15 15953 15914 cmp AL, strict byte 00dh ; 3c 0d 15954 jnc short 0e0c 4h ; 73 1115915 jnc short 0e0c6h ; 73 11 15955 15916 cmp AL, strict byte 009h ; 3c 09 15956 jne short 0e0b ah ; 75 0315957 jmp near 0e366h ; e9 a c0215917 jne short 0e0bch ; 75 03 15918 jmp near 0e366h ; e9 aa 02 15958 15919 cmp AL, strict byte 005h ; 3c 05 15959 je short 0e044h ; 74 8 615920 je short 0e044h ; 74 84 15960 15921 cmp AL, strict byte 00ah ; 3c 0a 15961 je short 0e047h ; 74 8 515962 jmp short 0e0c 4h ; eb 0015963 normal_post: ; 0xfe0c 4 LB 0x1ff15922 je short 0e047h ; 74 83 15923 jmp short 0e0c6h ; eb 00 15924 normal_post: ; 0xfe0c6 LB 0x1ed 15964 15925 mov ax, 07800h ; b8 00 78 15965 15926 db 08bh, 0e0h … … 15983 15944 add bx, 01000h ; 81 c3 00 10 15984 15945 cmp bx, 09000h ; 81 fb 00 90 15985 jnc short 0e0f 7h ; 73 0b15946 jnc short 0e0f9h ; 73 0b 15986 15947 mov es, bx ; 8e c3 15987 15948 db 033h, 0ffh … … 15989 15950 mov cx, 08000h ; b9 00 80 15990 15951 rep stosw ; f3 ab 15991 jmp short 0e0e 2h ; eb eb15952 jmp short 0e0e4h ; eb eb 15992 15953 mov es, bx ; 8e c3 15993 15954 db 033h, 0ffh … … 16000 15961 pop DS ; 1f 16001 15962 cld ; fc 16002 call 0176dh ; e8 6 53615963 call 0176dh ; e8 63 36 16003 15964 db 033h, 0dbh 16004 15965 ; xor bx, bx ; 33 db … … 16007 15968 mov ax, 0ff53h ; b8 53 ff 16008 15969 mov dx, 0f000h ; ba 00 f0 16009 call 0e039h ; e8 21ff15970 call 0e039h ; e8 1f ff 16010 15971 mov bx, 001a0h ; bb a0 01 16011 15972 mov cx, strict word 00010h ; b9 10 00 16012 call 0e039h ; e8 1 8ff15973 call 0e039h ; e8 16 ff 16013 15974 mov ax, 0027fh ; b8 7f 02 16014 15975 mov word [00413h], ax ; a3 13 04 … … 16045 16006 mov ax, 0f000h ; b8 00 f0 16046 16007 mov word [00072h], ax ; a3 72 00 16047 call 0e778h ; e8 e e0516008 call 0e778h ; e8 ec 05 16048 16009 mov ax, 0fe6eh ; b8 6e fe 16049 16010 mov word [00068h], ax ; a3 68 00 … … 16097 16058 mov ax, 0c000h ; b8 00 c0 16098 16059 mov dx, 0c800h ; ba 00 c8 16099 call 01600h ; e8 e c3316100 call 04e b2h ; e8 9b6c16060 call 01600h ; e8 ea 33 16061 call 04e57h ; e8 3e 6c 16101 16062 pop DS ; 1f 16102 16063 mov ax, 0ff53h ; b8 53 ff … … 16111 16072 mov CL, strict byte 014h ; b1 14 16112 16073 mov dx, 00378h ; ba 78 03 16113 call 0ecedh ; e8 b b0a16074 call 0ecedh ; e8 b9 0a 16114 16075 mov dx, 00278h ; ba 78 02 16115 call 0ecedh ; e8 b 50a16076 call 0ecedh ; e8 b3 0a 16116 16077 sal bx, 00eh ; c1 e3 0e 16117 16078 mov ax, word [00410h] ; a1 10 04 … … 16136 16097 mov CL, strict byte 00ah ; b1 0a 16137 16098 mov dx, 003f8h ; ba f8 03 16138 call 0ed0bh ; e8 9 70a16099 call 0ed0bh ; e8 95 0a 16139 16100 mov dx, 002f8h ; ba f8 02 16140 call 0ed0bh ; e8 910a16101 call 0ed0bh ; e8 8f 0a 16141 16102 mov dx, 003e8h ; ba e8 03 16142 call 0ed0bh ; e8 8 b0a16103 call 0ed0bh ; e8 89 0a 16143 16104 mov dx, 002e8h ; ba e8 02 16144 call 0ed0bh ; e8 8 50a16105 call 0ed0bh ; e8 83 0a 16145 16106 sal bx, 009h ; c1 e3 09 16146 16107 mov ax, word [00410h] ; a1 10 04 … … 16153 16114 mov ax, 0f000h ; b8 00 f0 16154 16115 mov word [0012ah], ax ; a3 2a 01 16155 mov ax, 0f e7bh ; b8 7b fe16116 mov ax, 0f8e4h ; b8 e4 f8 16156 16117 mov word [001c0h], ax ; a3 c0 01 16157 16118 mov ax, 0f000h ; b8 00 f0 16158 16119 mov word [001c2h], ax ; a3 c2 01 16159 call 0edbfh ; e8 10 0b 16160 jmp short 0e31bh ; eb 6a 16161 times 0x10 db 0 16120 call 0edbfh ; e8 0e 0b 16121 jmp short 0e31bh ; eb 68 16122 biosorg_check_before_or_at_0E2C1h: ; 0xfe2b3 LB 0x10 16123 times 0xe db 0 16162 16124 db 'XM' 16163 16125 nmi: ; 0xfe2c3 LB 0x7 … … 16172 16134 int 002h ; cd 02 16173 16135 iret ; cf 16174 hard_drive_post: ; 0xfe2d2 LB 0x 12c16136 hard_drive_post: ; 0xfe2d2 LB 0xbd 16175 16137 db 033h, 0c0h 16176 16138 ; xor ax, ax ; 33 c0 … … 16187 16149 mov ax, 0f000h ; b8 00 f0 16188 16150 mov word [0004eh], ax ; a3 4e 00 16189 mov ax, 0f8d 5h ; b8 d5f816151 mov ax, 0f8d2h ; b8 d2 f8 16190 16152 mov word [001d8h], ax ; a3 d8 01 16191 16153 mov ax, 0f000h ; b8 00 f0 … … 16214 16176 call 01c9fh ; e8 63 39 16215 16177 call 02118h ; e8 d9 3d 16216 call 098 dfh ; e8 9db516217 call 08 76ah ; e8 25 a416178 call 09868h ; e8 26 b5 16179 call 086f3h ; e8 ae a3 16218 16180 call 0ed2fh ; e8 e7 09 16219 16181 call 0e2d2h ; e8 87 ff … … 16225 16187 call 01600h ; e8 a9 32 16226 16188 call 0178dh ; e8 33 34 16227 call 03 b0fh ; e8 b2 5716189 call 03acfh ; e8 72 57 16228 16190 sti ; fb 16229 16191 int 019h ; cd 19 … … 16252 16214 sti ; fb 16253 16215 retf 00002h ; ca 02 00 16216 biosorg_check_before_or_at_0E3FCh: ; 0xfe38f LB 0x6f 16254 16217 times 0x6d db 0 16255 16218 db 'XM' … … 16307 16270 int19_handler: ; 0xfe6f2 LB 0x3 16308 16271 jmp near 0f0ach ; e9 b7 09 16309 biosorg_check_ 0E6F5h: ; 0xfe6f5 LB 0x3416272 biosorg_check_at_0E6F5h: ; 0xfe6f5 LB 0xa 16310 16273 or word [bx+si], ax ; 09 00 16311 16274 cld ; fc 16312 16275 add byte [bx+di], al ; 00 01 16313 16276 je short 0e73ch ; 74 40 16314 times 0x2b db 0 16277 times 0x3 db 0 16278 biosorg_check_before_or_at_0E727h: ; 0xfe6ff LB 0x2a 16279 times 0x28 db 0 16315 16280 db 'XM' 16316 biosorg_check_ 0E729h:; 0xfe729 LB 0x1016281 biosorg_check_at_0E729h: ; 0xfe729 LB 0x10 16317 16282 times 0xe db 0 16318 16283 db 'XM' 16319 biosorg_check_ 0E739h:; 0xfe739 LB 0x1a16284 biosorg_check_at_0E739h: ; 0xfe739 LB 0x1a 16320 16285 push DS ; 1e 16321 16286 push ES ; 06 … … 16324 16289 pop DS ; 1f 16325 16290 cld ; fc 16326 call 06 435h ; e8 f37c16291 call 063bch ; e8 7a 7c 16327 16292 popaw ; 61 16328 16293 pop ES ; 07 … … 16360 16325 out strict byte 0a1h, AL ; e6 a1 16361 16326 retn ; c3 16362 ebda_post: ; 0xfe778 LB 0x b616327 ebda_post: ; 0xfe778 LB 0x45 16363 16328 mov ax, 0e746h ; b8 46 e7 16364 16329 mov word [00034h], ax ; a3 34 00 … … 16385 16350 mov word [0040eh], 09fc0h ; c7 06 0e 04 c0 9f 16386 16351 retn ; c3 16352 biosorg_check_before_or_at_0E82Ch: ; 0xfe7bd LB 0x71 16387 16353 times 0x6f db 0 16388 16354 db 'XM' 16389 biosorg_check_ 0E82Eh: ; 0xfe82e LB 0x15916355 biosorg_check_at_0E82Eh: ; 0xfe82e LB 0x36 16390 16356 sti ; fb 16391 16357 push ES ; 06 … … 16399 16365 pop DS ; 1f 16400 16366 cld ; fc 16401 call 056 e2h ; e8 a06e16367 call 05687h ; e8 45 6e 16402 16368 popaw ; 61 16403 16369 pop DS ; 1f … … 16416 16382 pop DS ; 1f 16417 16383 cld ; fc 16418 call 056 e2h ; e8 826e16384 call 05687h ; e8 27 6e 16419 16385 popaw ; 61 16420 16386 pop DS ; 1f 16421 16387 pop ES ; 07 16422 16388 iret ; cf 16389 biosorg_check_before_or_at_0E985h: ; 0xfe864 LB 0x123 16423 16390 times 0x121 db 0 16424 16391 db 'XM' 16425 biosorg_check_ 0E987h: ; 0xfe987 LB 0x2d216392 biosorg_check_at_0E987h: ; 0xfe987 LB 0x5c 16426 16393 cli ; fa 16427 16394 push ax ; 50 … … 16460 16427 pop DS ; 1f 16461 16428 cld ; fc 16462 call 051 bah ; e8 f16716429 call 0515fh ; e8 96 67 16463 16430 pop ES ; 07 16464 16431 popaw ; 61 … … 16476 16443 pop DS ; 1f 16477 16444 cld ; fc 16478 call 06e dbh ; e8 fc8416445 call 06e62h ; e8 83 84 16479 16446 pop DS ; 1f 16480 16447 pop ES ; 07 16481 16448 popaw ; 61 16482 16449 iret ; cf 16450 biosorg_check_before_or_at_0EC57h: ; 0xfe9e3 LB 0x276 16483 16451 times 0x274 db 0 16484 16452 db 'XM' 16485 biosorg_check_ 0EC59h:; 0xfec59 LB 0x216453 biosorg_check_at_0EC59h: ; 0xfec59 LB 0x2 16486 16454 jmp short 0ecb0h ; eb 55 16487 16455 int13_relocated: ; 0xfec5b LB 0x55 … … 16497 16465 cld ; fc 16498 16466 push 0ece9h ; 68 e9 ec 16499 jmp near 03b 53h ; e9 e2 4e16467 jmp near 03b13h ; e9 a2 4e 16500 16468 push ES ; 06 16501 16469 push ax ; 50 … … 16503 16471 push cx ; 51 16504 16472 push dx ; 52 16505 call 03 b27h ; e8 ae 4e16473 call 03ae7h ; e8 6e 4e 16506 16474 cmp AL, strict byte 000h ; 3c 00 16507 16475 je short 0ecabh ; 74 2e 16508 call 03 b3dh ; e8 bd 4e16476 call 03afdh ; e8 7d 4e 16509 16477 pop dx ; 5a 16510 16478 push dx ; 52 … … 16524 16492 cld ; fc 16525 16493 push 0ece9h ; 68 e9 ec 16526 jmp near 041 4ch ; e9 b5 5416494 jmp near 0410ch ; e9 75 54 16527 16495 and dl, 0e0h ; 80 e2 e0 16528 16496 db 03ah, 0c2h … … 16564 16532 jne short 0ecc8h ; 75 06 16565 16533 push 0ece9h ; 68 e9 ec 16566 jmp near 031 9ah ; e9 d2 4416534 jmp near 0315ah ; e9 92 44 16567 16535 int13_notfloppy: ; 0xfecc8 LB 0x14 16568 16536 cmp dl, 0e0h ; 80 fa e0 … … 16570 16538 shr ebx, 010h ; 66 c1 eb 10 16571 16539 push bx ; 53 16572 call 045 8eh ; e8 b9 5816540 call 0454eh ; e8 79 58 16573 16541 pop bx ; 5b 16574 16542 sal ebx, 010h ; 66 c1 e3 10 … … 16577 16545 cmp ah, 040h ; 80 fc 40 16578 16546 jnbe short 0ece6h ; 77 05 16579 call 05a b9h ; e8 d56d16547 call 05a5eh ; e8 7a 6d 16580 16548 jmp short 0ece9h ; eb 03 16581 call 05 f08h ; e8 1f 7216549 call 05eadh ; e8 c4 71 16582 16550 int13_out: ; 0xfece9 LB 0x4 16583 16551 pop DS ; 1f … … 16690 16658 aad 00ah ; d5 0a 16691 16659 retn ; c3 16692 rtc_post: ; 0xfedbf LB 0x 19816660 rtc_post: ; 0xfedbf LB 0x5a 16693 16661 mov AL, strict byte 000h ; b0 00 16694 16662 out strict byte 070h, AL ; e6 70 … … 16718 16686 call 0edb6h ; e8 c2 ff 16719 16687 test al, al ; 84 c0 16720 je short 0ee0 ah ; 74 1216688 je short 0ee04h ; 74 0c 16721 16689 add cx, 0076ch ; 81 c1 6c 07 16722 16690 adc dx, 00100h ; 81 d2 00 01 … … 16724 16692 ; dec al ; fe c8 16725 16693 jne short 0edf8h ; 75 f4 16726 mov ax, 0046ch ; b8 6c 0416727 mov dx, 0046eh ; ba 6e 0416728 16694 db 08ah, 0cdh 16729 16695 ; mov cl, ch ; 8a cd … … 16738 16704 mov byte [00470h], dh ; 88 36 70 04 16739 16705 retn ; c3 16740 times 0x136 db 0 16706 biosorg_check_before_or_at_0EF55h: ; 0xfee19 LB 0x13e 16707 times 0x13c db 0 16741 16708 db 'XM' 16742 int0e_handler: ; 0xfef57 LB 0x 7016709 int0e_handler: ; 0xfef57 LB 0x3b 16743 16710 push ax ; 50 16744 16711 push dx ; 52 … … 16773 16740 pop ax ; 58 16774 16741 iret ; cf 16742 biosorg_check_before_or_at_0EFC5h: ; 0xfef92 LB 0x35 16775 16743 times 0x33 db 0 16776 16744 db 'XM' … … 16784 16752 db 0f6h 16785 16753 invd ; 0f 08 16786 biosorg_check_ 0EFD2h:; 0xfefd2 LB 0x216754 biosorg_check_at_0EFD2h: ; 0xfefd2 LB 0x2 16787 16755 jmp short 0efd4h ; eb 00 16788 16756 int17_handler: ; 0xfefd4 LB 0xd … … 16793 16761 pop DS ; 1f 16794 16762 cld ; fc 16795 call 078 79h ; e8 9c8816763 call 07800h ; e8 23 88 16796 16764 popaw ; 61 16797 16765 pop ES ; 07 … … 16802 16770 _rmode_IDT: ; 0xfefe7 LB 0x6 16803 16771 db 0ffh, 003h, 000h, 000h, 000h, 000h 16804 int1c_handler: ; 0xfefed LB 0x 5816772 int1c_handler: ; 0xfefed LB 0x1 16805 16773 iret ; cf 16774 biosorg_check_before_or_at_0F043h: ; 0xfefee LB 0x57 16806 16775 times 0x55 db 0 16807 16776 db 'XM' 16808 biosorg_check_ 0F045h: ; 0xff045 LB 0x2016777 biosorg_check_at_0F045h: ; 0xff045 LB 0x1 16809 16778 iret ; cf 16779 biosorg_check_before_or_at_0F063h: ; 0xff046 LB 0x1f 16810 16780 times 0x1d db 0 16811 16781 db 'XM' 16812 int10_handler: ; 0xff065 LB 0x 3f16782 int10_handler: ; 0xff065 LB 0x1 16813 16783 iret ; cf 16784 biosorg_check_before_or_at_0F0A2h: ; 0xff066 LB 0x3e 16814 16785 times 0x3c db 0 16815 16786 db 'XM' 16816 biosorg_check_ 0F0A4h:; 0xff0a4 LB 0x816787 biosorg_check_at_0F0A4h: ; 0xff0a4 LB 0x8 16817 16788 push CS ; 0e 16818 16789 pop DS ; 1f … … 16821 16792 hlt ; f4 16822 16793 iret ; cf 16823 int19_relocated: ; 0xff0ac LB 0x9 116794 int19_relocated: ; 0xff0ac LB 0x90 16824 16795 db 08bh, 0ech 16825 16796 ; mov bp, sp ; 8b ec … … 16841 16812 mov ax, strict word 00001h ; b8 01 00 16842 16813 push ax ; 50 16843 call 04 c2eh ; e8 5e5b16814 call 04bd3h ; e8 03 5b 16844 16815 inc sp ; 44 16845 16816 inc sp ; 44 16846 16817 test ax, ax ; 85 c0 16847 jne short 0f0f eh ; 75 2816818 jne short 0f0fdh ; 75 27 16848 16819 mov ax, strict word 00002h ; b8 02 00 16849 16820 push ax ; 50 16850 call 04 c2eh ; e8 51 5b16821 call 04bd3h ; e8 f6 5a 16851 16822 inc sp ; 44 16852 16823 inc sp ; 44 16853 16824 test ax, ax ; 85 c0 16854 jne short 0f0f eh ; 75 1b16825 jne short 0f0fdh ; 75 1a 16855 16826 mov ax, strict word 00003h ; b8 03 00 16856 push strict byte 00003h ; 6a 0316857 call 04 c2eh ; e8 43 5b16827 push ax ; 50 16828 call 04bd3h ; e8 e9 5a 16858 16829 inc sp ; 44 16859 16830 inc sp ; 44 16860 16831 test ax, ax ; 85 c0 16861 jne short 0f0f eh ; 75 0d16832 jne short 0f0fdh ; 75 0d 16862 16833 mov ax, strict word 00004h ; b8 04 00 16863 16834 push ax ; 50 16864 call 04 c2eh ; e8 36 5b16835 call 04bd3h ; e8 dc 5a 16865 16836 inc sp ; 44 16866 16837 inc sp ; 44 16867 16838 test ax, ax ; 85 c0 16868 je short 0f0a4h ; 74 a 616839 je short 0f0a4h ; 74 a7 16869 16840 mov word [byte bp+000h], ax ; 89 46 00 16870 16841 sal ax, 004h ; c1 e0 04 … … 16895 16866 pop eax ; 66 58 16896 16867 retn ; c3 16897 pcibios_init_iomem_bases: ; 0xff13 dLB 0x1616868 pcibios_init_iomem_bases: ; 0xff13c LB 0x16 16898 16869 push bp ; 55 16899 16870 db 08bh, 0ech … … 16906 16877 push ax ; 50 16907 16878 mov bx, strict word 00008h ; bb 08 00 16908 pci_init_io_loop1: ; 0xff15 3LB 0xe16879 pci_init_io_loop1: ; 0xff152 LB 0xe 16909 16880 mov DL, strict byte 000h ; b2 00 16910 call 0f12 2h ; e8 ca ff16881 call 0f121h ; e8 ca ff 16911 16882 mov dx, 00cfch ; ba fc 0c 16912 16883 in ax, DX ; ed 16913 16884 cmp ax, strict byte 0ffffh ; 83 f8 ff 16914 je short 0f19 ah ; 74 3916915 enable_iomem_space: ; 0xff16 1LB 0x3916885 je short 0f199h ; 74 39 16886 enable_iomem_space: ; 0xff160 LB 0x39 16916 16887 mov DL, strict byte 004h ; b2 04 16917 call 0f12 2h ; e8 bc ff16888 call 0f121h ; e8 bc ff 16918 16889 mov dx, 00cfch ; ba fc 0c 16919 16890 in AL, DX ; ec … … 16921 16892 out DX, AL ; ee 16922 16893 mov DL, strict byte 000h ; b2 00 16923 call 0f12 2h ; e8 b0 ff16894 call 0f121h ; e8 b0 ff 16924 16895 mov dx, 00cfch ; ba fc 0c 16925 16896 in eax, DX ; 66 ed 16926 16897 cmp eax, strict dword 020001022h ; 66 3d 22 10 00 20 16927 jne short 0f19 ah ; 75 1b16898 jne short 0f199h ; 75 1b 16928 16899 mov DL, strict byte 010h ; b2 10 16929 call 0f12 2h ; e8 9e ff16900 call 0f121h ; e8 9e ff 16930 16901 mov dx, 00cfch ; ba fc 0c 16931 16902 in ax, DX ; ed … … 16941 16912 add dx, strict byte 00018h ; 83 c2 18 16942 16913 in eax, DX ; 66 ed 16943 next_pci_dev: ; 0xff19 aLB 0xf16914 next_pci_dev: ; 0xff199 LB 0xf 16944 16915 mov byte [bp-008h], 010h ; c6 46 f8 10 16945 16916 inc bx ; 43 16946 16917 cmp bx, 00100h ; 81 fb 00 01 16947 jne short 0f15 3h ; 75 ae16918 jne short 0f152h ; 75 ae 16948 16919 db 08bh, 0e5h 16949 16920 ; mov sp, bp ; 8b e5 16950 16921 pop bp ; 5d 16951 16922 retn ; c3 16952 pcibios_init_set_elcr: ; 0xff1a 9LB 0xc16923 pcibios_init_set_elcr: ; 0xff1a8 LB 0xc 16953 16924 push ax ; 50 16954 16925 push cx ; 51 16955 16926 mov dx, 004d0h ; ba d0 04 16956 16927 test AL, strict byte 008h ; a8 08 16957 je short 0f1b 5h ; 74 0316928 je short 0f1b4h ; 74 03 16958 16929 inc dx ; 42 16959 16930 and AL, strict byte 007h ; 24 07 16960 is_master_pic: ; 0xff1b 5LB 0xd16931 is_master_pic: ; 0xff1b4 LB 0xd 16961 16932 db 08ah, 0c8h 16962 16933 ; mov cl, al ; 8a c8 … … 16970 16941 pop ax ; 58 16971 16942 retn ; c3 16972 pcibios_init_irqs: ; 0xff1c 2LB 0x5316943 pcibios_init_irqs: ; 0xff1c1 LB 0x53 16973 16944 push DS ; 1e 16974 16945 push bp ; 55 … … 16984 16955 mov bl, byte [si+009h] ; 8a 5c 09 16985 16956 mov DL, strict byte 000h ; b2 00 16986 call 0f12 2h ; e8 43 ff16957 call 0f121h ; e8 43 ff 16987 16958 mov dx, 00cfch ; ba fc 0c 16988 16959 in eax, DX ; 66 ed 16989 16960 cmp eax, dword [si+00ch] ; 66 3b 44 0c 16990 jne near 0f29 2h ; 0f 85 a6 0016961 jne near 0f291h ; 0f 85 a6 00 16991 16962 mov dl, byte [si+022h] ; 8a 54 22 16992 call 0f12 2h ; e8 30 ff16963 call 0f121h ; e8 30 ff 16993 16964 push bx ; 53 16994 16965 mov dx, 00cfch ; ba fc 0c … … 17005 16976 db 08bh, 0ech 17006 16977 ; mov bp, sp ; 8b ec 17007 mov ax, 0f11 eh ; b8 1ef116978 mov ax, 0f11dh ; b8 1d f1 17008 16979 push ax ; 50 17009 16980 db 033h, 0c0h 17010 16981 ; xor ax, ax ; 33 c0 17011 16982 push ax ; 50 17012 pci_init_irq_loop1: ; 0xff21 5LB 0x516983 pci_init_irq_loop1: ; 0xff214 LB 0x5 17013 16984 mov bh, byte [si] ; 8a 3c 17014 16985 mov bl, byte [si+001h] ; 8a 5c 01 17015 pci_init_irq_loop2: ; 0xff21 aLB 0x1516986 pci_init_irq_loop2: ; 0xff219 LB 0x15 17016 16987 mov DL, strict byte 000h ; b2 00 17017 call 0f12 2h ; e8 03 ff16988 call 0f121h ; e8 03 ff 17018 16989 mov dx, 00cfch ; ba fc 0c 17019 16990 in ax, DX ; ed 17020 16991 cmp ax, strict byte 0ffffh ; 83 f8 ff 17021 jne short 0f22 fh ; 75 0716992 jne short 0f22eh ; 75 07 17022 16993 test bl, 007h ; f6 c3 07 17023 je short 0f28 6h ; 74 5917024 jmp short 0f27 ch ; eb 4d17025 pci_test_int_pin: ; 0xff22 fLB 0x3c16994 je short 0f285h ; 74 59 16995 jmp short 0f27bh ; eb 4d 16996 pci_test_int_pin: ; 0xff22e LB 0x3c 17026 16997 mov DL, strict byte 03ch ; b2 3c 17027 call 0f12 2h ; e8 ee fe16998 call 0f121h ; e8 ee fe 17028 16999 mov dx, 00cfdh ; ba fd 0c 17029 17000 in AL, DX ; ec 17030 17001 and AL, strict byte 007h ; 24 07 17031 je short 0f27 ch ; 74 4017002 je short 0f27bh ; 74 40 17032 17003 db 0feh, 0c8h 17033 17004 ; dec al ; fe c8 … … 17043 17014 ; mov dl, al ; 8a d0 17044 17015 mov bx, word [byte bp+000h] ; 8b 5e 00 17045 call 0f12 2h ; e8 d0 fe17016 call 0f121h ; e8 d0 fe 17046 17017 mov dx, 00cfch ; ba fc 0c 17047 17018 and AL, strict byte 003h ; 24 03 … … 17050 17021 in AL, DX ; ec 17051 17022 cmp AL, strict byte 080h ; 3c 80 17052 jc short 0f26 bh ; 72 0d17023 jc short 0f26ah ; 72 0d 17053 17024 mov bx, word [bp-002h] ; 8b 5e fe 17054 17025 mov al, byte [bx] ; 8a 07 … … 17056 17027 inc bx ; 43 17057 17028 mov word [bp-002h], bx ; 89 5e fe 17058 call 0f1a 9h ; e8 3e ff17059 pirq_found: ; 0xff26 bLB 0x1117029 call 0f1a8h ; e8 3e ff 17030 pirq_found: ; 0xff26a LB 0x11 17060 17031 mov bh, byte [si] ; 8a 3c 17061 17032 mov bl, byte [si+001h] ; 8a 5c 01 17062 17033 add bl, byte [bp-003h] ; 02 5e fd 17063 17034 mov DL, strict byte 03ch ; b2 3c 17064 call 0f12 2h ; e8 aa fe17035 call 0f121h ; e8 aa fe 17065 17036 mov dx, 00cfch ; ba fc 0c 17066 17037 out DX, AL ; ee 17067 next_pci_func: ; 0xff27 cLB 0xa17038 next_pci_func: ; 0xff27b LB 0xa 17068 17039 inc byte [bp-003h] ; fe 46 fd 17069 17040 db 0feh, 0c3h 17070 17041 ; inc bl ; fe c3 17071 17042 test bl, 007h ; f6 c3 07 17072 jne short 0f21 ah ; 75 9417073 next_pir_entry: ; 0xff28 6LB 0xc17043 jne short 0f219h ; 75 94 17044 next_pir_entry: ; 0xff285 LB 0xc 17074 17045 add si, strict byte 00010h ; 83 c6 10 17075 17046 mov byte [bp-003h], 000h ; c6 46 fd 00 17076 loop 0f21 5h ; e2 8617047 loop 0f214h ; e2 86 17077 17048 db 08bh, 0e5h 17078 17049 ; mov sp, bp ; 8b e5 17079 17050 pop bx ; 5b 17080 pci_init_end: ; 0xff29 2 LB 0x2e17051 pci_init_end: ; 0xff291 LB 0x2f 17081 17052 pop bp ; 5d 17082 17053 pop DS ; 1f 17083 17054 retn ; c3 17084 db 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 0 fch, 024h, 050h, 049h, 052h, 000h17085 db 00 1h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h, 000h17086 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0 31h17055 db 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 024h, 050h, 049h, 052h 17056 db 000h, 001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h 17057 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h 17087 17058 _pci_routing_table: ; 0xff2c0 LB 0x1e0 17088 17059 db 000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h … … 17116 17087 db 000h, 0e8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 01ch, 000h 17117 17088 db 000h, 0f0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 01dh, 000h 17118 _pci_routing_table_size: ; 0xff4a0 LB 0x 3a117089 _pci_routing_table_size: ; 0xff4a0 LB 0x2 17119 17090 loopne 0f4a3h ; e0 01 17091 biosorg_check_before_or_at_0F83Fh: ; 0xff4a2 LB 0x39f 17120 17092 times 0x39d db 0 17121 17093 db 'XM' … … 17154 17126 cmp ah, 0c2h ; 80 fc c2 17155 17127 je short 0f887h ; 74 0e 17156 call 06 647h ; e8 cb6d17128 call 065ceh ; e8 52 6d 17157 17129 popaw ; 61 17158 17130 pop ES ; 07 … … 17160 17132 popfw ; 9d 17161 17133 jmp short 0f893h ; eb 11 17162 call 09 a31h ; e8 aca117134 call 099bah ; e8 35 a1 17163 17135 jmp short 0f87ch ; eb f5 17164 17136 int15_handler_mouse: ; 0xff887 LB 0x5 17165 call 074 ech ; e8 62 7c17137 call 07473h ; e8 e9 7b 17166 17138 jmp short 0f87ch ; eb f0 17167 17139 int15_handler32: ; 0xff88c LB 0x7 17168 17140 pushaw ; 60 17169 call 06 b1fh ; e8 8f7217141 call 06aa6h ; e8 16 72 17170 17142 popaw ; 61 17171 17143 jmp short 0f87dh ; eb ea … … 17184 17156 pop bp ; 5d 17185 17157 iret ; cf 17186 int74_handler: ; 0xff8a7 LB 0x2 e17158 int74_handler: ; 0xff8a7 LB 0x2b 17187 17159 sti ; fb 17188 17160 pushaw ; 60 17189 17161 push ES ; 06 17190 17162 push DS ; 1e 17191 push strict byte 00000h ; 6a 00 17192 push strict byte 00000h ; 6a 00 17193 push strict byte 00000h ; 6a 00 17194 push strict byte 00000h ; 6a 00 17195 push strict byte 00000h ; 6a 00 17163 db 033h, 0c0h 17164 ; xor ax, ax ; 33 c0 17165 push ax ; 50 17166 push ax ; 50 17167 push ax ; 50 17168 push ax ; 50 17169 push ax ; 50 17196 17170 push CS ; 0e 17197 17171 pop DS ; 1f 17198 17172 cld ; fc 17199 call 07 41ah ; e8 5f 7b17173 call 073a1h ; e8 e9 7a 17200 17174 pop cx ; 59 17201 jcxz 0f8c ah ; e3 0c17175 jcxz 0f8c7h ; e3 0c 17202 17176 push strict byte 00000h ; 6a 00 17203 17177 pop DS ; 1f … … 17206 17180 call far [word 00022h] ; ff 1e 22 00 17207 17181 cli ; fa 17208 call 0e030h ; e8 6 2e717182 call 0e030h ; e8 65 e7 17209 17183 add sp, strict byte 00008h ; 83 c4 08 17210 17184 pop DS ; 1f … … 17212 17186 popaw ; 61 17213 17187 iret ; cf 17214 int76_handler: ; 0xff8d 5 LB 0x19917188 int76_handler: ; 0xff8d2 LB 0x12 17215 17189 push ax ; 50 17216 17190 push DS ; 1e … … 17218 17192 mov ds, ax ; 8e d8 17219 17193 mov byte [0008eh], 0ffh ; c6 06 8e 00 ff 17220 call 0e030h ; e8 4 ce717194 call 0e030h ; e8 4f e7 17221 17195 pop DS ; 1f 17222 17196 pop ax ; 58 17223 17197 iret ; cf 17224 times 0x185 db 0 17198 int70_handler: ; 0xff8e4 LB 0x1f 17199 push ES ; 06 17200 push DS ; 1e 17201 pushaw ; 60 17202 push CS ; 0e 17203 pop DS ; 1f 17204 cld ; fc 17205 call 07046h ; e8 59 77 17206 popaw ; 61 17207 pop DS ; 1f 17208 pop ES ; 07 17209 iret ; cf 17210 jnbe short 0f8f8h ; 77 05 17211 cmp ax, 000b0h ; 3d b0 00 17212 jc short 0f900h ; 72 08 17213 db 033h, 0d2h 17214 ; xor dx, dx ; 33 d2 17215 db 033h, 0c0h 17216 ; xor ax, ax ; 33 c0 17217 inc byte [word 00070h] ; fe 06 70 00 17218 jmp near 0fec1h ; e9 be 05 17219 biosorg_check_before_or_at_0FA6Ch: ; 0xff903 LB 0x16b 17220 times 0x169 db 0 17225 17221 db 'XM' 17226 17222 font8x8: ; 0xffa6e LB 0x400 … … 17289 17285 db 018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h 17290 17286 db 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h 17291 biosorg_check_ 0FE6Eh:; 0xffe6e LB 0xd17287 biosorg_check_at_0FE6Eh: ; 0xffe6e LB 0xd 17292 17288 push ES ; 06 17293 17289 push DS ; 1e … … 17296 17292 pop DS ; 1f 17297 17293 cld ; fc 17298 call 071 7eh ; e8 07 7317294 call 07105h ; e8 8e 72 17299 17295 popaw ; 61 17300 17296 pop DS ; 1f 17301 17297 pop ES ; 07 17302 17298 iret ; cf 17303 int70_handler: ; 0xffe7b LB 0x2a 17304 push ES ; 06 17305 push DS ; 1e 17306 pushaw ; 60 17307 push CS ; 0e 17308 pop DS ; 1f 17309 cld ; fc 17310 call 070bfh ; e8 3b 72 17311 popaw ; 61 17312 pop DS ; 1f 17313 pop ES ; 07 17314 iret ; cf 17315 times 0x1b db 0 17299 biosorg_check_before_or_at_0FEA3h: ; 0xffe7b LB 0x2a 17300 times 0x28 db 0 17316 17301 db 'XM' 17317 int08_handler: ; 0xffea5 LB 0x4 e17302 int08_handler: ; 0xffea5 LB 0x42 17318 17303 sti ; fb 17319 17304 push ax ; 50 17320 push bx ; 5317321 17305 push DS ; 1e 17322 17306 push dx ; 52 … … 17324 17308 mov ds, ax ; 8e d8 17325 17309 mov ax, word [0006ch] ; a1 6c 00 17326 mov bx, word [word 0006eh] ; 8b 1e 6e 00 17327 add ax, strict byte 00001h ; 83 c0 01 17328 adc bx, strict byte 00000h ; 83 d3 00 17329 cmp bx, strict byte 00018h ; 83 fb 18 17330 jc short 0fed0h ; 72 0f 17331 jnbe short 0fec8h ; 77 05 17332 cmp ax, 000b0h ; 3d b0 00 17333 jc short 0fed0h ; 72 08 17334 db 033h, 0c0h 17335 ; xor ax, ax ; 33 c0 17336 db 033h, 0dbh 17337 ; xor bx, bx ; 33 db 17338 inc byte [word 00070h] ; fe 06 70 00 17310 mov dx, word [word 0006eh] ; 8b 16 6e 00 17311 inc ax ; 40 17312 jne short 0feb9h ; 75 01 17313 inc dx ; 42 17314 cmp dx, strict byte 00018h ; 83 fa 18 17315 jc short 0fec1h ; 72 03 17316 jmp near 0f8f1h ; e9 30 fa 17339 17317 mov word [0006ch], ax ; a3 6c 00 17340 mov word [word 0006eh], bx ; 89 1e6e 0017318 mov word [word 0006eh], dx ; 89 16 6e 00 17341 17319 mov AL, byte [00040h] ; a0 40 00 17342 17320 db 00ah, 0c0h 17343 17321 ; or al, al ; 0a c0 17344 je short 0fe ech ; 74 0e17322 je short 0feddh ; 74 0e 17345 17323 db 0feh, 0c8h 17346 17324 ; dec al ; fe c8 17347 17325 mov byte [00040h], AL ; a2 40 00 17348 jne short 0fe ech ; 75 0717326 jne short 0feddh ; 75 07 17349 17327 mov dx, 003f2h ; ba f2 03 17350 17328 in AL, DX ; ec … … 17353 17331 int 01ch ; cd 1c 17354 17332 cli ; fa 17355 call 05734h ; e8 42 58 17356 dec bp ; 4d 17357 biosorg_check_0FEF3h: ; 0xffef3 LB 0xd 17333 call 0e034h ; e8 51 e1 17334 pop dx ; 5a 17358 17335 pop DS ; 1f 17359 pop bx ; 5b17360 17336 pop ax ; 58 17361 17337 iret ; cf 17362 add byte [bx+si], al ; 00 00 17363 add byte [bx+si], al ; 00 00 17364 add byte [bx+si], al ; 00 00 17365 add byte [bx+si+04dh], bl ; 00 58 4d 17366 biosorg_check_0FF00h: ; 0xfff00 LB 0x53 17338 biosorg_check_before_or_at_0FEF1h: ; 0xffee7 LB 0xc 17339 times 0xa db 0 17340 db 'XM' 17341 biosorg_check_at_0FEF3h: ; 0xffef3 LB 0xd 17342 times 0xb db 0 17343 db 'XM' 17344 biosorg_check_at_0FF00h: ; 0xfff00 LB 0x19 17367 17345 dec di ; 4f 17368 17346 jc short 0ff64h ; 72 61 … … 17380 17358 dec di ; 4f 17381 17359 push bx ; 53 17360 biosorg_check_before_or_at_0FF51h: ; 0xfff19 LB 0x3a 17382 17361 times 0x38 db 0 17383 17362 db 'XM' 17384 17363 dummy_iret: ; 0xfff53 LB 0x1 17385 17364 iret ; cf 17386 biosorg_check_ 0FF54h: ; 0xfff54 LB 0x9c17365 biosorg_check_at_0FF54h: ; 0xfff54 LB 0x2c 17387 17366 iret ; cf 17388 17367 mov ax, ax ; 89 c0 … … 17412 17391 add byte [bx+si], al ; 00 00 17413 17392 add byte [di], ah ; 00 25 17414 times 0x6f db 0 17393 times 0x1 db 0 17394 biosorg_check_before_or_at_0FFEEh: ; 0xfff80 LB 0x70 17395 times 0x6e db 0 17415 17396 db 'XM' 17416 17397 cpu_reset: ; 0xffff0 LB 0x10 17417 17398 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 17418 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 0eh17399 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0ffh -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum
r60422 r60443 1 95481da57ef1489fb5666e8c8c2ca238 *VBoxPcBios286.rom1 72bd720065b63f96ad5945490ffeef78 *VBoxPcBios286.rom -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm
r60441 r60443 15415 15415 loop 0e039h ; e2 f6 15416 15416 retn ; c3 15417 eoi_jmp_post: ; 0xfe044 LB 0x b15417 eoi_jmp_post: ; 0xfe044 LB 0x3 15418 15418 call 0e030h ; e8 e9 ff 15419 no_eoi_jmp_post: ; 0xfe047 LB 0x8 15419 15420 db 033h, 0c0h 15420 15421 ; xor ax, ax ; 33 c0 15421 15422 mov ds, ax ; 8e d8 15422 15423 jmp far [00467h] ; ff 2e 67 04 15423 biosorg_check_before_or_at_0E059h: ; 0xfe04f LB 0xc 15424 times 0xa db 0 15424 seg_40_value: ; 0xfe04f LB 0x2 15425 inc ax ; 40 15426 times 0x1 db 0 15427 biosorg_check_before_or_at_0E059h: ; 0xfe051 LB 0xa 15428 times 0x8 db 0 15425 15429 db 'XM' 15426 post: ; 0xfe05b LB 0x6 915430 post: ; 0xfe05b LB 0x6b 15427 15431 cli ; fa 15428 15432 smsw ax ; 0f 01 e0 … … 15438 15442 in AL, strict byte 064h ; e4 64 15439 15443 test AL, strict byte 004h ; a8 04 15440 je short 0e08 9h ; 74 1115444 je short 0e08bh ; 74 13 15441 15445 db 08ah, 0c4h 15442 15446 ; mov al, ah ; 8a c4 15443 15447 db 00ah, 0c0h 15444 15448 ; or al, al ; 0a c0 15445 jne short 0e089h ; 75 0b 15446 push strict byte 00040h ; 6a 40 15447 pop DS ; 1f 15449 jne short 0e08bh ; 75 0d 15450 mov ds, [cs:0e04fh] ; 2e 8e 1e 4f e0 15448 15451 cmp word [word 00072h], 01234h ; 81 3e 72 00 34 12 15449 jne short 0e064h ; 75 d b15452 jne short 0e064h ; 75 d9 15450 15453 mov AL, strict byte 00fh ; b0 0f 15451 15454 out strict byte 070h, AL ; e6 70 … … 15455 15458 ; mov al, ah ; 8a c4 15456 15459 cmp AL, strict byte 009h ; 3c 09 15457 je short 0e0a 9h ; 74 1215460 je short 0e0abh ; 74 12 15458 15461 cmp AL, strict byte 00ah ; 3c 0a 15459 je short 0e0a 9h ; 74 0e15462 je short 0e0abh ; 74 0e 15460 15463 db 032h, 0c0h 15461 15464 ; xor al, al ; 32 c0 … … 15469 15472 ; mov al, ah ; 8a c4 15470 15473 cmp AL, strict byte 000h ; 3c 00 15471 je short 0e0c 4h ; 74 1515474 je short 0e0c6h ; 74 15 15472 15475 cmp AL, strict byte 00dh ; 3c 0d 15473 jnc short 0e0c 4h ; 73 1115476 jnc short 0e0c6h ; 73 11 15474 15477 cmp AL, strict byte 009h ; 3c 09 15475 jne short 0e0b ah ; 75 0315476 jmp near 0e366h ; e9 a c0215478 jne short 0e0bch ; 75 03 15479 jmp near 0e366h ; e9 aa 02 15477 15480 cmp AL, strict byte 005h ; 3c 05 15478 je short 0e044h ; 74 8 615481 je short 0e044h ; 74 84 15479 15482 cmp AL, strict byte 00ah ; 3c 0a 15480 je short 0e047h ; 74 8 515481 jmp short 0e0c 4h ; eb 0015482 normal_post: ; 0xfe0c 4LB 0x1f615483 je short 0e047h ; 74 83 15484 jmp short 0e0c6h ; eb 00 15485 normal_post: ; 0xfe0c6 LB 0x1f6 15483 15486 mov ax, 07800h ; b8 00 78 15484 15487 db 08bh, 0e0h … … 15502 15505 add bx, 01000h ; 81 c3 00 10 15503 15506 cmp bx, 09000h ; 81 fb 00 90 15504 jnc short 0e0f 7h ; 73 0b15507 jnc short 0e0f9h ; 73 0b 15505 15508 mov es, bx ; 8e c3 15506 15509 db 033h, 0ffh … … 15508 15511 mov cx, 08000h ; b9 00 80 15509 15512 rep stosw ; f3 ab 15510 jmp short 0e0e 2h ; eb eb15513 jmp short 0e0e4h ; eb eb 15511 15514 mov es, bx ; 8e c3 15512 15515 db 033h, 0ffh … … 15519 15522 pop DS ; 1f 15520 15523 cld ; fc 15521 call 01777h ; e8 6 f3615522 call 0e8e0h ; e8 d 50715524 call 01777h ; e8 6d 36 15525 call 0e8e0h ; e8 d3 07 15523 15526 db 033h, 0dbh 15524 15527 ; xor bx, bx ; 33 db … … 15527 15530 mov ax, 0ff53h ; b8 53 ff 15528 15531 mov dx, 0f000h ; ba 00 f0 15529 call 0e039h ; e8 1 eff15532 call 0e039h ; e8 1c ff 15530 15533 mov bx, 001a0h ; bb a0 01 15531 15534 mov cx, strict word 00010h ; b9 10 00 15532 call 0e039h ; e8 1 5ff15535 call 0e039h ; e8 13 ff 15533 15536 mov ax, 0027fh ; b8 7f 02 15534 15537 mov word [00413h], ax ; a3 13 04 … … 15565 15568 mov ax, 0f000h ; b8 00 f0 15566 15569 mov word [00072h], ax ; a3 72 00 15567 call 0e778h ; e8 e b0515568 call 0f13 ch ; e8 ac0f15569 call 0f1c 1h ; e8 2e1015570 call 0e778h ; e8 e9 05 15571 call 0f13bh ; e8 a9 0f 15572 call 0f1c0h ; e8 2b 10 15570 15573 mov ax, 0fe6eh ; b8 6e fe 15571 15574 mov word [00068h], ax ; a3 68 00 … … 15619 15622 mov ax, 0c000h ; b8 00 c0 15620 15623 mov dx, 0c800h ; ba 00 c8 15621 call 01600h ; e8 e 33315622 call 04e4ch ; e8 2 c6c15624 call 01600h ; e8 e1 33 15625 call 04e4ch ; e8 2a 6c 15623 15626 pop DS ; 1f 15624 15627 mov ax, 0ff53h ; b8 53 ff … … 15633 15636 mov CL, strict byte 014h ; b1 14 15634 15637 mov dx, 00378h ; ba 78 03 15635 call 0ecedh ; e8 b 20a15638 call 0ecedh ; e8 b0 0a 15636 15639 mov dx, 00278h ; ba 78 02 15637 call 0ecedh ; e8 a c0a15640 call 0ecedh ; e8 aa 0a 15638 15641 sal bx, 00eh ; c1 e3 0e 15639 15642 mov ax, word [00410h] ; a1 10 04 … … 15658 15661 mov CL, strict byte 00ah ; b1 0a 15659 15662 mov dx, 003f8h ; ba f8 03 15660 call 0ed0bh ; e8 8 e0a15663 call 0ed0bh ; e8 8c 0a 15661 15664 mov dx, 002f8h ; ba f8 02 15662 call 0ed0bh ; e8 8 80a15665 call 0ed0bh ; e8 86 0a 15663 15666 mov dx, 003e8h ; ba e8 03 15664 call 0ed0bh ; e8 8 20a15667 call 0ed0bh ; e8 80 0a 15665 15668 mov dx, 002e8h ; ba e8 02 15666 call 0ed0bh ; e8 7 c0a15669 call 0ed0bh ; e8 7a 0a 15667 15670 sal bx, 009h ; c1 e3 09 15668 15671 mov ax, word [00410h] ; a1 10 04 … … 15675 15678 mov ax, 0f000h ; b8 00 f0 15676 15679 mov word [0012ah], ax ; a3 2a 01 15677 mov ax, 0f e8fh ; b8 8f fe15680 mov ax, 0f8e6h ; b8 e6 f8 15678 15681 mov word [001c0h], ax ; a3 c0 01 15679 15682 mov ax, 0f000h ; b8 00 f0 15680 15683 mov word [001c2h], ax ; a3 c2 01 15681 call 0edbfh ; e8 07 0b 15682 jmp short 0e31bh ; eb 61 15683 biosorg_check_before_or_at_0E2C1h: ; 0xfe2ba LB 0x9 15684 add byte [bx+si], al ; 00 00 15684 call 0edbfh ; e8 05 0b 15685 jmp short 0e31bh ; eb 5f 15686 biosorg_check_before_or_at_0E2C1h: ; 0xfe2bc LB 0x7 15685 15687 add byte [bx+si], al ; 00 00 15686 15688 add byte [bx+si], al ; 00 00 … … 15712 15714 mov ax, 0f000h ; b8 00 f0 15713 15715 mov word [0004eh], ax ; a3 4e 00 15714 mov ax, 0f8d 7h ; b8 d7f815716 mov ax, 0f8d4h ; b8 d4 f8 15715 15717 mov word [001d8h], ax ; a3 d8 01 15716 15718 mov ax, 0f000h ; b8 00 f0 … … 16411 16413 hlt ; f4 16412 16414 iret ; cf 16413 int19_relocated: ; 0xff0ac LB 0x 9016415 int19_relocated: ; 0xff0ac LB 0x8f 16414 16416 db 08bh, 0ech 16415 16417 ; mov bp, sp ; 8b ec … … 16435 16437 inc sp ; 44 16436 16438 test ax, ax ; 85 c0 16437 jne short 0f0f eh ; 75 2816439 jne short 0f0fdh ; 75 27 16438 16440 mov ax, strict word 00002h ; b8 02 00 16439 16441 push ax ; 50 … … 16442 16444 inc sp ; 44 16443 16445 test ax, ax ; 85 c0 16444 jne short 0f0f eh ; 75 1b16446 jne short 0f0fdh ; 75 1a 16445 16447 mov ax, strict word 00003h ; b8 03 00 16446 push strict byte 00003h ; 6a 0316447 call 04be3h ; e8 f 85a16448 push ax ; 50 16449 call 04be3h ; e8 f9 5a 16448 16450 inc sp ; 44 16449 16451 inc sp ; 44 16450 16452 test ax, ax ; 85 c0 16451 jne short 0f0f eh ; 75 0d16453 jne short 0f0fdh ; 75 0d 16452 16454 mov ax, strict word 00004h ; b8 04 00 16453 16455 push ax ; 50 16454 call 04be3h ; e8 e b5a16456 call 04be3h ; e8 ec 5a 16455 16457 inc sp ; 44 16456 16458 inc sp ; 44 16457 16459 test ax, ax ; 85 c0 16458 je short 0f0a4h ; 74 a 616460 je short 0f0a4h ; 74 a7 16459 16461 sal eax, 004h ; 66 c1 e0 04 16460 16462 mov word [bp+002h], ax ; 89 46 02 … … 16484 16486 pop eax ; 66 58 16485 16487 retn ; c3 16486 pcibios_init_iomem_bases: ; 0xff13 cLB 0x1616488 pcibios_init_iomem_bases: ; 0xff13b LB 0x16 16487 16489 push bp ; 55 16488 16490 db 08bh, 0ech … … 16495 16497 push ax ; 50 16496 16498 mov bx, strict word 00008h ; bb 08 00 16497 pci_init_io_loop1: ; 0xff15 2LB 0xe16499 pci_init_io_loop1: ; 0xff151 LB 0xe 16498 16500 mov DL, strict byte 000h ; b2 00 16499 call 0f12 1h ; e8 ca ff16501 call 0f120h ; e8 ca ff 16500 16502 mov dx, 00cfch ; ba fc 0c 16501 16503 in ax, DX ; ed 16502 16504 cmp ax, strict byte 0ffffh ; 83 f8 ff 16503 je short 0f19 9h ; 74 3916504 enable_iomem_space: ; 0xff1 60LB 0x3916505 je short 0f198h ; 74 39 16506 enable_iomem_space: ; 0xff15f LB 0x39 16505 16507 mov DL, strict byte 004h ; b2 04 16506 call 0f12 1h ; e8 bc ff16508 call 0f120h ; e8 bc ff 16507 16509 mov dx, 00cfch ; ba fc 0c 16508 16510 in AL, DX ; ec … … 16510 16512 out DX, AL ; ee 16511 16513 mov DL, strict byte 000h ; b2 00 16512 call 0f12 1h ; e8 b0 ff16514 call 0f120h ; e8 b0 ff 16513 16515 mov dx, 00cfch ; ba fc 0c 16514 16516 in eax, DX ; 66 ed 16515 16517 cmp eax, strict dword 020001022h ; 66 3d 22 10 00 20 16516 jne short 0f19 9h ; 75 1b16518 jne short 0f198h ; 75 1b 16517 16519 mov DL, strict byte 010h ; b2 10 16518 call 0f12 1h ; e8 9e ff16520 call 0f120h ; e8 9e ff 16519 16521 mov dx, 00cfch ; ba fc 0c 16520 16522 in ax, DX ; ed … … 16530 16532 add dx, strict byte 00018h ; 83 c2 18 16531 16533 in eax, DX ; 66 ed 16532 next_pci_dev: ; 0xff19 9LB 0xf16534 next_pci_dev: ; 0xff198 LB 0xf 16533 16535 mov byte [bp-008h], 010h ; c6 46 f8 10 16534 16536 inc bx ; 43 16535 16537 cmp bx, 00100h ; 81 fb 00 01 16536 jne short 0f15 2h ; 75 ae16538 jne short 0f151h ; 75 ae 16537 16539 db 08bh, 0e5h 16538 16540 ; mov sp, bp ; 8b e5 16539 16541 pop bp ; 5d 16540 16542 retn ; c3 16541 pcibios_init_set_elcr: ; 0xff1a 8LB 0xc16543 pcibios_init_set_elcr: ; 0xff1a7 LB 0xc 16542 16544 push ax ; 50 16543 16545 push cx ; 51 16544 16546 mov dx, 004d0h ; ba d0 04 16545 16547 test AL, strict byte 008h ; a8 08 16546 je short 0f1b 4h ; 74 0316548 je short 0f1b3h ; 74 03 16547 16549 inc dx ; 42 16548 16550 and AL, strict byte 007h ; 24 07 16549 is_master_pic: ; 0xff1b 4LB 0xd16551 is_master_pic: ; 0xff1b3 LB 0xd 16550 16552 db 08ah, 0c8h 16551 16553 ; mov cl, al ; 8a c8 … … 16559 16561 pop ax ; 58 16560 16562 retn ; c3 16561 pcibios_init_irqs: ; 0xff1c 1LB 0x5316563 pcibios_init_irqs: ; 0xff1c0 LB 0x53 16562 16564 push DS ; 1e 16563 16565 push bp ; 55 … … 16573 16575 mov bl, byte [si+009h] ; 8a 5c 09 16574 16576 mov DL, strict byte 000h ; b2 00 16575 call 0f12 1h ; e8 43 ff16577 call 0f120h ; e8 43 ff 16576 16578 mov dx, 00cfch ; ba fc 0c 16577 16579 in eax, DX ; 66 ed 16578 16580 cmp eax, dword [si+00ch] ; 66 3b 44 0c 16579 jne near 0f29 1h ; 0f 85 a6 0016581 jne near 0f290h ; 0f 85 a6 00 16580 16582 mov dl, byte [si+022h] ; 8a 54 22 16581 call 0f12 1h ; e8 30 ff16583 call 0f120h ; e8 30 ff 16582 16584 push bx ; 53 16583 16585 mov dx, 00cfch ; ba fc 0c … … 16594 16596 db 08bh, 0ech 16595 16597 ; mov bp, sp ; 8b ec 16596 mov ax, 0f11 dh ; b8 1df116598 mov ax, 0f11ch ; b8 1c f1 16597 16599 push ax ; 50 16598 16600 db 033h, 0c0h 16599 16601 ; xor ax, ax ; 33 c0 16600 16602 push ax ; 50 16601 pci_init_irq_loop1: ; 0xff21 4LB 0x516603 pci_init_irq_loop1: ; 0xff213 LB 0x5 16602 16604 mov bh, byte [si] ; 8a 3c 16603 16605 mov bl, byte [si+001h] ; 8a 5c 01 16604 pci_init_irq_loop2: ; 0xff21 9LB 0x1516606 pci_init_irq_loop2: ; 0xff218 LB 0x15 16605 16607 mov DL, strict byte 000h ; b2 00 16606 call 0f12 1h ; e8 03 ff16608 call 0f120h ; e8 03 ff 16607 16609 mov dx, 00cfch ; ba fc 0c 16608 16610 in ax, DX ; ed 16609 16611 cmp ax, strict byte 0ffffh ; 83 f8 ff 16610 jne short 0f22 eh ; 75 0716612 jne short 0f22dh ; 75 07 16611 16613 test bl, 007h ; f6 c3 07 16612 je short 0f28 5h ; 74 5916613 jmp short 0f27 bh ; eb 4d16614 pci_test_int_pin: ; 0xff22 eLB 0x3c16614 je short 0f284h ; 74 59 16615 jmp short 0f27ah ; eb 4d 16616 pci_test_int_pin: ; 0xff22d LB 0x3c 16615 16617 mov DL, strict byte 03ch ; b2 3c 16616 call 0f12 1h ; e8 ee fe16618 call 0f120h ; e8 ee fe 16617 16619 mov dx, 00cfdh ; ba fd 0c 16618 16620 in AL, DX ; ec 16619 16621 and AL, strict byte 007h ; 24 07 16620 je short 0f27 bh ; 74 4016622 je short 0f27ah ; 74 40 16621 16623 db 0feh, 0c8h 16622 16624 ; dec al ; fe c8 … … 16632 16634 ; mov dl, al ; 8a d0 16633 16635 mov bx, word [byte bp+000h] ; 8b 5e 00 16634 call 0f12 1h ; e8 d0 fe16636 call 0f120h ; e8 d0 fe 16635 16637 mov dx, 00cfch ; ba fc 0c 16636 16638 and AL, strict byte 003h ; 24 03 … … 16639 16641 in AL, DX ; ec 16640 16642 cmp AL, strict byte 080h ; 3c 80 16641 jc short 0f26 ah ; 72 0d16643 jc short 0f269h ; 72 0d 16642 16644 mov bx, word [bp-002h] ; 8b 5e fe 16643 16645 mov al, byte [bx] ; 8a 07 … … 16645 16647 inc bx ; 43 16646 16648 mov word [bp-002h], bx ; 89 5e fe 16647 call 0f1a 8h ; e8 3e ff16648 pirq_found: ; 0xff26 aLB 0x1116649 call 0f1a7h ; e8 3e ff 16650 pirq_found: ; 0xff269 LB 0x11 16649 16651 mov bh, byte [si] ; 8a 3c 16650 16652 mov bl, byte [si+001h] ; 8a 5c 01 16651 16653 add bl, byte [bp-003h] ; 02 5e fd 16652 16654 mov DL, strict byte 03ch ; b2 3c 16653 call 0f12 1h ; e8 aa fe16655 call 0f120h ; e8 aa fe 16654 16656 mov dx, 00cfch ; ba fc 0c 16655 16657 out DX, AL ; ee 16656 next_pci_func: ; 0xff27 bLB 0xa16658 next_pci_func: ; 0xff27a LB 0xa 16657 16659 inc byte [bp-003h] ; fe 46 fd 16658 16660 db 0feh, 0c3h 16659 16661 ; inc bl ; fe c3 16660 16662 test bl, 007h ; f6 c3 07 16661 jne short 0f21 9h ; 75 9416662 next_pir_entry: ; 0xff28 5LB 0xc16663 jne short 0f218h ; 75 94 16664 next_pir_entry: ; 0xff284 LB 0xc 16663 16665 add si, strict byte 00010h ; 83 c6 10 16664 16666 mov byte [bp-003h], 000h ; c6 46 fd 00 16665 loop 0f21 4h ; e2 8616667 loop 0f213h ; e2 86 16666 16668 db 08bh, 0e5h 16667 16669 ; mov sp, bp ; 8b e5 16668 16670 pop bx ; 5b 16669 pci_init_end: ; 0xff29 1 LB 0x2f16671 pci_init_end: ; 0xff290 LB 0x30 16670 16672 pop bp ; 5d 16671 16673 pop DS ; 1f 16672 16674 retn ; c3 16673 db 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 0 24h, 050h, 049h, 052h16674 db 0 00h, 001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h16675 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0 31h16675 db 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 0fch, 024h, 050h, 049h 16676 db 052h, 000h, 001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h 16677 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h 16676 16678 _pci_routing_table: ; 0xff2c0 LB 0x1e0 16677 16679 db 000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h … … 16774 16776 pop bp ; 5d 16775 16777 iret ; cf 16776 int74_handler: ; 0xff8a9 LB 0x2 e16778 int74_handler: ; 0xff8a9 LB 0x2b 16777 16779 sti ; fb 16778 16780 pushaw ; 60 16779 16781 push ES ; 06 16780 16782 push DS ; 1e 16781 push strict byte 00000h ; 6a 00 16782 push strict byte 00000h ; 6a 00 16783 push strict byte 00000h ; 6a 00 16784 push strict byte 00000h ; 6a 00 16785 push strict byte 00000h ; 6a 00 16783 db 033h, 0c0h 16784 ; xor ax, ax ; 33 c0 16785 push ax ; 50 16786 push ax ; 50 16787 push ax ; 50 16788 push ax ; 50 16789 push ax ; 50 16786 16790 push CS ; 0e 16787 16791 pop DS ; 1f 16788 16792 cld ; fc 16789 call 07327h ; e8 6 a7a16793 call 07327h ; e8 6d 7a 16790 16794 pop cx ; 59 16791 jcxz 0f8c ch ; e3 0c16795 jcxz 0f8c9h ; e3 0c 16792 16796 push strict byte 00000h ; 6a 00 16793 16797 pop DS ; 1f … … 16796 16800 call far [word 00022h] ; ff 1e 22 00 16797 16801 cli ; fa 16798 call 0e030h ; e8 6 0e716802 call 0e030h ; e8 63 e7 16799 16803 add sp, strict byte 00008h ; 83 c4 08 16800 16804 pop DS ; 1f … … 16802 16806 popaw ; 61 16803 16807 iret ; cf 16804 int76_handler: ; 0xff8d 7LB 0x1216808 int76_handler: ; 0xff8d4 LB 0x12 16805 16809 push ax ; 50 16806 16810 push DS ; 1e … … 16808 16812 mov ds, ax ; 8e d8 16809 16813 mov byte [0008eh], 0ffh ; c6 06 8e 00 ff 16810 call 0e030h ; e8 4 ae716814 call 0e030h ; e8 4d e7 16811 16815 pop DS ; 1f 16812 16816 pop ax ; 58 16813 16817 iret ; cf 16814 biosorg_check_before_or_at_0FA6Ch: ; 0xff8e9 LB 0x185 16815 times 0x183 db 0 16818 int70_handler: ; 0xff8e6 LB 0xd 16819 push ES ; 06 16820 push DS ; 1e 16821 pushaw ; 60 16822 push CS ; 0e 16823 pop DS ; 1f 16824 cld ; fc 16825 call 06fdfh ; e8 f0 76 16826 popaw ; 61 16827 pop DS ; 1f 16828 pop ES ; 07 16829 iret ; cf 16830 biosorg_check_before_or_at_0FA6Ch: ; 0xff8f3 LB 0x17b 16831 times 0x179 db 0 16816 16832 db 'XM' 16817 16833 font8x8: ; 0xffa6e LB 0x400 … … 16905 16921 pop ES ; 07 16906 16922 iret ; cf 16907 int70_handler: ; 0xffe8f LB 0xd 16908 push ES ; 06 16909 push DS ; 1e 16910 pushaw ; 60 16911 push CS ; 0e 16912 pop DS ; 1f 16913 cld ; fc 16914 call 06fdfh ; e8 47 71 16915 popaw ; 61 16916 pop DS ; 1f 16917 pop ES ; 07 16918 iret ; cf 16919 biosorg_check_before_or_at_0FEA3h: ; 0xffe9c LB 0x9 16920 add byte [bx+si], al ; 00 00 16921 add byte [bx+si], al ; 00 00 16922 add byte [bx+si], al ; 00 00 16923 add byte [bx+si+04dh], bl ; 00 58 4d 16923 biosorg_check_before_or_at_0FEA3h: ; 0xffe8f LB 0x16 16924 times 0x14 db 0 16925 db 'XM' 16924 16926 int08_handler: ; 0xffea5 LB 0x43 16925 16927 sti ; fb … … 17017 17019 cpu_reset: ; 0xffff0 LB 0x10 17018 17020 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 17019 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 4eh17021 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0a1h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum
r60422 r60443 1 6f304b6bd2833711f28ac083956c9a9b *VBoxPcBios386.rom1 a2f3015e93a5e62e47b783abd626ce9b *VBoxPcBios386.rom -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm
r60422 r60443 856 856 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 857 857 _pktacc: ; 0xf006a LB 0xc 858 db 000h, 000h, 000h, 000h, 000h, 000h, 0 bfh, 02bh, 056h, 083h, 0f1h, 092h858 db 000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 001h, 083h, 09ch, 092h 859 859 _softrst: ; 0xf0076 LB 0xc 860 db 000h, 000h, 000h, 000h, 000h, 000h, 0 4ah, 02eh, 0dbh, 03bh, 0dbh, 03bh860 db 000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 0bdh, 03bh, 0bdh, 03bh 861 861 _dskacc: ; 0xf0082 LB 0x2e 862 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0 a3h, 02ah, 064h, 02bh, 000h, 000h, 000h, 000h863 db 0 84h, 081h, 06dh, 082h, 0bfh, 091h, 069h, 092h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h862 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 02ah, 046h, 02bh, 000h, 000h, 000h, 000h 863 db 02fh, 081h, 018h, 082h, 06ah, 091h, 014h, 092h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 864 864 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 865 865 … … 1058 1058 times 1144 db 0 1059 1059 1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8 d05 class=CODE group=AUTO1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8ca5 class=CODE group=AUTO 1061 1061 rom_scan_: ; 0xf1600 LB 0x52 1062 1062 push bp ; 55 … … 1318 1318 int 010h ; cd 10 1319 1319 jmp short 017c3h ; eb 03 1320 call 07 d2ah ; e8 67651320 call 07cd3h ; e8 10 65 1321 1321 mov sp, bp ; 89 ec 1322 1322 pop bp ; 5d … … 1464 1464 mov bx, strict word 0000ah ; bb 0a 00 1465 1465 xor cx, cx ; 31 c9 1466 call 0a1 f0h ; e8 13 891466 call 0a190h ; e8 b3 88 1467 1467 mov word [bp-008h], ax ; 89 46 f8 1468 1468 mov cx, dx ; 89 d1 … … 1701 1701 mov dx, word [bp-026h] ; 8b 56 da 1702 1702 mov si, word [bp-01eh] ; 8b 76 e2 1703 call 0a2 6ah ; e8 52 871703 call 0a20ah ; e8 f2 86 1704 1704 mov ax, dx ; 89 d0 1705 1705 xor ah, dh ; 30 f4 … … 2162 2162 mov dx, word [es:si] ; 26 8b 14 2163 2163 mov si, strict word 00018h ; be 18 00 2164 call 0a2 6ah ; e8 d8 822164 call 0a20ah ; e8 78 82 2165 2165 xor dh, dh ; 30 f6 2166 2166 mov word [bp-014h], dx ; 89 56 ec … … 2172 2172 mov dx, word [es:si] ; 26 8b 14 2173 2173 mov si, strict word 00020h ; be 20 00 2174 call 0a2 6ah ; e8 b8 822174 call 0a20ah ; e8 58 82 2175 2175 mov bx, dx ; 89 d3 2176 2176 mov word [bp-010h], dx ; 89 56 f0 … … 2204 2204 mov dx, word [es:si] ; 26 8b 14 2205 2205 mov si, strict word 00008h ; be 08 00 2206 call 0a2 6ah ; e8 65 822206 call 0a20ah ; e8 05 82 2207 2207 mov word [bp-010h], dx ; 89 56 f0 2208 2208 mov bx, word [bp-016h] ; 8b 5e ea … … 2213 2213 mov dx, word [es:si] ; 26 8b 14 2214 2214 mov si, strict word 00018h ; be 18 00 2215 call 0a2 6ah ; e8 47 822215 call 0a20ah ; e8 e7 81 2216 2216 mov bl, dl ; 88 d3 2217 2217 and bl, 00fh ; 80 e3 0f … … 2344 2344 pop bp ; 5d 2345 2345 retn ; c3 2346 _ata_detect: ; 0xf2154 LB 0x6 c12346 _ata_detect: ; 0xf2154 LB 0x6a3 2347 2347 push bp ; 55 2348 2348 mov bp, sp ; 89 e5 2349 2349 push si ; 56 2350 2350 push di ; 57 2351 sub sp, 0026 6h ; 81 ec 66022351 sub sp, 00264h ; 81 ec 64 02 2352 2352 mov dx, strict word 0000eh ; ba 0e 00 2353 2353 mov ax, strict word 00040h ; b8 40 00 2354 2354 call 0166eh ; e8 08 f5 2355 mov word [bp-0 1eh], ax ; 89 46 e22355 mov word [bp-024h], ax ; 89 46 dc 2356 2356 mov bx, 00122h ; bb 22 01 2357 2357 mov es, ax ; 8e c0 2358 mov word [bp-0 2ch], bx ; 89 5e d42359 mov word [bp-02 4h], ax ; 89 46 dc2358 mov word [bp-01eh], bx ; 89 5e e2 2359 mov word [bp-022h], ax ; 89 46 de 2360 2360 mov byte [es:bx+00204h], 000h ; 26 c6 87 04 02 00 2361 2361 mov word [es:bx+00206h], 001f0h ; 26 c7 87 06 02 f0 01 … … 2368 2368 xor al, al ; 30 c0 2369 2369 mov byte [bp-00ch], al ; 88 46 f4 2370 mov byte [bp-008h], al ; 88 46 f8 2370 2371 mov byte [bp-010h], al ; 88 46 f0 2371 mov byte [bp-00eh], al ; 88 46 f2 2372 jmp near 02794h ; e9 de 05 2372 jmp near 02775h ; e9 bf 05 2373 2373 mov ax, 000a0h ; b8 a0 00 2374 2374 lea dx, [bx+006h] ; 8d 57 06 2375 2375 out DX, AL ; ee 2376 lea di, [bx+002h] ; 8d 7f 02 2376 lea si, [bx+002h] ; 8d 77 02 2377 mov AL, strict byte 055h ; b0 55 2378 mov dx, si ; 89 f2 2379 out DX, AL ; ee 2380 lea di, [bx+003h] ; 8d 7f 03 2381 mov AL, strict byte 0aah ; b0 aa 2382 mov dx, di ; 89 fa 2383 out DX, AL ; ee 2384 mov dx, si ; 89 f2 2385 out DX, AL ; ee 2377 2386 mov AL, strict byte 055h ; b0 55 2378 2387 mov dx, di ; 89 fa 2379 2388 out DX, AL ; ee 2380 lea si, [bx+003h] ; 8d 77 03 2389 mov dx, si ; 89 f2 2390 out DX, AL ; ee 2381 2391 mov AL, strict byte 0aah ; b0 aa 2392 mov dx, di ; 89 fa 2393 out DX, AL ; ee 2382 2394 mov dx, si ; 89 f2 2383 out DX, AL ; ee2384 mov dx, di ; 89 fa2385 out DX, AL ; ee2386 mov AL, strict byte 055h ; b0 552387 mov dx, si ; 89 f22388 out DX, AL ; ee2389 mov dx, di ; 89 fa2390 out DX, AL ; ee2391 mov AL, strict byte 0aah ; b0 aa2392 mov dx, si ; 89 f22393 out DX, AL ; ee2394 mov dx, di ; 89 fa2395 2395 in AL, DX ; ec 2396 2396 db 02ah, 0e4h 2397 2397 ; sub ah, ah ; 2a e4 2398 2398 mov cx, ax ; 89 c1 2399 mov dx, si ; 89 f22399 mov dx, di ; 89 fa 2400 2400 in AL, DX ; ec 2401 2401 db 02ah, 0e4h … … 2405 2405 cmp AL, strict byte 0aah ; 3c aa 2406 2406 jne short 0223ah ; 75 48 2407 mov al, byte [bp-0 0eh] ; 8a 46 f22407 mov al, byte [bp-010h] ; 8a 46 f0 2408 2408 xor ah, ah ; 30 e4 2409 2409 mov dx, strict word 0001ch ; ba 1c 00 2410 2410 imul dx ; f7 ea 2411 mov es, [bp-02 4h] ; 8e 46 dc2412 mov si, word [bp-0 2ch] ; 8b 76 d42411 mov es, [bp-022h] ; 8e 46 de 2412 mov si, word [bp-01eh] ; 8b 76 e2 2413 2413 add si, ax ; 01 c6 2414 2414 mov byte [es:si+022h], 001h ; 26 c6 44 22 01 2415 mov al, byte [bp-0 0eh] ; 8a 46 f22415 mov al, byte [bp-010h] ; 8a 46 f0 2416 2416 xor ah, ah ; 30 e4 2417 2417 call 01db8h ; e8 a7 fb 2418 cmp byte [bp-01 8h], 000h ; 80 7e e8002418 cmp byte [bp-014h], 000h ; 80 7e ec 00 2419 2419 je short 0221ch ; 74 05 2420 2420 mov ax, 000b0h ; b8 b0 00 … … 2433 2433 ; sub ah, ah ; 2a e4 2434 2434 cmp cl, 001h ; 80 f9 01 2435 jne short 0227 ah ; 75 442435 jne short 0227dh ; 75 47 2436 2436 cmp al, cl ; 38 c8 2437 2437 je short 0223ch ; 74 02 2438 jmp short 0227 ah ; eb 3e2438 jmp short 0227dh ; eb 41 2439 2439 lea dx, [bx+004h] ; 8d 57 04 2440 2440 in AL, DX ; ec … … 2442 2442 ; sub ah, ah ; 2a e4 2443 2443 mov cx, ax ; 89 c1 2444 mov byte [bp-01ch], al ; 88 46 e42444 mov ch, al ; 88 c5 2445 2445 lea dx, [bx+005h] ; 8d 57 05 2446 2446 in AL, DX ; ec 2447 2447 db 02ah, 0e4h 2448 2448 ; sub ah, ah ; 2a e4 2449 mov word [bp-02ah], ax ; 89 46 d6 2450 mov ch, byte [bp-02ah] ; 8a 6e d6 2449 mov word [bp-032h], ax ; 89 46 ce 2450 mov al, byte [bp-032h] ; 8a 46 ce 2451 mov byte [bp-00ah], al ; 88 46 f6 2451 2452 lea dx, [bx+007h] ; 8d 57 07 2452 2453 in AL, DX ; ec … … 2454 2455 ; sub ah, ah ; 2a e4 2455 2456 cmp cl, 014h ; 80 f9 14 2456 jne short 0227 ch ; 75 1e2457 cmp ch, 0ebh ; 80 fdeb2458 jne short 0227 ch ; 75 192459 mov al, byte [bp-0 0eh] ; 8a 46 f22457 jne short 0227fh ; 75 1f 2458 cmp byte [bp-032h], 0ebh ; 80 7e ce eb 2459 jne short 0227fh ; 75 19 2460 mov al, byte [bp-010h] ; 8a 46 f0 2460 2461 xor ah, ah ; 30 e4 2461 2462 mov dx, strict word 0001ch ; ba 1c 00 2462 2463 imul dx ; f7 ea 2463 mov es, [bp-02 4h] ; 8e 46 dc2464 mov bx, word [bp-0 2ch] ; 8b 5e d42464 mov es, [bp-022h] ; 8e 46 de 2465 mov bx, word [bp-01eh] ; 8b 5e e2 2465 2466 add bx, ax ; 01 c3 2466 2467 mov byte [es:bx+022h], 003h ; 26 c6 47 22 03 2467 jmp short 022c5h ; eb 49 2468 cmp byte [bp-01ch], 000h ; 80 7e e4 00 2469 jne short 022a3h ; 75 21 2468 jmp short 022c7h ; eb 48 2470 2469 test ch, ch ; 84 ed 2471 jne short 022a3h ; 75 1d 2470 jne short 022a6h ; 75 23 2471 cmp byte [bp-00ah], 000h ; 80 7e f6 00 2472 jne short 022a6h ; 75 1d 2472 2473 test al, al ; 84 c0 2473 je short 022a 3h ; 74 192474 mov al, byte [bp-0 0eh] ; 8a 46 f22474 je short 022a6h ; 74 19 2475 mov al, byte [bp-010h] ; 8a 46 f0 2475 2476 xor ah, ah ; 30 e4 2476 2477 mov dx, strict word 0001ch ; ba 1c 00 2477 2478 imul dx ; f7 ea 2478 mov es, [bp-02 4h] ; 8e 46 dc2479 mov bx, word [bp-0 2ch] ; 8b 5e d42479 mov es, [bp-022h] ; 8e 46 de 2480 mov bx, word [bp-01eh] ; 8b 5e e2 2480 2481 add bx, ax ; 01 c3 2481 2482 mov byte [es:bx+022h], 002h ; 26 c6 47 22 02 2482 jmp short 022c5h ; eb 22 2483 mov al, byte [bp-01ch] ; 8a 46 e4 2484 cmp AL, strict byte 0ffh ; 3c ff 2485 jne short 022c5h ; 75 1b 2486 cmp ch, al ; 38 c5 2487 jne short 022c5h ; 75 17 2488 mov al, byte [bp-00eh] ; 8a 46 f2 2483 jmp short 022c7h ; eb 21 2484 cmp ch, 0ffh ; 80 fd ff 2485 jne short 022c7h ; 75 1c 2486 cmp ch, byte [bp-00ah] ; 3a 6e f6 2487 jne short 022c7h ; 75 17 2488 mov al, byte [bp-010h] ; 8a 46 f0 2489 2489 xor ah, ah ; 30 e4 2490 2490 mov dx, strict word 0001ch ; ba 1c 00 2491 2491 imul dx ; f7 ea 2492 mov es, [bp-02 4h] ; 8e 46 dc2493 mov bx, word [bp-0 2ch] ; 8b 5e d42492 mov es, [bp-022h] ; 8e 46 de 2493 mov bx, word [bp-01eh] ; 8b 5e e2 2494 2494 add bx, ax ; 01 c3 2495 2495 mov byte [es:bx+022h], 000h ; 26 c6 47 22 00 2496 mov dx, word [bp-0 30h] ; 8b 56 d02496 mov dx, word [bp-028h] ; 8b 56 d8 2497 2497 add dx, strict byte 00006h ; 83 c2 06 2498 2498 mov AL, strict byte 008h ; b0 08 2499 2499 out DX, AL ; ee 2500 mov al, byte [bp-0 0eh] ; 8a 46 f22500 mov al, byte [bp-010h] ; 8a 46 f0 2501 2501 xor ah, ah ; 30 e4 2502 2502 mov dx, strict word 0001ch ; ba 1c 00 2503 2503 imul dx ; f7 ea 2504 mov es, [bp-02 4h] ; 8e 46 dc2505 mov bx, word [bp-0 2ch] ; 8b 5e d42504 mov es, [bp-022h] ; 8e 46 de 2505 mov bx, word [bp-01eh] ; 8b 5e e2 2506 2506 add bx, ax ; 01 c3 2507 2507 mov al, byte [es:bx+022h] ; 26 8a 47 22 2508 mov byte [bp-01 4h], al ; 88 46 ec2508 mov byte [bp-012h], al ; 88 46 ee 2509 2509 cmp AL, strict byte 002h ; 3c 02 2510 jne short 023 49h ; 75 5e2510 jne short 02339h ; 75 4c 2511 2511 mov byte [es:bx+023h], 0ffh ; 26 c6 47 23 ff 2512 2512 mov byte [es:bx+026h], 000h ; 26 c6 47 26 00 2513 lea dx, [bp-0026 ah] ; 8d 96 96fd2514 mov bx, word [bp-0 2ch] ; 8b 5e d42513 lea dx, [bp-00268h] ; 8d 96 98 fd 2514 mov bx, word [bp-01eh] ; 8b 5e e2 2515 2515 mov word [es:bx+008h], dx ; 26 89 57 08 2516 2516 mov [es:bx+00ah], ss ; 26 8c 57 0a 2517 mov al, byte [bp-0 0eh] ; 8a 46 f22517 mov al, byte [bp-010h] ; 8a 46 f0 2518 2518 mov byte [es:bx+00ch], al ; 26 88 47 0c 2519 2519 mov cx, strict word 00001h ; b9 01 00 2520 2520 mov bx, 000ech ; bb ec 00 2521 mov ax, word [bp-0 2ch] ; 8b 46 d42521 mov ax, word [bp-01eh] ; 8b 46 e2 2522 2522 mov dx, es ; 8c c2 2523 call 01e9dh ; e8 8 4fb2523 call 01e9dh ; e8 82 fb 2524 2524 test ax, ax ; 85 c0 2525 je short 0232 bh ; 74 0e2525 je short 0232dh ; 74 0e 2526 2526 mov ax, 00124h ; b8 24 01 2527 2527 push ax ; 50 2528 2528 mov ax, strict word 00007h ; b8 07 00 2529 2529 push ax ; 50 2530 call 01976h ; e8 4 ef62530 call 01976h ; e8 4c f6 2531 2531 add sp, strict byte 00004h ; 83 c4 04 2532 test byte [bp-0026 ah], 080h ; f6 86 96fd 802533 je short 0233 7h ; 74 052532 test byte [bp-00268h], 080h ; f6 86 98 fd 80 2533 je short 0233ch ; 74 08 2534 2534 mov ax, strict word 00001h ; b8 01 00 2535 jmp short 02339h ; eb 02 2535 jmp short 0233eh ; eb 05 2536 jmp near 02520h ; e9 e4 01 2536 2537 xor ax, ax ; 31 c0 2537 mov byte [bp-006h], al ; 88 46 fa 2538 mov al, byte [bp-0020ah] ; 8a 86 f6 fd 2538 mov byte [bp-01ah], al ; 88 46 e6 2539 mov byte [bp-006h], 000h ; c6 46 fa 00 2540 mov word [bp-036h], 00200h ; c7 46 ca 00 02 2541 mov ax, word [bp-00266h] ; 8b 86 9a fd 2542 mov word [bp-02ch], ax ; 89 46 d4 2543 mov ax, word [bp-00262h] ; 8b 86 9e fd 2544 mov word [bp-034h], ax ; 89 46 cc 2545 mov ax, word [bp-0025ch] ; 8b 86 a4 fd 2546 mov word [bp-01ch], ax ; 89 46 e4 2547 mov si, word [bp-001f0h] ; 8b b6 10 fe 2548 mov ax, word [bp-001eeh] ; 8b 86 12 fe 2549 mov word [bp-030h], ax ; 89 46 d0 2550 xor ax, ax ; 31 c0 2551 mov word [bp-02eh], ax ; 89 46 d2 2552 mov word [bp-020h], ax ; 89 46 e0 2553 cmp word [bp-030h], 00fffh ; 81 7e d0 ff 0f 2554 jne short 02397h ; 75 1e 2555 cmp si, strict byte 0ffffh ; 83 fe ff 2556 jne short 02397h ; 75 19 2557 mov ax, word [bp-0019ah] ; 8b 86 66 fe 2558 mov word [bp-020h], ax ; 89 46 e0 2559 mov ax, word [bp-0019ch] ; 8b 86 64 fe 2560 mov word [bp-02eh], ax ; 89 46 d2 2561 mov ax, word [bp-0019eh] ; 8b 86 62 fe 2562 mov word [bp-030h], ax ; 89 46 d0 2563 mov si, word [bp-001a0h] ; 8b b6 60 fe 2564 mov al, byte [bp-010h] ; 8a 46 f0 2565 cmp AL, strict byte 001h ; 3c 01 2566 jc short 023aah ; 72 0c 2567 jbe short 023b2h ; 76 12 2568 cmp AL, strict byte 003h ; 3c 03 2569 je short 023bah ; 74 16 2570 cmp AL, strict byte 002h ; 3c 02 2571 je short 023b6h ; 74 0e 2572 jmp short 023efh ; eb 45 2539 2573 test al, al ; 84 c0 2540 je short 0234ch ; 74 08 2541 mov ax, strict word 00001h ; b8 01 00 2542 jmp short 0234eh ; eb 05 2543 jmp near 0252ch ; e9 e0 01 2544 xor ah, ah ; 30 e4 2545 mov byte [bp-00ah], al ; 88 46 f6 2546 mov word [bp-038h], 00200h ; c7 46 c8 00 02 2547 mov ax, word [bp-00268h] ; 8b 86 98 fd 2548 mov word [bp-022h], ax ; 89 46 de 2549 mov ax, word [bp-00264h] ; 8b 86 9c fd 2550 mov word [bp-032h], ax ; 89 46 ce 2551 mov ax, word [bp-0025eh] ; 8b 86 a2 fd 2552 mov word [bp-026h], ax ; 89 46 da 2553 mov ax, word [bp-001f2h] ; 8b 86 0e fe 2554 mov word [bp-02eh], ax ; 89 46 d2 2555 mov si, word [bp-001f0h] ; 8b b6 10 fe 2556 xor ax, ax ; 31 c0 2557 mov word [bp-020h], ax ; 89 46 e0 2558 mov word [bp-028h], ax ; 89 46 d8 2559 cmp si, 00fffh ; 81 fe ff 0f 2560 jne short 023a3h ; 75 1f 2561 cmp word [bp-02eh], strict byte 0ffffh ; 83 7e d2 ff 2562 jne short 023a3h ; 75 19 2563 mov ax, word [bp-0019ch] ; 8b 86 64 fe 2564 mov word [bp-028h], ax ; 89 46 d8 2565 mov ax, word [bp-0019eh] ; 8b 86 62 fe 2566 mov word [bp-020h], ax ; 89 46 e0 2567 mov si, word [bp-001a0h] ; 8b b6 60 fe 2568 mov ax, word [bp-001a2h] ; 8b 86 5e fe 2569 mov word [bp-02eh], ax ; 89 46 d2 2570 mov al, byte [bp-00eh] ; 8a 46 f2 2571 cmp AL, strict byte 001h ; 3c 01 2572 jc short 023b6h ; 72 0c 2573 jbe short 023beh ; 76 12 2574 cmp AL, strict byte 003h ; 3c 03 2575 je short 023c6h ; 74 16 2576 cmp AL, strict byte 002h ; 3c 02 2577 je short 023c2h ; 74 0e 2578 jmp short 023fbh ; eb 45 2579 test al, al ; 84 c0 2580 jne short 023fbh ; 75 41 2574 jne short 023efh ; 75 41 2581 2575 mov BL, strict byte 01eh ; b3 1e 2582 jmp short 023 c8h ; eb 0a2576 jmp short 023bch ; eb 0a 2583 2577 mov BL, strict byte 026h ; b3 26 2584 jmp short 023 c8h ; eb 062578 jmp short 023bch ; eb 06 2585 2579 mov BL, strict byte 067h ; b3 67 2586 jmp short 023 c8h ; eb 022580 jmp short 023bch ; eb 02 2587 2581 mov BL, strict byte 070h ; b3 70 2588 2582 mov al, bl ; 88 d8 … … 2590 2584 ; inc al ; fe c0 2591 2585 xor ah, ah ; 30 e4 2592 call 016aeh ; e8 ddf22586 call 016aeh ; e8 e9 f2 2593 2587 mov dh, al ; 88 c6 2594 2588 mov al, bl ; 88 d8 2595 2589 xor ah, ah ; 30 e4 2596 call 016aeh ; e8 d4f22590 call 016aeh ; e8 e0 f2 2597 2591 mov ah, dh ; 88 f4 2592 mov word [bp-03ch], ax ; 89 46 c4 2593 mov al, bl ; 88 d8 2594 add AL, strict byte 002h ; 04 02 2595 xor ah, ah ; 30 e4 2596 call 016aeh ; e8 d2 f2 2597 xor ah, ah ; 30 e4 2598 2598 mov word [bp-03eh], ax ; 89 46 c2 2599 2599 mov al, bl ; 88 d8 2600 add AL, strict byte 002h ; 04 02 2601 xor ah, ah ; 30 e4 2600 add AL, strict byte 007h ; 04 07 2602 2601 call 016aeh ; e8 c6 f2 2603 2602 xor ah, ah ; 30 e4 2604 mov word [bp-040h], ax ; 89 46 c0 2605 mov al, bl ; 88 d8 2606 add AL, strict byte 007h ; 04 07 2607 call 016aeh ; e8 ba f2 2608 xor ah, ah ; 30 e4 2609 mov word [bp-03ch], ax ; 89 46 c4 2610 jmp short 0240dh ; eb 12 2611 push word [bp-028h] ; ff 76 d8 2603 mov word [bp-03ah], ax ; 89 46 c6 2604 jmp short 02401h ; eb 12 2612 2605 push word [bp-020h] ; ff 76 e0 2606 push word [bp-02eh] ; ff 76 d2 2607 push word [bp-030h] ; ff 76 d0 2613 2608 push si ; 56 2614 push word [bp-02eh] ; ff 76 d22615 2609 mov dx, ss ; 8c d2 2616 lea ax, [bp-0 40h] ; 8d 46 c02617 call 05b 50h ; e8 43372610 lea ax, [bp-03eh] ; 8d 46 c2 2611 call 05b09h ; e8 08 37 2618 2612 mov bx, 00da0h ; bb a0 0d 2619 2613 mov cx, ds ; 8c d9 2620 2614 mov ax, strict word 00004h ; b8 04 00 2621 call 01933h ; e8 1b f5 2615 call 01933h ; e8 27 f5 2616 mov ax, word [bp-03ah] ; 8b 46 c6 2617 push ax ; 50 2618 mov ax, word [bp-03eh] ; 8b 46 c2 2619 push ax ; 50 2622 2620 mov ax, word [bp-03ch] ; 8b 46 c4 2623 2621 push ax ; 50 2624 mov ax, word [bp-040h] ; 8b 46 c0 2625 push ax ; 50 2626 mov ax, word [bp-03eh] ; 8b 46 c2 2627 push ax ; 50 2628 push word [bp-026h] ; ff 76 da 2629 push word [bp-032h] ; ff 76 ce 2630 push word [bp-022h] ; ff 76 de 2622 push word [bp-01ch] ; ff 76 e4 2623 push word [bp-034h] ; ff 76 cc 2624 push word [bp-02ch] ; ff 76 d4 2625 mov al, byte [bp-014h] ; 8a 46 ec 2626 xor ah, ah ; 30 e4 2627 push ax ; 50 2631 2628 mov al, byte [bp-018h] ; 8a 46 e8 2632 xor ah, ah ; 30 e42633 push ax ; 502634 mov al, byte [bp-012h] ; 8a 46 ee2635 2629 push ax ; 50 2636 2630 mov ax, 0014dh ; b8 4d 01 … … 2638 2632 mov ax, strict word 00004h ; b8 04 00 2639 2633 push ax ; 50 2640 call 01976h ; e8 34f52634 call 01976h ; e8 40 f5 2641 2635 add sp, strict byte 00014h ; 83 c4 14 2642 mov al, byte [bp-0 0eh] ; 8a 46 f22636 mov al, byte [bp-010h] ; 8a 46 f0 2643 2637 xor ah, ah ; 30 e4 2644 2638 mov dx, strict word 0001ch ; ba 1c 00 2645 2639 imul dx ; f7 ea 2646 mov es, [bp-02 4h] ; 8e 46 dc2647 mov di, word [bp-0 2ch] ; 8b 7e d42640 mov es, [bp-022h] ; 8e 46 de 2641 mov di, word [bp-01eh] ; 8b 7e e2 2648 2642 add di, ax ; 01 c7 2649 2643 mov byte [es:di+023h], 0ffh ; 26 c6 45 23 ff 2644 mov al, byte [bp-01ah] ; 8a 46 e6 2645 mov byte [es:di+024h], al ; 26 88 45 24 2650 2646 mov al, byte [bp-006h] ; 8a 46 fa 2651 mov byte [es:di+024h], al ; 26 88 45 242652 mov al, byte [bp-00ah] ; 8a 46 f62653 2647 mov byte [es:di+026h], al ; 26 88 45 26 2654 mov ax, word [bp-03 8h] ; 8b 46 c82648 mov ax, word [bp-036h] ; 8b 46 ca 2655 2649 mov word [es:di+028h], ax ; 26 89 45 28 2656 mov ax, word [bp-03 2h] ; 8b 46 ce2650 mov ax, word [bp-034h] ; 8b 46 cc 2657 2651 mov word [es:di+030h], ax ; 26 89 45 30 2658 mov ax, word [bp-02 2h] ; 8b 46 de2652 mov ax, word [bp-02ch] ; 8b 46 d4 2659 2653 mov word [es:di+032h], ax ; 26 89 45 32 2660 mov ax, word [bp-0 26h] ; 8b 46 da2654 mov ax, word [bp-01ch] ; 8b 46 e4 2661 2655 mov word [es:di+034h], ax ; 26 89 45 34 2662 mov ax, word [bp-02 8h] ; 8b 46 d82656 mov ax, word [bp-020h] ; 8b 46 e0 2663 2657 mov word [es:di+03ch], ax ; 26 89 45 3c 2664 mov ax, word [bp-02 0h] ; 8b 46 e02658 mov ax, word [bp-02eh] ; 8b 46 d2 2665 2659 mov word [es:di+03ah], ax ; 26 89 45 3a 2666 mov word [es:di+038h], si ; 26 89 75 382667 mov ax, word [bp-02eh] ; 8b 46 d22668 mov word [es:di+036h], ax ; 26 89 45 362660 mov ax, word [bp-030h] ; 8b 46 d0 2661 mov word [es:di+038h], ax ; 26 89 45 38 2662 mov word [es:di+036h], si ; 26 89 75 36 2669 2663 lea di, [di+02ah] ; 8d 7d 2a 2670 2664 push DS ; 1e 2671 2665 push SS ; 16 2672 2666 pop DS ; 1f 2673 lea si, [bp-0 40h] ; 8d 76 c02667 lea si, [bp-03eh] ; 8d 76 c2 2674 2668 movsw ; a5 2675 2669 movsw ; a5 2676 2670 movsw ; a5 2677 2671 pop DS ; 1f 2678 mov al, byte [bp-0 0eh] ; 8a 46 f22672 mov al, byte [bp-010h] ; 8a 46 f0 2679 2673 cmp AL, strict byte 002h ; 3c 02 2680 jnc short 025 16h ; 73 632674 jnc short 0250ah ; 73 63 2681 2675 test al, al ; 84 c0 2682 jne short 024b ch ; 75 052676 jne short 024b0h ; 75 05 2683 2677 mov di, strict word 0003dh ; bf 3d 00 2684 jmp short 024b fh ; eb 032678 jmp short 024b3h ; eb 03 2685 2679 mov di, strict word 0004dh ; bf 4d 00 2686 mov dx, word [bp-0 1eh] ; 8b 56 e22687 mov bx, word [bp-03 eh] ; 8b 5e c22680 mov dx, word [bp-024h] ; 8b 56 dc 2681 mov bx, word [bp-03ch] ; 8b 5e c4 2688 2682 mov es, dx ; 8e c2 2689 2683 mov word [es:di], bx ; 26 89 1d 2690 mov bl, byte [bp-0 40h] ; 8a 5e c02684 mov bl, byte [bp-03eh] ; 8a 5e c2 2691 2685 mov byte [es:di+002h], bl ; 26 88 5d 02 2692 2686 mov byte [es:di+003h], 0a0h ; 26 c6 45 03 a0 2693 mov al, byte [bp-0 26h] ; 8a 46 da2687 mov al, byte [bp-01ch] ; 8a 46 e4 2694 2688 mov byte [es:di+004h], al ; 26 88 45 04 2695 mov ax, word [bp-02 2h] ; 8b 46 de2689 mov ax, word [bp-02ch] ; 8b 46 d4 2696 2690 mov word [es:di+009h], ax ; 26 89 45 09 2697 mov al, byte [bp-03 2h] ; 8a 46 ce2691 mov al, byte [bp-034h] ; 8a 46 cc 2698 2692 mov byte [es:di+00bh], al ; 26 88 45 0b 2699 mov al, byte [bp-0 26h] ; 8a 46 da2693 mov al, byte [bp-01ch] ; 8a 46 e4 2700 2694 mov byte [es:di+00eh], al ; 26 88 45 0e 2701 2695 xor bl, bl ; 30 db 2702 2696 xor bh, bh ; 30 ff 2703 jmp short 024f dh ; eb 052697 jmp short 024f1h ; eb 05 2704 2698 cmp bh, 00fh ; 80 ff 0f 2705 jnc short 0250 eh ; 73 112699 jnc short 02502h ; 73 11 2706 2700 mov al, bh ; 88 f8 2707 2701 xor ah, ah ; 30 e4 … … 2712 2706 db 0feh, 0c7h 2713 2707 ; inc bh ; fe c7 2714 jmp short 024 f8h ; eb ea2708 jmp short 024ech ; eb ea 2715 2709 neg bl ; f6 db 2716 2710 mov es, dx ; 8e c2 2717 2711 mov byte [es:di+00fh], bl ; 26 88 5d 0f 2718 mov bl, byte [bp-0 10h] ; 8a 5e f02712 mov bl, byte [bp-008h] ; 8a 5e f8 2719 2713 xor bh, bh ; 30 ff 2720 mov es, [bp-02 4h] ; 8e 46 dc2721 add bx, word [bp-0 2ch] ; 03 5e d42722 mov al, byte [bp-0 0eh] ; 8a 46 f22714 mov es, [bp-022h] ; 8e 46 de 2715 add bx, word [bp-01eh] ; 03 5e e2 2716 mov al, byte [bp-010h] ; 8a 46 f0 2723 2717 mov byte [es:bx+001e3h], al ; 26 88 87 e3 01 2724 inc byte [bp-0 10h] ; fe 46 f02725 cmp byte [bp-01 4h], 003h ; 80 7e ec032726 jne short 025 99h ; 75 672727 mov al, byte [bp-0 0eh] ; 8a 46 f22718 inc byte [bp-008h] ; fe 46 f8 2719 cmp byte [bp-012h], 003h ; 80 7e ee 03 2720 jne short 0258dh ; 75 67 2721 mov al, byte [bp-010h] ; 8a 46 f0 2728 2722 xor ah, ah ; 30 e4 2729 2723 mov dx, strict word 0001ch ; ba 1c 00 2730 2724 imul dx ; f7 ea 2731 mov es, [bp-02 4h] ; 8e 46 dc2732 mov bx, word [bp-0 2ch] ; 8b 5e d42725 mov es, [bp-022h] ; 8e 46 de 2726 mov bx, word [bp-01eh] ; 8b 5e e2 2733 2727 add bx, ax ; 01 c3 2734 2728 mov byte [es:bx+023h], 005h ; 26 c6 47 23 05 2735 2729 mov byte [es:bx+026h], 000h ; 26 c6 47 26 00 2736 lea dx, [bp-0026 ah] ; 8d 96 96fd2737 mov bx, word [bp-0 2ch] ; 8b 5e d42730 lea dx, [bp-00268h] ; 8d 96 98 fd 2731 mov bx, word [bp-01eh] ; 8b 5e e2 2738 2732 mov word [es:bx+008h], dx ; 26 89 57 08 2739 2733 mov [es:bx+00ah], ss ; 26 8c 57 0a 2740 mov al, byte [bp-0 0eh] ; 8a 46 f22734 mov al, byte [bp-010h] ; 8a 46 f0 2741 2735 mov byte [es:bx+00ch], al ; 26 88 47 0c 2742 2736 mov cx, strict word 00001h ; b9 01 00 2743 2737 mov bx, 000a1h ; bb a1 00 2744 mov ax, word [bp-0 2ch] ; 8b 46 d42738 mov ax, word [bp-01eh] ; 8b 46 e2 2745 2739 mov dx, es ; 8c c2 2746 call 01e9dh ; e8 2bf92740 call 01e9dh ; e8 37 f9 2747 2741 test ax, ax ; 85 c0 2748 je short 025 84h ; 74 0e2742 je short 02578h ; 74 0e 2749 2743 mov ax, 00174h ; b8 74 01 2750 2744 push ax ; 50 2751 2745 mov ax, strict word 00007h ; b8 07 00 2752 2746 push ax ; 50 2753 call 01976h ; e8 f5 f32747 call 01976h ; e8 01 f4 2754 2748 add sp, strict byte 00004h ; 83 c4 04 2755 mov al, byte [bp-0026 9h] ; 8a 86 97fd2749 mov al, byte [bp-00267h] ; 8a 86 99 fd 2756 2750 and AL, strict byte 01fh ; 24 1f 2757 mov byte [bp-01ah], al ; 88 46 e6 2758 test byte [bp-0026ah], 080h ; f6 86 96 fd 80 2759 je short 0259bh ; 74 07 2760 mov ax, strict word 00001h ; b8 01 00 2761 jmp short 0259dh ; eb 04 2762 jmp short 025ebh ; eb 50 2763 xor ax, ax ; 31 c0 2764 mov byte [bp-008h], al ; 88 46 f8 2765 cmp byte [bp-0020ah], 000h ; 80 be f6 fd 00 2766 je short 025ach ; 74 05 2751 mov byte [bp-016h], al ; 88 46 ea 2752 test byte [bp-00268h], 080h ; f6 86 98 fd 80 2753 je short 0258fh ; 74 07 2767 2754 mov cx, strict word 00001h ; b9 01 00 2768 jmp short 025aeh ; eb 02 2755 jmp short 02591h ; eb 04 2756 jmp short 025cch ; eb 3d 2769 2757 xor cx, cx ; 31 c9 2770 mov al, byte [bp-0 0eh] ; 8a 46 f22758 mov al, byte [bp-010h] ; 8a 46 f0 2771 2759 xor ah, ah ; 30 e4 2772 2760 mov dx, strict word 0001ch ; ba 1c 00 2773 2761 imul dx ; f7 ea 2774 mov es, [bp-02 4h] ; 8e 46 dc2775 mov bx, word [bp-0 2ch] ; 8b 5e d42762 mov es, [bp-022h] ; 8e 46 de 2763 mov bx, word [bp-01eh] ; 8b 5e e2 2776 2764 add bx, ax ; 01 c3 2777 mov al, byte [bp-01 ah] ; 8a 46 e62765 mov al, byte [bp-016h] ; 8a 46 ea 2778 2766 mov byte [es:bx+023h], al ; 26 88 47 23 2779 mov al, byte [bp-008h] ; 8a 46 f8 2780 mov byte [es:bx+024h], al ; 26 88 47 24 2781 mov byte [es:bx+026h], cl ; 26 88 4f 26 2767 mov byte [es:bx+024h], cl ; 26 88 4f 24 2768 mov byte [es:bx+026h], 000h ; 26 c6 47 26 00 2782 2769 mov word [es:bx+028h], 00800h ; 26 c7 47 28 00 08 2783 2770 mov bl, byte [bp-00ch] ; 8a 5e f4 2784 2771 xor bh, bh ; 30 ff 2785 add bx, word [bp-0 2ch] ; 03 5e d42786 mov al, byte [bp-0 0eh] ; 8a 46 f22772 add bx, word [bp-01eh] ; 03 5e e2 2773 mov al, byte [bp-010h] ; 8a 46 f0 2787 2774 mov byte [es:bx+001f4h], al ; 26 88 87 f4 01 2788 2775 inc byte [bp-00ch] ; fe 46 f4 2789 mov al, byte [bp-01 4h] ; 8a 46 ec2776 mov al, byte [bp-012h] ; 8a 46 ee 2790 2777 cmp AL, strict byte 003h ; 3c 03 2791 je short 026 24h ; 74 322778 je short 02605h ; 74 32 2792 2779 cmp AL, strict byte 002h ; 3c 02 2793 jne short 026 4bh ; 75 552794 mov al, byte [bp-0 0eh] ; 8a 46 f22780 jne short 0262ch ; 75 55 2781 mov al, byte [bp-010h] ; 8a 46 f0 2795 2782 xor ah, ah ; 30 e4 2796 2783 mov dx, strict word 0001ch ; ba 1c 00 2797 2784 imul dx ; f7 ea 2798 mov es, [bp-02 4h] ; 8e 46 dc2799 mov di, word [bp-0 2ch] ; 8b 7e d42785 mov es, [bp-022h] ; 8e 46 de 2786 mov di, word [bp-01eh] ; 8b 7e e2 2800 2787 add di, ax ; 01 c7 2801 2788 mov ax, word [es:di+03ch] ; 26 8b 45 3c … … 2804 2791 mov dx, word [es:di+036h] ; 26 8b 55 36 2805 2792 mov si, strict word 0000bh ; be 0b 00 2806 call 0a2 6ah ; e8 4c7c2807 mov word [bp-0 34h], dx ; 89 56 cc2808 mov word [bp-0 36h], cx ; 89 4e ca2809 mov dh, byte [bp-001c 9h] ; 8a b6 37fe2810 mov dl, byte [bp-001c ah] ; 8a 96 36fe2811 mov byte [bp-0 16h], 00fh ; c6 46 ea0f2812 jmp short 026 3bh ; eb 092813 dec byte [bp-0 16h] ; fe 4e ea2814 cmp byte [bp-0 16h], 000h ; 80 7e ea002815 jbe short 026 47h ; 76 0c2816 mov cl, byte [bp-0 16h] ; 8a 4e ea2793 call 0a20ah ; e8 0b 7c 2794 mov word [bp-02ah], dx ; 89 56 d6 2795 mov word [bp-026h], cx ; 89 4e da 2796 mov dh, byte [bp-001c7h] ; 8a b6 39 fe 2797 mov dl, byte [bp-001c8h] ; 8a 96 38 fe 2798 mov byte [bp-00eh], 00fh ; c6 46 f2 0f 2799 jmp short 0261ch ; eb 09 2800 dec byte [bp-00eh] ; fe 4e f2 2801 cmp byte [bp-00eh], 000h ; 80 7e f2 00 2802 jbe short 02628h ; 76 0c 2803 mov cl, byte [bp-00eh] ; 8a 4e f2 2817 2804 mov ax, strict word 00001h ; b8 01 00 2818 2805 sal ax, CL ; d3 e0 2819 2806 test dx, ax ; 85 c2 2820 je short 026 32h ; 74 eb2807 je short 02613h ; 74 eb 2821 2808 xor di, di ; 31 ff 2822 jmp short 026 52h ; eb 072823 jmp short 026 81h ; eb 342809 jmp short 02633h ; eb 07 2810 jmp short 02662h ; eb 34 2824 2811 cmp di, strict byte 00014h ; 83 ff 14 2825 jnl short 026 67h ; 7d 152812 jnl short 02648h ; 7d 15 2826 2813 mov si, di ; 89 fe 2827 2814 sal si, 1 ; d1 e6 2828 mov al, byte [bp+si-0023 3h] ; 8a 82 cdfd2829 mov byte [bp+si-06 ah], al ; 88 42 962830 mov al, byte [bp+si-0023 4h] ; 8a 82 ccfd2831 mov byte [bp+si-06 9h], al ; 88 42 972815 mov al, byte [bp+si-00231h] ; 8a 82 cf fd 2816 mov byte [bp+si-068h], al ; 88 42 98 2817 mov al, byte [bp+si-00232h] ; 8a 82 ce fd 2818 mov byte [bp+si-067h], al ; 88 42 99 2832 2819 inc di ; 47 2833 jmp short 026 4dh ; eb e62834 mov byte [bp-04 2h], 000h ; c6 46 be002820 jmp short 0262eh ; eb e6 2821 mov byte [bp-040h], 000h ; c6 46 c0 00 2835 2822 mov di, strict word 00027h ; bf 27 00 2836 jmp short 026 75h ; eb 052823 jmp short 02656h ; eb 05 2837 2824 dec di ; 4f 2838 2825 test di, di ; 85 ff 2839 jle short 026 81h ; 7e 0c2840 cmp byte [bp+di-06 ah], 020h ; 80 7b 96202841 jne short 026 81h ; 75 062842 mov byte [bp+di-06 ah], 000h ; c6 43 96002843 jmp short 026 70h ; eb ef2844 mov al, byte [bp-01 4h] ; 8a 46 ec2826 jle short 02662h ; 7e 0c 2827 cmp byte [bp+di-068h], 020h ; 80 7b 98 20 2828 jne short 02662h ; 75 06 2829 mov byte [bp+di-068h], 000h ; c6 43 98 00 2830 jmp short 02651h ; eb ef 2831 mov al, byte [bp-012h] ; 8a 46 ee 2845 2832 cmp AL, strict byte 003h ; 3c 03 2846 je short 026 eeh ; 74 662833 je short 026cfh ; 74 66 2847 2834 cmp AL, strict byte 002h ; 3c 02 2848 je short 026 93h ; 74 072835 je short 02674h ; 74 07 2849 2836 cmp AL, strict byte 001h ; 3c 01 2850 je short 026 f9h ; 74 692851 jmp near 027 8bh ; e9 f8 002852 cmp byte [bp-01 8h], 000h ; 80 7e e8002853 je short 026 9eh ; 74 052837 je short 026dah ; 74 69 2838 jmp near 0276ch ; e9 f8 00 2839 cmp byte [bp-014h], 000h ; 80 7e ec 00 2840 je short 0267fh ; 74 05 2854 2841 mov ax, 0019fh ; b8 9f 01 2855 jmp short 026 a1h ; eb 032842 jmp short 02682h ; eb 03 2856 2843 mov ax, 001a6h ; b8 a6 01 2857 2844 push ax ; 50 2858 mov al, byte [bp-01 2h] ; 8a 46 ee2845 mov al, byte [bp-018h] ; 8a 46 e8 2859 2846 xor ah, ah ; 30 e4 2860 2847 push ax ; 50 … … 2863 2850 mov ax, strict word 00002h ; b8 02 00 2864 2851 push ax ; 50 2865 call 01976h ; e8 c3f22852 call 01976h ; e8 e2 f2 2866 2853 add sp, strict byte 00008h ; 83 c4 08 2867 2854 xor di, di ; 31 ff 2868 mov al, byte [bp+di-06 ah] ; 8a 43 962855 mov al, byte [bp+di-068h] ; 8a 43 98 2869 2856 xor ah, ah ; 30 e4 2870 2857 inc di ; 47 2871 2858 test ax, ax ; 85 c0 2872 je short 026 d3h ; 74 112859 je short 026b4h ; 74 11 2873 2860 push ax ; 50 2874 2861 mov ax, 001b8h ; b8 b8 01 … … 2876 2863 mov ax, strict word 00002h ; b8 02 00 2877 2864 push ax ; 50 2878 call 01976h ; e8 a8f22865 call 01976h ; e8 c7 f2 2879 2866 add sp, strict byte 00006h ; 83 c4 06 2880 jmp short 026 b8h ; eb e52881 push word [bp-0 36h] ; ff 76 ca2882 push word [bp-0 34h] ; ff 76 cc2883 mov al, byte [bp-0 16h] ; 8a 46 ea2867 jmp short 02699h ; eb e5 2868 push word [bp-026h] ; ff 76 da 2869 push word [bp-02ah] ; ff 76 d6 2870 mov al, byte [bp-00eh] ; 8a 46 f2 2884 2871 push ax ; 50 2885 2872 mov ax, 001bbh ; b8 bb 01 … … 2887 2874 mov ax, strict word 00002h ; b8 02 00 2888 2875 push ax ; 50 2889 call 01976h ; e8 8ef22876 call 01976h ; e8 ad f2 2890 2877 add sp, strict byte 0000ah ; 83 c4 0a 2891 jmp near 027 8bh ; e9 9d 002892 cmp byte [bp-01 8h], 000h ; 80 7e e8002893 je short 026 fbh ; 74 072878 jmp near 0276ch ; e9 9d 00 2879 cmp byte [bp-014h], 000h ; 80 7e ec 00 2880 je short 026dch ; 74 07 2894 2881 mov ax, 0019fh ; b8 9f 01 2895 jmp short 026 feh ; eb 052896 jmp short 027 68h ; eb 6d2882 jmp short 026dfh ; eb 05 2883 jmp short 02749h ; eb 6d 2897 2884 mov ax, 001a6h ; b8 a6 01 2898 2885 push ax ; 50 2899 mov al, byte [bp-01 2h] ; 8a 46 ee2886 mov al, byte [bp-018h] ; 8a 46 e8 2900 2887 xor ah, ah ; 30 e4 2901 2888 push ax ; 50 … … 2904 2891 mov ax, strict word 00002h ; b8 02 00 2905 2892 push ax ; 50 2906 call 01976h ; e8 66f22893 call 01976h ; e8 85 f2 2907 2894 add sp, strict byte 00008h ; 83 c4 08 2908 2895 xor di, di ; 31 ff 2909 mov al, byte [bp+di-06 ah] ; 8a 43 962896 mov al, byte [bp+di-068h] ; 8a 43 98 2910 2897 xor ah, ah ; 30 e4 2911 2898 inc di ; 47 2912 2899 test ax, ax ; 85 c0 2913 je short 027 30h ; 74 112900 je short 02711h ; 74 11 2914 2901 push ax ; 50 2915 2902 mov ax, 001b8h ; b8 b8 01 … … 2917 2904 mov ax, strict word 00002h ; b8 02 00 2918 2905 push ax ; 50 2919 call 01976h ; e8 4bf22906 call 01976h ; e8 6a f2 2920 2907 add sp, strict byte 00006h ; 83 c4 06 2921 jmp short 02 715h ; eb e52922 mov al, byte [bp-0 0eh] ; 8a 46 f22908 jmp short 026f6h ; eb e5 2909 mov al, byte [bp-010h] ; 8a 46 f0 2923 2910 mov dx, strict word 0001ch ; ba 1c 00 2924 2911 imul dx ; f7 ea 2925 mov es, [bp-02 4h] ; 8e 46 dc2926 mov bx, word [bp-0 2ch] ; 8b 5e d42912 mov es, [bp-022h] ; 8e 46 de 2913 mov bx, word [bp-01eh] ; 8b 5e e2 2927 2914 add bx, ax ; 01 c3 2928 2915 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 2929 jne short 027 52h ; 75 0b2930 mov al, byte [bp-0 16h] ; 8a 46 ea2916 jne short 02733h ; 75 0b 2917 mov al, byte [bp-00eh] ; 8a 46 f2 2931 2918 xor ah, ah ; 30 e4 2932 2919 push ax ; 50 2933 2920 mov ax, 001dbh ; b8 db 01 2934 jmp short 027 5bh ; eb 092935 mov al, byte [bp-0 16h] ; 8a 46 ea2921 jmp short 0273ch ; eb 09 2922 mov al, byte [bp-00eh] ; 8a 46 f2 2936 2923 xor ah, ah ; 30 e4 2937 2924 push ax ; 50 … … 2940 2927 mov ax, strict word 00002h ; b8 02 00 2941 2928 push ax ; 50 2942 call 01976h ; e8 13f22929 call 01976h ; e8 32 f2 2943 2930 add sp, strict byte 00006h ; 83 c4 06 2944 jmp short 027 8bh ; eb 232945 cmp byte [bp-01 8h], 000h ; 80 7e e8002946 je short 027 73h ; 74 052931 jmp short 0276ch ; eb 23 2932 cmp byte [bp-014h], 000h ; 80 7e ec 00 2933 je short 02754h ; 74 05 2947 2934 mov ax, 0019fh ; b8 9f 01 2948 jmp short 027 76h ; eb 032935 jmp short 02757h ; eb 03 2949 2936 mov ax, 001a6h ; b8 a6 01 2950 2937 push ax ; 50 2951 mov al, byte [bp-01 2h] ; 8a 46 ee2938 mov al, byte [bp-018h] ; 8a 46 e8 2952 2939 xor ah, ah ; 30 e4 2953 2940 push ax ; 50 … … 2956 2943 mov ax, strict word 00002h ; b8 02 00 2957 2944 push ax ; 50 2958 call 01976h ; e8 ee f12945 call 01976h ; e8 0d f2 2959 2946 add sp, strict byte 00008h ; 83 c4 08 2960 inc byte [bp-0 0eh] ; fe 46 f22961 cmp byte [bp-0 0eh], 008h ; 80 7e f2082962 jnc short 027 eah ; 73 562963 mov bl, byte [bp-0 0eh] ; 8a 5e f22947 inc byte [bp-010h] ; fe 46 f0 2948 cmp byte [bp-010h], 008h ; 80 7e f0 08 2949 jnc short 027cch ; 73 57 2950 mov bl, byte [bp-010h] ; 8a 5e f0 2964 2951 xor bh, bh ; 30 ff 2965 2952 mov ax, bx ; 89 d8 … … 2968 2955 ; sub ax, dx ; 2b c2 2969 2956 sar ax, 1 ; d1 f8 2970 mov word [bp-03ah], ax ; 89 46 c6 2971 mov al, byte [bp-03ah] ; 8a 46 c6 2972 mov byte [bp-012h], al ; 88 46 ee 2957 mov cx, ax ; 89 c1 2958 mov byte [bp-018h], al ; 88 46 e8 2973 2959 mov ax, bx ; 89 d8 2974 2960 cwd ; 99 2975 2961 mov bx, strict word 00002h ; bb 02 00 2976 2962 idiv bx ; f7 fb 2977 mov cx, dx ; 89 d1 2978 mov byte [bp-018h], dl ; 88 56 e8 2979 mov al, byte [bp-03ah] ; 8a 46 c6 2963 mov word [bp-038h], dx ; 89 56 c8 2964 mov al, byte [bp-038h] ; 8a 46 c8 2965 mov byte [bp-014h], al ; 88 46 ec 2966 mov al, cl ; 88 c8 2980 2967 xor ah, ah ; 30 e4 2981 2968 mov dx, strict word 00006h ; ba 06 00 2982 2969 imul dx ; f7 ea 2983 mov es, [bp-02 4h] ; 8e 46 dc2984 mov si, word [bp-0 2ch] ; 8b 76 d42970 mov es, [bp-022h] ; 8e 46 de 2971 mov si, word [bp-01eh] ; 8b 76 e2 2985 2972 add si, ax ; 01 c6 2986 2973 mov bx, word [es:si+00206h] ; 26 8b 9c 06 02 2987 2974 mov ax, word [es:si+00208h] ; 26 8b 84 08 02 2988 mov word [bp-0 30h], ax ; 89 46 d02975 mov word [bp-028h], ax ; 89 46 d8 2989 2976 mov dx, ax ; 89 c2 2990 2977 add dx, strict byte 00006h ; 83 c2 06 2991 2978 mov AL, strict byte 00ah ; b0 0a 2992 2979 out DX, AL ; ee 2993 test cl, cl ; 84 c92994 jne short 027 e4h ; 75 032995 jmp near 021b6h ; e9 d2f92980 cmp byte [bp-038h], 000h ; 80 7e c8 00 2981 jne short 027c6h ; 75 03 2982 jmp near 021b6h ; e9 f0 f9 2996 2983 mov ax, 000b0h ; b8 b0 00 2997 jmp near 021b9h ; e9 cff92998 mov al, byte [bp-0 10h] ; 8a 46 f02999 mov es, [bp-02 4h] ; 8e 46 dc3000 mov bx, word [bp-0 2ch] ; 8b 5e d42984 jmp near 021b9h ; e9 ed f9 2985 mov al, byte [bp-008h] ; 8a 46 f8 2986 mov es, [bp-022h] ; 8e 46 de 2987 mov bx, word [bp-01eh] ; 8b 5e e2 3001 2988 mov byte [es:bx+001e2h], al ; 26 88 87 e2 01 3002 2989 mov al, byte [bp-00ch] ; 8a 46 f4 3003 2990 mov byte [es:bx+001f3h], al ; 26 88 87 f3 01 3004 mov bl, byte [bp-0 10h] ; 8a 5e f02991 mov bl, byte [bp-008h] ; 8a 5e f8 3005 2992 xor bh, bh ; 30 ff 3006 2993 mov dx, strict word 00075h ; ba 75 00 3007 2994 mov ax, strict word 00040h ; b8 40 00 3008 call 01660h ; e8 52ee2995 call 01660h ; e8 70 ee 3009 2996 lea sp, [bp-004h] ; 8d 66 fc 3010 2997 pop di ; 5f … … 3012 2999 pop bp ; 5d 3013 3000 retn ; c3 3014 ata_cmd_data_out_: ; 0xf2 815LB 0x28e3001 ata_cmd_data_out_: ; 0xf27f7 LB 0x28e 3015 3002 push bp ; 55 3016 3003 mov bp, sp ; 89 e5 … … 3045 3032 ; sub ah, ah ; 2a e4 3046 3033 test AL, strict byte 080h ; a8 80 3047 je short 028 76h ; 74 0f3034 je short 02858h ; 74 0f 3048 3035 mov dx, word [bp-00eh] ; 8b 56 f2 3049 3036 add dx, strict byte 00006h ; 83 c2 06 … … 3051 3038 out DX, AL ; ee 3052 3039 mov ax, strict word 00001h ; b8 01 00 3053 jmp near 02a 9ch ; e9 26 023040 jmp near 02a7eh ; e9 26 02 3054 3041 mov es, [bp-00ah] ; 8e 46 f6 3055 3042 mov ax, word [es:di+006h] ; 26 8b 45 06 … … 3073 3060 mov ax, word [bp-014h] ; 8b 46 ec 3074 3061 test ax, ax ; 85 c0 3075 je short 028 c1h ; 74 033076 jmp near 029 88h ; e9 c7 003062 je short 028a3h ; 74 03 3063 jmp near 0296ah ; e9 c7 00 3077 3064 xor bx, bx ; 31 db 3078 3065 xor dx, dx ; 31 d2 … … 3083 3070 adc ax, word [bp-00ch] ; 13 46 f4 3084 3071 test ax, ax ; 85 c0 3085 jnbe short 028 e8h ; 77 103086 jne short 029 4bh ; 75 713072 jnbe short 028cah ; 77 10 3073 jne short 0292dh ; 75 71 3087 3074 test dx, dx ; 85 d2 3088 jnbe short 028 e8h ; 77 0a3089 jne short 029 4bh ; 75 6b3075 jnbe short 028cah ; 77 0a 3076 jne short 0292dh ; 75 6b 3090 3077 cmp bx, 01000h ; 81 fb 00 10 3091 jnbe short 028 e8h ; 77 023092 jne short 029 4bh ; 75 633078 jnbe short 028cah ; 77 02 3079 jne short 0292dh ; 75 63 3093 3080 mov ax, word [bp-00ch] ; 8b 46 f4 3094 3081 mov bx, word [bp-020h] ; 8b 5e e0 … … 3096 3083 mov dx, word [bp-022h] ; 8b 56 de 3097 3084 mov si, strict word 00018h ; be 18 00 3098 call 0a2 6ah ; e8 70793085 call 0a20ah ; e8 2e 79 3099 3086 xor dh, dh ; 30 f6 3100 3087 mov word [bp-014h], dx ; 89 56 ec … … 3104 3091 mov dx, word [bp-022h] ; 8b 56 de 3105 3092 mov si, strict word 00020h ; be 20 00 3106 call 0a2 6ah ; e8 59793093 call 0a20ah ; e8 17 79 3107 3094 mov bx, dx ; 89 d3 3108 3095 mov word [bp-024h], dx ; 89 56 dc … … 3138 3125 mov dx, word [bp-022h] ; 8b 56 de 3139 3126 mov si, strict word 00008h ; be 08 00 3140 call 0a2 6ah ; e8 05 793127 call 0a20ah ; e8 c3 78 3141 3128 mov word [bp-00ch], ax ; 89 46 f4 3142 3129 mov word [bp-020h], bx ; 89 5e e0 … … 3145 3132 mov word [bp-024h], dx ; 89 56 dc 3146 3133 mov si, strict word 00010h ; be 10 00 3147 call 0a2 6ah ; e8 f0783134 call 0a20ah ; e8 ae 78 3148 3135 mov word [bp-022h], dx ; 89 56 de 3149 3136 mov ax, dx ; 89 d0 … … 3178 3165 out DX, AL ; ee 3179 3166 cmp byte [bp-006h], 000h ; 80 7e fa 00 3180 je short 029 cah ; 74 053167 je short 029ach ; 74 05 3181 3168 mov ax, 000b0h ; b8 b0 00 3182 jmp short 029 cdh ; eb 033169 jmp short 029afh ; eb 03 3183 3170 mov ax, 000a0h ; b8 a0 00 3184 3171 mov dl, byte [bp-018h] ; 8a 56 e8 … … 3199 3186 mov bl, al ; 88 c3 3200 3187 test AL, strict byte 080h ; a8 80 3201 jne short 029 e5h ; 75 f13188 jne short 029c7h ; 75 f1 3202 3189 test AL, strict byte 001h ; a8 01 3203 je short 02 a07h ; 74 0f3190 je short 029e9h ; 74 0f 3204 3191 mov dx, word [bp-00eh] ; 8b 56 f2 3205 3192 add dx, strict byte 00006h ; 83 c2 06 … … 3207 3194 out DX, AL ; ee 3208 3195 mov ax, strict word 00002h ; b8 02 00 3209 jmp near 02a 9ch ; e9 95 003196 jmp near 02a7eh ; e9 95 00 3210 3197 test bl, 008h ; f6 c3 08 3211 jne short 02 a1bh ; 75 0f3198 jne short 029fdh ; 75 0f 3212 3199 mov dx, word [bp-00eh] ; 8b 56 f2 3213 3200 add dx, strict byte 00006h ; 83 c2 06 … … 3215 3202 out DX, AL ; ee 3216 3203 mov ax, strict word 00003h ; b8 03 00 3217 jmp near 02a 9ch ; e9 81 003204 jmp near 02a7eh ; e9 81 00 3218 3205 sti ; fb 3219 3206 mov ax, word [bp-016h] ; 8b 46 ea 3220 3207 cmp ax, 0f800h ; 3d 00 f8 3221 jc short 02a 36h ; 72 123208 jc short 02a18h ; 72 12 3222 3209 mov dx, ax ; 89 c2 3223 3210 sub dx, 00800h ; 81 ea 00 08 … … 3243 3230 mov bl, al ; 88 c3 3244 3231 test AL, strict byte 080h ; a8 80 3245 jne short 02a 52h ; 75 f13232 jne short 02a34h ; 75 f1 3246 3233 cmp word [bp-01ah], strict byte 00000h ; 83 7e e6 00 3247 jne short 02a 7bh ; 75 143234 jne short 02a5dh ; 75 14 3248 3235 and AL, strict byte 0e9h ; 24 e9 3249 3236 cmp AL, strict byte 040h ; 3c 40 3250 je short 02a 91h ; 74 243237 je short 02a73h ; 74 24 3251 3238 mov dx, word [bp-00eh] ; 8b 56 f2 3252 3239 add dx, strict byte 00006h ; 83 c2 06 … … 3254 3241 out DX, AL ; ee 3255 3242 mov ax, strict word 00006h ; b8 06 00 3256 jmp short 02a 9ch ; eb 213243 jmp short 02a7eh ; eb 21 3257 3244 mov al, bl ; 88 d8 3258 3245 and AL, strict byte 0c9h ; 24 c9 3259 3246 cmp AL, strict byte 048h ; 3c 48 3260 je short 02 a1ch ; 74 993247 je short 029feh ; 74 99 3261 3248 mov dx, word [bp-00eh] ; 8b 56 f2 3262 3249 add dx, strict byte 00006h ; 83 c2 06 … … 3264 3251 out DX, AL ; ee 3265 3252 mov ax, strict word 00007h ; b8 07 00 3266 jmp short 02a 9ch ; eb 0b3253 jmp short 02a7eh ; eb 0b 3267 3254 mov dx, word [bp-00eh] ; 8b 56 f2 3268 3255 add dx, strict byte 00006h ; 83 c2 06 … … 3275 3262 pop bp ; 5d 3276 3263 retn ; c3 3277 @ata_read_sectors: ; 0xf2a a3LB 0xc13264 @ata_read_sectors: ; 0xf2a85 LB 0xc1 3278 3265 push bp ; 55 3279 3266 mov bp, sp ; 89 e5 … … 3290 3277 mov cx, dx ; 89 d1 3291 3278 cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00 3292 je short 02a ebh ; 74 233279 je short 02acdh ; 74 23 3293 3280 xor ah, ah ; 30 e4 3294 3281 mov di, strict word 0001ch ; bf 1c 00 … … 3302 3289 mov bx, 000c4h ; bb c4 00 3303 3290 mov ax, si ; 89 f0 3304 call 01e9dh ; e8 b7f33291 call 01e9dh ; e8 d5 f3 3305 3292 mov es, [bp-00ah] ; 8e 46 f6 3306 jmp short 02b 55h ; eb 6a3293 jmp short 02b37h ; eb 6a 3307 3294 xor di, di ; 31 ff 3308 3295 mov word [bp-008h], di ; 89 7e f8 … … 3318 3305 adc dx, word [bp-00ah] ; 13 56 f6 3319 3306 test dx, dx ; 85 d2 3320 jnbe short 02b 26h ; 77 123321 jne short 02b 34h ; 75 1e3307 jnbe short 02b08h ; 77 12 3308 jne short 02b16h ; 75 1e 3322 3309 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 3323 jnbe short 02b 26h ; 77 0a3324 jne short 02b 34h ; 75 163310 jnbe short 02b08h ; 77 0a 3311 jne short 02b16h ; 75 16 3325 3312 cmp di, 01000h ; 81 ff 00 10 3326 jnbe short 02b 26h ; 77 023327 jne short 02b 34h ; 75 0e3313 jnbe short 02b08h ; 77 02 3314 jne short 02b16h ; 75 0e 3328 3315 mov cx, bx ; 89 d9 3329 3316 mov bx, strict word 00024h ; bb 24 00 3330 3317 mov ax, si ; 89 f0 3331 3318 mov dx, es ; 8c c2 3332 call 01e9dh ; e8 6bf33333 jmp short 02b 5bh ; eb 273319 call 01e9dh ; e8 89 f3 3320 jmp short 02b3dh ; eb 27 3334 3321 xor ah, ah ; 30 e4 3335 3322 mov di, strict word 0001ch ; bf 1c 00 … … 3343 3330 mov bx, 000c4h ; bb c4 00 3344 3331 mov ax, si ; 89 f0 3345 call 01e9dh ; e8 4bf33332 call 01e9dh ; e8 69 f3 3346 3333 mov es, [bp-006h] ; 8e 46 fa 3347 3334 mov word [es:di+028h], 00200h ; 26 c7 45 28 00 02 … … 3351 3338 pop bp ; 5d 3352 3339 retn 00004h ; c2 04 00 3353 @ata_write_sectors: ; 0xf2b 64LB 0x5b3340 @ata_write_sectors: ; 0xf2b46 LB 0x5b 3354 3341 push bp ; 55 3355 3342 mov bp, sp ; 89 e5 … … 3360 3347 mov cx, word [es:si+00eh] ; 26 8b 4c 0e 3361 3348 cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00 3362 je short 02b 84h ; 74 0c3349 je short 02b66h ; 74 0c 3363 3350 mov bx, strict word 00030h ; bb 30 00 3364 3351 mov ax, si ; 89 f0 3365 3352 mov dx, es ; 8c c2 3366 call 02 815h ; e8 93 fc3367 jmp short 02b b6h ; eb 323353 call 027f7h ; e8 93 fc 3354 jmp short 02b98h ; eb 32 3368 3355 xor ax, ax ; 31 c0 3369 3356 xor bx, bx ; 31 db … … 3376 3363 adc dx, word [es:si+006h] ; 26 13 54 06 3377 3364 test dx, dx ; 85 d2 3378 jnbe short 02b b1h ; 77 0f3379 jne short 02b 78h ; 75 d43365 jnbe short 02b93h ; 77 0f 3366 jne short 02b5ah ; 75 d4 3380 3367 test bx, bx ; 85 db 3381 jnbe short 02b b1h ; 77 093382 jne short 02b 78h ; 75 ce3368 jnbe short 02b93h ; 77 09 3369 jne short 02b5ah ; 75 ce 3383 3370 cmp ax, 01000h ; 3d 00 10 3384 jnbe short 02b b1h ; 77 023385 jne short 02b 78h ; 75 c73371 jnbe short 02b93h ; 77 02 3372 jne short 02b5ah ; 75 c7 3386 3373 mov bx, strict word 00034h ; bb 34 00 3387 jmp short 02b 7bh ; eb c53374 jmp short 02b5dh ; eb c5 3388 3375 lea sp, [bp-004h] ; 8d 66 fc 3389 3376 pop di ; 5f … … 3391 3378 pop bp ; 5d 3392 3379 retn 00004h ; c2 04 00 3393 ata_cmd_packet_: ; 0xf2b bfLB 0x28b3380 ata_cmd_packet_: ; 0xf2ba1 LB 0x28b 3394 3381 push bp ; 55 3395 3382 mov bp, sp ; 89 e5 … … 3403 3390 mov dx, strict word 0000eh ; ba 0e 00 3404 3391 mov ax, strict word 00040h ; b8 40 00 3405 call 0166eh ; e8 96ea3392 call 0166eh ; e8 b4 ea 3406 3393 mov word [bp-010h], 00122h ; c7 46 f0 22 01 3407 3394 mov word [bp-00eh], ax ; 89 46 f2 … … 3411 3398 and cl, 001h ; 80 e1 01 3412 3399 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 3413 jne short 02 c14h ; 75 233400 jne short 02bf6h ; 75 23 3414 3401 mov bx, 00da0h ; bb a0 0d 3415 3402 mov cx, ds ; 8c d9 3416 3403 mov ax, strict word 00004h ; b8 04 00 3417 call 01933h ; e8 37ed3404 call 01933h ; e8 55 ed 3418 3405 mov ax, 00221h ; b8 21 02 3419 3406 push ax ; 50 … … 3422 3409 mov ax, strict word 00004h ; b8 04 00 3423 3410 push ax ; 50 3424 call 01976h ; e8 6bed3411 call 01976h ; e8 89 ed 3425 3412 add sp, strict byte 00006h ; 83 c4 06 3426 3413 mov ax, strict word 00001h ; b8 01 00 3427 jmp near 02e 41h ; e9 2d 023414 jmp near 02e23h ; e9 2d 02 3428 3415 test byte [bp+004h], 001h ; f6 46 04 01 3429 jne short 02 c0eh ; 75 f43416 jne short 02bf0h ; 75 f4 3430 3417 xor ah, ah ; 30 e4 3431 3418 mov dx, strict word 00006h ; ba 06 00 … … 3442 3429 mov al, byte [bp-006h] ; 8a 46 fa 3443 3430 cmp AL, strict byte 00ch ; 3c 0c 3444 jnc short 02c 4bh ; 73 063431 jnc short 02c2dh ; 73 06 3445 3432 mov byte [bp-006h], 00ch ; c6 46 fa 0c 3446 jmp short 02c 51h ; eb 063447 jbe short 02c 51h ; 76 043433 jmp short 02c33h ; eb 06 3434 jbe short 02c33h ; 76 04 3448 3435 mov byte [bp-006h], 010h ; c6 46 fa 10 3449 3436 shr byte [bp-006h], 1 ; d0 6e fa … … 3458 3445 ; sub ah, ah ; 2a e4 3459 3446 test AL, strict byte 080h ; a8 80 3460 je short 02c 7ch ; 74 063447 je short 02c5eh ; 74 06 3461 3448 mov ax, strict word 00002h ; b8 02 00 3462 jmp near 02e 41h ; e9 c5 013449 jmp near 02e23h ; e9 c5 01 3463 3450 mov dx, word [bp-008h] ; 8b 56 f8 3464 3451 add dx, strict byte 00006h ; 83 c2 06 … … 3474 3461 out DX, AL ; ee 3475 3462 test cl, cl ; 84 c9 3476 je short 02c a0h ; 74 053463 je short 02c82h ; 74 05 3477 3464 mov ax, 000b0h ; b8 b0 00 3478 jmp short 02c a3h ; eb 033465 jmp short 02c85h ; eb 03 3479 3466 mov ax, 000a0h ; b8 a0 00 3480 3467 mov dx, word [bp-012h] ; 8b 56 ee … … 3492 3479 mov bl, al ; 88 c3 3493 3480 test AL, strict byte 080h ; a8 80 3494 jne short 02c b3h ; 75 f13481 jne short 02c95h ; 75 f1 3495 3482 test AL, strict byte 001h ; a8 01 3496 je short 02c d5h ; 74 0f3483 je short 02cb7h ; 74 0f 3497 3484 mov dx, word [bp-008h] ; 8b 56 f8 3498 3485 add dx, strict byte 00006h ; 83 c2 06 … … 3500 3487 out DX, AL ; ee 3501 3488 mov ax, strict word 00003h ; b8 03 00 3502 jmp near 02e 41h ; e9 6c 013489 jmp near 02e23h ; e9 6c 01 3503 3490 test bl, 008h ; f6 c3 08 3504 jne short 02c e9h ; 75 0f3491 jne short 02ccbh ; 75 0f 3505 3492 mov dx, word [bp-008h] ; 8b 56 f8 3506 3493 add dx, strict byte 00006h ; 83 c2 06 … … 3508 3495 out DX, AL ; ee 3509 3496 mov ax, strict word 00004h ; b8 04 00 3510 jmp near 02e 41h ; e9 58 013497 jmp near 02e23h ; e9 58 01 3511 3498 sti ; fb 3512 3499 mov CL, strict byte 004h ; b1 04 … … 3522 3509 ; rep es outsw ; f3 26 6f 3523 3510 cmp byte [bp+00ah], 000h ; 80 7e 0a 00 3524 jne short 02 d13h ; 75 0b3511 jne short 02cf5h ; 75 0b 3525 3512 add dx, strict byte 00007h ; 83 c2 07 3526 3513 in AL, DX ; ec … … 3528 3515 ; sub ah, ah ; 2a e4 3529 3516 mov bl, al ; 88 c3 3530 jmp near 02e 22h ; e9 0f 013517 jmp near 02e04h ; e9 0f 01 3531 3518 mov dx, word [bp-012h] ; 8b 56 ee 3532 3519 add dx, strict byte 00007h ; 83 c2 07 … … 3536 3523 mov bl, al ; 88 c3 3537 3524 test AL, strict byte 080h ; a8 80 3538 jne short 02 d13h ; 75 f13525 jne short 02cf5h ; 75 f1 3539 3526 test AL, strict byte 088h ; a8 88 3540 je short 02d 88h ; 74 623527 je short 02d6ah ; 74 62 3541 3528 test AL, strict byte 001h ; a8 01 3542 je short 02d 35h ; 74 0b3529 je short 02d17h ; 74 0b 3543 3530 mov dx, word [bp-008h] ; 8b 56 f8 3544 3531 add dx, strict byte 00006h ; 83 c2 06 3545 3532 mov AL, strict byte 008h ; b0 08 3546 3533 out DX, AL ; ee 3547 jmp short 02c cfh ; eb 9a3534 jmp short 02cb1h ; eb 9a 3548 3535 mov al, bl ; 88 d8 3549 3536 and AL, strict byte 0c9h ; 24 c9 3550 3537 cmp AL, strict byte 048h ; 3c 48 3551 je short 02d 48h ; 74 0b3538 je short 02d2ah ; 74 0b 3552 3539 mov dx, word [bp-008h] ; 8b 56 f8 3553 3540 add dx, strict byte 00006h ; 83 c2 06 3554 3541 mov AL, strict byte 008h ; b0 08 3555 3542 out DX, AL ; ee 3556 jmp short 02c e3h ; eb 9b3543 jmp short 02cc5h ; eb 9b 3557 3544 mov CL, strict byte 004h ; b1 04 3558 3545 mov ax, word [bp+00ch] ; 8b 46 0c … … 3579 3566 mov ax, word [bp+004h] ; 8b 46 04 3580 3567 cmp bx, ax ; 39 c3 3581 jnc short 02d 8bh ; 73 0c3568 jnc short 02d6dh ; 73 0c 3582 3569 mov cx, bx ; 89 d9 3583 3570 sub word [bp+004h], bx ; 29 5e 04 3584 3571 xor bx, bx ; 31 db 3585 jmp short 02d 94h ; eb 0c3586 jmp near 02e 22h ; e9 97 003572 jmp short 02d76h ; eb 0c 3573 jmp near 02e04h ; e9 97 00 3587 3574 mov cx, ax ; 89 c1 3588 3575 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 3590 3577 xor ax, ax ; 31 c0 3591 3578 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 3592 jne short 02d b2h ; 75 163579 jne short 02d94h ; 75 16 3593 3580 cmp bx, word [bp+006h] ; 3b 5e 06 3594 jbe short 02d b2h ; 76 113581 jbe short 02d94h ; 76 11 3595 3582 sub bx, word [bp+006h] ; 2b 5e 06 3596 3583 mov word [bp-014h], bx ; 89 5e ec … … 3598 3585 mov word [bp+006h], ax ; 89 46 06 3599 3586 mov word [bp+008h], ax ; 89 46 08 3600 jmp short 02d bbh ; eb 093587 jmp short 02d9dh ; eb 09 3601 3588 mov word [bp-014h], ax ; 89 46 ec 3602 3589 sub word [bp+006h], bx ; 29 5e 06 … … 3607 3594 test byte [bp-014h], 003h ; f6 46 ec 03 3608 3595 test bl, 001h ; f6 c3 01 3609 je short 02d dch ; 74 103596 je short 02dbeh ; 74 10 3610 3597 inc bx ; 43 3611 3598 cmp word [bp-014h], strict byte 00000h ; 83 7e ec 00 3612 jbe short 02d dch ; 76 093599 jbe short 02dbeh ; 76 09 3613 3600 test byte [bp-014h], 001h ; f6 46 ec 01 3614 je short 02d dch ; 74 033601 je short 02dbeh ; 74 03 3615 3602 dec word [bp-014h] ; ff 4e ec 3616 3603 shr bx, 1 ; d1 eb … … 3618 3605 shr word [bp-014h], 1 ; d1 6e ec 3619 3606 test cx, cx ; 85 c9 3620 je short 02d edh ; 74 063607 je short 02dcfh ; 74 06 3621 3608 mov dx, word [bp-012h] ; 8b 56 ee 3622 3609 in ax, DX ; ed 3623 loop 02d eah ; e2 fd3610 loop 02dcch ; e2 fd 3624 3611 mov dx, word [bp-012h] ; 8b 56 ee 3625 3612 mov cx, bx ; 89 d9 … … 3628 3615 mov ax, word [bp-014h] ; 8b 46 ec 3629 3616 test ax, ax ; 85 c0 3630 je short 02 e03h ; 74 053617 je short 02de5h ; 74 05 3631 3618 mov cx, ax ; 89 c1 3632 3619 in ax, DX ; ed 3633 loop 02 e00h ; e2 fd3620 loop 02de2h ; e2 fd 3634 3621 add word [bp+00ch], si ; 01 76 0c 3635 3622 xor ax, ax ; 31 c0 … … 3641 3628 mov ax, word [bp-00ah] ; 8b 46 f6 3642 3629 mov word [es:bx+01ch], ax ; 26 89 47 1c 3643 jmp near 02 d13h ; e9 f1 fe3630 jmp near 02cf5h ; e9 f1 fe 3644 3631 mov al, bl ; 88 d8 3645 3632 and AL, strict byte 0e9h ; 24 e9 3646 3633 cmp AL, strict byte 040h ; 3c 40 3647 je short 02e 36h ; 74 0c3634 je short 02e18h ; 74 0c 3648 3635 mov dx, word [bp-008h] ; 8b 56 f8 3649 3636 add dx, strict byte 00006h ; 83 c2 06 3650 3637 mov AL, strict byte 008h ; b0 08 3651 3638 out DX, AL ; ee 3652 jmp near 02c e3h ; e9 ad fe3639 jmp near 02cc5h ; e9 ad fe 3653 3640 mov dx, word [bp-008h] ; 8b 56 f8 3654 3641 add dx, strict byte 00006h ; 83 c2 06 … … 3661 3648 pop bp ; 5d 3662 3649 retn 0000ch ; c2 0c 00 3663 ata_soft_reset_: ; 0xf2e 4aLB 0x843650 ata_soft_reset_: ; 0xf2e2c LB 0x84 3664 3651 push bp ; 55 3665 3652 mov bp, sp ; 89 e5 … … 3671 3658 mov dx, strict word 0000eh ; ba 0e 00 3672 3659 mov ax, strict word 00040h ; b8 40 00 3673 call 0166eh ; e8 12e83660 call 0166eh ; e8 30 e8 3674 3661 mov es, ax ; 8e c0 3675 3662 mov ax, bx ; 89 d8 … … 3688 3675 out DX, AL ; ee 3689 3676 cmp byte [bp-008h], 000h ; 80 7e f8 00 3690 je short 02e 90h ; 74 053677 je short 02e72h ; 74 05 3691 3678 mov ax, 000b0h ; b8 b0 00 3692 jmp short 02e 93h ; eb 033679 jmp short 02e75h ; eb 03 3693 3680 mov ax, 000a0h ; b8 a0 00 3694 3681 mov dx, cx ; 89 ca … … 3705 3692 ; sub ah, ah ; 2a e4 3706 3693 test AL, strict byte 080h ; a8 80 3707 jne short 02e a1h ; 75 f43694 jne short 02e83h ; 75 f4 3708 3695 and AL, strict byte 0e9h ; 24 e9 3709 3696 cmp AL, strict byte 040h ; 3c 40 3710 je short 02e beh ; 74 0b3697 je short 02ea0h ; 74 0b 3711 3698 lea dx, [bx+006h] ; 8d 57 06 3712 3699 mov AL, strict byte 008h ; b0 08 3713 3700 out DX, AL ; ee 3714 3701 mov ax, strict word 00001h ; b8 01 00 3715 jmp short 02e c6h ; eb 083702 jmp short 02ea8h ; eb 08 3716 3703 lea dx, [bx+006h] ; 8d 57 06 3717 3704 mov AL, strict byte 008h ; b0 08 … … 3724 3711 pop bp ; 5d 3725 3712 retn ; c3 3726 set_diskette_ret_status_: ; 0xf2e ceLB 0x193713 set_diskette_ret_status_: ; 0xf2eb0 LB 0x19 3727 3714 push bp ; 55 3728 3715 mov bp, sp ; 89 e5 … … 3733 3720 mov dx, strict word 00041h ; ba 41 00 3734 3721 mov ax, strict word 00040h ; b8 40 00 3735 call 01660h ; e8 80e73722 call 01660h ; e8 9e e7 3736 3723 lea sp, [bp-004h] ; 8d 66 fc 3737 3724 pop dx ; 5a … … 3739 3726 pop bp ; 5d 3740 3727 retn ; c3 3741 set_diskette_current_cyl_: ; 0xf2e e7LB 0x363728 set_diskette_current_cyl_: ; 0xf2ec9 LB 0x36 3742 3729 push bp ; 55 3743 3730 mov bp, sp ; 89 e5 … … 3746 3733 mov bl, al ; 88 c3 3747 3734 cmp AL, strict byte 001h ; 3c 01 3748 jbe short 02 f00h ; 76 0e3735 jbe short 02ee2h ; 76 0e 3749 3736 mov ax, 00250h ; b8 50 02 3750 3737 push ax ; 50 3751 3738 mov ax, strict word 00007h ; b8 07 00 3752 3739 push ax ; 50 3753 call 01976h ; e8 79ea3740 call 01976h ; e8 97 ea 3754 3741 add sp, strict byte 00004h ; 83 c4 04 3755 3742 mov al, dl ; 88 d0 … … 3761 3748 mov bx, cx ; 89 cb 3762 3749 mov ax, strict word 00040h ; b8 40 00 3763 call 01660h ; e8 4ae73750 call 01660h ; e8 68 e7 3764 3751 lea sp, [bp-004h] ; 8d 66 fc 3765 3752 pop cx ; 59 … … 3767 3754 pop bp ; 5d 3768 3755 retn ; c3 3769 floppy_wait_for_interrupt_: ; 0xf2 f1dLB 0x213756 floppy_wait_for_interrupt_: ; 0xf2eff LB 0x21 3770 3757 push bp ; 55 3771 3758 mov bp, sp ; 89 e5 … … 3774 3761 mov dx, strict word 0003eh ; ba 3e 00 3775 3762 mov ax, strict word 00040h ; b8 40 00 3776 call 01652h ; e8 27e73763 call 01652h ; e8 45 e7 3777 3764 test AL, strict byte 080h ; a8 80 3778 je short 02f 33h ; 74 043765 je short 02f15h ; 74 04 3779 3766 and AL, strict byte 080h ; 24 80 3780 jmp short 02f 38h ; eb 053767 jmp short 02f1ah ; eb 05 3781 3768 sti ; fb 3782 3769 hlt ; f4 3783 3770 cli ; fa 3784 jmp short 02f 22h ; eb ea3771 jmp short 02f04h ; eb ea 3785 3772 lea sp, [bp-002h] ; 8d 66 fe 3786 3773 pop dx ; 5a 3787 3774 pop bp ; 5d 3788 3775 retn ; c3 3789 floppy_wait_for_interrupt_or_timeout_: ; 0xf2f 3eLB 0x473776 floppy_wait_for_interrupt_or_timeout_: ; 0xf2f20 LB 0x47 3790 3777 push bp ; 55 3791 3778 mov bp, sp ; 89 e5 … … 3796 3783 mov dx, strict word 00040h ; ba 40 00 3797 3784 mov ax, dx ; 89 d0 3798 call 01652h ; e8 05e73785 call 01652h ; e8 23 e7 3799 3786 test al, al ; 84 c0 3800 jne short 02f 56h ; 75 053787 jne short 02f38h ; 75 05 3801 3788 sti ; fb 3802 3789 xor cl, cl ; 30 c9 3803 jmp short 02f 7bh ; eb 253790 jmp short 02f5dh ; eb 25 3804 3791 mov dx, strict word 0003eh ; ba 3e 00 3805 3792 mov ax, strict word 00040h ; b8 40 00 3806 call 01652h ; e8 f3 e63793 call 01652h ; e8 11 e7 3807 3794 mov cl, al ; 88 c1 3808 3795 test AL, strict byte 080h ; a8 80 3809 je short 02f 76h ; 74 113796 je short 02f58h ; 74 11 3810 3797 and AL, strict byte 07fh ; 24 7f 3811 3798 xor ah, ah ; 30 e4 … … 3813 3800 mov dx, strict word 0003eh ; ba 3e 00 3814 3801 mov ax, strict word 00040h ; b8 40 00 3815 call 01660h ; e8 ec e63816 jmp short 02f 7bh ; eb 053802 call 01660h ; e8 0a e7 3803 jmp short 02f5dh ; eb 05 3817 3804 sti ; fb 3818 3805 hlt ; f4 3819 3806 cli ; fa 3820 jmp short 02f 45h ; eb ca3807 jmp short 02f27h ; eb ca 3821 3808 mov al, cl ; 88 c8 3822 3809 lea sp, [bp-006h] ; 8d 66 fa … … 3826 3813 pop bp ; 5d 3827 3814 retn ; c3 3828 floppy_reset_controller_: ; 0xf2f 85LB 0x283815 floppy_reset_controller_: ; 0xf2f67 LB 0x28 3829 3816 push bp ; 55 3830 3817 mov bp, sp ; 89 e5 … … 3847 3834 and AL, strict byte 0c0h ; 24 c0 3848 3835 cmp AL, strict byte 080h ; 3c 80 3849 jne short 02f 9ah ; 75 f43836 jne short 02f7ch ; 75 f4 3850 3837 lea sp, [bp-004h] ; 8d 66 fc 3851 3838 pop dx ; 5a … … 3853 3840 pop bp ; 5d 3854 3841 retn ; c3 3855 floppy_prepare_controller_: ; 0xf2f adLB 0x843842 floppy_prepare_controller_: ; 0xf2f8f LB 0x84 3856 3843 push bp ; 55 3857 3844 mov bp, sp ; 89 e5 … … 3863 3850 mov dx, strict word 0003eh ; ba 3e 00 3864 3851 mov ax, strict word 00040h ; b8 40 00 3865 call 01652h ; e8 93e63852 call 01652h ; e8 b1 e6 3866 3853 and AL, strict byte 07fh ; 24 7f 3867 3854 xor ah, ah ; 30 e4 … … 3869 3856 mov dx, strict word 0003eh ; ba 3e 00 3870 3857 mov ax, strict word 00040h ; b8 40 00 3871 call 01660h ; e8 92e63858 call 01660h ; e8 b0 e6 3872 3859 mov dx, 003f2h ; ba f2 03 3873 3860 in AL, DX ; ec … … 3877 3864 mov byte [bp-008h], al ; 88 46 f8 3878 3865 test cx, cx ; 85 c9 3879 je short 02f e1h ; 74 043866 je short 02fc3h ; 74 04 3880 3867 mov AL, strict byte 020h ; b0 20 3881 jmp short 02f e3h ; eb 023868 jmp short 02fc5h ; eb 02 3882 3869 mov AL, strict byte 010h ; b0 10 3883 3870 or AL, strict byte 00ch ; 0c 0c … … 3888 3875 mov dx, strict word 00040h ; ba 40 00 3889 3876 mov ax, dx ; 89 d0 3890 call 01660h ; e8 6ae63877 call 01660h ; e8 88 e6 3891 3878 mov dx, 0008bh ; ba 8b 00 3892 3879 mov ax, strict word 00040h ; b8 40 00 3893 call 01652h ; e8 53e63880 call 01652h ; e8 71 e6 3894 3881 mov CL, strict byte 006h ; b1 06 3895 3882 shr al, CL ; d2 e8 … … 3902 3889 and AL, strict byte 0c0h ; 24 c0 3903 3890 cmp AL, strict byte 080h ; 3c 80 3904 jne short 0 3007h ; 75 f43891 jne short 02fe9h ; 75 f4 3905 3892 cmp byte [bp-008h], 000h ; 80 7e f8 00 3906 jne short 030 29h ; 75 103907 call 02 f1dh ; e8 01 ff3893 jne short 0300bh ; 75 10 3894 call 02effh ; e8 01 ff 3908 3895 mov bl, al ; 88 c3 3909 3896 xor bh, bh ; 30 ff 3910 3897 mov dx, strict word 0003eh ; ba 3e 00 3911 3898 mov ax, strict word 00040h ; b8 40 00 3912 call 01660h ; e8 37e63899 call 01660h ; e8 55 e6 3913 3900 lea sp, [bp-006h] ; 8d 66 fa 3914 3901 pop dx ; 5a … … 3917 3904 pop bp ; 5d 3918 3905 retn ; c3 3919 floppy_media_known_: ; 0xf30 31LB 0x463906 floppy_media_known_: ; 0xf3013 LB 0x46 3920 3907 push bp ; 55 3921 3908 mov bp, sp ; 89 e5 … … 3926 3913 mov dx, strict word 0003eh ; ba 3e 00 3927 3914 mov ax, strict word 00040h ; b8 40 00 3928 call 01652h ; e8 10e63915 call 01652h ; e8 2e e6 3929 3916 mov ah, al ; 88 c4 3930 3917 test bx, bx ; 85 db 3931 je short 030 4ah ; 74 023918 je short 0302ch ; 74 02 3932 3919 shr al, 1 ; d0 e8 3933 3920 and AL, strict byte 001h ; 24 01 3934 jne short 030 52h ; 75 043935 xor ah, ah ; 30 e4 3936 jmp short 030 6fh ; eb 1d3921 jne short 03034h ; 75 04 3922 xor ah, ah ; 30 e4 3923 jmp short 03051h ; eb 1d 3937 3924 mov dx, 00090h ; ba 90 00 3938 3925 test bx, bx ; 85 db 3939 je short 030 5ch ; 74 033926 je short 0303eh ; 74 03 3940 3927 mov dx, 00091h ; ba 91 00 3941 3928 mov ax, strict word 00040h ; b8 40 00 3942 call 01652h ; e8 f0 e53929 call 01652h ; e8 0e e6 3943 3930 xor ah, ah ; 30 e4 3944 3931 mov CL, strict byte 004h ; b1 04 3945 3932 sar ax, CL ; d3 f8 3946 3933 and AL, strict byte 001h ; 24 01 3947 je short 030 4eh ; 74 e23934 je short 03030h ; 74 e2 3948 3935 mov ax, strict word 00001h ; b8 01 00 3949 3936 lea sp, [bp-006h] ; 8d 66 fa … … 3953 3940 pop bp ; 5d 3954 3941 retn ; c3 3955 floppy_read_id_: ; 0xf30 77LB 0x443942 floppy_read_id_: ; 0xf3059 LB 0x44 3956 3943 push bp ; 55 3957 3944 mov bp, sp ; 89 e5 … … 3961 3948 sub sp, strict byte 00008h ; 83 ec 08 3962 3949 mov bx, ax ; 89 c3 3963 call 02f adh ; e8 28 ff3950 call 02f8fh ; e8 28 ff 3964 3951 mov AL, strict byte 04ah ; b0 4a 3965 3952 mov dx, 003f5h ; ba f5 03 … … 3967 3954 mov al, bl ; 88 d8 3968 3955 out DX, AL ; ee 3969 call 02 f1dh ; e8 8c fe3956 call 02effh ; e8 8c fe 3970 3957 xor si, si ; 31 f6 3971 jmp short 030 9ah ; eb 053958 jmp short 0307ch ; eb 05 3972 3959 cmp si, strict byte 00007h ; 83 fe 07 3973 jnl short 030 a6h ; 7d 0c3960 jnl short 03088h ; 7d 0c 3974 3961 mov dx, 003f5h ; ba f5 03 3975 3962 in AL, DX ; ec … … 3978 3965 mov byte [bp+si-00eh], al ; 88 42 f2 3979 3966 inc si ; 46 3980 jmp short 030 95h ; eb ef3967 jmp short 03077h ; eb ef 3981 3968 test byte [bp-00eh], 0c0h ; f6 46 f2 c0 3982 je short 030 b0h ; 74 043969 je short 03092h ; 74 04 3983 3970 xor ax, ax ; 31 c0 3984 jmp short 030 b3h ; eb 033971 jmp short 03095h ; eb 03 3985 3972 mov ax, strict word 00001h ; b8 01 00 3986 3973 lea sp, [bp-006h] ; 8d 66 fa … … 3990 3977 pop bp ; 5d 3991 3978 retn ; c3 3992 floppy_drive_recal_: ; 0xf30 bbLB 0x4d3979 floppy_drive_recal_: ; 0xf309d LB 0x4d 3993 3980 push bp ; 55 3994 3981 mov bp, sp ; 89 e5 … … 3997 3984 push dx ; 52 3998 3985 mov bx, ax ; 89 c3 3999 call 02f adh ; e8 e7 fe3986 call 02f8fh ; e8 e7 fe 4000 3987 mov AL, strict byte 007h ; b0 07 4001 3988 mov dx, 003f5h ; ba f5 03 … … 4003 3990 mov al, bl ; 88 d8 4004 3991 out DX, AL ; ee 4005 call 02 f1dh ; e8 4b fe3992 call 02effh ; e8 4b fe 4006 3993 test bx, bx ; 85 db 4007 je short 030 e0h ; 74 0a3994 je short 030c2h ; 74 0a 4008 3995 mov bl, al ; 88 c3 4009 3996 or bl, 002h ; 80 cb 02 4010 3997 mov cx, 00095h ; b9 95 00 4011 jmp short 030 e8h ; eb 083998 jmp short 030cah ; eb 08 4012 3999 mov bl, al ; 88 c3 4013 4000 or bl, 001h ; 80 cb 01 … … 4016 4003 mov dx, strict word 0003eh ; ba 3e 00 4017 4004 mov ax, strict word 00040h ; b8 40 00 4018 call 01660h ; e8 6de54005 call 01660h ; e8 8b e5 4019 4006 xor bx, bx ; 31 db 4020 4007 mov dx, cx ; 89 ca 4021 4008 mov ax, strict word 00040h ; b8 40 00 4022 call 01660h ; e8 63e54009 call 01660h ; e8 81 e5 4023 4010 mov ax, strict word 00001h ; b8 01 00 4024 4011 lea sp, [bp-006h] ; 8d 66 fa … … 4028 4015 pop bp ; 5d 4029 4016 retn ; c3 4030 floppy_media_sense_: ; 0xf3 108LB 0xfa4017 floppy_media_sense_: ; 0xf30ea LB 0xfa 4031 4018 push bp ; 55 4032 4019 mov bp, sp ; 89 e5 … … 4037 4024 push di ; 57 4038 4025 mov di, ax ; 89 c7 4039 call 030 bbh ; e8 a6 ff4026 call 0309dh ; e8 a6 ff 4040 4027 test ax, ax ; 85 c0 4041 jne short 031 1eh ; 75 054028 jne short 03100h ; 75 05 4042 4029 xor cx, cx ; 31 c9 4043 jmp near 031 f6h ; e9 d8 004030 jmp near 031d8h ; e9 d8 00 4044 4031 mov ax, strict word 00010h ; b8 10 00 4045 call 016aeh ; e8 8ae54032 call 016aeh ; e8 a8 e5 4046 4033 test di, di ; 85 ff 4047 jne short 031 30h ; 75 084034 jne short 03112h ; 75 08 4048 4035 mov CL, strict byte 004h ; b1 04 4049 4036 shr al, CL ; d2 e8 4050 4037 mov cl, al ; 88 c1 4051 jmp short 031 35h ; eb 054038 jmp short 03117h ; eb 05 4052 4039 mov cl, al ; 88 c1 4053 4040 and cl, 00fh ; 80 e1 0f 4054 4041 cmp cl, 001h ; 80 f9 01 4055 jne short 031 43h ; 75 094042 jne short 03125h ; 75 09 4056 4043 xor cl, cl ; 30 c9 4057 4044 mov CH, strict byte 015h ; b5 15 4058 4045 mov si, strict word 00001h ; be 01 00 4059 jmp short 031 81h ; eb 3e4046 jmp short 03163h ; eb 3e 4060 4047 cmp cl, 002h ; 80 f9 02 4061 jne short 031 4eh ; 75 064048 jne short 03130h ; 75 06 4062 4049 xor cl, cl ; 30 c9 4063 4050 mov CH, strict byte 035h ; b5 35 4064 jmp short 031 3eh ; eb f04051 jmp short 03120h ; eb f0 4065 4052 cmp cl, 003h ; 80 f9 03 4066 jne short 031 59h ; 75 064053 jne short 0313bh ; 75 06 4067 4054 xor cl, cl ; 30 c9 4068 4055 mov CH, strict byte 017h ; b5 17 4069 jmp short 031 3eh ; eb e54056 jmp short 03120h ; eb e5 4070 4057 cmp cl, 004h ; 80 f9 04 4071 jne short 031 64h ; 75 064058 jne short 03146h ; 75 06 4072 4059 xor cl, cl ; 30 c9 4073 4060 mov CH, strict byte 017h ; b5 17 4074 jmp short 031 3eh ; eb da4061 jmp short 03120h ; eb da 4075 4062 cmp cl, 005h ; 80 f9 05 4076 jne short 031 6fh ; 75 064063 jne short 03151h ; 75 06 4077 4064 mov CL, strict byte 0cch ; b1 cc 4078 4065 mov CH, strict byte 0d7h ; b5 d7 4079 jmp short 031 3eh ; eb cf4066 jmp short 03120h ; eb cf 4080 4067 cmp cl, 00eh ; 80 f9 0e 4081 je short 031 79h ; 74 054068 je short 0315bh ; 74 05 4082 4069 cmp cl, 00fh ; 80 f9 0f 4083 jne short 031 7bh ; 75 024084 jmp short 031 69h ; eb ee4070 jne short 0315dh ; 75 02 4071 jmp short 0314bh ; eb ee 4085 4072 xor cl, cl ; 30 c9 4086 4073 xor ch, ch ; 30 ed … … 4091 4078 mov dx, 0008bh ; ba 8b 00 4092 4079 mov ax, strict word 00040h ; b8 40 00 4093 call 01660h ; e8 d0e44080 call 01660h ; e8 ee e4 4094 4081 mov ax, di ; 89 f8 4095 call 030 77h ; e8 e2 fe4082 call 03059h ; e8 e2 fe 4096 4083 test ax, ax ; 85 c0 4097 jne short 031 cbh ; 75 324084 jne short 031adh ; 75 32 4098 4085 mov al, cl ; 88 c8 4099 4086 and AL, strict byte 0c0h ; 24 c0 4100 4087 cmp AL, strict byte 080h ; 3c 80 4101 je short 031 cbh ; 74 2a4088 je short 031adh ; 74 2a 4102 4089 mov al, cl ; 88 c8 4103 4090 and AL, strict byte 0c0h ; 24 c0 4104 4091 cmp AL, strict byte 0c0h ; 3c c0 4105 je short 031 b8h ; 74 0f4092 je short 0319ah ; 74 0f 4106 4093 mov ah, cl ; 88 cc 4107 4094 and ah, 03fh ; 80 e4 3f 4108 4095 cmp AL, strict byte 040h ; 3c 40 4109 je short 031 c4h ; 74 124096 je short 031a6h ; 74 12 4110 4097 test al, al ; 84 c0 4111 je short 031 bdh ; 74 074112 jmp short 031 81h ; eb c94098 je short 0319fh ; 74 07 4099 jmp short 03163h ; eb c9 4113 4100 and cl, 03fh ; 80 e1 3f 4114 jmp short 031 81h ; eb c44101 jmp short 03163h ; eb c4 4115 4102 mov cl, ah ; 88 e1 4116 4103 or cl, 040h ; 80 c9 40 4117 jmp short 031 81h ; eb bd4104 jmp short 03163h ; eb bd 4118 4105 mov cl, ah ; 88 e1 4119 4106 or cl, 080h ; 80 c9 80 4120 jmp short 031 81h ; eb b64107 jmp short 03163h ; eb b6 4121 4108 test di, di ; 85 ff 4122 jne short 031 d4h ; 75 054109 jne short 031b6h ; 75 05 4123 4110 mov di, 00090h ; bf 90 00 4124 jmp short 031 d7h ; eb 034111 jmp short 031b9h ; eb 03 4125 4112 mov di, 00091h ; bf 91 00 4126 4113 mov al, cl ; 88 c8 … … 4129 4116 mov dx, 0008bh ; ba 8b 00 4130 4117 mov ax, strict word 00040h ; b8 40 00 4131 call 01660h ; e8 7ae44118 call 01660h ; e8 98 e4 4132 4119 mov al, ch ; 88 e8 4133 4120 xor ah, ah ; 30 e4 … … 4135 4122 mov dx, di ; 89 fa 4136 4123 mov ax, strict word 00040h ; b8 40 00 4137 call 01660h ; e8 6ce44124 call 01660h ; e8 8a e4 4138 4125 mov cx, si ; 89 f1 4139 4126 mov ax, cx ; 89 c8 … … 4146 4133 pop bp ; 5d 4147 4134 retn ; c3 4148 floppy_drive_exists_: ; 0xf3 202LB 0x2b4135 floppy_drive_exists_: ; 0xf31e4 LB 0x2b 4149 4136 push bp ; 55 4150 4137 mov bp, sp ; 89 e5 … … 4153 4140 mov dx, ax ; 89 c2 4154 4141 mov ax, strict word 00010h ; b8 10 00 4155 call 016aeh ; e8 9fe44142 call 016aeh ; e8 bd e4 4156 4143 test dx, dx ; 85 d2 4157 jne short 03 219h ; 75 064144 jne short 031fbh ; 75 06 4158 4145 mov CL, strict byte 004h ; b1 04 4159 4146 shr al, CL ; d2 e8 4160 jmp short 03 21bh ; eb 024147 jmp short 031fdh ; eb 02 4161 4148 and AL, strict byte 00fh ; 24 0f 4162 4149 test al, al ; 84 c0 4163 je short 032 24h ; 74 054150 je short 03206h ; 74 05 4164 4151 mov ax, strict word 00001h ; b8 01 00 4165 jmp short 032 26h ; eb 024152 jmp short 03208h ; eb 02 4166 4153 xor ah, ah ; 30 e4 4167 4154 lea sp, [bp-004h] ; 8d 66 fc … … 4170 4157 pop bp ; 5d 4171 4158 retn ; c3 4172 _int13_diskette_function: ; 0xf32 2dLB 0x97c4159 _int13_diskette_function: ; 0xf320f LB 0x97c 4173 4160 push bp ; 55 4174 4161 mov bp, sp ; 89 e5 … … 4189 4176 mov dx, word [bp-014h] ; 8b 56 ec 4190 4177 cmp bl, 008h ; 80 fb 08 4191 jc short 032 8ch ; 72 2e4178 jc short 0326eh ; 72 2e 4192 4179 mov dx, word [bp+01ch] ; 8b 56 1c 4193 4180 or dl, 001h ; 80 ca 01 4194 4181 cmp bl, 008h ; 80 fb 08 4195 jbe short 032 c2h ; 76 594182 jbe short 032a4h ; 76 59 4196 4183 cmp bl, 016h ; 80 fb 16 4197 jc short 032 84h ; 72 164184 jc short 03266h ; 72 16 4198 4185 or si, 00100h ; 81 ce 00 01 4199 4186 cmp bl, 016h ; 80 fb 16 4200 jbe short 032 c5h ; 76 4e4187 jbe short 032a7h ; 76 4e 4201 4188 cmp bl, 018h ; 80 fb 18 4202 je short 032 c8h ; 74 4c4189 je short 032aah ; 74 4c 4203 4190 cmp bl, 017h ; 80 fb 17 4204 je short 032 dfh ; 74 5e4205 jmp near 03b 83h ; e9 ff 084191 je short 032c1h ; 74 5e 4192 jmp near 03b65h ; e9 ff 08 4206 4193 cmp bl, 015h ; 80 fb 15 4207 je short 032 e2h ; 74 594208 jmp near 03b 83h ; e9 f7 084194 je short 032c4h ; 74 59 4195 jmp near 03b65h ; e9 f7 08 4209 4196 cmp bl, 001h ; 80 fb 01 4210 jc short 032 a0h ; 72 0f4211 jbe short 032 e5h ; 76 524197 jc short 03282h ; 72 0f 4198 jbe short 032c7h ; 76 52 4212 4199 cmp bl, 005h ; 80 fb 05 4213 je short 03 300h ; 74 684200 je short 032e2h ; 74 68 4214 4201 cmp bl, 004h ; 80 fb 04 4215 jbe short 03 303h ; 76 664216 jmp near 03b 83h ; e9 e3 084202 jbe short 032e5h ; 76 66 4203 jmp near 03b65h ; e9 e3 08 4217 4204 test bl, bl ; 84 db 4218 jne short 03 305h ; 75 614205 jne short 032e7h ; 75 61 4219 4206 mov al, byte [bp+00eh] ; 8a 46 0e 4220 4207 mov byte [bp-006h], al ; 88 46 fa 4221 4208 cmp AL, strict byte 001h ; 3c 01 4222 jbe short 032 cbh ; 76 1d4209 jbe short 032adh ; 76 1d 4223 4210 mov ax, word [bp+016h] ; 8b 46 16 4224 4211 xor ah, ah ; 30 e4 … … 4226 4213 mov word [bp+016h], ax ; 89 46 16 4227 4214 mov ax, strict word 00001h ; b8 01 00 4228 call 02e ceh ; e8 0f fc4229 jmp near 036 74h ; e9 b2 034230 jmp near 038 45h ; e9 80 054231 jmp near 039 89h ; e9 c1 064232 jmp near 03a 22h ; e9 57 074215 call 02eb0h ; e8 0f fc 4216 jmp near 03656h ; e9 b2 03 4217 jmp near 03827h ; e9 80 05 4218 jmp near 0396bh ; e9 c1 06 4219 jmp near 03a04h ; e9 57 07 4233 4220 mov ax, strict word 00010h ; b8 10 00 4234 call 016aeh ; e8 dde34221 call 016aeh ; e8 fb e3 4235 4222 cmp byte [bp-006h], 000h ; 80 7e fa 00 4236 jne short 032 e7h ; 75 104223 jne short 032c9h ; 75 10 4237 4224 mov CL, strict byte 004h ; b1 04 4238 4225 mov ch, al ; 88 c5 4239 4226 shr ch, CL ; d2 ed 4240 jmp short 032 ech ; eb 0d4241 jmp near 039 adh ; e9 cb 064242 jmp near 039 44h ; e9 5f 064243 jmp short 033 2eh ; eb 474227 jmp short 032ceh ; eb 0d 4228 jmp near 0398fh ; e9 cb 06 4229 jmp near 03926h ; e9 5f 06 4230 jmp short 03310h ; eb 47 4244 4231 mov ch, al ; 88 c5 4245 4232 and ch, 00fh ; 80 e5 0f 4246 4233 test ch, ch ; 84 ed 4247 jne short 03 308h ; 75 184234 jne short 032eah ; 75 18 4248 4235 mov ax, word [bp+016h] ; 8b 46 16 4249 4236 xor ah, ah ; 30 e4 … … 4251 4238 mov word [bp+016h], ax ; 89 46 16 4252 4239 mov ax, 00080h ; b8 80 00 4253 jmp short 032 bch ; eb bc4254 jmp near 036 9eh ; e9 9b 034255 jmp short 033 4ah ; eb 454256 jmp near 03b 83h ; e9 7b 084240 jmp short 0329eh ; eb bc 4241 jmp near 03680h ; e9 9b 03 4242 jmp short 0332ch ; eb 45 4243 jmp near 03b65h ; e9 7b 08 4257 4244 xor bx, bx ; 31 db 4258 4245 mov dx, strict word 0003eh ; ba 3e 00 4259 4246 mov ax, strict word 00040h ; b8 40 00 4260 call 01660h ; e8 4de34247 call 01660h ; e8 6b e3 4261 4248 xor al, al ; 30 c0 4262 4249 mov byte [bp+017h], al ; 88 46 17 4263 4250 xor ah, ah ; 30 e4 4264 call 02e ceh ; e8 b1 fb4251 call 02eb0h ; e8 b1 fb 4265 4252 and byte [bp+01ch], 0feh ; 80 66 1c fe 4266 4253 mov al, byte [bp-006h] ; 8a 46 fa 4267 4254 xor ah, ah ; 30 e4 4268 4255 xor dx, dx ; 31 d2 4269 call 02e e7h ; e8 bc fb4270 jmp near 036 97h ; e9 69 034256 call 02ec9h ; e8 bc fb 4257 jmp near 03679h ; e9 69 03 4271 4258 and byte [bp+01ch], 0feh ; 80 66 1c fe 4272 4259 mov dx, 00441h ; ba 41 04 4273 4260 xor ax, ax ; 31 c0 4274 call 01652h ; e8 18e34261 call 01652h ; e8 36 e3 4275 4262 mov dh, al ; 88 c6 4276 4263 xor dl, dl ; 30 d2 … … 4278 4265 mov word [bp+016h], si ; 89 76 16 4279 4266 test al, al ; 84 c0 4280 je short 033 9eh ; 74 574281 jmp near 036 74h ; e9 2a 034267 je short 03380h ; 74 57 4268 jmp near 03656h ; e9 2a 03 4282 4269 mov byte [bp-008h], ch ; 88 6e f8 4283 4270 mov byte [bp-00ah], dl ; 88 56 f6 … … 4288 4275 mov byte [bp-006h], al ; 88 46 fa 4289 4276 cmp AL, strict byte 001h ; 3c 01 4290 jnbe short 033 70h ; 77 0e4277 jnbe short 03352h ; 77 0e 4291 4278 cmp dl, 001h ; 80 fa 01 4292 jnbe short 033 70h ; 77 094279 jnbe short 03352h ; 77 09 4293 4280 test ch, ch ; 84 ed 4294 je short 033 70h ; 74 054281 je short 03352h ; 74 05 4295 4282 cmp ch, 048h ; 80 fd 48 4296 jbe short 033 a1h ; 76 314283 jbe short 03383h ; 76 31 4297 4284 mov bx, 00da0h ; bb a0 0d 4298 4285 mov cx, ds ; 8c d9 4299 4286 mov ax, strict word 00004h ; b8 04 00 4300 call 01933h ; e8 b8e54287 call 01933h ; e8 d6 e5 4301 4288 mov ax, 00275h ; b8 75 02 4302 4289 push ax ; 50 … … 4305 4292 mov ax, strict word 00004h ; b8 04 00 4306 4293 push ax ; 50 4307 call 01976h ; e8 ec e54294 call 01976h ; e8 0a e6 4308 4295 add sp, strict byte 00006h ; 83 c4 06 4309 4296 mov ax, word [bp+016h] ; 8b 46 16 … … 4312 4299 mov word [bp+016h], ax ; 89 46 16 4313 4300 mov ax, strict word 00001h ; b8 01 00 4314 jmp near 034 23h ; e9 85 004315 jmp near 036 97h ; e9 f6 024301 jmp near 03405h ; e9 85 00 4302 jmp near 03679h ; e9 f6 02 4316 4303 mov al, byte [bp-006h] ; 8a 46 fa 4317 4304 xor ah, ah ; 30 e4 4318 call 03 202h ; e8 59 fe4305 call 031e4h ; e8 59 fe 4319 4306 test ax, ax ; 85 c0 4320 je short 033 dbh ; 74 2e4307 je short 033bdh ; 74 2e 4321 4308 mov bl, byte [bp-006h] ; 8a 5e fa 4322 4309 xor bh, bh ; 30 ff 4323 4310 mov ax, bx ; 89 d8 4324 call 030 31h ; e8 7a fc4311 call 03013h ; e8 7a fc 4325 4312 test ax, ax ; 85 c0 4326 jne short 033 deh ; 75 234313 jne short 033c0h ; 75 23 4327 4314 mov ax, bx ; 89 d8 4328 call 03 108h ; e8 48 fd4315 call 030eah ; e8 48 fd 4329 4316 test ax, ax ; 85 c0 4330 jne short 033 deh ; 75 1a4317 jne short 033c0h ; 75 1a 4331 4318 mov ax, word [bp+016h] ; 8b 46 16 4332 4319 xor ah, ah ; 30 e4 … … 4334 4321 mov word [bp+016h], ax ; 89 46 16 4335 4322 mov ax, strict word 0000ch ; b8 0c 00 4336 call 02e ceh ; e8 f9 fa4323 call 02eb0h ; e8 f9 fa 4337 4324 mov byte [bp+016h], bh ; 88 7e 16 4338 jmp near 036 74h ; e9 99 024339 jmp near 034 bah ; e9 dc 004325 jmp near 03656h ; e9 99 02 4326 jmp near 0349ch ; e9 dc 00 4340 4327 cmp byte [bp-010h], 002h ; 80 7e f0 02 4341 jne short 034 2dh ; 75 494328 jne short 0340fh ; 75 49 4342 4329 mov CL, strict byte 00ch ; b1 0c 4343 4330 mov dx, word [bp+006h] ; 8b 56 06 … … 4351 4338 mov word [bp-012h], bx ; 89 5e ee 4352 4339 cmp ax, bx ; 39 d8 4353 jbe short 03 402h ; 76 024340 jbe short 033e4h ; 76 02 4354 4341 db 0feh, 0c5h 4355 4342 ; inc ch ; fe c5 … … 4363 4350 add ax, bx ; 01 d8 4364 4351 cmp ax, word [bp-012h] ; 3b 46 ee 4365 jnc short 034 30h ; 73 184352 jnc short 03412h ; 73 18 4366 4353 mov ax, word [bp+016h] ; 8b 46 16 4367 4354 mov ah, cl ; 88 cc 4368 4355 mov word [bp+016h], ax ; 89 46 16 4369 4356 mov ax, strict word 00009h ; b8 09 00 4370 call 02e ceh ; e8 a8 fa4357 call 02eb0h ; e8 a8 fa 4371 4358 mov byte [bp+016h], 000h ; c6 46 16 00 4372 jmp near 036 74h ; e9 47 024373 jmp near 035 56h ; e9 26 014359 jmp near 03656h ; e9 47 02 4360 jmp near 03538h ; e9 26 01 4374 4361 mov AL, strict byte 006h ; b0 06 4375 4362 mov dx, strict word 0000ah ; ba 0a 00 … … 4402 4389 mov al, byte [bp-006h] ; 8a 46 fa 4403 4390 xor ah, ah ; 30 e4 4404 call 02f adh ; e8 3d fb4391 call 02f8fh ; e8 3d fb 4405 4392 mov AL, strict byte 0e6h ; b0 e6 4406 4393 mov dx, 003f5h ; ba f5 03 … … 4435 4422 mov AL, strict byte 0ffh ; b0 ff 4436 4423 out DX, AL ; ee 4437 call 02f 3eh ; e8 8b fa4424 call 02f20h ; e8 8b fa 4438 4425 test al, al ; 84 c0 4439 jne short 034 cbh ; 75 144440 call 02f 85h ; e8 cb fa4426 jne short 034adh ; 75 14 4427 call 02f67h ; e8 cb fa 4441 4428 mov ax, word [bp+016h] ; 8b 46 16 4442 4429 xor ah, ah ; 30 e4 … … 4444 4431 mov word [bp+016h], ax ; 89 46 16 4445 4432 mov ax, 00080h ; b8 80 00 4446 jmp near 034 23h ; e9 58 ff4433 jmp near 03405h ; e9 58 ff 4447 4434 mov dx, 003f4h ; ba f4 03 4448 4435 in AL, DX ; ec … … 4451 4438 and AL, strict byte 0c0h ; 24 c0 4452 4439 cmp AL, strict byte 0c0h ; 3c c0 4453 je short 034 e9h ; 74 124440 je short 034cbh ; 74 12 4454 4441 mov ax, 00275h ; b8 75 02 4455 4442 push ax ; 50 … … 4458 4445 mov ax, strict word 00007h ; b8 07 00 4459 4446 push ax ; 50 4460 call 01976h ; e8 90e44447 call 01976h ; e8 ae e4 4461 4448 add sp, strict byte 00006h ; 83 c4 06 4462 4449 xor si, si ; 31 f6 4463 jmp short 034 f2h ; eb 054450 jmp short 034d4h ; eb 05 4464 4451 cmp si, strict byte 00007h ; 83 fe 07 4465 jnl short 03 50bh ; 7d 194452 jnl short 034edh ; 7d 19 4466 4453 mov dx, 003f5h ; ba f5 03 4467 4454 in AL, DX ; ec … … 4473 4460 lea dx, [si+042h] ; 8d 54 42 4474 4461 mov ax, strict word 00040h ; b8 40 00 4475 call 01660h ; e8 58e14462 call 01660h ; e8 76 e1 4476 4463 inc si ; 46 4477 jmp short 034 edh ; eb e24464 jmp short 034cfh ; eb e2 4478 4465 test byte [bp-01ch], 0c0h ; f6 46 e4 c0 4479 je short 035 22h ; 74 114466 je short 03504h ; 74 11 4480 4467 mov ax, word [bp+016h] ; 8b 46 16 4481 4468 xor ah, ah ; 30 e4 … … 4483 4470 mov word [bp+016h], ax ; 89 46 16 4484 4471 mov ax, strict word 00020h ; b8 20 00 4485 jmp near 034 23h ; e9 01 ff4472 jmp near 03405h ; e9 01 ff 4486 4473 mov al, byte [bp-008h] ; 8a 46 f8 4487 4474 xor ah, ah ; 30 e4 … … 4505 4492 mov al, byte [bp-006h] ; 8a 46 fa 4506 4493 xor ah, ah ; 30 e4 4507 call 02e e7h ; e8 98 f94494 call 02ec9h ; e8 98 f9 4508 4495 mov byte [bp+017h], 000h ; c6 46 17 00 4509 jmp near 03 a1bh ; e9 c5 044496 jmp near 039fdh ; e9 c5 04 4510 4497 cmp byte [bp-010h], 003h ; 80 7e f0 03 4511 je short 035 5fh ; 74 034512 jmp near 036 82h ; e9 23 014498 je short 03541h ; 74 03 4499 jmp near 03664h ; e9 23 01 4513 4500 mov CL, strict byte 00ch ; b1 0c 4514 4501 mov dx, word [bp+006h] ; 8b 56 06 … … 4522 4509 mov word [bp-012h], bx ; 89 5e ee 4523 4510 cmp ax, bx ; 39 d8 4524 jbe short 035 7dh ; 76 024511 jbe short 0355fh ; 76 02 4525 4512 db 0feh, 0c5h 4526 4513 ; inc ch ; fe c5 … … 4534 4521 add ax, bx ; 01 d8 4535 4522 cmp ax, word [bp-012h] ; 3b 46 ee 4536 jnc short 035 96h ; 73 034537 jmp near 03 418h ; e9 82 fe4523 jnc short 03578h ; 73 03 4524 jmp near 033fah ; e9 82 fe 4538 4525 mov AL, strict byte 006h ; b0 06 4539 4526 mov dx, strict word 0000ah ; ba 0a 00 … … 4566 4553 mov al, byte [bp-006h] ; 8a 46 fa 4567 4554 xor ah, ah ; 30 e4 4568 call 02f adh ; e8 d7 f94555 call 02f8fh ; e8 d7 f9 4569 4556 mov AL, strict byte 0c5h ; b0 c5 4570 4557 mov dx, 003f5h ; ba f5 03 … … 4599 4586 mov AL, strict byte 0ffh ; b0 ff 4600 4587 out DX, AL ; ee 4601 call 02f 3eh ; e8 25 f94588 call 02f20h ; e8 25 f9 4602 4589 test al, al ; 84 c0 4603 jne short 036 20h ; 75 034604 jmp near 034 b7h ; e9 97 fe4590 jne short 03602h ; 75 03 4591 jmp near 03499h ; e9 97 fe 4605 4592 mov dx, 003f4h ; ba f4 03 4606 4593 in AL, DX ; ec … … 4609 4596 and AL, strict byte 0c0h ; 24 c0 4610 4597 cmp AL, strict byte 0c0h ; 3c c0 4611 je short 036 3eh ; 74 124598 je short 03620h ; 74 12 4612 4599 mov ax, 00275h ; b8 75 02 4613 4600 push ax ; 50 … … 4616 4603 mov ax, strict word 00007h ; b8 07 00 4617 4604 push ax ; 50 4618 call 01976h ; e8 3be34605 call 01976h ; e8 59 e3 4619 4606 add sp, strict byte 00006h ; 83 c4 06 4620 4607 xor si, si ; 31 f6 4621 jmp short 036 47h ; eb 054608 jmp short 03629h ; eb 05 4622 4609 cmp si, strict byte 00007h ; 83 fe 07 4623 jnl short 036 60h ; 7d 194610 jnl short 03642h ; 7d 19 4624 4611 mov dx, 003f5h ; ba f5 03 4625 4612 in AL, DX ; ec … … 4631 4618 lea dx, [si+042h] ; 8d 54 42 4632 4619 mov ax, strict word 00040h ; b8 40 00 4633 call 01660h ; e8 03e04620 call 01660h ; e8 21 e0 4634 4621 inc si ; 46 4635 jmp short 036 42h ; eb e24622 jmp short 03624h ; eb e2 4636 4623 test byte [bp-01ch], 0c0h ; f6 46 e4 c0 4637 jne short 036 69h ; 75 034638 jmp near 035 42h ; e9 d9 fe4624 jne short 0364bh ; 75 03 4625 jmp near 03524h ; e9 d9 fe 4639 4626 test byte [bp-01bh], 002h ; f6 46 e5 02 4640 je short 036 7bh ; 74 0c4627 je short 0365dh ; 74 0c 4641 4628 mov word [bp+016h], 00300h ; c7 46 16 00 03 4642 4629 or byte [bp+01ch], 001h ; 80 4e 1c 01 4643 jmp near 036 97h ; e9 1c 004630 jmp near 03679h ; e9 1c 00 4644 4631 mov word [bp+016h], 00100h ; c7 46 16 00 01 4645 jmp short 036 74h ; eb f24632 jmp short 03656h ; eb f2 4646 4633 mov dl, byte [bp-00ah] ; 8a 56 f6 4647 4634 xor dh, dh ; 30 f6 4648 4635 mov al, byte [bp-006h] ; 8a 46 fa 4649 4636 xor ah, ah ; 30 e4 4650 call 02e e7h ; e8 58 f84637 call 02ec9h ; e8 58 f8 4651 4638 and byte [bp+01ch], 0feh ; 80 66 1c fe 4652 4639 mov byte [bp+017h], 000h ; c6 46 17 00 … … 4667 4654 mov byte [bp-006h], bl ; 88 5e fa 4668 4655 cmp bl, 001h ; 80 fb 01 4669 jnbe short 036 d3h ; 77 144656 jnbe short 036b5h ; 77 14 4670 4657 cmp dl, 001h ; 80 fa 01 4671 jnbe short 036 d3h ; 77 0f4658 jnbe short 036b5h ; 77 0f 4672 4659 cmp AL, strict byte 04fh ; 3c 4f 4673 jnbe short 036 d3h ; 77 0b4660 jnbe short 036b5h ; 77 0b 4674 4661 mov al, byte [bp-008h] ; 8a 46 f8 4675 4662 test al, al ; 84 c0 4676 je short 036 d3h ; 74 044663 je short 036b5h ; 74 04 4677 4664 cmp AL, strict byte 012h ; 3c 12 4678 jbe short 036 e8h ; 76 154665 jbe short 036cah ; 76 15 4679 4666 mov ax, word [bp+016h] ; 8b 46 16 4680 4667 xor ah, ah ; 30 e4 … … 4682 4669 mov word [bp+016h], ax ; 89 46 16 4683 4670 mov ax, strict word 00001h ; b8 01 00 4684 call 02e ceh ; e8 ea f74671 call 02eb0h ; e8 ea f7 4685 4672 or byte [bp+01ch], 001h ; 80 4e 1c 01 4686 4673 mov al, byte [bp-006h] ; 8a 46 fa 4687 4674 xor ah, ah ; 30 e4 4688 call 03 202h ; e8 12 fb4675 call 031e4h ; e8 12 fb 4689 4676 test ax, ax ; 85 c0 4690 jne short 036 f7h ; 75 034691 jmp near 032 f0h ; e9 f9 fb4677 jne short 036d9h ; 75 03 4678 jmp near 032d2h ; e9 f9 fb 4692 4679 mov bl, byte [bp-006h] ; 8a 5e fa 4693 4680 xor bh, bh ; 30 ff 4694 4681 mov ax, bx ; 89 d8 4695 call 030 31h ; e8 30 f94682 call 03013h ; e8 30 f9 4696 4683 test ax, ax ; 85 c0 4697 jne short 03 711h ; 75 0c4684 jne short 036f3h ; 75 0c 4698 4685 mov ax, bx ; 89 d8 4699 call 03 108h ; e8 fe f94686 call 030eah ; e8 fe f9 4700 4687 test ax, ax ; 85 c0 4701 jne short 03 711h ; 75 034702 jmp near 033 c4h ; e9 b3 fc4688 jne short 036f3h ; 75 03 4689 jmp near 033a6h ; e9 b3 fc 4703 4690 mov CL, strict byte 00ch ; b1 0c 4704 4691 mov dx, word [bp+006h] ; 8b 56 06 … … 4712 4699 mov word [bp-012h], bx ; 89 5e ee 4713 4700 cmp ax, bx ; 39 d8 4714 jbe short 037 2fh ; 76 024701 jbe short 03711h ; 76 02 4715 4702 db 0feh, 0c5h 4716 4703 ; inc ch ; fe c5 … … 4724 4711 add ax, bx ; 01 d8 4725 4712 cmp ax, word [bp-012h] ; 3b 46 ee 4726 jnc short 037 50h ; 73 0b4713 jnc short 03732h ; 73 0b 4727 4714 mov ax, word [bp+016h] ; 8b 46 16 4728 4715 xor ah, ah ; 30 e4 4729 4716 or ah, 009h ; 80 cc 09 4730 jmp near 03 41dh ; e9 cd fc4717 jmp near 033ffh ; e9 cd fc 4731 4718 mov AL, strict byte 006h ; b0 06 4732 4719 mov dx, strict word 0000ah ; ba 0a 00 … … 4759 4746 mov al, byte [bp-006h] ; 8a 46 fa 4760 4747 xor ah, ah ; 30 e4 4761 call 02f adh ; e8 1d f84748 call 02f8fh ; e8 1d f8 4762 4749 mov AL, strict byte 00fh ; b0 0f 4763 4750 mov dx, 003f5h ; ba f5 03 … … 4786 4773 mov AL, strict byte 0f6h ; b0 f6 4787 4774 out DX, AL ; ee 4788 call 02f 3eh ; e8 7b f74775 call 02f20h ; e8 7b f7 4789 4776 test al, al ; 84 c0 4790 jne short 037 cdh ; 75 064791 call 02f 85h ; e8 bb f74792 jmp near 032 f0h ; e9 23 fb4777 jne short 037afh ; 75 06 4778 call 02f67h ; e8 bb f7 4779 jmp near 032d2h ; e9 23 fb 4793 4780 mov dx, 003f4h ; ba f4 03 4794 4781 in AL, DX ; ec … … 4797 4784 and AL, strict byte 0c0h ; 24 c0 4798 4785 cmp AL, strict byte 0c0h ; 3c c0 4799 je short 037 ebh ; 74 124786 je short 037cdh ; 74 12 4800 4787 mov ax, 00275h ; b8 75 02 4801 4788 push ax ; 50 … … 4804 4791 mov ax, strict word 00007h ; b8 07 00 4805 4792 push ax ; 50 4806 call 01976h ; e8 8ee14793 call 01976h ; e8 ac e1 4807 4794 add sp, strict byte 00006h ; 83 c4 06 4808 4795 xor si, si ; 31 f6 4809 jmp short 037 f4h ; eb 054796 jmp short 037d6h ; eb 05 4810 4797 cmp si, strict byte 00007h ; 83 fe 07 4811 jnl short 03 80dh ; 7d 194798 jnl short 037efh ; 7d 19 4812 4799 mov dx, 003f5h ; ba f5 03 4813 4800 in AL, DX ; ec … … 4819 4806 lea dx, [si+042h] ; 8d 54 42 4820 4807 mov ax, strict word 00040h ; b8 40 00 4821 call 01660h ; e8 56de4808 call 01660h ; e8 74 de 4822 4809 inc si ; 46 4823 jmp short 037 efh ; eb e24810 jmp short 037d1h ; eb e2 4824 4811 test byte [bp-01ch], 0c0h ; f6 46 e4 c0 4825 je short 038 2eh ; 74 1b4812 je short 03810h ; 74 1b 4826 4813 test byte [bp-01bh], 002h ; f6 46 e5 02 4827 je short 03 81ch ; 74 034828 jmp near 036 6fh ; e9 53 fe4814 je short 037feh ; 74 03 4815 jmp near 03651h ; e9 53 fe 4829 4816 mov ax, 00275h ; b8 75 02 4830 4817 push ax ; 50 … … 4833 4820 mov ax, strict word 00007h ; b8 07 00 4834 4821 push ax ; 50 4835 call 01976h ; e8 4be14822 call 01976h ; e8 69 e1 4836 4823 add sp, strict byte 00006h ; 83 c4 06 4837 4824 xor al, al ; 30 c0 4838 4825 mov byte [bp+017h], al ; 88 46 17 4839 4826 xor ah, ah ; 30 e4 4840 call 02e ceh ; e8 96 f64827 call 02eb0h ; e8 96 f6 4841 4828 mov al, byte [bp-006h] ; 8a 46 fa 4842 4829 xor ah, ah ; 30 e4 4843 4830 xor dx, dx ; 31 d2 4844 call 02e e7h ; e8 a5 f64845 jmp near 03 a1bh ; e9 d6 014831 call 02ec9h ; e8 a5 f6 4832 jmp near 039fdh ; e9 d6 01 4846 4833 mov byte [bp-006h], al ; 88 46 fa 4847 4834 cmp AL, strict byte 001h ; 3c 01 4848 jbe short 038 74h ; 76 284835 jbe short 03856h ; 76 28 4849 4836 mov word [bp+016h], strict word 00000h ; c7 46 16 00 00 4850 4837 mov word [bp+010h], strict word 00000h ; c7 46 10 00 00 … … 4856 4843 xor ah, ah ; 30 e4 4857 4844 mov word [bp+012h], ax ; 89 46 12 4858 jmp near 039 96h ; e9 22 014845 jmp near 03978h ; e9 22 01 4859 4846 mov ax, strict word 00010h ; b8 10 00 4860 call 016aeh ; e8 34de4847 call 016aeh ; e8 52 de 4861 4848 mov ch, al ; 88 c5 4862 4849 xor ah, ah ; 30 e4 4863 4850 test AL, strict byte 0f0h ; a8 f0 4864 je short 038 84h ; 74 024851 je short 03866h ; 74 02 4865 4852 mov AH, strict byte 001h ; b4 01 4866 4853 test ch, 00fh ; f6 c5 0f 4867 je short 038 8bh ; 74 024854 je short 0386dh ; 74 02 4868 4855 db 0feh, 0c4h 4869 4856 ; inc ah ; fe c4 4870 4857 cmp byte [bp-006h], 000h ; 80 7e fa 00 4871 jne short 038 97h ; 75 064858 jne short 03879h ; 75 06 4872 4859 mov CL, strict byte 004h ; b1 04 4873 4860 shr ch, CL ; d2 ed 4874 jmp short 038 9ah ; eb 034861 jmp short 0387ch ; eb 03 4875 4862 and ch, 00fh ; 80 e5 0f 4876 4863 mov byte [bp+011h], 000h ; c6 46 11 00 … … 4887 4874 mov word [bp+012h], ax ; 89 46 12 4888 4875 cmp ch, 003h ; 80 fd 03 4889 jc short 038 d6h ; 72 154890 jbe short 038 fdh ; 76 3a4876 jc short 038b8h ; 72 15 4877 jbe short 038dfh ; 76 3a 4891 4878 cmp ch, 005h ; 80 fd 05 4892 jc short 03 904h ; 72 3c4893 jbe short 03 90bh ; 76 414879 jc short 038e6h ; 72 3c 4880 jbe short 038edh ; 76 41 4894 4881 cmp ch, 00fh ; 80 fd 0f 4895 je short 03 919h ; 74 4a4882 je short 038fbh ; 74 4a 4896 4883 cmp ch, 00eh ; 80 fd 0e 4897 je short 03 912h ; 74 3e4898 jmp short 039 20h ; eb 4a4884 je short 038f4h ; 74 3e 4885 jmp short 03902h ; eb 4a 4899 4886 cmp ch, 002h ; 80 fd 02 4900 je short 038 f6h ; 74 1b4887 je short 038d8h ; 74 1b 4901 4888 cmp ch, 001h ; 80 fd 01 4902 je short 038 efh ; 74 0f4889 je short 038d1h ; 74 0f 4903 4890 test ch, ch ; 84 ed 4904 jne short 039 20h ; 75 3c4891 jne short 03902h ; 75 3c 4905 4892 mov word [bp+014h], strict word 00000h ; c7 46 14 00 00 4906 4893 mov byte [bp+013h], 000h ; c6 46 13 00 4907 jmp short 039 32h ; eb 434894 jmp short 03914h ; eb 43 4908 4895 mov word [bp+014h], 02709h ; c7 46 14 09 27 4909 jmp short 039 32h ; eb 3c4896 jmp short 03914h ; eb 3c 4910 4897 mov word [bp+014h], 04f0fh ; c7 46 14 0f 4f 4911 jmp short 039 32h ; eb 354898 jmp short 03914h ; eb 35 4912 4899 mov word [bp+014h], 04f09h ; c7 46 14 09 4f 4913 jmp short 039 32h ; eb 2e4900 jmp short 03914h ; eb 2e 4914 4901 mov word [bp+014h], 04f12h ; c7 46 14 12 4f 4915 jmp short 039 32h ; eb 274902 jmp short 03914h ; eb 27 4916 4903 mov word [bp+014h], 04f24h ; c7 46 14 24 4f 4917 jmp short 039 32h ; eb 204904 jmp short 03914h ; eb 20 4918 4905 mov word [bp+014h], 0fe3fh ; c7 46 14 3f fe 4919 jmp short 039 32h ; eb 194906 jmp short 03914h ; eb 19 4920 4907 mov word [bp+014h], 0feffh ; c7 46 14 ff fe 4921 jmp short 039 32h ; eb 124908 jmp short 03914h ; eb 12 4922 4909 mov ax, 00275h ; b8 75 02 4923 4910 push ax ; 50 … … 4926 4913 mov ax, strict word 00007h ; b8 07 00 4927 4914 push ax ; 50 4928 call 01976h ; e8 47e04915 call 01976h ; e8 65 e0 4929 4916 add sp, strict byte 00006h ; 83 c4 06 4930 4917 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 4931 4918 mov al, ch ; 88 e8 4932 4919 xor ah, ah ; 30 e4 4933 call 03b a9h ; e8 6b 024920 call 03b8bh ; e8 6b 02 4934 4921 mov word [bp+008h], ax ; 89 46 08 4935 jmp near 03 a1bh ; e9 d7 004922 jmp near 039fdh ; e9 d7 00 4936 4923 mov byte [bp-006h], al ; 88 46 fa 4937 4924 cmp AL, strict byte 001h ; 3c 01 4938 jbe short 039 50h ; 76 054925 jbe short 03932h ; 76 05 4939 4926 mov word [bp+016h], si ; 89 76 16 4940 jmp short 039 96h ; eb 464927 jmp short 03978h ; eb 46 4941 4928 mov ax, strict word 00010h ; b8 10 00 4942 call 016aeh ; e8 58dd4929 call 016aeh ; e8 76 dd 4943 4930 cmp byte [bp-006h], 000h ; 80 7e fa 00 4944 jne short 039 64h ; 75 084931 jne short 03946h ; 75 08 4945 4932 mov CL, strict byte 004h ; b1 04 4946 4933 mov ch, al ; 88 c5 4947 4934 shr ch, CL ; d2 ed 4948 jmp short 039 69h ; eb 054935 jmp short 0394bh ; eb 05 4949 4936 mov ch, al ; 88 c5 4950 4937 and ch, 00fh ; 80 e5 0f … … 4953 4940 xor ah, ah ; 30 e4 4954 4941 test ch, ch ; 84 ed 4955 je short 039 83h ; 74 0d4942 je short 03965h ; 74 0d 4956 4943 cmp ch, 001h ; 80 fd 01 4957 jbe short 039 80h ; 76 054944 jbe short 03962h ; 76 05 4958 4945 or ah, 002h ; 80 cc 02 4959 jmp short 039 83h ; eb 034946 jmp short 03965h ; eb 03 4960 4947 or ah, 001h ; 80 cc 01 4961 4948 mov word [bp+016h], ax ; 89 46 16 4962 jmp near 036 97h ; e9 0e fd4949 jmp near 03679h ; e9 0e fd 4963 4950 cmp AL, strict byte 001h ; 3c 01 4964 jbe short 039 9ch ; 76 0f4951 jbe short 0397eh ; 76 0f 4965 4952 mov word [bp+016h], si ; 89 76 16 4966 4953 mov ax, strict word 00001h ; b8 01 00 4967 call 02e ceh ; e8 38 f54954 call 02eb0h ; e8 38 f5 4968 4955 mov word [bp+01ch], dx ; 89 56 1c 4969 jmp near 036 97h ; e9 fb fc4956 jmp near 03679h ; e9 fb fc 4970 4957 mov ax, word [bp+016h] ; 8b 46 16 4971 4958 xor ah, ah ; 30 e4 … … 4973 4960 mov word [bp+016h], ax ; 89 46 16 4974 4961 mov ax, strict word 00006h ; b8 06 00 4975 jmp near 032 bch ; e9 0f f94962 jmp near 0329eh ; e9 0f f9 4976 4963 mov byte [bp-006h], al ; 88 46 fa 4977 4964 mov bl, ch ; 88 eb 4978 4965 cmp AL, strict byte 001h ; 3c 01 4979 jnbe short 039 8dh ; 77 d74966 jnbe short 0396fh ; 77 d7 4980 4967 mov al, byte [bp-006h] ; 8a 46 fa 4981 4968 xor ah, ah ; 30 e4 4982 call 03 202h ; e8 44 f84969 call 031e4h ; e8 44 f8 4983 4970 test ax, ax ; 85 c0 4984 jne short 039 c5h ; 75 034985 jmp near 032 f0h ; e9 2b f94971 jne short 039a7h ; 75 03 4972 jmp near 032d2h ; e9 2b f9 4986 4973 cmp byte [bp-006h], 000h ; 80 7e fa 00 4987 je short 039 d0h ; 74 054974 je short 039b2h ; 74 05 4988 4975 mov dx, 00091h ; ba 91 00 4989 jmp short 039 d3h ; eb 034976 jmp short 039b5h ; eb 03 4990 4977 mov dx, 00090h ; ba 90 00 4991 4978 mov word [bp-012h], dx ; 89 56 ee 4992 4979 mov ax, strict word 00040h ; b8 40 00 4993 call 01652h ; e8 76dc4980 call 01652h ; e8 94 dc 4994 4981 and AL, strict byte 00fh ; 24 0f 4995 4982 cmp bl, 002h ; 80 fb 02 4996 jc short 039 f2h ; 72 0f4997 jbe short 039 feh ; 76 194983 jc short 039d4h ; 72 0f 4984 jbe short 039e0h ; 76 19 4998 4985 cmp bl, 004h ; 80 fb 04 4999 je short 039 fah ; 74 104986 je short 039dch ; 74 10 5000 4987 cmp bl, 003h ; 80 fb 03 5001 je short 03 a02h ; 74 135002 jmp near 032 aeh ; e9 bc f84988 je short 039e4h ; 74 13 4989 jmp near 03290h ; e9 bc f8 5003 4990 cmp bl, 001h ; 80 fb 01 5004 je short 039 fah ; 74 035005 jmp near 032 aeh ; e9 b4 f84991 je short 039dch ; 74 03 4992 jmp near 03290h ; e9 b4 f8 5006 4993 or AL, strict byte 090h ; 0c 90 5007 jmp short 03 a04h ; eb 064994 jmp short 039e6h ; eb 06 5008 4995 or AL, strict byte 070h ; 0c 70 5009 jmp short 03 a04h ; eb 024996 jmp short 039e6h ; eb 02 5010 4997 or AL, strict byte 010h ; 0c 10 5011 4998 mov bl, al ; 88 c3 … … 5013 5000 mov dx, word [bp-012h] ; 8b 56 ee 5014 5001 mov ax, strict word 00040h ; b8 40 00 5015 call 01660h ; e8 4fdc5002 call 01660h ; e8 6d dc 5016 5003 xor al, al ; 30 c0 5017 5004 mov byte [bp+017h], al ; 88 46 17 5018 5005 xor ah, ah ; 30 e4 5019 call 02e ceh ; e8 b3 f45006 call 02eb0h ; e8 b3 f4 5020 5007 and byte [bp+01ch], 0feh ; 80 66 1c fe 5021 jmp near 036 97h ; e9 75 fc5008 jmp near 03679h ; e9 75 fc 5022 5009 mov byte [bp-006h], al ; 88 46 fa 5023 5010 mov ah, cl ; 88 cc … … 5032 5019 mov byte [bp-00ah], bl ; 88 5e f6 5033 5020 cmp AL, strict byte 001h ; 3c 01 5034 jbe short 03a 44h ; 76 035035 jmp near 039 8dh ; e9 49 ff5021 jbe short 03a26h ; 76 03 5022 jmp near 0396fh ; e9 49 ff 5036 5023 mov al, byte [bp-006h] ; 8a 46 fa 5037 5024 xor ah, ah ; 30 e4 5038 call 03 202h ; e8 b6 f75025 call 031e4h ; e8 b6 f7 5039 5026 test ax, ax ; 85 c0 5040 jne short 03a 53h ; 75 035041 jmp near 032 f0h ; e9 9d f85027 jne short 03a35h ; 75 03 5028 jmp near 032d2h ; e9 9d f8 5042 5029 mov bl, byte [bp-006h] ; 8a 5e fa 5043 5030 xor bh, bh ; 30 ff 5044 5031 mov ax, bx ; 89 d8 5045 call 030 31h ; e8 d4 f55032 call 03013h ; e8 d4 f5 5046 5033 test ax, ax ; 85 c0 5047 jne short 03a 7bh ; 75 1a5034 jne short 03a5dh ; 75 1a 5048 5035 mov ax, bx ; 89 d8 5049 call 03 108h ; e8 a2 f65036 call 030eah ; e8 a2 f6 5050 5037 test ax, ax ; 85 c0 5051 jne short 03a 7bh ; 75 115038 jne short 03a5dh ; 75 11 5052 5039 mov ax, word [bp+016h] ; 8b 46 16 5053 5040 xor ah, ah ; 30 e4 … … 5055 5042 mov word [bp+016h], ax ; 89 46 16 5056 5043 mov ax, strict word 0000ch ; b8 0c 00 5057 jmp near 032 bch ; e9 41 f85044 jmp near 0329eh ; e9 41 f8 5058 5045 mov ax, strict word 00010h ; b8 10 00 5059 call 016aeh ; e8 2ddc5046 call 016aeh ; e8 4b dc 5060 5047 cmp byte [bp-006h], 000h ; 80 7e fa 00 5061 jne short 03a 8fh ; 75 085048 jne short 03a71h ; 75 08 5062 5049 mov CL, strict byte 004h ; b1 04 5063 5050 mov ch, al ; 88 c5 5064 5051 shr ch, CL ; d2 ed 5065 jmp short 03a 94h ; eb 055052 jmp short 03a76h ; eb 05 5066 5053 mov ch, al ; 88 c5 5067 5054 and ch, 00fh ; 80 e5 0f 5068 5055 cmp byte [bp-006h], 000h ; 80 7e fa 00 5069 je short 03a 9fh ; 74 055056 je short 03a81h ; 74 05 5070 5057 mov dx, 00091h ; ba 91 00 5071 jmp short 03a a2h ; eb 035058 jmp short 03a84h ; eb 03 5072 5059 mov dx, 00090h ; ba 90 00 5073 5060 mov word [bp-012h], dx ; 89 56 ee 5074 5061 mov ax, strict word 00040h ; b8 40 00 5075 call 01652h ; e8 a7db5062 call 01652h ; e8 c5 db 5076 5063 and AL, strict byte 00fh ; 24 0f 5077 5064 cmp ch, 003h ; 80 fd 03 5078 jc short 03a ceh ; 72 1c5065 jc short 03ab0h ; 72 1c 5079 5066 mov ah, al ; 88 c4 5080 5067 or ah, 090h ; 80 cc 90 5081 5068 cmp ch, 003h ; 80 fd 03 5082 jbe short 03 b0ah ; 76 4e5069 jbe short 03aech ; 76 4e 5083 5070 mov dl, al ; 88 c2 5084 5071 or dl, 010h ; 80 ca 10 5085 5072 cmp ch, 005h ; 80 fd 05 5086 je short 03 b08h ; 74 425073 je short 03aeah ; 74 42 5087 5074 cmp ch, 004h ; 80 fd 04 5088 je short 03 b18h ; 74 4d5089 jmp near 03b 54h ; e9 86 005075 je short 03afah ; 74 4d 5076 jmp near 03b36h ; e9 86 00 5090 5077 cmp ch, 002h ; 80 fd 02 5091 je short 03a e8h ; 74 155078 je short 03acah ; 74 15 5092 5079 cmp ch, 001h ; 80 fd 01 5093 jne short 03 b1ch ; 75 445080 jne short 03afeh ; 75 44 5094 5081 cmp byte [bp-00ah], 027h ; 80 7e f6 27 5095 jne short 03 b1ch ; 75 3e5082 jne short 03afeh ; 75 3e 5096 5083 cmp byte [bp-008h], 009h ; 80 7e f8 09 5097 jne short 03b 34h ; 75 505084 jne short 03b16h ; 75 50 5098 5085 or AL, strict byte 090h ; 0c 90 5099 jmp short 03b 34h ; eb 4c5086 jmp short 03b16h ; eb 4c 5100 5087 cmp byte [bp-00ah], 027h ; 80 7e f6 27 5101 jne short 03a f8h ; 75 0a5088 jne short 03adah ; 75 0a 5102 5089 cmp byte [bp-008h], 009h ; 80 7e f8 09 5103 jne short 03a f8h ; 75 045090 jne short 03adah ; 75 04 5104 5091 or AL, strict byte 070h ; 0c 70 5105 jmp short 03b 34h ; eb 3c5092 jmp short 03b16h ; eb 3c 5106 5093 cmp byte [bp-00ah], 04fh ; 80 7e f6 4f 5107 jne short 03b 34h ; 75 365094 jne short 03b16h ; 75 36 5108 5095 cmp byte [bp-008h], 00fh ; 80 7e f8 0f 5109 jne short 03b 54h ; 75 505096 jne short 03b36h ; 75 50 5110 5097 or AL, strict byte 010h ; 0c 10 5111 jmp short 03b 54h ; eb 4c5112 jmp short 03b 36h ; eb 2c5098 jmp short 03b36h ; eb 4c 5099 jmp short 03b18h ; eb 2c 5113 5100 cmp byte [bp-00ah], 04fh ; 80 7e f6 4f 5114 jne short 03b 54h ; 75 445101 jne short 03b36h ; 75 44 5115 5102 cmp byte [bp-008h], 009h ; 80 7e f8 09 5116 je short 03 b1ah ; 74 045117 jmp short 03b 54h ; eb 3c5118 jmp short 03b 1eh ; eb 045103 je short 03afch ; 74 04 5104 jmp short 03b36h ; eb 3c 5105 jmp short 03b00h ; eb 04 5119 5106 mov al, ah ; 88 e0 5120 jmp short 03b 54h ; eb 365107 jmp short 03b36h ; eb 36 5121 5108 cmp byte [bp-00ah], 04fh ; 80 7e f6 4f 5122 jne short 03b 54h ; 75 305109 jne short 03b36h ; 75 30 5123 5110 cmp byte [bp-008h], 009h ; 80 7e f8 09 5124 jne short 03b 2ch ; 75 025125 jmp short 03 b1ah ; eb ee5111 jne short 03b0eh ; 75 02 5112 jmp short 03afch ; eb ee 5126 5113 cmp byte [bp-008h], 012h ; 80 7e f8 12 5127 jne short 03b 54h ; 75 225114 jne short 03b36h ; 75 22 5128 5115 mov al, dl ; 88 d0 5129 jmp short 03b 54h ; eb 1e5116 jmp short 03b36h ; eb 1e 5130 5117 cmp byte [bp-00ah], 04fh ; 80 7e f6 4f 5131 jne short 03b 54h ; 75 185118 jne short 03b36h ; 75 18 5132 5119 cmp byte [bp-008h], 009h ; 80 7e f8 09 5133 jne short 03b 44h ; 75 025134 jmp short 03 b1ah ; eb d65120 jne short 03b26h ; 75 02 5121 jmp short 03afch ; eb d6 5135 5122 cmp byte [bp-008h], 012h ; 80 7e f8 12 5136 jne short 03b 4ch ; 75 025137 jmp short 03b 32h ; eb e65123 jne short 03b2eh ; 75 02 5124 jmp short 03b14h ; eb e6 5138 5125 cmp byte [bp-008h], 024h ; 80 7e f8 24 5139 jne short 03b 54h ; 75 025126 jne short 03b36h ; 75 02 5140 5127 or AL, strict byte 0d0h ; 0c d0 5141 5128 mov dl, al ; 88 c2 … … 5144 5131 sar dx, CL ; d3 fa 5145 5132 test dl, 001h ; f6 c2 01 5146 jne short 03b 64h ; 75 035147 jmp near 03a 6ah ; e9 06 ff5133 jne short 03b46h ; 75 03 5134 jmp near 03a4ch ; e9 06 ff 5148 5135 mov bl, al ; 88 c3 5149 5136 xor bh, bh ; 30 ff 5150 5137 mov dx, word [bp-012h] ; 8b 56 ee 5151 5138 mov ax, strict word 00040h ; b8 40 00 5152 call 01660h ; e8 ef da5139 call 01660h ; e8 0d db 5153 5140 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 5154 5141 mov al, ch ; 88 e8 5155 5142 xor ah, ah ; 30 e4 5156 call 03b a9h ; e8 2c 005143 call 03b8bh ; e8 2c 00 5157 5144 mov word [bp+008h], ax ; 89 46 08 5158 jmp near 03 a11h ; e9 8e fe5145 jmp near 039f3h ; e9 8e fe 5159 5146 mov bx, 00da0h ; bb a0 0d 5160 5147 mov cx, ds ; 8c d9 5161 5148 mov ax, strict word 00004h ; b8 04 00 5162 call 01933h ; e8 a5dd5149 call 01933h ; e8 c3 dd 5163 5150 mov al, byte [bp+017h] ; 8a 46 17 5164 5151 xor ah, ah ; 30 e4 … … 5170 5157 mov ax, strict word 00004h ; b8 04 00 5171 5158 push ax ; 50 5172 call 01976h ; e8 d3dd5159 call 01976h ; e8 f1 dd 5173 5160 add sp, strict byte 00008h ; 83 c4 08 5174 jmp near 032 aeh ; e9 05 f75175 get_floppy_dpt_: ; 0xf3b a9LB 0x325161 jmp near 03290h ; e9 05 f7 5162 get_floppy_dpt_: ; 0xf3b8b LB 0x32 5176 5163 push bx ; 53 5177 5164 push dx ; 52 … … 5180 5167 mov dl, al ; 88 c2 5181 5168 xor ax, ax ; 31 c0 5182 jmp short 03b bah ; eb 065169 jmp short 03b9ch ; eb 06 5183 5170 inc ax ; 40 5184 5171 cmp ax, strict word 00007h ; 3d 07 00 5185 jnc short 03b d4h ; 73 1a5172 jnc short 03bb6h ; 73 1a 5186 5173 mov bx, ax ; 89 c3 5187 5174 sal bx, 1 ; d1 e3 5188 5175 cmp dl, byte [word bx+0005bh] ; 3a 97 5b 00 5189 jne short 03b b4h ; 75 f05176 jne short 03b96h ; 75 f0 5190 5177 mov al, byte [word bx+0005ch] ; 8a 87 5c 00 5191 5178 xor ah, ah ; 30 e4 … … 5193 5180 imul bx ; f7 eb 5194 5181 add ax, strict word 00000h ; 05 00 00 5195 jmp short 03b d7h ; eb 035182 jmp short 03bb9h ; eb 03 5196 5183 mov ax, strict word 00041h ; b8 41 00 5197 5184 pop bp ; 5d … … 5199 5186 pop bx ; 5b 5200 5187 retn ; c3 5201 dummy_soft_reset_: ; 0xf3b dbLB 0x75188 dummy_soft_reset_: ; 0xf3bbd LB 0x7 5202 5189 push bp ; 55 5203 5190 mov bp, sp ; 89 e5 … … 5205 5192 pop bp ; 5d 5206 5193 retn ; c3 5207 _cdemu_init: ; 0xf3b e2LB 0x185194 _cdemu_init: ; 0xf3bc4 LB 0x18 5208 5195 push bp ; 55 5209 5196 mov bp, sp ; 89 e5 5210 5197 mov dx, strict word 0000eh ; ba 0e 00 5211 5198 mov ax, strict word 00040h ; b8 40 00 5212 call 0166eh ; e8 80da5199 call 0166eh ; e8 9e da 5213 5200 xor bx, bx ; 31 db 5214 5201 mov dx, 00366h ; ba 66 03 5215 call 01660h ; e8 6ada5202 call 01660h ; e8 88 da 5216 5203 mov sp, bp ; 89 ec 5217 5204 pop bp ; 5d 5218 5205 retn ; c3 5219 _cdemu_isactive: ; 0xf3b faLB 0x165206 _cdemu_isactive: ; 0xf3bdc LB 0x16 5220 5207 push bp ; 55 5221 5208 mov bp, sp ; 89 e5 5222 5209 mov dx, strict word 0000eh ; ba 0e 00 5223 5210 mov ax, strict word 00040h ; b8 40 00 5224 call 0166eh ; e8 68da5211 call 0166eh ; e8 86 da 5225 5212 mov dx, 00366h ; ba 66 03 5226 call 01652h ; e8 46da5213 call 01652h ; e8 64 da 5227 5214 mov sp, bp ; 89 ec 5228 5215 pop bp ; 5d 5229 5216 retn ; c3 5230 _cdemu_emulated_drive: ; 0xf3 c10LB 0x165217 _cdemu_emulated_drive: ; 0xf3bf2 LB 0x16 5231 5218 push bp ; 55 5232 5219 mov bp, sp ; 89 e5 5233 5220 mov dx, strict word 0000eh ; ba 0e 00 5234 5221 mov ax, strict word 00040h ; b8 40 00 5235 call 0166eh ; e8 52da5222 call 0166eh ; e8 70 da 5236 5223 mov dx, 00368h ; ba 68 03 5237 call 01652h ; e8 30da5224 call 01652h ; e8 4e da 5238 5225 mov sp, bp ; 89 ec 5239 5226 pop bp ; 5d 5240 5227 retn ; c3 5241 _int13_eltorito: ; 0xf3c 26LB 0x1915228 _int13_eltorito: ; 0xf3c08 LB 0x191 5242 5229 push bp ; 55 5243 5230 mov bp, sp ; 89 e5 … … 5246 5233 mov dx, strict word 0000eh ; ba 0e 00 5247 5234 mov ax, strict word 00040h ; b8 40 00 5248 call 0166eh ; e8 3ada5235 call 0166eh ; e8 58 da 5249 5236 mov si, 00366h ; be 66 03 5250 5237 mov di, ax ; 89 c7 … … 5252 5239 xor ah, ah ; 30 e4 5253 5240 cmp ax, strict word 0004bh ; 3d 4b 00 5254 jc short 03c 4dh ; 72 0a5255 jbe short 03c 78h ; 76 335241 jc short 03c2fh ; 72 0a 5242 jbe short 03c5ah ; 76 33 5256 5243 cmp ax, strict word 0004dh ; 3d 4d 00 5257 jbe short 03c 52h ; 76 085258 jmp near 03d 7dh ; e9 30 015244 jbe short 03c34h ; 76 08 5245 jmp near 03d5fh ; e9 30 01 5259 5246 cmp ax, strict word 0004ah ; 3d 4a 00 5260 jne short 03c 75h ; 75 235247 jne short 03c57h ; 75 23 5261 5248 mov bx, 00da0h ; bb a0 0d 5262 5249 mov cx, ds ; 8c d9 5263 5250 mov ax, strict word 00004h ; b8 04 00 5264 call 01933h ; e8 d6dc5251 call 01933h ; e8 f4 dc 5265 5252 push word [bp+016h] ; ff 76 16 5266 5253 mov ax, 002fch ; b8 fc 02 … … 5270 5257 mov ax, strict word 00004h ; b8 04 00 5271 5258 push ax ; 50 5272 call 01976h ; e8 07dd5259 call 01976h ; e8 25 dd 5273 5260 add sp, strict byte 00008h ; 83 c4 08 5274 jmp near 03d 98h ; e9 23 015275 jmp near 03d 7dh ; e9 05 015261 jmp near 03d7ah ; e9 23 01 5262 jmp near 03d5fh ; e9 05 01 5276 5263 mov dx, word [bp+00ah] ; 8b 56 0a 5277 5264 mov ax, word [bp+004h] ; 8b 46 04 5278 5265 mov bx, strict word 00013h ; bb 13 00 5279 call 01660h ; e8 dcd95266 call 01660h ; e8 fa d9 5280 5267 mov es, di ; 8e c7 5281 5268 mov bl, byte [es:si+001h] ; 26 8a 5c 01 … … 5284 5271 inc dx ; 42 5285 5272 mov ax, word [bp+004h] ; 8b 46 04 5286 call 01660h ; e8 cad95273 call 01660h ; e8 e8 d9 5287 5274 mov es, di ; 8e c7 5288 5275 mov bl, byte [es:si+002h] ; 26 8a 5c 02 … … 5292 5279 inc dx ; 42 5293 5280 mov ax, word [bp+004h] ; 8b 46 04 5294 call 01660h ; e8 b7d95281 call 01660h ; e8 d5 d9 5295 5282 mov es, di ; 8e c7 5296 5283 mov bl, byte [es:si+003h] ; 26 8a 5c 03 … … 5299 5286 add dx, strict byte 00003h ; 83 c2 03 5300 5287 mov ax, word [bp+004h] ; 8b 46 04 5301 call 01660h ; e8 a3d95288 call 01660h ; e8 c1 d9 5302 5289 mov es, di ; 8e c7 5303 5290 mov bx, word [es:si+008h] ; 26 8b 5c 08 … … 5306 5293 add dx, strict byte 00004h ; 83 c2 04 5307 5294 mov ax, word [bp+004h] ; 8b 46 04 5308 call 0169ch ; e8 c9d95295 call 0169ch ; e8 e7 d9 5309 5296 mov es, di ; 8e c7 5310 5297 mov bx, word [es:si+004h] ; 26 8b 5c 04 … … 5312 5299 add dx, strict byte 00008h ; 83 c2 08 5313 5300 mov ax, word [bp+004h] ; 8b 46 04 5314 call 0167ch ; e8 97d95301 call 0167ch ; e8 b5 d9 5315 5302 mov es, di ; 8e c7 5316 5303 mov bx, word [es:si+006h] ; 26 8b 5c 06 … … 5318 5305 add dx, strict byte 0000ah ; 83 c2 0a 5319 5306 mov ax, word [bp+004h] ; 8b 46 04 5320 call 0167ch ; e8 85d95307 call 0167ch ; e8 a3 d9 5321 5308 mov es, di ; 8e c7 5322 5309 mov bx, word [es:si+00ch] ; 26 8b 5c 0c … … 5324 5311 add dx, strict byte 0000ch ; 83 c2 0c 5325 5312 mov ax, word [bp+004h] ; 8b 46 04 5326 call 0167ch ; e8 73d95313 call 0167ch ; e8 91 d9 5327 5314 mov es, di ; 8e c7 5328 5315 mov bx, word [es:si+00eh] ; 26 8b 5c 0e … … 5330 5317 add dx, strict byte 0000eh ; 83 c2 0e 5331 5318 mov ax, word [bp+004h] ; 8b 46 04 5332 call 0167ch ; e8 61d95319 call 0167ch ; e8 7f d9 5333 5320 mov es, di ; 8e c7 5334 5321 mov bl, byte [es:si+012h] ; 26 8a 5c 12 … … 5337 5324 add dx, strict byte 00010h ; 83 c2 10 5338 5325 mov ax, word [bp+004h] ; 8b 46 04 5339 call 01660h ; e8 31d95326 call 01660h ; e8 4f d9 5340 5327 mov es, di ; 8e c7 5341 5328 mov bl, byte [es:si+014h] ; 26 8a 5c 14 … … 5344 5331 add dx, strict byte 00011h ; 83 c2 11 5345 5332 mov ax, word [bp+004h] ; 8b 46 04 5346 call 01660h ; e8 1dd95333 call 01660h ; e8 3b d9 5347 5334 mov es, di ; 8e c7 5348 5335 mov bl, byte [es:si+010h] ; 26 8a 5c 10 … … 5351 5338 add dx, strict byte 00012h ; 83 c2 12 5352 5339 mov ax, word [bp+004h] ; 8b 46 04 5353 call 01660h ; e8 09d95340 call 01660h ; e8 27 d9 5354 5341 test byte [bp+016h], 0ffh ; f6 46 16 ff 5355 jne short 03d 63h ; 75 065342 jne short 03d45h ; 75 06 5356 5343 mov es, di ; 8e c7 5357 5344 mov byte [es:si], 000h ; 26 c6 04 00 … … 5360 5347 mov dx, strict word 00074h ; ba 74 00 5361 5348 mov ax, strict word 00040h ; b8 40 00 5362 call 01660h ; e8 ee d85349 call 01660h ; e8 0c d9 5363 5350 and byte [bp+01ch], 0feh ; 80 66 1c fe 5364 5351 lea sp, [bp-004h] ; 8d 66 fc … … 5370 5357 mov cx, ds ; 8c d9 5371 5358 mov ax, strict word 00004h ; b8 04 00 5372 call 01933h ; e8 abdb5359 call 01933h ; e8 c9 db 5373 5360 mov al, byte [bp+017h] ; 8a 46 17 5374 5361 xor ah, ah ; 30 e4 … … 5377 5364 push ax ; 50 5378 5365 mov ax, 00333h ; b8 33 03 5379 jmp near 03c 67h ; e9 cf fe5366 jmp near 03c49h ; e9 cf fe 5380 5367 mov ax, word [bp+016h] ; 8b 46 16 5381 5368 xor ah, ah ; 30 e4 … … 5386 5373 mov dx, strict word 00074h ; ba 74 00 5387 5374 mov ax, strict word 00040h ; b8 40 00 5388 call 01660h ; e8 afd85375 call 01660h ; e8 cd d8 5389 5376 or byte [bp+01ch], 001h ; 80 4e 1c 01 5390 jmp short 03d 76h ; eb bf5391 device_is_cdrom_: ; 0xf3d b7LB 0x3f5377 jmp short 03d58h ; eb bf 5378 device_is_cdrom_: ; 0xf3d99 LB 0x3f 5392 5379 push bp ; 55 5393 5380 mov bp, sp ; 89 e5 … … 5398 5385 mov dx, strict word 0000eh ; ba 0e 00 5399 5386 mov ax, strict word 00040h ; b8 40 00 5400 call 0166eh ; e8 a6d85387 call 0166eh ; e8 c4 d8 5401 5388 mov cx, ax ; 89 c1 5402 5389 cmp bl, 010h ; 80 fb 10 5403 jc short 03d d3h ; 72 045390 jc short 03db5h ; 72 04 5404 5391 xor ax, ax ; 31 c0 5405 jmp short 03d eeh ; eb 1b5392 jmp short 03dd0h ; eb 1b 5406 5393 mov al, bl ; 88 d8 5407 5394 xor ah, ah ; 30 e4 … … 5412 5399 add bx, 00122h ; 81 c3 22 01 5413 5400 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 5414 jne short 03d cfh ; 75 e45401 jne short 03db1h ; 75 e4 5415 5402 mov ax, strict word 00001h ; b8 01 00 5416 5403 lea sp, [bp-006h] ; 8d 66 fa … … 5420 5407 pop bp ; 5d 5421 5408 retn ; c3 5422 cdrom_boot_: ; 0xf3d f6LB 0x43d5409 cdrom_boot_: ; 0xf3dd8 LB 0x43d 5423 5410 push bp ; 55 5424 5411 mov bp, sp ; 89 e5 … … 5431 5418 mov dx, strict word 0000eh ; ba 0e 00 5432 5419 mov ax, strict word 00040h ; b8 40 00 5433 call 0166eh ; e8 63d85420 call 0166eh ; e8 81 d8 5434 5421 mov word [bp-01ah], ax ; 89 46 e6 5435 5422 mov si, 00366h ; be 66 03 … … 5438 5425 mov word [bp-012h], ax ; 89 46 ee 5439 5426 mov byte [bp-00ch], 000h ; c6 46 f4 00 5440 jmp short 03e 2bh ; eb 095427 jmp short 03e0dh ; eb 09 5441 5428 inc byte [bp-00ch] ; fe 46 f4 5442 5429 cmp byte [bp-00ch], 010h ; 80 7e f4 10 5443 jnc short 03e 37h ; 73 0c5430 jnc short 03e19h ; 73 0c 5444 5431 mov al, byte [bp-00ch] ; 8a 46 f4 5445 5432 xor ah, ah ; 30 e4 5446 call 03d b7h ; e8 84 ff5433 call 03d99h ; e8 84 ff 5447 5434 test ax, ax ; 85 c0 5448 je short 03e 22h ; 74 eb5435 je short 03e04h ; 74 eb 5449 5436 cmp byte [bp-00ch], 010h ; 80 7e f4 10 5450 jc short 03e 43h ; 72 065437 jc short 03e25h ; 72 06 5451 5438 mov ax, strict word 00002h ; b8 02 00 5452 jmp near 041 d0h ; e9 8d 035439 jmp near 041b2h ; e9 8d 03 5453 5440 mov cx, strict word 0000ch ; b9 0c 00 5454 5441 xor bx, bx ; 31 db 5455 5442 mov dx, ss ; 8c d2 5456 5443 lea ax, [bp-026h] ; 8d 46 da 5457 call 0a2 7ah ; e8 2a 645444 call 0a21ah ; e8 e8 63 5458 5445 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5459 5446 mov ax, strict word 00011h ; b8 11 00 … … 5471 5458 mov word [es:bx+010h], 00800h ; 26 c7 47 10 00 08 5472 5459 mov byte [bp-00eh], 000h ; c6 46 f2 00 5473 jmp short 03e 8bh ; eb 095460 jmp short 03e6dh ; eb 09 5474 5461 inc byte [bp-00eh] ; fe 46 f2 5475 5462 cmp byte [bp-00eh], 004h ; 80 7e f2 04 5476 jnbe short 03e cdh ; 77 425463 jnbe short 03eafh ; 77 42 5477 5464 mov al, byte [bp-00ch] ; 8a 46 f4 5478 5465 xor ah, ah ; 30 e4 … … 5503 5490 call word [word di+0006ah] ; ff 95 6a 00 5504 5491 test ax, ax ; 85 c0 5505 jne short 03e 82h ; 75 b55492 jne short 03e64h ; 75 b5 5506 5493 test ax, ax ; 85 c0 5507 je short 03e d7h ; 74 065494 je short 03eb9h ; 74 06 5508 5495 mov ax, strict word 00003h ; b8 03 00 5509 jmp near 041 d0h ; e9 f9 025496 jmp near 041b2h ; e9 f9 02 5510 5497 cmp byte [bp-00826h], 000h ; 80 be da f7 00 5511 je short 03e e4h ; 74 065498 je short 03ec6h ; 74 06 5512 5499 mov ax, strict word 00004h ; b8 04 00 5513 jmp near 041 d0h ; e9 ec 025500 jmp near 041b2h ; e9 ec 02 5514 5501 xor di, di ; 31 ff 5515 jmp short 03e eeh ; eb 065502 jmp short 03ed0h ; eb 06 5516 5503 inc di ; 47 5517 5504 cmp di, strict byte 00005h ; 83 ff 05 5518 jnc short 03e feh ; 73 105505 jnc short 03ee0h ; 73 10 5519 5506 mov al, byte [bp+di-00825h] ; 8a 83 db f7 5520 5507 cmp al, byte [di+00da8h] ; 3a 85 a8 0d 5521 je short 03e e8h ; 74 f05508 je short 03ecah ; 74 f0 5522 5509 mov ax, strict word 00005h ; b8 05 00 5523 jmp near 041 d0h ; e9 d2 025510 jmp near 041b2h ; e9 d2 02 5524 5511 xor di, di ; 31 ff 5525 jmp short 03 f08h ; eb 065512 jmp short 03eeah ; eb 06 5526 5513 inc di ; 47 5527 5514 cmp di, strict byte 00017h ; 83 ff 17 5528 jnc short 03 f18h ; 73 105515 jnc short 03efah ; 73 10 5529 5516 mov al, byte [bp+di-0081fh] ; 8a 83 e1 f7 5530 5517 cmp al, byte [di+00daeh] ; 3a 85 ae 0d 5531 je short 03 f02h ; 74 f05518 je short 03ee4h ; 74 f0 5532 5519 mov ax, strict word 00006h ; b8 06 00 5533 jmp near 041 d0h ; e9 b8 025520 jmp near 041b2h ; e9 b8 02 5534 5521 mov ax, word [bp-007dfh] ; 8b 86 21 f8 5535 5522 mov dx, word [bp-007ddh] ; 8b 96 23 f8 … … 5571 5558 call word [word di+0006ah] ; ff 95 6a 00 5572 5559 test ax, ax ; 85 c0 5573 je short 03f 80h ; 74 065560 je short 03f62h ; 74 06 5574 5561 mov ax, strict word 00007h ; b8 07 00 5575 jmp near 041 d0h ; e9 50 025562 jmp near 041b2h ; e9 50 02 5576 5563 cmp byte [bp-00826h], 001h ; 80 be da f7 01 5577 je short 03f 8dh ; 74 065564 je short 03f6fh ; 74 06 5578 5565 mov ax, strict word 00008h ; b8 08 00 5579 jmp near 041 d0h ; e9 43 025566 jmp near 041b2h ; e9 43 02 5580 5567 cmp byte [bp-00825h], 000h ; 80 be db f7 00 5581 je short 03f 9ah ; 74 065568 je short 03f7ch ; 74 06 5582 5569 mov ax, strict word 00009h ; b8 09 00 5583 jmp near 041 d0h ; e9 36 025570 jmp near 041b2h ; e9 36 02 5584 5571 cmp byte [bp-00808h], 055h ; 80 be f8 f7 55 5585 je short 03f a7h ; 74 065572 je short 03f89h ; 74 06 5586 5573 mov ax, strict word 0000ah ; b8 0a 00 5587 jmp near 041 d0h ; e9 29 025574 jmp near 041b2h ; e9 29 02 5588 5575 cmp byte [bp-00807h], 0aah ; 80 be f9 f7 aa 5589 jne short 03f a1h ; 75 f35576 jne short 03f83h ; 75 f3 5590 5577 cmp byte [bp-00806h], 088h ; 80 be fa f7 88 5591 je short 03f bbh ; 74 065578 je short 03f9dh ; 74 06 5592 5579 mov ax, strict word 0000bh ; b8 0b 00 5593 jmp near 041 d0h ; e9 15 025580 jmp near 041b2h ; e9 15 02 5594 5581 mov al, byte [bp-00805h] ; 8a 86 fb f7 5595 5582 mov es, [bp-018h] ; 8e 46 e8 5596 5583 mov byte [es:si+001h], al ; 26 88 44 01 5597 5584 cmp byte [bp-00805h], 000h ; 80 be fb f7 00 5598 jne short 03f d4h ; 75 075585 jne short 03fb6h ; 75 07 5599 5586 mov byte [es:si+002h], 0e0h ; 26 c6 44 02 e0 5600 jmp short 03f e7h ; eb 135587 jmp short 03fc9h ; eb 13 5601 5588 cmp byte [bp-00805h], 004h ; 80 be fb f7 04 5602 jnc short 03f e2h ; 73 075589 jnc short 03fc4h ; 73 07 5603 5590 mov byte [es:si+002h], 000h ; 26 c6 44 02 00 5604 jmp short 03f e7h ; eb 055591 jmp short 03fc9h ; eb 05 5605 5592 mov byte [es:si+002h], 080h ; 26 c6 44 02 80 5606 5593 mov bl, byte [bp-00ch] ; 8a 5e f4 … … 5621 5608 mov word [bp-010h], ax ; 89 46 f0 5622 5609 test ax, ax ; 85 c0 5623 jne short 0 4016h ; 75 055610 jne short 03ff8h ; 75 05 5624 5611 mov word [bp-010h], 007c0h ; c7 46 f0 c0 07 5625 5612 mov ax, word [bp-010h] ; 8b 46 f0 … … 5630 5617 mov word [es:si+00eh], bx ; 26 89 5c 0e 5631 5618 test bx, bx ; 85 db 5632 je short 040 38h ; 74 065619 je short 0401ah ; 74 06 5633 5620 cmp bx, 00400h ; 81 fb 00 04 5634 jbe short 040 3eh ; 76 065621 jbe short 04020h ; 76 06 5635 5622 mov ax, strict word 0000ch ; b8 0c 00 5636 jmp near 041 d0h ; e9 92 015623 jmp near 041b2h ; e9 92 01 5637 5624 mov ax, word [bp-007feh] ; 8b 86 02 f8 5638 5625 mov dx, word [bp-007fch] ; 8b 96 04 f8 … … 5682 5669 sal ax, 1 ; d1 e0 5683 5670 rcl di, 1 ; d1 d7 5684 loop 040 b6h ; e2 fa5671 loop 04098h ; e2 fa 5685 5672 push di ; 57 5686 5673 push ax ; 50 … … 5697 5684 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00 5698 5685 test ax, ax ; 85 c0 5699 je short 040 e8h ; 74 065686 je short 040cah ; 74 06 5700 5687 mov ax, strict word 0000dh ; b8 0d 00 5701 jmp near 041 d0h ; e9 e8 005688 jmp near 041b2h ; e9 e8 00 5702 5689 mov es, [bp-018h] ; 8e 46 e8 5703 5690 mov al, byte [es:si+001h] ; 26 8a 44 01 5704 5691 cmp AL, strict byte 002h ; 3c 02 5705 jc short 04 100h ; 72 0d5706 jbe short 04 11bh ; 76 265692 jc short 040e2h ; 72 0d 5693 jbe short 040fdh ; 76 26 5707 5694 cmp AL, strict byte 004h ; 3c 04 5708 je short 041 2bh ; 74 325695 je short 0410dh ; 74 32 5709 5696 cmp AL, strict byte 003h ; 3c 03 5710 je short 041 23h ; 74 265711 jmp near 041 78h ; e9 78 005697 je short 04105h ; 74 26 5698 jmp near 0415ah ; e9 78 00 5712 5699 cmp AL, strict byte 001h ; 3c 01 5713 jne short 041 78h ; 75 745700 jne short 0415ah ; 75 74 5714 5701 mov es, [bp-018h] ; 8e 46 e8 5715 5702 mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00 5716 5703 mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00 5717 5704 mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00 5718 jmp short 041 78h ; eb 5d5705 jmp short 0415ah ; eb 5d 5719 5706 mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00 5720 jmp short 04 10dh ; eb ea5707 jmp short 040efh ; eb ea 5721 5708 mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00 5722 jmp short 04 10dh ; eb e25709 jmp short 040efh ; eb e2 5723 5710 mov dx, 001c4h ; ba c4 01 5724 5711 mov ax, word [bp-010h] ; 8b 46 f0 5725 call 01652h ; e8 1ed55712 call 01652h ; e8 3c d5 5726 5713 and AL, strict byte 03fh ; 24 3f 5727 5714 xor ah, ah ; 30 e4 … … 5730 5717 mov dx, 001c4h ; ba c4 01 5731 5718 mov ax, word [bp-010h] ; 8b 46 f0 5732 call 01652h ; e8 0ad55719 call 01652h ; e8 28 d5 5733 5720 xor ah, ah ; 30 e4 5734 5721 mov bx, ax ; 89 c3 … … 5737 5724 mov dx, 001c5h ; ba c5 01 5738 5725 mov ax, word [bp-010h] ; 8b 46 f0 5739 call 01652h ; e8 f9 d45726 call 01652h ; e8 17 d5 5740 5727 xor ah, ah ; 30 e4 5741 5728 add ax, bx ; 01 d8 … … 5745 5732 mov dx, 001c3h ; ba c3 01 5746 5733 mov ax, word [bp-010h] ; 8b 46 f0 5747 call 01652h ; e8 e4 d45734 call 01652h ; e8 02 d5 5748 5735 xor ah, ah ; 30 e4 5749 5736 inc ax ; 40 … … 5752 5739 mov es, [bp-018h] ; 8e 46 e8 5753 5740 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5754 je short 041 b9h ; 74 375741 je short 0419bh ; 74 37 5755 5742 cmp byte [es:si+002h], 000h ; 26 80 7c 02 00 5756 jne short 041 a1h ; 75 185743 jne short 04183h ; 75 18 5757 5744 mov dx, strict word 00010h ; ba 10 00 5758 5745 mov ax, strict word 00040h ; b8 40 00 5759 call 01652h ; e8 c0d45746 call 01652h ; e8 de d4 5760 5747 mov bl, al ; 88 c3 5761 5748 or bl, 041h ; 80 cb 41 … … 5763 5750 mov dx, strict word 00010h ; ba 10 00 5764 5751 mov ax, strict word 00040h ; b8 40 00 5765 jmp short 041 b6h ; eb 155752 jmp short 04198h ; eb 15 5766 5753 mov dx, 00304h ; ba 04 03 5767 5754 mov ax, word [bp-01ah] ; 8b 46 e6 5768 call 01652h ; e8 a8d45755 call 01652h ; e8 c6 d4 5769 5756 mov bl, al ; 88 c3 5770 5757 db 0feh, 0c3h … … 5773 5760 mov dx, 00304h ; ba 04 03 5774 5761 mov ax, word [bp-01ah] ; 8b 46 e6 5775 call 01660h ; e8 a7d45762 call 01660h ; e8 c5 d4 5776 5763 mov es, [bp-018h] ; 8e 46 e8 5777 5764 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5778 je short 041 c7h ; 74 045765 je short 041a9h ; 74 04 5779 5766 mov byte [es:si], 001h ; 26 c6 04 01 5780 5767 mov es, [bp-018h] ; 8e 46 e8 … … 5790 5777 retn ; c3 5791 5778 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 5792 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 eah, 045h, 0dah5793 db 042h, 0 0fh, 043h, 034h, 043h, 004h, 043h, 034h, 043h, 004h, 043h, 033h, 045h, 019h, 045h, 0eah5794 db 045h, 0 eah, 045h, 019h, 045h, 019h, 045h, 019h, 045h, 019h, 045h, 019h, 045h, 0e1h, 045h, 019h5795 db 04 5h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah5796 db 045h, 0 eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h5797 _int13_cdemu: ; 0xf42 33LB 0x4535779 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0cch, 045h, 0bch 5780 db 042h, 0f1h, 042h, 016h, 043h, 0e6h, 042h, 016h, 043h, 0e6h, 042h, 015h, 045h, 0fbh, 044h, 0cch 5781 db 045h, 0cch, 045h, 0fbh, 044h, 0fbh, 044h, 0fbh, 044h, 0fbh, 044h, 0fbh, 044h, 0c3h, 045h, 0fbh 5782 db 044h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch 5783 db 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h 5784 _int13_cdemu: ; 0xf4215 LB 0x453 5798 5785 push bp ; 55 5799 5786 mov bp, sp ; 89 e5 … … 5803 5790 mov dx, strict word 0000eh ; ba 0e 00 5804 5791 mov ax, strict word 00040h ; b8 40 00 5805 call 0166eh ; e8 2ad45792 call 0166eh ; e8 48 d4 5806 5793 mov di, 00366h ; bf 66 03 5807 5794 mov cx, ax ; 89 c1 … … 5819 5806 mov dx, strict word 00074h ; ba 74 00 5820 5807 mov ax, strict word 00040h ; b8 40 00 5821 call 01660h ; e8 ed d35808 call 01660h ; e8 0b d4 5822 5809 mov es, cx ; 8e c1 5823 5810 cmp byte [es:di], 000h ; 26 80 3d 00 5824 je short 042 8ah ; 74 0f5811 je short 0426ch ; 74 0f 5825 5812 mov al, byte [es:di+002h] ; 26 8a 45 02 5826 5813 xor ah, ah ; 30 e4 … … 5828 5815 xor dh, dh ; 30 f6 5829 5816 cmp ax, dx ; 39 d0 5830 je short 042 b4h ; 74 2a5817 je short 04296h ; 74 2a 5831 5818 mov bx, 00da0h ; bb a0 0d 5832 5819 mov cx, ds ; 8c d9 5833 5820 mov ax, strict word 00004h ; b8 04 00 5834 call 01933h ; e8 9ed65821 call 01933h ; e8 bc d6 5835 5822 mov ax, word [bp+012h] ; 8b 46 12 5836 5823 xor ah, ah ; 30 e4 … … 5844 5831 mov ax, strict word 00004h ; b8 04 00 5845 5832 push ax ; 50 5846 call 01976h ; e8 c8d65833 call 01976h ; e8 e6 d6 5847 5834 add sp, strict byte 0000ah ; 83 c4 0a 5848 jmp near 04 60dh ; e9 59 035835 jmp near 045efh ; e9 59 03 5849 5836 mov al, byte [bp+017h] ; 8a 46 17 5850 5837 xor ah, ah ; 30 e4 5851 5838 mov dx, ax ; 89 c2 5852 5839 cmp ax, strict word 00050h ; 3d 50 00 5853 jnbe short 043 31h ; 77 715840 jnbe short 04313h ; 77 71 5854 5841 push CS ; 0e 5855 5842 pop ES ; 07 5856 5843 mov cx, strict word 0001eh ; b9 1e 00 5857 mov di, 041 dah ; bf da415844 mov di, 041bch ; bf bc 41 5858 5845 repne scasb ; f2 ae 5859 5846 sal cx, 1 ; d1 e1 5860 5847 mov di, cx ; 89 cf 5861 mov ax, word [cs:di+041 f7h] ; 2e 8b 85 f7415848 mov ax, word [cs:di+041d9h] ; 2e 8b 85 d9 41 5862 5849 mov bx, word [bp+016h] ; 8b 5e 16 5863 5850 xor bh, bh ; 30 ff … … 5873 5860 sal bx, 1 ; d1 e3 5874 5861 cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00 5875 je short 04 301h ; 74 095862 je short 042e3h ; 74 09 5876 5863 mov al, byte [bp-006h] ; 8a 46 fa 5877 5864 xor ah, ah ; 30 e4 5878 5865 call word [word bx+00076h] ; ff 97 76 00 5879 jmp near 04 519h ; e9 15 025866 jmp near 044fbh ; e9 15 02 5880 5867 mov ax, word [bp+016h] ; 8b 46 16 5881 5868 xor ah, ah ; 30 e4 5882 5869 or ah, 003h ; 80 cc 03 5883 jmp near 04 615h ; e9 06 035870 jmp near 045f7h ; e9 06 03 5884 5871 mov dx, strict word 00074h ; ba 74 00 5885 5872 mov ax, strict word 00040h ; b8 40 00 5886 call 01652h ; e8 3ad35873 call 01652h ; e8 58 d3 5887 5874 mov cl, al ; 88 c1 5888 5875 mov bh, al ; 88 c7 … … 5891 5878 mov dx, strict word 00074h ; ba 74 00 5892 5879 mov ax, strict word 00040h ; b8 40 00 5893 call 01660h ; e8 36d35880 call 01660h ; e8 54 d3 5894 5881 test cl, cl ; 84 c9 5895 je short 043 93h ; 74 655896 jmp near 046 26h ; e9 f5 025897 jmp near 045 eah ; e9 b6 025882 je short 04375h ; 74 65 5883 jmp near 04608h ; e9 f5 02 5884 jmp near 045cch ; e9 b6 02 5898 5885 mov es, [bp-012h] ; 8e 46 ee 5899 5886 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 5921 5908 mov word [bp-014h], cx ; 89 4e ec 5922 5909 test cx, cx ; 85 c9 5923 je short 043 a0h ; 74 1d5910 je short 04382h ; 74 1d 5924 5911 cmp di, word [bp-00ah] ; 3b 7e f6 5925 jc short 043 90h ; 72 085912 jc short 04372h ; 72 08 5926 5913 cmp ax, dx ; 39 d0 5927 jnc short 043 90h ; 73 045914 jnc short 04372h ; 73 04 5928 5915 cmp bx, si ; 39 f3 5929 jnbe short 043 96h ; 77 065930 jmp near 04 60dh ; e9 7a 025931 jmp near 04 51dh ; e9 87 015916 jnbe short 04378h ; 77 06 5917 jmp near 045efh ; e9 7a 02 5918 jmp near 044ffh ; e9 87 01 5932 5919 mov dl, byte [bp+017h] ; 8a 56 17 5933 5920 xor dh, dh ; 30 f6 5934 5921 cmp dx, strict byte 00004h ; 83 fa 04 5935 jne short 043 a3h ; 75 035936 jmp near 04 519h ; e9 76 015922 jne short 04385h ; 75 03 5923 jmp near 044fbh ; e9 76 01 5937 5924 mov CL, strict byte 004h ; b1 04 5938 5925 mov dx, word [bp+010h] ; 8b 56 10 … … 5947 5934 xor dl, dl ; 30 d2 5948 5935 xor cx, cx ; 31 c9 5949 call 0a 229h ; e8 655e5936 call 0a1c9h ; e8 23 5e 5950 5937 xor bx, bx ; 31 db 5951 5938 add ax, si ; 01 f0 … … 5953 5940 mov bx, di ; 89 fb 5954 5941 xor cx, cx ; 31 c9 5955 call 0a 229h ; e8 585e5942 call 0a1c9h ; e8 16 5e 5956 5943 mov bx, ax ; 89 c3 5957 5944 mov ax, word [bp-00ah] ; 8b 46 f6 … … 5988 5975 mov dx, ss ; 8c d2 5989 5976 lea ax, [bp-030h] ; 8d 46 d0 5990 call 0a2 7ah ; e8 525e5977 call 0a21ah ; e8 10 5e 5991 5978 mov word [bp-030h], strict word 00028h ; c7 46 d0 28 00 5992 5979 mov ax, word [bp-00eh] ; 8b 46 f2 … … 6041 6028 sal si, 1 ; d1 e6 6042 6029 rcl di, 1 ; d1 d7 6043 loop 044 adh ; e2 fa6030 loop 0448fh ; e2 fa 6044 6031 push di ; 57 6045 6032 push si ; 56 … … 6057 6044 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00 6058 6045 test al, al ; 84 c0 6059 je short 04 519h ; 74 386046 je short 044fbh ; 74 38 6060 6047 mov bx, 00da0h ; bb a0 0d 6061 6048 mov cx, ds ; 8c d9 6062 6049 mov ax, strict word 00004h ; b8 04 00 6063 call 01933h ; e8 47d46050 call 01933h ; e8 65 d4 6064 6051 mov al, dl ; 88 d0 6065 6052 xor ah, ah ; 30 e4 … … 6073 6060 mov ax, strict word 00004h ; b8 04 00 6074 6061 push ax ; 50 6075 call 01976h ; e8 72d46062 call 01976h ; e8 90 d4 6076 6063 add sp, strict byte 0000ah ; 83 c4 0a 6077 6064 mov ax, word [bp+016h] ; 8b 46 16 … … 6080 6067 mov word [bp+016h], ax ; 89 46 16 6081 6068 mov byte [bp+016h], 000h ; c6 46 16 00 6082 jmp near 04 618h ; e9 ff 006069 jmp near 045fah ; e9 ff 00 6083 6070 mov byte [bp+017h], 000h ; c6 46 17 00 6084 6071 xor bx, bx ; 31 db 6085 6072 mov dx, strict word 00074h ; ba 74 00 6086 6073 mov ax, strict word 00040h ; b8 40 00 6087 call 01660h ; e8 38d16074 call 01660h ; e8 56 d1 6088 6075 and byte [bp+01ch], 0feh ; 80 66 1c fe 6089 6076 lea sp, [bp-004h] ; 8d 66 fc … … 6135 6122 mov word [bp+010h], cx ; 89 4e 10 6136 6123 cmp AL, strict byte 003h ; 3c 03 6137 je short 045 c3h ; 74 1c6124 je short 045a5h ; 74 1c 6138 6125 cmp AL, strict byte 002h ; 3c 02 6139 je short 045 bbh ; 74 106126 je short 0459dh ; 74 10 6140 6127 cmp AL, strict byte 001h ; 3c 01 6141 jne short 045 c8h ; 75 196128 jne short 045aah ; 75 19 6142 6129 mov ax, word [bp+010h] ; 8b 46 10 6143 6130 xor al, al ; 30 c0 6144 6131 or AL, strict byte 002h ; 0c 02 6145 6132 mov word [bp+010h], ax ; 89 46 10 6146 jmp short 045 c8h ; eb 0d6133 jmp short 045aah ; eb 0d 6147 6134 or cl, 004h ; 80 c9 04 6148 6135 mov word [bp+010h], cx ; 89 4e 10 6149 jmp short 045 c8h ; eb 056136 jmp short 045aah ; eb 05 6150 6137 or cl, 005h ; 80 c9 05 6151 jmp short 045 beh ; eb f66138 jmp short 045a0h ; eb f6 6152 6139 mov es, [bp-012h] ; 8e 46 ee 6153 6140 cmp byte [es:si+001h], 004h ; 26 80 7c 01 04 6154 jc short 045 d5h ; 72 036155 jmp near 04 519h ; e9 44 ff6141 jc short 045b7h ; 72 03 6142 jmp near 044fbh ; e9 44 ff 6156 6143 mov word [bp+008h], 0efc7h ; c7 46 08 c7 ef 6157 6144 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 6158 jmp short 045 d2h ; eb f16145 jmp short 045b4h ; eb f1 6159 6146 or bh, 003h ; 80 cf 03 6160 6147 mov word [bp+016h], bx ; 89 5e 16 6161 jmp near 04 51dh ; e9 33 ff6148 jmp near 044ffh ; e9 33 ff 6162 6149 mov bx, 00da0h ; bb a0 0d 6163 6150 mov cx, ds ; 8c d9 6164 6151 mov ax, strict word 00004h ; b8 04 00 6165 call 01933h ; e8 3ed36152 call 01933h ; e8 5c d3 6166 6153 mov al, byte [bp+017h] ; 8a 46 17 6167 6154 xor ah, ah ; 30 e4 … … 6173 6160 mov ax, strict word 00004h ; b8 04 00 6174 6161 push ax ; 50 6175 call 01976h ; e8 6cd36162 call 01976h ; e8 8a d3 6176 6163 add sp, strict byte 00008h ; 83 c4 08 6177 6164 mov ax, word [bp+016h] ; 8b 46 16 … … 6183 6170 mov dx, strict word 00074h ; ba 74 00 6184 6171 mov ax, strict word 00040h ; b8 40 00 6185 call 01660h ; e8 3ad06172 call 01660h ; e8 58 d0 6186 6173 or byte [bp+01ch], 001h ; 80 4e 1c 01 6187 jmp near 045 2ch ; e9 ff fe6174 jmp near 0450eh ; e9 ff fe 6188 6175 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 6189 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 6fh, 047h, 0ddh6190 db 04bh, 0 31h, 047h, 06fh, 047h, 026h, 047h, 06fh, 047h, 026h, 047h, 06fh, 047h, 0ddh, 04bh, 06fh6191 db 047h, 0 6fh, 047h, 0ddh, 04bh, 0ddh, 04bh, 0ddh, 04bh, 0ddh, 04bh, 0ddh, 04bh, 053h, 047h, 0ddh6192 db 04bh, 0 6fh, 047h, 05ch, 047h, 08dh, 047h, 026h, 047h, 08dh, 047h, 0d5h, 048h, 075h, 049h, 08dh6193 db 047h, 0 9fh, 049h, 0f7h, 04bh, 0ffh, 04bh, 06fh, 047h6194 _int13_cdrom: ; 0xf46 86 LB 0x5ae6176 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 051h, 047h, 096h 6177 db 04bh, 013h, 047h, 051h, 047h, 008h, 047h, 051h, 047h, 008h, 047h, 051h, 047h, 096h, 04bh, 051h 6178 db 047h, 051h, 047h, 096h, 04bh, 096h, 04bh, 096h, 04bh, 096h, 04bh, 096h, 04bh, 035h, 047h, 096h 6179 db 04bh, 051h, 047h, 03eh, 047h, 06fh, 047h, 008h, 047h, 06fh, 047h, 0b8h, 048h, 058h, 049h, 06fh 6180 db 047h, 082h, 049h, 0b0h, 04bh, 0b8h, 04bh, 051h, 047h 6181 _int13_cdrom: ; 0xf4668 LB 0x585 6195 6182 push bp ; 55 6196 6183 mov bp, sp ; 89 e5 6197 6184 push si ; 56 6198 6185 push di ; 57 6199 sub sp, strict byte 0002 ch ; 83 ec 2c6186 sub sp, strict byte 0002ah ; 83 ec 2a 6200 6187 mov dx, strict word 0000eh ; ba 0e 00 6201 6188 mov ax, strict word 00040h ; b8 40 00 6202 call 0166eh ; e8 d7cf6189 call 0166eh ; e8 f5 cf 6203 6190 mov word [bp-018h], ax ; 89 46 e8 6204 6191 mov word [bp-00eh], 00122h ; c7 46 f2 22 01 … … 6207 6194 mov dx, strict word 00074h ; ba 74 00 6208 6195 mov ax, strict word 00040h ; b8 40 00 6209 call 01660h ; e8 b3cf6196 call 01660h ; e8 d1 cf 6210 6197 mov ax, word [bp+010h] ; 8b 46 10 6211 6198 xor ah, ah ; 30 e4 6212 6199 cmp ax, 000e0h ; 3d e0 00 6213 jc short 046 bch ; 72 056200 jc short 0469eh ; 72 05 6214 6201 cmp ax, 000f0h ; 3d f0 00 6215 jc short 046 dbh ; 72 1f6202 jc short 046bdh ; 72 1f 6216 6203 mov ax, word [bp+010h] ; 8b 46 10 6217 6204 xor ah, ah ; 30 e4 … … 6225 6212 mov ax, strict word 00004h ; b8 04 00 6226 6213 push ax ; 50 6227 call 01976h ; e8 a1d26214 call 01976h ; e8 bf d2 6228 6215 add sp, strict byte 0000ah ; 83 c4 0a 6229 jmp near 04 c15h ; e9 3a056216 jmp near 04bceh ; e9 11 05 6230 6217 mov ax, word [bp+010h] ; 8b 46 10 6231 6218 xor ah, ah ; 30 e4 … … 6233 6220 add bx, ax ; 01 c3 6234 6221 mov dl, byte [es:bx+00114h] ; 26 8a 97 14 01 6235 mov byte [bp-00 6h], dl ; 88 56 fa6222 mov byte [bp-008h], dl ; 88 56 f8 6236 6223 cmp dl, 010h ; 80 fa 10 6237 jc short 04 700h ; 72 0e6224 jc short 046e2h ; 72 0e 6238 6225 push ax ; 50 6239 6226 mov al, byte [bp+019h] ; 8a 46 19 … … 6242 6229 push ax ; 50 6243 6230 mov ax, 00416h ; b8 16 04 6244 jmp short 046 cdh ; eb cd6231 jmp short 046afh ; eb cd 6245 6232 mov al, byte [bp+019h] ; 8a 46 19 6246 6233 xor ah, ah ; 30 e4 6247 6234 mov dx, ax ; 89 c2 6248 6235 cmp ax, strict word 00050h ; 3d 50 00 6249 jnbe short 047 6fh ; 77 636236 jnbe short 04751h ; 77 63 6250 6237 push CS ; 0e 6251 6238 pop ES ; 07 6252 6239 mov cx, strict word 0001eh ; b9 1e 00 6253 mov di, 046 2dh ; bf 2d466240 mov di, 0460fh ; bf 0f 46 6254 6241 repne scasb ; f2 ae 6255 6242 sal cx, 1 ; d1 e1 6256 6243 mov di, cx ; 89 cf 6257 mov ax, word [cs:di+046 4ah] ; 2e 8b 85 4a466244 mov ax, word [cs:di+0462ch] ; 2e 8b 85 2c 46 6258 6245 mov bx, word [bp+018h] ; 8b 5e 18 6259 6246 xor bh, bh ; 30 ff … … 6262 6249 xor ah, ah ; 30 e4 6263 6250 or ah, 003h ; 80 cc 03 6264 jmp near 04 c1dh ; e9 ec046251 jmp near 04bd6h ; e9 c3 04 6265 6252 mov dx, strict word 00074h ; ba 74 00 6266 6253 mov ax, strict word 00040h ; b8 40 00 6267 call 01652h ; e8 18cf6254 call 01652h ; e8 36 cf 6268 6255 mov cl, al ; 88 c1 6269 6256 mov bh, al ; 88 c7 … … 6272 6259 mov dx, strict word 00074h ; ba 74 00 6273 6260 mov ax, strict word 00040h ; b8 40 00 6274 call 01660h ; e8 14cf6261 call 01660h ; e8 32 cf 6275 6262 test cl, cl ; 84 c9 6276 je short 047 6ch ; 74 1c6277 jmp near 04 c2eh ; e9 db046263 je short 0474eh ; 74 1c 6264 jmp near 04be7h ; e9 b2 04 6278 6265 or bh, 002h ; 80 cf 02 6279 6266 mov word [bp+018h], bx ; 89 5e 18 6280 jmp near 04 c20h ; e9 c4046267 jmp near 04bd9h ; e9 9b 04 6281 6268 mov word [bp+012h], 0aa55h ; c7 46 12 55 aa 6282 6269 or bh, 030h ; 80 cf 30 6283 6270 mov word [bp+018h], bx ; 89 5e 18 6284 6271 mov word [bp+016h], strict word 00007h ; c7 46 16 07 00 6285 jmp near 04b e1h ; e9 72046272 jmp near 04b9ah ; e9 49 04 6286 6273 mov bx, 00da0h ; bb a0 0d 6287 6274 mov cx, ds ; 8c d9 6288 6275 mov ax, strict word 00004h ; b8 04 00 6289 call 01933h ; e8 b9d16276 call 01933h ; e8 d7 d1 6290 6277 mov al, byte [bp+019h] ; 8a 46 19 6291 6278 xor ah, ah ; 30 e4 … … 6296 6283 push ax ; 50 6297 6284 mov ax, strict word 00004h ; b8 04 00 6298 jmp short 047 ceh ; eb 416285 jmp short 047b0h ; eb 41 6299 6286 mov bx, word [bp+00ch] ; 8b 5e 0c 6300 6287 mov es, [bp+006h] ; 8e 46 06 6301 6288 mov di, bx ; 89 df 6302 mov [bp-0 14h], es ; 8c 46 ec6289 mov [bp-020h], es ; 8c 46 e0 6303 6290 mov si, word [es:bx+002h] ; 26 8b 77 02 6304 6291 mov ax, word [es:bx+006h] ; 26 8b 47 06 … … 6307 6294 mov word [bp-01ah], ax ; 89 46 e6 6308 6295 mov ax, word [es:bx+00ch] ; 26 8b 47 0c 6309 mov word [bp-01 6h], ax ; 89 46 ea6296 mov word [bp-014h], ax ; 89 46 ec 6310 6297 mov ax, word [es:bx+00eh] ; 26 8b 47 0e 6311 6298 mov word [bp-012h], ax ; 89 46 ee 6312 or ax, word [bp-01 6h] ; 0b 46 ea6313 je short 047 d8h ; 74 1b6299 or ax, word [bp-014h] ; 0b 46 ec 6300 je short 047bah ; 74 1b 6314 6301 mov al, byte [bp+019h] ; 8a 46 19 6315 6302 xor ah, ah ; 30 e4 … … 6321 6308 mov ax, strict word 00007h ; b8 07 00 6322 6309 push ax ; 50 6323 call 01976h ; e8 a4d16310 call 01976h ; e8 c2 d1 6324 6311 add sp, strict byte 00008h ; 83 c4 08 6325 jmp near 04 c15h ; e9 3d046326 mov es, [bp-0 14h] ; 8e 46 ec6312 jmp near 04bceh ; e9 14 04 6313 mov es, [bp-020h] ; 8e 46 e0 6327 6314 mov ax, word [es:di+008h] ; 26 8b 45 08 6328 mov word [bp-01 6h], ax ; 89 46 ea6315 mov word [bp-014h], ax ; 89 46 ec 6329 6316 mov ax, word [es:di+00ah] ; 26 8b 45 0a 6330 6317 mov word [bp-012h], ax ; 89 46 ee 6331 6318 mov al, byte [bp+019h] ; 8a 46 19 6332 mov byte [bp-0 22h], al ; 88 46 de6333 mov byte [bp-0 21h], 000h ; c6 46 df006334 mov ax, word [bp-0 22h] ; 8b 46 de6319 mov byte [bp-010h], al ; 88 46 f0 6320 mov byte [bp-00fh], 000h ; c6 46 f1 00 6321 mov ax, word [bp-010h] ; 8b 46 f0 6335 6322 cmp ax, strict word 00044h ; 3d 44 00 6336 je short 04 800h ; 74 056323 je short 047e2h ; 74 05 6337 6324 cmp ax, strict word 00047h ; 3d 47 00 6338 jne short 04 803h ; 75 036339 jmp near 04b ddh ; e9 da036325 jne short 047e5h ; 75 03 6326 jmp near 04b96h ; e9 b1 03 6340 6327 mov cx, strict word 0000ch ; b9 0c 00 6341 6328 xor bx, bx ; 31 db 6342 6329 mov dx, ss ; 8c d2 6343 lea ax, [bp-0 30h] ; 8d 46 d06344 call 0a2 7ah ; e8 6a5a6345 mov word [bp-0 30h], strict word 00028h ; c7 46 d028 006346 mov ax, word [bp-01 6h] ; 8b 46 ea6330 lea ax, [bp-02eh] ; 8d 46 d2 6331 call 0a21ah ; e8 28 5a 6332 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 6333 mov ax, word [bp-014h] ; 8b 46 ec 6347 6334 mov dx, word [bp-012h] ; 8b 56 ee 6348 6335 xchg ah, al ; 86 c4 6349 6336 xchg dh, dl ; 86 d6 6350 6337 xchg dx, ax ; 92 6351 mov word [bp-02 eh], ax ; 89 46 d26352 mov word [bp-02 ch], dx ; 89 56 d46338 mov word [bp-02ch], ax ; 89 46 d4 6339 mov word [bp-02ah], dx ; 89 56 d6 6353 6340 mov ax, si ; 89 f0 6354 6341 xchg ah, al ; 86 c4 6355 mov word [bp-02 9h], ax ; 89 46 d76342 mov word [bp-027h], ax ; 89 46 d9 6356 6343 les bx, [bp-00eh] ; c4 5e f2 6357 6344 mov word [es:bx+00eh], si ; 26 89 77 0e 6358 6345 mov word [es:bx+010h], 00800h ; 26 c7 47 10 00 08 6359 mov al, byte [bp-00 6h] ; 8a 46 fa6346 mov al, byte [bp-008h] ; 8a 46 f8 6360 6347 xor ah, ah ; 30 e4 6361 6348 mov dx, strict word 0001ch ; ba 1c 00 … … 6365 6352 xor ah, ah ; 30 e4 6366 6353 sal ax, 1 ; d1 e0 6367 mov word [bp-02 4h], ax ; 89 46 dc6354 mov word [bp-022h], ax ; 89 46 de 6368 6355 push word [bp-01ch] ; ff 76 e4 6369 6356 push word [bp-01ah] ; ff 76 e6 … … 6375 6362 sal bx, 1 ; d1 e3 6376 6363 rcl si, 1 ; d1 d6 6377 loop 048 62h ; e2 fa6364 loop 04844h ; e2 fa 6378 6365 push si ; 56 6379 6366 push bx ; 53 6380 6367 xor ax, ax ; 31 c0 6381 6368 push ax ; 50 6382 mov al, byte [bp-00 6h] ; 8a 46 fa6369 mov al, byte [bp-008h] ; 8a 46 f8 6383 6370 xor ah, ah ; 30 e4 6384 6371 mov cx, ss ; 8c d1 6385 lea bx, [bp-0 30h] ; 8d 5e d06372 lea bx, [bp-02eh] ; 8d 5e d2 6386 6373 mov dx, strict word 0000ch ; ba 0c 00 6387 mov si, word [bp-02 4h] ; 8b 76 dc6374 mov si, word [bp-022h] ; 8b 76 de 6388 6375 call word [word si+0006ah] ; ff 94 6a 00 6389 mov dx, ax ; 89 c26376 mov word [bp-016h], ax ; 89 46 ea 6390 6377 les bx, [bp-00eh] ; c4 5e f2 6391 mov bx, word [es:bx+01ah] ; 26 8b 5f 1a 6392 mov si, word [bp-00eh] ; 8b 76 f2 6393 mov si, word [es:si+01ch] ; 26 8b 74 1c 6378 mov ax, word [es:bx+01ah] ; 26 8b 47 1a 6379 mov dx, word [es:bx+01ch] ; 26 8b 57 1c 6394 6380 mov cx, strict word 0000bh ; b9 0b 00 6395 shr si, 1 ; d1 ee6396 rcr bx, 1 ; d1 db6397 loop 048 94h ; e2 fa6398 mov es, [bp-0 14h] ; 8e 46 ec6399 mov word [es:di+002h], bx ; 26 89 5d026400 test al, al ; 84 c06401 je short 048 fbh ; 74 566381 shr dx, 1 ; d1 ea 6382 rcr ax, 1 ; d1 d8 6383 loop 04874h ; e2 fa 6384 mov es, [bp-020h] ; 8e 46 e0 6385 mov word [es:di+002h], ax ; 26 89 45 02 6386 cmp byte [bp-016h], 000h ; 80 7e ea 00 6387 je short 048deh ; 74 57 6402 6388 mov bx, 00da0h ; bb a0 0d 6403 6389 mov cx, ds ; 8c d9 6404 6390 mov ax, strict word 00004h ; b8 04 00 6405 call 01933h ; e8 83d06406 mov al, dl ; 88 d06407 xor ah, ah ; 30 e4 6408 push ax ; 50 6409 push word [bp-0 22h] ; ff 76 de6391 call 01933h ; e8 a1 d0 6392 mov al, byte [bp-016h] ; 8a 46 ea 6393 xor ah, ah ; 30 e4 6394 push ax ; 50 6395 push word [bp-010h] ; ff 76 f0 6410 6396 mov ax, 003dfh ; b8 df 03 6411 6397 push ax ; 50 … … 6414 6400 mov ax, strict word 00004h ; b8 04 00 6415 6401 push ax ; 50 6416 call 01976h ; e8 afd06402 call 01976h ; e8 cc d0 6417 6403 add sp, strict byte 0000ah ; 83 c4 0a 6418 6404 mov ax, word [bp+018h] ; 8b 46 18 6419 6405 xor ah, ah ; 30 e4 6420 6406 or ah, 00ch ; 80 cc 0c 6421 jmp near 04 c1dh ; e9 48036407 jmp near 04bd6h ; e9 1e 03 6422 6408 cmp bx, strict byte 00002h ; 83 fb 02 6423 jnbe short 049 46h ; 77 6c6424 mov al, byte [bp-00 6h] ; 8a 46 fa6409 jnbe short 04929h ; 77 6c 6410 mov al, byte [bp-008h] ; 8a 46 f8 6425 6411 xor ah, ah ; 30 e4 6426 6412 mov dx, strict word 0001ch ; ba 1c 00 … … 6430 6416 mov cl, byte [es:si+025h] ; 26 8a 4c 25 6431 6417 cmp bx, strict byte 00002h ; 83 fb 02 6432 je short 049 5eh ; 74 6c6418 je short 04941h ; 74 6c 6433 6419 cmp bx, strict byte 00001h ; 83 fb 01 6434 je short 049 36h ; 74 3f6420 je short 04919h ; 74 3f 6435 6421 test bx, bx ; 85 db 6436 je short 048 feh ; 74 036437 jmp near 04b ddh ; e9 df026422 je short 048e1h ; 74 03 6423 jmp near 04b96h ; e9 b5 02 6438 6424 cmp cl, 0ffh ; 80 f9 ff 6439 jne short 04 915h ; 75 126425 jne short 048f8h ; 75 12 6440 6426 mov ax, word [bp+018h] ; 8b 46 18 6441 6427 xor ah, ah ; 30 e4 … … 6444 6430 xor al, al ; 30 c0 6445 6431 or AL, strict byte 001h ; 0c 01 6446 jmp near 04 c1dh ; e9 08 036447 mov al, byte [bp-00 6h] ; 8a 46 fa6432 jmp near 04bd6h ; e9 de 02 6433 mov al, byte [bp-008h] ; 8a 46 f8 6448 6434 xor ah, ah ; 30 e4 6449 6435 mov dx, strict word 0001ch ; ba 1c 00 … … 6458 6444 or AL, strict byte 001h ; 0c 01 6459 6445 mov word [bp+018h], ax ; 89 46 18 6460 jmp short 048 fbh ; eb c56446 jmp short 048deh ; eb c5 6461 6447 test cl, cl ; 84 c9 6462 jne short 049 49h ; 75 0f6448 jne short 0492ch ; 75 0f 6463 6449 or bh, 0b0h ; 80 cf b0 6464 6450 mov word [bp+018h], bx ; 89 5e 18 6465 6451 mov byte [bp+018h], cl ; 88 4e 18 6466 jmp near 04 c20h ; e9 da026467 jmp near 04 c15h ; e9 cc026468 mov al, byte [bp-00 6h] ; 8a 46 fa6452 jmp near 04bd9h ; e9 b0 02 6453 jmp near 04bceh ; e9 a2 02 6454 mov al, byte [bp-008h] ; 8a 46 f8 6469 6455 xor ah, ah ; 30 e4 6470 6456 mov dx, strict word 0001ch ; ba 1c 00 … … 6476 6462 mov byte [es:bx+025h], cl ; 26 88 4f 25 6477 6463 test cl, cl ; 84 c9 6478 jne short 049 70h ; 75 0e6464 jne short 04953h ; 75 0e 6479 6465 xor ax, ax ; 31 c0 6480 6466 mov dx, word [bp+018h] ; 8b 56 18 … … 6482 6468 or dx, ax ; 09 c2 6483 6469 mov word [bp+018h], dx ; 89 56 18 6484 jmp short 048 fbh ; eb 8b6470 jmp short 048deh ; eb 8b 6485 6471 mov ax, strict word 00001h ; b8 01 00 6486 jmp short 049 64h ; eb ef6487 mov al, byte [bp-00 6h] ; 8a 46 fa6472 jmp short 04947h ; eb ef 6473 mov al, byte [bp-008h] ; 8a 46 f8 6488 6474 xor ah, ah ; 30 e4 6489 6475 mov dx, strict word 0001ch ; ba 1c 00 … … 6493 6479 mov cl, byte [es:si+025h] ; 26 8a 4c 25 6494 6480 test cl, cl ; 84 c9 6495 je short 049 92h ; 74 066481 je short 04975h ; 74 06 6496 6482 or bh, 0b1h ; 80 cf b1 6497 jmp near 047 56h ; e9 c4fd6498 je short 049 b9h ; 74 256483 jmp near 04738h ; e9 c3 fd 6484 je short 0499ch ; 74 25 6499 6485 mov ax, word [bp+018h] ; 8b 46 18 6500 6486 xor ah, ah ; 30 e4 6501 6487 or ah, 0b1h ; 80 cc b1 6502 jmp near 04 c1dh ; e9 7e026488 jmp near 04bd6h ; e9 54 02 6503 6489 mov bx, word [bp+00ch] ; 8b 5e 0c 6504 6490 mov cx, word [bp+006h] ; 8b 4e 06 … … 6507 6493 mov es, cx ; 8e c1 6508 6494 mov ax, word [es:bx] ; 26 8b 07 6509 mov word [bp-01 0h], ax ; 89 46 f06495 mov word [bp-01eh], ax ; 89 46 e2 6510 6496 cmp ax, strict word 0001ah ; 3d 1a 00 6511 jnc short 049 bch ; 73 056512 jmp short 049 46h ; eb 8d6513 jmp near 04b ddh ; e9 21 026514 jc short 04a 1eh ; 72 606515 mov al, byte [bp-00 6h] ; 8a 46 fa6497 jnc short 0499fh ; 73 05 6498 jmp short 04929h ; eb 8d 6499 jmp near 04b96h ; e9 f7 01 6500 jc short 04a01h ; 72 60 6501 mov al, byte [bp-008h] ; 8a 46 f8 6516 6502 xor ah, ah ; 30 e4 6517 6503 mov dx, strict word 0001ch ; ba 1c 00 … … 6534 6520 mov word [es:bx+014h], strict word 0ffffh ; 26 c7 47 14 ff ff 6535 6521 mov word [es:bx+016h], strict word 0ffffh ; 26 c7 47 16 ff ff 6536 cmp word [bp-010h], strict byte 0001eh ; 83 7e f0 1e 6537 jc short 04a85h ; 72 61 6522 cmp word [bp-01eh], strict byte 0001eh ; 83 7e e2 1e 6523 jnc short 04a0ah ; 73 03 6524 jmp near 04acah ; e9 c0 00 6538 6525 mov es, [bp-00ah] ; 8e 46 f6 6539 6526 mov word [es:si], strict word 0001eh ; 26 c7 04 1e 00 … … 6541 6528 mov word [es:si+01ch], ax ; 26 89 44 1c 6542 6529 mov word [es:si+01ah], 00356h ; 26 c7 44 1a 56 03 6543 mov cl, byte [bp-00 6h] ; 8a 4e fa6530 mov cl, byte [bp-008h] ; 8a 4e f8 6544 6531 xor ch, ch ; 30 ed 6545 6532 mov ax, cx ; 89 c8 … … 6554 6541 add bx, ax ; 01 c3 6555 6542 mov ax, word [es:bx+00206h] ; 26 8b 87 06 02 6556 mov word [bp-020h], ax ; 89 46 e0 6557 mov ax, word [es:bx+00208h] ; 26 8b 87 08 02 6558 mov word [bp-01eh], ax ; 89 46 e2 6559 mov al, byte [es:bx+00205h] ; 26 8a 87 05 02 6560 mov byte [bp-008h], al ; 88 46 f8 6543 mov di, word [es:bx+00208h] ; 26 8b bf 08 02 6544 mov dl, byte [es:bx+00205h] ; 26 8a 97 05 02 6545 mov byte [bp-006h], dl ; 88 56 fa 6546 mov bx, word [bp-00eh] ; 8b 5e f2 6547 mov word [es:bx+00234h], ax ; 26 89 87 34 02 6548 mov word [es:bx+00236h], di ; 26 89 bf 36 02 6561 6549 mov ax, cx ; 89 c8 6562 mov dx, strict word 0001ch ; ba 1c 006563 imul dx ; f7 ea6564 mov bx, word [bp-00eh] ; 8b 5e f26565 add bx, ax ; 01 c36566 mov al, byte [es:bx+026h] ; 26 8a 47 266567 mov di, strict word 00070h ; bf 70 006568 cmp AL, strict byte 001h ; 3c 016569 jne short 04a88h ; 75 086570 mov ax, strict word 00001h ; b8 01 006571 jmp short 04a8ah ; eb 056572 jmp near 04b0fh ; e9 87 006573 xor ax, ax ; 31 c06574 or di, ax ; 09 c76575 mov ax, word [bp-020h] ; 8b 46 e06576 les bx, [bp-00eh] ; c4 5e f26577 mov word [es:bx+00234h], ax ; 26 89 87 34 026578 mov ax, word [bp-01eh] ; 8b 46 e26579 mov word [es:bx+00236h], ax ; 26 89 87 36 026580 mov al, byte [bp-006h] ; 8a 46 fa6581 xor ah, ah ; 30 e46582 6550 cwd ; 99 6583 6551 mov bx, strict word 00002h ; bb 02 00 … … 6589 6557 mov byte [es:bx+00238h], dl ; 26 88 97 38 02 6590 6558 mov byte [es:bx+00239h], 0cbh ; 26 c6 87 39 02 cb 6591 mov al, byte [bp-00 8h] ; 8a 46 f86559 mov al, byte [bp-006h] ; 8a 46 fa 6592 6560 mov byte [es:bx+0023ah], al ; 26 88 87 3a 02 6593 mov word [es:bx+0023bh], strict word 00001h ; 26 c7 87 3b 02 01 00 6594 mov byte [es:bx+0023dh], 000h ; 26 c6 87 3d 02 00 6595 mov word [es:bx+0023eh], di ; 26 89 bf 3e 02 6561 mov byte [es:bx+0023bh], 001h ; 26 c6 87 3b 02 01 6562 mov byte [es:bx+0023ch], ch ; 26 88 af 3c 02 6563 mov byte [es:bx+0023dh], ch ; 26 88 af 3d 02 6564 mov word [es:bx+0023eh], strict word 00070h ; 26 c7 87 3e 02 70 00 6596 6565 mov word [es:bx+00240h], strict word 00000h ; 26 c7 87 40 02 00 00 6597 6566 mov byte [es:bx+00242h], 011h ; 26 c6 87 42 02 11 6598 6567 xor bl, bl ; 30 db 6599 6568 xor bh, bh ; 30 ff 6600 jmp short 04a f1h ; eb 056569 jmp short 04aaah ; eb 05 6601 6570 cmp bh, 00fh ; 80 ff 0f 6602 jnc short 04b05h ; 73 14 6603 mov dl, bh ; 88 fa 6604 xor dh, dh ; 30 f6 6571 jnc short 04ac0h ; 73 16 6572 mov al, bh ; 88 f8 6573 xor ah, ah ; 30 e4 6574 mov dx, ax ; 89 c2 6605 6575 add dx, 00356h ; 81 c2 56 03 6606 6576 mov ax, word [bp-018h] ; 8b 46 e8 6607 call 01652h ; e8 53cb6577 call 01652h ; e8 98 cb 6608 6578 add bl, al ; 00 c3 6609 6579 db 0feh, 0c7h 6610 6580 ; inc bh ; fe c7 6611 jmp short 04a ech ; eb e76581 jmp short 04aa5h ; eb e5 6612 6582 neg bl ; f6 db 6613 6583 les di, [bp-00eh] ; c4 7e f2 6614 6584 mov byte [es:di+00243h], bl ; 26 88 9d 43 02 6615 cmp word [bp-01 0h], strict byte 00042h ; 83 7e f0426616 jnc short 04 b18h ; 73 036617 jmp near 04b ddh ; e9 c5006618 mov al, byte [bp-00 6h] ; 8a 46 fa6585 cmp word [bp-01eh], strict byte 00042h ; 83 7e e2 42 6586 jnc short 04ad3h ; 73 03 6587 jmp near 04b96h ; e9 c3 00 6588 mov al, byte [bp-008h] ; 8a 46 f8 6619 6589 xor ah, ah ; 30 e4 6620 6590 cwd ; 99 … … 6635 6605 mov word [es:si+022h], strict word 00000h ; 26 c7 44 22 00 00 6636 6606 test al, al ; 84 c0 6637 jne short 04b 62h ; 75 0c6607 jne short 04b1dh ; 75 0c 6638 6608 mov word [es:si+024h], 05349h ; 26 c7 44 24 49 53 6639 6609 mov word [es:si+026h], 02041h ; 26 c7 44 26 41 20 … … 6644 6614 mov word [es:si+02eh], 02020h ; 26 c7 44 2e 20 20 6645 6615 test al, al ; 84 c0 6646 jne short 04b 97h ; 75 166616 jne short 04b52h ; 75 16 6647 6617 mov word [es:si+030h], dx ; 26 89 54 30 6648 6618 mov word [es:si+032h], strict word 00000h ; 26 c7 44 32 00 00 6649 6619 mov word [es:si+034h], strict word 00000h ; 26 c7 44 34 00 00 6650 6620 mov word [es:si+036h], strict word 00000h ; 26 c7 44 36 00 00 6651 mov al, byte [bp-00 6h] ; 8a 46 fa6621 mov al, byte [bp-008h] ; 8a 46 f8 6652 6622 and AL, strict byte 001h ; 24 01 6653 6623 xor ah, ah ; 30 e4 … … 6657 6627 mov word [es:si+03ch], strict word 00000h ; 26 c7 44 3c 00 00 6658 6628 mov word [es:si+03eh], strict word 00000h ; 26 c7 44 3e 00 00 6659 xor bl, bl ; 30 db6660 mov BH, strict byte 01eh ; b71e6661 jmp short 04b c2h ; eb 056662 cmp bh, 040h ; 80 ff406663 jnc short 04b d4h ; 73 126664 mov al, bh ; 88 f86665 xor ah, ah ; 30 e46629 xor al, al ; 30 c0 6630 mov AH, strict byte 01eh ; b4 1e 6631 jmp short 04b7dh ; eb 05 6632 cmp ah, 040h ; 80 fc 40 6633 jnc short 04b8dh ; 73 10 6634 mov bl, ah ; 88 e3 6635 xor bh, bh ; 30 ff 6666 6636 mov es, [bp-00ah] ; 8e 46 f6 6667 mov di, si ; 89 f7 6668 add di, ax ; 01 c7 6669 add bl, byte [es:di] ; 26 02 1d 6670 db 0feh, 0c7h 6671 ; inc bh ; fe c7 6672 jmp short 04bbdh ; eb e9 6673 neg bl ; f6 db 6637 add bx, si ; 01 f3 6638 add al, byte [es:bx] ; 26 02 07 6639 db 0feh, 0c4h 6640 ; inc ah ; fe c4 6641 jmp short 04b78h ; eb eb 6642 neg al ; f6 d8 6674 6643 mov es, [bp-00ah] ; 8e 46 f6 6675 mov byte [es:si+041h], bl ; 26 88 5c416644 mov byte [es:si+041h], al ; 26 88 44 41 6676 6645 mov byte [bp+019h], 000h ; c6 46 19 00 6677 6646 xor bx, bx ; 31 db 6678 6647 mov dx, strict word 00074h ; ba 74 00 6679 6648 mov ax, strict word 00040h ; b8 40 00 6680 call 01660h ; e8 74ca6649 call 01660h ; e8 bb ca 6681 6650 and byte [bp+01eh], 0feh ; 80 66 1e fe 6682 6651 lea sp, [bp-004h] ; 8d 66 fc … … 6687 6656 or bh, 006h ; 80 cf 06 6688 6657 mov word [bp+018h], bx ; 89 5e 18 6689 jmp short 04 c2eh ; eb 2f6658 jmp short 04be7h ; eb 2f 6690 6659 cmp bx, strict byte 00006h ; 83 fb 06 6691 je short 04b ddh ; 74 d96660 je short 04b96h ; 74 d9 6692 6661 cmp bx, strict byte 00001h ; 83 fb 01 6693 jc short 04 c15h ; 72 0c6694 jbe short 04b ddh ; 76 d26662 jc short 04bceh ; 72 0c 6663 jbe short 04b96h ; 76 d2 6695 6664 cmp bx, strict byte 00003h ; 83 fb 03 6696 jc short 04 c15h ; 72 056665 jc short 04bceh ; 72 05 6697 6666 cmp bx, strict byte 00004h ; 83 fb 04 6698 jbe short 04b ddh ; 76 c86667 jbe short 04b96h ; 76 c8 6699 6668 mov ax, word [bp+018h] ; 8b 46 18 6700 6669 xor ah, ah ; 30 e4 … … 6705 6674 mov dx, strict word 00074h ; ba 74 00 6706 6675 mov ax, strict word 00040h ; b8 40 00 6707 call 01660h ; e8 32ca6676 call 01660h ; e8 79 ca 6708 6677 or byte [bp+01eh], 001h ; 80 4e 1e 01 6709 jmp short 04b f0h ; eb bc6710 print_boot_device_: ; 0xf4 c34LB 0x516678 jmp short 04ba9h ; eb bc 6679 print_boot_device_: ; 0xf4bed LB 0x51 6711 6680 push bp ; 55 6712 6681 mov bp, sp ; 89 e5 6713 6682 push cx ; 51 6714 6683 test al, al ; 84 c0 6715 je short 04 c41h ; 74 056684 je short 04bfah ; 74 05 6716 6685 mov dx, strict word 00002h ; ba 02 00 6717 jmp short 04c 5bh ; eb 1a6686 jmp short 04c14h ; eb 1a 6718 6687 test dl, dl ; 84 d2 6719 je short 04c 4ah ; 74 056688 je short 04c03h ; 74 05 6720 6689 mov dx, strict word 00003h ; ba 03 00 6721 jmp short 04c 5bh ; eb 116690 jmp short 04c14h ; eb 11 6722 6691 test bl, 080h ; f6 c3 80 6723 jne short 04c 53h ; 75 046692 jne short 04c0ch ; 75 04 6724 6693 xor dh, dh ; 30 f6 6725 jmp short 04c 5bh ; eb 086694 jmp short 04c14h ; eb 08 6726 6695 test bl, 080h ; f6 c3 80 6727 je short 04c 7fh ; 74 276696 je short 04c38h ; 74 27 6728 6697 mov dx, strict word 00001h ; ba 01 00 6729 6698 mov bx, 00da0h ; bb a0 0d 6730 6699 mov cx, ds ; 8c d9 6731 6700 mov ax, strict word 00004h ; b8 04 00 6732 call 01933h ; e8 cd cc6701 call 01933h ; e8 14 cd 6733 6702 mov ax, dx ; 89 d0 6734 6703 mov dx, strict word 0000ah ; ba 0a 00 … … 6740 6709 mov ax, strict word 00004h ; b8 04 00 6741 6710 push ax ; 50 6742 call 01976h ; e8 fa cc6711 call 01976h ; e8 41 cd 6743 6712 add sp, strict byte 00006h ; 83 c4 06 6744 6713 lea sp, [bp-002h] ; 8d 66 fe … … 6746 6715 pop bp ; 5d 6747 6716 retn ; c3 6748 print_boot_failure_: ; 0xf4c 85LB 0x9f6717 print_boot_failure_: ; 0xf4c3e LB 0x9f 6749 6718 push bp ; 55 6750 6719 mov bp, sp ; 89 e5 … … 6756 6725 mov si, cx ; 89 ce 6757 6726 test al, al ; 84 c0 6758 je short 04c b7h ; 74 1f6727 je short 04c70h ; 74 1f 6759 6728 mov bx, 00da0h ; bb a0 0d 6760 6729 mov cx, ds ; 8c d9 6761 6730 mov ax, strict word 00004h ; b8 04 00 6762 call 01933h ; e8 90cc6731 call 01933h ; e8 d7 cc 6763 6732 mov cx, 00ddah ; b9 da 0d 6764 6733 push cx ; 51 … … 6767 6736 mov cx, strict word 00004h ; b9 04 00 6768 6737 push cx ; 51 6769 call 01976h ; e8 c4 cc6738 call 01976h ; e8 0b cd 6770 6739 add sp, strict byte 00006h ; 83 c4 06 6771 jmp short 04c ffh ; eb 486740 jmp short 04cb8h ; eb 48 6772 6741 test dl, dl ; 84 d2 6773 je short 04c cbh ; 74 106742 je short 04c84h ; 74 10 6774 6743 mov bx, 00da0h ; bb a0 0d 6775 6744 mov cx, ds ; 8c d9 6776 6745 mov ax, strict word 00004h ; b8 04 00 6777 call 01933h ; e8 6dcc6746 call 01933h ; e8 b4 cc 6778 6747 mov cx, 00de4h ; b9 e4 0d 6779 jmp short 04c a6h ; eb db6748 jmp short 04c5fh ; eb db 6780 6749 test bl, 080h ; f6 c3 80 6781 je short 04c e1h ; 74 116750 je short 04c9ah ; 74 11 6782 6751 mov bx, 00da0h ; bb a0 0d 6783 6752 mov cx, ds ; 8c d9 6784 6753 mov ax, strict word 00004h ; b8 04 00 6785 call 01933h ; e8 58cc6754 call 01933h ; e8 9f cc 6786 6755 push si ; 56 6787 6756 mov cx, 00dd0h ; b9 d0 0d 6788 jmp short 04c f0h ; eb 0f6757 jmp short 04ca9h ; eb 0f 6789 6758 mov bx, 00da0h ; bb a0 0d 6790 6759 mov cx, ds ; 8c d9 6791 6760 mov ax, strict word 00004h ; b8 04 00 6792 call 01933h ; e8 47cc6761 call 01933h ; e8 8e cc 6793 6762 push si ; 56 6794 6763 mov cx, 00dc6h ; b9 c6 0d … … 6798 6767 mov cx, strict word 00004h ; b9 04 00 6799 6768 push cx ; 51 6800 call 01976h ; e8 7acc6769 call 01976h ; e8 c1 cc 6801 6770 add sp, strict byte 00008h ; 83 c4 08 6802 6771 cmp byte [bp+004h], 001h ; 80 7e 04 01 6803 jne short 04 d1ch ; 75 176772 jne short 04cd5h ; 75 17 6804 6773 test dh, dh ; 84 f6 6805 jne short 04 d0eh ; 75 056774 jne short 04cc7h ; 75 05 6806 6775 mov dx, 004d5h ; ba d5 04 6807 jmp short 04 d11h ; eb 036776 jmp short 04ccah ; eb 03 6808 6777 mov dx, 004ffh ; ba ff 04 6809 6778 push dx ; 52 6810 6779 mov dx, strict word 00007h ; ba 07 00 6811 6780 push dx ; 52 6812 call 01976h ; e8 5dcc6781 call 01976h ; e8 a4 cc 6813 6782 add sp, strict byte 00004h ; 83 c4 04 6814 6783 lea sp, [bp-002h] ; 8d 66 fe … … 6816 6785 pop bp ; 5d 6817 6786 retn 00002h ; c2 02 00 6818 print_cdromboot_failure_: ; 0xf4 d24LB 0x2a6787 print_cdromboot_failure_: ; 0xf4cdd LB 0x2a 6819 6788 push bp ; 55 6820 6789 mov bp, sp ; 89 e5 … … 6826 6795 mov cx, ds ; 8c d9 6827 6796 mov ax, strict word 00004h ; b8 04 00 6828 call 01933h ; e8 fc cb6797 call 01933h ; e8 43 cc 6829 6798 push dx ; 52 6830 6799 mov dx, 00534h ; ba 34 05 … … 6832 6801 mov dx, strict word 00004h ; ba 04 00 6833 6802 push dx ; 52 6834 call 01976h ; e8 33cc6803 call 01976h ; e8 7a cc 6835 6804 add sp, strict byte 00006h ; 83 c4 06 6836 6805 lea sp, [bp-006h] ; 8d 66 fa … … 6840 6809 pop bp ; 5d 6841 6810 retn ; c3 6842 _int19_function: ; 0xf4d 4eLB 0x28d6811 _int19_function: ; 0xf4d07 LB 0x28d 6843 6812 push bp ; 55 6844 6813 mov bp, sp ; 89 e5 … … 6848 6817 mov dx, strict word 0000eh ; ba 0e 00 6849 6818 mov ax, strict word 00040h ; b8 40 00 6850 call 0166eh ; e8 0fc96819 call 0166eh ; e8 56 c9 6851 6820 mov bx, ax ; 89 c3 6852 6821 mov di, ax ; 89 c7 6853 6822 mov byte [bp-00ch], 000h ; c6 46 f4 00 6854 6823 mov ax, strict word 0003dh ; b8 3d 00 6855 call 016aeh ; e8 41c96824 call 016aeh ; e8 88 c9 6856 6825 mov dl, al ; 88 c2 6857 6826 xor dh, dh ; 30 f6 6858 6827 mov word [bp-00eh], dx ; 89 56 f2 6859 6828 mov ax, strict word 00038h ; b8 38 00 6860 call 016aeh ; e8 34c96829 call 016aeh ; e8 7b c9 6861 6830 and AL, strict byte 0f0h ; 24 f0 6862 6831 mov byte [bp-010h], al ; 88 46 f0 … … 6868 6837 mov word [bp-00eh], dx ; 89 56 f2 6869 6838 mov ax, strict word 0003ch ; b8 3c 00 6870 call 016aeh ; e8 1ac96839 call 016aeh ; e8 61 c9 6871 6840 and AL, strict byte 00fh ; 24 0f 6872 6841 xor ah, ah ; 30 e4 … … 6876 6845 mov dx, 0037dh ; ba 7d 03 6877 6846 mov ax, bx ; 89 d8 6878 call 01652h ; e8 abc86847 call 01652h ; e8 f2 c8 6879 6848 test al, al ; 84 c0 6880 je short 04d b8h ; 74 0d6849 je short 04d71h ; 74 0d 6881 6850 mov dx, 0037dh ; ba 7d 03 6882 6851 mov ax, bx ; 89 d8 6883 call 01652h ; e8 9fc86852 call 01652h ; e8 e6 c8 6884 6853 xor ah, ah ; 30 e4 6885 6854 mov word [bp-00eh], ax ; 89 46 f2 6886 6855 cmp byte [bp+004h], 001h ; 80 7e 04 01 6887 jne short 04d cfh ; 75 116856 jne short 04d88h ; 75 11 6888 6857 mov ax, strict word 0003ch ; b8 3c 00 6889 call 016aeh ; e8 ea c86858 call 016aeh ; e8 31 c9 6890 6859 and AL, strict byte 0f0h ; 24 f0 6891 6860 xor ah, ah ; 30 e4 6892 6861 mov CL, strict byte 004h ; b1 04 6893 6862 sar ax, CL ; d3 f8 6894 call 07f 6ch ; e8 9d316863 call 07f13h ; e8 8b 31 6895 6864 cmp byte [bp+004h], 002h ; 80 7e 04 02 6896 jne short 04d dah ; 75 056865 jne short 04d93h ; 75 05 6897 6866 mov CL, strict byte 004h ; b1 04 6898 6867 shr word [bp-00eh], CL ; d3 6e f2 6899 6868 cmp byte [bp+004h], 003h ; 80 7e 04 03 6900 jne short 04d e8h ; 75 086869 jne short 04da1h ; 75 08 6901 6870 mov al, byte [bp-00dh] ; 8a 46 f3 6902 6871 xor ah, ah ; 30 e4 6903 6872 mov word [bp-00eh], ax ; 89 46 f2 6904 6873 cmp byte [bp+004h], 004h ; 80 7e 04 04 6905 jne short 04d f3h ; 75 056874 jne short 04dach ; 75 05 6906 6875 mov CL, strict byte 00ch ; b1 0c 6907 6876 shr word [bp-00eh], CL ; d3 6e f2 6908 6877 cmp word [bp-00eh], strict byte 00010h ; 83 7e f2 10 6909 jnc short 04d fdh ; 73 046878 jnc short 04db6h ; 73 04 6910 6879 mov byte [bp-00ch], 001h ; c6 46 f4 01 6911 6880 xor al, al ; 30 c0 … … 6916 6885 mov cx, ds ; 8c d9 6917 6886 mov ax, strict word 00004h ; b8 04 00 6918 call 01933h ; e8 20cb6887 call 01933h ; e8 67 cb 6919 6888 push word [bp-00eh] ; ff 76 f2 6920 6889 mov al, byte [bp+004h] ; 8a 46 04 … … 6925 6894 mov ax, strict word 00004h ; b8 04 00 6926 6895 push ax ; 50 6927 call 01976h ; e8 4fcb6896 call 01976h ; e8 96 cb 6928 6897 add sp, strict byte 00008h ; 83 c4 08 6929 6898 mov ax, word [bp-00eh] ; 8b 46 f2 6930 6899 and ax, strict word 0000fh ; 25 0f 00 6931 6900 cmp ax, strict word 00002h ; 3d 02 00 6932 jc short 04 e43h ; 72 0e6933 jbe short 04e 52h ; 76 1b6901 jc short 04dfch ; 72 0e 6902 jbe short 04e0bh ; 76 1b 6934 6903 cmp ax, strict word 00004h ; 3d 04 00 6935 je short 04e 6fh ; 74 336904 je short 04e28h ; 74 33 6936 6905 cmp ax, strict word 00003h ; 3d 03 00 6937 je short 04e 65h ; 74 246938 jmp short 04e 9eh ; eb 5b6906 je short 04e1eh ; 74 24 6907 jmp short 04e57h ; eb 5b 6939 6908 cmp ax, strict word 00001h ; 3d 01 00 6940 jne short 04e 9eh ; 75 566909 jne short 04e57h ; 75 56 6941 6910 xor al, al ; 30 c0 6942 6911 mov byte [bp-006h], al ; 88 46 fa 6943 6912 mov byte [bp-008h], al ; 88 46 f8 6944 jmp short 04e b2h ; eb 606913 jmp short 04e6bh ; eb 60 6945 6914 mov dx, 0037ch ; ba 7c 03 6946 6915 mov ax, di ; 89 f8 6947 call 01652h ; e8 f8 c76916 call 01652h ; e8 3f c8 6948 6917 add AL, strict byte 080h ; 04 80 6949 6918 mov byte [bp-006h], al ; 88 46 fa 6950 6919 mov byte [bp-008h], 000h ; c6 46 f8 00 6951 jmp short 04e b2h ; eb 4d6920 jmp short 04e6bh ; eb 4d 6952 6921 mov byte [bp-006h], 000h ; c6 46 fa 00 6953 6922 mov byte [bp-008h], 001h ; c6 46 f8 01 6954 jmp short 04e 79h ; eb 0a6923 jmp short 04e32h ; eb 0a 6955 6924 mov byte [bp-00ah], 001h ; c6 46 f6 01 6956 6925 cmp byte [bp-008h], 000h ; 80 7e f8 00 6957 je short 04e b2h ; 74 396958 call 03d f6h ; e8 7aef6926 je short 04e6bh ; 74 39 6927 call 03dd8h ; e8 a3 ef 6959 6928 mov bx, ax ; 89 c3 6960 6929 test AL, strict byte 0ffh ; a8 ff 6961 je short 04e a5h ; 74 236962 call 04 d24h ; e8 9f fe6930 je short 04e5eh ; 74 23 6931 call 04cddh ; e8 9f fe 6963 6932 mov al, byte [bp-00ch] ; 8a 46 f4 6964 6933 xor ah, ah ; 30 e4 … … 6970 6939 mov al, byte [bp-008h] ; 8a 46 f8 6971 6940 mov cx, strict word 00001h ; b9 01 00 6972 call 04c 85h ; e8 e7 fd6941 call 04c3eh ; e8 e7 fd 6973 6942 xor ax, ax ; 31 c0 6974 6943 xor dx, dx ; 31 d2 6975 jmp near 04f d4h ; e9 2f 016944 jmp near 04f8dh ; e9 2f 01 6976 6945 mov dx, 00372h ; ba 72 03 6977 6946 mov ax, di ; 89 f8 6978 call 0166eh ; e8 c1 c76947 call 0166eh ; e8 08 c8 6979 6948 mov si, ax ; 89 c6 6980 6949 mov byte [bp-006h], bh ; 88 7e fa 6981 6950 cmp byte [bp-00ah], 001h ; 80 7e f6 01 6982 jne short 04 f0dh ; 75 556951 jne short 04ec6h ; 75 55 6983 6952 xor si, si ; 31 f6 6984 6953 mov ax, 0e200h ; b8 00 e2 6985 6954 mov es, ax ; 8e c0 6986 6955 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 6987 jne short 04e 85h ; 75 bf6956 jne short 04e3eh ; 75 bf 6988 6957 mov cx, ax ; 89 c1 6989 6958 mov si, word [es:si+01ah] ; 26 8b 74 1a 6990 6959 cmp word [es:si+002h], 0506eh ; 26 81 7c 02 6e 50 6991 jne short 04e 85h ; 75 b16960 jne short 04e3eh ; 75 b1 6992 6961 cmp word [es:si], 05024h ; 26 81 3c 24 50 6993 jne short 04e 85h ; 75 aa6962 jne short 04e3eh ; 75 aa 6994 6963 mov bx, word [es:si+00eh] ; 26 8b 5c 0e 6995 6964 mov dx, word [es:bx] ; 26 8b 17 6996 6965 mov ax, word [es:bx+002h] ; 26 8b 47 02 6997 6966 cmp ax, 06568h ; 3d 68 65 6998 jne short 04 f0fh ; 75 246967 jne short 04ec8h ; 75 24 6999 6968 cmp dx, 07445h ; 81 fa 45 74 7000 jne short 04 f0fh ; 75 1e6969 jne short 04ec8h ; 75 1e 7001 6970 mov bl, byte [bp-006h] ; 8a 5e fa 7002 6971 xor bh, bh ; 30 ff … … 7005 6974 mov al, byte [bp-008h] ; 8a 46 f8 7006 6975 xor ah, ah ; 30 e4 7007 call 04 c34h ; e8 31 fd6976 call 04bedh ; e8 31 fd 7008 6977 mov word [bp-014h], strict word 00006h ; c7 46 ec 06 00 7009 6978 mov word [bp-012h], cx ; 89 4e ee 7010 jmp short 04 f2eh ; eb 217011 jmp short 04 f34h ; eb 256979 jmp short 04ee7h ; eb 21 6980 jmp short 04eedh ; eb 25 7012 6981 mov bl, byte [bp-006h] ; 8a 5e fa 7013 6982 xor bh, bh ; 30 ff … … 7016 6985 mov al, byte [bp-008h] ; 8a 46 f8 7017 6986 xor ah, ah ; 30 e4 7018 call 04 c34h ; e8 13 fd6987 call 04bedh ; e8 13 fd 7019 6988 sti ; fb 7020 6989 mov word [bp-012h], cx ; 89 4e ee … … 7023 6992 mov word [bp-014h], ax ; 89 46 ec 7024 6993 call far [bp-014h] ; ff 5e ec 7025 jmp near 04e 85h ; e9 51 ff6994 jmp near 04e3eh ; e9 51 ff 7026 6995 cmp byte [bp-008h], 000h ; 80 7e f8 00 7027 jne short 04f 61h ; 75 276996 jne short 04f1ah ; 75 27 7028 6997 cmp byte [bp-00ah], 000h ; 80 7e f6 00 7029 jne short 04f 61h ; 75 216998 jne short 04f1ah ; 75 21 7030 6999 mov si, 007c0h ; be c0 07 7031 7000 mov es, si ; 8e c6 … … 7040 7009 sbb ax, strict byte 00000h ; 83 d8 00 7041 7010 test ax, ax ; 85 c0 7042 je short 04f 61h ; 74 037043 jmp near 04e 85h ; e9 24 ff7011 je short 04f1ah ; 74 03 7012 jmp near 04e3eh ; e9 24 ff 7044 7013 cmp byte [bp-006h], 000h ; 80 7e fa 00 7045 je short 04f 6bh ; 74 047014 je short 04f24h ; 74 04 7046 7015 xor bl, bl ; 30 db 7047 jmp short 04f 6dh ; eb 027016 jmp short 04f26h ; eb 02 7048 7017 mov BL, strict byte 001h ; b3 01 7049 7018 cmp byte [bp-008h], 000h ; 80 7e f8 00 7050 je short 04f 75h ; 74 027019 je short 04f2eh ; 74 02 7051 7020 mov BL, strict byte 001h ; b3 01 7052 7021 xor dx, dx ; 31 d2 7053 7022 mov ax, si ; 89 f0 7054 call 0166eh ; e8 f2 c67023 call 0166eh ; e8 39 c7 7055 7024 mov di, ax ; 89 c7 7056 7025 mov dx, strict word 00002h ; ba 02 00 7057 7026 mov ax, si ; 89 f0 7058 call 0166eh ; e8 e8 c67027 call 0166eh ; e8 2f c7 7059 7028 cmp di, ax ; 39 c7 7060 je short 04f 9bh ; 74 117029 je short 04f54h ; 74 11 7061 7030 test bl, bl ; 84 db 7062 jne short 04f b3h ; 75 257031 jne short 04f6ch ; 75 25 7063 7032 mov dx, 001feh ; ba fe 01 7064 7033 mov ax, si ; 89 f0 7065 call 0166eh ; e8 d8 c67034 call 0166eh ; e8 1f c7 7066 7035 cmp ax, 0aa55h ; 3d 55 aa 7067 je short 04f b3h ; 74 187036 je short 04f6ch ; 74 18 7068 7037 mov al, byte [bp-00ch] ; 8a 46 f4 7069 7038 xor ah, ah ; 30 e4 … … 7075 7044 mov al, byte [bp-008h] ; 8a 46 f8 7076 7045 xor cx, cx ; 31 c9 7077 jmp near 04e 9bh ; e9 e8 fe7046 jmp near 04e54h ; e9 e8 fe 7078 7047 mov bl, byte [bp-006h] ; 8a 5e fa 7079 7048 xor bh, bh ; 30 ff … … 7082 7051 mov al, byte [bp-008h] ; 8a 46 f8 7083 7052 xor ah, ah ; 30 e4 7084 call 04 c34h ; e8 6f fc7053 call 04bedh ; e8 6f fc 7085 7054 mov al, byte [bp-006h] ; 8a 46 fa 7086 7055 xor ah, ah ; 30 e4 … … 7095 7064 pop bp ; 5d 7096 7065 retn ; c3 7097 keyboard_panic_: ; 0xf4f dbLB 0x167066 keyboard_panic_: ; 0xf4f94 LB 0x16 7098 7067 push bp ; 55 7099 7068 mov bp, sp ; 89 e5 … … 7103 7072 mov ax, strict word 00007h ; b8 07 00 7104 7073 push ax ; 50 7105 call 01976h ; e8 8cc97074 call 01976h ; e8 d3 c9 7106 7075 add sp, strict byte 00006h ; 83 c4 06 7107 7076 mov sp, bp ; 89 ec 7108 7077 pop bp ; 5d 7109 7078 retn ; c3 7110 _keyboard_init: ; 0xf4f f1LB 0x26a7079 _keyboard_init: ; 0xf4faa LB 0x26a 7111 7080 push bp ; 55 7112 7081 mov bp, sp ; 89 e5 … … 7120 7089 ; sub ah, ah ; 2a e4 7121 7090 test AL, strict byte 002h ; a8 02 7122 je short 0 5014h ; 74 0d7091 je short 04fcdh ; 74 0d 7123 7092 dec bx ; 4b 7124 7093 test bx, bx ; 85 db 7125 jbe short 0 5014h ; 76 087094 jbe short 04fcdh ; 76 08 7126 7095 xor al, al ; 30 c0 7127 7096 mov dx, 00080h ; ba 80 00 7128 7097 out DX, AL ; ee 7129 jmp short 04f fdh ; eb e97098 jmp short 04fb6h ; eb e9 7130 7099 test bx, bx ; 85 db 7131 jne short 0 501dh ; 75 057100 jne short 04fd6h ; 75 05 7132 7101 xor ax, ax ; 31 c0 7133 call 04f dbh ; e8 be ff7102 call 04f94h ; e8 be ff 7134 7103 mov bx, strict word 0ffffh ; bb ff ff 7135 7104 mov dx, strict word 00064h ; ba 64 00 … … 7138 7107 ; sub ah, ah ; 2a e4 7139 7108 test AL, strict byte 001h ; a8 01 7140 jne short 0 5037h ; 75 0d7109 jne short 04ff0h ; 75 0d 7141 7110 dec bx ; 4b 7142 7111 test bx, bx ; 85 db 7143 jbe short 0 5037h ; 76 087112 jbe short 04ff0h ; 76 08 7144 7113 mov AL, strict byte 001h ; b0 01 7145 7114 mov dx, 00080h ; ba 80 00 7146 7115 out DX, AL ; ee 7147 jmp short 0 5020h ; eb e97116 jmp short 04fd9h ; eb e9 7148 7117 test bx, bx ; 85 db 7149 jne short 0 5041h ; 75 067118 jne short 04ffah ; 75 06 7150 7119 mov ax, strict word 00001h ; b8 01 00 7151 call 04f dbh ; e8 9a ff7120 call 04f94h ; e8 9a ff 7152 7121 mov dx, strict word 00060h ; ba 60 00 7153 7122 in AL, DX ; ec … … 7155 7124 ; sub ah, ah ; 2a e4 7156 7125 cmp ax, strict word 00055h ; 3d 55 00 7157 je short 050 52h ; 74 067126 je short 0500bh ; 74 06 7158 7127 mov ax, 003dfh ; b8 df 03 7159 call 04f dbh ; e8 89 ff7128 call 04f94h ; e8 89 ff 7160 7129 mov AL, strict byte 0abh ; b0 ab 7161 7130 mov dx, strict word 00064h ; ba 64 00 … … 7167 7136 ; sub ah, ah ; 2a e4 7168 7137 test AL, strict byte 002h ; a8 02 7169 je short 050 72h ; 74 0d7138 je short 0502bh ; 74 0d 7170 7139 dec bx ; 4b 7171 7140 test bx, bx ; 85 db 7172 jbe short 050 72h ; 76 087141 jbe short 0502bh ; 76 08 7173 7142 mov AL, strict byte 010h ; b0 10 7174 7143 mov dx, 00080h ; ba 80 00 7175 7144 out DX, AL ; ee 7176 jmp short 050 5bh ; eb e97145 jmp short 05014h ; eb e9 7177 7146 test bx, bx ; 85 db 7178 jne short 050 7ch ; 75 067147 jne short 05035h ; 75 06 7179 7148 mov ax, strict word 0000ah ; b8 0a 00 7180 call 04f dbh ; e8 5f ff7149 call 04f94h ; e8 5f ff 7181 7150 mov bx, strict word 0ffffh ; bb ff ff 7182 7151 mov dx, strict word 00064h ; ba 64 00 … … 7185 7154 ; sub ah, ah ; 2a e4 7186 7155 test AL, strict byte 001h ; a8 01 7187 jne short 050 96h ; 75 0d7156 jne short 0504fh ; 75 0d 7188 7157 dec bx ; 4b 7189 7158 test bx, bx ; 85 db 7190 jbe short 050 96h ; 76 087159 jbe short 0504fh ; 76 08 7191 7160 mov AL, strict byte 011h ; b0 11 7192 7161 mov dx, 00080h ; ba 80 00 7193 7162 out DX, AL ; ee 7194 jmp short 050 7fh ; eb e97163 jmp short 05038h ; eb e9 7195 7164 test bx, bx ; 85 db 7196 jne short 050 a0h ; 75 067165 jne short 05059h ; 75 06 7197 7166 mov ax, strict word 0000bh ; b8 0b 00 7198 call 04f dbh ; e8 3b ff7167 call 04f94h ; e8 3b ff 7199 7168 mov dx, strict word 00060h ; ba 60 00 7200 7169 in AL, DX ; ec … … 7202 7171 ; sub ah, ah ; 2a e4 7203 7172 test ax, ax ; 85 c0 7204 je short 050 b0h ; 74 067173 je short 05069h ; 74 06 7205 7174 mov ax, 003e0h ; b8 e0 03 7206 call 04f dbh ; e8 2b ff7175 call 04f94h ; e8 2b ff 7207 7176 mov AL, strict byte 0ffh ; b0 ff 7208 7177 mov dx, strict word 00060h ; ba 60 00 … … 7214 7183 ; sub ah, ah ; 2a e4 7215 7184 test AL, strict byte 002h ; a8 02 7216 je short 050 d0h ; 74 0d7185 je short 05089h ; 74 0d 7217 7186 dec bx ; 4b 7218 7187 test bx, bx ; 85 db 7219 jbe short 050 d0h ; 76 087188 jbe short 05089h ; 76 08 7220 7189 mov AL, strict byte 020h ; b0 20 7221 7190 mov dx, 00080h ; ba 80 00 7222 7191 out DX, AL ; ee 7223 jmp short 050 b9h ; eb e97192 jmp short 05072h ; eb e9 7224 7193 test bx, bx ; 85 db 7225 jne short 050 dah ; 75 067194 jne short 05093h ; 75 06 7226 7195 mov ax, strict word 00014h ; b8 14 00 7227 call 04f dbh ; e8 01 ff7196 call 04f94h ; e8 01 ff 7228 7197 mov bx, strict word 0ffffh ; bb ff ff 7229 7198 mov dx, strict word 00064h ; ba 64 00 … … 7232 7201 ; sub ah, ah ; 2a e4 7233 7202 test AL, strict byte 001h ; a8 01 7234 jne short 050 f4h ; 75 0d7203 jne short 050adh ; 75 0d 7235 7204 dec bx ; 4b 7236 7205 test bx, bx ; 85 db 7237 jbe short 050 f4h ; 76 087206 jbe short 050adh ; 76 08 7238 7207 mov AL, strict byte 021h ; b0 21 7239 7208 mov dx, 00080h ; ba 80 00 7240 7209 out DX, AL ; ee 7241 jmp short 050 ddh ; eb e97210 jmp short 05096h ; eb e9 7242 7211 test bx, bx ; 85 db 7243 jne short 050 feh ; 75 067212 jne short 050b7h ; 75 06 7244 7213 mov ax, strict word 00015h ; b8 15 00 7245 call 04f dbh ; e8 dd fe7214 call 04f94h ; e8 dd fe 7246 7215 mov dx, strict word 00060h ; ba 60 00 7247 7216 in AL, DX ; ec … … 7249 7218 ; sub ah, ah ; 2a e4 7250 7219 cmp ax, 000fah ; 3d fa 00 7251 je short 05 10fh ; 74 067220 je short 050c8h ; 74 06 7252 7221 mov ax, 003e1h ; b8 e1 03 7253 call 04f dbh ; e8 cc fe7222 call 04f94h ; e8 cc fe 7254 7223 mov dx, strict word 00064h ; ba 64 00 7255 7224 in AL, DX ; ec … … 7257 7226 ; sub ah, ah ; 2a e4 7258 7227 test AL, strict byte 001h ; a8 01 7259 jne short 05 121h ; 75 087228 jne short 050dah ; 75 08 7260 7229 mov AL, strict byte 031h ; b0 31 7261 7230 mov dx, 00080h ; ba 80 00 7262 7231 out DX, AL ; ee 7263 jmp short 05 10fh ; eb ee7232 jmp short 050c8h ; eb ee 7264 7233 mov dx, strict word 00060h ; ba 60 00 7265 7234 in AL, DX ; ec … … 7267 7236 ; sub ah, ah ; 2a e4 7268 7237 cmp ax, 000aah ; 3d aa 00 7269 je short 05 13ah ; 74 0e7238 je short 050f3h ; 74 0e 7270 7239 in AL, DX ; ec 7271 7240 db 02ah, 0e4h 7272 7241 ; sub ah, ah ; 2a e4 7273 7242 cmp ax, 000aah ; 3d aa 00 7274 je short 05 13ah ; 74 067243 je short 050f3h ; 74 06 7275 7244 mov ax, 003e2h ; b8 e2 03 7276 call 04f dbh ; e8 a1 fe7245 call 04f94h ; e8 a1 fe 7277 7246 mov AL, strict byte 0f5h ; b0 f5 7278 7247 mov dx, strict word 00060h ; ba 60 00 … … 7284 7253 ; sub ah, ah ; 2a e4 7285 7254 test AL, strict byte 002h ; a8 02 7286 je short 051 5ah ; 74 0d7255 je short 05113h ; 74 0d 7287 7256 dec bx ; 4b 7288 7257 test bx, bx ; 85 db 7289 jbe short 051 5ah ; 76 087258 jbe short 05113h ; 76 08 7290 7259 mov AL, strict byte 040h ; b0 40 7291 7260 mov dx, 00080h ; ba 80 00 7292 7261 out DX, AL ; ee 7293 jmp short 05 143h ; eb e97262 jmp short 050fch ; eb e9 7294 7263 test bx, bx ; 85 db 7295 jne short 051 64h ; 75 067264 jne short 0511dh ; 75 06 7296 7265 mov ax, strict word 00028h ; b8 28 00 7297 call 04f dbh ; e8 77 fe7266 call 04f94h ; e8 77 fe 7298 7267 mov bx, strict word 0ffffh ; bb ff ff 7299 7268 mov dx, strict word 00064h ; ba 64 00 … … 7302 7271 ; sub ah, ah ; 2a e4 7303 7272 test AL, strict byte 001h ; a8 01 7304 jne short 051 7eh ; 75 0d7273 jne short 05137h ; 75 0d 7305 7274 dec bx ; 4b 7306 7275 test bx, bx ; 85 db 7307 jbe short 051 7eh ; 76 087276 jbe short 05137h ; 76 08 7308 7277 mov AL, strict byte 041h ; b0 41 7309 7278 mov dx, 00080h ; ba 80 00 7310 7279 out DX, AL ; ee 7311 jmp short 051 67h ; eb e97280 jmp short 05120h ; eb e9 7312 7281 test bx, bx ; 85 db 7313 jne short 051 88h ; 75 067282 jne short 05141h ; 75 06 7314 7283 mov ax, strict word 00029h ; b8 29 00 7315 call 04f dbh ; e8 53 fe7284 call 04f94h ; e8 53 fe 7316 7285 mov dx, strict word 00060h ; ba 60 00 7317 7286 in AL, DX ; ec … … 7319 7288 ; sub ah, ah ; 2a e4 7320 7289 cmp ax, 000fah ; 3d fa 00 7321 je short 051 99h ; 74 067290 je short 05152h ; 74 06 7322 7291 mov ax, 003e3h ; b8 e3 03 7323 call 04f dbh ; e8 42 fe7292 call 04f94h ; e8 42 fe 7324 7293 mov AL, strict byte 060h ; b0 60 7325 7294 mov dx, strict word 00064h ; ba 64 00 … … 7331 7300 ; sub ah, ah ; 2a e4 7332 7301 test AL, strict byte 002h ; a8 02 7333 je short 051 b9h ; 74 0d7302 je short 05172h ; 74 0d 7334 7303 dec bx ; 4b 7335 7304 test bx, bx ; 85 db 7336 jbe short 051 b9h ; 76 087305 jbe short 05172h ; 76 08 7337 7306 mov AL, strict byte 050h ; b0 50 7338 7307 mov dx, 00080h ; ba 80 00 7339 7308 out DX, AL ; ee 7340 jmp short 051 a2h ; eb e97309 jmp short 0515bh ; eb e9 7341 7310 test bx, bx ; 85 db 7342 jne short 051 c3h ; 75 067311 jne short 0517ch ; 75 06 7343 7312 mov ax, strict word 00032h ; b8 32 00 7344 call 04f dbh ; e8 18 fe7313 call 04f94h ; e8 18 fe 7345 7314 mov AL, strict byte 065h ; b0 65 7346 7315 mov dx, strict word 00060h ; ba 60 00 … … 7352 7321 ; sub ah, ah ; 2a e4 7353 7322 test AL, strict byte 002h ; a8 02 7354 je short 051 e3h ; 74 0d7323 je short 0519ch ; 74 0d 7355 7324 dec bx ; 4b 7356 7325 test bx, bx ; 85 db 7357 jbe short 051 e3h ; 76 087326 jbe short 0519ch ; 76 08 7358 7327 mov AL, strict byte 060h ; b0 60 7359 7328 mov dx, 00080h ; ba 80 00 7360 7329 out DX, AL ; ee 7361 jmp short 051 cch ; eb e97330 jmp short 05185h ; eb e9 7362 7331 test bx, bx ; 85 db 7363 jne short 051 edh ; 75 067332 jne short 051a6h ; 75 06 7364 7333 mov ax, strict word 0003ch ; b8 3c 00 7365 call 04f dbh ; e8 ee fd7334 call 04f94h ; e8 ee fd 7366 7335 mov AL, strict byte 0f4h ; b0 f4 7367 7336 mov dx, strict word 00060h ; ba 60 00 … … 7373 7342 ; sub ah, ah ; 2a e4 7374 7343 test AL, strict byte 002h ; a8 02 7375 je short 05 20dh ; 74 0d7344 je short 051c6h ; 74 0d 7376 7345 dec bx ; 4b 7377 7346 test bx, bx ; 85 db 7378 jbe short 05 20dh ; 76 087347 jbe short 051c6h ; 76 08 7379 7348 mov AL, strict byte 070h ; b0 70 7380 7349 mov dx, 00080h ; ba 80 00 7381 7350 out DX, AL ; ee 7382 jmp short 051 f6h ; eb e97351 jmp short 051afh ; eb e9 7383 7352 test bx, bx ; 85 db 7384 jne short 05 217h ; 75 067353 jne short 051d0h ; 75 06 7385 7354 mov ax, strict word 00046h ; b8 46 00 7386 call 04f dbh ; e8 c4 fd7355 call 04f94h ; e8 c4 fd 7387 7356 mov bx, strict word 0ffffh ; bb ff ff 7388 7357 mov dx, strict word 00064h ; ba 64 00 … … 7391 7360 ; sub ah, ah ; 2a e4 7392 7361 test AL, strict byte 001h ; a8 01 7393 jne short 05 231h ; 75 0d7362 jne short 051eah ; 75 0d 7394 7363 dec bx ; 4b 7395 7364 test bx, bx ; 85 db 7396 jbe short 05 231h ; 76 087365 jbe short 051eah ; 76 08 7397 7366 mov AL, strict byte 071h ; b0 71 7398 7367 mov dx, 00080h ; ba 80 00 7399 7368 out DX, AL ; ee 7400 jmp short 05 21ah ; eb e97369 jmp short 051d3h ; eb e9 7401 7370 test bx, bx ; 85 db 7402 jne short 05 23bh ; 75 067371 jne short 051f4h ; 75 06 7403 7372 mov ax, strict word 00046h ; b8 46 00 7404 call 04f dbh ; e8 a0 fd7373 call 04f94h ; e8 a0 fd 7405 7374 mov dx, strict word 00060h ; ba 60 00 7406 7375 in AL, DX ; ec … … 7408 7377 ; sub ah, ah ; 2a e4 7409 7378 cmp ax, 000fah ; 3d fa 00 7410 je short 052 4ch ; 74 067379 je short 05205h ; 74 06 7411 7380 mov ax, 003e4h ; b8 e4 03 7412 call 04f dbh ; e8 8f fd7381 call 04f94h ; e8 8f fd 7413 7382 mov AL, strict byte 0a8h ; b0 a8 7414 7383 mov dx, strict word 00064h ; ba 64 00 7415 7384 out DX, AL ; ee 7416 7385 xor ax, ax ; 31 c0 7417 call 06 713h ; e8 bc 147386 call 066bch ; e8 ac 14 7418 7387 mov sp, bp ; 89 ec 7419 7388 pop bp ; 5d 7420 7389 retn ; c3 7421 enqueue_key_: ; 0xf52 5bLB 0x9e7390 enqueue_key_: ; 0xf5214 LB 0x9e 7422 7391 push bp ; 55 7423 7392 mov bp, sp ; 89 e5 … … 7431 7400 mov dx, strict word 0001ah ; ba 1a 00 7432 7401 mov ax, strict word 00040h ; b8 40 00 7433 call 0166eh ; e8 fd c37402 call 0166eh ; e8 44 c4 7434 7403 mov di, ax ; 89 c7 7435 7404 mov dx, strict word 0001ch ; ba 1c 00 7436 7405 mov ax, strict word 00040h ; b8 40 00 7437 call 0166eh ; e8 f2 c37406 call 0166eh ; e8 39 c4 7438 7407 mov si, ax ; 89 c6 7439 7408 lea cx, [si+002h] ; 8d 4c 02 7440 7409 cmp cx, strict byte 0003eh ; 83 f9 3e 7441 jc short 052 89h ; 72 037410 jc short 05242h ; 72 03 7442 7411 mov cx, strict word 0001eh ; b9 1e 00 7443 7412 cmp cx, di ; 39 f9 7444 jne short 052 91h ; 75 047413 jne short 0524ah ; 75 04 7445 7414 xor ax, ax ; 31 c0 7446 jmp short 052 bbh ; eb 2a7415 jmp short 05274h ; eb 2a 7447 7416 mov al, bl ; 88 d8 7448 7417 xor ah, ah ; 30 e4 … … 7450 7419 mov dx, si ; 89 f2 7451 7420 mov ax, strict word 00040h ; b8 40 00 7452 call 01660h ; e8 c1 c37421 call 01660h ; e8 08 c4 7453 7422 mov bl, byte [bp-00ah] ; 8a 5e f6 7454 7423 xor bh, bh ; 30 ff 7455 7424 lea dx, [si+001h] ; 8d 54 01 7456 7425 mov ax, strict word 00040h ; b8 40 00 7457 call 01660h ; e8 b3c37426 call 01660h ; e8 fa c3 7458 7427 mov bx, cx ; 89 cb 7459 7428 mov dx, strict word 0001ch ; ba 1c 00 7460 7429 mov ax, strict word 00040h ; b8 40 00 7461 call 0167ch ; e8 c4 c37430 call 0167ch ; e8 0b c4 7462 7431 mov ax, strict word 00001h ; b8 01 00 7463 7432 lea sp, [bp-008h] ; 8d 66 f8 … … 7478 7447 cmp bh, byte [bx+si] ; 3a 38 7479 7448 sub bl, byte [ss:di] ; 36 2a 1d 7480 aas ; 3f 7481 push si ; 56 7449 clc ; f8 7450 push bp ; 55 7451 mov BL, strict byte 053h ; b3 53 7452 push bx ; 53 7453 push bx ; 53 7454 push bx ; 53 7455 push bx ; 53 7456 inc dx ; 42 7457 push sp ; 54 7458 and AL, strict byte 053h ; 24 53 7459 db 0c6h, 054h, 037h, 055h 7460 ; mov byte [si+037h], 055h ; c6 54 37 55 7461 ficom word [di-044h] ; de 55 bc 7462 push bp ; 55 7482 7463 cli ; fa 7483 7464 push bx ; 53 7484 call far 08953h:09a53h ; 9a 53 9a 53 89 7485 push sp ; 54 7486 imul dx, word [bp+di+00dh], strict byte 00055h ; 6b 53 0d 55 7487 jle short 0533ah ; 7e 55 7488 and ax, 00356h ; 25 56 03 7489 push si ; 56 7490 inc cx ; 41 7491 push sp ; 54 7492 call far 0cb53h:09a53h ; 9a 53 9a 53 cb 7493 push sp ; 54 7494 mov dx, word [bp+di+05eh] ; 8b 53 5e 7465 push bx ; 53 7466 push bx ; 53 7467 push bx ; 53 7468 push bx ; 53 7469 test byte [si+044h], dl ; 84 54 44 7470 push bx ; 53 7471 pop SS ; 17 7495 7472 push bp ; 55 7496 jcxz 0534ch ; e3 55 7497 push DS ; 1e 7498 push si ; 56 7499 _int09_function: ; 0xf52f9 LB 0x4cd 7473 pushfw ; 9c 7474 push bp ; 55 7475 xlatb ; d7 7476 push bp ; 55 7477 _int09_function: ; 0xf52b2 LB 0x4cd 7500 7478 push bp ; 55 7501 7479 mov bp, sp ; 89 e5 … … 7505 7483 mov byte [bp-004h], al ; 88 46 fc 7506 7484 test al, al ; 84 c0 7507 jne short 05 326h ; 75 1c7485 jne short 052dfh ; 75 1c 7508 7486 mov bx, 00da0h ; bb a0 0d 7509 7487 mov cx, ds ; 8c d9 7510 7488 mov ax, strict word 00004h ; b8 04 00 7511 call 01933h ; e8 1ec67489 call 01933h ; e8 65 c6 7512 7490 mov ax, 00587h ; b8 87 05 7513 7491 push ax ; 50 7514 7492 mov ax, strict word 00004h ; b8 04 00 7515 7493 push ax ; 50 7516 call 01976h ; e8 56c67494 call 01976h ; e8 9d c6 7517 7495 add sp, strict byte 00004h ; 83 c4 04 7518 jmp near 053 f4h ; e9 ce 007496 jmp near 053adh ; e9 ce 00 7519 7497 mov dx, strict word 00018h ; ba 18 00 7520 7498 mov ax, strict word 00040h ; b8 40 00 7521 call 01652h ; e8 23c37499 call 01652h ; e8 6a c3 7522 7500 mov byte [bp-006h], al ; 88 46 fa 7523 7501 mov byte [bp-008h], al ; 88 46 f8 7524 7502 mov dx, 00096h ; ba 96 00 7525 7503 mov ax, strict word 00040h ; b8 40 00 7526 call 01652h ; e8 14c37504 call 01652h ; e8 5b c3 7527 7505 mov byte [bp-00ah], al ; 88 46 f6 7528 7506 mov byte [bp-010h], al ; 88 46 f0 7529 7507 mov dx, strict word 00017h ; ba 17 00 7530 7508 mov ax, strict word 00040h ; b8 40 00 7531 call 01652h ; e8 05c37509 call 01652h ; e8 4c c3 7532 7510 mov byte [bp-00ch], al ; 88 46 f4 7533 7511 mov byte [bp-00eh], al ; 88 46 f2 … … 7536 7514 pop ES ; 07 7537 7515 mov cx, strict word 00012h ; b9 12 00 7538 mov di, 052 c4h ; bf c4527516 mov di, 0527dh ; bf 7d 52 7539 7517 repne scasb ; f2 ae 7540 7518 sal cx, 1 ; d1 e1 7541 7519 mov di, cx ; 89 cf 7542 mov ax, word [cs:di+052 d5h] ; 2e 8b 85 d5527520 mov ax, word [cs:di+0528eh] ; 2e 8b 85 8e 52 7543 7521 jmp ax ; ff e0 7544 7522 xor byte [bp-00eh], 040h ; 80 76 f2 40 … … 7547 7525 mov dx, strict word 00017h ; ba 17 00 7548 7526 mov ax, strict word 00040h ; b8 40 00 7549 call 01660h ; e8 e3 c27527 call 01660h ; e8 2a c3 7550 7528 or byte [bp-008h], 040h ; 80 4e f8 40 7551 7529 mov al, byte [bp-008h] ; 8a 46 f8 7552 7530 xor ah, ah ; 30 e4 7553 7531 mov bx, ax ; 89 c3 7554 jmp near 05 613h ; e9 88 027532 jmp near 055cch ; e9 88 02 7555 7533 mov al, byte [bp-006h] ; 8a 46 fa 7556 7534 and AL, strict byte 0bfh ; 24 bf … … 7558 7536 mov bl, al ; 88 c3 7559 7537 xor bh, bh ; 30 ff 7560 jmp near 05 613h ; e9 79 027538 jmp near 055cch ; e9 79 02 7561 7539 test byte [bp-010h], 002h ; f6 46 f0 02 7562 jne short 053 d3h ; 75 337540 jne short 0538ch ; 75 33 7563 7541 mov al, byte [bp-004h] ; 8a 46 fc 7564 7542 and AL, strict byte 07fh ; 24 7f 7565 7543 cmp AL, strict byte 02ah ; 3c 2a 7566 jne short 053 aeh ; 75 057544 jne short 05367h ; 75 05 7567 7545 mov bx, strict word 00002h ; bb 02 00 7568 jmp short 053 b1h ; eb 037546 jmp short 0536ah ; eb 03 7569 7547 mov bx, strict word 00001h ; bb 01 00 7570 7548 test byte [bp-004h], 080h ; f6 46 fc 80 7571 je short 053 c0h ; 74 097549 je short 05379h ; 74 09 7572 7550 mov al, bl ; 88 d8 7573 7551 not al ; f6 d0 7574 7552 and byte [bp-00eh], al ; 20 46 f2 7575 jmp short 053 c3h ; eb 037553 jmp short 0537ch ; eb 03 7576 7554 or byte [bp-00eh], bl ; 08 5e f2 7577 7555 mov al, byte [bp-00eh] ; 8a 46 f2 … … 7580 7558 mov dx, strict word 00017h ; ba 17 00 7581 7559 mov ax, strict word 00040h ; b8 40 00 7582 call 01660h ; e8 8dc27560 call 01660h ; e8 d4 c2 7583 7561 mov al, byte [bp-004h] ; 8a 46 fc 7584 7562 and AL, strict byte 07fh ; 24 7f 7585 7563 cmp AL, strict byte 01dh ; 3c 1d 7586 je short 053 e0h ; 74 047564 je short 05399h ; 74 04 7587 7565 and byte [bp-010h], 0feh ; 80 66 f0 fe 7588 7566 and byte [bp-010h], 0fdh ; 80 66 f0 fd … … 7592 7570 mov dx, 00096h ; ba 96 00 7593 7571 mov ax, strict word 00040h ; b8 40 00 7594 call 01660h ; e8 6cc27572 call 01660h ; e8 b3 c2 7595 7573 lea sp, [bp-002h] ; 8d 66 fe 7596 7574 pop di ; 5f … … 7598 7576 retn ; c3 7599 7577 test byte [bp-00ah], 001h ; f6 46 f6 01 7600 jne short 053 d3h ; 75 d37578 jne short 0538ch ; 75 d3 7601 7579 mov al, byte [bp-00ch] ; 8a 46 f4 7602 7580 or AL, strict byte 004h ; 0c 04 … … 7606 7584 mov dx, strict word 00017h ; ba 17 00 7607 7585 mov ax, strict word 00040h ; b8 40 00 7608 call 01660h ; e8 4bc27586 call 01660h ; e8 92 c2 7609 7587 mov al, byte [bp-00ah] ; 8a 46 f6 7610 7588 test AL, strict byte 002h ; a8 02 7611 je short 05 42ah ; 74 0e7589 je short 053e3h ; 74 0e 7612 7590 or AL, strict byte 004h ; 0c 04 7613 7591 mov byte [bp-010h], al ; 88 46 f0 … … 7615 7593 mov bx, ax ; 89 c3 7616 7594 mov dx, 00096h ; ba 96 00 7617 jmp short 05 439h ; eb 0f7595 jmp short 053f2h ; eb 0f 7618 7596 mov al, byte [bp-006h] ; 8a 46 fa 7619 7597 or AL, strict byte 001h ; 0c 01 … … 7623 7601 mov dx, strict word 00018h ; ba 18 00 7624 7602 mov ax, strict word 00040h ; b8 40 00 7625 call 01660h ; e8 21c27626 jmp short 053 d3h ; eb 927603 call 01660h ; e8 68 c2 7604 jmp short 0538ch ; eb 92 7627 7605 test byte [bp-00ah], 001h ; f6 46 f6 01 7628 jne short 053 d3h ; 75 8c7606 jne short 0538ch ; 75 8c 7629 7607 mov al, byte [bp-00ch] ; 8a 46 f4 7630 7608 and AL, strict byte 0fbh ; 24 fb … … 7634 7612 mov dx, strict word 00017h ; ba 17 00 7635 7613 mov ax, strict word 00040h ; b8 40 00 7636 call 01660h ; e8 04c27614 call 01660h ; e8 4b c2 7637 7615 mov al, byte [bp-00ah] ; 8a 46 f6 7638 7616 test AL, strict byte 002h ; a8 02 7639 je short 054 71h ; 74 0e7617 je short 0542ah ; 74 0e 7640 7618 and AL, strict byte 0fbh ; 24 fb 7641 7619 mov byte [bp-010h], al ; 88 46 f0 … … 7643 7621 mov bx, ax ; 89 c3 7644 7622 mov dx, 00096h ; ba 96 00 7645 jmp short 054 80h ; eb 0f7623 jmp short 05439h ; eb 0f 7646 7624 mov al, byte [bp-006h] ; 8a 46 fa 7647 7625 and AL, strict byte 0feh ; 24 fe … … 7651 7629 mov dx, strict word 00018h ; ba 18 00 7652 7630 mov ax, strict word 00040h ; b8 40 00 7653 call 01660h ; e8 da c17654 jmp near 053 d3h ; e9 4a ff7631 call 01660h ; e8 21 c2 7632 jmp near 0538ch ; e9 4a ff 7655 7633 mov al, byte [bp-00ch] ; 8a 46 f4 7656 7634 or AL, strict byte 008h ; 0c 08 … … 7660 7638 mov dx, strict word 00017h ; ba 17 00 7661 7639 mov ax, strict word 00040h ; b8 40 00 7662 call 01660h ; e8 c2 c17640 call 01660h ; e8 09 c2 7663 7641 mov al, byte [bp-00ah] ; 8a 46 f6 7664 7642 test AL, strict byte 002h ; a8 02 7665 je short 054 b3h ; 74 0e7643 je short 0546ch ; 74 0e 7666 7644 or AL, strict byte 008h ; 0c 08 7667 7645 mov byte [bp-010h], al ; 88 46 f0 … … 7669 7647 mov bx, ax ; 89 c3 7670 7648 mov dx, 00096h ; ba 96 00 7671 jmp short 054 c2h ; eb 0f7649 jmp short 0547bh ; eb 0f 7672 7650 mov al, byte [bp-006h] ; 8a 46 fa 7673 7651 or AL, strict byte 002h ; 0c 02 … … 7677 7655 mov dx, strict word 00018h ; ba 18 00 7678 7656 mov ax, strict word 00040h ; b8 40 00 7679 call 01660h ; e8 98c17680 jmp near 053 d3h ; e9 08 ff7657 call 01660h ; e8 df c1 7658 jmp near 0538ch ; e9 08 ff 7681 7659 mov al, byte [bp-00ch] ; 8a 46 f4 7682 7660 and AL, strict byte 0f7h ; 24 f7 … … 7686 7664 mov dx, strict word 00017h ; ba 17 00 7687 7665 mov ax, strict word 00040h ; b8 40 00 7688 call 01660h ; e8 80c17666 call 01660h ; e8 c7 c1 7689 7667 mov al, byte [bp-00ah] ; 8a 46 f6 7690 7668 test AL, strict byte 002h ; a8 02 7691 je short 054 f5h ; 74 0e7669 je short 054aeh ; 74 0e 7692 7670 and AL, strict byte 0f7h ; 24 f7 7693 7671 mov byte [bp-010h], al ; 88 46 f0 … … 7695 7673 mov bx, ax ; 89 c3 7696 7674 mov dx, 00096h ; ba 96 00 7697 jmp short 05 504h ; eb 0f7675 jmp short 054bdh ; eb 0f 7698 7676 mov al, byte [bp-006h] ; 8a 46 fa 7699 7677 and AL, strict byte 0fdh ; 24 fd … … 7703 7681 mov dx, strict word 00018h ; ba 18 00 7704 7682 mov ax, strict word 00040h ; b8 40 00 7705 call 01660h ; e8 56c17706 jmp near 053 d3h ; e9 c6 fe7683 call 01660h ; e8 9d c1 7684 jmp near 0538ch ; e9 c6 fe 7707 7685 test byte [bp-00ah], 003h ; f6 46 f6 03 7708 jne short 05 530h ; 75 1d7686 jne short 054e9h ; 75 1d 7709 7687 mov al, byte [bp-006h] ; 8a 46 fa 7710 7688 or AL, strict byte 020h ; 0c 20 … … 7714 7692 mov dx, strict word 00018h ; ba 18 00 7715 7693 mov ax, strict word 00040h ; b8 40 00 7716 call 01660h ; e8 38c17694 call 01660h ; e8 7f c1 7717 7695 mov al, byte [bp-00ch] ; 8a 46 f4 7718 7696 xor AL, strict byte 020h ; 34 20 7719 jmp near 055 d1h ; e9 a1 007697 jmp near 0558ah ; e9 a1 00 7720 7698 mov al, byte [bp-006h] ; 8a 46 fa 7721 7699 or AL, strict byte 008h ; 0c 08 … … 7725 7703 mov dx, strict word 00018h ; ba 18 00 7726 7704 mov ax, strict word 00040h ; b8 40 00 7727 call 01660h ; e8 1bc17705 call 01660h ; e8 62 c1 7728 7706 mov AL, strict byte 0aeh ; b0 ae 7729 7707 mov dx, strict word 00064h ; ba 64 00 7730 7708 out DX, AL ; ee 7731 call 0e034h ; e8 e6 8a7709 call 0e034h ; e8 2d 8b 7732 7710 mov dx, strict word 00018h ; ba 18 00 7733 7711 mov ax, strict word 00040h ; b8 40 00 7734 call 01652h ; e8 fb c07712 call 01652h ; e8 42 c1 7735 7713 test AL, strict byte 008h ; a8 08 7736 jne short 055 4eh ; 75 f37737 jmp near 053 d3h ; e9 75 fe7714 jne short 05507h ; 75 f3 7715 jmp near 0538ch ; e9 75 fe 7738 7716 test byte [bp-00ah], 003h ; f6 46 f6 03 7739 je short 055 67h ; 74 037740 jmp near 053 d3h ; e9 6c fe7717 je short 05520h ; 74 03 7718 jmp near 0538ch ; e9 6c fe 7741 7719 mov al, byte [bp-006h] ; 8a 46 fa 7742 7720 and AL, strict byte 0dfh ; 24 df … … 7746 7724 mov dx, strict word 00018h ; ba 18 00 7747 7725 mov ax, strict word 00040h ; b8 40 00 7748 call 01660h ; e8 e4 c07749 jmp short 055 64h ; eb e67726 call 01660h ; e8 2b c1 7727 jmp short 0551dh ; eb e6 7750 7728 test byte [bp-00ah], 002h ; f6 46 f6 02 7751 je short 055 b7h ; 74 337729 je short 05570h ; 74 33 7752 7730 mov dx, strict word 0001ah ; ba 1a 00 7753 7731 mov ax, strict word 00040h ; b8 40 00 7754 call 0166eh ; e8 e1 c07732 call 0166eh ; e8 28 c1 7755 7733 mov bx, ax ; 89 c3 7756 7734 mov dx, strict word 0001ch ; ba 1c 00 7757 7735 mov ax, strict word 00040h ; b8 40 00 7758 call 0167ch ; e8 e4 c07736 call 0167ch ; e8 2b c1 7759 7737 mov bx, 00080h ; bb 80 00 7760 7738 mov dx, strict word 00071h ; ba 71 00 7761 7739 mov ax, strict word 00040h ; b8 40 00 7762 call 01660h ; e8 bc c07740 call 01660h ; e8 03 c1 7763 7741 mov AL, strict byte 0aeh ; b0 ae 7764 7742 mov dx, strict word 00064h ; ba 64 00 … … 7769 7747 xor dx, dx ; 31 d2 7770 7748 xor ax, ax ; 31 c0 7771 call 052 5bh ; e8 a6 fc7772 jmp short 055 64h ; eb ad7749 call 05214h ; e8 a6 fc 7750 jmp short 0551dh ; eb ad 7773 7751 mov al, byte [bp-006h] ; 8a 46 fa 7774 7752 or AL, strict byte 010h ; 0c 10 … … 7778 7756 mov dx, strict word 00018h ; ba 18 00 7779 7757 mov ax, strict word 00040h ; b8 40 00 7780 call 01660h ; e8 94c07758 call 01660h ; e8 db c0 7781 7759 mov al, byte [bp-00ch] ; 8a 46 f4 7782 7760 xor AL, strict byte 010h ; 34 10 … … 7786 7764 mov dx, strict word 00017h ; ba 17 00 7787 7765 mov ax, strict word 00040h ; b8 40 00 7788 call 01660h ; e8 7fc07789 jmp short 055 64h ; eb 817766 call 01660h ; e8 c6 c0 7767 jmp short 0551dh ; eb 81 7790 7768 test byte [bp-00ah], 002h ; f6 46 f6 02 7791 je short 055 ech ; 74 037792 jmp near 053 d3h ; e9 e7 fd7769 je short 055a5h ; 74 03 7770 jmp near 0538ch ; e9 e7 fd 7793 7771 mov al, byte [bp-006h] ; 8a 46 fa 7794 7772 and AL, strict byte 0efh ; 24 ef … … 7798 7776 mov dx, strict word 00018h ; ba 18 00 7799 7777 mov ax, strict word 00040h ; b8 40 00 7800 call 01660h ; e8 5fc07801 jmp short 055 e9h ; eb e67778 call 01660h ; e8 a6 c0 7779 jmp short 055a2h ; eb e6 7802 7780 mov al, byte [bp-006h] ; 8a 46 fa 7803 7781 test AL, strict byte 004h ; a8 04 7804 jne short 055 e9h ; 75 df7782 jne short 055a2h ; 75 df 7805 7783 or AL, strict byte 004h ; 0c 04 7806 7784 mov byte [bp-008h], al ; 88 46 f8 … … 7809 7787 mov dx, strict word 00018h ; ba 18 00 7810 7788 mov ax, strict word 00040h ; b8 40 00 7811 call 01660h ; e8 44c07812 jmp short 055 e9h ; eb cb7789 call 01660h ; e8 8b c0 7790 jmp short 055a2h ; eb cb 7813 7791 mov al, byte [bp-006h] ; 8a 46 fa 7814 7792 and AL, strict byte 0fbh ; 24 fb 7815 jmp short 05 60ch ; eb e77793 jmp short 055c5h ; eb e7 7816 7794 mov al, byte [bp-00ch] ; 8a 46 f4 7817 7795 and AL, strict byte 00ch ; 24 0c 7818 7796 cmp AL, strict byte 00ch ; 3c 0c 7819 jne short 05 63fh ; 75 117797 jne short 055f8h ; 75 11 7820 7798 mov bx, 01234h ; bb 34 12 7821 7799 mov dx, strict word 00072h ; ba 72 00 7822 7800 mov ax, strict word 00040h ; b8 40 00 7823 call 0167ch ; e8 42c07801 call 0167ch ; e8 89 c0 7824 7802 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 7825 7803 test byte [bp-008h], 008h ; f6 46 f8 08 7826 je short 056 56h ; 74 117804 je short 0560fh ; 74 11 7827 7805 and byte [bp-008h], 0f7h ; 80 66 f8 f7 7828 7806 mov al, byte [bp-008h] ; 8a 46 f8 … … 7830 7808 mov bx, ax ; 89 c3 7831 7809 mov dx, strict word 00018h ; ba 18 00 7832 jmp near 053 eeh ; e9 98 fd7810 jmp near 053a7h ; e9 98 fd 7833 7811 mov al, byte [bp-004h] ; 8a 46 fc 7834 7812 test AL, strict byte 080h ; a8 80 7835 je short 056 94h ; 74 377813 je short 0564dh ; 74 37 7836 7814 cmp AL, strict byte 0fah ; 3c fa 7837 jne short 056 73h ; 75 127815 jne short 0562ch ; 75 12 7838 7816 mov dx, 00097h ; ba 97 00 7839 7817 mov ax, strict word 00040h ; b8 40 00 7840 call 01652h ; e8 e8 bf7818 call 01652h ; e8 2f c0 7841 7819 mov bl, al ; 88 c3 7842 7820 or bl, 010h ; 80 cb 10 7843 7821 xor bh, bh ; 30 ff 7844 jmp short 056 89h ; eb 167822 jmp short 05642h ; eb 16 7845 7823 cmp AL, strict byte 0feh ; 3c fe 7846 je short 056 7ah ; 74 037847 jmp near 053 d3h ; e9 59 fd7824 je short 05633h ; 74 03 7825 jmp near 0538ch ; e9 59 fd 7848 7826 mov dx, 00097h ; ba 97 00 7849 7827 mov ax, strict word 00040h ; b8 40 00 7850 call 01652h ; e8 cf bf7828 call 01652h ; e8 16 c0 7851 7829 or AL, strict byte 020h ; 0c 20 7852 7830 xor ah, ah ; 30 e4 … … 7854 7832 mov dx, 00097h ; ba 97 00 7855 7833 mov ax, strict word 00040h ; b8 40 00 7856 call 01660h ; e8 ce bf7857 jmp short 056 77h ; eb e37834 call 01660h ; e8 15 c0 7835 jmp short 05630h ; eb e3 7858 7836 cmp byte [bp-004h], 058h ; 80 7e fc 58 7859 jbe short 056 bch ; 76 227837 jbe short 05675h ; 76 22 7860 7838 mov bx, 00da0h ; bb a0 0d 7861 7839 mov cx, ds ; 8c d9 7862 7840 mov ax, strict word 00004h ; b8 04 00 7863 call 01933h ; e8 8ec27841 call 01933h ; e8 d5 c2 7864 7842 mov al, byte [bp-004h] ; 8a 46 fc 7865 7843 xor ah, ah ; 30 e4 … … 7869 7847 mov ax, strict word 00004h ; b8 04 00 7870 7848 push ax ; 50 7871 call 01976h ; e8 c0 c27849 call 01976h ; e8 07 c3 7872 7850 add sp, strict byte 00006h ; 83 c4 06 7873 jmp near 053 f4h ; e9 38 fd7851 jmp near 053adh ; e9 38 fd 7874 7852 mov al, byte [bp-00eh] ; 8a 46 f2 7875 7853 test AL, strict byte 008h ; a8 08 7876 je short 056 ddh ; 74 1a7854 je short 05696h ; 74 1a 7877 7855 mov al, byte [bp-004h] ; 8a 46 fc 7878 7856 xor ah, ah ; 30 e4 … … 7883 7861 mov byte [bp-012h], al ; 88 46 ee 7884 7862 mov al, byte [bx+00df5h] ; 8a 87 f5 0d 7885 jmp near 057 8fh ; e9 b2 007863 jmp near 05748h ; e9 b2 00 7886 7864 test AL, strict byte 004h ; a8 04 7887 je short 056 fbh ; 74 1a7865 je short 056b4h ; 74 1a 7888 7866 mov al, byte [bp-004h] ; 8a 46 fc 7889 7867 xor ah, ah ; 30 e4 … … 7894 7872 mov byte [bp-012h], al ; 88 46 ee 7895 7873 mov al, byte [bx+00df3h] ; 8a 87 f3 0d 7896 jmp near 057 8fh ; e9 94 007874 jmp near 05748h ; e9 94 00 7897 7875 mov al, byte [bp-010h] ; 8a 46 f0 7898 7876 and AL, strict byte 002h ; 24 02 7899 7877 test al, al ; 84 c0 7900 jbe short 05 71eh ; 76 1a7878 jbe short 056d7h ; 76 1a 7901 7879 mov al, byte [bp-004h] ; 8a 46 fc 7902 7880 cmp AL, strict byte 047h ; 3c 47 7903 jc short 05 71eh ; 72 137881 jc short 056d7h ; 72 13 7904 7882 cmp AL, strict byte 053h ; 3c 53 7905 jnbe short 05 71eh ; 77 0f7883 jnbe short 056d7h ; 77 0f 7906 7884 mov byte [bp-012h], 0e0h ; c6 46 ee e0 7907 7885 xor ah, ah ; 30 e4 … … 7909 7887 imul dx ; f7 ea 7910 7888 mov bx, ax ; 89 c3 7911 jmp short 057 8bh ; eb 6d7889 jmp short 05744h ; eb 6d 7912 7890 test byte [bp-00eh], 003h ; f6 46 f2 03 7913 je short 057 5ch ; 74 387891 je short 05715h ; 74 38 7914 7892 mov al, byte [bp-004h] ; 8a 46 fc 7915 7893 xor ah, ah ; 30 e4 … … 7922 7900 mov al, byte [bp-00eh] ; 8a 46 f2 7923 7901 test ax, dx ; 85 d0 7924 je short 057 4ch ; 74 0d7902 je short 05705h ; 74 0d 7925 7903 mov al, byte [bx+00deeh] ; 8a 87 ee 0d 7926 7904 mov byte [bp-012h], al ; 88 46 ee 7927 7905 mov al, byte [bx+00defh] ; 8a 87 ef 0d 7928 jmp short 057 57h ; eb 0b7906 jmp short 05710h ; eb 0b 7929 7907 mov al, byte [bx+00df0h] ; 8a 87 f0 0d 7930 7908 mov byte [bp-012h], al ; 88 46 ee 7931 7909 mov al, byte [bx+00df1h] ; 8a 87 f1 0d 7932 7910 mov byte [bp-004h], al ; 88 46 fc 7933 jmp short 057 92h ; eb 367911 jmp short 0574bh ; eb 36 7934 7912 mov al, byte [bp-004h] ; 8a 46 fc 7935 7913 xor ah, ah ; 30 e4 … … 7942 7920 mov al, byte [bp-00eh] ; 8a 46 f2 7943 7921 test ax, dx ; 85 d0 7944 je short 057 84h ; 74 0d7922 je short 0573dh ; 74 0d 7945 7923 mov al, byte [bx+00df0h] ; 8a 87 f0 0d 7946 7924 mov byte [bp-012h], al ; 88 46 ee 7947 7925 mov al, byte [bx+00df1h] ; 8a 87 f1 0d 7948 jmp short 057 8fh ; eb 0b7926 jmp short 05748h ; eb 0b 7949 7927 mov al, byte [bx+00deeh] ; 8a 87 ee 0d 7950 7928 mov byte [bp-012h], al ; 88 46 ee … … 7952 7930 mov byte [bp-004h], al ; 88 46 fc 7953 7931 cmp byte [bp-004h], 000h ; 80 7e fc 00 7954 jne short 057 b7h ; 75 1f7932 jne short 05770h ; 75 1f 7955 7933 cmp byte [bp-012h], 000h ; 80 7e ee 00 7956 jne short 057 b7h ; 75 197934 jne short 05770h ; 75 19 7957 7935 mov bx, 00da0h ; bb a0 0d 7958 7936 mov cx, ds ; 8c d9 7959 7937 mov ax, strict word 00004h ; b8 04 00 7960 call 01933h ; e8 8ac17938 call 01933h ; e8 d1 c1 7961 7939 mov ax, 005d8h ; b8 d8 05 7962 7940 push ax ; 50 7963 7941 mov ax, strict word 00004h ; b8 04 00 7964 7942 push ax ; 50 7965 call 01976h ; e8 c2 c17943 call 01976h ; e8 09 c2 7966 7944 add sp, strict byte 00004h ; 83 c4 04 7967 7945 mov bl, byte [bp-012h] ; 8a 5e ee … … 7970 7948 xor ah, ah ; 30 e4 7971 7949 mov dx, bx ; 89 da 7972 jmp near 055 b2h ; e9 ec fd7973 dequeue_key_: ; 0xf57 c6LB 0x947950 jmp near 0556bh ; e9 ec fd 7951 dequeue_key_: ; 0xf577f LB 0x94 7974 7952 push bp ; 55 7975 7953 mov bp, sp ; 89 e5 … … 7984 7962 mov dx, strict word 0001ah ; ba 1a 00 7985 7963 mov ax, strict word 00040h ; b8 40 00 7986 call 0166eh ; e8 8ebe7964 call 0166eh ; e8 d5 be 7987 7965 mov bx, ax ; 89 c3 7988 7966 mov dx, strict word 0001ch ; ba 1c 00 7989 7967 mov ax, strict word 00040h ; b8 40 00 7990 call 0166eh ; e8 83be7968 call 0166eh ; e8 ca be 7991 7969 cmp bx, ax ; 39 c3 7992 je short 05 82ch ; 74 3d7970 je short 057e5h ; 74 3d 7993 7971 mov dx, bx ; 89 da 7994 7972 mov ax, strict word 00040h ; b8 40 00 7995 call 01652h ; e8 5bbe7973 call 01652h ; e8 a2 be 7996 7974 mov cl, al ; 88 c1 7997 7975 lea dx, [bx+001h] ; 8d 57 01 7998 7976 mov ax, strict word 00040h ; b8 40 00 7999 call 01652h ; e8 50be7977 call 01652h ; e8 97 be 8000 7978 mov es, [bp-008h] ; 8e 46 f8 8001 7979 mov byte [es:si], cl ; 26 88 0c … … 8003 7981 mov byte [es:di], al ; 26 88 05 8004 7982 cmp word [bp+004h], strict byte 00000h ; 83 7e 04 00 8005 je short 05 827h ; 74 137983 je short 057e0h ; 74 13 8006 7984 inc bx ; 43 8007 7985 inc bx ; 43 8008 7986 cmp bx, strict byte 0003eh ; 83 fb 3e 8009 jc short 05 81eh ; 72 037987 jc short 057d7h ; 72 03 8010 7988 mov bx, strict word 0001eh ; bb 1e 00 8011 7989 mov dx, strict word 0001ah ; ba 1a 00 8012 7990 mov ax, strict word 00040h ; b8 40 00 8013 call 0167ch ; e8 55be7991 call 0167ch ; e8 9c be 8014 7992 mov ax, strict word 00001h ; b8 01 00 8015 jmp short 05 82eh ; eb 027993 jmp short 057e7h ; eb 02 8016 7994 xor ax, ax ; 31 c0 8017 7995 lea sp, [bp-004h] ; 8d 66 fc … … 8024 8002 or cl, byte [bx+di] ; 0a 09 8025 8003 add ax, 00102h ; 05 02 01 8026 add byte [bx+si+059h], ah ; 00 60 59 8027 sbb bx, word [bx+di-050h] ; 1b 59 b0 8004 add byte [bx+di], bl ; 00 19 8028 8005 pop cx ; 59 8029 hlt ; f4 8006 aam 058h ; d4 58 8007 imul bx, word [bx+di-053h], 0c059h ; 69 59 ad 59 c0 8030 8008 pop cx ; 59 8031 pop ES ; 07 8009 out 059h, ax ; e7 59 8010 db 0f1h 8011 pop cx ; 59 8012 pushaw ; 60 8032 8013 pop dx ; 5a 8033 db 02eh, 05ah 8034 ; cs pop dx ; 2e 5a 8035 cmp byte [bp+si-059h], bl ; 38 5a a7 8014 xchg di, ax ; 97 8036 8015 pop dx ; 5a 8037 ficomp word [bp+si+00eh] ; de 5a 0e 8038 pop bx ; 5b 8039 inc bp ; 45 8040 pop bx ; 5b 8041 stosb ; aa 8016 db 0c7h, 05ah, 0feh, 05ah, 063h 8017 ; mov word [bp+si-002h], 0635ah ; c7 5a fe 5a 63 8042 8018 pop cx ; 59 8043 _int16_function: ; 0xf58 5aLB 0x2f68019 _int16_function: ; 0xf5813 LB 0x2f6 8044 8020 push bp ; 55 8045 8021 mov bp, sp ; 89 e5 … … 8048 8024 mov dx, strict word 00017h ; ba 17 00 8049 8025 mov ax, strict word 00040h ; b8 40 00 8050 call 01652h ; e8 e8 bd8026 call 01652h ; e8 2f be 8051 8027 mov cl, al ; 88 c1 8052 8028 mov bh, al ; 88 c7 8053 8029 mov dx, 00097h ; ba 97 00 8054 8030 mov ax, strict word 00040h ; b8 40 00 8055 call 01652h ; e8 db bd8031 call 01652h ; e8 22 be 8056 8032 mov bl, al ; 88 c3 8057 8033 mov dl, cl ; 88 ca … … 8064 8040 xor al, dl ; 30 d0 8065 8041 test ax, ax ; 85 c0 8066 je short 058 fah ; 74 6c8042 je short 058b3h ; 74 6c 8067 8043 cli ; fa 8068 8044 mov AL, strict byte 0edh ; b0 ed … … 8074 8050 ; sub ah, ah ; 2a e4 8075 8051 test AL, strict byte 001h ; a8 01 8076 jne short 058 a7h ; 75 088052 jne short 05860h ; 75 08 8077 8053 mov AL, strict byte 021h ; b0 21 8078 8054 mov dx, 00080h ; ba 80 00 8079 8055 out DX, AL ; ee 8080 jmp short 058 95h ; eb ee8056 jmp short 0584eh ; eb ee 8081 8057 mov dx, strict word 00060h ; ba 60 00 8082 8058 in AL, DX ; ec … … 8084 8060 ; sub ah, ah ; 2a e4 8085 8061 cmp ax, 000fah ; 3d fa 00 8086 jne short 058 f9h ; 75 478062 jne short 058b2h ; 75 47 8087 8063 and bl, 0c8h ; 80 e3 c8 8088 8064 mov al, bh ; 88 f8 … … 8107 8083 ; sub ah, ah ; 2a e4 8108 8084 test AL, strict byte 001h ; a8 01 8109 jne short 058 e8h ; 75 088085 jne short 058a1h ; 75 08 8110 8086 mov AL, strict byte 021h ; b0 21 8111 8087 mov dx, 00080h ; ba 80 00 8112 8088 out DX, AL ; ee 8113 jmp short 058 d6h ; eb ee8089 jmp short 0588fh ; eb ee 8114 8090 mov dx, strict word 00060h ; ba 60 00 8115 8091 in AL, DX ; ec … … 8119 8095 mov dx, 00097h ; ba 97 00 8120 8096 mov ax, strict word 00040h ; b8 40 00 8121 call 01660h ; e8 67bd8097 call 01660h ; e8 ae bd 8122 8098 sti ; fb 8123 8099 mov CL, strict byte 008h ; b1 08 … … 8125 8101 shr ax, CL ; d3 e8 8126 8102 cmp ax, 000a2h ; 3d a2 00 8127 jnbe short 059 60h ; 77 5a8103 jnbe short 05919h ; 77 5a 8128 8104 push CS ; 0e 8129 8105 pop ES ; 07 8130 8106 mov cx, strict word 0000ch ; b9 0c 00 8131 mov di, 05 837h ; bf 37 588107 mov di, 057f0h ; bf f0 57 8132 8108 repne scasb ; f2 ae 8133 8109 sal cx, 1 ; d1 e1 8134 8110 mov di, cx ; 89 cf 8135 mov ax, word [cs:di+05 842h] ; 2e 8b 85 42 588111 mov ax, word [cs:di+057fbh] ; 2e 8b 85 fb 57 8136 8112 jmp ax ; ff e0 8137 8113 mov ax, strict word 00001h ; b8 01 00 … … 8141 8117 mov dx, ss ; 8c d2 8142 8118 lea ax, [bp-008h] ; 8d 46 f8 8143 call 057 c6h ; e8 9a fe8119 call 0577fh ; e8 9a fe 8144 8120 test ax, ax ; 85 c0 8145 jne short 05 93eh ; 75 0e8121 jne short 058f7h ; 75 0e 8146 8122 mov ax, 0060fh ; b8 0f 06 8147 8123 push ax ; 50 8148 8124 mov ax, strict word 00007h ; b8 07 00 8149 8125 push ax ; 50 8150 call 01976h ; e8 3bc08126 call 01976h ; e8 82 c0 8151 8127 add sp, strict byte 00004h ; 83 c4 04 8152 8128 cmp byte [bp-008h], 000h ; 80 7e f8 00 8153 je short 059 4ah ; 74 068129 je short 05903h ; 74 06 8154 8130 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 8155 je short 059 50h ; 74 068131 je short 05909h ; 74 06 8156 8132 cmp byte [bp-006h], 0e0h ; 80 7e fa e0 8157 jne short 059 54h ; 75 048133 jne short 0590dh ; 75 04 8158 8134 mov byte [bp-006h], 000h ; c6 46 fa 00 8159 8135 mov ah, byte [bp-008h] ; 8a 66 f8 8160 8136 mov al, byte [bp-006h] ; 8a 46 fa 8161 8137 mov word [bp+012h], ax ; 89 46 12 8162 jmp near 059 aah ; e9 4a 008138 jmp near 05963h ; e9 4a 00 8163 8139 mov bx, 00da0h ; bb a0 0d 8164 8140 mov cx, ds ; 8c d9 8165 8141 mov ax, strict word 00004h ; b8 04 00 8166 call 01933h ; e8 c8 bf8142 call 01933h ; e8 0f c0 8167 8143 mov CL, strict byte 008h ; b1 08 8168 8144 mov ax, word [bp+012h] ; 8b 46 12 … … 8173 8149 mov ax, strict word 00004h ; b8 04 00 8174 8150 push ax ; 50 8175 call 01976h ; e8 f8 bf8151 call 01976h ; e8 3f c0 8176 8152 add sp, strict byte 00006h ; 83 c4 06 8177 8153 mov bx, 00da0h ; bb a0 0d 8178 8154 mov cx, ds ; 8c d9 8179 8155 mov ax, strict word 00004h ; b8 04 00 8180 call 01933h ; e8 a7bf8156 call 01933h ; e8 ee bf 8181 8157 mov ax, word [bp+00eh] ; 8b 46 0e 8182 8158 push ax ; 50 … … 8191 8167 mov ax, strict word 00004h ; b8 04 00 8192 8168 push ax ; 50 8193 call 01976h ; e8 cf bf8169 call 01976h ; e8 16 c0 8194 8170 add sp, strict byte 0000ch ; 83 c4 0c 8195 8171 lea sp, [bp-002h] ; 8d 66 fe … … 8204 8180 mov dx, ss ; 8c d2 8205 8181 lea ax, [bp-008h] ; 8d 46 f8 8206 call 057 c6h ; e8 01 fe8182 call 0577fh ; e8 01 fe 8207 8183 test ax, ax ; 85 c0 8208 jne short 059 cfh ; 75 068184 jne short 05988h ; 75 06 8209 8185 or word [bp+01ch], strict byte 00040h ; 83 4e 1c 40 8210 jmp short 059 aah ; eb db8186 jmp short 05963h ; eb db 8211 8187 cmp byte [bp-008h], 000h ; 80 7e f8 00 8212 je short 059 dbh ; 74 068188 je short 05994h ; 74 06 8213 8189 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 8214 je short 059 e1h ; 74 068190 je short 0599ah ; 74 06 8215 8191 cmp byte [bp-006h], 0e0h ; 80 7e fa e0 8216 jne short 059 e5h ; 75 048192 jne short 0599eh ; 75 04 8217 8193 mov byte [bp-006h], 000h ; c6 46 fa 00 8218 8194 mov dh, byte [bp-008h] ; 8a 76 f8 … … 8220 8196 mov word [bp+012h], dx ; 89 56 12 8221 8197 and word [bp+01ch], strict byte 0ffbfh ; 83 66 1c bf 8222 jmp short 059 aah ; eb b68198 jmp short 05963h ; eb b6 8223 8199 mov dx, strict word 00017h ; ba 17 00 8224 8200 mov ax, strict word 00040h ; b8 40 00 8225 call 01652h ; e8 55bc8201 call 01652h ; e8 9c bc 8226 8202 mov dx, word [bp+012h] ; 8b 56 12 8227 8203 mov dl, al ; 88 c2 8228 8204 mov word [bp+012h], dx ; 89 56 12 8229 jmp short 059 aah ; eb a38205 jmp short 05963h ; eb a3 8230 8206 mov dl, byte [bp+010h] ; 8a 56 10 8231 8207 xor dh, dh ; 30 f6 … … 8234 8210 shr ax, CL ; d3 e8 8235 8211 xor ah, ah ; 30 e4 8236 call 052 5bh ; e8 43 f88212 call 05214h ; e8 43 f8 8237 8213 test ax, ax ; 85 c0 8238 jne short 05 a26h ; 75 0a8214 jne short 059dfh ; 75 0a 8239 8215 mov ax, word [bp+012h] ; 8b 46 12 8240 8216 xor al, al ; 30 c0 8241 8217 or AL, strict byte 001h ; 0c 01 8242 jmp near 059 5ah ; e9 34 ff8218 jmp near 05913h ; e9 34 ff 8243 8219 and word [bp+012h], 0ff00h ; 81 66 12 00 ff 8244 jmp near 059 aah ; e9 7c ff8220 jmp near 05963h ; e9 7c ff 8245 8221 mov ax, word [bp+012h] ; 8b 46 12 8246 8222 xor al, al ; 30 c0 8247 8223 or AL, strict byte 030h ; 0c 30 8248 jmp near 059 5ah ; e9 22 ff8224 jmp near 05913h ; e9 22 ff 8249 8225 mov byte [bp-004h], 002h ; c6 46 fc 02 8250 8226 xor cx, cx ; 31 c9 … … 8259 8235 ; sub ah, ah ; 2a e4 8260 8236 test AL, strict byte 001h ; a8 01 8261 jne short 05a 5fh ; 75 0d8237 jne short 05a18h ; 75 0d 8262 8238 dec bx ; 4b 8263 8239 test bx, bx ; 85 db 8264 jbe short 05a 5fh ; 76 088240 jbe short 05a18h ; 76 08 8265 8241 mov dx, 00080h ; ba 80 00 8266 8242 in AL, DX ; ec 8267 8243 db 02ah, 0e4h 8268 8244 ; sub ah, ah ; 2a e4 8269 jmp short 05a 48h ; eb e98245 jmp short 05a01h ; eb e9 8270 8246 test bx, bx ; 85 db 8271 jbe short 05a a1h ; 76 3e8247 jbe short 05a5ah ; 76 3e 8272 8248 mov dx, strict word 00060h ; ba 60 00 8273 8249 in AL, DX ; ec … … 8275 8251 ; sub ah, ah ; 2a e4 8276 8252 cmp ax, 000fah ; 3d fa 00 8277 jne short 05a a1h ; 75 338253 jne short 05a5ah ; 75 33 8278 8254 mov bx, strict word 0ffffh ; bb ff ff 8279 8255 mov dx, strict word 00064h ; ba 64 00 … … 8282 8258 ; sub ah, ah ; 2a e4 8283 8259 test AL, strict byte 001h ; a8 01 8284 jne short 05a 88h ; 75 0d8260 jne short 05a41h ; 75 0d 8285 8261 dec bx ; 4b 8286 8262 test bx, bx ; 85 db 8287 jbe short 05a 88h ; 76 088263 jbe short 05a41h ; 76 08 8288 8264 mov dx, 00080h ; ba 80 00 8289 8265 in AL, DX ; ec 8290 8266 db 02ah, 0e4h 8291 8267 ; sub ah, ah ; 2a e4 8292 jmp short 05a 71h ; eb e98268 jmp short 05a2ah ; eb e9 8293 8269 test bx, bx ; 85 db 8294 jbe short 05a 98h ; 76 0c8270 jbe short 05a51h ; 76 0c 8295 8271 mov bl, ch ; 88 eb 8296 8272 mov dx, strict word 00060h ; ba 60 00 … … 8302 8278 dec byte [bp-004h] ; fe 4e fc 8303 8279 cmp byte [bp-004h], 000h ; 80 7e fc 00 8304 jnbe short 05a 6eh ; 77 cd8280 jnbe short 05a27h ; 77 cd 8305 8281 mov word [bp+00ch], cx ; 89 4e 0c 8306 jmp near 059 aah ; e9 03 ff8282 jmp near 05963h ; e9 03 ff 8307 8283 mov ax, strict word 00001h ; b8 01 00 8308 8284 push ax ; 50 … … 8311 8287 mov dx, ss ; 8c d2 8312 8288 lea ax, [bp-008h] ; 8d 46 f8 8313 call 057 c6h ; e8 0e fd8289 call 0577fh ; e8 0e fd 8314 8290 test ax, ax ; 85 c0 8315 jne short 05a cah ; 75 0e8291 jne short 05a83h ; 75 0e 8316 8292 mov ax, 0060fh ; b8 0f 06 8317 8293 push ax ; 50 8318 8294 mov ax, strict word 00007h ; b8 07 00 8319 8295 push ax ; 50 8320 call 01976h ; e8 afbe8296 call 01976h ; e8 f6 be 8321 8297 add sp, strict byte 00004h ; 83 c4 04 8322 8298 cmp byte [bp-008h], 000h ; 80 7e f8 00 8323 jne short 05a d3h ; 75 038324 jmp near 059 54h ; e9 81 fe8299 jne short 05a8ch ; 75 03 8300 jmp near 0590dh ; e9 81 fe 8325 8301 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 8326 jne short 05a dch ; 75 038327 jmp near 059 50h ; e9 74 fe8328 jmp short 05a d0h ; eb f28302 jne short 05a95h ; 75 03 8303 jmp near 05909h ; e9 74 fe 8304 jmp short 05a89h ; eb f2 8329 8305 or word [bp+01ch], 00200h ; 81 4e 1c 00 02 8330 8306 xor ax, ax ; 31 c0 … … 8334 8310 mov dx, ss ; 8c d2 8335 8311 lea ax, [bp-008h] ; 8d 46 f8 8336 call 057 c6h ; e8 d3 fc8312 call 0577fh ; e8 d3 fc 8337 8313 test ax, ax ; 85 c0 8338 jne short 05a fah ; 75 038339 jmp near 059 c9h ; e9 cf fe8314 jne short 05ab3h ; 75 03 8315 jmp near 05982h ; e9 cf fe 8340 8316 cmp byte [bp-008h], 000h ; 80 7e f8 00 8341 jne short 05 b03h ; 75 038342 jmp near 059 e5h ; e9 e2 fe8317 jne short 05abch ; 75 03 8318 jmp near 0599eh ; e9 e2 fe 8343 8319 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 8344 jne short 05 b0ch ; 75 038345 jmp near 059 e1h ; e9 d5 fe8346 jmp short 05 b00h ; eb f28320 jne short 05ac5h ; 75 03 8321 jmp near 0599ah ; e9 d5 fe 8322 jmp short 05ab9h ; eb f2 8347 8323 mov dx, strict word 00017h ; ba 17 00 8348 8324 mov ax, strict word 00040h ; b8 40 00 8349 call 01652h ; e8 3bbb8325 call 01652h ; e8 82 bb 8350 8326 mov dx, word [bp+012h] ; 8b 56 12 8351 8327 mov dl, al ; 88 c2 … … 8353 8329 mov dx, strict word 00018h ; ba 18 00 8354 8330 mov ax, strict word 00040h ; b8 40 00 8355 call 01652h ; e8 2abb8331 call 01652h ; e8 71 bb 8356 8332 mov bh, al ; 88 c7 8357 8333 and bh, 073h ; 80 e7 73 8358 8334 mov dx, 00096h ; ba 96 00 8359 8335 mov ax, strict word 00040h ; b8 40 00 8360 call 01652h ; e8 1cbb8336 call 01652h ; e8 63 bb 8361 8337 mov ah, al ; 88 c4 8362 8338 and ah, 00ch ; 80 e4 0c … … 8364 8340 mov dx, word [bp+012h] ; 8b 56 12 8365 8341 mov dh, ah ; 88 e6 8366 jmp near 05 a02h ; e9 bd fe8342 jmp near 059bbh ; e9 bd fe 8367 8343 mov ax, word [bp+012h] ; 8b 46 12 8368 8344 xor ah, ah ; 30 e4 8369 8345 or ah, 080h ; 80 cc 80 8370 jmp near 059 5ah ; e9 0a fe8371 set_geom_lba_: ; 0xf5b 50LB 0xeb8346 jmp near 05913h ; e9 0a fe 8347 set_geom_lba_: ; 0xf5b09 LB 0xeb 8372 8348 push bx ; 53 8373 8349 push cx ; 51 … … 8387 8363 mov dx, word [bp+00ch] ; 8b 56 0c 8388 8364 mov si, strict word 00020h ; be 20 00 8389 call 0a2 6ah ; e8 eb468365 call 0a20ah ; e8 d2 46 8390 8366 test ax, ax ; 85 c0 8391 jne short 05b 8fh ; 75 0c8367 jne short 05b48h ; 75 0c 8392 8368 test bx, bx ; 85 db 8393 jne short 05b 8fh ; 75 088369 jne short 05b48h ; 75 08 8394 8370 test cx, cx ; 85 c9 8395 jne short 05b 8fh ; 75 048371 jne short 05b48h ; 75 04 8396 8372 test dx, dx ; 85 d2 8397 je short 05b 96h ; 74 078373 je short 05b4fh ; 74 07 8398 8374 mov bx, strict word 0ffffh ; bb ff ff 8399 8375 mov si, bx ; 89 de 8400 jmp short 05b 9ch ; eb 068376 jmp short 05b55h ; eb 06 8401 8377 mov bx, word [bp+00ch] ; 8b 5e 0c 8402 8378 mov si, word [bp+00eh] ; 8b 76 0e 8403 8379 mov word [bp-004h], bx ; 89 5e fc 8404 8380 xor bx, bx ; 31 db 8405 jmp short 05b a8h ; eb 058381 jmp short 05b61h ; eb 05 8406 8382 cmp bx, strict byte 00004h ; 83 fb 04 8407 jnl short 05b cbh ; 7d 238383 jnl short 05b84h ; 7d 23 8408 8384 mov ax, word [bp-006h] ; 8b 46 fa 8409 8385 cmp si, ax ; 39 c6 8410 jc short 05b b9h ; 72 0a8411 jne short 05b c2h ; 75 118386 jc short 05b72h ; 72 0a 8387 jne short 05b7bh ; 75 11 8412 8388 mov ax, word [bp-004h] ; 8b 46 fc 8413 8389 cmp ax, word [bp-008h] ; 3b 46 f8 8414 jnbe short 05b c2h ; 77 098390 jnbe short 05b7bh ; 77 09 8415 8391 mov ax, word [bp-002h] ; 8b 46 fe 8416 8392 inc ax ; 40 … … 8420 8396 rcr word [bp-008h], 1 ; d1 5e f8 8421 8397 inc bx ; 43 8422 jmp short 05b a3h ; eb d88398 jmp short 05b5ch ; eb d8 8423 8399 mov ax, word [bp-002h] ; 8b 46 fe 8424 8400 xor dx, dx ; 31 d2 8425 8401 mov bx, strict word 0003fh ; bb 3f 00 8426 8402 xor cx, cx ; 31 c9 8427 call 0a 229h ; e8 51468403 call 0a1c9h ; e8 38 46 8428 8404 mov bx, ax ; 89 c3 8429 8405 mov cx, dx ; 89 d1 8430 8406 mov ax, word [bp-004h] ; 8b 46 fc 8431 8407 mov dx, si ; 89 f2 8432 call 0a1 f0h ; e8 0c 468408 call 0a190h ; e8 f3 45 8433 8409 mov word [es:di+002h], ax ; 26 89 45 02 8434 8410 cmp ax, 00400h ; 3d 00 04 8435 jbe short 05b f3h ; 76 068411 jbe short 05bach ; 76 06 8436 8412 mov word [es:di+002h], 00400h ; 26 c7 45 02 00 04 8437 8413 mov ax, word [bp-002h] ; 8b 46 fe … … 8445 8421 pop bx ; 5b 8446 8422 retn 00008h ; c2 08 00 8447 retn ; c3 8423 jl short 05c20h ; 7c 5c 8424 lea bx, [si-04bh] ; 8d 5c b5 8448 8425 pop sp ; 5c 8449 aam 05ch ; d4 5c 8450 cld ; fc 8451 pop sp ; 5c 8452 cld ; fc 8453 pop sp ; 5c 8454 cld ; fc 8455 pop sp ; 5c 8456 jmp far 02660h:0265eh ; ea 5e 26 60 26 8457 pushaw ; 60 8458 sbb bl, byte [byte bx+000h] ; 1a 5f 00 8459 pushaw ; 60 8460 db 026h, 060h 8461 ; es pushaw ; 26 60 8462 db 026h, 060h 8463 ; es pushaw ; 26 60 8464 add byte [byte bx+si+000h], ah ; 00 60 00 8465 pushaw ; 60 8466 db 026h, 060h 8467 ; es pushaw ; 26 60 8468 db 026h, 060h 8469 ; es pushaw ; 26 60 8470 sbb byte [byte bx+000h], 060h ; 80 5f 00 60 8471 db 026h, 060h 8472 ; es pushaw ; 26 60 8473 db 026h, 060h 8474 ; es pushaw ; 26 60 8475 add byte [bx+si-04fh], ah ; 00 60 b1 8426 mov CH, strict byte 05ch ; b5 5c 8427 mov CH, strict byte 05ch ; b5 5c 8428 mov word [0df5eh], ax ; a3 5e df 8476 8429 pop di ; 5f 8477 db 026h, 060h 8478 ; es pushaw ; 26 60 8479 db 026h, 060h 8480 ; es pushaw ; 26 60 8481 db 026h, 060h 8482 ; es pushaw ; 26 60 8483 _int13_harddisk: ; 0xf5c3b LB 0x446 8430 fistp word [bx-02dh] ; df 5f d3 8431 pop si ; 5e 8432 mov cx, 0df5fh ; b9 5f df 8433 pop di ; 5f 8434 fistp word [bx-047h] ; df 5f b9 8435 pop di ; 5f 8436 mov cx, 0df5fh ; b9 5f df 8437 pop di ; 5f 8438 fistp word [bx+039h] ; df 5f 39 8439 pop di ; 5f 8440 mov cx, 0df5fh ; b9 5f df 8441 pop di ; 5f 8442 fistp word [bx-047h] ; df 5f b9 8443 pop di ; 5f 8444 push strict byte 0005fh ; 6a 5f 8445 fistp word [bx-021h] ; df 5f df 8446 pop di ; 5f 8447 db 0dfh 8448 pop di ; 5f 8449 _int13_harddisk: ; 0xf5bf4 LB 0x446 8484 8450 push bp ; 55 8485 8451 mov bp, sp ; 89 e5 … … 8487 8453 mov dx, strict word 0000eh ; ba 0e 00 8488 8454 mov ax, strict word 00040h ; b8 40 00 8489 call 0166eh ; e8 24ba8455 call 0166eh ; e8 6b ba 8490 8456 mov si, 00122h ; be 22 01 8491 8457 mov word [bp-004h], ax ; 89 46 fc … … 8493 8459 mov dx, 0008eh ; ba 8e 00 8494 8460 mov ax, strict word 00040h ; b8 40 00 8495 call 01660h ; e8 05ba8461 call 01660h ; e8 4c ba 8496 8462 mov ax, word [bp+00eh] ; 8b 46 0e 8497 8463 xor ah, ah ; 30 e4 8498 8464 cmp ax, 00080h ; 3d 80 00 8499 jc short 05c 6ah ; 72 058465 jc short 05c23h ; 72 05 8500 8466 cmp ax, 00090h ; 3d 90 00 8501 jc short 05c 89h ; 72 1f8467 jc short 05c42h ; 72 1f 8502 8468 mov ax, word [bp+00eh] ; 8b 46 0e 8503 8469 xor ah, ah ; 30 e4 … … 8511 8477 mov ax, strict word 00004h ; b8 04 00 8512 8478 push ax ; 50 8513 call 01976h ; e8 f3 bc8479 call 01976h ; e8 3a bd 8514 8480 add sp, strict byte 0000ah ; 83 c4 0a 8515 jmp near 0 6041h ; e9 b8 038481 jmp near 05ffah ; e9 b8 03 8516 8482 mov ax, word [bp+00eh] ; 8b 46 0e 8517 8483 xor ah, ah ; 30 e4 … … 8522 8488 mov byte [bp-002h], dl ; 88 56 fe 8523 8489 cmp dl, 010h ; 80 fa 10 8524 jc short 05c b0h ; 72 0e8490 jc short 05c69h ; 72 0e 8525 8491 push ax ; 50 8526 8492 mov al, byte [bp+017h] ; 8a 46 17 … … 8529 8495 push ax ; 50 8530 8496 mov ax, 006b8h ; b8 b8 06 8531 jmp short 05c 7bh ; eb cb8497 jmp short 05c34h ; eb cb 8532 8498 mov al, byte [bp+017h] ; 8a 46 17 8533 8499 xor ah, ah ; 30 e4 8534 8500 cmp ax, strict word 00018h ; 3d 18 00 8535 jnbe short 05c f9h ; 77 3f8501 jnbe short 05cb2h ; 77 3f 8536 8502 mov bx, ax ; 89 c3 8537 8503 sal bx, 1 ; d1 e3 8538 jmp word [cs:bx+05 c09h] ; 2e ff a7 09 5c8504 jmp word [cs:bx+05bc2h] ; 2e ff a7 c2 5b 8539 8505 cmp byte [bp-002h], 008h ; 80 7e fe 08 8540 jnc short 05c d1h ; 73 088506 jnc short 05c8ah ; 73 08 8541 8507 mov al, byte [bp-002h] ; 8a 46 fe 8542 8508 xor ah, ah ; 30 e4 8543 call 01db8h ; e8 e7 c08544 jmp near 05 f03h ; e9 2f 028509 call 01db8h ; e8 2e c1 8510 jmp near 05ebch ; e9 2f 02 8545 8511 mov dx, strict word 00074h ; ba 74 00 8546 8512 mov ax, strict word 00040h ; b8 40 00 8547 call 01652h ; e8 75b98513 call 01652h ; e8 bc b9 8548 8514 mov cl, al ; 88 c1 8549 8515 mov dx, word [bp+016h] ; 8b 56 16 … … 8553 8519 mov dx, strict word 00074h ; ba 74 00 8554 8520 mov ax, strict word 00040h ; b8 40 00 8555 call 01660h ; e8 6eb98521 call 01660h ; e8 b5 b9 8556 8522 test cl, cl ; 84 c9 8557 je short 05d 58h ; 74 628558 jmp near 060 5ah ; e9 61 038559 jmp near 0 6026h ; e9 2a 038523 je short 05d11h ; 74 62 8524 jmp near 06013h ; e9 61 03 8525 jmp near 05fdfh ; e9 2a 03 8560 8526 mov ax, word [bp+016h] ; 8b 46 16 8561 8527 xor ah, ah ; 30 e4 … … 8576 8542 mov ax, word [bp-00eh] ; 8b 46 f2 8577 8543 cmp ax, 00080h ; 3d 80 00 8578 jnbe short 05 d32h ; 77 048544 jnbe short 05cebh ; 77 04 8579 8545 test ax, ax ; 85 c0 8580 jne short 05d 5bh ; 75 298546 jne short 05d14h ; 75 29 8581 8547 mov bx, 00da0h ; bb a0 0d 8582 8548 mov cx, ds ; 8c d9 8583 8549 mov ax, strict word 00004h ; b8 04 00 8584 call 01933h ; e8 f6 bb8550 call 01933h ; e8 3d bc 8585 8551 mov al, byte [bp+017h] ; 8a 46 17 8586 8552 xor ah, ah ; 30 e4 … … 8592 8558 mov ax, strict word 00004h ; b8 04 00 8593 8559 push ax ; 50 8594 call 01976h ; e8 24bc8560 call 01976h ; e8 6b bc 8595 8561 add sp, strict byte 00008h ; 83 c4 08 8596 jmp near 0 6041h ; e9 e9 028597 jmp near 05 f07h ; e9 ac 018562 jmp near 05ffah ; e9 e9 02 8563 jmp near 05ec0h ; e9 ac 01 8598 8564 mov al, byte [bp-002h] ; 8a 46 fe 8599 8565 xor ah, ah ; 30 e4 … … 8608 8574 mov word [bp-010h], dx ; 89 56 f0 8609 8575 cmp ax, word [bp-00ah] ; 3b 46 f6 8610 jbe short 05d 89h ; 76 098576 jbe short 05d42h ; 76 09 8611 8577 cmp cx, word [bp-00ch] ; 3b 4e f4 8612 jbe short 05d 89h ; 76 048578 jbe short 05d42h ; 76 04 8613 8579 cmp di, dx ; 39 d7 8614 jbe short 05d bah ; 76 318580 jbe short 05d73h ; 76 31 8615 8581 mov bx, 00da0h ; bb a0 0d 8616 8582 mov cx, ds ; 8c d9 8617 8583 mov ax, strict word 00004h ; b8 04 00 8618 call 01933h ; e8 9fbb8584 call 01933h ; e8 e6 bb 8619 8585 push di ; 57 8620 8586 push word [bp-00ch] ; ff 76 f4 … … 8631 8597 mov ax, strict word 00004h ; b8 04 00 8632 8598 push ax ; 50 8633 call 01976h ; e8 c2 bb8599 call 01976h ; e8 09 bc 8634 8600 add sp, strict byte 00010h ; 83 c4 10 8635 jmp near 0 6041h ; e9 87 028601 jmp near 05ffah ; e9 87 02 8636 8602 mov al, byte [bp+017h] ; 8a 46 17 8637 8603 xor ah, ah ; 30 e4 8638 8604 cmp ax, strict word 00004h ; 3d 04 00 8639 je short 05d e4h ; 74 208605 je short 05d9dh ; 74 20 8640 8606 mov al, byte [bp-002h] ; 8a 46 fe 8641 8607 mov dx, strict word 0001ch ; ba 1c 00 … … 8645 8611 add bx, ax ; 01 c3 8646 8612 cmp cx, word [es:bx+030h] ; 26 3b 4f 30 8647 jne short 05d edh ; 75 148613 jne short 05da6h ; 75 14 8648 8614 mov ax, word [es:bx+034h] ; 26 8b 47 34 8649 8615 cmp ax, word [bp-010h] ; 3b 46 f0 8650 je short 05d e7h ; 74 058651 jmp short 05d edh ; eb 098652 jmp near 05 f03h ; e9 1c 018616 je short 05da0h ; 74 05 8617 jmp short 05da6h ; eb 09 8618 jmp near 05ebch ; e9 1c 01 8653 8619 cmp byte [bp-002h], 008h ; 80 7e fe 08 8654 jc short 05 e1ch ; 72 2f8620 jc short 05dd5h ; 72 2f 8655 8621 mov ax, word [bp-00ah] ; 8b 46 f6 8656 8622 xor dx, dx ; 31 d2 8657 8623 mov bx, cx ; 89 cb 8658 8624 xor cx, cx ; 31 c9 8659 call 0a 229h ; e8 30448625 call 0a1c9h ; e8 17 44 8660 8626 xor bx, bx ; 31 db 8661 8627 add ax, word [bp-00ch] ; 03 46 f4 … … 8663 8629 mov bx, word [bp-010h] ; 8b 5e f0 8664 8630 xor cx, cx ; 31 c9 8665 call 0a 229h ; e8 21448631 call 0a1c9h ; e8 08 44 8666 8632 xor bx, bx ; 31 db 8667 8633 add ax, di ; 01 f8 … … 8720 8686 mov word [bp+016h], bx ; 89 5e 16 8721 8687 test dl, dl ; 84 d2 8722 je short 05 f03h ; 74 4a8688 je short 05ebch ; 74 4a 8723 8689 mov bx, 00da0h ; bb a0 0d 8724 8690 mov cx, ds ; 8c d9 8725 8691 mov ax, strict word 00004h ; b8 04 00 8726 call 01933h ; e8 6fba8692 call 01933h ; e8 b6 ba 8727 8693 mov al, dl ; 88 d0 8728 8694 xor ah, ah ; 30 e4 … … 8736 8702 mov ax, strict word 00004h ; b8 04 00 8737 8703 push ax ; 50 8738 call 01976h ; e8 9aba8704 call 01976h ; e8 e1 ba 8739 8705 add sp, strict byte 0000ah ; 83 c4 0a 8740 8706 mov ax, word [bp+016h] ; 8b 46 16 8741 8707 xor ah, ah ; 30 e4 8742 8708 or ah, 00ch ; 80 cc 0c 8743 jmp near 060 49h ; e9 5f 018709 jmp near 06002h ; e9 5f 01 8744 8710 mov bx, 00da0h ; bb a0 0d 8745 8711 mov cx, ds ; 8c d9 8746 8712 mov ax, strict word 00004h ; b8 04 00 8747 call 01933h ; e8 3eba8713 call 01933h ; e8 85 ba 8748 8714 mov ax, 0077ah ; b8 7a 07 8749 8715 push ax ; 50 8750 8716 mov ax, strict word 00004h ; b8 04 00 8751 8717 push ax ; 50 8752 call 01976h ; e8 76ba8718 call 01976h ; e8 bd ba 8753 8719 add sp, strict byte 00004h ; 83 c4 04 8754 8720 mov byte [bp+017h], 000h ; c6 46 17 00 … … 8756 8722 mov dx, strict word 00074h ; ba 74 00 8757 8723 mov ax, strict word 00040h ; b8 40 00 8758 call 01660h ; e8 4eb78724 call 01660h ; e8 95 b7 8759 8725 and byte [bp+01ch], 0feh ; 80 66 1c fe 8760 8726 mov sp, bp ; 89 ec … … 8799 8765 or ax, dx ; 09 d0 8800 8766 mov word [bp+012h], ax ; 89 46 12 8801 jmp short 05 f03h ; eb 838767 jmp short 05ebch ; eb 83 8802 8768 mov al, byte [bp-002h] ; 8a 46 fe 8803 8769 cwd ; 99 … … 8816 8782 and AL, strict byte 0c0h ; 24 c0 8817 8783 cmp AL, strict byte 040h ; 3c 40 8818 jne short 05f a6h ; 75 038819 jmp near 05 f03h ; e9 5d ff8784 jne short 05f5fh ; 75 03 8785 jmp near 05ebch ; e9 5d ff 8820 8786 mov ax, word [bp+016h] ; 8b 46 16 8821 8787 xor ah, ah ; 30 e4 8822 8788 or ah, 0aah ; 80 cc aa 8823 jmp near 060 49h ; e9 98 008789 jmp near 06002h ; e9 98 00 8824 8790 mov al, byte [bp-002h] ; 8a 46 fe 8825 8791 xor ah, ah ; 30 e4 … … 8837 8803 mov bx, word [bp-00ch] ; 8b 5e f4 8838 8804 xor cx, cx ; 31 c9 8839 call 0a 229h ; e8 4a428805 call 0a1c9h ; e8 31 42 8840 8806 mov bx, di ; 89 fb 8841 8807 xor cx, cx ; 31 c9 8842 call 0a 229h ; e8 43428808 call 0a1c9h ; e8 2a 42 8843 8809 mov word [bp-008h], ax ; 89 46 f8 8844 8810 mov word [bp-006h], dx ; 89 56 fa … … 8849 8815 or ah, 003h ; 80 cc 03 8850 8816 mov word [bp+016h], ax ; 89 46 16 8851 jmp near 05 f07h ; e9 07 ff8817 jmp near 05ec0h ; e9 07 ff 8852 8818 mov bx, 00da0h ; bb a0 0d 8853 8819 mov cx, ds ; 8c d9 8854 8820 mov ax, strict word 00004h ; b8 04 00 8855 call 01933h ; e8 28b98821 call 01933h ; e8 6f b9 8856 8822 mov al, byte [bp+017h] ; 8a 46 17 8857 8823 xor ah, ah ; 30 e4 … … 8863 8829 mov ax, strict word 00004h ; b8 04 00 8864 8830 push ax ; 50 8865 call 01976h ; e8 56b98831 call 01976h ; e8 9d b9 8866 8832 add sp, strict byte 00008h ; 83 c4 08 8867 jmp near 05 f03h ; e9 dd fe8833 jmp near 05ebch ; e9 dd fe 8868 8834 mov bx, 00da0h ; bb a0 0d 8869 8835 mov cx, ds ; 8c d9 8870 8836 mov ax, strict word 00004h ; b8 04 00 8871 call 01933h ; e8 02b98837 call 01933h ; e8 49 b9 8872 8838 mov al, byte [bp+017h] ; 8a 46 17 8873 8839 xor ah, ah ; 30 e4 … … 8876 8842 push ax ; 50 8877 8843 mov ax, 007c7h ; b8 c7 07 8878 jmp near 05d 4ah ; e9 09 fd8844 jmp near 05d03h ; e9 09 fd 8879 8845 mov ax, word [bp+016h] ; 8b 46 16 8880 8846 xor ah, ah ; 30 e4 … … 8885 8851 mov dx, strict word 00074h ; ba 74 00 8886 8852 mov ax, strict word 00040h ; b8 40 00 8887 call 01660h ; e8 06b68853 call 01660h ; e8 4d b6 8888 8854 or byte [bp+01ch], 001h ; 80 4e 1c 01 8889 jmp near 05f16h ; e9 b5 fe 8890 sbb sp, word [bx+di+04eh] ; 1b 61 4e 8855 jmp near 05ecfh ; e9 b5 fe 8856 aam 060h ; d4 60 8857 pop ES ; 07 8891 8858 popaw ; 61 8892 dec si ; 4e8859 pop ES ; 07 8893 8860 popaw ; 61 8894 dec si ; 4e8861 pop ES ; 07 8895 8862 popaw ; 61 8896 jo short 060d0h ; 70 65 8897 retn ; c3 8898 bound cx, [bp+061h] ; 62 4e 61 8899 leave ; c9 8900 bound si, [bx+si+065h] ; 62 70 65 8901 xor sp, word [bx+di+033h] ; 33 61 33 8863 sbb word [di+07ch], sp ; 19 65 7c 8864 bound ax, [bx] ; 62 07 8902 8865 popaw ; 61 8903 xor sp, word [bx+di+033h] ; 33 61 33 8904 popaw ; 61 8905 xchg word [di+033h], sp ; 87 65 33 8906 popaw ; 61 8907 db 033h 8908 popaw ; 61 8909 _int13_harddisk_ext: ; 0xf6081 LB 0x53b 8866 db 082h, 062h, 019h, 065h 8867 ; and byte [bp+si+019h], 065h ; 82 62 19 65 8868 in AL, DX ; ec 8869 pushaw ; 60 8870 in AL, DX ; ec 8871 pushaw ; 60 8872 in AL, DX ; ec 8873 pushaw ; 60 8874 in AL, DX ; ec 8875 pushaw ; 60 8876 xor byte [di-014h], ah ; 30 65 ec 8877 pushaw ; 60 8878 in AL, DX ; ec 8879 pushaw ; 60 8880 _int13_harddisk_ext: ; 0xf603a LB 0x52b 8910 8881 push bp ; 55 8911 8882 mov bp, sp ; 89 e5 … … 8913 8884 mov dx, strict word 0000eh ; ba 0e 00 8914 8885 mov ax, strict word 00040h ; b8 40 00 8915 call 0166eh ; e8 de b58886 call 0166eh ; e8 25 b6 8916 8887 mov word [bp-018h], ax ; 89 46 e8 8917 8888 mov dx, strict word 0000eh ; ba 0e 00 8918 8889 mov ax, strict word 00040h ; b8 40 00 8919 call 0166eh ; e8 d2 b58890 call 0166eh ; e8 19 b6 8920 8891 mov word [bp-008h], 00122h ; c7 46 f8 22 01 8921 8892 mov word [bp-006h], ax ; 89 46 fa … … 8923 8894 mov dx, 0008eh ; ba 8e 00 8924 8895 mov ax, strict word 00040h ; b8 40 00 8925 call 01660h ; e8 b1b58896 call 01660h ; e8 f8 b5 8926 8897 mov ax, word [bp+00eh] ; 8b 46 0e 8927 8898 xor ah, ah ; 30 e4 8928 8899 cmp ax, 00080h ; 3d 80 00 8929 jc short 060 beh ; 72 058900 jc short 06077h ; 72 05 8930 8901 cmp ax, 00090h ; 3d 90 00 8931 jc short 060 ddh ; 72 1f8902 jc short 06096h ; 72 1f 8932 8903 mov ax, word [bp+00eh] ; 8b 46 0e 8933 8904 xor ah, ah ; 30 e4 … … 8941 8912 mov ax, strict word 00004h ; b8 04 00 8942 8913 push ax ; 50 8943 call 01976h ; e8 9fb88914 call 01976h ; e8 e6 b8 8944 8915 add sp, strict byte 0000ah ; 83 c4 0a 8945 jmp near 065 9dh ; e9 c0 048916 jmp near 06546h ; e9 b0 04 8946 8917 mov ax, word [bp+00eh] ; 8b 46 0e 8947 8918 xor ah, ah ; 30 e4 … … 8951 8922 mov byte [bp-004h], dl ; 88 56 fc 8952 8923 cmp dl, 010h ; 80 fa 10 8953 jc short 06 102h ; 72 0e8924 jc short 060bbh ; 72 0e 8954 8925 push ax ; 50 8955 8926 mov al, byte [bp+017h] ; 8a 46 17 … … 8958 8929 push ax ; 50 8959 8930 mov ax, 006b8h ; b8 b8 06 8960 jmp short 060 cfh ; eb cd8931 jmp short 06088h ; eb cd 8961 8932 mov bl, byte [bp+017h] ; 8a 5e 17 8962 8933 xor bh, bh ; 30 ff 8963 8934 sub bx, strict byte 00041h ; 83 eb 41 8964 8935 cmp bx, strict byte 0000fh ; 83 fb 0f 8965 jnbe short 06 133h ; 77 248936 jnbe short 060ech ; 77 24 8966 8937 sal bx, 1 ; d1 e3 8967 8938 mov ax, word [bp+016h] ; 8b 46 16 8968 8939 xor ah, ah ; 30 e4 8969 jmp word [cs:bx+060 61h] ; 2e ff a7 61608940 jmp word [cs:bx+0601ah] ; 2e ff a7 1a 60 8970 8941 mov word [bp+010h], 0aa55h ; c7 46 10 55 aa 8971 8942 mov ax, word [bp+016h] ; 8b 46 16 … … 8974 8945 mov word [bp+016h], ax ; 89 46 16 8975 8946 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 8976 jmp near 065 74h ; e9 41 048947 jmp near 0651dh ; e9 31 04 8977 8948 mov bx, 00da0h ; bb a0 0d 8978 8949 mov cx, ds ; 8c d9 8979 8950 mov ax, strict word 00004h ; b8 04 00 8980 call 01933h ; e8 f5 b78951 call 01933h ; e8 3c b8 8981 8952 mov al, byte [bp+017h] ; 8a 46 17 8982 8953 xor ah, ah ; 30 e4 … … 8985 8956 push ax ; 50 8986 8957 mov ax, 007c7h ; b8 c7 07 8987 jmp near 061 ebh ; e9 9d 008958 jmp near 061a4h ; e9 9d 00 8988 8959 mov di, word [bp+00ah] ; 8b 7e 0a 8989 8960 mov es, [bp+004h] ; 8e 46 04 8990 mov word [bp-02 2h], di ; 89 7e de8961 mov word [bp-024h], di ; 89 7e dc 8991 8962 mov [bp-01eh], es ; 8c 46 e2 8992 8963 mov ax, word [es:di+002h] ; 26 8b 45 02 … … 9001 8972 xor bx, bx ; 31 db 9002 8973 mov si, strict word 00020h ; be 20 00 9003 call 0a 25ah ; e8 d9408974 call 0a1fah ; e8 c0 40 9004 8975 mov word [bp-00eh], ax ; 89 46 f2 9005 8976 mov word [bp-010h], bx ; 89 5e f0 9006 8977 mov si, dx ; 89 d6 9007 mov ax, word [es:di+008h] ; 26 8b 45 089008 mov dx, word [es:di+00ah] ; 26 8b 55 0a9009 or si, ax ; 09 c69010 or cx, dx ; 09 d18978 mov dx, word [es:di+008h] ; 26 8b 55 08 8979 mov ax, word [es:di+00ah] ; 26 8b 45 0a 8980 or si, dx ; 09 d6 8981 or cx, ax ; 09 c1 9011 8982 mov al, byte [bp-004h] ; 8a 46 fc 9012 8983 xor ah, ah ; 30 e4 … … 9018 8989 mov dx, word [bp-00eh] ; 8b 56 f2 9019 8990 cmp dx, word [es:bx+03ch] ; 26 3b 57 3c 9020 jnbe short 061 d3h ; 77 229021 jne short 061 f9h ; 75 468991 jnbe short 0618ch ; 77 22 8992 jne short 061b2h ; 75 46 9022 8993 mov dx, word [bp-010h] ; 8b 56 f0 9023 8994 cmp dx, word [es:bx+03ah] ; 26 3b 57 3a 9024 jnbe short 061 d3h ; 77 178995 jnbe short 0618ch ; 77 17 9025 8996 mov dx, word [bp-010h] ; 8b 56 f0 9026 8997 cmp dx, word [es:bx+03ah] ; 26 3b 57 3a 9027 jne short 061 f9h ; 75 348998 jne short 061b2h ; 75 34 9028 8999 cmp cx, word [es:bx+038h] ; 26 3b 4f 38 9029 jnbe short 061 d3h ; 77 089030 jne short 061 f9h ; 75 2c9000 jnbe short 0618ch ; 77 08 9001 jne short 061b2h ; 75 2c 9031 9002 cmp si, word [es:bx+036h] ; 26 3b 77 36 9032 jc short 061 f9h ; 72 269003 jc short 061b2h ; 72 26 9033 9004 mov bx, 00da0h ; bb a0 0d 9034 9005 mov cx, ds ; 8c d9 9035 9006 mov ax, strict word 00004h ; b8 04 00 9036 call 01933h ; e8 55b79007 call 01933h ; e8 9c b7 9037 9008 mov al, byte [bp+017h] ; 8a 46 17 9038 9009 xor ah, ah ; 30 e4 … … 9044 9015 mov ax, strict word 00004h ; b8 04 00 9045 9016 push ax ; 50 9046 call 01976h ; e8 83b79017 call 01976h ; e8 ca b7 9047 9018 add sp, strict byte 00008h ; 83 c4 08 9048 jmp near 065 9dh ; e9 a4 039019 jmp near 06546h ; e9 94 03 9049 9020 mov ah, byte [bp+017h] ; 8a 66 17 9050 9021 mov byte [bp-012h], ah ; 88 66 ee 9051 9022 mov byte [bp-011h], 000h ; c6 46 ef 00 9052 9023 cmp word [bp-012h], strict byte 00044h ; 83 7e ee 44 9053 je short 06 20fh ; 74 069024 je short 061c8h ; 74 06 9054 9025 cmp word [bp-012h], strict byte 00047h ; 83 7e ee 47 9055 jne short 06 212h ; 75 039056 jmp near 065 70h ; e9 5e 039026 jne short 061cbh ; 75 03 9027 jmp near 06519h ; e9 4e 03 9057 9028 les bx, [bp-008h] ; c4 5e f8 9058 9029 mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00 … … 9089 9060 mov word [bp-016h], ax ; 89 46 ea 9090 9061 mov es, [bp-01eh] ; 8e 46 e2 9091 mov bx, word [bp-02 2h] ; 8b 5e de9062 mov bx, word [bp-024h] ; 8b 5e dc 9092 9063 mov word [es:bx+002h], ax ; 26 89 47 02 9093 9064 test dl, dl ; 84 d2 9094 je short 062 e7h ; 74 549065 je short 062a0h ; 74 54 9095 9066 mov bx, 00da0h ; bb a0 0d 9096 9067 mov cx, ds ; 8c d9 9097 9068 mov ax, strict word 00004h ; b8 04 00 9098 call 01933h ; e8 95b69069 call 01933h ; e8 dc b6 9099 9070 mov al, dl ; 88 d0 9100 9071 xor ah, ah ; 30 e4 … … 9107 9078 mov ax, strict word 00004h ; b8 04 00 9108 9079 push ax ; 50 9109 call 01976h ; e8 c1 b69080 call 01976h ; e8 08 b7 9110 9081 add sp, strict byte 0000ah ; 83 c4 0a 9111 9082 mov ax, word [bp+016h] ; 8b 46 16 9112 9083 xor ah, ah ; 30 e4 9113 9084 or ah, 00ch ; 80 cc 0c 9114 jmp near 065 a5h ; e9 e2 029085 jmp near 0654eh ; e9 d2 02 9115 9086 or ah, 0b2h ; 80 cc b2 9116 jmp near 065 a5h ; e9 dc 029087 jmp near 0654eh ; e9 cc 02 9117 9088 mov bx, word [bp+00ah] ; 8b 5e 0a 9118 9089 mov ax, word [bp+004h] ; 8b 46 04 … … 9124 9095 mov word [bp-014h], ax ; 89 46 ec 9125 9096 cmp ax, strict word 0001ah ; 3d 1a 00 9126 jnc short 062 eah ; 73 069127 jmp near 065 9dh ; e9 b6 029128 jmp near 065 70h ; e9 86 029129 jnc short 062 efh ; 73 039130 jmp near 063 82h ; e9 93 009097 jnc short 062a3h ; 73 06 9098 jmp near 06546h ; e9 a6 02 9099 jmp near 06519h ; e9 76 02 9100 jnc short 062a8h ; 73 03 9101 jmp near 0633bh ; e9 93 00 9131 9102 mov al, byte [bp-004h] ; 8a 46 fc 9132 9103 xor ah, ah ; 30 e4 … … 9137 9108 mov ax, word [es:bx+032h] ; 26 8b 47 32 9138 9109 mov dx, word [es:bx+030h] ; 26 8b 57 30 9110 mov word [bp-026h], dx ; 89 56 da 9111 mov dx, word [es:bx+034h] ; 26 8b 57 34 9139 9112 mov word [bp-028h], dx ; 89 56 d8 9140 mov dx, word [es:bx+034h] ; 26 8b 57 349141 mov word [bp-026h], dx ; 89 56 da9142 9113 mov dx, word [es:bx+03ch] ; 26 8b 57 3c 9143 9114 mov word [bp-00eh], dx ; 89 56 f2 … … 9153 9124 mov word [es:bx+004h], ax ; 26 89 47 04 9154 9125 mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00 9155 mov ax, word [bp-02 8h] ; 8b 46 d89126 mov ax, word [bp-026h] ; 8b 46 da 9156 9127 mov word [es:bx+008h], ax ; 26 89 47 08 9157 9128 mov word [es:bx+00ah], strict word 00000h ; 26 c7 47 0a 00 00 9158 mov ax, word [bp-02 6h] ; 8b 46 da9129 mov ax, word [bp-028h] ; 8b 46 d8 9159 9130 mov word [es:bx+00ch], ax ; 26 89 47 0c 9160 9131 mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00 … … 9166 9137 mov dx, si ; 89 f2 9167 9138 mov si, strict word 00020h ; be 20 00 9168 call 0a2 6ah ; e8 f23e9139 call 0a20ah ; e8 d9 3e 9169 9140 mov bx, di ; 89 fb 9170 9141 mov word [es:bx+014h], dx ; 26 89 57 14 9171 9142 mov word [es:bx+016h], cx ; 26 89 4f 16 9172 9143 cmp word [bp-014h], strict byte 0001eh ; 83 7e ec 1e 9173 jc short 063 f9h ; 72 719144 jc short 063adh ; 72 6c 9174 9145 mov es, [bp-00ah] ; 8e 46 f6 9175 9146 mov word [es:di], strict word 0001eh ; 26 c7 05 1e 00 … … 9190 9161 add bx, ax ; 01 c3 9191 9162 mov ax, word [es:bx+00206h] ; 26 8b 87 06 02 9192 mov word [bp-02 4h], ax ; 89 46 dc9163 mov word [bp-022h], ax ; 89 46 de 9193 9164 mov ax, word [es:bx+00208h] ; 26 8b 87 08 02 9194 9165 mov word [bp-020h], ax ; 89 46 e0 … … 9200 9171 mov bx, word [bp-008h] ; 8b 5e f8 9201 9172 add bx, ax ; 01 c3 9202 mov ah, byte [es:bx+026h] ; 26 8a 67 269203 9173 mov al, byte [es:bx+027h] ; 26 8a 47 27 9204 9174 test al, al ; 84 c0 9205 jne short 063 e9h ; 75 049175 jne short 0639eh ; 75 04 9206 9176 xor si, si ; 31 f6 9207 jmp short 063 ech ; eb 039177 jmp short 063a1h ; eb 03 9208 9178 mov si, strict word 00008h ; be 08 00 9209 9179 or si, strict byte 00010h ; 83 ce 10 9210 cmp ah, 001h ; 80 fc 019211 jne short 063 fch ; 75 089180 cmp AL, strict byte 001h ; 3c 01 9181 jne short 063b0h ; 75 08 9212 9182 mov dx, strict word 00001h ; ba 01 00 9213 jmp short 063feh ; eb 05 9214 jmp near 0649fh ; e9 a3 00 9215 xor dx, dx ; 31 d2 9216 or si, dx ; 09 d6 9217 cmp AL, strict byte 001h ; 3c 01 9218 jne short 06409h ; 75 05 9219 mov dx, strict word 00001h ; ba 01 00 9220 jmp short 0640bh ; eb 02 9183 jmp short 063b2h ; eb 05 9184 jmp near 06448h ; e9 98 00 9221 9185 xor dx, dx ; 31 d2 9222 9186 or si, dx ; 09 d6 9223 9187 cmp AL, strict byte 003h ; 3c 03 9224 jne short 06 416h ; 75 059188 jne short 063bdh ; 75 05 9225 9189 mov ax, strict word 00003h ; b8 03 00 9226 jmp short 06 418h ; eb 029190 jmp short 063bfh ; eb 02 9227 9191 xor ax, ax ; 31 c0 9228 9192 or si, ax ; 09 c6 9229 mov ax, word [bp-02 4h] ; 8b 46 dc9193 mov ax, word [bp-022h] ; 8b 46 de 9230 9194 les bx, [bp-008h] ; c4 5e f8 9231 9195 mov word [es:bx+00234h], ax ; 26 89 87 34 02 … … 9238 9202 idiv bx ; f7 fb 9239 9203 or dl, 00eh ; 80 ca 0e 9204 mov ax, dx ; 89 d0 9240 9205 mov CL, strict byte 004h ; b1 04 9241 sal dx, CL ; d3 e29206 sal ax, CL ; d3 e0 9242 9207 mov bx, word [bp-008h] ; 8b 5e f8 9243 mov byte [es:bx+00238h], dl ; 26 88 97 38 029208 mov byte [es:bx+00238h], al ; 26 88 87 38 02 9244 9209 mov byte [es:bx+00239h], 0cbh ; 26 c6 87 39 02 cb 9245 9210 mov al, byte [bp-002h] ; 8a 46 fe … … 9252 9217 xor bl, bl ; 30 db 9253 9218 xor bh, bh ; 30 ff 9254 jmp short 064 7fh ; eb 059219 jmp short 06428h ; eb 05 9255 9220 cmp bh, 00fh ; 80 ff 0f 9256 jnc short 064 95h ; 73 169221 jnc short 0643eh ; 73 16 9257 9222 mov al, bh ; 88 f8 9258 9223 xor ah, ah ; 30 e4 … … 9260 9225 add dx, 00356h ; 81 c2 56 03 9261 9226 mov ax, word [bp-018h] ; 8b 46 e8 9262 call 01652h ; e8 c3 b19227 call 01652h ; e8 1a b2 9263 9228 add bl, al ; 00 c3 9264 9229 db 0feh, 0c7h 9265 9230 ; inc bh ; fe c7 9266 jmp short 064 7ah ; eb e59231 jmp short 06423h ; eb e5 9267 9232 neg bl ; f6 db 9268 9233 les si, [bp-008h] ; c4 76 f8 9269 9234 mov byte [es:si+00243h], bl ; 26 88 9c 43 02 9270 9235 cmp word [bp-014h], strict byte 00042h ; 83 7e ec 42 9271 jnc short 064 a8h ; 73 039272 jmp near 065 70h ; e9 c8 009236 jnc short 06451h ; 73 03 9237 jmp near 06519h ; e9 c8 00 9273 9238 mov al, byte [bp-004h] ; 8a 46 fc 9274 9239 xor ah, ah ; 30 e4 … … 9290 9255 mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00 9291 9256 test al, al ; 84 c0 9292 jne short 064 f2h ; 75 0c9257 jne short 0649bh ; 75 0c 9293 9258 mov word [es:di+024h], 05349h ; 26 c7 45 24 49 53 9294 9259 mov word [es:di+026h], 02041h ; 26 c7 45 26 41 20 … … 9299 9264 mov word [es:di+02eh], 02020h ; 26 c7 45 2e 20 20 9300 9265 test al, al ; 84 c0 9301 jne short 06 527h ; 75 169266 jne short 064d0h ; 75 16 9302 9267 mov word [es:di+030h], dx ; 26 89 55 30 9303 9268 mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00 … … 9314 9279 xor bl, bl ; 30 db 9315 9280 mov BH, strict byte 01eh ; b7 1e 9316 jmp short 06 552h ; eb 059281 jmp short 064fbh ; eb 05 9317 9282 cmp bh, 040h ; 80 ff 40 9318 jnc short 065 67h ; 73 159283 jnc short 06510h ; 73 15 9319 9284 mov al, bh ; 88 f8 9320 9285 xor ah, ah ; 30 e4 … … 9322 9287 add dx, ax ; 01 c2 9323 9288 mov ax, word [bp+004h] ; 8b 46 04 9324 call 01652h ; e8 f1 b09289 call 01652h ; e8 48 b1 9325 9290 add bl, al ; 00 c3 9326 9291 db 0feh, 0c7h 9327 9292 ; inc bh ; fe c7 9328 jmp short 06 54dh ; eb e69293 jmp short 064f6h ; eb e6 9329 9294 neg bl ; f6 db 9330 9295 mov es, [bp-00ah] ; 8e 46 f6 … … 9334 9299 mov dx, strict word 00074h ; ba 74 00 9335 9300 mov ax, strict word 00040h ; b8 40 00 9336 call 01660h ; e8 e1 b09301 call 01660h ; e8 38 b1 9337 9302 and byte [bp+01ch], 0feh ; 80 66 1c fe 9338 9303 mov sp, bp ; 89 ec … … 9340 9305 retn ; c3 9341 9306 cmp ax, strict word 00006h ; 3d 06 00 9342 je short 065 70h ; 74 e49307 je short 06519h ; 74 e4 9343 9308 cmp ax, strict word 00001h ; 3d 01 00 9344 jc short 065 9dh ; 72 0c9345 jbe short 065 70h ; 76 dd9309 jc short 06546h ; 72 0c 9310 jbe short 06519h ; 76 dd 9346 9311 cmp ax, strict word 00003h ; 3d 03 00 9347 jc short 065 9dh ; 72 059312 jc short 06546h ; 72 05 9348 9313 cmp ax, strict word 00004h ; 3d 04 00 9349 jbe short 065 70h ; 76 d39314 jbe short 06519h ; 76 d3 9350 9315 mov ax, word [bp+016h] ; 8b 46 16 9351 9316 xor ah, ah ; 30 e4 … … 9356 9321 mov dx, strict word 00074h ; ba 74 00 9357 9322 mov ax, strict word 00040h ; b8 40 00 9358 call 01660h ; e8 aa b09323 call 01660h ; e8 01 b1 9359 9324 or byte [bp+01ch], 001h ; 80 4e 1c 01 9360 jmp short 065 83h ; eb c79361 _int14_function: ; 0xf65 bcLB 0x1579325 jmp short 0652ch ; eb c7 9326 _int14_function: ; 0xf6565 LB 0x157 9362 9327 push bp ; 55 9363 9328 mov bp, sp ; 89 e5 … … 9367 9332 sal dx, 1 ; d1 e2 9368 9333 mov ax, strict word 00040h ; b8 40 00 9369 call 0166eh ; e8 a2b09334 call 0166eh ; e8 f9 b0 9370 9335 mov si, ax ; 89 c6 9371 9336 mov bx, ax ; 89 c3 … … 9373 9338 add dx, strict byte 0007ch ; 83 c2 7c 9374 9339 mov ax, strict word 00040h ; b8 40 00 9375 call 01652h ; e8 76b09340 call 01652h ; e8 cd b0 9376 9341 mov cl, al ; 88 c1 9377 9342 cmp word [bp+00eh], strict byte 00004h ; 83 7e 0e 04 9378 jnc short 065 e8h ; 73 049343 jnc short 06591h ; 73 04 9379 9344 test si, si ; 85 f6 9380 jnbe short 065 ebh ; 77 039381 jmp near 06 709h ; e9 1e 019345 jnbe short 06594h ; 77 03 9346 jmp near 066b2h ; e9 1e 01 9382 9347 mov al, byte [bp+013h] ; 8a 46 13 9383 9348 cmp AL, strict byte 001h ; 3c 01 9384 jc short 065 ffh ; 72 0d9385 jbe short 066 5ah ; 76 669349 jc short 065a8h ; 72 0d 9350 jbe short 06603h ; 76 66 9386 9351 cmp AL, strict byte 003h ; 3c 03 9387 je short 06 652h ; 74 5a9352 je short 065fbh ; 74 5a 9388 9353 cmp AL, strict byte 002h ; 3c 02 9389 je short 06 655h ; 74 599390 jmp near 06 703h ; e9 04 019354 je short 065feh ; 74 59 9355 jmp near 066ach ; e9 04 01 9391 9356 test al, al ; 84 c0 9392 jne short 066 57h ; 75 549357 jne short 06600h ; 75 54 9393 9358 lea dx, [bx+003h] ; 8d 57 03 9394 9359 in AL, DX ; ec … … 9424 9389 ; sub ah, ah ; 2a e4 9425 9390 mov byte [bp+012h], al ; 88 46 12 9426 jmp near 066 e4h ; e9 9f 009391 jmp near 0668dh ; e9 9f 00 9427 9392 mov AL, strict byte 017h ; b0 17 9428 9393 mov dx, bx ; 89 da … … 9431 9396 mov AL, strict byte 004h ; b0 04 9432 9397 out DX, AL ; ee 9433 jmp short 06 627h ; eb d59434 jmp near 066 f2h ; e9 9d 009435 jmp short 066 a8h ; eb 519436 jmp near 06 703h ; e9 a9 009398 jmp short 065d0h ; eb d5 9399 jmp near 0669bh ; e9 9d 00 9400 jmp short 06651h ; eb 51 9401 jmp near 066ach ; e9 a9 00 9437 9402 mov dx, strict word 0006ch ; ba 6c 00 9438 9403 mov ax, strict word 00040h ; b8 40 00 9439 call 0166eh ; e8 0bb09404 call 0166eh ; e8 62 b0 9440 9405 mov si, ax ; 89 c6 9441 9406 lea dx, [bx+005h] ; 8d 57 05 … … 9445 9410 and ax, strict word 00060h ; 25 60 00 9446 9411 cmp ax, strict word 00060h ; 3d 60 00 9447 je short 066 8ah ; 74 179412 je short 06633h ; 74 17 9448 9413 test cl, cl ; 84 c9 9449 je short 066 8ah ; 74 139414 je short 06633h ; 74 13 9450 9415 mov dx, strict word 0006ch ; ba 6c 00 9451 9416 mov ax, strict word 00040h ; b8 40 00 9452 call 0166eh ; e8 ee af9417 call 0166eh ; e8 45 b0 9453 9418 cmp ax, si ; 39 f0 9454 je short 066 65h ; 74 e19419 je short 0660eh ; 74 e1 9455 9420 mov si, ax ; 89 c6 9456 9421 db 0feh, 0c9h 9457 9422 ; dec cl ; fe c9 9458 jmp short 066 65h ; eb db9423 jmp short 0660eh ; eb db 9459 9424 test cl, cl ; 84 c9 9460 je short 066 94h ; 74 069425 je short 0663dh ; 74 06 9461 9426 mov al, byte [bp+012h] ; 8a 46 12 9462 9427 mov dx, bx ; 89 da … … 9468 9433 mov byte [bp+013h], al ; 88 46 13 9469 9434 test cl, cl ; 84 c9 9470 jne short 066 e4h ; 75 439435 jne short 0668dh ; 75 43 9471 9436 or AL, strict byte 080h ; 0c 80 9472 9437 mov byte [bp+013h], al ; 88 46 13 9473 jmp short 066 e4h ; eb 3c9438 jmp short 0668dh ; eb 3c 9474 9439 mov dx, strict word 0006ch ; ba 6c 00 9475 9440 mov ax, strict word 00040h ; b8 40 00 9476 call 0166eh ; e8 bd af9441 call 0166eh ; e8 14 b0 9477 9442 mov si, ax ; 89 c6 9478 9443 lea dx, [bx+005h] ; 8d 57 05 … … 9481 9446 ; sub ah, ah ; 2a e4 9482 9447 test AL, strict byte 001h ; a8 01 9483 jne short 066 d4h ; 75 179448 jne short 0667dh ; 75 17 9484 9449 test cl, cl ; 84 c9 9485 je short 066 d4h ; 74 139450 je short 0667dh ; 74 13 9486 9451 mov dx, strict word 0006ch ; ba 6c 00 9487 9452 mov ax, strict word 00040h ; b8 40 00 9488 call 0166eh ; e8 a4af9453 call 0166eh ; e8 fb af 9489 9454 cmp ax, si ; 39 f0 9490 je short 066 b3h ; 74 e59455 je short 0665ch ; 74 e5 9491 9456 mov si, ax ; 89 c6 9492 9457 db 0feh, 0c9h 9493 9458 ; dec cl ; fe c9 9494 jmp short 066 b3h ; eb df9459 jmp short 0665ch ; eb df 9495 9460 test cl, cl ; 84 c9 9496 je short 066 eah ; 74 129461 je short 06693h ; 74 12 9497 9462 mov byte [bp+013h], 000h ; c6 46 13 00 9498 9463 mov dx, bx ; 89 da … … 9502 9467 mov byte [bp+012h], al ; 88 46 12 9503 9468 and byte [bp+01ch], 0feh ; 80 66 1c fe 9504 jmp short 06 70dh ; eb 239469 jmp short 066b6h ; eb 23 9505 9470 lea dx, [bx+005h] ; 8d 57 05 9506 9471 in AL, DX ; ec 9507 9472 db 02ah, 0e4h 9508 9473 ; sub ah, ah ; 2a e4 9509 jmp short 066 a3h ; eb b19474 jmp short 0664ch ; eb b1 9510 9475 lea dx, [si+005h] ; 8d 54 05 9511 9476 in AL, DX ; ec … … 9517 9482 db 02ah, 0e4h 9518 9483 ; sub ah, ah ; 2a e4 9519 jmp short 066 e1h ; eb de9484 jmp short 0668ah ; eb de 9520 9485 or byte [bp+01ch], 001h ; 80 4e 1c 01 9521 jmp short 06 70dh ; eb 049486 jmp short 066b6h ; eb 04 9522 9487 or byte [bp+01ch], 001h ; 80 4e 1c 01 9523 9488 lea sp, [bp-002h] ; 8d 66 fe … … 9525 9490 pop bp ; 5d 9526 9491 retn ; c3 9527 set_enable_a20_: ; 0xf6 713LB 0x309492 set_enable_a20_: ; 0xf66bc LB 0x30 9528 9493 push bp ; 55 9529 9494 mov bp, sp ; 89 e5 … … 9538 9503 mov cl, al ; 88 c1 9539 9504 test bx, bx ; 85 db 9540 je short 06 72ch ; 74 059505 je short 066d5h ; 74 05 9541 9506 or AL, strict byte 002h ; 0c 02 9542 9507 out DX, AL ; ee 9543 jmp short 06 72fh ; eb 039508 jmp short 066d8h ; eb 03 9544 9509 and AL, strict byte 0fdh ; 24 fd 9545 9510 out DX, AL ; ee 9546 9511 test cl, 002h ; f6 c1 02 9547 je short 06 739h ; 74 059512 je short 066e2h ; 74 05 9548 9513 mov ax, strict word 00001h ; b8 01 00 9549 jmp short 06 73bh ; eb 029514 jmp short 066e4h ; eb 02 9550 9515 xor ax, ax ; 31 c0 9551 9516 lea sp, [bp-006h] ; 8d 66 fa … … 9555 9520 pop bp ; 5d 9556 9521 retn ; c3 9557 set_e820_range_: ; 0xf6 743LB 0x8b9522 set_e820_range_: ; 0xf66ec LB 0x8b 9558 9523 push si ; 56 9559 9524 push bp ; 55 … … 9585 9550 retn 0000ah ; c2 0a 00 9586 9551 db 0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 087h, 083h, 052h, 04fh, 041h, 024h 9587 db 000h, 0 6eh, 06ch, 00ah, 068h, 01eh, 068h, 0b6h, 068h, 0bch, 068h, 0c1h, 068h, 0c6h, 068h, 06eh9588 db 069h, 0 0ah, 06bh, 029h, 06bh, 0afh, 068h, 0afh, 068h, 0f3h, 06bh, 01eh, 06ch, 031h, 06ch, 040h9589 db 06 ch, 0b6h, 068h, 049h, 06ch9590 _int15_function: ; 0xf67 ceLB 0x4d69552 db 000h, 017h, 06ch, 0b3h, 067h, 0c7h, 067h, 05fh, 068h, 065h, 068h, 06ah, 068h, 06fh, 068h, 017h 9553 db 069h, 0b3h, 06ah, 0d2h, 06ah, 058h, 068h, 058h, 068h, 09ch, 06bh, 0c7h, 06bh, 0dah, 06bh, 0e9h 9554 db 06bh, 05fh, 068h, 0f2h, 06bh 9555 _int15_function: ; 0xf6777 LB 0x4d6 9591 9556 push bp ; 55 9592 9557 mov bp, sp ; 89 e5 … … 9597 9562 mov dx, ax ; 89 c2 9598 9563 cmp ax, 000ech ; 3d ec 00 9599 jnbe short 06 814h ; 77 359564 jnbe short 067bdh ; 77 35 9600 9565 push CS ; 0e 9601 9566 pop ES ; 07 9602 9567 mov cx, strict word 00012h ; b9 12 00 9603 mov di, 067 99h ; bf 99679568 mov di, 06742h ; bf 42 67 9604 9569 repne scasb ; f2 ae 9605 9570 sal cx, 1 ; d1 e1 9606 9571 mov di, cx ; 89 cf 9607 mov si, word [cs:di+067 aah] ; 2e 8b b5 aa679572 mov si, word [cs:di+06753h] ; 2e 8b b5 53 67 9608 9573 mov ax, word [bp+012h] ; 8b 46 12 9609 9574 xor ah, ah ; 30 e4 … … 9618 9583 xor ah, ah ; 30 e4 9619 9584 cmp ax, 000c0h ; 3d c0 00 9620 je short 06 817h ; 74 039621 jmp near 06c 6eh ; e9 57 049585 je short 067c0h ; 74 03 9586 jmp near 06c17h ; e9 57 04 9622 9587 or byte [bp+018h], 001h ; 80 4e 18 01 9623 jmp near 06 c15h ; e9 f7 039588 jmp near 06bbeh ; e9 f7 03 9624 9589 mov dx, ax ; 89 c2 9625 9590 cmp ax, strict word 00001h ; 3d 01 00 9626 jc short 06 833h ; 72 0e9627 jbe short 06 847h ; 76 209591 jc short 067dch ; 72 0e 9592 jbe short 067f0h ; 76 20 9628 9593 cmp ax, strict word 00003h ; 3d 03 00 9629 je short 068 74h ; 74 489594 je short 0681dh ; 74 48 9630 9595 cmp ax, strict word 00002h ; 3d 02 00 9631 je short 068 57h ; 74 269632 jmp short 068 81h ; eb 4e9596 je short 06800h ; 74 26 9597 jmp short 0682ah ; eb 4e 9633 9598 test ax, ax ; 85 c0 9634 jne short 068 81h ; 75 4a9599 jne short 0682ah ; 75 4a 9635 9600 xor ax, ax ; 31 c0 9636 call 06 713h ; e8 d7 fe9601 call 066bch ; e8 d7 fe 9637 9602 and byte [bp+018h], 0feh ; 80 66 18 fe 9638 9603 mov byte [bp+013h], 000h ; c6 46 13 00 9639 jmp near 068 afh ; e9 68 009604 jmp near 06858h ; e9 68 00 9640 9605 mov ax, strict word 00001h ; b8 01 00 9641 call 06 713h ; e8 c6 fe9606 call 066bch ; e8 c6 fe 9642 9607 and byte [bp+018h], 0feh ; 80 66 18 fe 9643 9608 mov byte [bp+013h], dh ; 88 76 13 9644 jmp near 068 afh ; e9 58 009609 jmp near 06858h ; e9 58 00 9645 9610 mov dx, 00092h ; ba 92 00 9646 9611 in AL, DX ; ec … … 9654 9619 and byte [bp+018h], 0feh ; 80 66 18 fe 9655 9620 mov byte [bp+013h], ah ; 88 66 13 9656 jmp near 068 afh ; e9 3b 009621 jmp near 06858h ; e9 3b 00 9657 9622 and byte [bp+018h], 0feh ; 80 66 18 fe 9658 9623 mov byte [bp+013h], ah ; 88 66 13 9659 9624 mov word [bp+00ch], ax ; 89 46 0c 9660 jmp near 068 afh ; e9 2e 009625 jmp near 06858h ; e9 2e 00 9661 9626 mov bx, 00da0h ; bb a0 0d 9662 9627 mov cx, ds ; 8c d9 9663 9628 mov ax, strict word 00004h ; b8 04 00 9664 call 01933h ; e8 a7b09629 call 01933h ; e8 fe b0 9665 9630 mov ax, word [bp+012h] ; 8b 46 12 9666 9631 xor ah, ah ; 30 e4 … … 9670 9635 mov ax, strict word 00004h ; b8 04 00 9671 9636 push ax ; 50 9672 call 01976h ; e8 d9 b09637 call 01976h ; e8 30 b1 9673 9638 add sp, strict byte 00006h ; 83 c4 06 9674 9639 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9683 9648 retn ; c3 9684 9649 mov word [bp+018h], bx ; 89 5e 18 9685 jmp near 069 68h ; e9 ac 009650 jmp near 06911h ; e9 ac 00 9686 9651 mov word [bp+018h], bx ; 89 5e 18 9687 jmp short 068 afh ; eb ee9652 jmp short 06858h ; eb ee 9688 9653 mov word [bp+018h], cx ; 89 4e 18 9689 jmp short 068 ach ; eb e69654 jmp short 06855h ; eb e6 9690 9655 test byte [bp+012h], 0ffh ; f6 46 12 ff 9691 jne short 06 93bh ; 75 6f9656 jne short 068e4h ; 75 6f 9692 9657 mov dx, 000a0h ; ba a0 00 9693 9658 mov ax, strict word 00040h ; b8 40 00 9694 call 01652h ; e8 7dad9659 call 01652h ; e8 d4 ad 9695 9660 test AL, strict byte 001h ; a8 01 9696 jne short 06 938h ; 75 5f9661 jne short 068e1h ; 75 5f 9697 9662 mov bx, strict word 00001h ; bb 01 00 9698 9663 mov dx, 000a0h ; ba a0 00 9699 9664 mov ax, strict word 00040h ; b8 40 00 9700 call 01660h ; e8 7bad9665 call 01660h ; e8 d2 ad 9701 9666 mov bx, word [bp+014h] ; 8b 5e 14 9702 9667 mov dx, 00098h ; ba 98 00 9703 9668 mov ax, strict word 00040h ; b8 40 00 9704 call 0167ch ; e8 8bad9669 call 0167ch ; e8 e2 ad 9705 9670 mov bx, word [bp+00ch] ; 8b 5e 0c 9706 9671 mov dx, 0009ah ; ba 9a 00 9707 9672 mov ax, strict word 00040h ; b8 40 00 9708 call 0167ch ; e8 7fad9673 call 0167ch ; e8 d6 ad 9709 9674 mov bx, word [bp+00eh] ; 8b 5e 0e 9710 9675 mov dx, 0009ch ; ba 9c 00 9711 9676 mov ax, strict word 00040h ; b8 40 00 9712 call 0167ch ; e8 73ad9677 call 0167ch ; e8 ca ad 9713 9678 mov bx, word [bp+010h] ; 8b 5e 10 9714 9679 mov dx, 0009eh ; ba 9e 00 9715 9680 mov ax, strict word 00040h ; b8 40 00 9716 call 0167ch ; e8 67ad9681 call 0167ch ; e8 be ad 9717 9682 and byte [bp+018h], 0feh ; 80 66 18 fe 9718 9683 mov dx, 000a1h ; ba a1 00 … … 9723 9688 out DX, AL ; ee 9724 9689 mov ax, strict word 0000bh ; b8 0b 00 9725 call 016aeh ; e8 86ad9690 call 016aeh ; e8 dd ad 9726 9691 mov dl, al ; 88 c2 9727 9692 or dl, 040h ; 80 ca 40 9728 9693 xor dh, dh ; 30 f6 9729 9694 mov ax, strict word 0000bh ; b8 0b 00 9730 call 016c9h ; e8 94ad9731 jmp near 068 afh ; e9 77 ff9732 jmp near 06 c0ch ; e9 d1 029695 call 016c9h ; e8 eb ad 9696 jmp near 06858h ; e9 77 ff 9697 jmp near 06bb5h ; e9 d1 02 9733 9698 cmp ax, strict word 00001h ; 3d 01 00 9734 jne short 069 5ch ; 75 1c9699 jne short 06905h ; 75 1c 9735 9700 xor bx, bx ; 31 db 9736 9701 mov dx, 000a0h ; ba a0 00 9737 9702 mov ax, strict word 00040h ; b8 40 00 9738 call 01660h ; e8 15ad9703 call 01660h ; e8 6c ad 9739 9704 and byte [bp+018h], 0feh ; 80 66 18 fe 9740 9705 mov ax, strict word 0000bh ; b8 0b 00 9741 call 016aeh ; e8 59ad9706 call 016aeh ; e8 b0 ad 9742 9707 mov dl, al ; 88 c2 9743 9708 and dl, 0bfh ; 80 e2 bf 9744 jmp short 06 92dh ; eb d19709 jmp short 068d6h ; eb d1 9745 9710 mov word [bp+018h], bx ; 89 5e 18 9746 9711 mov ax, dx ; 89 d0 … … 9750 9715 or dx, ax ; 09 c2 9751 9716 mov word [bp+012h], dx ; 89 56 12 9752 jmp near 068 afh ; e9 41 ff9717 jmp near 06858h ; e9 41 ff 9753 9718 cli ; fa 9754 9719 mov ax, strict word 00001h ; b8 01 00 9755 call 06 713h ; e8 9e fd9720 call 066bch ; e8 9e fd 9756 9721 mov di, ax ; 89 c7 9757 9722 mov CL, strict byte 004h ; b1 04 … … 9765 9730 mov cl, al ; 88 c1 9766 9731 cmp si, dx ; 39 d6 9767 jnc short 069 92h ; 73 029732 jnc short 0693bh ; 73 02 9768 9733 db 0feh, 0c1h 9769 9734 ; inc cl ; fe c1 … … 9772 9737 mov ax, word [bp+014h] ; 8b 46 14 9773 9738 mov bx, strict word 0002fh ; bb 2f 00 9774 call 0167ch ; e8 db ac9739 call 0167ch ; e8 32 ad 9775 9740 mov dx, word [bp+006h] ; 8b 56 06 9776 9741 add dx, strict byte 0000ah ; 83 c2 0a 9777 9742 mov ax, word [bp+014h] ; 8b 46 14 9778 9743 mov bx, si ; 89 f3 9779 call 0167ch ; e8 cd ac9744 call 0167ch ; e8 24 ad 9780 9745 mov bl, cl ; 88 cb 9781 9746 xor bh, bh ; 30 ff … … 9783 9748 add dx, strict byte 0000ch ; 83 c2 0c 9784 9749 mov ax, word [bp+014h] ; 8b 46 14 9785 call 01660h ; e8 a1ac9750 call 01660h ; e8 f8 ac 9786 9751 mov dx, word [bp+006h] ; 8b 56 06 9787 9752 add dx, strict byte 0000dh ; 83 c2 0d 9788 9753 mov ax, word [bp+014h] ; 8b 46 14 9789 9754 mov bx, 00093h ; bb 93 00 9790 call 01660h ; e8 92ac9755 call 01660h ; e8 e9 ac 9791 9756 mov dx, word [bp+006h] ; 8b 56 06 9792 9757 add dx, strict byte 0000eh ; 83 c2 0e 9793 9758 mov ax, word [bp+014h] ; 8b 46 14 9794 9759 xor bx, bx ; 31 db 9795 call 0167ch ; e8 a0ac9760 call 0167ch ; e8 f7 ac 9796 9761 mov dx, word [bp+006h] ; 8b 56 06 9797 9762 add dx, strict byte 00020h ; 83 c2 20 9798 9763 mov ax, word [bp+014h] ; 8b 46 14 9799 9764 mov bx, strict word 0ffffh ; bb ff ff 9800 call 0167ch ; e8 91ac9765 call 0167ch ; e8 e8 ac 9801 9766 mov dx, word [bp+006h] ; 8b 56 06 9802 9767 add dx, strict byte 00022h ; 83 c2 22 9803 9768 mov ax, word [bp+014h] ; 8b 46 14 9804 9769 xor bx, bx ; 31 db 9805 call 0167ch ; e8 83ac9770 call 0167ch ; e8 da ac 9806 9771 mov dx, word [bp+006h] ; 8b 56 06 9807 9772 add dx, strict byte 00024h ; 83 c2 24 9808 9773 mov ax, word [bp+014h] ; 8b 46 14 9809 9774 mov bx, strict word 0000fh ; bb 0f 00 9810 call 01660h ; e8 58ac9775 call 01660h ; e8 af ac 9811 9776 mov dx, word [bp+006h] ; 8b 56 06 9812 9777 add dx, strict byte 00025h ; 83 c2 25 9813 9778 mov ax, word [bp+014h] ; 8b 46 14 9814 9779 mov bx, 0009bh ; bb 9b 00 9815 call 01660h ; e8 49ac9780 call 01660h ; e8 a0 ac 9816 9781 mov dx, word [bp+006h] ; 8b 56 06 9817 9782 add dx, strict byte 00026h ; 83 c2 26 9818 9783 mov ax, word [bp+014h] ; 8b 46 14 9819 9784 xor bx, bx ; 31 db 9820 call 0167ch ; e8 57ac9785 call 0167ch ; e8 ae ac 9821 9786 mov ax, ss ; 8c d0 9822 9787 mov CL, strict byte 004h ; b1 04 … … 9830 9795 mov ax, word [bp+014h] ; 8b 46 14 9831 9796 mov bx, strict word 0ffffh ; bb ff ff 9832 call 0167ch ; e8 3aac9797 call 0167ch ; e8 91 ac 9833 9798 mov dx, word [bp+006h] ; 8b 56 06 9834 9799 add dx, strict byte 0002ah ; 83 c2 2a 9835 9800 mov ax, word [bp+014h] ; 8b 46 14 9836 9801 mov bx, si ; 89 f3 9837 call 0167ch ; e8 2cac9802 call 0167ch ; e8 83 ac 9838 9803 mov bl, cl ; 88 cb 9839 9804 xor bh, bh ; 30 ff … … 9841 9806 add dx, strict byte 0002ch ; 83 c2 2c 9842 9807 mov ax, word [bp+014h] ; 8b 46 14 9843 call 01660h ; e8 00ac9808 call 01660h ; e8 57 ac 9844 9809 mov dx, word [bp+006h] ; 8b 56 06 9845 9810 add dx, strict byte 0002dh ; 83 c2 2d 9846 9811 mov ax, word [bp+014h] ; 8b 46 14 9847 9812 mov bx, 00093h ; bb 93 00 9848 call 01660h ; e8 f1 ab9813 call 01660h ; e8 48 ac 9849 9814 mov dx, word [bp+006h] ; 8b 56 06 9850 9815 add dx, strict byte 0002eh ; 83 c2 2e 9851 9816 mov ax, word [bp+014h] ; 8b 46 14 9852 9817 xor bx, bx ; 31 db 9853 call 0167ch ; e8 ff ab9818 call 0167ch ; e8 56 ac 9854 9819 mov si, word [bp+006h] ; 8b 76 06 9855 9820 mov es, [bp+014h] ; 8e 46 14 … … 9862 9827 mov word [00467h], sp ; 89 26 67 04 9863 9828 mov [00469h], ss ; 8c 16 69 04 9864 call 06a 99h ; e8 00 009829 call 06a42h ; e8 00 00 9865 9830 pop di ; 5f 9866 9831 add di, strict byte 0001bh ; 83 c7 1b … … 9868 9833 push di ; 57 9869 9834 lgdt [es:si+008h] ; 26 0f 01 54 08 9870 lidt [cs:0efe 1h] ; 2e 0f 01 1e e1ef9835 lidt [cs:0efefh] ; 2e 0f 01 1e ef ef 9871 9836 mov eax, cr0 ; 0f 20 c0 9872 9837 or AL, strict byte 001h ; 0c 01 … … 9885 9850 cld ; fc 9886 9851 rep movsw ; f3 a5 9887 call 06a cdh ; e8 00 009852 call 06a76h ; e8 00 00 9888 9853 pop ax ; 58 9889 9854 push 0f000h ; 68 00 f0 … … 9897 9862 mov cr0, eax ; 0f 22 c0 9898 9863 retf ; cb 9899 lidt [cs:0ef e7h] ; 2e 0f 01 1e e7ef9864 lidt [cs:0eff5h] ; 2e 0f 01 1e f5 ef 9900 9865 db 033h, 0c0h 9901 9866 ; xor ax, ax ; 33 c0 … … 9906 9871 pop DS ; 1f 9907 9872 mov ax, di ; 89 f8 9908 call 06 713h ; e8 15 fc9873 call 066bch ; e8 15 fc 9909 9874 sti ; fb 9910 9875 mov byte [bp+013h], 000h ; c6 46 13 00 9911 9876 and byte [bp+018h], 0feh ; 80 66 18 fe 9912 jmp near 068 afh ; e9 a5 fd9877 jmp near 06858h ; e9 a5 fd 9913 9878 mov ax, strict word 00031h ; b8 31 00 9914 call 016aeh ; e8 9eab9879 call 016aeh ; e8 f5 ab 9915 9880 mov dh, al ; 88 c6 9916 9881 mov ax, strict word 00030h ; b8 30 00 9917 call 016aeh ; e8 96ab9882 call 016aeh ; e8 ed ab 9918 9883 mov dl, al ; 88 c2 9919 9884 mov word [bp+012h], dx ; 89 56 12 9920 9885 cmp dx, strict byte 0ffc0h ; 83 fa c0 9921 jbe short 06 b03h ; 76 e19886 jbe short 06aach ; 76 e1 9922 9887 mov word [bp+012h], strict word 0ffc0h ; c7 46 12 c0 ff 9923 jmp short 06 b03h ; eb da9888 jmp short 06aach ; eb da 9924 9889 cli ; fa 9925 9890 mov ax, strict word 00001h ; b8 01 00 9926 call 06 713h ; e8 e3 fb9891 call 066bch ; e8 e3 fb 9927 9892 mov dx, word [bp+006h] ; 8b 56 06 9928 9893 add dx, strict byte 00038h ; 83 c2 38 9929 9894 mov ax, word [bp+014h] ; 8b 46 14 9930 9895 mov bx, strict word 0ffffh ; bb ff ff 9931 call 0167ch ; e8 3dab9896 call 0167ch ; e8 94 ab 9932 9897 mov dx, word [bp+006h] ; 8b 56 06 9933 9898 add dx, strict byte 0003ah ; 83 c2 3a 9934 9899 mov ax, word [bp+014h] ; 8b 46 14 9935 9900 xor bx, bx ; 31 db 9936 call 0167ch ; e8 2fab9901 call 0167ch ; e8 86 ab 9937 9902 mov dx, word [bp+006h] ; 8b 56 06 9938 9903 add dx, strict byte 0003ch ; 83 c2 3c 9939 9904 mov ax, word [bp+014h] ; 8b 46 14 9940 9905 mov bx, strict word 0000fh ; bb 0f 00 9941 call 01660h ; e8 04ab9906 call 01660h ; e8 5b ab 9942 9907 mov dx, word [bp+006h] ; 8b 56 06 9943 9908 add dx, strict byte 0003dh ; 83 c2 3d 9944 9909 mov ax, word [bp+014h] ; 8b 46 14 9945 9910 mov bx, 0009bh ; bb 9b 00 9946 call 01660h ; e8 f5 aa9911 call 01660h ; e8 4c ab 9947 9912 mov dx, word [bp+006h] ; 8b 56 06 9948 9913 add dx, strict byte 0003eh ; 83 c2 3e 9949 9914 mov ax, word [bp+014h] ; 8b 46 14 9950 9915 xor bx, bx ; 31 db 9951 call 0167ch ; e8 03ab9916 call 0167ch ; e8 5a ab 9952 9917 mov AL, strict byte 011h ; b0 11 9953 9918 mov dx, strict word 00020h ; ba 20 00 … … 9978 9943 out DX, AL ; ee 9979 9944 mov si, word [bp+006h] ; 8b 76 06 9980 call 06b b7h ; e8 00 009945 call 06b60h ; e8 00 00 9981 9946 pop di ; 5f 9982 9947 add di, strict byte 00018h ; 83 c7 18 … … 10006 9971 push cx ; 51 10007 9972 retf ; cb 10008 jmp near 068 afh ; e9 bc fc9973 jmp near 06858h ; e9 bc fc 10009 9974 mov bx, 00da0h ; bb a0 0d 10010 9975 mov cx, ds ; 8c d9 10011 9976 mov ax, strict word 00004h ; b8 04 00 10012 call 01933h ; e8 35ad9977 call 01933h ; e8 8c ad 10013 9978 mov ax, 0086eh ; b8 6e 08 10014 9979 push ax ; 50 10015 9980 mov ax, strict word 00004h ; b8 04 00 10016 9981 push ax ; 50 10017 call 01976h ; e8 6dad9982 call 01976h ; e8 c4 ad 10018 9983 add sp, strict byte 00004h ; 83 c4 04 10019 9984 or byte [bp+018h], 001h ; 80 4e 18 01 … … 10022 9987 or ah, 086h ; 80 cc 86 10023 9988 mov word [bp+012h], ax ; 89 46 12 10024 jmp near 068 afh ; e9 91 fc9989 jmp near 06858h ; e9 91 fc 10025 9990 mov word [bp+018h], cx ; 89 4e 18 10026 9991 mov word [bp+012h], ax ; 89 46 12 10027 9992 mov word [bp+00ch], 0e6f5h ; c7 46 0c f5 e6 10028 9993 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 10029 jmp near 068 afh ; e9 7e fc9994 jmp near 06858h ; e9 7e fc 10030 9995 mov dx, strict word 0000eh ; ba 0e 00 10031 9996 mov ax, strict word 00040h ; b8 40 00 10032 call 0166eh ; e8 34aa9997 call 0166eh ; e8 8b aa 10033 9998 mov word [bp+014h], ax ; 89 46 14 10034 jmp near 06 b03h ; e9 c3 fe9999 jmp near 06aach ; e9 c3 fe 10035 10000 mov ax, 0089dh ; b8 9d 08 10036 10001 push ax ; 50 10037 10002 mov ax, strict word 00008h ; b8 08 00 10038 jmp short 06 c05h ; eb bc10003 jmp short 06baeh ; eb bc 10039 10004 test byte [bp+012h], 0ffh ; f6 46 12 ff 10040 jne short 06c 6eh ; 75 1f10005 jne short 06c17h ; 75 1f 10041 10006 mov word [bp+012h], ax ; 89 46 12 10042 10007 mov ax, word [bp+00ch] ; 8b 46 0c 10043 10008 xor ah, ah ; 30 e4 10044 10009 cmp ax, strict word 00001h ; 3d 01 00 10045 jc short 06c 67h ; 72 0b10010 jc short 06c10h ; 72 0b 10046 10011 cmp ax, strict word 00003h ; 3d 03 00 10047 jnbe short 06c 67h ; 77 0610012 jnbe short 06c10h ; 77 06 10048 10013 mov word [bp+018h], cx ; 89 4e 18 10049 jmp near 068 afh ; e9 48 fc10014 jmp near 06858h ; e9 48 fc 10050 10015 or byte [bp+018h], 001h ; 80 4e 18 01 10051 jmp near 068 afh ; e9 41 fc10016 jmp near 06858h ; e9 41 fc 10052 10017 mov bx, 00da0h ; bb a0 0d 10053 10018 mov cx, ds ; 8c d9 10054 10019 mov ax, strict word 00004h ; b8 04 00 10055 call 01933h ; e8 ba ac10020 call 01933h ; e8 11 ad 10056 10021 push word [bp+00ch] ; ff 76 0c 10057 10022 push word [bp+012h] ; ff 76 12 … … 10060 10025 mov ax, strict word 00004h ; b8 04 00 10061 10026 push ax ; 50 10062 call 01976h ; e8 ec ac10027 call 01976h ; e8 43 ad 10063 10028 add sp, strict byte 00008h ; 83 c4 08 10064 jmp near 06 c0ch ; e9 7c ff10065 cmp AL, strict byte 06eh ; 3c 6e10066 o32 outsb ; 666e10067 mov si, 0e36eh ; be 6e e310029 jmp near 06bb5h ; e9 7c ff 10030 in ax, 06dh ; e5 6d 10031 movd mm4, [bx+06eh] ; 0f 6e 67 6e 10032 mov [bp-054h], gs ; 8c 6e ac 10068 10033 outsb ; 6e 10069 add bp, word [bx+024h] ; 03 6f 24 10034 int 06eh ; cd 6e 10035 rep outsb ; f3 6e 10036 sbb word [bx+056h], bp ; 19 6f 56 10070 10037 outsw ; 6f 10071 d ec dx ; 4a10038 db 08ah 10072 10039 outsw ; 6f 10073 jo short 06d0fh ; 70 6f 10074 lodsw ; ad 10075 outsw ; 6f 10076 loope 06d13h ; e1 6f 10077 _int15_function32: ; 0xf6ca4 LB 0x3cf 10040 _int15_function32: ; 0xf6c4d LB 0x3cf 10078 10041 push bp ; 55 10079 10042 mov bp, sp ; 89 e5 … … 10087 10050 xor dh, dh ; 30 f6 10088 10051 cmp ax, 000e8h ; 3d e8 00 10089 je short 06 d0bh ; 74 4b10052 je short 06cb4h ; 74 4b 10090 10053 cmp ax, 000d0h ; 3d d0 00 10091 je short 06 d04h ; 74 3f10054 je short 06cadh ; 74 3f 10092 10055 cmp ax, 00086h ; 3d 86 00 10093 jne short 06 d29h ; 75 5f10056 jne short 06cd2h ; 75 5f 10094 10057 sti ; fb 10095 10058 mov ax, word [bp+01ch] ; 8b 46 1c … … 10110 10073 db 066h, 00bh, 0c9h 10111 10074 ; or ecx, ecx ; 66 0b c9 10112 je near 06 d01h ; 0f 84 0e 0010075 je near 06caah ; 0f 84 0e 00 10113 10076 in AL, strict byte 061h ; e4 61 10114 10077 and AL, strict byte 010h ; 24 10 10115 10078 db 03ah, 0c4h 10116 10079 ; cmp al, ah ; 3a c4 10117 je short 06c f3h ; 74 f810080 je short 06c9ch ; 74 f8 10118 10081 db 08ah, 0e0h 10119 10082 ; mov ah, al ; 8a e0 10120 10083 dec ecx ; 66 49 10121 jne short 06c f3h ; 75 f210122 jmp near 06e b8h ; e9 b4 0110084 jne short 06c9ch ; 75 f2 10085 jmp near 06e61h ; e9 b4 01 10123 10086 cmp dx, strict byte 0004fh ; 83 fa 4f 10124 je short 06 d0dh ; 74 0410125 jmp short 06 d29h ; eb 1e10126 jmp short 06d 63h ; eb 5610087 je short 06cb6h ; 74 04 10088 jmp short 06cd2h ; eb 1e 10089 jmp short 06d0ch ; eb 56 10127 10090 cmp word [bp+016h], 05052h ; 81 7e 16 52 50 10128 jne short 06d 6dh ; 75 5910091 jne short 06d16h ; 75 59 10129 10092 cmp word [bp+014h], 04f43h ; 81 7e 14 43 4f 10130 jne short 06d 6dh ; 75 5210093 jne short 06d16h ; 75 52 10131 10094 cmp word [bp+01eh], 04d4fh ; 81 7e 1e 4f 4d 10132 jne short 06d 6dh ; 75 4b10095 jne short 06d16h ; 75 4b 10133 10096 cmp word [bp+01ch], 04445h ; 81 7e 1c 45 44 10134 je short 06 d2bh ; 74 0210135 jmp short 06d 6dh ; eb 4210097 je short 06cd4h ; 74 02 10098 jmp short 06d16h ; eb 42 10136 10099 mov ax, word [bp+00ah] ; 8b 46 0a 10137 10100 or ax, word [bp+008h] ; 0b 46 08 10138 jne short 06d 6dh ; 75 3a10101 jne short 06d16h ; 75 3a 10139 10102 mov ax, word [bp+006h] ; 8b 46 06 10140 10103 or ax, word [bp+004h] ; 0b 46 04 10141 jne short 06d 6dh ; 75 3210104 jne short 06d16h ; 75 32 10142 10105 mov word [bp+028h], bx ; 89 5e 28 10143 10106 mov ax, word [bp+014h] ; 8b 46 14 … … 10151 10114 mov word [bp+020h], 03332h ; c7 46 20 32 33 10152 10115 mov word [bp+022h], 04941h ; c7 46 22 41 49 10153 jmp near 06e b8h ; e9 55 0110116 jmp near 06e61h ; e9 55 01 10154 10117 cmp dx, strict byte 00020h ; 83 fa 20 10155 je short 06d 73h ; 74 0b10118 je short 06d1ch ; 74 0b 10156 10119 cmp dx, strict byte 00001h ; 83 fa 01 10157 je short 06d 70h ; 74 0310158 jmp near 06e 8bh ; e9 1b 0110159 jmp near 0 7033h ; e9 c0 0210120 je short 06d19h ; 74 03 10121 jmp near 06e34h ; e9 1b 01 10122 jmp near 06fdch ; e9 c0 02 10160 10123 cmp word [bp+01ah], 0534dh ; 81 7e 1a 4d 53 10161 jne short 06d 6dh ; 75 f310124 jne short 06d16h ; 75 f3 10162 10125 cmp word [bp+018h], 04150h ; 81 7e 18 50 41 10163 jne short 06d 6dh ; 75 ec10126 jne short 06d16h ; 75 ec 10164 10127 mov ax, strict word 00035h ; b8 35 00 10165 call 016aeh ; e8 27a910128 call 016aeh ; e8 7e a9 10166 10129 mov bl, al ; 88 c3 10167 10130 xor bh, bh ; 30 ff … … 10170 10133 sal bx, 1 ; d1 e3 10171 10134 rcl dx, 1 ; d1 d2 10172 loop 06d 90h ; e2 fa10135 loop 06d39h ; e2 fa 10173 10136 mov ax, strict word 00034h ; b8 34 00 10174 call 016aeh ; e8 12a910137 call 016aeh ; e8 69 a9 10175 10138 xor ah, ah ; 30 e4 10176 10139 mov dx, bx ; 89 da … … 10180 10143 adc dx, 00100h ; 81 d2 00 01 10181 10144 cmp dx, 00100h ; 81 fa 00 01 10182 jc short 06d b6h ; 72 0610183 jne short 06d e4h ; 75 3210145 jc short 06d5fh ; 72 06 10146 jne short 06d8dh ; 75 32 10184 10147 test bx, bx ; 85 db 10185 jnbe short 06d e4h ; 77 2e10148 jnbe short 06d8dh ; 77 2e 10186 10149 mov ax, strict word 00031h ; b8 31 00 10187 call 016aeh ; e8 f2 a810150 call 016aeh ; e8 49 a9 10188 10151 mov bl, al ; 88 c3 10189 10152 xor bh, bh ; 30 ff … … 10192 10155 sal bx, 1 ; d1 e3 10193 10156 rcl dx, 1 ; d1 d2 10194 loop 06d c5h ; e2 fa10157 loop 06d6eh ; e2 fa 10195 10158 mov ax, strict word 00030h ; b8 30 00 10196 call 016aeh ; e8 dd a810159 call 016aeh ; e8 34 a9 10197 10160 xor ah, ah ; 30 e4 10198 10161 or bx, ax ; 09 c3 … … 10200 10163 sal bx, 1 ; d1 e3 10201 10164 rcl dx, 1 ; d1 d2 10202 loop 06d d8h ; e2 fa10165 loop 06d81h ; e2 fa 10203 10166 add bx, strict byte 00000h ; 83 c3 00 10204 10167 adc dx, strict byte 00010h ; 83 d2 10 10205 10168 mov ax, strict word 00062h ; b8 62 00 10206 call 016aeh ; e8 c4 a810169 call 016aeh ; e8 1b a9 10207 10170 xor ah, ah ; 30 e4 10208 10171 mov word [bp-00ah], ax ; 89 46 f6 … … 10212 10175 sal word [bp-00ah], 1 ; d1 66 f6 10213 10176 rcl word [bp-008h], 1 ; d1 56 f8 10214 loop 06d f7h ; e2 f810177 loop 06da0h ; e2 f8 10215 10178 mov ax, strict word 00061h ; b8 61 00 10216 call 016aeh ; e8 a9 a810179 call 016aeh ; e8 00 a9 10217 10180 xor ah, ah ; 30 e4 10218 10181 or word [bp-00ah], ax ; 09 46 f6 … … 10221 10184 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 10222 10185 mov ax, strict word 00063h ; b8 63 00 10223 call 016aeh ; e8 93a810186 call 016aeh ; e8 ea a8 10224 10187 mov byte [bp-006h], al ; 88 46 fa 10225 10188 mov byte [bp-004h], al ; 88 46 fc 10226 10189 mov ax, word [bp+014h] ; 8b 46 14 10227 10190 cmp ax, strict word 00009h ; 3d 09 00 10228 jnbe short 06e 8bh ; 77 6210191 jnbe short 06e34h ; 77 62 10229 10192 mov si, ax ; 89 c6 10230 10193 sal si, 1 ; d1 e6 … … 10233 10196 mov ax, dx ; 89 d0 10234 10197 adc ax, strict word 0ffffh ; 15 ff ff 10235 jmp word [cs:si+06c 90h] ; 2e ff a4 906c10198 jmp word [cs:si+06c39h] ; 2e ff a4 39 6c 10236 10199 mov ax, strict word 00001h ; b8 01 00 10237 10200 push ax ; 50 … … 10247 10210 xor bx, bx ; 31 db 10248 10211 xor cx, cx ; 31 c9 10249 call 06 743h ; e8 ea f810212 call 066ech ; e8 ea f8 10250 10213 mov word [bp+014h], strict word 00001h ; c7 46 14 01 00 10251 10214 mov word [bp+016h], strict word 00000h ; c7 46 16 00 00 10252 jmp near 0 7018h ; e9 b2 0110215 jmp near 06fc1h ; e9 b2 01 10253 10216 mov ax, strict word 00002h ; b8 02 00 10254 10217 push ax ; 50 … … 10264 10227 mov bx, 0fc00h ; bb 00 fc 10265 10228 mov cx, strict word 00009h ; b9 09 00 10266 call 06 743h ; e8 bf f810229 call 066ech ; e8 bf f8 10267 10230 mov word [bp+014h], strict word 00002h ; c7 46 14 02 00 10268 jmp short 06e 5eh ; eb d310231 jmp short 06e07h ; eb d3 10269 10232 mov bx, 00da0h ; bb a0 0d 10270 10233 mov cx, ds ; 8c d9 10271 10234 mov ax, strict word 00004h ; b8 04 00 10272 call 01933h ; e8 9daa10235 call 01933h ; e8 f4 aa 10273 10236 push word [bp+014h] ; ff 76 14 10274 10237 push word [bp+020h] ; ff 76 20 … … 10277 10240 mov ax, strict word 00004h ; b8 04 00 10278 10241 push ax ; 50 10279 call 01976h ; e8 cf aa10242 call 01976h ; e8 26 ab 10280 10243 add sp, strict byte 00008h ; 83 c4 08 10281 10244 or byte [bp+028h], 001h ; 80 4e 28 01 … … 10301 10264 xor bx, bx ; 31 db 10302 10265 mov cx, strict word 0000fh ; b9 0f 00 10303 call 06 743h ; e8 68 f810266 call 066ech ; e8 68 f8 10304 10267 mov word [bp+014h], strict word 00003h ; c7 46 14 03 00 10305 jmp near 06e 5eh ; e9 7b ff10268 jmp near 06e07h ; e9 7b ff 10306 10269 mov dx, strict word 00001h ; ba 01 00 10307 10270 push dx ; 52 … … 10315 10278 xor bx, bx ; 31 db 10316 10279 mov cx, strict word 00010h ; b9 10 00 10317 call 06 743h ; e8 48 f810280 call 066ech ; e8 48 f8 10318 10281 mov word [bp+014h], strict word 00004h ; c7 46 14 04 00 10319 jmp near 06e 5eh ; e9 5b ff10282 jmp near 06e07h ; e9 5b ff 10320 10283 mov si, strict word 00003h ; be 03 00 10321 10284 push si ; 56 … … 10330 10293 mov cx, ax ; 89 c1 10331 10294 mov ax, si ; 89 f0 10332 call 06 743h ; e8 27 f810295 call 066ech ; e8 27 f8 10333 10296 mov word [bp+014h], strict word 00005h ; c7 46 14 05 00 10334 jmp near 06e 5eh ; e9 3a ff10297 jmp near 06e07h ; e9 3a ff 10335 10298 mov ax, strict word 00002h ; b8 02 00 10336 10299 push ax ; 50 … … 10346 10309 xor bx, bx ; 31 db 10347 10310 mov cx, 0fec0h ; b9 c0 fe 10348 call 06 743h ; e8 01 f810311 call 066ech ; e8 01 f8 10349 10312 mov word [bp+014h], strict word 00006h ; c7 46 14 06 00 10350 jmp near 06e 5eh ; e9 14 ff10313 jmp near 06e07h ; e9 14 ff 10351 10314 mov ax, strict word 00002h ; b8 02 00 10352 10315 push ax ; 50 … … 10362 10325 xor bx, bx ; 31 db 10363 10326 mov cx, 0fee0h ; b9 e0 fe 10364 call 06 743h ; e8 db f710327 call 066ech ; e8 db f7 10365 10328 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 10366 jmp near 06e 5eh ; e9 ee fe10329 jmp near 06e07h ; e9 ee fe 10367 10330 mov ax, strict word 00002h ; b8 02 00 10368 10331 push ax ; 50 … … 10376 10339 xor bx, bx ; 31 db 10377 10340 mov cx, strict word 0fffch ; b9 fc ff 10378 call 06 743h ; e8 bb f710341 call 066ech ; e8 bb f7 10379 10342 cmp byte [bp-006h], 000h ; 80 7e fa 00 10380 jne short 06f 95h ; 75 0710343 jne short 06f3eh ; 75 07 10381 10344 mov ax, word [bp-008h] ; 8b 46 f8 10382 10345 test ax, ax ; 85 c0 10383 je short 06f a5h ; 74 1010346 je short 06f4eh ; 74 10 10384 10347 mov word [bp+014h], strict word 00009h ; c7 46 14 09 00 10385 jmp near 06e 5eh ; e9 c1 fe10348 jmp near 06e07h ; e9 c1 fe 10386 10349 mov word [bp+014h], strict word 00008h ; c7 46 14 08 00 10387 jmp near 06e 5eh ; e9 b9 fe10350 jmp near 06e07h ; e9 b9 fe 10388 10351 mov word [bp+014h], ax ; 89 46 14 10389 10352 mov word [bp+016h], ax ; 89 46 16 10390 jmp short 0 7018h ; eb 6b10353 jmp short 06fc1h ; eb 6b 10391 10354 mov ax, strict word 00002h ; b8 02 00 10392 10355 push ax ; 50 … … 10400 10363 xor bx, bx ; 31 db 10401 10364 xor cx, cx ; 31 c9 10402 call 06 743h ; e8 7f f710365 call 066ech ; e8 7f f7 10403 10366 cmp byte [bp-006h], 000h ; 80 7e fa 00 10404 jne short 06f d1h ; 75 0710367 jne short 06f7ah ; 75 07 10405 10368 mov ax, word [bp-008h] ; 8b 46 f8 10406 10369 test ax, ax ; 85 c0 10407 je short 06f d9h ; 74 0810370 je short 06f82h ; 74 08 10408 10371 mov word [bp+014h], strict word 00009h ; c7 46 14 09 00 10409 jmp near 06e 5eh ; e9 85 fe10372 jmp near 06e07h ; e9 85 fe 10410 10373 mov word [bp+014h], ax ; 89 46 14 10411 10374 mov word [bp+016h], ax ; 89 46 16 10412 jmp short 0 7018h ; eb 3710375 jmp short 06fc1h ; eb 37 10413 10376 cmp byte [bp-006h], 000h ; 80 7e fa 00 10414 jne short 06f edh ; 75 0610377 jne short 06f96h ; 75 06 10415 10378 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 10416 je short 0 7018h ; 74 2b10379 je short 06fc1h ; 74 2b 10417 10380 mov ax, strict word 00001h ; b8 01 00 10418 10381 push ax ; 50 … … 10430 10393 xor bx, bx ; 31 db 10431 10394 xor cx, cx ; 31 c9 10432 call 06 743h ; e8 33 f710395 call 066ech ; e8 33 f7 10433 10396 xor ax, ax ; 31 c0 10434 10397 mov word [bp+014h], ax ; 89 46 14 … … 10439 10402 mov word [bp+01eh], strict word 00000h ; c7 46 1e 00 00 10440 10403 and byte [bp+028h], 0feh ; 80 66 28 fe 10441 jmp near 06e b8h ; e9 85 fe10404 jmp near 06e61h ; e9 85 fe 10442 10405 mov word [bp+028h], bx ; 89 5e 28 10443 10406 mov ax, strict word 00031h ; b8 31 00 10444 call 016aeh ; e8 72a610407 call 016aeh ; e8 c9 a6 10445 10408 mov dh, al ; 88 c6 10446 10409 mov ax, strict word 00030h ; b8 30 00 10447 call 016aeh ; e8 6aa610410 call 016aeh ; e8 c1 a6 10448 10411 mov dl, al ; 88 c2 10449 10412 mov word [bp+01ch], dx ; 89 56 1c 10450 10413 cmp dx, 03c00h ; 81 fa 00 3c 10451 jbe short 0 7054h ; 76 0510414 jbe short 06ffdh ; 76 05 10452 10415 mov word [bp+01ch], 03c00h ; c7 46 1c 00 3c 10453 10416 mov ax, strict word 00035h ; b8 35 00 10454 call 016aeh ; e8 54a610417 call 016aeh ; e8 ab a6 10455 10418 mov dh, al ; 88 c6 10456 10419 mov ax, strict word 00034h ; b8 34 00 10457 call 016aeh ; e8 4ca610420 call 016aeh ; e8 a3 a6 10458 10421 mov dl, al ; 88 c2 10459 10422 mov word [bp+018h], dx ; 89 56 18 … … 10461 10424 mov word [bp+020h], ax ; 89 46 20 10462 10425 mov word [bp+014h], dx ; 89 56 14 10463 jmp near 06e b8h ; e9 45 fe10464 _inv_op_handler: ; 0xf70 73LB 0x18f10426 jmp near 06e61h ; e9 45 fe 10427 _inv_op_handler: ; 0xf701c LB 0x18f 10465 10428 push bp ; 55 10466 10429 mov bp, sp ; 89 e5 … … 10471 10434 les bx, [bp+018h] ; c4 5e 18 10472 10435 cmp byte [es:bx], 0f0h ; 26 80 3f f0 10473 jne short 070 89h ; 75 0610436 jne short 07032h ; 75 06 10474 10437 inc word [bp+018h] ; ff 46 18 10475 jmp near 071 fbh ; e9 72 0110438 jmp near 071a4h ; e9 72 01 10476 10439 cmp word [es:bx], 0050fh ; 26 81 3f 0f 05 10477 je short 070 93h ; 74 0310478 jmp near 071 f7h ; e9 64 0110440 je short 0703ch ; 74 03 10441 jmp near 071a0h ; e9 64 01 10479 10442 mov si, 00800h ; be 00 08 10480 10443 xor ax, ax ; 31 c0 … … 10505 10468 sal ax, 1 ; d1 e0 10506 10469 rcl dx, 1 ; d1 d2 10507 loop 070 e4h ; e2 fa10470 loop 0708dh ; e2 fa 10508 10471 cmp bx, dx ; 39 d3 10509 jne short 070 f2h ; 75 0410472 jne short 0709bh ; 75 04 10510 10473 cmp di, ax ; 39 c7 10511 je short 070 f7h ; 74 0510474 je short 070a0h ; 74 05 10512 10475 mov word [bp-006h], strict word 00001h ; c7 46 fa 01 00 10513 10476 mov es, [bp-008h] ; 8e 46 f8 … … 10520 10483 sal ax, 1 ; d1 e0 10521 10484 rcl dx, 1 ; d1 d2 10522 loop 07 10dh ; e2 fa10485 loop 070b6h ; e2 fa 10523 10486 cmp bx, dx ; 39 d3 10524 jne short 07 11bh ; 75 0410487 jne short 070c4h ; 75 04 10525 10488 cmp di, ax ; 39 c7 10526 je short 07 11fh ; 74 0410489 je short 070c8h ; 74 04 10527 10490 or byte [bp-006h], 002h ; 80 4e fa 02 10528 10491 xor ax, ax ; 31 c0 … … 10574 10537 mov ax, strict word 00008h ; b8 08 00 10575 10538 test cx, strict word 00001h ; f7 c1 01 00 10576 je near 071 b4h ; 0f 84 02 0010539 je near 0715dh ; 0f 84 02 00 10577 10540 mov es, ax ; 8e c0 10578 10541 test cx, strict word 00002h ; f7 c1 02 00 10579 je near 071 dch ; 0f 84 20 0010542 je near 07185h ; 0f 84 20 00 10580 10543 mov bx, word [word ss:00000h] ; 36 8b 1e 00 00 10581 10544 mov word [word ss:00008h], bx ; 36 89 1e 08 00 … … 10594 10557 mov ss, [word ss:00020h] ; 36 8e 16 20 00 10595 10558 iret ; cf 10596 jmp short 071 fbh ; eb 0410559 jmp short 071a4h ; eb 04 10597 10560 sti ; fb 10598 10561 hlt ; f4 10599 jmp short 071 f8h ; eb fd10562 jmp short 071a1h ; eb fd 10600 10563 lea sp, [bp-004h] ; 8d 66 fc 10601 10564 pop di ; 5f … … 10603 10566 pop bp ; 5d 10604 10567 retn ; c3 10605 init_rtc_: ; 0xf7 202LB 0x2810568 init_rtc_: ; 0xf71ab LB 0x28 10606 10569 push bp ; 55 10607 10570 mov bp, sp ; 89 e5 … … 10609 10572 mov dx, strict word 00026h ; ba 26 00 10610 10573 mov ax, strict word 0000ah ; b8 0a 00 10611 call 016c9h ; e8 ba a410574 call 016c9h ; e8 11 a5 10612 10575 mov dx, strict word 00002h ; ba 02 00 10613 10576 mov ax, strict word 0000bh ; b8 0b 00 10614 call 016c9h ; e8 b1 a410577 call 016c9h ; e8 08 a5 10615 10578 mov ax, strict word 0000ch ; b8 0c 00 10616 call 016aeh ; e8 90a410579 call 016aeh ; e8 e7 a4 10617 10580 mov ax, strict word 0000dh ; b8 0d 00 10618 call 016aeh ; e8 8aa410581 call 016aeh ; e8 e1 a4 10619 10582 lea sp, [bp-002h] ; 8d 66 fe 10620 10583 pop dx ; 5a 10621 10584 pop bp ; 5d 10622 10585 retn ; c3 10623 rtc_updating_: ; 0xf7 22aLB 0x2110586 rtc_updating_: ; 0xf71d3 LB 0x21 10624 10587 push bp ; 55 10625 10588 mov bp, sp ; 89 e5 … … 10627 10590 mov dx, 061a8h ; ba a8 61 10628 10591 dec dx ; 4a 10629 je short 07 242h ; 74 0e10592 je short 071ebh ; 74 0e 10630 10593 mov ax, strict word 0000ah ; b8 0a 00 10631 call 016aeh ; e8 74a410594 call 016aeh ; e8 cb a4 10632 10595 test AL, strict byte 080h ; a8 80 10633 jne short 07 231h ; 75 f310596 jne short 071dah ; 75 f3 10634 10597 xor ax, ax ; 31 c0 10635 jmp short 07 245h ; eb 0310598 jmp short 071eeh ; eb 03 10636 10599 mov ax, strict word 00001h ; b8 01 00 10637 10600 lea sp, [bp-002h] ; 8d 66 fe … … 10639 10602 pop bp ; 5d 10640 10603 retn ; c3 10641 _int70_function: ; 0xf7 24bLB 0xbf10604 _int70_function: ; 0xf71f4 LB 0xbf 10642 10605 push bp ; 55 10643 10606 mov bp, sp ; 89 e5 … … 10645 10608 push ax ; 50 10646 10609 mov ax, strict word 0000bh ; b8 0b 00 10647 call 016aeh ; e8 58a410610 call 016aeh ; e8 af a4 10648 10611 mov bl, al ; 88 c3 10649 10612 mov byte [bp-004h], al ; 88 46 fc 10650 10613 mov ax, strict word 0000ch ; b8 0c 00 10651 call 016aeh ; e8 4da410614 call 016aeh ; e8 a4 a4 10652 10615 mov dl, al ; 88 c2 10653 10616 test bl, 060h ; f6 c3 60 10654 jne short 072 6bh ; 75 0310655 jmp near 072 f1h ; e9 86 0010617 jne short 07214h ; 75 03 10618 jmp near 0729ah ; e9 86 00 10656 10619 test AL, strict byte 020h ; a8 20 10657 je short 072 73h ; 74 0410620 je short 0721ch ; 74 04 10658 10621 sti ; fb 10659 10622 int 04ah ; cd 4a 10660 10623 cli ; fa 10661 10624 test dl, 040h ; f6 c2 40 10662 je short 072 dbh ; 74 6310625 je short 07284h ; 74 63 10663 10626 mov dx, 000a0h ; ba a0 00 10664 10627 mov ax, strict word 00040h ; b8 40 00 10665 call 01652h ; e8 d1 a310628 call 01652h ; e8 28 a4 10666 10629 test al, al ; 84 c0 10667 je short 072 f1h ; 74 6c10630 je short 0729ah ; 74 6c 10668 10631 mov dx, 0009ch ; ba 9c 00 10669 10632 mov ax, strict word 00040h ; b8 40 00 10670 call 0168ah ; e8 fc a310633 call 0168ah ; e8 53 a4 10671 10634 test dx, dx ; 85 d2 10672 jne short 072 ddh ; 75 4b10635 jne short 07286h ; 75 4b 10673 10636 cmp ax, 003d1h ; 3d d1 03 10674 jnc short 072 ddh ; 73 4610637 jnc short 07286h ; 73 46 10675 10638 mov dx, 00098h ; ba 98 00 10676 10639 mov ax, strict word 00040h ; b8 40 00 10677 call 0166eh ; e8 ce a310640 call 0166eh ; e8 25 a4 10678 10641 mov si, ax ; 89 c6 10679 10642 mov dx, 0009ah ; ba 9a 00 10680 10643 mov ax, strict word 00040h ; b8 40 00 10681 call 0166eh ; e8 c3 a310644 call 0166eh ; e8 1a a4 10682 10645 mov cx, ax ; 89 c1 10683 10646 xor bx, bx ; 31 db 10684 10647 mov dx, 000a0h ; ba a0 00 10685 10648 mov ax, strict word 00040h ; b8 40 00 10686 call 01660h ; e8 a8a310649 call 01660h ; e8 ff a3 10687 10650 mov dl, byte [bp-004h] ; 8a 56 fc 10688 10651 and dl, 037h ; 80 e2 37 10689 10652 xor dh, dh ; 30 f6 10690 10653 mov ax, strict word 0000bh ; b8 0b 00 10691 call 016c9h ; e8 03a410654 call 016c9h ; e8 5a a4 10692 10655 mov dx, cx ; 89 ca 10693 10656 mov ax, si ; 89 f0 10694 call 01652h ; e8 85a310657 call 01652h ; e8 dc a3 10695 10658 mov bl, al ; 88 c3 10696 10659 or bl, 080h ; 80 cb 80 … … 10698 10661 mov dx, cx ; 89 ca 10699 10662 mov ax, si ; 89 f0 10700 call 01660h ; e8 85a310701 jmp short 072 f1h ; eb 1410663 call 01660h ; e8 dc a3 10664 jmp short 0729ah ; eb 14 10702 10665 mov bx, ax ; 89 c3 10703 10666 add bx, 0fc2fh ; 81 c3 2f fc … … 10706 10669 mov dx, 0009ch ; ba 9c 00 10707 10670 mov ax, strict word 00040h ; b8 40 00 10708 call 0169ch ; e8 ab a310709 call 0e030h ; e8 3c6d10671 call 0169ch ; e8 02 a4 10672 call 0e030h ; e8 93 6d 10710 10673 lea sp, [bp-002h] ; 8d 66 fe 10711 10674 pop si ; 5e 10712 10675 pop bp ; 5d 10713 10676 retn ; c3 10714 and byte [bp+di+047h], dh ; 20 73 47 10715 jnc short 0736bh ; 73 6c 10716 jnc short 072a9h ; 73 a8 10717 jnc short 072fdh ; 73 fa 10718 jnc short 07336h ; 73 31 10719 je short 0737fh ; 74 78 10720 je short 072dch ; 74 d3 10677 leave ; c9 10678 jc short 07296h ; 72 f0 10679 jc short 072bdh ; 72 15 10680 jnc short 072fbh ; 73 51 10681 jnc short 0724fh ; 73 a3 10682 jnc short 07288h ; 73 da 10683 jnc short 072d1h ; 73 21 10684 je short 0732eh ; 74 7c 10721 10685 db 074h 10722 _int1a_function: ; 0xf7 30aLB 0x1d910686 _int1a_function: ; 0xf72b3 LB 0x1d9 10723 10687 push bp ; 55 10724 10688 mov bp, sp ; 89 e5 … … 10726 10690 mov al, byte [bp+013h] ; 8a 46 13 10727 10691 cmp AL, strict byte 007h ; 3c 07 10728 jnbe short 073 73h ; 77 5e10692 jnbe short 0731ch ; 77 5e 10729 10693 mov bl, al ; 88 c3 10730 10694 xor bh, bh ; 30 ff 10731 10695 sal bx, 1 ; d1 e3 10732 jmp word [cs:bx+072 fah] ; 2e ff a7 fa7210696 jmp word [cs:bx+072a3h] ; 2e ff a7 a3 72 10733 10697 cli ; fa 10734 10698 mov bx, 0046eh ; bb 6e 04 … … 10745 10709 mov byte [es:bx], 000h ; 26 c6 07 00 10746 10710 sti ; fb 10747 jmp short 073 73h ; eb 2c10711 jmp short 0731ch ; eb 2c 10748 10712 cli ; fa 10749 10713 mov bx, 0046eh ; bb 6e 04 … … 10759 10723 sti ; fb 10760 10724 mov byte [bp+013h], 000h ; c6 46 13 00 10761 jmp short 073 73h ; eb 0710762 call 07 22ah ; e8 bb fe10725 jmp short 0731ch ; eb 07 10726 call 071d3h ; e8 bb fe 10763 10727 test ax, ax ; 85 c0 10764 je short 073 76h ; 74 0310765 jmp near 073 a4h ; e9 2e 0010728 je short 0731fh ; 74 03 10729 jmp near 0734dh ; e9 2e 00 10766 10730 xor ax, ax ; 31 c0 10767 call 016aeh ; e8 33a310731 call 016aeh ; e8 8a a3 10768 10732 mov byte [bp+00fh], al ; 88 46 0f 10769 10733 mov ax, strict word 00002h ; b8 02 00 10770 call 016aeh ; e8 2aa310734 call 016aeh ; e8 81 a3 10771 10735 mov byte [bp+010h], al ; 88 46 10 10772 10736 mov ax, strict word 00004h ; b8 04 00 10773 call 016aeh ; e8 21a310737 call 016aeh ; e8 78 a3 10774 10738 mov dl, al ; 88 c2 10775 10739 mov byte [bp+011h], al ; 88 46 11 10776 10740 mov ax, strict word 0000bh ; b8 0b 00 10777 call 016aeh ; e8 16a310741 call 016aeh ; e8 6d a3 10778 10742 and AL, strict byte 001h ; 24 01 10779 10743 mov byte [bp+00eh], al ; 88 46 0e … … 10783 10747 pop bp ; 5d 10784 10748 retn ; c3 10785 call 07 22ah ; e8 7f fe10749 call 071d3h ; e8 7f fe 10786 10750 test ax, ax ; 85 c0 10787 je short 073 b2h ; 74 0310788 call 07 202h ; e8 50 fe10751 je short 0735bh ; 74 03 10752 call 071abh ; e8 50 fe 10789 10753 mov dl, byte [bp+00fh] ; 8a 56 0f 10790 10754 xor dh, dh ; 30 f6 10791 10755 xor ax, ax ; 31 c0 10792 call 016c9h ; e8 0da310756 call 016c9h ; e8 64 a3 10793 10757 mov dl, byte [bp+010h] ; 8a 56 10 10794 10758 xor dh, dh ; 30 f6 10795 10759 mov ax, strict word 00002h ; b8 02 00 10796 call 016c9h ; e8 02a310760 call 016c9h ; e8 59 a3 10797 10761 mov dl, byte [bp+011h] ; 8a 56 11 10798 10762 xor dh, dh ; 30 f6 10799 10763 mov ax, strict word 00004h ; b8 04 00 10800 call 016c9h ; e8 f7 a210764 call 016c9h ; e8 4e a3 10801 10765 mov ax, strict word 0000bh ; b8 0b 00 10802 call 016aeh ; e8 d6 a210766 call 016aeh ; e8 2d a3 10803 10767 mov bl, al ; 88 c3 10804 10768 and bl, 060h ; 80 e3 60 … … 10810 10774 xor dh, dh ; 30 f6 10811 10775 mov ax, strict word 0000bh ; b8 0b 00 10812 call 016c9h ; e8 d8 a210776 call 016c9h ; e8 2f a3 10813 10777 mov byte [bp+013h], 000h ; c6 46 13 00 10814 10778 mov byte [bp+012h], bl ; 88 5e 12 10815 jmp short 073 a4h ; eb aa10779 jmp short 0734dh ; eb aa 10816 10780 mov byte [bp+013h], 000h ; c6 46 13 00 10817 call 07 22ah ; e8 29 fe10781 call 071d3h ; e8 29 fe 10818 10782 test ax, ax ; 85 c0 10819 je short 07 407h ; 74 0210820 jmp short 073 a4h ; eb 9d10783 je short 073b0h ; 74 02 10784 jmp short 0734dh ; eb 9d 10821 10785 mov ax, strict word 00009h ; b8 09 00 10822 call 016aeh ; e8 a1a210786 call 016aeh ; e8 f8 a2 10823 10787 mov byte [bp+010h], al ; 88 46 10 10824 10788 mov ax, strict word 00008h ; b8 08 00 10825 call 016aeh ; e8 98a210789 call 016aeh ; e8 ef a2 10826 10790 mov byte [bp+00fh], al ; 88 46 0f 10827 10791 mov ax, strict word 00007h ; b8 07 00 10828 call 016aeh ; e8 8fa210792 call 016aeh ; e8 e6 a2 10829 10793 mov byte [bp+00eh], al ; 88 46 0e 10830 10794 mov ax, strict word 00032h ; b8 32 00 10831 call 016aeh ; e8 86a210795 call 016aeh ; e8 dd a2 10832 10796 mov byte [bp+011h], al ; 88 46 11 10833 10797 mov byte [bp+012h], al ; 88 46 12 10834 jmp near 073 a4h ; e9 73 ff10835 call 07 22ah ; e8 f6 fd10798 jmp near 0734dh ; e9 73 ff 10799 call 071d3h ; e8 f6 fd 10836 10800 test ax, ax ; 85 c0 10837 je short 07 43eh ; 74 0610838 call 07 202h ; e8 c7 fd10839 jmp near 073 a4h ; e9 66 ff10801 je short 073e7h ; 74 06 10802 call 071abh ; e8 c7 fd 10803 jmp near 0734dh ; e9 66 ff 10840 10804 mov dl, byte [bp+010h] ; 8a 56 10 10841 10805 xor dh, dh ; 30 f6 10842 10806 mov ax, strict word 00009h ; b8 09 00 10843 call 016c9h ; e8 80a210807 call 016c9h ; e8 d7 a2 10844 10808 mov dl, byte [bp+00fh] ; 8a 56 0f 10845 10809 xor dh, dh ; 30 f6 10846 10810 mov ax, strict word 00008h ; b8 08 00 10847 call 016c9h ; e8 75a210811 call 016c9h ; e8 cc a2 10848 10812 mov dl, byte [bp+00eh] ; 8a 56 0e 10849 10813 xor dh, dh ; 30 f6 10850 10814 mov ax, strict word 00007h ; b8 07 00 10851 call 016c9h ; e8 6aa210815 call 016c9h ; e8 c1 a2 10852 10816 mov dl, byte [bp+011h] ; 8a 56 11 10853 10817 xor dh, dh ; 30 f6 10854 10818 mov ax, strict word 00032h ; b8 32 00 10855 call 016c9h ; e8 5fa210819 call 016c9h ; e8 b6 a2 10856 10820 mov ax, strict word 0000bh ; b8 0b 00 10857 call 016aeh ; e8 3ea210821 call 016aeh ; e8 95 a2 10858 10822 mov bl, al ; 88 c3 10859 10823 and bl, 07fh ; 80 e3 7f 10860 jmp near 073 e7h ; e9 6f ff10824 jmp near 07390h ; e9 6f ff 10861 10825 mov ax, strict word 0000bh ; b8 0b 00 10862 call 016aeh ; e8 30a210826 call 016aeh ; e8 87 a2 10863 10827 mov bl, al ; 88 c3 10864 10828 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 10865 10829 test AL, strict byte 020h ; a8 20 10866 je short 074 8ch ; 74 0310867 jmp near 073 a4h ; e9 18 ff10868 call 07 22ah ; e8 9b fd10830 je short 07435h ; 74 03 10831 jmp near 0734dh ; e9 18 ff 10832 call 071d3h ; e8 9b fd 10869 10833 test ax, ax ; 85 c0 10870 je short 074 96h ; 74 0310871 call 07 202h ; e8 6c fd10834 je short 0743fh ; 74 03 10835 call 071abh ; e8 6c fd 10872 10836 mov dl, byte [bp+00fh] ; 8a 56 0f 10873 10837 xor dh, dh ; 30 f6 10874 10838 mov ax, strict word 00001h ; b8 01 00 10875 call 016c9h ; e8 28a210839 call 016c9h ; e8 7f a2 10876 10840 mov dl, byte [bp+010h] ; 8a 56 10 10877 10841 xor dh, dh ; 30 f6 10878 10842 mov ax, strict word 00003h ; b8 03 00 10879 call 016c9h ; e8 1da210843 call 016c9h ; e8 74 a2 10880 10844 mov dl, byte [bp+011h] ; 8a 56 11 10881 10845 xor dh, dh ; 30 f6 10882 10846 mov ax, strict word 00005h ; b8 05 00 10883 call 016c9h ; e8 12a210847 call 016c9h ; e8 69 a2 10884 10848 mov dx, 000a1h ; ba a1 00 10885 10849 in AL, DX ; ec … … 10893 10857 xor dh, dh ; 30 f6 10894 10858 mov ax, strict word 0000bh ; b8 0b 00 10895 call 016c9h ; e8 f9 a110896 jmp near 073 a4h ; e9 d1 fe10859 call 016c9h ; e8 50 a2 10860 jmp near 0734dh ; e9 d1 fe 10897 10861 mov ax, strict word 0000bh ; b8 0b 00 10898 call 016aeh ; e8 d5 a110862 call 016aeh ; e8 2c a2 10899 10863 mov bl, al ; 88 c3 10900 10864 mov dl, al ; 88 c2 10901 10865 and dl, 057h ; 80 e2 57 10902 jmp near 073 e9h ; e9 06 ff10903 send_to_mouse_ctrl_: ; 0xf74 e3LB 0x3810866 jmp near 07392h ; e9 06 ff 10867 send_to_mouse_ctrl_: ; 0xf748c LB 0x38 10904 10868 push bp ; 55 10905 10869 mov bp, sp ; 89 e5 … … 10912 10876 ; sub ah, ah ; 2a e4 10913 10877 test AL, strict byte 002h ; a8 02 10914 je short 07 506h ; 74 1210878 je short 074afh ; 74 12 10915 10879 mov ax, 008eeh ; b8 ee 08 10916 10880 push ax ; 50 … … 10919 10883 mov ax, strict word 00007h ; b8 07 00 10920 10884 push ax ; 50 10921 call 01976h ; e8 73a410885 call 01976h ; e8 ca a4 10922 10886 add sp, strict byte 00006h ; 83 c4 06 10923 10887 mov AL, strict byte 0d4h ; b0 d4 … … 10933 10897 pop bp ; 5d 10934 10898 retn ; c3 10935 get_mouse_data_: ; 0xf7 51bLB 0x5d10899 get_mouse_data_: ; 0xf74c4 LB 0x5d 10936 10900 push bp ; 55 10937 10901 mov bp, sp ; 89 e5 … … 10948 10912 and ax, strict word 00021h ; 25 21 00 10949 10913 cmp ax, strict word 00021h ; 3d 21 00 10950 je short 075 5eh ; 74 2810914 je short 07507h ; 74 28 10951 10915 test cx, cx ; 85 c9 10952 je short 075 5eh ; 74 2410916 je short 07507h ; 74 24 10953 10917 mov dx, strict word 00061h ; ba 61 00 10954 10918 in AL, DX ; ec … … 10967 10931 xor ah, ah ; 30 e4 10968 10932 cmp dx, ax ; 39 c2 10969 je short 07 545h ; 74 ea10933 je short 074eeh ; 74 ea 10970 10934 dec cx ; 49 10971 jmp short 07 528h ; eb ca10935 jmp short 074d1h ; eb ca 10972 10936 test cx, cx ; 85 c9 10973 jne short 075 66h ; 75 0410937 jne short 0750fh ; 75 04 10974 10938 mov AL, strict byte 001h ; b0 01 10975 jmp short 075 71h ; eb 0b10939 jmp short 0751ah ; eb 0b 10976 10940 mov dx, strict word 00060h ; ba 60 00 10977 10941 in AL, DX ; ec … … 10985 10949 pop bp ; 5d 10986 10950 retn ; c3 10987 set_kbd_command_byte_: ; 0xf75 78LB 0x3610951 set_kbd_command_byte_: ; 0xf7521 LB 0x36 10988 10952 push bp ; 55 10989 10953 mov bp, sp ; 89 e5 … … 10996 10960 ; sub ah, ah ; 2a e4 10997 10961 test AL, strict byte 002h ; a8 02 10998 je short 075 9bh ; 74 1210962 je short 07544h ; 74 12 10999 10963 mov ax, 008f8h ; b8 f8 08 11000 10964 push ax ; 50 … … 11003 10967 mov ax, strict word 00007h ; b8 07 00 11004 10968 push ax ; 50 11005 call 01976h ; e8 de a310969 call 01976h ; e8 35 a4 11006 10970 add sp, strict byte 00006h ; 83 c4 06 11007 10971 mov AL, strict byte 060h ; b0 60 … … 11016 10980 pop bp ; 5d 11017 10981 retn ; c3 11018 _int74_function: ; 0xf75 aeLB 0xd210982 _int74_function: ; 0xf7557 LB 0xd2 11019 10983 push bp ; 55 11020 10984 mov bp, sp ; 89 e5 … … 11022 10986 mov dx, strict word 0000eh ; ba 0e 00 11023 10987 mov ax, strict word 00040h ; b8 40 00 11024 call 0166eh ; e8 b1 a010988 call 0166eh ; e8 08 a1 11025 10989 mov cx, ax ; 89 c1 11026 10990 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 11031 10995 and AL, strict byte 021h ; 24 21 11032 10996 cmp AL, strict byte 021h ; 3c 21 11033 jne short 075 f2h ; 75 2210997 jne short 0759bh ; 75 22 11034 10998 mov dx, strict word 00060h ; ba 60 00 11035 10999 in AL, DX ; ec … … 11039 11003 mov dx, strict word 00026h ; ba 26 00 11040 11004 mov ax, cx ; 89 c8 11041 call 01652h ; e8 72a011005 call 01652h ; e8 c9 a0 11042 11006 mov byte [bp-002h], al ; 88 46 fe 11043 11007 mov dx, strict word 00027h ; ba 27 00 11044 11008 mov ax, cx ; 89 c8 11045 call 01652h ; e8 67a011009 call 01652h ; e8 be a0 11046 11010 mov byte [bp-006h], al ; 88 46 fa 11047 11011 test AL, strict byte 080h ; a8 80 11048 jne short 075 f5h ; 75 0311049 jmp near 076 6ch ; e9 77 0011012 jne short 0759eh ; 75 03 11013 jmp near 07615h ; e9 77 00 11050 11014 mov al, byte [bp-006h] ; 8a 46 fa 11051 11015 and AL, strict byte 007h ; 24 07 … … 11061 11025 add dx, strict byte 00028h ; 83 c2 28 11062 11026 mov ax, cx ; 89 c8 11063 call 01660h ; e8 48a011027 call 01660h ; e8 9f a0 11064 11028 mov al, byte [bp-008h] ; 8a 46 f8 11065 11029 cmp al, byte [bp-004h] ; 3a 46 fc 11066 jc short 076 5ch ; 72 3c11030 jc short 07605h ; 72 3c 11067 11031 mov dx, strict word 00028h ; ba 28 00 11068 11032 mov ax, cx ; 89 c8 11069 call 01652h ; e8 2aa011033 call 01652h ; e8 81 a0 11070 11034 xor ah, ah ; 30 e4 11071 11035 mov word [bp+00ch], ax ; 89 46 0c 11072 11036 mov dx, strict word 00029h ; ba 29 00 11073 11037 mov ax, cx ; 89 c8 11074 call 01652h ; e8 1da011038 call 01652h ; e8 74 a0 11075 11039 xor ah, ah ; 30 e4 11076 11040 mov word [bp+00ah], ax ; 89 46 0a 11077 11041 mov dx, strict word 0002ah ; ba 2a 00 11078 11042 mov ax, cx ; 89 c8 11079 call 01652h ; e8 10a011043 call 01652h ; e8 67 a0 11080 11044 xor ah, ah ; 30 e4 11081 11045 mov word [bp+008h], ax ; 89 46 08 … … 11084 11048 mov byte [bp-002h], ah ; 88 66 fe 11085 11049 test byte [bp-006h], 080h ; f6 46 fa 80 11086 je short 076 5fh ; 74 0a11050 je short 07608h ; 74 0a 11087 11051 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 11088 jmp short 076 5fh ; eb 0311052 jmp short 07608h ; eb 03 11089 11053 inc byte [bp-002h] ; fe 46 fe 11090 11054 mov bl, byte [bp-002h] ; 8a 5e fe … … 11092 11056 mov dx, strict word 00026h ; ba 26 00 11093 11057 mov ax, cx ; 89 c8 11094 call 01660h ; e8 f4 9f11058 call 01660h ; e8 4b a0 11095 11059 mov sp, bp ; 89 ec 11096 11060 pop bp ; 5d 11097 11061 retn ; c3 11098 retn 03e76h ; c2 76 3e11099 jnbe short 07633h ; 77 be11100 jnbe short 076cah ; 77 5311101 j s short 0763eh ; 78 c511102 js short 07 684h ; 78 0911103 j nbe short 0766ah ; 77 ed11104 js short 076 39h ; 78 ba11062 imul si, word [bp-019h], strict byte 00076h ; 6b 76 e7 76 11063 db 067h, 077h, 0fch 11064 ; jnbe short 0761ch ; 67 77 fc 11065 jnbe short 07690h ; 77 6e 11066 js short 075d6h ; 78 b2 11067 jbe short 075bch ; 76 96 11068 js short 0768bh ; 78 63 11105 11069 db 079h 11106 _int15_function_mouse: ; 0xf76 80LB 0x3a011070 _int15_function_mouse: ; 0xf7629 LB 0x3a0 11107 11071 push bp ; 55 11108 11072 mov bp, sp ; 89 e5 … … 11111 11075 mov dx, strict word 0000eh ; ba 0e 00 11112 11076 mov ax, strict word 00040h ; b8 40 00 11113 call 0166eh ; e8 de 9f11077 call 0166eh ; e8 35 a0 11114 11078 mov cx, ax ; 89 c1 11115 11079 cmp byte [bp+012h], 007h ; 80 7e 12 07 11116 jbe short 076 a3h ; 76 0b11080 jbe short 0764ch ; 76 0b 11117 11081 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11118 11082 mov byte [bp+013h], 001h ; c6 46 13 01 11119 jmp near 07 a1ah ; e9 77 0311083 jmp near 079c3h ; e9 77 03 11120 11084 mov ax, strict word 00065h ; b8 65 00 11121 call 075 78h ; e8 cf fe11085 call 07521h ; e8 cf fe 11122 11086 and word [bp+018h], strict byte 0fffeh ; 83 66 18 fe 11123 11087 mov byte [bp+013h], 000h ; c6 46 13 00 11124 11088 mov bl, byte [bp+012h] ; 8a 5e 12 11125 11089 cmp bl, 007h ; 80 fb 07 11126 jnbe short 07 717h ; 77 5e11090 jnbe short 076c0h ; 77 5e 11127 11091 xor bh, bh ; 30 ff 11128 11092 sal bx, 1 ; d1 e3 11129 jmp word [cs:bx+076 70h] ; 2e ff a7 707611093 jmp word [cs:bx+07619h] ; 2e ff a7 19 76 11130 11094 cmp byte [bp+00dh], 001h ; 80 7e 0d 01 11131 jnbe short 07 71ah ; 77 5211095 jnbe short 076c3h ; 77 52 11132 11096 mov dx, strict word 00027h ; ba 27 00 11133 11097 mov ax, cx ; 89 c8 11134 call 01652h ; e8 829f11098 call 01652h ; e8 d9 9f 11135 11099 test AL, strict byte 080h ; a8 80 11136 jne short 076 dfh ; 75 0b11100 jne short 07688h ; 75 0b 11137 11101 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11138 11102 mov byte [bp+013h], 005h ; c6 46 13 05 11139 jmp near 07 a14h ; e9 35 0311103 jmp near 079bdh ; e9 35 03 11140 11104 cmp byte [bp+00dh], 000h ; 80 7e 0d 00 11141 jne short 076 e9h ; 75 0411105 jne short 07692h ; 75 04 11142 11106 mov AL, strict byte 0f5h ; b0 f5 11143 jmp short 076 ebh ; eb 0211107 jmp short 07694h ; eb 02 11144 11108 mov AL, strict byte 0f4h ; b0 f4 11145 11109 xor ah, ah ; 30 e4 11146 call 074 e3h ; e8 f3 fd11110 call 0748ch ; e8 f3 fd 11147 11111 test al, al ; 84 c0 11148 jne short 07 71dh ; 75 2911112 jne short 076c6h ; 75 29 11149 11113 mov dx, ss ; 8c d2 11150 11114 lea ax, [bp-006h] ; 8d 46 fa 11151 call 07 51bh ; e8 1f fe11115 call 074c4h ; e8 1f fe 11152 11116 test al, al ; 84 c0 11153 je short 07 706h ; 74 0611117 je short 076afh ; 74 06 11154 11118 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11155 jne short 07 71dh ; 75 1711156 jmp near 07 a14h ; e9 0b 0311119 jne short 076c6h ; 75 17 11120 jmp near 079bdh ; e9 0b 03 11157 11121 mov al, byte [bp+00dh] ; 8a 46 0d 11158 11122 cmp AL, strict byte 001h ; 3c 01 11159 jc short 07 714h ; 72 0411123 jc short 076bdh ; 72 04 11160 11124 cmp AL, strict byte 008h ; 3c 08 11161 jbe short 07 720h ; 76 0c11162 jmp near 078 bbh ; e9 a4 0111163 jmp near 079 feh ; e9 e4 0211164 jmp near 07 a0ch ; e9 ef 0211165 jmp near 079 92h ; e9 72 0211125 jbe short 076c9h ; 76 0c 11126 jmp near 07864h ; e9 a4 01 11127 jmp near 079a7h ; e9 e4 02 11128 jmp near 079b5h ; e9 ef 02 11129 jmp near 0793bh ; e9 72 02 11166 11130 mov dx, strict word 00027h ; ba 27 00 11167 11131 mov ax, cx ; 89 c8 11168 call 01652h ; e8 2a9f11132 call 01652h ; e8 81 9f 11169 11133 mov ah, byte [bp+00dh] ; 8a 66 0d 11170 11134 db 0feh, 0cch … … 11176 11140 mov dx, strict word 00027h ; ba 27 00 11177 11141 mov ax, cx ; 89 c8 11178 call 01660h ; e8 229f11142 call 01660h ; e8 79 9f 11179 11143 mov dx, strict word 00026h ; ba 26 00 11180 11144 mov ax, cx ; 89 c8 11181 call 01652h ; e8 0c9f11145 call 01652h ; e8 63 9f 11182 11146 mov bl, al ; 88 c3 11183 11147 and bl, 0f8h ; 80 e3 f8 … … 11185 11149 mov dx, strict word 00026h ; ba 26 00 11186 11150 mov ax, cx ; 89 c8 11187 call 01660h ; e8 0b9f11151 call 01660h ; e8 62 9f 11188 11152 mov ax, 000ffh ; b8 ff 00 11189 call 074 e3h ; e8 88 fd11153 call 0748ch ; e8 88 fd 11190 11154 test al, al ; 84 c0 11191 jne short 07 71dh ; 75 be11155 jne short 076c6h ; 75 be 11192 11156 mov dx, ss ; 8c d2 11193 11157 lea ax, [bp-008h] ; 8d 46 f8 11194 call 07 51bh ; e8 b4 fd11158 call 074c4h ; e8 b4 fd 11195 11159 mov cl, al ; 88 c1 11196 11160 cmp byte [bp-008h], 0feh ; 80 7e f8 fe 11197 jne short 077 79h ; 75 0a11161 jne short 07722h ; 75 0a 11198 11162 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11199 11163 mov byte [bp+013h], 004h ; c6 46 13 04 11200 jmp short 07 706h ; eb 8d11164 jmp short 076afh ; eb 8d 11201 11165 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11202 je short 077 93h ; 74 1411166 je short 0773ch ; 74 14 11203 11167 mov al, byte [bp-008h] ; 8a 46 f8 11204 11168 xor ah, ah ; 30 e4 … … 11208 11172 mov ax, strict word 00007h ; b8 07 00 11209 11173 push ax ; 50 11210 call 01976h ; e8 e6 a111174 call 01976h ; e8 3d a2 11211 11175 add sp, strict byte 00006h ; 83 c4 06 11212 11176 test cl, cl ; 84 c9 11213 jne short 07 71dh ; 75 8611177 jne short 076c6h ; 75 86 11214 11178 mov dx, ss ; 8c d2 11215 11179 lea ax, [bp-006h] ; 8d 46 fa 11216 call 07 51bh ; e8 7c fd11180 call 074c4h ; e8 7c fd 11217 11181 test al, al ; 84 c0 11218 jne short 077 f9h ; 75 5611182 jne short 077a2h ; 75 56 11219 11183 mov dx, ss ; 8c d2 11220 11184 lea ax, [bp-004h] ; 8d 46 fc 11221 call 07 51bh ; e8 70 fd11185 call 074c4h ; e8 70 fd 11222 11186 test al, al ; 84 c0 11223 jne short 077 f9h ; 75 4a11187 jne short 077a2h ; 75 4a 11224 11188 mov al, byte [bp-006h] ; 8a 46 fa 11225 11189 mov byte [bp+00ch], al ; 88 46 0c 11226 11190 mov al, byte [bp-004h] ; 8a 46 fc 11227 11191 mov byte [bp+00dh], al ; 88 46 0d 11228 jmp near 07 a14h ; e9 56 0211192 jmp near 079bdh ; e9 56 02 11229 11193 mov al, byte [bp+00dh] ; 8a 46 0d 11230 11194 cmp AL, strict byte 003h ; 3c 03 11231 jc short 077 d5h ; 72 1011232 jbe short 077 f3h ; 76 2c11195 jc short 0777eh ; 72 10 11196 jbe short 0779ch ; 76 2c 11233 11197 cmp AL, strict byte 006h ; 3c 06 11234 je short 07 808h ; 74 3d11198 je short 077b1h ; 74 3d 11235 11199 cmp AL, strict byte 005h ; 3c 05 11236 je short 07 802h ; 74 3311200 je short 077abh ; 74 33 11237 11201 cmp AL, strict byte 004h ; 3c 04 11238 je short 077 fch ; 74 2911239 jmp short 07 80eh ; eb 3911202 je short 077a5h ; 74 29 11203 jmp short 077b7h ; eb 39 11240 11204 cmp AL, strict byte 002h ; 3c 02 11241 je short 077 edh ; 74 1411205 je short 07796h ; 74 14 11242 11206 cmp AL, strict byte 001h ; 3c 01 11243 je short 077 e7h ; 74 0a11207 je short 07790h ; 74 0a 11244 11208 test al, al ; 84 c0 11245 jne short 07 80eh ; 75 2d11209 jne short 077b7h ; 75 2d 11246 11210 mov byte [bp-006h], 00ah ; c6 46 fa 0a 11247 jmp short 07 812h ; eb 2b11211 jmp short 077bbh ; eb 2b 11248 11212 mov byte [bp-006h], 014h ; c6 46 fa 14 11249 jmp short 07 812h ; eb 2511213 jmp short 077bbh ; eb 25 11250 11214 mov byte [bp-006h], 028h ; c6 46 fa 28 11251 jmp short 07 812h ; eb 1f11215 jmp short 077bbh ; eb 1f 11252 11216 mov byte [bp-006h], 03ch ; c6 46 fa 3c 11253 jmp short 07 812h ; eb 1911254 jmp near 079 92h ; e9 96 0111217 jmp short 077bbh ; eb 19 11218 jmp near 0793bh ; e9 96 01 11255 11219 mov byte [bp-006h], 050h ; c6 46 fa 50 11256 jmp short 07 812h ; eb 1011220 jmp short 077bbh ; eb 10 11257 11221 mov byte [bp-006h], 064h ; c6 46 fa 64 11258 jmp short 07 812h ; eb 0a11222 jmp short 077bbh ; eb 0a 11259 11223 mov byte [bp-006h], 0c8h ; c6 46 fa c8 11260 jmp short 07 812h ; eb 0411224 jmp short 077bbh ; eb 04 11261 11225 mov byte [bp-006h], 000h ; c6 46 fa 00 11262 11226 cmp byte [bp-006h], 000h ; 80 7e fa 00 11263 jbe short 07 848h ; 76 3011227 jbe short 077f1h ; 76 30 11264 11228 mov ax, 000f3h ; b8 f3 00 11265 call 074 e3h ; e8 c5 fc11229 call 0748ch ; e8 c5 fc 11266 11230 test al, al ; 84 c0 11267 jne short 07 83dh ; 75 1b11231 jne short 077e6h ; 75 1b 11268 11232 mov dx, ss ; 8c d2 11269 11233 lea ax, [bp-004h] ; 8d 46 fc 11270 call 07 51bh ; e8 f1 fc11234 call 074c4h ; e8 f1 fc 11271 11235 mov al, byte [bp-006h] ; 8a 46 fa 11272 11236 xor ah, ah ; 30 e4 11273 call 074 e3h ; e8 b1 fc11237 call 0748ch ; e8 b1 fc 11274 11238 mov dx, ss ; 8c d2 11275 11239 lea ax, [bp-004h] ; 8d 46 fc 11276 call 07 51bh ; e8 e1 fc11277 jmp near 07 a14h ; e9 d7 0111240 call 074c4h ; e8 e1 fc 11241 jmp near 079bdh ; e9 d7 01 11278 11242 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11279 11243 mov byte [bp+013h], 003h ; c6 46 13 03 11280 jmp near 07 a14h ; e9 cc 0111244 jmp near 079bdh ; e9 cc 01 11281 11245 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11282 11246 mov byte [bp+013h], 002h ; c6 46 13 02 11283 jmp near 07 a14h ; e9 c1 0111247 jmp near 079bdh ; e9 c1 01 11284 11248 cmp byte [bp+00dh], 004h ; 80 7e 0d 04 11285 jnc short 078 bbh ; 73 6211249 jnc short 07864h ; 73 62 11286 11250 mov ax, 000e8h ; b8 e8 00 11287 call 074 e3h ; e8 84 fc11251 call 0748ch ; e8 84 fc 11288 11252 test al, al ; 84 c0 11289 jne short 078 b1h ; 75 4e11253 jne short 0785ah ; 75 4e 11290 11254 mov dx, ss ; 8c d2 11291 11255 lea ax, [bp-006h] ; 8d 46 fa 11292 call 07 51bh ; e8 b0 fc11256 call 074c4h ; e8 b0 fc 11293 11257 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11294 je short 078 85h ; 74 1411258 je short 0782eh ; 74 14 11295 11259 mov al, byte [bp-006h] ; 8a 46 fa 11296 11260 xor ah, ah ; 30 e4 … … 11300 11264 mov ax, strict word 00007h ; b8 07 00 11301 11265 push ax ; 50 11302 call 01976h ; e8 f4 a011266 call 01976h ; e8 4b a1 11303 11267 add sp, strict byte 00006h ; 83 c4 06 11304 11268 mov al, byte [bp+00dh] ; 8a 46 0d 11305 11269 xor ah, ah ; 30 e4 11306 call 074 e3h ; e8 56 fc11270 call 0748ch ; e8 56 fc 11307 11271 mov dx, ss ; 8c d2 11308 11272 lea ax, [bp-006h] ; 8d 46 fa 11309 call 07 51bh ; e8 86 fc11273 call 074c4h ; e8 86 fc 11310 11274 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11311 je short 078 eah ; 74 4f11275 je short 07893h ; 74 4f 11312 11276 mov al, byte [bp-006h] ; 8a 46 fa 11313 11277 xor ah, ah ; 30 e4 … … 11317 11281 mov ax, strict word 00007h ; b8 07 00 11318 11282 push ax ; 50 11319 call 01976h ; e8 ca a011283 call 01976h ; e8 21 a1 11320 11284 add sp, strict byte 00006h ; 83 c4 06 11321 jmp short 078 eah ; eb 3911285 jmp short 07893h ; eb 39 11322 11286 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11323 11287 mov byte [bp+013h], 003h ; c6 46 13 03 11324 jmp short 078 eah ; eb 2f11288 jmp short 07893h ; eb 2f 11325 11289 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11326 11290 mov byte [bp+013h], 002h ; c6 46 13 02 11327 jmp short 078 eah ; eb 2511291 jmp short 07893h ; eb 25 11328 11292 mov ax, 000f2h ; b8 f2 00 11329 call 074 e3h ; e8 18 fc11293 call 0748ch ; e8 18 fc 11330 11294 test al, al ; 84 c0 11331 jne short 078 e2h ; 75 1311295 jne short 0788bh ; 75 13 11332 11296 mov dx, ss ; 8c d2 11333 11297 lea ax, [bp-006h] ; 8d 46 fa 11334 call 07 51bh ; e8 44 fc11298 call 074c4h ; e8 44 fc 11335 11299 mov dx, ss ; 8c d2 11336 11300 lea ax, [bp-004h] ; 8d 46 fc 11337 call 07 51bh ; e8 3c fc11338 jmp near 077 b5h ; e9 d3 fe11301 call 074c4h ; e8 3c fc 11302 jmp near 0775eh ; e9 d3 fe 11339 11303 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11340 11304 mov byte [bp+013h], 003h ; c6 46 13 03 11341 jmp near 07 a14h ; e9 27 0111305 jmp near 079bdh ; e9 27 01 11342 11306 mov al, byte [bp+00dh] ; 8a 46 0d 11343 11307 test al, al ; 84 c0 11344 jbe short 078 fdh ; 76 0911308 jbe short 078a6h ; 76 09 11345 11309 cmp AL, strict byte 002h ; 3c 02 11346 jbe short 078 fbh ; 76 0311347 jmp near 079 9ch ; e9 a1 0011348 jmp short 079 67h ; eb 6a11310 jbe short 078a4h ; 76 03 11311 jmp near 07945h ; e9 a1 00 11312 jmp short 07910h ; eb 6a 11349 11313 mov ax, 000e9h ; b8 e9 00 11350 call 074 e3h ; e8 e0 fb11314 call 0748ch ; e8 e0 fb 11351 11315 test al, al ; 84 c0 11352 jne short 079 70h ; 75 6911316 jne short 07919h ; 75 69 11353 11317 mov dx, ss ; 8c d2 11354 11318 lea ax, [bp-006h] ; 8d 46 fa 11355 call 07 51bh ; e8 0c fc11319 call 074c4h ; e8 0c fc 11356 11320 mov cl, al ; 88 c1 11357 11321 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11358 je short 07 92bh ; 74 1411322 je short 078d4h ; 74 14 11359 11323 mov al, byte [bp-006h] ; 8a 46 fa 11360 11324 xor ah, ah ; 30 e4 … … 11364 11328 mov ax, strict word 00007h ; b8 07 00 11365 11329 push ax ; 50 11366 call 01976h ; e8 4ea011330 call 01976h ; e8 a5 a0 11367 11331 add sp, strict byte 00006h ; 83 c4 06 11368 11332 test cl, cl ; 84 c9 11369 jne short 079 92h ; 75 6311333 jne short 0793bh ; 75 63 11370 11334 mov dx, ss ; 8c d2 11371 11335 lea ax, [bp-006h] ; 8d 46 fa 11372 call 07 51bh ; e8 e4 fb11336 call 074c4h ; e8 e4 fb 11373 11337 test al, al ; 84 c0 11374 jne short 079 92h ; 75 5711338 jne short 0793bh ; 75 57 11375 11339 mov dx, ss ; 8c d2 11376 11340 lea ax, [bp-004h] ; 8d 46 fc 11377 call 07 51bh ; e8 d8 fb11341 call 074c4h ; e8 d8 fb 11378 11342 test al, al ; 84 c0 11379 jne short 079 92h ; 75 4b11343 jne short 0793bh ; 75 4b 11380 11344 mov dx, ss ; 8c d2 11381 11345 lea ax, [bp-008h] ; 8d 46 f8 11382 call 07 51bh ; e8 cc fb11346 call 074c4h ; e8 cc fb 11383 11347 test al, al ; 84 c0 11384 jne short 079 92h ; 75 3f11348 jne short 0793bh ; 75 3f 11385 11349 mov al, byte [bp-006h] ; 8a 46 fa 11386 11350 mov byte [bp+00ch], al ; 88 46 0c … … 11389 11353 mov al, byte [bp-008h] ; 8a 46 f8 11390 11354 mov byte [bp+00eh], al ; 88 46 0e 11391 jmp short 078 eah ; eb 8311355 jmp short 07893h ; eb 83 11392 11356 cmp AL, strict byte 001h ; 3c 01 11393 jne short 079 72h ; 75 0711357 jne short 0791bh ; 75 07 11394 11358 mov ax, 000e6h ; b8 e6 00 11395 jmp short 079 75h ; eb 0511396 jmp short 079 92h ; eb 2011359 jmp short 0791eh ; eb 05 11360 jmp short 0793bh ; eb 20 11397 11361 mov ax, 000e7h ; b8 e7 00 11398 call 074 e3h ; e8 6b fb11362 call 0748ch ; e8 6b fb 11399 11363 mov cl, al ; 88 c1 11400 11364 test cl, cl ; 84 c9 11401 jne short 079 8eh ; 75 1011365 jne short 07937h ; 75 10 11402 11366 mov dx, ss ; 8c d2 11403 11367 lea ax, [bp-006h] ; 8d 46 fa 11404 call 07 51bh ; e8 95 fb11368 call 074c4h ; e8 95 fb 11405 11369 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11406 je short 079 8eh ; 74 0211370 je short 07937h ; 74 02 11407 11371 mov CL, strict byte 001h ; b1 01 11408 11372 test cl, cl ; 84 c9 11409 je short 079 fch ; 74 6a11373 je short 079a5h ; 74 6a 11410 11374 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11411 11375 mov byte [bp+013h], 003h ; c6 46 13 03 11412 jmp short 079 fch ; eb 6011376 jmp short 079a5h ; eb 60 11413 11377 mov al, byte [bp+00dh] ; 8a 46 0d 11414 11378 xor ah, ah ; 30 e4 … … 11418 11382 mov ax, strict word 00007h ; b8 07 00 11419 11383 push ax ; 50 11420 call 01976h ; e8 c9 9f11384 call 01976h ; e8 20 a0 11421 11385 add sp, strict byte 00006h ; 83 c4 06 11422 11386 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11423 11387 mov byte [bp+013h], 001h ; c6 46 13 01 11424 jmp short 07 a14h ; eb 5a11388 jmp short 079bdh ; eb 5a 11425 11389 mov si, word [bp+00ch] ; 8b 76 0c 11426 11390 mov bx, si ; 89 f3 11427 11391 mov dx, strict word 00022h ; ba 22 00 11428 11392 mov ax, cx ; 89 c8 11429 call 0167ch ; e8 b5 9c11393 call 0167ch ; e8 0c 9d 11430 11394 mov bx, word [bp+014h] ; 8b 5e 14 11431 11395 mov dx, strict word 00024h ; ba 24 00 11432 11396 mov ax, cx ; 89 c8 11433 call 0167ch ; e8 aa 9c11397 call 0167ch ; e8 01 9d 11434 11398 mov dx, strict word 00027h ; ba 27 00 11435 11399 mov ax, cx ; 89 c8 11436 call 01652h ; e8 789c11400 call 01652h ; e8 cf 9c 11437 11401 mov ah, al ; 88 c4 11438 11402 test si, si ; 85 f6 11439 jne short 079 eeh ; 75 0e11403 jne short 07997h ; 75 0e 11440 11404 cmp word [bp+014h], strict byte 00000h ; 83 7e 14 00 11441 jne short 079 eeh ; 75 0811405 jne short 07997h ; 75 08 11442 11406 test AL, strict byte 080h ; a8 80 11443 je short 079 f0h ; 74 0611407 je short 07999h ; 74 06 11444 11408 and AL, strict byte 07fh ; 24 7f 11445 jmp short 079 f0h ; eb 0211409 jmp short 07999h ; eb 02 11446 11410 or AL, strict byte 080h ; 0c 80 11447 11411 mov bl, al ; 88 c3 … … 11449 11413 mov dx, strict word 00027h ; ba 27 00 11450 11414 mov ax, cx ; 89 c8 11451 call 01660h ; e8 649c11452 jmp short 07 a14h ; eb 1611415 call 01660h ; e8 bb 9c 11416 jmp short 079bdh ; eb 16 11453 11417 mov ax, 00974h ; b8 74 09 11454 11418 push ax ; 50 11455 11419 mov ax, strict word 00007h ; b8 07 00 11456 11420 push ax ; 50 11457 call 01976h ; e8 6d9f11421 call 01976h ; e8 c4 9f 11458 11422 add sp, strict byte 00004h ; 83 c4 04 11459 11423 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11460 11424 mov byte [bp+013h], 001h ; c6 46 13 01 11461 11425 mov ax, strict word 00047h ; b8 47 00 11462 call 075 78h ; e8 5e fb11426 call 07521h ; e8 5e fb 11463 11427 lea sp, [bp-002h] ; 8d 66 fe 11464 11428 pop si ; 5e 11465 11429 pop bp ; 5d 11466 11430 retn ; c3 11467 _int17_function: ; 0xf7 a20LB 0xac11431 _int17_function: ; 0xf79c9 LB 0xac 11468 11432 push bp ; 55 11469 11433 mov bp, sp ; 89 e5 … … 11475 11439 add dx, strict byte 00008h ; 83 c2 08 11476 11440 mov ax, strict word 00040h ; b8 40 00 11477 call 0166eh ; e8 3a9c11441 call 0166eh ; e8 91 9c 11478 11442 mov bx, ax ; 89 c3 11479 11443 mov si, ax ; 89 c6 11480 11444 cmp byte [bp+013h], 003h ; 80 7e 13 03 11481 jnc short 07 a4ah ; 73 0c11445 jnc short 079f3h ; 73 0c 11482 11446 mov ax, word [bp+00eh] ; 8b 46 0e 11483 11447 cmp ax, strict word 00003h ; 3d 03 00 11484 jnc short 07 a4ah ; 73 0411448 jnc short 079f3h ; 73 04 11485 11449 test bx, bx ; 85 db 11486 jnbe short 07 a4dh ; 77 0311487 jmp near 07a c2h ; e9 75 0011450 jnbe short 079f6h ; 77 03 11451 jmp near 07a6bh ; e9 75 00 11488 11452 mov dx, ax ; 89 c2 11489 11453 add dx, strict byte 00078h ; 83 c2 78 11490 11454 mov ax, strict word 00040h ; b8 40 00 11491 call 01652h ; e8 fa 9b11455 call 01652h ; e8 51 9c 11492 11456 mov ch, al ; 88 c5 11493 11457 xor cl, cl ; 30 c9 11494 11458 cmp byte [bp+013h], 000h ; 80 7e 13 00 11495 jne short 07a 8eh ; 75 2c11459 jne short 07a37h ; 75 2c 11496 11460 mov al, byte [bp+012h] ; 8a 46 12 11497 11461 mov dx, bx ; 89 da … … 11513 11477 ; sub ah, ah ; 2a e4 11514 11478 test AL, strict byte 040h ; a8 40 11515 je short 07a 8eh ; 74 0711479 je short 07a37h ; 74 07 11516 11480 test cx, cx ; 85 c9 11517 je short 07a 8eh ; 74 0311481 je short 07a37h ; 74 03 11518 11482 dec cx ; 49 11519 jmp short 07a 7dh ; eb ef11483 jmp short 07a26h ; eb ef 11520 11484 cmp byte [bp+013h], 001h ; 80 7e 13 01 11521 jne short 07a a9h ; 75 1511485 jne short 07a52h ; 75 15 11522 11486 lea dx, [si+002h] ; 8d 54 02 11523 11487 in AL, DX ; ec … … 11538 11502 mov byte [bp+013h], al ; 88 46 13 11539 11503 test cx, cx ; 85 c9 11540 jne short 07a bch ; 75 0411504 jne short 07a65h ; 75 04 11541 11505 or byte [bp+013h], 001h ; 80 4e 13 01 11542 11506 and byte [bp+01ch], 0feh ; 80 66 1c fe 11543 jmp short 07a c6h ; eb 0411507 jmp short 07a6fh ; eb 04 11544 11508 or byte [bp+01ch], 001h ; 80 4e 1c 01 11545 11509 lea sp, [bp-002h] ; 8d 66 fe … … 11547 11511 pop bp ; 5d 11548 11512 retn ; c3 11549 wait_: ; 0xf7a ccLB 0xb211513 wait_: ; 0xf7a75 LB 0xb2 11550 11514 push bp ; 55 11551 11515 mov bp, sp ; 89 e5 … … 11565 11529 mov dx, 0046ch ; ba 6c 04 11566 11530 xor ax, ax ; 31 c0 11567 call 0168ah ; e8 9b9b11531 call 0168ah ; e8 f2 9b 11568 11532 mov word [bp-00eh], ax ; 89 46 f2 11569 11533 mov bx, dx ; 89 d3 … … 11571 11535 mov dx, 0046ch ; ba 6c 04 11572 11536 xor ax, ax ; 31 c0 11573 call 0168ah ; e8 8d9b11537 call 0168ah ; e8 e4 9b 11574 11538 mov word [bp-012h], ax ; 89 46 ee 11575 11539 mov di, dx ; 89 d7 11576 11540 cmp dx, bx ; 39 da 11577 jnbe short 07 b0dh ; 77 0711578 jne short 07 b14h ; 75 0c11541 jnbe short 07ab6h ; 77 07 11542 jne short 07abdh ; 75 0c 11579 11543 cmp ax, word [bp-00eh] ; 3b 46 f2 11580 jbe short 07 b14h ; 76 0711544 jbe short 07abdh ; 76 07 11581 11545 sub ax, word [bp-00eh] ; 2b 46 f2 11582 11546 sbb dx, bx ; 19 da 11583 jmp short 07 b1fh ; eb 0b11547 jmp short 07ac8h ; eb 0b 11584 11548 cmp dx, bx ; 39 da 11585 jc short 07 b1fh ; 72 0711586 jne short 07 b23h ; 75 0911549 jc short 07ac8h ; 72 07 11550 jne short 07acch ; 75 09 11587 11551 cmp ax, word [bp-00eh] ; 3b 46 f2 11588 jnc short 07 b23h ; 73 0411552 jnc short 07acch ; 73 04 11589 11553 sub si, ax ; 29 c6 11590 11554 sbb cx, dx ; 19 d1 … … 11594 11558 mov ax, 00100h ; b8 00 01 11595 11559 int 016h ; cd 16 11596 je short 07 b37h ; 74 0511560 je short 07ae0h ; 74 05 11597 11561 mov AL, strict byte 001h ; b0 01 11598 jmp near 07 b39h ; e9 02 0011562 jmp near 07ae2h ; e9 02 00 11599 11563 db 032h, 0c0h 11600 11564 ; xor al, al ; 32 c0 11601 11565 test al, al ; 84 c0 11602 je short 07b 63h ; 74 2611566 je short 07b0ch ; 74 26 11603 11567 db 033h, 0c0h 11604 11568 ; xor ax, ax ; 33 c0 … … 11613 11577 mov ax, strict word 00004h ; b8 04 00 11614 11578 push ax ; 50 11615 call 01976h ; e8 209e11579 call 01976h ; e8 77 9e 11616 11580 add sp, strict byte 00006h ; 83 c4 06 11617 11581 cmp byte [bp-00ah], 000h ; 80 7e f6 00 11618 je short 07b 63h ; 74 0411582 je short 07b0ch ; 74 04 11619 11583 mov al, dl ; 88 d0 11620 jmp short 07b 75h ; eb 1211584 jmp short 07b1eh ; eb 12 11621 11585 test cx, cx ; 85 c9 11622 jnle short 07a f4h ; 7f 8d11623 jne short 07b 6dh ; 75 0411586 jnle short 07a9dh ; 7f 8d 11587 jne short 07b16h ; 75 04 11624 11588 test si, si ; 85 f6 11625 jnbe short 07a f4h ; 77 8711589 jnbe short 07a9dh ; 77 87 11626 11590 mov ax, word [bp-010h] ; 8b 46 f0 11627 11591 push ax ; 50 … … 11635 11599 pop bp ; 5d 11636 11600 retn ; c3 11637 read_logo_byte_: ; 0xf7b 7eLB 0x1611601 read_logo_byte_: ; 0xf7b27 LB 0x16 11638 11602 push bp ; 55 11639 11603 mov bp, sp ; 89 e5 … … 11650 11614 pop bp ; 5d 11651 11615 retn ; c3 11652 read_logo_word_: ; 0xf7b 94LB 0x1411616 read_logo_word_: ; 0xf7b3d LB 0x14 11653 11617 push bp ; 55 11654 11618 mov bp, sp ; 89 e5 … … 11663 11627 pop bp ; 5d 11664 11628 retn ; c3 11665 print_detected_harddisks_: ; 0xf7b a8LB 0x15a11629 print_detected_harddisks_: ; 0xf7b51 LB 0x15a 11666 11630 push bp ; 55 11667 11631 mov bp, sp ; 89 e5 … … 11673 11637 mov dx, strict word 0000eh ; ba 0e 00 11674 11638 mov ax, strict word 00040h ; b8 40 00 11675 call 0166eh ; e8 b3 9a11639 call 0166eh ; e8 0a 9b 11676 11640 mov si, ax ; 89 c6 11677 11641 mov byte [bp-00eh], 000h ; c6 46 f2 00 … … 11679 11643 mov byte [bp-00ch], ch ; 88 6e f4 11680 11644 mov dx, 00304h ; ba 04 03 11681 call 01652h ; e8 869a11645 call 01652h ; e8 dd 9a 11682 11646 mov byte [bp-00ah], al ; 88 46 f6 11683 11647 xor cl, cl ; 30 c9 11684 11648 cmp cl, byte [bp-00ah] ; 3a 4e f6 11685 jnc short 07 c34h ; 73 5e11649 jnc short 07bddh ; 73 5e 11686 11650 mov al, cl ; 88 c8 11687 11651 xor ah, ah ; 30 e4 … … 11689 11653 add dx, 00305h ; 81 c2 05 03 11690 11654 mov ax, si ; 89 f0 11691 call 01652h ; e8 6d9a11655 call 01652h ; e8 c4 9a 11692 11656 mov bl, al ; 88 c3 11693 11657 cmp AL, strict byte 00ch ; 3c 0c 11694 jc short 07 c16h ; 72 2b11658 jc short 07bbfh ; 72 2b 11695 11659 test ch, ch ; 84 ed 11696 jne short 07b ffh ; 75 1011660 jne short 07ba8h ; 75 10 11697 11661 mov ax, 009a7h ; b8 a7 09 11698 11662 push ax ; 50 11699 11663 mov ax, strict word 00002h ; b8 02 00 11700 11664 push ax ; 50 11701 call 01976h ; e8 7c9d11665 call 01976h ; e8 d3 9d 11702 11666 add sp, strict byte 00004h ; 83 c4 04 11703 11667 mov CH, strict byte 001h ; b5 01 … … 11710 11674 mov ax, strict word 00002h ; b8 02 00 11711 11675 push ax ; 50 11712 call 01976h ; e8 669d11676 call 01976h ; e8 bd 9d 11713 11677 add sp, strict byte 00006h ; 83 c4 06 11714 jmp near 07c c8h ; e9 b2 0011678 jmp near 07c71h ; e9 b2 00 11715 11679 cmp AL, strict byte 008h ; 3c 08 11716 jc short 07 c37h ; 72 1d11680 jc short 07be0h ; 72 1d 11717 11681 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11718 jne short 07 c32h ; 75 1211682 jne short 07bdbh ; 75 12 11719 11683 mov ax, 009cfh ; b8 cf 09 11720 11684 push ax ; 50 11721 11685 mov ax, strict word 00002h ; b8 02 00 11722 11686 push ax ; 50 11723 call 01976h ; e8 4b9d11687 call 01976h ; e8 a2 9d 11724 11688 add sp, strict byte 00004h ; 83 c4 04 11725 11689 mov byte [bp-00ch], 001h ; c6 46 f4 01 11726 jmp short 07b ffh ; eb cb11727 jmp near 07c cdh ; e9 96 0011690 jmp short 07ba8h ; eb cb 11691 jmp near 07c76h ; e9 96 00 11728 11692 cmp AL, strict byte 004h ; 3c 04 11729 jnc short 07 c55h ; 73 1a11693 jnc short 07bfeh ; 73 1a 11730 11694 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11731 jne short 07 c55h ; 75 1411695 jne short 07bfeh ; 75 14 11732 11696 mov ax, 009e4h ; b8 e4 09 11733 11697 push ax ; 50 11734 11698 mov ax, strict word 00002h ; b8 02 00 11735 11699 push ax ; 50 11736 call 01976h ; e8 2a9d11700 call 01976h ; e8 81 9d 11737 11701 add sp, strict byte 00004h ; 83 c4 04 11738 11702 mov byte [bp-00eh], 001h ; c6 46 f2 01 11739 jmp short 07c 6eh ; eb 1911703 jmp short 07c17h ; eb 19 11740 11704 cmp bl, 004h ; 80 fb 04 11741 jc short 07c 6eh ; 72 1411705 jc short 07c17h ; 72 14 11742 11706 test ch, ch ; 84 ed 11743 jne short 07c 6eh ; 75 1011707 jne short 07c17h ; 75 10 11744 11708 mov ax, 009f6h ; b8 f6 09 11745 11709 push ax ; 50 11746 11710 mov ax, strict word 00002h ; b8 02 00 11747 11711 push ax ; 50 11748 call 01976h ; e8 0d9d11712 call 01976h ; e8 64 9d 11749 11713 add sp, strict byte 00004h ; 83 c4 04 11750 11714 mov CH, strict byte 001h ; b5 01 … … 11757 11721 mov ax, strict word 00002h ; b8 02 00 11758 11722 push ax ; 50 11759 call 01976h ; e8 f7 9c11723 call 01976h ; e8 4e 9d 11760 11724 add sp, strict byte 00006h ; 83 c4 06 11761 11725 cmp bl, 004h ; 80 fb 04 11762 jc short 07c 8ah ; 72 0311726 jc short 07c33h ; 72 03 11763 11727 sub bl, 004h ; 80 eb 04 11764 11728 mov al, bl ; 88 d8 … … 11769 11733 sar ax, 1 ; d1 f8 11770 11734 test ax, ax ; 85 c0 11771 je short 07c 9ch ; 74 0511735 je short 07c45h ; 74 05 11772 11736 mov ax, 00a14h ; b8 14 0a 11773 jmp short 07c 9fh ; eb 0311737 jmp short 07c48h ; eb 03 11774 11738 mov ax, 00a1fh ; b8 1f 0a 11775 11739 push ax ; 50 11776 11740 mov ax, strict word 00002h ; b8 02 00 11777 11741 push ax ; 50 11778 call 01976h ; e8 cf 9c11742 call 01976h ; e8 26 9d 11779 11743 add sp, strict byte 00004h ; 83 c4 04 11780 11744 mov al, bl ; 88 d8 … … 11784 11748 idiv bx ; f7 fb 11785 11749 test dx, dx ; 85 d2 11786 je short 07c bdh ; 74 0511750 je short 07c66h ; 74 05 11787 11751 mov ax, 00a28h ; b8 28 0a 11788 jmp short 07c c0h ; eb 0311752 jmp short 07c69h ; eb 03 11789 11753 mov ax, 00a2eh ; b8 2e 0a 11790 11754 push ax ; 50 11791 11755 push bx ; 53 11792 call 01976h ; e8 b1 9c11756 call 01976h ; e8 08 9d 11793 11757 add sp, strict byte 00004h ; 83 c4 04 11794 11758 db 0feh, 0c1h 11795 11759 ; inc cl ; fe c1 11796 jmp near 07b d1h ; e9 04 ff11760 jmp near 07b7ah ; e9 04 ff 11797 11761 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11798 jne short 07c ebh ; 75 1811762 jne short 07c94h ; 75 18 11799 11763 test ch, ch ; 84 ed 11800 jne short 07c ebh ; 75 1411764 jne short 07c94h ; 75 14 11801 11765 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11802 jne short 07c ebh ; 75 0e11766 jne short 07c94h ; 75 0e 11803 11767 mov ax, 00a35h ; b8 35 0a 11804 11768 push ax ; 50 11805 11769 mov ax, strict word 00002h ; b8 02 00 11806 11770 push ax ; 50 11807 call 01976h ; e8 8e9c11771 call 01976h ; e8 e5 9c 11808 11772 add sp, strict byte 00004h ; 83 c4 04 11809 11773 mov ax, 00a49h ; b8 49 0a … … 11811 11775 mov ax, strict word 00002h ; b8 02 00 11812 11776 push ax ; 50 11813 call 01976h ; e8 809c11777 call 01976h ; e8 d7 9c 11814 11778 add sp, strict byte 00004h ; 83 c4 04 11815 11779 lea sp, [bp-008h] ; 8d 66 f8 … … 11820 11784 pop bp ; 5d 11821 11785 retn ; c3 11822 get_boot_drive_: ; 0xf7 d02LB 0x2811786 get_boot_drive_: ; 0xf7cab LB 0x28 11823 11787 push bp ; 55 11824 11788 mov bp, sp ; 89 e5 … … 11828 11792 mov dx, strict word 0000eh ; ba 0e 00 11829 11793 mov ax, strict word 00040h ; b8 40 00 11830 call 0166eh ; e8 5c9911794 call 0166eh ; e8 b3 99 11831 11795 mov dx, 00304h ; ba 04 03 11832 call 01652h ; e8 3a9911796 call 01652h ; e8 91 99 11833 11797 sub bl, 002h ; 80 eb 02 11834 11798 cmp bl, al ; 38 c3 11835 jc short 07 d21h ; 72 0211799 jc short 07ccah ; 72 02 11836 11800 mov BL, strict byte 0ffh ; b3 ff 11837 11801 mov al, bl ; 88 d8 … … 11841 11805 pop bp ; 5d 11842 11806 retn ; c3 11843 show_logo_: ; 0xf7 d2a LB 0x24211807 show_logo_: ; 0xf7cd3 LB 0x240 11844 11808 push bp ; 55 11845 11809 mov bp, sp ; 89 e5 … … 11852 11816 mov dx, strict word 0000eh ; ba 0e 00 11853 11817 mov ax, strict word 00040h ; b8 40 00 11854 call 0166eh ; e8 309911818 call 0166eh ; e8 87 99 11855 11819 mov si, ax ; 89 c6 11856 11820 mov byte [bp-00ch], 000h ; c6 46 f4 00 … … 11864 11828 mov al, cl ; 88 c8 11865 11829 xor ah, ah ; 30 e4 11866 call 07b 94h ; e8 3b fe11830 call 07b3dh ; e8 3b fe 11867 11831 cmp ax, 066bbh ; 3d bb 66 11868 jne short 07d 70h ; 75 1211832 jne short 07d19h ; 75 12 11869 11833 push SS ; 16 11870 11834 pop ES ; 07 … … 11874 11838 mov word [es:di], bx ; 26 89 1d 11875 11839 cmp ax, strict word 0004fh ; 3d 4f 00 11876 je short 07d 73h ; 74 0311877 jmp near 07 e39h ; e9 c6 0011840 je short 07d1ch ; 74 03 11841 jmp near 07de2h ; e9 c6 00 11878 11842 mov al, cl ; 88 c8 11879 11843 add AL, strict byte 004h ; 04 04 11880 11844 xor ah, ah ; 30 e4 11881 call 07b 7eh ; e8 02 fe11845 call 07b27h ; e8 02 fe 11882 11846 mov bl, al ; 88 c3 11883 11847 mov byte [bp-014h], al ; 88 46 ec … … 11885 11849 add AL, strict byte 005h ; 04 05 11886 11850 xor ah, ah ; 30 e4 11887 call 07b 7eh ; e8 f4 fd11851 call 07b27h ; e8 f4 fd 11888 11852 mov bh, al ; 88 c7 11889 11853 mov byte [bp-012h], al ; 88 46 ee … … 11891 11855 add AL, strict byte 002h ; 04 02 11892 11856 xor ah, ah ; 30 e4 11893 call 07b 94h ; e8 fc fd11857 call 07b3dh ; e8 fc fd 11894 11858 mov dx, ax ; 89 c2 11895 11859 mov word [bp-016h], ax ; 89 46 ea … … 11897 11861 add AL, strict byte 006h ; 04 06 11898 11862 xor ah, ah ; 30 e4 11899 call 07b 7eh ; e8 d8 fd11863 call 07b27h ; e8 d8 fd 11900 11864 mov byte [bp-010h], al ; 88 46 f0 11901 11865 test bl, bl ; 84 db 11902 jne short 07d b5h ; 75 0811866 jne short 07d5eh ; 75 08 11903 11867 test bh, bh ; 84 ff 11904 jne short 07d b5h ; 75 0411868 jne short 07d5eh ; 75 04 11905 11869 test dx, dx ; 85 d2 11906 je short 07d 70h ; 74 bb11870 je short 07d19h ; 74 bb 11907 11871 mov bx, 00142h ; bb 42 01 11908 11872 mov ax, 04f02h ; b8 02 4f 11909 11873 int 010h ; cd 10 11910 11874 cmp byte [bp-014h], 000h ; 80 7e ec 00 11911 je short 07d e8h ; 74 2511875 je short 07d91h ; 74 25 11912 11876 xor cx, cx ; 31 c9 11913 jmp short 07d cdh ; eb 0611877 jmp short 07d76h ; eb 06 11914 11878 inc cx ; 41 11915 11879 cmp cx, strict byte 00010h ; 83 f9 10 11916 jnbe short 07d efh ; 77 2211880 jnbe short 07d98h ; 77 22 11917 11881 mov ax, cx ; 89 c8 11918 11882 or ah, 002h ; 80 cc 02 … … 11921 11885 xor dx, dx ; 31 d2 11922 11886 mov ax, strict word 00001h ; b8 01 00 11923 call 07a cch ; e8 ee fc11887 call 07a75h ; e8 ee fc 11924 11888 cmp AL, strict byte 086h ; 3c 86 11925 jne short 07d c7h ; 75 e511889 jne short 07d70h ; 75 e5 11926 11890 mov byte [bp-00ch], 001h ; c6 46 f4 01 11927 jmp short 07d efh ; eb 0711891 jmp short 07d98h ; eb 07 11928 11892 mov ax, 00210h ; b8 10 02 11929 11893 mov dx, 003b8h ; ba b8 03 11930 11894 out DX, ax ; ef 11931 11895 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11932 jne short 07 e0ah ; 75 1511896 jne short 07db3h ; 75 15 11933 11897 mov CL, strict byte 004h ; b1 04 11934 11898 mov ax, word [bp-016h] ; 8b 46 ea 11935 11899 shr ax, CL ; d3 e8 11936 11900 mov dx, strict word 00001h ; ba 01 00 11937 call 07a cch ; e8 ca fc11901 call 07a75h ; e8 ca fc 11938 11902 cmp AL, strict byte 086h ; 3c 86 11939 jne short 07 e0ah ; 75 0411903 jne short 07db3h ; 75 04 11940 11904 mov byte [bp-00ch], 001h ; c6 46 f4 01 11941 11905 cmp byte [bp-012h], 000h ; 80 7e ee 00 11942 je short 07 e39h ; 74 2911906 je short 07de2h ; 74 29 11943 11907 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11944 jne short 07 e39h ; 75 2311908 jne short 07de2h ; 75 23 11945 11909 mov cx, strict word 00010h ; b9 10 00 11946 jmp short 07 e20h ; eb 0511910 jmp short 07dc9h ; eb 05 11947 11911 dec cx ; 49 11948 11912 test cx, cx ; 85 c9 11949 jbe short 07 e39h ; 76 1911913 jbe short 07de2h ; 76 19 11950 11914 mov ax, cx ; 89 c8 11951 11915 or ah, 002h ; 80 cc 02 … … 11954 11918 xor dx, dx ; 31 d2 11955 11919 mov ax, strict word 00001h ; b8 01 00 11956 call 07a cch ; e8 9b fc11920 call 07a75h ; e8 9b fc 11957 11921 cmp AL, strict byte 086h ; 3c 86 11958 jne short 07 e1bh ; 75 e611922 jne short 07dc4h ; 75 e6 11959 11923 mov byte [bp-00ch], 001h ; c6 46 f4 01 11960 11924 xor bx, bx ; 31 db 11961 11925 mov dx, 0037dh ; ba 7d 03 11962 11926 mov ax, si ; 89 f0 11963 call 01660h ; e8 1d9811927 call 01660h ; e8 74 98 11964 11928 mov AL, strict byte 003h ; b0 03 11965 11929 mov AH, strict byte 000h ; b4 00 11966 11930 int 010h ; cd 10 11967 11931 cmp byte [bp-010h], 000h ; 80 7e f0 00 11968 je short 07e 63h ; 74 1411932 je short 07e0ch ; 74 14 11969 11933 cmp byte [bp-014h], 000h ; 80 7e ec 00 11970 jne short 07e 91h ; 75 3c11934 jne short 07e3ah ; 75 3c 11971 11935 cmp byte [bp-012h], 000h ; 80 7e ee 00 11972 jne short 07e 91h ; 75 3611936 jne short 07e3ah ; 75 36 11973 11937 cmp word [bp-016h], strict byte 00000h ; 83 7e ea 00 11974 je short 07e 66h ; 74 0511975 jmp short 07e 91h ; eb 2e11976 jmp near 07 f4dh ; e9 e7 0011938 je short 07e0fh ; 74 05 11939 jmp short 07e3ah ; eb 2e 11940 jmp near 07ef6h ; e9 e7 00 11977 11941 cmp byte [bp-010h], 002h ; 80 7e f0 02 11978 jne short 07e 7ah ; 75 0e11942 jne short 07e23h ; 75 0e 11979 11943 mov ax, 00a4bh ; b8 4b 0a 11980 11944 push ax ; 50 11981 11945 mov ax, strict word 00002h ; b8 02 00 11982 11946 push ax ; 50 11983 call 01976h ; e8 ff 9a11947 call 01976h ; e8 56 9b 11984 11948 add sp, strict byte 00004h ; 83 c4 04 11985 11949 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11986 jne short 07e 91h ; 75 1111950 jne short 07e3ah ; 75 11 11987 11951 mov dx, strict word 00001h ; ba 01 00 11988 11952 mov ax, 000c0h ; b8 c0 00 11989 call 07a cch ; e8 43 fc11953 call 07a75h ; e8 43 fc 11990 11954 cmp AL, strict byte 086h ; 3c 86 11991 jne short 07e 91h ; 75 0411955 jne short 07e3ah ; 75 04 11992 11956 mov byte [bp-00ch], 001h ; c6 46 f4 01 11993 11957 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11994 je short 07e 63h ; 74 cc11958 je short 07e0ch ; 74 cc 11995 11959 mov byte [bp-00eh], 000h ; c6 46 f2 00 11996 11960 mov ax, 00100h ; b8 00 01 … … 12013 11977 mov ax, strict word 00002h ; b8 02 00 12014 11978 push ax ; 50 12015 call 01976h ; e8 b3 9a11979 call 01976h ; e8 0a 9b 12016 11980 add sp, strict byte 00004h ; 83 c4 04 12017 call 07b a8h ; e8 df fc11981 call 07b51h ; e8 df fc 12018 11982 mov ax, 00ab1h ; b8 b1 0a 12019 11983 push ax ; 50 12020 11984 mov ax, strict word 00002h ; b8 02 00 12021 11985 push ax ; 50 12022 call 01976h ; e8 a29a11986 call 01976h ; e8 f9 9a 12023 11987 add sp, strict byte 00004h ; 83 c4 04 12024 11988 mov dx, strict word 00001h ; ba 01 00 12025 11989 mov ax, strict word 00040h ; b8 40 00 12026 call 07a cch ; e8 ec fb11990 call 07a75h ; e8 ec fb 12027 11991 mov cl, al ; 88 c1 12028 11992 test al, al ; 84 c0 12029 je short 07e d7h ; 74 f111993 je short 07e80h ; 74 f1 12030 11994 cmp AL, strict byte 030h ; 3c 30 12031 je short 07 f3ah ; 74 5011995 je short 07ee3h ; 74 50 12032 11996 cmp cl, 002h ; 80 f9 02 12033 jc short 07 f13h ; 72 2411997 jc short 07ebch ; 72 24 12034 11998 cmp cl, 009h ; 80 f9 09 12035 jnbe short 07 f13h ; 77 1f11999 jnbe short 07ebch ; 77 1f 12036 12000 mov al, cl ; 88 c8 12037 12001 xor ah, ah ; 30 e4 12038 call 07 d02h ; e8 07 fe12002 call 07cabh ; e8 07 fe 12039 12003 cmp AL, strict byte 0ffh ; 3c ff 12040 jne short 07 f01h ; 75 0212041 jmp short 07e d7h ; eb d612004 jne short 07eaah ; 75 02 12005 jmp short 07e80h ; eb d6 12042 12006 mov bl, al ; 88 c3 12043 12007 xor bh, bh ; 30 ff 12044 12008 mov dx, 0037ch ; ba 7c 03 12045 12009 mov ax, si ; 89 f0 12046 call 01660h ; e8 539712010 call 01660h ; e8 aa 97 12047 12011 mov byte [bp-00eh], 002h ; c6 46 f2 02 12048 jmp short 07 f3ah ; eb 2712012 jmp short 07ee3h ; eb 27 12049 12013 cmp cl, 02eh ; 80 f9 2e 12050 je short 07 f28h ; 74 1012014 je short 07ed1h ; 74 10 12051 12015 cmp cl, 026h ; 80 f9 26 12052 je short 07 f2eh ; 74 1112016 je short 07ed7h ; 74 11 12053 12017 cmp cl, 021h ; 80 f9 21 12054 jne short 07 f34h ; 75 1212018 jne short 07eddh ; 75 12 12055 12019 mov byte [bp-00eh], 001h ; c6 46 f2 01 12056 jmp short 07 f3ah ; eb 1212020 jmp short 07ee3h ; eb 12 12057 12021 mov byte [bp-00eh], 003h ; c6 46 f2 03 12058 jmp short 07 f3ah ; eb 0c12022 jmp short 07ee3h ; eb 0c 12059 12023 mov byte [bp-00eh], 004h ; c6 46 f2 04 12060 jmp short 07 f3ah ; eb 0612024 jmp short 07ee3h ; eb 06 12061 12025 cmp byte [bp-00eh], 000h ; 80 7e f2 00 12062 je short 07e d7h ; 74 9d12026 je short 07e80h ; 74 9d 12063 12027 mov bl, byte [bp-00eh] ; 8a 5e f2 12064 12028 xor bh, bh ; 30 ff 12065 12029 mov dx, 0037dh ; ba 7d 03 12066 12030 mov ax, si ; 89 f0 12067 call 01660h ; e8 199712031 call 01660h ; e8 70 97 12068 12032 mov AL, strict byte 003h ; b0 03 12069 12033 mov AH, strict byte 000h ; b4 00 … … 12075 12039 out strict byte 040h, AL ; e6 40 12076 12040 out strict byte 040h, AL ; e6 40 12077 push ad ; 66 6012041 push bp ; 55 12078 12042 push DS ; 1e 12079 12043 mov ds, ax ; 8e d8 12080 call 0ed bfh ; e8 606e12044 call 0ede3h ; e8 dc 6e 12081 12045 pop DS ; 1f 12082 pop ad ; 66 6112046 pop bp ; 5d 12083 12047 lea sp, [bp-00ah] ; 8d 66 f6 12084 12048 pop di ; 5f … … 12089 12053 pop bp ; 5d 12090 12054 retn ; c3 12091 delay_boot_: ; 0xf7f 6c LB 0x6e12055 delay_boot_: ; 0xf7f13 LB 0x72 12092 12056 push bp ; 55 12093 12057 mov bp, sp ; 89 e5 12094 12058 push bx ; 53 12059 push cx ; 51 12095 12060 push dx ; 52 12061 push si ; 56 12062 push di ; 57 12096 12063 mov bx, ax ; 89 c3 12097 12064 test ax, ax ; 85 c0 12098 je short 07f d3h ; 74 5c12065 je short 07f7bh ; 74 5a 12099 12066 mov AL, strict byte 034h ; b0 34 12100 12067 out strict byte 043h, AL ; e6 43 … … 12108 12075 mov ax, strict word 00002h ; b8 02 00 12109 12076 push ax ; 50 12110 call 01976h ; e8 e7 9912077 call 01976h ; e8 3d 9a 12111 12078 add sp, strict byte 00006h ; 83 c4 06 12112 12079 test bx, bx ; 85 db 12113 jbe short 07f b0h ; 76 1a12080 jbe short 07f5ah ; 76 1a 12114 12081 push bx ; 53 12115 12082 mov ax, 00b19h ; b8 19 0b … … 12117 12084 mov ax, strict word 00002h ; b8 02 00 12118 12085 push ax ; 50 12119 call 01976h ; e8 d4 9912086 call 01976h ; e8 2a 9a 12120 12087 add sp, strict byte 00006h ; 83 c4 06 12121 12088 xor dx, dx ; 31 d2 12122 12089 mov ax, strict word 00040h ; b8 40 00 12123 call 07a cch ; e8 1ffb12090 call 07a75h ; e8 1e fb 12124 12091 dec bx ; 4b 12125 jmp short 07f 92h ; eb e212092 jmp short 07f3ch ; eb e2 12126 12093 mov bx, 00a49h ; bb 49 0a 12127 12094 push bx ; 53 12128 12095 mov bx, strict word 00002h ; bb 02 00 12129 12096 push bx ; 53 12130 call 01976h ; e8 bb 9912097 call 01976h ; e8 11 9a 12131 12098 add sp, strict byte 00004h ; 83 c4 04 12132 12099 mov AL, strict byte 034h ; b0 34 … … 12136 12103 out strict byte 040h, AL ; e6 40 12137 12104 out strict byte 040h, AL ; e6 40 12138 push ad ; 66 6012105 push bp ; 55 12139 12106 push DS ; 1e 12140 12107 mov ds, ax ; 8e d8 12141 call 0ed bfh ; e8 ef 6d12108 call 0ede3h ; e8 6a 6e 12142 12109 pop DS ; 1f 12143 popad ; 66 61 12144 lea sp, [bp-004h] ; 8d 66 fc 12110 pop bp ; 5d 12111 lea sp, [bp-00ah] ; 8d 66 f6 12112 pop di ; 5f 12113 pop si ; 5e 12145 12114 pop dx ; 5a 12115 pop cx ; 59 12146 12116 pop bx ; 5b 12147 12117 pop bp ; 5d 12148 12118 retn ; c3 12149 scsi_cmd_data_in_: ; 0xf7f daLB 0xd512119 scsi_cmd_data_in_: ; 0xf7f85 LB 0xd5 12150 12120 push bp ; 55 12151 12121 mov bp, sp ; 89 e5 … … 12163 12133 ; sub ah, ah ; 2a e4 12164 12134 test AL, strict byte 001h ; a8 01 12165 jne short 07f f0h ; 75 f712135 jne short 07f9bh ; 75 f7 12166 12136 mov al, byte [bp+004h] ; 8a 46 04 12167 12137 cmp AL, strict byte 010h ; 3c 10 12168 jne short 0 8004h ; 75 0412138 jne short 07fafh ; 75 04 12169 12139 xor ax, ax ; 31 c0 12170 jmp short 0 8006h ; eb 0212140 jmp short 07fb1h ; eb 02 12171 12141 xor ah, ah ; 30 e4 12172 12142 mov di, ax ; 89 c7 … … 12176 12146 shr dx, 1 ; d1 ea 12177 12147 rcr ax, 1 ; d1 d8 12178 loop 0 8010h ; e2 fa12148 loop 07fbbh ; e2 fa 12179 12149 mov cx, ax ; 89 c1 12180 12150 and cx, 000f0h ; 81 e1 f0 00 … … 12194 12164 shr dx, 1 ; d1 ea 12195 12165 rcr ax, 1 ; d1 d8 12196 loop 0 8035h ; e2 fa12166 loop 07fe0h ; e2 fa 12197 12167 mov dx, si ; 89 f2 12198 12168 out DX, AL ; ee … … 12201 12171 xor ah, ah ; 30 e4 12202 12172 cmp cx, ax ; 39 c1 12203 jnc short 080 57h ; 73 0e12173 jnc short 08002h ; 73 0e 12204 12174 les di, [bp-00ah] ; c4 7e f6 12205 12175 add di, cx ; 01 cf … … 12208 12178 out DX, AL ; ee 12209 12179 inc cx ; 41 12210 jmp short 0 8040h ; eb e912180 jmp short 07febh ; eb e9 12211 12181 mov dx, si ; 89 f2 12212 12182 in AL, DX ; ec … … 12214 12184 ; sub ah, ah ; 2a e4 12215 12185 test AL, strict byte 001h ; a8 01 12216 jne short 080 57h ; 75 f712186 jne short 08002h ; 75 f7 12217 12187 test AL, strict byte 002h ; a8 02 12218 je short 080 72h ; 74 0e12188 je short 0801dh ; 74 0e 12219 12189 lea dx, [si+003h] ; 8d 54 03 12220 12190 xor al, al ; 30 c0 … … 12224 12194 ; sub ah, ah ; 2a e4 12225 12195 mov di, strict word 00004h ; bf 04 00 12226 jmp short 080 a4h ; eb 3212196 jmp short 0804fh ; eb 32 12227 12197 lea dx, [si+001h] ; 8d 54 01 12228 12198 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 12229 jne short 080 81h ; 75 0612199 jne short 0802ch ; 75 06 12230 12200 cmp bx, 08000h ; 81 fb 00 80 12231 jbe short 080 9bh ; 76 1a12201 jbe short 08046h ; 76 1a 12232 12202 mov cx, 08000h ; b9 00 80 12233 12203 les di, [bp+006h] ; c4 7e 06 … … 12238 12208 add ax, 00800h ; 05 00 08 12239 12209 mov word [bp+008h], ax ; 89 46 08 12240 jmp short 080 72h ; eb d712210 jmp short 0801dh ; eb d7 12241 12211 mov cx, bx ; 89 d9 12242 12212 les di, [bp+006h] ; c4 7e 06 … … 12249 12219 pop bp ; 5d 12250 12220 retn 0000ah ; c2 0a 00 12251 scsi_cmd_data_out_: ; 0xf80 afLB 0xd512221 scsi_cmd_data_out_: ; 0xf805a LB 0xd5 12252 12222 push bp ; 55 12253 12223 mov bp, sp ; 89 e5 … … 12265 12235 ; sub ah, ah ; 2a e4 12266 12236 test AL, strict byte 001h ; a8 01 12267 jne short 080 c5h ; 75 f712237 jne short 08070h ; 75 f7 12268 12238 mov al, byte [bp+004h] ; 8a 46 04 12269 12239 cmp AL, strict byte 010h ; 3c 10 12270 jne short 080 d9h ; 75 0412240 jne short 08084h ; 75 04 12271 12241 xor ax, ax ; 31 c0 12272 jmp short 080 dbh ; eb 0212242 jmp short 08086h ; eb 02 12273 12243 xor ah, ah ; 30 e4 12274 12244 mov si, ax ; 89 c6 … … 12278 12248 shr dx, 1 ; d1 ea 12279 12249 rcr ax, 1 ; d1 d8 12280 loop 080 e5h ; e2 fa12250 loop 08090h ; e2 fa 12281 12251 mov cx, ax ; 89 c1 12282 12252 and cx, 000f0h ; 81 e1 f0 00 … … 12296 12266 shr dx, 1 ; d1 ea 12297 12267 rcr ax, 1 ; d1 d8 12298 loop 08 10ah ; e2 fa12268 loop 080b5h ; e2 fa 12299 12269 mov dx, di ; 89 fa 12300 12270 out DX, AL ; ee … … 12303 12273 xor ah, ah ; 30 e4 12304 12274 cmp cx, ax ; 39 c1 12305 jnc short 08 12ch ; 73 0e12275 jnc short 080d7h ; 73 0e 12306 12276 les si, [bp-00ah] ; c4 76 f6 12307 12277 add si, cx ; 01 ce … … 12310 12280 out DX, AL ; ee 12311 12281 inc cx ; 41 12312 jmp short 08 115h ; eb e912282 jmp short 080c0h ; eb e9 12313 12283 lea dx, [di+001h] ; 8d 55 01 12314 12284 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 12315 jne short 08 13bh ; 75 0612285 jne short 080e6h ; 75 06 12316 12286 cmp bx, 08000h ; 81 fb 00 80 12317 jbe short 081 56h ; 76 1b12287 jbe short 08101h ; 76 1b 12318 12288 mov cx, 08000h ; b9 00 80 12319 12289 les si, [bp+006h] ; c4 76 06 … … 12325 12295 add ax, 00800h ; 05 00 08 12326 12296 mov word [bp+008h], ax ; 89 46 08 12327 jmp short 08 12ch ; eb d612297 jmp short 080d7h ; eb d6 12328 12298 mov cx, bx ; 89 d9 12329 12299 les si, [bp+006h] ; c4 76 06 … … 12335 12305 ; sub ah, ah ; 2a e4 12336 12306 test AL, strict byte 001h ; a8 01 12337 jne short 081 5eh ; 75 f712307 jne short 08109h ; 75 f7 12338 12308 test AL, strict byte 002h ; a8 02 12339 je short 081 79h ; 74 0e12309 je short 08124h ; 74 0e 12340 12310 lea dx, [di+003h] ; 8d 55 03 12341 12311 xor al, al ; 30 c0 … … 12345 12315 ; sub ah, ah ; 2a e4 12346 12316 mov ax, strict word 00004h ; b8 04 00 12347 jmp short 081 7bh ; eb 0212317 jmp short 08126h ; eb 02 12348 12318 xor ax, ax ; 31 c0 12349 12319 lea sp, [bp-004h] ; 8d 66 fc … … 12352 12322 pop bp ; 5d 12353 12323 retn 0000ah ; c2 0a 00 12354 @scsi_read_sectors: ; 0xf81 84LB 0xe912324 @scsi_read_sectors: ; 0xf812f LB 0xe9 12355 12325 push bp ; 55 12356 12326 mov bp, sp ; 89 e5 … … 12364 12334 mov byte [bp-006h], al ; 88 46 fa 12365 12335 cmp AL, strict byte 004h ; 3c 04 12366 jbe short 081 b4h ; 76 1512336 jbe short 0815fh ; 76 15 12367 12337 xor ah, ah ; 30 e4 12368 12338 push ax ; 50 … … 12373 12343 mov ax, strict word 00007h ; b8 07 00 12374 12344 push ax ; 50 12375 call 01976h ; e8 c5 9712345 call 01976h ; e8 1a 98 12376 12346 add sp, strict byte 00008h ; 83 c4 08 12377 12347 mov es, [bp+006h] ; 8e 46 06 … … 12414 12384 sal word [bp-00ah], 1 ; d1 66 f6 12415 12385 rcl word [bp-008h], 1 ; d1 56 f8 12416 loop 08 21fh ; e2 f812386 loop 081cah ; e2 f8 12417 12387 push word [bp-008h] ; ff 76 f8 12418 12388 push word [bp-00ah] ; ff 76 f6 … … 12425 12395 mov cx, ss ; 8c d1 12426 12396 lea bx, [bp-01ah] ; 8d 5e e6 12427 call 07f dah ; e8 95 fd12397 call 07f85h ; e8 95 fd 12428 12398 mov ah, al ; 88 c4 12429 12399 test al, al ; 84 c0 12430 jne short 082 60h ; 75 1512400 jne short 0820bh ; 75 15 12431 12401 mov es, [bp+006h] ; 8e 46 06 12432 12402 mov word [es:si+018h], di ; 26 89 7c 18 … … 12442 12412 pop bp ; 5d 12443 12413 retn 00004h ; c2 04 00 12444 @scsi_write_sectors: ; 0xf82 6dLB 0xe912414 @scsi_write_sectors: ; 0xf8218 LB 0xe9 12445 12415 push bp ; 55 12446 12416 mov bp, sp ; 89 e5 … … 12454 12424 mov byte [bp-006h], al ; 88 46 fa 12455 12425 cmp AL, strict byte 004h ; 3c 04 12456 jbe short 082 9dh ; 76 1512426 jbe short 08248h ; 76 15 12457 12427 xor ah, ah ; 30 e4 12458 12428 push ax ; 50 … … 12463 12433 mov ax, strict word 00007h ; b8 07 00 12464 12434 push ax ; 50 12465 call 01976h ; e8 dc 9612435 call 01976h ; e8 31 97 12466 12436 add sp, strict byte 00008h ; 83 c4 08 12467 12437 mov es, [bp+006h] ; 8e 46 06 … … 12504 12474 sal word [bp-00ah], 1 ; d1 66 f6 12505 12475 rcl word [bp-008h], 1 ; d1 56 f8 12506 loop 08 308h ; e2 f812476 loop 082b3h ; e2 f8 12507 12477 push word [bp-008h] ; ff 76 f8 12508 12478 push word [bp-00ah] ; ff 76 f6 … … 12515 12485 mov cx, ss ; 8c d1 12516 12486 lea bx, [bp-01ah] ; 8d 5e e6 12517 call 080 afh ; e8 81 fd12487 call 0805ah ; e8 81 fd 12518 12488 mov ah, al ; 88 c4 12519 12489 test al, al ; 84 c0 12520 jne short 08 349h ; 75 1512490 jne short 082f4h ; 75 15 12521 12491 mov es, [bp+006h] ; 8e 46 06 12522 12492 mov word [es:si+018h], di ; 26 89 7c 18 … … 12532 12502 pop bp ; 5d 12533 12503 retn 00004h ; c2 04 00 12534 scsi_cmd_packet_: ; 0xf83 56LB 0x17012504 scsi_cmd_packet_: ; 0xf8301 LB 0x170 12535 12505 push bp ; 55 12536 12506 mov bp, sp ; 89 e5 … … 12544 12514 mov dx, strict word 0000eh ; ba 0e 00 12545 12515 mov ax, strict word 00040h ; b8 40 00 12546 call 0166eh ; e8 fc 9212516 call 0166eh ; e8 51 93 12547 12517 mov si, 00122h ; be 22 01 12548 12518 mov word [bp-00ch], ax ; 89 46 f4 12549 12519 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12550 jne short 083 a1h ; 75 2312520 jne short 0834ch ; 75 23 12551 12521 mov bx, 00da0h ; bb a0 0d 12552 12522 mov cx, ds ; 8c d9 12553 12523 mov ax, strict word 00004h ; b8 04 00 12554 call 01933h ; e8 aa9512524 call 01933h ; e8 ff 95 12555 12525 mov ax, 00b62h ; b8 62 0b 12556 12526 push ax ; 50 … … 12559 12529 mov ax, strict word 00004h ; b8 04 00 12560 12530 push ax ; 50 12561 call 01976h ; e8 de 9512531 call 01976h ; e8 33 96 12562 12532 add sp, strict byte 00006h ; 83 c4 06 12563 12533 mov dx, strict word 00001h ; ba 01 00 12564 jmp near 084 bbh ; e9 1a 0112534 jmp near 08466h ; e9 1a 01 12565 12535 sub di, strict byte 00008h ; 83 ef 08 12566 12536 sal di, 1 ; d1 e7 … … 12577 12547 ; sub ah, ah ; 2a e4 12578 12548 test AL, strict byte 001h ; a8 01 12579 jne short 083 beh ; 75 f712549 jne short 08369h ; 75 f7 12580 12550 xor dx, bx ; 31 da 12581 12551 mov ax, word [bp+006h] ; 8b 46 06 … … 12593 12563 shr dx, 1 ; d1 ea 12594 12564 rcr ax, 1 ; d1 d8 12595 loop 083 e9h ; e2 fa12565 loop 08394h ; e2 fa 12596 12566 and ax, 000f0h ; 25 f0 00 12597 12567 mov cl, byte [bp-006h] ; 8a 4e fa … … 12612 12582 shr dx, 1 ; d1 ea 12613 12583 rcr ax, 1 ; d1 d8 12614 loop 08 411h ; e2 fa12584 loop 083bch ; e2 fa 12615 12585 mov dx, bx ; 89 da 12616 12586 out DX, AL ; ee … … 12619 12589 xor ah, ah ; 30 e4 12620 12590 cmp cx, ax ; 39 c1 12621 jnc short 08 436h ; 73 1112591 jnc short 083e1h ; 73 11 12622 12592 mov es, [bp-00ah] ; 8e 46 f6 12623 12593 mov di, word [bp-00eh] ; 8b 7e f2 … … 12627 12597 out DX, AL ; ee 12628 12598 inc cx ; 41 12629 jmp short 08 41ch ; eb e612599 jmp short 083c7h ; eb e6 12630 12600 mov dx, bx ; 89 da 12631 12601 in AL, DX ; ec … … 12633 12603 ; sub ah, ah ; 2a e4 12634 12604 test AL, strict byte 001h ; a8 01 12635 jne short 08 436h ; 75 f712605 jne short 083e1h ; 75 f7 12636 12606 test AL, strict byte 002h ; a8 02 12637 je short 08 451h ; 74 0e12607 je short 083fch ; 74 0e 12638 12608 lea dx, [bx+003h] ; 8d 57 03 12639 12609 xor al, al ; 30 c0 … … 12643 12613 ; sub ah, ah ; 2a e4 12644 12614 mov dx, strict word 00003h ; ba 03 00 12645 jmp short 084 bbh ; eb 6a12615 jmp short 08466h ; eb 6a 12646 12616 mov ax, word [bp+004h] ; 8b 46 04 12647 12617 test ax, ax ; 85 c0 12648 je short 084 60h ; 74 0812618 je short 0840bh ; 74 08 12649 12619 lea dx, [bx+001h] ; 8d 57 01 12650 12620 mov cx, ax ; 89 c1 12651 12621 in AL, DX ; ec 12652 loop 084 5dh ; e2 fd12622 loop 08408h ; e2 fd 12653 12623 mov ax, word [bp+006h] ; 8b 46 06 12654 12624 mov es, [bp-00ch] ; 8e 46 f4 … … 12658 12628 lea ax, [bx+001h] ; 8d 47 01 12659 12629 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 12660 jne short 084 81h ; 75 0712630 jne short 0842ch ; 75 07 12661 12631 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 12662 jbe short 084 9eh ; 76 1d12632 jbe short 08449h ; 76 1d 12663 12633 mov dx, ax ; 89 c2 12664 12634 mov cx, 08000h ; b9 00 80 … … 12670 12640 add ax, 00800h ; 05 00 08 12671 12641 mov word [bp+00eh], ax ; 89 46 0e 12672 jmp short 084 71h ; eb d312642 jmp short 0841ch ; eb d3 12673 12643 mov dx, ax ; 89 c2 12674 12644 mov cx, word [bp+006h] ; 8b 4e 06 … … 12677 12647 mov es, [bp-00ch] ; 8e 46 f4 12678 12648 cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00 12679 je short 084 b9h ; 74 0712649 je short 08464h ; 74 07 12680 12650 mov cx, word [es:si+020h] ; 26 8b 4c 20 12681 12651 in AL, DX ; ec 12682 loop 084 b6h ; e2 fd12652 loop 08461h ; e2 fd 12683 12653 xor dx, dx ; 31 d2 12684 12654 mov ax, dx ; 89 d0 … … 12688 12658 pop bp ; 5d 12689 12659 retn 0000ch ; c2 0c 00 12690 scsi_enumerate_attached_devices_: ; 0xf84 c6LB 0x4cb12660 scsi_enumerate_attached_devices_: ; 0xf8471 LB 0x4cb 12691 12661 push bp ; 55 12692 12662 mov bp, sp ; 89 e5 … … 12700 12670 mov dx, strict word 0000eh ; ba 0e 00 12701 12671 mov ax, strict word 00040h ; b8 40 00 12702 call 0166eh ; e8 929112672 call 0166eh ; e8 e7 91 12703 12673 mov di, 00122h ; bf 22 01 12704 12674 mov word [bp-016h], ax ; 89 46 ea 12705 12675 mov word [bp-014h], strict word 00000h ; c7 46 ec 00 00 12706 jmp near 08 904h ; e9 1a 0412676 jmp near 088afh ; e9 1a 04 12707 12677 cmp AL, strict byte 004h ; 3c 04 12708 jc short 084 f1h ; 72 0312709 jmp near 089 87h ; e9 96 0412678 jc short 0849ch ; 72 03 12679 jmp near 08932h ; e9 96 04 12710 12680 mov cx, strict word 00010h ; b9 10 00 12711 12681 xor bx, bx ; 31 db 12712 12682 mov dx, ss ; 8c d2 12713 12683 lea ax, [bp-048h] ; 8d 46 b8 12714 call 0a2 7ah ; e8 7c1d12684 call 0a21ah ; e8 71 1d 12715 12685 mov byte [bp-048h], 09eh ; c6 46 b8 9e 12716 12686 mov byte [bp-047h], 010h ; c6 46 b9 10 … … 12730 12700 lea bx, [bp-048h] ; 8d 5e b8 12731 12701 mov ax, word [bp-0024ah] ; 8b 86 b6 fd 12732 call 07f dah ; e8 ae fa12702 call 07f85h ; e8 ae fa 12733 12703 test al, al ; 84 c0 12734 je short 08 542h ; 74 1212704 je short 084edh ; 74 12 12735 12705 mov ax, 00b92h ; b8 92 0b 12736 12706 push ax ; 50 … … 12739 12709 mov ax, strict word 00007h ; b8 07 00 12740 12710 push ax ; 50 12741 call 01976h ; e8 379412711 call 01976h ; e8 8c 94 12742 12712 add sp, strict byte 00006h ; 83 c4 06 12743 12713 mov ax, word [bp-00242h] ; 8b 86 be fd … … 12771 12741 sal ax, 1 ; d1 e0 12772 12742 rcl dx, 1 ; d1 d2 12773 loop 085 90h ; e2 fa12743 loop 0853bh ; e2 fa 12774 12744 or bx, ax ; 09 c3 12775 12745 or dx, si ; 09 f2 … … 12779 12749 mov word [bp-01ch], bx ; 89 5e e4 12780 12750 test dx, dx ; 85 d2 12781 jne short 085 afh ; 75 0612751 jne short 0855ah ; 75 06 12782 12752 cmp bx, 00200h ; 81 fb 00 02 12783 je short 085 d2h ; 74 2312753 je short 0857dh ; 74 23 12784 12754 mov bx, 00da0h ; bb a0 0d 12785 12755 mov cx, ds ; 8c d9 12786 12756 mov ax, strict word 00004h ; b8 04 00 12787 call 01933h ; e8 799312757 call 01933h ; e8 ce 93 12788 12758 push dx ; 52 12789 12759 push word [bp-01ch] ; ff 76 e4 … … 12793 12763 mov ax, strict word 00004h ; b8 04 00 12794 12764 push ax ; 50 12795 call 01976h ; e8 aa9312765 call 01976h ; e8 ff 93 12796 12766 add sp, strict byte 0000ah ; 83 c4 0a 12797 jmp near 088 f8h ; e9 26 0312767 jmp near 088a3h ; e9 26 03 12798 12768 mov al, byte [bp-00ch] ; 8a 46 f4 12799 12769 cmp AL, strict byte 001h ; 3c 01 12800 jc short 085 e5h ; 72 0c12801 jbe short 085 edh ; 76 1212770 jc short 08590h ; 72 0c 12771 jbe short 08598h ; 76 12 12802 12772 cmp AL, strict byte 003h ; 3c 03 12803 je short 085 f5h ; 74 1612773 je short 085a0h ; 74 16 12804 12774 cmp AL, strict byte 002h ; 3c 02 12805 je short 085 f1h ; 74 0e12806 jmp short 08 63ch ; eb 5712775 je short 0859ch ; 74 0e 12776 jmp short 085e7h ; eb 57 12807 12777 test al, al ; 84 c0 12808 jne short 08 63ch ; 75 5312778 jne short 085e7h ; 75 53 12809 12779 mov BL, strict byte 090h ; b3 90 12810 jmp short 085 f7h ; eb 0a12780 jmp short 085a2h ; eb 0a 12811 12781 mov BL, strict byte 098h ; b3 98 12812 jmp short 085 f7h ; eb 0612782 jmp short 085a2h ; eb 06 12813 12783 mov BL, strict byte 0a0h ; b3 a0 12814 jmp short 085 f7h ; eb 0212784 jmp short 085a2h ; eb 02 12815 12785 mov BL, strict byte 0a8h ; b3 a8 12816 12786 mov cl, bl ; 88 d9 … … 12818 12788 xor ch, ch ; 30 ed 12819 12789 mov ax, cx ; 89 c8 12820 call 016aeh ; e8 ab 9012790 call 016aeh ; e8 00 91 12821 12791 test al, al ; 84 c0 12822 je short 08 63ch ; 74 3512792 je short 085e7h ; 74 35 12823 12793 mov al, bl ; 88 d8 12824 12794 db 0feh, 0c0h 12825 12795 ; inc al ; fe c0 12826 12796 xor ah, ah ; 30 e4 12827 call 016aeh ; e8 9e9012797 call 016aeh ; e8 f3 90 12828 12798 mov dh, al ; 88 c6 12829 12799 mov al, bl ; 88 d8 12830 12800 xor ah, ah ; 30 e4 12831 call 016aeh ; e8 959012801 call 016aeh ; e8 ea 90 12832 12802 mov ah, dh ; 88 f4 12833 12803 cwd ; 99 … … 12837 12807 add AL, strict byte 002h ; 04 02 12838 12808 xor ah, ah ; 30 e4 12839 call 016aeh ; e8 849012809 call 016aeh ; e8 d9 90 12840 12810 xor ah, ah ; 30 e4 12841 12811 mov word [bp-028h], ax ; 89 46 d8 12842 12812 mov ax, cx ; 89 c8 12843 call 016aeh ; e8 7a9012813 call 016aeh ; e8 cf 90 12844 12814 xor ah, ah ; 30 e4 12845 12815 mov word [bp-01ah], ax ; 89 46 e6 12846 jmp near 08 729h ; e9 ed 0012816 jmp near 086d4h ; e9 ed 00 12847 12817 mov ax, word [bp-020h] ; 8b 46 e0 12848 12818 mov bx, word [bp-022h] ; 8b 5e de … … 12850 12820 mov dx, word [bp-024h] ; 8b 56 dc 12851 12821 mov si, strict word 0000ch ; be 0c 00 12852 call 0a2 6ah ; e8 1c1c12822 call 0a20ah ; e8 11 1c 12853 12823 mov word [bp-02ah], ax ; 89 46 d6 12854 12824 mov word [bp-02ch], bx ; 89 5e d4 … … 12857 12827 mov ax, word [bp-020h] ; 8b 46 e0 12858 12828 test ax, ax ; 85 c0 12859 jnbe short 086 76h ; 77 1512860 je short 086 66h ; 74 0312861 jmp near 086 e9h ; e9 83 0012829 jnbe short 08621h ; 77 15 12830 je short 08611h ; 74 03 12831 jmp near 08694h ; e9 83 00 12862 12832 cmp word [bp-022h], strict byte 00000h ; 83 7e de 00 12863 jnbe short 086 76h ; 77 0a12864 jne short 086 63h ; 75 f512833 jnbe short 08621h ; 77 0a 12834 jne short 0860eh ; 75 f5 12865 12835 cmp word [bp-012h], strict byte 00040h ; 83 7e ee 40 12866 jnbe short 086 76h ; 77 0212867 jne short 086 e9h ; 75 7312836 jnbe short 08621h ; 77 02 12837 jne short 08694h ; 75 73 12868 12838 mov word [bp-028h], 000ffh ; c7 46 d8 ff 00 12869 12839 mov word [bp-01ah], strict word 0003fh ; c7 46 e6 3f 00 … … 12872 12842 mov dx, word [bp-024h] ; 8b 56 dc 12873 12843 mov si, strict word 00006h ; be 06 00 12874 call 0a2 6ah ; e8 db1b12844 call 0a20ah ; e8 d0 1b 12875 12845 mov si, word [bp-018h] ; 8b 76 e8 12876 12846 add si, dx ; 01 d6 … … 12890 12860 mov dx, si ; 89 f2 12891 12861 mov si, strict word 00008h ; be 08 00 12892 call 0a2 6ah ; e8 ab1b12862 call 0a20ah ; e8 a0 1b 12893 12863 mov word [bp-02eh], bx ; 89 5e d2 12894 12864 mov word [bp-030h], cx ; 89 4e d0 … … 12899 12869 mov dx, word [bp-01eh] ; 8b 56 e2 12900 12870 mov si, strict word 00010h ; be 10 00 12901 call 0a2 6ah ; e8 901b12871 call 0a20ah ; e8 85 1b 12902 12872 mov si, word [bp-032h] ; 8b 76 ce 12903 12873 add si, dx ; 01 d6 … … 12905 12875 mov ax, word [bp-02eh] ; 8b 46 d2 12906 12876 adc ax, bx ; 11 d8 12907 jmp short 08 726h ; eb 3d12877 jmp short 086d1h ; eb 3d 12908 12878 test ax, ax ; 85 c0 12909 jnbe short 086 ffh ; 77 1212910 jne short 08 70bh ; 75 1c12879 jnbe short 086aah ; 77 12 12880 jne short 086b6h ; 75 1c 12911 12881 cmp word [bp-022h], strict byte 00000h ; 83 7e de 00 12912 jnbe short 086 ffh ; 77 0a12913 jne short 08 70bh ; 75 1412882 jnbe short 086aah ; 77 0a 12883 jne short 086b6h ; 75 14 12914 12884 cmp word [bp-012h], strict byte 00020h ; 83 7e ee 20 12915 jnbe short 086 ffh ; 77 0212916 jne short 08 70bh ; 75 0c12885 jnbe short 086aah ; 77 02 12886 jne short 086b6h ; 75 0c 12917 12887 mov word [bp-028h], 00080h ; c7 46 d8 80 00 12918 12888 mov word [bp-01ah], strict word 00020h ; c7 46 e6 20 00 12919 jmp short 08 724h ; eb 1912889 jmp short 086cfh ; eb 19 12920 12890 mov word [bp-028h], strict word 00040h ; c7 46 d8 40 00 12921 12891 mov word [bp-01ah], strict word 00020h ; c7 46 e6 20 00 … … 12924 12894 mov dx, word [bp-024h] ; 8b 56 dc 12925 12895 mov si, strict word 0000bh ; be 0b 00 12926 call 0a2 6ah ; e8 461b12896 call 0a20ah ; e8 3b 1b 12927 12897 mov si, dx ; 89 d6 12928 12898 mov word [bp-026h], cx ; 89 4e da … … 12961 12931 mov word [es:bx+034h], ax ; 26 89 47 34 12962 12932 cmp word [bp-026h], strict byte 00000h ; 83 7e da 00 12963 jne short 087 a0h ; 75 0612933 jne short 0874bh ; 75 06 12964 12934 cmp si, 00400h ; 81 fe 00 04 12965 jbe short 087 aeh ; 76 0e12935 jbe short 08759h ; 76 0e 12966 12936 mov word [es:bx+02ch], 00400h ; 26 c7 47 2c 00 04 12967 12937 mov word [es:bx+032h], 00400h ; 26 c7 47 32 00 04 12968 jmp short 087 b6h ; eb 0812938 jmp short 08761h ; eb 08 12969 12939 mov word [es:bx+02ch], si ; 26 89 77 2c 12970 12940 mov word [es:bx+032h], si ; 26 89 77 32 … … 12972 12942 mov cx, ds ; 8c d9 12973 12943 mov ax, strict word 00004h ; b8 04 00 12974 call 01933h ; e8 729112944 call 01933h ; e8 c7 91 12975 12945 push word [bp-020h] ; ff 76 e0 12976 12946 push word [bp-022h] ; ff 76 de … … 12989 12959 mov ax, strict word 00004h ; b8 04 00 12990 12960 push ax ; 50 12991 call 01976h ; e8 8b9112961 call 01976h ; e8 e0 91 12992 12962 add sp, strict byte 00018h ; 83 c4 18 12993 12963 mov al, byte [bp-00eh] ; 8a 46 f2 … … 13018 12988 mov dx, strict word 00075h ; ba 75 00 13019 12989 mov ax, strict word 00040h ; b8 40 00 13020 call 01652h ; e8 118e12990 call 01652h ; e8 66 8e 13021 12991 mov bl, al ; 88 c3 13022 12992 db 0feh, 0c3h … … 13025 12995 mov dx, strict word 00075h ; ba 75 00 13026 12996 mov ax, strict word 00040h ; b8 40 00 13027 call 01660h ; e8 108e12997 call 01660h ; e8 65 8e 13028 12998 inc byte [bp-00ch] ; fe 46 f4 13029 jmp near 088 edh ; e9 97 0012999 jmp near 08898h ; e9 97 00 13030 13000 mov bx, 00da0h ; bb a0 0d 13031 13001 mov cx, ds ; 8c d9 13032 13002 mov ax, strict word 00004h ; b8 04 00 13033 call 01933h ; e8 d2 9013003 call 01933h ; e8 27 91 13034 13004 push word [bp-014h] ; ff 76 ec 13035 13005 mov al, byte [bp-00ch] ; 8a 46 f4 … … 13040 13010 mov ax, strict word 00004h ; b8 04 00 13041 13011 push ax ; 50 13042 call 01976h ; e8 019113012 call 01976h ; e8 56 91 13043 13013 add sp, strict byte 00008h ; 83 c4 08 13044 13014 mov al, byte [bp-00ch] ; 8a 46 f4 … … 13046 13016 mov byte [bp-00eh], al ; 88 46 f2 13047 13017 test byte [bp-00247h], 080h ; f6 86 b9 fd 80 13048 je short 088 8ch ; 74 0513018 je short 08837h ; 74 05 13049 13019 mov cx, strict word 00001h ; b9 01 00 13050 jmp short 088 8eh ; eb 0213020 jmp short 08839h ; eb 02 13051 13021 xor cx, cx ; 31 c9 13052 13022 mov al, byte [bp-00ch] ; 8a 46 f4 … … 13086 13056 inc word [bp-014h] ; ff 46 ec 13087 13057 cmp word [bp-014h], strict byte 00010h ; 83 7e ec 10 13088 jl short 08 904h ; 7c 0313089 jmp near 089 87h ; e9 83 0013058 jl short 088afh ; 7c 03 13059 jmp near 08932h ; e9 83 00 13090 13060 mov byte [bp-048h], 012h ; c6 46 b8 12 13091 13061 xor al, al ; 30 c0 … … 13109 13079 lea bx, [bp-048h] ; 8d 5e b8 13110 13080 mov ax, word [bp-0024ah] ; 8b 86 b6 fd 13111 call 07f dah ; e8 9e f613081 call 07f85h ; e8 9e f6 13112 13082 test al, al ; 84 c0 13113 je short 08 952h ; 74 1213083 je short 088fdh ; 74 12 13114 13084 mov ax, 00b92h ; b8 92 0b 13115 13085 push ax ; 50 … … 13118 13088 mov ax, strict word 00007h ; b8 07 00 13119 13089 push ax ; 50 13120 call 01976h ; e8 279013090 call 01976h ; e8 7c 90 13121 13091 add sp, strict byte 00006h ; 83 c4 06 13122 13092 mov es, [bp-016h] ; 8e 46 ea … … 13124 13094 mov byte [bp-00ch], al ; 88 46 f4 13125 13095 test byte [bp-00248h], 0e0h ; f6 86 b8 fd e0 13126 jne short 089 6eh ; 75 0a13096 jne short 08919h ; 75 0a 13127 13097 test byte [bp-00248h], 01fh ; f6 86 b8 fd 1f 13128 jne short 089 6eh ; 75 0313129 jmp near 084 eah ; e9 7c fb13098 jne short 08919h ; 75 03 13099 jmp near 08495h ; e9 7c fb 13130 13100 test byte [bp-00248h], 0e0h ; f6 86 b8 fd e0 13131 je short 089 78h ; 74 0313132 jmp near 088 edh ; e9 75 ff13101 je short 08923h ; 74 03 13102 jmp near 08898h ; e9 75 ff 13133 13103 mov al, byte [bp-00248h] ; 8a 86 b8 fd 13134 13104 and AL, strict byte 01fh ; 24 1f 13135 13105 cmp AL, strict byte 005h ; 3c 05 13136 jne short 089 85h ; 75 0313137 jmp near 088 56h ; e9 d1 fe13138 jmp short 089 75h ; eb ee13106 jne short 08930h ; 75 03 13107 jmp near 08801h ; e9 d1 fe 13108 jmp short 08920h ; eb ee 13139 13109 lea sp, [bp-00ah] ; 8d 66 f6 13140 13110 pop di ; 5f … … 13145 13115 pop bp ; 5d 13146 13116 retn ; c3 13147 _scsi_init: ; 0xf89 91LB 0x6613117 _scsi_init: ; 0xf893c LB 0x66 13148 13118 push bp ; 55 13149 13119 mov bp, sp ; 89 e5 13150 13120 mov dx, strict word 0000eh ; ba 0e 00 13151 13121 mov ax, strict word 00040h ; b8 40 00 13152 call 0166eh ; e8 d1 8c13122 call 0166eh ; e8 26 8d 13153 13123 mov bx, 00122h ; bb 22 01 13154 13124 mov es, ax ; 8e c0 … … 13161 13131 ; sub ah, ah ; 2a e4 13162 13132 cmp AL, strict byte 055h ; 3c 55 13163 jne short 089 c1h ; 75 0c13133 jne short 0896ch ; 75 0c 13164 13134 xor al, al ; 30 c0 13165 13135 mov dx, 00433h ; ba 33 04 13166 13136 out DX, AL ; ee 13167 13137 mov ax, 00430h ; b8 30 04 13168 call 084 c6h ; e8 05 fb13138 call 08471h ; e8 05 fb 13169 13139 mov AL, strict byte 055h ; b0 55 13170 13140 mov dx, 00436h ; ba 36 04 … … 13174 13144 ; sub ah, ah ; 2a e4 13175 13145 cmp AL, strict byte 055h ; 3c 55 13176 jne short 089 dah ; 75 0c13146 jne short 08985h ; 75 0c 13177 13147 xor al, al ; 30 c0 13178 13148 mov dx, 00437h ; ba 37 04 13179 13149 out DX, AL ; ee 13180 13150 mov ax, 00434h ; b8 34 04 13181 call 084 c6h ; e8 ec fa13151 call 08471h ; e8 ec fa 13182 13152 mov AL, strict byte 055h ; b0 55 13183 13153 mov dx, 0043ah ; ba 3a 04 … … 13187 13157 ; sub ah, ah ; 2a e4 13188 13158 cmp AL, strict byte 055h ; 3c 55 13189 jne short 089 f3h ; 75 0c13159 jne short 0899eh ; 75 0c 13190 13160 xor al, al ; 30 c0 13191 13161 mov dx, 0043bh ; ba 3b 04 13192 13162 out DX, AL ; ee 13193 13163 mov ax, 00438h ; b8 38 04 13194 call 084 c6h ; e8 d3 fa13164 call 08471h ; e8 d3 fa 13195 13165 mov sp, bp ; 89 ec 13196 13166 pop bp ; 5d 13197 13167 retn ; c3 13198 ahci_ctrl_extract_bits_: ; 0xf89 f7LB 0x1c13168 ahci_ctrl_extract_bits_: ; 0xf89a2 LB 0x1c 13199 13169 push si ; 56 13200 13170 push bp ; 55 … … 13205 13175 mov cl, byte [bp+006h] ; 8a 4e 06 13206 13176 xor ch, ch ; 30 ed 13207 jcxz 08 a0eh ; e3 0613177 jcxz 089b9h ; e3 06 13208 13178 shr dx, 1 ; d1 ea 13209 13179 rcr ax, 1 ; d1 d8 13210 loop 08 a08h ; e2 fa13180 loop 089b3h ; e2 fa 13211 13181 pop bp ; 5d 13212 13182 pop si ; 5e 13213 13183 retn 00002h ; c2 02 00 13214 ahci_addr_to_phys_: ; 0xf8 a13LB 0x1e13184 ahci_addr_to_phys_: ; 0xf89be LB 0x1e 13215 13185 push bx ; 53 13216 13186 push cx ; 51 … … 13223 13193 sal ax, 1 ; d1 e0 13224 13194 rcl dx, 1 ; d1 d2 13225 loop 08 a21h ; e2 fa13195 loop 089cch ; e2 fa 13226 13196 xor cx, cx ; 31 c9 13227 13197 add ax, bx ; 01 d8 … … 13231 13201 pop bx ; 5b 13232 13202 retn ; c3 13233 ahci_port_cmd_sync_: ; 0xf8 a31LB 0x15913203 ahci_port_cmd_sync_: ; 0xf89dc LB 0x159 13234 13204 push bp ; 55 13235 13205 mov bp, sp ; 89 e5 … … 13246 13216 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 13247 13217 cmp AL, strict byte 0ffh ; 3c ff 13248 jne short 08 a54h ; 75 0313249 jmp near 08b 82h ; e9 2e 0113218 jne short 089ffh ; 75 03 13219 jmp near 08b2dh ; e9 2e 01 13250 13220 mov al, byte [es:si+00263h] ; 26 8a 84 63 02 13251 13221 xor ah, ah ; 30 e4 … … 13260 13230 lea ax, [si+00080h] ; 8d 84 80 00 13261 13231 mov dx, cx ; 89 ca 13262 call 08 a13h ; e8 92 ff13232 call 089beh ; e8 92 ff 13263 13233 mov es, cx ; 8e c1 13264 13234 mov word [es:si+008h], ax ; 26 89 44 08 … … 13328 13298 xchg dx, ax ; 92 13329 13299 test dh, 040h ; f6 c6 40 13330 jne short 08 b14h ; 75 0413300 jne short 08abfh ; 75 04 13331 13301 test AL, strict byte 001h ; a8 01 13332 je short 08 b18h ; 74 0413302 je short 08ac3h ; 74 04 13333 13303 mov AL, strict byte 001h ; b0 01 13334 jmp short 08 b1ah ; eb 0213304 jmp short 08ac5h ; eb 02 13335 13305 xor al, al ; 30 c0 13336 13306 test al, al ; 84 c0 13337 je short 08a e6h ; 74 c813307 je short 08a91h ; 74 c8 13338 13308 mov al, byte [bp-008h] ; 8a 46 f8 13339 13309 xor ah, ah ; 30 e4 … … 13392 13362 pop bp ; 5d 13393 13363 retn ; c3 13394 ahci_cmd_data_: ; 0xf8b 8aLB 0x26213364 ahci_cmd_data_: ; 0xf8b35 LB 0x262 13395 13365 push bp ; 55 13396 13366 mov bp, sp ; 89 e5 … … 13417 13387 mov ax, 00080h ; b8 80 00 13418 13388 mov dx, word [bp-00ah] ; 8b 56 f6 13419 call 0a2 7ah ; e8 b21613389 call 0a21ah ; e8 a7 16 13420 13390 mov es, [bp-00ah] ; 8e 46 f6 13421 13391 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 13435 13405 mov dx, word [es:si] ; 26 8b 14 13436 13406 mov si, strict word 00008h ; be 08 00 13437 call 0a2 6ah ; e8 5e1613407 call 0a20ah ; e8 53 16 13438 13408 mov es, [bp-00ah] ; 8e 46 f6 13439 13409 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 13446 13416 mov dx, word [es:si] ; 26 8b 14 13447 13417 mov si, strict word 00010h ; be 10 00 13448 call 0a2 6ah ; e8 381613418 call 0a20ah ; e8 2d 16 13449 13419 mov es, [bp-00ah] ; 8e 46 f6 13450 13420 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 13458 13428 mov dx, word [es:si] ; 26 8b 14 13459 13429 mov si, strict word 00018h ; be 18 00 13460 call 0a2 6ah ; e8 0c1613430 call 0a20ah ; e8 01 16 13461 13431 mov es, [bp-00ah] ; 8e 46 f6 13462 13432 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13469 13439 mov dx, word [es:si] ; 26 8b 14 13470 13440 mov si, strict word 00020h ; be 20 00 13471 call 0a2 6ah ; e8 e61513441 call 0a20ah ; e8 db 15 13472 13442 mov es, [bp-00ah] ; 8e 46 f6 13473 13443 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13480 13450 mov dx, word [es:si] ; 26 8b 14 13481 13451 mov si, strict word 00028h ; be 28 00 13482 call 0a2 6ah ; e8 c01513452 call 0a20ah ; e8 b5 15 13483 13453 mov es, [bp-00ah] ; 8e 46 f6 13484 13454 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13493 13463 mov bx, word [bp-012h] ; 8b 5e ee 13494 13464 xor cx, cx ; 31 c9 13495 call 0a 229h ; e8 4d1513465 call 0a1c9h ; e8 42 15 13496 13466 push dx ; 52 13497 13467 push ax ; 50 … … 13503 13473 mov ax, 0026ah ; b8 6a 02 13504 13474 mov dx, word [bp-00ah] ; 8b 56 f6 13505 call 0a 13eh ; e8 461413475 call 0a0deh ; e8 3b 14 13506 13476 mov es, [bp-00ah] ; 8e 46 f6 13507 13477 mov dx, word [es:di+0027eh] ; 26 8b 95 7e 02 … … 13527 13497 mov ax, word [es:bx+020h] ; 26 8b 47 20 13528 13498 test ax, ax ; 85 c0 13529 je short 08d 88h ; 74 3913499 je short 08d33h ; 74 39 13530 13500 dec ax ; 48 13531 13501 mov es, [bp-00ah] ; 8e 46 f6 … … 13545 13515 mov al, byte [bp-008h] ; 8a 46 f8 13546 13516 cmp AL, strict byte 035h ; 3c 35 13547 jne short 08d 95h ; 75 0613517 jne short 08d40h ; 75 06 13548 13518 mov byte [bp-008h], 040h ; c6 46 f8 40 13549 jmp short 08d ach ; eb 1713519 jmp short 08d57h ; eb 17 13550 13520 cmp AL, strict byte 0a0h ; 3c a0 13551 jne short 08d a8h ; 75 0f13521 jne short 08d53h ; 75 0f 13552 13522 or byte [bp-008h], 020h ; 80 4e f8 20 13553 13523 les bx, [bp-00eh] ; c4 5e f2 13554 13524 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 13555 jmp short 08d ach ; eb 0413525 jmp short 08d57h ; eb 04 13556 13526 mov byte [bp-008h], 000h ; c6 46 f8 00 13557 13527 or byte [bp-008h], 005h ; 80 4e f8 05 … … 13560 13530 mov ax, word [bp-00eh] ; 8b 46 f2 13561 13531 mov dx, word [bp-00ch] ; 8b 56 f4 13562 call 08 a31h ; e8 73 fc13532 call 089dch ; e8 73 fc 13563 13533 mov cx, word [bp-00ch] ; 8b 4e f4 13564 13534 mov bx, word [bp-00eh] ; 8b 5e f2 … … 13567 13537 add ax, 0026ah ; 05 6a 02 13568 13538 mov dx, cx ; 89 ca 13569 call 0a1 b5h ; e8 e21313539 call 0a155h ; e8 d7 13 13570 13540 mov es, cx ; 8e c1 13571 13541 mov al, byte [es:bx+003h] ; 26 8a 47 03 13572 13542 test al, al ; 84 c0 13573 je short 08d e2h ; 74 0513543 je short 08d8dh ; 74 05 13574 13544 mov ax, strict word 00004h ; b8 04 00 13575 jmp short 08d e4h ; eb 0213545 jmp short 08d8fh ; eb 02 13576 13546 xor ah, ah ; 30 e4 13577 13547 lea sp, [bp-006h] ; 8d 66 fa … … 13581 13551 pop bp ; 5d 13582 13552 retn ; c3 13583 ahci_port_deinit_current_: ; 0xf8d ecLB 0x18313553 ahci_port_deinit_current_: ; 0xf8d97 LB 0x183 13584 13554 push bp ; 55 13585 13555 mov bp, sp ; 89 e5 … … 13596 13566 mov byte [bp-00ah], al ; 88 46 f6 13597 13567 cmp AL, strict byte 0ffh ; 3c ff 13598 je short 08e 6fh ; 74 6113568 je short 08e1ah ; 74 61 13599 13569 xor ah, ah ; 30 e4 13600 13570 mov CL, strict byte 007h ; b1 07 … … 13642 13612 xchg dx, ax ; 92 13643 13613 test ax, 0c011h ; a9 11 c0 13644 je short 08e 72h ; 74 0713614 je short 08e1dh ; 74 07 13645 13615 mov AL, strict byte 001h ; b0 01 13646 jmp short 08e 74h ; eb 0513647 jmp near 08f 66h ; e9 f4 0013616 jmp short 08e1fh ; eb 05 13617 jmp near 08f11h ; e9 f4 00 13648 13618 xor al, al ; 30 c0 13649 13619 cmp AL, strict byte 001h ; 3c 01 13650 je short 08 e41h ; 74 c913620 je short 08dech ; 74 c9 13651 13621 mov cx, strict word 00020h ; b9 20 00 13652 13622 xor bx, bx ; 31 db 13653 13623 mov ax, di ; 89 f8 13654 13624 mov dx, word [bp-00eh] ; 8b 56 f2 13655 call 0a2 7ah ; e8 f51313625 call 0a21ah ; e8 ea 13 13656 13626 lea ax, [di+00080h] ; 8d 85 80 00 13657 13627 mov cx, strict word 00040h ; b9 40 00 13658 13628 xor bx, bx ; 31 db 13659 13629 mov dx, word [bp-00eh] ; 8b 56 f2 13660 call 0a2 7ah ; e8 e61313630 call 0a21ah ; e8 db 13 13661 13631 lea ax, [di+00200h] ; 8d 85 00 02 13662 13632 mov cx, strict word 00060h ; b9 60 00 13663 13633 xor bx, bx ; 31 db 13664 13634 mov dx, word [bp-00eh] ; 8b 56 f2 13665 call 0a2 7ah ; e8 d71313635 call 0a21ah ; e8 cc 13 13666 13636 mov al, byte [bp-00ah] ; 8a 46 f6 13667 13637 xor ah, ah ; 30 e4 … … 13769 13739 pop bp ; 5d 13770 13740 retn ; c3 13771 ahci_port_init_: ; 0xf8f 6fLB 0x25013741 ahci_port_init_: ; 0xf8f1a LB 0x250 13772 13742 push bp ; 55 13773 13743 mov bp, sp ; 89 e5 … … 13779 13749 mov word [bp-00ah], dx ; 89 56 f6 13780 13750 mov byte [bp-008h], bl ; 88 5e f8 13781 call 08d ech ; e8 69 fe13751 call 08d97h ; e8 69 fe 13782 13752 mov al, bl ; 88 d8 13783 13753 xor ah, ah ; 30 e4 … … 13830 13800 xchg dx, ax ; 92 13831 13801 test ax, 0c011h ; a9 11 c0 13832 je short 08f f6h ; 74 0413802 je short 08fa1h ; 74 04 13833 13803 mov AL, strict byte 001h ; b0 01 13834 jmp short 08f f8h ; eb 0213804 jmp short 08fa3h ; eb 02 13835 13805 xor al, al ; 30 c0 13836 13806 cmp AL, strict byte 001h ; 3c 01 13837 je short 08f c0h ; 74 c413807 je short 08f6bh ; 74 c4 13838 13808 mov cx, strict word 00020h ; b9 20 00 13839 13809 xor bx, bx ; 31 db 13840 13810 mov ax, si ; 89 f0 13841 13811 mov dx, word [bp-00ah] ; 8b 56 f6 13842 call 0a2 7ah ; e8 711213812 call 0a21ah ; e8 66 12 13843 13813 lea ax, [si+00080h] ; 8d 84 80 00 13844 13814 mov cx, strict word 00040h ; b9 40 00 13845 13815 xor bx, bx ; 31 db 13846 13816 mov dx, word [bp-00ah] ; 8b 56 f6 13847 call 0a2 7ah ; e8 621213817 call 0a21ah ; e8 57 12 13848 13818 lea di, [si+00200h] ; 8d bc 00 02 13849 13819 mov cx, strict word 00060h ; b9 60 00 … … 13851 13821 mov ax, di ; 89 f8 13852 13822 mov dx, word [bp-00ah] ; 8b 56 f6 13853 call 0a2 7ah ; e8 511213823 call 0a21ah ; e8 46 12 13854 13824 mov bl, byte [bp-008h] ; 8a 5e f8 13855 13825 xor bh, bh ; 30 ff … … 13870 13840 mov ax, di ; 89 f8 13871 13841 mov dx, word [bp-00ah] ; 8b 56 f6 13872 call 08 a13h ; e8 bb f913842 call 089beh ; e8 bb f9 13873 13843 mov es, [bp-00ah] ; 8e 46 f6 13874 13844 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13915 13885 mov ax, si ; 89 f0 13916 13886 mov dx, word [bp-00ah] ; 8b 56 f6 13917 call 08 a13h ; e8 4f f913887 call 089beh ; e8 4f f9 13918 13888 mov es, [bp-00ah] ; 8e 46 f6 13919 13889 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 14020 13990 pop bp ; 5d 14021 13991 retn ; c3 14022 @ahci_read_sectors: ; 0xf91 bfLB 0xaa13992 @ahci_read_sectors: ; 0xf916a LB 0xaa 14023 13993 push bp ; 55 14024 13994 mov bp, sp ; 89 e5 … … 14031 14001 sub di, strict byte 0000ch ; 83 ef 0c 14032 14002 cmp di, strict byte 00004h ; 83 ff 04 14033 jbe short 091 eah ; 76 1314003 jbe short 09195h ; 76 13 14034 14004 push di ; 57 14035 14005 mov ax, 00c62h ; b8 62 0c … … 14039 14009 mov ax, strict word 00007h ; b8 07 00 14040 14010 push ax ; 50 14041 call 01976h ; e8 8f8714011 call 01976h ; e8 e4 87 14042 14012 add sp, strict byte 00008h ; 83 c4 08 14043 14013 xor bx, bx ; 31 db … … 14053 14023 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14054 14024 xor ax, ax ; 31 c0 14055 call 08f 6fh ; e8 5a fd14025 call 08f1ah ; e8 5a fd 14056 14026 mov bx, strict word 00025h ; bb 25 00 14057 14027 mov ax, si ; 89 f0 14058 14028 mov dx, word [bp+006h] ; 8b 56 06 14059 call 08b 8ah ; e8 6a f914029 call 08b35h ; e8 6a f9 14060 14030 mov bx, ax ; 89 c3 14061 14031 mov es, [bp+006h] ; 8e 46 06 … … 14087 14057 pop bp ; 5d 14088 14058 retn 00004h ; c2 04 00 14089 @ahci_write_sectors: ; 0xf92 69LB 0x8814059 @ahci_write_sectors: ; 0xf9214 LB 0x88 14090 14060 push bp ; 55 14091 14061 mov bp, sp ; 89 e5 … … 14099 14069 sub bx, strict byte 0000ch ; 83 eb 0c 14100 14070 cmp bx, strict byte 00004h ; 83 fb 04 14101 jbe short 092 97h ; 76 1314071 jbe short 09242h ; 76 13 14102 14072 push bx ; 53 14103 14073 mov ax, 00c93h ; b8 93 0c … … 14107 14077 mov ax, strict word 00007h ; b8 07 00 14108 14078 push ax ; 50 14109 call 01976h ; e8 e2 8614079 call 01976h ; e8 37 87 14110 14080 add sp, strict byte 00008h ; 83 c4 08 14111 14081 xor di, di ; 31 ff … … 14121 14091 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14122 14092 xor ax, ax ; 31 c0 14123 call 08f 6fh ; e8 af fc14093 call 08f1ah ; e8 af fc 14124 14094 mov bx, strict word 00035h ; bb 35 00 14125 14095 mov ax, si ; 89 f0 14126 14096 mov dx, cx ; 89 ca 14127 call 08b 8ah ; e8 c0 f814097 call 08b35h ; e8 c0 f8 14128 14098 mov dx, ax ; 89 c2 14129 14099 mov es, cx ; 8e c1 … … 14140 14110 pop bp ; 5d 14141 14111 retn 00004h ; c2 04 00 14142 ahci_cmd_packet_: ; 0xf92 f1LB 0x18c14112 ahci_cmd_packet_: ; 0xf929c LB 0x18c 14143 14113 push bp ; 55 14144 14114 mov bp, sp ; 89 e5 … … 14152 14122 mov dx, strict word 0000eh ; ba 0e 00 14153 14123 mov ax, strict word 00040h ; b8 40 00 14154 call 0166eh ; e8 628314124 call 0166eh ; e8 b7 83 14155 14125 mov si, 00122h ; be 22 01 14156 14126 mov word [bp-008h], ax ; 89 46 f8 14157 14127 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 14158 jne short 09 33bh ; 75 2314128 jne short 092e6h ; 75 23 14159 14129 mov bx, 00da0h ; bb a0 0d 14160 14130 mov cx, ds ; 8c d9 14161 14131 mov ax, strict word 00004h ; b8 04 00 14162 call 01933h ; e8 108614132 call 01933h ; e8 65 86 14163 14133 mov ax, 00ca6h ; b8 a6 0c 14164 14134 push ax ; 50 … … 14167 14137 mov ax, strict word 00004h ; b8 04 00 14168 14138 push ax ; 50 14169 call 01976h ; e8 448614139 call 01976h ; e8 99 86 14170 14140 add sp, strict byte 00006h ; 83 c4 06 14171 14141 mov ax, strict word 00001h ; b8 01 00 14172 jmp near 094 74h ; e9 39 0114142 jmp near 0941fh ; e9 39 01 14173 14143 test byte [bp+004h], 001h ; f6 46 04 01 14174 jne short 09 335h ; 75 f414144 jne short 092e0h ; 75 f4 14175 14145 mov bx, word [bp+006h] ; 8b 5e 06 14176 14146 mov di, word [bp+008h] ; 8b 7e 08 … … 14178 14148 sal bx, 1 ; d1 e3 14179 14149 rcl di, 1 ; d1 d7 14180 loop 09 34ah ; e2 fa14150 loop 092f5h ; e2 fa 14181 14151 mov es, [bp-008h] ; 8e 46 f8 14182 14152 mov word [es:si], bx ; 26 89 1c … … 14192 14162 mov dx, word [bp+008h] ; 8b 56 08 14193 14163 xor cx, cx ; 31 c9 14194 call 0a1 f0h ; e8 6d0e14164 call 0a190h ; e8 62 0e 14195 14165 mov word [es:si+00eh], ax ; 26 89 44 0e 14196 14166 xor di, di ; 31 ff … … 14210 14180 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14211 14181 xor ax, ax ; 31 c0 14212 call 08f 6fh ; e8 af fb14182 call 08f1ah ; e8 af fb 14213 14183 mov al, byte [bp-006h] ; 8a 46 fa 14214 14184 xor ah, ah ; 30 e4 … … 14218 14188 mov ax, 000c0h ; b8 c0 00 14219 14189 mov dx, word [bp-00ah] ; 8b 56 f6 14220 call 0a2 87h ; e8 b20e14190 call 0a227h ; e8 a7 0e 14221 14191 mov es, [bp-008h] ; 8e 46 f8 14222 14192 mov word [es:si+018h], di ; 26 89 7c 18 … … 14225 14195 mov ax, word [es:si+01eh] ; 26 8b 44 1e 14226 14196 test ax, ax ; 85 c0 14227 je short 09 413h ; 74 2714197 je short 093beh ; 74 27 14228 14198 dec ax ; 48 14229 14199 mov es, [bp-00ah] ; 8e 46 f6 … … 14238 14208 mov ax, si ; 89 f0 14239 14209 mov dx, word [bp-008h] ; 8b 56 f8 14240 call 08b 8ah ; e8 6c f714210 call 08b35h ; e8 6c f7 14241 14211 les bx, [bp-00eh] ; c4 5e f2 14242 14212 mov dx, word [es:bx+004h] ; 26 8b 57 04 … … 14265 14235 mov ax, word [es:bx+006h] ; 26 8b 47 06 14266 14236 or ax, word [es:bx+004h] ; 26 0b 47 04 14267 jne short 094 72h ; 75 0514237 jne short 0941dh ; 75 05 14268 14238 mov ax, strict word 00004h ; b8 04 00 14269 jmp short 094 74h ; eb 0214239 jmp short 0941fh ; eb 02 14270 14240 xor ax, ax ; 31 c0 14271 14241 lea sp, [bp-004h] ; 8d 66 fc … … 14274 14244 pop bp ; 5d 14275 14245 retn 0000ch ; c2 0c 00 14276 ahci_port_detect_device_: ; 0xf94 7dLB 0x4fe14246 ahci_port_detect_device_: ; 0xf9428 LB 0x4fe 14277 14247 push bp ; 55 14278 14248 mov bp, sp ; 89 e5 … … 14290 14260 mov bx, word [bp-020h] ; 8b 5e e0 14291 14261 mov ax, si ; 89 f0 14292 call 08f 6fh ; e8 ce fa14262 call 08f1ah ; e8 ce fa 14293 14263 mov dx, strict word 0000eh ; ba 0e 00 14294 14264 mov ax, strict word 00040h ; b8 40 00 14295 call 0166eh ; e8 c4 8114265 call 0166eh ; e8 19 82 14296 14266 mov word [bp-01ah], 00122h ; c7 46 e6 22 01 14297 14267 mov word [bp-00eh], ax ; 89 46 f2 … … 14365 14335 mov bx, strict word 0000fh ; bb 0f 00 14366 14336 xor cx, cx ; 31 c9 14367 call 089 f7h ; e8 9f f414337 call 089a2h ; e8 9f f4 14368 14338 test ax, ax ; 85 c0 14369 jne short 095 5fh ; 75 0314370 jmp near 099 73h ; e9 14 0414339 jne short 0950ah ; 75 03 14340 jmp near 0991eh ; e9 14 04 14371 14341 mov al, byte [bp-008h] ; 8a 46 f8 14372 14342 xor ah, ah ; 30 e4 … … 14400 14370 xor cx, cx ; 31 c9 14401 14371 mov ax, di ; 89 f8 14402 call 089 f7h ; e8 4d f414372 call 089a2h ; e8 4d f4 14403 14373 cmp ax, strict word 00001h ; 3d 01 00 14404 je short 095 5fh ; 74 b014374 je short 0950ah ; 74 b0 14405 14375 xor ax, ax ; 31 c0 14406 14376 push ax ; 50 … … 14409 14379 mov ax, di ; 89 f8 14410 14380 mov dx, word [bp-01ch] ; 8b 56 e4 14411 call 089 f7h ; e8 38 f414381 call 089a2h ; e8 38 f4 14412 14382 cmp ax, strict word 00003h ; 3d 03 00 14413 jne short 095 5ch ; 75 9814383 jne short 09507h ; 75 98 14414 14384 mov ax, word [bp-016h] ; 8b 46 ea 14415 14385 add ax, 00130h ; 05 30 01 … … 14439 14409 mov byte [bp-00ch], al ; 88 46 f4 14440 14410 cmp AL, strict byte 004h ; 3c 04 14441 jc short 09 60eh ; 72 0314442 jmp near 099 73h ; e9 65 0314411 jc short 095b9h ; 72 03 14412 jmp near 0991eh ; e9 65 03 14443 14413 mov ax, word [bp-016h] ; 8b 46 ea 14444 14414 add ax, 00118h ; 05 18 01 … … 14492 14462 add cl, 00ch ; 80 c1 0c 14493 14463 test dx, dx ; 85 d2 14494 jne short 096 d9h ; 75 5514464 jne short 09684h ; 75 55 14495 14465 cmp bx, 00101h ; 81 fb 01 01 14496 jne short 096 d9h ; 75 4f14466 jne short 09684h ; 75 4f 14497 14467 mov es, [bp-00eh] ; 8e 46 f2 14498 14468 mov bx, word [bp-01ah] ; 8b 5e e6 … … 14509 14479 mov ax, word [bp-01ah] ; 8b 46 e6 14510 14480 mov dx, es ; 8c c2 14511 call 08b 8ah ; e8 c0 f414481 call 08b35h ; e8 c0 f4 14512 14482 mov byte [bp-00ah], cl ; 88 4e f6 14513 14483 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14514 je short 096 dch ; 74 0814484 je short 09687h ; 74 08 14515 14485 mov ax, strict word 00001h ; b8 01 00 14516 jmp short 096 deh ; eb 0514517 jmp near 098 aeh ; e9 d2 0114486 jmp short 09689h ; eb 05 14487 jmp near 09859h ; e9 d2 01 14518 14488 xor ax, ax ; 31 c0 14519 14489 mov cl, al ; 88 c1 … … 14531 14501 mov word [bp-012h], ax ; 89 46 ee 14532 14502 cmp di, 00fffh ; 81 ff ff 0f 14533 jne short 09 72dh ; 75 1f14503 jne short 096d8h ; 75 1f 14534 14504 cmp word [bp-014h], strict byte 0ffffh ; 83 7e ec ff 14535 jne short 09 72dh ; 75 1914505 jne short 096d8h ; 75 19 14536 14506 mov ax, word [bp-0015ch] ; 8b 86 a4 fe 14537 14507 mov word [bp-012h], ax ; 89 46 ee … … 14573 14543 mov al, byte [bp-00ch] ; 8a 46 f4 14574 14544 cmp AL, strict byte 001h ; 3c 01 14575 jc short 097 aah ; 72 0c14576 jbe short 097 b2h ; 76 1214545 jc short 09755h ; 72 0c 14546 jbe short 0975dh ; 76 12 14577 14547 cmp AL, strict byte 003h ; 3c 03 14578 je short 097 bah ; 74 1614548 je short 09765h ; 74 16 14579 14549 cmp AL, strict byte 002h ; 3c 02 14580 je short 097 b6h ; 74 0e14581 jmp short 097 fdh ; eb 5314550 je short 09761h ; 74 0e 14551 jmp short 097a8h ; eb 53 14582 14552 test al, al ; 84 c0 14583 jne short 097 fdh ; 75 4f14553 jne short 097a8h ; 75 4f 14584 14554 mov DL, strict byte 040h ; b2 40 14585 jmp short 097 bch ; eb 0a14555 jmp short 09767h ; eb 0a 14586 14556 mov DL, strict byte 048h ; b2 48 14587 jmp short 097 bch ; eb 0614557 jmp short 09767h ; eb 06 14588 14558 mov DL, strict byte 050h ; b2 50 14589 jmp short 097 bch ; eb 0214559 jmp short 09767h ; eb 02 14590 14560 mov DL, strict byte 058h ; b2 58 14591 14561 mov bl, dl ; 88 d3 … … 14593 14563 xor bh, bh ; 30 ff 14594 14564 mov ax, bx ; 89 d8 14595 call 016aeh ; e8 e6 7e14565 call 016aeh ; e8 3b 7f 14596 14566 test al, al ; 84 c0 14597 je short 097 fdh ; 74 3114567 je short 097a8h ; 74 31 14598 14568 mov al, dl ; 88 d0 14599 14569 db 0feh, 0c0h 14600 14570 ; inc al ; fe c0 14601 14571 xor ah, ah ; 30 e4 14602 call 016aeh ; e8 d9 7e14572 call 016aeh ; e8 2e 7f 14603 14573 mov ch, al ; 88 c5 14604 14574 mov al, dl ; 88 d0 14605 14575 xor ah, ah ; 30 e4 14606 call 016aeh ; e8 d0 7e14576 call 016aeh ; e8 25 7f 14607 14577 mov ah, ch ; 88 ec 14608 14578 mov word [bp-028h], ax ; 89 46 d8 … … 14610 14580 add AL, strict byte 002h ; 04 02 14611 14581 xor ah, ah ; 30 e4 14612 call 016aeh ; e8 c2 7e14582 call 016aeh ; e8 17 7f 14613 14583 xor ah, ah ; 30 e4 14614 14584 mov word [bp-02ah], ax ; 89 46 d6 14615 14585 mov ax, bx ; 89 d8 14616 call 016aeh ; e8 b8 7e14586 call 016aeh ; e8 0d 7f 14617 14587 xor ah, ah ; 30 e4 14618 14588 mov word [bp-026h], ax ; 89 46 da 14619 jmp short 09 80fh ; eb 1214589 jmp short 097bah ; eb 12 14620 14590 push word [bp-012h] ; ff 76 ee 14621 14591 push word [bp-01eh] ; ff 76 e2 … … 14624 14594 mov dx, ss ; 8c d2 14625 14595 lea ax, [bp-02ah] ; 8d 46 d6 14626 call 05b 50h ; e8 41c314596 call 05b09h ; e8 4f c3 14627 14597 mov bx, 00da0h ; bb a0 0d 14628 14598 mov cx, ds ; 8c d9 14629 14599 mov ax, strict word 00004h ; b8 04 00 14630 call 01933h ; e8 198114600 call 01933h ; e8 6e 81 14631 14601 push word [bp-012h] ; ff 76 ee 14632 14602 push word [bp-01eh] ; ff 76 e2 … … 14651 14621 mov ax, strict word 00004h ; b8 04 00 14652 14622 push ax ; 50 14653 call 01976h ; e8 288114623 call 01976h ; e8 7d 81 14654 14624 add sp, strict byte 0001ch ; 83 c4 1c 14655 14625 mov al, byte [bp-00ah] ; 8a 46 f6 … … 14683 14653 mov dx, strict word 00075h ; ba 75 00 14684 14654 mov ax, strict word 00040h ; b8 40 00 14685 call 01652h ; e8 b6 7d14655 call 01652h ; e8 0b 7e 14686 14656 mov bl, al ; 88 c3 14687 14657 db 0feh, 0c3h … … 14690 14660 mov dx, strict word 00075h ; ba 75 00 14691 14661 mov ax, strict word 00040h ; b8 40 00 14692 call 01660h ; e8 b5 7d14693 jmp near 099 62h ; e9 b4 0014662 call 01660h ; e8 0a 7e 14663 jmp near 0990dh ; e9 b4 00 14694 14664 cmp dx, 0eb14h ; 81 fa 14 eb 14695 jne short 09 909h ; 75 5514665 jne short 098b4h ; 75 55 14696 14666 cmp bx, 00101h ; 81 fb 01 01 14697 jne short 09 909h ; 75 4f14667 jne short 098b4h ; 75 4f 14698 14668 mov es, [bp-00eh] ; 8e 46 f2 14699 14669 mov bx, word [bp-01ah] ; 8b 5e e6 … … 14710 14680 mov ax, word [bp-01ah] ; 8b 46 e6 14711 14681 mov dx, es ; 8c c2 14712 call 08b 8ah ; e8 90 f214682 call 08b35h ; e8 90 f2 14713 14683 mov byte [bp-00ah], cl ; 88 4e f6 14714 14684 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14715 je short 09 90bh ; 74 0714685 je short 098b6h ; 74 07 14716 14686 mov cx, strict word 00001h ; b9 01 00 14717 jmp short 09 90dh ; eb 0414718 jmp short 099 62h ; eb 5714687 jmp short 098b8h ; eb 04 14688 jmp short 0990dh ; eb 57 14719 14689 xor cx, cx ; 31 c9 14720 14690 mov bl, byte [bp-00ch] ; 8a 5e f4 … … 14756 14726 pop bp ; 5d 14757 14727 retn ; c3 14758 ahci_mem_alloc_: ; 0xf99 7bLB 0x4314728 ahci_mem_alloc_: ; 0xf9926 LB 0x43 14759 14729 push bp ; 55 14760 14730 mov bp, sp ; 89 e5 … … 14766 14736 mov dx, 00413h ; ba 13 04 14767 14737 xor ax, ax ; 31 c0 14768 call 0166eh ; e8 e3 7c14738 call 0166eh ; e8 38 7d 14769 14739 test ax, ax ; 85 c0 14770 je short 099 b4h ; 74 2514740 je short 0995fh ; 74 25 14771 14741 dec ax ; 48 14772 14742 mov bx, ax ; 89 c3 … … 14775 14745 sal ax, 1 ; d1 e0 14776 14746 rcl dx, 1 ; d1 d2 14777 loop 099 97h ; e2 fa14747 loop 09942h ; e2 fa 14778 14748 mov si, ax ; 89 c6 14779 14749 mov di, dx ; 89 d7 … … 14781 14751 shr di, 1 ; d1 ef 14782 14752 rcr si, 1 ; d1 de 14783 loop 099 a4h ; e2 fa14753 loop 0994fh ; e2 fa 14784 14754 mov dx, 00413h ; ba 13 04 14785 14755 xor ax, ax ; 31 c0 14786 call 0167ch ; e8 ca 7c14756 call 0167ch ; e8 1f 7d 14787 14757 mov ax, si ; 89 f0 14788 14758 lea sp, [bp-00ah] ; 8d 66 f6 … … 14794 14764 pop bp ; 5d 14795 14765 retn ; c3 14796 ahci_hba_init_: ; 0xf99 beLB 0x16e14766 ahci_hba_init_: ; 0xf9969 LB 0x16e 14797 14767 push bp ; 55 14798 14768 mov bp, sp ; 89 e5 … … 14806 14776 mov dx, strict word 0000eh ; ba 0e 00 14807 14777 mov ax, strict word 00040h ; b8 40 00 14808 call 0166eh ; e8 9a7c14778 call 0166eh ; e8 ef 7c 14809 14779 mov bx, 00122h ; bb 22 01 14810 14780 mov di, ax ; 89 c7 … … 14823 14793 shr eax, 010h ; 66 c1 e8 10 14824 14794 xchg dx, ax ; 92 14825 call 099 7bh ; e8 83 ff14795 call 09926h ; e8 83 ff 14826 14796 mov word [bp-010h], ax ; 89 46 f0 14827 14797 test ax, ax ; 85 c0 14828 jne short 09 a02h ; 75 0314829 jmp near 09 b0bh ; e9 09 0114798 jne short 099adh ; 75 03 14799 jmp near 09ab6h ; e9 09 01 14830 14800 mov ax, word [bp-010h] ; 8b 46 f0 14831 14801 mov es, di ; 8e c7 … … 14877 14847 xchg dx, ax ; 92 14878 14848 test AL, strict byte 001h ; a8 01 14879 jne short 09a 5ch ; 75 de14849 jne short 09a07h ; 75 de 14880 14850 xor ax, ax ; 31 c0 14881 14851 xor cx, cx ; 31 c9 … … 14896 14866 mov bx, strict word 0001fh ; bb 1f 00 14897 14867 xor cx, cx ; 31 c9 14898 call 089 f7h ; e8 54 ef14868 call 089a2h ; e8 54 ef 14899 14869 db 0feh, 0c0h 14900 14870 ; inc al ; fe c0 14901 14871 mov byte [bp-00eh], al ; 88 46 f2 14902 14872 mov byte [bp-00ch], 000h ; c6 46 f4 00 14903 jmp short 09a cfh ; eb 2114873 jmp short 09a7ah ; eb 21 14904 14874 xor al, al ; 30 c0 14905 14875 test al, al ; 84 c0 14906 je short 09a c6h ; 74 1214876 je short 09a71h ; 74 12 14907 14877 mov bl, byte [bp-00ch] ; 8a 5e f4 14908 14878 xor bh, bh ; 30 ff 14909 14879 xor ax, ax ; 31 c0 14910 14880 mov dx, word [bp-010h] ; 8b 56 f0 14911 call 094 7dh ; e8 bc f914881 call 09428h ; e8 bc f9 14912 14882 dec byte [bp-00eh] ; fe 4e f2 14913 je short 09 b09h ; 74 4314883 je short 09ab4h ; 74 43 14914 14884 inc byte [bp-00ch] ; fe 46 f4 14915 14885 cmp byte [bp-00ch], 020h ; 80 7e f4 20 14916 jnc short 09 b09h ; 73 3a14886 jnc short 09ab4h ; 73 3a 14917 14887 mov cl, byte [bp-00ch] ; 8a 4e f4 14918 14888 xor ch, ch ; 30 ed 14919 14889 mov bx, strict word 00001h ; bb 01 00 14920 14890 xor di, di ; 31 ff 14921 jcxz 09a e1h ; e3 0614891 jcxz 09a8ch ; e3 06 14922 14892 sal bx, 1 ; d1 e3 14923 14893 rcl di, 1 ; d1 d7 14924 loop 09a dbh ; e2 fa14894 loop 09a86h ; e2 fa 14925 14895 mov ax, strict word 0000ch ; b8 0c 00 14926 14896 xor cx, cx ; 31 c9 … … 14938 14908 xchg dx, ax ; 92 14939 14909 test dx, di ; 85 fa 14940 jne short 09 b05h ; 75 0414910 jne short 09ab0h ; 75 04 14941 14911 test ax, bx ; 85 d8 14942 je short 09a aeh ; 74 a914912 je short 09a59h ; 74 a9 14943 14913 mov AL, strict byte 001h ; b0 01 14944 jmp short 09a b0h ; eb a714914 jmp short 09a5bh ; eb a7 14945 14915 xor ax, ax ; 31 c0 14946 14916 lea sp, [bp-00ah] ; 8d 66 f6 … … 14952 14922 pop bp ; 5d 14953 14923 retn ; c3 14954 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 11h, 09ch, 0efh, 09bh, 0f5h, 09bh, 0fbh, 09bh, 001h14955 db 09 ch, 007h, 09ch, 00dh, 09ch, 011h, 09ch14956 _ahci_init: ; 0xf9 b2cLB 0x11a14924 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0bch, 09bh, 09ah, 09bh, 0a0h, 09bh, 0a6h, 09bh, 0ach 14925 db 09bh, 0b2h, 09bh, 0b8h, 09bh, 0bch, 09bh 14926 _ahci_init: ; 0xf9ad7 LB 0x11a 14957 14927 push bp ; 55 14958 14928 mov bp, sp ; 89 e5 … … 14961 14931 mov ax, 00601h ; b8 01 06 14962 14932 mov dx, strict word 00001h ; ba 01 00 14963 call 0a0 65h ; e8 29 0514933 call 0a010h ; e8 29 05 14964 14934 mov dx, ax ; 89 c2 14965 14935 cmp ax, strict word 0ffffh ; 3d ff ff 14966 je short 09b 8ch ; 74 4914936 je short 09b37h ; 74 49 14967 14937 mov al, ah ; 88 e0 14968 14938 mov byte [bp-006h], ah ; 88 66 fa … … 14971 14941 xor ah, ah ; 30 e4 14972 14942 mov bx, strict word 00034h ; bb 34 00 14973 call 0a0 90h ; e8 3b0514943 call 0a018h ; e8 18 05 14974 14944 mov cl, al ; 88 c1 14975 14945 test cl, cl ; 84 c9 14976 je short 09b 8fh ; 74 3414946 je short 09b3ah ; 74 34 14977 14947 mov bl, cl ; 88 cb 14978 14948 xor bh, bh ; 30 ff … … 14985 14955 mov dx, word [bp-00ch] ; 8b 56 f4 14986 14956 mov ax, word [bp-010h] ; 8b 46 f0 14987 call 0a0 90h ; e8 16 0514957 call 0a018h ; e8 f3 04 14988 14958 cmp AL, strict byte 012h ; 3c 12 14989 je short 09b 8fh ; 74 1114959 je short 09b3ah ; 74 11 14990 14960 mov bl, cl ; 88 cb 14991 14961 db 0feh, 0c3h … … 14994 14964 mov dx, word [bp-00ch] ; 8b 56 f4 14995 14965 mov ax, word [bp-010h] ; 8b 46 f0 14996 jmp short 09 b52h ; eb c614997 jmp near 09 c40h ; e9 b1 0014966 jmp short 09afdh ; eb c6 14967 jmp near 09bebh ; e9 b1 00 14998 14968 test cl, cl ; 84 c9 14999 je short 09b 8ch ; 74 f914969 je short 09b37h ; 74 f9 15000 14970 add cl, 002h ; 80 c1 02 15001 14971 mov bl, cl ; 88 cb … … 15009 14979 mov dx, word [bp-00eh] ; 8b 56 f2 15010 14980 mov ax, word [bp-00ah] ; 8b 46 f6 15011 call 0a0 90h ; e8 db0414981 call 0a018h ; e8 b8 04 15012 14982 cmp AL, strict byte 010h ; 3c 10 15013 jne short 09b 8ch ; 75 d314983 jne short 09b37h ; 75 d3 15014 14984 mov byte [bp-004h], 000h ; c6 46 fc 00 15015 14985 mov bl, cl ; 88 cb … … 15018 14988 mov dx, word [bp-00eh] ; 8b 56 f2 15019 14989 mov ax, word [bp-00ah] ; 8b 46 f6 15020 call 0a0 b7h ; e8 ea0414990 call 0a03fh ; e8 c7 04 15021 14991 mov dx, ax ; 89 c2 15022 14992 and ax, strict word 0000fh ; 25 0f 00 15023 14993 sub ax, strict word 00004h ; 2d 04 00 15024 14994 cmp ax, strict word 0000bh ; 3d 0b 00 15025 jnbe short 09 c11h ; 77 3714995 jnbe short 09bbch ; 77 37 15026 14996 push CS ; 0e 15027 14997 pop ES ; 07 15028 14998 mov cx, strict word 00008h ; b9 08 00 15029 mov di, 09 b15h ; bf 15 9b14999 mov di, 09ac0h ; bf c0 9a 15030 15000 repne scasb ; f2 ae 15031 15001 sal cx, 1 ; d1 e1 15032 15002 mov di, cx ; 89 cf 15033 mov ax, word [cs:di-06 4e4h] ; 2e 8b 85 1c 9b15003 mov ax, word [cs:di-06539h] ; 2e 8b 85 c7 9a 15034 15004 jmp ax ; ff e0 15035 15005 mov byte [bp-004h], 010h ; c6 46 fc 10 15036 jmp short 09 c11h ; eb 1c15006 jmp short 09bbch ; eb 1c 15037 15007 mov byte [bp-004h], 014h ; c6 46 fc 14 15038 jmp short 09 c11h ; eb 1615008 jmp short 09bbch ; eb 16 15039 15009 mov byte [bp-004h], 018h ; c6 46 fc 18 15040 jmp short 09 c11h ; eb 1015010 jmp short 09bbch ; eb 10 15041 15011 mov byte [bp-004h], 01ch ; c6 46 fc 1c 15042 jmp short 09 c11h ; eb 0a15012 jmp short 09bbch ; eb 0a 15043 15013 mov byte [bp-004h], 020h ; c6 46 fc 20 15044 jmp short 09 c11h ; eb 0415014 jmp short 09bbch ; eb 04 15045 15015 mov byte [bp-004h], 024h ; c6 46 fc 24 15046 15016 mov CL, strict byte 004h ; b1 04 … … 15052 15022 mov al, byte [bp-004h] ; 8a 46 fc 15053 15023 test al, al ; 84 c0 15054 je short 09 c40h ; 74 1c15024 je short 09bebh ; 74 1c 15055 15025 mov bl, al ; 88 c3 15056 15026 xor bh, bh ; 30 ff … … 15059 15029 mov al, byte [bp-006h] ; 8a 46 fa 15060 15030 xor ah, ah ; 30 e4 15061 call 0a0 dch ; e8 a70415031 call 0a064h ; e8 84 04 15062 15032 test AL, strict byte 001h ; a8 01 15063 je short 09 c40h ; 74 0715033 je short 09bebh ; 74 07 15064 15034 and AL, strict byte 0f0h ; 24 f0 15065 15035 add ax, cx ; 01 c8 15066 call 099 beh ; e8 7e fd15036 call 09969h ; e8 7e fd 15067 15037 lea sp, [bp-002h] ; 8d 66 fe 15068 15038 pop di ; 5f 15069 15039 pop bp ; 5d 15070 15040 retn ; c3 15071 apm_out_str_: ; 0xf9 c46LB 0x3915041 apm_out_str_: ; 0xf9bf1 LB 0x39 15072 15042 push bp ; 55 15073 15043 mov bp, sp ; 89 e5 … … 15075 15045 mov bx, ax ; 89 c3 15076 15046 cmp byte [bx], 000h ; 80 3f 00 15077 je short 09c 5bh ; 74 0a15047 je short 09c06h ; 74 0a 15078 15048 mov al, byte [bx] ; 8a 07 15079 15049 out DX, AL ; ee … … 15082 15052 db 00ah, 0c0h 15083 15053 ; or al, al ; 0a c0 15084 jne short 09 c53h ; 75 f815054 jne short 09bfeh ; 75 f8 15085 15055 lea sp, [bp-002h] ; 8d 66 fe 15086 15056 pop bx ; 5b 15087 15057 pop bp ; 5d 15088 15058 retn ; c3 15089 mov AL, byte [02b9ch] ; a0 9c 2b 15090 popfw ; 9d 15091 mov DL, strict byte 09ch ; b2 9c 15092 int 09ch ; cd 9c 15093 sub bx, word [di-06308h] ; 2b 9d f8 9c 15094 sub bx, word [di-062cfh] ; 2b 9d 31 9d 15095 std ; fd 15059 dec bx ; 4b 15096 15060 pushfw ; 9c 15097 std ; fd15061 db 0d6h 15098 15062 pushfw ; 9c 15099 std ; fd15063 pop bp ; 5d 15100 15064 pushfw ; 9c 15101 j o short 09c16h ; 70 9d15102 std ; fd15065 js short 09bb0h ; 78 9c 15066 db 0d6h 15103 15067 pushfw ; 9c 15104 std ; fd15068 mov word [0d69ch], ax ; a3 9c d6 15105 15069 pushfw ; 9c 15106 db 069h 15107 popfw ; 9d 15108 _apm_function: ; 0xf9c7f LB 0xf6 15070 fcomp qword [si-06358h] ; dc 9c a8 9c 15071 test AL, strict byte 09ch ; a8 9c 15072 test AL, strict byte 09ch ; a8 9c 15073 sbb bx, word [di-06358h] ; 1b 9d a8 9c 15074 test AL, strict byte 09ch ; a8 9c 15075 adc AL, strict byte 09dh ; 14 9d 15076 _apm_function: ; 0xf9c2a LB 0xf6 15109 15077 push bp ; 55 15110 15078 mov bp, sp ; 89 e5 … … 15114 15082 xor ah, ah ; 30 e4 15115 15083 cmp ax, strict word 0000eh ; 3d 0e 00 15116 jnbe short 09c fdh ; 77 6c15084 jnbe short 09ca8h ; 77 6c 15117 15085 mov bx, ax ; 89 c3 15118 15086 sal bx, 1 ; d1 e3 15119 15087 mov dx, word [bp+018h] ; 8b 56 18 15120 15088 or dl, 001h ; 80 ca 01 15121 jmp word [cs:bx-063 9fh] ; 2e ff a7 619c15089 jmp word [cs:bx-063f4h] ; 2e ff a7 0c 9c 15122 15090 mov word [bp+012h], 00102h ; c7 46 12 02 01 15123 15091 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 15124 15092 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 15125 jmp near 09 d2bh ; e9 79 0015093 jmp near 09cd6h ; e9 79 00 15126 15094 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 15127 mov word [bp+00ch], 0a2 f4h ; c7 46 0c f4 a215095 mov word [bp+00ch], 0a294h ; c7 46 0c 94 a2 15128 15096 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 15129 15097 mov ax, strict word 0fff0h ; b8 f0 ff 15130 15098 mov word [bp+006h], ax ; 89 46 06 15131 15099 mov word [bp+004h], ax ; 89 46 04 15132 jmp near 09 d2bh ; e9 5e 0015100 jmp near 09cd6h ; e9 5e 00 15133 15101 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 15134 15102 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 15143 15111 mov si, ax ; 89 c6 15144 15112 sal esi, 010h ; 66 c1 e6 10 15145 jmp near 09 d2bh ; e9 33 0015113 jmp near 09cd6h ; e9 33 00 15146 15114 sti ; fb 15147 15115 hlt ; f4 15148 jmp near 09 d2bh ; e9 2e 0015116 jmp near 09cd6h ; e9 2e 00 15149 15117 mov bx, 00da0h ; bb a0 0d 15150 15118 mov cx, ds ; 8c d9 15151 15119 mov ax, strict word 00004h ; b8 04 00 15152 call 01933h ; e8 2b7c15120 call 01933h ; e8 80 7c 15153 15121 push word [bp+00ch] ; ff 76 0c 15154 15122 push word [bp+012h] ; ff 76 12 … … 15157 15125 mov ax, strict word 00004h ; b8 04 00 15158 15126 push ax ; 50 15159 call 01976h ; e8 5d7c15127 call 01976h ; e8 b2 7c 15160 15128 add sp, strict byte 00008h ; 83 c4 08 15161 15129 mov ax, word [bp+012h] ; 8b 46 12 … … 15169 15137 retn ; c3 15170 15138 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 15171 je short 09d 56h ; 74 1f15139 je short 09d01h ; 74 1f 15172 15140 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 15173 je short 09 d4eh ; 74 1115141 je short 09cf9h ; 74 11 15174 15142 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 15175 jne short 09d 5eh ; 75 1b15143 jne short 09d09h ; 75 1b 15176 15144 mov dx, 08900h ; ba 00 89 15177 15145 mov ax, 00d10h ; b8 10 0d 15178 call 09 c46h ; e8 fa fe15179 jmp short 09 d2bh ; eb dd15146 call 09bf1h ; e8 fa fe 15147 jmp short 09cd6h ; eb dd 15180 15148 mov dx, 08900h ; ba 00 89 15181 15149 mov ax, 00d18h ; b8 18 0d 15182 jmp short 09 d49h ; eb f315150 jmp short 09cf4h ; eb f3 15183 15151 mov dx, 08900h ; ba 00 89 15184 15152 mov ax, 00d20h ; b8 20 0d 15185 jmp short 09 d49h ; eb eb15153 jmp short 09cf4h ; eb eb 15186 15154 or ah, 00ah ; 80 cc 0a 15187 15155 mov word [bp+012h], ax ; 89 46 12 15188 15156 mov word [bp+018h], dx ; 89 56 18 15189 jmp short 09 d2bh ; eb c215157 jmp short 09cd6h ; eb c2 15190 15158 mov word [bp+012h], 00102h ; c7 46 12 02 01 15191 jmp short 09 d2bh ; eb bb15159 jmp short 09cd6h ; eb bb 15192 15160 or ah, 080h ; 80 cc 80 15193 jmp short 09d 61h ; eb ec15194 pci16_select_reg_: ; 0xf9d 75LB 0x2415161 jmp short 09d0ch ; eb ec 15162 pci16_select_reg_: ; 0xf9d20 LB 0x24 15195 15163 push bp ; 55 15196 15164 mov bp, sp ; 89 e5 … … 15209 15177 pop bp ; 5d 15210 15178 retn ; c3 15211 pci16_find_device_: ; 0xf9d 99LB 0xf715179 pci16_find_device_: ; 0xf9d44 LB 0xf7 15212 15180 push bp ; 55 15213 15181 mov bp, sp ; 89 e5 … … 15223 15191 mov byte [bp-006h], 000h ; c6 46 fa 00 15224 15192 test bl, 007h ; f6 c3 07 15225 jne short 09d e1h ; 75 2d15193 jne short 09d8ch ; 75 2d 15226 15194 mov dx, strict word 0000eh ; ba 0e 00 15227 15195 mov ax, bx ; 89 d8 15228 call 09d 75h ; e8 b9 ff15196 call 09d20h ; e8 b9 ff 15229 15197 mov dx, 00cfeh ; ba fe 0c 15230 15198 in AL, DX ; ec … … 15233 15201 mov byte [bp-008h], al ; 88 46 f8 15234 15202 cmp AL, strict byte 0ffh ; 3c ff 15235 jne short 09d cfh ; 75 0615203 jne short 09d7ah ; 75 06 15236 15204 add bx, strict byte 00008h ; 83 c3 08 15237 jmp near 09e 61h ; e9 92 0015205 jmp near 09e0ch ; e9 92 00 15238 15206 test byte [bp-008h], 080h ; f6 46 f8 80 15239 je short 09d dch ; 74 0715207 je short 09d87h ; 74 07 15240 15208 mov word [bp-00eh], strict word 00001h ; c7 46 f2 01 00 15241 jmp short 09d e1h ; eb 0515209 jmp short 09d8ch ; eb 05 15242 15210 mov word [bp-00eh], strict word 00008h ; c7 46 f2 08 00 15243 15211 mov al, byte [bp-008h] ; 8a 46 f8 15244 15212 and AL, strict byte 007h ; 24 07 15245 15213 cmp AL, strict byte 001h ; 3c 01 15246 jne short 09 e08h ; 75 1e15214 jne short 09db3h ; 75 1e 15247 15215 mov al, bh ; 88 f8 15248 15216 xor ah, ah ; 30 e4 15249 15217 test ax, ax ; 85 c0 15250 jne short 09 e08h ; 75 1615218 jne short 09db3h ; 75 16 15251 15219 mov dx, strict word 0001ah ; ba 1a 00 15252 15220 mov ax, bx ; 89 d8 15253 call 09d 75h ; e8 7b ff15221 call 09d20h ; e8 7b ff 15254 15222 mov dx, 00cfeh ; ba fe 0c 15255 15223 in AL, DX ; ec … … 15257 15225 ; sub ah, ah ; 2a e4 15258 15226 cmp al, byte [bp-006h] ; 3a 46 fa 15259 jbe short 09 e08h ; 76 0315227 jbe short 09db3h ; 76 03 15260 15228 mov byte [bp-006h], al ; 88 46 fa 15261 15229 test di, di ; 85 ff 15262 je short 09 e11h ; 74 0515230 je short 09dbch ; 74 05 15263 15231 mov dx, strict word 00008h ; ba 08 00 15264 jmp short 09 e13h ; eb 0215232 jmp short 09dbeh ; eb 02 15265 15233 xor dx, dx ; 31 d2 15266 15234 mov ax, bx ; 89 d8 15267 call 09d 75h ; e8 5d ff15235 call 09d20h ; e8 5d ff 15268 15236 mov dx, 00cfch ; ba fc 0c 15269 15237 in eax, DX ; 66 ed … … 15276 15244 mov word [bp-00ch], strict word 00000h ; c7 46 f4 00 00 15277 15245 test di, di ; 85 ff 15278 je short 09 e42h ; 74 0f15246 je short 09dedh ; 74 0f 15279 15247 mov cx, strict word 00008h ; b9 08 00 15280 15248 shr dx, 1 ; d1 ea 15281 15249 rcr ax, 1 ; d1 d8 15282 loop 09 e36h ; e2 fa15250 loop 09de1h ; e2 fa 15283 15251 mov word [bp-00ah], ax ; 89 46 f6 15284 15252 mov word [bp-010h], dx ; 89 56 f0 15285 15253 mov ax, word [bp-010h] ; 8b 46 f0 15286 15254 cmp ax, word [bp-014h] ; 3b 46 ec 15287 jne short 09 e52h ; 75 0815255 jne short 09dfdh ; 75 08 15288 15256 mov ax, word [bp-00ah] ; 8b 46 f6 15289 15257 cmp ax, word [bp-012h] ; 3b 46 ee 15290 je short 09e 58h ; 74 0615258 je short 09e03h ; 74 06 15291 15259 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 15292 je short 09e 5eh ; 74 0615260 je short 09e09h ; 74 06 15293 15261 dec si ; 4e 15294 15262 cmp si, strict byte 0ffffh ; 83 fe ff 15295 je short 09e 71h ; 74 1315263 je short 09e1ch ; 74 13 15296 15264 add bx, word [bp-00eh] ; 03 5e f2 15297 15265 mov al, bh ; 88 f8 … … 15300 15268 xor dh, dh ; 30 f6 15301 15269 cmp ax, dx ; 39 d0 15302 jnbe short 09e 71h ; 77 0315303 jmp near 09d afh ; e9 3e ff15270 jnbe short 09e1ch ; 77 03 15271 jmp near 09d5ah ; e9 3e ff 15304 15272 cmp si, strict byte 0ffffh ; 83 fe ff 15305 jne short 09e 7ah ; 75 0415273 jne short 09e25h ; 75 04 15306 15274 mov ax, bx ; 89 d8 15307 jmp short 09e 7dh ; eb 0315275 jmp short 09e28h ; eb 03 15308 15276 mov ax, strict word 0ffffh ; b8 ff ff 15309 15277 lea sp, [bp-004h] ; 8d 66 fc … … 15312 15280 pop bp ; 5d 15313 15281 retn ; c3 15314 jno short 09e25h ; 71 9f 15315 mov bl, byte [bx-06064h] ; 8a 9f 9c 9f 15316 mov AL, strict byte 09fh ; b0 9f 15317 retn 0d59fh ; c2 9f d5 15282 sbb AL, strict byte 09fh ; 1c 9f 15283 xor ax, 0479fh ; 35 9f 47 15318 15284 lahf ; 9f 15319 _pci16_function: ; 0xf9e90 LB 0x1d5 15285 pop bx ; 5b 15286 lahf ; 9f 15287 insw ; 6d 15288 lahf ; 9f 15289 db 080h 15290 lahf ; 9f 15291 _pci16_function: ; 0xf9e3b LB 0x1d5 15320 15292 push bp ; 55 15321 15293 mov bp, sp ; 89 e5 … … 15331 15303 xor ah, ah ; 30 e4 15332 15304 cmp bx, strict byte 00003h ; 83 fb 03 15333 jc short 09e c2h ; 72 1315334 jbe short 09 f15h ; 76 6415305 jc short 09e6dh ; 72 13 15306 jbe short 09ec0h ; 76 64 15335 15307 cmp bx, strict byte 0000eh ; 83 fb 0e 15336 je short 09 f1dh ; 74 6715308 je short 09ec8h ; 74 67 15337 15309 cmp bx, strict byte 00008h ; 83 fb 08 15338 jc short 09e cch ; 72 1115310 jc short 09e77h ; 72 11 15339 15311 cmp bx, strict byte 0000dh ; 83 fb 0d 15340 jbe short 09 f20h ; 76 6015341 jmp short 09e cch ; eb 0a15312 jbe short 09ecbh ; 76 60 15313 jmp short 09e77h ; eb 0a 15342 15314 cmp bx, strict byte 00002h ; 83 fb 02 15343 je short 09e ebh ; 74 2415315 je short 09e96h ; 74 24 15344 15316 cmp bx, strict byte 00001h ; 83 fb 01 15345 je short 09e cfh ; 74 0315346 jmp near 0 a02eh ; e9 5f 0115317 je short 09e7ah ; 74 03 15318 jmp near 09fd9h ; e9 5f 01 15347 15319 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 15348 15320 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 15350 15322 mov word [bp+018h], 04350h ; c7 46 18 50 43 15351 15323 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 15352 jmp near 0a0 5eh ; e9 73 0115324 jmp near 0a009h ; e9 73 01 15353 15325 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 15354 jne short 09e f7h ; 75 0615326 jne short 09ea2h ; 75 06 15355 15327 or ah, 083h ; 80 cc 83 15356 jmp near 0a0 57h ; e9 60 0115328 jmp near 0a002h ; e9 60 01 15357 15329 mov bx, word [bp+008h] ; 8b 5e 08 15358 15330 mov dx, word [bp+01ch] ; 8b 56 1c 15359 15331 mov ax, word [bp+018h] ; 8b 46 18 15360 15332 xor cx, cx ; 31 c9 15361 call 09d 99h ; e8 94 fe15333 call 09d44h ; e8 94 fe 15362 15334 cmp ax, strict word 0ffffh ; 3d ff ff 15363 jne short 09 f17h ; 75 0d15335 jne short 09ec2h ; 75 0d 15364 15336 mov ax, word [bp+020h] ; 8b 46 20 15365 15337 xor ah, ah ; 30 e4 15366 15338 or ah, 086h ; 80 cc 86 15367 jmp near 0a0 57h ; e9 42 0115368 jmp short 09 f22h ; eb 0b15339 jmp near 0a002h ; e9 42 01 15340 jmp short 09ecdh ; eb 0b 15369 15341 mov word [bp+014h], ax ; 89 46 14 15370 jmp near 0a0 5eh ; e9 41 0115371 jmp near 09f e9h ; e9 c9 0015372 jmp short 09 f47h ; eb 2515342 jmp near 0a009h ; e9 41 01 15343 jmp near 09f94h ; e9 c9 00 15344 jmp short 09ef2h ; eb 25 15373 15345 mov bx, word [bp+008h] ; 8b 5e 08 15374 15346 mov ax, word [bp+01ch] ; 8b 46 1c 15375 15347 mov dx, word [bp+01eh] ; 8b 56 1e 15376 15348 mov cx, strict word 00001h ; b9 01 00 15377 call 09d 99h ; e8 68 fe15349 call 09d44h ; e8 68 fe 15378 15350 cmp ax, strict word 0ffffh ; 3d ff ff 15379 jne short 09 f41h ; 75 0b15351 jne short 09eech ; 75 0b 15380 15352 mov ax, word [bp+020h] ; 8b 46 20 15381 15353 xor ah, ah ; 30 e4 15382 15354 or ah, 086h ; 80 cc 86 15383 jmp near 0a0 57h ; e9 16 0115355 jmp near 0a002h ; e9 16 01 15384 15356 mov word [bp+014h], ax ; 89 46 14 15385 jmp near 0a0 5eh ; e9 17 0115357 jmp near 0a009h ; e9 17 01 15386 15358 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 15387 jc short 09 f54h ; 72 0615359 jc short 09effh ; 72 06 15388 15360 or ah, 087h ; 80 cc 87 15389 jmp near 0a0 57h ; e9 03 0115361 jmp near 0a002h ; e9 03 01 15390 15362 mov dx, word [bp+004h] ; 8b 56 04 15391 15363 mov ax, word [bp+014h] ; 8b 46 14 15392 call 09d 75h ; e8 18 fe15364 call 09d20h ; e8 18 fe 15393 15365 mov bx, word [bp+020h] ; 8b 5e 20 15394 15366 xor bh, bh ; 30 ff 15395 15367 sub bx, strict byte 00008h ; 83 eb 08 15396 15368 cmp bx, strict byte 00005h ; 83 fb 05 15397 jnbe short 09f d2h ; 77 6815369 jnbe short 09f7dh ; 77 68 15398 15370 sal bx, 1 ; d1 e3 15399 jmp word [cs:bx-061 7ch] ; 2e ff a7 849e15371 jmp word [cs:bx-061d1h] ; 2e ff a7 2f 9e 15400 15372 mov bx, word [bp+01ch] ; 8b 5e 1c 15401 15373 xor bl, bl ; 30 db … … 15408 15380 or bx, ax ; 09 c3 15409 15381 mov word [bp+01ch], bx ; 89 5e 1c 15410 jmp short 09f d2h ; eb 4815382 jmp short 09f7dh ; eb 48 15411 15383 mov dx, word [bp+004h] ; 8b 56 04 15412 15384 xor dh, dh ; 30 f6 … … 15415 15387 in ax, DX ; ed 15416 15388 mov word [bp+01ch], ax ; 89 46 1c 15417 jmp short 09f d2h ; eb 3615389 jmp short 09f7dh ; eb 36 15418 15390 mov dx, 00cfch ; ba fc 0c 15419 15391 in eax, DX ; 66 ed … … 15424 15396 mov word [bp+01ch], ax ; 89 46 1c 15425 15397 mov word [bp+01eh], dx ; 89 56 1e 15426 jmp short 09f d2h ; eb 2215398 jmp short 09f7dh ; eb 22 15427 15399 mov ax, word [bp+01ch] ; 8b 46 1c 15428 15400 mov dx, word [bp+004h] ; 8b 56 04 … … 15431 15403 add dx, 00cfch ; 81 c2 fc 0c 15432 15404 out DX, AL ; ee 15433 jmp short 09f d2h ; eb 1015405 jmp short 09f7dh ; eb 10 15434 15406 mov ax, word [bp+01ch] ; 8b 46 1c 15435 15407 mov dx, word [bp+004h] ; 8b 56 04 … … 15438 15410 add dx, 00cfch ; 81 c2 fc 0c 15439 15411 out DX, ax ; ef 15440 jmp near 0a0 5eh ; e9 89 0015412 jmp near 0a009h ; e9 89 00 15441 15413 mov ax, word [bp+01ch] ; 8b 46 1c 15442 15414 mov cx, word [bp+01eh] ; 8b 4e 1e … … 15447 15419 ; mov ax, cx ; 8b c1 15448 15420 out DX, eax ; 66 ef 15449 jmp short 0a0 5eh ; eb 7515421 jmp short 0a009h ; eb 75 15450 15422 mov bx, word [bp+004h] ; 8b 5e 04 15451 15423 mov es, [bp+026h] ; 8e 46 26 … … 15454 15426 mov cx, word [0f4a0h] ; 8b 0e a0 f4 15455 15427 cmp cx, word [es:bx] ; 26 3b 0f 15456 jbe short 0 a00fh ; 76 1115428 jbe short 09fbah ; 76 11 15457 15429 mov ax, word [bp+020h] ; 8b 46 20 15458 15430 xor ah, ah ; 30 e4 … … 15460 15432 mov word [bp+020h], ax ; 89 46 20 15461 15433 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 15462 jmp short 0 a023h ; eb 1415434 jmp short 09fceh ; eb 14 15463 15435 les di, [es:bx+002h] ; 26 c4 7f 02 15464 15436 mov si, 0f2c0h ; be c0 f2 … … 15472 15444 les bx, [bp-008h] ; c4 5e f8 15473 15445 mov word [es:bx], ax ; 26 89 07 15474 jmp short 0a0 5eh ; eb 3015446 jmp short 0a009h ; eb 30 15475 15447 mov bx, 00da0h ; bb a0 0d 15476 15448 mov cx, ds ; 8c d9 15477 15449 mov ax, strict word 00004h ; b8 04 00 15478 call 01933h ; e8 fa 7815450 call 01933h ; e8 4f 79 15479 15451 mov ax, word [bp+014h] ; 8b 46 14 15480 15452 push ax ; 50 … … 15485 15457 mov ax, strict word 00004h ; b8 04 00 15486 15458 push ax ; 50 15487 call 01976h ; e8 2a7915459 call 01976h ; e8 7f 79 15488 15460 add sp, strict byte 00008h ; 83 c4 08 15489 15461 mov ax, word [bp+020h] ; 8b 46 20 … … 15497 15469 pop bp ; 5d 15498 15470 retn ; c3 15499 pci_find_classcode_: ; 0xfa0 65 LB 0x2b15471 pci_find_classcode_: ; 0xfa010 LB 0x8 15500 15472 push bp ; 55 15501 15473 mov bp, sp ; 89 e5 15502 push bx ; 53 15503 push cx ; 51 15504 push si ; 56 15505 mov cx, dx ; 89 d1 15506 xor si, si ; 31 f6 15507 mov dx, ax ; 89 c2 15508 mov ax, 0b103h ; b8 03 b1 15509 sal ecx, 010h ; 66 c1 e1 10 15510 db 08bh, 0cah 15511 ; mov cx, dx ; 8b ca 15512 int 01ah ; cd 1a 15513 cmp ah, 000h ; 80 fc 00 15514 je near 0a086h ; 0f 84 03 00 15515 mov bx, strict word 0ffffh ; bb ff ff 15516 mov ax, bx ; 89 d8 15517 lea sp, [bp-006h] ; 8d 66 fa 15518 pop si ; 5e 15519 pop cx ; 59 15520 pop bx ; 5b 15474 mov ax, strict word 0ffffh ; b8 ff ff 15521 15475 pop bp ; 5d 15522 15476 retn ; c3 15523 pci_read_config_byte_: ; 0xfa0 90LB 0x2715477 pci_read_config_byte_: ; 0xfa018 LB 0x27 15524 15478 push bp ; 55 15525 15479 mov bp, sp ; 89 e5 … … 15544 15498 pop bp ; 5d 15545 15499 retn ; c3 15546 pci_read_config_word_: ; 0xfa0 b7LB 0x2515500 pci_read_config_word_: ; 0xfa03f LB 0x25 15547 15501 push bp ; 55 15548 15502 mov bp, sp ; 89 e5 … … 15566 15520 pop bp ; 5d 15567 15521 retn ; c3 15568 pci_read_config_dword_: ; 0xfa0 dc LB 0x2715522 pci_read_config_dword_: ; 0xfa064 LB 0x3f 15569 15523 push bp ; 55 15570 15524 mov bp, sp ; 89 e5 15571 15525 push cx ; 51 15572 15526 push di ; 57 15527 push ax ; 50 15573 15528 mov dh, al ; 88 c6 15574 mov b h, dl ; 88 d715529 mov byte [bp-006h], bl ; 88 5e fa 15575 15530 mov al, bl ; 88 d8 15576 15531 xor ah, ah ; 30 e4 15577 mov bh, dh ; 88 f715578 mov bl, dl ; 88 d315579 15532 mov di, ax ; 89 c7 15580 mov ax, 0b10ah ; b8 0a b1 15533 mov bx, dx ; 89 d3 15534 mov ax, 0b109h ; b8 09 b1 15581 15535 int 01ah ; cd 1a 15582 db 08bh, 0c1h 15583 ; mov ax, cx ; 8b c1 15584 shr ecx, 010h ; 66 c1 e9 10 15585 mov dx, cx ; 89 ca 15536 test cx, cx ; 85 c9 15537 jne short 0a094h ; 75 14 15538 mov al, byte [bp-006h] ; 8a 46 fa 15539 xor ah, ah ; 30 e4 15540 mov di, ax ; 89 c7 15541 inc di ; 47 15542 inc di ; 47 15543 mov bx, dx ; 89 d3 15544 mov ax, 0b109h ; b8 09 b1 15545 int 01ah ; cd 1a 15546 test cx, cx ; 85 c9 15547 je short 0a099h ; 74 05 15548 mov ax, strict word 00001h ; b8 01 00 15549 jmp short 0a09bh ; eb 02 15550 xor ax, ax ; 31 c0 15551 cwd ; 99 15586 15552 lea sp, [bp-004h] ; 8d 66 fc 15587 15553 pop di ; 5f … … 15589 15555 pop bp ; 5d 15590 15556 retn ; c3 15591 vds_is_present_: ; 0xfa 103 LB 0x1d15557 vds_is_present_: ; 0xfa0a3 LB 0x1d 15592 15558 push bx ; 53 15593 15559 push bp ; 55 … … 15597 15563 mov es, ax ; 8e c0 15598 15564 test byte [es:bx], 020h ; 26 f6 07 20 15599 je short 0a 11bh ; 74 0615565 je short 0a0bbh ; 74 06 15600 15566 mov ax, strict word 00001h ; b8 01 00 15601 15567 pop bp ; 5d … … 15606 15572 pop bx ; 5b 15607 15573 retn ; c3 15608 vds_real_to_lin_: ; 0xfa 120 LB 0x1e15574 vds_real_to_lin_: ; 0xfa0c0 LB 0x1e 15609 15575 push bx ; 53 15610 15576 push cx ; 51 … … 15617 15583 sal ax, 1 ; d1 e0 15618 15584 rcl dx, 1 ; d1 d2 15619 loop 0a 12eh ; e2 fa15585 loop 0a0ceh ; e2 fa 15620 15586 xor cx, cx ; 31 c9 15621 15587 add ax, bx ; 01 d8 … … 15625 15591 pop bx ; 5b 15626 15592 retn ; c3 15627 vds_build_sg_list_: ; 0xfa 13e LB 0x7715593 vds_build_sg_list_: ; 0xfa0de LB 0x77 15628 15594 push bp ; 55 15629 15595 mov bp, sp ; 89 e5 … … 15639 15605 mov bx, word [bp+006h] ; 8b 5e 06 15640 15606 mov word [es:di+002h], bx ; 26 89 5d 02 15641 call 0a 120h ; e8 c3 ff15607 call 0a0c0h ; e8 c3 ff 15642 15608 mov es, si ; 8e c6 15643 15609 mov word [es:di+004h], ax ; 26 89 45 04 15644 15610 mov word [es:di+006h], dx ; 26 89 55 06 15645 15611 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15646 call 0a 103h ; e8 93 ff15612 call 0a0a3h ; e8 93 ff 15647 15613 test ax, ax ; 85 c0 15648 je short 0a1 85h ; 74 1115614 je short 0a125h ; 74 11 15649 15615 mov es, si ; 8e c6 15650 15616 mov ax, 08105h ; b8 05 81 15651 15617 mov dx, strict word 00000h ; ba 00 00 15652 15618 int 04bh ; cd 4b 15653 jc short 0a1 82h ; 72 0215619 jc short 0a122h ; 72 02 15654 15620 db 032h, 0c0h 15655 15621 ; xor al, al ; 32 c0 15656 15622 cbw ; 98 15657 jmp short 0a1 ach ; eb 2715623 jmp short 0a14ch ; eb 27 15658 15624 mov es, si ; 8e c6 15659 15625 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15672 15638 pop bp ; 5d 15673 15639 retn 00004h ; c2 04 00 15674 vds_free_sg_list_: ; 0xfa1 b5 LB 0x3b15640 vds_free_sg_list_: ; 0xfa155 LB 0x3b 15675 15641 push bp ; 55 15676 15642 mov bp, sp ; 89 e5 … … 15678 15644 push di ; 57 15679 15645 mov bx, ax ; 89 c3 15680 call 0a 103h ; e8 44 ff15646 call 0a0a3h ; e8 44 ff 15681 15647 test ax, ax ; 85 c0 15682 je short 0a1 d4h ; 74 1115648 je short 0a174h ; 74 11 15683 15649 mov di, bx ; 89 df 15684 15650 mov es, dx ; 8e c2 … … 15686 15652 mov dx, strict word 00000h ; ba 00 00 15687 15653 int 04bh ; cd 4b 15688 jc short 0a1 d3h ; 72 0215654 jc short 0a173h ; 72 02 15689 15655 db 032h, 0c0h 15690 15656 ; xor al, al ; 32 c0 … … 15698 15664 retn ; c3 15699 15665 times 0xd db 0 15700 __U4D: ; 0xfa1 f0 LB 0x3915666 __U4D: ; 0xfa190 LB 0x39 15701 15667 pushfw ; 9c 15702 15668 push eax ; 66 50 … … 15728 15694 popfw ; 9d 15729 15695 retn ; c3 15730 __U4M: ; 0xfa 229 LB 0x3115696 __U4M: ; 0xfa1c9 LB 0x31 15731 15697 pushfw ; 9c 15732 15698 push eax ; 66 50 … … 15753 15719 popfw ; 9d 15754 15720 retn ; c3 15755 __U8LS: ; 0xfa 25a LB 0x1015721 __U8LS: ; 0xfa1fa LB 0x10 15756 15722 test si, si ; 85 f6 15757 je short 0a2 69h ; 74 0b15723 je short 0a209h ; 74 0b 15758 15724 sal dx, 1 ; d1 e2 15759 15725 rcl cx, 1 ; d1 d1 … … 15761 15727 rcl ax, 1 ; d1 d0 15762 15728 dec si ; 4e 15763 jne short 0a 25eh ; 75 f515729 jne short 0a1feh ; 75 f5 15764 15730 retn ; c3 15765 __U8RS: ; 0xfa2 6a LB 0x1015731 __U8RS: ; 0xfa20a LB 0x10 15766 15732 test si, si ; 85 f6 15767 je short 0a2 79h ; 74 0b15733 je short 0a219h ; 74 0b 15768 15734 shr ax, 1 ; d1 e8 15769 15735 rcr bx, 1 ; d1 db … … 15771 15737 rcr dx, 1 ; d1 da 15772 15738 dec si ; 4e 15773 jne short 0a2 6eh ; 75 f515739 jne short 0a20eh ; 75 f5 15774 15740 retn ; c3 15775 _fmemset_: ; 0xfa2 7a LB 0xd15741 _fmemset_: ; 0xfa21a LB 0xd 15776 15742 push di ; 57 15777 15743 mov es, dx ; 8e c2 … … 15783 15749 pop di ; 5f 15784 15750 retn ; c3 15785 _fmemcpy_: ; 0xfa2 87 LB 0x3315751 _fmemcpy_: ; 0xfa227 LB 0x33 15786 15752 push bp ; 55 15787 15753 db 08bh, 0ech … … 15803 15769 leave ; c9 15804 15770 retn ; c3 15805 add al, dl ; 00 d0 15806 mov byte [0a2d2h], AL ; a2 d2 a2 15807 db 0d6h 15808 mov byte [0a2d6h], AL ; a2 d6 a2 15809 db 0d6h 15810 mov byte [0a2d8h], AL ; a2 d8 a2 15811 fsub dword [bp+si-05d26h] ; d8 a2 da a2 15812 fisub word [bp+si-05d22h] ; de a2 de a2 15813 loopne 0a258h ; e0 a2 15814 in ax, 0a2h ; e5 a2 15815 out 0a2h, ax ; e7 a2 15816 apm_worker: ; 0xfa2ba LB 0x3a 15771 add byte [bx+si-05eh], dh ; 00 70 a2 15772 jc short 0a1e6h ; 72 a2 15773 jbe short 0a1e8h ; 76 a2 15774 jbe short 0a1eah ; 76 a2 15775 jbe short 0a1ech ; 76 a2 15776 js short 0a1eeh ; 78 a2 15777 js short 0a1f0h ; 78 a2 15778 jp short 0a1f2h ; 7a a2 15779 jle short 0a1f4h ; 7e a2 15780 jle short 0a1f6h ; 7e a2 15781 and byte [bp+si-05d7bh], 087h ; 80 a2 85 a2 87 15782 db 0a2h 15783 apm_worker: ; 0xfa25a LB 0x3a 15817 15784 sti ; fb 15818 15785 push ax ; 50 … … 15826 15793 pop ax ; 58 15827 15794 mov AH, strict byte 053h ; b4 53 15828 jnc short 0a2 f0h ; 73 2515829 jmp word [cs:bp-05d 60h] ; 2e ff a6 a0 a215830 jmp short 0a2 eeh ; eb 1c15795 jnc short 0a290h ; 73 25 15796 jmp word [cs:bp-05dc0h] ; 2e ff a6 40 a2 15797 jmp short 0a28eh ; eb 1c 15831 15798 sti ; fb 15832 15799 hlt ; f4 15833 jmp short 0a2 eeh ; eb 1815834 jmp short 0a2 eeh ; eb 1615835 jmp short 0a2 f0h ; eb 1615800 jmp short 0a28eh ; eb 18 15801 jmp short 0a28eh ; eb 16 15802 jmp short 0a290h ; eb 16 15836 15803 mov AH, strict byte 080h ; b4 80 15837 jmp short 0a2 f2h ; eb 1415838 jmp short 0a2 f0h ; eb 1015804 jmp short 0a292h ; eb 14 15805 jmp short 0a290h ; eb 10 15839 15806 mov ax, 00102h ; b8 02 01 15840 jmp short 0a2 eeh ; eb 0915841 jmp short 0a2 eeh ; eb 0715807 jmp short 0a28eh ; eb 09 15808 jmp short 0a28eh ; eb 07 15842 15809 mov BL, strict byte 000h ; b3 00 15843 15810 mov cx, strict word 00000h ; b9 00 00 15844 jmp short 0a2 eeh ; eb 0015811 jmp short 0a28eh ; eb 00 15845 15812 clc ; f8 15846 15813 retn ; c3 … … 15848 15815 stc ; f9 15849 15816 retn ; c3 15850 apm_pm16_entry: ; 0xfa2 f4 LB 0x1115817 apm_pm16_entry: ; 0xfa294 LB 0x11 15851 15818 mov AH, strict byte 002h ; b4 02 15852 15819 push DS ; 1e … … 15856 15823 add bp, strict byte 00008h ; 83 c5 08 15857 15824 mov ds, bp ; 8e dd 15858 call 0a2 bah ; e8 b8 ff15825 call 0a25ah ; e8 b8 ff 15859 15826 pop bp ; 5d 15860 15827 pop DS ; 1f 15861 15828 retf ; cb 15862 15829 15863 ; Padding 0x3 6fb bytes at 0xfa30515864 times 14 075db 015830 ; Padding 0x375b bytes at 0xfa2a5 15831 times 14171 db 0 15865 15832 15866 15833 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 15909 15876 add bp, strict byte 00008h ; 83 c5 08 15910 15877 push ebp ; 66 55 15911 mov bp, 0a2 f6h ; bd f6 a215878 mov bp, 0a296h ; bd 96 a2 15912 15879 add byte [bx+si], al ; 00 00 15913 15880 push ebp ; 66 55 … … 16297 16264 16298 16265 section BIOSSEG progbits vstart=0xe000 align=1 ; size=0x2000 class=CODE group=AUTO 16299 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h 16300 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h16301 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 058h, 04dh16266 biosorg_check_before_or_at_0E02Eh: ; 0xfe000 LB 0x30 16267 times 0x2e db 0 16268 db 'XM' 16302 16269 eoi_both_pics: ; 0xfe030 LB 0x4 16303 16270 mov AL, strict byte 020h ; b0 20 … … 16313 16280 loop 0e039h ; e2 f6 16314 16281 retn ; c3 16315 eoi_jmp_post: ; 0xfe044 LB 0x 1716282 eoi_jmp_post: ; 0xfe044 LB 0x3 16316 16283 call 0e030h ; e8 e9 ff 16284 no_eoi_jmp_post: ; 0xfe047 LB 0x8 16317 16285 db 033h, 0c0h 16318 16286 ; xor ax, ax ; 33 c0 16319 16287 mov ds, ax ; 8e d8 16320 16288 jmp far [00467h] ; ff 2e 67 04 16321 times 0xa db 0 16289 seg_40_value: ; 0xfe04f LB 0x2 16290 inc ax ; 40 16291 times 0x1 db 0 16292 biosorg_check_before_or_at_0E059h: ; 0xfe051 LB 0xa 16293 times 0x8 db 0 16322 16294 db 'XM' 16323 post: ; 0xfe05b LB 0x6 116295 post: ; 0xfe05b LB 0x65 16324 16296 cli ; fa 16297 jmp short 0e064h ; eb 06 16325 16298 mov AL, strict byte 001h ; b0 01 16326 16299 out strict byte 092h, AL ; e6 92 16327 jmp short 0e06 0h ; eb fe16300 jmp short 0e062h ; eb fe 16328 16301 mov AL, strict byte 00fh ; b0 0f 16329 16302 out strict byte 070h, AL ; e6 70 … … 16332 16305 in AL, strict byte 064h ; e4 64 16333 16306 test AL, strict byte 004h ; a8 04 16334 je short 0e08 1h ; 74 1116307 je short 0e085h ; 74 13 16335 16308 db 08ah, 0c4h 16336 16309 ; mov al, ah ; 8a c4 16337 16310 db 00ah, 0c0h 16338 16311 ; or al, al ; 0a c0 16339 jne short 0e081h ; 75 0b 16340 push strict byte 00040h ; 6a 40 16341 pop DS ; 1f 16312 jne short 0e085h ; 75 0d 16313 mov ds, [cs:0e04fh] ; 2e 8e 1e 4f e0 16342 16314 cmp word [word 00072h], 01234h ; 81 3e 72 00 34 12 16343 jne short 0e05 ch ; 75 db16315 jne short 0e05eh ; 75 d9 16344 16316 mov AL, strict byte 00fh ; b0 0f 16345 16317 out strict byte 070h, AL ; e6 70 … … 16349 16321 ; mov al, ah ; 8a c4 16350 16322 cmp AL, strict byte 009h ; 3c 09 16351 je short 0e0a 1h ; 74 1216323 je short 0e0a5h ; 74 12 16352 16324 cmp AL, strict byte 00ah ; 3c 0a 16353 je short 0e0a 1h ; 74 0e16325 je short 0e0a5h ; 74 0e 16354 16326 db 032h, 0c0h 16355 16327 ; xor al, al ; 32 c0 … … 16363 16335 ; mov al, ah ; 8a c4 16364 16336 cmp AL, strict byte 000h ; 3c 00 16365 je short 0e0 bch ; 74 1516337 je short 0e0c0h ; 74 15 16366 16338 cmp AL, strict byte 00dh ; 3c 0d 16367 jnc short 0e0 bch ; 73 1116339 jnc short 0e0c0h ; 73 11 16368 16340 cmp AL, strict byte 009h ; 3c 09 16369 jne short 0e0b 2h ; 75 0316370 jmp near 0e366h ; e9 b 40216341 jne short 0e0b6h ; 75 03 16342 jmp near 0e366h ; e9 b0 02 16371 16343 cmp AL, strict byte 005h ; 3c 05 16372 je short 0e044h ; 74 8 e16344 je short 0e044h ; 74 8a 16373 16345 cmp AL, strict byte 00ah ; 3c 0a 16374 je short 0e047h ; 74 8 d16375 jmp short 0e0 bch ; eb 0016376 normal_post: ; 0xfe0 bc LB 0x20716346 je short 0e047h ; 74 89 16347 jmp short 0e0c0h ; eb 00 16348 normal_post: ; 0xfe0c0 LB 0x1f3 16377 16349 mov ax, 07800h ; b8 00 78 16378 16350 db 08bh, 0e0h … … 16396 16368 add bx, 01000h ; 81 c3 00 10 16397 16369 cmp bx, 09000h ; 81 fb 00 90 16398 jnc short 0e0 efh ; 73 0b16370 jnc short 0e0f3h ; 73 0b 16399 16371 mov es, bx ; 8e c3 16400 16372 db 033h, 0ffh … … 16402 16374 mov cx, 08000h ; b9 00 80 16403 16375 rep stosw ; f3 ab 16404 jmp short 0e0d ah ; eb eb16376 jmp short 0e0deh ; eb eb 16405 16377 mov es, bx ; 8e c3 16406 16378 db 033h, 0ffh … … 16413 16385 pop DS ; 1f 16414 16386 cld ; fc 16415 call 01775h ; e8 7 53616387 call 01775h ; e8 71 36 16416 16388 db 033h, 0dbh 16417 16389 ; xor bx, bx ; 33 db … … 16420 16392 mov ax, 0ff53h ; b8 53 ff 16421 16393 mov dx, 0f000h ; ba 00 f0 16422 call 0e039h ; e8 2 9ff16394 call 0e039h ; e8 25 ff 16423 16395 mov bx, 001a0h ; bb a0 01 16424 16396 mov cx, strict word 00010h ; b9 10 00 16425 call 0e039h ; e8 20ff16397 call 0e039h ; e8 1c ff 16426 16398 mov ax, 0027fh ; b8 7f 02 16427 16399 mov word [00413h], ax ; a3 13 04 16428 mov ax, 0e9 d6h ; b8 d6e916400 mov ax, 0e9e4h ; b8 e4 e9 16429 16401 mov word [00018h], ax ; a3 18 00 16430 16402 mov ax, 0f000h ; b8 00 f0 … … 16454 16426 mov ax, 0f000h ; b8 00 f0 16455 16427 mov word [00066h], ax ; a3 66 00 16456 mov ax, 0ef edh ; b8 edef16428 mov ax, 0effbh ; b8 fb ef 16457 16429 mov word [00070h], ax ; a3 70 00 16458 16430 mov ax, 0f000h ; b8 00 f0 16459 16431 mov word [00072h], ax ; a3 72 00 16460 call 0e7 78h ; e8 f6 0516432 call 0e794h ; e8 0e 06 16461 16433 mov ax, 0fe6eh ; b8 6e fe 16462 16434 mov word [00068h], ax ; a3 68 00 … … 16510 16482 mov ax, 0c000h ; b8 00 c0 16511 16483 mov dx, 0c800h ; ba 00 c8 16512 call 01600h ; e8 f 43316513 call 04f f1h ; e8 e26d16484 call 01600h ; e8 f0 33 16485 call 04faah ; e8 97 6d 16514 16486 pop DS ; 1f 16515 16487 mov ax, 0ff53h ; b8 53 ff … … 16524 16496 mov CL, strict byte 014h ; b1 14 16525 16497 mov dx, 00378h ; ba 78 03 16526 call 0e cedh ; e8 c30a16498 call 0ed0ah ; e8 dc 0a 16527 16499 mov dx, 00278h ; ba 78 02 16528 call 0ecedh ; e8 bd 0a 16529 sal bx, 00eh ; c1 e3 0e 16500 call 0ed0ah ; e8 d6 0a 16501 push cx ; 51 16502 mov CL, strict byte 00eh ; b1 0e 16503 sal bx, CL ; d3 e3 16504 pop cx ; 59 16530 16505 mov ax, word [00410h] ; a1 10 04 16531 16506 and ax, 03fffh ; 25 ff 3f … … 16533 16508 ; or ax, bx ; 0b c3 16534 16509 mov word [00410h], ax ; a3 10 04 16535 mov ax, 0e7 46h ; b8 46e716510 mov ax, 0e754h ; b8 54 e7 16536 16511 mov word [0002ch], ax ; a3 2c 00 16537 16512 mov ax, 0f000h ; b8 00 f0 16538 16513 mov word [0002eh], ax ; a3 2e 00 16539 mov ax, 0e7 46h ; b8 46e716514 mov ax, 0e754h ; b8 54 e7 16540 16515 mov word [00030h], ax ; a3 30 00 16541 16516 mov ax, 0f000h ; b8 00 f0 … … 16549 16524 mov CL, strict byte 00ah ; b1 0a 16550 16525 mov dx, 003f8h ; ba f8 03 16551 call 0ed 0bh ; e8 9f0a16526 call 0ed28h ; e8 b5 0a 16552 16527 mov dx, 002f8h ; ba f8 02 16553 call 0ed 0bh ; e8 990a16528 call 0ed28h ; e8 af 0a 16554 16529 mov dx, 003e8h ; ba e8 03 16555 call 0ed 0bh ; e8 930a16530 call 0ed28h ; e8 a9 0a 16556 16531 mov dx, 002e8h ; ba e8 02 16557 call 0ed0bh ; e8 8d 0a 16558 sal bx, 009h ; c1 e3 09 16532 call 0ed28h ; e8 a3 0a 16533 push cx ; 51 16534 mov CL, strict byte 009h ; b1 09 16535 sal bx, CL ; d3 e3 16536 pop cx ; 59 16559 16537 mov ax, word [00410h] ; a1 10 04 16560 16538 and ax, 0f1ffh ; 25 ff f1 … … 16566 16544 mov ax, 0f000h ; b8 00 f0 16567 16545 mov word [0012ah], ax ; a3 2a 01 16568 mov ax, 0f e7bh ; b8 7b fe16546 mov ax, 0f90fh ; b8 0f f9 16569 16547 mov word [001c0h], ax ; a3 c0 01 16570 16548 mov ax, 0f000h ; b8 00 f0 16571 16549 mov word [001c2h], ax ; a3 c2 01 16572 call 0edbfh ; e8 18 0b 16573 jmp short 0e31bh ; eb 72 16574 times 0x18 db 0 16550 call 0ede3h ; e8 32 0b 16551 jmp short 0e31bh ; eb 68 16552 biosorg_check_before_or_at_0E2C1h: ; 0xfe2b3 LB 0x10 16553 times 0xe db 0 16575 16554 db 'XM' 16576 16555 nmi: ; 0xfe2c3 LB 0x7 … … 16585 16564 int 002h ; cd 02 16586 16565 iret ; cf 16587 hard_drive_post: ; 0xfe2d2 LB 0x 12c16566 hard_drive_post: ; 0xfe2d2 LB 0xbd 16588 16567 db 033h, 0c0h 16589 16568 ; xor ax, ax ; 33 c0 … … 16600 16579 mov ax, 0f000h ; b8 00 f0 16601 16580 mov word [0004eh], ax ; a3 4e 00 16602 mov ax, 0f8 d5h ; b8 d5f816581 mov ax, 0f8fdh ; b8 fd f8 16603 16582 mov word [001d8h], ax ; a3 d8 01 16604 16583 mov ax, 0f000h ; b8 00 f0 … … 16613 16592 mov word [0011ah], ax ; a3 1a 01 16614 16593 retn ; c3 16615 mov ax, 0f8 a7h ; b8 a7f816594 mov ax, 0f8c3h ; b8 c3 f8 16616 16595 mov word [001d0h], ax ; a3 d0 01 16617 16596 mov ax, 0f000h ; b8 00 f0 … … 16621 16600 mov ax, 0f000h ; b8 00 f0 16622 16601 mov word [001d6h], ax ; a3 d6 01 16623 call 0e7 53h ; e8 1d0416602 call 0e76fh ; e8 39 04 16624 16603 push CS ; 0e 16625 16604 pop DS ; 1f … … 16627 16606 call 01cc5h ; e8 89 39 16628 16607 call 02154h ; e8 15 3e 16629 call 09 b2ch ; e8 eab716630 call 089 91h ; e8 4c a616631 call 0ed 2fh ; e8 e7 0916608 call 09ad7h ; e8 95 b7 16609 call 0893ch ; e8 f7 a5 16610 call 0ed4ch ; e8 04 0a 16632 16611 call 0e2d2h ; e8 87 ff 16633 16612 push CS ; 0e … … 16638 16617 call 01600h ; e8 a9 32 16639 16618 call 01799h ; e8 3f 34 16640 call 03b e2h ; e8 855816619 call 03bc4h ; e8 67 58 16641 16620 sti ; fb 16642 16621 int 019h ; cd 19 … … 16653 16632 and AL, strict byte 0fdh ; 24 fd 16654 16633 out strict byte 092h, AL ; e6 92 16655 lidt [cs:0ef e7h] ; 2e 0f 01 1e e7ef16634 lidt [cs:0eff5h] ; 2e 0f 01 1e f5 ef 16656 16635 pop DS ; 1f 16657 16636 pop ES ; 07 … … 16665 16644 sti ; fb 16666 16645 retf 00002h ; ca 02 00 16646 biosorg_check_before_or_at_0E3FCh: ; 0xfe38f LB 0x6f 16667 16647 times 0x6d db 0 16668 16648 db 'XM' … … 16720 16700 int19_handler: ; 0xfe6f2 LB 0x3 16721 16701 jmp near 0f0ach ; e9 b7 09 16722 biosorg_check_ 0E6F5h: ; 0xfe6f5 LB 0x3416702 biosorg_check_at_0E6F5h: ; 0xfe6f5 LB 0xa 16723 16703 or word [bx+si], ax ; 09 00 16724 cld ; fc16704 sti ; fb 16725 16705 add byte [bx+di], al ; 00 01 16726 16706 je short 0e73ch ; 74 40 16727 times 0x2b db 0 16707 times 0x3 db 0 16708 biosorg_check_before_or_at_0E727h: ; 0xfe6ff LB 0x2a 16709 times 0x28 db 0 16728 16710 db 'XM' 16729 biosorg_check_ 0E729h:; 0xfe729 LB 0x1016711 biosorg_check_at_0E729h: ; 0xfe729 LB 0x10 16730 16712 times 0xe db 0 16731 16713 db 'XM' 16732 biosorg_check_ 0E739h: ; 0xfe739 LB 0x1a16714 biosorg_check_at_0E739h: ; 0xfe739 LB 0x36 16733 16715 push DS ; 1e 16734 16716 push ES ; 06 16735 pushaw ; 60 16717 push ax ; 50 16718 push cx ; 51 16719 push dx ; 52 16720 push bx ; 53 16721 push sp ; 54 16722 push bp ; 55 16723 push si ; 56 16724 push di ; 57 16736 16725 push CS ; 0e 16737 16726 pop DS ; 1f 16738 16727 cld ; fc 16739 call 065bch ; e8 7a 7e 16740 popaw ; 61 16728 call 06565h ; e8 1c 7e 16729 pop di ; 5f 16730 pop si ; 5e 16731 pop bp ; 5d 16732 pop bx ; 5b 16733 pop bx ; 5b 16734 pop dx ; 5a 16735 pop cx ; 59 16736 pop ax ; 58 16741 16737 pop ES ; 07 16742 16738 pop DS ; 1f … … 16744 16740 push DS ; 1e 16745 16741 push ES ; 06 16746 pushaw ; 60 16742 push ax ; 50 16743 push cx ; 51 16744 push dx ; 52 16745 push bx ; 53 16746 push sp ; 54 16747 push bp ; 55 16748 push si ; 56 16749 push di ; 57 16747 16750 push CS ; 0e 16748 16751 pop DS ; 1f 16749 16752 cld ; fc 16750 call 016e6h ; e8 97 2f 16751 popaw ; 61 16753 call 016e6h ; e8 82 2f 16754 pop di ; 5f 16755 pop si ; 5e 16756 pop bp ; 5d 16757 pop bx ; 5b 16758 pop bx ; 5b 16759 pop dx ; 5a 16760 pop cx ; 59 16761 pop ax ; 58 16752 16762 pop ES ; 07 16753 16763 pop DS ; 1f 16754 16764 iret ; cf 16755 init_pic: ; 0xfe7 53LB 0x2516765 init_pic: ; 0xfe76f LB 0x25 16756 16766 mov AL, strict byte 011h ; b0 11 16757 16767 out strict byte 020h, AL ; e6 20 … … 16773 16783 out strict byte 0a1h, AL ; e6 a1 16774 16784 retn ; c3 16775 ebda_post: ; 0xfe7 78 LB 0xb616776 mov ax, 0e7 46h ; b8 46e716785 ebda_post: ; 0xfe794 LB 0x45 16786 mov ax, 0e754h ; b8 54 e7 16777 16787 mov word [00034h], ax ; a3 34 00 16778 16788 mov ax, 0f000h ; b8 00 f0 16779 16789 mov word [00036h], ax ; a3 36 00 16780 mov ax, 0e7 46h ; b8 46e716790 mov ax, 0e754h ; b8 54 e7 16781 16791 mov word [0003ch], ax ; a3 3c 00 16782 16792 mov ax, 0f000h ; b8 00 f0 16783 16793 mov word [0003eh], ax ; a3 3e 00 16784 mov ax, 0e7 46h ; b8 46e716794 mov ax, 0e754h ; b8 54 e7 16785 16795 mov word [001c8h], ax ; a3 c8 01 16786 16796 mov ax, 0f000h ; b8 00 f0 16787 16797 mov word [001cah], ax ; a3 ca 01 16788 mov ax, 0e7 46h ; b8 46e716798 mov ax, 0e754h ; b8 54 e7 16789 16799 mov word [001dch], ax ; a3 dc 01 16790 16800 mov ax, 0f000h ; b8 00 f0 … … 16798 16808 mov word [0040eh], 09fc0h ; c7 06 0e 04 c0 9f 16799 16809 retn ; c3 16800 times 0x6f db 0 16810 biosorg_check_before_or_at_0E82Ch: ; 0xfe7d9 LB 0x55 16811 times 0x53 db 0 16801 16812 db 'XM' 16802 biosorg_check_ 0E82Eh: ; 0xfe82e LB 0x15916813 biosorg_check_at_0E82Eh: ; 0xfe82e LB 0x4b 16803 16814 sti ; fb 16804 16815 push ES ; 06 16805 16816 push DS ; 1e 16806 pushaw ; 60 16817 push ax ; 50 16818 push cx ; 51 16819 push dx ; 52 16820 push bx ; 53 16821 push sp ; 54 16822 push bp ; 55 16823 push si ; 56 16824 push di ; 57 16807 16825 cmp ah, 000h ; 80 fc 00 16808 je short 0e8 46h ; 74 0f16826 je short 0e854h ; 74 16 16809 16827 cmp ah, 010h ; 80 fc 10 16810 je short 0e8 46h ; 74 0a16828 je short 0e854h ; 74 11 16811 16829 push CS ; 0e 16812 16830 pop DS ; 1f 16813 16831 cld ; fc 16814 call 0585ah ; e8 18 70 16815 popaw ; 61 16832 call 05813h ; e8 ca 6f 16833 pop di ; 5f 16834 pop si ; 5e 16835 pop bp ; 5d 16836 pop bx ; 5b 16837 pop bx ; 5b 16838 pop dx ; 5a 16839 pop cx ; 59 16840 pop ax ; 58 16816 16841 pop DS ; 1f 16817 16842 pop ES ; 07 … … 16822 16847 mov bx, word [word 0001ah] ; 8b 1e 1a 00 16823 16848 cmp bx, word [word 0001ch] ; 3b 1e 1c 00 16824 jne short 0e8 5ah ; 75 0416849 jne short 0e868h ; 75 04 16825 16850 sti ; fb 16826 16851 nop ; 90 16827 jmp short 0e8 4bh ; eb f116852 jmp short 0e859h ; eb f1 16828 16853 push CS ; 0e 16829 16854 pop DS ; 1f 16830 16855 cld ; fc 16831 call 0585ah ; e8 fa 6f 16832 popaw ; 61 16856 call 05813h ; e8 a5 6f 16857 pop di ; 5f 16858 pop si ; 5e 16859 pop bp ; 5d 16860 pop bx ; 5b 16861 pop bx ; 5b 16862 pop dx ; 5a 16863 pop cx ; 59 16864 pop ax ; 58 16833 16865 pop DS ; 1f 16834 16866 pop ES ; 07 16835 16867 iret ; cf 16836 times 0x121 db 0 16868 biosorg_check_before_or_at_0E985h: ; 0xfe879 LB 0x10e 16869 times 0x10c db 0 16837 16870 db 'XM' 16838 biosorg_check_ 0E987h: ; 0xfe987 LB 0x2d216871 biosorg_check_at_0E987h: ; 0xfe987 LB 0x78 16839 16872 cli ; fa 16840 16873 push ax ; 50 … … 16845 16878 in AL, strict byte 020h ; e4 20 16846 16879 and AL, strict byte 002h ; 24 02 16847 je short 0e9d 0h ; 74 3916880 je short 0e9deh ; 74 47 16848 16881 in AL, strict byte 060h ; e4 60 16849 16882 push DS ; 1e 16850 pushaw ; 60 16883 push ax ; 50 16884 push cx ; 51 16885 push dx ; 52 16886 push bx ; 53 16887 push sp ; 54 16888 push bp ; 55 16889 push si ; 56 16890 push di ; 57 16851 16891 cld ; fc 16852 16892 mov AH, strict byte 04fh ; b4 4f 16853 16893 stc ; f9 16854 16894 int 015h ; cd 15 16855 jnc short 0e9 cah ; 73 2716895 jnc short 0e9d1h ; 73 27 16856 16896 sti ; fb 16857 16897 cmp AL, strict byte 0e0h ; 3c e0 16858 jne short 0e9b 3h ; 75 0b16898 jne short 0e9bah ; 75 0b 16859 16899 db 033h, 0c0h 16860 16900 ; xor ax, ax ; 33 c0 16861 16901 mov ds, ax ; 8e d8 16862 16902 or byte [00496h], 002h ; 80 0e 96 04 02 16863 jmp short 0e9 cah ; eb 1716903 jmp short 0e9d1h ; eb 17 16864 16904 cmp AL, strict byte 0e1h ; 3c e1 16865 jne short 0e9c 2h ; 75 0b16905 jne short 0e9c9h ; 75 0b 16866 16906 db 033h, 0c0h 16867 16907 ; xor ax, ax ; 33 c0 16868 16908 mov ds, ax ; 8e d8 16869 16909 or byte [00496h], 001h ; 80 0e 96 04 01 16870 jmp short 0e9 cah ; eb 0816910 jmp short 0e9d1h ; eb 08 16871 16911 push ES ; 06 16872 16912 push CS ; 0e 16873 16913 pop DS ; 1f 16874 16914 cld ; fc 16875 call 052 f9h ; e8 30 6916915 call 052b2h ; e8 e2 68 16876 16916 pop ES ; 07 16877 popaw ; 61 16917 pop di ; 5f 16918 pop si ; 5e 16919 pop bp ; 5d 16920 pop bx ; 5b 16921 pop bx ; 5b 16922 pop dx ; 5a 16923 pop cx ; 59 16924 pop ax ; 58 16878 16925 pop DS ; 1f 16879 16926 cli ; fa 16880 call 0e034h ; e8 64f616927 call 0e034h ; e8 56 f6 16881 16928 mov AL, strict byte 0aeh ; b0 ae 16882 16929 out strict byte 064h, AL ; e6 64 16883 16930 pop ax ; 58 16884 16931 iret ; cf 16885 pushaw ; 60 16932 push ax ; 50 16933 push cx ; 51 16934 push dx ; 52 16935 push bx ; 53 16936 push sp ; 54 16937 push bp ; 55 16938 push si ; 56 16939 push di ; 57 16886 16940 push ES ; 06 16887 16941 push DS ; 1e … … 16889 16943 pop DS ; 1f 16890 16944 cld ; fc 16891 call 070 73h ; e8 948616945 call 0701ch ; e8 28 86 16892 16946 pop DS ; 1f 16893 16947 pop ES ; 07 16894 popaw ; 61 16948 pop di ; 5f 16949 pop si ; 5e 16950 pop bp ; 5d 16951 pop bx ; 5b 16952 pop bx ; 5b 16953 pop dx ; 5a 16954 pop cx ; 59 16955 pop ax ; 58 16895 16956 iret ; cf 16896 times 0x274 db 0 16957 biosorg_check_before_or_at_0EC57h: ; 0xfe9ff LB 0x25a 16958 times 0x258 db 0 16897 16959 db 'XM' 16898 biosorg_check_ 0EC59h:; 0xfec59 LB 0x216899 jmp short 0ec b0h ; eb 5516900 int13_relocated: ; 0xfec5b LB 0x 5516960 biosorg_check_at_0EC59h: ; 0xfec59 LB 0x2 16961 jmp short 0ecc4h ; eb 69 16962 int13_relocated: ; 0xfec5b LB 0x1f 16901 16963 cmp ah, 04ah ; 80 fc 4a 16902 jc short 0ec7 1h ; 72 1116964 jc short 0ec7ch ; 72 1c 16903 16965 cmp ah, 04dh ; 80 fc 4d 16904 jnbe short 0ec71h ; 77 0c 16905 pushaw ; 60 16966 jnbe short 0ec7ch ; 77 17 16967 push ax ; 50 16968 push cx ; 51 16969 push dx ; 52 16970 push bx ; 53 16971 push sp ; 54 16972 push bp ; 55 16973 push si ; 56 16974 push di ; 57 16906 16975 push ES ; 06 16907 16976 push DS ; 1e … … 16909 16978 pop DS ; 1f 16910 16979 cld ; fc 16911 push 0ece9h ; 68 e9 ec 16912 jmp near 03c26h ; e9 b5 4f 16980 push word [cs:0ec7ah] ; 2e ff 36 7a ec 16981 jmp near 03c08h ; e9 8e 4f 16982 jmp_call_ret_int13_out: ; 0xfec7a LB 0x4a 16983 db 0ffh 16984 in AL, DX ; ec 16913 16985 push ES ; 06 16914 16986 push ax ; 50 … … 16916 16988 push cx ; 51 16917 16989 push dx ; 52 16918 call 03b fah ; e8 814f16990 call 03bdch ; e8 58 4f 16919 16991 cmp AL, strict byte 000h ; 3c 00 16920 je short 0ec abh ; 74 2e16921 call 03 c10h ; e8 904f16992 je short 0ecbfh ; 74 37 16993 call 03bf2h ; e8 67 4f 16922 16994 pop dx ; 5a 16923 16995 push dx ; 52 16924 16996 db 03ah, 0c2h 16925 16997 ; cmp al, dl ; 3a c2 16926 jne short 0ec 97h ; 75 1116998 jne short 0ecabh ; 75 1a 16927 16999 pop dx ; 5a 16928 17000 pop cx ; 59 … … 16930 17002 pop ax ; 58 16931 17003 pop ES ; 07 16932 pushaw ; 60 17004 push ax ; 50 17005 push cx ; 51 17006 push dx ; 52 17007 push bx ; 53 17008 push sp ; 54 17009 push bp ; 55 17010 push si ; 56 17011 push di ; 57 16933 17012 push ES ; 06 16934 17013 push DS ; 1e … … 16936 17015 pop DS ; 1f 16937 17016 cld ; fc 16938 push 0ece9h ; 68 e9ec16939 jmp near 042 33h ; e9 9c5517017 push word [cs:0ec7ah] ; 2e ff 36 7a ec 17018 jmp near 04215h ; e9 6a 55 16940 17019 and dl, 0e0h ; 80 e2 e0 16941 17020 db 03ah, 0c2h 16942 17021 ; cmp al, dl ; 3a c2 16943 jne short 0ec abh ; 75 0d17022 jne short 0ecbfh ; 75 0d 16944 17023 pop dx ; 5a 16945 17024 pop cx ; 59 … … 16953 17032 db 0feh, 0cah 16954 17033 ; dec dl ; fe ca 16955 jmp short 0ec b4h ; eb 0917034 jmp short 0ecc8h ; eb 09 16956 17035 pop dx ; 5a 16957 17036 pop cx ; 59 … … 16959 17038 pop ax ; 58 16960 17039 pop ES ; 07 16961 int13_noeltorito: ; 0xfec b0LB 0x417040 int13_noeltorito: ; 0xfecc4 LB 0x4 16962 17041 push ax ; 50 16963 17042 push cx ; 51 16964 17043 push dx ; 52 16965 17044 push bx ; 53 16966 int13_legacy: ; 0xfec b4 LB 0x1417045 int13_legacy: ; 0xfecc8 LB 0x16 16967 17046 push dx ; 52 16968 17047 push bp ; 55 … … 16975 17054 cld ; fc 16976 17055 test dl, 080h ; f6 c2 80 16977 jne short 0ec c8h ; 75 0616978 push 0ece9h ; 68 e9ec16979 jmp near 032 2dh ; e9 654516980 int13_notfloppy: ; 0xfec c8LB 0x1417056 jne short 0ecdeh ; 75 08 17057 push word [cs:0ec7ah] ; 2e ff 36 7a ec 17058 jmp near 0320fh ; e9 31 45 17059 int13_notfloppy: ; 0xfecde LB 0x14 16981 17060 cmp dl, 0e0h ; 80 fa e0 16982 jc short 0ec dch ; 72 0f17061 jc short 0ecf2h ; 72 0f 16983 17062 shr ebx, 010h ; 66 c1 eb 10 16984 17063 push bx ; 53 16985 call 046 86h ; e8 b15917064 call 04668h ; e8 7d 59 16986 17065 pop bx ; 5b 16987 17066 sal ebx, 010h ; 66 c1 e3 10 16988 jmp short 0ec e9h ; eb 0d16989 int13_disk: ; 0xfec dcLB 0xd17067 jmp short 0ecffh ; eb 0d 17068 int13_disk: ; 0xfecf2 LB 0xd 16990 17069 cmp ah, 040h ; 80 fc 40 16991 jnbe short 0ec e6h ; 77 0516992 call 05 c3bh ; e8 57 6f16993 jmp short 0ec e9h ; eb 0316994 call 060 81h ; e8 987316995 int13_out: ; 0xfec e9 LB 0x417070 jnbe short 0ecfch ; 77 05 17071 call 05bf4h ; e8 fa 6e 17072 jmp short 0ecffh ; eb 03 17073 call 0603ah ; e8 3b 73 17074 int13_out: ; 0xfecff LB 0xb 16996 17075 pop DS ; 1f 16997 17076 pop ES ; 07 16998 popaw ; 61 17077 pop di ; 5f 17078 pop si ; 5e 17079 pop bp ; 5d 17080 pop bx ; 5b 17081 pop bx ; 5b 17082 pop dx ; 5a 17083 pop cx ; 59 17084 pop ax ; 58 16999 17085 iret ; cf 17000 detect_parport: ; 0xfe cedLB 0x1e17086 detect_parport: ; 0xfed0a LB 0x1e 17001 17087 push dx ; 52 17002 17088 inc dx ; 42 … … 17010 17096 in AL, DX ; ec 17011 17097 cmp AL, strict byte 0aah ; 3c aa 17012 jne short 0ed 0ah ; 75 0d17098 jne short 0ed27h ; 75 0d 17013 17099 push bx ; 53 17014 17100 sal bx, 1 ; d1 e3 … … 17018 17104 inc bx ; 43 17019 17105 retn ; c3 17020 detect_serial: ; 0xfed 0bLB 0x2417106 detect_serial: ; 0xfed28 LB 0x24 17021 17107 push dx ; 52 17022 17108 inc dx ; 42 … … 17025 17111 in AL, DX ; ec 17026 17112 cmp AL, strict byte 002h ; 3c 02 17027 jne short 0ed 2dh ; 75 1817113 jne short 0ed4ah ; 75 18 17028 17114 inc dx ; 42 17029 17115 in AL, DX ; ec 17030 17116 cmp AL, strict byte 002h ; 3c 02 17031 jne short 0ed 2dh ; 75 1217117 jne short 0ed4ah ; 75 12 17032 17118 dec dx ; 4a 17033 17119 db 032h, 0c0h … … 17043 17129 pop dx ; 5a 17044 17130 retn ; c3 17045 floppy_post: ; 0xfed 2f LB 0x8717131 floppy_post: ; 0xfed4c LB 0x8c 17046 17132 db 033h, 0c0h 17047 17133 ; xor ax, ax ; 33 c0 … … 17065 17151 db 08ah, 0e0h 17066 17152 ; mov ah, al ; 8a e0 17067 shr al, 004h ; c0 e8 04 17068 je short 0ed6ah ; 74 04 17153 shr al, 1 ; d0 e8 17154 shr al, 1 ; d0 e8 17155 shr al, 1 ; d0 e8 17156 shr al, 1 ; d0 e8 17157 je short 0ed8ch ; 74 04 17069 17158 mov BL, strict byte 007h ; b3 07 17070 jmp short 0ed 6ch ; eb 0217159 jmp short 0ed8eh ; eb 02 17071 17160 mov BL, strict byte 000h ; b3 00 17072 17161 db 08ah, 0c4h 17073 17162 ; mov al, ah ; 8a c4 17074 17163 and AL, strict byte 00fh ; 24 0f 17075 je short 0ed 75h ; 74 0317164 je short 0ed97h ; 74 03 17076 17165 or bl, 070h ; 80 cb 70 17077 17166 mov byte [0048fh], bl ; 88 1e 8f 04 … … 17098 17187 mov word [0003ah], ax ; a3 3a 00 17099 17188 retn ; c3 17100 bcd_to_bin: ; 0xfedb6 LB 0x9 17101 sal ax, 004h ; c1 e0 04 17102 shr al, 004h ; c0 e8 04 17189 bcd_to_bin: ; 0xfedd8 LB 0xb 17190 push cx ; 51 17191 mov CL, strict byte 004h ; b1 04 17192 sal ax, CL ; d3 e0 17193 shr al, CL ; d2 e8 17194 pop cx ; 59 17103 17195 aad 00ah ; d5 0a 17104 17196 retn ; c3 17105 rtc_post: ; 0xfed bf LB 0x19817197 rtc_post: ; 0xfede3 LB 0x5a 17106 17198 mov AL, strict byte 000h ; b0 00 17107 17199 out strict byte 070h, AL ; e6 70 17108 17200 in AL, strict byte 071h ; e4 71 17109 call 0ed b6h ; e8 eeff17201 call 0edd8h ; e8 ec ff 17110 17202 test al, al ; 84 c0 17111 17203 db 032h, 0e4h … … 17118 17210 out strict byte 070h, AL ; e6 70 17119 17211 in AL, strict byte 071h ; e4 71 17120 call 0ed b6h ; e8 daff17212 call 0edd8h ; e8 d8 ff 17121 17213 test al, al ; 84 c0 17122 je short 0e debh ; 74 0b17214 je short 0ee0fh ; 74 0b 17123 17215 add cx, 04463h ; 81 c1 63 44 17124 17216 adc dx, strict byte 00004h ; 83 d2 04 17125 17217 db 0feh, 0c8h 17126 17218 ; dec al ; fe c8 17127 jne short 0e de0h ; 75 f517219 jne short 0ee04h ; 75 f5 17128 17220 mov AL, strict byte 004h ; b0 04 17129 17221 out strict byte 070h, AL ; e6 70 17130 17222 in AL, strict byte 071h ; e4 71 17131 call 0ed b6h ; e8 c2ff17223 call 0edd8h ; e8 c0 ff 17132 17224 test al, al ; 84 c0 17133 je short 0ee 0ah ; 74 1217225 je short 0ee28h ; 74 0c 17134 17226 add cx, 0076ch ; 81 c1 6c 07 17135 17227 adc dx, 00100h ; 81 d2 00 01 17136 17228 db 0feh, 0c8h 17137 17229 ; dec al ; fe c8 17138 jne short 0edf8h ; 75 f4 17139 mov ax, 0046ch ; b8 6c 04 17140 mov dx, 0046eh ; ba 6e 04 17230 jne short 0ee1ch ; 75 f4 17141 17231 db 08ah, 0cdh 17142 17232 ; mov cl, ch ; 8a cd … … 17151 17241 mov byte [00470h], dh ; 88 36 70 04 17152 17242 retn ; c3 17153 times 0x136 db 0 17243 biosorg_check_before_or_at_0EF55h: ; 0xfee3d LB 0x11a 17244 times 0x118 db 0 17154 17245 db 'XM' 17155 int0e_handler: ; 0xfef57 LB 0x 7017246 int0e_handler: ; 0xfef57 LB 0x3b 17156 17247 push ax ; 50 17157 17248 push dx ; 52 … … 17186 17277 pop ax ; 58 17187 17278 iret ; cf 17279 biosorg_check_before_or_at_0EFC5h: ; 0xfef92 LB 0x35 17188 17280 times 0x33 db 0 17189 17281 db 'XM' … … 17197 17289 db 0f6h 17198 17290 invd ; 0f 08 17199 biosorg_check_ 0EFD2h:; 0xfefd2 LB 0x217291 biosorg_check_at_0EFD2h: ; 0xfefd2 LB 0x2 17200 17292 jmp short 0efd4h ; eb 00 17201 int17_handler: ; 0xfefd4 LB 0x d17293 int17_handler: ; 0xfefd4 LB 0x1b 17202 17294 push DS ; 1e 17203 17295 push ES ; 06 17204 pushaw ; 60 17296 push ax ; 50 17297 push cx ; 51 17298 push dx ; 52 17299 push bx ; 53 17300 push sp ; 54 17301 push bp ; 55 17302 push si ; 56 17303 push di ; 57 17205 17304 push CS ; 0e 17206 17305 pop DS ; 1f 17207 17306 cld ; fc 17208 call 07a20h ; e8 43 8a 17209 popaw ; 61 17307 call 079c9h ; e8 e5 89 17308 pop di ; 5f 17309 pop si ; 5e 17310 pop bp ; 5d 17311 pop bx ; 5b 17312 pop bx ; 5b 17313 pop dx ; 5a 17314 pop cx ; 59 17315 pop ax ; 58 17210 17316 pop ES ; 07 17211 17317 pop DS ; 1f 17212 17318 iret ; cf 17213 _pmode_IDT: ; 0xfefe 1LB 0x617319 _pmode_IDT: ; 0xfefef LB 0x6 17214 17320 db 000h, 000h, 000h, 000h, 00fh, 000h 17215 _rmode_IDT: ; 0xfef e7LB 0x617321 _rmode_IDT: ; 0xfeff5 LB 0x6 17216 17322 db 0ffh, 003h, 000h, 000h, 000h, 000h 17217 int1c_handler: ; 0xfef ed LB 0x5817323 int1c_handler: ; 0xfeffb LB 0x1 17218 17324 iret ; cf 17219 times 0x55 db 0 17325 biosorg_check_before_or_at_0F043h: ; 0xfeffc LB 0x49 17326 times 0x47 db 0 17220 17327 db 'XM' 17221 biosorg_check_ 0F045h: ; 0xff045 LB 0x2017328 biosorg_check_at_0F045h: ; 0xff045 LB 0x1 17222 17329 iret ; cf 17330 biosorg_check_before_or_at_0F063h: ; 0xff046 LB 0x1f 17223 17331 times 0x1d db 0 17224 17332 db 'XM' 17225 int10_handler: ; 0xff065 LB 0x 3f17333 int10_handler: ; 0xff065 LB 0x1 17226 17334 iret ; cf 17335 biosorg_check_before_or_at_0F0A2h: ; 0xff066 LB 0x3e 17227 17336 times 0x3c db 0 17228 17337 db 'XM' 17229 biosorg_check_ 0F0A4h:; 0xff0a4 LB 0x817338 biosorg_check_at_0F0A4h: ; 0xff0a4 LB 0x8 17230 17339 push CS ; 0e 17231 17340 pop DS ; 1f … … 17234 17343 hlt ; f4 17235 17344 iret ; cf 17236 int19_relocated: ; 0xff0ac LB 0x9 117345 int19_relocated: ; 0xff0ac LB 0x95 17237 17346 db 08bh, 0ech 17238 17347 ; mov bp, sp ; 8b ec … … 17254 17363 mov ax, strict word 00001h ; b8 01 00 17255 17364 push ax ; 50 17256 call 04d 4eh ; e8 7e5c17365 call 04d07h ; e8 37 5c 17257 17366 inc sp ; 44 17258 17367 inc sp ; 44 17259 17368 test ax, ax ; 85 c0 17260 jne short 0f0f eh ; 75 2817369 jne short 0f0fdh ; 75 27 17261 17370 mov ax, strict word 00002h ; b8 02 00 17262 17371 push ax ; 50 17263 call 04d 4eh ; e8 715c17372 call 04d07h ; e8 2a 5c 17264 17373 inc sp ; 44 17265 17374 inc sp ; 44 17266 17375 test ax, ax ; 85 c0 17267 jne short 0f0f eh ; 75 1b17376 jne short 0f0fdh ; 75 1a 17268 17377 mov ax, strict word 00003h ; b8 03 00 17269 push strict byte 00003h ; 6a 0317270 call 04d 4eh ; e8 635c17378 push ax ; 50 17379 call 04d07h ; e8 1d 5c 17271 17380 inc sp ; 44 17272 17381 inc sp ; 44 17273 17382 test ax, ax ; 85 c0 17274 jne short 0f0f eh ; 75 0d17383 jne short 0f0fdh ; 75 0d 17275 17384 mov ax, strict word 00004h ; b8 04 00 17276 17385 push ax ; 50 17277 call 04d 4eh ; e8 565c17386 call 04d07h ; e8 10 5c 17278 17387 inc sp ; 44 17279 17388 inc sp ; 44 17280 17389 test ax, ax ; 85 c0 17281 je short 0f0a4h ; 74 a 617390 je short 0f0a4h ; 74 a7 17282 17391 mov word [byte bp+000h], ax ; 89 46 00 17283 sal ax, 004h ; c1 e0 04 17392 sal ax, 1 ; d1 e0 17393 sal ax, 1 ; d1 e0 17394 sal ax, 1 ; d1 e0 17395 sal ax, 1 ; d1 e0 17284 17396 mov word [bp+002h], ax ; 89 46 02 17285 17397 mov ax, word [byte bp+000h] ; 8b 46 00 … … 17308 17420 pop eax ; 66 58 17309 17421 retn ; c3 17310 pcibios_init_iomem_bases: ; 0xff1 3dLB 0x1617422 pcibios_init_iomem_bases: ; 0xff141 LB 0x16 17311 17423 push bp ; 55 17312 17424 db 08bh, 0ech … … 17319 17431 push ax ; 50 17320 17432 mov bx, strict word 00008h ; bb 08 00 17321 pci_init_io_loop1: ; 0xff15 3LB 0xe17433 pci_init_io_loop1: ; 0xff157 LB 0xe 17322 17434 mov DL, strict byte 000h ; b2 00 17323 call 0f12 2h ; e8 ca ff17435 call 0f126h ; e8 ca ff 17324 17436 mov dx, 00cfch ; ba fc 0c 17325 17437 in ax, DX ; ed 17326 17438 cmp ax, strict byte 0ffffh ; 83 f8 ff 17327 je short 0f19 ah ; 74 3917328 enable_iomem_space: ; 0xff16 1LB 0x3917439 je short 0f19eh ; 74 39 17440 enable_iomem_space: ; 0xff165 LB 0x39 17329 17441 mov DL, strict byte 004h ; b2 04 17330 call 0f12 2h ; e8 bc ff17442 call 0f126h ; e8 bc ff 17331 17443 mov dx, 00cfch ; ba fc 0c 17332 17444 in AL, DX ; ec … … 17334 17446 out DX, AL ; ee 17335 17447 mov DL, strict byte 000h ; b2 00 17336 call 0f12 2h ; e8 b0 ff17448 call 0f126h ; e8 b0 ff 17337 17449 mov dx, 00cfch ; ba fc 0c 17338 17450 in eax, DX ; 66 ed 17339 17451 cmp eax, strict dword 020001022h ; 66 3d 22 10 00 20 17340 jne short 0f19 ah ; 75 1b17452 jne short 0f19eh ; 75 1b 17341 17453 mov DL, strict byte 010h ; b2 10 17342 call 0f12 2h ; e8 9e ff17454 call 0f126h ; e8 9e ff 17343 17455 mov dx, 00cfch ; ba fc 0c 17344 17456 in ax, DX ; ed … … 17354 17466 add dx, strict byte 00018h ; 83 c2 18 17355 17467 in eax, DX ; 66 ed 17356 next_pci_dev: ; 0xff19 aLB 0xf17468 next_pci_dev: ; 0xff19e LB 0xf 17357 17469 mov byte [bp-008h], 010h ; c6 46 f8 10 17358 17470 inc bx ; 43 17359 17471 cmp bx, 00100h ; 81 fb 00 01 17360 jne short 0f15 3h ; 75 ae17472 jne short 0f157h ; 75 ae 17361 17473 db 08bh, 0e5h 17362 17474 ; mov sp, bp ; 8b e5 17363 17475 pop bp ; 5d 17364 17476 retn ; c3 17365 pcibios_init_set_elcr: ; 0xff1a 9LB 0xc17477 pcibios_init_set_elcr: ; 0xff1ad LB 0xc 17366 17478 push ax ; 50 17367 17479 push cx ; 51 17368 17480 mov dx, 004d0h ; ba d0 04 17369 17481 test AL, strict byte 008h ; a8 08 17370 je short 0f1b 5h ; 74 0317482 je short 0f1b9h ; 74 03 17371 17483 inc dx ; 42 17372 17484 and AL, strict byte 007h ; 24 07 17373 is_master_pic: ; 0xff1b 5LB 0xd17485 is_master_pic: ; 0xff1b9 LB 0xd 17374 17486 db 08ah, 0c8h 17375 17487 ; mov cl, al ; 8a c8 … … 17383 17495 pop ax ; 58 17384 17496 retn ; c3 17385 pcibios_init_irqs: ; 0xff1c 2LB 0x5317497 pcibios_init_irqs: ; 0xff1c6 LB 0x53 17386 17498 push DS ; 1e 17387 17499 push bp ; 55 … … 17397 17509 mov bl, byte [si+009h] ; 8a 5c 09 17398 17510 mov DL, strict byte 000h ; b2 00 17399 call 0f12 2h ; e8 43 ff17511 call 0f126h ; e8 43 ff 17400 17512 mov dx, 00cfch ; ba fc 0c 17401 17513 in eax, DX ; 66 ed 17402 17514 cmp eax, dword [si+00ch] ; 66 3b 44 0c 17403 jne near 0f29 2h ; 0f 85 a6 0017515 jne near 0f296h ; 0f 85 a6 00 17404 17516 mov dl, byte [si+022h] ; 8a 54 22 17405 call 0f12 2h ; e8 30 ff17517 call 0f126h ; e8 30 ff 17406 17518 push bx ; 53 17407 17519 mov dx, 00cfch ; ba fc 0c … … 17418 17530 db 08bh, 0ech 17419 17531 ; mov bp, sp ; 8b ec 17420 mov ax, 0f1 1eh ; b8 1ef117532 mov ax, 0f122h ; b8 22 f1 17421 17533 push ax ; 50 17422 17534 db 033h, 0c0h 17423 17535 ; xor ax, ax ; 33 c0 17424 17536 push ax ; 50 17425 pci_init_irq_loop1: ; 0xff21 5LB 0x517537 pci_init_irq_loop1: ; 0xff219 LB 0x5 17426 17538 mov bh, byte [si] ; 8a 3c 17427 17539 mov bl, byte [si+001h] ; 8a 5c 01 17428 pci_init_irq_loop2: ; 0xff21 aLB 0x1517540 pci_init_irq_loop2: ; 0xff21e LB 0x15 17429 17541 mov DL, strict byte 000h ; b2 00 17430 call 0f12 2h ; e8 03 ff17542 call 0f126h ; e8 03 ff 17431 17543 mov dx, 00cfch ; ba fc 0c 17432 17544 in ax, DX ; ed 17433 17545 cmp ax, strict byte 0ffffh ; 83 f8 ff 17434 jne short 0f2 2fh ; 75 0717546 jne short 0f233h ; 75 07 17435 17547 test bl, 007h ; f6 c3 07 17436 je short 0f28 6h ; 74 5917437 jmp short 0f2 7ch ; eb 4d17438 pci_test_int_pin: ; 0xff2 2fLB 0x3c17548 je short 0f28ah ; 74 59 17549 jmp short 0f280h ; eb 4d 17550 pci_test_int_pin: ; 0xff233 LB 0x3c 17439 17551 mov DL, strict byte 03ch ; b2 3c 17440 call 0f12 2h ; e8 ee fe17552 call 0f126h ; e8 ee fe 17441 17553 mov dx, 00cfdh ; ba fd 0c 17442 17554 in AL, DX ; ec 17443 17555 and AL, strict byte 007h ; 24 07 17444 je short 0f2 7ch ; 74 4017556 je short 0f280h ; 74 40 17445 17557 db 0feh, 0c8h 17446 17558 ; dec al ; fe c8 … … 17456 17568 ; mov dl, al ; 8a d0 17457 17569 mov bx, word [byte bp+000h] ; 8b 5e 00 17458 call 0f12 2h ; e8 d0 fe17570 call 0f126h ; e8 d0 fe 17459 17571 mov dx, 00cfch ; ba fc 0c 17460 17572 and AL, strict byte 003h ; 24 03 … … 17463 17575 in AL, DX ; ec 17464 17576 cmp AL, strict byte 080h ; 3c 80 17465 jc short 0f26 bh ; 72 0d17577 jc short 0f26fh ; 72 0d 17466 17578 mov bx, word [bp-002h] ; 8b 5e fe 17467 17579 mov al, byte [bx] ; 8a 07 … … 17469 17581 inc bx ; 43 17470 17582 mov word [bp-002h], bx ; 89 5e fe 17471 call 0f1a 9h ; e8 3e ff17472 pirq_found: ; 0xff26 bLB 0x1117583 call 0f1adh ; e8 3e ff 17584 pirq_found: ; 0xff26f LB 0x11 17473 17585 mov bh, byte [si] ; 8a 3c 17474 17586 mov bl, byte [si+001h] ; 8a 5c 01 17475 17587 add bl, byte [bp-003h] ; 02 5e fd 17476 17588 mov DL, strict byte 03ch ; b2 3c 17477 call 0f12 2h ; e8 aa fe17589 call 0f126h ; e8 aa fe 17478 17590 mov dx, 00cfch ; ba fc 0c 17479 17591 out DX, AL ; ee 17480 next_pci_func: ; 0xff2 7cLB 0xa17592 next_pci_func: ; 0xff280 LB 0xa 17481 17593 inc byte [bp-003h] ; fe 46 fd 17482 17594 db 0feh, 0c3h 17483 17595 ; inc bl ; fe c3 17484 17596 test bl, 007h ; f6 c3 07 17485 jne short 0f21 ah ; 75 9417486 next_pir_entry: ; 0xff28 6LB 0xc17597 jne short 0f21eh ; 75 94 17598 next_pir_entry: ; 0xff28a LB 0xc 17487 17599 add si, strict byte 00010h ; 83 c6 10 17488 17600 mov byte [bp-003h], 000h ; c6 46 fd 00 17489 loop 0f21 5h ; e2 8617601 loop 0f219h ; e2 86 17490 17602 db 08bh, 0e5h 17491 17603 ; mov sp, bp ; 8b e5 17492 17604 pop bx ; 5b 17493 pci_init_end: ; 0xff29 2 LB 0x2e17605 pci_init_end: ; 0xff296 LB 0x2a 17494 17606 pop bp ; 5d 17495 17607 pop DS ; 1f 17496 17608 retn ; c3 17497 db 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 0 89h, 0c0h, 089h, 0c0h, 0fch, 024h, 050h, 049h, 052h, 000h17498 db 00 1h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h, 000h17499 db 000h, 000h, 000h, 000h, 000h, 000h, 0 00h, 000h, 000h, 000h, 031h17609 db 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 0fch, 024h, 050h, 049h, 052h, 000h, 001h, 000h, 002h, 000h 17610 db 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h 17611 db 000h, 000h, 000h, 000h, 000h, 000h, 031h 17500 17612 _pci_routing_table: ; 0xff2c0 LB 0x1e0 17501 17613 db 000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h … … 17529 17641 db 000h, 0e8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 01ch, 000h 17530 17642 db 000h, 0f0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 01dh, 000h 17531 _pci_routing_table_size: ; 0xff4a0 LB 0x 3a117643 _pci_routing_table_size: ; 0xff4a0 LB 0x2 17532 17644 loopne 0f4a3h ; e0 01 17645 biosorg_check_before_or_at_0F83Fh: ; 0xff4a2 LB 0x39f 17533 17646 times 0x39d db 0 17534 17647 db 'XM' … … 17549 17662 pop DS ; 1f 17550 17663 iret ; cf 17551 int15_handler: ; 0xff859 LB 0x 2e17664 int15_handler: ; 0xff859 LB 0x3c 17552 17665 pushfw ; 9c 17553 17666 push DS ; 1e … … 17557 17670 cld ; fc 17558 17671 cmp ah, 086h ; 80 fc 86 17559 je short 0f8 8ch ; 74 2817672 je short 0f89ah ; 74 36 17560 17673 cmp ah, 0e8h ; 80 fc e8 17561 je short 0f8 8ch ; 74 2317674 je short 0f89ah ; 74 31 17562 17675 cmp ah, 0d0h ; 80 fc d0 17563 je short 0f88ch ; 74 1e 17564 pushaw ; 60 17676 je short 0f89ah ; 74 2c 17677 push ax ; 50 17678 push cx ; 51 17679 push dx ; 52 17680 push bx ; 53 17681 push sp ; 54 17682 push bp ; 55 17683 push si ; 56 17684 push di ; 57 17565 17685 cmp ah, 053h ; 80 fc 53 17566 je short 0f8 82h ; 74 0e17686 je short 0f890h ; 74 15 17567 17687 cmp ah, 0c2h ; 80 fc c2 17568 je short 0f887h ; 74 0e 17569 call 067ceh ; e8 52 6f 17570 popaw ; 61 17688 je short 0f895h ; 74 15 17689 call 06777h ; e8 f4 6e 17690 pop di ; 5f 17691 pop si ; 5e 17692 pop bp ; 5d 17693 pop bx ; 5b 17694 pop bx ; 5b 17695 pop dx ; 5a 17696 pop cx ; 59 17697 pop ax ; 58 17571 17698 pop ES ; 07 17572 17699 pop DS ; 1f 17573 17700 popfw ; 9d 17574 jmp short 0f893h ; eb 11 17575 call 09c7fh ; e8 fa a3 17576 jmp short 0f87ch ; eb f5 17577 int15_handler_mouse: ; 0xff887 LB 0x5 17578 call 07680h ; e8 f6 7d 17579 jmp short 0f87ch ; eb f0 17580 int15_handler32: ; 0xff88c LB 0x7 17581 pushaw ; 60 17582 call 06ca4h ; e8 14 74 17583 popaw ; 61 17584 jmp short 0f87dh ; eb ea 17585 iret_modify_cf: ; 0xff893 LB 0x14 17586 jc short 0f89eh ; 72 09 17701 jmp short 0f8afh ; eb 1f 17702 call 09c2ah ; e8 97 a3 17703 jmp short 0f883h ; eb ee 17704 int15_handler_mouse: ; 0xff895 LB 0x5 17705 call 07629h ; e8 91 7d 17706 jmp short 0f883h ; eb e9 17707 int15_handler32: ; 0xff89a LB 0x15 17708 push ax ; 50 17709 push cx ; 51 17710 push dx ; 52 17711 push bx ; 53 17712 push sp ; 54 17713 push bp ; 55 17714 push si ; 56 17715 push di ; 57 17716 call 06c4dh ; e8 a8 73 17717 pop di ; 5f 17718 pop si ; 5e 17719 pop bp ; 5d 17720 pop bx ; 5b 17721 pop bx ; 5b 17722 pop dx ; 5a 17723 pop cx ; 59 17724 pop ax ; 58 17725 jmp short 0f88bh ; eb dc 17726 iret_modify_cf: ; 0xff8af LB 0x14 17727 jc short 0f8bah ; 72 09 17587 17728 push bp ; 55 17588 17729 db 08bh, 0ech … … 17597 17738 pop bp ; 5d 17598 17739 iret ; cf 17599 int74_handler: ; 0xff8 a7 LB 0x2e17740 int74_handler: ; 0xff8c3 LB 0x3a 17600 17741 sti ; fb 17601 pushaw ; 60 17742 push ax ; 50 17743 push cx ; 51 17744 push dx ; 52 17745 push bx ; 53 17746 push sp ; 54 17747 push bp ; 55 17748 push si ; 56 17749 push di ; 57 17602 17750 push ES ; 06 17603 17751 push DS ; 1e 17604 push strict byte 00000h ; 6a 00 17605 push strict byte 00000h ; 6a 00 17606 push strict byte 00000h ; 6a 00 17607 push strict byte 00000h ; 6a 00 17608 push strict byte 00000h ; 6a 00 17752 db 033h, 0c0h 17753 ; xor ax, ax ; 33 c0 17754 push ax ; 50 17755 push ax ; 50 17756 push ax ; 50 17757 push ax ; 50 17758 push ax ; 50 17609 17759 push CS ; 0e 17610 17760 pop DS ; 1f 17611 17761 cld ; fc 17612 call 075 aeh ; e8 f37c17762 call 07557h ; e8 7c 7c 17613 17763 pop cx ; 59 17614 jcxz 0f8cah ; e3 0c 17615 push strict byte 00000h ; 6a 00 17764 jcxz 0f8ebh ; e3 0d 17765 db 033h, 0c0h 17766 ; xor ax, ax ; 33 c0 17767 push ax ; 50 17616 17768 pop DS ; 1f 17617 17769 push word [0040eh] ; ff 36 0e 04 … … 17619 17771 call far [word 00022h] ; ff 1e 22 00 17620 17772 cli ; fa 17621 call 0e030h ; e8 62e717773 call 0e030h ; e8 41 e7 17622 17774 add sp, strict byte 00008h ; 83 c4 08 17623 17775 pop DS ; 1f 17624 17776 pop ES ; 07 17625 popaw ; 61 17777 pop di ; 5f 17778 pop si ; 5e 17779 pop bp ; 5d 17780 pop bx ; 5b 17781 pop bx ; 5b 17782 pop dx ; 5a 17783 pop cx ; 59 17784 pop ax ; 58 17626 17785 iret ; cf 17627 int76_handler: ; 0xff8 d5 LB 0x19917786 int76_handler: ; 0xff8fd LB 0x12 17628 17787 push ax ; 50 17629 17788 push DS ; 1e … … 17631 17790 mov ds, ax ; 8e d8 17632 17791 mov byte [0008eh], 0ffh ; c6 06 8e 00 ff 17633 call 0e030h ; e8 4ce717792 call 0e030h ; e8 24 e7 17634 17793 pop DS ; 1f 17635 17794 pop ax ; 58 17636 17795 iret ; cf 17637 times 0x185 db 0 17796 int70_handler: ; 0xff90f LB 0x2d 17797 push ES ; 06 17798 push DS ; 1e 17799 push ax ; 50 17800 push cx ; 51 17801 push dx ; 52 17802 push bx ; 53 17803 push sp ; 54 17804 push bp ; 55 17805 push si ; 56 17806 push di ; 57 17807 push CS ; 0e 17808 pop DS ; 1f 17809 cld ; fc 17810 call 071f4h ; e8 d5 78 17811 pop di ; 5f 17812 pop si ; 5e 17813 pop bp ; 5d 17814 pop bx ; 5b 17815 pop bx ; 5b 17816 pop dx ; 5a 17817 pop cx ; 59 17818 pop ax ; 58 17819 pop DS ; 1f 17820 pop ES ; 07 17821 iret ; cf 17822 jnbe short 0f931h ; 77 05 17823 cmp ax, 000b0h ; 3d b0 00 17824 jc short 0f939h ; 72 08 17825 db 033h, 0d2h 17826 ; xor dx, dx ; 33 d2 17827 db 033h, 0c0h 17828 ; xor ax, ax ; 33 c0 17829 inc byte [word 00070h] ; fe 06 70 00 17830 jmp near 0fec1h ; e9 85 05 17831 biosorg_check_before_or_at_0FA6Ch: ; 0xff93c LB 0x132 17832 times 0x130 db 0 17638 17833 db 'XM' 17639 17834 font8x8: ; 0xffa6e LB 0x400 … … 17702 17897 db 018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h 17703 17898 db 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h 17704 biosorg_check_ 0FE6Eh: ; 0xffe6e LB 0xd17899 biosorg_check_at_0FE6Eh: ; 0xffe6e LB 0x1b 17705 17900 push ES ; 06 17706 17901 push DS ; 1e 17707 pushaw ; 60 17902 push ax ; 50 17903 push cx ; 51 17904 push dx ; 52 17905 push bx ; 53 17906 push sp ; 54 17907 push bp ; 55 17908 push si ; 56 17909 push di ; 57 17708 17910 push CS ; 0e 17709 17911 pop DS ; 1f 17710 17912 cld ; fc 17711 call 0730ah ; e8 93 74 17712 popaw ; 61 17913 call 072b3h ; e8 35 74 17914 pop di ; 5f 17915 pop si ; 5e 17916 pop bp ; 5d 17917 pop bx ; 5b 17918 pop bx ; 5b 17919 pop dx ; 5a 17920 pop cx ; 59 17921 pop ax ; 58 17713 17922 pop DS ; 1f 17714 17923 pop ES ; 07 17715 17924 iret ; cf 17716 int70_handler: ; 0xffe7b LB 0x2a 17717 push ES ; 06 17718 push DS ; 1e 17719 pushaw ; 60 17720 push CS ; 0e 17721 pop DS ; 1f 17722 cld ; fc 17723 call 0724bh ; e8 c7 73 17724 popaw ; 61 17725 pop DS ; 1f 17726 pop ES ; 07 17727 iret ; cf 17728 times 0x1b db 0 17925 biosorg_check_before_or_at_0FEA3h: ; 0xffe89 LB 0x1c 17926 times 0x1a db 0 17729 17927 db 'XM' 17730 int08_handler: ; 0xffea5 LB 0x4 e17928 int08_handler: ; 0xffea5 LB 0x42 17731 17929 sti ; fb 17732 17930 push ax ; 50 17733 push bx ; 5317734 17931 push DS ; 1e 17735 17932 push dx ; 52 … … 17737 17934 mov ds, ax ; 8e d8 17738 17935 mov ax, word [0006ch] ; a1 6c 00 17739 mov bx, word [word 0006eh] ; 8b 1e 6e 00 17740 add ax, strict byte 00001h ; 83 c0 01 17741 adc bx, strict byte 00000h ; 83 d3 00 17742 cmp bx, strict byte 00018h ; 83 fb 18 17743 jc short 0fed0h ; 72 0f 17744 jnbe short 0fec8h ; 77 05 17745 cmp ax, 000b0h ; 3d b0 00 17746 jc short 0fed0h ; 72 08 17747 db 033h, 0c0h 17748 ; xor ax, ax ; 33 c0 17749 db 033h, 0dbh 17750 ; xor bx, bx ; 33 db 17751 inc byte [word 00070h] ; fe 06 70 00 17936 mov dx, word [word 0006eh] ; 8b 16 6e 00 17937 inc ax ; 40 17938 jne short 0feb9h ; 75 01 17939 inc dx ; 42 17940 cmp dx, strict byte 00018h ; 83 fa 18 17941 jc short 0fec1h ; 72 03 17942 jmp near 0f92ah ; e9 69 fa 17752 17943 mov word [0006ch], ax ; a3 6c 00 17753 mov word [word 0006eh], bx ; 89 1e6e 0017944 mov word [word 0006eh], dx ; 89 16 6e 00 17754 17945 mov AL, byte [00040h] ; a0 40 00 17755 17946 db 00ah, 0c0h 17756 17947 ; or al, al ; 0a c0 17757 je short 0fe ech ; 74 0e17948 je short 0feddh ; 74 0e 17758 17949 db 0feh, 0c8h 17759 17950 ; dec al ; fe c8 17760 17951 mov byte [00040h], AL ; a2 40 00 17761 jne short 0fe ech ; 75 0717952 jne short 0feddh ; 75 07 17762 17953 mov dx, 003f2h ; ba f2 03 17763 17954 in AL, DX ; ec … … 17766 17957 int 01ch ; cd 1c 17767 17958 cli ; fa 17768 call 05734h ; e8 42 58 17769 dec bp ; 4d 17770 biosorg_check_0FEF3h: ; 0xffef3 LB 0xd 17959 call 0e034h ; e8 51 e1 17960 pop dx ; 5a 17771 17961 pop DS ; 1f 17772 pop bx ; 5b17773 17962 pop ax ; 58 17774 17963 iret ; cf 17775 add byte [bx+si], al ; 00 00 17776 add byte [bx+si], al ; 00 00 17777 add byte [bx+si], al ; 00 00 17778 add byte [bx+si+04dh], bl ; 00 58 4d 17779 biosorg_check_0FF00h: ; 0xfff00 LB 0x53 17964 biosorg_check_before_or_at_0FEF1h: ; 0xffee7 LB 0xc 17965 times 0xa db 0 17966 db 'XM' 17967 biosorg_check_at_0FEF3h: ; 0xffef3 LB 0xd 17968 times 0xb db 0 17969 db 'XM' 17970 biosorg_check_at_0FF00h: ; 0xfff00 LB 0x19 17780 17971 dec di ; 4f 17781 17972 jc short 0ff64h ; 72 61 … … 17793 17984 dec di ; 4f 17794 17985 push bx ; 53 17986 biosorg_check_before_or_at_0FF51h: ; 0xfff19 LB 0x3a 17795 17987 times 0x38 db 0 17796 17988 db 'XM' 17797 17989 dummy_iret: ; 0xfff53 LB 0x1 17798 17990 iret ; cf 17799 biosorg_check_ 0FF54h: ; 0xfff54 LB 0x9c17991 biosorg_check_at_0FF54h: ; 0xfff54 LB 0x2c 17800 17992 iret ; cf 17801 17993 mov ax, ax ; 89 c0 … … 17825 18017 add byte [bx+si], al ; 00 00 17826 18018 add byte [di], ah ; 00 25 17827 times 0x6f db 0 18019 times 0x1 db 0 18020 biosorg_check_before_or_at_0FFEEh: ; 0xfff80 LB 0x70 18021 times 0x6e db 0 17828 18022 db 'XM' 17829 18023 cpu_reset: ; 0xffff0 LB 0x10 17830 18024 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 17831 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0f ch, 0eeh18025 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 096h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum
r60422 r60443 1 a9ff9158bb6e580db7ea0148ae4309f9*VBoxPcBios8086.rom1 2d2a8ffc155d7c59ca2ef255d33488c0 *VBoxPcBios8086.rom
Note:
See TracChangeset
for help on using the changeset viewer.